Taken for Granted

ESL, embedded processors, and more

Wishing you were (virtually) here

Filed under: Uncategorized — June 19, 2009 @ 11:13 am

Yesterday I participated in an interesting experiment …. EETimes’ Virtual conference on Multicore. It was an interesting chance to catch up with the latest attempts at running a “conference” online. I recall attending and participating in a couple of these early in the decade - I gave a talk (a bit of a disaster if I recall rightly) at SoC online in 2002 - disaster due to logistics and the perhaps primitive state of the technology at that time.

My friend Frank Schirrmeister was a participant for Synopsys, a sponsor, and wrote several short pieces about it on his blog that relate his experience as a vendor rep and participant in a panel. He also inspired my title by saying that he was listening to Pink Floyd while chatting to people.

The technology has clearly moved on. This conference had 4 or 5 places you could be in - sometimes in multiple places at once. The good bits:

  1. the “auditorium” where talks were given. I “saw” the keynote by Kunle Olukotun of Stanford. Good talk, and the technology was just like a webinar, with voice, slides, click to a bio of the speaker, and in theory a way to ask questions by typing, although the talk went long and there was no Q&A. Webinar technology is working pretty well these days and I’ve attended a few and given a couple.
  2. the panels were OK, although my connection packed it in in the last one (I may have worn out my internet connection and entropy set in). One problem was it was difficult to figure out who was speaking if their accents were the same (luckily I knew some of the participants and some were easy to pick out). Another colleague, Steve Cox, suggested that it would be good to indicate who is speaking at any time. Perhaps have their pictures up and some kind of “flying fickle finger of fate” (I know, it shows my age) move around to indicate who is talking at what point, or highlight their picture.
  3. I participated in two of the organised chat sessions a bit. Their were some interesting comments (but see below).
  4. Although the numbers were suspect due to double counting, the list of participants in different parts of the virtual conference centre were useful to browse and find old friends and colleagues and set up a private chat or message interchange. I found several and chatted to a few. Turns out you could be in more than one place at once, as Frank also found. So even virtual conferences let you meet old friends! And at times there were way over 400 attendees, which seems pretty good.

Not so good bits:

  1. There was a virtual tradeshow (exhibit floor) as part of the conference. About 8 vendors. You could pick up pdfs and watch video demonstrations and also “chat” to the exhibitor reps. The virtual coffee offered by the vendors was both vaporous and tasteless (if you haven’t figured that out …. it is a joke). Didn’t really work in many ways. One interesting bit was that you could join the chat and observe the interchange between other “attendees” and the reps.
  2. The structured chats about specific topics could be confusing as they would turn into multiple dialogues and at times it was easy to lose the train of who was responding to who about what. Kind of like a multi threaded email list but without anything to mark the different threads. Perhaps the technology here could be improved to mark, maybe by colour coding, each new thread when it starts, and when people respond they could pick a colour/name to indicate what thread they are responding to. Would also help because people’s typing speed and connections introduce unexpected latency in response at times.
  3. I missed out on the chance to create an avatar for myself at the show (maybe the instructions were in small print or I just skipped it when registering and then forgot to go back and try it). About 10-15% of people had avatars - usually cartoonish heads from somewhere. But Frank used a web site to take a photo and turn it into an avatar (see his blog here). Although he somehow managed to “de-age” a bit (the Benjamin Button effect?), it looked enough like him that this would be useful if everyone did it either with a photo or an avatar-ised photo. Perhaps this could be encouraged a little more forcefully in future events like this - photos might be even more useful than realistic avatars.
  4. Of course, it is all too easy to try to do several things at once, and as a result, not really “attend” even when you are attending. Might be good to have a way to mark that your avatar or name is temporarily “sleeping” or on a “Call” of some kind when you have stepped away.

There are all small niggles. What I liked best about the event is that it happened. As we all know, the economic situation has caused reductions in attendance at events all over the world. Webinars have proven their value for many companies and been useful for those attending in giving them information. Experimenting with web technology to make events like this is both a good thing and a way of improving the technology. As long as we don’t always become virtual - both because meeting real human beings face to face is really important, and because so far, virtual coffee is really bad.

