SlideShare a Scribd company logo
1
Unit 3
Processor and Control Unit
By
Mrs.M.Kavitha, AP/CSE
A.V.C College of Engineering
2
A Basic MIPS Implementation
• We're ready to look at an implementation of the MIPS
• Simplified to contain only:
– memory-reference instructions: lw, sw
– arithmetic-logical instructions: add, sub, and, or, slt
– control flow instructions: beq, j
• Generic Implementation:
– use the program counter (PC) to supply instruction address
– get the instruction from memory
– read registers
– use the instruction to decide exactly what to do
• All instructions use the ALU after reading the registers
Why? memory-reference? arithmetic? control flow?
5.1 Introduction
3
An Overview of the Implementation
• For most instructions: fetch instruction, fetch operands, execute,
store.
• Missing Multiplexers, and some Control lines for read and write.
4
An Overview of the Implementation
• The program counter gives the instruction address to the instruction
memory.
• After the instruction is fetched ,the register operands required by an
instruction are specified by fields of that instruction.
• Once the register operands have been fetched, they can be used to
compute a memory address( for a load and store), to compute an
arithmetic result( for an integer arithmetic-logical instruction) or a
compare(for a branch).
• If the instruction is an arithmetic-logical instruction, the result from the
ALU must be written to a register.
• If the operation is a load or store, the ALU result is used as an address to
either store a value from memory into the registers. The result from the
ALU or memory is written back into the register file.
• Branches require the use of the ALU output to determine the next
instruction address which comes either from the ALU( where the PC and
branch offset are summed) or from an adder that increments the current
PC by 4.
5
Continue
• The basic implementation of the MIPS subset including the necessary
multiplexers and control lines.
• Multiplexer (data selector) selects from among several inputs based on
the setting of its control lines. The control lines are set based on
information taken from the instruction being executed.
6
5.3 Building a Datapath
• Datapath
– Elements that process data and addresses within the CPU
• Register file, ALUs, Adders, Instruction and Data
Memories, …
We need functional units (datapath elements) for:
1. Fetching instructions and incrementing the PC.
2. Execute arithmetic-logical instructions: add, sub, and, or, and slt
3. Execute memory-reference instructions: lw, sw
4. Execute branch/jump instructions: beq, j
1. Fetching instructions and incrementing the PC.
7
Continue
2. Execute arithmetic-logical instructions: add, sub, and, or, and slt
The arithmetic logic instructions read operands from two
registers, perform an ALU operation on the contents of
the registers and write the result to the register. So
this instructions as R-type instructions.
add $t1, $t2, $t3 # t1 = t2 + t3
8
Continue
3. Execute memory-reference instructions: lw, sw
lw $t1, offset_value($t2)
sw $t1, offset_value($t2)
9
4. Execute branch/jump instructions: beq, j
beq $t1, $t2, offset
10
Creating a Single Datapath
• Sharing datapath elements between two different instruction classes ,
we have connected multiple connections to the input of an element and
used a multiplexer and control signals to select among the multiple
inputs.
11
Continue
Now we con combine all the pieces to make a simple datapath
for the MIPS architecture:
12
5.4 A Simple Control Implementation
Scheme
The ALU Control
13
Designing the Main Control Unit
14
Continue
15
Continue
16
Finalizing the Control
17
Continue
18
Continue
19
Example: Implementing Jumps
20
Why a Single-Cycle Implementation Is Not Used Today
Example: Performance of Single-Cycle Machines
Calculate cycle time assuming negligible delays except:
– memory (200ps),
– ALU and adders (100ps),
– register file access (50ps)
Which of the following implementation would be faster:
1. When every instruction operates in 1 clock cycle of fixes length.
2. When every instruction executes in 1 clock cycle using a variable-length
clock.
To compare the performance, assume the following instruction mix:
25% loads
10% stores
45% ALU instructions
15% branches, and
5% jumps
21
Continue
CPU clock cycle (option 1) = 600 ps.
CPU clock cycle (option 2) = 400 ×45% + 600×25% + 550 ×10% + 350 ×15% + 200×5%
= 447.5 ps.
Performance ratio = 34.1
5.447
600
=
45% ALU instructions
25% loads
10% stores
15% branches, and
5% jumps
memory (200ps),
ALU and adders (100ps),
register file access (50ps)
22
5.5 A Multicycle Implementation
• A single memory unit is used for both instructions and data.
• There is a single ALU, rather than an ALU and two adders.
• One or more registers are added after every major functional unit.
23
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.
24
Continue
25
Continue
26
Continue
27
Breaking the Instruction Execution into Clock Cycles
1. Instruction fetch step
IR <= Memory[PC];
PC <= PC + 4;
28
Breaking the Instruction Execution into Clock Cycles
IR <= Memory[PC];
To do this, we need:
MemRead Assert
IRWrite  Assert
IorD  0
-------------------------------
PC <= PC + 4;
ALUSrcA  0
ALUSrcB  01
ALUOp  00 (for add)
PCSource  00
PCWrite  set
The increment of the PC and instruction memory access can occur in parallel, how?
29
Breaking the Instruction Execution into Clock Cycles
2. Instruction decode and register fetch step
– Actions that are either applicable to all instructions
– Or are not harmful
A <= Reg[IR[25:21]];
B <= Reg[IR[20:16]];
ALUOut <= PC + (sign-extend(IR[15-0] << 2 );
30
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)
branch target address will
be stored in ALUOut.
The register file access and computation of branch target occur in parallel.
31
Breaking the Instruction Execution into Clock Cycles
3. Execution, memory address computation, or branch completion
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
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 is asserted
Jump:
PC <= { PC[31:28], (IR[25:0],2’b00) };
PCWrite is asserted
PCSource = 10
33
Breaking the Instruction Execution into Clock Cycles
4. Memory access or R-type instruction completion step
Memory reference:
MDR <= Memory [ALUOut]; ⇒ MemRead, IorD=1
or
Memory [ALUOut] <= B; ⇒ MemWrite, IorD=1
Arithmetic-logical instruction (R-type):
Reg[IR[15:11]] <= ALUOut; ⇒ RegDst=1,RegWrite, MemtoReg=0
5. Memory read completion step
Load:
Reg[IR[20:16]] <= MDR; ⇒ RegDst=0, RegWrite, MemtoReg=1
34
Breaking the Instruction Execution into Clock Cycles
35
Continue
Summary of the steps taken to execute any instruction class
36
Defining the Control
Two different techniques to specify the control:
– Finite state machine
– Microprogramming
Example: CPI in a Multicycle CPU
Using the SPECINT2000 instruction mix, which is: 25% load, 10% store, 11%
branches, 2% jumps, and 52% ALU.
What is the CPI, assuming that each state in the multicycle CPU requires 1
clock cycle?
Answer:
The number of clock cycles for each instruction class is the following:
 Load: 5 25%
 Stores: 4 10%
 ALU instruction: 4 52%
 Branches: 3 11%
 Jumps: 3 2%
