Penn ESE534 Spring2012 -- DeHon 1 ESE534: Computer Organization Day 4: January 25, 2012 Sequential Logic (FSMs, Pipelining, FSMD)

Slides:



Advertisements
Similar presentations
Give qualifications of instructors: DAP
Advertisements

Penn ESE370 Fall DeHon 1 ESE370: Circuit-Level Modeling, Design, and Optimization for Digital Systems Day 24: November 4, 2011 Synchronous Circuits.
Caltech CS184a Fall DeHon1 CS184a: Computer Architecture (Structures and Organization) Day3: October 2, 2000 Arithmetic and Pipelining.
CS 151 Digital Systems Design Lecture 37 Register Transfer Level
Caltech CS184a Fall DeHon1 CS184a: Computer Architecture (Structures and Organization) Day2: September 27, 2000 Logic, Gate, FSMs.
Caltech CS184a Fall DeHon1 CS184a: Computer Architecture (Structures and Organization) Day17: November 20, 2000 Time Multiplexing.
Penn ESE Spring DeHon 1 ESE (ESE534): Computer Organization Day 21: April 2, 2007 Time Multiplexing.
Penn ESE 535 Spring DeHon 1 ESE535: Electronic Design Automation Day 13: March 4, 2009 FSM Equivalence Checking.
FSMs 1 Sequential logic implementation  Sequential circuits  primitive sequential elements  combinational logic  Models for representing sequential.
Penn ESE 535 Spring DeHon 1 ESE535: Electronic Design Automation Day 22: April 23, 2008 FSM Equivalence Checking.
Dr. Turki F. Al-Somani VHDL synthesis and simulation – Part 3 Microcomputer Systems Design (Embedded Systems)
Penn ESE535 Spring DeHon 1 ESE535: Electronic Design Automation Day 3: January 26, 2009 Scheduled Operator Sharing.
Penn ESE Fall DeHon 1 ESE (ESE534): Computer Organization Day 19: March 26, 2007 Retime 1: Transformations.
CS294-6 Reconfigurable Computing Day 19 October 27, 1998 Multicontext.
Penn ESE Spring DeHon 1 ESE : Computer Organization Day 3: January 17, 2007 Arithmetic and Pipelining.
Penn ESE Spring DeHon 1 ESE (ESE534): Computer Organization Day 2: January 10, 2007 Logic and FSM Review.
Penn ESE Spring DeHon 1 ESE (ESE534): Computer Organization Day 5: January 24, 2007 ALUs, Virtualization…
Penn ESE535 Spring DeHon 1 ESE535: Electronic Design Automation Day 8: February 13, 2008 Retiming.
CS3350B Computer Architecture Winter 2015 Lecture 5.2: State Circuits: Circuits that Remember Marc Moreno Maza [Adapted.
Penn ESE534 Spring DeHon 1 ESE534: Computer Organization Day 9: February 24, 2014 Operator Sharing, Virtualization, Programmable Architectures.
Penn ESE535 Spring DeHon 1 ESE535: Electronic Design Automation Day 7: February 9, 2015 Scheduled Operator Sharing.
EKT 221/4 DIGITAL ELECTRONICS II  Registers, Micro-operations and Implementations - Part3.
CALTECH CS137 Spring DeHon CS137: Electronic Design Automation Day 9: May 6, 2002 FSM Equivalence Checking.
Introduction to Computer Engineering ECE/CS 252, Fall 2010 Prof. Mikko Lipasti Department of Electrical and Computer Engineering University of Wisconsin.
Important Components, Blocks and Methodologies. To remember 1.EXORS 2.Counters and Generalized Counters 3.State Machines (Moore, Mealy, Rabin-Scott) 4.Controllers.
Penn ESE535 Spring DeHon 1 ESE535: Electronic Design Automation Day 24: April 18, 2011 Covering and Retiming.
Modern VLSI Design 4e: Chapter 8 Copyright  2008 Wayne Wolf Topics Basics of register-transfer design: –data paths and controllers; –ASM charts. Pipelining.
Penn ESE370 Fall DeHon 1 ESE370: Circuit-Level Modeling, Design, and Optimization for Digital Systems Day 26: October 31, 2014 Synchronous Circuits.
Caltech CS184 Winter DeHon CS184a: Computer Architecture (Structure and Organization) Day 2: January 8, 2003 Logic and FSM Review.
Penn ESE534 Spring DeHon 1 ESE534: Computer Organization Day 5: February 1, 2010 Memories.
Penn ESE534 Spring DeHon 1 ESE534: Computer Organization Day 2: January 20, 2010 Universality, Gates, Logic Work Preclass Exercise.
Caltech CS184 Winter DeHon CS184a: Computer Architecture (Structure and Organization) Day 3: January 10, 2005 Arithmetic and Pipelining.
Penn ESE535 Spring DeHon 1 ESE535: Electronic Design Automation Day 3: January 16, 2013 Scheduled Operator Sharing.
Chapter 3 Digital Logic Structures. Copyright © The McGraw-Hill Companies, Inc. Permission required for reproduction or display. 3-2 Transistor: Building.
Introduction to ASIC flow and Verilog HDL
Modern VLSI Design 3e: Chapter 8 Copyright  1998, 2002 Prentice Hall PTR Topics n Basics of register-transfer design: –data paths and controllers; –ASM.
Penn ESE534 Spring DeHon 1 ESE534: Computer Organization Day 2: January 18, 2012 Universality, Gates, Logic Work Preclass Exercise.
1 COMP541 Finite State Machines - 1 Montek Singh Sep 22, 2014.
CSE 311 Foundations of Computing I Lecture 25 Circuits for FSMs, Carry-Look-Ahead Adders Autumn 2011 CSE 3111.
Chapter 11: System Design Methodology Digital System Designs and Practices Using Verilog HDL and 2008, John Wiley11-1 Chapter 11: System Design.
ECE 448 Lecture 6 Finite State Machines State Diagrams vs. Algorithmic State Machine (ASM) Charts.
Caltech CS184 Winter DeHon CS184a: Computer Architecture (Structure and Organization) Day 4: January 15, 2003 Memories, ALUs, Virtualization.
Penn ESE534 Spring DeHon 1 ESE534: Computer Organization Day 4: January 27, 2010 Sequential Logic (FSMs, Pipelining, FSMD)
Penn ESE370 Fall DeHon 1 ESE370: Circuit-Level Modeling, Design, and Optimization for Digital Systems Day 24: November 5, 2012 Synchronous Circuits.
Caltech CS184 Winter DeHon CS184a: Computer Architecture (Structure and Organization) Day 3: January 13, 2003 Arithmetic and Pipelining.
Penn ESE370 Fall DeHon 1 ESE370: Circuit-Level Modeling, Design, and Optimization for Digital Systems Day 20: October 25, 2010 Pass Transistors.
Penn ESE535 Spring DeHon 1 ESE535: Electronic Design Automation Day 15: March 13, 2013 High Level Synthesis II Dataflow Graph Sharing.
Penn ESE534 Spring DeHon 1 ESE534: Computer Organization Day 22: April 16, 2014 Time Multiplexing.
1 COMP541 Sequential Logic – 2: Finite State Machines Montek Singh Feb 29, 2016.
Penn ESE535 Spring DeHon 1 ESE535: Electronic Design Automation Day 25: April 17, 2013 Covering and Retiming.
George Mason University Finite State Machines Refresher ECE 545 Lecture 11.
ESE532: System-on-a-Chip Architecture
Introduction Introduction to VHDL Entities Signals Data & Scalar Types
ESE534: Computer Organization
COMP541 Sequential Logic – 2: Finite State Machines
ECE 448 Lecture 6 Finite State Machines State Diagrams vs. Algorithmic State Machine (ASM) Charts.
ESE535: Electronic Design Automation
Day 26: November 1, 2013 Synchronous Circuits
CSE 370 – Winter Sequential Logic - 1
Lecture 15 Logistics Last lecture Today HW4 is due today
ESE534: Computer Organization
Guest Lecture by David Johnston
ESE534: Computer Organization
ESE535: Electronic Design Automation
ESE535: Electronic Design Automation
ECE 448 Lecture 6 Finite State Machines State Diagrams vs. Algorithmic State Machine (ASM) Charts.
ESE 150 – Digital Audio Basics
ESE532: System-on-a-Chip Architecture
Presentation transcript:

Penn ESE534 Spring DeHon 1 ESE534: Computer Organization Day 4: January 25, 2012 Sequential Logic (FSMs, Pipelining, FSMD)

Penn ESE534 Spring DeHon 2 Previously Boolean Logic Gates Arithmetic Complexity of computations –E.g. area and delay for addition

Penn ESE534 Spring DeHon 3 Today Sequential Logic –Add registers, state –Finite-State Machines (FSM) –Register Transfer Level (RTL) logic –Datapath Reuse –Pipelining –Latency and Throughput –Finite-State Machines with Datapaths (FSMD)

Preclass Can we solve the problem entirely using Boolean logic functions? Penn ESE534 Spring DeHon 4

5 Latches, Registers New element is a state element. Canonical instance is a register: –remembers the last value it was given until told to change –typically signaled by clock DQ >

Why Registers? Why do we need registers? Penn ESE534 Spring DeHon 6

7 Reuse In general, we want to reuse our components in time –not disposable logic How do we guarantee disciplined reuse?

To Reuse Logic… Make sure all logic completed evaluation –Outputs of gates are valid Meaningful to look at them –Gates are “finished” with work and ready to be used again Make sure consumers get value –Before being overwritten by new calculation (new inputs) Penn ESE534 Spring DeHon 8

Synchronous Logic Model Data starts –Inputs to circuit –Registers Perform combinational (boolean) logic Outputs of logic –Exit circuit –Clocked into registers Given long enough clock –Think about registers getting values updated by logic on each clock cycle Penn ESE534 Spring DeHon 9

10 Issues of Timing... …many issues in detailed implementation –glitches and hazards in logic –timing discipline in clocking –…–… We’re going to (mostly) work above that level this term. –Will talk about the delay of logic between registers Watch for these details in ESE370/570

Preclass How do we build an adder for arbitrary input width? Penn ESE534 Spring DeHon 11

Preclass What did the addition of state register(s) do for us? Penn ESE534 Spring DeHon 12

Penn ESE534 Spring DeHon 13 Added Power Process unbounded input with finite logic –Ratio input:gates  arbitrarily large State is a finite (bounded) representation of what’s happened before –finite amount of stuff can remember to synopsize the past State allows behavior to depend on past (on context)

Penn ESE534 Spring DeHon 14 Finite-State Machine (FSM) (Finite Automata) Logic core Plus registers to hold state

Penn ESE534 Spring DeHon 15 FSM Model FSM – a model of computations More powerful than Boolean logic functions Both –Theoretically –practically

FSM Abstraction Implementation vs. Abstraction –Nice to separate out The abstract function want to achieve The concrete implementation –Saw with Boolean logic There are many ways to implement function Want to select the concrete one that minimizes costs FSMs  also separate out “desired function” from “implementation” Penn ESE534 Spring DeHon 16

Penn ESE534 Spring DeHon 17 Finite State Machine Informally: –Behavior depends not just on input (as was the case for combinational logic) –…also depends on state –Can be completely different behavior in each state –Logic/output now depends on both state and input

Penn ESE534 Spring DeHon 18 Specifying an FSM Logic becomes: –if (state=s1) boolean logic for state 1 –(including logic for calculate next state) –else if (state=s2) boolean logic for state2 –… –if (state=sn) boolean logic for state n

Specifying FSM What’s your favorite way to specify an FSM? Another reason we need to separate the abstract operation from the –Specification –Implementation Penn ESE534 Spring DeHon 19

Penn ESE534 Spring DeHon 20 Could be: –behavioral language {Verilog, VHDL, Bluespec} –computer language (C) –state-transition graph –extract from gates + registers FSM Specification St1: goto St2 St2: –if (I==0) goto St3 –else goto St4 St3: –output o0=1 –goto St1 St4: –output o1=1 –goto St2

Penn ESE534 Spring DeHon 21 State Encoding States not (necessarily) externally visible We have freedom in how to encode them –assign bits to states Usually want to exploit freedom to minimize implementation costs –area, delay, energy (there are algorithms to attack – ESE535)

Penn ESE534 Spring DeHon 22 FSM Equivalence Harder than Boolean logic Doesn’t have unique canonical form Consider: –state encoding not change behavior –two “equivalent” FSMs may not even have the same number of states –can deal with infinite (unbounded) input –...so cannot enumerate output in all cases No direct correspondence of a truth table

FSM Equivalence What does matter? –What property needs to hold for two FSMs to be equivalent? Penn ESE534 Spring DeHon 23

Penn ESE534 Spring DeHon 24 FSM Equivalence What matters is external observability –FSM outputs same signals in response to every possible input sequence Is it possible to check equivalence over an infinite number of input sequences? Possible? –Finite state suggests there is a finite amount of checking required to verify behavior

Penn ESE534 Spring DeHon 25 FSM Equivalence Flavor Given two FSMs A and B –consider the composite FSM AB –Inputs wired together –Outputs separate Ask: –is it possible to get into a composite state in which A and B output different symbols? There is a literature on this

Penn ESE534 Spring DeHon 26 Systematic FSM Design Start with specification Can compute Boolean logic for each state –If conversion… –including next state translation –Keep state symbolic (s1, s2…) Assign state encodings Then have combinational logic –has current state as part of inputs –produces next state as part of outputs Design comb. logic and add state registers

RTL Register Transfer Level description Registers + Boolean logic Most likely: what you’ve written in Verilog, VHDL Penn ESE534 Spring DeHon 27

Penn ESE534 Spring DeHon 28 Datapath Reuse

Penn ESE534 Spring DeHon 29 Reuse: “Waiting” Discipline Use registers and timing for orderly progression of data

Penn ESE534 Spring DeHon 30 Example: 4b Ripple Adder How fast can we clock this? Min Clock Cycle: 8 gates A, B to S3

Penn ESE534 Spring DeHon 31 Can we do better? Can we clock faster, reuse elements sooner?

Penn ESE534 Spring DeHon 32 Stagger Inputs Correct if expecting A,B[3:2] to be staggered one cycle behind A,B[1:0] …and succeeding stage expects S[3:2] staggered from S[1:0]

Penn ESE534 Spring DeHon 33 Align Data / Balance Paths Good discipline to line up pipe stages in diagrams.

Penn ESE534 Spring DeHon 34 Speed How fast can we clock this? Assuming we clock that fast, what is the delay from A,B to S3? S3 A0

Pipelining and Timing Once introduce pipelining –Clock cycle = rate of reuse –Is not the same as the delay to complete a computation Penn ESE534 Spring DeHon 35

Pipelining and Timing Throughput –How many results can the circuit produce per unit time –If can produce one result per cycle, Reciprocal of clock period Throughput of this design? Penn ESE534 Spring DeHon 36

Pipelining and Timing Latency –How long does it take to produce one result –Product of clock cycle number of clocks between input and output Latency of this design? Penn ESE534 Spring DeHon 37

Penn ESE534 Spring DeHon 38 Example: 4b RA pipe 2 Latency and Throughput: Latency: 8 gates to S3 Throughput: 1 result / 4 gate delays max

Throughput vs. Latency Examples where throughput matters? Examples where latency matters? Penn ESE534 Spring DeHon 39

Penn ESE534 Spring DeHon 40 Deeper? Can we do it again? What’s our limit? Why would we stop?

Penn ESE534 Spring DeHon 41 More Reuse Saw could pipeline and reuse FA more frequently Suggests we’re wasting the FA part of the time in non-pipelined –What is FA3 doing while FA0 is computing?

Penn ESE534 Spring DeHon 42 More Reuse (cont.) If we’re willing to take 8 gate-delay units, do we need 4 FAs?

Penn ESE534 Spring DeHon 43 Ripple Add (pipe view) Can pipeline to FA. If don’t need throughput, reuse FA on SAME addition. What if don’t need the throughput?

Penn ESE534 Spring DeHon 44 Bit Serial Addition Assumes LSB first ordering of input data.

Penn ESE534 Spring DeHon 45 Bit Serial Addition: Pipelining Latency and throughput? Latency: 8 gate delays –10 for 5 th output bit Throughput: 1 result / 10 gate delays Registers do have time overhead –setup, hold time, clock jitter

Penn ESE534 Spring DeHon 46 Multiplication Can be defined in terms of addition Ask you to play with implementations and tradeoffs in homework 2

Design Space for Computation Penn ESE534 Spring DeHon 47

Penn ESE534 Spring DeHon 48 Compute Function Compute: y=Ax 2 +Bx +C Assume –D(Mpy) > D(Add) E.g. D(Mpy)=24, D(Add)=8 –A(Mpy) > A(Add) E.g. A(Mpy)=64, A(Add)=8

Penn ESE534 Spring DeHon 49 Spatial Quadratic D(Quad) = 2*D(Mpy)+D(Add) = 56 Throughput 1/(2*D(Mpy)+D(Add)) = 1/56 A(Quad) = 3*A(Mpy) + 2*A(Add) = 208 Latency? Throughput? Area?

Penn ESE534 Spring DeHon 50 Pipelined Spatial Quadratic D(Quad) = 3*D(Mpy) = 72 Throughput 1/D(Mpy) = 1/24 A(Quad) = 3*A(Mpy) + 2*A(Add)+6A(Reg) = 232 A(Reg)=4 Latency? Throughput? Area?

Penn ESE534 Spring DeHon 51 Quadratic with Single Multiplier and Adder? We’ve seen reuse to perform the same operation –pipelining –bit-serial, homogeneous datapath We can also reuse a resource in time to perform a different role.

Repeated Operations What operations occur multiple times in this datapath? – x*x, A*(x*x), B*x –(Bx)+c, (A*x*x)+(Bx+c) Penn ESE534 Spring DeHon 52

Penn ESE534 Spring DeHon 53 Quadratic Datapath Start with one of each operation (alternatives where build multiply from adds…e.g. homework)

Penn ESE534 Spring DeHon 54 Quadratic Datapath Multiplier serves multiple roles –x*x –A*(x*x) –B*x Will need to be able to steer data (switch interconnections)

Penn ESE534 Spring DeHon 55 Quadratic Datapath Multiplier serves multiple roles –x*x –A*(x*x) –B*x Inputs a)x, x*x b)x,A,B

