The Instruction-Set Extension Problem: A Survey

  • Carlo Galuzzi
  • Koen Bertels
Part of the Lecture Notes in Computer Science book series (LNCS, volume 4943)


Over the last years, we have witnessed the increased use of Application-Specific Instruction-Set Processors (ASIPs). These ASIPs are processors that have a customizable instruction-set, which can be tuned towards specific requirements. The identification, definition and implementation of those operations that provide the largest performance improvement and that should be hardwired, extending in this way the Instruction-Set, constitutes a major challenge. The purpose of this paper is to investigate and study the issues regarding the customization of an Instruction-Set in function of the specific requirements of an application. Additionally, the paper provides an overview of all relevant aspects of the problem and compensates the lack of a general view of the problem in the existing literature.


Instruction Generation Multiple Input Multiple Output Design Space Exploration Custom Instruction Guide Function 
These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.


  1. 1.
    Keutzer,: From ASIC to ASIP: The next design discontinuity. In: ICCD 2002 (2002)Google Scholar
  2. 2.
    Holmer: Automatic design of computer instruction sets. PhD thesis (1993)Google Scholar
  3. 3.
    Huang: Generating instruction sets and microarchitectures from applications. In: ICCAD 1994, (1994)Google Scholar
  4. 4.
    Huang: Synthesis of instruction sets for pipelined microprocessors. In: DAC 1994, (1994)Google Scholar
  5. 5.
    Van Praet: Instruction set definition and instruction selection for ASIPs. In: ISSS 1994, (1994)Google Scholar
  6. 6.
    Liem: Instruction-set matching and selection for DSP and ASIP code generation. In: ED & TC 1994, (1994)Google Scholar
  7. 7.
    Choi,: Synthesis of application specific instructions for embedded DSP software. IEEE Trans. on Comp. 48(6), 603–614 (1999)CrossRefGoogle Scholar
  8. 8.
    Faraboschi,: LX: a technology platform for customizable VLIW embedded processing. ACM SIGARCH Computer Architecture News, Special Issue. In: Proceedings of the 27th annual international symposium on Computer architecture (ISCA 2000) 28(2), 203–213 (2003)CrossRefGoogle Scholar
  9. 9.
    Wang: Hardware/software instruction set configurability for System-on-Chip processors. In: DAC 2001 (2001)Google Scholar
  10. 10.
    Arnold: Designing domain-specific processors. In: CODES 2001(2001)Google Scholar
  11. 11.
    Kastner,: Instruction generation for hybrid reconfigurable systems. ACM TODAES 7(4), 605–627 (2002)CrossRefGoogle Scholar
  12. 12.
    Atasu: Automatic application-specific instruction-set extensions under microarchitectural constraints. In: DAC 2003 (2003)Google Scholar
  13. 13.
    Atasu: An integer linear programming approach for identifying instruction-set extensions. In: CODES+ISSS 2005 (2005)Google Scholar
  14. 14.
    Galuzzi: Automatic selection of application-specific instruction-set extensions. In: CODES+ISSS 2006 (2006)Google Scholar
  15. 15.
    Alomary: A hardware/software codesign partitioner for ASIP design. In: ICECS 1996 (1996)Google Scholar
  16. 16.
    Athanas,: Processor reconfiguration through instruction-set metamorphosis. IEEE Computer 26(3), 11–18 (1993)Google Scholar
  17. 17.
    Razdan: PRISC software acceleration techniques. In: ICCS 1994 (1994)Google Scholar
  18. 18.
    Wirthlin: DISC: The dynamic instruction set computer. In: FPGAs for Fast Board Devel. and Reconf. Comp. vol. 2607, pp. 92–103 (1995)Google Scholar
  19. 19.
    Geurts: Synthesis of Accelerator Data Paths for High-Throughput Signal Processing Applications. PhD thesis (1995)Google Scholar
  20. 20.
    Geurts,: Accelerator Data-Path Synthesis for High-Throughput Signal Processing Applications. Kluwer Academic Publishers, Norwell (1997)zbMATHGoogle Scholar
  21. 21.
    Hauser: GARP: a mips processor with a reconfigurable coprocessor. In: FCCM 1997 (1997)Google Scholar
  22. 22.
    Niemann: Hardware/software partitioning using integer programming. In: EDTC 1996 (1996)Google Scholar
  23. 23.
    Niemann,: An algorithm for hardware/software partitioning using mixed integer linear programming. ACM TODAES, Special Issue: Partitioning Methods for Embedded Systems 2(2), 165–193 (1997)Google Scholar
  24. 24.
    De Micheli,: Hardware/software co-design. Proc. of IEEE 85(3), 349–365 (1997)CrossRefGoogle Scholar
  25. 25.
    Baleani, Sangiovanni-Vincentelli, A.: HW/SW partitioning and code generation of embedded control applications on a reconfigurable architecture platform. In: CODES 2002 (2002)Google Scholar
  26. 26.
    Arató: Hardware-software partitioning in embedded system design. In: WISP 2003 (2003)Google Scholar
  27. 27.
    Gschwind: Instruction set selection for ASIP design. In: CCODES 1999 (1999)Google Scholar
  28. 28.
    Pozzi: Automatic topology-based identification of instruction-set extensions for embedded processors. Technical Report CS 01/377, EPFL, DI-LAP, Lausanne (December 2001)Google Scholar
  29. 29.
    Clark: Automatically generating custom instruction set extensions. In: WASP 2002 (2002)Google Scholar
  30. 30.
    Peymandoust: Automatic instruction set extension and utilization for embedded processors. In: ASAP (2003)Google Scholar
  31. 31.
    Clark,: Processor acceleration through automated instruction set customization. In: MICRO 36Google Scholar
  32. 32.
    Cong: Application-specific instruction generation for configurable processor architectures. In: FPGA 2004 (2004)Google Scholar
  33. 33.
    Rao, S.: Partitioning by regularity extraction. In: DAC 1992 (1992)Google Scholar
  34. 34.
    Arnold: Automatic detection of recurring operation patterns. In: CODES 1999 (1999)Google Scholar
  35. 35.
    Kastner: Instruction generation for hybrid reconfigurable systems. In: ICCAD 2001 (2001)Google Scholar
  36. 36.
    Fortin: The graph isomorphism problem. Technical Report TR 96-20, Department of Computing Science, University of Alberta, Canada (July 1996)Google Scholar
  37. 37.
    Chen,: Graph isomorphism and identification matrices: Parallel algorithms. IEEE Trans. on Paral. and Distr. Systems 7(3), 308–319 (1996)CrossRefGoogle Scholar
  38. 38.
    Coudert: New ideas for solving covering problems. In: DAC 1995 (1995)Google Scholar
  39. 39.
    Coudert: On solving covering problems. In: DAC 1996 (1996)Google Scholar
  40. 40.
    Brisk: Instruction generation and regularity extraction for reconfigurable processors. In: CASES 2002 (2002)Google Scholar
  41. 41.
    Yu: Scalable custom instructions identification for instruction-set extensible processors. In: CASES 2004 (2004)Google Scholar
  42. 42.
    Aletà,: Removing communications in clustered microarchitectures through instruction replication. ACM TACO 1(2), 127–151 (2004)CrossRefGoogle Scholar
  43. 43.
    Vassiliadis, S., Bertels, K., Galuzzi, C.: A Linear Complexity Algorithm for the Automatic Generation of Convex Multiple Input Multiple Output Instructions. In: Diniz, P.C., Marques, E., Bertels, K., Fernandes, M.M., Cardoso, J.M.P. (eds.) ARCS 2007. LNCS, vol. 4419, pp. 130–141. Springer, Heidelberg (2007)Google Scholar
  44. 44.
    Galuzzi: A linear complexity algorithm for the generation of multiple input single output instructions of variable size. In: SAMOS VII WorksGoogle Scholar
  45. 45.
    Liao: Instruction selection using binate covering for code size optimization. In: ICCAD 1995 (1995)Google Scholar
  46. 46.
    Liao,: A new viewpoint on code generation for directed acyclic graphs. ACM TODAES 3(1), 51–75 (1998)CrossRefGoogle Scholar
  47. 47.
    Rao, S.: On clustering for maximal regularity extraction. IEEE Trans, on CAD 12(8), 1198–1208 (1993)Google Scholar
  48. 48.
    Rao, S.: Hierarchical design space exploration for a class of digital systems. IEEE Trans. on VLSI Systems 1(3), 282–295 (1993)CrossRefGoogle Scholar
  49. 49.
    Janssen: A specification invariant technique for regularity improvement between flow-graph clusters. In: EDTC 1996 (1996)Google Scholar
  50. 50.
    Huang: Managing dynamic reconfiguration overhead in system-on-a-chip design using reconfigurable datapaths and optimized interconnection networks. In: DATE 2001 (2001)Google Scholar
  51. 51.
    Moreano: Datapath merging and interconnection sharing for reconfigurable architectures. In: ISSS 2002 (2002)Google Scholar
  52. 52.
    Sun: Synthesis of custom processors based on extensible platforms. In: ICCAD 2002 (2002)Google Scholar
  53. 53.
    Imai: An integer programming approach to instruction implementation method selection problem. In: EURO-DAC 1992 (1992)Google Scholar
  54. 54.
    Grasselli,: A method for minimizing the number of internal states in incompletely specified sequential networks. IEEE Trans. Electron. Comp. EC-14, 350–359 (1965)CrossRefGoogle Scholar
  55. 55.
    Brayton: Boolean relations and the incomplete specification of logic networks. In: ICCAD 1989 (1989)Google Scholar
  56. 56.
    Liao: Solving covering problems using LPR-based lower bounds. In: DAC 1997 (1997)Google Scholar
  57. 57.
    Li: Effective bounding techniques for solving unate and binate covering problems. In: DAC 2005 (2005)Google Scholar
  58. 58.
    Alippi: A DAG-based design approach for reconfigurable VLIW processors. In: DATE 1999 (1999)Google Scholar
  59. 59.
    Galuzzi: The spiral search: A linear complexity algorithm for the generation of convex multiple input multiple output instruction-set extensions. In: ICFPT 2007 (2007)Google Scholar
  60. 60.
    Huynh: An Efficient Framework for Dynamic Reconfiguration of Instruction-Set Customizations. In: CASES 2007 (2007)Google Scholar
  61. 61.
    Yu: Disjoint pattern enumeration for custom instructions identification. In: FPL 2007 (2007)Google Scholar
  62. 62.
    Bonzini: A retargetable framework for automated discovery of custom instructions. In: ASAP 2007 (2007)Google Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 2008

Authors and Affiliations

  • Carlo Galuzzi
    • 1
  • Koen Bertels
    • 1
  1. 1.Computer Engineering, EEMCSDelft University of TechnologyThe Netherlands

Personalised recommendations