Automatic Instruction-Set Extensions with the Linear Complexity Spiral Search

In this paper we present a linear-complexity algorithm for the automatic identification and selection of multiple-input multiple-output instruction-set extensions under hardware resource constraints. Instruction generation is performed with a two-step method which generates a coverage of the application with single-output clusters of instructions and subsequently groups the single-output clusters in convex multiple input multiple output instruction-set extensions. In contrast with existing approaches, the convexity of the final cluster is guaranteed by construction and does not require additional checks of the clusters. The proposed approach can be applied directly to large kernels and does not impose limitations neither on the number of inputs and/or outputs, nor on the number of new instructions generated. Our results on well-known kernels show that the extended Instructions-Set allows to execute applications more efficiently and needing fewer cycles. Our results show that a significant overall application speedup is achieved even for large kernel (for ADPCM decoder the speedup is up to x2.2 and for TWOFISH encoder/decoder the speedup is up to x4.5).

[1]  Jason Cong,et al.  Application-specific instruction generation for configurable processor architectures , 2004, FPGA '04.

[2]  Stamatis Vassiliadis,et al.  The Spiral Search: A Linear Complexity Algorithm for the Generation of Convex MIMO Instruction-Set Extensions , 2007, 2007 International Conference on Field-Programmable Technology.

[3]  Tulika Mitra,et al.  Disjoint Pattern Enumeration for Custom Instructions Identification , 2007, 2007 International Conference on Field Programmable Logic and Applications.

[4]  Majid Sarrafzadeh,et al.  Instruction generation for hybrid reconfigurable systems , 2001, IEEE/ACM International Conference on Computer Aided Design. ICCAD 2001. IEEE/ACM Digest of Technical Papers (Cat. No.01CH37281).

[5]  Paolo Ienne,et al.  Automatic application-specific instruction-set extensions under microarchitectural constraints , 2003, Proceedings 2003. Design Automation Conference (IEEE Cat. No.03CH37451).

[6]  Henk Corporaal,et al.  Designing domain-specific processors , 2001, CODES '01.

[7]  Paolo Ienne,et al.  Exploiting pipelining to relax register-file port constraints of instruction-set extensions , 2005, CASES '05.

[8]  Stamatis Vassiliadis,et al.  The MOLEN polymorphic processor , 2004, IEEE Transactions on Computers.

[9]  Robert K. Brayton,et al.  HW/SW partitioning and code generation of embedded control applications on a reconfigurable architecture platform , 2002, Proceedings of the Tenth International Symposium on Hardware/Software Codesign. CODES 2002 (IEEE Cat. No.02TH8627).

[10]  Stamatis Vassiliadis,et al.  Automatic selection of application-specific instruction-set extensions , 2006, Proceedings of the 4th International Conference on Hardware/Software Codesign and System Synthesis (CODES+ISSS '06).

[11]  Mahmut T. Kandemir,et al.  Switch Box Architectures for Three-Dimensional FPGAs , 2006, 2006 14th Annual IEEE Symposium on Field-Programmable Custom Computing Machines.

[12]  Paolo Ienne,et al.  Exact and approximate algorithms for the extension of embedded processor instruction sets , 2006, IEEE Transactions on Computer-Aided Design of Integrated Circuits and Systems.

[13]  Miodrag Potkonjak,et al.  MediaBench: a tool for evaluating and synthesizing multimedia and communications systems , 1997, Proceedings of 30th Annual International Symposium on Microarchitecture.

[14]  Stamatis Vassiliadis,et al.  A Linear Complexity Algorithm for the Automatic Generation of Convex Multiple Input Multiple Output Instructions , 2007, ARC.

[15]  Nikil D. Dutt,et al.  ISEGEN: generation of high-quality instruction set extensions by iterative improvement , 2005, Design, Automation and Test in Europe.

[16]  Tulika Mitra,et al.  Scalable custom instructions identification for instruction-set extensible processors , 2004, CASES '04.

[17]  Stamatis Vassiliadis,et al.  A Linear Complexity Algorithm for the Generation of Multiple Input Single Output Instructions of Variable Size , 2007, SAMOS.

[18]  Kingshuk Karuri,et al.  A design flow for configurable embedded processors based on optimized instruction set extension synthesis , 2006, Proceedings of the Design Automation & Test in Europe Conference.

[19]  Stamatis Vassiliadis,et al.  DWARV: Delftworkbench Automated Reconfigurable VHDL Generator , 2007, 2007 International Conference on Field Programmable Logic and Applications.

[20]  Srivaths Ravi,et al.  Synthesis of custom processors based on extensible platforms , 2002, ICCAD 2002.

[21]  Jonathan Rose,et al.  Area and delay trade-offs in the circuit and architecture design of FPGAs , 2008, FPGA '08.

[22]  Günhan Dündar,et al.  An integer linear programming approach for identifying instruction-set extensions , 2005, 2005 Third IEEE/ACM/IFIP International Conference on Hardware/Software Codesign and System Synthesis (CODES+ISSS'05).

[23]  Scott A. Mahlke,et al.  Processor Acceleration Through Automated Instruction Set Customization , 2003, MICRO.

[24]  Cesare Alippi,et al.  A DAG-Based Design Approach for Reconfigurable VLIW Processors , 1999, DATE.

[25]  Krzysztof Kuchcinski,et al.  Automatic Selection of Application-Specific Reconfigurable Processor Extensions , 2008, 2008 Design, Automation and Test in Europe.