cs294-6 reconfigurable computing day 3 september 1, 1998 requirements for computing devices
Post on 21-Dec-2015
214 views
TRANSCRIPT
CS294-6Reconfigurable Computing
Day 3
September 1, 1998
Requirements for Computing Devices
Today
• What elements are required for GP/post-fabrication computing?
• What do we expect out of a GP computing device?
• How should we characterize a GP computing device?
Requirements
• In order to build a general-purpose computing device, we absolutely must have?– _– _– _– _– _
Desirable
• We general expect a general-purpose computing device to provide:– _– _– _– _– _
Characterize
• How traditionally characterized?
• Problems require same mix of constituent components?
Primitive computeelements enough?
Compute and Interconnect
Sharing InterconnectResources
Sharing Interconnect and Compute Resources
What role are thememories playing here?
Memory block or Register File
Interconnect: moves data from input to storage cell;or from storage cell to output.
What do I need to be able to use this circuit properly? (reuse it on different data?)
Requirements
• In order to build a general-purpose computing device, we absolutely must have?– Primitive to compute a function of multiple input
bits– Interconnect: space– Interconnect: time– Instructions -- describe above– I/O -- get data in and out of device
Where are our basic computing elements in a Universal Turing Machine?
Desirable• We general expect a general-purpose computing platform
to provide:– Get Right Answers :-)– Support large computations -> need to virtualize physical
resources– Software support, programming tools -> higher level
abstractions for programming– Automatically store/restore programs– Architecture family --> compatibility across variety of
implementations– Speed -> … new hardware work faster
Desirable
• We general expect a general-purpose computing device to provide:– (how is this question different than previous?)
Expect from GP Compute?
• Virtualize to solve large problems– robust degradation?
• Computation defines computation
• Handle dynamic computing requirements efficiently
• Design subcomputations and compose
Solve Any
• Virtualize– store
• state• instruction
– sequence– select
• predictability• lead time• load bandwidth
Data Dependent Computation
• Cannot reasonably take max over all possible values– bounds finite, but unbounded– “malloc” maximum memory?
• Computations unfold during execution
• Computation dramatically different based on data
Compose
• Abstraction is good
• Design independent of final use
• Use w/out reasoning about all implementation details
• Link together subcomputations to build larger