Multi-threaded translation and transaction re-ordering for memory management units

US10007619B2 · US · B2

Patent metadata
FieldValue
Publication numberUS-10007619-B2
Application numberUS-201514859351-A
CountryUS
Kind codeB2
Filing dateSep 20, 2015
Priority dateMay 29, 2015
Publication dateJun 26, 2018
Grant dateJun 26, 2018

How to read this patent

A practical reading order for non-experts. Skip the full description unless you need deep technical detail.

  1. Title

    What the patent document calls the invention.

  2. Abstract

    A short plain-language summary of the technical disclosure.

  3. Assignees and inventors

    Who owns or filed the patent and who is credited as inventor.

  4. Key dates

    Filing, priority, publication, and grant dates set the timeline.

  5. First independent claim

    The legal scope of protection — read this for what is actually claimed.

  6. CPC / IPC classifications

    Technology tags used to group this patent with similar filings.

  7. Citations and related patents

    Prior art links and similar publications in this corpus.

Abstract

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.

First claim

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

Assignees

Inventors

Classifications

  • 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

Patent family

Related publications grouped by family.

External sources

Frequently asked questions

Answers are generated from the same data shown on this page.

What does patent US10007619B2 cover?
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 translation…
Who is the assignee on this patent?
Qualcomm Inc
What technology area does this patent fall under?
Primary CPC classification G06F12/1063. Mapped technology areas include Physics.
When was this patent published?
Publication date Tue Jun 26 2018 00:00:00 GMT+0000 (Coordinated Universal Time) (B2). Legal status and post-grant events are not shown on this page.
What related patents are in patentsdb?
We list 4 related publications on this page (citations in our corpus or others sharing the same primary CPC).