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

Virtual storage dynamic address translation mechanism for multiple-sized pages

Assignee: International Business Machines Corp
•
Filing: 1988-12-15
•
Granted: 1991-10-15
•
Expires: 2008-12-15
📄 Original PDF 🌐 Google Patents 🔄 Sync Now

Abstract

Abstract A dynamic address translation mechanism includes a first directory-look-aside-table (DLAT) for 4KB page sizes and a second DLAT for 1MB page sizes. The page size does need not be known prior to DLAT presentation. When a virtual address is presented for translation, it is applied simultaneously to both DLATs for translation by either DLAT if it contains a page address entry corresponding to the virtual address presented. If a DLAT "miss" occurs, segment/page table searching is initiated. The DLAT page sizes are preferably made equal to the segment/page sizes and placed on 4KB and 1MB boundaries. Virtual page addresses lie within either a 1MB page or a 4KB page, and an entry for any virtual address can exist in only one (not both) of the DLATs.

Inventors

  • 👤 Steven W. White

Bibliographic Details

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

Claims Analysis

Total Claims: 12
Claim 1
Independent Claim 189 words
A dynamic storage address translation system connected between a central processing unit and a storage system for translating virtual addresses supplied by said central processing unit to real addresses and for accessing blocks of data in said storage system, each said block of data being one of a plurality of different block sizes, said dynamic storage address translation system comprising: a plurality of dynamic address translation means, one for each block size, and each said dynamic address translation means including a set-associative table with a plurality of congruence class locations; at least one entry in each congruence class location for storing high order tag bits of a predetermined virtual page, a real block address of the predetermined virtual page and a page valid bit, each said dynamic address translation means responsive to a respective, unique congruence class selection field and a unique tag bit field of a supplied virtual address for determining whether or not the real block address corresponding to the supplied virtual address is stored in a congruence class entry of its set-associative table addressed by its unique congruence class selection field of the supplied virtual address.
Claim 2
Dependent Claim 189 words
A dynamic storage address translation system connected between a central processing unit and a storage system for translating virtual addresses supplied by said central processing unit to real addresses and for accessing blocks of data in said storage system, each said block of data being one of a plurality of different block sizes, said dynamic storage address translation system comprising: a plurality of dynamic address translation means, one for each block size, and each said dynamic address translation means including a set-associative table with a plurality of congruence class locations; at least one entry in each congruence class location for storing high order tag bits of a predetermined virtual page, a real block address of the predetermined virtual page and a page valid bit, each said dynamic address translation means responsive to a respective, unique congruence class selection field and a unique tag bit field of a supplied virtual address for determining whether or not the real block address corresponding to the supplied virtual address is stored in a congruence class entry of its set-associative table addressed by its unique congruence class selection field of the supplied virtual address.
Claim 3
Dependent Claim 58 words
The dynamic storage address translation system of claim 1 having first and second block sizes equal respectively to segment and page sizes in the storage system, wherein the blocks of data are maintained on address boundaries of segments and pages, and wherein a virtual address entry can be placed only in the table corresponding to its block size.
Claim 4
Dependent Claim 55 words
The dynamic storage address translation system of claim 2 wherein two translation means are provided for block sizes of 4 KB and 1 MB or 4 KB and 1 MB boundaries respectively, and wherein each virtual address has an entry in only that set-associative table corresponding to the block size in which the address lies.
Claim 5
Dependent Claim 33 words
The dynamic storage address translation system of claim 1 further comprising: means responsive to a page valid bit in said congruence class entry for providing a real block address to said storage system.
Claim 6
Dependent Claim 47 words
The dynamic storage address translation system of claim 4 further comprising circuit means for comparing corresponding high order bits of a supplied virtual address with the tag bit fields or entries in the set-associative tables addressed by the congruence class selection fields of the supplied virtual address.
Claim 7
Dependent Claim 44 words
The dynamic storage address translation system of claim 4 further comprising: means responsive to said means for providing a real block address for concatenating, to said real block address, a block offset portion of said supplied virtual address for presentation to said storage system.
Claim 8
Independent Claim 176 words
A method performed by a dynamic storage address translation system connected between a central processing unit and a storage system for converting virtual addresses supplied by said central processing unit into real storage addresses and for accessing blocks of data in said storage system, each block of data being one of a plurality of different block sizes, each block size being equal to the size of a corresponding virtual page size within a virtual space, comprising the steps of: storing in congruence class entries of a plurality of set-associative arrays, one array for each block size, high order virtual address tag bits and real block address bits of recently-referenced virtual pages mapped into real blocks of storage space, simultaneously accessing those congruence class entries in each set-associative array corresponding to its unique congruence class selection field in a supplied virtual address, simultaneously comparing the tag bits in the accessed entries of each set-associative array with corresponding high order bits in the supplied virtual address, and selecting real block address bits of an entry which compares equal.
Claim 9
Independent Claim 176 words
A method performed by a dynamic storage address translation system connected between a central processing unit and a storage system for converting virtual addresses supplied by said central processing unit into real storage addresses and for accessing blocks of data in said storage system, each block of data being one of a plurality of different block sizes, each block size being equal to the size of a corresponding virtual page size within a virtual space, comprising the steps of: storing in congruence class entries of a plurality of set-associative arrays, one array for each block size, high order virtual address tag bits and real block address bits of recently-referenced virtual pages mapped into real blocks of storage space, simultaneously accessing those congruence class entries in each set-associative array corresponding to its unique congruence class selection field in a supplied virtual address, simultaneously comparing the tag bits in the accessed entries of each set-associative array with corresponding high order bits in the supplied virtual address, and selecting real block address bits of an entry which compares equal.
Claim 10
Dependent Claim 341 words
In a large, high performance data processing system having a virtual address space arranged in pages including a large page size and a significantly smaller page size, wherein said large and small pages are mapped respectively into large and small real storage blocks of corresponding size on large and small page boundaries, a method performed by a dynamic address translation system connected between a central processing unit and a storage system for converting virtual addresses having high order tag bits, congruence class bits and low order page offset bits, supplied by said central processing unit into real storage addresses for accessing blocks of data in said storage storage comprising the steps of: storing in congruence class entries of a pair of set-associative arrays, one for each block size, high order virtual address tag bits and real block address bits of recently-referenced virtual pages, simultaneously accessing congruence class entries in each array corresponding to its unique congruence class selection bits in a supplied virtual address; simultaneously comparing the tag bits in the accessed entries of each array with corresponding bits in the supplied virtual address; selecting the real block address bits of an accessed entry which compares equal and concatenating said real block address bits to page offset bits of the supplied virtual address to form a real storage address, and in the event of no compare equal between the tag bits of the accessed entries and the supplied virtual address: (1) searching a segment table for a valid real block address corresponding to the supplied virtual address of a large page and concatenating the offset bits of the supplied virtual address to the valid real block address in a successful search to form a real storage address, or (2) searching a segment table and page tables for a valid real block address corresponding to the supplied virtual address of a small page and concatenating a smaller group of offset bits of the supplied virtual address to the valid real block address in a successful search to form a real storage address.
Claim 11
Dependent Claim 341 words
In a large, high performance data processing system having a virtual address space arranged in pages including a large page size and a significantly smaller page size, wherein said large and small pages are mapped respectively into large and small real storage blocks of corresponding size on large and small page boundaries, a method performed by a dynamic address translation system connected between a central processing unit and a storage system for converting virtual addresses having high order tag bits, congruence class bits and low order page offset bits, supplied by said central processing unit into real storage addresses for accessing blocks of data in said storage storage comprising the steps of: storing in congruence class entries of a pair of set-associative arrays, one for each block size, high order virtual address tag bits and real block address bits of recently-referenced virtual pages, simultaneously accessing congruence class entries in each array corresponding to its unique congruence class selection bits in a supplied virtual address; simultaneously comparing the tag bits in the accessed entries of each array with corresponding bits in the supplied virtual address; selecting the real block address bits of an accessed entry which compares equal and concatenating said real block address bits to page offset bits of the supplied virtual address to form a real storage address, and in the event of no compare equal between the tag bits of the accessed entries and the supplied virtual address: (1) searching a segment table for a valid real block address corresponding to the supplied virtual address of a large page and concatenating the offset bits of the supplied virtual address to the valid real block address in a successful search to form a real storage address, or (2) searching a segment table and page tables for a valid real block address corresponding to the supplied virtual address of a small page and concatenating a smaller group of offset bits of the supplied virtual address to the valid real block address in a successful search to form a real storage address.
Claim 12
Dependent Claim 61 words
The method of claim 8, wherein the large pages are 1 MB in size mapped into 1 MB real storage blocks on 1 MB boundaries, and wherein the small pages are 4 KB in size mapped into 4 KB real storage blocks on 4 KB boundaries within 1 MB virtual and real spaces assigned to 4 KB page and block sizes.

References Cited (Backward Citations)

US4638426A Cited
US4823259A Cited
US4695950A Cited
US4876646A Cited
US4768146A Cited
US4774659A Cited
US4797814A Cited
US4961135A Cited
US4914577A Cited
US4980816A Cited
US4905141A Cited

USPTO Annuity & Maintenance Windows

Annuity Stage Window Opens Payment Deadline Surcharge Period Until Estimated Fee Status
3.5 Years (Year 4) 1994-10-14 1995-04-15 1995-10-15 $2000.00 Window Closed / Lapsed
7.5 Years (Year 8) 1998-10-14 1999-04-15 1999-10-15 $3760.00 Window Closed / Lapsed
11.5 Years (Year 12) 2002-10-14 2003-04-15 2003-10-15 $7700.00 Window Closed / Lapsed

Assigned Categories & Tags

No categories assigned to this patent yet.

Assign Category Tag