The MOLEN polymorphic processor

In this paper, we present a polymorphic processor paradigm incorporating both general-purpose and custom computing processing. The proposal incorporates an arbitrary number of programmable units, exposes the hardware to the programmers/designers, and allows them to modify and extend the processor functionality at will. To achieve the previously stated attributes, we present a new programming paradigm, a new instruction set architecture, a microcode-based microarchitecture, and a compiler methodology. The programming paradigm, in contrast with the conventional programming paradigms, allows general-purpose conventional code and hardware descriptions to coexist in a program: In our proposal, for a given instruction set architecture, a onetime instruction set extension of eight instructions, is sufficient to implement the reconfigurable functionality of the processor. We propose a microarchitecture based on reconfigurable hardware emulation to allow high-speed reconfiguration and execution. To prove the viability of the proposal, we experimented with the MPEG-2 encoder and decoder and a Xilinx Virtex II Pro FPGA. We have implemented three operations, SAD, DCT, and IDCT. The overall attainable application speedup for the MPEG-2 encoder and decoder is between 2.64-3.18 and between 1.56-1.94, respectively, representing between 93 percent and 98 percent of the theoretically obtainable speedups.

[1]  Roberto Guerrieri,et al.  A VLIW processor with reconfigurable instruction set for embedded applications , 2003 .

[2]  Scott Hauck,et al.  Reconfigurable computing: a survey of systems and software , 2002, CSUR.

[3]  Werner Buchholz The IBM System/370 Vector Architecture , 1986, IBM Syst. J..

[4]  Luciano Lavagno,et al.  Hardware/software design space exploration for a reconfigurable processor , 2003, 2003 Design, Automation and Test in Europe Conference and Exhibition.

[5]  Frederick P. Brooks,et al.  Computer architecture - concepts and evolution , 1997 .

[6]  Stamatis Vassiliadis,et al.  The MOLEN ρμ-coded processor , 2001 .

[7]  Ed F. Deprettere,et al.  Laura: Leiden Architecture Research and Exploration Tool , 2003, FPL.

[8]  Jürgen Becker,et al.  Configware and morphware going mainstream , 2003, J. Syst. Archit..

[9]  Stamatis Vassiliadis,et al.  Arbitrating instructions in an ρμ-coded CCM , 2003 .

[10]  Stamatis Vassiliadis,et al.  Arbitrating Instructions in an pmu-Coded CCM , 2003, FPL.

[11]  Brian B. Moore,et al.  The IBM System/370 Vector Architecture: Design Considerations , 1988, IEEE Trans. Computers.

[12]  Stamatis Vassiliadis,et al.  Compiling for the Molen Programming Paradigm , 2003, FPL.

[13]  J.M.P. Cardoso,et al.  Compilation for FPGA-based reconfigurable hardware , 2003, IEEE Design & Test of Computers.

[14]  Stamatis Vassiliadis,et al.  Field-Programmable Custom Computing Machines - A Taxonomy - , 2002, FPL.

[15]  Scott Hauck,et al.  The Chimaera reconfigurable functional unit , 1997, IEEE Transactions on Very Large Scale Integration (VLSI) Systems.

[16]  Stamatis Vassiliadis,et al.  Microcode Processing: Positioning and Directions , 2003, IEEE Micro.

[17]  Stamatis Vassiliadis,et al.  The Molen Programming Paradigm , 2004, SAMOS.

[18]  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).

[19]  Stamatis Vassiliadis,et al.  The sum-absolute-difference motion estimation accelerator , 1998, Proceedings. 24th EUROMICRO Conference (Cat. No.98EX204).

[20]  Prithviraj Banerjee,et al.  A C compiler for a processor with a reconfigurable functional unit , 2000, FPGA '00.

[21]  A. Lodi,et al.  A VLIW processor with reconfigurable instruction set for embedded applications , 2003, 2003 IEEE International Solid-State Circuits Conference, 2003. Digest of Technical Papers. ISSCC..

[22]  Stamatis Vassiliadis,et al.  The MOLEN rho-mu-Coded Processor , 2001, FPL.

[23]  Stamatis Vassiliadis,et al.  Precise Interrupts , 1996, IEEE Micro.

[24]  W. Paul,et al.  Computer Architecture , 2000, Springer Berlin Heidelberg.