I just went back to the show link here, and I see a note saying access to the show will be available June 23, 2009 - so this may be an archive of the keynote and other talks, panels, etc. Check it out!

DAC 2009 Preview

Filed under: Uncategorized — June 17, 2009 @ 3:48 pm

This year, I thought that I might not make it to the 2009 Design Automation Conference, even though it is back in San Francisco, my back yard, so to speak. This is because during the previous two weeks I will be on a busman’s holiday at a summer school, teaching at ACACES 2009, and giving a talk at SAMOS 2009. However, I am fortunate that I will be able to attend a fair bit of DAC and will be writing about it on this blog, just as I did for DATE 2009.

With the logistics taken care of, what is there to see and do at DAC? The answer, as with DATE and other medium to large conferences, is two-fold: Lots! and perhaps Too Much! There are a large number of parallel activities with parallel technical sessions, panels in the exhibit, workshops, tutorials, co-located events and ancillary meetings and events. If you graze through the advance programme (Sunday-Friday) pdf, you will find a cornucopia or smorgasbord of tasty treats. Here are just a few of many that caught my eye:

  1. The Sunday workshop on Multiprocessor System-on-Chip: Current Trends and the Future
  2. Also on Sunday, the 6th. UML-SOC workshop
  3. On Monday and Tuesday, a colocated event - the Symposium on Application Specific Processors (I am helping to organise part of it)
  4. On Monday from 1-2 in the Exhibit, a Pavilion Panel: Hogan’s Heroes: The Long Road to System Level Signoff
  5. The Monday tutorial on High Level Synthesis
  6. A Monday Exhibitor Forum on Architectural Exploration from 10:15 to 12:15
  7. Also on Monday (do you see what I mean about parallel events??) the North American System C User Group meeting from 11:30 to 5.
  8. A Tuesday Panel from 10:30 to 12 on System Prototypes
  9. A Tuesday Pavilion Panel from 3:30 to 4:15 on Embedded Multicore: Multi-Opportunities, Multi-Challenges
  10. A Tuesday technical session on Advances in Embedded System Modeling and Optimization from 4:30 to 6 pm
  11. The Wednesday workshop on Virtual Platforms
  12. The Wednesday User track session from 4:30 to 6 on Front-End Development: Embedded Software and Design Exploration
  13. Bill Dally’s Wednesday keynote from 11:15 to 12:15: The End of Denial Architecture and the Rise of Throughput Computing
  14. Also on Wednesday, not on the DAC programme, Mentor Graphics is hosting a lunchtime ESL event: ESL Driving Forces: The Art of Architecture Design and Verification. (You need to preregister at the link).
  15. On Thursday, the panel from 4:30 to 6 pm: The Wild West: Conquest of Complex Hardware-Dependent Software Design
  16. A technical session on Thursday from 2 to 4 pm: Network-On-Chip Advances for Power, Reliability and the Memory Bottleneck

Whew! That’s enough for now! My calendar is hardly filled and I’m already tired! And there will be interesting exhibits too, especially from new exhibitors. But I think you get the picture.

If anyone else has looked through the DAC 2009 prorgramme and has other suggestions, feel free to leave a comment.

Tech development …. as seen by Hollywood

Filed under: Uncategorized — June 10, 2009 @ 10:46 pm

Last night I saw a rerun of the movie Sneakers, from 1992, with Robert Redford, Sidney Poitier, Ben Kingsley and several other well-known actors.   It reminded me that Hollywood is amusing whenever it  uses advanced technology as an incidental device, but it is even more amusing when the movie’s main focus is technology developers.

Almost all these movies feature a “MacGuffin“, a term popularised by Alfred Hitchcock and defined by Wikipedia as

a plot element that catches the viewers’ attention or drives the plot of a work of fiction.

(this definition itself quoted from “Wordnet 3.0″ from Princeton University).

One of the more famous MacGuffins in film being the statue in The Maltese Falcon.

In movies focused on tech or technology development, the MacGuffin is usually a magic box (hardware + software) or very commonly a magic piece of software, that can do totally amazing things, such as decrypt all known encryption schemes, allow you to take over any computer system anywhere, display computer-based systems on ordinary terminals with graphics better than anything in the real world - all with fewer keystrokes than it usually takes to login in the morning.   Sneakers had a magic  box; Disclosure had a virtual reality based three dimensional filing system like no filing cabinet you have ever seen; and The Net had a program that can edit every online bit of information about anyone and thus destroy them (this is a very common tech device).

