ESE534: Computer Organization

Slides:



Advertisements
Similar presentations
Modular Combinational Logic
Advertisements

Penn ESE534 Spring DeHon 1 ESE534: Computer Organization Day 14: March 19, 2014 Compute 2: Cascades, ALUs, PLAs.
Caltech CS184a Fall DeHon1 CS184a: Computer Architecture (Structures and Organization) Day2: September 27, 2000 Logic, Gate, FSMs.
ECE 331 – Digital System Design
EDA (CS286.5b) Day 15 Logic Synthesis: Two-Level.
Penn ESE535 Spring DeHon 1 ESE535: Electronic Design Automation Day 4: February 25, 2009 Two-Level Logic-Synthesis.
Charles Kime & Thomas Kaminski © 2008 Pearson Education, Inc. (Hyperlinks are active in View Show mode) Chapter 3 – Combinational Logic Design Part 1 –
Penn ESE Spring DeHon 1 ESE (ESE534): Computer Organization Day 2: January 10, 2007 Logic and FSM Review.
Charles Kime & Thomas Kaminski © 2008 Pearson Education, Inc. (Hyperlinks are active in View Show mode) Chapter 3 – Combinational Logic Design Part 1 –
Department of Computer Engineering
Penn ESE535 Spring DeHon 1 ESE535: Electronic Design Automation Day 2: January 26, 2015 Covering Work preclass exercise.
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 2: January 20, 2010 Universality, Gates, Logic Work Preclass Exercise.
Technology Mapping. 2 Technology mapping is the phase of logic synthesis when gates are selected from a technology library to implement the circuit. Technology.
CALTECH CS137 Winter DeHon CS137: Electronic Design Automation Day 15: March 4, 2002 Two-Level Logic-Synthesis.
Penn ESE534 Spring DeHon 1 ESE534: Computer Organization Day 2: January 18, 2012 Universality, Gates, Logic Work Preclass Exercise.
Penn ESE370 Fall DeHon 1 ESE370: Circuit-Level Modeling, Design, and Optimization for Digital Systems Day 8: September 21, 2012 Delay and RC Response.
CHAPTER 3 Simplification of Boolean Functions
COMP541 Combinational Logic - 3
COSC3330 Computer Architecture Lecture 2. Combinational Logic
Prof. Sin-Min Lee Department of Computer Science
ESE532: System-on-a-Chip Architecture
Lecture 12 Logistics Last lecture Today HW4 due today Timing diagrams
ESE534: Computer Organization
Day 22: October 31, 2012 Pass Transistor Logic
ESE534 Computer Organization
CS137: Electronic Design Automation
COMP541 Combinational Logic - 3
Overview Part 1 – Gate Circuits and Boolean Equations
Digital Systems Section 8 Multiplexers. Digital Systems Section 8 Multiplexers.
COMP211 Computer Logic Design Lecture 3. Combinational Logic 2
EEL 3705 / 3705L Digital Logic Design
Day 6: September 11, 2013 Restoration
ESE535: Electronic Design Automation
Basics Combinational Circuits Sequential Circuits
Basics Combinational Circuits Sequential Circuits Ahmad Jawdat
Day 26: November 11, 2011 Memory Overview
ESE535: Electronic Design Automation
Instructor: Alexander Stoytchev
ESE535: Electronic Design Automation
Optimized Implementation of Logic Function
ESE534: Computer Organization
BASIC & COMBINATIONAL LOGIC CIRCUIT
Overview Last Lecture Conversion of two-level logic to NAND or NOR forms Multilevel logic AOI and OAI gates Today Timing and hazards Multiplexers and demultiplexers.
CSE 370 – Winter 2002 – Comb. Logic building blocks - 1
ESE535: Electronic Design Automation
Lecture 13 Logistics Last lecture Today HW4 up, due on Wednesday PLDs
Combinatorial Logic Circuit
Optimization Algorithm
Programmable Configurations
ESE535: Electronic Design Automation
Sungho Kang Yonsei University
ECE 667 Synthesis and Verification of Digital Systems
ESE535: Electronic Design Automation
TA David “The Punner” Eitan Poll
ESE535: Electronic Design Automation
ESE534: Computer Organization
ECE 352 Digital System Fundamentals
Technology Mapping I based on tree covering
VLSI CAD Flow: Logic Synthesis, Placement and Routing Lecture 5
ECE 352 Digital System Fundamentals
ESE535: Electronic Design Automation
COMP541 Combinational Logic - 3
CPSC 121: Models of Computation
ECE 352 Digital System Fundamentals
CPSC 121: Models of Computation
Laws & Rules of Boolean Algebra
ESE 150 – Digital Audio Basics
ECE 352 Digital System Fundamentals
Presentation transcript:

