Two-Stage Address Translation for Virtualized Systems

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing IOMMU architectures face issues with unpredictable performance, limited scalability, and inability to support virtualization and memory isolation for data-intensive applications like high-definition video, due to large cache requirements, limited address ranges, and lack of bandwidth.

Innovation Solution

A System on Chip (SoC) architecture incorporating a Memory Management Unit (MMU), System MMU (SMMU), Physical Address Table (PAT), and Peripheral Virtualization Unit (PVU), with a routing circuit that routes memory access requests based on addresses and attributes, enabling two-stage address translation and memory isolation across virtual machines.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Device complexity

If a single-stage address translation architecture is used, then device complexity is reduced, but performance becomes unpredictable and scalability is limited

Engineering Contradiction:
Improveaddress translation architectureVSAvoidperformance predictability
Core Design Contradiction:
Device complexityVSProductivity

Solution Approach 1:

The address translation architecture is segmented into two distinct stages: first stage translation converts virtual addresses to intermediate physical addresses, and second stage translation converts intermediate physical addresses to final physical addresses. This segmentation allows each stage to be independently optimized and managed, improving performance predictability while maintaining manageable complexity through modular design.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

An intermediate physical address space is introduced as a mediator between virtual addresses and final physical addresses. This intermediary layer enables flexible memory management and isolation between virtual machines, allowing the system to achieve better performance characteristics without directly increasing overall system complexity.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Adaptability or versatility

If large cache size is used in IOMMU, then address translation capability is improved, but device complexity and memory requirements increase

Engineering Contradiction:
Improveaddress translation capabilityVSAvoidcache requirements
Core Design Contradiction:
Adaptability or versatilityVSDevice complexity

Solution Approach 1:

The translation capability is segmented across two stages, each with its own translation buffer unit (TBU). This allows the system to achieve comprehensive address translation capability while distributing cache requirements across multiple smaller, more manageable units rather than requiring one large cache in a single-stage architecture.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The system adds a temporal dimension to address translation by using translation buffers that cache intermediate results from the first stage translation. This allows frequently translated addresses to be quickly resolved without requiring large cache sizes, improving capability while controlling complexity.

Inventive Principle:
Principle #17Another dimension (Dimensionality change)

3Device complexity

If single address space is used, then device complexity is reduced, but memory isolation and virtualization support are lost

Engineering Contradiction:
Improveaddress space managementVSAvoidvirtualization support
Core Design Contradiction:
Device complexityVSAdaptability or versatility

Solution Approach 1:

The address space is segmented into multiple independent intermediate physical address spaces, each associated with a specific virtual machine. This segmentation enables memory isolation between virtual machines while maintaining relatively simple management within each isolated space, as each can be managed independently by its own translation contexts.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The two-stage translation architecture provides multi-functionality by supporting both virtualization (through multiple translation contexts for different VMs) and non-virtualized operation (through a single translation context). The same hardware infrastructure adapts to different operational modes without requiring separate systems.

Inventive Principle:
Principle #6Universality (Multi-functionality)

4Device complexity

If limited address range is used, then device complexity is reduced, but scalability for data-intensive applications is limited

Engineering Contradiction:
Improveaddress range managementVSAvoidscalability
Core Design Contradiction:
Device complexityVSAdaptability or versatility

Solution Approach 1:

The system extends the addressable space by introducing an intermediate physical address dimension between virtual and final physical addresses. This additional dimensional layer allows the system to support large address ranges required for data-intensive applications like high-definition video while maintaining manageable complexity through the structured two-stage translation process.

Inventive Principle:
Principle #17Another dimension (Dimensionality change)

Data Source

PatentUS20230350811A1Real time input/output address translation for virtualized systems
Publication Date: 2023.11.02 TEXAS INSTRUMENTS INC
  • US20230350811A1 patent drawing
  • US20230350811A1 patent drawing
  • US20230350811A1 patent drawing

AI summary

In an example, a device includes a memory and a processor core coupled to the memory via a memory management unit (MMU). The device also includes a system MMU (SMMU) cross-referencing virtual addresses (VAs) with intermediate physical addresses (IPAs) and IPAs with physical addresses (PAs). The device further includes a physical address table (PAT) cross-referencing IPAs with each other and cross-referencing PAs with each other. The device also includes a peripheral virtualization unit (PVU) cross-referencing IPAs with PAs, and a routing circuit coupled to the memory, the SMMU, the PAT, and the PVU. The routing circuit is configured to receive a request comprising an address and an attribute and to route the request through at least one of the SMMU, the PAT, or the PVU based on the address and the attribute.