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

Virtual to physical address translation scheme with granularity hint for identifying subsequent pages to be accessed

Assignee: Hewlett Packard Development Co LP
•
Filing: 1993-08-24
•
Granted: 1995-09-26
•
Expires: 2013-08-24
📄 Original PDF 🌐 Google Patents 🔄 Sync Now

Abstract

Abstract A high-performance central processing unit (CPU) of the reduced instruction set (RISC) type employs a standardized, fixed instruction size, and permits only simplified memory access data width and addressing modes. The instruction set is limited to register-to-register operations and register load/store operations. The processor can employ a variable memory page size, so that the entries in a translation buffer for implementing virtual addressing can be optimally used. A granularity hint is added to the page table entry to define the page size for this entry.

Inventors

  • 👤 Richard L. Sites
  • 👤 Richard T. Witek

Bibliographic Details

Application Number —
Jurisdiction US
Data Source google_patents
Last Synchronized 2026-11-03 17:43
CPC Classifications
G; G06; G06F; G06F12/00; G06F12/02; G06F12/08; G06F12/10; G06F12/1027; G06F9/00; G06F9/06; G06F9/30; G06F9/30003; G06F9/3004; G06F9/30072; G06F9/30076; G06F9/30087; G06F9/34; G06F2212/00; G06F2212/65; G06F2212/652

Claims Analysis

