Dataflow Processing - PowerPoint PPT Presentation

1 / 83
About This Presentation
Title:

Dataflow Processing

Description:

Operands are accessed by their addresses. ... Conditional Construct. One can build more complex constructions using the basic primitive structures. ... – PowerPoint PPT presentation

Number of Views:36
Avg rating:3.0/5.0
Slides: 84
Provided by: alihu2
Category:

less

Transcript and Presenter's Notes

Title: Dataflow Processing


1
Dataflow Processing
  • A.R. Hurson
  • Computer Science Department
  • Missouri Science Technology
  • hurson_at_mst.edu

2
Dataflow Processing
  • Control Flow Computation
  • Operands are accessed by their addresses.
  • Shared memory cells are the means by which data
    is passed between instructions.
  • Flow of control is implicitly sequential, but
    special control instructions can be introduced to
    explicitly identify concurrency.

3
Dataflow Processing
  • Control Flow Computation
  • Program Counter(s) is (are) used to sequence the
    execution of instructions in a centralized
    environment.

4
Dataflow Processing
  • A dataflow program is a program with a partial
    ordering defined by the data interdependencies.
  • In a dataflow program the activation (execution)
    of an instruction is triggered (fired) by the
    availability of its input data.

5
Dataflow Processing
6
Dataflow Processing
  • Data Dependencies

7
Dataflow Processing
  • Dataflow Principles
  • The dataflow model of computation deviates from
    the conventional control-flow method in two basic
    principles asynchrony and functionality

8
Dataflow Processing
  • Dataflow Principles
  • Asynchrony an instruction is fired (executed)
    only when all the required operands are
    available.
  • Functionality any two enabled instructions can
    be executed in either order or concurrently
    i.e., no side-effects.

9
Dataflow Processing
  • Dataflow Principles
  • Within the scope of dataflow processing, implicit
    parallelism is achieved by allowing side-effect
    free expressions and functions to be evaluated in
    parallel.

10
Dataflow Processing
  • Dataflow Principles
  • In a dataflow environment, conventional concepts
    such as variables and memory updating are
    non-existent.
  • Objects (operand values) are consumed by an actor
    (instruction) yielding a result object which is
    passed to the next actor(s).

11
Dataflow Processing
  • Dataflow Principles
  • Within the scope of a concurrent environment,
    dataflow computation addresses the
    programmability, memory latency, and
    synchronization issues.

12
Dataflow Processing
  • Questions
  • Define programmability, memory latency, and
    synchronization.
  • How have these issues been addressed in the
    conventional multiprocessor systems?
  • Why does the dataflow model of computation offer
    good solutions for these problems?

13
Dataflow Processing
  • Classification
  • The dataflow model of computation has been
    traditionally classified as either static or
    dynamic

14
Dataflow Processing
  • In the static organization, a dataflow actor can
    be executed only when all of the tokens are
    available on its input arcs and no token exists
    on any of its output arcs.
  • In the dynamic organization, a dataflow actor can
    be enabled only when all of the tokens of the
    same tag (color) are available on its input arcs.

15
Dataflow Processing
  • Dataflow Graph
  • A dataflow program can be represented as a
    directed graph, G G(N,A), where nodes (actors)
    in N represent instructions, and arcs in A
    represent data dependencies among the nodes.
  • The operands are conveyed from one node to
    another in data packets called tokens via the
    arcs.

16
Dataflow Processing
  • Dataflow Graph

(ab) - (ab)
17
Dataflow Processing
.
.
18
Dataflow Processing
19
Dataflow Processing
20
Dataflow Processing
21
Dataflow Processing
22
Dataflow Processing
  • Dataflow Computation
  • Data are stored in the instructions i.e., no
    shared memory.
  • Data are passed among instructions as tokens.
  • An instruction independent of other instructions
    can begin its execution as soon as it is ready to
    be fired e.g., firing rules for static and
    dynamic environments.

23
Dataflow Processing
  • An Example

24
Dataflow Processing
  • The Basic Primitives
  • In a dataflow graph two types of links are
    distinguished, the data link, and the Boolean
    link.
  • A data link is used to pass data tokens i.e.,
    real numbers, integers, ... among the arcs.

25
Dataflow Processing
  • The Basic Primitives
  • A Boolean link is used to pass control tokens
    among the arcs.

26
Dataflow Processing
  • The Basic Primitives
  • Operators a data value is produced by an
    operator as a result of some function f.

27
Dataflow Processing
  • The Basic Primitives
  • Decider a true or false control value is
    generated by a decider depending on its input
    tokens. The control token produced at a decider
    can be combined with other control tokens by
    means of a Boolean operator.

28
Dataflow Processing
  • An Example
  • NOR Operator

29
Dataflow Processing
  • An Example
  • NOR Operator

30
Dataflow Processing
  • The Basic Primitives
  • Control tokens direct the flow of data tokens by
    means of T-gates, F-gates, and merge actors.

