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

Similar documents
ARSITEKTUR SISTEM KOMPUTER. Wayan Suparta, PhD 17 April 2018

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

Chapter 13 Reduced Instruction Set Computers

Major Advances (continued)

EKT 303 WEEK Pearson Education, Inc., Hoboken, NJ. All rights reserved.

Lecture 4: RISC Computers

Pipelining, Branch Prediction, Trends

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

Lecture 4: RISC Computers

Overview. EE 4504 Computer Organization. This section. Items to be discussed. Section 9 RISC Architectures. Reading: Text, Chapter 12

CISC Attributes. E.g. Pentium is considered a modern CISC processor

CPU Structure and Function. Chapter 12, William Stallings Computer Organization and Architecture 7 th Edition

Processing Unit CS206T

RISC Principles. Introduction

COMPUTER ORGANIZATION & ARCHITECTURE

Computer Organization CS 206 T Lec# 2: Instruction Sets

REDUCED INSTRUCTION SET COMPUTERS (RISC)

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

ECE 486/586. Computer Architecture. Lecture # 7

UNIT- 5. Chapter 12 Processor Structure and Function

CISC / RISC. Complex / Reduced Instruction Set Computers

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

Chapter 5:: Target Machine Architecture (cont.)

CS 5803 Introduction to High Performance Computer Architecture: RISC vs. CISC. A.R. Hurson 323 Computer Science Building, Missouri S&T

Lecture 8: RISC & Parallel Computers. Parallel computers

Lecture 4: Instruction Set Design/Pipelining

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

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

RISC Architecture Ch 12

The Processor: Instruction-Level Parallelism

ASSEMBLY LANGUAGE MACHINE ORGANIZATION

More advanced CPUs. August 4, Howard Huang 1

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

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

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

William Stallings Computer Organization and Architecture 8 th Edition. Chapter 12 Processor Structure and Function

Reduced Instruction Set Computers

Review of instruction set architectures

CPU Structure and Function

An Overview of ISA (Instruction Set Architecture)

Advanced d Instruction Level Parallelism. Computer Systems Laboratory Sungkyunkwan University

Micro-programmed Control Ch 17

Micro-programmed Control Ch 15

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

What is Superscalar? CSCI 4717 Computer Architecture. Why the drive toward Superscalar? What is Superscalar? (continued) In class exercise

William Stallings Computer Organization and Architecture

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

Typical Processor Execution Cycle

Real Processors. Lecture for CPSC 5155 Edward Bosworth, Ph.D. Computer Science Department Columbus State University

Micro-programmed Control Ch 15

Superscalar Processors

Chapter 2: Instructions How we talk to the computer

EN164: Design of Computing Systems Topic 06.b: Superscalar Processor Design

Processor (IV) - advanced ILP. Hwansoo Han

RISC Processors and Parallel Processing. Section and 3.3.6

Parallelism. Execution Cycle. Dual Bus Simple CPU. Pipelining COMP375 1

Supplement for MIPS (Section 4.14 of the textbook)

CS450/650 Notes Winter 2013 A Morton. Superscalar Pipelines

EC 413 Computer Organization

New Advances in Micro-Processors and computer architectures

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

Superscalar Processing (5) Superscalar Processors Ch 14. New dependency for superscalar case? (8) Output Dependency?

Superscalar Processors Ch 14

Chapter 12. CPU Structure and Function. Yonsei University

CPU Structure and Function

William Stallings Computer Organization and Architecture 8 th Edition. Chapter 14 Instruction Level Parallelism and Superscalar Processors

William Stallings Computer Organization and Architecture 8 th Edition. Chapter 11 Instruction Sets: Addressing Modes and Formats

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

Advanced Computer Architecture

Lecture 9: More ILP. Today: limits of ILP, case studies, boosting ILP (Sections )

PHBREAK: RISC ISP architecture the MIPS ISP. you read: text Chapter 3 CS 350

The Microarchitecture Level

Parallel Processing. Computer Architecture. Computer Architecture. Outline. Multiple Processor Organization

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

Instruction Set Principles and Examples. Appendix B

Advanced Parallel Architecture Lesson 3. Annalisa Massini /2015

