Notes/Fundamental Concepts
📐

Fundamental Concepts

L1L2Pre-Midterm

Von Neumann model, dataflow, and computation models

Topics Covered

Von Neumann modelDataflow computingData flow advantages & disadvantagesISA vs Microarchitecture
01

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.

02

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.

Back to all notes