31
Dataflow Processing
  • The Basic Primitives
  • A T-gate passes the data token on its input arc
    to its output arc when it receives a control
    token conveying the value true.

32
Dataflow Processing
  • The Basic Primitives
  • An F-gate will pass its input data token to its
    output arc only on the False value token on its
    control input.

33
Dataflow Processing
  • The Basic Primitives
  • A merge actor has a true input, a false input and
    a control input. It passes to its output arc a
    data token from the input arc corresponding to
    the value of the control token received. Any
    token on the other input is not affected.

34
Dataflow Processing
35
Dataflow Processing
  • The Basic Primitives
  • A switch actor is a combination of T-gate and
    F-gate. It directs an input data token to one of
    its output arcs depending on the control input.

36
Dataflow Processing
  • The Basic Primitives
  • A copy actor is an identity operator which
    duplicates the input token.

37
Dataflow Processing
  • An Example Using the basic primitives, draw the
    dataflow graph of the following program

38
Dataflow Processing
  • Conditional Construct
  • One can build more complex constructions using
    the basic primitive structures.

39
Dataflow Processing
40
Dataflow Processing
  • While Loop

41
Dataflow Processing
  • An Example Show the dataflow graph of
  • input (w,x)
  • y x t 0
  • while t ? w do
  • begin if y gt 1 then y y 2
  • else y y 3
  • t t1
  • end
  • output (y)

42
Dataflow Processing
  • Dataflow Architecture
  • Dataflow computers have a data-driven
    organization.
  • The data-driven concept means asynchrony. As a
    result, a high degree of implicit parallelism is
    expected in a dataflow computer.
  • since there is no use for shared memory cells,
    dataflow programs are free from side effects.
    Finally, dataflow computations have no
    far-reaching effects (locality of effect).

43
Dataflow Processing
  • Dataflow Architecture
  • Depending on the way data tokens are handled,
    dataflow computers are divided into the static
    model and the dynamic model.
  • In a static dataflow machine only one token is
    allowed to exist on any arc at any given time.
  • In a dynamic dataflow machine more than one token
    can exist in an arc.

44
Dataflow Processing
  • A Static Dataflow Machine
  • System is Composed of Five Modules
  • Memory Section consists of instruction cells
    holding a dataflow instruction.
  • Processing Section consists of processing units
    that perform the basic dataflow operations on
    data values.

45
Dataflow Processing
  • A Static Dataflow Machine
  • Arbitration Network transfers operation packets
    from the memory section to the processing
    section.
  • Distribution Network transfers the generated data
    packets from the processing section to the memory
    section.
  • Control Network transfers control packets from
    the processing section to the memory section.

46
Dataflow Processing

47
Dataflow Processing
  • A Static Dataflow Machine
  • Memory Section The memory section holds a
    representation of the program to be executed and
    the data values. Memory section is organized
    into instruction cells.
  • Each instruction cell corresponds to an actor of
    the dataflow program.

48
Dataflow Processing
  • A Static Dataflow Machine
  • Instruction Cell
  • Each instruction cell is composed of three words.
  • The first word holds the operation code and the
    addresses of the instruction cells to which the
    result of the operation is to be directed.
  • The next two words hold the operands. Each
    operand word may be set to behave as a constant
    or a variable.
  • There are six different instruction formats.

49
Dataflow Processing
  • Instruction Format
  • Operators can be of two forms Unary operator or
    Binary operator

50
Dataflow Processing
  • Instruction format
  • Deciders can be of Unary or Binary types

51
Dataflow Processing
  • Instruction Format
  • Boolean operators can be Unary or Binary
    operators

52
Dataflow Processing
  • Instruction Format
  • Each operand value - i.e., gi - has the following
    format

53
Dataflow Processing
  • Instruction Format
  • n of acknowledge signals expected
  • m of acknowledge signals received
  • gi gate code
  • ti result-tag defines whether control packet is
    of gate type or data type.

54
Dataflow Processing
  • Instruction Format

operand word became active
operand word became active
55
Dataflow Processing
  • A Static Dataflow Machine An Example
  • The following expression is assumed
  • Y(t) A X(t) B Y(t-1) C Y(t-2)
  • Show its dataflow graph and its "simple"
    representation in the memory section.

56
Dataflow Processing
  • A Static Dataflow Machine An Example

57
Dataflow Processing
  • An Example Initialization of Memory Cells

58
Dataflow Processing
  • A Static Dataflow Machine
  • Processing Section It is a collection of five
    pipeline processing units
  • Multiplier Unit for complex operands,
  • Adder and Subtractor Unit for complex operands,
  • Distributor Unit to replicate and distribute
    complex values,

59
Dataflow Processing
  • A Static Dataflow Machine
  • Integer Processor Unit for integer and test
    operations, and
  • Control Processor Unit to replicate and
    distribute the integer and Boolean values.

60
Dataflow Processing
  • A Static Dataflow Machine
  • Processing Section Each functional unit is
    organized as three independent pipelines. One
    performs the operation and the other two carry
    destination addresses.

