Lecture 04: ISA Principles CSE 564 Computer Architecture Summer 2017

Similar documents
Instruction Set Principles and Examples. Appendix B

Page 1. Structure of von Nuemann machine. Instruction Set - the type of Instructions

Lecture 4: Instruction Set Architecture

CS4617 Computer Architecture

Chapter 2 Instruction Set Principles and Examples

Lecture 4: Instruction Set Design/Pipelining

ECE 486/586. Computer Architecture. Lecture # 7

EITF20: Computer Architecture Part2.1.1: Instruction Set Architecture

COSC 6385 Computer Architecture. Instruction Set Architectures

EC 413 Computer Organization

Chapter 2. Instruction Set Principles and Examples. In-Cheol Park Dept. of EE, KAIST

Instruction Set Design

Lecture 4: ISA Tradeoffs (Continued) and Single-Cycle Microarchitectures

Instruction Set Architecture ISA ISA

55:132/22C:160, HPCA Spring 2011

EITF20: Computer Architecture Part2.1.1: Instruction Set Architecture

INSTITUTO SUPERIOR TÉCNICO. Architectures for Embedded Computing

Chapter 2A Instructions: Language of the Computer

Chapter 2: Instructions How we talk to the computer

From CISC to RISC. CISC Creates the Anti CISC Revolution. RISC "Philosophy" CISC Limitations

Lecture 4: RISC Computers

Virtual Machines and Dynamic Translation: Implementing ISAs in Software

Typical Processor Execution Cycle

Instruction Set Architecture. "Speaking with the computer"

Math 230 Assembly Programming (AKA Computer Organization) Spring 2008

h"p://news.illinois.edu/news/12/0927transient_electronics_johnrogers.html

Instruction Set Architecture (ISA)

Real instruction set architectures. Part 2: a representative sample

CSE 141 Computer Architecture Spring Lecture 3 Instruction Set Architecute. Course Schedule. Announcements

ISA and RISCV. CASS 2018 Lavanya Ramapantulu

Graduate Computer Architecture. Chapter 2. Instruction Set Principles

CSCE 5610: Computer Architecture

Review Questions. 1 The DRAM problem [5 points] Suggest a solution. 2 Big versus Little Endian Addressing [5 points]

Announcements HW1 is due on this Friday (Sept 12th) Appendix A is very helpful to HW1. Check out system calls

CHAPTER 5 A Closer Look at Instruction Set Architectures

RISC I from Berkeley. 44k Transistors 1Mhz 77mm^2

Instruction Set II. COMP 212 Computer Organization & Architecture. COMP 212 Fall Lecture 7. Instruction Set. Quiz. What is an Instruction Set?

Instruction Set Principles. (Appendix B)

Lecture 3 Machine Language. Instructions: Instruction Execution cycle. Speaking computer before voice recognition interfaces

Advanced Computer Architecture

COMPUTER ORGANIZATION & ARCHITECTURE

ECE232: Hardware Organization and Design

CENG3420 Lecture 03 Review

Lecture 4: RISC Computers

Systems Architecture I

Computer Systems Architecture I. CSE 560M Lecture 3 Prof. Patrick Crowley

Chapter 13 Reduced Instruction Set Computers

ECE 486/586. Computer Architecture. Lecture # 6

RISC Principles. Introduction

Machine Language Instructions Introduction. Instructions Words of a language understood by machine. Instruction set Vocabulary of the machine

COMP2121: Microprocessors and Interfacing. Instruction Set Architecture (ISA)

COMP3221: Microprocessors and. and Embedded Systems. Instruction Set Architecture (ISA) What makes an ISA? #1: Memory Models. What makes an ISA?

CMSC Computer Architecture Lecture 2: ISA. Prof. Yanjing Li Department of Computer Science University of Chicago

Slides for Lecture 6

CS/ECE/752 Chapter 2 Instruction Sets Instructor: Prof. Wood

CHAPTER 5 A Closer Look at Instruction Set Architectures

Computer Architecture

Understand the factors involved in instruction set

Chapter 1. Computer Abstractions and Technology. Lesson 3: Understanding Performance

Overview. EE 4504 Computer Organization. Much of the computer s architecture / organization is hidden from a HLL programmer

CHAPTER 5 A Closer Look at Instruction Set Architectures