37
Example Continue
The CPI is given by the following:
is simply the instruction frequency for the instruction class i. We can therefore
substitute to obtain:
CPI = 0.25×5 + 0.10×4 + 0.52×4 + 0.11×3 + 0.02×3 = 4.12
This CPI is better than the worst-case CPI of 5.0 when all instructions take the
same number of clock cycles.
n countInstructio
n countInstructio
CPI
n countInstructio
n countInstructio
CPI
n countInstructio
CPIn countInstructio
n countInstructio
cyclesCPU clock
CPI
i
i
i
ii
ratioThe
∑
∑
×=
×
==
38
Defining the Control (Continue)
39
Defining the Control (Continue)
The complete finite state machine control
40
Defining the Control (Continue)
• Finite state machine controllers are typically implemented using a
block of combinational logic and a register to hold the current state.
41
5.6 Exceptions
• Exceptions
• Interrupts
Type of event From where? MIPS terminology
I/O device request External Interrupt
Invoke the operating system from user
program
Internal Exception
Arithmetic overflow Internal Exception
Using an undefined instruction Internal Exception
Hardware malfunction Either Exception or interrupt
42
How Exception Are Handled
To communicate the reason for an exception:
1. a status register ( called the Cause register)
2. vectored interrupts
Exception type Exception vector address (in hex)
Undefined instruction C000 0000hex
Arithmetic overflow C000 0020hex
43
How Control Checks for Exception
Assume two possible exceptions:
 Undefined instruction
 Arithmetic overflow
44
Continue
The multicycle datapath with the addition needed to implement exceptions
45
Continue
The finite state machine with the additions to handle exception detection

