TECH. CH13 Reduced Instruction Set Computers. Comparison of processors. Driving force for CISC. Intention of CISC. =Program Execution Characteristics:

Similar documents
Advanced Computer Architecture-CS501. Computer Systems Design and Architecture 2.1, 2.2, 3.2

Instruction Set Architecture (ISA)

Computer Organization and Architecture

Chapter 2 Logic Gates and Introduction to Computer Architecture

Instruction Set Architecture. or How to talk to computers if you aren t in Star Trek

Processor Architectures

İSTANBUL AYDIN UNIVERSITY

Overview. CISC Developments. RISC Designs. CISC Designs. VAX: Addressing Modes. Digital VAX

INSTRUCTION LEVEL PARALLELISM PART VII: REORDER BUFFER


Instruction Set Architecture

ADVANCED PROCESSOR ARCHITECTURES AND MEMORY ORGANISATION Lesson-12: ARM

Introduction to RISC Processor. ni logic Pvt. Ltd., Pune

EE482: Advanced Computer Organization Lecture #11 Processor Architecture Stanford University Wednesday, 31 May ILP Execution

CPU Organization and Assembly Language

Instruction Set Architecture (ISA) Design. Classification Categories

Computer Architecture Lecture 2: Instruction Set Principles (Appendix A) Chih Wei Liu 劉 志 尉 National Chiao Tung University

An Overview of Stack Architecture and the PSC 1000 Microprocessor

LSN 2 Computer Processors

VLIW Processors. VLIW Processors

CISC, RISC, and DSP Microprocessors

Central Processing Unit (CPU)

Intel 8086 architecture

Week 1 out-of-class notes, discussions and sample problems

Interpreters and virtual machines. Interpreters. Interpreters. Why interpreters? Tree-based interpreters. Text-based interpreters

Computer Architecture Lecture 3: ISA Tradeoffs. Prof. Onur Mutlu Carnegie Mellon University Spring 2013, 1/18/2013

RISC AND CISC. Computer Architecture. Farhat Masood BE Electrical (NUST) COLLEGE OF ELECTRICAL AND MECHANICAL ENGINEERING

PROBLEMS. which was discussed in Section

Chapter 2 Basic Structure of Computers. Jin-Fu Li Department of Electrical Engineering National Central University Jungli, Taiwan

Computer Architecture TDTS10

Computer System: User s View. Computer System Components: High Level View. Input. Output. Computer. Computer System: Motherboard Level

what operations can it perform? how does it perform them? on what kind of data? where are instructions and data stored?

CHAPTER 4 MARIE: An Introduction to a Simple Computer

Computer Organization

COMPUTER ORGANIZATION AND ARCHITECTURE. Slides Courtesy of Carl Hamacher, Computer Organization, Fifth edition,mcgrawhill

CSE 141 Introduction to Computer Architecture Summer Session I, Lecture 1 Introduction. Pramod V. Argade June 27, 2005

2) Write in detail the issues in the design of code generator.