Instructor: Randy H. Katz hap://inst.eecs.berkeley.edu/~cs61c/fa13. Fall Lecture #7. Warehouse Scale Computer

Computer Organization CS 206 T Lec# 2: Instruction Sets

CPU Architecture and Instruction Sets Chapter 1

ISA: The Hardware Software Interface

Computer Systems Laboratory Sungkyunkwan University

Computer Organization & Assembly Language Programming

COSC 6385 Computer Architecture - Instruction Set Principles

Computer Organization MIPS ISA

CSCI 402: Computer Architectures. Instructions: Language of the Computer (1) Fengguang Song Department of Computer & Information Science IUPUI

Chapter 2. Instructions: Language of the Computer. Adapted by Paulo Lopes

Instructions: Language of the Computer

Architectures & instruction sets R_B_T_C_. von Neumann architecture. Computer architecture taxonomy. Assembly language.

CS 31: Intro to Systems ISAs and Assembly. Martin Gagné Swarthmore College February 7, 2017

COSC 6385 Computer Architecture. Defining Computer Architecture

Chapter 2. Instruction Set Design. Computer Architectures. software. hardware. Which is easier to change/design??? Tien-Fu Chen

William Stallings Computer Organization and Architecture. Chapter 12 Reduced Instruction Set Computers

Reminder: tutorials start next week!

Computer Architecture

CS 31: Intro to Systems ISAs and Assembly. Kevin Webb Swarthmore College February 9, 2016

EC-801 Advanced Computer Architecture

Math 230 Assembly Programming (AKA Computer Organization) Spring MIPS Intro

Compiler Construction D7011E

CS 31: Intro to Systems ISAs and Assembly. Kevin Webb Swarthmore College September 25, 2018

2.7 Supporting Procedures in hardware. Why procedures or functions? Procedure calls

Instruction Sets Ch 9-10

Instruction Set Architecture

ENGN1640: Design of Computing Systems Topic 03: Instruction Set Architecture Design

Instruction Sets Ch 9-10

Universität Dortmund. ARM Architecture

CS429: Computer Organization and Architecture

Outline. What Makes a Good ISA? Programmability. Implementability

Evolution of ISAs. Instruction set architectures have changed over computer generations with changes in the

ELEC / Computer Architecture and Design Fall 2013 Instruction Set Architecture (Chapter 2)

RISC & Superscalar. COMP 212 Computer Organization & Architecture. COMP 212 Fall Lecture 12. Instruction Pipeline no hazard.

Interfacing Compiler and Hardware. Computer Systems Architecture. Processor Types And Instruction Sets. What Instructions Should A Processor Offer?

Review of instruction set architectures

EITF20: Computer Architecture Part2.2.1: Pipeline-1

COMPUTER ORGANIZATION AND DESIGN. 5 th Edition. The Hardware/Software Interface. Chapter 4. The Processor

When an instruction is initially read from memory it goes to the Instruction register.

Transcription:

Lecture 04: ISA Principles CSE 564 Computer Architecture Summer 2017 Department of Computer Science and Engineering Yonghong Yan yan@oakland.edu www.secs.oakland.edu/~yan 1

Contents 1. Introduc@on 2. Classifying Instruc@on Set Architectures 3. Memory Addressing 4. Type and Size of Operands 5. Opera@ons in the Instruc@on Set 6. Instruc@ons for Control Flow 7. Encoding an Instruc@on Set 8. CrosscuMng Issues: The Role of Compilers 9. RISC-V ISA Supplement MIPS ISA RISC vs CISC Compiler compilafon stages ISA Historical Appendix L Comparison of ISA Appendix K 2

1 Introduc@on Instruc@on Set Architecture the porfon of the machine visible to the assembly level programmer or to the compiler writer To use the hardware of a computer, we must speak its language The words of a computer language are called instruc,ons, and its vocabulary is called an instruc,on set sorware hardware instruc@on set Instr. # OperaFon+Operands i movl -4(%ebp), %eax (i+1) (i+2) (i+3) jl L5 : L5: addl %eax, (%edx) cmpl 8(%ebp), %eax 3

sum.s for X86 h]p://www.hep.wisc.edu/~pinghc/ x86assmtutorial.htm h]ps://en.wikibooks.org/wiki/x86_assembly/sse 4

sum.s for RISC-V h]ps://riscv.org/ 5