ESE534: Computer Organization Day 2: September 7, 2016 Universality, Gates, Logic Work Preclass Exercise Penn ESE534 Spring2016 -- DeHon

Last Time Computational Design as an Engineering Discipline Importance of Costs Penn ESE534 Spring2016 -- DeHon

Today Simple abstract computing building blocks Universality gates, Boolean Equations RTL Logic (at least the logic part) Universality Logic in Gates optimization properties Costs Penn ESE534 Spring2016 -- DeHon

Preclass 1 Do the Case 1 circuits calculate the same thing? Case 2? Penn ESE534 Spring2016 -- DeHon

General How do we define equivalence? How do we determine if two circuits are equivalent? Penn ESE534 Spring2016 -- DeHon

Model: Stateless Functions (Combinational Logic) Compute some “function” f(i0,i1,…in)  o0,o1,…om Each unique input vector implies a particular, deterministic, output vector Penn ESE534 Spring2016 -- DeHon

Boolean Equivalence Two functions are equivalent when They have the same outputs for every input vector i.e., they have the same truth table There is a canonical specification for a Boolean function its Truth Table Penn ESE534 Spring2016 -- DeHon

Boolean Logic  Gates Implement Boolean functions with gates E.g. Problem 1 on preclass How does a gate relate to Boolean functions? Hints: Is any Boolean function a reasonable gate? What additional limitation(s) might we want to impose on gates? Penn ESE534 Spring2016 -- DeHon

Implementation in Gates Gate: small Boolean function Goal: assemble gates to cover our desired Boolean function Combine small Boolean functions to implement arbitrarily large Boolean function Collection of gates should implement same function I.e. collection of gates and Boolean function should have same Truth Table Penn ESE534 Spring2016 -- DeHon

Netlist Netlist: collection of interconnected gates A list of all the gates and what they are connected to Net: set of terminals electrically connected together A D B C E i0 i1 i2 i3 Penn ESE534 Spring2016 -- DeHon

Netlist Netlist: A list of all the gates and what they are connected to A D B C E i0 i1 i3 i2 Netlist: A=nand i0 i1 C=nand i2 i3 B=nand A C D=nand A C E=nand B D Penn ESE534 Spring2016 -- DeHon

Boolean Equations o=/a*/b*c+/a*b*/c+a*b*/c+a*/b*c Another way to express Boolean functions a b c o 0 0 0 0 0 0 1 1 0 1 0 1 0 1 1 0 1 0 0 0 1 0 1 1 1 1 0 1 1 1 1 0 Penn ESE534 Spring2016 -- DeHon

Terminology Literals -- a, /a, b, /b, …. Minterms -- Qualified, single inputs Minterms -- full set of literals covering one input case in y=a*b+a*c a*b*c a*/b*c Penn ESE534 Spring2016 -- DeHon

Boolean Equations o=/a*/b*c+/a*b*/c+a*b*/c+a*/b*c Truth table has one row for each minterm a b c o 0 0 0 0 0 0 1 1 0 1 0 1 0 1 1 0 1 0 0 0 1 0 1 1 1 1 0 1 1 1 1 0 Penn ESE534 Spring2016 -- DeHon

Boolean Equations o=/a*/b*c+/a*b*/c+a*b*/c+a*/b*c This particular equation has an expression for every minterm whose output is a 1 a b c o 0 0 0 0 0 0 1 1 0 1 0 1 0 1 1 0 1 0 0 0 1 0 1 1 1 1 0 1 1 1 1 0 Penn ESE534 Spring2016 -- DeHon

Boolean Equations Can be more compact: O=a*b*c*d*e+/a*/b*/c*/d*/e How many rows would truth table require? Often use in Register Transfer Language (RTL) expressions Write logic (boolean equations) occur between registers Penn ESE534 Spring2016 -- DeHon

If’s How does this turn If (a*b + /a*/b) into Boolean logic? else c=d else c=e t=a*b+/a*/b c=t*d + /t*e Penn ESE534 Spring2016 -- DeHon

IfMux Conversion Often convenient to think of IF’s as Multiplexers If (a*b + /a*/b) c=d else c=e Penn ESE534 Spring2016 -- DeHon

Muxes Mux: Selects one of two (several) inputs based on control bit Penn ESE534 Spring2016 -- DeHon