These magic programmes that allow one to assume powers and abilities far beyond the capabilites of normal men and women also feature in thrillers such as The Italian Job remake (2003), where a few keystrokes gives the minor “tech” character complete control over the entire Los Angeles traffic system, and many others.

What else do we learn from Hollywood and its depiction of technology?

  • From Sneakers, old hackers grow up to be Robert Redford (good) or Ben Kingsley (bad)
  • From Disclosure, all engineering managers are Michael Douglas, and all executives are Demi Moore
  • From movies as old as 2001, Colossus:  The Forbin Project, War Games, through the Terminator movies,  the Matrix series, and recently Eagle Eye:  Any computer that is sufficiently advanced will become self-aware (or very confused), and either want to destroy all humans or take them over for its own purposes
  • From 2001’s Antitrust, there is a large monopolising software company set in “Portland” (viz, rainy northwestern US city), run by a gatesian CEO played by Tim Robbins, with a ballmerian executive, that (of course) will murder you if your MacGuffin is better than their MacGuffin - especially if you plan to make it available for free.

What are your favourite tech-related movies?  What lessons do they teach the world about technology?

France, France and France again: RSP 2009, June 23-26, Paris

Filed under: Uncategorized — May 14, 2009 @ 3:44 pm

As a European who doesn’t live there, I certainly enjoy visiting Europe whenever I can. And I volunteer to help with perhaps too many programme committees and the like. This year I was asked to review some papers for RSP 2009, June 23-26 in Paris: the 20th. IFIP/IEEE International Symposium on Rapid System Prototyping. (I had been invited to be on a panel at the 19th. in 2008, held in Monterey, a slightly easier place to get to for me. Unfortunately, it seems to not be on their 2009 web site! I know it wasn’t a dream….). This year’s edition will be held in Paris. I won’t be able to attend, but perhaps you might.

Another case of “No Caption Necessary”

The programme of RSP 2009 is here and the main web pages include links to registration and other useful information. The programme looks like an interesting mix of invited and selected talks, along with keynotes and tutorials. If you can consider a trip to Paris in late June, it is worth a look.

The return of “design by contract”

Filed under: Uncategorized — May 11, 2009 @ 8:00 pm

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!

Is DMA an MoC?

Filed under: Uncategorized — May 8, 2009 @ 2:15 am

Something that has interested me the last little while is the whole area of DMA (Direct Memory Access) and its role in multiprocessor/multicore systems, streaming multimedia applications, and the like.   DMA controllers are often programmed at a pretty “close to the metal” level, without a great deal of abstraction.   Sometimes looking at tasks with DMA transfers programmed in close to algorithmic code with DMA programmed by setting registers to obscure hex values obscures what is actually going on.

DMA to memory on a local node from an SGI publication

In addition, DMA seems to be a different “MoC” (Model of Computation) than other ones I am a bit familiar with, such as SDF (Statically scheduled dataflow) or Discrete Event (DE).  In a dataflow model, tokens arrive at input ports for an “actor” and when enough have arrived according to defined constraints, the module fires, running to completion and producing output tokens.  DMA seems to me to be “anticipatory dataflow”, where a task running perhaps on one processor finishes enough of its processing on some data, producing outputs to be handed off to another processor and its task for further computation, but does not wait until it has totally run to completion but uses DMA to transfer tokens in anticipation of the need for them by its counterpart.   Rather than using for example FIFO channels to transfer tokens, DMA uses other mechanisms such as ping-pong buffers in destinations and more elaborate DMA controllers allow transactions to be added in flight.   To avoid blocking, it is important to anticipate when a transfer can be consumed (thus, ‘anticipatory’) and to avoid starvation, it is important to send data when needed.

I’ve done informal and cursory web searches to find out what abstractions people might be using to make DMA programming a littler easier, and actually not found much, other than some Microsoft CE APIs from several years ago.   Are there defined APIs for DMA in widespread use and not specific to particular controllers and SW stacks but generic and configurable enough to be used on different targets?  If anyone has a pointer to the same, please leave a comment.

