This Article 
 Bibliographic References 
 Add to: 
The MOLEN Polymorphic Processor
November 2004 (vol. 53 no. 11)
pp. 1363-1375
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 one-time 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] G. Blaauw and F. Brooks Jr., Computer Architecture. Addison-Wesley, 1997.
[2] M. Sima, S. Vassiliadis, S. Cotofana, J. van Eijndhoven, and K. Vissers, Field-Programmable Custom Computing Machines A Taxonomy Proc. 12th Int'l Conf. Field Programmable Logic and Applications (FPL), pp. 79-88, Sept. 2002.
[3] K. Compton and S. Hauck, Reconfigurable Computing: A Survey of Systems and Software ACM Computing Surveys, vol. 34, no. 2, pp. 171-210, 2002.
[4] S. Hauck, T. Fry, M. Hosler, and J. Kao, "The Chimaera Reconfigurable Functional Unit," Proc. Symp. FCCM, 1997.
[5] A.L. Rosa, L. Lavagno, and C. Passerone, Hardware/Software Design Space Exploration for a Reconfigurable Processor Proc. Design, Automation, and Test in Europe Conf. (DATE), pp. 570-575, 2003.
[6] M. Gokhale and J. Stone, Napa C: Compiling for a Hybrid RISC/FPGA Architecture Proc. IEEE Symp. Field-Programmable Custom Computing Machines, pp. 126-135, Apr. 1998.
[7] F. Campi, M. Toma, A. Lodi, A. Cappelli, R. Canegallo, and R. Guerrieri, A VLIW Processor with Reconfigurable Instruction Set for Embedded Applications Proc. Int'l Solid State Circuits Conf. (ISSCC) Digest of Technical Papers, pp. 250-251, Feb. 2003.
[8] A. Ye, N. Shenoy, and P. Banerjee, A C Compiler for a Processor with a Reconfigurable Functional Unit Proc. ACM/SIGDA Symp. FPGAs, pp. 95-100, 2000.
[9] J. Becker and R. Hartenstein, Configware and Morphware Going Mainstream J. Systems and Architecture, vol. 49, nos. 4-6, pp. 127-142, 2003.
[10] A. Turjan, T. Stefanov, B. Kienhuis, and E. Deprettere, The Compaan Tool Chain: Converting Matlab into Process Networks Proc. Designer's Forum of Design, Automation, and Test in Europe Conf. 2002, pp. 258-264, 2002.
[11] S. Vassiliadis, S. Wong, and S. Cotofana, Microcode Processing: Positioning and Directions IEEE Micro, vol. 23, no. 4, pp. 21-30, July/Aug. 2003.
[12] J.M.P. Cardoso and H.C. Neto, Compilation for FPGA-Based Reconfigurable Hardware IEEE Design and Test of Computers, vol. 20, no. 2, pp. 65-75, Mar./Apr. 2003.
[13] C. Zissulescu, T. Stefanov, B. Kienhuis, and E. Deprettere, LAURA: Leiden Architecture Research and Exploration Tool Proc. 13th Int'l Conf. Field Programmable Logic and Applications (FPL), pp. 911-920, Sept. 2003.
[14] S. Vassiliadis, S. Wong, and S. Cotofana, The MOLEN$\rho \mu{\hbox{-}}{\rm Coded}$Processor Proc. 11th Int'l Conf. Field Programmable Logic and Applications (FPL), pp. 275-285, Aug. 2001.
[15] S. Vassiliadis, G. Gaydadjiev, K. Bertels, and E. Moscu Panainte, The Molen Programming Paradigm Proc. Third Int'l Workshop Systems, Architectures, Modeling, and Simulation, pp. 1-7, July 2003.
[16] E. Moscu Panainte, K. Bertels, and S. Vassiliadis, Compiling for the Molen Programming Paradigm Proc. 13th Int'l Conf. Field Programmable Logic and Applications (FPL), pp. 900-910, Sept. 2003.
[17], 2004.
[18] machsuif.html, 2004.
[19] A. Padegs, B. Moore, R. Smith, and W. Buchholz, The IBM System/370 Vector Architecture: Design Considerations IEEE Trans. Computers, vol. 37, pp. 509-520, 1988.
[20] W. Buchholz, The IBM System/370 Vector Architecture IBM Systems J., vol. 25, no. 1, pp. 51-62, 1986.
[21] M. Moudgill and S. Vassiliadis, Precise Interrupts IEEE Micro, vol. 16, no. 1, pp. 58-67, Jan. 1996.
[22] G. Kuzmanov and S. Vassiliadis, Arbitrating Instructions in an$\rho\mu{\hbox{-}}{\rm Coded}$CCM Proc. 13th Int'l Conf. Field Programmable Logic and Applications (FPL '03), pp. 81-90, Sept. 2003.
[23] Virtex-II Pro Platform FPGA Handbook. Xilinx Corp., 2002.
[24] S. Vassiliadis, E. Hakkennes, S. Wong, and G. Pechanek, The Sum-of-Absolute-Difference Motion Estimation Accelerator Proc. 24th Euromicro Conf., pp. 559-566, Aug. 1998.

Index Terms:
Custom computing machines, FPGA, firmware, reconfigurable microcode, polymorphic processors, reconfigurable processors.
Stamatis Vassiliadis, Stephan Wong, Georgi Gaydadjiev, Koen Bertels, Georgi Kuzmanov, Elena Moscu Panainte, "The MOLEN Polymorphic Processor," IEEE Transactions on Computers, vol. 53, no. 11, pp. 1363-1375, Nov. 2004, doi:10.1109/TC.2004.104
Usage of this product signifies your acceptance of the Terms of Use.