Data processing apparatus and method for handling address translation for access requests issued by processing circuitry
First Claim
1. A data processing apparatus comprising:
- processing circuitry for performing data processing operations;
a memory system for storing data for access by the processing circuitry when performing said data processing operations;
address translation circuitry, responsive to an access request issued by the processing circuitry and specifying a virtual address, to perform a multi-stage address translation process to produce, via at least one intermediate address, a physical address in said memory system corresponding to the virtual address;
a storage unit accessible by the address translation circuitry and having a plurality of entries, each entry storing address translation information for one or more virtual addresses, and each entry having a field which indicates whether the address translation information is consolidated address translation information enabling the address translation circuitry to generate the physical address, or is partial address translation information enabling the address translation circuitry to generate one of said at least one intermediate addresses;
responsive to the access request issued by the processing circuitry, the address translation circuitry referencing the storage unit to determine whether one of said entries provides address translation information for the specified virtual address;
if said one of said entries provides address translation information for the specified virtual address, and the field indicates that the address translation information is consolidated address translation information, the address translation circuitry producing the physical address directly from the consolidated address translation information; and
if said one of said entries provides address translation information for the specified virtual address, and the field indicates that the address translation information is partial address translation information, the address translation circuitry producing said one of said at least one intermediate addresses from the partial address translation information before performing the remainder of the multi-stage address translation process.
1 Assignment
0 Petitions
Accused Products
Abstract
A data processing apparatus has address translation circuitry which is responsive to an access request specifying a virtual address, to perform a multi-stage address translation process to produce, via at least one intermediate address, a physical address in memory corresponding to the virtual address. The address translation circuitry references a storage unit, with each entry of the storage unit storing address translation information for one or more virtual addresses. Each entry has a field indicating whether the address translation information is consolidated address translation information or partial address translation information. If when processing an access request, it is determined that the relevant entry in the storage unit provides consolidated address translation information, the address translation circuitry produces a physical address directly from the consolidated address translation information. If on the other hand the relevant entry stores partial address translation information, the address translation circuitry produces an intermediate address from the partial address translation information and then performs the remainder of the multi-stage address translation process. Such an approach provides the performance benefits associated with a consolidated entry mechanism within the storage unit, whilst also allowing certain problem cases to be handled correctly and in an efficient manner.
-
Citations
19 Claims
-
1. A data processing apparatus comprising:
-
processing circuitry for performing data processing operations; a memory system for storing data for access by the processing circuitry when performing said data processing operations; address translation circuitry, responsive to an access request issued by the processing circuitry and specifying a virtual address, to perform a multi-stage address translation process to produce, via at least one intermediate address, a physical address in said memory system corresponding to the virtual address; a storage unit accessible by the address translation circuitry and having a plurality of entries, each entry storing address translation information for one or more virtual addresses, and each entry having a field which indicates whether the address translation information is consolidated address translation information enabling the address translation circuitry to generate the physical address, or is partial address translation information enabling the address translation circuitry to generate one of said at least one intermediate addresses; responsive to the access request issued by the processing circuitry, the address translation circuitry referencing the storage unit to determine whether one of said entries provides address translation information for the specified virtual address; if said one of said entries provides address translation information for the specified virtual address, and the field indicates that the address translation information is consolidated address translation information, the address translation circuitry producing the physical address directly from the consolidated address translation information; and if said one of said entries provides address translation information for the specified virtual address, and the field indicates that the address translation information is partial address translation information, the address translation circuitry producing said one of said at least one intermediate addresses from the partial address translation information before performing the remainder of the multi-stage address translation process. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17)
-
-
18. A method of handling address translation for access requests issued by processing circuitry in order to access data in a memory system, comprising the steps of:
-
responsive to an access request issued by the processing circuitry and specifying a virtual address, employing address translation circuitry to perform a multi-stage address translation process to produce, via at least one intermediate address, a physical address in said memory system corresponding to the virtual address; providing a storage unit accessible by the address translation circuitry and having a plurality of entries, each entry storing address translation information for one or more virtual addresses, and providing each entry with a field which indicates whether the address translation information is consolidated address translation information enabling the address translation circuitry to generate the physical address, or is partial address translation information enabling the address translation circuitry to generate one of said at least one-intermediate addresses; responsive to the access request issued by the processing circuitry, the address translation circuitry performing the steps of; referencing the storage unit to determine whether one of said entries provides address translation information for the specified virtual address; if said one of said entries provides address translation information for the specified virtual address, and the field indicates that the address translation information is consolidated address translation information, producing the physical address directly from the consolidated address translation information; and if said one of said entries provides address translation information for the specified virtual address, and the field indicates that the address translation information is partial address translation information, producing said one of said at least one intermediate addresses from the partial address translation information before performing the remainder of the multi-stage address translation process.
-
-
19. A data processing apparatus comprising:
-
processing means for performing data processing operations; memory means for storing data for access by the processing means when performing said data processing operations; address translation means, responsive to an access request issued by the processing means and specifying a virtual address, for performing a multi-stage address translation process to produce, via at least one intermediate address, a physical address in said memory means corresponding to the virtual address; a storage means accessible by the address translation means and having a plurality of entries, each entry for storing address translation information for one or more virtual addresses, and each entry having a field for indicating whether the address translation information is consolidated address translation information enabling the address translation circuitry to generate the physical address, or is partial address translation information enabling the address translation circuitry to generate one of said at least one intermediate addresses; responsive to the access request issued by the processing means, the address translation means for referencing the storage means to determine whether one of said entries provides address translation information for the specified virtual address; if said one of said entries provides address translation information for the specified virtual address, and the field indicates that the address translation information is consolidated address translation information, the address translation means for producing the physical address directly from the consolidated address translation information; and if said one of said entries provides address translation information for the specified virtual address, and the field indicates that the address translation information is partial address translation information, the address translation means for producing said one of said at least one intermediate addresses from the partial address translation information before performing the remainder of the multi-stage address translation process.
-
Specification