2 Classifying Instruc@on Set Architectures Operand storage in CPU # explicit operands named per instruc@on Addressing mode Opera@ons Type & size of operands Where are they other than memory How many? Min, Max, Average How the effecfve address for an operand calculated? Can all use any mode? What are the opfons for the opcode? How is typing done? How is the size specified? These choices cri,cally affect number of instruc,ons, CPI, and CPU cycle,me 6

ISA Classifica@on Most basic differenfafon: internal storage in a processor Operands may be named explicitly or implicitly Major choices: 1. In an accumulator architecture one operand is implicitly the accumulator => similar to calculator 2. The operands in a stack architecture are implicitly on the top of the stack 3. The general-purpose register architectures have only explicit operands either registers or memory locafon 7

Register Machines How many registers are sufficient? General-purpose registers vs. special-purpose registers compiler flexibility and hand-op,miza,on Two major concerns for arithmefc and logical instrucfons (ALU) 1. Two or three operands X + Y X X + Y Z 2. How many of the operands may be memory addresses (0 3) Number of memory addresses Maximum number of operands allowed Type of Architecture Examples 0 3 Load-Store Alpha, ARM, MIPS, PowerPC, SPARC, SuperH, TM32 1 2 Register-Memory IBM 360/370, Intel 80x86, Motorola 68000, TI TMS320C54x 2 2 Memory memory VAX (also has 3 operand formats) 3 3 Memory - memory VAX (also has 2 operand formats) Hence, register architecture classifica@on (# mem, # operands) 8

(0, 3): Register-Register ALU is Register to Register also known as pure Reduced Instruc-on Set Computer (RISC) o Advantages simple fixed length instrucfon encoding decode is simple since instrucfon types are small simple code generafon model instrucfon CPI tends to be very uniform except for memory instrucfons of course but there are only 2 of them - load and store o Disadvantages instrucfon count tends to be higher some instrucfons are short - wasfng instrucfon word bits 9

(1, 2): Register-Memory Evolved RISC and also old CISC new RISC machines capable of doing specula,ve loads predicated and/or deferred loads are also possible o Advantages data access to ALU immediate without loading first instrucfon format is relafvely simple to encode code density is improved over Register (0, 3) model o Disadvantages operands are not equivalent - source operand may be destroyed need for memory address field may limit # of registers CPI will vary if memory target is in L0 cache then not so bad if not - life gets miserable 10

(2, 2) or (3, 3): Memory-Memory True and most complex CISC model currently exfnct and likely to remain so more complex memory acfons are likely to appear but not directly linked to the ALU o Advantages most compact code doesn t waste registers for temporary values good idea for use once data - e.g. streaming media o Disadvantages large variafon in instrucfon size - may need a shoe-horn large variafon in CPI - i.e. work per instrucfon exacerbates the infamous memory bo]leneck register file reduces memory accesses if reused Not used today 11

Summary: Tradeoffs for the ISA Classes Type Advantages Disadvantages Register-register (0,3) Register-memory (1,2) Memory-memory (2,2) or (3,3) Simple, fixed length instruction encoding. Simple code generation model. Instructions take similar numbers of clocks to execute. Data can be accessed without a separate load instruction first. Instruction format tends to be easy to encode and yields good density Most compact. Does not waste registers for temporaries. Higher instruction count than architectures with memory references in the instructions. More instructions and lower instruction density leads to larger programs Operands are not equivalent since a source operand is destroyed. Encoding a register number and a memory address in each instruction may restrict the number of registers. Clocks per instruction vary by operand location Large variation in instruction size, especially for three-operand instructions. In addition, large variation in work per instruction. Memory accesses create memory bottleneck. (Not used today) 12

3 Memory Addressing Objects have byte addresses the number of bytes counted from the beginning of memory Object Length: bytes (8 bits), half words (16 bits), words (32 bits), and double words (64 bits). The type is implied in opcode, e.g., LDB load byte LDW load word, etc Byte Ordering Li]le Endian: puts the byte whose address is xx00 at the least significant posifon in the word. (7,6,5,4,3,2,1,0) Big Endian: puts the byte whose address is xx00 at the most significant posifon in the word. (0,1,2,3,4,5,6,7) Problem occurs when exchanging data among machines with different orderings 13