More Related Content

PPTX
Timing and control
PPTX
Arithmetic logic shift unit
PPT
Chapter 01 - Introduction
PPTX
Chapter 03 arithmetic for computers
PPT
Basic MIPS implementation
PPTX
Computer arithmetic
PDF
Array Processor
PPTX
Instruction Set of 8051 Microcontroller
Timing and control
Arithmetic logic shift unit
Chapter 01 - Introduction
Chapter 03 arithmetic for computers
Basic MIPS implementation
Computer arithmetic
Array Processor
Instruction Set of 8051 Microcontroller

What's hot (20)

PPTX
Lecture 3 instruction set
PPTX
INSTRUCTION LEVEL PARALLALISM
PPTX
Structure of agents
PPT
Arithmetic Logic Unit (ALU)
PPTX
instruction cycle ppt
PPTX
Branching instructions in 8086 microprocessor
PPT
Memory organization of 8051
PDF
Addressing modes in computer organization
PPT
Addressing modes of 8051
PPT
Architecture of 8086 Microprocessor
PPTX
Target hardware debugging
PDF
Logic microoperations
PPTX
Pipelining and vector processing
PPTX
Instruction pipelining
PPTX
Computer instruction
PPTX
Pipelining powerpoint presentation
PPTX
Register organization, stack
PPTX
RISC - Reduced Instruction Set Computing
PPT
Computer architecture pipelining
PDF
T-states in microprocessor 8085
Lecture 3 instruction set
INSTRUCTION LEVEL PARALLALISM
Structure of agents
Arithmetic Logic Unit (ALU)
instruction cycle ppt
Branching instructions in 8086 microprocessor
Memory organization of 8051
Addressing modes in computer organization
Addressing modes of 8051
Architecture of 8086 Microprocessor
Target hardware debugging
Logic microoperations
Pipelining and vector processing
Instruction pipelining
Computer instruction
Pipelining powerpoint presentation
Register organization, stack
RISC - Reduced Instruction Set Computing
Computer architecture pipelining
T-states in microprocessor 8085
Ad

Viewers also liked (20)

PDF
Mips implementation
PPT
Lec18 pipeline
PPTX
pipelining
PPT
pipelining
PPTX
El medio ambiente
DOCX
Examen rec2 tr
PPTX
งานนำเสนอ1
PPTX
Juegos infantiles
PPTX
Pendekatan konsep sain (stm) dalam pembelajaran
PPT
Najlepsze klimatyzacje w jednym miejscu
PDF
Control interno2
PDF
Doc1
PPTX
Red por tecnología
PPTX
IMPORTANCIA DE LOS VALORES PARA UNA CONVIVENCIA SOCIAL
PPT
Tema 3 Belen
PDF
Edición impresa del Diario Regional La Calle del lunes 26 de agosto 2.pdf1
PPT
Centro técnico de estudios superiores
PPTX
Animales en peligro de extinción
PDF
Presentacion final Distribuidores y Vendedores
PPTX
Proyecto institucional educativo (pei)
Mips implementation
Lec18 pipeline
pipelining
pipelining
El medio ambiente
Examen rec2 tr
งานนำเสนอ1
Juegos infantiles
Pendekatan konsep sain (stm) dalam pembelajaran
Najlepsze klimatyzacje w jednym miejscu
Control interno2
Doc1
Red por tecnología
IMPORTANCIA DE LOS VALORES PARA UNA CONVIVENCIA SOCIAL
Tema 3 Belen
Edición impresa del Diario Regional La Calle del lunes 26 de agosto 2.pdf1
Centro técnico de estudios superiores
Animales en peligro de extinción
Presentacion final Distribuidores y Vendedores
Proyecto institucional educativo (pei)
Ad

Similar to Basic MIPS implementation (20)

