5.3.13 · D3Advanced Microarchitecture

Worked examples — VLIW architectures

2,452 words11 min readBack to topic

This page is the "every scenario" workbook for VLIW architectures. The parent note gave you the machine and the two scheduling formulas. Here we use them, one worked case at a time, until no situation can surprise you.

Everything runs on the same 4-slot machine from the parent:

Before any formula, three plain-word ideas the parent used but we will now earn:

Figure — VLIW architectures

Look at the figure: three iterations laid over each other, each shifted down by II cycles. Small II = tightly overlapped = fast. Our whole job is to find the smallest legal II.


The scenario matrix

Every scheduling question you can be asked falls into one of these cells. The examples below are labelled with the cell they cover, and together they hit all of them.

# Cell (what makes it different) What forces the answer Example
A Resource-bound, one scarce unit too many memory ops for 1 port Ex 1
B Recurrence-bound, dependency cycle dominates a value feeds the next iteration Ex 2
C Tie: ResMII = RecMII both bounds equal Ex 3
D Degenerate: no loop-carried dependency (Dist = 0) RecMII undefined → resource decides Ex 4
E Zero parallelism: pure dependent chain (straight-line) II / slot-count collapses Ex 5
F Limiting case: add more ALUs — when does it stop helping? resource ceiling saturates Ex 6
G Real-world word problem: DSP filter tap translate English → resources Ex 7
H Exam twist: a "free" NOP-hiding trap slot count ≠ throughput Ex 8

The two tools we lean on, restated in words:


Example 1 — Cell A: one memory port is the bottleneck


Example 2 — Cell B: a dependency cycle sets the pace

Figure — VLIW architectures

The figure contrasts Ex 1 and Ex 2: same II = 3, but one is a wall of hardware (memory port), the other a rope of dependencies (the recurrence). Same number, totally different cause.


Example 3 — Cell C: the exact tie


Example 4 — Cell D: degenerate, Dist = 0


Example 5 — Cell E: zero parallelism (straight-line chain)


Example 6 — Cell F: limiting behaviour, add ALUs until it stops helping

Figure — VLIW architectures

The curve flattens: each extra ALU helps less, then not at all once memory becomes the wall.


Example 7 — Cell G: real-world word problem (DSP filter)


Example 8 — Cell H: the exam trap


Recall

Recall What sets

in a memory-bound loop with no recurrence? The resource bound: ; RecMII is 0.

Ceiling appears in ResMII because ::: you cannot run a fraction of an operation on a unit — round cycles up. RecMII of a recurrence with latency 3, distance 1 is ::: cycles. Adding more ALUs stops helping once ::: the ALU term drops to the level of another resource (e.g. the memory port), which then dominates. Slot count (issue width) equals throughput? ::: No — the scarcest replicated resource (often 1 memory port) sets the true limit. A dependency cycle with means ::: the code is impossible (an op depending on itself in the same cycle); correct code never yields it.