Application-managed translation cache
AssigneeInternational Business Machines Corporation
InventorAndrew K. Martin
Life of this patent
Estimating the term…
Abstract
Mechanisms are provided, in a data processing system, for accessing a memory location in a physical memory of the data processing system. With these mechanisms, a request is received from an application to access a memory location specified by an effective address in an application address space. A translation is performed, at a user level of execution, of the effective address to a real address table index (RATI) value corresponding to the effective address. At a hardware level of execution, a lookup operation is performed that looks-up the RATI value in a real address table data structure maintained by trusted system level hardware of the data processing system, to identify a real address for accessing physical memory. A memory location in physical memory is thereafter accessed based on the identified real address.
Claims18
A method, in a data processing system, for accessing a memory location in a physical memory of the data processing system, comprising:
- receiving a request, from an application, to access a memory location specified by an effective address in an application address space;
- performing, at a user level of execution, a translation of the effective address to a real address table index (RATI) value corresponding to the effective address;
- performing, at a hardware level of execution, a lookup operation of the RATI value in a real address table data structure maintained by trusted system level hardware of the data processing system, to identify a real address for accessing physical memory;
- accessing a memory location in the physical memory based on the identified real address;
- generating, by the application, an address translation request that requests a translation of the effective address into the real address, wherein the address translation request specifies a RATI of the real address table where results of the address translation are to be stored:
- performing, by the trusted system level hardware, the translation of the effective address to the real address;
- storing the real address for the effective address in an entry of the real address table corresponding to the RATI specified by the application in the address translation request;
- storing, by the application, the effective address to RATI mapping entry in an effective address to RATI mapping table data structure maintained at the user level in association with the application;
- and
- wherein the real addresses for accessing the physical memory are not directly accessible outside of the hardware level of execution, are maintained only in the real address table data structure in the trusted system level hardware, and are only indirectly accessible, via RATI values, by the application at the user level of execution via the effective address to RATI mapping table data structure.
A computer program product comprising a non-transitory computer readable storage medium having a computer readable program stored therein,
- wherein the computer readable program, when executed on a data processing system,
- causes the data processing system to:
- receive a request from an application to access a memory location specified by an effective address in an application address space;
- perform, at a user level of execution, a translation of the effective address to a real address table index (RATI) value corresponding to the effective address;
- receive, from trusted system level hardware of the data processing system, at a hardware level of execution, a real address for accessing physical memory identified via a lookup operation, performed by the trusted system level hardware, of the RATI value in a real address table data structure maintained by the trusted system level hardware of the data processing system;
- access a memory location in physical memory based on the identified real address;
- generate, by the application, an address translation request that requests a translation of the effective address into the real address, wherein the address translation request specifies a RATI of the real address table where results of the address translation are to be stored;
- receive, from the trusted system level hardware, the translation of the effective address to the real address;
- store, by the application, the effective address to RATI mapping entry in an effective address to RATI mapping table data structure maintained at the user level in association with the application, wherein the real address corresponding to the effective address is stored in an entry of the real address table corresponding to the RATI specified by the application in the address translation request;
- and
- wherein the real addresses for accessing the physical memory are not directly accessible outside of the hardware level of execution, are maintained only in the real address table data structure in the trusted system level hardware, and are only indirectly accessible, via RATI values, by the application at the user level of execution via the effective address to RATI mapping table data structure.
A data processing system, comprising:
- a processor comprising trusted system level hardware;
- and
- a memory coupled to the processor and comprising instructions executed by the processor to implement one or more applications, wherein the processor operates to:
- receive a request from an application to access a memory location of the memory specified by an effective address in an application address space;
- perform, at a user level of execution, a translation of the effective address to a real address table index (RATI) value corresponding to the effective address;
- perform, at a hardware level of execution, a lookup operation of the RATI value in a real address table data structure maintained by the trusted system level hardware of the data processing system, to identify a real address for accessing physical memory;
- access a memory location in physical memory based on the identified real address;
- generate, by the application, an address translation request that requests a translation of the effective address into the real address, wherein the address translation request specifies a RATI of the real address table where results of the address translation are to be stored;
- perform, by the trusted system level hardware, the translation of the effective address to the real address;
- store the real address for the effective address in an entry of the real address table corresponding to the RATI specified by the application in the address translation request;
- store, by the application the effective address to RATI mapping entry in an effective address to RATI mapping table data structure maintained at the user level in association with the application;
- and
- wherein the real addresses for accessing the physical memory are not directly accessible outside of the hardware level of execution, are maintained only in the real address table data structure in the trusted system level hardware, and are only indirectly accessible, via RATI values, by the application at the user level of execution via the effective address to RATI mapping table data structure.
Dependencies are inferred from the claim text.