← Back to Patent Explorer
US5222222A Expired / Lapsed US ⏱️ 0.0 years remaining

Apparatus and method for a space saving translation lookaside buffer for content addressable memory

Assignee: Sun Microsystems Inc
•
Filing: 1990-12-18
•
Granted: 1993-06-22
•
Expires: 2010-12-18
📄 Original PDF 🌐 Google Patents 🔄 Sync Now

Abstract

Abstract A method and apparatus for saving memory space in a buffer whereby the valid bit in the entry of the translation lookaside buffer for a cache memory is collapsed into one of the level bits indicating the length of the virtual address. During the lookup of the translation lookaside buffer, the virtual address in each entry is compared with the virtual address from the CPU if the level/valid bit is set, i.e. the entry is valid. If the level/valid bit is not set, then no compare takes place and the lookup continues to the next entry. The length of the virtual address to be compared is further determined by the status of the remaining level bits.

Inventors

  • 👤 Peter A. Mehring
  • 👤 Robert D. Becker

Bibliographic Details

Application Number —
Jurisdiction US
Data Source google_patents
Last Synchronized 2026-10-28 00:55
CPC Classifications
G; G06; G06F; G06F12/00; G06F12/02; G06F12/08; G06F12/10; G06F12/1027; G06F2212/00; G06F2212/65; G06F2212/652

Claims Analysis

