PROVIDING MEMORY MANAGEMENT FUNCTIONALITY USING AGGREGATED MEMORY MANAGEMENT UNITS (MMUs)
US-2017091116-A1 · Mar 30, 2017 · US
US10007619B2 · US · B2
| Field | Value |
|---|---|
| Publication number | US-10007619-B2 |
| Application number | US-201514859351-A |
| Country | US |
| Kind code | B2 |
| Filing date | Sep 20, 2015 |
| Priority date | May 29, 2015 |
| Publication date | Jun 26, 2018 |
| Grant date | Jun 26, 2018 |
A practical reading order for non-experts. Skip the full description unless you need deep technical detail.
What the patent document calls the invention.
A short plain-language summary of the technical disclosure.
Who owns or filed the patent and who is credited as inventor.
Filing, priority, publication, and grant dates set the timeline.
The legal scope of protection — read this for what is actually claimed.
Technology tags used to group this patent with similar filings.
Prior art links and similar publications in this corpus.
Official abstract text for this publication.
Systems and methods relate to performing address translations in a multithreaded memory management unit (MMU). Two or more address translation requests can be received by the multithreaded MMU and processed in parallel to retrieve address translations to addresses of a system memory. If the address translations are present in a translation cache of the multithreaded MMU, the address translations can be received from the translation cache and scheduled for access of the system memory using the translated addresses. If there is a miss in the translation cache, two or more address translation requests can be scheduled in two or more translation table walks in parallel.
Opening claim text (preview).
What is claimed is: 1. An apparatus comprising: a multithreaded memory management unit (MMU) configured to receive two or more address translation requests from one or more upstream devices, wherein the multithreaded MMU is further configured to process at least two of the two or more address translation requests in parallel, to obtain corresponding translated addresses of a system memory, wherein the multithreaded MMU comprises a primary scheduler, a translation cache, and a secondary scheduler, wherein the primary scheduler is configured to receive the two or more address translation requests and issue the two or more address translation requests for translation in the translation cache, wherein if there are misses in the translation cache for one or more missing address translation requests issued by the primary scheduler, the translation cache is configured to forward the one or more missing address translation requests to the secondary scheduler, and wherein the secondary scheduler is configured to receive the one or more missing address translation requests and schedule the one or more missing address translation requests for translation to addresses of the system memory in one or more translation table walkers (TTWs); and wherein the multithreaded MMU further comprises at least one of: a pre-filtering block configured to receive the one or more missing address translation requests and if two or more missing address translation requests of the one or more missing address translation requests are similar missing address translation requests, forward only one of the two or more similar missing address translation requests to the one or more TTWs and suppress the remaining ones of the two or more similar missing address translation requests; or a translation table access filter configured to determine if two or more of the one or more missing address translation requests involve redundant accesses of the system memory, and allow only unique accesses of the system memory to be performed. 2. The apparatus of claim 1 , wherein the one or more upstream devices comprise one or more of a general purpose processor, special purpose processor, or a multithreaded processor configured to generate the two or more address translation requests. 3. The apparatus of claim 1 , wherein the primary scheduler is configured to issue the two or more address translation requests to the translation cache in an order which is different from the order in which the two or more address translation requests were received by the primary scheduler. 4. The apparatus of claim 1 , wherein the primary scheduler comprises two or more primary scheduler slots configured to store the two or more address translation requests while the two or more address translation requests are processed. 5. The apparatus of claim 4 , wherein the two or more primary scheduler slots are allocated to two or more agents of the one or more upstream devices. 6. The apparatus of claim 5 , wherein the allocation is programmable based on classification of the two or more agents. 7. The apparatus of claim 5 , wherein the allocation is based on an arbitration policy comprising round robin, fixed priority, or programmable priorities associated with the two or more agents. 8. The apparatus of claim 4 , wherein the two or more primary scheduler slots comprise corresponding two or more states, wherein each state comprises a status of an address translation request stored in a corresponding primary scheduler slot. 9. The apparatus of claim 1 , wherein if there are hits in the translation cache for one or more hitting address translation requests of the two or more address translation requests issued by the primary scheduler, the translation cache is configured to provide corresponding one or more translation results comprising one or more translated addresses of the system memory for the one or more hitting address translation requests, to the primary scheduler. 10. The apparatus of claim 9 , wherein the primary scheduler is configured to schedule accesses to the one or more translated addresses of the system memory for one or more hitting address translation requests. 11. The apparatus of claim 10 , wherein the primary scheduler is configured to schedule the accesses to the one or more translated addresses of the system memory based on priorities associated with corresponding one or more hitting address translation requests or quality of service (QoS) metrics associated with the one or more upstream devices which generated the one or more hitting address translation requests. 12. The apparatus of claim 11 , wherein the primary scheduler is configured to schedule the accesses to the one or more translated addresses of the system memory based on reordering the accesses to avoid hazards between the accesses. 13. The apparatus of claim 1 , wherein the secondary scheduler comprises two or more secondary scheduler slots configured to store two or more of the one or more missing address translation requests until translation results comprising translated addresses of the system memory corresponding to the two or more missing address translation requests are received from the one or more TTWs and the translated addresses are returned to the translation cache. 14. The apparatus of claim 13 , wherein the two or more secondary scheduler slots are allocated to two or more agents of the one or more upstream devices. 15. The apparatus of claim 14 , wherein the allocation is programmable based on classification of the two or more agents. 16. The apparatus of claim 13 , wherein the two or more secondary scheduler slots comprise corresponding two or more states, wherein each state comprises a status of a missing address translation request stored in a corresponding secondary scheduler slot. 17. The apparatus of claim 14 , wherein the allocation is based on an arbitration policy comprising round robin, fixed priority, or programmable priorities associated with the two or more agents. 18. The apparatus of claim 1 , wherein the pre-filtering block is configured to determine that two or more missing address translation requests are similar missing address translation requests if input addresses to be translated for the two or more missing address translation requests fall within a same translation granule or a within a specified multiple of the same translation granule. 19. The apparatus of claim 1 , further comprising a post-filtering block configured to receive one or more translation results from the one or more TTWs for the one or more missing address translation requests, and if two or more of the one or more translation results are similar translation results, forward only one of the similar translation results to the translation cache and suppress remaining similar translation results. 20. The apparatus of claim 19 , wherein the post-filtering block is configured to probe the translation cache to determine if two or more of the one or more translation results are similar translation results. 21. The apparatus of claim 19 , further comprising a recently filled cache configured to store the one or more translation results, wherein the post-filtering block is configured to probe the recently filled cache to determine if two or more of the one or more translation results are similar translation results. 22. The apparatus of claim 1 , wherein the translation table access filter is configured to determine if two or more missing address translation requests involve red
Multiuser, multiprocessor or multiprocessing cache systems · CPC title
Latency reduction · CPC title
using page tables, e.g. page table structures · CPC title
Same page detection · CPC title
for multiple virtual address spaces, e.g. segmentation (G06F12/1045 takes precedence) · CPC title
Related publications grouped by family.
Answers are generated from the same data shown on this page.