ESWeek 2009: submission deadlines very soon

Filed under: Uncategorized — April 28, 2009 @ 6:35 pm

One of the events that I have attended a couple of times in the past is ESWeek, an amalgamation of three separate subconferences: CODES+ISSS (itself an amalgamation of two conferences), CASES, and EMSOFT. As a result it offers a greater critical mass of attendees that the three conferences on their own, and in these current economic times when people need to be extra-prudent on travel, it is much better to combine events. It also allows a much more interesting technical programme, with three keynotes and a wider variety of technical presentations. Attendees can freely hop between the sub-conferences.

This year ESWeek 2009 is in Grenoble from October 11-16. The deadlines for all three conferences for submissions is very soon:

  • Abstract submission Friday 1 May 2009
  • Full paper submission Friday 8 May 2009

So if you have an idea for a paper, this allows you to whip up an abstract, submit it and then have a week to finish it and submit it for consideration. Perhaps at this late date this will only be useful for “works in progress”. You can submit to one of the three conferences.

However, ESWeek is also looking for tutorial ideas, and here the deadline is a little better: 18 May 2009. Tutorials will be held Sunday 11 October, and will be half day - two in the morning, two in the afternoon. They can be on any theme relevant to the three conferences and embedded systems in general, and can include research, commercial aspects or both. To submit, send the following proposal details:

  • title
  • 200 word abstract
  • organisers and proposed speakers with brief bio and affiliation
  • list of topics to be covered
  • if the tutorial has been held previously, please list conference, date, number of attendees

to Luca Carlone, luca@cs.columbia.edu. Please write “ESWEEK 2009 Tutorial Proposal” on the email subject line.

As someone involved in ESWeek in the past and present I think it deserves your consideration either as a presenter or attendee or both.

Final upDATE 2009: Friday ESL Synthesis workshop, 24 avril

Filed under: Uncategorized — April 24, 2009 @ 12:36 pm

Today was DATE workshop day, and they ran 8 simultaneous workshops.  I attended and participated in the one on The Future of ESL Synthesis.  Here there was an interesting dichotomy on the definition of ESL Synthesis.  I, and others in industry, tended to take the position that ESL synthesis today is today’s high-level synthesis:  driven by code in C, C++ and/or SystemC, synthesise and explore various implementations of those functions in an automated way, down to gates (usually via RTL synthesis as an intermediary).   However, others in research tended to define it as future synthesis of complex HW-SW multicore platforms, and possibly also embodying tools to map or code-generate specific applications onto those complex platforms.   By the panel at the end, I think we had good consensus that this might well be the viable and likely future for ESL synthesis, embodying synthesis of SW tasks, HW blocks, ASIPs, and interfaces and communications (especially the last two); but some of us chose to focus on what is real today.   Lots of interesting discussion and a number of interesting presentations.

I took a slightly orthogonal view to ESL synthesis, talking about Application-specific Instruction set Processors (ASIPs) as a “third way” for designers and architects to consider, between the 2 extremes of fixed instruction set architecture (ISA) processors, and new dedicated hardware blocks.  Some interesting questions from the audience after the talk.

DATE 2009 has been another good technical event and the organisers pulled off a good event in what must have been difficult circumstances.

upDATE 2009 Day 3: jeudi le 23ieme avril

Filed under: Uncategorized — April 23, 2009 @ 5:52 pm

Today at DATE (some pictures of the keynote on the web page) - the last day of the conference and exhibition (tomorrow is Workshop day), was Multicore Applications Day.   I attended three of the sessions - speaking in one, on a panel in another, observing in a third, and also attended the lunchtime keynote.   This was an extremely interesting day.   At the end of the day I was torn between the final Multicore panel on programming multicore, and a technical session on ASIPs for wireless - and went to the ASIPs for wireless (Baseband Processors for MIMO and UWB Communication Systems).  Too many good things going on in parallel.

The first session was an embedded tutorial on Understanding Multicore Technologies.  I spoke on multicore architectures, Pierre Paulin on Programming Models and Rainer Leupers on Multicore Design Environments.  I found the secret of getting lots of people to come up to you after the session - include a couple of impossibly long URLs on a couple of slides and offer to send the slides if people come up to you after the session to give you a card!

