0% found this document useful (0 votes)
35 views47 pages

Processor: Datapath and Control

The document discusses the components of a processor's datapath. It describes how a datapath can be built incrementally to handle different types of instructions. It explains that the datapath contains elements like registers, ALUs, and memory to process data and addresses. It also discusses how the datapath is controlled by the processor's control unit. The document then provides details on building datapath components to handle arithmetic instructions, data transfer instructions, and branch instructions specifically.

Uploaded by

Mudit Pandey
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
35 views47 pages

Processor: Datapath and Control

The document discusses the components of a processor's datapath. It describes how a datapath can be built incrementally to handle different types of instructions. It explains that the datapath contains elements like registers, ALUs, and memory to process data and addresses. It also discusses how the datapath is controlled by the processor's control unit. The document then provides details on building datapath components to handle arithmetic instructions, data transfer instructions, and branch instructions specifically.

Uploaded by

Mudit Pandey
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 47

Lecture 3

Processor: Datapath and Control

1
ALU
 Arithmetic Logic Unit is the hardware that
pperforms addition,, subtraction,, AND,, OR …

2
§4.1 Intrroduction
Recap: Performance

CPU Time  Instruction Count  CPI  Clock Cycle Time

 CPU performance
f factors
f t
 Instruction count
• Determined by Instruction Set Architecture and compiler
 CPI and Cycle time
• Determined byy implementation
p of the processor
p

Chapter 4 — The Processor —
3
Components of a Computer
Processor
 Datapath  Control
 Components of the  Component of the
p
processor that p
processor that
perform arithmetic commands the
operations
p and holds datapath,
p memory,y
data I/O devices according
to the instructions of
the memory
§4.3 Building a Daatapath
Building a Datapath
 Datapath
D h
 Elements that process data and addresses
in the CPU
• Memories, registers, ALUs, …

 We will build a MIPS datapath incrementally


 considering only a subset of instructions

 To start, we will look at 3 elements

Chapter 4 — The Processor — 6
 A memory unit to store instructions of a
