Synthesis of Processor Instruction Sets from High-Level ISA Specifications

As processors continue to get exponentially cheaper for end users following Moore's law, the costs involved in their design keep growing, also at an exponential rate. The reason is ever increasing complexity of processors, which modern EDA tools struggle to keep up with. This paper focuses on the design of Instruction Set Architecture (ISA), a significant part of the whole processor design flow. Optimal design of an instruction set for a particular combination of available hardware resources and software requirements is crucial for building processors with high performance and energy efficiency, and is a challenging task involving a lot of heuristics and high-level design decisions. This paper presents a new compositional approach to formal specification and synthesis of ISAs. The approach is based on a new formalism, called Conditional Partial Order Graphs, capable of capturing common behavioural patterns shared by processor instructions, and therefore providing a very compact and efficient way to represent and manipulate ISAs. The Event-B modelling framework is used as a formal specification and verification back-end to guarantee correctness of ISA specifications. We demonstrate benefits of the presented methodology on several examples, including Intel 8051 microcontroller.

[1]  Craig Steiner The 8051/8052 Microcontroller: Architecture, Assembly Language, and Hardware Interfacing , 2005 .

[2]  Alexandre Yakovlev,et al.  Encoding of processor instruction sets with explicit concurrency control , 2011, IET Comput. Digit. Tech..

[3]  Alexei Iliasov Use Case Scenarios as Verification Conditions: Event-B/Flow Approach , 2011, SERENE.

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

[5]  Alexandre Yakovlev,et al.  Formal modelling and transformations of processor instruction sets , 2011, Ninth ACM/IEEE International Conference on Formal Methods and Models for Codesign (MEMPCODE2011).

[6]  Donald E. Knuth MMIXware, A RISC Computer for the Third Millennium , 1999, Lecture Notes in Computer Science.

[7]  Magnus O. Myreen Verified just-in-time compiler on x86 , 2010, POPL '10.

[8]  John Colley,et al.  Guarded atomic actions and refinement in a system-on-chip development flow : bridging the specification gap with Event-B , 2010 .

[9]  John Harrison,et al.  Formal Verification of IA-64 Division Algorithms , 2000, TPHOLs.

[10]  Steve Furber ARM System-on-Chip Architecture , 2000 .

[11]  Yifan Chen,et al.  Towards power-elastic systems through concurrency management , 2012, IET Comput. Digit. Tech..

[12]  Howard H. Aiken,et al.  The automatic sequence controlled calculator — I , 1946, Electrical Engineering.

[13]  Giovanni De Micheli,et al.  Synthesis and Optimization of Digital Circuits , 1994 .

[14]  Paolo Ienne,et al.  A high-level synthesis flow for custom instruction set extensions for application-specific processors , 2010, 2010 15th Asia and South Pacific Design Automation Conference (ASP-DAC).

[15]  Howard H. Aiken,et al.  The automatic sequence controlled calculator — III , 1946, Electrical Engineering.

[16]  Steve Heath,et al.  Microprocessor Architectures: RISC, CISC and DSP , 1995 .

[17]  Andrey Mokhov,et al.  Conditional Partial Order Graphs , 2009 .

[18]  Danil Sokolov,et al.  Task scheduling based on energy token model , 2011 .

[19]  John Cocke,et al.  The evolution of RISC technology at IBM , 1990, IBM Journal of Research and Development.

[20]  Dominique Cansell,et al.  System-on-chip design by proof-based refinement , 2009, International Journal on Software Tools for Technology Transfer.

[21]  Magnus O. Myreen,et al.  A Trustworthy Monadic Formalization of the ARMv7 Instruction Set Architecture , 2010, ITP.

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

[23]  Frank van Harmelen,et al.  Rippling: A Heuristic for Guiding Inductive Proofs , 1993, Artif. Intell..

[24]  Majid Sarrafzadeh,et al.  Instruction generation and regularity extraction for reconfigurable processors , 2002, CASES '02.

[25]  Kerstin Eder,et al.  Managing Complexity through Abstraction: A Refinement-Based Approach to Formalize Instruction Set Architectures , 2011, ICFEM.

[26]  Steve Heath,et al.  Microprocessor architectures RISC, CISC and DSP (2nd ed.) , 1995 .

[27]  Alexandre Yakovlev,et al.  Conditional Partial Order Graphs: Model, Synthesis, and Application , 2010, IEEE Transactions on Computers.

[28]  Marina Bosch Logic Synthesis For Control Automata , 2016 .

[29]  Majid Sarrafzadeh,et al.  Area-efficient instruction set synthesis for reconfigurable system-on-chip designs , 2004, Proceedings. 41st Design Automation Conference, 2004..

[30]  Luciano Lavagno,et al.  Logic Synthesis for Asynchronous Controllers and Interfaces , 2002 .

[31]  Fangfang Yuan,et al.  A Generic Instruction Set Architecture Model in Event-B for Early Design Space Exploration , 2009 .

[32]  Christoforos E. Kozyrakis,et al.  Understanding sources of inefficiency in general-purpose chips , 2010, ISCA.

[33]  Kiyoung Choi,et al.  Energy-efficient instruction set synthesis for application-specific processors , 2003, ISLPED '03.