Patent US4774653A successfully refreshed from Google Patents.
← Back to Patent Explorer
US4774653A Expired / Lapsed US ⏱️ 0.0 years remaining

Hybrid hardware/software method and apparatus for virtual memory address translation using primary and secondary translation buffers

Assignee: HP Inc
•
Filing: 1985-08-07
•
Granted: 1988-09-27
•
Expires: 2005-08-07
📄 Original PDF 🌐 Google Patents 🔄 Sync Now

Abstract

Abstract A hybrid hardware/software implementation of a translation look-aside buffer (TLB) is provided which improves the efficiency of address translation in a computing system utilizing a virtually addressed memory. To access a physical memory location a processor first attempts to fetch a virtual-to-physical address translation from a primary TLB. If the address translation is not in the primary TLB, the processor attempts to fetch the address translation from a secondary TLB. If the address translation is not in the secondary TLB, a trap is generated, after which the processor searches a virtual address translation table for the address translation. Through the use of the present invention, complex hashing routines can be used to address entries in a virtual address translation table (VATT) within the system's physical memory, without increasing the complexity or significantly reducing the performance of the TLB fetch hardware.

Inventors

  • 👤 David V. James

Bibliographic Details

Application Number —
Jurisdiction US
Data Source google_patents
Last Synchronized 2026-10-25 22:02
CPC Classifications
G; G06; G06F; G06F12/00; G06F12/02; G06F12/08; G06F12/10; G06F12/1027

Claims Analysis

