One of the very interesting sessions I saw at DATE 2009 a couple of weeks ago was a panel session on Wednesday 22 April: Session 8.1, Architectures and Integration for Programmable SoCs. During this session, Axel Jantsch of KTH in Sweden made a couple of interesting comments:
2010-2020 will be the golden age for SoC architects
and he also suggested, complementing a comment by Pieter Mosterman of the Mathworks (who talked about compositional design) that IP integration in SoCs might be handled using Device Level Interfaces and “design by contract” (where the conformance of blocks and the whole SoC to the Device Level Interfaces forms part of the contract).
There is a lot that makes sense about this idea for IP integration into complex SoCs. Equally interesting to me was that Axel’s comment plunged me into a wave of nostalgia about Bertrand Meyer (also his home page here) and the “Design by Contract” he was talking about in the mid-1980′s in software development. In his Eiffel language, he used the idea of preconditions and postconditions on function calls that could be used to check whether the interfaces satisfied the assumptions and constraints (the “contract” between the caller and callee). In essence and explicitly, this is a kind of assertion checking. Eiffel supported the idea that you could keep the assertion checking in while developing the system, and then for production purposes, when you were “sure” that the code was correct, you could compile them out. (if you were ever sure).
No caption necessary, I hope!
I remember to this day a talk Bertrand Meyer gave at the Bell-Northern Research auditorium at the Carling facility in Nepean, near Ottawa, in the mid-to late 1980s about his ideas, which I had not heard of before. We also all got a copy of his Eiffel book, “Object-oriented Software Construction” (Prentice-Hall, 1988 – the link is for the 2nd edition, 1997) and it was a very stimulating time for me, learning about some of these new ideas.
Bertrand Meyer later wrote a very interesting column in IEEE Computer about the Ariane 5 disaster (see here for a slightly different version, with discussion) and pointed out that this was a contract failure – that assumptions implicitly made about reused software were explicitly violated in the new system context. A graphic example pointing out the usefulness of these ideas (thankfully, with only an economic cost, not a cost in human life).
It is most interesting to see the ideas come around again. You can’t keep good ideas down!
5 Comments »
Leave a comment
Line and paragraph breaks automatic, e-mail address never displayed, HTML allowed:
<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>