Penn ESE680-002 Spring2007 -- DeHon 1 ESE680-002 (ESE534): Computer Organization Day 5: January 24, 2007 ALUs, Virtualization…

Slides:



Advertisements
Similar presentations
Penn ESE534 Spring DeHon 1 ESE534: Computer Organization Day 14: March 19, 2014 Compute 2: Cascades, ALUs, PLAs.
Advertisements

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.
1 Foundations of Software Design Lecture 3: How Computers Work Marti Hearst Fall 2002.
Caltech CS184a Fall DeHon1 CS184a: Computer Architecture (Structures and Organization) Day10: October 25, 2000 Computing Elements 2: Cascades, ALUs,
Fall 2007 L15: Combinational Circuits Lecture 15: Combinational Circuits Complete logic functions Some combinational logic functions –Half adders –Adders.
Caltech CS184a Fall DeHon1 CS184a: Computer Architecture (Structures and Organization) Day8: October 18, 2000 Computing Elements 1: LUTs.
Penn ESE Spring DeHon 1 ESE (ESE534): Computer Organization Day 9: February 7, 2007 Instruction Space Modeling.
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.
Penn ESE Spring DeHon 1 ESE (ESE534): Computer Organization Day 13: February 26, 2007 Interconnect 1: Requirements.
Caltech CS184a Fall DeHon1 CS184a: Computer Architecture (Structures and Organization) Day4: October 4, 2000 Memories, ALUs, and Virtualization.
1 EECS Components and Design Techniques for Digital Systems Lec 21 – RTL Design Optimization 11/16/2004 David Culler Electrical Engineering and Computer.
Penn ESE Spring DeHon 1 ESE (ESE534): Computer Organization Day 11: February 14, 2007 Compute 1: LUTs.
Penn ESE Spring DeHon 1 ESE (ESE534): Computer Organization Day 4: January 22, 2007 Memories.
Recap – Our First Computer WR System Bus 8 ALU Carry output A B S C OUT F 8 8 To registers’ input/output and clock inputs Sequence of control signal combinations.
Penn ESE Spring DeHon 1 ESE (ESE534): Computer Organization Day 23: April 9, 2007 Control.
Penn ESE Spring DeHon 1 FUTURE Timing seemed good However, only student to give feedback marked confusing (2 of 5 on clarity) and too fast.
Penn ESE Spring DeHon 1 ESE (ESE534): Computer Organization Day 12: February 21, 2007 Compute 2: Cascades, ALUs, PLAs.
Chapter 3 Digital Logic Structures. Copyright © The McGraw-Hill Companies, Inc. Permission required for reproduction or display. 3-2 Building Functions.
Chapter 1 Introduction. Computer Architecture selecting and interconnecting hardware components to create computers that meet functional, performance.
Digital Computer Concept and Practice Copyright ©2012 by Jaejin Lee Logic Circuits I.
CSCI-365 Computer Organization Lecture Note: Some slides and/or pictures in the following are adapted from: Computer Organization and Design, Patterson.
Caltech CS184b Winter DeHon 1 CS184b: Computer Architecture [Single Threaded Architecture: abstractions, quantification, and optimizations] Day3:
Penn ESE534 Spring DeHon 1 ESE534: Computer Organization Day 9: February 24, 2014 Operator Sharing, Virtualization, Programmable Architectures.
CS61C L26 Combinational Logic Blocks (1) Garcia, Spring 2014 © UCB Very fast 3D Micro Printer  A new company called Nanoscribe has developed a fabrication.
Penn ESE534 Spring DeHon 1 ESE534: Computer Organization Day 7: February 6, 2012 Memories.
1 Arithmetic Logic Unit ALU. 2 The Bus Concept 3 CPU Building Blocks  Registers (IR, PC, ACC)  Control Unit (CU)  Arithmetic Logic Unit (ALU)
Caltech CS184 Winter DeHon 1 CS184a: Computer Architecture (Structure and Organization) Day 7: January 24, 2003 Instruction Space.
CDA 3101 Fall 2013 Introduction to Computer Organization The Arithmetic Logic Unit (ALU) and MIPS ALU Support 20 September 2013.
Anurag Dwivedi. Basic Block - Gates Gates -> Flip Flops.
Penn ESE534 Spring DeHon 1 ESE534: Computer Organization Day 5: February 1, 2010 Memories.
ALU (Continued) Computer Architecture (Fall 2006).
Penn ESE535 Spring DeHon 1 ESE535: Electronic Design Automation Day 3: January 16, 2013 Scheduled Operator Sharing.
Caltech CS184 Winter DeHon 1 CS184a: Computer Architecture (Structure and Organization) Day 5: January 17, 2003 What is required for Computation?
LECTURE 4 Logic Design. LOGIC DESIGN We already know that the language of the machine is binary – that is, sequences of 1’s and 0’s. But why is this?
Penn ESE534 Spring DeHon 1 ESE534 Computer Organization Day 9: February 13, 2012 Interconnect Introduction.
Caltech CS184 Winter DeHon CS184a: Computer Architecture (Structure and Organization) Day 4: January 15, 2003 Memories, ALUs, Virtualization.
Control units In the last lecture, we introduced the basic structure of a control unit, and translated our assembly instructions into a binary representation.
Caltech CS184 Winter DeHon 1 CS184a: Computer Architecture (Structure and Organization) Day 11: January 31, 2005 Compute 1: LUTs.
CBSSS 2002: DeHon Universal Programming Organization André DeHon Tuesday, June 18, 2002.
1 3 Computing System Fundamentals 3.2 Computer Architecture.
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 11: February 20, 2012 Instruction Space Modeling.
Penn ESE534 Spring DeHon 1 ESE534: Computer Organization Day 8: February 19, 2014 Memories.
Penn ESE534 Spring DeHon 1 ESE534: Computer Organization Day 22: April 16, 2014 Time Multiplexing.
Revisão de Circuitos Lógicos PARTE III. Review Use this table and techniques we learned to transform from 1 to another.
ESE532: System-on-a-Chip Architecture
COMP541 Datapaths I Montek Singh Mar 28, 2012.
ESE534 Computer Organization
Computer Organization & Design Microcode for Control Sec. 5
ESE532: System-on-a-Chip Architecture
CS184a: Computer Architecture (Structure and Organization)
Processor (I).
CS/COE0447 Computer Organization & Assembly Language
Instructor: Alexander Stoytchev
Instructors: Randy H. Katz David A. Patterson
Computer Organization and Design Arithmetic & Logic Circuits
ESE534: Computer Organization
ESE534: Computer Organization
Branch instructions We’ll implement branch instructions for the eight different conditions shown here. Bits 11-9 of the opcode field will indicate the.
ESE 150 – Digital Audio Basics
Control units In the last lecture, we introduced the basic structure of a control unit, and translated our assembly instructions into a binary representation.
ESE534: Computer Organization
ECE 352 Digital System Fundamentals
ESE534: Computer Organization
ESE535: Electronic Design Automation
ESE 150 – Digital Audio Basics
ESE532: System-on-a-Chip Architecture
Presentation transcript:

