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
    • Access Attributes
    • Firewalls and Filtering
    • Address Translation for Devices
    • Link Integrity and Encryption
    • Fabric Denial of Service
    • Isolation and Multi-Tenancy
    • Drills: Security and Isolation
  • Part 15: Specifying and Verifying11
  • Part 16: Protocols Dissected17
  • Part 17: Capstones5
  • Part 18: Interview Preparation6
Loading lesson

‹Part 14: Security and Isolation
  1. Topics
  2. First Principles of Hardware Protocols
  3. Part 14: Security and Isolation
  4. Isolation and Multi-Tenancy

Part 14 · Security and Isolation · Principal (P)

Isolation and Multi-Tenancy

When several tenants share one chip, isolation means more than access control: separate identities, address spaces, devices, bandwidth and cache, and attention to what one tenant can observe about another. How the mechanisms of this part combine.

On this page

    Note

    Level: Principal (P) · Answers: Who is allowed to ask?

    Before this: Address Translation for Devices, Fabric Denial of Service

    A cloud server runs eight virtual machines for eight different customers. They share the processor cores, the caches, the memory, the network card and the accelerator. Each customer expects that no other can read their data, change it, slow them down noticeably, or learn anything about what they are doing. Every mechanism in this part has to work at once for that promise to hold.

    What does it take to isolate tenants who share one chip?

    The obvious answer, and why it breaks

    The obvious answer is that the hypervisor's page tables keep virtual machines apart. They keep processor accesses apart. Devices issue their own requests (lesson 14.3); shared queues and memory bandwidth let one tenant slow another (lesson 14.5); and shared caches and fabrics leak timing information, letting one tenant infer another's activity without ever reading its memory. Isolation is a property of the whole system, layer by layer.

    The idea: isolate every shared resource

    Resource

    Threat

    Mechanism

    Memory, from CPUs

    Reading or writing another tenant's memory

    Hypervisor-controlled second-stage page tables

    Memory, from devices

    DMA into another tenant's memory

    IOMMU with per-function tables (lesson 14.3)

    Devices

    Sharing one device's registers and queues

    Virtual functions: one physical device presents separate functions, each assigned to one tenant

    Bandwidth and queues

    Slowing other tenants by volume

    Fair arbitration, limits and regulators (lesson 14.5)

    Caches

    Evicting another tenant's data; observing its accesses through timing

    Cache partitioning; flushing on switches

    Links

    Interception between chips

    Link encryption and integrity (lesson 14.4)

    Flowchart: a tenant request is given an identity (virtual function or stream ID), translated by the IOMMU with the tenant's page tables; unmapped accesses fault with an error response; mapped ones go to a per-tenant queue and bandwidth regulator, then through partitioned cache and memory bandwidth to the tenant's memory.
    A tenant's device request is identified, translated and checked against that tenant's tables, then queued and regulated separately, before it reaches partitioned shared resources.

    The hard part: what tenants can observe

    • Timing channels: if one tenant's accesses change how long another's take (shared cache sets, shared queues, row buffers in DRAM), the second can infer the first's activity.

    • Partitioning reduces them: separate cache ways or sets, separate queues, fixed bandwidth shares make one tenant's behaviour less visible to another.

    • At a cost: partitioning leaves capacity idle that sharing would have used. Each system chooses how much interference, and how much observability, to accept.

    How real systems chose

    Mechanism

    Example

    Virtual functions

    PCI Express SR-IOV: one device presents virtual functions assigned to different virtual machines (fact P35)

    Per-tenant device translation

    Arm SMMU, Intel VT-d; PCIe PASID for address spaces within a function (facts A28, P35)

    Cache and bandwidth partitioning

    Arm MPAM, Intel RDT (fact A28)

    Link protection

    PCIe IDE (fact P35)

    What breaks

    A multi-tenant accelerator (illustrative) gave each tenant its own virtual function and IOMMU tables, but all tenants' work shared one command queue inside the device. A tenant submitting very long jobs delayed every other tenant's jobs by seconds. Per-function queues with a time-sliced scheduler inside the device restored predictable service: isolation must extend inside shared devices, not stop at their boundary.

    Why this matters

    Principal lens. Write the isolation promise down (confidentiality, integrity, performance and observability) and check it against every shared resource: memory paths from CPUs and devices, device-internal queues, caches, fabric queues, memory bandwidth and links. Each resource needs an identity to key on, a mechanism, and a decision about how much interference and leakage is acceptable.

    Interview

    Asked: "What does it take to isolate tenants sharing one SoC?"

    Weak answer: Separate page tables for each virtual machine.

    Strong answer: Page tables only cover processor accesses. You also need an identity for every request, so devices are split into virtual functions, SR-IOV in PCIe, each assigned to one tenant; an IOMMU with per-function tables so device DMA stays in the tenant's memory; fair arbitration, limits and bandwidth regulation so one tenant can't slow others; cache and memory-bandwidth partitioning, like MPAM or RDT, which also reduces timing channels; isolation inside shared devices' queues; and link encryption where traffic leaves the chip. Each resource needs an identity to key on and a decision about acceptable interference.

    Follow-ups: (1) Why do shared caches leak information between tenants? (2) What does SR-IOV give a hypervisor?

    Check yourself Two tenants have separate virtual functions and IOMMU tables, but share a device's internal job queue. What can still go wrong?

    One tenant can delay the other's jobs: performance isolation is missing inside the device.

    Check yourself Why does cache partitioning help confidentiality, not just performance?

    It stops one tenant's accesses from evicting the other's lines, which removes a timing channel that reveals activity.

    Key takeaways

    • Isolating tenants means isolating every shared resource, not only processor memory accesses.

    • Identities (virtual functions, stream IDs) key IOMMU tables, queues, regulators and partitions.

    • Partitioning reduces interference and timing leakage at the cost of idle capacity; decide how much of each is acceptable.

    Keep going

    Next: Drills: Security and Isolation. Interview questions, a whiteboard exercise and a ten-question checkpoint for Part 14.

    Related topics

    • Part 14 overview: Security and Isolation

    Previous

    194 / 234

    Next: Drills: Security and Isolation

    Up next

    Up nextDrills: Security and Isolation

    Sign in to save progress

    Practice this lessonReport an error

    See also

    • Access Attributes
    • Firewalls and Filtering
    • Address Translation for Devices