Total Claims: 20
Claim 1
Independent Claim 288 words
A computer system in which virtual addresses, used by programs executed by the computer system, are translated to physical addresses in order to access physical memory locations in memory storage devices within the computer system, said system comprising: a processor comprising a primary translation look-aside buffer containing a first set of data representative of a first set of recently used virtual-to-physical address translations and TLB fetch hardware coupled to the primary translation look-aside buffer; and a physical memory coupled to the processor by a first bus, said physical memory comprising a secondary translation look-aside buffer coupled to the first bus for providing a second set of data to the processor, said second set of data representative of a second set of virtual-to-physical address translations, and a virtual address translation table means coupled to the secondary translation look-aside buffer for providing a third set of data to the processor, said third set of data representative of all virtual-to-physical address translations needed to access data located in the physical memory; wherein when the processor searches for a virtual-to-physical address translation in order to use the virtual-to-physical address translation to access a physical memory location, the processor will obtain the virtual-to-physical address translation from the primary look-aside buffer when the virtual-to-physical address translation is in the primary look-aside buffer, and when the virtual-to-physical address translation is not in the primary look-aside buffer, the TLB fetch hardware will fetch data from the secondary translation look-aside buffer when the virtual-to-physical address is in the secondary translation look-aside buffer, and when the virtual-to-physical address translation is not in the secondary translation look-aside buffer, the TLB fetch hardware will generate a trap after which the processor will search the virtual address translation table using software.
Claim 2
Dependent Claim 288 words
A computer system in which virtual addresses, used by programs executed by the computer system, are translated to physical addresses in order to access physical memory locations in memory storage devices within the computer system, said system comprising: a processor comprising a primary translation look-aside buffer containing a first set of data representative of a first set of recently used virtual-to-physical address translations and TLB fetch hardware coupled to the primary translation look-aside buffer; and a physical memory coupled to the processor by a first bus, said physical memory comprising a secondary translation look-aside buffer coupled to the first bus for providing a second set of data to the processor, said second set of data representative of a second set of virtual-to-physical address translations, and a virtual address translation table means coupled to the secondary translation look-aside buffer for providing a third set of data to the processor, said third set of data representative of all virtual-to-physical address translations needed to access data located in the physical memory; wherein when the processor searches for a virtual-to-physical address translation in order to use the virtual-to-physical address translation to access a physical memory location, the processor will obtain the virtual-to-physical address translation from the primary look-aside buffer when the virtual-to-physical address translation is in the primary look-aside buffer, and when the virtual-to-physical address translation is not in the primary look-aside buffer, the TLB fetch hardware will fetch data from the secondary translation look-aside buffer when the virtual-to-physical address is in the secondary translation look-aside buffer, and when the virtual-to-physical address translation is not in the secondary translation look-aside buffer, the TLB fetch hardware will generate a trap after which the processor will search the virtual address translation table using software.
Claim 3
Dependent Claim 29 words
A computer system as in claim 1, wherein the virtual address translation table means comprises hashing means for distributing virtual address entries throughout allocated portions of the physical memory.
Claim 4
Dependent Claim 18 words
A computer system as in claim 3, wherein the hashing means comprises a hashing function located in software.
Claim 5
Dependent Claim 31 words
A computer system as in claim 1, wherein the memory access speed of the primary translation look-aside buffer is greater than the memory access speed of the secondary translation look-aside buffer.
Claim 6
Dependent Claim 29 words
A computer system as in claim 4, wherein the memory size of the primary translation look-aside buffer is less than the memory size of the secondary translation look-aside buffer.
Claim 7
Dependent Claim 31 words
A computer system as in claim 1, wherein the third set of data comprises a set of virtual addresses corresponding to a set of physical addresses located in the physical memory.
Claim 8
Dependent Claim 293 words
A computer system in which virtual addresses, used by programs executed by the computer system, are translated to physical addresses in order to access physical memory locations in memory storage devices within the computer system, said system comprising: a processor comprising a primary translation look-aside buffer containing a first set of data representative of a first set of recently used virtual-to-physical address translations and TLB fetch hardware coupled to the primary translation look-aside buffer; a secondary translation look-aside buffer coupled to the primary translation look-aside buffer by a TLB bus for providing a second set of data to the processor, said second set of data representative of a second set of virtual-to-physical address translations; and a physical memory coupled to the processor by a first bus, said physical memory comprising a virtual address translation table means coupled to the secondary translation look-aside buffer for providing a third set of data to the processor, said third set of data representative of all virtual-to-physical address translations needed to access data located in the physical memory; wherein when the processor searches for a virtual-to-physical address translation in order to use the virtual-to-physical address translation to access a physical memory location, the processor will obtain the virtual-to-physical address translation from the primary look-aside buffer when the virtual-to-physical address translation is in the primary look-aside buffer, and when the virtual-to-physical address translation is not in the primary look-aside buffer, the TLB fetch hardware will fetch data from the secondary translation look-aside buffer when the virtual-to-physical address is in the secondary translation look-aside buffer, and when the virtual-to-physical address translation is not in the secondary translation look-aside buffer, the TLB fetch hardware will generate a trap after which the processor will search the virtual address translation table using software.
Claim 9
Dependent Claim 293 words
A computer system in which virtual addresses, used by programs executed by the computer system, are translated to physical addresses in order to access physical memory locations in memory storage devices within the computer system, said system comprising: a processor comprising a primary translation look-aside buffer containing a first set of data representative of a first set of recently used virtual-to-physical address translations and TLB fetch hardware coupled to the primary translation look-aside buffer; a secondary translation look-aside buffer coupled to the primary translation look-aside buffer by a TLB bus for providing a second set of data to the processor, said second set of data representative of a second set of virtual-to-physical address translations; and a physical memory coupled to the processor by a first bus, said physical memory comprising a virtual address translation table means coupled to the secondary translation look-aside buffer for providing a third set of data to the processor, said third set of data representative of all virtual-to-physical address translations needed to access data located in the physical memory; wherein when the processor searches for a virtual-to-physical address translation in order to use the virtual-to-physical address translation to access a physical memory location, the processor will obtain the virtual-to-physical address translation from the primary look-aside buffer when the virtual-to-physical address translation is in the primary look-aside buffer, and when the virtual-to-physical address translation is not in the primary look-aside buffer, the TLB fetch hardware will fetch data from the secondary translation look-aside buffer when the virtual-to-physical address is in the secondary translation look-aside buffer, and when the virtual-to-physical address translation is not in the secondary translation look-aside buffer, the TLB fetch hardware will generate a trap after which the processor will search the virtual address translation table using software.
Claim 10
Dependent Claim 29 words
A computer system as in claim 7, wherein the virtual address translation table means comprises hashing means for distributing virtual address entries throughout allocated portions of the physical memory.
Claim 11
Dependent Claim 18 words
A computer system as in claim 8, wherein the hashing means comprises a hashing function located in software.
Claim 12
Dependent Claim 31 words
A computer system as in claim 7, wherein the memory access speed of the priary translation look-aside buffer is greater than the memory access speed of the secondary translation look-aside buffer.
Claim 13
Dependent Claim 29 words
A computer system as in claim 10, wherein the memory size of the primary translation look-aside buffer is less than the memory size of the secondary translation look-aside buffer.
Claim 14
Dependent Claim 31 words
A computer system as in claim 7, wherein the third set of data comprises a set of virtual addresses corresponding to a set of physical addresses located in the physical memory.
Claim 15
Independent Claim 124 words
A method for addressing a physical memory in a computer system, wherein programs executed by the computer system contain virtual addresses which are translated to physical addresses in order to access locations within the physical memory, said method comprising the steps of: (a) attempting to fetch, by hardware, a virtual-to-physical address translation by a processor from a primary translation look-aside buffer; (b) attempting to fetch, by hardware, the address translation from a secondary translation look-aside buffer if the address translation is not in the primary translation look-aside buffer; and (c) fetching, using software, the address translation from a virtual address translation table to the secondary translation look-aside buffer if the address translation is not in either of the primary or secondary translation look-aside buffers.
Claim 16
Independent Claim 124 words
A method for addressing a physical memory in a computer system, wherein programs executed by the computer system contain virtual addresses which are translated to physical addresses in order to access locations within the physical memory, said method comprising the steps of: (a) attempting to fetch, by hardware, a virtual-to-physical address translation by a processor from a primary translation look-aside buffer; (b) attempting to fetch, by hardware, the address translation from a secondary translation look-aside buffer if the address translation is not in the primary translation look-aside buffer; and (c) fetching, using software, the address translation from a virtual address translation table to the secondary translation look-aside buffer if the address translation is not in either of the primary or secondary translation look-aside buffers.
Claim 17
Dependent Claim 20 words
A method as in claim 13 further comprising during step (c) the step of (d) interrupting operation of the processor.
Claim 18
Independent Claim 131 words
A method for addressing a physical memory in a computer system, wherein programs executed by the computer system contain virtual addresses which are translated to physical addresses in order to access locations within the physical memory, said method comprising the steps of: (a) attempting to fetch, by hardware, a virtual-to-physical address translation by a processor from a primary translation look-aside buffer; (b) attempting to fetch, by hardware, the address translation from a secondary translation look-aside buffer if the address translation is not in the primary translation look-aside buffer; and (c) fetching, using software, the address translation from a virtual address translation table to both the primary translation look-aside buffer and the secondary translation look-aside buffer if the address translation is not in either of the primary or secondary translation look-aside buffers.
Claim 19
Independent Claim 131 words
A method for addressing a physical memory in a computer system, wherein programs executed by the computer system contain virtual addresses which are translated to physical addresses in order to access locations within the physical memory, said method comprising the steps of: (a) attempting to fetch, by hardware, a virtual-to-physical address translation by a processor from a primary translation look-aside buffer; (b) attempting to fetch, by hardware, the address translation from a secondary translation look-aside buffer if the address translation is not in the primary translation look-aside buffer; and (c) fetching, using software, the address translation from a virtual address translation table to both the primary translation look-aside buffer and the secondary translation look-aside buffer if the address translation is not in either of the primary or secondary translation look-aside buffers.
Claim 20
Dependent Claim 20 words
A method as in claim 15 further comprising during step (c) the step of (d) interrupting operation of the processor.

References Cited (Backward Citations)

US3829840A Cited
US4145738A Cited
US4206503A Cited
US4700291A Cited
US4356549A Cited
US4386402A Cited
US4481573A Cited
US4618926A Cited
US4638426A Cited
US4612612A Cited
US4710894A Cited
US4654790A Cited
US4680700A Cited

USPTO Annuity & Maintenance Windows

Annuity Stage Window Opens Payment Deadline Surcharge Period Until Estimated Fee Status
3.5 Years (Year 4) 1991-09-27 1992-03-28 1992-09-27 $2000.00 Window Closed / Lapsed
7.5 Years (Year 8) 1995-09-27 1996-03-28 1996-09-27 $3760.00 Window Closed / Lapsed
11.5 Years (Year 12) 1999-09-27 2000-03-28 2000-09-27 $7700.00 Window Closed / Lapsed

Assigned Categories & Tags

No categories assigned to this patent yet.

Assign Category Tag