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
    • Why Ordering Matters
    • Ordering Scopes
    • The Point of Serialisation
    • Early and Final Acknowledgement
    • Fences and Barriers
    • Ordering Tables
    • Relaxed and ID-Based Ordering
    • Same-Address Hazards
    • Interrupt and Data Ordering
    • Memory Consistency Models
    • Ordering Across Bridges
    • Protocols Compared: Ordering
    • Drills: Ordering
  • 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 7: Ordering
  1. Topics
  2. First Principles of Hardware Protocols
  3. Part 7: Ordering
  4. The Point of Serialisation

Part 7 · Ordering · Senior (S)

The Point of Serialisation

Order between requests from different sources is decided at one place: the point where they first meet in a single queue. Where that point is, what it guarantees, and why acknowledgements must come from it.

On this page

    Note

    Level: Senior (S) · Answers: In what order do results become visible?

    Before this: Ordering Scopes

    Two processors write different values to the same address at almost the same time. Which write wins? Each processor issued its write first, from its own point of view. A trace on processor A's port shows A's write first; a trace on B's port shows B's first. The answer is decided somewhere else: at the one place in the fabric where the two writes first meet in a single line.

    Where in a system is the order of requests from different sources actually decided?

    The obvious answer, and why it breaks

    The obvious answer is "in the order they were issued". But there is no global clock that says which of two requests from different sources came first, and each travels its own path at its own speed. Until two requests reach a point where they must go one after the other, their order is undefined. After that point, it is fixed.

    The idea: the point of serialisation

    The point of serialisation for a set of requests is the first place where they all pass through a single, in-order structure: an arbiter feeding a queue, a target's input buffer, or, in a coherent system, the home node responsible for an address. Requests are ordered from that point on, and every agent must agree with the order chosen there.

    Requests from different sources have no order until they meet in one queue; that queue's order is the order everyone must see.

    What the point of serialisation decides

    • Which write wins to a shared address: the one serialised last.

    • What a read returns: the latest write serialised before it.

    • When a write may be acknowledged as globally visible: once it has been serialised, every later request to that address will see it. An acknowledgement sent earlier (from a buffer on the requester's side of that point) promises less (lesson 7.4).

    Where it lives

    System

    Point of serialisation

    Shared bus

    The bus itself: one transaction at a time, in arbitration order

    Interconnect with independent targets

    Each target's input queue, separately: there is no single order across targets

    Coherent fabric (Part 13)

    The home node (or directory) for each address: all requests for that address are ordered there

    Single in-order path

    The first in-order queue the requests share

    The second row matters most: in a fabric with many targets there are many points of serialisation, one per target, and no global order. Two observers can see writes to two different targets in different orders unless something else (a fence, a protocol rule) makes them agree.

    What breaks

    An interconnect (illustrative) acknowledged writes from a buffer on the requester side, before the arbiter in front of a shared memory. Requester A got its acknowledgement and signalled requester B, which read the location and saw an older value: A's write was still waiting at the arbiter behind other traffic. The acknowledgement had been sent from the wrong side of the point of serialisation. Moving it to after the arbiter fixed the bug, at the cost of a little latency.

    Why this matters

    Senior lens. For each shared resource, find its point of serialisation and check two things: all requests that must be ordered with each other do pass through it, and any acknowledgement that promises visibility is generated at or after it. In a multi-target fabric, remember there is no global order unless the design builds one.

    Interview

    Asked: "Where is order decided in an interconnect?"

    Weak answer: At the master, in issue order.

    Strong answer: At the point of serialisation: the first place where the competing requests pass through one in-order structure, typically the arbiter and queue in front of each target, or the home node for an address in a coherent system. Before that, requests from different sources have no defined order. After it, everyone must see that order. So an acknowledgement that claims a write is visible must come from at or after that point, and with many targets there's no single global order.

    Follow-ups: (1) Why can two observers disagree about the order of writes to two targets? (2) Where should a write acknowledgement come from?

    Check yourself Two requesters write to two different targets. Is there a single order of those two writes in the system?

    Not necessarily: each target serialises its own requests, and nothing orders writes at one target against writes at another.

    Check yourself Why is an acknowledgement sent before the point of serialisation weaker?

    The write has not yet been ordered against other requests to the same location, so a later reader may still be serialised ahead of it and see the old value.

    Key takeaways

    • Requests from different sources have no order until they meet in one in-order structure: the point of serialisation.

    • That point decides which write wins and what reads return; every agent must agree with it.

    • Acknowledgements that promise visibility must come from at or after it; many targets mean many separate orders.

    Keep going

    Next: Lesson 7.4, Early and Final Acknowledgement. When the write response arrives, is the data really in memory?

    Related topics

    • Part 7 overview: Ordering

    Previous

    106 / 234

    Next: Early and Final Acknowledgement

    Up next

    Up nextEarly and Final Acknowledgement

    Sign in to save progress

    Practice this lessonReport an error

    See also

    • Why Ordering Matters
    • Fences and Barriers
    • Ordering Tables