Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
1
4.1 Introduction
2
An Overview of the Implementation
• Missing Multiplexers, and some Control lines for read and write.
3
Continue
State elements
• Unclocked vs. Clocked
• Clocks used in synchronous logic
– when should an element that contains state be updated?
Falling edge
5
Clocking Methodology
State State
element Combinational logic element
1 2
Clock cycle
6
4.3 Building a Datapath
7
Continue
8
Continue
lw $t1, offset_value($t2)
sw $t1, offset_value($t2)
9
4. Execute branch/jump instructions: beq, j
10
Creating a Single Datapath
Example:
Show how to built a datapath for arithmetic-logical and memory reference
instructions.
11
Continue
12
4.4 A Simple Implementation Scheme
13
Finalizing the Control
14
Continue
15
Continue
16
Designing the Main Control Unit
s1
+
+
s3
s2
0 rs rt rd shamt funct
store
load
base
35 or 43 rs rt address
lw $s1, 100($s2)
sw $s1, 100($s2)
subtract
+
s2
s1
4 rs rt address
18
Continue
19
Continue
20
Example: Implementing Jumps
000010 address
31:26 25:0 21
Why a Single-Cycle Implementation Is Not Used Today
22
Continue
memory (200ps),
ALU and adders (100ps),
register file access (50ps)
CPU clock cycle (option 2) = 400 45% + 60025% + 550 10% + 350 15% + 2005%
= 447.5 ps.
600
Performance ratio = 1.34
447.5
23
4.5 A Multicycle Implementation
24
Continue
Replacing the three ALUs of the single-cycle by a single ALU means that the
single ALU must accommodate all the inputs that used to go to the three
different ALUs.
25
Continue
Control signals:
• The programmer-visible state units (PC, Memory, Register file) and IR write
Memory Read
• ALU control: same as single cycle
• Multiplexor single/two control lines
26
Continue
27
Continue
28
Breaking the Instruction Execution into Clock Cycles
1. Instruction fetch
step
IR <= Memory[PC];
PC <= PC + 4;
IR <= Memory[PC];
MemRead
IRWrite
IorD = 0
-------------------------------
PC <= PC + 4;
ALUSrcA = 0
ALUSrcB = 01
ALUOp = 00 (for add)
PCSource = 00
PCWrite
The increment of the PC and instruction memory access can occur in parallel, how?
29
Breaking the Instruction Execution into Clock Cycles
A <= Reg[IR[25:21]];
B <= Reg[IR[20:16]];
ALUOut <= PC + (sign-extend(IR[15-0] << 2 );
30
2. Instruction decode and register fetch step
A <= Reg[IR[25:21]];
B <= Reg[IR[20:16]];
ALUOut <= PC + (sign-extend(IR[15-0] << 2 );
A <= Reg[IR[25:21]];
B <= Reg[IR[20:16]];
Since A and B are overwritten
on every cycle Done
------------------------------------------
ALUOut <= PC + (sign-
extend(IR[15-0]<<2);
This requires:
ALUSrcA 0
ALUSrcB 11
ALUOp 00 (for add)
The register file access and computation of branch target occur in parallel.
31
Breaking the Instruction Execution into Clock Cycles
Memory reference:
ALUOut <= A + sign-extend(IR[15:0]);
Arithmetic-logical instruction:
ALUOut <= A op B;
Branch:
if (A == B) PC <= ALUOut;
Jump:
PC <= { PC[31:28], (IR[25:0], 2’b00) };
32
3. Execution, memory address computation, or branch completion
Memory reference:
ALUOut <= A + sign-extend(IR[15:0]);
ALUSrcA = 1 && ALUSrcB = 10
ALUOp = 00
Arithmetic-logical instruction:
ALUOut <= A op B;
ALUSrcA = 1 && ALUSrcB = 00
ALUOp = 10
Branch:
if (A == B) PC <= ALUOut;
ALUSrcA = 1 && ALUSrcB = 00
ALUOp = 01 (for subtraction)
PCSource = 01
PCWriteCond
Jump:
PC <= { PC[31:28], (IR[25:0],2’b00) };
PCSource = 10
PCWrite
33
Breaking the Instruction Execution into Clock Cycles
Memory reference:
MDR <= Memory [ALUOut]; MemRead
or IorD=1
Memory [ALUOut] <= B; MemWrite
Load:
Reg[IR[20:16]] <= MDR; MemtoReg=1 RegWrite RegDst=0
34
Breaking the Instruction Execution into Clock Cycles
35
Defining the Control
36
Example Continue
CPI
CPU clock cycles
Instruction count
i CPI i
Instruction count Instruction count
Instruction counti
CPI CPI i
Instruction count
The ratio
Instruction counti
Instruction count
is simply the instruction frequency for the instruction class i. We can therefore
substitute to obtain:
This CPI is better than the worst-case CPI of 5.0 when all instructions take the
same number of clock cycles.
37
38
The complete finite state machine control
39
Continue
40
4.6 Exceptions
• Exceptions
• Interrupts
41
How Exception Are Handled
42
How Control Checks for Exception
43
Continue
The finite state machine with the additions to handle exception detection
45