Slide 19 of 46
Many applications are first described at a high level, as an algorithm or system specification and their first implementation is often as software on a general purpose simulation engine. Depending on the application and performance requirements, the algorithm may at some time be implemented as a special-purpose hardware module or on an FPGA. Eventually, as general-purpose (i.e. software programmable) processors reach a feasibility region that matches the application, it is often reimplemented in software. Eventually, as we learn more about the general-purpose nature of specific aspects of an application, they may be added to the architecture (e.g. MMX instructions)
In the military world where specific applications may have very long lifetimes, it may be necessary to port the application a number of times over its useful life if we are to keep up with the exponential improvements possible in COTS silicon.
Design technology (CAD) which supports the capture of specifications at high levels of abstraction and their retargeting to software or hardware on a variety of implementation fabrics would provide significant cost and performance leverage for military applications an is an important area of research not emphasized in the commercial world today.