This Article 
   
 Share 
   
 Bibliographic References 
   
 Add to: 
 
Digg
Furl
Spurl
Blink
Simpy
Google
Del.icio.us
Y!MyWeb
 
 Search 
   
Reconfigurable Instruction Set Processors from a Hardware/Software Perspective
September 2002 (vol. 28 no. 9)
pp. 847-862

Abstract—This paper presents the design alternatives for reconfigurable instruction set processors (RISP) from a hardware/software point of view. Reconfigurable instruction set processors are programmable processors that contain reconfigurable logic in one or more of its functional units. Hardware design of such a type of processors can be split in two main tasks: the design of the reconfigurable logic and the design of the interfacing mechanisms of this logic to the rest of the processor. Among the most important design parameters are: the granularity of the reconfigurable logic, the structure of the configuration memory, the instruction encoding format, and the type of instructions supported. On the software side, code generation tools require new techniques to cope with the reconfigurability of the processor. Aside from traditional techniques, code generation requires the creation and evaluation of new reconfigurable instructions and the selection of instructions to minimize reconfiguration time. The most important design alternative on the software side is the degree of automatization present in the code generation tools.

[1] M.F. Jacome and G. de Veciana, “Design Challenges for New Application-Specific Processors,” IEEE Design&Test of Computers, vol. 17, no. 2, pp. 40–50, Apr. 2000.
[2] D. Buell, W.J. Kleinfelder, and J.M. Arnold, Splash 2: FPGA's in a Custom Computing Machine. IEEE Computer Society Press, 1996.
[3] P.M. Athanas and H.F. Silverman, “Processor Reconfiguration through Instruction-Set Metamorphosis,” Computer, vol. 26, no. 3, pp. 11-18, Mar. 1993.
[4] M. Wazlowski, L. Agarwal, T. Lee, A. Smith, E. Lam, P. Athanas, H. Silverman, and S. Ghosh, “PRISM-II Compiler and Architecture,” Proc. IEEE Workshop FPGAs for Custom Computing Machines, pp. 9-16, Apr. 1995.
[5] M.J. Wirthlin, B.L. Hutchings, and K.L. Gilson, “The Nano Processor: A Low Resource Reconfigurable Processor,” Proc. Workshop FPGAs and Custom Computing Machines (FCCM '94), pp. 23–30, 1994.
[6] R. Razdan and M.D. Smith, "A High-Performance Microarchitecture with Hardware-Programmable Functional Units," Proc. Micro-27, IEEE Computer Society, 1994, pp. 172-180.
[7] M.J. Wirthlin and B.L. Hutchings, “A Dynamic Instruction Set Computer,” Proc. IEEE Workshop FPGAs for Custom Computing Machines, pp. 99-107, Apr. 1995.
[8] R.D. Wittig and P. Chow, “OneChip: An FPGA Processor with Reconfigurable Logic,” Proc. Workshop FPGAs and Custom Computing Machines (FCCM '96), pp. 126–135, 1996.
[9] J. Hauser and J. Wawrzynek, “Garp: A MIPS Processor with a Reconfigurable Coprocessor,” Proc. IEEE Symp. FPGAs for Custom Computing Machines, pp. 12-27, Apr. 1997.
[10] S. Hauck, T. Fry, M. Hosler, and J. Kao, "The Chimaera Reconfigurable Functional Unit," Proc. Symp. FCCM, 1997.
[11] C.R. Rupp, M. Landguth, T. Garverick, E. Gomersall, and H. Holt, “The NAPA Adaptive Processing Architecture,” Proc. Workshop FPGAs and Custom Computing Machines (FCCM '98), pp. 28–37, 1998.
[12] T. Miyamori and K. Olukotun, "Remarc: Reconfigurable Multimedia Array Coprocessor (Abstract)," Proc. ACM/SIGDA Int'l Symp. Field Programmable Gate Arrays, ACM Press, New York, 1998, p. 261.
[13] J.A. Jacob and P. Chow, “Memory Interfacing and Instruction Specification for Reconfigurable Processors,” Proc. Seventh Int'l Symp. Field-Programmable Gate Arrays (FPGA '99), pp. 145–154, 1999.
[14] S. Goldstein et al., "PipeRench: A Coprocessor for Streaming Multimedia Acceleration," Proc. 26th Int'l Symp. Computer Architecture (ISCA 99), IEEE CS Press, Los Alamitos, Calif., 1999, pp. 28-39.
[15] J. Hennessy and D. Patterson, Computer Architecture: A Quantitative Approach. Morgan Kaufmann, 1995.
[16] C. Liem, P. Paulin, and A. Jerraya, “Address Calculation for Retargetable Compilation and Exploration of Instruction-Set Architectures,” Proc. Design Automation Conf., pp. 597–600, June 1996.
[17] S. Brown and J. Rose, "FPGA and CPLD Architectures: A Tutorial," IEEE Design&Test of Computers, vol. 13, no. 2, 1996, pp. 42-57.
[18] S. Shrivastava and V. Jain, “Rapid System Prototyping for High Performance Reconfigurable Computing,” Proc. 10th Int'l Workshop Rapid System Prototyping (RSP '99), pp. 32–37, July 1999.
[19] D.C. Cronquist, P. Franklin, S.G. Berg, and C. Ebeling, “Specifying and Compiling Applications for RaPiD,” Proc. Field-Programmable Custom Computing Machines 1998, Apr. 1998.
[20] A. De Hon, “DPGA-Coupled Microprocessors: Commodity ICs for the Early 21st Century,” Proc. Second Int'l Symp. Field-Programmable Gate Arrays (FPGA '94), 1994.
[21] M. Moudgill and S. Vassiliadis, Precise Interrupts IEEE Micro, vol. 16, no. 1, pp. 58-67, Jan. 1996.
[22] A.A. Chien and J.H. Byun, “Safe and Protected Execution for the Morph/AMRM Reconfigurable Processor,” Proc. Workshop FPGAs and Custom Computing Machines (FCCM '99), pp. 209–221, 1999.
[23] K. Nelson and S. Hauck, “Mapping Methods for the Chimaera Reconfigurable Functional Unit,” technical report, Northwestern Univ., 1997.
[24] T.J. Callahan and J. Wawrzynek, “Instruction Level Parallelism for Reconfigurable Computing,” Proc. Int'l Workshop Field Programmable Logic and Applications, Aug. 1998.
[25] Z.A. Ye, N. Shenoy, and P. Banerjee, “A C Compiler for a Processor with a Reconfigurable Functional Unit,” Proc. Eighth Int'l Symp. Field-Programmable Gate Arrays (FPGA '00), 2000.
[26] R. Razdan, K. Brace, and M.D. Smith, “PRISC Software Acceleration Techniques,” Proc. Int'l Conf. Computer Design: VLSI in Computers and Processors (ICCD '94), pp. 145–149, Oct. 1994.
[27] D.A. Clark and B.L. Hutchings, “Supporting FPGA Microprocessors through Retargettable Software Tools,” Proc. IEEE Workshop FPGAs for Custom Computing Machines, pp. 195-203, Apr. 1996.
[28] 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.
[29] T.J. Callahan, J.R. Hauser, and J. Wawrzynek, “The Garp Architecture and C Compiler,” Computer, vol. 33, no. 44, pp. 62–69, Apr. 2000.
[30] S.C. Goldstein, H. Schmit, M. Budiu, S. Cadambi, M. Moe, and R.R. Taylor, “PipeRench: A Reconfigurable Architecture and Compiler,” Computer, vol. 33, no. 4, pp. 70–77, Apr. 2000.
[31] M. Budiu and S.C. Goldstein, “Fast Compilation for Pipelined Reconfigurable Fabrics,” Proc. Seventh Int'l Symp. Field-Programmable Gate Arrays (FPGA '99), pp. 195–205, 1999.
[32] B. Kastrup, A. Bink, and J. Hoogerbrugge, “ConCISe: A Compiler-Driven CPLD-Based Instruction Set Accelerator,” Proc. Workshop FPGAs and Custom Computing Machines (FCCM '99), pp. 92–101, 1999.
[33] K. Bazargan, R. Kastner, and M. Sarrafzadeh, “3-D Floorplanning: Simulated Annealing and Greedy Placement Methods for Reconfigurable Computing Systems,” Proc. 10th Int'l Workshop Rapid System Prototyping (RSP '99), pp. 38–43, July 1999.
[34] G. Goossens, J. Van Praet, D. Lanneer, W. Geurts, A. Kifli, C. Liem, and P.G. Paulin, “Embedded Software in Real-Time Signal Processing Systems: Design Technologies,” Proc. IEEE, vol. 85, no. 3, pp. 436–454, Mar. 1997.
[35] S. Hauck, “Configuration Prefetch for Single Context Reconfigurable Coprocessors,” Proc. Sixth Int'l Symp. Field-Programmable Gate Arrays (FPGA '98), Feb. 1998.
[36] D.F. Bacon, S.L. Graham, and O.J. Sharp, “Compiler Transformations for High-Performance Computing,” ACM Computing Surveys vol. 26, pp. 345-420, Dec. 1994.

Index Terms:
Reconfigurable instruction set processor overview, reconfigurable logic, microprocessor, compiler.
Citation:
Francisco Barat, Rudy Lauwereins, Geert Deconinck, "Reconfigurable Instruction Set Processors from a Hardware/Software Perspective," IEEE Transactions on Software Engineering, vol. 28, no. 9, pp. 847-862, Sept. 2002, doi:10.1109/TSE.2002.1033225
Usage of this product signifies your acceptance of the Terms of Use.