Computer Architecture Interview Guide
Every question uses the same frame: what it tests, progressively stronger answers, green and red flags, follow-ups and a practical scenario. Strong candidates reason from a mechanism, not from a remembered fact.
Why can iterating an array be several times faster than iterating a linked list, when both are O(n)?
Is a 4 GHz CPU always faster than a 3 GHz CPU?
What is a cache line, and why should an application engineer care about one?
Why can an unpredictable branch cost far more than the work inside it?
Virtual memory is usually described as an operating-system feature. What hardware participates in it?
Two threads increment two different variables and never touch each other's data, yet adding the second thread makes the program slower. What is happening?
What does it mean for an operation to be atomic, and what does that not give you?
When does SIMD help, and what stops a loop from being vectorized?
Why are GPUs dramatically faster than CPUs for some workloads and slower for others?
What is the difference between an instruction set architecture and a microarchitecture, and why does the distinction matter?
A loop shows low IPC, a low L1 miss rate, a high last-level cache miss rate and memory bandwidth near the platform maximum. Is it compute-bound or memory-bound, and what would you do?
Reordering the fields of a struct changes its size without removing any field. Why?
A lock-free structure works reliably on x86-64 and fails intermittently on AArch64. What class of bug is this, and how do you reason about it?
What is NUMA, and at what point does it start to affect application performance?
A machine reports 32 logical CPUs but has 16 physical cores. Do you have 32 cores worth of compute?
What is endianness, and in what situations does it actually affect your code?