Software Pipelining. for (i=1, i<100, i++) { x := A[i]; x := x+1; A[i] := x

a storage location directly on the CPU, used for temporary storage of small amounts of data during processing.

Property of ISA vs. Uarch?

Comparative Performance Review of SHA-3 Candidates

Computer Architectures

PROBLEMS #20,R0,R1 #$3A,R2,R4

Computer Architecture Basics

Solution: start more than one instruction in the same clock cycle CPI < 1 (or IPC > 1, Instructions per Cycle) Two approaches:

Chapter 5 Instructor's Manual

CS352H: Computer Systems Architecture

Operating Systems. Virtual Memory

Stack machines The MIPS assembly language A simple source language Stack-machine implementation of the simple language Readings:

Design Cycle for Microprocessors

picojava TM : A Hardware Implementation of the Java Virtual Machine

4 RISC versus CISC Architecture

IA-64 Application Developer s Architecture Guide

Reduced Instruction Set Computer (RISC)

Module: Software Instruction Scheduling Part I

Pipelining Review and Its Limitations

The AVR Microcontroller and C Compiler Co-Design Dr. Gaute Myklebust ATMEL Corporation ATMEL Development Center, Trondheim, Norway

A single register, called the accumulator, stores the. operand before the operation, and stores the result. Add y # add y from memory to the acc

Bindel, Spring 2010 Applications of Parallel Computers (CS 5220) Week 1: Wednesday, Jan 27

In the Beginning The first ISA appears on the IBM System 360 In the good old days

MICROPROCESSOR AND MICROCOMPUTER BASICS

REDUCED INSTRUCTION SET COMPUTERS

Computer Systems Design and Architecture by V. Heuring and H. Jordan

Instruction Set Design

Microprocessor and Microcontroller Architecture

MACHINE ARCHITECTURE & LANGUAGE

ELE 356 Computer Engineering II. Section 1 Foundations Class 6 Architecture

Logical Operations. Control Unit. Contents. Arithmetic Operations. Objectives. The Central Processing Unit: Arithmetic / Logic Unit.

Introducción. Diseño de sistemas digitales.1

Administration. Instruction scheduling. Modern processors. Examples. Simplified architecture model. CS 412 Introduction to Compilers

Chapter 4 Lecture 5 The Microarchitecture Level Integer JAVA Virtual Machine

Chapter 2 Topics. 2.1 Classification of Computers & Instructions 2.2 Classes of Instruction Sets 2.3 Informal Description of Simple RISC Computer, SRC

Architectures and Platforms

A Lab Course on Computer Architecture

HY345 Operating Systems

612 CHAPTER 11 PROCESSOR FAMILIES (Corrisponde al cap Famiglie di processori) PROBLEMS

OAMulator. Online One Address Machine emulator and OAMPL compiler.

CHAPTER 7: The CPU and Memory

Exception and Interrupt Handling in ARM

Pentium vs. Power PC Computer Architecture and PCI Bus Interface

PROBLEMS (Cap. 4 - Istruzioni macchina)

CPU Performance Equation

The Central Processing Unit:

Study Material for MS-07/MCA/204

EE361: Digital Computer Organization Course Syllabus

find model parameters, to validate models, and to develop inputs for models. c 1994 Raj Jain 7.1

Microprocessor & Assembly Language

CHAPTER 1 INTRODUCTION

Types of Workloads. Raj Jain. Washington University in St. Louis

System i Architecture Part 1. Module 2

Chapter 2 - Computer Organization

UNIT 2 CLASSIFICATION OF PARALLEL COMPUTERS

The Design of the Inferno Virtual Machine. Introduction

Computer Organization and Components

CS:APP Chapter 4 Computer Architecture. Wrap-Up. William J. Taffe Plymouth State University. using the slides of

Addressing The problem. When & Where do we encounter Data? The concept of addressing data' in computations. The implications for our machine design(s)

(Refer Slide Time: 00:01:16 min)

Computer Performance. Topic 3. Contents. Prerequisite knowledge Before studying this topic you should be able to:

Traditional IBM Mainframe Operating Principles

Exceptions in MIPS. know the exception mechanism in MIPS be able to write a simple exception handler for a MIPS machine

Transcription:

CH13 Reduced Instruction Set Computers {Make hardware Simpler, but quicker} Key features Large number of general purpose registers Use of compiler technology to optimize register use Limited and simple instruction set Emphasis on optimising the instruction pipeline TECH Computer Science 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 f e.g. CASE (switch) on VAX Intention of CISC Ease compiler writing Improve execution efficiency Complex operations in microcode Support more complex HLLs =Program 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 PascalC PascalC PascalC 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: RISC 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 all in registers

-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 (ins) Local registers (locals) Temporary registers (outs) f Temporary registers from one set overlap parameter registers from the next f This allows parameter passing without moving data Overlapping Register Windows Circular (call and return registers) e.g. 24 reg/wind * 8 wind 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 Recently used local scalars Individual variables Blocks of memory Compiler assigned global variables Recently used global variables Save/restore based on procedure Save/restore based on nesting caching algorithm Register addressing 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 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 f More instructions require longer op-codes f 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 f ALU operation with register input and output For load and store I: Instruction fetch E: Execute f Calculate memory address D: Memory f Register to memory or f memory to register operation 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