Skip to content
DenseChip
Learn
PracticeCode labInterview

DenseChip

Navigate

Menu

LearnPracticeCode labInterview

Tools

All toolsSV editorCode repoResume
DenseChip

Practice, courses, and chip-design tools in one focused workspace.

LearnPracticeCode labInterviewToolsLearning paths

© 2026 DenseChip

AboutContactPrivacyTerms
Skip to lesson

Course contents

  • How to Use This Course
  • Reading Paths
  • Concept Map
  • How to Read the Diagrams
  • Part 0: What Is a Protocol?10
  • Part 1: Timing and Clocking11
  • Part 2: Encoding and Framing12
  • Part 3: Handshakes13
  • Part 4: Flow Control17
  • Part 5: Transactions19
  • Part 6: Concurrency and Performance17
  • Part 7: Ordering13
  • Part 8: Sharing and Arbitration12
  • Part 9: Deadlock and Liveness13
  • Part 10: Reliability and Recovery20
  • Part 11: Bring-Up and Link Management10
  • Part 12: Power8
  • Part 13: Shared State and Coherence9
  • Part 14: Security and Isolation7
  • Part 15: Specifying and Verifying11
  • Part 16: Protocols Dissected17
  • Part 17: Capstones5
  • Part 18: Interview Preparation6
    • The Reasoning Framework
    • Question Bank: Foundation
    • Question Bank: Senior
    • Question Bank: Principal
    • Whiteboard Drills
    • System Design Questions
Loading lesson

‹Part 18: Interview Preparation
  1. Topics
  2. First Principles of Hardware Protocols
  3. Part 18: Interview Preparation
  4. Question Bank: Senior

Part 18 · Interview Preparation · Senior (S)

Question Bank: Senior

Fifty senior-level protocol interview questions with strong answers and the follow-up an interviewer is likely to ask next: sizing, ordering, deadlock arguments, reliability numbers, power, coherence, security and verification.