Ti Parallel Computing PIPELINING. Michał Roziecki, Tomáš Cipr

CS Computer Architecture

Lecture 4: Instruction Set Architecture

Control Hazards. Branch Prediction

Instruction content (2/2) Instruction content (1/2) The Instruction Set. Chapter 9. Each instruction must contain 4 basic pieces of information

Advanced Parallel Architecture Lesson 3. Annalisa Massini /2015

Computer and Hardware Architecture I. Benny Thörnberg Associate Professor in Electronics

Superscalar Processors Ch 13. Superscalar Processing (5) Computer Organization II 10/10/2001. New dependency for superscalar case? (8) Name dependency

Instruction Set Architecture. "Speaking with the computer"

COMPUTER STRUCTURE AND ORGANIZATION

CSEE 3827: Fundamentals of Computer Systems

Instruction Sets: Characteristics and Functions Addressing Modes

Computer Architecture 计算机体系结构. Lecture 4. Instruction-Level Parallelism II 第四讲 指令级并行 II. Chao Li, PhD. 李超博士

Computer Architecture and Organization. Instruction Sets: Addressing Modes and Formats

Characteristics of RISC processors. Code generation for superscalar RISCprocessors. What are RISC and CISC? Processors with and without pipelining

TECH. CH14 Instruction Level Parallelism and Superscalar Processors. What is Superscalar? Why Superscalar? General Superscalar Organization

Lecture 9: RISC Ch 13 [Sta06] Instruction analysis RISC vs. CISC Register use. Computer Organization II. Pentium

Microprocessor Architecture Dr. Charles Kim Howard University

COMPUTER ORGANIZATION & ARCHITECTURE

SAE5C Computer Organization and Architecture. Unit : I - V

ISA and RISCV. CASS 2018 Lavanya Ramapantulu

Advanced processor designs

Communications and Computer Engineering II: Lecturer : Tsuyoshi Isshiki

Computer Architecture Lecture 12: Out-of-Order Execution (Dynamic Instruction Scheduling)

Transcription:

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

Major Advances in Computers(1) The family concept IBM System/360 1964 DEC PDP-8 Separates architecture from implementation Microporgrammed control unit Idea by Wilkes 1951 Produced by IBM S/360 1964 Cache memory IBM S/360 model 85 1969

Major Advances in Computers(2) Solid State RAM (See memory notes) Microprocessors Intel 4004 1971 Pipelining Introduces parallelism into fetch execute cycle Multiple processors

The Next Step - RISC Reduced Instruction Set Computer Key features Large number of general purpose registers or use of compiler technology to optimize register use Limited and simple instruction set Emphasis on optimising the instruction pipeline

Comparison of processors CISC RISC Superscalar IBM DEC VAX Intel Motorola MIPS IBM Intel 370/168 11/780 486 88000 R4000 RS/6000 80960 1973 1978 1989 1988 1991 1990 1989 No. of instruction 208 303 235 51 94 184 62 Instruction size (octets) 2-6 2-57 1-11 4 32 4 4 or 8 Addressing modes 4 22 11 3 1 2 11 GP Registers 16 16 8 32 32 32 23-256 Control memory (k bytes) (microprogramming) 420 480 246 0 0 0 0

Driving force for CISC Software costs far exceed hardware costs Increasingly complex high level languages Semantic gap Leads to: Large instruction sets More addressing modes Hardware implementations of HLL statements e.g. CASE (switch) on VAX

Intention of CISC Ease compiler writing Improve execution efficiency Complex operations in microcode Support more complex HLLs

Execution Characteristics Operations performed Operands used Execution sequencing Studies have been done based on programs written in HLLs Dynamic studies are measured during the execution of the program

Operations Assignments Movement of data Conditional statements (IF, LOOP) Sequence control Procedure call-return is very time consuming Some HLL instruction lead to many machine code operations

Relative Dynamic Frequency Dynamic Machine Instruction Memory Reference Occurrence (Weighted) (Weighted) Pascal C Pascal C Pascal C Assign 45 38 13 13 14 15 Loop 5 3 42 32 33 26 Call 15 12 31 33 44 45 If 29 43 11 21 7 13 GoTo - 3 - - - - Other 6 1 3 1 2 1

