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
    • Reads and Writes Are Not Symmetric
    • The Request/Response Model
    • Address Maps and Decoding
    • Register Semantics
    • Combined and Split Transactions
    • Independent Channels
    • Posted and Non-Posted Writes
    • Bursts
    • Alignment, Strobes and Narrow Transfers
    • Boundary Rules
    • Width and Endianness Conversion
    • Transaction Attributes
    • Atomics
    • Sideband or In-Band
    • Interrupts and Notification
    • Descriptors, Rings and Doorbells
    • Bridges and Protocol Conversion
    • Protocols Compared: Transactions
    • Drills: Transactions
  • 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
Loading lesson

‹Part 5: Transactions
  1. Topics
  2. First Principles of Hardware Protocols
  3. Part 5: Transactions
  4. Sideband or In-Band

Part 5 · Transactions · Working (W)

Sideband or In-Band

A signal can have its own wire or travel as a message on the main data path. What each costs in pins, reach, latency and ordering, and why so many signals have moved from wires to messages.

On this page

    Note

    Level: Working (W) · Answers: What exactly is being asked?

    Before this: The Request/Response Model

    A device finishes a DMA transfer into memory and raises its interrupt wire. The interrupt reaches the processor in a few nanoseconds, by a short direct path. The last DMA writes are still queued in a buffer on the way to memory. The driver reads the buffer and finds old data. The wire was faster than the data it was announcing.

    Should a signal travel on its own wire or as a message on the main path, and what does each choice cost?

    The obvious answer, and why it breaks

    The obvious way to send a signal (an interrupt, a reset request, a power-state change, an error flag) is a wire: one bit, instant, simple. Inside one small block that is right. Across a chip or between chips, wires cost pins and routing, do not cross links that carry packets, and, as the opening shows, travel by a different path from the data, so they arrive in an order nobody chose.

    The idea: sideband or in-band

    Sideband (a dedicated wire)

    In-band (a message on the data path)

    Cost

    A wire or pin per signal, per destination

    No extra wires: shares the existing link

    Reach

    As far as you can run a wire; does not cross a serial link or a switch

    Anywhere the data path reaches, through bridges and switches

    Latency

    Very low and fixed

    Like any transaction: queued behind other traffic

    Ordering with data

    None: may overtake the data it refers to

    Can be ordered behind earlier data on the same path

    Scaling

    One wire per signal; many signals means many wires

    A new signal is a new message code

    Works when the data path is down

    Yes

    No: reset and link-training signals often stay sideband for this reason

    The ordering row is the subtle one. A message that travels behind the data on the same path cannot arrive before the data, if the path keeps order. That turns the opening race into a non-issue (lesson 7.9).

    Which signals go where

    • In-band: interrupts (as message writes), error reports, power-management requests, vendor messages: anything that should be ordered with data or must cross links and switches.

    • Sideband: reset, clocks, wake signals and link-training controls, which must work before or without the data path; and signals inside one block where a wire is free.

    • Both: some systems keep a wire for urgency and send a message for detail.

    How real protocols chose

    Protocol

    Choice

    PCI Express

    Interrupts are in-band: message-signalled interrupts are posted memory writes, and legacy wired interrupts (INTx) are emulated with messages. Error reporting and power management also use messages. Reset and some wake signals remain sideband.

    AXI and APB

    No messages; interrupts are separate wires from each peripheral to an interrupt controller.

    What breaks

    The opening race is the classic one. A device's interrupt wire outran its DMA writes, which were still in a write buffer. Drivers worked around it by reading a device register before touching the data, which forces earlier writes on that path to complete first (lesson 5.7). Message-signalled interrupts remove the need: the interrupt is a write on the same path, behind the data, so it cannot overtake it.

    Why this matters

    Senior lens. For every sideband wire, ask what it is ordered against. If it announces data (completion, ready, error), it races that data unless something forces order. For every in-band message, ask what happens when the data path is down or congested: urgent signals stuck behind bulk traffic, or reset requests that cannot be delivered. The answer decides which signals stay on wires.

    Interview

    Asked: "Why did interrupts move from wires to messages?"

    Weak answer: Messages are faster.

    Strong answer: Wires cost pins and routing per signal, and they don't cross serial links or switches, so on PCIe they'd need extra pins on every slot. Worse, a wire takes a different path from the data, so a completion interrupt can overtake the DMA writes it announces. A message-signalled interrupt is a posted memory write on the same path, so it scales with no extra pins, crosses switches, and stays ordered behind the data. Wires remain for things that must work without the data path, like reset.

    Follow-ups: (1) What signals must stay sideband? (2) How did drivers avoid the race with wired interrupts?

    Check yourself Why can't a reset request always be in-band?

    Reset may be needed precisely when the data path is broken or not yet trained, so it needs a path that does not depend on it.

    Check yourself What property of the data path makes an in-band interrupt safe against the opening race?

    Ordering: the interrupt message travels behind the earlier writes on the same path, and the path does not let it pass them.

    Key takeaways

    • Sideband wires are fast and simple but cost pins, do not cross links, and race the data they announce.

    • In-band messages share the data path, cross switches, and can be ordered behind the data.

    • Signals that must work without the data path, such as reset, stay sideband.

    Keep going

    Next: Lesson 5.15, Interrupts and Notification. Level, edge or message; polling or interrupts; and why fast devices coalesce.

    Related topics

    • Part 5 overview: Transactions

    Previous

    81 / 234

    Next: Interrupts and Notification

    Up next

    Up nextInterrupts and Notification

    Sign in to save progress

    Practice this lessonReport an error

    See also

    • Reads and Writes Are Not Symmetric
    • The Request/Response Model
    • Address Maps and Decoding