The course uses four kinds of picture and a small set of symbols. Five minutes here saves confusion in every lesson.
One slot is one clock cycle, sampled just after the rising edge. Slot 0 is the leftmost column.
A single-bit lane is high or low. A bus lane shows its value in a box, and a new box starts only when the value changes.
A bus value means something only while its valid signal is high. In the waveform above, the data lane still shows 2 in slots 6 and 7, but vld is low, so nothing is offered.
Every lesson follows its waveform with a How to read it list naming slots and values. Read the two side by side.
Boxes are agents (sender, receiver, arbiter). Their title says which.
Arrows are channels; the label names what travels on them. The forward channel is on top, the return path below.
Small boxes with a notch on a channel are pipeline registers: each adds one cycle of delay.
Counters show a number the agent keeps (credits, an expected sequence number). Slots show a buffer; shaded slots are occupied.
Coloured lines highlight the channel a lesson is about. Colour never carries meaning on its own: the labels always say the same thing.
Message exchanges between two or more agents use sequence diagrams. Time runs downwards; each arrow is one message. A solid arrow is a request or data; a dashed arrow is a reply. An arrow ending in a cross is a message lost or corrupted on the way.
Symbol | Meaning |
|---|---|
L | Pipeline stages on a channel, each way |
B | Receiver buffer depth, in flits or bytes as stated |
RTT | Round-trip time of whatever must come back (a credit, an acknowledgement), in cycles or nanoseconds as stated |
n | Width of a sequence-number or tag field, in bits |
r | A rate as a fraction of one item per cycle |
The relation you will meet most often:
No marker: a complete program that runs and prints PASS.
// snippet: a fragment that shows one idea.
// bad-example: code shown as a mistake. Never copy it.
Numbers taken from a published specification name it. Every other number is marked illustrative and is arithmetically consistent.