Penn ESE Spring DeHon 1 ESE (ESE534): Computer Organization Day 5: January 24, 2007 ALUs, Virtualization…

Penn ESE Spring DeHon 2 Last Time Memory Memories pack state compactly –densely

Penn ESE Spring DeHon 3 What is Importance of Memory? Radical Hypothesis: –Memory is simply a very efficient organization which allows us to store data compactly (at least, in the technologies we’ve seen to date) –A great engineering trick to optimize resources Alternative: –memory is a primary Day 4

Penn ESE Spring DeHon 4 Today ALUs Virtualization Datapath Operation Memory –…continue unpacking the role of memory…

Penn ESE Spring DeHon 5 Last Wednesday Given a task: y=Ax 2 +Bx +C Saw how to share primitive operators Got down to one of each

Penn ESE Spring DeHon 6 Very naively Might seem we need one of each different type of operator

Penn ESE Spring DeHon 7..But Doesn’t fool us We already know that nand gate (and many other things) are universal So, we know, we can build a universal compute operator

Penn ESE Spring DeHon 8 This Example y=Ax 2 +Bx +C Know a single adder will do

Penn ESE Spring DeHon 9 Is an Adder Universal? Assuming interconnect: –(big assumption as we’ll see later) –Consider: What’s c? A: 001a B: 000b S: 00cd

