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



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

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


Instruction Set Architecture (ISA)

INSTRUCTION LEVEL PARALLELISM PART VII: REORDER BUFFER

VLIW Processors. VLIW Processors

Computer Organization and Architecture

Pentium vs. Power PC Computer Architecture and PCI Bus Interface

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

CPU Organization and Assembly Language

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

ADVANCED PROCESSOR ARCHITECTURES AND MEMORY ORGANISATION Lesson-12: ARM

Instruction Set Design

Design Cycle for Microprocessors

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

Instruction Set Architecture (ISA) Design. Classification Categories

CHAPTER 7: The CPU and Memory

Processor Architectures

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

Intel 8086 architecture

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

Computer Organization and Components

An Overview of Stack Architecture and the PSC 1000 Microprocessor

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

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

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

İSTANBUL AYDIN UNIVERSITY

The IA-32 processor architecture

Central Processing Unit (CPU)

How It All Works. Other M68000 Updates. Basic Control Signals. Basic Control Signals

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

picojava TM : A Hardware Implementation of the Java Virtual Machine

Computer Architectures

MICROPROCESSOR. Exclusive for IACE Students iacehyd.blogspot.in Ph: /422 Page 1

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

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

CPU Performance Equation

Instruction Set Architecture

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

LSN 2 Computer Processors

Property of ISA vs. Uarch?

EC 362 Problem Set #2

Putting it all together: Intel Nehalem.

Application Note 195. ARM11 performance monitor unit. Document number: ARM DAI 195B Issued: 15th February, 2008 Copyright ARM Limited 2007

Chapter 4 Lecture 5 The Microarchitecture Level Integer JAVA Virtual Machine

MICROPROCESSOR AND MICROCOMPUTER BASICS

Chapter 5 Instructor's Manual

IA-64 Application Developer s Architecture Guide

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

Computer Architecture TDTS10

Computer organization

PROBLEMS. which was discussed in Section

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

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

OC By Arsene Fansi T. POLIMI

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

MACHINE ARCHITECTURE & LANGUAGE

Basic Computer Organization

Chapter 2 Logic Gates and Introduction to Computer Architecture

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

CHAPTER 4 MARIE: An Introduction to a Simple Computer

Microprocessor and Microcontroller Architecture

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

Q. Consider a dynamic instruction execution (an execution trace, in other words) that consists of repeats of code in this pattern:

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

A Lab Course on Computer Architecture

The Microarchitecture of Superscalar Processors

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

Design of Digital Circuits (SS16)

Lecture 7: Machine-Level Programming I: Basics Mohamed Zahran (aka Z)

CISC, RISC, and DSP Microprocessors

Microprocessor & Assembly Language

Computer Architecture Basics

Chapter 7D The Java Virtual Machine

Introduction to Cloud Computing

Fast Arithmetic Coding (FastAC) Implementations

CS352H: Computer Systems Architecture

Intel 64 and IA-32 Architectures Software Developer s Manual

UNIVERSITY OF CALIFORNIA, DAVIS Department of Electrical and Computer Engineering. EEC180B Lab 7: MISP Processor Design Spring 1995

Static Scheduling. option #1: dynamic scheduling (by the hardware) option #2: static scheduling (by the compiler) ECE 252 / CPS 220 Lecture Notes

Traditional IBM Mainframe Operating Principles

ARM Architecture. ARM history. Why ARM? ARM Ltd developed by Acorn computers. Computer Organization and Assembly Languages Yung-Yu Chuang

The Motherboard Chapter #5

Intel Pentium 4 Processor on 90nm Technology

ASSEMBLY PROGRAMMING ON A VIRTUAL COMPUTER

ARM Microprocessor and ARM-Based Microcontrollers

Management Challenge. Managing Hardware Assets. Central Processing Unit. What is a Computer System?

Chapter 5, The Instruction Set Architecture Level

Execution Cycle. Pipelining. IF and ID Stages. Simple MIPS Instruction Formats

Chapter 02: Computer Organization. Lesson 04: Functional units and components in a computer organization Part 3 Bus Structures

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

Memory Management Outline. Background Swapping Contiguous Memory Allocation Paging Segmentation Segmented Paging

Binary Translation for Fun and Profit

Pipelining Review and Its Limitations

The Pentium 4 and the G4e: An Architectural Comparison

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

Introduction to Microprocessors

Learning Outcomes. Simple CPU Operation and Buses. Composition of a CPU. A simple CPU design

The WIMP51: A Simple Processor and Visualization Tool to Introduce Undergraduates to Computer Organization

Transcription:

Overview CISC Developments Over Twenty Years Classic CISC design: Digital VAX VAXÕs RISC successor: PRISM/Alpha IntelÕs ubiquitous 80x86 architecture Ð 8086 through the Pentium Pro (P6) RJS 2/3/97 Philosophy CISC Designs Ð Reduce code size Ð Machine language should match the semantics of high level language constructs Results Ð Complicated instructions which could take many cycles to execute Philosophy RISC Designs Ð Simple, quick instructions. Results Ð Instruction dependencies can be easily determined. Ð Instructions can be sub-divided and pipelined. Ð High instruction throughput. Mid-70Õs design Digital VAX Ð 32-bit architecture Ð Basically a general-purpose register machine CISC philosophy Ð Numerous addressing modes Ð Rich instruction suite VAX: Addressing Modes Register r4 Base (displacement) [r4 + offset] Immediate 0xFFF0101 PC-relative [PC] + offset Deferred (indirect) [ [r3 + offset] ] Index (scaled) [r3 + r4 * 8]