Interpre@ng Memory Addresses Alignment Issues Accesses to objects larger than a byte must be aligned. An access to an object of size s bytes at byte address A is aligned if A mod s = 0. Misalignment causes hardware complicafons, since the memory is typically aligned on a word or a double-word boundary Misalignment typically results in an alignment fault that must be handled by the OS Hence byte address is anything - never misaligned half word - even addresses - low order address bit = 0 ( XXXXXXX0) else trap word - low order 2 address bits = 0 ( XXXXXX00) else trap double word - low order 3 address bits = 0 (XXXXX000) else trap 14

Memory Alignment 15

Aligned/Misaligned Addresses 16

Addressing Modes How architecture specify the effec@ve address of an object? Effec-ve address: the actual memory address specified by the addressing mode. E.g. Mem[R[R1]] refers to the contents of the memory loca,on whose loca,on is given the contents of register 1 (R1). Addressing Modes: Register. Immediate Displacement Register indirect,.. 17

Address Modes 18

Addressing Mode Impacts InstrucFon counts Architecture Complexity CPI 19

Summary of use of memory addressing modes 20

Displacement values are widely distributed Impact instrucfon length 21

Displacement Addressing Mode Benchmarks show 12 bits of displacement would capture about 75% of the full 32-bit displacements 16 bits should capture about 99% Remember: op@mize for the common case. Hence, the choice is at least 12-16 bits For addresses that do fit in displacement size: Add R4, 10000 (R0) For addresses that don t fit in displacement size, the compiler must do the following: Load R1, 1000000 Add Add R1, R0 R4, 0 (R1) 22

Immediate Addressing Mode Used where we want to get to a numerical value in an instrucfon Around 25% of the opera@ons have an immediate operand At high level: a = b + 3; if ( a > 17 ) At Assembler level: Load R2, #3 Add R0, R1, R2 Load R2, #17 CMPBGT R1, R2 goto Addr Load Jump R1, Address (R1) 23

About 25% of data transfer and ALU opera@ons have an immediate operand Impact instrucfon length 24

Number of bits for immediate 16 bits would capture about 80% and 8 bits about 50%. Impact instrucfon length 25

Summary: Memory Addressing A new architecture expected to support at least: displacement, immediate, and register indirect represent 75% to 99% of the addressing modes The size of the address for displacement mode to be at least 12-16 bits capture 75% to 99% of the displacements The size of the immediate field to be at least 8-16 bits capture 50% to 80% of the immediates Processors rely on compilers to generate codes using those addressing mode 26

4 Type And Size of Operands How is the type of an operand designated? The type of the operand is usually encoded in the opcode e.g., LDB load byte; LDW load word Common operand types: (imply their sizes) Character (8 bits or 1 byte) Half word (16 bits or 2 bytes) Word (32 bits or 4 bytes) Double word (64 bits or 8 bytes) Single precision floafng point (4 bytes or 1 word) Double precision floafng point (8 bytes or 2 words) ü Characters are almost always in ASCII ü 16-bit Unicode (used in Java) is gaining popularity ü Integers are two s complement binary ü Floa,ng points follow the IEEE standard 754 Some architectures support packed decimal: 4 bits are used to encode the values 0-9; 2 decimal digits are packed into each byte 27

Distribu@on of data accesses by size 28

Summary: Type and Size of operands 32-architecture supports 8-, 16-, and 32-bit integers, 32-bit and 64-bit IEEE 754 floafng-point data. A new 64-bit address architecture supports 64-bit integers Media processor and DSPs need wider accumulafng registers for accuracy. 29

5 Opera@ons in the Instruc@on Set All computers generally provide a full set of operafons for the first three categories All computers must have some instrucfon support for basic system funcfons Graphics instrucfons typically operate on many smaller data items in parallel 30

Top 10 instruc@ons for the 80x86 31

6 Instruc@ons for Control Flow Control instrucfons change the flow of control: instead of execufng the next instrucfon, the program branches to the address specified in the branching instrucfons They break the pipeline Difficult to opfmize out AND they are frequent Four types of control instrucfons Condi@onal branches Jumps uncondi@onal transfer Procedure calls Procedure returns 32

Breakdown of control flow instruc@ons Condi@onal branches Jumps uncondi@onal transfer Procedure calls Procedure returns Issues: Where is the target address? How to specify it? Where is return address kept? How are the arguments passed? (calls) Where is return address? How are the results passed? (returns) 33

