Chap 7. Register Transfers and Datapaths - PowerPoint PPT Presentation

1 / 48
About This Presentation
Title:

Chap 7. Register Transfers and Datapaths

Description:

binary signals that activate the various data ... incrementing the contents of a register ... basic: add, subtract, increment, decrement, & complement ... – PowerPoint PPT presentation

Number of Views:19
Avg rating:3.0/5.0
Slides: 49
Provided by: dmlab
Category:

less

Transcript and Presenter's Notes

Title: Chap 7. Register Transfers and Datapaths


1
Chap 7. Register Transfers and Datapaths
2
7.1 Datapaths and Operations
  • Two types of modules of digital systems
  • Datapath
  • perform data-processing operations
  • control unit
  • determines the sequence of those operations
  • control signals
  • binary signals that activate the various
    data-processing operations
  • Status signals
  • aspects of the state of the datapath

3
7.1 Datapaths and Operations
  • Datapaths
  • Defined by the registers operations that are
    performed on binary data stored in the registers
  • Register operations
  • shift, count, clear load,
  • Register Transfer
  • information flow and processing task on data
  • Basic components of register transfer operations
  • 1. Set of registers
  • 2. Operations that are performed on the data in
    registers
  • ? micro-operations
  • 3. Control that supervises the sequence of
    operations

Main topic
4
7.1 Datapaths and Operations
  • Microoperations
  • elementary operations performed on the data in
    registers
  • examples
  • loading the contents of one register into another
  • adding the contents of 2 registers
  • incrementing the contents of a register
  • usually performed in parallel during one
    clock-pulse period
  • Control unit
  • provides signals that sequence the microoperations

5
7.2 Register Transfer Operations
little endian
  • Designated by capital letters
  • Ex) PC, IR, R1, R2
  • flip-flops in an n-bit register are numbered in
    sequence from 0 to n-1

6
7.2 Register Transfer Operations
  • Replace operator R2 ? R1
  • a transfer of the contents of R1 (source) into R2
    (destination)
  • conditional statement
  • If ( K1 1 ) then ( R2 ? R1 ) , K1 R2 ? R1
  • K1 is a control signal generated in CU

7
7.2 Register Transfer Operations
  • Basic symbols for register transfer

8
7.3 Microoperations
  • 4 categories
  • 1) Transfer microoperations
  • 2) Arithmetic microoperations
  • 3) Logic microoperations
  • 4) Shift microoperations

9
7.3 Microoperations
  • Arithmetic Microoperations
  • basic add, subtract, increment, decrement,
    complement
  • multiplication () division (/) are not
    included in basic operations implemented by a
    special combinational circuit

Adder Subtractor Binary up-down counter
10
7.3 Microoperations
Implementation of Add and Subtract
micro-operations
  • X' K1 R1 ? R1 R2
  • X K1 R1 ? R1 R2' 1
  • timing variable K1 activates an operation to add
    or subtract
  • control variable X determines the operation
  • the output is loaded into R1 on any positive
    clock edge
  • X' K1 X K1 (X' X) K1 K1
  • X selects the operation (add or subtract) K1
    loads the result into R1

11
7.3 Microoperations
  • Logic Microoperations
  • useful for manipulating the bits stored in a
    register

12
7.3 Microoperations
  • NOT (bar(-) or ', same as 1's complement)
  • AND (?), OR (?)
  • (ex) K1K2 R1 ? R2R3, R4 ? R5 ? R6
  • (or) (add)
    (or)
  • Logic Arithmetic Logic
  • Easily implemented with a group of gates
  • NOT, AND, OR, XOR gates

13
7.3 Microoperations Bit manipulation
  • AND microoperation
  • Used to delete all 1's from a selected portion of
    a register masking out
  • 10101101 1010 1011 R1
  • 00000000 1111 1111 R2
  • 00000000 1010 1011 R1 ? R1 ? R2
  • OR microoperation
  • Used to set one or more bits in a register
  • 10101101 10101011 R1
  • 11111111 00000000 R2
  • 11111111 10101011 R1 ? R1 ? R2
  • XOR microoperation
  • Used to complement one or more bits in a register

14
7.3 Microoperations
  • Shift microoperations
  • used in serial transfer of data
  • also used for manipulating contents of registers
    in arithmetic, logic and control operations
  • (logical) shift
  • R0 ? sr R0, R1 ? sl R2
  • incoming bit assuming 0
  • outgoing bit discarded

