Lecture 14: FSM and Basic CPU Design Todays topics: Finite state - - PowerPoint PPT Presentation

lecture 14 fsm and basic cpu design
SMART_READER_LITE
LIVE PREVIEW

Lecture 14: FSM and Basic CPU Design Todays topics: Finite state - - PowerPoint PPT Presentation

Lecture 14: FSM and Basic CPU Design Todays topics: Finite state machines Single-cycle CPU Reminder: midterm on Tue 10/24 will cover Chapters 1-4, App A, B shorter than last year if you understand all slides,


slide-1
SLIDE 1

1

Lecture 14: FSM and Basic CPU Design

  • Today’s topics:

Finite state machines Single-cycle CPU

  • Reminder: midterm on Tue 10/24

will cover Chapters 1-4, App A, B shorter than last year if you understand all slides, assignments, you will ace 90% of the test

slide-2
SLIDE 2

2

Sequential Circuits

  • We want the clock to act like a start and stop signal – a “latch” is

a storage device that stores its inputs at a rising clock edge and this storage will not change until the next rising clock edge Combinational Circuit Outputs Combinational Circuit Latch Latch Inputs Clock Clock

slide-3
SLIDE 3

3

Finite State Machine

  • A sequential circuit is described by a variation of a truth

table – a finite state diagram (hence, the circuit is also called a finite state machine)

  • Note that state is updated only on a clock edge

Next-state Function Output Function Current State Clock Inputs Next state Outputs

slide-4
SLIDE 4

4

State Diagrams

  • Each state is shown with a circle, labeled with the state

value – the contents of the circle are the outputs

  • An arc represents a transition to a different state, with the

inputs indicated on the label

1

1

D = 1 D = 0 D = 0 D = 1 This is a state diagram for ___?

slide-5
SLIDE 5

5

3-Bit Counter

  • Consider a circuit that stores a number and increments the value on

every clock edge – on reaching the largest value, it starts again from 0 Draw the state diagram:

  • How many states?
  • How many inputs?
slide-6
SLIDE 6

6

3-Bit Counter

  • Consider a circuit that stores a number and increments the value on

every clock edge – on reaching the largest value, it starts again from 0 Draw the state diagram:

  • How many states?
  • How many inputs?

000

000

001

001

010

010

011

011

100

100

101

101

110

110

111

111

slide-7
SLIDE 7

7

Traffic Light Controller

  • Problem description: A traffic light with only green and red; either the

North-South road has green or the East-West road has green (both can’t be red); there are detectors on the roads to indicate if a car is

  • n the road; the lights are updated every 30 seconds; a light need

change only if a car is waiting on the other road State Transition Table: How many states? How many inputs? How many outputs?

slide-8
SLIDE 8

8

State Transition Table

  • Problem description: A traffic light with only green and red; either the

North-South road has green or the East-West road has green (both can’t be red); there are detectors on the roads to indicate if a car is

  • n the road; the lights are updated every 30 seconds; a light must

change only if a car is waiting on the other road State Transition Table: CurrState InputEW InputNS NextState=Output N 0 0 N N 0 1 N N 1 0 E N 1 1 E E 0 0 E E 0 1 N E 1 0 E E 1 1 N

slide-9
SLIDE 9

9

State Diagram

State Transition Table: CurrState InputEW InputNS NextState=Output N 0 0 N N 0 1 N N 1 0 E N 1 1 E E 0 0 E E 0 1 N E 1 0 E E 1 1 N

slide-10
SLIDE 10

10

Basic MIPS Architecture

  • Now that we understand clocks and storage of states,

we’ll design a simple CPU that executes: basic math (add, sub, and, or, slt) memory access (lw and sw) branch and jump instructions (beq and j)

slide-11
SLIDE 11

11

Implementation Overview

  • We need memory

to store instructions to store data for now, let’s make them separate units

  • We need registers, ALU, and a whole lot of control logic
  • CPU operations common to all instructions:

use the program counter (PC) to pull instruction out

  • f instruction memory

read register values

slide-12
SLIDE 12

12

View from 30,000 Feet

  • What is the role of the Add units?
  • Explain the inputs to the data memory unit
  • Explain the inputs to the ALU
  • Explain the inputs to the register unit

Note: we haven’t bothered showing multiplexors

slide-13
SLIDE 13

13

Clocking Methodology

  • Which of the above units need a clock?
  • What is being saved (latched) on the rising edge of the clock?

Keep in mind that the latched value remains there for an entire cycle

slide-14
SLIDE 14

14

Implementing R-type Instructions

  • Instructions of the form add $t1, $t2, $t3
  • Explain the role of each signal
slide-15
SLIDE 15

15

Implementing Loads/Stores

  • Instructions of the form lw $t1, 8($t2) and sw $t1, 8($t2)

Where does this input come from?

slide-16
SLIDE 16

16

Implementing J-type Instructions

  • Instructions of the form beq $t1, $t2, offset
slide-17
SLIDE 17

17

View from 10,000 Feet

slide-18
SLIDE 18

18

View from 5,000 Feet

slide-19
SLIDE 19

19

Single Vs. Multi-Cycle Machine

  • In this implementation, every instruction requires one

cycle to complete cycle time = time taken for the slowest instruction

  • If the execution was broken into multiple (faster)

cycles, the shorter instructions can finish sooner

Cycle time = 20 ns Load Add Beq Time for a load, add, and beq = 60 ns 45 ns Cycle time = 5 ns Load Add Beq 1 cycle 1 cycle 1 cycle 4 cycles 3 cycles 2 cycles

slide-20
SLIDE 20

20

Title

  • Bullet