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

Virtual memory address translation apparatus and method using link, auxiliary link and page tables

Assignee: Fujitsu Ltd
•
Filing: 1993-09-20
•
Granted: 1996-12-10
•
Expires: 2013-09-20
📄 Original PDF 🌐 Google Patents 🔄 Sync Now

Abstract

Abstract In a method and apparatus for address translation for translating a 64-bit virtual address into a real address, the 64-bit virtual address comprises a segment number, a page index and a page offset. When this virtual address is translated into a real address, high order bits of the segment number are first input to a hash generation circuit to obtain a hash address of a link table, and this link table is retrieved by an address obtained by adding lower order bits of the segment number as an offset to obtain tag information of the virtual address and a base address of a page table. Next, the tag information of the virtual address obtained in this manner is compared with the original segment number, and the base address of the page table is judged as correct when they coincide with each other. The page table is retrieved by an address obtained by adding a page index as an offset to this base address to obtain a page frame number, and the real address is obtained by combining the original page offset with the page frame number. According to this construction, address translation can be carried out at a higher speed while maintaining compatibility with the 32-bit virtual address.

Inventors

  • 👤 Hitoshi Miyaoku
  • 👤 Hiromasa Takahashi

Bibliographic Details

Application Number —
Jurisdiction US
Data Source google_patents
Last Synchronized 2026-11-07 07:18
CPC Classifications
G; G06; G06F; G06F12/00; G06F12/02; G06F12/0223; G06F12/0292

Claims Analysis

