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
    • Shared Media and Topologies
    • Arbitration Policies
    • Fairness and Starvation
    • Priority Inversion
    • Arbitration Granularity
    • Distributed Arbitration
    • Quality of Service
    • Virtual Channels
    • Routing
    • Multicast and Broadcast
    • Protocols Compared: Sharing and Arbitration
    • Drills: Sharing and Arbitration
  • 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 8: Sharing and Arbitration
  1. Topics
  2. First Principles of Hardware Protocols
  3. Part 8: Sharing and Arbitration
  4. Multicast and Broadcast

Part 8 · Sharing and Arbitration · Principal (P)

Multicast and Broadcast

Some messages must reach many agents: coherence snoops, invalidations, barriers, interrupts to several cores. What broadcast and multicast cost in bandwidth and responses, why the cost grows with the system, and how large systems avoid it.

On this page

    Note

    Level: Principal (P) · Answers: Who gets the wire?

    Before this: Routing

    A 4-core system keeps its caches coherent by broadcasting every cache miss to every other core: "does anyone have this line?". It works well. The same design scaled to 64 cores sends 63 snoops and collects 63 answers for every miss, and the snoop traffic alone exceeds the bandwidth the fabric was built for. Nothing was wrong at 4 cores. Broadcast grows with the system, and the data it carries does not.

    What does it cost to send one message to many agents, and how do large systems avoid it?

    The obvious answer, and why it breaks

    When a message concerns everyone, or you do not know who it concerns, the obvious answer is to send it to everyone. On a shared bus that is free: every agent sees every transaction anyway. On a point-to-point fabric each copy is a separate message on separate links, often with a separate response to collect, so the cost per event grows with the number of agents, and so does the rate of events. Total traffic grows roughly with the square of the system size.

    The idea: three ways to reach many

    Method

    How

    Cost per event

    Scales?

    Broadcast

    Send to every agent

    N − 1 messages (and often N − 1 responses)

    Poorly: grows with N

    Multicast

    Send to a chosen set, replicating at branch points in the network

    Only the targets, shared links carry one copy

    Better, but needs the set and replication support

    Filtering (directory)

    Keep track of who actually needs the message, and send only to them

    Usually 0 to a few messages

    Well; costs the tracking state

    Broadcast pays for every agent on every event; a directory pays for state that lets it send only where needed.

    Worked numbers

    Illustrative: every core misses its cache 20 million times per second, and each snoop and answer is one 16-byte message.

    Diagram
    Cores:                             4            64
    Snoops per miss (broadcast):       3            63
    Snoop messages per second:   4 x 20e6 x 3   =  0.24e9    64 x 20e6 x 63 = 80.6e9
    Plus answers (same count), 16 bytes each:  ~7.7 GB/s       ~2.6 TB/s
    With a directory (say 0.2 holders per miss on average): 64 x 20e6 x 0.2 x 2 x 16 B = ~8.2 GB/s

    Where many-target messages appear

    • Coherence snoops and invalidations (Part 13): "who has this line?" and "drop your copy". Snooping protocols broadcast; directory protocols filter.

    • Interrupts to several cores and inter-processor interrupts: usually multicast by an interrupt controller with a target mask.

    • Barriers and synchronisation: "everyone has arrived" collected from many agents, often with a tree to combine answers.

    • Configuration and power broadcasts: rare enough that broadcast is fine.

    Collecting answers is often the harder half: a broadcast that needs a response from every target must wait for the slowest, and the requester must track N − 1 outstanding replies (Part 6).

    How real systems chose

    System

    Approach

    Small coherent systems on a shared bus

    Broadcast snooping: every cache watches every transaction.

    Large coherent fabrics

    Directories or snoop filters that track which caches may hold each line, so most misses need no snoop at all, and the rest go only to the holders.

    On-chip networks

    Multicast support in routers (replicating at branch points) for the few message types that need many targets.

    What breaks

    The opening system (illustrative): broadcast snooping scaled from 4 to 16 cores on a mesh, and snoop traffic rose about 20 times while useful data traffic rose 4 times. Latency to memory rose with it, because snoops competed for the same links. A snoop filter that tracked which cores held each line removed most snoops, and the latency fell back.

    Why this matters

    Principal lens. Any message that goes to all agents has a cost that grows with the system twice: more targets per event, and more events. For each broadcast in a design, estimate its rate times the agent count at the largest configuration you will build, including the answers to collect. Replace broadcast with filtering or multicast wherever that product approaches the fabric's capacity, and keep true broadcast for rare events.

    Interview

    Asked: "Why do large systems avoid broadcast snoops?"

    Weak answer: Because they're slow.

    Strong answer: Because the cost grows with the square of the system. Each miss sends N − 1 snoops and usually collects N − 1 answers, and the number of misses also grows with N. At 4 cores that's fine; at 64 cores it can exceed the fabric's bandwidth. Large systems use directories or snoop filters that track which caches may hold a line, so most misses need no snoop and the rest go only to the holders, at the cost of tracking state and an extra lookup.

    Follow-ups: (1) What does a directory cost? (2) Why is collecting the answers the harder half?

    Check yourself A broadcast goes to 31 other agents, each of which answers. How many messages per event?

    62: 31 requests out and 31 answers back.

    Check yourself Why is broadcast nearly free on a shared bus but expensive on a mesh?

    On a bus every agent already sees every transaction; on a mesh each copy is a separate message over separate links.

    Key takeaways

    • Broadcast costs N − 1 messages (and often N − 1 answers) per event, and events grow with N too.

    • Multicast sends only to a chosen set; directories and snoop filters send only where needed.

    • Keep true broadcast for rare events; filter or multicast anything frequent at scale.

    Keep going

    Next: Protocols Compared: Sharing and Arbitration. How a dozen protocols decide who gets the wire, side by side.

    Related topics

    • Part 8 overview: Sharing and Arbitration

    • Architecture course: Snoop or Directory

    Previous

    126 / 234

    Next: Protocols Compared: Sharing and Arbitration

    Up next

    Up nextProtocols Compared: Sharing and Arbitration

    Sign in to save progress

    Practice this lessonReport an error

    See also

    • Shared Media and Topologies
    • Arbitration Policies
    • Fairness and Starvation