Penn ESE Spring DeHon 10 Practically To reduce (some) interconnect and to reduce number of operations do tend to build a bit more general “universal” computing function

Penn ESE Spring DeHon 11 Arithmetic Logic Unit (ALU) Observe: –with small tweaks can get many functions with basic adder components

Penn ESE Spring DeHon 12 Arithmetic and Logic Unit

Penn ESE Spring DeHon 13 ALU Functions A+B w/ Carry B-A A xor B (squash carry) A*B (squash carry) /A B<<1

Penn ESE Spring DeHon 14 Table Lookup Function Observe 2: only =256 functions of 3 inputs –3-inputs = A, B, carry in from lower Two, 3-input Lookup Tables –give all functions of 2-inputs and a cascade –8b to specify function of each lookup table LUT = LookUp Table

Penn ESE Spring DeHon 15 What does this mean? With only one active component –ALU, nand gate, LUT Can implement any function –given appropriate state registers muxes (interconnect) Control

Penn ESE Spring DeHon 16 Defining Terms Computes one function (e.g. FP- multiply, divider, DCT) Function defined at fabrication time Computes “any” computable function (e.g. Processor, DSPs, FPGAs) Function defined after fabrication Fixed Function: Programmable:

Penn ESE Spring DeHon 17 Revisit Example We do see a proliferation of memory and muxes -- what do we do about that? Can implement any function given appropriate state registers muxes (interconnect) control

Penn ESE Spring DeHon 18 Virtualization

Penn ESE Spring DeHon 19 Back to Memories State in memory more compact than “live” registers –shared input/output/drivers If we’re sequentializing, only need one (few) data item at a time anyway –i.e. sharing compute unit, might as well share interconnect Shared interconnect also gives muxing function

Penn ESE Spring DeHon 20 ALU + Memory

Penn ESE Spring DeHon 21 What’s left?

Penn ESE Spring DeHon 22 Control Still need that controller which directed which state, went where, and when Has more work now, –also say what operations for compute unit

Penn ESE Spring DeHon 23 Implementing Control Implementing a single, fixed computation –might still just build a custom FSM

Penn ESE Spring DeHon 24 …and Programmable At this point, it’s a small leap to say maybe the controller can be programmable as well Then have a building block which can implement anything –within state and control programmability bounds

Penn ESE Spring DeHon 25 Simplest Programmable Control Use a memory to “record” control instructions “Play” control with sequence

Penn ESE Spring DeHon 26 Our “First” Programmable Architecture

Penn ESE Spring DeHon 27 Instructions Identify the bits which control the function of our programmable device as: –Instructions

Penn ESE Spring DeHon 28 Programming an Operation Consider:  C = (A+2B) & Cannot do this all at once But can do it in pieces

Penn ESE Spring DeHon 29 ALU Encoding Each operation has some bit sequence ADD 0000 SUB 0010 INV 0001 SLL 1110 SLR 1100 AND 1000

Penn ESE Spring DeHon 30 Programming an Operation Decompose into pieces Compute 2B Add A and 2B AND sum with mask Op w src1 src2 dst C = (A+2B) &

Penn ESE Spring DeHon 31 Fill Instruction Memory 000: : : Op w src1 src2 dst Program operation by filling memory.

