Methodologies for the Design of Application-Specific Reconfigurable VLIW Processors

Sommario Il mercato dei dispositivi dedicati a specifiche applicazioni (detti anche " sis-temi embedded ") come per esempio stampanti laser, telefoni cellulari o cen-traline di controllo per auto, ` e in continua espansione. La realizzazione di tali sistemì e piuttosto complessa, a causa dei notevoli vincoli di progetto e ai requisiti sempre pì u stringenti del mercato in termini di tempo congiunto di progettazione e produzione (time to market). Tali dispositivi sono, infatti, spesso soggetti a vincoli di tempo reale, consumo di potenza, dimensione, prestazioni e costo che rendono spesso inadatta una tecnologia realizzativa di tipo tradizionale (per es. completamente hardware o software), anche in re-lazione alla flessibilità necessaria per seguire i rapidi mutamenti del mercato. Un recente filone di ricerca, chiamato " hardware-software codesign " , ha posto le basi per la nascita di una modalità di progetto unificata, a livello di sis-tema, in grado di avvantaggiarsi delle caratteristiche di flessibilità e basso costo di realizzazioni basate su processori e, nel contempo, delle elevate prestazioni e potenzialmente basso consumo di potenza che la presenza di hardware ded-icato comporta. L'architettura tipica di tali sistemi prevede un processore standard in abbinamento a uno o pì u componenti hardware ove saranno eseguite le parti " critiche " in termini prestazionali dell'intera applicazione. Parallelamente al codesign, sono emerse altre strategie di progetto volte a raggiungere un compromesso fra le esigenze di utilizzo di componenti standard e lo sviluppo di dispositivi ad-hoc. Un approccio ormai abbastanza con-solidato, soprattutto per applicazioni che richiedono elaborazioni continue e non " convenzionali " dei dati, come per esempio elaborazioni di tipo DSP, at-tribuisce un ruolo centrale nell'elaborazione a un microprocessore, il cui in-sieme delle istruzioni viene progettato in base alle esigenze specifiche dell'ap-plicazione. Tali CPU, dette ASIP (Application Specific Instruction Set Processor) prevedono un'accurata fase di analisi dei requisiti di progetto, al fine di determinare l'insieme delle istruzioni davvero ottimale, e lo sviluppo di stru-menti di produttività software (compilatori, ambienti di debug, ...) da differen-ziare caso per caso. I recenti progressi della microelettronica, soprattutto nel campo delle tec-nologie hardware programmabili, offrono ormai un'opportunità alternativa per lo sviluppo di sistemi dedicati flessibili. Stanno infatti assumendo un par-ticolare consenso fra i progettisti le FPGA (Field Programmable Gate Array) che sono dispositivi composti da un insieme regolare di celle, ognuna in grado di effettuare elaborazioni che possono variare da semplici operazioni logiche sino a una macchina a stati finiti di piccola …

[1]  D. Bursky High-density FPGA family delivers megagate capacity , 1997 .

[2]  G. Goossens,et al.  PROGRAMMABLE CHIPS IN CONSUMER ELECTRONICS AND TELECOMMUNICATIONS , 1996 .

[3]  C. R. Moore The PowerPC 601 microprocessor , 1993, Digest of Papers. Compcon Spring.

[4]  Brad L. Hutchings,et al.  A dynamic instruction set computer , 1995, Proceedings IEEE Symposium on FPGAs for Custom Computing Machines.

[5]  Cesare Alippi,et al.  Genetic-algorithm programming environments , 1994, Computer.

[6]  R. M. Tomasulo,et al.  An efficient algorithm for exploiting multiple arithmetic units , 1995 .

[7]  Henk Corporaal,et al.  Automatic detection of recurring operation patterns , 1999, Proceedings of the Seventh International Workshop on Hardware/Software Codesign (CODES'99) (IEEE Cat. No.99TH8450).

[8]  Michael J. Flynn,et al.  Computer Architecture: Pipelined and Parallel Processor Design , 1995 .

[9]  Scott A. Mahlke,et al.  IMPACT: An Architectural Framework for Multiple-Instruction-Issue Processors , 1998, 25 Years ISCA: Retrospectives and Reprints.

[10]  James E. Smith,et al.  PowerPC 601 and Alpha 21064: a tale of two RISCs , 1994, Computer.

[11]  Bernardo Kastrup Automatic Hardware Synthesis for a Hybrid Reconfigurable CPU Featuring Philips CPLDs , 1998, ArXiv.

[12]  William H. Mangione-Smith,et al.  Function unit specialization through code analysis , 1999, 1999 IEEE/ACM International Conference on Computer-Aided Design. Digest of Technical Papers (Cat. No.99CH37051).

[13]  John Wawrzynek,et al.  Instruction-Level Parallelism for Reconfigurable Computing , 1998, FPL.

[14]  Harvey F. Silverman,et al.  Processor reconfiguration through instruction-set metamorphosis , 1993, Computer.

[15]  Jonathan Rose,et al.  The Transmogrifier-2: a 1 million gate rapid prototyping system , 1997, FPGA '97.

[16]  John Paul Shen,et al.  Efficacy and performance impact of value prediction , 1998, Proceedings. 1998 International Conference on Parallel Architectures and Compilation Techniques (Cat. No.98EX192).

[17]  Maya Gokhale,et al.  NAPA C: compiling for a hybrid RISC/FPGA architecture , 1998, Proceedings. IEEE Symposium on FPGAs for Custom Computing Machines (Cat. No.98TB100251).

[18]  Michael D. Smith,et al.  A high-performance microarchitecture with hardware-programmable functional units , 1994, Proceedings of MICRO-27. The 27th Annual IEEE/ACM International Symposium on Microarchitecture.

[19]  Scott A. Mahlke,et al.  Comparing static and dynamic code scheduling for multiple-instruction-issue processors , 1991, MICRO 24.

[20]  John Wawrzynek,et al.  Garp: a MIPS processor with a reconfigurable coprocessor , 1997, Proceedings. The 5th Annual IEEE Symposium on Field-Programmable Custom Computing Machines Cat. No.97TB100186).

[21]  Glenn Reinman,et al.  Selective value prediction , 1999, ISCA.

[22]  Joseph A. Fisher,et al.  Trace Scheduling: A Technique for Global Microcode Compaction , 1981, IEEE Transactions on Computers.

[23]  David F. Bacon,et al.  Compiler transformations for high-performance computing , 1994, CSUR.

[24]  Richard R. Oehler,et al.  IBM RISC System/6000 Processor Architecture , 1990, IBM J. Res. Dev..

[25]  Jan Hoogerbrugge,et al.  ConCISe: a compiler-driven CPLD-based instruction set accelerator , 1999, Seventh Annual IEEE Symposium on Field-Programmable Custom Computing Machines (Cat. No.PR00375).

[26]  Masaharu Imai,et al.  An ASIP instruction set optimization algorithm with functional module sharing constraint , 1993, ICCAD.

[27]  T. C. May,et al.  Instruction-set matching and selection for DSP and ASIP code generation , 1994, Proceedings of European Design and Test Conference EDAC-ETC-EUROASIC.

[28]  Mike Johnson,et al.  Superscalar microprocessor design , 1991, Prentice Hall series in innovative technology.

[29]  Rajiv Gupta,et al.  Value prediction in VLIW machines , 1999, ISCA.

[30]  Scott Hauck,et al.  Configuration prefetch for single context reconfigurable coprocessors , 1998, FPGA '98.

[31]  David E. Goldberg,et al.  Genetic Algorithms in Search Optimization and Machine Learning , 1988 .

[32]  Rainer Leupers,et al.  Instruction selection for embedded DSPs with complex instructions , 1996, Proceedings EURO-DAC '96. European Design Automation Conference with EURO-VHDL '96 and Exhibition.

[33]  Miodrag Potkonjak,et al.  Synthesis of application specific programmable processors , 1997, DAC.

[34]  Mike Tien-Chien Lee,et al.  Power analysis and low-power scheduling techniques for embedded DSP software , 1995 .

[35]  Alessandro De Gloria,et al.  Design of an ASIP architecture for low-level visual elaborations , 1997, IEEE Trans. Very Large Scale Integr. Syst..

[36]  Kemal Ebcioglu,et al.  Compilers for Instruction-Level Parallelism , 1997, Computer.

[37]  Robert P. Colwell,et al.  A VLIW architecture for a trace scheduling compiler , 1987, ASPLOS.

[38]  Michael Gschwind,et al.  Instruction set selection for ASIP design , 1999, Proceedings of the Seventh International Workshop on Hardware/Software Codesign (CODES'99) (IEEE Cat. No.99TH8450).

[39]  Andreas Krall,et al.  Instruction Scheduling for Complex Pipelines , 1992, CC.

[40]  Joan L. Mitchell,et al.  JPEG: Still Image Data Compression Standard , 1992 .

[41]  Michael J. Flynn,et al.  Instruction Window Size Trade-Offs and Characterization of Program Parallelism , 1994, IEEE Trans. Computers.

[42]  Byung Ro Moon,et al.  A Two-Dimensional Embedding of Graphs for Genetic Algorithms , 1997, ICGA.

[43]  Scott Hauck,et al.  An Introduction to Reconfigurable Computing , 2000 .

[44]  Lex Augusteijn,et al.  Instruction Scheduling for TriMedia , 1999, J. Instr. Level Parallelism.

[45]  Rainer Leupers,et al.  Constraint driven code selection for fixed-point DSPs , 1999, DAC '99.

[46]  Hugo De Man,et al.  Instruction set definition and instruction selection for ASIPs , 1994, Proceedings of 7th International Symposium on High-Level Synthesis.

[47]  Scott Hauck,et al.  The roles of FPGAs in reprogrammable systems , 1998, Proc. IEEE.

[48]  John Wawrzynek,et al.  Simple Profiling System for SUIF , 1996 .

[49]  Mikko H. Lipasti Value locality and speculative execution , 1998 .

[50]  Monica S. Lam,et al.  Maximizing Multiprocessor Performance with the SUIF Compiler , 1996, Digit. Tech. J..

[51]  James E. Smith,et al.  The microarchitecture of superscalar processors , 1995, Proc. IEEE.

[52]  John Wawrzynek,et al.  Fast module mapping and placement for datapaths in FPGAs , 1998, FPGA '98.

[53]  Philip G. Emma,et al.  Understanding some simple processor-performance limits , 1997, IBM J. Res. Dev..

[54]  Jonathan Rose,et al.  CALL FOR ARTICLES IEEE Design & Test of Computers Special Issue on Microprocessors , 1996 .

[55]  Ralph Wittig,et al.  OneChip: an FPGA processor with reconfigurable logic , 1996, 1996 Proceedings IEEE Symposium on FPGAs for Custom Computing Machines.