computer architecture: dataflow (part i)ece740/f13/lib/exe/fetch.php?...readings: data flow (i) !...
TRANSCRIPT
![Page 1: Computer Architecture: Dataflow (Part I)ece740/f13/lib/exe/fetch.php?...Readings: Data Flow (I) ! Dennis and Misunas, “A Preliminary Architecture for a Basic Data Flow Processor,”](https://reader033.vdocuments.net/reader033/viewer/2022060505/5f1e11cd3dd3000cef708510/html5/thumbnails/1.jpg)
Computer Architecture: Dataflow (Part I)
Prof. Onur Mutlu Carnegie Mellon University
![Page 2: Computer Architecture: Dataflow (Part I)ece740/f13/lib/exe/fetch.php?...Readings: Data Flow (I) ! Dennis and Misunas, “A Preliminary Architecture for a Basic Data Flow Processor,”](https://reader033.vdocuments.net/reader033/viewer/2022060505/5f1e11cd3dd3000cef708510/html5/thumbnails/2.jpg)
A Note on This Lecture n These slides are from 18-742 Fall 2012, Parallel Computer
Architecture, Lecture 22: Dataflow I
n Video: n http://www.youtube.com/watch?
v=D2uue7izU2c&list=PL5PHm2jkkXmh4cDkC3s1VBB7-njlgiG5d&index=19
2
![Page 3: Computer Architecture: Dataflow (Part I)ece740/f13/lib/exe/fetch.php?...Readings: Data Flow (I) ! Dennis and Misunas, “A Preliminary Architecture for a Basic Data Flow Processor,”](https://reader033.vdocuments.net/reader033/viewer/2022060505/5f1e11cd3dd3000cef708510/html5/thumbnails/3.jpg)
Some Required Dataflow Readings n Dataflow at the ISA level
q Dennis and Misunas, “A Preliminary Architecture for a Basic Data Flow Processor,” ISCA 1974.
q Arvind and Nikhil, “Executing a Program on the MIT Tagged-Token Dataflow Architecture,” IEEE TC 1990.
n Restricted Dataflow q Patt et al., “HPS, a new microarchitecture: rationale and
introduction,” MICRO 1985. q Patt et al., “Critical issues regarding HPS, a high performance
microarchitecture,” MICRO 1985.
3
![Page 4: Computer Architecture: Dataflow (Part I)ece740/f13/lib/exe/fetch.php?...Readings: Data Flow (I) ! Dennis and Misunas, “A Preliminary Architecture for a Basic Data Flow Processor,”](https://reader033.vdocuments.net/reader033/viewer/2022060505/5f1e11cd3dd3000cef708510/html5/thumbnails/4.jpg)
Other Related Recommended Readings n Dataflow
n Gurd et al., “The Manchester prototype dataflow computer,” CACM 1985.
n Lee and Hurson, “Dataflow Architectures and Multithreading,” IEEE Computer 1994.
n Restricted Dataflow q Sankaralingam et al., “Exploiting ILP, TLP and DLP with the
Polymorphous TRIPS Architecture,” ISCA 2003. q Burger et al., “Scaling to the End of Silicon with EDGE
Architectures,” IEEE Computer 2004.
4
![Page 5: Computer Architecture: Dataflow (Part I)ece740/f13/lib/exe/fetch.php?...Readings: Data Flow (I) ! Dennis and Misunas, “A Preliminary Architecture for a Basic Data Flow Processor,”](https://reader033.vdocuments.net/reader033/viewer/2022060505/5f1e11cd3dd3000cef708510/html5/thumbnails/5.jpg)
Today n Start Dataflow
5
![Page 6: Computer Architecture: Dataflow (Part I)ece740/f13/lib/exe/fetch.php?...Readings: Data Flow (I) ! Dennis and Misunas, “A Preliminary Architecture for a Basic Data Flow Processor,”](https://reader033.vdocuments.net/reader033/viewer/2022060505/5f1e11cd3dd3000cef708510/html5/thumbnails/6.jpg)
Data Flow
![Page 7: Computer Architecture: Dataflow (Part I)ece740/f13/lib/exe/fetch.php?...Readings: Data Flow (I) ! Dennis and Misunas, “A Preliminary Architecture for a Basic Data Flow Processor,”](https://reader033.vdocuments.net/reader033/viewer/2022060505/5f1e11cd3dd3000cef708510/html5/thumbnails/7.jpg)
Readings: Data Flow (I) n Dennis and Misunas, “A Preliminary Architecture for a Basic
Data Flow Processor,” ISCA 1974. n Treleaven et al., “Data-Driven and Demand-Driven
Computer Architecture,” ACM Computing Surveys 1982. n Veen, “Dataflow Machine Architecture,” ACM Computing
Surveys 1986. n Gurd et al., “The Manchester prototype dataflow
computer,” CACM 1985. n Arvind and Nikhil, “Executing a Program on the MIT
Tagged-Token Dataflow Architecture,” IEEE TC 1990. n Patt et al., “HPS, a new microarchitecture: rationale and
introduction,” MICRO 1985. n Lee and Hurson, “Dataflow Architectures and
Multithreading,” IEEE Computer 1994. 7
![Page 8: Computer Architecture: Dataflow (Part I)ece740/f13/lib/exe/fetch.php?...Readings: Data Flow (I) ! Dennis and Misunas, “A Preliminary Architecture for a Basic Data Flow Processor,”](https://reader033.vdocuments.net/reader033/viewer/2022060505/5f1e11cd3dd3000cef708510/html5/thumbnails/8.jpg)
Readings: Data Flow (II) n Sankaralingam et al., “Exploiting ILP, TLP and DLP with the
Polymorphous TRIPS Architecture,” ISCA 2003. n Burger et al., “Scaling to the End of Silicon with EDGE
Architectures,” IEEE Computer 2004.
8
![Page 9: Computer Architecture: Dataflow (Part I)ece740/f13/lib/exe/fetch.php?...Readings: Data Flow (I) ! Dennis and Misunas, “A Preliminary Architecture for a Basic Data Flow Processor,”](https://reader033.vdocuments.net/reader033/viewer/2022060505/5f1e11cd3dd3000cef708510/html5/thumbnails/9.jpg)
Data Flow n The models we have examined in 447/740 all assumed
q Instructions are fetched and retired in sequential, control flow order
n This is part of the Von-Neumann model of computation q Single program counter q Sequential execution q Control flow determines fetch, execution, commit order
n What about out-of-order execution? q Architecture level: Obeys the control-flow model q Uarch level: A window of instructions executed in data-flow
order à execute an instruction when its operands become available
9
![Page 10: Computer Architecture: Dataflow (Part I)ece740/f13/lib/exe/fetch.php?...Readings: Data Flow (I) ! Dennis and Misunas, “A Preliminary Architecture for a Basic Data Flow Processor,”](https://reader033.vdocuments.net/reader033/viewer/2022060505/5f1e11cd3dd3000cef708510/html5/thumbnails/10.jpg)
Data Flow n In a data flow machine, a program consists of data flow
nodes n A data flow node fires (fetched and executed) when all its
inputs are ready q i.e. when all inputs have tokens
n Data flow node and its ISA representation
10
![Page 11: Computer Architecture: Dataflow (Part I)ece740/f13/lib/exe/fetch.php?...Readings: Data Flow (I) ! Dennis and Misunas, “A Preliminary Architecture for a Basic Data Flow Processor,”](https://reader033.vdocuments.net/reader033/viewer/2022060505/5f1e11cd3dd3000cef708510/html5/thumbnails/11.jpg)
Data Flow Nodes
11
![Page 12: Computer Architecture: Dataflow (Part I)ece740/f13/lib/exe/fetch.php?...Readings: Data Flow (I) ! Dennis and Misunas, “A Preliminary Architecture for a Basic Data Flow Processor,”](https://reader033.vdocuments.net/reader033/viewer/2022060505/5f1e11cd3dd3000cef708510/html5/thumbnails/12.jpg)
Data Flow Nodes (II)
n A small set of dataflow operators can be used to define a general programming language
Fork Primitive Ops
+
Switch Merge
T F T F
T T
+ T F T F
T T
⇒
![Page 13: Computer Architecture: Dataflow (Part I)ece740/f13/lib/exe/fetch.php?...Readings: Data Flow (I) ! Dennis and Misunas, “A Preliminary Architecture for a Basic Data Flow Processor,”](https://reader033.vdocuments.net/reader033/viewer/2022060505/5f1e11cd3dd3000cef708510/html5/thumbnails/13.jpg)
Dataflow Graphs
{x = a + b; y = b * 7 in (x-y) * (x+y)}
a b
+ *7
- +
*
y x
1 2
3 4
5
n Values in dataflow graphs are represented as tokens
n An operator executes when all its input tokens are present; copies of the result token are distributed to the destination operators
token < ip , p , v > instruction ptr port data
ip = 3 p = L
no separate control flow
![Page 14: Computer Architecture: Dataflow (Part I)ece740/f13/lib/exe/fetch.php?...Readings: Data Flow (I) ! Dennis and Misunas, “A Preliminary Architecture for a Basic Data Flow Processor,”](https://reader033.vdocuments.net/reader033/viewer/2022060505/5f1e11cd3dd3000cef708510/html5/thumbnails/14.jpg)
Example Data Flow Program
14
OUT
![Page 15: Computer Architecture: Dataflow (Part I)ece740/f13/lib/exe/fetch.php?...Readings: Data Flow (I) ! Dennis and Misunas, “A Preliminary Architecture for a Basic Data Flow Processor,”](https://reader033.vdocuments.net/reader033/viewer/2022060505/5f1e11cd3dd3000cef708510/html5/thumbnails/15.jpg)
Control Flow vs. Data Flow
15
![Page 16: Computer Architecture: Dataflow (Part I)ece740/f13/lib/exe/fetch.php?...Readings: Data Flow (I) ! Dennis and Misunas, “A Preliminary Architecture for a Basic Data Flow Processor,”](https://reader033.vdocuments.net/reader033/viewer/2022060505/5f1e11cd3dd3000cef708510/html5/thumbnails/16.jpg)
Static Dataflow n Allows only one instance of a node to be enabled for firing
n A dataflow node is fired only when all of the tokens are available on its input arcs and no tokens exist on any of its its output arcs
n Dennis and Misunas, “A Preliminary Architecture for a Basic Data Flow Processor,” ISCA 1974.
16
![Page 17: Computer Architecture: Dataflow (Part I)ece740/f13/lib/exe/fetch.php?...Readings: Data Flow (I) ! Dennis and Misunas, “A Preliminary Architecture for a Basic Data Flow Processor,”](https://reader033.vdocuments.net/reader033/viewer/2022060505/5f1e11cd3dd3000cef708510/html5/thumbnails/17.jpg)
Static Dataflow Machine: Instruction Templates
Each arc in the graph has an operand slot in the program
Presence bits
1 2
3 4 5
+ 3L 4L * 3R 4R - 5L + 5R * out
a b
+ *7
- +
*
y x
1 2
3 4
5
![Page 18: Computer Architecture: Dataflow (Part I)ece740/f13/lib/exe/fetch.php?...Readings: Data Flow (I) ! Dennis and Misunas, “A Preliminary Architecture for a Basic Data Flow Processor,”](https://reader033.vdocuments.net/reader033/viewer/2022060505/5f1e11cd3dd3000cef708510/html5/thumbnails/18.jpg)
Static Dataflow Machine (Dennis+, ISCA 1974)
<s1, p1, v1>, <s2, p2, v2>
FU FU FU FU FU
Op dest1 dest2 p1 src1 p2 src2 1 2 . . .
Receive
Send
Instruction Templates
n Many such processors can be connected together n Programs can be statically divided among the processors
![Page 19: Computer Architecture: Dataflow (Part I)ece740/f13/lib/exe/fetch.php?...Readings: Data Flow (I) ! Dennis and Misunas, “A Preliminary Architecture for a Basic Data Flow Processor,”](https://reader033.vdocuments.net/reader033/viewer/2022060505/5f1e11cd3dd3000cef708510/html5/thumbnails/19.jpg)
Static versus Dynamic Dataflow Machines
19
![Page 20: Computer Architecture: Dataflow (Part I)ece740/f13/lib/exe/fetch.php?...Readings: Data Flow (I) ! Dennis and Misunas, “A Preliminary Architecture for a Basic Data Flow Processor,”](https://reader033.vdocuments.net/reader033/viewer/2022060505/5f1e11cd3dd3000cef708510/html5/thumbnails/20.jpg)
Static Data Flow Machines n Mismatch between the model and the implementation
q The model requires unbounded FIFO token queues per arc but the architecture provides storage for one token per arc
q The architecture does not ensure FIFO order in the reuse of an operand slot
n The static model does not support q Reentrant code
n Function calls n Loops
q Data Structures
20
![Page 21: Computer Architecture: Dataflow (Part I)ece740/f13/lib/exe/fetch.php?...Readings: Data Flow (I) ! Dennis and Misunas, “A Preliminary Architecture for a Basic Data Flow Processor,”](https://reader033.vdocuments.net/reader033/viewer/2022060505/5f1e11cd3dd3000cef708510/html5/thumbnails/21.jpg)
Problems with Re-entrancy n Assume this
was in a loop n Or in a function
n And operations took variable time to execute
n How do you ensure the tokens that match are of the same invocation?
21
![Page 22: Computer Architecture: Dataflow (Part I)ece740/f13/lib/exe/fetch.php?...Readings: Data Flow (I) ! Dennis and Misunas, “A Preliminary Architecture for a Basic Data Flow Processor,”](https://reader033.vdocuments.net/reader033/viewer/2022060505/5f1e11cd3dd3000cef708510/html5/thumbnails/22.jpg)
Dynamic Dataflow Architectures
n Allocate instruction templates, i.e., a frame, dynamically to support each loop iteration and procedure call q termination detection needed to deallocate frames
n The code can be shared if we separate the code and the operand storage
<fp, ip, port, data>
frame pointer
instruction pointer
a token
![Page 23: Computer Architecture: Dataflow (Part I)ece740/f13/lib/exe/fetch.php?...Readings: Data Flow (I) ! Dennis and Misunas, “A Preliminary Architecture for a Basic Data Flow Processor,”](https://reader033.vdocuments.net/reader033/viewer/2022060505/5f1e11cd3dd3000cef708510/html5/thumbnails/23.jpg)
A Frame in Dynamic Dataflow 1 2 3 4 5
Program +
* -
+
3
1
2
4
5
3L, 4L
3R, 4R
5L
5R
out *
1 2
4 5
7
a b
+ *7
- +
*
y x
1 2
3 4
5
Need to provide storage for only one operand/operator
<fp, ip, p , v>
3
Frame
L
![Page 24: Computer Architecture: Dataflow (Part I)ece740/f13/lib/exe/fetch.php?...Readings: Data Flow (I) ! Dennis and Misunas, “A Preliminary Architecture for a Basic Data Flow Processor,”](https://reader033.vdocuments.net/reader033/viewer/2022060505/5f1e11cd3dd3000cef708510/html5/thumbnails/24.jpg)
Monsoon Processor (ISCA 1990)
Instruction Fetch
Operand Fetch
ip
fp+r
Network Network
Frames
op r d1,d2
Code
Form Token
ALU
Token Queue
![Page 25: Computer Architecture: Dataflow (Part I)ece740/f13/lib/exe/fetch.php?...Readings: Data Flow (I) ! Dennis and Misunas, “A Preliminary Architecture for a Basic Data Flow Processor,”](https://reader033.vdocuments.net/reader033/viewer/2022060505/5f1e11cd3dd3000cef708510/html5/thumbnails/25.jpg)
Concept of Tagging n Each invocation receives a separate tag
25
![Page 26: Computer Architecture: Dataflow (Part I)ece740/f13/lib/exe/fetch.php?...Readings: Data Flow (I) ! Dennis and Misunas, “A Preliminary Architecture for a Basic Data Flow Processor,”](https://reader033.vdocuments.net/reader033/viewer/2022060505/5f1e11cd3dd3000cef708510/html5/thumbnails/26.jpg)
Procedure Linkage Operators f
get frame extract tag
change Tag 0
change Tag 0
Graph for f
change Tag 1
a1
1:
change Tag n
an
n:
...
change Tag 1
Fork
token in frame 0 token in frame 1
Like standard call/return but caller & callee can be active simultaneously
![Page 27: Computer Architecture: Dataflow (Part I)ece740/f13/lib/exe/fetch.php?...Readings: Data Flow (I) ! Dennis and Misunas, “A Preliminary Architecture for a Basic Data Flow Processor,”](https://reader033.vdocuments.net/reader033/viewer/2022060505/5f1e11cd3dd3000cef708510/html5/thumbnails/27.jpg)
Function Calls n Need extra mechanism to direct the output token of the
function to the proper calling site
n Usually done by sending special token containing the return node address
27
![Page 28: Computer Architecture: Dataflow (Part I)ece740/f13/lib/exe/fetch.php?...Readings: Data Flow (I) ! Dennis and Misunas, “A Preliminary Architecture for a Basic Data Flow Processor,”](https://reader033.vdocuments.net/reader033/viewer/2022060505/5f1e11cd3dd3000cef708510/html5/thumbnails/28.jpg)
Loops and Function Calls Summary
28
![Page 29: Computer Architecture: Dataflow (Part I)ece740/f13/lib/exe/fetch.php?...Readings: Data Flow (I) ! Dennis and Misunas, “A Preliminary Architecture for a Basic Data Flow Processor,”](https://reader033.vdocuments.net/reader033/viewer/2022060505/5f1e11cd3dd3000cef708510/html5/thumbnails/29.jpg)
Control of Parallelism n Problem: Many loop iterations can be present in the
machine at any given time q 100K iterations on a 256 processor machine can swamp the
machine (thrashing in token matching units) q Not enough bits to represent frame id
n Solution: Throttle loops. Control how many loop iterations can be in the machine at the same time. q Requires changes to loop dataflow graph to inhibit token
generation when number of iterations is greater than N
29
![Page 30: Computer Architecture: Dataflow (Part I)ece740/f13/lib/exe/fetch.php?...Readings: Data Flow (I) ! Dennis and Misunas, “A Preliminary Architecture for a Basic Data Flow Processor,”](https://reader033.vdocuments.net/reader033/viewer/2022060505/5f1e11cd3dd3000cef708510/html5/thumbnails/30.jpg)
Data Structures n Dataflow by nature has write-once semantics n Each arc (token) represents a data value n An arc (token) gets transformed by a dataflow node into a
new arc (token) à No persistent state…
n Data structures as we know of them (in imperative languages) are structures with persistent state
n Why do we want persistent state? q More natural representation for some tasks? (bank accounts,
databases, …) q To exploit locality
30
![Page 31: Computer Architecture: Dataflow (Part I)ece740/f13/lib/exe/fetch.php?...Readings: Data Flow (I) ! Dennis and Misunas, “A Preliminary Architecture for a Basic Data Flow Processor,”](https://reader033.vdocuments.net/reader033/viewer/2022060505/5f1e11cd3dd3000cef708510/html5/thumbnails/31.jpg)
Data Structures in Dataflow
. . . . P P
Memory n Data structures reside in a structure store ⇒ tokens carry pointers
n I-structures: Write-once, Read multiple times or q allocate, write, read, ..., read,
deallocate ⇒ No problem if a reader arrives before the writer at the memory location
I-fetch
a
I-store
a v
![Page 32: Computer Architecture: Dataflow (Part I)ece740/f13/lib/exe/fetch.php?...Readings: Data Flow (I) ! Dennis and Misunas, “A Preliminary Architecture for a Basic Data Flow Processor,”](https://reader033.vdocuments.net/reader033/viewer/2022060505/5f1e11cd3dd3000cef708510/html5/thumbnails/32.jpg)
I-Structures
32
![Page 33: Computer Architecture: Dataflow (Part I)ece740/f13/lib/exe/fetch.php?...Readings: Data Flow (I) ! Dennis and Misunas, “A Preliminary Architecture for a Basic Data Flow Processor,”](https://reader033.vdocuments.net/reader033/viewer/2022060505/5f1e11cd3dd3000cef708510/html5/thumbnails/33.jpg)
Dynamic Data Structures n Write-multiple-times data structures n How can you support them in a dataflow machine?
q Can you implement a linked list?
n What are the ordering semantics for writes and reads?
n Imperative vs. functional languages q Side effects and mutable state
vs. q No side effects and no mutable state
33
![Page 34: Computer Architecture: Dataflow (Part I)ece740/f13/lib/exe/fetch.php?...Readings: Data Flow (I) ! Dennis and Misunas, “A Preliminary Architecture for a Basic Data Flow Processor,”](https://reader033.vdocuments.net/reader033/viewer/2022060505/5f1e11cd3dd3000cef708510/html5/thumbnails/34.jpg)
MIT Tagged Token Data Flow Architecture
n Resource Manager Nodes q responsible for Function allocation (allocation of context/frame
identifiers), Heap allocation, etc.
34
![Page 35: Computer Architecture: Dataflow (Part I)ece740/f13/lib/exe/fetch.php?...Readings: Data Flow (I) ! Dennis and Misunas, “A Preliminary Architecture for a Basic Data Flow Processor,”](https://reader033.vdocuments.net/reader033/viewer/2022060505/5f1e11cd3dd3000cef708510/html5/thumbnails/35.jpg)
MIT Tagged Token Data Flow Architecture n Wait−Match Unit:
try to match incoming token and context id and a waiting token with same instruction address q Success: Both
tokens forwarded q Fail: Incoming
token −−> Waiting Token Mem, bubble (no-op forwarded)
35
![Page 36: Computer Architecture: Dataflow (Part I)ece740/f13/lib/exe/fetch.php?...Readings: Data Flow (I) ! Dennis and Misunas, “A Preliminary Architecture for a Basic Data Flow Processor,”](https://reader033.vdocuments.net/reader033/viewer/2022060505/5f1e11cd3dd3000cef708510/html5/thumbnails/36.jpg)
TTDA Data Flow Example
36
![Page 37: Computer Architecture: Dataflow (Part I)ece740/f13/lib/exe/fetch.php?...Readings: Data Flow (I) ! Dennis and Misunas, “A Preliminary Architecture for a Basic Data Flow Processor,”](https://reader033.vdocuments.net/reader033/viewer/2022060505/5f1e11cd3dd3000cef708510/html5/thumbnails/37.jpg)
TTDA Data Flow Example
37
![Page 38: Computer Architecture: Dataflow (Part I)ece740/f13/lib/exe/fetch.php?...Readings: Data Flow (I) ! Dennis and Misunas, “A Preliminary Architecture for a Basic Data Flow Processor,”](https://reader033.vdocuments.net/reader033/viewer/2022060505/5f1e11cd3dd3000cef708510/html5/thumbnails/38.jpg)
TTDA Data Flow Example
38
![Page 39: Computer Architecture: Dataflow (Part I)ece740/f13/lib/exe/fetch.php?...Readings: Data Flow (I) ! Dennis and Misunas, “A Preliminary Architecture for a Basic Data Flow Processor,”](https://reader033.vdocuments.net/reader033/viewer/2022060505/5f1e11cd3dd3000cef708510/html5/thumbnails/39.jpg)
TTDA Synchronization n Heap memory locations have FULL/EMPTY bits n if the heap location is EMPTY, heap memory module
queues request at that location When "I−Fetch" request arrives (instead of "Fetch"),
n Later, when "I−Store" arrives, pending requests are discharged
n No busy waiting n No extra messages
39
![Page 40: Computer Architecture: Dataflow (Part I)ece740/f13/lib/exe/fetch.php?...Readings: Data Flow (I) ! Dennis and Misunas, “A Preliminary Architecture for a Basic Data Flow Processor,”](https://reader033.vdocuments.net/reader033/viewer/2022060505/5f1e11cd3dd3000cef708510/html5/thumbnails/40.jpg)
Manchester Data Flow Machine
n Matching Store: Pairs together tokens destined for the same instruction
n Large data set à overflow in overflow unit
n Paired tokens fetch the appropriate instruction from the node store
40
![Page 41: Computer Architecture: Dataflow (Part I)ece740/f13/lib/exe/fetch.php?...Readings: Data Flow (I) ! Dennis and Misunas, “A Preliminary Architecture for a Basic Data Flow Processor,”](https://reader033.vdocuments.net/reader033/viewer/2022060505/5f1e11cd3dd3000cef708510/html5/thumbnails/41.jpg)
Data Flow Summary n Availability of data determines order of execution n A data flow node fires when its sources are ready n Programs represented as data flow graphs (of nodes)
n Data Flow at the ISA level has not been (as) successful
n Data Flow implementations under the hood (while preserving sequential ISA semantics) have been successful q Out of order execution q Hwu and Patt, “HPSm, a high performance restricted data flow
architecture having minimal functionality,” ISCA 1986.
41
![Page 42: Computer Architecture: Dataflow (Part I)ece740/f13/lib/exe/fetch.php?...Readings: Data Flow (I) ! Dennis and Misunas, “A Preliminary Architecture for a Basic Data Flow Processor,”](https://reader033.vdocuments.net/reader033/viewer/2022060505/5f1e11cd3dd3000cef708510/html5/thumbnails/42.jpg)
Data Flow Characteristics n Data-driven execution of instruction-level graphical code
q Nodes are operators q Arcs are data (I/O) q As opposed to control-driven execution
n Only real dependencies constrain processing n No sequential I-stream
q No program counter
n Operations execute asynchronously n Execution triggered by the presence of data n Single assignment languages and functional programming
q E.g., SISAL in Manchester Data Flow Computer q No mutable state
42
![Page 43: Computer Architecture: Dataflow (Part I)ece740/f13/lib/exe/fetch.php?...Readings: Data Flow (I) ! Dennis and Misunas, “A Preliminary Architecture for a Basic Data Flow Processor,”](https://reader033.vdocuments.net/reader033/viewer/2022060505/5f1e11cd3dd3000cef708510/html5/thumbnails/43.jpg)
Data Flow Advantages/Disadvantages n Advantages
q Very good at exploiting irregular parallelism q Only real dependencies constrain processing
n Disadvantages q Debugging difficult (no precise state)
n Interrupt/exception handling is difficult (what is precise state semantics?)
q Implementing dynamic data structures difficult in pure data flow models
q Too much parallelism? (Parallelism control needed) q High bookkeeping overhead (tag matching, data storage) q Instruction cycle is inefficient (delay between dependent
instructions), memory locality is not exploited
43
![Page 44: Computer Architecture: Dataflow (Part I)ece740/f13/lib/exe/fetch.php?...Readings: Data Flow (I) ! Dennis and Misunas, “A Preliminary Architecture for a Basic Data Flow Processor,”](https://reader033.vdocuments.net/reader033/viewer/2022060505/5f1e11cd3dd3000cef708510/html5/thumbnails/44.jpg)
Combining Data Flow and Control Flow n Can we get the best of both worlds?
n Two possibilities q Model 1: Keep control flow at the ISA level, do dataflow
underneath, preserving sequential semantics q Model 2: Keep dataflow model, but incorporate control flow at
the ISA level to improve efficiency, exploit locality, and ease resource management n Incorporate threads into dataflow: statically ordered instructions;
when the first instruction is fired, the remaining instructions execute without interruption
44