A tool for processor instruction set design

This paper presents a systematic technique for generating new instruction sets which are optimized for a given microarchitecture and set of benchmark programs. This process consists of the following steps: generation of execution traces, formation of code segments, optimal recompilation of the code segments to produce candidate instructions, and covering of the instructions from the code segments to yield the final instruction set. To illustrate the use of the new technique, an instruction set is generated for the execution of compiled Prolog programs.

[1]  Joseph A. Fisher,et al.  Trace Scheduling: A Technique for Global Microcode Compaction , 1981, IEEE Transactions on Computers.

[2]  Bruce K. Holmer Automatic Design of Computer Instruction Sets , 1993 .

[3]  Ing-Jer Huang,et al.  Synthesis of Instruction Sets for Pipelined Microprocessors , 1994, 31st Design Automation Conference.

[4]  T. C. May,et al.  Instruction-set matching and selection for DSP and ASIP code generation , 1994, Proceedings of European Design and Test Conference EDAC-ETC-EUROASIC.

[5]  Peter M. Kogge,et al.  The Architecture of Pipelined Computers , 1981 .

[6]  Peter M. Kogge,et al.  The Architecture of Symbolic Computers , 1990 .

[7]  Frederick Marion Haney Using a computer to design computer instruction sets , 1968 .

[8]  Abd-Elfattah Mohamed Abd-alla,et al.  Heuristic Synthesis of Microprogrammed Computer Architecture , 1974, IEEE Transactions on Computers.

[9]  A. Alomary,et al.  PEAS-I: A hardware/software co-design system for ASIPs , 1993, Proceedings of EURO-DAC 93 and EURO-VHDL 93- European Design Automation Conference.

[10]  Gerry Kane,et al.  MIPS RISC Architecture , 1987 .

[11]  Alvin M. Despain,et al.  Fast Prolog with an extended general purpose architecture , 1990, ISCA '90.

[12]  Harvey F. Silverman,et al.  Processor reconfiguration through instruction-set metamorphosis , 1993, Computer.

[13]  Philip S. Liu,et al.  Techniques of Program Execution with a Writable Control Memory , 1978, IEEE Transactions on Computers.

[14]  Pradip Bose,et al.  Instruction Set Design for Support of High-Level Languages , 1983 .

[15]  Hugo De Man,et al.  Instruction set definition and instruction selection for ASIPs , 1994, Proceedings of 7th International Symposium on High-Level Synthesis.

[16]  J. P. Bennett A methodology for automated design of computer instruction sets , 1987 .

[17]  Christopher W. Fraser,et al.  Code selection through object code optimization , 1984, TOPL.