Total Claims: 24
Claim 1
Independent Claim 384 words
A method for translating a virtual address into a real address, comprising: a virtual address holding step of holding a virtual address larger than 32 bits comprising a segment number, a page index formatted as in a virtual address not larger than 32 bits and a page offset formatted as in a virtual address not larger than 32 bits, said virtual address being held as a translational object in such a manner as to correspond to a structure having a virtual space divided into segment units, each segment region is divided into page units corresponding to a real space; a hash processing step of generating a hash address from a part of said virtual address to serve as a base address of a link table; a link table retrieving step of adding a predetermined number of lower order bits of said segment number as an offset, to said hash address, retrieving said link table to obtain tag information of said virtual address, a base address of a page table and a link pointer used for retrieving an auxiliary link table and, outputting said base address of said page table as a correct base address when said tag information of said virtual address coincides with a predetermined number of higher order bits of said segment number; an auxiliary link table retrieving step of retrieving said auxiliary link table by said link pointer when said tag information does not coincide with said predetermined number of higher order bits of said segment number to obtain tag information of a next virtual address, a base address of a next page table and a next link pointer, and continuing retrieval of said auxiliary link table on the basis of said link pointer until a correct base address of said page table is obtained; a page table retrieving step of adding, as an offset, a part of said virtual address to said base address of said page table obtained in said link table retrieving step or in said auxiliary link table retrieving step so as to retrieve said page table, and obtaining a page frame number; and a real address generating step of combining a part of said virtual address as an offset with said page frame number obtained in said page table retrieving step, and generating a real address.
Claim 2
Independent Claim 384 words
A method for translating a virtual address into a real address, comprising: a virtual address holding step of holding a virtual address larger than 32 bits comprising a segment number, a page index formatted as in a virtual address not larger than 32 bits and a page offset formatted as in a virtual address not larger than 32 bits, said virtual address being held as a translational object in such a manner as to correspond to a structure having a virtual space divided into segment units, each segment region is divided into page units corresponding to a real space; a hash processing step of generating a hash address from a part of said virtual address to serve as a base address of a link table; a link table retrieving step of adding a predetermined number of lower order bits of said segment number as an offset, to said hash address, retrieving said link table to obtain tag information of said virtual address, a base address of a page table and a link pointer used for retrieving an auxiliary link table and, outputting said base address of said page table as a correct base address when said tag information of said virtual address coincides with a predetermined number of higher order bits of said segment number; an auxiliary link table retrieving step of retrieving said auxiliary link table by said link pointer when said tag information does not coincide with said predetermined number of higher order bits of said segment number to obtain tag information of a next virtual address, a base address of a next page table and a next link pointer, and continuing retrieval of said auxiliary link table on the basis of said link pointer until a correct base address of said page table is obtained; a page table retrieving step of adding, as an offset, a part of said virtual address to said base address of said page table obtained in said link table retrieving step or in said auxiliary link table retrieving step so as to retrieve said page table, and obtaining a page frame number; and a real address generating step of combining a part of said virtual address as an offset with said page frame number obtained in said page table retrieving step, and generating a real address.
Claim 3
Dependent Claim 33 words
A method as set forth in claim 1, wherein said hash processing step generates said hash address using a predetermined number of high order bits of said segment number of said virtual address.
Claim 4
Dependent Claim 53 words
A method as set forth in claim 1, wherein said auxiliary link table retrieving step judges whether said base address of said page table is correct by comparing said tag information of a virtual address obtained from said auxiliary link table with a predetermined number of high order bits of said segment number.
Claim 5
Dependent Claim 53 words
A method as set forth in claim 1, wherein said page table retrieving step retrieves said page table by adding said page index of said virtual address as an offset to said base address of said page table obtained in said link table retrieving step or in said auxiliary link table retrieving step.
Claim 6
Dependent Claim 39 words
A method as set forth in claim 1, wherein said real address generation step generates said real address by combining said page offset of said virtual address with said page frame number obtained by said page table retrieving step.
Claim 7
Independent Claim 374 words
An apparatus for translating a virtual address into a real address, comprising: a virtual address holding means for holding a virtual address larger than 32 bits comprising a segment number, a page index formatted as in a virtual address not larger than 32 bits and a page offset formatted as in a virtual address not larger than 32 bits, in such a manner as to correspond to a structure having a virtual space divided into segment units, each segment region is divided into page units corresponding to a real space; 1 hash generation means for generating a hash address from a part of said virtual address to serve as a base address of a link table; a link table retrieving means for adding a predetermined number of lower order bits of said segment number as an offset, to said hash address, retrieving said link table to obtain tag information of said virtual address, a base address of a page table and a link pointer used for retrieving an auxiliary link table and, outputting said base address of said page table as a correct base address when said tag information of said virtual address coincides with a predetermined number of higher order bits of said segment number; auxiliary link table retrieving means for retrieving said auxiliary link table by said link pointer when said tag information does not coincide with said predetermined number of higher order bits of said segment number to obtain tag information of a next virtual address, a base address of a next page table and a next link pointer, and continuing retrieval of said auxiliary link table on the basis of said link pointer until a correct base address of said page table is obtained; a page table retrieving means for adding, as an offset, a part of said virtual address to said base address of said page table obtained by said link table retrieving means or by said auxiliary link table retrieving means so as to retrieve said page table, and obtaining a page frame number; and a real address generation means for combining a part of said virtual address as an offset with said page frame number obtained by said page table retrieving means, and generating a real address.
Claim 8
Independent Claim 374 words
An apparatus for translating a virtual address into a real address, comprising: a virtual address holding means for holding a virtual address larger than 32 bits comprising a segment number, a page index formatted as in a virtual address not larger than 32 bits and a page offset formatted as in a virtual address not larger than 32 bits, in such a manner as to correspond to a structure having a virtual space divided into segment units, each segment region is divided into page units corresponding to a real space; 1 hash generation means for generating a hash address from a part of said virtual address to serve as a base address of a link table; a link table retrieving means for adding a predetermined number of lower order bits of said segment number as an offset, to said hash address, retrieving said link table to obtain tag information of said virtual address, a base address of a page table and a link pointer used for retrieving an auxiliary link table and, outputting said base address of said page table as a correct base address when said tag information of said virtual address coincides with a predetermined number of higher order bits of said segment number; auxiliary link table retrieving means for retrieving said auxiliary link table by said link pointer when said tag information does not coincide with said predetermined number of higher order bits of said segment number to obtain tag information of a next virtual address, a base address of a next page table and a next link pointer, and continuing retrieval of said auxiliary link table on the basis of said link pointer until a correct base address of said page table is obtained; a page table retrieving means for adding, as an offset, a part of said virtual address to said base address of said page table obtained by said link table retrieving means or by said auxiliary link table retrieving means so as to retrieve said page table, and obtaining a page frame number; and a real address generation means for combining a part of said virtual address as an offset with said page frame number obtained by said page table retrieving means, and generating a real address.
Claim 9
Dependent Claim 33 words
An apparatus as set forth in claim 6, wherein said hash generating means generates said hash address using a predetermined number of high order bits of said segment number of said virtual address.
Claim 10
Dependent Claim 53 words
An apparatus as set forth in claim 6, wherein said auxiliary link table retrieving means judges whether said base address of said page table is correct by comparing said tag information of a virtual address obtained from said auxiliary link table with a predetermined number of high order bits of said segment number.
Claim 11
Dependent Claim 52 words
An apparatus as set forth in claim 6, wherein said page table retrieving means retrieves said page table by said page index of said virtual address as an offset to said base address of said page table obtained by said link table retrieving means or by said auxiliary link table retrieving means.
Claim 12
Dependent Claim 39 words
An apparatus as set forth in claim 6, wherein said real address generating means generates said real address by combining said page offset of said virtual address with said page frame number obtained by said page table retrieving means.
Claim 13
Independent Claim 437 words
A method for translating a virtual address into a real address, comprising: a process ID holding step of holding an ID number of a process for address translation; a virtual address holding step of holding a virtual address larger than 32 bits comprising a segment number, a page index formatted as in a virtual address not larger than 32 bits and a page offset formatted as in a virtual address not larger than 32 bits, said virtual address being held as translational object in such a manner as to correspond to a structure having a virtual space divided into segment units, each segment region is divided into page units corresponding to a real space; a hash processing step of generating a hash address from said process ID and a part of said virtual address to serve as a base address of a link table; a link table retrieving step of adding a predetermined number of lower order bits of said segment number to said hash address, retrieving said link table to obtain said process ID, tag information of said virtual address, a base address of a page table and a link pointer used for retrieving an auxiliary link table and, outputting said base address of said page table as a correct base address when said process ID obtained by said table retrieval coincides with said process ID held by said process ID holding step and said tag information of said virtual address obtained by said table retrieval coincides with a predetermined number of higher order bits of said segment number; an auxiliary link table retrieving step of retrieving said auxiliary link table by said link pointer when at least one of said tag information and said process ID obtained in said link table retrieving step does not coincide, to thereby obtain a next process ID, tag information of a next virtual address, a base address of a next page table and a next link pointer, and continuing retrieval of said auxiliary link table on the basis of said link pointer until a correct base address of said page table is obtained; a page table retrieving step of adding, as an offset, a part of said virtual address to said base address of said page table obtained in said link table retrieving step or in said auxiliary link table retrieving step so as to retrieve said page table, and obtaining a page frame number; and a real address generating step of combining a part of said virtual address as an offset with said page frame number obtained in said page table retrieving step, and generating a real address.
Claim 14
Independent Claim 437 words
A method for translating a virtual address into a real address, comprising: a process ID holding step of holding an ID number of a process for address translation; a virtual address holding step of holding a virtual address larger than 32 bits comprising a segment number, a page index formatted as in a virtual address not larger than 32 bits and a page offset formatted as in a virtual address not larger than 32 bits, said virtual address being held as translational object in such a manner as to correspond to a structure having a virtual space divided into segment units, each segment region is divided into page units corresponding to a real space; a hash processing step of generating a hash address from said process ID and a part of said virtual address to serve as a base address of a link table; a link table retrieving step of adding a predetermined number of lower order bits of said segment number to said hash address, retrieving said link table to obtain said process ID, tag information of said virtual address, a base address of a page table and a link pointer used for retrieving an auxiliary link table and, outputting said base address of said page table as a correct base address when said process ID obtained by said table retrieval coincides with said process ID held by said process ID holding step and said tag information of said virtual address obtained by said table retrieval coincides with a predetermined number of higher order bits of said segment number; an auxiliary link table retrieving step of retrieving said auxiliary link table by said link pointer when at least one of said tag information and said process ID obtained in said link table retrieving step does not coincide, to thereby obtain a next process ID, tag information of a next virtual address, a base address of a next page table and a next link pointer, and continuing retrieval of said auxiliary link table on the basis of said link pointer until a correct base address of said page table is obtained; a page table retrieving step of adding, as an offset, a part of said virtual address to said base address of said page table obtained in said link table retrieving step or in said auxiliary link table retrieving step so as to retrieve said page table, and obtaining a page frame number; and a real address generating step of combining a part of said virtual address as an offset with said page frame number obtained in said page table retrieving step, and generating a real address.
Claim 15
Dependent Claim 38 words
A method as set forth in claim 11, wherein said hash processing step generates said hash address using said process ID number and a predetermined number of high order bits of said segment number of said virtual address.
Claim 16
Dependent Claim 52 words
A method as set forth in claim 11, wherein said auxiliary link table retrieving step judges whether said base address of said page table is correct by comparing said tag information of virtual address obtained from said auxiliary link table with a predetermined number of high order bits of said segment number.
Claim 17
Dependent Claim 47 words
A method as set forth in claim 11, wherein said page table by adding said page index of said virtual address as an offset to said base address of said page table obtained in said link table retrieving step or in said auxiliary link table retrieving step.
Claim 18
Dependent Claim 39 words
A method as set forth in claim 11, wherein said real address generation step generates said real address by combining said page offset of said virtual address with said page frame number obtained by said page table retrieving step.
Claim 19
Independent Claim 432 words
An apparatus for translating a virtual address into a real address, comprising: process ID holding means for holding an ID number of process for address translation; virtual address holding means for holding a virtual address larger than 32 bits comprising a segment number, a page index formatted as in a virtual address not larger than 32 bits and a page offset formatted as in a virtual address not larger than 32 bits, said virtual address being held as a translational object in such a manner as to correspond to a structure having a virtual space divided into segment units, and each segment region is divided into page units corresponding to a real space; hash generation means for generating a hash address from said process ID and a part of said virtual address to serve as a base address of a link table; link table retrieving means for adding a predetermined number of lower order bits of said segment number to said hash address, retrieving said link table to obtain said process ID, tag information of said virtual address, a base address of a page table and a link pointer used for retrieving an auxiliary link table and, outputting said base address of said page table as a correct base address when said process ID obtained by said table retrieval coincides with said process ID held by said process ID holding means and said tag information of said virtual address obtained by said table retrieval coincides with a predetermined number of higher order bits of said segment number; an auxiliary link table retrieving means for retrieving said auxiliary link table by said link pointer when at least one of said tag information and said process ID obtained by said link table retrieving means does not coincide, to thereby obtain a next process ID, tag information of a next virtual address, a base address of a next page table and a next link pointer, and continuing retrieval of said auxiliary link table on the basis of said link pointer until a correct base address of said page table is obtained; page table retrieving means for adding, as an offset, a part of said virtual address to said base address of said page table obtained by said link table retrieving means or by said auxiliary link table retrieving means so as to retrieve said page table, and obtaining a page frame number; and real address generation means for combining a part of said virtual address as an offset with said page frame number obtained by said page table retrieving means, and generating a real address.
Claim 20
Independent Claim 432 words
An apparatus for translating a virtual address into a real address, comprising: process ID holding means for holding an ID number of process for address translation; virtual address holding means for holding a virtual address larger than 32 bits comprising a segment number, a page index formatted as in a virtual address not larger than 32 bits and a page offset formatted as in a virtual address not larger than 32 bits, said virtual address being held as a translational object in such a manner as to correspond to a structure having a virtual space divided into segment units, and each segment region is divided into page units corresponding to a real space; hash generation means for generating a hash address from said process ID and a part of said virtual address to serve as a base address of a link table; link table retrieving means for adding a predetermined number of lower order bits of said segment number to said hash address, retrieving said link table to obtain said process ID, tag information of said virtual address, a base address of a page table and a link pointer used for retrieving an auxiliary link table and, outputting said base address of said page table as a correct base address when said process ID obtained by said table retrieval coincides with said process ID held by said process ID holding means and said tag information of said virtual address obtained by said table retrieval coincides with a predetermined number of higher order bits of said segment number; an auxiliary link table retrieving means for retrieving said auxiliary link table by said link pointer when at least one of said tag information and said process ID obtained by said link table retrieving means does not coincide, to thereby obtain a next process ID, tag information of a next virtual address, a base address of a next page table and a next link pointer, and continuing retrieval of said auxiliary link table on the basis of said link pointer until a correct base address of said page table is obtained; page table retrieving means for adding, as an offset, a part of said virtual address to said base address of said page table obtained by said link table retrieving means or by said auxiliary link table retrieving means so as to retrieve said page table, and obtaining a page frame number; and real address generation means for combining a part of said virtual address as an offset with said page frame number obtained by said page table retrieving means, and generating a real address.
Claim 21
Dependent Claim 38 words
An apparatus as set forth in claim 16, wherein said hash generation means generates said hash address using a process ID number and a predetermined number of high order bits of said segment number of said virtual address.
Claim 22
Dependent Claim 53 words
An apparatus as set forth in claim 16, wherein said auxiliary link table retrieving means judges whether said base address of said page table is correct by comparing said tag information of a virtual address obtained from said auxiliary link table with a predetermined number of high order bits of said segment number.
Claim 23
Dependent Claim 53 words
An apparatus as set forth in claim 16, wherein said page table retrieving means retrieves said page table by adding said page index of said virtual address as an offset to said base address of said page table obtained by said link table retrieving means or by said auxiliary link table retrieving means.
Claim 24
Dependent Claim 39 words
An apparatus as set forth in claim 16, wherein said real address generation means generates said real address by combining said page offset of said virtual address with said page frame number obtained by said page table retrieving means.

References Cited (Backward Citations)

US4218743A Cited
US4215402A Cited
US4356549A Cited
US4680700A Cited
EP0251861A1 Cited
DE3833933A1 Cited
US5023777A Cited
US5287475A Cited
EP0421845A1 Cited
US5129070A Cited

USPTO Annuity & Maintenance Windows

Annuity Stage Window Opens Payment Deadline Surcharge Period Until Estimated Fee Status
3.5 Years (Year 4) 1999-12-10 2000-06-10 2000-12-10 $2000.00 Window Closed / Lapsed
7.5 Years (Year 8) 2003-12-10 2004-06-10 2004-12-10 $3760.00 Window Closed / Lapsed
11.5 Years (Year 12) 2007-12-10 2008-06-10 2008-12-10 $7700.00 Window Closed / Lapsed

Assigned Categories & Tags

No categories assigned to this patent yet.

Assign Category Tag