Answer each question out loud before opening it. If you miss more than three in the checkpoint, revisit the lessons linked at the end.
Yes: fewer pipeline stages (lower clock), smaller packets (more header overhead), or no batching all cut latency and cost bandwidth.
400 million lines/s × 100 ns = 40.
Enough tags for rate × worst round trip: one request per cycle and 300 cycles needs 300 tags, so 9 bits.
At the requester that needs order, sized by Little's law in whole responses, with slots reserved at request time.
Every target would need per-ID reassembly state; read interleaving costs only requesters, which already track IDs.
4 GB/s line, 3.94 after 128b/130b, about 3.6 with 256-byte payloads after 24 bytes per packet, a little less after link-management packets.
Random arrivals queue; for a simple queue latency is 1/(1 − load): 10× at 90%.
Bursts near the knee, rare long events, head-of-line blocking, unfair arbitration and fan-out; get a histogram under load.
Task. An accelerator streams reads from memory at 32 GB/s in 64-byte lines. Round trip: 150 ns typical, 400 ns worst case under load. Size its tag pool and reorder buffer, and say what the memory must sustain.
Rate: 32 GB/s ÷ 64 B = 500 million lines per second. Tags: 500e6 × 400 ns = 200 outstanding at the worst-case round trip (the typical 150 ns round trip would need only 75), so 256 tags, 8 bits. Reorder buffer, if the accelerator needs order: 200 slots × 64 B = 12.8 KB, slots reserved when each request is issued so every response can be accepted. Memory: 32 GB/s sustained, not peak; with 64-byte random-ish accesses a memory may sustain only 60–75% of peak, so the memory system should be specified at roughly 45–55 GB/s peak, and checked with a model at the real access pattern. Latency at that load should be read off the queueing curve, which is why the worst case is 400 ns rather than 150.
Items in flight = throughput × latency (averages, any stable system).
8/40 = 0.2 per cycle.
Only after the last response for it has arrived.
Those with the same ID.
So every requested response can be accepted; otherwise the fabric can deadlock.
Naturally aligned Read Completion Boundaries, with each piece within the maximum payload size.
P / (P + O).
Bus turnaround, row misses, refresh (and command gaps).
An operation waiting for many requests is as slow as the slowest; a 1% tail per request becomes common for the whole.
Head-of-line blocking: about 60% (58.6% for large switches).