Fundamental Concepts
Von Neumann model, dataflow, and computation models
Topics Covered
Von Neumann Model
The Von Neumann architecture (stored-program computer) consists of:
- Memory: Stores both instructions and data (unified memory). Connected to CPU via:
- MAR (Memory Address Register): Holds the address of the memory location to access
- MDR (Memory Data Register): Holds the data read from or to be written to memory
- Processing Unit: Performs computation.
- ALU (Arithmetic Logic Unit): Performs arithmetic and logical operations
- TEMP registers: Hold intermediate values during computation
- Control Unit: Directs the operation of the processor.
- IP (Instruction Pointer) / PC (Program Counter): Points to the next instruction to fetch
- IR (Instruction Register): Holds the currently executing instruction
- I/O: Interface to the outside world (keyboard, display, disk, network, etc.)
Key property: Instructions are fetched and executed sequentially (one at a time, in program order). The IP is incremented after each instruction (unless a branch changes it).
Von Neumann bottleneck: The single bus between memory and CPU limits bandwidth. Both instruction fetches and data accesses compete for the same bus.
Key Points
- •Stored-program: instructions and data in the same memory
- •Components: Memory (MAR/MDR), Processing (ALU/TEMP), Control (IP/IR), I/O
- •Sequential execution: fetch → decode → execute → writeback, one at a time
- •Von Neumann bottleneck: instruction and data share the same memory bus
Exam Tip
Know the specific registers (MAR, MDR, IP/PC, IR) and what each does. The Von Neumann bottleneck concept comes up often.
Dataflow Computing
Dataflow computing is an alternative model where execution is driven by data availability, not a program counter.
Program representation: A directed graph where:
- Nodes represent operations (add, multiply, etc.)
- Edges represent data dependencies
Firing rule: A node fires (executes) when all its input operands are ready. No program counter — multiple nodes can fire simultaneously if their inputs are available.
Advantages:
- Exploits irregular parallelism naturally — any independent operations execute in parallel
- Only true (data) dependencies constrain execution order
- No false dependencies (WAR, WAW) since each value is produced once
- Tolerant of latency — other nodes can fire while waiting for slow operations
Disadvantages:
- No precise state: Cannot stop and say "this is the exact state of computation at this point" — makes debugging and exceptions very difficult
- Too much parallelism: In large programs, too many nodes become ready simultaneously → overwhelms hardware resources. Need flow control mechanisms.
- High bookkeeping overhead: Tracking which operands are ready, matching tokens, managing the graph is expensive in hardware
- Poor locality: Data flows through the graph without regard for cache/memory locality
Key Points
- •Program = graph of nodes (operations) with edges (data dependencies)
- •Firing rule: node executes when ALL inputs are ready (no PC)
- •Advantages: exploits irregular parallelism, only true dependencies matter
- •Disadvantages: no precise state, too much parallelism, high bookkeeping, poor locality
Exam Tip
Contrast dataflow with Von Neumann. Know the 4 advantages and 4 disadvantages. Dataflow is conceptually important even though pure dataflow machines are rare.