Pierre Paulin in his talk coined some new terms:   The “CoresRUs”, “Coremporium”, “Corerama” and reused the hot term from a few years ago - we want to avoid “Corezilla”.   To add my own atrocious pun to the mix, I would add we want also to avoid a “Coretastrophe”.

Our modern “Corezilla”

Rainer Leupers stated unequivocally and clearly (and in large letters) on one of his slides, what has also  become a bit of a credo for myself:

Multicore design = ESL design

This is something that many people still don’t realise.  ESL is both an enabler of and necessary for successful multicore/MPSoC design.

The Multicore Products for Mass Market Applications session had a particularly interesting talk by Kees van Berkel of ST-Ericsson on Multicore for Mobile Phones which had lots of good analysis of processing requirements and how they have changed over time with standards, and how they have pushed architectural development.   He has a paper in the proceedings that includes a number of his analyses and if you lay a hand on a copy you should find it of interest.

Attendance stayed pretty good up until the last sessions.  All in all, with the chances to meet interesting new people and old friends and have some vigorous and useful technical interchanges, DATE 2009 lived up to my expectations.  And there are still workshops to go tomorrow.

upDATE 2009: Nice, le mercredi, 22 avril

Filed under: Uncategorized — April 22, 2009 @ 5:44 pm

The weather in Nice has turned sunny and now is the time for “le beau risque” - ditch the parapluie in the hotel room and hope it stays dry.  The meteo looks good for now….

DATE 2009 day 2 was a pretty sunny day inside the Acropolis.  And outside too.  The DATE party took place this evening mostly on the Terrace of the Acropolis.  Nice views and good food.  Since I don’t have a camera with me, I found a picture of a totally unrelated conference party at the same place just to give you a feeling for it:

Nice looking north from the terrace of the Acropolis conference centre from a totally unrelated conference that took place in April 2003(!) - the first Joint EGS-AGU-EUG Assembly (Geoscientists)

But the conference today was full of interest.  One thing that I noted is that due to the current state of the electronics industry, there were large changes in most of the panel sessions.   Some people could not come, and in other cases there were substitutions of people from within the same company, or of people from completely different companies.  The number of panelists was often reduced from an overly ambitious 6 to a more manageable 4 or 5.  And in all cases, the new panelists were in my opinion just as good as those they replaced - so the quality of the conference was kept up well.

I managed to see some interesting technical papers on new approaches to design space exploration, a panel on Vertical integration vs. disaggregation and trends there, a very interesting panel on the current state of ESL methodologies, and another one on Architectures and integration for Programmable SoCs.   The discussions were at times lively (I tried to liven things up by asking questions - useful ones, I hope).  And I also was a panelist in the exhibition theatre on multicore.   This was interesting - not being well timed by the organisers, nor well advertised, it conflicted partly with lunch and partly with a lunchtime keynote.   So the audience when the 5 of us were on the platform was exactly zero.   However, someone volunteered to go get it announced on the Tannoy, and before those announcements and by the time the audience outnumbered the panelists and moderator (6 to 5), we started.  Then the 2 announcements interrupted John Goodacre of ARM, who took it in good spirits…….. and lo and behold, the audience grew to 40, 50 and at its peak was over 60!   Saved by the PA system!  And we had a pretty good discussion too plus some audience questions, and drowned out a bit of the noise in the exhibition.

Another thing I noted wandering through the exhibition was that despite it being fairly small and at times not too busy, there were times when it was very busy with a lot of people talking technology.  DATE mixed in the exhibition theatre, a university booth with a rotating programme, a European projects area, and posters.   Many of these areas were very busy indeed, with a lot of technical chat going on.  I had the opportunity to make some new design acquaintances both during the day and at the party and have some long chats with some of them on what we and they are doing.  This continues in my book the strength of DATE as a technical conference and place for interchange.

Another note from yesterday - I had a chat with some  people from Axilica whose FalconML tool allows you to generate SystemC and C++ for parts of your design from a mixture of UML/SysML and C++.  I have not used this tool myself, but it is interesting to note as a development in the general UML for SoC  and systems design area, which has been an interest of mine for several years.  Not one I have much time to dive into these days, but something I like to keep track of as time permits.