61
Dataflow Processing
  • A Static Dataflow Machine

62
Dataflow Processing
  • A Static Dataflow Machine
  • Arbitration Network
  • Arbitration network is designed to establish a
    smooth flow of the instruction packets from the
    memory section to the processing section.
  • The network is composed of five basic building
    blocks

63
Dataflow Processing
  • A Static Dataflow Machine
  • Arbitration Network

64
Dataflow Processing
  • A Static Dataflow Machine
  • Distribution Network
  • It is designed to transfer the result packets
    from the processing section to the memory
    section.
  • It utilizes the same basic building blocks as the
    arbitration network does.

65
Dataflow Processing
  • Static Dataflow Machine
  • Control Network
  • It is used to transfer Boolean values and
    acknowledge signals from the processing section
    to the memory section. Because of the very
    nature of the data value transferred via control
    networks, it is composed of the switch and
    arbitration units only.
  • The control network transfers two types of
    tokens, namely gate type and data type.

66
Dataflow Processing
  • Static Dataflow Machine
  • Control Network

67
Dataflow Processing
  • A Dynamic Dataflow Machine
  • It is a backend system composed of five units
    connected as a pipeline ring around which the
    tokens flow.
  • The processing unit allows concurrent execution
    of data graph nodes,
  • The token queue temporarily stores tokens lying
    on the data graph arcs,

68
Dataflow Processing
  • A Dynamic Dataflow Machine
  • The matching unit gathers pairs of tokens with
    the same destination node address and label,
  • The node store represents information regarding
    the dataflow graph, and
  • The switch unit establishes communication between
    the frontend and backend processor, and reroutes
    the resultant tokens back to the pipeline ring.

69
Dataflow Processing
  • A Dynamic Dataflow Machine
  • Each unit in the pipeline is internally
    synchronous, but communications with other units
    is based on a standard asynchronous protocol.

70
Dataflow Processing
  • A Dynamic Dataflow Machine

71
Dataflow Processing
  • A Dynamic Dataflow Machine
  • Token Queue
  • It is a static RAM FIFO buffer of size 16k 96
    bits which allows a read and a write to be
    performed in a single 200 hsec pipeline period.
    multiple bank structures could be considered,
    however, it was not considered in the prototype
    due to its complexity.

72
Dataflow Processing
  • A Dynamic Dataflow Machine
  • Each token, is comprised of 96 bits, has the
    following format

73
Dataflow Processing
  • A Dynamic Dataflow Machine
  • Matching Unit
  • It is associative in nature and a critical part
    of the machine operation.
  • It should provide storage for a large number of
    tokens awaiting their matching pairs.
  • It is composed of 8 banks of 2k 96 bits.

74
Dataflow Processing
  • A Dynamic Dataflow Machine
  • Matching Unit
  • An 11-bit hash addressed from the 54-bit label
    and destination address parts of each incoming
    token is generated. This address references 8
    memory words in the eight parallel banks.

75
Dataflow Processing
  • A Dynamic Dataflow Machine
  • Matching Unit
  • Tokens (if any) at the addressed locations are
    compared with the incoming token. If a match is
    found, a token-pair is generated and passed to
    the node store, otherwise, it is written to any
    parallel bank awaiting its pair.
  • An unsuccessful match takes 320 hsec and a
    successful match requires 240 hsec.

76
Dataflow Processing
  • A Dynamic Dataflow Machine
  • Node Store
  • It is a 16K 72-bit memory with a 200 hsec
    access time augmented by a segment table. It is
    used to store dataflow graphs. Each instruction
    has the following format

77
Dataflow Processing
  • A Dynamic Dataflow Machine
  • Node Store
  • Upon receiving a token pair, an instruction
    packet is generated and passed to the processing
    unit.

78
Dataflow Processing
  • A Dynamic Dataflow Machine
  • Processing Unit
  • It is a writeable micro-program processor
    consisting of two pipeline stages.
  • The first stage handles simple label operations
    and gathers some performance statistics.
  • The second stage is a parallel array of 15
    processing elements. Each element is capable of
    performing 24-bit integer or 32-bit
    floating-point arithmetic operation.

79
Dataflow Processing
  • A Dynamic Dataflow Machine
  • Processing Unit
  • The microinstruction cycle time of each processor
    is 200 hsec.
  • an instruction requires about five to 50
    microinstructions (giving an average running time
    of 4.5 µsec).

80
Dataflow Processing
  • A Dynamic Dataflow Machine
  • An Example
  • The following expression is assumed, show its
    representation in the node store and initial
    tokens.

A (W X) (Y Z)
81
Dataflow Processing
  • A Dynamic Dataflow Machine
  • An Example

W
X
Y
Z



A
82
Dataflow Processing
  • A Dynamic Dataflow Machine
  • An Example Node Store 

83
Dataflow Processing
  • A Dynamic Dataflow Machine
  • An Example Initial Tokens
Write a Comment
User Comments (0)
About PowerShow.com