Penn ESE534 Spring DeHon 56 Quadratic Datapath Multiplier serves multiple roles –x*x –A*(x*x) –B*x Inputs a)x, x*x b)x,A,B

Penn ESE534 Spring DeHon 57 Quadratic Datapath Adder serves multiple roles –(Bx)+c –(A*x*x)+(Bx+c) Inputs –one always mpy output –C, Bx+C

Penn ESE534 Spring DeHon 58 Quadratic Datapath

Penn ESE534 Spring DeHon 59 Quadratic Datapath Add input register for x

Penn ESE534 Spring DeHon 60 Quadratic Control Now, we just need to control the datapath What control? Control: –LD x –LD x*x –MA Select –MB Select –AB Select –LD Bx+C –LD Y

Penn ESE534 Spring DeHon 61 FSMD FSMD = FSM + Datapath Stylization for building controlled datapaths such as this (a pattern) Of course, an FSMD is just an FSM – it’s often easier to think about as a datapath –synthesis, place and route tools have been notoriously bad about discovering/exploiting datapath structure

Penn ESE534 Spring DeHon 62 Quadratic FSMD

Penn ESE534 Spring DeHon 63 Quadratic FSMD Control S0: if (go) LD_X; goto S1 –else goto S0 S1: MA_SEL=x,MB_SEL[1:0]=x, LD_x*x –goto S2 S2: MA_SEL=x,MB_SEL[1:0]=B –goto S3 S3: AB_SEL=C,MA_SEL=x*x, MB_SEL=A –goto S4 S4: AB_SEL=Bx+C, LD_Y –goto S0