Addressing Modes for Control Flow Instruc@ons PC-relaFve (Program Counter) supply a displacement added to the PC Known at compile Fme for jumps, branches, and calls (specified within the instrucfon) the target is oxen near the current instrucfon requiring fewer bits independently of where it is loaded (posifon independence) Register indirect addressing dynamic addressing The target address may not be known at compile Fme Naming a register that contains the target address Case or switch statements Virtual funcfons or methods in C++ or Java High-order funcfons or funcfon pointers in C or C++ Dynamically shared libraries 34

Branch distances 35

Condi@onal Branch Op@ons Figure 2.21 Major methods for evaluafng branch condifons 36

Comparison Type vs. Frequency Most loops go from 0 to n. Most backward branches are loops taken about 90% Program % backward branches % all control instructions that modify PC gcc 26% 63% spice 31% 63% TeX 17% 70% Average 25% 65% 37

Procedure Invoca@on Op@ons Procedure calls and returns control transfer state saving; the return address must be saved Newer architectures require the compiler to generate stores and loads for each register saved and restored Two basic convenfons in use to save registers caller saving: the calling procedure must save the registers that it wants preserved for access axer the call the called procedure need not worry about registers callee saving: the called procedure must save the registers it wants to use leaving the caller unrestrained most real systems today use a combinafon of both ApplicaFon binary interface (ABI) that set down the basic rules as to which register be caller saved and which should be callee saved 38

7. Encoding an Instruc@on Set Opcode: specifying the operafon # of operand addressing mode address specifier: tells what addressing mode is used Load-store computer Only one memory operand Only one or two addressing modes The architecture must balancing several compefng forces when encoding the instrucfon set: # of registers && Addressing modes Size of registers && Addressing mode fields; Average instrucfon size && Average program size. Easy to handle in pipeline implementafon. 39

x86: x86 vs. Alpha Instruc@on Formats Alpha: 40

Instruc@on Length Tradeoffs Fixed length: Length of all instrucfons the same + Easier to decode single instrucfon in hardware + Easier to decode mulfple instrucfons concurrently -- Wasted bits in instrucfons (Why is this bad?) -- Harder-to-extend ISA (how to add new instrucfons?) Variable length: Length of instrucfons different (determined by opcode and sub-opcode) + Compact encoding (Why is this good?) Intel 432: Huffman encoding (sort of). 6 to 321 bit instrucfons. How? -- More logic to decode a single instrucfon -- Harder to decode mulfple instrucfons concurrently Tradeoffs Code size (memory space, bandwidth, latency) vs. hardware complexity ISA extensibility and expressiveness Performance? Smaller code vs. imperfect decode 41

Uniform vs Non-uniform Decode Uniform decode: Same bits in each instrucfon correspond to the same meaning Opcode is always in the same locafon immediate values, Many RISC ISAs: Alpha, MIPS, SPARC + Easier decode, simpler hardware + Enables parallelism: generate target address before knowing the instrucfon is a branch -- Restricts instrucfon format (fewer instrucfons?) or wastes space Non-uniform decode E.g., opcode can be the 1st-7th byte in x86 + More compact and powerful instrucfon format -- More complex decode logic 42

Three basic varia@on instruc@on encoding: variable length, fixed length, and hybrid The length of 80x86 (CISC) instruc@ons varies between 1 and 17 bytes. && The length of most RISC ISA instruc@ons are 4 bytes. To reduce RISC code size X86 program are generally smaller than RISC ISA. 43

Reduced Code Size in RISCs Hybrid encoding support 16-bit and 32-bit instrucfons in RISC, eg. ARM Thumb, MIPS 16 and RISC-V narrow instrucfons support fewer operafons, smaller address and immediate fields, fewer registers, and two-address format rather than the classic three-address format claim a code size reducfon of up to 40% Compression in IBM s CodePack Adds hardware to decompress instrucfons as they are fetched from memory on an instrucfon cache miss The instrucfon cache contains full 32-bit instrucfons, but compressed code is kept in main memory, ROMs, and the disk Claim code reducfon 35% - 40% PowerPC create a Hash table in memory that map between compressed and uncompressed address. Code size 35%~40% Hitachi s SuperH: fixed 16-bit format 16 rather than 32 registers fewer instrucfons 44

Summary of Instruc@on Encoding Three choices Variable, fixed and hybrid Note the differences of hybrid and variable Choices of instrucfon encoding is a tradeoff between For performance: fixed encoding For code size: variable encoding How hybrid encoding is used in RISC to reduce code size 16bit and 32bit In general, we see: RISC: fixed or hybrid CISC: variable 45