Penn ESE Spring DeHon 32 Machine State: Initial Counter: 0 Instruction Memory: 000: : : Data Memory: 000: A 001: B 010: ? 011: ? 100: : ? 110: ? 111: ?

Penn ESE Spring DeHon 33 First Operation Counter: 0 Instruction Memory: 000: : : Data Memory: 000: A 001: B 010: ? 011: ? 100: : ? 110: ? 111: ?

Penn ESE Spring DeHon 34 First Operation Complete Counter: 0 Instruction Memory: 000: : : Data Memory: 000: A 001: B 010: 2B 011: ? 100: : ? 110: ? 111: ?

Penn ESE Spring DeHon 35 Update Counter Counter: 1 Instruction Memory: 000: : : Data Memory: 000: A 001: B 010: 2B 011: ? 100: : ? 110: ? 111: ?

Penn ESE Spring DeHon 36 Second Operation Counter: 1 Instruction Memory: 000: : : Data Memory: 000: A 001: B 010: 2B 011: ? 100: : ? 110: ? 111: ?

Penn ESE Spring DeHon 37 Second Operation Complete Counter: 1 Instruction Memory: 000: : : Data Memory: 000: A 001: B 010: 2B 011: A+2B 100: : ? 110: ? 111: ?

Penn ESE Spring DeHon 38 Update Counter Counter: 2 Instruction Memory: 000: : : Data Memory: 000: A 001: B 010: 2B 011: A+2B 100: : ? 110: ? 111: ?

Penn ESE Spring DeHon 39 Third Operation Counter: 2 Instruction Memory: 000: : : Data Memory: 000: A 001: B 010: 2B 011: A+2B 100: : ? 110: ? 111: ?

Penn ESE Spring DeHon 40 Third Operation Complete Counter: 2 Instruction Memory: 000: : : Data Memory: 000: A 001: B 010: 2B 011: A+2B 100: : ? 110: ? 111: (A+2B) & …

Penn ESE Spring DeHon 41 Result Can sequence together primitive operations in time Communicating state through memory –Memory as interconnect To perform “arbitrary” operations

Penn ESE Spring DeHon 42 “Any” Computation? (Universality) Any computation which can “fit” on the programmable substrate Limitations: hold entire computation and intermediate data

Penn ESE Spring DeHon 43 What have we done? Taken a computation: y=Ax 2 +Bx +C Turned it into operators and interconnect Decomposed operators into a basic primitive: Additions, ALU,...nand

Penn ESE Spring DeHon 44 What have we done? Said we can implement it on as few as one of compute unit {ALU, LUT, nand} Added an instruction to tell single, universal unit how to act as each operator in original graph Added a unit for state

Penn ESE Spring DeHon 45 Virtualization We’ve virtualized the computation No longer need one physical compute unit for each operator in original computation Can suffice with: 1.shared operator(s) 2.a description of how each operator behaved 3.a place to store the intermediate data between operators

Penn ESE Spring DeHon 46 Virtualization

Penn ESE Spring DeHon 47 Why Interesting? Memory compactness This works and was interesting because –the area to describe a computation, its interconnect, and its state –is much smaller than the physical area to spatially implement the computation e.g. traded multiplier for –few memory slots to hold state –few memory slots to describe operation –time on a shared unit (ALU)

Penn ESE Spring DeHon 48 Questions?

Penn ESE Spring DeHon 49 Admin Comments Homework #2 due Monday Reading: Dennard on Scaling

Penn ESE Spring DeHon 50 Big Ideas [MSB Ideas] Memory: efficient way to hold state –…and allows us to describe/implement computations of unbounded size State can be << computation [area] Resource sharing: key trick to reduce area Memory key tool for Area-Time tradeoffs “configuration” signals allow us to generalize the utility of a computational operator

Penn ESE Spring DeHon 51 Big Ideas [MSB-1 Ideas] ALUs and LUTs as universal compute elements First programmable computing unit Two key functions of memory –retiming (interconnect in time) –instructions description of computation