oct. 11, 2000machine organization1 machine organization (cs 570) lecture 3: instruction set...
DESCRIPTION
Oct. 11, 2000Machine Organization3 Storage in the CPU Stack Accumulator Register –register-memory –register-register C + A + BTRANSCRIPT
![Page 1: Oct. 11, 2000Machine Organization1 Machine Organization (CS 570) Lecture 3: Instruction Set Principles and Examples * Jeremy R. Johnson Wed. Oct. 11, 2000](https://reader035.vdocuments.site/reader035/viewer/2022070610/5a4d1bb27f8b9ab0599cd299/html5/thumbnails/1.jpg)
Oct. 11, 2000 Machine Organization 1
Machine Organization (CS 570)
Lecture 3: Instruction Set Principles and Examples*
Jeremy R. JohnsonWed. Oct. 11, 2000
*This lecture was derived from material in the text (Chap. 2, Appendices C and D). All figures from Computer Architecture: A Quantitative Approach, Second Edition, by John Hennessy and David Patterson, are copyrighted material (COPYRIGHT 1996 MORGAN KAUFMANN PUBLISHERS, INC. ALL RIGHTS RESERVED).
![Page 2: Oct. 11, 2000Machine Organization1 Machine Organization (CS 570) Lecture 3: Instruction Set Principles and Examples * Jeremy R. Johnson Wed. Oct. 11, 2000](https://reader035.vdocuments.site/reader035/viewer/2022070610/5a4d1bb27f8b9ab0599cd299/html5/thumbnails/2.jpg)
Oct. 11, 2000 Machine Organization 2
Introduction
• Objective: To examine the interface between the hardware and the programmer - Instruction Set Architecture. To present some design alternatives and examples.
• The Instruction Set Architecture (ISA) is the portion of the machine visible to the programmer and compiler writer
• Topics– Looking at assembly code– Taxonomy and design Alternatives– Instruction set measurements– DLX
![Page 3: Oct. 11, 2000Machine Organization1 Machine Organization (CS 570) Lecture 3: Instruction Set Principles and Examples * Jeremy R. Johnson Wed. Oct. 11, 2000](https://reader035.vdocuments.site/reader035/viewer/2022070610/5a4d1bb27f8b9ab0599cd299/html5/thumbnails/3.jpg)
Oct. 11, 2000 Machine Organization 3
Storage in the CPU
• Stack• Accumulator• Register
– register-memory– register-register
Stack Accumulator Register-Memory Register-Register
Push A Load A Load R1, A Load R1, APush B Add B Add R1, B Load R2, BAdd Store C Store C, R1 Add R3, R1, R2Pop C Store C, R3
C + A + B
![Page 4: Oct. 11, 2000Machine Organization1 Machine Organization (CS 570) Lecture 3: Instruction Set Principles and Examples * Jeremy R. Johnson Wed. Oct. 11, 2000](https://reader035.vdocuments.site/reader035/viewer/2022070610/5a4d1bb27f8b9ab0599cd299/html5/thumbnails/4.jpg)
Oct. 11, 2000 Machine Organization 4
General Purpose Register (GPR) Machine
• Why?– Faster than memory access– Simplify compiler’s task
• How many registers?– Parameter passing, expression evaluation, variables
• How many operands and of what type (register vs. memory)– (0,3)
+ Simple fixed-length instruction encoding, similar number of clocks- Higher instruction count
– (1,2)+ Data can be accessed without first loading, easy to encode and good density- Not symmetric, variable number of clocks, may limit number of registers
– (3,3)+ Most compact, doesn’t waste registers for temporaries- Large variation in instruction size and number of clocks, memory bottleneck
![Page 5: Oct. 11, 2000Machine Organization1 Machine Organization (CS 570) Lecture 3: Instruction Set Principles and Examples * Jeremy R. Johnson Wed. Oct. 11, 2000](https://reader035.vdocuments.site/reader035/viewer/2022070610/5a4d1bb27f8b9ab0599cd299/html5/thumbnails/5.jpg)
Oct. 11, 2000 Machine Organization 5
Addressing Modes
• Register: Add R4, R3• Immediate: Add R4, #3• Displacement: Add R4, 100(R1)• Indirect: Add R4, (R1)• Indexed: Add R3, (R1 + R2)• Direct: Add R1, (1001)• Memory indirect: Add R1, @(R3)• Auto-increment: Add R1, (R2)+• Auto-decrement: Add R1,-(R2)• Scaled: Add R1, 100(R2)[R3]
![Page 6: Oct. 11, 2000Machine Organization1 Machine Organization (CS 570) Lecture 3: Instruction Set Principles and Examples * Jeremy R. Johnson Wed. Oct. 11, 2000](https://reader035.vdocuments.site/reader035/viewer/2022070610/5a4d1bb27f8b9ab0599cd299/html5/thumbnails/6.jpg)
Oct. 11, 2000 Machine Organization 6
Summary of Use of Addressing Modes
![Page 7: Oct. 11, 2000Machine Organization1 Machine Organization (CS 570) Lecture 3: Instruction Set Principles and Examples * Jeremy R. Johnson Wed. Oct. 11, 2000](https://reader035.vdocuments.site/reader035/viewer/2022070610/5a4d1bb27f8b9ab0599cd299/html5/thumbnails/7.jpg)
Oct. 11, 2000 Machine Organization 7
Distribution of Displacement
![Page 8: Oct. 11, 2000Machine Organization1 Machine Organization (CS 570) Lecture 3: Instruction Set Principles and Examples * Jeremy R. Johnson Wed. Oct. 11, 2000](https://reader035.vdocuments.site/reader035/viewer/2022070610/5a4d1bb27f8b9ab0599cd299/html5/thumbnails/8.jpg)
Oct. 11, 2000 Machine Organization 8
Percentage Immediate Mode
![Page 9: Oct. 11, 2000Machine Organization1 Machine Organization (CS 570) Lecture 3: Instruction Set Principles and Examples * Jeremy R. Johnson Wed. Oct. 11, 2000](https://reader035.vdocuments.site/reader035/viewer/2022070610/5a4d1bb27f8b9ab0599cd299/html5/thumbnails/9.jpg)
Oct. 11, 2000 Machine Organization 9
Distribution Immediate Mode
![Page 10: Oct. 11, 2000Machine Organization1 Machine Organization (CS 570) Lecture 3: Instruction Set Principles and Examples * Jeremy R. Johnson Wed. Oct. 11, 2000](https://reader035.vdocuments.site/reader035/viewer/2022070610/5a4d1bb27f8b9ab0599cd299/html5/thumbnails/10.jpg)
Oct. 11, 2000 Machine Organization 10
Instruction Categories
• Arithmetic and Logical• Data Transfer• Control• System• Floating point• Decimal• String• Graphics
![Page 11: Oct. 11, 2000Machine Organization1 Machine Organization (CS 570) Lecture 3: Instruction Set Principles and Examples * Jeremy R. Johnson Wed. Oct. 11, 2000](https://reader035.vdocuments.site/reader035/viewer/2022070610/5a4d1bb27f8b9ab0599cd299/html5/thumbnails/11.jpg)
Oct. 11, 2000 Machine Organization 11
Top Ten Instructions (Intel)SPECint92
• Load 22%• Conditional branch 20%• Compare 16%• Store 12%• Add 8%• And 6%• Sub 5%• Move reg, reg 4%• Call 1%• Return 1%
![Page 12: Oct. 11, 2000Machine Organization1 Machine Organization (CS 570) Lecture 3: Instruction Set Principles and Examples * Jeremy R. Johnson Wed. Oct. 11, 2000](https://reader035.vdocuments.site/reader035/viewer/2022070610/5a4d1bb27f8b9ab0599cd299/html5/thumbnails/12.jpg)
Oct. 11, 2000 Machine Organization 12
Control Transfer
• Conditional Branches• Jumps• Procedure calls• Procedure returns
![Page 13: Oct. 11, 2000Machine Organization1 Machine Organization (CS 570) Lecture 3: Instruction Set Principles and Examples * Jeremy R. Johnson Wed. Oct. 11, 2000](https://reader035.vdocuments.site/reader035/viewer/2022070610/5a4d1bb27f8b9ab0599cd299/html5/thumbnails/13.jpg)
Oct. 11, 2000 Machine Organization 13
Implementing Transfer Control
• Condition Code? Special bits are set by ALU operations+ Sometimes set for free (typically not the case)- extra state, constrain ordering of instructions
• Condition Register? Test arbitrary register with result of comparison+ Simple- Uses up a register
• Compare and Branch? Compare is part of branch (often limited to subset)+ One instruction rather than two- May be too much work for an instruction
![Page 14: Oct. 11, 2000Machine Organization1 Machine Organization (CS 570) Lecture 3: Instruction Set Principles and Examples * Jeremy R. Johnson Wed. Oct. 11, 2000](https://reader035.vdocuments.site/reader035/viewer/2022070610/5a4d1bb27f8b9ab0599cd299/html5/thumbnails/14.jpg)
Oct. 11, 2000 Machine Organization 14
PC Relative Addressing
• Displacement off of PC– Typically branch nearby
![Page 15: Oct. 11, 2000Machine Organization1 Machine Organization (CS 570) Lecture 3: Instruction Set Principles and Examples * Jeremy R. Johnson Wed. Oct. 11, 2000](https://reader035.vdocuments.site/reader035/viewer/2022070610/5a4d1bb27f8b9ab0599cd299/html5/thumbnails/15.jpg)
Oct. 11, 2000 Machine Organization 15
Encoding of Instruction Set
• Variable• Fixed• Hybrid
![Page 16: Oct. 11, 2000Machine Organization1 Machine Organization (CS 570) Lecture 3: Instruction Set Principles and Examples * Jeremy R. Johnson Wed. Oct. 11, 2000](https://reader035.vdocuments.site/reader035/viewer/2022070610/5a4d1bb27f8b9ab0599cd299/html5/thumbnails/16.jpg)
Oct. 11, 2000 Machine Organization 16
Compiler Optimizations• High Level
– Procedure Inlining• Local
– Common subexpression elimination– Constant propagation– Stack height reduction
• Global– Global common subexpression elimination– Copy propagation– Code motion– Induction variable elimination
• Machine Dependent– Strength reduction– Pipeline scheduling– Branch offset optimization
![Page 17: Oct. 11, 2000Machine Organization1 Machine Organization (CS 570) Lecture 3: Instruction Set Principles and Examples * Jeremy R. Johnson Wed. Oct. 11, 2000](https://reader035.vdocuments.site/reader035/viewer/2022070610/5a4d1bb27f8b9ab0599cd299/html5/thumbnails/17.jpg)
Oct. 11, 2000 Machine Organization 17
Effect of Compiler Optimization
![Page 18: Oct. 11, 2000Machine Organization1 Machine Organization (CS 570) Lecture 3: Instruction Set Principles and Examples * Jeremy R. Johnson Wed. Oct. 11, 2000](https://reader035.vdocuments.site/reader035/viewer/2022070610/5a4d1bb27f8b9ab0599cd299/html5/thumbnails/18.jpg)
Oct. 11, 2000 Machine Organization 18
DLX
• Registers– 32 32-bit GPR’s (R0 - R31), R0 = 0– 32 SP FP registers (can be viewed as 16 DP FP registers)– FP status register
• Data types– 8-bit byte, 16-bit half word, 32-bit word, IEEE SP and DP FP
• Memory– byte addressable, big Endian, 32-bit addresses– addresses must be aligned
• Addressing Modes– immediate– displacement
![Page 19: Oct. 11, 2000Machine Organization1 Machine Organization (CS 570) Lecture 3: Instruction Set Principles and Examples * Jeremy R. Johnson Wed. Oct. 11, 2000](https://reader035.vdocuments.site/reader035/viewer/2022070610/5a4d1bb27f8b9ab0599cd299/html5/thumbnails/19.jpg)
Oct. 11, 2000 Machine Organization 19
DLX Operations• Data Transfer
– LB, LBU, SB– LH, LHU, SH– LW, SW– LF, LD, SF, SD– MOVI2S, MOVS2I– MOVF, MOVD– MOVFP2I, MOVI2FP
• Arithmetic/Logical– ADD, ADDI, ADDU, ADDUI– SUB, SUBI, SUBU, SUBUI– MULT, MULTU, DIV, DIVU– AND, ANDI– OR, ORI, XOR, XORI– LHI– SLL, SRL, SRA, SLLI, SRLI, SRAI– S__, S__I : “__” = LT, GT, LE, GE, EQ, NE
![Page 20: Oct. 11, 2000Machine Organization1 Machine Organization (CS 570) Lecture 3: Instruction Set Principles and Examples * Jeremy R. Johnson Wed. Oct. 11, 2000](https://reader035.vdocuments.site/reader035/viewer/2022070610/5a4d1bb27f8b9ab0599cd299/html5/thumbnails/20.jpg)
Oct. 11, 2000 Machine Organization 20
DLX Operations (cont)
• Control– BEQZ, BNEZ : 16 bit offset from PC+4– BFPT, BFPF : 16 bit offset from PC+4– J, JR : 26-bit offset from PC+4(J)– JAL, JALR : R31 = PC+4– TRAP– RFE
• Floating point– ADDD, ADDF– SUBD, SUBF– MULTD, MULTF– DIVD, DIVF– CVTF2D, CVTF2I, CVTD2F, CVTD2I, CVTI2F, CVTI2D– __D, __F : “__” = LT, GT, LE, GE, EQ, NE, sets bit in FP status register
![Page 21: Oct. 11, 2000Machine Organization1 Machine Organization (CS 570) Lecture 3: Instruction Set Principles and Examples * Jeremy R. Johnson Wed. Oct. 11, 2000](https://reader035.vdocuments.site/reader035/viewer/2022070610/5a4d1bb27f8b9ab0599cd299/html5/thumbnails/21.jpg)
Oct. 11, 2000 Machine Organization 21
DLX Instruction Format
• I-type• R-type• J-type
![Page 22: Oct. 11, 2000Machine Organization1 Machine Organization (CS 570) Lecture 3: Instruction Set Principles and Examples * Jeremy R. Johnson Wed. Oct. 11, 2000](https://reader035.vdocuments.site/reader035/viewer/2022070610/5a4d1bb27f8b9ab0599cd299/html5/thumbnails/22.jpg)
Oct. 11, 2000 Machine Organization 22
Distribution of Instructions in DLX
![Page 23: Oct. 11, 2000Machine Organization1 Machine Organization (CS 570) Lecture 3: Instruction Set Principles and Examples * Jeremy R. Johnson Wed. Oct. 11, 2000](https://reader035.vdocuments.site/reader035/viewer/2022070610/5a4d1bb27f8b9ab0599cd299/html5/thumbnails/23.jpg)
Oct. 11, 2000 Machine Organization 23
Distribution of Instructions in DLX
![Page 24: Oct. 11, 2000Machine Organization1 Machine Organization (CS 570) Lecture 3: Instruction Set Principles and Examples * Jeremy R. Johnson Wed. Oct. 11, 2000](https://reader035.vdocuments.site/reader035/viewer/2022070610/5a4d1bb27f8b9ab0599cd299/html5/thumbnails/24.jpg)
Oct. 11, 2000 Machine Organization 24
Effectiveness of DLX