15
7.4 Multiplexer-Based Transfer
  • Load from two or more different sources
  • If-then-else form
  • If(K11) then (R0? R1)
  • else if(K21) then (R0 ? R2)
  • Control conditions
  • K11 R0 ? R1, K1 K2 R0 ? R2

16
7.5 Bus-Based Transfer
  • Bus system
  • Shared transfer path
  • control signals select a source register
    destination register(s)

17
7.5 Bus-Based Transfer
  • Single-bus system
  • Simultaneous transfer with different sources in a
    single clock cycle is impossible

18
7.5 Bus-Based Transfer
  • Hardware cost
  • Dedicated multiplexers
  • 2n AND n OR gates per multiplexer (total 9n
    gates)
  • 3 n-bit 2-to-1 multiplexers
  • Input connections to MUX
  • 2n 3
  • Single bus
  • 3n AND n OR gates (total 4n gates)
  • 3-to-1 multiplexer and parallel load registers
  • Input connections to MUX
  • 3n

19
7.5 Bus-Based Transfer
  • Three-State Bus
  • A bus system can be constructed with three-state
    buffers (instead of MUX)
  • form a bit line of bus, bus is implemented
    using only one level of logic gates
  • signals can travel in two directions on a
    three-state bus

Bi-directional input-output lines
20
7.5 Bus-Based Transfer
  • Comparison with MUX-based BUS system
  • The number of logic gate
  • MUX-based BUS of sources of input of OR
  • Multiple levels of OR gates
  • Increasing delay
  • 3 state buffer BUS
  • Only one level of logic gates
  • Data connection to registers
  • MUX-based BUS 2n per register
  • 3 state buffer BUS n per register
  • Bi-directional input-output lines

21
7.5 Bus-Based Transfer
  • Memory Transfer
  • a memory word is symbolized by the letter M
  • Read DR ? MAR (DR data register, AR
    address register)
  • Write MAR ? DR

22
7.5 Bus-Based Transfer
  • write operation MA1 ? D2
  • select input for addr. bus decoder 01 (A1)
  • select input for data bus source decoder 10 (D2)
  • select input for data bus destination decoder
    11(Write)
  • read operation D1 ? MA2
  • select input for address decoder 10 (A2)
  • select input for data bus source decoder 11
    (Read)
  • select input for data bus destination decoder 01
    (D1)

23
7.6 Datapaths
  • Datapath
  • combination of a set of registers with a shared
    ALU and interconnecting paths
  • simple bus-based datapath with 4 registers, an
    ALU a shifter

24
7.6 Datapaths
  • Registers interact by a direct transfer of data,
    as well as perform various microoperations
  • each register is connected to two sets of
    multiplexers to form input buses A and B
  • selection inputs select one register for the
    corresponding bus
  • A B buses are applied to the inputs of a common
    ALU
  • select inputs of the ALU determine the particular
    operation
  • destination register is selected by a decoder
    with destination select
  • a number of status bits in ALU
  • useful for checking certain relationships after
    ALU operation
  • carry C, overflow V, zero status Z, sign status S

25
7.6 Datapaths
  • Ex) R1 ? R2 R3
  • 1. A select contents of R2 onto bus A
  • 2. B select contents of R3 onto bus B
  • 3. G select ALU operation A B
  • 4. MF select ALU output to MUX F output
  • 5. MD select MUX F output onto bus D
  • 6. Destination select select R1
  • 7. Load enable of R1

When the next positive clock edge arrives, the
binary data on Bus D is loaded into the
destination register.
26
7.7 Arithmetic Logic Unit (ALU)
  • ALU is a combinational circuit that performs
    a set of basic arithmetic logic microoperations

27
7.7 Arithmetic Logic Unit (ALU)
  • a typical 4-bit ALU
  • 4 data inputs from A B, and 4 data outputs to F
  • mode select input S2 distinguishes between
    arithmetic logic operations
  • 2 function select inputs S1 S0 specify the
    particular operations
  • possible to specify 4 arithmetic 4 logic
    operations
  • input output carries have meaning only during
    an arithmetic operation
  • input carry Cin is used as a 4th selection
    variable for arithmetic ops
  • Three stages in the design of a typical ALU
  • 1) design of arithmetic section
  • 2) design of logic section
  • 3) combined to form the ALU