program andd supply
l instructions
i i given
i an address
dd
 Needs to pprovide onlyy read access ((once the
program is loaded).
 No control signal is need.

7
 PC (Program Counter or Instruction address register)
is a register
g that holds the address of the current
instruction
 A new value is written to it every clock cycle. No
controll signal
i l iis required
i d to enable
bl writei
8
 Adder to increment the PC to the address of the
next instruction
 An ALU ppermanentlyy wired to do onlyy addition.
No extra control signal required
9
Datapath portion for Instruction Fetch

Increment by 
4f
4 for next 
t
32‐bit  instruction
register

Chapter 4 — The Processor —
10
Types of Elements in the Datapath

 State element:
 A memory
y element,, i.e.,, it contains a state
 E.g., program counter, instruction memory

 Combinational element:
 Elements that operate on values
 E.g.
E g adder,
adder ALU

11
 Now, we will look at datapath elements
q
required byy the different classes of
instructions
 Arithmetic and logical instructions
 Data transfer instructions
 Branch instructions

12
R-Format
R Format ALU Instructions
 E.g., add $t1, $t2, $t3
 Perform arithmetic/logical operation
 Read two register operands and write register
result

Chapter 4 — The Processor —
13
R-Format ALU Instructions

 Register file: A collection of the registers


 Any register can be read or written by specifying
the
h number
b off the
h register
i
 Contains the register state of the computer

Chapter 4 — The Processor —
14
 Read from register file
 2 inputs
i t to
t the
th register
i t file
fil specifying
if i th
the numbers
b
• 5 bit wide inputs for the 32 registers
 2 outputs from the register file with the read values
• 32 bit wide
 For all instructions. No control required.
q
Chapter 4 — The Processor —
15
 Write to register file
 1 input to the register file specifying the number
• 5 bit wide inputs for the 32 registers
 1 iinput to the
h register
i fil
file with
i h the
h value
l to be
b written
i
• 32 bit wide
 Only
O l for
f some iinstructions.
t ti R W it control
RegWrite t l signal.
i l
Chapter 4 — The Processor —
16
 ALU
 Takes two 32 bit input and produces a 32 bit output
 Also, sets one-bit signal if the results is 0
 The operation done by ALU is controlled by a 4 bit
control signal input. This is set according to the
instruction
Chapter 4 — The Processor —
17
Data transfer instructions
 lw $t1, offset_value($t2)
 Load: Read memory and update register

 sw $t1, offset_value($t2)
 Store: Write register
g value to memoryy

18
Data transfer instructions
 Compute the memory address by adding the
g
value in base register and the 16 bit offset
 need the ALU
 Calculate address using 16
16-bit
bit offset
• Use ALU, but sign-extend offset

 Write to or read from register


 need the register file

19
 Two additional units – data memory and sign
unit extension
 Data memory
 State element with
• input for address and data to be written
• output for read result
 Data memory
 Separate control for read and write
 Control for read is required because reading from
i lid address
invalid dd can lead
l d to
t problems
bl
 Sign-extension unit takes a 16 bit input and
extend it to a 32 bit output
22
Composing the Elements for R-type and
data transfer instructions
 A simple data path that does an instruction in
y
one clock cycle
 Each datapath element can only do one function at
a time
 Hence, we need separate instruction and data
memories
 Use multiplexers where alternate data sources
are used for different instructions

Chapter 4 — The Processor —
23
Multiplexors
 An ALU might need input from
 Two registers
 Or one registers and one immediate field
( offset)
(or ff )

 To choose correctly from multiple sources, a


h d
hardware element
l t called
ll d multiplexor
lti l is
i used
d
with appropriate control signals
24
Multiplexors
 The data written to registers may come from
 Data memory
 Or ALU

 To choose correctly from multiple sources,


sources a
hardware element called multiplexor is used
with
ith appropriate
i t control
t l signals
i l

25
R Type/Load/Store Datapath
R-Type/Load/Store

Chapter 4 — The Processor —
26
Branch Instructions
 beq $t1, $t2, offset

 Read two registers and compare them

 Take the 16 bit offset and add it to the address


of next instruction following the branch
i t ti to
instruction t obtain
bt i th
the bbranch
h ttargett
address
Chapter 4 — The Processor —
27
Branch Instructions
 Read register operands
 Compare operands
 Use ALU, subtract and check Zero output
 Calculate target address
 Sign-extend
g the offset
 Shift left 2 places (word displacement)
 Add to PC + 4
• Already calculated by instruction fetch

Chapter 4 — The Processor —
28
Branch Instructions
Just
re‐routes 
wires

Sign‐bit wire 
replicated
Chapter 4 — The Processor —
29
Composing all elements together
 Instruction fetch datapath
 Datapath for RR-type
type and memory instructions
 Datapath for branches

 Need an additional multiplexor to select the


sequential address after branch or the branch
t
target
t address
dd t be
to b written
itt to
t the
th PC

30
Datapath portion for Instruction Fetch

Increment by 
4f
4 for next 
t
32‐bit  instruction
register

Chapter 4 — The Processor —
31
Full Datapath

Chapter 4 — The Processor —
32
Datapath With Control AND gate
for
branch

Chapter 4 — The Processor —
33
A Recap: Combinational Elements
 AND-gate
AND gate  Adder A
Y
+
 Y =A & B  Y = A + B B

A
Y
B

 Arithmetic/Logic Unit
/
 Multiplexer  Y = F(A, B)
( , )
 Y = S ? I1 : I0
A
I0 M
u Y ALU Y
I1 x
B
S F
Chapter 4 — The Processor —
34
A Recap: State Elements
 Registers
 Data Memory
 Instruction Memory

 Clocks are needed to decide when an element


that contains state should be updated

35
Recap from Lecture 1:
CPU Clocking
 Operation of digital hardware governed by a
constant-rate clock

 Clock period: duration of a clock cycle
 Clock frequency (rate): cycles per second

36
Clocks

 A clock is a signal with a fixed cycle time (period)

 The clock frequency is the inverse of the cycle


time
37
Clocks

 The clock cycle time or clock period is


divided into two portions:
p
 when the clock is high
 when
h the
th clock
l k is
i llow

38
Clocking Methodology

 We study
 Ed
Edge triggered
i d methodology
h d l
• Because it is simple
 Edge triggered methodology:
 All state changes occur on a clock edge

Chapter 4 — The Processor —
39
Clocking Methodology :
S
State El
Elements
 Register: stores data in a circuit
 Uses a clock signal to determine when to update
the stored value
 Edge-triggered: update when Clk changes from 0
t 1
to

Clk
D Q
D
Clk
Q

Chapter 4 — The Processor —
40
Clocking Methodology :
St t Elements
State El t
 Register with write control
 Only updates on clock edge when write control
input
p is 1
 Used when stored value is required later

Clk

D Q Write
Write D
Clk
Q

Chapter 4 — The Processor —
41
Clocking Methodology
 Combinational logic transforms data during
clock cycles
 Between clock edges
 Input from state elements,
elements output to state element
• The state elements, whose outputs change only after
g provide
the clock edge, p valid inputs
p to the
combinational logic block.

Chapter 4 — The Processor —
42
Clocking Methodology
 To ensure that the values written into the state elements on the active
clock edge are valid, the clock must have a long enough period so that all
the signals in the combinational logic block stabilize, then the clock edge
samples those values for storage in the state elements.

 This constraint sets a lower bound on the length of the clock period, which
must be long enough for all state element inputs to be valid.

 Longest delay determines clock period

Chapter 4 — The Processor —
43
It is possible to have a state element that is used as 
both an input and output to the same combinational
logic block

Ensure that the clock period is long enough

44
Single Clock Cycle
 We studied a simple implementation where a
g clock cycle
single y is required
q for everyy
instruction. Every instruction begins on one
clock edge and completes execution on the
next

45
Performance Issues
 Longest
L d
delay
l d determines clock
l k period
d
 Critical path: load instruction
 Instruction memory  register file  ALU 
data memory  register file
 Not feasible to vary period for different
st uct o s
instructions
 The clock cycle must be extended to
accommodate the longest instruction
 Improve performance by pipelining
Chapter 4 — The Processor —
46
Conclusion
 ISA influences the design of datapath and
control for a processor
p

W
We studied
d d an implementation
l based
b d on single
l
cycle

47

You might also like