Mux Logic Of course, Mux is just logic: Two views logically equivalent mux out = /s*a + s*b Another small Boolean function Two views logically equivalent mux view more natural/abstract when inputs are multibit values (datapaths) Penn ESE534 Spring2016 -- DeHon

Sum of Products o=/a*/b*c+/a*b*/c+a*b*/c+a*/b*c o=(a+b)(/b+/c) a*/b+a*/c+b*/c o=(a+/b)(b+c)+/b*/c a*b+a*c+/b*c +/b*/c Penn ESE534 Spring2016 -- DeHon

Implementation How can I implement any Boolean function with gates? Penn ESE534 Spring2016 -- DeHon

Implementation Start with truth table Single output {0, 1} Use inverters to produce complements of inputs For each input case (minterm) If output is a 1 Develop an AND to detect that case Decompose AND into gates OR together all such minterms Decompose OR into gates Multiple outputs Repeat for each output Penn ESE534 Spring2016 -- DeHon

Universal set of primitives What primitives did we need to support previous implementation set? Conclude: can implement any Boolean function by a netlist of gates selected from a small set. Homework (pr3): How small can set be? Penn ESE534 Spring2016 -- DeHon

Engineering Goal Minimize resources Exploit structure of logic area, gates Exploit structure of logic “An Engineer can do for a dime what everyone else can do for a dollar.” Penn ESE534 Spring2016 -- DeHon

Minimum Sum of Products o=/a*/b*c+/a*b*/c+a*b*/c+a*/b*c /b*c + b*/c Penn ESE534 Spring2016 -- DeHon

Minimum Sum of Products o=(a+b)(/b+/c) 0 0 1 1 1 1 0 0 0 1 00 01 11 10 ab c a*/b+a*/c+b*/c a*/b+a*/c+b*/c a*/b + b*/c Term a*/c is redundant Note: Preclass 1 Penn ESE534 Spring2016 -- DeHon

Least Cost is not always Minimum Sum of Products o=(a+b)(c+d) 3 2-input gates a*b+a*c+b*c +b*d (a*b+a*c)+(b*c+b*d) 7 2-input gates Product of Sums smaller… Penn ESE534 Spring2016 -- DeHon

Logic Optimization There are many logical equivalent specifications for a function. Freedom to choose Exploit to select one that costs the least Potentially different from the one specified by the designer Value of canonical form, equivalence Penn ESE534 Spring2016 -- DeHon

Cheapest? Which of the equivalent solutions is cheapest depends on the cost model. Penn ESE534 Spring2016 -- DeHon

Minimize Area (preclass 4) Area minimizing solutions depends on the technology cost structure Penn ESE534 Spring2016 -- DeHon

Minimize Area (preclass 4cd) I1: ((a*b) + (c*d))*e*f I2: ((a*b*e*f)+(c*d*e*f)) Area: I1: 2*A(and2)+1*A(or2)+1*A(and3) I2: 2*A(and4)+1*A(or2) all gates take unit area: A(l2)=3 < A(l1)=4 gate size proportional to number of inputs: A(I1)=2*2+2+3=9 < A(I2)=2*4+2=10 Penn ESE534 Spring2016 -- DeHon

Best Solution Depends on Costs This is a simple instance of the general point: …When technology costs change  the optimal solution changes. In this case, we can develop an algorithm that takes the costs as a parameter. Penn ESE534 Spring2016 -- DeHon

Logic Optimization Logic Optimization Two Level Minimization Covering w/ reconvergent fanout Can be formulated precisely and solved optimally We can write programs to do this for us! Is formally a hard problem. Penn ESE534 Spring2016 -- DeHon

Logic Optimization is NP-hard Technically: NP-hard in general Informally: unlikely we will be able to guarantee to solve the problem in time less than exponential in the number of inputs Practically: 100s of inputs in seconds Most problems not exponential Cover how to attack in an ESE535 can point you at rich literature can find software to do it for you Penn ESE534 Spring2016 -- DeHon

Delay in Gates Simple model: each gate contributes a fixed delay for passing through it can be different delay for each gate type e.g. inv = 10ps nand2=15ps nand3=20ps and2=25ps Penn ESE534 Spring2016 -- DeHon

Path Delay Simple Model: Delay along path is the sum of the delays of the gates in the path Path Delay = Delay(Nor2)+Delay(Or2) Penn ESE534 Spring2016 -- DeHon

Critical Path Path lengths in circuit may differ Worst-case performance of circuit determined by the longest path Longest path designated Critical Path Penn ESE534 Spring2016 -- DeHon

