Automatic Generation of Application Specific Processor Libraries from a High Level Description
نویسندگان
چکیده
Application Specific Instruction Processors (ASIPs) provide enhanced performance by directly implementing application segments in hardware as custom instructions. Recent work [1, 2] automates generation of custom instructions from application source code. Speedups of up to 6 times [3] are attainable for certain benchmarks. However, instructions generated from C are often restricted to small clusters of operations due to limited inference of parallelism. For fundamental operations, e.g. Fast Fourier transform, an alternative approach is to provide libraries of optimised, parallel custom instruction implementations. We automatically generate libraries comprising hardware custom instructions, software and their associated interfaces from a high-level description. Using a single, concise description in the Quartz [4] language, we generate parameterised libraries for performance critical operations. Parameters enable exploration of hardware/software partitioning and degree of pipelining, so that the library is customised to meet the required performance and area constraints. The Quartz language is inspired by concepts from functional and relational programming. Quartz supports polymorphism and overloading with type inference, higher-order functions (functions that can be parameterised by other functions) and relational composition operators to facilitate clear and efficient description of highly parameterised hardware libraries. Our Quartz compiler generates both hardware custom instructions (in VHDL) and software (C) from a single specification. We use Quartz higher-order functions to control the partitioning between software and hardware. Thus, we produce multiple library implementations automatically, each with a different performance and area trade-off. Moreover, our approach requires only the single, concise Quartz code to be verified correct, as opposed to many hardware/software designs. Our CUSTARD [3, 5] infrastructure automatically generates application specific processors from the Quartz hardware description. CUSTARD generates synthesisable RTL for parameterisable, embedded MIPS instruction set processors including custom instructions. We support various implementation options for CUSTARD: different pipeline depths, different coupling to custom instructions and optional hard-multiplier. For accurate cycle counts, frequency and
منابع مشابه
Automatic Generation of Application-Specific Architectures for Heterogeneous MPSoC through Combination of Processors
We present a design flow for the generation of application-specific multiprocessor architectures. In the flow, architectural parameters are first extracted from a high-level system specification. Parameters are used to instantiate architectural components, such as processors, memory modules and communication networks. The flow includes the automatic generation of communication coprocessor that ...
متن کاملA CASE-Oriented Configuration Management Agent
Traditional make utilities usually lack the necessary functionality for the management of multiple configurations in one source code tree. Our CASE-oriented configuration management agent, the Viennese Make (VMake) is platform-independent and runs currently on a number of UNIX systems and on Open \.'MS. VMake supports, in addition to common m•ke features, a number of CASE tasks in sub-agents, l...
متن کاملA CASE-Oriented Configuration Management Utility
Traditional make utilities usually lack the necessary functionality for the management of multiple configurations in one source code tree. Our CASEoriented configuration management utility, the Viennese Make Utility (VMake) is platform-independent and runs currently on a number of UNIX systems and on VMS. VMake supports, in addition to common make features, a number of CASE tasks like automatic...
متن کاملOn the Computer Generation of Adaptive Numerical Libraries
Very fast runtime is crucial in many applications in scientific computing, multimedia processing, communication, and control. Most of these applications spend the bulk of the computation in wellknown mathematical functions which are provided by highly optimized libraries. The development and maintenance of these libraries has become extraordinarily difficult. Optimal performance requires multip...
متن کاملModeling Instruction Semantics in ADL Processor Descriptions for C Compiler Retargeting
Today’s Application Specific Instruction-set Processor (ASIP) design methodology often employs centralized Architecture Description Language (ADL) processor models, from which software tools, such as C compiler, assembler, linker, and instruction-set simulator, can be automatically generated. Among these tools, the C compiler is becoming more and more important. However, the generation of C com...
متن کامل