Penn ESE534 Spring DeHon 64 Quadratic FSMD Control S0: if (go) LD_X; goto S1 –else goto S0 S1: MA_SEL=x,MB_SEL[1:0]=x, LD_x*x –goto S2 S2: MA_SEL=x,MB_SEL[1:0]=B –goto S3 S3: AB_SEL=C,MA_SEL=x*x, MB_SEL=A –goto S4 S4: AB_SEL=Bx+C, LD_Y –goto S0

Penn ESE534 Spring DeHon 65 Quadratic FSM D(mux3)=D(mux2)=1 A(mux2)=2 A(mux3)=3 A(QFSM) ~= 10 Latency/Throughput/Area? Latency: 5*(D(MPY)+D(mux3)) = 125 Throughput: 1/Latency = 1/125 Area: A(Mpy)+A(Add)+5*A(Reg) +2*A(Mux2)+A(Mux3)+A(QFSM) = 109

Penn ESE534 Spring DeHon 66 Big Ideas [MSB Ideas] Registers allow us to reuse logic Can implement any FSM with gates and registers Pipelining –increases parallelism –allows reuse in time (same function) Control and Sequencing –reuse in time for different functions Can tradeoff Area and Time

Penn ESE534 Spring DeHon 67 Big Ideas [MSB-1 Ideas] RTL specification FSMD idiom

Penn ESE534 Spring DeHon 68 Admin: Reminder HW1 due today (10pm) HW2 due next Wednesday Reading for next week online