Address translation technologies

US11422944B2 · US · B2

Patent metadata
FieldValue
Publication numberUS-11422944-B2
Application numberUS-202016989667-A
CountryUS
Kind codeB2
Filing dateAug 10, 2020
Priority dateAug 10, 2020
Publication dateAug 23, 2022
Grant dateAug 23, 2022

How to read this patent

A practical reading order for non-experts. Skip the full description unless you need deep technical detail.

  1. Title

    What the patent document calls the invention.

  2. Abstract

    A short plain-language summary of the technical disclosure.

  3. Assignees and inventors

    Who owns or filed the patent and who is credited as inventor.

  4. Key dates

    Filing, priority, publication, and grant dates set the timeline.

  5. First independent claim

    The legal scope of protection — read this for what is actually claimed.

  6. CPC / IPC classifications

    Technology tags used to group this patent with similar filings.

  7. Citations and related patents

    Prior art links and similar publications in this corpus.

Abstract

Official abstract text for this publication.

Examples herein relate to a system that includes a first memory device; a second memory device; and an input-output memory management unit (IOMMU). The IOMMU can search for a virtual-to-physical address translation entry in a first table for a received virtual address and based on a virtual-to-physical address translation entry for the received virtual address not being present in the first table, search a second table for a virtual-to-physical address translation entry for the received virtual address, wherein the first table is stored in the first memory device and the second table is stored in the second memory device. In some examples, based on a virtual-to-physical address translation entry for the received virtual address not being present in the second table, a page table walk is performed to determine a virtual-to-physical address translation for the received virtual address. In some examples, the first table includes an IO translation lookaside buffer (IOTLB).

First claim

Opening claim text (preview).

What is claimed is: 1. An apparatus comprising: a first memory device; a second memory device; and an input-output memory management unit (IOMMU) to: search for a virtual-to-physical address translation entry in a first table for a received virtual address; based on a virtual-to-physical address translation entry for the received virtual address not being present in the first table, search a second table for a virtual-to-physical address translation entry for the received virtual address, wherein the first table is stored in the first memory device, the second table is stored in the second memory device; and limit a number of entries permitted to be stored in the first table for a process identifier based on a priority level associated with the process identifier. 2. The apparatus of claim 1 , wherein the IOMMU is to: based on a virtual-to-physical address translation entry for the received virtual address not being present in the second table, perform a page table walk to determine a virtual-to-physical address translation for the received virtual address. 3. The apparatus of claim 1 , wherein the first table comprises an input-output (IO) translation lookaside buffer (IOTLB). 4. The apparatus of claim 1 , wherein the IOMMU is to: provide the virtual-to-physical address translation entry for the received virtual address for storage in the first table; based on the first table being full, invalidate an entry in the first table and store the virtual-to-physical address translation entry for the received virtual address using the invalidated entry in the first table; and store the invalidated entry in the second table. 5. The apparatus of claim 4 , wherein the IOMMU is to limit a number of entries permitted to be stored in the first table and the second table for a source of the received virtual address based on a priority level of a source of the received virtual address. 6. The apparatus of claim 1 , wherein the IOMMU is to: receive a process identifier comprising a Process Address Space ID (PASID); determine a memory address of the second table based at least on the PASID; and access the second table based on the memory address. 7. The apparatus of claim 1 , wherein the IOMMU is to: receive a memory access request associated with the received virtual address and process identifier from a device, application, or virtual machine. 8. The apparatus of claim 1 , comprising one or more of: a server, rack, or data center, the one or more of a server, rack, or data center to write data to a memory or storage device using the virtual-to-physical address translation or read data from the memory or storage device using the virtual-to-physical address translation. 9. A computer-implemented method comprising: receiving a virtual address with a memory access request; searching, by an input-output memory management unit (IOMMU), for a virtual-to-physical address translation entry in a first table for the received virtual address; based on a virtual-to-physical address translation entry for the received virtual address not being present in the first table, searching, by the IOMMU, a second table for a virtual-to-physical address translation entry for the received virtual address, wherein the first table is stored in a different memory device than a memory device that stores the second table; and limiting, by the IOMMU, a number of entries permitted to be stored in the first table for a process identifier based on a priority level associated with the process identifier. 10. The method of claim 9 , comprising: based on a virtual-to-physical address translation entry for the received virtual address not being present in the second table, performing, by the IOMMU, a page table walk to determine a virtual-to-physical address translation for the received virtual address. 11. The method of claim 9 , wherein the first table comprises an IO translation lookaside buffer (IOTLB). 12. The method of claim 9 , wherein the second table is stored in a memory device that is accessible to the IOMMU. 13. The method of claim 9 , comprising: providing the virtual-to-physical address translation entry for the received virtual address for inclusion in the first table; based on the first table being full, invalidating an entry in the first table and storing the virtual-to-physical address translation entry for the received virtual address using the invalidated entry in the first table; and storing a virtual-to-physical address translation for the invalidated entry in the second table. 14. The method of claim 13 , comprising: limiting a number of entries permitted to be stored in the first table and the second table for a source of the received virtual address based on a priority level of a source of the received virtual address. 15. The method of claim 9 , comprising: receiving a process identifier with the memory access request; determining a memory address of the second table based at least on the process identifier; and accessing the second table based on the determined memory address. 16. The method of claim 9 , comprising: receiving the memory access request from a device, application, or virtual machine. 17. A non-transitory computer-readable medium comprising instructions stored-thereon, that if executed by one or more processors of an input-output memory management unit (IOMMU), cause the one or more processors to: search for a virtual-to-physical address translation entry in a first table for a received virtual address; based on a virtual-to-physical address translation entry for the received virtual address not being present in the first table, search a second table for a virtual-to-physical address translation entry for the received virtual address, wherein the first table is stored in a first memory device and the second table is stored in a second memory device; and limit a number of entries permitted to be stored in the first table for a process identifier based on a priority level associated with the process identifier. 18. The computer-readable medium of claim 17 , wherein the received virtual address is received from at least one device communicatively coupled to the IOMMU using a Peripheral Component Interconnect express (PCIe) compatible interface. 19. The computer-readable medium of claim 18 , wherein the at least one device comprises one or more of: a network interface card, graphics processor, video encoder or decoder, or accelerator device. 20. The computer-readable medium comprising instructions of claim 17 , wherein a potential number of address translation entries in the second table is to exceed a maximum number of permitted address translation entries in the first table.

Assignees

Inventors

Classifications

  • for peripheral access to main memory, e.g. direct memory access [DMA] · CPC title

  • on a serial bus, e.g. I2C bus, SPI bus (on daisy chain buses G06F13/4247) · CPC title

  • PCI express · CPC title

  • using page tables, e.g. page table structures · CPC title

  • Invalidation · CPC title

Patent family

Related publications grouped by family.

External sources

Frequently asked questions

Answers are generated from the same data shown on this page.

What does patent US11422944B2 cover?
Examples herein relate to a system that includes a first memory device; a second memory device; and an input-output memory management unit (IOMMU). The IOMMU can search for a virtual-to-physical address translation entry in a first table for a received virtual address and based on a virtual-to-physical address translation entry for the received virtual address not being present in the first tab…
Who is the assignee on this patent?
Intel Corp
What technology area does this patent fall under?
Primary CPC classification G06F13/4282. Mapped technology areas include Physics.
When was this patent published?
Publication date Tue Aug 23 2022 00:00:00 GMT+0000 (Coordinated Universal Time) (B2). Legal status and post-grant events are not shown on this page.
What related patents are in patentsdb?
We list 1 related publication on this page (citations in our corpus or others sharing the same primary CPC).