June 18, 2011- Embedded computing systems must meet tight cost, power consumption, and performance constraints. If one design requirement dominated, life would be much easier for embedded system designers, i.e., they could use fairly standard architectures with easy programming models.
But because the three constraints must be met simultaneously, embedded system designers have to mold hardware and software architectures to fit the needs of applications. Specialized hardware helps to meet performance requirements for lower energy consumption and at less cost than would be possible from a general-purpose system.
As the name implies, hardware/ software co-design means jointly designing hardware and software architectures to meet performance, cost, and energy goals. Co-design is a radically different methodology than the layered abstractions used in general-purpose computing.
Because codesign tries to optimize many different parts of the system at the same time, it makes extensive use of tools for both design analysis and optimization.
Increasingly, hardware/software co-design is being used to design non-embedded systems as well. For example, servers can be improved with specialized implementations of some of the functions on their software stacks. Co-design can be applied to Web hosting just as easily as it can be applied to multimedia.
In this series we will first take a brief look at some hardware platforms that can be used as targets for hardware/ software co-design, followed by examination of performance analysis, hard ware/ software co-synthesis and finally, hardware/ software co-simulation.
By Wayne Wolf. (Wolf is currently the Georgia Research Alliance Eminent Scholar holding the Rhesa "Ray" S. Farmer, Jr., Distinguished Chair in Embedded Computer Systems at Georgia Tech's School of Electrical and Computer Engineering (ECE).)
This brief introduction has been excerpted from the original copyrighted article.
View the entire article on the EE Times Embedded website.