28
7.7 Arithmetic Logic Unit (ALU)
  • Arithmetic Circuit
  • basic component of an arithmetic circuit is
    "Parallel Adder"
  • G X Y Cin
  • X the n-bit binary number at the A inputs
  • Y the n-bit binary number at the B inputs
  • Cin input carry

29
7.7 Arithmetic Logic Unit (ALU)
  • 2 select lines S1 S0
  • obtain a variety of arithmetic operations
  • the combinational circuit can be implemented with
    n MUXes
  • 0, Bi, Bi', 1

30
7.7 Arithmetic Logic Unit (ALU)
  • 4-bit Arithmetic circuit
  • Y Bi S0 Bi' S1

31
7.7 Arithmetic Logic Unit (ALU)
  • Logic Circuit
  • 4 basic operaitons AND, OR, XOR, complement

32
7.7 Arithmetic Logic Unit (ALU)
  • Arithmetic/Logic Unit
  • ALU arithmetic circuit logic circuit
  • one stage of ALU
  • repeat n times for an n-bit ALU

33
7.7 Arithmetic Logic Unit (ALU)
  • 8 arithmetic 4 logic operations

34
7.8 The Shifter
  • What to do
  • shift the value on Bus B, placing the result on
    an input of MUX F
  • provide the shift operations not available in ALU
  • right shift left shift
  • a bidirectional shift register with parallel load
  • Procedure
  • 1st clock loads the output of Bus A into the
    shift register
  • 2nd clock performs the shift
  • 3rd clock transfers the data to the selected
    destination

35
7.8 The Shifter 4bit basic shifter
  • selection variable S
  • S0, right shift (IR serial input)
  • S1, left shift (IL serial input)
  • to shift an operand by Mgt1 bit positions
  • perform m 1-bit position shifts taking m clock
    cycles

36
7.8 The Shifter Barrel shifter
  • Barrel Shifter
  • data are shifted more than once during a single
    operation
  • shift input data bits by a number of positions
  • a cyclic rotation
  • consist of 4 multiplexers with 2 common selection
    lines S1 S0
  • a barrel shifter with 2n input output lines
  • requires 2n multiplexers
  • each having 2n data inputs and n selection inputs

37
7.8 The Shifter Barrel shifter
38
7.9 Datapath Representation
39
7.9 Datapath Representation
40
7.10 The Control Word
  • The selection variables for the datapath
  • control the microoperations executed within the
    datapath for any given clock pulse
  • control the buses, the ALU, the shifter, the
    destination register

41
7.10 The Control Word
  • Register file of seven registers R1 through R7
  • Outputs go through two sets of multiplexers to
    select input to ALU
  • Input data from an external source are selected
    by the same MUXes
  • Output of ALU goes through a shifter into
    output bus
  • Output from the shifter is transferred to any one
    of the registers can also be directed to an
    external destination
  • ALU provides the binary data for the four status
    bits C, Z, S, V
  • Control words of 16 binary selection inputs
  • 3 bits in DA select a destination register
  • 3 bits in AA BA select source registers for
    input of ALU
  • 1 bit in MB register or constant
  • 5 bits in FS select one of 14 operations in ALU
  • 1 bit in MD function unit output or the data on
    DATA
  • 1 bits in RW select register is written or not
  • ? 17-bit control word specifies a particular
    microoperation

42
7.10 The Control Word
  • specified functions
  • functions of all selection variables

43
7.10 The Control Word
  • (ex1) R1 ? R2 R3' 1
  • - DA R1 001
  • - AA R2 010
  • - BA R3 011 gt 001 010 011 0
    00101 0 1
  • - MB register 0
  • - FS AB'1 00101
  • - MD Function 0
  • - RW Write 1
  • (ex2) R4 ? sr R6
  • - DA R4 100
  • - AA R6 110
  • - BA - 000 gt 100 110 000 0
    10001 0 1
  • - MB register 0
  • - FS sl A 10001
  • - MD Function 0
  • - RW Write 1

44
7.10 The Control Word
45
7-11 Pipelined Datapath
46
7-11 Pipelined Datapath
47
7-11 Pipelined Datapath
48
7.10 The Control Word
  • many microoperations can be generated in the
    processor unit
  • most efficient way to generate control words
  • ? store them in memory unit
  • Control memory
  • Microprogramming (Chap 8)
Write a Comment
User Comments (0)
About PowerShow.com