Download presentation
1
Week #9 Register Transfer and Data Paths
ENG241 Digital Design Week #9 Register Transfer and Data Paths School of Engineering
2
Week #9 Topics Data Paths and Operations Register Transfer Operations
The Arithmetic/Logic Unit Register Transfer Operations Micro-Operations Multiplexer-Based Transfer Bus-Based Transfer Complete Data Path Design Pipelining Fall 2014 ENG241/Digital Design School of Engineering
3
Resources Chapter #7, Mano Sections 7.2 Register Transfers
7.3 Register Transfer Operations 7.4 VHDL and RTL 7.5 Micro Operations 7.6 Multiplexer Based Transfers 7.8 Bus Based Transfers Fall 2014 ENG241/Digital Design School of Engineering
4
Parts of CPUs Datapath Control unit
Registers, Multiplexors, Adders, Subtractors and logic to perform operations on them (Comb Logic) Control unit Generates signals to control data-path Accepts status signals to perform sequencing Control Data Path Fall 2014 ENG241/Digital Design
5
Memory and I/O Control Unit + Data Path + Memory + Input Output = Micro-computer System MEMORY Input and Output Fall 2014 ENG241/Digital Design
6
Arithmetic/Logic Unit (ALU)
The ALU is a combinational circuit that performs a set of basic arithmetic and logic operations. An adder can perform addition, subtraction, … Select lines are used to determine the operation to be performed. Fall 2014 ENG241/Digital Design
7
ALU Design using Hierarchy
This ALU has: 2 control lines S0,S1 for arithmetic S2 selects logical ops Start designing in parts Fall 2014 ENG241/Digital Design
8
One Stage ALU Design a 1-bit Arithmetic unit Design a 1-bit Logic unit
Combine the two units to form a 1-bit Arithmetic/Logic Replicate as many times to form an n-bit ALU Fall 2014 ENG241/Digital Design
9
Arithmetic Circuit The basic component of an arithmetic circuit is a:
N-bit Ripple Carry Adder (Parallel Adder). By controlling the data inputs to the parallel adder, it is possible to obtain different types of arithmetic operations (Cin is also an input) Select lines S0, S1 can be used to control input Y. Why? Fall 2014 ENG241/Digital Design
10
Looking Inside What possible functionality can I achieve if I control the ‘Y’ Value to the n-bit Adder? B Input Logic Table Functionality. How to design the B Input Logic? Fall 2014 ENG241/Digital Design
11
Design of B Select Logic
Use an 8-to-1 Mux (Straight forward Solution). Or … use a 4-to-1 mux! Can we do better? YES: simplify the expression from the truth table using a K-Map Fall 2014 ENG241/Digital Design
12
1-bit (Single Stage) Arithmetic Circuit
The B logic is nothing but a 2-to-1 Mux instead of the 4-to-1 Mux Fall 2014 ENG241/Digital Design
13
4-Bit Circuit Duplicating the one stage four times will produce a 4-bit circuit Fall 2014 ENG241/Digital Design
14
Logic Section Design Generous number of operations Fall 2014
ENG241/Digital Design
15
Arithmetic/Logic Unit
The logic circuit can be combined with the arithmetic circuit to produce an ALU. Selection variables S1 and S0 can be common to both circuits, A third selection variable S2 can be used to differentiate between the logic and arithmetic operations. Fall 2014 ENG241/Digital Design
16
One Stage Arithmetic Circuit
Fall 2014 ENG241/Digital Design
17
One Stage Logic Circuit
Fall 2014 ENG241/Digital Design
18
One Stage ALU Mux to choose Arithmetic or Logic Fall 2014
ENG241/Digital Design
19
n-bit ALU Duplicate the one stage n times!! Fall 2014
ENG241/Digital Design
20
Resulting Control The one stage ALU can provide 8 arithmetic, and
4 logic operations. Fall 2014 ENG241/Digital Design
21
Register Transfer Language (RTL)
Register Transfer Language (RTL): used to describe CPU organization in high-level terms RTL expressions are made up of elements which describe the registers being manipulated, and the micro-ops being performed on them Here are the basic components of RTL expressions: Fall 2014 ENG241/Digital Design
22
Register Transfer Language (RTL)
Registers named in uppercase PC, IR (instruction), R3 The operations on the data in registers are called microoperations Fall 2014 ENG241/Digital Design
23
Micro-Operations Basic operations of the datapath
Example: Moving data from one register to another Adding the contents of two registers Incrementing the contents of a register The control unit provides the signals that sequence the micro-operations in a prescribed manner The results of a currently executing micro-operation may determine both the sequence of control signals and the sequence of future micro-operations to be executed (e.g. BNE) A micro operation is expected to complete in one clock Fall 2014 ENG241/Digital Design
24
RTL Transfer from R1 to R2 Conditional R2 R1
R2 is destination R1 is source Conditional If(K1 = 1) then (R2 R1) K1: R2 R1 as a shorter form Fall 2014 ENG241/Digital Design
25
Transfer K1: R2 R1 Transfer at the clock edge When K1 is high
n bits wide Fall 2014 ENG241/Digital Design
26
Symbols Note memory transfers DR M[AR] (contents of Memory)
Fall 2014 ENG241/Digital Design
27
Syntax not VHDL (similar)
Fall 2014 ENG241/Digital Design
28
Types of Microoperations
Transfer – (have just looked at) Arithmetic Logic Shift Fall 2014 ENG241/Digital Design
29
Arithmetic Basic ops (addition, subtraction, ..)
R0 R1 + R2 Subtraction by 2’s complement Fall 2014 ENG241/Digital Design
30
Notation is Shorthand for Hardware
Consider and Note overflow and carry registers Fall 2014 ENG241/Digital Design
31
Logic Microoperations
OR notation a little confusing shows two types of syntax for ORs Fall 2014 ENG241/Digital Design
32
Shift Microoperations
Here just the basic one-bit shifts Bit falls off the end, zero shifted in Fall 2014 ENG241/Digital Design
33
Multiplexer-Based Transfers
There are occasions when a register receives data from two or more different sources at different times. Recall that multiplexers are used to conditionally transfer values from the input to the output. Fall 2014 ENG241/Digital Design
34
Multiplexer-Based Transfers
Consider Which can also be expressed as Block diagram? Fall 2014 ENG241/Digital Design
35
Multiplexer Block Diagram
Fall 2014 ENG241/Digital Design
36
Detailed Fall 2014 ENG241/Digital Design
37
Bus-Based Transfers How about when there are lots of registers?
We can use buses and send data over common set of wires Busses are more efficient scheme for transferring data between registers! Fall 2014 ENG241/Digital Design
38
Bus-Based Transfers A Bus is a shared transfer path.
It is characterized by a set of common lines (i) Data + (ii) Control, (iii) Status The control signals for the logic select a single source and one or more destinations on any clock cycle. SRC1 DEST1 DEST2 SRC2 Fall 2014 ENG241/Digital Design
39
Simple Case: using Muxes!
Signals S1, S0 select the source Signals L0, L1, L2 enable loading of the registers. The single bus (on the right) can achieve more transfers than system on the left! One mux One output bus Fall 2014 ENG241/Digital Design
40
Transfers Only single source About ½ the hardware
Select/Load Signals (table) Limitations! Fall 2014 ENG241/Digital Design
41
Three-State Bus Remember three-state drivers allow having multiple outputs share wire Note the small inverted triangle denotes the 3-state output of the register. A bus can be constructed with the three state buffers. Many three state buffer outputs can be connected together to form a bit line of a bus less delay than multiplexer based systems Fall 2014 ENG241/Digital Design
42
Same Example with 3-State
Notice that both systems in the figure have the same capability in term of transfers. However the 3-state bus has: Fewer wires Easier to expand! Fall 2014 ENG241/Digital Design
43
Memory Transfers Usually one or more buses associated with memory
Address Data Note that memory can be slower, so may have to use complex timing Address on one clock cycle Data latched at later clock cycle Fall 2014 ENG241/Digital Design
44
Properties of Memory Volatile Nonvolatile
Memory disappears if power goes out Typical computer RAM Static RAM (SRAM), Dynamic RAM (DRAM) Nonvolatile ROM Flash memories Magnetic memories like disk, tape Fall 2014 ENG241/Digital Design
45
Simple View of RAM Of some word size n Some capacity 2k
k bits of address line A read line A write line Fall 2014 ENG241/Digital Design
46
Memory Transfer Read: DR M[AR] where Write: M[AR] DR
M denotes Memory, DR denotes Data Register, and AR denotes Address Register Write: M[AR] DR Write: M[A1] D2 Fall 2014 ENG241/Digital Design
47
Memory Transfer Fall 2014 ENG241/Digital Design
48
Data Paths --> ALU + Storage
Computer Systems often employ a number of storage elements in conjunction with a shared operation unit called an Arithmetic/Logic Unit (ALU) to form data path. To perform a micro operation, the contents of a specified source registers are applied to the inputs of the shared ALU. The ALU performs an operation, and the result of this operation is transferred to a destination register. Fall 2014 ENG241/Digital Design
49
Data Paths, single clock cycle
Since the ALU is designed as a pure combinational circuit, the entire register transfer operation from the source registers, through the ALU, and into the destination register is performed in one clock cycle. Fall 2014 ENG241/Digital Design
50
Datapath A Simple bus-based data path: four registers, an ALU, and a shifter. Each register is connected to two multiplexers to form ALU input buses A and B (Register File) Another Mux is used to choose between Registers and a constant. Functional Unit: ALU and a shifter Fall 2014 ENG241/Digital Design
51
Datapath Blue signals are generated by control
Decoder along with the Load-enable signal determines the destination Register (R0,R1,R2,R3) Fall 2014 ENG241/Digital Design
52
Datapath MB Select determines if the source B is a Register or Constant. G Select determines the operation to be performed by ALU. MF Select determines if the output is the ALU or Shifter MD Select determines if the input to the Register File is the Function Unit or external Data. Fall 2014 ENG241/Digital Design
53
Datapath Four status bits are shown (V,C,N,Z) that can be used by the control unit It is useful to have certain information based on the results of an ALU operation available for use by the control unit to make decisions.??? Make Corrections Skip an instruction Loops If/Else Statements … Fall 2014 ENG241/Digital Design
54
Example: R1R2+R3 Signals? What about timing? A, B select MB Select
G Select MF Select MD Select Destination (D) Load enable What about timing? Fall 2014 ENG241/Digital Design
55
Timing All can occur in one clock, but
Signals must be available in time to propagate through muxes, ALU and Be at Register inputs by next pos-edge Fall 2014 ENG241/Digital Design
56
Datapath Higher-level view for hierarchical design
Can replace modules with same interface but different implementation Fall 2014
57
Performance Improvement
In addition to providing a data path that performs the necessary register transfer micro operations, we need to be concerned about the speed or rate at which the micro operations are performed. How? First we need to know the maximum speed by which our data path can be run. Then we will explore how we can make it faster. (Pipelining) Fall 2014 ENG241/Digital Design
58
Pipelining Pipelining exploits parallelism at the instruction level.
Pipelining is an implementation technique in which multiple instructions are overlapped in execution. Today pipelining is key to making processors fast. Fall 2014 ENG241/Digital Design
59
Pipelining: Example Laundry Ann, Brian, Cathy, Dave each have one load of clothes to wash, dry, and fold Washer takes 30 minutes Dryer takes 40 minutes “Folder” takes 20 minutes A B C D Fall 2014 ENG241/Digital Design
60
Sequential Laundry 6 PM 7 8 9 10 11 Midnight 30 40 20 30 40 20 30 40
Time 30 40 20 30 40 20 30 40 20 30 40 20 T a s k O r d e A B C D Sequential laundry takes (90 x 4 = 360 minutes) 6 hours for 4 loads If they learned pipelining, how long would laundry take? Fall 2014 ENG241/Digital Design
61
Pipelining Lessons 6 PM 7 8 9 30 40 20 A B C D
Tot Time: 210 minutes!! versus 360 with no pipelining Potential speedup = Number pipe stages Unbalanced lengths of pipe stages reduces speedup Time to “fill” pipeline and time to “drain” it reduces speedup Pipelining doesn’t help latency of single task, it helps throughput of entire workload 7 8 9 Time T a s k O r d e 30 40 20 A B C D Fall 2014 ENG241/Digital Design
62
Assembly Line Analogy to Data Path Pipeline
A custom product being built may pass the assembly line many times before it is completed. A conveyor belt moves components from stage to stage This technique increases throughput Fall 2014 ENG241/Digital Design
63
Conventional Data Path Timing
The figure shows the maximum delay values for each of the components of a typical data path: 4ns (3ns + 1ns) to read two operands from register file. 4ns to perform an operation. 4ns (1ns + 1ns) to write info back Total 12 ns to perform a single micro operation. The rate of execution is then set at 1/12ns = 83.3MHz Can we make it faster? Fall 2014 ENG241/Digital Design
64
Pipelined Data Path Timing
We can break the delay of 12ns by inserting registers between the different components of the system. A register is inserted between the function unit and the register file (OF) Another register can be inserted between the function unit and MUX D. (EX + WB) 3 stage pipeline: OF / EX / WB The maximum delay now is 5ns allowing a maximum clock frequency of 200 MHz Fall 2014 ENG241/Digital Design
65
Pipelining 3 Stages Operand Fetch Execute Write Back Fall 2014
66
Pipelining Conventional data path 7 x 12ns = 84ns
Pipelined data path 9 x 5ns = 45ns Fall 2014 ENG241/Digital Design
67
Summary Data Paths are an essential part of any CPU.
ALUs (Arithmetic Logic Units) are at the heart of any Data Path. Multiplexors and Tri-State buffers are used extensively in Data Paths (data movement) Pipelining is a technique to improve throughput by overlapping instruction execution. Fall 2014 ENG241/Digital Design
68
Extra Slides Fall 2014 ENG241/Digital Design
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.