Back to results
US 7,444,493 B2Granted
Address translation for input/output devices using hierarchical translation tables
AssigneeIntel Corporation
InventorsIoannis Schoinas, Rajesh Madukkarumakumana, Gilbert Neiger, Richard Uhlig, Ku-jei King
Life of this patent
Estimating the term…
Abstract
An embodiment of the present invention is a technique to perform address translation. A table structure is indexed by a source identifier of an input/output (I/O) transaction specifying a guest physical address and requested by an I/O device to map the I/O device to a domain assigned to the I/O device. An address translation structure translates the guest physical address to a host physical address corresponding to the I/O transaction.
Claims44
An apparatus comprising:
- a table structure indexed by a source identifier of an input/output (I/O) transaction specifying a guest physical address and requested by an I/O device to map the I/O device to a domain assigned to the I/O device, the table structure comprising a root table to store root entries indexed by portion of the source identifier, and a context table coupled to the root table to store context entries referenced by the root entries, the context entries mapping the I/O device to the domain, each of the root entries comprising a root present indicator to indicate if the each of the root entries is present, and a context table pointer to reference the context table;
- and an address translation structure coupled to the table structure to translate the guest physical address to a host physical address corresponding to the I/O transaction;
- wherein each of the context entries comprises:
- a context present indicator to indicate if the each of the context entries is present;
- a domain identifier to identify the domain;
- a guest address width to define size of a physical address space of the domain;
- and
- an address space root to define base of the physical address space of the domain or a page table in the address translation structure.
5 more elements
Method comprising:
- indexing a table structure by a source identifier of an input/output (I/O) transaction specifying a guest physical address and requested by an I/O device to map the I/O device to a domain assigned to the I/O device, indexing the table structure comprising indexing a root table storing root entries by the source identifier, and mapping the I/O device to the domain by referencing a context table using the root entries, the context table storing context entries, indexing the root table comprising indicating if the each of the root entries is present using a root present indicator, and referencing the context table using a context table pointer;
- and
- translating the guest physical address to a host physical address corresponding to the I/O transaction using an address translation structure;
- wherein mapping the I/O device comprises:
- indicating if the each of the context entries is present using a context present indicator;
- identifying the domain using a domain identifier;
- defining size of a physical address space of the domain using a guest address width;
- and
- defining base of the physical address space of the domain or a page table in the address translation structure using an address space root.
6 more elements
A system comprising:
- a memory;
- an input/output (I/O) device requesting an I/O transaction, the I/O device having a source identifier, the I/O transaction specifying a guest physical address;
- a chipset coupled to the I/O device, the chipset including a remapping circuit, the remapping circuit comprising:
- a table structure indexed by the source identifier to map the I/O device to a domain assigned to the I/O device in the memory, the table structure comprising a root table to store root entries indexed by the source identifier, and a context table coupled to the root table to store context entries referenced by the root entries, the context entries mapping the I/O device to the domain, each of the root entries comprising a root present indicator to indicate if the each of the root entries is present, and a context table pointer to reference the context table, and
- an address translation structure coupled to the table structure to translate the guest physical address to a host physical address corresponding to the I/O transaction;
- wherein each of the context entries comprises:
- a context present indicator to indicate if the each of the context entries is present;
- a domain identifier to identify the domain;
- a guest address width to define size of a physical address space of the domain;
- and
- an address space root to define base of the physical address space of the domain or a page table in the address translation structure.
8 more elements
An article of manufacture comprising:
- a machine-accessible storage medium including data that, when accessed by a machine, cause the machine to perform operations comprising:
- indexing a table structure by a source identifier of an input/output (I/O) transaction specifying a guest physical address and requested by an I/O device to map the I/O device to a domain assigned to the I/O device, indexing the table structure comprising indexing a root table storing root entries by the source identifier, and mapping the I/O device to the domain by referencing a context table using the root entries, the context table storing context entries, indexing the root table comprising indicating if the each of the root entries is present using a root present indicator, and referencing the context table using a context table pointer;
- and
- translating the guest physical address to a host physical address corresponding to the I/O transaction using an address translation structure;
- wherein the data causing the machine to perform mapping the I/O device comprises data that cause the machine to perform operations comprising:
- indicating if the each of the context entries is present using a context present indicator;
- identifying the domain using a domain identifier;
- defining size of a physical address space of the domain using a guest address width;
- and
- defining base of the physical address space of the domain or a page table in the address translation structure using an address space root.
7 more elements
Dependencies are inferred from the claim text.