More about DIAMONDS...

Software migration

The practice knows of three ways to port software to a different architecture: recompilation, emulation and binary translation.

Recompilation is the easiest solution to implement and provides the best results, but it require the source of the program in a high level language. This is seldom the case for small microcontrollers, where the pursuit of small and fast code favors hand-tuned assembly code.

Apple's PowerMac and DEC's Alpha are two well known examples of how effective emulators are: they are able to run nearly any compiled program without any intervention. But they present two drawbacks: emulators are big and slow. Those two caracteristics go against the typical constrainst placed on microcontrolers: that they are as fast as necessary with the smallest "footprint" as possible.

That left us with binary translation. Hopefully, the very nature of the target system, a microcontroller, that prevented us from using the previous solutions now comes to our rescue. Besides being small, microntroller programs are also frozen, i.e. once all the program has been written, it is burned in silicon. Those two facts allow to translate the whole program once on a workstation and obtain a lean and efficient ported code. This is the goal of our project.

References


Back to group Back to institut Back to university
antonio@ifi.unizh.ch
last update: July 26, 1995