Translation Data Prefetch in an IOMMU
First Claim
1. A method comprising:
- receiving a prefetch command in an input/output (I/O) memory management unit (IOMMU), wherein the prefetch command specifies a virtual address;
reading translation data from one or more I/O translation tables in system memory of a system that includes the IOMMU, wherein the reading is responsive to the virtual address and to an I/O translation mechanism implemented by the IOMMU to translate virtual addresses in direct memory access (DMA) requests transmitted by one or more I/O devices; and
storing data in one or more caches of the IOMMU responsive to the reading.
6 Assignments
0 Petitions
Accused Products
Abstract
In an embodiment, a system memory stores a set of input/output (I/O) translation tables. One or more I/O devices initiate direct memory access (DMA) requests including virtual addresses. An I/O memory management unit (IOMMU) is coupled to the I/O devices and the system memory, wherein the IOMMU is configured to translate the virtual addresses in the DMA requests to physical addresses to access the system memory according to an I/O translation mechanism implemented by the IOMMU. The IOMMU comprises one or more caches, and is configured to read translation data from the I/O translation tables responsive to a prefetch command that specifies a first virtual address. The reads are responsive to the first virtual address and the I/O translation mechanism, and the IOMMU is configured to store data in the caches responsive to the read translation data.
-
Citations
20 Claims
-
1. A method comprising:
-
receiving a prefetch command in an input/output (I/O) memory management unit (IOMMU), wherein the prefetch command specifies a virtual address; reading translation data from one or more I/O translation tables in system memory of a system that includes the IOMMU, wherein the reading is responsive to the virtual address and to an I/O translation mechanism implemented by the IOMMU to translate virtual addresses in direct memory access (DMA) requests transmitted by one or more I/O devices; and storing data in one or more caches of the IOMMU responsive to the reading. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10)
-
-
11. An input/output (I/O) memory management unit (IOMMU) comprising:
-
one or more caches; and a table walk unit configured coupled to the one or more caches and configured, in response to a prefetch command that specifies a virtual address, to read translation data from one or more I/O translation tables stored in a system memory of a system that includes the IOMMU, wherein the reads are responsive to the virtual address and an I/O translation mechanism implemented by the IOMMU for direct memory access (DMA) requests transmitted by one or more I/O devices in the system, and wherein the table walk unit is configured to store data in the one or more caches responsive to the read translation data. - View Dependent Claims (12, 13, 14, 15, 16, 17, 18)
-
-
19. A system comprising:
-
a system memory configured to store one or more input/output (I/O) translation tables; one or more I/O devices configured to initiate direct memory access (DMA) requests including virtual addresses; and an I/O memory management unit (IOMMU) coupled to the one or more I/O devices and the system memory, wherein the IOMMU is configured to translate the virtual addresses in the DMA requests to physical addresses to access the system memory according to an I/O translation mechanism implemented by the IOMMU and responsive to the I/O translation tables, wherein the IOMMU comprises one or more caches, and wherein the IOMMU, responsive to a prefetch command that specifies a first virtual address, is configured to read translation data from the I/O translation tables, wherein the reads are responsive to the first virtual address and the I/O translation mechanism, and wherein the IOMMU is configured to store data in the one or more caches responsive to the read translation data. - View Dependent Claims (20)
-
Specification