Total Claims: 10
Claim 1
Independent Claim 305 words
In a computer system comprising a random access memory and a fast cache memory, said cache memory containing frequently referenced data from the random access memory, said system first referencing the cache memory to retrieve data and referencing the random access memory only if the data is not in the cache memory, a method for saving space in address entries of a buffer for the cache memory, each of said address entries comprising a virtual address tag field for virtual address tags, and a level bit field comprising a plurality of bits, said address tag field identifying a virtual address, said level bit field identifying the length of a virtual address tag, said method comprising the steps of: storing data in the cache memory, comprising the steps of; providing an entry in said buffer for data stored in the cache, setting a first level bit for a valid entry, and setting remaining level bits in said level bit field according to a predetermined virtual tag match criteria, said predetermined criteria being based on the length of said virtual address tag in said address tag field; accessing data in the cache memory, comprising the steps of; receiving a virtual address from a processor, reading the status of said first level bit in the address entry in the buffer, if the first level bit is reset, reading a next entry in said buffer, and if the first level bit is set, causing said valid entry to be compared with said virtual address tag from said processor, the length of said virtual address tag in said entry being determined by the status of all level bits according to said predetermined virtual tag match criteria; whereby if the virtual address matches an entry in the buffer, a corresponding physical address is outputted and data is retrieved from the cache.
Claim 2
Dependent Claim 305 words
In a computer system comprising a random access memory and a fast cache memory, said cache memory containing frequently referenced data from the random access memory, said system first referencing the cache memory to retrieve data and referencing the random access memory only if the data is not in the cache memory, a method for saving space in address entries of a buffer for the cache memory, each of said address entries comprising a virtual address tag field for virtual address tags, and a level bit field comprising a plurality of bits, said address tag field identifying a virtual address, said level bit field identifying the length of a virtual address tag, said method comprising the steps of: storing data in the cache memory, comprising the steps of; providing an entry in said buffer for data stored in the cache, setting a first level bit for a valid entry, and setting remaining level bits in said level bit field according to a predetermined virtual tag match criteria, said predetermined criteria being based on the length of said virtual address tag in said address tag field; accessing data in the cache memory, comprising the steps of; receiving a virtual address from a processor, reading the status of said first level bit in the address entry in the buffer, if the first level bit is reset, reading a next entry in said buffer, and if the first level bit is set, causing said valid entry to be compared with said virtual address tag from said processor, the length of said virtual address tag in said entry being determined by the status of all level bits according to said predetermined virtual tag match criteria; whereby if the virtual address matches an entry in the buffer, a corresponding physical address is outputted and data is retrieved from the cache.
Claim 3
Dependent Claim 18 words
The method as defined by claim 1 wherein the level bit field is stored in content addressable memory.
Claim 4
Dependent Claim 19 words
The method as defined by claim 2 wherein said buffer is a translation lookaside buffer for said cache memory.
Claim 5
Dependent Claim 93 words
The method as defined by claim 3 wherein said remaining level bits are set according to the predetermined virtual tag match criteria such that one level bit is set to indicate the eight (8) most significant bits of a thirty two (32) bit virtual address, two level bits are set to indicate the fourteen (14) most significant bits in said thirty two (32) bit virtual address, and three level bits are set to indicate the twenty (20) most significant bits of said 32 bit virtual address, respectively, represent the virtual address tag field.
Claim 6
Dependent Claim 313 words
In a computer system comprising a random access memory and a fast cache memory, said cache memory containing frequently referenced data from the random access memory, said system first referencing the cache memory to retrieve data and referencing the random access memory only if the data is not in the cache memory, an apparatus for saving spaced in address entries of a buffer for a cache memory, each of said entries comprising a virtual address tag field for virtual address tags, and a level bit field comprising a plurality of bits, said address tag field identifying a virtual address, said level bit field identifying the length of a virtual address tag, said apparatus comprising: means for storing data in the cache memory, comprising; means for providing an entry in said buffer for data stored in the cache, means for setting a first level bit for a valid entry, and means for setting remaining level bits in said level bit field according to a predetermined virtual tag match criteria, said predetermined criteria being based on the length of said virtual address tag in said address tag field; means for accessing data in the cache memory, comprising; means for receiving a virtual address from a processor, means for reading the status of said first level bit in the address entry in the buffer, if the first level bit is reset, means for reading a next entry in said buffer, if the first level bit is set, means for causing said valid entry to be compared with said virtual address tag from said processor, the length of said virtual address tag in said entry being determined by the status of all level bits according to said predetermined virtual tag match criteria; whereby if the virtual address matches the entry in the buffer, a corresponding physical address is outputted and the data is retrieved from the cache.
Claim 7
Dependent Claim 313 words
In a computer system comprising a random access memory and a fast cache memory, said cache memory containing frequently referenced data from the random access memory, said system first referencing the cache memory to retrieve data and referencing the random access memory only if the data is not in the cache memory, an apparatus for saving spaced in address entries of a buffer for a cache memory, each of said entries comprising a virtual address tag field for virtual address tags, and a level bit field comprising a plurality of bits, said address tag field identifying a virtual address, said level bit field identifying the length of a virtual address tag, said apparatus comprising: means for storing data in the cache memory, comprising; means for providing an entry in said buffer for data stored in the cache, means for setting a first level bit for a valid entry, and means for setting remaining level bits in said level bit field according to a predetermined virtual tag match criteria, said predetermined criteria being based on the length of said virtual address tag in said address tag field; means for accessing data in the cache memory, comprising; means for receiving a virtual address from a processor, means for reading the status of said first level bit in the address entry in the buffer, if the first level bit is reset, means for reading a next entry in said buffer, if the first level bit is set, means for causing said valid entry to be compared with said virtual address tag from said processor, the length of said virtual address tag in said entry being determined by the status of all level bits according to said predetermined virtual tag match criteria; whereby if the virtual address matches the entry in the buffer, a corresponding physical address is outputted and the data is retrieved from the cache.
Claim 8
Dependent Claim 17 words
The apparatus is defined by claim 5 wherein said bit field is stored in content addressable memory.
Claim 9
Dependent Claim 19 words
The apparatus as defined by claim 6 wherein said buffer is a translation lookaside buffer for said cache memory.
Claim 10
Dependent Claim 93 words
The apparatus as defined by claim 7 wherein said remaining level bits are set according to the predetermined virtual tag match criteria such that one level bit is set to indicate the eight (8) most significant bits of a thirty two (32) bit virtual address, two level bits are set to indicate the fourteen (14) most significant bits in said thirty two (32) bit virtual address, and three level bit are set to indicate the twenty (20) most significant bits of said 32 bit virtual address, respectively, represent the virtual address tag field.

References Cited (Backward Citations)

US4285040A Cited
US4680700A Cited
US4835734A Cited
US4914577A Cited
US5058003A Cited
US5133058A Cited

USPTO Annuity & Maintenance Windows

Annuity Stage Window Opens Payment Deadline Surcharge Period Until Estimated Fee Status
3.5 Years (Year 4) 1996-06-21 1996-12-21 1997-06-22 $2000.00 Window Closed / Lapsed
7.5 Years (Year 8) 2000-06-21 2000-12-21 2001-06-22 $3760.00 Window Closed / Lapsed
11.5 Years (Year 12) 2004-06-21 2004-12-21 2005-06-22 $7700.00 Window Closed / Lapsed

Assigned Categories & Tags

No categories assigned to this patent yet.

Assign Category Tag