PPTX
MIPS IMPLEMENTATION.pptx
PPTX
Computer Architecture and Organization- THE PROCESSOR DESIGN
PPTX
PROCESSOR AND CONTROL UNIT
PDF
multi cycle in microprocessor 8086 sy B-tech
PPTX
PROCESSOR AND CONTROL UNIT - unit 3 Architecture
PPTX
Unit iii
DOCX
Hennchthree 161102111515
DOCX
Hennchthree
PPTX
Multicycle Datapath and Control: Enhancing CPU Efficiency through Sequential ...
PPT
Chapter 4 the processor
PPTX
DG M 4 ppt.pptx
PDF
Single cycle cpu
PPT
CSe_Cumilla Bangladesh_Country CSE CSE213_5.ppt
PPT
Chapter 4
PPT
Computer Organization Unit 4 Processor &Control Unit
PPTX
Chapter 04 the processor
PDF
Lec 12-15 mips instruction set processor
PPTX
BASICS OF MIPS ARCHITECTURE AND THEIR INSTRUCTION SET
PPT
Digital-Unit-III.ppt
PPTX
CMPN301-Pipelining_V2.pptx
MIPS IMPLEMENTATION.pptx
Computer Architecture and Organization- THE PROCESSOR DESIGN
PROCESSOR AND CONTROL UNIT
multi cycle in microprocessor 8086 sy B-tech
PROCESSOR AND CONTROL UNIT - unit 3 Architecture
Unit iii
Hennchthree 161102111515
Hennchthree
Multicycle Datapath and Control: Enhancing CPU Efficiency through Sequential ...
Chapter 4 the processor
DG M 4 ppt.pptx
Single cycle cpu
CSe_Cumilla Bangladesh_Country CSE CSE213_5.ppt
Chapter 4
Computer Organization Unit 4 Processor &Control Unit
Chapter 04 the processor
Lec 12-15 mips instruction set processor
BASICS OF MIPS ARCHITECTURE AND THEIR INSTRUCTION SET
Digital-Unit-III.ppt
CMPN301-Pipelining_V2.pptx

Recently uploaded (20)

PPTX
Construction Project Organization Group 2.pptx
PDF
keyrequirementskkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkk
PPTX
6ME3A-Unit-II-Sensors and Actuators_Handouts.pptx
PPTX
Artificial Intelligence
PDF
null (2) bgfbg bfgb bfgb fbfg bfbgf b.pdf
PDF
Well-logging-methods_new................
PPTX
M Tech Sem 1 Civil Engineering Environmental Sciences.pptx
PPTX
Foundation to blockchain - A guide to Blockchain Tech
DOCX
ASol_English-Language-Literature-Set-1-27-02-2023-converted.docx
PPT
introduction to datamining and warehousing
PDF
The CXO Playbook 2025 – Future-Ready Strategies for C-Suite Leaders Cerebrai...
PDF
Automation-in-Manufacturing-Chapter-Introduction.pdf
PPT
Project quality management in manufacturing
PPTX
MET 305 2019 SCHEME MODULE 2 COMPLETE.pptx
PDF
PREDICTION OF DIABETES FROM ELECTRONIC HEALTH RECORDS
PPTX
FINAL REVIEW FOR COPD DIANOSIS FOR PULMONARY DISEASE.pptx
PDF
BIO-INSPIRED HORMONAL MODULATION AND ADAPTIVE ORCHESTRATION IN S-AI-GPT
DOCX
573137875-Attendance-Management-System-original
PDF
R24 SURVEYING LAB MANUAL for civil enggi
PDF
737-MAX_SRG.pdf student reference guides
Construction Project Organization Group 2.pptx
keyrequirementskkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkk
6ME3A-Unit-II-Sensors and Actuators_Handouts.pptx
Artificial Intelligence
null (2) bgfbg bfgb bfgb fbfg bfbgf b.pdf
Well-logging-methods_new................
M Tech Sem 1 Civil Engineering Environmental Sciences.pptx
Foundation to blockchain - A guide to Blockchain Tech
ASol_English-Language-Literature-Set-1-27-02-2023-converted.docx
introduction to datamining and warehousing
The CXO Playbook 2025 – Future-Ready Strategies for C-Suite Leaders Cerebrai...
Automation-in-Manufacturing-Chapter-Introduction.pdf
Project quality management in manufacturing
MET 305 2019 SCHEME MODULE 2 COMPLETE.pptx
PREDICTION OF DIABETES FROM ELECTRONIC HEALTH RECORDS
FINAL REVIEW FOR COPD DIANOSIS FOR PULMONARY DISEASE.pptx
BIO-INSPIRED HORMONAL MODULATION AND ADAPTIVE ORCHESTRATION IN S-AI-GPT
573137875-Attendance-Management-System-original
R24 SURVEYING LAB MANUAL for civil enggi
737-MAX_SRG.pdf student reference guides

