Translation entry invalidation in a multithreaded data processing system
US-9575815-B1 · Feb 21, 2017 · US
US10318435B2 · US · B2
| Field | Value |
|---|---|
| Publication number | US-10318435-B2 |
| Application number | US-201715683615-A |
| Country | US |
| Kind code | B2 |
| Filing date | Aug 22, 2017 |
| Priority date | Aug 22, 2017 |
| Publication date | Jun 11, 2019 |
| Grant date | Jun 11, 2019 |
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.
Ensuring forward progress for nested translations in a memory management unit (MMU) including receiving a plurality of nested translation requests, wherein each of the plurality of nested translation requests requires at least one congruence class lock; detecting, using a congruence class scoreboard, a collision of the plurality of nested translation requests based on the required congruence class locks; quiescing, in response to detecting the collision of the plurality of nested translation requests, a translation pipeline in the MMU including switching operation of the translation pipeline from a multi-thread mode to a single-thread mode and marking a first subset of the plurality of nested translation requests as high-priority nested translation requests; and servicing the high-priority nested translation requests through the translation pipeline in the single-thread mode.
Opening claim text (preview).
What is claimed is: 1. A computer processor for ensuring forward progress for nested translations in a memory management unit (MMU), the computer processor configured to carry out the steps of: receiving a plurality of nested translation requests, wherein each of the plurality of nested translation requests requires at least one congruence class lock indicating an exclusive use of a congruence class comprising a portion of a lookaside buffer, and wherein translation of each of the plurality of translation requests requires a primary translation table and a second translation table; detecting, using a congruence class scoreboard tracking congruence class locks and congruence class reservations, a collision of the plurality of nested translation requests, wherein the collision comprises a state in which one or more of the nested translation requests cannot proceed due to the required congruence class locks; quiescing, in response to detecting the collision of the plurality of nested translation requests, a translation pipeline in the MMU including switching operation of the translation pipeline from a multi-thread mode to a single-thread mode and marking a first subset of the plurality of nested translation requests as high-priority nested translation requests; and servicing the high-priority nested translation requests through the translation pipeline in the single-thread mode. 2. The computer processor of claim 1 , further configured to carry out the steps of: switching operation of the translation pipeline from the single-thread mode to the multi-thread mode in response to determining that the high-priority nested translation requests have been serviced; and servicing a second subset of the plurality of nested translation requests in multi-thread mode. 3. The computer processor of claim 1 , wherein marking the subset of the plurality of nested translation request as high priority nested translation requests comprises: determining that a first nested transition request of the plurality of nested translation requests has obtained a congruence class lock on a congruence class; releasing the congruence class lock obtained by the first nested translation request; and marking the first nested translation request as a high priority nested translation request. 4. The computer processor of claim 1 , wherein the congruence class scoreboard comprises a primary congruence class scoreboard and a secondary congruence class scoreboard, wherein the primary congruence class scoreboard is a data structure that tracks congruence class reservations and congruence class locks for the primary translation table, and wherein the secondary congruence class scoreboard is a data structure that tracks congruence class reservations and congruence class locks for the second translation table. 5. The computer processor of claim 1 , wherein detecting the collision of the plurality of nested translation requests comprises detecting a hang condition caused by the congruence class locks of at least two of the plurality of nested translations. 6. The computer processor of claim 1 , wherein quiescing the translation pipeline in the MMU further comprises notifying each source of a second subset of the plurality of nested translation requests that the nested translation requests have failed. 7. The computer processor of claim 1 , wherein marking the subset of the plurality of nested translation request as high priority nested translation requests comprises instructing a source of each of the subset of nested translation request to resend the nested translation request as a high-priority nested translation request. 8. A computing system, the computing system including a computer processor for ensuring forward progress for nested translations in a memory management unit (MMU), the computer processor configured to carry out the steps of: receiving a plurality of nested translation requests, wherein each of the plurality of nested translation requests requires at least one congruence class lock indicating an exclusive use of a congruence class comprising a portion of a lookaside buffer, and wherein translation of each of the plurality of translation requests requires a primary translation table and a second translation table; detecting, using a congruence class scoreboard tracking congruence class locks and congruence class reservations, a collision of the plurality of nested translation requests, wherein the collision comprises a state in which one or more of the nested translation requests cannot proceed due to the required congruence class locks; quiescing, in response to detecting the collision of the plurality of nested translation requests, a translation pipeline in the MMU including switching operation of the translation pipeline from a multi-thread mode to a single-thread mode and marking a first subset of the plurality of nested translation requests as high-priority nested translation requests; and servicing the high-priority nested translation requests through the translation pipeline in the single-thread mode. 9. The computing system of claim 8 , the computer processor further configured to carry out the steps of: switching operation of the translation pipeline from the single-thread mode to the multi-thread mode in response to determining that the high-priority nested translation requests have been serviced; and servicing a second subset of the plurality of nested translation requests in multi-thread mode. 10. The computing system of claim 8 , wherein marking the subset of the plurality of nested translation request as high priority nested translation requests comprises: determining that a first nested transition request of the plurality of nested translation requests has obtained a congruence class lock on a congruence class; releasing the congruence class lock obtained by the first nested translation request; and marking the first nested translation request as a high priority nested translation request. 11. The computing system of claim 8 , wherein the congruence class scoreboard comprises a primary congruence class scoreboard and a secondary congruence class scoreboard, wherein the primary congruence class scoreboard is a data structure that tracks congruence class reservations and congruence class locks for the primary translation table, and wherein the secondary congruence class scoreboard is a data structure that tracks congruence class reservations and congruence class locks for the second translation table. 12. The computing system of claim 8 , wherein detecting the collision of the plurality of nested translation requests comprises detecting a hang condition caused by the congruence class locks of at least two of the plurality of nested translations. 13. The computing system of claim 8 , wherein marking the subset of the plurality of nested translation request as high priority nested translation requests comprises instructing a source of each of the subset of nested translation request to resend the nested translation request as a high-priority nested translation request.
using page tables, e.g. page table structures · CPC title
Multi-level translation tables · CPC title
Thread control instructions · CPC title
Pipeline control instructions, e.g. multicycle NOP · CPC title
using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB] · CPC title
Related publications grouped by family.
Answers are generated from the same data shown on this page.