On this page

    Note

    Level: Senior (S) · Answers: Can you explain it under pressure?

    Before this: Question Bank: Foundation

    Senior questions expect numbers, failure modes and how you would verify. Answer out loud, then answer the follow-up too: interviewers use follow-ups to find the edge of your understanding.

    Handshakes and flow control

    Check yourself Write the assertion that data is stable while stalled.

    assert property (@(posedge clk) disable iff (!rst_n) valid && !ready |=> $stable(data)); with a companion valid && !ready |=> valid and a cover for long stalls. Likely follow-up: Why |=> rather than |->?

    Check yourself How do you register ready without losing throughput?

    Add a skid buffer: when ready falls, the word already sent is caught in a spare register and replayed, so full throughput survives a registered ready. Likely follow-up: How many entries does it need, and why?

    Check yourself Size the credit buffer for a 20-cycle round trip at one flit per cycle.

    At least 20 flits; fewer limits throughput to buffer/round-trip, e.g. 8 flits gives 40%. Likely follow-up: What extra latency counts in the round trip?

    Check yourself Why separate credit pools by message class?

    So one class (requests) cannot use every credit and block another (completions) that it depends on: message-dependent deadlock. Likely follow-up: What is the minimum reservation per class?

    Check yourself What goes wrong if credits are not re-initialised after a one-sided reset?

    The sender's count disagrees with the receiver's empty buffer: overflow, or permanently reduced throughput. Likely follow-up: How does PCIe avoid it?

    Check yourself When would you choose credits over valid/ready on chip?

    When the hop's round trip is several cycles (long wires, many register slices), so ready would need deep skid buffers. Likely follow-up: What does credit initialisation require at start-up?

    Check yourself What is head-of-line blocking and how do you remove it?

    A blocked packet at a queue head stalls packets behind it bound elsewhere; virtual output queues or virtual channels remove it. Likely follow-up: What throughput does a FIFO input-queued switch saturate at?

    Check yourself Why can credit return batching hang a link?

    If the receiver waits to return credits until a batch is full and the sender has fewer credits than the batch, no batch ever forms. Likely follow-up: How would you fix it while keeping batching?

    Transactions, concurrency and ordering

    Check yourself How many outstanding reads do you need for 32 GB/s with 64-byte lines and 200 ns latency?

    Little's law: 0.5e9 lines/s × 200 ns = 100 outstanding. Likely follow-up: What happens to throughput if latency doubles?

    Check yourself Same-ID ordering in AXI: what does an interconnect have to do to preserve it?

    Keep same-ID transactions from one manager on one path, or block a same-ID request to a different target until earlier ones complete; remap IDs uniquely. Likely follow-up: What breaks if two managers' IDs collide after remapping?

    Check yourself How do you score out-of-order responses?

    One queue of predictions per ordering domain (ID or tag), compare each response with the oldest in its queue, report unexpected and missing responses. Likely follow-up: What does a duplicate response do to that queue?

    Check yourself A write then a read to the same address on AXI: does the read see the write?

    Not guaranteed; there is no read/write ordering. Wait for the write response before issuing the read. Likely follow-up: Does the same ID help?

    Check yourself What does early acknowledgement of writes break?

    A requester that took the early response as proof of completion may signal a consumer before the data is visible. Likely follow-up: Where in a system is early acknowledgement safe?

    Check yourself Why must a PCIe read request not pass an earlier posted write?

    Producer-consumer: the read may be the consumer's check of data written earlier; passing it could return stale data. Likely follow-up: Why are posted writes allowed to pass reads?

    Check yourself What is the cost of a reorder buffer?

    Area for every outstanding response and latency for responses waiting on earlier ones; sized by outstanding count. Likely follow-up: When is out-of-order completion without a reorder buffer acceptable?

    Check yourself Split completions: what must the requester handle?

    Several completions for one read, in address order for that read, interleaved with others' completions, matched by tag and byte count. Likely follow-up: What field tells it a read is complete?

    Check yourself How do you order an interrupt after DMA data?

    Make the interrupt a posted write behind the data in the same ordered stream (PCIe MSI), or read back before signalling. Likely follow-up: What if the interrupt is a sideband wire?

    Check yourself What is a point of serialisation?

    The place where requests to an address are ordered, such as a home node or a memory controller queue; ordering guarantees are only as strong as what happens before it. Likely follow-up: Why can two paths to one target break ordering?

    Arbitration, deadlock and liveness

    Check yourself How does priority inversion happen on a bus?

    A low-priority holder blocks a high-priority waiter while medium-priority traffic runs; fix with priority inheritance or bounded holding. Likely follow-up: Give a real example.

    Check yourself Prove a ring network deadlock-free.

    A ring's channel dependency graph is a cycle; add a dateline with two virtual channels so the graph is acyclic. Likely follow-up: What breaks if adaptive routing is added?

    Check yourself What is the consumption assumption?

    That every endpoint eventually consumes messages it receives regardless of what it is waiting for; violating it creates message-dependent deadlock. Likely follow-up: How does PCIe guarantee completions are consumed?

    Check yourself Retry or preallocation for a home node with limited trackers?

    Retry avoids worst-case buffers but risks livelock; protocol credits (CHI) make retry fair and bounded. Likely follow-up: How does a protocol credit prevent livelock?

    Check yourself How do you debug a hang in simulation?

    Find the stuck handshake, the missing enabling condition, the state behind it, check it with a conservation rule, go back to the first wrong cycle. Likely follow-up: What conservation rule applies to a credit link?

    Check yourself Why can't simulation prove absence of deadlock?

    Deadlock is a liveness failure; simulation only explores generated sequences. Use a dependency argument or formal. Likely follow-up: How would you bound it to catch it in simulation?

    Check yourself How would you make a watchdog useful rather than just resetting?

    Capture state on expiry (outstanding transactions, FSM states, a frozen trace), report which requester was stuck, then recover. Likely follow-up: What should the timeout value be?

    Check yourself What is a retry livelock?

    Requests keep being retried and rejected in a pattern where none progresses; break it with randomised back-off, fairness or reservations. Likely follow-up: How do protocol credits avoid it?

    Reliability and bring-up

    Check yourself How many sequence bits for a window of 40 packets with go-back-N?

    Window ≤ 2^n − 1, so n = 6 (63). Likely follow-up: And for selective repeat?

    Check yourself Size a replay buffer.

    It must hold every unacknowledged packet: link rate × ACK round trip (including ACK coalescing and processing), in packets or bytes. Likely follow-up: What happens if ACKs are coalesced too much?

    Check yourself Why does PCIe have both LCRC and ECRC?

    LCRC protects each link and is regenerated at each hop; ECRC is end to end, covering data inside switches. Likely follow-up: When is ECRC worth enabling?

    Check yourself Why poison data rather than drop the transaction?

    The transaction completes; only the consumer of the data gets an error, so nothing hangs and the error is contained. Likely follow-up: What if a bridge strips the poison bit?

    Check yourself Why did PCIe 6 add FEC?

    PAM4 raised the raw error rate so replay alone would cost too much bandwidth; FEC corrects most errors in place, with CRC and replay behind it. Likely follow-up: Why fixed-size flits?

    Check yourself Compute errors per day for a 16 Gb/s link at BER 1e-12.

    16e9 × 1e-12 = 0.016 per second, about 1,400 per day. Likely follow-up: What undetected rate does a 32-bit CRC give across a fleet?

    Check yourself What must happen to outstanding requests when a link goes down?

    They must complete with errors (or time out), credits and replay state are discarded, and traffic resumes only after retraining and re-initialisation. Likely follow-up: What is different about link recovery?

    Check yourself How do two link partners agree on speed?

    Each advertises its abilities, both take the highest common setting by the same rule, confirm it, and fall back if it fails to train. Likely follow-up: Why confirm the advertisement?

    Check yourself What is the rule for reserved bits?

    Senders set them to 0; receivers ignore them, so later versions can give them meaning. Likely follow-up: What if receivers checked them?

    Check yourself Why must start-up be order-independent?

    Blocks leave reset at different times; explicit readiness (credits, link-up) means whichever starts first simply waits. Likely follow-up: Name a block that commonly leaves reset late.

    Power, coherence, security and verification

    Check yourself Compute the break-even time: P_on 100, P_lp 10, P_tr 150 mW, T_tr 10 µs.

    (150 − 10) × 10 / (100 − 10) ≈ 15.6 µs. Likely follow-up: How would you choose the idle timeout?

    Check yourself Why may a device deny a sleep request?

    Only it knows about outstanding or imminent work; denial prevents being cut off mid-transaction. Likely follow-up: What must it do before accepting?

    Check yourself What does the E state add to MSI?

    The knowledge that the copy is the only one, so the first write needs no bus transaction. Likely follow-up: What does O add?

    Check yourself When does snooping stop scaling?

    When broadcast traffic and lookups to every cache dominate; directories message only holders at the cost of indirection. Likely follow-up: What is back-invalidation?

    Check yourself Is a coherent system sequentially consistent?

    No; coherence orders one location, the memory model orders across locations, enforced by barriers. Likely follow-up: Give the flag-and-data example.

    Check yourself How do you keep DMA buffers consistent with caches?

    I/O coherent interconnect, or clean before device reads and invalidate around device writes with barriers and line-aligned buffers. Likely follow-up: Why invalidate after the DMA too?

    Check yourself Where should access permissions be checked?

    At or in front of the target, using unforgeable attributes carried with each request; untrusted requesters get attributes from the fabric. Likely follow-up: What should a bridge without a security bit drive?

    Check yourself Why put an IOMMU in front of devices?

    So DMA can only reach memory software mapped for that device, keyed on an identity it cannot forge. Likely follow-up: What does ATS require on unmap?

    Check yourself What coverage would convince you an AXI slave is done?

    Protocol coverage: handshake timing per channel, every outstanding count to the maximum, burst types, lengths, sizes and 4 KB edges, ordering cases, all responses, reset in flight, key crosses, every assertion's trigger. Likely follow-up: Why isn't code coverage enough?

    Check yourself When would you use formal on an interface?

    For handshakes, counters, credit loops, FIFOs, arbiters, ordering and deadlock; assume the partner's rules, assert your own, cover against over-constraint. Likely follow-up: What does a bounded proof tell you?

    Check yourself Why buy VIP for a standard protocol?

    Independence from your own reading of the specification, plus an agent, checker, coverage and compliance tests already exercised widely. Likely follow-up: How do you get independence for an in-house protocol?

    Check yourself What would you add to an interconnect for silicon debug?

    Status and sticky first-error capture, counters, timestamped trace frozen by triggers, and a debug path that works when the fabric is hung. Likely follow-up: What should trigger the freeze?

    Check yourself Is "every request gets a response" safety or liveness?

    Liveness; bound it, check for leftovers after draining, or prove it formally. Likely follow-up: How would you pick the bound?

    Check yourself How does a monitor know a burst ended?

    It samples only transfer cycles and closes the transaction on the protocol's end marker or final beat. Likely follow-up: What if it samples on valid alone?

    Key takeaways

    • Senior answers carry numbers: Little's law, round trips, window sizes, error rates.

    • Name the failure each mechanism prevents and how you would verify it.

    • Prepare for the follow-up: it probes the assumption behind your answer.

    Keep going

    Next: Lesson 18.4, Question Bank: Principal. Thirty open design questions and what interviewers listen for.

    Related topics

    • Part 18 overview: Interview Preparation

    Previous

    231 / 234

    Next: Question Bank: Principal

    Up next

    Up nextQuestion Bank: Principal

    Sign in to save progress

    Practice this lessonReport an error

    See also

    • The Reasoning Framework
    • Whiteboard Drills
    • System Design Questions