US20050160229A1 - Method and apparatus for preloading translation buffers - Google Patents
Method and apparatus for preloading translation buffers Download PDFInfo
- Publication number
- US20050160229A1 US20050160229A1 US10/759,941 US75994104A US2005160229A1 US 20050160229 A1 US20050160229 A1 US 20050160229A1 US 75994104 A US75994104 A US 75994104A US 2005160229 A1 US2005160229 A1 US 2005160229A1
- Authority
- US
- United States
- Prior art keywords
- data
- translator
- loading
- translation
- tlb
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Abandoned
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/10—Address translation
- G06F12/1027—Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/65—Details of virtual memory and virtual address translation
- G06F2212/654—Look-ahead translation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/68—Details of translation look-aside buffer [TLB]
- G06F2212/684—TLB miss handling
Definitions
- the invention relates generally to translations mechanisms in a computer architecture and, more particularly, to efficiently manage a translation mechanism to prevent problems associated with “warming” a translation cache.
- processor architectures provide a translation mechanism for converting an effective address (EA) used by an application into a real address (RA) used for referencing real storage.
- EA effective address
- RA real address
- the translation process uses a translation table to translate an EA to an RA.
- the translation table, or page table is typically stored in memory.
- a typical implementation of the translation mechanism uses a cache and/or buffering structure to hold recently used translations. This structure is referred to as a Translation Lookaside Buffer (TLB) in PowerPCTM.
- TLB Translation Lookaside Buffer
- Each instruction using an EA causes a lookup in the TLB.
- TLB Translation Lookaside Buffer
- a hardware state machine or software routine is invoked to load the requested translation.
- the startup penalty can be acceptable for non real-time applications.
- a real-time application should account for the worst-case latencies and bandwidth to guarantee a task can be completed in a specific amount of time (for example, a deadline). Therefore, real-time applications should account for the performance of a “cold” cache and, typically, cannot take full advantage of the system performance.
- a real-time application that does not properly account for the performance differences between a “cold” and “warm” translation cache can miss a deadline.
- the present invention provides a computer program product for managing a translation mechanism in a processor architecture, the computer program product having a medium with a computer program embodied thereon.
- a computer program code for transporting data through a data port is provided.
- a computer program code for supplying index data from an index table to the translator is provided.
- FIG. 1 is a block diagram depicting a conventional software-controlled translation mechanism
- FIG. 2 is a block diagram depicting a conventional hardware-controlled translation mechanism
- FIG. 3 is a block diagram depicting a Software-controlled Pre-load Translation Mechanism
- FIG. 4 is a block diagram depicting a Hardware-controlled Pre-load Translation Mechanism.
- the reference numeral 100 generally designates a conventional software-controlled translation mechanism implementation.
- the Translation Mechanism Implementation 100 comprises Translation Mechanism 104 and a Software TLB Management Interface 102 .
- the Translation Mechanism 104 comprises an Execution Unit (EU) 110 , a Translation Lookaside Buffer (TLB) 112 , a Software Miss Handler 114 , and a Main Storage 116 .
- the Main Storage 116 further includes a Page Table 118 .
- Main Storage 116 can also include memory mapped I/O devices and registers.
- the Software TLB Management Interface 102 comprises a TLB Data Port 106 and a TLB Index 108 .
- the EU 110 executes instructions, such as instructions contained in an executable file. Instructions using an Effective Address (EA) to reference Main Storage 116 cause the EU 110 to forward the EA to the TLB 112 for translation.
- the TLB 112 searches the translation buffer or cache for a translation for the EA. If there does not exist a translation for the EA issued by the EU 110 , then the Software Miss Handler 114 searches for the unavailable, required translation in the Page Table 118 by computing the proper RA to locate the translation entry needed to translate EA provided by the EU 110 in the Page Table 118 .
- the Software Miss Handler 114 is typically executed in the EU 110 or another processor in the system.
- the translation is loaded into the TLB 112 , utilizing the Software Control Interface 102 .
- the translation can now be used for future reference and the current EA is converted into a Real Address (RA) based on the data found in the Page Table 118 .
- the Software Miss Handler 114 typically invokes a separate software mechanism (not shown) to resolve the translations missing in the Page Table 118 . Missing translations result due to certain portions of the Page Table 118 being swapped to a mass media device such as a hard drive to more efficiently make use of processor memory, typically when translation entries in the swapped portion of the Page Table 118 have not been used in a lengthy period of time.
- the EU 110 is coupled to the TLB 112 through a first communication channel 126 , wherein the first communication channel 126 transfers an EA to the TLB 112 .
- the TLB 112 is coupled to the Software TLB Management Interface 102 through a second communication channel 120 and a third communication channel 122 .
- the second communication channel 120 and the third communication channel 122 each provide control data to the TLB 112 .
- the second communication channel 120 and the third communication channel 122 are used by the Software Miss Handler 114 to load translations found in the Page Table 118 into the TLB 112 .
- the TLB 112 is further coupled to the Software Miss Handler 114 through a fourth communication channel 128 , wherein a TLB Miss is communicated from the TLB 112 to the Software Miss Handler 114 .
- TLB 112 is also coupled to the Main Storage 116 through a fifth communication channel 132 , wherein an EU's 110 translated RA is communicated from the TLB 112 to the Main Storage 116 .
- the Software Miss Handler 114 is coupled to the Page Table 118 through a sixth communication channel 130 .
- the sixth communication channel 130 is used by the Software Miss Handler 114 to search the Page Table 118 for the translations missing in the TLB 112 .
- the EU 110 is coupled to the Main Storage 116 through a seventh communication channel 134 , wherein data is intercommunicated between the EU and the Main Storage 116 .
- the TLB Data Port 106 is coupled to the TLB 112 of the Translation Mechanism 104 through the second communication channel 120 , wherein translation data is transferred from the TLB Data Port 106 to the TLB 112 .
- the TLB Data Port 106 provides a communication port for delivering missing translations to the TLB 112 .
- the TLB Index 108 is coupled to the TLB 112 of the Translation Mechanism through the third communication channel 122 . Index data is communicated from the TLB Index 108 to the TLB 112 through the second communication channel 122 .
- the TLB Index 108 contains the buffer location in the TLB 112 for the missing translations supplied by the TLB Data Port 106 .
- the reference numeral 204 generally designates a conventional hardware-controlled Translation Mechanism Implementation.
- the Translation Mechanism Implementation 204 comprises an EU 210 , a TLB 212 , a Hardware Miss Handler 214 , and a Main Storage 216 .
- the Main Storage 216 further includes a Page Table 218 .
- Main Storage 216 can also include memory mapped I/O devices and registers.
- the EU 210 executes instructions such as those contained in an executable file. Instructions using an EA to reference Main Storage 216 cause the EU 210 to forward the EA to the TLB 212 for translation.
- the TLB 212 searches the translation buffers or cache for a translation for the EA. If there does not exist a translation for the EA issued by the EU 210 , then the Hardware Miss Handler 214 searches for the unavailable, required translation in the Page Table 218 . Once the proper translation has been found, the translation is loaded into the TLB 212 for future reference and the current EA is converted into an RA.
- the RA is then communicated to the Main Storage 216 through a fourth communication channel 232 .
- data can be effectively transferred between the Main Storage 216 and the EU 210 .
- the Hardware Miss Handler 214 typically invokes a software mechanism to resolve translations missing in the Page Table 218 .
- the EU 210 is coupled to the TLB 212 through a first communication channel 226 , wherein the first communication channel 226 transfers an EA to the TLB 212 .
- the TLB 212 is coupled to the Page Table 218 through a second communication channel 224 , wherein the second communication channel 224 provides control data intercommunicated between the TLB 212 and the Page Table 218 .
- the second communication channel 224 is used by the Hardware Miss Handler 214 to load translations found in the Page Table 218 into the TLB 212 .
- the TLB 212 is further coupled to the Hardware Miss Handler 214 through a third communication channel 228 , wherein a TLB MISS is communicated from the TLB 212 to the Hardware Miss Handler 214 .
- TLB 212 is also coupled to the Main Storage 216 through the fourth communication channel 232 , wherein an EU's 210 translated RA is communicated from the TLB 212 to the Main Storage 216 .
- the Hardware Miss Handler 214 is coupled to the Page Table 218 through a fifth communication channel 230 .
- the fifth communication channel 230 is used the Hardware Miss Handler 214 to search the Page Table 218 for the translations missing in the TLB 112 .
- the EU 210 is coupled to the Main Storage 216 through a sixth communication channel 234 , wherein data is intercommunicated between the EU 210 and the Main Storage 216 .
- the reference numeral 300 generally designates a Software-controlled Pre-load Translation Mechanism.
- the Software-controlled Pre-Load Translation Mechanism 300 is similar to the Software-controlled Translation Mechanism Implementation 100 of FIG. 1 , with the inclusion of an additional Software Pre-Load Mechanism 301 .
- the TLB Pre-Load Translation Mechanism 300 comprises a Software Pre-Load Mechanism 301 , a Software-controlled Translation Mechanism 304 , and a Software TLB Management Interface 302 .
- the configurations of Mechanism 304 and of Software TLB Management Interface 302 are substantially similar to the Mechanism 104 and Software TLB Management Interface 102 of FIG. 1 , respectively.
- the TLB Data Port 306 is coupled to the TLB (not shown but substantially similar to TLB 112 of FIG. 1 ) of the Translation Mechanism 304 through the first communication channel 320 , wherein translation data is transferred from the TLB Data Port 306 to the Translation Mechanism 304 .
- the TLB Index 308 is coupled to the Translation Mechanism 304 through a second communication channel 320 . Index data is communicated from the TLB Index 308 to the Translation Mechanism 304 through the second communication channel 322 .
- the TLB Index 308 contains the buffer location for the missing translations supplied by the TLB Data Port 306 .
- the Software Pre-load Mechanism 301 distinguishes the Software-controlled Pre-load Translation Mechanism 300 of FIG. 3 from any other conventional Translation Mechanism Implementations, such as the Translation Mechanism Implementation 100 of FIG. 1 .
- the Software Pre-Load Mechanism 301 is coupled to the Software TLB Management Interface 302 through a third communication channel 311 .
- the Software Pre-load Mechanism 301 with an extension of the Software TLB Management Interface 302 allows translations to be pre-loaded into a TLB (not shown) from a Page Table (not shown) prior to the running of an application.
- the extensions allow for the state of the TLB (not shown) to be saved and restored when swapping tasks running on the execution unit.
- Pre-loading and restoring of the TLB provide for a reduction in the lag time by warming the associated TLB (not shown). Furthermore, the combination also allows for re-initializing the TLB when switching the context of the processor as opposed to a simple save and restore.
- the Software Pre-load Mechanism 301 provides the applications with an interface for requesting the pre-load of translation.
- the requested translations can also be used to re-initialize the translations when switching the context of the processor.
- the interface can be an extension of the memory advise or “madvise” operating system call.
- the “madvise” call includes an effective address and region size parameter which defines the start and size of an area in Main Storage for which translations are needed by an application.
- the Software Pre-load Mechanism 301 searches the Page Table (not shown) for the translations for the memory area defined by the parameters. Once the translations are found, the Software Pre-load Mechanism 301 loads the translation into the TLB (not shown) using the Software TLB Management Interface 302 .
- the reference numeral 400 generally designates a Hardware-controlled Pre-Load Translation Mechanism.
- the Hardware-controlled Pre-Load Translation Mechanism 400 is similar to the hardware-controlled Translation Mechanism Implementation 204 of FIG. 2 , with the inclusion of an additional Software Pre-Load Mechanism 401 and a Software TLB Management Interface 402 .
- the Hardware-controlled Translation Mechanism Implementations 400 is distinguished from any other conventional Hardware-controlled Translation Mechanism Implementations, such as the Implementation 200 of FIG. 2 . Included in the Implementation 400 are a Software TLB Management Interface 402 and a Software Pre-Load Mechanism 401 .
- the Hardware-controlled Translation Mechanism Implementation 400 also comprises a Translation Mechanism 404 . Moreover, the configuration of the Mechanism 404 is substantially similar to the Mechanism 204 of FIG. 2 .
- the operation of the Software Pre-load Mechanism 401 in the Implementation 400 is similar to the operation of the Software Pre-Load Translation Mechanism 301 of FIG. 3 .
- a Software TLB management interface is required. The interface is typically not included in conventional Hardware-controlled mechanism since the TLB is managed by hardware miss handlers.
- the TLB Data Port 406 is coupled to the TLB 412 (not shown) of the Translation Mechanism 404 through the first communication channel 420 , wherein translation data is transferred from the TLB Data Port 406 to the Translation Mechanism 404 .
- the TLB Data Port 406 provides a communication port for delivering missing translations to the Translation Mechanism 404 .
- the TLB Index 408 is coupled to the Translation Mechanism 404 through a second communication channel 422 . Index data is communicated from the TLB Index 408 to the Translation Mechanism 404 through the second communication channel 422 .
- the TLB Index 408 contains the buffer location for the missing translations supplied by the TLB Data Port 406 .
- the Software Pre-Load Mechanism 401 is coupled to the Software TLB Management Interface 402 through a third communication channel 411 .
- the Software Pre-load Mechanism 401 with an extension of the Software TLB Management Interface 402 allows translations to be pre-loaded into a TLB (not shown) from a Page Table (not shown) prior to the running of an application.
- the extensions allow for the state of the TLB (not shown) to be saved and restored when swapping task running the execution unit.
- Pre-loading and restoring of the TLB (not shown) provide for a reduction in the lag time by warming the associated TLB (not shown).
- the combination also allows for re-initializing the TLB when switching the context of the processor as opposed to a simple save and restore.
- the Software Pre-load Mechanism 401 provides the applications with an interface for requesting the pre-load of translation.
- the requested translations can also be used to re-initialize the translations when switching the context of the processor.
- the interface can be an extension of the memory advise or “madvise” operating system call.
- the “madvise” call includes an effective address and region size parameter which defines the start and size of an area in Main Storage for which translation are needed by an application.
- the Software Pre-load Mechanism 401 searches the Page Table (not shown) for the translations for the memory area defined by the parameters. Once the translations are found, the Software Pre-load Mechanism 401 loads the translation into the TLB (not shown) using the Software TLB Management Interface 402 .
- the Hardware-controlled Pre-load Translation Mechanism 400 of FIG. 4 further includes a configurable Hardware Miss Handler (not shown), which invokes a Software Miss Handler (not shown) when the translation is not found in the TLB (not shown).
- a configurable Hardware Miss Handler allows the system software to choose the best method for managing the translations required by an application.
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
A method and an apparatus are provided for efficiently managing the operation of a translation buffer. A software and hardware apparatus and method are utilized to pre-load a translation buffer to prevent poor operation as a result of slow warming of a cache.
Description
- 1. Field of the Invention
- The invention relates generally to translations mechanisms in a computer architecture and, more particularly, to efficiently manage a translation mechanism to prevent problems associated with “warming” a translation cache.
- 2. Description of the Related Art
- Many of today's processor architectures provide a translation mechanism for converting an effective address (EA) used by an application into a real address (RA) used for referencing real storage. One example of such a processor architecture is PowerPC™. The translation process uses a translation table to translate an EA to an RA. The translation table, or page table, is typically stored in memory. For performance reasons, a typical implementation of the translation mechanism uses a cache and/or buffering structure to hold recently used translations. This structure is referred to as a Translation Lookaside Buffer (TLB) in PowerPC™. Each instruction using an EA causes a lookup in the TLB. When a translation is not found in the TLB (for example, there is a TLB demand miss), a hardware state machine or software routine is invoked to load the requested translation.
- As with any caching mechanism, latency and bandwidth suffers when the cache does not contain a substantial amount of valid information required by an application. This condition is referred to as a “cold” cache. When a translation cache is cold, each access to a new area in storage causes a hardware or software action to be performed to load the requested translation. These demand misses continue until the translation caches are loaded with the most frequently used translations (for example, the translation cache is “warmed”). The additional latency and bandwidth degradation caused by the initial demand misses increase the runtime of an application. This condition typically occurs when a program is first run or when the processor swaps from one task to another, commonly referred to as the startup penalty. The startup penalty results in differences between the runtime of an application when executed on a “cold” versus a “warm” cache.
- The startup penalty can be acceptable for non real-time applications. However, a real-time application should account for the worst-case latencies and bandwidth to guarantee a task can be completed in a specific amount of time (for example, a deadline). Therefore, real-time applications should account for the performance of a “cold” cache and, typically, cannot take full advantage of the system performance. In addition, a real-time application that does not properly account for the performance differences between a “cold” and “warm” translation cache can miss a deadline.
- Therefore, there is a need for a method and/or apparatus for avoiding the performance penalty of warming a cold cache that addresses at least some of the problems associated with the conventional demand miss methods and apparatuses for warming a cold translation cache.
- The present invention provides a computer program product for managing a translation mechanism in a processor architecture, the computer program product having a medium with a computer program embodied thereon. A computer program code for transporting data through a data port is provided. Also a computer program code for supplying index data from an index table to the translator is provided. There is also a computer program code for providing management of the means for pre-loading.
- For a more complete understanding of the present invention and the advantages thereof, reference is now made to the following descriptions taken in conjunction with the accompanying drawings, in which:
-
FIG. 1 is a block diagram depicting a conventional software-controlled translation mechanism; -
FIG. 2 is a block diagram depicting a conventional hardware-controlled translation mechanism; -
FIG. 3 is a block diagram depicting a Software-controlled Pre-load Translation Mechanism; and -
FIG. 4 is a block diagram depicting a Hardware-controlled Pre-load Translation Mechanism. - In the following discussion, numerous specific details are set forth to provide a thorough understanding of the present invention. However, those skilled in the art will appreciate that the present invention can be practiced without such specific details. In other instances, well-known elements have been illustrated in schematic or block diagram form in order not to obscure the present invention in unnecessary detail. Additionally, for the most part, details concerning network communications, electro-magnetic signaling techniques, and the like, have been omitted inasmuch as such details are not considered necessary to obtain a complete understanding of the present invention, and are considered to be within the understanding of persons of ordinary skill in the relevant art.
- It is further noted that, unless indicated otherwise, all functions described herein can be performed in either hardware or software, or some combinations thereof. In a preferred embodiment, however, the functions are performed by a processor such as a computer or an electronic data processor in accordance with code such as computer program code, software, and/or integrated circuits that are coded to perform such functions, unless indicated otherwise.
- Referring to
FIG. 1 of the drawings, thereference numeral 100 generally designates a conventional software-controlled translation mechanism implementation. TheTranslation Mechanism Implementation 100 comprisesTranslation Mechanism 104 and a SoftwareTLB Management Interface 102. TheTranslation Mechanism 104 comprises an Execution Unit (EU) 110, a Translation Lookaside Buffer (TLB) 112, a Software Miss Handler 114, and aMain Storage 116. TheMain Storage 116 further includes a Page Table 118. In addition,Main Storage 116 can also include memory mapped I/O devices and registers. The SoftwareTLB Management Interface 102 comprises aTLB Data Port 106 and aTLB Index 108. - Within the
translation mechanism implementation 100, there is a plurality of interconnected devices that each perform specific tasks. The EU 110 executes instructions, such as instructions contained in an executable file. Instructions using an Effective Address (EA) to referenceMain Storage 116 cause the EU 110 to forward the EA to theTLB 112 for translation. The TLB 112 searches the translation buffer or cache for a translation for the EA. If there does not exist a translation for the EA issued by the EU 110, then the Software Miss Handler 114 searches for the unavailable, required translation in the Page Table 118 by computing the proper RA to locate the translation entry needed to translate EA provided by the EU 110 in the Page Table 118. The Software Miss Handler 114 is typically executed in the EU 110 or another processor in the system. Once the proper translation has been found for the EA 110 requested EA, the translation is loaded into theTLB 112, utilizing theSoftware Control Interface 102. The translation can now be used for future reference and the current EA is converted into a Real Address (RA) based on the data found in the Page Table 118. If the translation is not found in the Page Table 118, the Software Miss Handler 114 typically invokes a separate software mechanism (not shown) to resolve the translations missing in the Page Table 118. Missing translations result due to certain portions of the Page Table 118 being swapped to a mass media device such as a hard drive to more efficiently make use of processor memory, typically when translation entries in the swapped portion of the Page Table 118 have not been used in a lengthy period of time. - Within the
Translation Mechanism 104, there exist a variety of connections to allow for the operation of theMechanism 104 as described. The EU 110 is coupled to theTLB 112 through afirst communication channel 126, wherein thefirst communication channel 126 transfers an EA to theTLB 112. TheTLB 112 is coupled to the SoftwareTLB Management Interface 102 through asecond communication channel 120 and athird communication channel 122. Thesecond communication channel 120 and thethird communication channel 122 each provide control data to theTLB 112. Also, thesecond communication channel 120 and thethird communication channel 122 are used by the Software Miss Handler 114 to load translations found in the Page Table 118 into the TLB 112. TheTLB 112 is further coupled to theSoftware Miss Handler 114 through afourth communication channel 128, wherein a TLB Miss is communicated from theTLB 112 to theSoftware Miss Handler 114.TLB 112 is also coupled to theMain Storage 116 through afifth communication channel 132, wherein an EU's 110 translated RA is communicated from theTLB 112 to theMain Storage 116. TheSoftware Miss Handler 114 is coupled to the Page Table 118 through asixth communication channel 130. Thesixth communication channel 130 is used by theSoftware Miss Handler 114 to search the Page Table 118 for the translations missing in theTLB 112. Also, theEU 110 is coupled to theMain Storage 116 through aseventh communication channel 134, wherein data is intercommunicated between the EU and theMain Storage 116. - Within the Software
TLB Management Interface 102, there exist a variety of connections to allow for the operation of the interface. TheTLB Data Port 106 is coupled to theTLB 112 of theTranslation Mechanism 104 through thesecond communication channel 120, wherein translation data is transferred from theTLB Data Port 106 to theTLB 112. TheTLB Data Port 106 provides a communication port for delivering missing translations to theTLB 112. TheTLB Index 108 is coupled to theTLB 112 of the Translation Mechanism through thethird communication channel 122. Index data is communicated from theTLB Index 108 to theTLB 112 through thesecond communication channel 122. TheTLB Index 108 contains the buffer location in theTLB 112 for the missing translations supplied by theTLB Data Port 106. - Now referring to
FIG. 2 of the drawings, thereference numeral 204 generally designates a conventional hardware-controlled Translation Mechanism Implementation. TheTranslation Mechanism Implementation 204 comprises anEU 210, aTLB 212, aHardware Miss Handler 214, and aMain Storage 216. TheMain Storage 216 further includes a Page Table 218. In addition,Main Storage 216 can also include memory mapped I/O devices and registers. - Within the
Translation Mechanism Implementation 200, there is a plurality of interconnected devices that each performs specific tasks. TheEU 210 executes instructions such as those contained in an executable file. Instructions using an EA to referenceMain Storage 216 cause theEU 210 to forward the EA to theTLB 212 for translation. TheTLB 212 searches the translation buffers or cache for a translation for the EA. If there does not exist a translation for the EA issued by theEU 210, then theHardware Miss Handler 214 searches for the unavailable, required translation in the Page Table 218. Once the proper translation has been found, the translation is loaded into theTLB 212 for future reference and the current EA is converted into an RA. The RA is then communicated to theMain Storage 216 through afourth communication channel 232. Once the RA has been transmitted, data can be effectively transferred between theMain Storage 216 and theEU 210. If the translation is not found in the Page Table 218, theHardware Miss Handler 214 typically invokes a software mechanism to resolve translations missing in the Page Table 218. - Within the
Translation Mechanism 204, there exist a variety of connections to allow for the operation of theMechanism 204. TheEU 210 is coupled to theTLB 212 through afirst communication channel 226, wherein thefirst communication channel 226 transfers an EA to theTLB 212. TheTLB 212 is coupled to the Page Table 218 through asecond communication channel 224, wherein thesecond communication channel 224 provides control data intercommunicated between theTLB 212 and the Page Table 218. Thesecond communication channel 224 is used by theHardware Miss Handler 214 to load translations found in the Page Table 218 into theTLB 212. TheTLB 212 is further coupled to theHardware Miss Handler 214 through athird communication channel 228, wherein a TLB MISS is communicated from theTLB 212 to theHardware Miss Handler 214.TLB 212 is also coupled to theMain Storage 216 through thefourth communication channel 232, wherein an EU's 210 translated RA is communicated from theTLB 212 to theMain Storage 216. TheHardware Miss Handler 214 is coupled to the Page Table 218 through afifth communication channel 230. Thefifth communication channel 230 is used theHardware Miss Handler 214 to search the Page Table 218 for the translations missing in theTLB 112. Also, theEU 210 is coupled to theMain Storage 216 through asixth communication channel 234, wherein data is intercommunicated between theEU 210 and theMain Storage 216. - Referring to
FIG. 3 of the drawings, thereference numeral 300 generally designates a Software-controlled Pre-load Translation Mechanism. The Software-controlledPre-Load Translation Mechanism 300 is similar to the Software-controlledTranslation Mechanism Implementation 100 ofFIG. 1 , with the inclusion of an additional Software Pre-Load Mechanism 301. The TLBPre-Load Translation Mechanism 300 comprises a Software Pre-Load Mechanism 301, a Software-controlledTranslation Mechanism 304, and a SoftwareTLB Management Interface 302. The configurations ofMechanism 304 and of SoftwareTLB Management Interface 302 are substantially similar to theMechanism 104 and SoftwareTLB Management Interface 102 ofFIG. 1 , respectively. - Within the Software
TLB Management Interface 302, there exist a variety of connections to allow for the operation of the interface. TheTLB Data Port 306 is coupled to the TLB (not shown but substantially similar toTLB 112 ofFIG. 1 ) of theTranslation Mechanism 304 through thefirst communication channel 320, wherein translation data is transferred from theTLB Data Port 306 to theTranslation Mechanism 304. Also, theTLB Index 308 is coupled to theTranslation Mechanism 304 through asecond communication channel 320. Index data is communicated from theTLB Index 308 to theTranslation Mechanism 304 through thesecond communication channel 322. TheTLB Index 308 contains the buffer location for the missing translations supplied by theTLB Data Port 306. - The Software Pre-load Mechanism 301 distinguishes the Software-controlled
Pre-load Translation Mechanism 300 ofFIG. 3 from any other conventional Translation Mechanism Implementations, such as theTranslation Mechanism Implementation 100 ofFIG. 1 . The Software Pre-Load Mechanism 301 is coupled to the SoftwareTLB Management Interface 302 through athird communication channel 311. The Software Pre-load Mechanism 301 with an extension of the SoftwareTLB Management Interface 302 allows translations to be pre-loaded into a TLB (not shown) from a Page Table (not shown) prior to the running of an application. In addition, the extensions allow for the state of the TLB (not shown) to be saved and restored when swapping tasks running on the execution unit. Pre-loading and restoring of the TLB provide for a reduction in the lag time by warming the associated TLB (not shown). Furthermore, the combination also allows for re-initializing the TLB when switching the context of the processor as opposed to a simple save and restore. - The Software Pre-load Mechanism 301 provides the applications with an interface for requesting the pre-load of translation. The requested translations can also be used to re-initialize the translations when switching the context of the processor. The interface can be an extension of the memory advise or “madvise” operating system call.
- The “madvise” call includes an effective address and region size parameter which defines the start and size of an area in Main Storage for which translations are needed by an application. When receiving a “madvise” call, the Software Pre-load Mechanism 301 searches the Page Table (not shown) for the translations for the memory area defined by the parameters. Once the translations are found, the Software Pre-load Mechanism 301 loads the translation into the TLB (not shown) using the Software
TLB Management Interface 302. - Referring to
FIG. 4 of the drawings, thereference numeral 400 generally designates a Hardware-controlled Pre-Load Translation Mechanism. The Hardware-controlledPre-Load Translation Mechanism 400 is similar to the hardware-controlledTranslation Mechanism Implementation 204 ofFIG. 2 , with the inclusion of an additional Software Pre-Load Mechanism 401 and a SoftwareTLB Management Interface 402. - The Hardware-controlled
Translation Mechanism Implementations 400 is distinguished from any other conventional Hardware-controlled Translation Mechanism Implementations, such as theImplementation 200 ofFIG. 2 . Included in theImplementation 400 are a SoftwareTLB Management Interface 402 and a Software Pre-Load Mechanism 401. The Hardware-controlledTranslation Mechanism Implementation 400 also comprises aTranslation Mechanism 404. Moreover, the configuration of theMechanism 404 is substantially similar to theMechanism 204 ofFIG. 2 . - The operation of the Software Pre-load Mechanism 401 in the
Implementation 400 is similar to the operation of the Software Pre-Load Translation Mechanism 301 ofFIG. 3 . However, to allow for the Software Pre-load Mechanism to work in a hardware-controlled mechanism, a Software TLB management interface is required. The interface is typically not included in conventional Hardware-controlled mechanism since the TLB is managed by hardware miss handlers. - Within the Software
TLB Management Interface 402, there exist a variety of connections to allow for the operation of the interface. TheTLB Data Port 406 is coupled to the TLB 412 (not shown) of theTranslation Mechanism 404 through thefirst communication channel 420, wherein translation data is transferred from theTLB Data Port 406 to theTranslation Mechanism 404. TheTLB Data Port 406 provides a communication port for delivering missing translations to theTranslation Mechanism 404. TheTLB Index 408 is coupled to theTranslation Mechanism 404 through asecond communication channel 422. Index data is communicated from theTLB Index 408 to theTranslation Mechanism 404 through thesecond communication channel 422. TheTLB Index 408 contains the buffer location for the missing translations supplied by theTLB Data Port 406. - Included with the Hardware-controlled
Pre-Load Mechanism 400 is a Software Pre-Load Mechanism. The Software Pre-Load Mechanism 401 is coupled to the SoftwareTLB Management Interface 402 through athird communication channel 411. The Software Pre-load Mechanism 401 with an extension of the SoftwareTLB Management Interface 402 allows translations to be pre-loaded into a TLB (not shown) from a Page Table (not shown) prior to the running of an application. In addition, the extensions allow for the state of the TLB (not shown) to be saved and restored when swapping task running the execution unit. Pre-loading and restoring of the TLB (not shown) provide for a reduction in the lag time by warming the associated TLB (not shown). Furthermore, the combination also allows for re-initializing the TLB when switching the context of the processor as opposed to a simple save and restore. - The Software Pre-load Mechanism 401 provides the applications with an interface for requesting the pre-load of translation. The requested translations can also be used to re-initialize the translations when switching the context of the processor. The interface can be an extension of the memory advise or “madvise” operating system call.
- The “madvise” call includes an effective address and region size parameter which defines the start and size of an area in Main Storage for which translation are needed by an application. When receiving a “madvise” call, the Software Pre-load Mechanism 401 searches the Page Table (not shown) for the translations for the memory area defined by the parameters. Once the translations are found, the Software Pre-load Mechanism 401 loads the translation into the TLB (not shown) using the Software
TLB Management Interface 402. - There are advantages and disadvantages to both a hardware and software-managed TLB (not shown). For example, the latency for resolving a TLB miss is less in a hardware-managed TLB mechanism than a software-managed TLB mechanism. However, there is less control of the Page Table structure and the translations contained in the TLB of a hardware-controlled TLB mechanism. The Hardware-controlled
Pre-load Translation Mechanism 400 ofFIG. 4 further includes a configurable Hardware Miss Handler (not shown), which invokes a Software Miss Handler (not shown) when the translation is not found in the TLB (not shown). The inclusion of a configurable Hardware Miss Handler (not shown) allows the system software to choose the best method for managing the translations required by an application. - From the foregoing description, it is understood that it is also possible to having varying degrees of concurrent control and management of a given Translation Lookaside Buffer. Hence, there are multiple embodiments of the present invention that can encompass varying degrees of control and/or management with respect to software and hardware.
- It will further be understood from the foregoing description that various modifications and changes can be made in the preferred embodiment of the present invention without departing from its true spirit. This description is intended for purposes of illustration only and should not be construed in a limiting sense. The scope of this invention should be limited only by the language of the following claims.
Claims (24)
1. An apparatus for managing a translation mechanism in a processor architecture comprising:
an execution unit for generating an effective address;
a translator, wherein the translator at least translates an effective address into a real address, wherein if a translation is at least not available, then the real address is unavailable;
a miss manager, wherein the miss manager is at least configured to manage unavailable real addresses from the means for translating;
means for pre-loading translation data; and
a storage means, wherein the storage mean at least stores a plurality of general data wherein the plurality of general data is at least referenced by real addresses.
2. The apparatus of claim 1 , wherein the storage means further comprises a page table, wherein the page table is configured to at least provide a plurality of references to the plurality of general data.
3. The apparatus of claim 2 , wherein the means for pre-loading further comprises a communication channel between the page table and the translator.
4. The apparatus of claim 3 , wherein the translation mechanism further comprises a software manager coupled to the translator.
5. The apparatus of claim 4 , wherein the software manager further comprises:
a data port for transporting data there between;
an index table for supplying index data to the translator; and
means for providing management of the means for pre-loading.
6. The apparatus of claim 4 , wherein the translation mechanism further comprises a hardware manager coupled to the translator.
7. The apparatus of claim 6 , wherein the hardware manager further comprises:
a data port for transporting data there between;
an index table for supplying index data to the means for translating; and
means for providing management of the means for pre-loading.
8. The apparatus of claim 4 , wherein the translation mechanism further comprises a hardware manager coupled to the translator, wherein the hardware manager further comprises a means for providing management of the means for pre-loading.
9. The apparatus of claim 8 , wherein the hardware manager further comprises:
a data port for transporting data therebetween; and
an index table for supplying index data to the translator.
10. The apparatus of claim 4 , wherein the translation mechanism further comprises a hardware manager coupled to the translator, wherein the hardware manager further comprises a means for providing a least partial management of the means for pre-loading.
11. The apparatus of claim 10 , wherein the hardware manager further comprises:
a data port for transporting data there between;
an index table for supplying index data to the means for translating; and
means for providing at least partial management of the means for pre-loading.
12. A method for managing a translation mechanism in a processor architecture comprising:
generating an effective address;
translating an effective address into a real address, wherein if a translation is at least not available, then the real address is unavailable;
managing unavailable real addresses from the step of translating;
pre-loading unavailable data; and
accessing a plurality of stored general data wherein the plurality of stored general data is at least referenced by real addresses.
13. The method of claim 12 , wherein the step of accessing further comprises accessing a page table, wherein the page table is configured to at least provide a plurality of references to the plurality of general data.
14. The method of claim 13 , wherein the step of pre-loading further comprises utilizing a communication channel between the reference table and a translator.
15. The method of claim 14 , wherein step of translation further comprises at least utilizing a software manager coupled to the translator.
16. The method of claim 15 , wherein the step of at least utilizing the software manager further comprises:
transporting data through a data port;
supplying index data from an index table to the translator; and
providing management of the means for pre-loading.
17. The method of claim 15 , wherein the translation mechanism method further comprises at least utilizing a hardware manager coupled to the translator.
18. The method of claim 17 , wherein the step of at least utilizing software management means further comprises:
transporting data through a data port;
supplying index data from an index table to the translator; and
providing management of the means for pre-loading.
19. The method of claim 15 , wherein the step of translation further comprises at least utilizing a hardware manager coupled to the translator, wherein the hardware management means further comprises a means for providing management of the means for pre-loading.
20. The apparatus of claim 19 , wherein the utilized hardware management means further comprises:
transporting data through a data port;
supplying index data from an index table to the translator.
21. The method of claim 15 , wherein the step of translating further comprises:
at least utilizing a hardware manager coupled to the translator; and
at least providing a least partial management of the means for pre-loading.
22. The apparatus of claim 21 , wherein the software management means further comprises:
transporting data through a data port;
supplying index data from an index table to the translator; and
providing management of the means for pre-loading.
23. A computer program product for managing a translation mechanism in a processor architecture, the computer program product having a medium with a computer program embodied thereon, the computer program comprising:
computer program code for transporting data through a data port;
computer program code for supplying index data from an index table to the translator; and
computer program code for providing management of the means for pre-loading.
24. A processor for managing a translation mechanism, the processor including a computer program comprising:
computer program code for transporting data through a data port;
computer program code for supplying index data from an index table to the translator; and
computer program code for providing management of the means for pre-loading.
Priority Applications (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US10/759,941 US20050160229A1 (en) | 2004-01-16 | 2004-01-16 | Method and apparatus for preloading translation buffers |
TW094100089A TW200540710A (en) | 2004-01-16 | 2005-01-03 | Method and apparatus for preloading translation buffers |
CNB2005100044034A CN1316378C (en) | 2004-01-16 | 2005-01-13 | Method and apparatus for managing translation mechanism in processor frame |
US11/621,315 US7711903B2 (en) | 2004-01-16 | 2007-01-09 | Preloading translation buffers |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US10/759,941 US20050160229A1 (en) | 2004-01-16 | 2004-01-16 | Method and apparatus for preloading translation buffers |
Related Child Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US11/621,315 Continuation-In-Part US7711903B2 (en) | 2004-01-16 | 2007-01-09 | Preloading translation buffers |
Publications (1)
Publication Number | Publication Date |
---|---|
US20050160229A1 true US20050160229A1 (en) | 2005-07-21 |
Family
ID=34749809
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US10/759,941 Abandoned US20050160229A1 (en) | 2004-01-16 | 2004-01-16 | Method and apparatus for preloading translation buffers |
US11/621,315 Expired - Fee Related US7711903B2 (en) | 2004-01-16 | 2007-01-09 | Preloading translation buffers |
Family Applications After (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US11/621,315 Expired - Fee Related US7711903B2 (en) | 2004-01-16 | 2007-01-09 | Preloading translation buffers |
Country Status (3)
Country | Link |
---|---|
US (2) | US20050160229A1 (en) |
CN (1) | CN1316378C (en) |
TW (1) | TW200540710A (en) |
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20070113044A1 (en) * | 2004-01-16 | 2007-05-17 | Day Michael N | Method and Apparatus for Preloading Translation Buffers |
US20070204129A1 (en) * | 2006-02-28 | 2007-08-30 | Fujitsu Limited | Address converting apparatus |
US20070277000A1 (en) * | 2006-05-24 | 2007-11-29 | Katsushi Ohtsuka | Methods and apparatus for providing simultaneous software/hardware cache fill |
KR101001100B1 (en) * | 2006-07-31 | 2010-12-14 | 엔비디아 코포레이션 | Dedicated Mechanisms for Page Mapping in GPUs |
US20140223103A1 (en) * | 2010-06-09 | 2014-08-07 | Micron Technology, Inc. | Persistent memory for processor main memory |
US9317450B2 (en) | 2010-09-30 | 2016-04-19 | Micron Technology, Inc. | Security protection for memory content of processor main memory |
US9448938B2 (en) | 2010-06-09 | 2016-09-20 | Micron Technology, Inc. | Cache coherence protocol for persistent memories |
US20180246816A1 (en) * | 2017-02-24 | 2018-08-30 | Advanced Micro Devices, Inc. | Streaming translation lookaside buffer |
US10489302B1 (en) * | 2015-12-29 | 2019-11-26 | Amazon Technologies, Inc. | Emulated translation unit using a management processor |
Families Citing this family (28)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20070174717A1 (en) * | 2006-01-10 | 2007-07-26 | Sun Microsystems, Inc. | Approach for testing instruction TLB using user/application level techniques |
US8249089B2 (en) * | 2006-09-29 | 2012-08-21 | Intel Corporation | Methods for pushing address translations mappings to PCI express endpoints |
US8145876B2 (en) * | 2007-08-06 | 2012-03-27 | Advanced Micro Devices, Inc. | Address translation with multiple translation look aside buffers |
US8161243B1 (en) * | 2007-09-28 | 2012-04-17 | Intel Corporation | Address translation caching and I/O cache performance improvement in virtualized environments |
US8228197B2 (en) * | 2008-11-10 | 2012-07-24 | Pouch Pac Innovations, Llc | Flexible pouch with smart tags |
US9569349B2 (en) * | 2008-12-19 | 2017-02-14 | Ati Technologies Ulc | Method and apparatus for reallocating memory content |
US8683465B2 (en) * | 2009-12-18 | 2014-03-25 | International Business Machines Corporation | Virtual image deployment with a warm cache |
US8176218B2 (en) | 2010-08-11 | 2012-05-08 | Lsi Corporation | Apparatus and methods for real-time routing of received commands in a split-path architecture storage controller |
US8255634B2 (en) * | 2010-08-11 | 2012-08-28 | Lsi Corporation | Apparatus and methods for look-ahead virtual volume meta-data processing in a storage controller |
US8261003B2 (en) | 2010-08-11 | 2012-09-04 | Lsi Corporation | Apparatus and methods for managing expanded capacity of virtual volumes in a storage system |
US8527736B1 (en) | 2010-09-07 | 2013-09-03 | Adtran, Inc. | Systems and methods for improving address translation speed |
US9037788B2 (en) | 2010-09-30 | 2015-05-19 | Micron Technology, Inc. | Validating persistent memory content for processor main memory |
US9921967B2 (en) | 2011-07-26 | 2018-03-20 | Intel Corporation | Multi-core shared page miss handler |
WO2013048943A1 (en) | 2011-09-30 | 2013-04-04 | Intel Corporation | Active state power management (aspm) to reduce power consumption by pci express components |
US10380030B2 (en) * | 2012-12-05 | 2019-08-13 | Arm Limited | Caching of virtual to physical address translations |
TWI536179B (en) * | 2015-07-02 | 2016-06-01 | 緯創資通股份有限公司 | Connecting circuitry and computing system haveing the same |
US9898416B2 (en) * | 2015-12-22 | 2018-02-20 | International Business Machines Corporation | Translation entry invalidation in a multithreaded data processing system |
US10185731B2 (en) * | 2016-03-31 | 2019-01-22 | Arm Limited | Indexing entries of a storage structure shared between multiple threads |
US10515671B2 (en) | 2016-09-22 | 2019-12-24 | Advanced Micro Devices, Inc. | Method and apparatus for reducing memory access latency |
DE102016219202A1 (en) * | 2016-10-04 | 2018-04-05 | Robert Bosch Gmbh | Method and device for protecting a working memory |
US10176109B2 (en) * | 2017-04-20 | 2019-01-08 | Oracle International Corporation | Permuted memory access mapping |
CN111417939A (en) * | 2017-08-16 | 2020-07-14 | 慧与发展有限责任合伙企业 | Tiered Storage in Distributed File System |
US10956332B2 (en) * | 2017-11-01 | 2021-03-23 | Advanced Micro Devices, Inc. | Retaining cache entries of a processor core during a powered-down state |
US11126714B2 (en) | 2017-11-29 | 2021-09-21 | Arm Limited | Encoding of input to storage circuitry |
US10819736B2 (en) | 2017-11-29 | 2020-10-27 | Arm Limited | Encoding of input to branch prediction circuitry |
US11579770B2 (en) | 2018-03-15 | 2023-02-14 | Western Digital Technologies, Inc. | Volatility management for memory device |
US11157319B2 (en) | 2018-06-06 | 2021-10-26 | Western Digital Technologies, Inc. | Processor with processor memory pairs for improved process switching and methods thereof |
CN111274166B (en) * | 2018-12-04 | 2022-09-20 | 展讯通信(上海)有限公司 | TLB pre-filling and locking method and device |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5493660A (en) * | 1992-10-06 | 1996-02-20 | Hewlett-Packard Company | Software assisted hardware TLB miss handler |
US5699543A (en) * | 1995-09-29 | 1997-12-16 | Intel Corporation | Profile guided TLB and cache optimization |
US5918250A (en) * | 1995-05-05 | 1999-06-29 | Intel Corporation | Method and apparatus for preloading default address translation attributes |
US5983329A (en) * | 1996-05-03 | 1999-11-09 | Sun Microsystems, Inc. | Caching virtual memory locks |
US6212613B1 (en) * | 1999-03-22 | 2001-04-03 | Cisco Technology, Inc. | Methods and apparatus for reusing addresses in a computer |
US6249906B1 (en) * | 1998-06-26 | 2001-06-19 | International Business Machines Corp. | Adaptive method and system to minimize the effect of long table walks |
US6766435B1 (en) * | 2000-05-31 | 2004-07-20 | Hewlett-Packard Development Company, L.P. | Processor with a general register set that includes address translation registers |
US6886085B1 (en) * | 2000-04-19 | 2005-04-26 | International Business Machines Corporation | Method and apparatus for efficient virtual memory management |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5918251A (en) * | 1996-12-23 | 1999-06-29 | Intel Corporation | Method and apparatus for preloading different default address translation attributes |
US6470437B1 (en) * | 1999-12-17 | 2002-10-22 | Hewlett-Packard Company | Updating and invalidating store data and removing stale cache lines in a prevalidated tag cache design |
US6681311B2 (en) * | 2001-07-18 | 2004-01-20 | Ip-First, Llc | Translation lookaside buffer that caches memory type information |
JP2003196157A (en) * | 2001-12-25 | 2003-07-11 | Mitsubishi Electric Corp | Processor device and memory management method |
JP4945053B2 (en) | 2003-03-18 | 2012-06-06 | ルネサスエレクトロニクス株式会社 | Semiconductor device, bus interface device, and computer system |
US20050160229A1 (en) | 2004-01-16 | 2005-07-21 | International Business Machines Corporation | Method and apparatus for preloading translation buffers |
-
2004
- 2004-01-16 US US10/759,941 patent/US20050160229A1/en not_active Abandoned
-
2005
- 2005-01-03 TW TW094100089A patent/TW200540710A/en unknown
- 2005-01-13 CN CNB2005100044034A patent/CN1316378C/en not_active Expired - Fee Related
-
2007
- 2007-01-09 US US11/621,315 patent/US7711903B2/en not_active Expired - Fee Related
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5493660A (en) * | 1992-10-06 | 1996-02-20 | Hewlett-Packard Company | Software assisted hardware TLB miss handler |
US5918250A (en) * | 1995-05-05 | 1999-06-29 | Intel Corporation | Method and apparatus for preloading default address translation attributes |
US5699543A (en) * | 1995-09-29 | 1997-12-16 | Intel Corporation | Profile guided TLB and cache optimization |
US5983329A (en) * | 1996-05-03 | 1999-11-09 | Sun Microsystems, Inc. | Caching virtual memory locks |
US6249906B1 (en) * | 1998-06-26 | 2001-06-19 | International Business Machines Corp. | Adaptive method and system to minimize the effect of long table walks |
US6212613B1 (en) * | 1999-03-22 | 2001-04-03 | Cisco Technology, Inc. | Methods and apparatus for reusing addresses in a computer |
US6886085B1 (en) * | 2000-04-19 | 2005-04-26 | International Business Machines Corporation | Method and apparatus for efficient virtual memory management |
US6766435B1 (en) * | 2000-05-31 | 2004-07-20 | Hewlett-Packard Development Company, L.P. | Processor with a general register set that includes address translation registers |
Cited By (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20070113044A1 (en) * | 2004-01-16 | 2007-05-17 | Day Michael N | Method and Apparatus for Preloading Translation Buffers |
US7711903B2 (en) | 2004-01-16 | 2010-05-04 | International Business Machines Corporation | Preloading translation buffers |
US20070204129A1 (en) * | 2006-02-28 | 2007-08-30 | Fujitsu Limited | Address converting apparatus |
US20070277000A1 (en) * | 2006-05-24 | 2007-11-29 | Katsushi Ohtsuka | Methods and apparatus for providing simultaneous software/hardware cache fill |
US7886112B2 (en) * | 2006-05-24 | 2011-02-08 | Sony Computer Entertainment Inc. | Methods and apparatus for providing simultaneous software/hardware cache fill |
KR101001100B1 (en) * | 2006-07-31 | 2010-12-14 | 엔비디아 코포레이션 | Dedicated Mechanisms for Page Mapping in GPUs |
US20140223103A1 (en) * | 2010-06-09 | 2014-08-07 | Micron Technology, Inc. | Persistent memory for processor main memory |
US9075725B2 (en) * | 2010-06-09 | 2015-07-07 | Micron Technology, Inc. | Persistent memory for processor main memory |
US9384134B2 (en) | 2010-06-09 | 2016-07-05 | Micron Technology, Inc. | Persistent memory for processor main memory |
US9448938B2 (en) | 2010-06-09 | 2016-09-20 | Micron Technology, Inc. | Cache coherence protocol for persistent memories |
US9317450B2 (en) | 2010-09-30 | 2016-04-19 | Micron Technology, Inc. | Security protection for memory content of processor main memory |
US10489302B1 (en) * | 2015-12-29 | 2019-11-26 | Amazon Technologies, Inc. | Emulated translation unit using a management processor |
US20180246816A1 (en) * | 2017-02-24 | 2018-08-30 | Advanced Micro Devices, Inc. | Streaming translation lookaside buffer |
US10417140B2 (en) * | 2017-02-24 | 2019-09-17 | Advanced Micro Devices, Inc. | Streaming translation lookaside buffer |
Also Published As
Publication number | Publication date |
---|---|
CN1641606A (en) | 2005-07-20 |
US20070113044A1 (en) | 2007-05-17 |
TW200540710A (en) | 2005-12-16 |
CN1316378C (en) | 2007-05-16 |
US7711903B2 (en) | 2010-05-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20050160229A1 (en) | Method and apparatus for preloading translation buffers | |
KR101623514B1 (en) | Iommu architected tlb support | |
CN107111455B (en) | Electronic processor architecture and method of caching data | |
US10802987B2 (en) | Computer processor employing cache memory storing backless cache lines | |
US8433853B2 (en) | Prefetching of next physically sequential cache line after cache line that includes loaded page table entry | |
US6795897B2 (en) | Selective memory controller access path for directory caching | |
US6138208A (en) | Multiple level cache memory with overlapped L1 and L2 memory access | |
KR101041647B1 (en) | Method and system for maximum resident replacement of cache memory | |
US7552283B2 (en) | Efficient memory hierarchy management | |
US4774653A (en) | Hybrid hardware/software method and apparatus for virtual memory address translation using primary and secondary translation buffers | |
US8335908B2 (en) | Data processing apparatus for storing address translations | |
US9678889B2 (en) | Address translation in a data processing apparatus | |
US20040128452A1 (en) | Allocating cache lines | |
US20090282198A1 (en) | Systems and methods for optimizing buffer sharing between cache-incoherent cores | |
US7496730B2 (en) | System and method for reducing the number of translation buffer invalidates an operating system needs to issue | |
US7721023B2 (en) | I/O address translation method for specifying a relaxed ordering for I/O accesses | |
US6810473B2 (en) | Replacement algorithm for a replicated fully associative translation look-aside buffer | |
US20210026770A1 (en) | Instruction cache coherence | |
US20080147984A1 (en) | Method and apparatus for faster execution path | |
Klimiankou | Translation lookaside buffer management | |
JP3219196B2 (en) | Cache data access method and apparatus | |
KR19990079976A (en) | Invalidation ranking logic device according to status bit of Victim Cache |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
AS | Assignment |
Owner name: INTERNATIONAL BUSINESS MACHINES CORPORATION, NEW Y Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:JOHNS, CHARLES RAY;DAY, MICHAEL NORMAN;DEMENT, JONATHAN JAMES;REEL/FRAME:014908/0001;SIGNING DATES FROM 20031216 TO 20031218 |
|
STCB | Information on status: application discontinuation |
Free format text: ABANDONED -- FAILURE TO RESPOND TO AN OFFICE ACTION |