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

Similar documents
History of the Intel 80x86

Lecture 4: Instruction Set Design/Pipelining

Lecture 4: Instruction Set Architecture

EITF20: Computer Architecture Part2.1.1: Instruction Set Architecture

Lecture 4: RISC Computers

EITF20: Computer Architecture Part2.1.1: Instruction Set Architecture

Computer Systems Laboratory Sungkyunkwan University

ECE 486/586. Computer Architecture. Lecture # 7

Reminder: tutorials start next week!

Instruction Set Principles and Examples. Appendix B

Lecture 4: RISC Computers

Chapter 2 Instruction Set Architecture (ISA)

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

Instruction Set Architecture (ISA)

Chapter 2: Instructions How we talk to the computer

ARSITEKTUR SISTEM KOMPUTER. Wayan Suparta, PhD 17 April 2018

RISC Principles. Introduction

These actions may use different parts of the CPU. Pipelining is when the parts run simultaneously on different instructions.

Typical Processor Execution Cycle

Instruction Set Principles. (Appendix B)

A Model RISC Processor. DLX Architecture

INSTRUCTION LEVEL PARALLELISM

ECE 486/586. Computer Architecture. Lecture # 8

Lecture 2: Computer Performance. Assist.Prof.Dr. Gürhan Küçük Advanced Computer Architectures CSE 533

Instruction Set Design

Lecture Topics. Principle #1: Exploit Parallelism ECE 486/586. Computer Architecture. Lecture # 5. Key Principles of Computer Architecture

Lecture Topics. Branch Condition Options. Branch Conditions ECE 486/586. Computer Architecture. Lecture # 8. Instruction Set Principles.

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

ECE232: Hardware Organization and Design

Instruction-set Design Issues: what is the ML instruction format(s) ML instruction Opcode Dest. Operand Source Operand 1...

REDUCED INSTRUCTION SET COMPUTERS (RISC)

General Purpose Processors

ISA and RISCV. CASS 2018 Lavanya Ramapantulu

Processing Unit CS206T

Computer Performance. Relative Performance. Ways to measure Performance. Computer Architecture ELEC /1/17. Dr. Hayden Kwok-Hay So

Pipelining. CS701 High Performance Computing

Lecture Topics. Announcements. Today: The MIPS ISA (P&H ) Next: continued. Milestone #1 (due 1/26) Milestone #2 (due 2/2)

Computer Organization CS 206 T Lec# 2: Instruction Sets

Microprocessors. Microprocessors and rpeanut. Memory. Eric McCreath

Microprocessors and rpeanut. Eric McCreath

Fundamentals of Computer Design

Micro-programmed Control Ch 17

Alex Milenkovich 1 CPE 323. CPE 323 Introduction to Embedded Computer Systems: Introduction. Instructor: Dr Aleksandar Milenkovic Lecture Notes

Reduced Instruction Set Computers

Hardwired Control (4) Micro-programmed Control Ch 17. Micro-programmed Control (3) Machine Instructions vs. Micro-instructions

CHAPTER 5 A Closer Look at Instruction Set Architectures

Micro-programmed Control Ch 15

Fundamentals of Computers Design

Machine Instructions vs. Micro-instructions. Micro-programmed Control Ch 15. Machine Instructions vs. Micro-instructions (2) Hardwired Control (4)

Micro-programmed Control Ch 15

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

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

Instruction Set Architecture. "Speaking with the computer"

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

Getting CPI under 1: Outline

Computer Architecture

Instruction Sets Ch 9-10

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

Instruction Sets Ch 9-10

URL: Offered by: Should already know: Will learn: 01 1 EE 4720 Computer Architecture

The Processor: Instruction-Level Parallelism

Computer Architecture, RISC vs. CISC, and MIPS Processor

CS61C - Machine Structures. Week 6 - Performance. Oct 3, 2003 John Wawrzynek.

Major Advances (continued)

URL: Offered by: Should already know: Will learn: 01 1 EE 4720 Computer Architecture

1 5. Addressing Modes COMP2611 Fall 2015 Instruction: Language of the Computer

Instruction-set Design Issues: what is the ML instruction format(s) ML instruction Opcode Dest. Operand Source Operand 1...

Advanced Computer Architecture

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

CPE/EE 421 Microcomputers

Computer Architectures

Virtual Machines and Dynamic Translation: Implementing ISAs in Software

Chapter 13 Reduced Instruction Set Computers

ASSEMBLY LANGUAGE MACHINE ORGANIZATION

Microprocessor Architecture Dr. Charles Kim Howard University

Hakim Weatherspoon CS 3410 Computer Science Cornell University

CISC Processor Design

EC 413 Computer Organization

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

