Computer Architecture · Cluster
Accelerators
Specialized units and host-device interfaces.
- 01 The Cost of Generality: Why Fixed-Function Logic Wins What a programmable core spends on instruction issue and operand fetch, how Amdahl bounds the payoff of offloading work, and where a fixed-function unit actually beats a CPU.
- 02 Memory-Mapped Registers and the Ordering Rules Behind a Store How a device BAR becomes an address the core can load and store, why a posted write is not a completed write, and what a read-back actually guarantees.
- 03 Descriptor Rings and the Producer-Consumer Contract How a ring buffer carries work from a driver to a device without locks, what the ownership bit buys, and why the wrap-around index is the hard part.
- 04 Device DMA and the IOMMU Boundary What a device must be given before it can write to host memory, how an IOMMU turns a device address into a machine address, and what that translation costs.
- 05 Interrupt Moderation and Event Delivery at High Rates Why one interrupt per completed transfer collapses at high packet rates, how coalescing timers and counters bound the damage, and what a polled-mode driver gives up.
- 06 Systolic Arrays and Dataflow Scheduling How a grid of multiply-accumulate cells reuses operands by moving them between neighbours, why the schedule is the compiler's job, and where the approach stops paying.
- 07 Shared Virtual Addressing and Peer-to-Peer Transfers What changes when a device uses the process page table directly, why a PASID is needed, and what must happen before one device writes into another device's memory.
- 08 Scheduling and Preemption on Accelerator Queues Why a device queue is a scheduling entity, how hardware contexts make preemption possible, and what mid-kernel eviction costs when the device has no save state.
- 09 Virtualizing Accelerators Without Hardware Partitioning How software emulation, mediated passthrough, and API remoting differ, what each costs in exits, and why a device with a single register window resists sharing.
- 10 Data Movement as the Real Bottleneck in Offload Design How to account for the bytes an offload costs, which boundary dominates at each scale, and why the offload with the best local speedup is often the wrong one.