Total Claims: 26
Claim 1
Independent Claim 149 words
A method of operating a processor having a translation buffer for translating a virtual address to a physical address, the method comprising the steps of: storing in said translation buffer a plurality of page table entries, each one of said page table entries containing a page frame number indexed by a tag which is a first portion of said virtual address, the page frame number pointing to a page in a memory accessed by said processor; also storing in said translation buffer in each one of said page table entries a granularity hint identifying a number of subsequent pages of said memory to be accessed by said page frame number, said granularity hint being one or more bits; and adding a second portion of said virtual address to said page frame number to generate said physical address, wherein said second portion has a size determined by said granularity hint.
Claim 2
Independent Claim 149 words
A method of operating a processor having a translation buffer for translating a virtual address to a physical address, the method comprising the steps of: storing in said translation buffer a plurality of page table entries, each one of said page table entries containing a page frame number indexed by a tag which is a first portion of said virtual address, the page frame number pointing to a page in a memory accessed by said processor; also storing in said translation buffer in each one of said page table entries a granularity hint identifying a number of subsequent pages of said memory to be accessed by said page frame number, said granularity hint being one or more bits; and adding a second portion of said virtual address to said page frame number to generate said physical address, wherein said second portion has a size determined by said granularity hint.
Claim 3
Dependent Claim 29 words
The method according to claim 1 wherein said granularity hint is two bits of each one of said page table entries, providing four possible values of said granularity hint.
Claim 4
Dependent Claim 18 words
The method according to claim 1 wherein said page frame number addresses a page of 8Kbyte-to-64Kbyte in size.
Claim 5
Dependent Claim 41 words
The method according to claim 1 wherein said granularity hint is two bits of each one of said page table entries, providing an indication of four different numbers of pages to be referenced by each one of said page table entries.
Claim 6
Dependent Claim 31 words
The method according to claim 4 wherein said four different numbers of pages to be referenced by each one of said page table entries are 1, 8, 64 and 512 pages.
Claim 7
Independent Claim 208 words
A method of operating a processor system having a CPU and a memory connected by a bus, the CPU having a translation buffer for translating a virtual address to a physical address, the method comprising the steps of: storing in said memory by said CPU using said bus a page table containing a plurality of page table entries, each one of said page table entries containing a page frame number and a granularity hint, said granularity hint for each page frame number including one or more bits identifying a number of pages in said memory to be accessed using said page frame number; storing in said translation buffer, by accessing said page table by said CPU using said bus, page table entries of recently used address translations, said page table entries of recently used address translations being indexed in said translation buffer by a tag which is a first portion of said virtual address; in said CPU, adding a second portion of said virtual address to one of said page frame numbers from said translation buffer to generate said physical address, wherein said second portion has a size determined by said granularity hint; and addressing said memory by said CPU via said bus using said generated physical address.
Claim 8
Independent Claim 208 words
A method of operating a processor system having a CPU and a memory connected by a bus, the CPU having a translation buffer for translating a virtual address to a physical address, the method comprising the steps of: storing in said memory by said CPU using said bus a page table containing a plurality of page table entries, each one of said page table entries containing a page frame number and a granularity hint, said granularity hint for each page frame number including one or more bits identifying a number of pages in said memory to be accessed using said page frame number; storing in said translation buffer, by accessing said page table by said CPU using said bus, page table entries of recently used address translations, said page table entries of recently used address translations being indexed in said translation buffer by a tag which is a first portion of said virtual address; in said CPU, adding a second portion of said virtual address to one of said page frame numbers from said translation buffer to generate said physical address, wherein said second portion has a size determined by said granularity hint; and addressing said memory by said CPU via said bus using said generated physical address.
Claim 9
Dependent Claim 29 words
The method according to claim 6 wherein said granularity hint is two bits of each one of said page table entries providing four possible values of said granularity hint.
Claim 10
Dependent Claim 18 words
The method according to claim 6 wherein said page frame number addresses a page of 8Kbyte-to-64Kbyte in size.
Claim 11
Dependent Claim 38 words
The method according to claim 8 wherein said granularity hint is two bits of each one of said page table entries, providing an indication of four different numbers of pages to be referenced by said page table entry.
Claim 12
Dependent Claim 31 words
The method according to claim 9 wherein said four different numbers of pages to be referenced by each one of said page table entries are 1, 8, 64 and 512 pages.
Claim 13
Dependent Claim 218 words
A processor comprising: a) accessing means for fetching instructions from an external memory, decoding means coupled to said accessing means for decoding said instructions, and execution means coupled to said decoding means for executing said instructions, said accessing means including means for accessing said external memory for read and write data for said execution means; b) the accessing means including address generator means for generating a virtual address used for said fetching of instructions and used for said accessing said external memory for data; c) translating means included in said accessing means for translating said virtual address to a physical address for said external memory, said translating means including a translation buffer storing selected page table entries, each one of said selected page table entries including a page frame number referencing a page of said external memory and each one of said selected page table entries including a granularity hint, said granularity hint having one or more bits indicating a number of pages to be accessed in said external memory using the page frame number from said translation buffer and using a first part of said virtual address; d) said translating means generating a physical address for said external memory using the page frame number from said translation buffer and using a second part of said virtual address.
Claim 14
Dependent Claim 218 words
A processor comprising: a) accessing means for fetching instructions from an external memory, decoding means coupled to said accessing means for decoding said instructions, and execution means coupled to said decoding means for executing said instructions, said accessing means including means for accessing said external memory for read and write data for said execution means; b) the accessing means including address generator means for generating a virtual address used for said fetching of instructions and used for said accessing said external memory for data; c) translating means included in said accessing means for translating said virtual address to a physical address for said external memory, said translating means including a translation buffer storing selected page table entries, each one of said selected page table entries including a page frame number referencing a page of said external memory and each one of said selected page table entries including a granularity hint, said granularity hint having one or more bits indicating a number of pages to be accessed in said external memory using the page frame number from said translation buffer and using a first part of said virtual address; d) said translating means generating a physical address for said external memory using the page frame number from said translation buffer and using a second part of said virtual address.
Claim 15
Dependent Claim 32 words
The processor according to claim 11 in combination with a memory apparatus external to said processor, said memory apparatus including said external memory storing a page table of said page table entries.
Claim 16
Dependent Claim 29 words
The processor according to claim 11 wherein said second part of said virtual address is dependent upon a content of said one or more bits of said granularity hint.
Claim 17
Dependent Claim 57 words
The processor according to claim 12 wherein each one of said selected page table entries also contains predetermined bits defining protection and access rights information, for said page of said external memory, and wherein all of the number of pages indicated by said granularity hint must have the said predetermined bits defining protection and access rights information.
Claim 18
Dependent Claim 211 words
A processor system having a CPU and a memory, the processor system comprising: a) fetching and execution means is the CPU for fetching instructions from said memory, decoding said instructions, and executing said instructions, said executing including accessing said memory for read and write data; b) said fetching and execution means in said CPU including means for generating virtual addresses used by said CPU for said fetching of instructions and said accessing said memory for data; c) a page table stored in said memory, said page table containing a plurality of page table entries, each one of said page table entries including a page frame number referencing a page of said memory and a granularity hint, said granularity hint having one or more bits indicating a number of pages of said memory following said selected page to be referenced by said page frame number; d) said fetching and execution means in said CPU including means for translating said virtual addresses to physical addresses for sending to said memory, the means for translating including a translation buffer storing page table entries of recently used address translations; e) and means for addressing said memory using the page frame number from said translation buffer and using a part of each of said virtual addresses.
Claim 19
Dependent Claim 211 words
A processor system having a CPU and a memory, the processor system comprising: a) fetching and execution means is the CPU for fetching instructions from said memory, decoding said instructions, and executing said instructions, said executing including accessing said memory for read and write data; b) said fetching and execution means in said CPU including means for generating virtual addresses used by said CPU for said fetching of instructions and said accessing said memory for data; c) a page table stored in said memory, said page table containing a plurality of page table entries, each one of said page table entries including a page frame number referencing a page of said memory and a granularity hint, said granularity hint having one or more bits indicating a number of pages of said memory following said selected page to be referenced by said page frame number; d) said fetching and execution means in said CPU including means for translating said virtual addresses to physical addresses for sending to said memory, the means for translating including a translation buffer storing page table entries of recently used address translations; e) and means for addressing said memory using the page frame number from said translation buffer and using a part of each of said virtual addresses.
Claim 20
Dependent Claim 33 words
The processor system according to claim 15 wherein said part of said virtual address contains a number of bits dependent upon a content of said one or more bits of said granularity hint.
Claim 21
Dependent Claim 57 words
The processor system according to claim 15 wherein said granularity hint in each one of said page table entries is used by said means for addressing to define the number of pages referenced by said page frame number only if page table entries for all of said number of pages contain a predetermined content of protection bits.
Claim 22
Dependent Claim 20 words
The processor system according to claim 15 wherein said instructions fetched from said memory are all of a fixed length.
Claim 23
Dependent Claim 55 words
The processor system according to claim 15 wherein each one of said page table entries also contains a plurality of bits of protection and access rights information, and wherein all of said plurality of bits in said page table entries for all of the number of pages indicated by said granularity hint are the same.
Claim 24
Dependent Claim 40 words
The processor system according to claim 15 wherein said one or more bits of said granularity hint in each one of said page table entries is two bits, and said two bits provide four possible values of said granularity hint.
Claim 25
Dependent Claim 51 words
The method according to claim 5 wherein each one of said page table entries includes a number of bits of protection information, and each one of said number of pages defined by said granularity hint has the same value for all bits of said number of bits of page protection information.
Claim 26
Dependent Claim 51 words
The method according to claim 10 wherein each one of said page table entries includes a number of bits of protection information, and each one of said number of pages defined by said granularity hint has the same value for all bits of said number of bits of page protection information.

USPTO Annuity & Maintenance Windows

Annuity Stage Window Opens Payment Deadline Surcharge Period Until Estimated Fee Status
3.5 Years (Year 4) 1998-09-25 1999-03-27 1999-09-26 $2000.00 Window Closed / Lapsed
7.5 Years (Year 8) 2002-09-25 2003-03-27 2003-09-26 $3760.00 Window Closed / Lapsed
11.5 Years (Year 12) 2006-09-25 2007-03-27 2007-09-26 $7700.00 Window Closed / Lapsed

Assigned Categories & Tags

No categories assigned to this patent yet.

Assign Category Tag