US8966219B2ActiveUtilityA1
Address translation through an intermediate address space
Est. expiryOct 30, 2027(~1.3 yrs left)· nominal 20-yr term from priority
G06F 12/1063G06F 12/1072G06F 2212/651
45
PatentIndex Score
0
Cited by
5
References
18
Claims
Abstract
In a data processing system capable of concurrently executing multiple hardware threads of execution, an intermediate address translation unit in a processing unit translates an effective address for a memory access into an intermediate address. A cache memory is accessed utilizing the intermediate address. In response to a miss in cache memory, the intermediate address is translated into a real address by a real address translation unit that performs address translation for multiple hardware threads of execution. The system memory is accessed with the real address.
Claims
exact text as granted — not AI-modifiedWhat is claimed is:
1. A method of data processing in a data processing system, said method comprising:
in response to a memory access request of a processing unit of the data processing system, the memory access request specifying an effective address:
an intermediate address translation unit in the data processing system translating the effective address of the memory access request into an intermediate address;
accessing a cache memory of the data processing system utilizing the intermediate address;
in response to the accessing resulting in a hit of the intermediate address in the cache memory, the cache memory performing a memory access specified by the memory access request in a data array of the cache memory, wherein performing the memory access includes:
if the memory access request is a first type, supplying requested data stored within the data array to the processing unit to satisfy the memory access request;
if the memory access request is a second type, storing data specified by the memory access request into the data array to satisfy the memory access request; and
in response to the accessing resulting in a miss of the intermediate address in the cache memory, translating the intermediate address into a real address with a real address translation unit that performs address translation for multiple hardware threads of execution and accessing a system memory with the real address.
2. The method of claim 1 , wherein:
said cache memory includes a plurality of sets; and
accessing the cache memory comprises indexing into a particular set among the plurality of sets in the cache memory utilizing the intermediate address.
3. The method of claim 1 , wherein:
the processing unit is one of multiple processing units in the data processing system; and
the real address translation unit comprises one of the multiple processing units.
4. The method of claim 1 , wherein:
the data processing system includes a memory controller that manages access to the system memory; and
the memory controller includes the real address translation unit.
5. The method of claim 1 , wherein the effective address belongs to an effective address space comprising a plurality of uniformly sized memory pages.
6. The method of claim 1 , wherein:
the intermediate address comprises a first intermediate address;
the real address comprises a first real address;
an intermediate address space includes a translated region containing the first intermediate address and a direct mapped region containing a second intermediate address; and
said method further comprises in response to a miss in cache memory with said second intermediate address, obtaining a second real address corresponding to the second intermediate address without performing intermediate-to-real address translation utilizing the real address translation unit.
7. The method of claim 1 , wherein said step of translating the intermediate address into a real address comprises translating the intermediate address into the real address only in response to a miss of the intermediate address in the cache memory and refraining from translating the intermediate address into the real address in response to a hit of the intermediate address in the cache memory.
8. The method of claim 1 , wherein:
said cache memory includes a plurality of sets each containing multiple entries; and
said method further comprises translating any effective address corresponding to any entry in said cache memory without referencing any translation facility external to the intermediate address translation unit following receipt of the effective address.
9. The method of claim 1 , wherein translating the effective address comprises translating the effective address of the memory access request into an intermediate address by reference to a page table entry.
10. A data processing system, comprising:
a processing unit being capable of concurrently executing multiple hardware threads of execution;
an intermediate address translation unit in said processing unit that, responsive to a memory access request of the processing unit, translates effective addresses of the memory access request into an intermediate address;
a cache memory coupled to the processing unit, said cache memory including a data array, a directory of the data array that is accessed utilizing the intermediate address, and a cache controller, wherein responsive to a hit of the intermediate address in the cache directory, the controller performs a memory access specified by the memory access request in the data array by supplying requested data stored within the data array to the processing unit to satisfy the memory access request if the memory access request is a first type and by storing data specified by the memory access request into the data array to satisfy the memory access request if the memory access request is a second type;
a real address translation unit that performs address translation for multiple hardware threads of execution by translating intermediate addresses that miss in the cache memory into real addresses; and
a system memory, coupled to the at least one processing unit, that is accessed utilizing real addresses.
11. The data processing system of claim 10 , wherein:
said cache memory includes a plurality of sets; and
each set among the plurality of sets in the cache memory is indexed utilizing a respective one of a plurality of intermediate address indices.
12. The data processing system of claim 10 , wherein:
said at least one processing unit comprises multiple processing units; and
the real address translation unit comprises one of the multiple processing units.
13. The data processing system of claim 10 , wherein:
the data processing system includes a memory controller that manages access to the system memory; and
the memory controller includes the real address translation unit.
14. The data processing system of claim 10 , wherein the effective address belongs to an effective address space comprising a plurality of uniformly sized memory pages.
15. The data processing system of claim 10 , wherein:
an intermediate address space includes a translated region and a direct mapped region; and
at least one of a set including the at least one processing unit and the cache memory comprises means, responsive to a miss in cache memory of an intermediate address within the direct mapped region, for obtaining a real address corresponding to the intermediate address without performing intermediate-to-real address translation utilizing the real address translation unit.
16. The data processing system of claim 10 , wherein the real address translation unit translates the intermediate address into a real address only in response to a miss in cache memory.
17. The data processing system of claim 10 , wherein:
said cache memory includes a plurality of sets each containing multiple entries; and
said intermediate address translation unit is capable of translating any effective address corresponding to any entry in said cache memory without referencing any translation facility external to the intermediate address translation unit following receipt of the effective address.
18. The data processing system of claim 10 , wherein said intermediate address translation unit translates the effective address of the memory access into an intermediate address by reference to a page table entry.Cited by (0)
No later patents cite this yet.
References (0)
No backward citations on record.