Multiple Paths Path Delay = Delay(Or2i1)+Delay(And2)+Delay(Or2) Path Delay = Delay(Nor2)+Delay(Or2) Penn ESE534 Spring2016 -- DeHon

Critical Path = Longest Path Delay = 3 Path Delay = 2 Penn ESE534 Spring2016 -- DeHon

Critical Path There is always a set of critical paths set such that the path length of the members is at least as long as any other path length May be many such paths Penn ESE534 Spring2016 -- DeHon

Delay also depend on Costs Delay (symbolic .. D(or2)…): I1: D(and2)+D(or2)+D(and3) I2: D(and4)+D(or2) Penn ESE534 Spring2016 -- DeHon

Delay also depend on Costs (4f) I1: D(and2)+D(or2)+D(and3) I2: D(and4)+D(or2) Delay for D(and2)=22ps, D(and3)=27ps, D(and4)=33ps D(I2)=63ps D(I1)=79ps Penn ESE534 Spring2016 -- DeHon

Gate Delay Why delay increase with number inputs? Penn ESE534 Spring2016 -- DeHon

Delay also depend on Costs (4g) I1: D(and2)+D(or2)+D(and3) I2: D(and4)+D(or2) D(and2)=22ps, D(and3)=27ps, D(and4)=33ps D(I2)=63ps < D(I1)=79ps Delay for D(and2)=22ps, D(and3)=27ps, D(and4)=55ps D(I2)=79 D(I1)=85 Penn ESE534 Spring2016 -- DeHon

Delay and Area Optimum Differ I1: ((a*b) + (c*d))*e*f I2: ((a*b*e*f)+(c*d*e*f)) D(and2)=22ps, D(and3)=27ps, D(and4)=33ps D(I2)<D(I1) gate size proportional to number of inputs: A(I1)<A(I2) Induced Tradeoff -- cannot always simultaneously minimize area and delay cost Penn ESE534 Spring2016 -- DeHon

Does delay in Gates make Sense? Consider a balanced tree of logic gates of depth (tree height) n. Does this have delay n? (unit delay gates) How big is it? (unit gate area) 1 2 3 4 Depth n Penn ESE534 Spring2016 -- DeHon

Does delay in Gates make Sense? Consider a balanced tree of logic gates of depth (tree height) n. Does this have delay n? (unit delay gates) How big is it? (unit gate area) 2n How long a side? Penn ESE534 Spring2016 -- DeHon

How long is a side? Penn ESE534 Spring2016 -- DeHon

Delay in Gates make Sense? (continuing example) How big is it? (unit gate area) 2n How long a side? Sqrt(2n)= 2(n/2) Minimum wire length from input to output? Penn ESE534 Spring2016 -- DeHon

Minimum wire length? Penn ESE534 Spring2016 -- DeHon

Delay in Gates make Sense? (continuing example) How big is it? (unit gate area) 2n How long a side? Sqrt(2n)= 2(n/2) Minimum wire length from input to output? Ballpark ~ 2(n/2) Delay relate to wire length? (hint 1: think speed of light limit) (hint 2: think covering length by chaining inverters that drive 5mm of wire each) Delaywire length (if buffer properly) Penn ESE534 Spring2016 -- DeHon

Delay in Gates make Sense? Minimum wire length from input to output? Ballpark ~ 2(n/2) Delay relate to wire length? Delaywire length (if buffer properly) Say: Delay=WireLength*c TotalDelay=n*Dgate + WireLength*c TotalDelay=n*Dgate+2(n/2)*c Penn ESE534 Spring2016 -- DeHon

It’s not all about costs... …or maybe it is, just not always about a single, linear cost. Must manage complexity Cost of developing/verifying design Size of design can accomplish in fixed time (limited human brainpower) Today: human brainpower is most often the bottleneck resource limiting what we can build. Penn ESE534 Spring2016 -- DeHon

Big Ideas [MSB Ideas] Can implement any Boolean function in gates Small set of gates are universal, allowing us to implement any Boolean function Penn ESE534 Spring2016 -- DeHon

Big Ideas [MSB-1 Ideas] Canonical representation for combinational logic Transformation don’t have to implement the input literally only have to achieve same semantics trivial example: logic minimization Minimum depends on cost model Often tradeoff between costs (area-delay) Penn ESE534 Spring2016 -- DeHon

Admin: Reminder Slides on web (morning before class) Post-class may updated if feedback/class indicates something unclear Answer Term Q from feedback on Piazza Reading: Monday’s on Canvas Assignment 1 Due Wednesday Should be able to work now Start by weekend Office hours on Tuesday Feedback sheets Penn ESE534 Spring2016 -- DeHon