Su L17 Processor Datapath

Embed Size (px)

Citation preview

  • 8/8/2019 Su L17 Processor Datapath

    1/33

    CDA 3101 Summer 2007

    Introduction to Computer Organization

    Processor Organization

    Datapath Design

    21 June 2007

  • 8/8/2019 Su L17 Processor Datapath

    2/33

    Review

    Construction of the ALU Building blocks (digital design gates)

    Modular design

    Multiplexor chooses operation

    All operations are performed in parallel Carry lookahead adder

    Computer arithmetic

    Finite precision

    Laws of algebra do not always hold

    Integers: twos complement representation

    Floating point: IEEE 754 standard

  • 8/8/2019 Su L17 Processor Datapath

    3/33

    Overview

    Computer organization (microarchitecture)

    Processor organization

    Datapath

    Control

    Register file

    Processor implementation overview

    Clocking methodologies

    Sequential circuits Latches

    Registers

  • 8/8/2019 Su L17 Processor Datapath

    4/33

    Processor Performance

    Program

    Compiler

    ISA

    Microarchitecture

    Hardware

    CPU time = IC* CPI * Cycle time

  • 8/8/2019 Su L17 Processor Datapath

    5/33

    Computer Organization

    I/O

    device

    I/O

    device

    I/O Subsystem

    ProcessorMemory

    Subsystem

    . . .

    Address Bus

    Data Bus

    Control Bus

  • 8/8/2019 Su L17 Processor Datapath

    6/33

    The Processor

    Processor(CPU) Active part of the computer

    Does all the work Data manipulation

    Decision-making

    Datapath Hardware that perform all required operations

    ALU + registers + internal buses

    The brawn

    Control Hardware which tells the datapath what needs to be done

    The brain

  • 8/8/2019 Su L17 Processor Datapath

    7/33

    Processor Organization

    ALU

    Control

    Unit

    Registers

    Control signals

    Data values

    Control signals

    Control bus signals

    Data values (results)

    Data values (operands)

    Address bus Data bus

  • 8/8/2019 Su L17 Processor Datapath

    8/33

    Implementation of MIPS

    ISA determines many aspects of implementation

    Implementation strategies affect clock rate and CPI

    MIPS subset to illustrate implementation

    Memory-reference instructions

    Load word (lw) Save word (sw)

    Integer arithmetic and logical instructions

    add, sub, and, or, and slt

    Branch instructions

    Branch if equal (beq)

    Jump (j)

  • 8/8/2019 Su L17 Processor Datapath

    9/33

    Implementation Overview

    PC

    Instructionmemory

    +4

    rt

    rs

    rd

    Registers ALUData

    memory

    imm

    Data

    Data

    Address

    Controller

    Opcode, funct

    Address

    Instruction

    Datapath is based on register transfers required to execute instructions

    Control causes the right transfers to happen

  • 8/8/2019 Su L17 Processor Datapath

    10/33

    Logic and Clocking

    Combinational elementsOutputs depend only on current inputs

    Example: ALU (adders, multiplexers, shifters)

    Sequential elementsContain state

    Output depend on input and state

    Inputs: data values and clock

    Memory, registers

    Asserted signal: logically high

  • 8/8/2019 Su L17 Processor Datapath

    11/33

    Clocking Methodology

    Determines the order of (gate) eventsDefines when signals can be read/written

    Clock: circuit that emits a series of pulses

    clock

    Timing diagrams

    C Asymmetric clock

    clock cycle

    time

    (C1 AND C2)

    Rising edge Falling edge

  • 8/8/2019 Su L17 Processor Datapath

    12/33

    Edge-Triggered Clocking

    State

    element

    1

    State

    element

    2

    Combinational

    logic

    State

    element

    Combinational

    logic

    Either the rising edge or the falling edge is active State changes only on the active clock edge

    clock

  • 8/8/2019 Su L17 Processor Datapath

    13/33

    NOR SR Latch

    State 0 State 1

    InputsS - set

    R - resetOutputs: Q and Q

  • 8/8/2019 Su L17 Processor Datapath

    14/33

    Clocked SR Latch

  • 8/8/2019 Su L17 Processor Datapath

    15/33

    Clocked D Latch

    DC

    Q

    Output is initially deasserted

  • 8/8/2019 Su L17 Processor Datapath

    16/33

    D flip-flop

    D

    C

    Q

    C

    D QD

    latchC

    D QD

    latch

    C

    D Q

    QQ

    Setup time

    hold time

    Falling-edge trigger, output is initially deasserted

  • 8/8/2019 Su L17 Processor Datapath

    17/33

    Register File

    Read ports

    Write port

  • 8/8/2019 Su L17 Processor Datapath

    18/33

    Register File Read Ports

  • 8/8/2019 Su L17 Processor Datapath

    19/33

    Register File Write Ports

  • 8/8/2019 Su L17 Processor Datapath

    20/33

    Conclusions

    Datapath performs work of computation

    Building blocks for datapath

    ALU: Performs work of computation

    Register File: Data I/O from registers

    Register file implemented with D flipflops,

    multiplexers, and decoder

    Clocked (synchronous) logic circuits

    Write-enabled data transferinto registers

    No need to protect data transfer from registers

  • 8/8/2019 Su L17 Processor Datapath

    21/33

    Anticipate the Mid-SemesterBreak!!

  • 8/8/2019 Su L17 Processor Datapath

    22/33

    New Topic Datapath Design

    Datapath implements fetch-decode-execute

    Design Methodology

    Determine instruction classes and formats

    Build datapath sections for each instr.fmt.

    Compose sections to yield MIPS datapath

    Challenge #1: What are instruction classes? Challenge #2: What components are useful?

  • 8/8/2019 Su L17 Processor Datapath

    23/33

    Simple Datapath Components

    Memory stores the instruction PC address of current instruction ALU executes current instruction

    PC Read Addr

    Instruction

    InstructionMemory

    4

    +

    fetch

    Increment program counter

  • 8/8/2019 Su L17 Processor Datapath

    24/33

    R-format Datapath

    Format: opcode r1, r2, r3

    Result

    Zero

    ALU

    Read

    Data 1

    Read

    Data 2

    Read Reg 1

    Read Reg 2

    Write

    Register

    Write Data

    Register

    Write

    ALU op

    RegisterFile

    3

    Instruction

  • 8/8/2019 Su L17 Processor Datapath

    25/33

    Load/Store Datapath Issues

    lw $t1, offset($t2)

    Memory at base $t2 with offset

    lw: Read memory, write into register $t1

    sw: Read from register $t, write to memory

    Address computation ISA says:

    Sign-extend 16-bit offset to 32-bit signed value

    Hardware: Data memory for read/write

  • 8/8/2019 Su L17 Processor Datapath

    26/33

    Load/Store Datapath Components

    Address

    Read data

    Write data

    MemWrite

    MemRead

    DataMemor

    y

    SignExtend

    16 32

    1101 0011 1111 1111 1111 1111

    1101 0011

  • 8/8/2019 Su L17 Processor Datapath

    27/33

    Load/Store Datapath Actions

    1. Register Access Register File

    --Instruction/Data/Address Fetch

    1. Memory Address Calculation ALU-- Address Decode

    1. Read/Write from Memory DataMemory

    2. Write into Register File Register File

    -- Load/Store InstructionExecute

  • 8/8/2019 Su L17 Processor Datapath

    28/33

    Load/Store Datapath

    Fetch Decode Execute

  • 8/8/2019 Su L17 Processor Datapath

    29/33

    Branch Datapath Issues

    beq $t1, $t2, offset

    Two registers ($t1, $t2) compared for equality

    16-bit offset to compute branch target address

    Branch target address ISA says:Add sign-extended offset to PCBase address is instruction after branch (PC+4)

    Shift offset left 2 bits => word offset

    Jump to targetReplace lower 26 bits of PC with lower 26 bits

    of instruction shifted left 2 bits

  • 8/8/2019 Su L17 Processor Datapath

    30/33

    Branch Datapath Actions

    1. Register Access Register File

    --Instruction/Data Fetch

    1. Evaluate Branch Condition ALU #12. Calculate Branch Target ALU #2

    --Branch Computation similar to

    Decode

    1. Jump to Branch Target Control Logic

    -- Branch Instruction Execute

  • 8/8/2019 Su L17 Processor Datapath

    31/33

  • 8/8/2019 Su L17 Processor Datapath

    32/33

    Delayed Branch (MIPS)

    MIPS ISA: Branches always delayed

    - Instr.Ib

    following branch is always executed

    - condition = false => Normal branch

    - condition = true =>Ib executed

    Why bother?

    1. Improves efficiency ofpipelining

    2. Branch not taken (false condition) can be

    common case

  • 8/8/2019 Su L17 Processor Datapath

    33/33

    Conclusions

    MIPS ISA: Three instruction formats (R,I,J)

    Datapath designed for each instruction format

    Datapath Components:

    --R-format:ALU, Register File

    --I-format: Sign Extender, Data Memory

    --J-format:ALU #2 for target address compn.

    Trick: Delayed branch to make pipeline efficient

    H f B k W k!