8 The Role of Compilers Almost all programming is done in high-level languages. An ISA is essenfally a complier target. See backup slides for the compila,on stage by most compiler, e.g. gcc Compiler goals: All correct programs execute correctly Most compiled programs execute fast (opfmizafons) Fast compilafon Debugging support 46

Typical Modern Compiler Structure Figure A.19 Compilers typically consist of two to four passes, with more highly optimizing compilers having more passes. This structure maximizes the probability that a program compiled at various levels of optimization will produce the same output when given the same input. The optimizing passes are designed to be optional and may be skipped when faster compilation is the goal and lower-quality code is acceptable. A pass is simply one phase in which the compiler reads and transforms the entire program. (The term phase is often used inter-changeably with pass.) Because the optimizing passes are separated, multiple languages can use the same optimizing and code generation passes. Only a new front end is required for a new language. 47

Op@miza@on Types High level done at or near source code level If procedure is called only once, put it in-line and save CALL more general case: if call-count < some threshold, put them in-line Local done within straight-line code common sub-expressions produce same value either allocate a register or replace with single copy constant propagafon replace constant valued variable with the constant stack height reducfon re-arrange expression tree to minimize temporary storage needs Global across a branch copy propagafon replace all instances of a variable A that has been assigned X (i.e., A=X) with X. code mofon remove code from a loop that computes same value each iterafon of the loop and put it before the loop simplify or eliminate array addressing calculafons in loops 48

Op@miza@on Types Machine-dependent opfmizafons based on machine knowledge strength reducfon replace mulfply by a constant with shixs and adds would make sense if there was no hardware support for MUL a trickier version: 17 = arithmefc lex shix 4 and add pipelining scheduling reorder instrucfons to improve pipeline performance dependency analysis branch offset opfmizafon - reorder code to minimize branch offsets 49

Major types of op@miza@ons 50

Complier Op@miza@ons Change in IC gcc -O2 hello.c -o hello L0 unopfmized L1 local opts, code scheduling, & local reg. allocafon L2 global opts and loop transformafons, & global reg. AllocaFon L3 procedure integrafon 51

Compiler Based Register Op@miza@on Compiler assumes small number of registers (16-32) OpFmizing use is up to compiler HLL programs have no explicit references to registers usually is this always true? Compiler Approach Assign symbolic or virtual register to each candidate variable Map (unlimited) symbolic registers to real registers Symbolic registers that do not overlap can share real registers If you run out of real registers some variables Spilling

Graph Coloring Given a graph of nodes and edges Assign a color to each node Adjacent nodes have different colors Use minimum number of colors h]ps://en.wikipedia.org/wiki/graph_coloring RegistraFon allocafon Nodes are symbolic registers Two registers that are live in the same program fragment are joined by an edge Try to color the graph with n colors, where n is the number of real registers Nodes that can not be colored are placed in memory

Iron-code Summary Sec-on A.2 Use general-purpose registers with a load-store architecture. Sec-on A.3 Support these addressing modes: displacement (with an address offset size of 12 to 16 bits), immediate (size 8 to 16 bits), and register indirect. Sec-on A.4 Support these data sizes and types: 8-, 16-, 32-, and 64-bit integers and 64-bit IEEE 754 floa@ng-point numbers. Now we see 16-bit FP for deep learning in GPU hup://www.nextplavorm.com/2016/09/13/nvidia-pushes-deep-learninginference-new-pascal-gpus/ Sec-on A.5 Support these simple instruc@ons, since they will dominate the number of instruc@ons executed: load, store, add, subtract, move register- register, and shir. Sec-on A.6 Compare equal, compare not equal, compare less, branch (with a PCrela@ve address at least 8 bits long), jump, call, and return. Sec-on A.7 Use fixed instruc@on encoding if interested in performance, and use variable instruc@on encoding if interested in code size. Sec-on A.8 Provide at least 16 general-purpose registers, be sure all addressing modes apply to all data transfer instruc@ons, and aim for a minimalist IS ORen use separate floa@ng-point registers. The jus@fica@on is to increase the total number of registers without raising problems in the instruc@on for-mat or in the speed of the general-purpose register file. This compromise, however, is not orthogonal. 54

Real World ISA 55

The details is to trade-off 56