Basic MIPS implementation

  • 1. 1 Unit 3 Processor and Control Unit By Mrs.M.Kavitha, AP/CSE A.V.C College of Engineering
  • 2. 2 A Basic MIPS Implementation • We're ready to look at an implementation of the MIPS • Simplified to contain only: – memory-reference instructions: lw, sw – arithmetic-logical instructions: add, sub, and, or, slt – control flow instructions: beq, j • Generic Implementation: – use the program counter (PC) to supply instruction address – get the instruction from memory – read registers – use the instruction to decide exactly what to do • All instructions use the ALU after reading the registers Why? memory-reference? arithmetic? control flow? 5.1 Introduction
  • 3. 3 An Overview of the Implementation • For most instructions: fetch instruction, fetch operands, execute, store. • Missing Multiplexers, and some Control lines for read and write.
  • 4. 4 An Overview of the Implementation • The program counter gives the instruction address to the instruction memory. • After the instruction is fetched ,the register operands required by an instruction are specified by fields of that instruction. • Once the register operands have been fetched, they can be used to compute a memory address( for a load and store), to compute an arithmetic result( for an integer arithmetic-logical instruction) or a compare(for a branch). • If the instruction is an arithmetic-logical instruction, the result from the ALU must be written to a register. • If the operation is a load or store, the ALU result is used as an address to either store a value from memory into the registers. The result from the ALU or memory is written back into the register file. • Branches require the use of the ALU output to determine the next instruction address which comes either from the ALU( where the PC and branch offset are summed) or from an adder that increments the current PC by 4.
  • 5. 5 Continue • The basic implementation of the MIPS subset including the necessary multiplexers and control lines. • Multiplexer (data selector) selects from among several inputs based on the setting of its control lines. The control lines are set based on information taken from the instruction being executed.
  • 6. 6 5.3 Building a Datapath • Datapath – Elements that process data and addresses within the CPU • Register file, ALUs, Adders, Instruction and Data Memories, … We need functional units (datapath elements) for: 1. Fetching instructions and incrementing the PC. 2. Execute arithmetic-logical instructions: add, sub, and, or, and slt 3. Execute memory-reference instructions: lw, sw 4. Execute branch/jump instructions: beq, j 1. Fetching instructions and incrementing the PC.
  • 7. 7 Continue 2. Execute arithmetic-logical instructions: add, sub, and, or, and slt The arithmetic logic instructions read operands from two registers, perform an ALU operation on the contents of the registers and write the result to the register. So this instructions as R-type instructions. add $t1, $t2, $t3 # t1 = t2 + t3
  • 8. 8 Continue 3. Execute memory-reference instructions: lw, sw lw $t1, offset_value($t2) sw $t1, offset_value($t2)
  • 9. 9 4. Execute branch/jump instructions: beq, j beq $t1, $t2, offset
  • 10. 10 Creating a Single Datapath • Sharing datapath elements between two different instruction classes , we have connected multiple connections to the input of an element and used a multiplexer and control signals to select among the multiple inputs.
  • 11. 11 Continue Now we con combine all the pieces to make a simple datapath for the MIPS architecture:
  • 12. 12 5.4 A Simple Control Implementation Scheme The ALU Control
  • 13. 13 Designing the Main Control Unit
  • 20. 20 Why a Single-Cycle Implementation Is Not Used Today Example: Performance of Single-Cycle Machines Calculate cycle time assuming negligible delays except: – memory (200ps), – ALU and adders (100ps), – register file access (50ps) Which of the following implementation would be faster: 1. When every instruction operates in 1 clock cycle of fixes length. 2. When every instruction executes in 1 clock cycle using a variable-length clock. To compare the performance, assume the following instruction mix: 25% loads 10% stores 45% ALU instructions 15% branches, and 5% jumps
  • 21. 21 Continue CPU clock cycle (option 1) = 600 ps. CPU clock cycle (option 2) = 400 ×45% + 600×25% + 550 ×10% + 350 ×15% + 200×5% = 447.5 ps. Performance ratio = 34.1 5.447 600 = 45% ALU instructions 25% loads 10% stores 15% branches, and 5% jumps memory (200ps), ALU and adders (100ps), register file access (50ps)
  • 22. 22 5.5 A Multicycle Implementation • A single memory unit is used for both instructions and data. • There is a single ALU, rather than an ALU and two adders. • One or more registers are added after every major functional unit.
  • 23. 23 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.
  • 27. 27 Breaking the Instruction Execution into Clock Cycles 1. Instruction fetch step IR <= Memory[PC]; PC <= PC + 4;
  • 28. 28 Breaking the Instruction Execution into Clock Cycles IR <= Memory[PC]; To do this, we need: MemRead Assert IRWrite  Assert IorD  0 ------------------------------- PC <= PC + 4; ALUSrcA  0 ALUSrcB  01 ALUOp  00 (for add) PCSource  00 PCWrite  set The increment of the PC and instruction memory access can occur in parallel, how?
  • 29. 29 Breaking the Instruction Execution into Clock Cycles 2. Instruction decode and register fetch step – Actions that are either applicable to all instructions – Or are not harmful A <= Reg[IR[25:21]]; B <= Reg[IR[20:16]]; ALUOut <= PC + (sign-extend(IR[15-0] << 2 );
  • 30. 30 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) branch target address will be stored in ALUOut. The register file access and computation of branch target occur in parallel.
  • 31. 31 Breaking the Instruction Execution into Clock Cycles 3. Execution, memory address computation, or branch completion 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. 32 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 is asserted Jump: PC <= { PC[31:28], (IR[25:0],2’b00) }; PCWrite is asserted PCSource = 10
  • 33. 33 Breaking the Instruction Execution into Clock Cycles 4. Memory access or R-type instruction completion step Memory reference: MDR <= Memory [ALUOut]; ⇒ MemRead, IorD=1 or Memory [ALUOut] <= B; ⇒ MemWrite, IorD=1 Arithmetic-logical instruction (R-type): Reg[IR[15:11]] <= ALUOut; ⇒ RegDst=1,RegWrite, MemtoReg=0 5. Memory read completion step Load: Reg[IR[20:16]] <= MDR; ⇒ RegDst=0, RegWrite, MemtoReg=1
  • 34. 34 Breaking the Instruction Execution into Clock Cycles
  • 35. 35 Continue Summary of the steps taken to execute any instruction class
  • 36. 36 Defining the Control Two different techniques to specify the control: – Finite state machine – Microprogramming Example: CPI in a Multicycle CPU Using the SPECINT2000 instruction mix, which is: 25% load, 10% store, 11% branches, 2% jumps, and 52% ALU. What is the CPI, assuming that each state in the multicycle CPU requires 1 clock cycle? Answer: The number of clock cycles for each instruction class is the following:  Load: 5 25%  Stores: 4 10%  ALU instruction: 4 52%  Branches: 3 11%  Jumps: 3 2%
  • 37. 37 Example Continue The CPI is given by the following: is simply the instruction frequency for the instruction class i. We can therefore substitute to obtain: CPI = 0.25×5 + 0.10×4 + 0.52×4 + 0.11×3 + 0.02×3 = 4.12 This CPI is better than the worst-case CPI of 5.0 when all instructions take the same number of clock cycles. n countInstructio n countInstructio CPI n countInstructio n countInstructio CPI n countInstructio CPIn countInstructio n countInstructio cyclesCPU clock CPI i i i ii ratioThe ∑ ∑ ×= × ==
  • 39. 39 Defining the Control (Continue) The complete finite state machine control
  • 40. 40 Defining the Control (Continue) • Finite state machine controllers are typically implemented using a block of combinational logic and a register to hold the current state.
  • 41. 41 5.6 Exceptions • Exceptions • Interrupts Type of event From where? MIPS terminology I/O device request External Interrupt Invoke the operating system from user program Internal Exception Arithmetic overflow Internal Exception Using an undefined instruction Internal Exception Hardware malfunction Either Exception or interrupt
  • 42. 42 How Exception Are Handled To communicate the reason for an exception: 1. a status register ( called the Cause register) 2. vectored interrupts Exception type Exception vector address (in hex) Undefined instruction C000 0000hex Arithmetic overflow C000 0020hex
  • 43. 43 How Control Checks for Exception Assume two possible exceptions:  Undefined instruction  Arithmetic overflow
  • 44. 44 Continue The multicycle datapath with the addition needed to implement exceptions
  • 45. 45 Continue The finite state machine with the additions to handle exception detection