Software tools or embedded reconfigurable processors
Claudio Mucci · AMS Dottorato Institutional Doctoral Theses Repository (University of Bologna) · 2007
reusable block in modern systems-on-chips (SoC) and the high-level languages used for programming them are well-known skills among embeddedapplication developers.A new processor-based computation paradigm, namely "adaptive computing", appeared in the early 90s as a promising way to bridge the gap between general purpose microprocessors and application specific integrated circuits (ASICs), in order to support new applications which were both computational intensive and energy hungry.The most appealing idea was to add application specific hardware accelerators in a standard processor architecture (typically a RISC processor) to improve performance on application critical hot-spots, while letting the processor handle the control parts.It should also be noted that, given a technology node, the area required for a new processor architecture increase by a factor that is greater than the achieved performance improvements.This means that the traditional computing paradigm offered by processors itself loses in computational efficiency (operations per second per mm ), thus causing an undeniable crisis of standard and well-known devices.State of the art system-on-chips for mobile applications, like ST Nomadik, Philips Nexperia, TI OPAM and Intel PXA, meet performance requirements and power efficiency using the processor (usually an ARM9 core) as a supervisor (for example, the operating system runs on the processor), while the computational intensive parts are commonly demanded to application-specific hardware accelerators.From an engineering point of view, in this way, the effort of accelerating an application focuses on a few computational intensive kernels, thus reducing the time-to-develop.A wide scenario of adaptive computing approaches has been presented in the literature.We can distinguish among three different approaches: Application-Specific Standard Processors (ASSP), which are processors featuring a customized instruction set targeting a given application.Application specific instructions include, for example, the simple multiply-and-accumulate operation in DSPs or the Sum of Absolute