A commonly accepted technique in hardware/software co-design is to implement as many system functions as possible in software and to move performance critical functions into special-purpose external hardware in order to either satisfy timing constraints or reduce the overall execution time of a program - this is known as "software acceleration". This paper investigates the limits to the performance enhancements obtainable using software acceleration techniques. A practical target architecture, based on the use of programmable logic, is used to illustrate the problems associated with software acceleration. It is shown that normally little benefit can be obtained by applying software acceleration methods to general-purpose applications. Whereas software acceleration can profitably be used in a limited number of special-purpose applications, a designer would probably be better off developing ASIP components, based on heterogeneous multiprocessor architectures.
Unfortunately, ACM prohibits us from displaying non-influential references for this paper.
To see the full reference list, please visit http://dl.acm.org/citation.cfm?id=793511.