Operands Mainly local scalar variables Optimisation should concentrate on accessing local variables Pascal C Average Integer constant 16 23 20 Scalar variable 58 53 55 Array/structure 26 24 25

Procedure Calls Very time consuming Depends on number of parameters passed Depends on level of nesting Most programs do not do a lot of calls followed by lots of returns Most variables are local (c.f. locality of reference)

Implications Best support is given by optimising most used and most time consuming features Large number of registers Operand referencing Careful design of pipelines Branch prediction etc. Simplified (reduced) instruction set

Large Register File Software solution Require compiler to allocate registers Allocate based on most used variables in a given time Requires sophisticated program analysis Hardware solution Have more registers Thus more variables will be in registers

Registers for Local Variables Store local scalar variables in registers Reduces memory access Every procedure (function) call changes locality Parameters must be passed Results must be returned Variables from calling programs must be restored

Register Windows Only few parameters Limited range of depth of call Use multiple small sets of registers Calls switch to a different set of registers Returns switch back to a previously used set of registers

Register Windows cont. Three areas within a register set Parameter registers Local registers Temporary registers Temporary registers from one set overlap parameter registers from the next This allows parameter passing without moving data

Overlapping Register Windows

Circular Buffer diagram

Operation of Circular Buffer When a call is made, a current window pointer is moved to show the currently active register window If all windows are in use, an interrupt is generated and the oldest window (the one furthest back in the call nesting) is saved to memory A saved window pointer indicates where the next saved windows should restore to

Global Variables Allocated by the compiler to memory Inefficient for frequently accessed variables Have a set of registers for global variables

Registers v Cache Large Register File Cache All local scalars Individual variables Compiler assigned global variables Save/restore based on procedure nesting Register addressing Recently used local scalars Blocks of memory Recently used global variables Save/restore based on caching algorithm Memory addressing

Referencing a Scalar - Window Based Register File

Referencing a Scalar - Cache

Compiler Based Register Optimization Assume small number of registers (16-32) Optimizing use is up to compiler HLL programs have no explicit references to registers usually - think about C - register int 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 use memory

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 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

Graph Coloring Approach

Why CISC (1)? Compiler simplification? Disputed Complex machine instructions harder to exploit Optimization more difficult Smaller programs? Program takes up less memory but Memory is now cheap May not occupy less bits, just look shorter in symbolic form More instructions require longer op-codes Register references require fewer bits

Why CISC (2)? Faster programs? Bias towards use of simpler instructions More complex control unit Microprogram control store larger thus simple instructions take longer to execute It is far from clear that CISC is the appropriate solution

RISC Characteristics One instruction per cycle Register to register operations Few, simple addressing modes Few, simple instruction formats Hardwired design (no microcode) Fixed instruction format More compile time/effort

RISC v CISC Not clear cut Many designs borrow from both philosophies e.g. PowerPC and Pentium II

RISC Pipelining Most instructions are register to register Two phases of execution I: Instruction fetch E: Execute ALU operation with register input and output For load and store I: Instruction fetch E: Execute Calculate memory address D: Memory Register to memory or memory to register operation

Effects of Pipelining

Optimization of Pipelining Delayed branch Does not take effect until after execution of following instruction This following instruction is the delay slot

Normal and Delayed Branch Address Normal Delayed Optimized 100 LOAD X,A LOAD X,A LOAD X,A 101 ADD 1,A ADD 1,A JUMP 105 102 JUMP 105 JUMP 105 ADD 1,A 103 ADD A,B NOOP ADD A,B 104 SUB C,B ADD A,B SUB C,B 105 STORE A,Z SUB C,B STORE A,Z 106 STORE A,Z

Use of Delayed Branch

Controversy Quantitative compare program sizes and execution speeds Qualitative examine issues of high level language support and use of VLSI real estate Problems No pair of RISC and CISC that are directly comparable No definitive set of test programs Difficult to separate hardware effects from complier effects Most comparisons done on toy rather than production machines Most commercial devices are a mixture

Required Reading Stallings chapter 12 Manufacturer web sites