Google · Behavioral
CPU Architecture and Simulator Design Deep Dive
TrueInterview
September 16, 2026 · 1 min read
Requirements
- The English-language virtual onsite consists of three technical interviews, then a behavioral discussion with the hiring manager.
- You will need to complete an assembly-code test.
- Discuss contemporary CPU microarchitecture concepts, such as branch prediction, MOESI cache coherence, caches, MSHRs, VIPT, TLBs, page walks, and reorder buffers.
- Contrast time-advancement strategies for simulators (cycle-stepped versus event-driven) independently from fidelity levels (cycle-accurate versus cycle-approximate).
- Describe how to speed up a simulator without sacrificing the fidelity its use case demands.
- Prepare to design a branch-predictor simulator module and defend its interfaces, state, update timing, and accuracy–performance tradeoffs.
Notes
- The questioning is challenging yet interactive; hints are offered when your reasoning is moving in a fruitful direction.
- Surface-level definitions won't suffice. Each mechanism must be tied to pipeline behavior, correctness, or measurable performance effects.
Preparation
- Sketch a modern out-of-order pipeline from memory and walk a branch miss, cache miss, TLB miss, and coherence transition through it.
- Build a compact branch-predictor simulator in C++ that uses deterministic traces and measures accuracy.
- Construct a two-axis comparison: one axis compares cycle-stepped versus event-driven scheduling, the other axis contrasts cycle-accurate versus cycle-approximate fidelity; assess speed, event ordering, debugging difficulty, and accuracy.
- Rehearse reading brief assembly snippets and articulating dependencies, stalls, speculation, and memory effects out loud.
Loading comments…