Executing a Program on the MIT Tagged Token Dataflow Architecture | CSE 240C, Study notes of Computer Science

Material Type: Notes; Class: Advanced Microarchitecture; Subject: Computer Science & Engineering; University: University of California - San Diego; Term: Winter 2009;

Typology: Study notes

Pre 2010

Uploaded on 03/28/2010

koofers-user-8yp
koofers-user-8yp 🇺🇸

10 documents

1 / 27

Toggle sidebar

This page cannot be seen from the preview

Don't miss anything!

bg1
Executing a Program on
the MIT Tagged Token
Dataflow Architecture
Arvind and Nikhil
pf3
pf4
pf5
pf8
pf9
pfa
pfd
pfe
pff
pf12
pf13
pf14
pf15
pf16
pf17
pf18
pf19
pf1a
pf1b

Partial preview of the text

Download Executing a Program on the MIT Tagged Token Dataflow Architecture | CSE 240C and more Study notes Computer Science in PDF only on Docsity!

Executing a Program on

the MIT Tagged Token

Dataflow Architecture

Arvind and Nikhil

Notes on the paper

This is a “Big A” Architecture paper

It’s a PL, an ISA, and an execution model

and a dash of hardware

Execution Model: Dataflow  Not a new idea [Dennis, ISCA’75]  Programs are dataflow graphs  Instructions fire when data arrives  Instructions act independently  All ready instructions can fire at once  Massive parallelism

Execution Model: Dataflow  Not a new idea [Dennis, ISCA’75]  Programs are dataflow graphs  Instructions fire when data arrives  Instructions act independently  All ready instructions can fire at once  Massive parallelism

Execution Model: Dataflow  Not a new idea [Dennis, ISCA’75]  Programs are dataflow graphs  Instructions fire when data arrives  Instructions act independently  All ready instructions can fire at once  Massive parallelism

Von Neumann example A[j + ii] = i; b = A[ij]; Mul t1 ← i, j Mul t2 ← i, i Add t3 ← A, t Add t4 ← j, t Add t5 ← A, t Store (t5) ← i Load b ← (t3)

Dataflow example A[j + ii] = i; b = A[ij];

Load Store

j i

b

A

Dataflow example A[j + ii] = i; b = A[ij];

Load Store

j i

b

A

Dataflow example A[j + ii] = i; b = A[ij];

Load Store

j i

b

A

Dataflow example A[j + ii] = i; b = A[ij];

Load Store

j i

b

A

Conditionals  Use a “steering” operator.

Loops

Managing Parallelism: Dynamic dataflow  Dynamic dataflow  Multiple inputs on an arc at one time  Parallelism is possible -- pipeline iterations through the loops graph  Unbounded state  Circulation speed mismatch -- mis-matched inputs  Tags are required.

A A A (^) B B B S S S

1:A 3:A 2:A (^) 3:B 1:B 2:B 3:S 2:S 1:S

Dataflow tags  Tags distinguish between different dynamic instances of the same value  Tag management in TTDA  Tags are the address of an activation record (aka stack frame)  A dynamic instance of an “instruction block” has a tag.  A central manager allocates/reclaims them.