VAX: AddtÕl Addressing Modes Byte, word, double word displacement Auto-increment/auto-decrement Ð Acesses memory and then increments/ decrements address VAX: Instruction Encoding Operations: 1 byte Each operand must be encoded to specify the addressing mode Example: Ð Integer add: 3-19 bytes Push VAX: Instructions Ð Push an item onto a stack insque Ð Insert an item onto a queue aobleq op1 op2 Ð Add one to op1 and branch if equal to op2 Special call/ret Ð Handles argument, stack setup automatically CISC: Side effects Instruction basically has multiple results Ð Auto-increment combines a load/store with an addition Ð Condition codes Negative, Zero, overflow, Carry Arithmetic instructions set these codes Codes are used for conditional branches Digital: Beyond VAX PRISM/Alpha Ð RISC processor fixed size instructions load/store architecture out-of-order execution speculation Backward Compatibility? Ð Recompilation: VAX --> Alphas 1978: 8086 INTEL Ð 16-bit, extended accumulator machine 1982: 80286 backward compatible Ð 24-bit address space 1985: 80386 backward compatible Ð 32-bit address space 1992: Pentium backward compatible 1996: P6 backward compatible

80x86: Overview Has moved closer to a general purpose register machine Segmented address space Instructions work on bytes, words, double words. Only four instructions added since 1989. Ð Three multiprocessing instructions Ð One conditional move 80x86: Segmented Addr Space Real Mode (8086) Ð Segment register is shift to the left 4 bits and the offet is added. Protected Mode (80286) Ð Segment register selects an index into the segment address table. (24 bits) Offset is added. Protected Mode (80386, 80486, Pentium) Ð Segment descriptor is 32 bits. 80x86: Addressing Modes Absolute [0xa0000000] Register [r4] Based displacement [r4 + offset] Indexed [r3 + r4] Based indexed [r3 + r4 + offset] Base plus scaled index [r3 + r4 * scale] Base scaled [r3 + r4 * scale + offset] displacement 80x86: Instruction Complications Instruction prefixes Ð Override default data size, segment registers Ð Lock the bus (i.e synchronization) Ð Repeat instruction until register CX counts to zero. Multiple segments complicate control-flow statements 80x86: Instruction Usage Instructions: 1 to 17 bytes Ð Integer programs: av=2.8 Ð Floating point programs: av=4.1 Most frequent addressing modes: Based displacement and Based scaled indexing. Intel: Improving CISC Pentium: Leveraged RISC technology Ð 5-stage pipeline Ð Dual-issue Ð No branch prediction Ð No out-of-order execution Software basically needs recompilation

Pentium Pro (P6) A RISC processor running a CISC instruction set. Ð Three way issue Ð Speculative execution Ð out-of-order execution Superscalar pipeline Ð Allows higher clock rate while handling CISC Stage 1 P6: Pipeline Stages 1-4 Ð Determines next PC Stage 2-4 Ð Fetch and mark instruction P6: Pipeline Stages 5-6 Instruction is decoded into a series of micro-ops (uops) Ð Three decoders Two decoders handle simple instructions Third decoder handles more complex cases Falls through decoder to a special microcode area Ð Majority translate to < 4 uops. Ð Worst case: 204 uops P6: Pipeline Stages 7-8 Assign logical registers to physical registers Ð 80x86 machine instructions are limited to the basic x86 registers. Ð x86 architecture has 16 physical registers Ð P6 has 40 physical registers Prepared uops are passed to the reservation station and reorder buffer P6: Pipeline Stages 9-10 Reservation station dispatches uops to one of five parallel execution units. Ð Two integer, one load, one store, and one FPU Reorder buffer holds the uops Ð Status flags signal dependencies Execution P6: Pipeline Stage 11 Ð May overlap into stage 12

P6: Pipeline Stages 12-14 Instructions are retired Ð Must wait until all uops that comprise the instruction are complete Ð Must handle precise exceptions P6: Pipeline Performance 80x86 references memory more often than a typical RISC instruction set. Ð Floating point programs: 2-4x higher Ð Integer programs: 1.25 higher Superpipelining and branch prediction problems. Ð P6 uses 4-bit branch history P6: Completely RISC? Can a compiler directly generate uops? Ð Bypass decoding phase Ð Leverage static scheduling techniques Ð Force competing chip makers to use same basic design. Could reduce differentiating points between competitors. References Hennesy and Patterson, ÒComputer Organization and Design: The Hardware/Software InterfaceÓ Hennesy and Patterson, ÒComputer Architecture: A Quantitative ApproachÓ Bhandarkar, ÒAlpha Implementations and ArchitectureÓ Byte, April 1995, ÒIntelÕs P6Ó http://www.intel/procs/ppro/info/isscc/index.htm