Processor Organization

Embed Size (px)

Citation preview

  • 8/2/2019 Processor Organization

    1/55

  • 8/2/2019 Processor Organization

    2/55

  • 8/2/2019 Processor Organization

    3/55

    CPU With Systems Bus

  • 8/2/2019 Processor Organization

    4/55

    CPU Internal Structure

  • 8/2/2019 Processor Organization

    5/55

    Registers

    CPU must have some working space (temporarystorage) Called registers

    Number and function vary between processordesigns

    One of the major design decisions Top level of memory hierarchy

  • 8/2/2019 Processor Organization

    6/55

    User Visible Registers

    General Purpose

    Data

    Address

    Condition Codes

  • 8/2/2019 Processor Organization

    7/55

    General Purpose Registers

    Can be assigned to variety of functions

    Can contain the operand for any opcode, However there are

    restriction.

    ex: There may be dedicated registers for floating - -

    point and stack operations

    Can be used for addressing functions such as register indirect ,Displacement

  • 8/2/2019 Processor Organization

    8/55

    Data Registers

    Can hold data and cannot used for calculation purpose.

    Address Registers

    may be devoted to a particular addressing modeSegment registers holds the address of the basesegment. There may be multiple registers

    ex: one for the operating system and one for the

    process

    Index Registers used for indexed addressing

    Stack pointer : That point to the top of the stack

  • 8/2/2019 Processor Organization

    9/55

    Condition codes - Flags

    Conditions codes are bits set by the processor hardware

    as the result of operation.ex : Arithmetic operation may produce negative,

    Zero or overflow results

  • 8/2/2019 Processor Organization

    10/55

    Control & Status Registers

    Program Counter Contains the address of aninstruction to be executed.

    Instruction Register : Contain the instruction

    most recently fetched

    Memory Address Register : Contain the address

    of a location in main memory

    Memory Buffer Register : Contains a word ofdata to be written or the most recently used

  • 8/2/2019 Processor Organization

    11/55

    Program Status Word

    Many processors designs include a register or set of

    registers, often known as the PSW

    The PSW typically contains condition codes plus otherstatus information

    Common field or flags contain the following Sign : sign bit of the last arithmetic operation

    Zero : Set when the result is 0

    Carry : Set if an operation resulted in a carry

    Equal : Set if a logical compare result is equality Overflow :Used to indicate arithmetic overflow

    Interrupt enable/disable : Used to enable or disable interrupts

    Supervisor : Indicates whether the processor is executing in

    supervisor or user mode

  • 8/2/2019 Processor Organization

    12/55

    Other Registers

    May have registers pointing to:

    Process control blocks (see O/S)

    Interrupt Vectors (see O/S)

    N.B. CPU design and operating system designare closely linked

  • 8/2/2019 Processor Organization

    13/55

    Example Register Organizations

  • 8/2/2019 Processor Organization

    14/55

    Instruction Cycle

    Revision

    Stallings Chapter 3

  • 8/2/2019 Processor Organization

    15/55

    Indirect Cycle

    May require memory access to fetch operands

    Indirect addressing requires more memoryaccesses

    Can be thought of as additional instruction

    subcycle

  • 8/2/2019 Processor Organization

    16/55

    Instruction Cycle with Indirect

  • 8/2/2019 Processor Organization

    17/55

    Instruction Cycle State Diagram

  • 8/2/2019 Processor Organization

    18/55

    Data Flow (Instruction Fetch)

    Depends on CPU design

    In general:

    Fetch

    PC contains address of next instruction

    Address moved to MAR

    Address placed on address bus

    Control unit requests memory read

    Result placed on data bus, copied to MBR, then to IR

    Meanwhile PC incremented by 1

  • 8/2/2019 Processor Organization

    19/55

  • 8/2/2019 Processor Organization

    20/55

    Data Flow (Fetch Diagram)

  • 8/2/2019 Processor Organization

    21/55

    Data Flow (Indirect Diagram)

  • 8/2/2019 Processor Organization

    22/55

    Data Flow (Execute)

    May take many forms

    Depends on instruction being executed

    May include

    Memory read/write

    Input/OutputRegister transfers

    ALU operations

  • 8/2/2019 Processor Organization

    23/55

    Data Flow (Interrupt)

    Simple

    Predictable

    Current PC saved to allow resumption afterinterrupt

    Contents of PC copied to MBR Special memory location (e.g. stack pointer)

    loaded to MAR

    MBR written to memory

    PC loaded with address of interrupt handlingroutine

    Next instruction (first of interrupt handler) canbe fetched

  • 8/2/2019 Processor Organization

    24/55

    Data Flow (Interrupt Diagram)

  • 8/2/2019 Processor Organization

    25/55

    Prefetch

    Fetch accessing main memory

    Execution usually does not access main memory

    Can fetch next instruction during execution ofcurrent instruction

    Called instruction prefetch

  • 8/2/2019 Processor Organization

    26/55

    Improved Performance

    But not doubled:

    Fetch usually shorter than execution

    Prefetch more than one instruction?

    Any jump or branch means that prefetchedinstructions are not the required instructions

    Add more stages to improve performance

  • 8/2/2019 Processor Organization

    27/55

    Pipelining

    Fetch instruction

    Decode instruction

    Calculate operands (i.e. EAs)

    Fetch operands

    Execute instructions

    Write result

    Overlap these operations

  • 8/2/2019 Processor Organization

    28/55

    Two Stage Instruction Pipeline

    Ti i Di f

  • 8/2/2019 Processor Organization

    29/55

    Timing Diagram for

    Instruction Pipeline Operation

    Th Eff t f C diti l B h

  • 8/2/2019 Processor Organization

    30/55

    The Effect of a Conditional Branch on

    Instruction Pipeline Operation

    Six Stage

  • 8/2/2019 Processor Organization

    31/55

    Six Stage

    Instruction Pipeline

  • 8/2/2019 Processor Organization

    32/55

    Alternative Pipeline Depiction

    S d F t

  • 8/2/2019 Processor Organization

    33/55

    Speedup Factors

    with Instruction

    Pipelining

  • 8/2/2019 Processor Organization

    34/55

    Dealing with Branches

    Multiple Streams

    Prefetch Branch Target

    Loop buffer

    Branch prediction

    Delayed branching

  • 8/2/2019 Processor Organization

    35/55

    Multiple Streams

    Have two pipelines

    Prefetch each branch into a separate pipeline

    Use appropriate pipeline

    Leads to bus & register contention

    Multiple branches lead to further pipelines beingneeded

  • 8/2/2019 Processor Organization

    36/55

    Prefetch Branch Target

    Target of branch is prefetched in addition to

    instructions following branch

    Keep target until branch is executed

    Used by IBM 360/91

  • 8/2/2019 Processor Organization

    37/55

    Loop Buffer

    Very fast memory

    Maintained by fetch stage of pipeline

    Check buffer before fetching from memory

    Very good for small loops or jumps

    c.f. cache

    Used by CRAY-1

  • 8/2/2019 Processor Organization

    38/55

    Loop Buffer Diagram

  • 8/2/2019 Processor Organization

    39/55

    Branch Prediction (1)

    Predict never taken

    Assume that jump will not happen

    Always fetch next instruction

    68020 & VAX 11/780

    VAX will not prefetch after branch if a page faultwould result (O/S v CPU design)

    Predict always taken

    Assume that jump will happen

    Always fetch target instruction

  • 8/2/2019 Processor Organization

    40/55

    Branch Prediction (2)

    Predict by Opcode

    Some instructions are more likely to result in a jumpthan thers

    Can get up to 75% success

    Taken/Not taken switchBased on previous history

    Good for loops

  • 8/2/2019 Processor Organization

    41/55

    Branch Prediction (3)

    Delayed Branch

    Do not take jump until you have to

    Rearrange instructions

  • 8/2/2019 Processor Organization

    42/55

    Branch Prediction Flowchart

  • 8/2/2019 Processor Organization

    43/55

    Branch Prediction State Diagram

    Dealing With

  • 8/2/2019 Processor Organization

    44/55

    Dealing With

    Branches

  • 8/2/2019 Processor Organization

    45/55

    Intel 80486 Pipelining

    Fetch From cache or external memory

    Put in one of two 16-byte prefetch buffers

    Fill buffer with new data as soon as old data consumed

    Average 5 instructions fetched per load

    Independent of other stages to keep buffers full

    Decode stage 1 Opcode & address-mode info

    At most first 3 bytes of instruction

    Can direct D2 stage to get rest of instruction

    Decode stage 2 Expand opcode into control signals

    Computation of complex address modes

    ExecuteALU operations, cache access, register update

    Writeback Update registers & flags

    Results sent to cache & bus interface write buffers

  • 8/2/2019 Processor Organization

    46/55

    80486 Instruction Pipeline Examples

  • 8/2/2019 Processor Organization

    47/55

    Pentium 4 Registers

  • 8/2/2019 Processor Organization

    48/55

    EFLAGS Register

  • 8/2/2019 Processor Organization

    49/55

    Control Registers

  • 8/2/2019 Processor Organization

    50/55

    MMX Register Mapping

    MMX uses several 64 bit data types

    Use 3 bit register address fields

    8 registers

    No MMX specific registers

    Aliasing to lower 64 bits of existing floating pointregisters

    Mapping of MMX Registers to

  • 8/2/2019 Processor Organization

    51/55

    Mapping of MMX Registers to

    Floating-Point Registers

  • 8/2/2019 Processor Organization

    52/55

    Pentium Interrupt Processing

    Interrupts

    Maskable

    Nonmaskable

    Exceptions

    Processor detectedProgrammed

    Interrupt vector table

    Each interrupt type assigned a number

    Index to vector table

    256 * 32 bit interrupt vectors

    5 priority classes

  • 8/2/2019 Processor Organization

    53/55

    PowerPC User Visible Registers

  • 8/2/2019 Processor Organization

    54/55

    PowerPC Register Formats

  • 8/2/2019 Processor Organization

    55/55

    Foreground Reading

    Processor examples

    Stallings Chapter 12

    Manufacturer web sites & specs