New Advances in Micro-Processors and computer architectures

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

Alex Milenkovich 1. CPE/EE 421 Microcomputers. CPE/EE 421 Microcomputers U A H U A H U A H. Instructor: Dr Aleksandar Milenkovic Lecture Notes S01

Instruction Set. Instruction Sets Ch Instruction Representation. Machine Instruction. Instruction Set Design (5) Operation types

Introduction to CPU Design

Instruction Set Architecture ISA ISA

Uniprocessors. HPC Fall 2012 Prof. Robert van Engelen

ECE 552 / CPS 550 Advanced Computer Architecture I. Lecture 4 Reduced Instruction Set Computers

CPE300: Digital System Architecture and Design

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

ECE 468 Computer Architecture and Organization Lecture 1

How What When Why CSC3501 FALL07 CSC3501 FALL07. Louisiana State University 1- Introduction - 1. Louisiana State University 1- Introduction - 2

William Stallings Computer Organization and Architecture. Chapter 11 CPU Structure and Function

RISC, CISC, and ISA Variations

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

Review of instruction set architectures

Instruction Set Architectures

Lecture 5: Instruction Set Architecture : Road Map

Alternate definition: Instruction Set Architecture (ISA) What is Computer Architecture? Computer Organization. Computer structure: Von Neumann model

What is Good Performance. Benchmark at Home and Office. Benchmark at Home and Office. Program with 2 threads Home program.

CSCE 5610: Computer Architecture

Transcription:

1 CISC Creates the Anti CISC Revolution Digital Equipment Company (DEC) introduces VAX (1977) Commercially successful 32-bit CISC minicomputer From CISC to RISC In 1970s and 1980s CISC minicomputers became cheaper Serious computers became available to small organizations UNIX developed as minicomputer operating system TCP/IP developed to support networks of minicomputers Computer Science emerged as separate academic discipline Students needed topics for final projects, theses, dissertations Research results on CISC performance Most machine instructions are never used CISC implementations give up speed in favor of generality CISC machines run slowly to support unnecessary features 2 CISC Limitations RISC "Philosophy" CISC instruction set requires microcode Many different instruction types Each instruction requires different implementation Complex operations Many instructions require complex decoding and sequencing Central bus organization Registers Atomic microcode operations System bus = bottleneck Microcode operations sequential Status Decoder IR Word Machine instructions sequential Machine instruction executes in multiple clock cycles System Bus Memory access Operation complexity non-uniform instruction length Instruction fetch multiple clock cycles to load instruction ALU Operation ALU Result Flag PC IN ALU Subsystem + 1 2 3 control OUT MAR MDR Address Data Main Memory Technological developments from 1975 to 1990 Price of RAM from $5000 / MByte (1975) to $5 / MByte (1990) Compilers powerful and efficient with extensive optimization Unix, C, and TCP/IP practical portable code Principal research result on CISC performance ~ 90% of run time = ~ 10% of VAX ISA ~ 90% of VAX instruction set < 10% of run time Reduced Instruction Set Computer (RISC) 1984 Apply Amdahl's "Law" to Instruction Set Architecture (ISA) Speed up operations accounting for most of run time Ignore performance degradation to other instructions RISC ISA keep most important instructions from CISC ISA Other CISC instructions implemented as multiple RISC instructions Simple hardware implementation faster execution 3 4

5 RISC Microprocessors Simpler ISA Fewer machine instructions All instructions are same length Simpler hardware design Allows lower CPI i and higher clock speed No microcode all instructions implemented in similar way No dedicated system bus CPU can process several instructions at once An instruction completes execution on almost every clock cycle High level program compiled to RISC Larger IC i more machine instructions than compilation for CISC Run more quickly than same high level programs on CISC All processors today use RISC technology Pure RISC (IBM Power, SPARC, MIPS, ARM, ) RISC technology for CISC language Intel x86 (Pentium, Core, Xeon) Explicitly parallel RISC (Intel Itanium, IBM mainframes) CISC vs. Pure RISC CISC RISC Instruction Types 300 50 Addressing Modes 15 5 Data Types 10 2 Procedure Handling Automated Coded Implementations Complex Simple Memory Organization Complex Simple CISC CISC CISC CISC CISC T CPI IC τ CPI IC τ S = = = RISC RISC RISC RISC RSC I T' CPI IC τ CPI IC τ CISC 1 τ = ( 6) RISC 2 τ CISC τ 3 RISC τ CISC RISC 6 Considerations for a RISC ISA Goals Simple no instruction should require more steps than others Complete able to perform any desired computation Orthogonal only one way to encode any given computation Designing a RISC ISA Choices Computation model Register-register Register-memory Range and type of operations Operands Data types Data sizes Addressing modes Displacement sizes Branch types Conditional Unconditional Procedural (call/return) Branch offset (length of jump) 7 8

