Linear to physical address translation with support for page attributes
AssigneeUNM Rainforest Innovations
InventorsBen-Zion Friedman, Jacob Doweck, Eliezer Weissmann, James B. Crossland, Ohad Falik
Life of this patent
Estimating the term…
Abstract
Embodiments of the invention are generally directed to systems, methods, and apparatuses for linear to physical address translation with support for page attributes. In some embodiments, a system receives an instruction to translate a memory pointer to a physical memory address for a memory location. The system may return the physical memory address and one or more page attributes. Other embodiments are described and claimed.
Claims21
A system comprising:
- an application hosted on a processor;
- a kernel, executing on the processor, providing communication between the application and a hardware circuit including an address translation hardware circuit, the kernel executing at a higher privilege level than the application, the kernel executing an instruction configured to:
- receive a virtual memory address as an input parameter to the instruction;
- provide, to the address translation hardware circuit, the virtual memory address, wherein the address translation hardware circuit further:
- receives a memory request including the virtual memory address;
- if the virtual memory address is found in a translation lookaside buffer, provides, as output parameters from the instruction, a corresponding physical address and a page attribute associated with the physical memory address by determining whether a page associated with the physical memory address is present in memory associated with the processor, the determining based on a status in a last level of a page table mapping the virtual memory address to the physical memory address, the status of the page being determined, without accessing data corresponding to the physical memory address, the status determination saving an access to a memory hierarchy associated with the physical memory address;
- and
- if the virtual memory address is not found in the translation lookaside buffer, provides, as the output parameter from the instruction, a status that indicates where a page fault occurred without generating an exception.
A system including a kernel executing on a processor, a hardware circuit, and an application hosted on the processor, the hardware circuit comprising:
- one or more levels of cache;
- and
- a translation lookaside buffer (TLB),
- wherein the kernel provides communication between the application and the hardware circuit including an address translation hardware circuit, the kernel executing at a higher privilege level than the application, the kernel executing an instruction, including to:
- receive a virtual memory address as an input parameter to the instruction;
- provide, to the address translation hardware circuit, the virtual memory address, wherein the address translation hardware circuit further:
- receives a memory request including the virtual memory address;
- if the virtual memory address is found in the TLB, provides, as output parameters from the instruction, a corresponding physical address and a page attribute associated with the physical memory address by determining whether a page associated with the physical memory address is present in memory associated with the processor, the determining based on a status in a last level of a page table mapping the virtual memory address to the physical memory address, the status of the page being determined, without accessing data corresponding to the physical memory address, the status determination saving an access to a memory hierarchy associated with the physical memory address;
- and
- if the virtual memory address is not found in the TLB, provides, as the output parameter from the instruction, a status that indicates where a page fault occurred without generating an exception.
A system including a kernel executing on a processor, a hardware circuit including an address translation hardware circuit, and an application hosted on the processor, the hardware circuit comprising:
- one or more levels of cache;
- and
- a processor communicating with the kernel, the kernel executing at a higher privilege level than the application, the kernel executing an instruction configured to:
- receive a virtual memory address as an input parameter to the instruction;
- provide, to the address translation hardware circuit, the virtual memory address, wherein the address translation hardware circuit further:
- receives a memory request including the virtual memory address;
- if the virtual memory address is found in a translation lookaside buffer, provides, as output parameters from the instruction, a corresponding physical address and a page attribute associated with the physical memory address by determining whether a page associated with the physical memory address is present in memory associated with the processor, the determining based on a status in a last level of a page table mapping the virtual memory address to the physical memory address, the status of the page being determined, without accessing data corresponding to the physical memory address, the status determination saving an access to a memory hierarchy associated with the physical memory address;
- and
- if the virtual memory address is not found in the translation lookaside buffer, provides, as the output parameter from the instruction, a status that indicates where a page fault occurred without generating an exception,
- wherein the page fault is same as a fault produced by a write to the page responsive to detecting that the page corresponding to the physical memory address is not in memory, enabling standard memory fault handlers to process the fault.
A system including a kernel executing on a processor, a hardware circuit including an address translation hardware circuit, and an application hosted on the processor, the system comprising:
- at least one translation look aside buffer (TLB);
- and
- a page miss handler to perform a table walk,
- wherein the kernel provides communication between the application and the hardware circuit, the kernel executing at a higher privilege level than the application, the kernel executing an instruction configured to:
- receive a virtual memory address as an input parameter to the instruction;
- provide, to the address translation hardware circuit, the virtual memory address, wherein the address translation hardware circuit further:
- receives a memory request including the virtual memory address;
- if the virtual memory address is found in the TLB, provides, as output parameters from the instruction, a corresponding physical address and a page attribute associated with the physical memory address by determining whether a page associated with the physical memory address is present in memory associated with the processor, the determining based on a status in a last level of a page table mapping the virtual memory address to the physical memory address, the status of the page being determined, without accessing data corresponding to the physical memory address, the status determination saving an access to a memory hierarchy associated with the physical memory address;
- and
- if the virtual memory address is not found in the TLB, provides, as the output parameter from the instruction, a status that indicates where a page fault occurred without generating an exception,
- wherein the page fault is same as a fault produced by a write to the page responsive to detecting that the page corresponding to the physical memory address is not in memory, enabling standard memory fault handlers to process the fault.
Dependencies are inferred from the claim text.