9 Instruction Types Five programs from SPECint92 benchmark suite Compile for x86 instruction set (ISA for Intel 386/486/Pentium) Addressing Modes Graph Instruction Relative Proportion of Total Run Time Load 22% Conditional branch 20% Compare 16% Store 12% Add 8% And 6% Sub 5% Move reg-reg 4% Call 1% Return 1% Other 5% Total 100% First 10 instructions account for 95% of run time Amdahl's "Law" Fast implementation of 95% Other 5% will not seriously degrade performance Must include unconditional branch for completeness Ref: Hennessy / Patterson, figure 2.11 Ref: Hennessy / Patterson, figure 2.6 10 Addressing Modes Three programs from SPEC CINT92 and SPEC CFP95 benchmarks Mode tex spice gcc Example of Mode register deferred 24 3 11 mem[r1] immediate 43 17 39 #11223344 displacement 32 55 40 mem[r1 + disp] memory indirect 1 6 1 mem[mem[r1]] scaled 0 16 6 mem[r1 + R2 * d + disp] other 0 3 3 total 100 100 100 total (top 3) 99 75 90 First three addressing modes Account for more than 75% of all operand accesses Instruction Length Instructions should be of uniform length Simplifies instruction DECODING No need to calculate instruction length Instruction fields are always in same place Enables INSTRUCTION FETCH in 1 clock cycle Practical instruction lengths Most RISC machines for servers/workstations use 32-bit instructions Special purpose RISC machines use longer instructions Itanium and mainframes use 128-bit instructions ISA defines 32-bit instructions No single field can be 32 bits long Includes address displacements, immediates, branch length Ref: Hennessy / Patterson, figure 2.6 op code 32 bits operands 11 12

13 Length of Immediate Operand Graph Length of Immediate Operand Three programs from SPEC CINT92 and SPEC CFP95 benchmarks Immediate size tex spice gcc 0 3 1 1 4 45 13 50 8 4 35 22 12 3 15 4 16 15 14 3 20 25 10 18 24 2 12 0 28 1 0 0 32 2 0 2 Total 100 100 100 Total to 16 bits 70 78 80 #1122 Ref: Hennessy / Patterson, figure 2.9 Allocating 16 bits in 32-bit instruction for immediate operands covers more than 70% of cases Ref: Hennessy / Patterson, figure 2.9 14 Displacement Length Graph Displacement Length Programs from SPEC CINT92 and SPEC CFP95 benchmarks Ref: Hennessy / Patterson, figure 2.7 Bits in address displacement int FP 0 26 7 1 1 0 2 6 6 3 12 8 4 16 5 5 6 10 6 10 4 7 6 3 8 2 5 9 1 1 10 1 10 11 0 4 12 0 7 13 1 6 14 0 4 15 12 20 Total 100 100 Allocating 16 bits for address displacements covers almost all cases mem[r1 + 1122] Ref: Hennessy / Patterson, figure 2.7 15 16

17 Branch Instructions Graph Branch Instructions Programs from SPEC CINT92 and SPEC CFP95 benchmarks Integer FP Call / Return 13 10 Unconditional Branch 6 4 Conditional branch 81 86 Total 100 100 Total of Conditional and Unconditional Branch 87 90 Conditional branch accounts for more than 80% of all branch instructions Unconditional branch must be included for completeness Call and return Include many steps saving registers and branching Are difficult to implement Ref: Hennessy / Patterson, figure 2.12 Ref: Hennessy / Patterson, figure 2.12 18 Branch Offset Graph Branch Offset Programs from SPEC CINT92 and SPEC CFP95 benchmarks Ref: Hennessy / Patterson, figure 2.13 Offset bits for branch address int FP 0 0 0 1 1 0 2 13 36 3 26 21 4 16 11 5 24 12 6 6 9 7 5 6 8 6 4 9 2 1 10 1 0 11 0 0 12 0 0 13 0 0 14 0 0 15 0 0 Total 100 100 Allocating 16 bits for branch offsets covers almost all cases PC PC + 1122 Ref: Hennessy / Patterson, figure 2.13 19 20

21 Summary RISC ISA By the Numbers Instruction Types 10 instructions cover 95% of run time Choose 30 50 most necessary / convenient instructions Addressing Modes Register Immediate Displacement Instruction Length 32-bit instructions Branch Instructions Conditional branch Unconditional branch Length of immediate values 16-bit length for Immediate operand Displacement Branch offset 75% 90% of run time addressing modes 75% 90% of run time addressing modes 70% 80% of run time immediates 100% of run time address displacements 100% of run time branch offsets