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

Virtual address to physical address translation using page tables in virtual memory

Assignee: Hewlett Packard Development Co LP
•
Filing: 1991-12-10
•
Granted: 1993-08-24
•
Expires: 2011-12-10
📄 Original PDF 🌐 Google Patents 🔄 Sync Now

Abstract

Abstract A method for translating a virtual address into a physical address, in which page tables used in the translation process are referenced by virtual addresses. Typically, a translation mechanism includes a translation buffer that, given a virtual address, can sometimes provide the corresponding physical address. A translation-buffer miss is said to occur when the translation buffer is presented with an address for which it can not provide the translation. When such a miss occurs, the translation mechanism obtains the translation by reading the page tables. When the translation mechanism attempts to read the page tables from virtual memory, a second-order miss can occur. The difficulty of infinite recursion of misses is avoided by handling second-order misses differently from first-order misses. When a second-order miss occurs, the translation mechanism uses a prototype page table entry and the virtual address of the page table entry to produce a physical address without using the page tables. Since consecutive pages of the page table in virtual memory reside in consecutive page frames in physical memory, a virtual address in the page tables can be translated to a physical address by adding the page frame number from the prototype page table entry to the virtual page number in the virtual address. The prototype page table entry contains a page-frame number that is equal to the page-frame number of the first page of the page table minus the virtual-page number of the first page of the page table.

Inventors

  • 👤 Robert E. Stewart
  • 👤 Timothy E. Leonard
  • 👤 Sherry T. Lee

Bibliographic Details

Application Number —
Jurisdiction US
Data Source google_patents
Last Synchronized 2026-10-30 19:31
CPC Classifications
G; G06; G06F; G06F12/00; G06F12/02; G06F12/08; G06F12/10; G06F12/1027; G06F2212/00; G06F2212/68; G06F2212/684

Claims Analysis

Total Claims: 18
Claim 1
Independent Claim 488 words
A computer system, which comprises (a) a central processing unit; (b) a memory system having a virtual address space containing data referenced by a plurality of virtual addresses and a physical address space containing data referenced by a plurality of physical addresses; (c) the data in the physical address space, referenced by the physical addresses, comprising a preselected portion of the data in the virtual address space referenced by the virtual addresses such that the virtual addresses, of the preselected portion of data referenced by virtual addresses, have corresponding physical addresses; (d) the physical address space also having a contiguous page table memory space therein, the page table memory space being referenced by physical addresses which locate locations in the page table memory space, each of the locations containing at least a page table entry for a preselected page of the virtual address space; (e) a translation mechanism for translating virtual addresses generated by the central processing unit to corresponding physical addresses; (f) said translation mechanism being coupled between the central processing unit and the memory system such that the virtual addresses generated by the central processing unit are translated to the corresponding physical addresses, which corresponding physical addresses are transmitted to the physical address space of the memory system to fetch data referenced by the physical addresses; (g) said translation mechanism including a translation buffer containing preselected portions of the page table memory space to provide corresponding physical address information to the translation mechanism; (h) a base virtual address register containing a base virtual address of a set of contiguous virtual addresses corresponding to the physical addresses used to reference the contiguous page table memory space of the physical address space; (i) a page table prototype register containing fixed offset information between a first physical address which locates the base of the contiguous page table memory space in the physical address space, and the base virtual address contained in the base virtual address register; (j) means for loading the translation buffer with the preselected portions of the page table memory space; (k) the means for loading the translation buffer being coupled to the central processing unit, the base virtual address register and the page table prototype register such that the means for loading the translation buffer: (i) adds a portion of a first virtual address generated by the central processing unit to the base virtual address contained in the base virtual address register to yield a second virtual address for a page table memory space location containing the corresponding physical address information for the first virtual address, (ii) adds at least a portion of the second virtual address to the offset information contained in the page table prototype register to yield physical address information corresponding to the second virtual address, and (iii) loads the translation buffer with at least a portion of the second virtual address and the physical address information corresponding to the second virtual address.
Claim 2
Dependent Claim 488 words
A computer system, which comprises (a) a central processing unit; (b) a memory system having a virtual address space containing data referenced by a plurality of virtual addresses and a physical address space containing data referenced by a plurality of physical addresses; (c) the data in the physical address space, referenced by the physical addresses, comprising a preselected portion of the data in the virtual address space referenced by the virtual addresses such that the virtual addresses, of the preselected portion of data referenced by virtual addresses, have corresponding physical addresses; (d) the physical address space also having a contiguous page table memory space therein, the page table memory space being referenced by physical addresses which locate locations in the page table memory space, each of the locations containing at least a page table entry for a preselected page of the virtual address space; (e) a translation mechanism for translating virtual addresses generated by the central processing unit to corresponding physical addresses; (f) said translation mechanism being coupled between the central processing unit and the memory system such that the virtual addresses generated by the central processing unit are translated to the corresponding physical addresses, which corresponding physical addresses are transmitted to the physical address space of the memory system to fetch data referenced by the physical addresses; (g) said translation mechanism including a translation buffer containing preselected portions of the page table memory space to provide corresponding physical address information to the translation mechanism; (h) a base virtual address register containing a base virtual address of a set of contiguous virtual addresses corresponding to the physical addresses used to reference the contiguous page table memory space of the physical address space; (i) a page table prototype register containing fixed offset information between a first physical address which locates the base of the contiguous page table memory space in the physical address space, and the base virtual address contained in the base virtual address register; (j) means for loading the translation buffer with the preselected portions of the page table memory space; (k) the means for loading the translation buffer being coupled to the central processing unit, the base virtual address register and the page table prototype register such that the means for loading the translation buffer: (i) adds a portion of a first virtual address generated by the central processing unit to the base virtual address contained in the base virtual address register to yield a second virtual address for a page table memory space location containing the corresponding physical address information for the first virtual address, (ii) adds at least a portion of the second virtual address to the offset information contained in the page table prototype register to yield physical address information corresponding to the second virtual address, and (iii) loads the translation buffer with at least a portion of the second virtual address and the physical address information corresponding to the second virtual address.
Claim 3
Dependent Claim 103 words
The computer system of claim 1 wherein the means for loading the translation buffer operates to simulate a bypass of the translation mechanism by generating null mapping information, the null mapping information including at least a portion of a preselected virtual address and physical address information which is equal to the at least a portion of a preselected virtual address, and loading the null mapping information into the translation buffer in order to cause the translation mechanism to generate a physical address equal to the preselected virtual address when an address equal to the preselected virtual address is applied to the translation mechanism.
Claim 4
Dependent Claim 168 words
The computer system of claim 1 wherein (a) the virtual address space of the memory system is divided into pages, each of the pages being identified by a virtual page number and each of the pages including a predetermined number of addressable units of data, (b) the physical address space of the memory system is divided into page frames, each of the page frames being identified by a page frame number and each of the page frames including a number of addressable units of data equal to the predetermined number of addressable units of data contained in a page of the virtual address space, (c) the translation buffer containing the virtual page numbers for the preselected ones of the virtual addresses of the preselected portion of the data referenced by virtual addresses and the page frame numbers corresponding to the next beforementioned virtual page numbers, (d) said translation mechanism determining the physical addresses from the virtual addresses and the corresponding page frame numbers contained in the translation buffer.
Claim 5
Dependent Claim 57 words
The computer system of claim 3 wherein the page table prototype register contains a page frame number equal to a page frame number relating to the first physical address locating the base of the contiguous page table memory space minus a virtual page number relating to the base virtual address contained in the base virtual address register.
Claim 6
Dependent Claim 541 words
A computer system, which comprises (a) a central processing unit; (b) a memory system having a virtual address space containing data referenced by a plurality of virtual addresses and a physical address space containing data referenced by a plurality of physical addresses; (c) the data in the physical address space, referenced by the physical addresses, comprising a preselected portion of the data in the virtual address space referenced by the virtual addresses such that the virtual addresses, of the preselected portion of data referenced by virtual addresses, have corresponding physical addresses; (d) the physical address space also having a page table memory space therein, the page table memory space being referenced by physical addresses which locate locations in the page table memory space, each of the locations containing at least a page table entry for a preselected page of the virtual address space; (e) a translation mechanism for translating virtual addresses generated by the central processing unit to corresponding physical addresses; (f) said translation mechanism being coupled between the central processing unit and the memory system such that the virtual addresses generated by the central processing unit are translated to the corresponding physical addresses, which corresponding physical addresses are transmitted to the physical address space of the memory system to fetch data referenced by the physical addresses; (g) said translation mechanism including a translation buffer containing information identical to preselected portions of the page table memory space in order to provide corresponding physical address information to the translation mechanism; (h) the page table memory space further referenced by a set of virtual addresses, which correspond to the physical addresses, for referencing the page table memory space; (i) the translation buffer further including at least certain ones of the set of virtual addresses and the corresponding physical address to provide the translation mechanism with information to translate the at least certain ones of the virtual addresses to the corresponding physical addresses, for referencing the page table memory space; and (j) means for loading the translation buffer with the information identical to preselected portions of the page table memory space, said means coupled to the central processing unit and including a page table entry prototype mechanism such that said means for loading the translation buffer operates: (i) to add, in the page table prototype mechanism, a proton of a first virtual address generated by the central processing unit to a base virtual address of the set of virtual addresses corresponding to the physical addresses used to reference the page table memory space of the physical address space to yield a second virtual address for a page table memory space location containing the corresponding physical address information for the first virtual address, (ii) to input the second virtual address into the page table prototype mechanism, which page table prototype mechanism contains known cross reference information between each virtual address of the set of virtual addresses and the corresponding physical address for referencing the page table memory space, and which page table entry prototype mechanism operates to generate physical address information corresponding to the second virtual address, and (iii) to load the translation buffer with at least a portion of the second virtual address and the physical address information corresponding to the second virtual address.
Claim 7
Dependent Claim 541 words
A computer system, which comprises (a) a central processing unit; (b) a memory system having a virtual address space containing data referenced by a plurality of virtual addresses and a physical address space containing data referenced by a plurality of physical addresses; (c) the data in the physical address space, referenced by the physical addresses, comprising a preselected portion of the data in the virtual address space referenced by the virtual addresses such that the virtual addresses, of the preselected portion of data referenced by virtual addresses, have corresponding physical addresses; (d) the physical address space also having a page table memory space therein, the page table memory space being referenced by physical addresses which locate locations in the page table memory space, each of the locations containing at least a page table entry for a preselected page of the virtual address space; (e) a translation mechanism for translating virtual addresses generated by the central processing unit to corresponding physical addresses; (f) said translation mechanism being coupled between the central processing unit and the memory system such that the virtual addresses generated by the central processing unit are translated to the corresponding physical addresses, which corresponding physical addresses are transmitted to the physical address space of the memory system to fetch data referenced by the physical addresses; (g) said translation mechanism including a translation buffer containing information identical to preselected portions of the page table memory space in order to provide corresponding physical address information to the translation mechanism; (h) the page table memory space further referenced by a set of virtual addresses, which correspond to the physical addresses, for referencing the page table memory space; (i) the translation buffer further including at least certain ones of the set of virtual addresses and the corresponding physical address to provide the translation mechanism with information to translate the at least certain ones of the virtual addresses to the corresponding physical addresses, for referencing the page table memory space; and (j) means for loading the translation buffer with the information identical to preselected portions of the page table memory space, said means coupled to the central processing unit and including a page table entry prototype mechanism such that said means for loading the translation buffer operates: (i) to add, in the page table prototype mechanism, a proton of a first virtual address generated by the central processing unit to a base virtual address of the set of virtual addresses corresponding to the physical addresses used to reference the page table memory space of the physical address space to yield a second virtual address for a page table memory space location containing the corresponding physical address information for the first virtual address, (ii) to input the second virtual address into the page table prototype mechanism, which page table prototype mechanism contains known cross reference information between each virtual address of the set of virtual addresses and the corresponding physical address for referencing the page table memory space, and which page table entry prototype mechanism operates to generate physical address information corresponding to the second virtual address, and (iii) to load the translation buffer with at least a portion of the second virtual address and the physical address information corresponding to the second virtual address.
Claim 8
Dependent Claim 321 words
A computer system, which comprises: (a) a central processing unit; (b) a memory system having a virtual address space containing data referenced by a plurality of virtual addresses and a physical address space containing data referenced by a plurality of physical addresses; (c) certain ones of the virtual addresses each having a corresponding physical address; (d) the physical address space having a page table memory space therein; the page table memory space being referenced by physical addresses which locate locations in the page table memory space, each of the locations containing at least a page table entry for a certain page of the virtual address space; (e) a translation mechanism for translating virtual addresses generated by the central processing unit to corresponding physical addresses; (f) said translation mechanism being coupled between the central processing unit and the memory system such that the virtual addresses generated by the central processing unit are translated to the corresponding physical addresses, which corresponding physical addresses are transmitted to the physical address space of the memory system to fetch data referenced by the physical addresses; (g) said translation mechanism including a translation buffer containing preselected portions of the page table memory space to provide corresponding physical address information to the translation mechanism; (h) the page table memory space further referenced by a set of virtual addresses which correspond to the physical addresses for referencing the page table memory space; (i) a page table prototype mechanism including known cross reference information between the set of virtual addresses and the corresponding physical addresses for referencing the page table memory space, the known cross-reference information comprising offset information between all virtual addresses and their corresponding physical addresses; (j) said page table prototype mechanism operating to determine physical address information for referencing the page table memory space from a corresponding one of the set of virtual addresses and the known cross reference information contained in the page table prototype mechanism.
Claim 9
Dependent Claim 321 words
A computer system, which comprises: (a) a central processing unit; (b) a memory system having a virtual address space containing data referenced by a plurality of virtual addresses and a physical address space containing data referenced by a plurality of physical addresses; (c) certain ones of the virtual addresses each having a corresponding physical address; (d) the physical address space having a page table memory space therein; the page table memory space being referenced by physical addresses which locate locations in the page table memory space, each of the locations containing at least a page table entry for a certain page of the virtual address space; (e) a translation mechanism for translating virtual addresses generated by the central processing unit to corresponding physical addresses; (f) said translation mechanism being coupled between the central processing unit and the memory system such that the virtual addresses generated by the central processing unit are translated to the corresponding physical addresses, which corresponding physical addresses are transmitted to the physical address space of the memory system to fetch data referenced by the physical addresses; (g) said translation mechanism including a translation buffer containing preselected portions of the page table memory space to provide corresponding physical address information to the translation mechanism; (h) the page table memory space further referenced by a set of virtual addresses which correspond to the physical addresses for referencing the page table memory space; (i) a page table prototype mechanism including known cross reference information between the set of virtual addresses and the corresponding physical addresses for referencing the page table memory space, the known cross-reference information comprising offset information between all virtual addresses and their corresponding physical addresses; (j) said page table prototype mechanism operating to determine physical address information for referencing the page table memory space from a corresponding one of the set of virtual addresses and the known cross reference information contained in the page table prototype mechanism.
Claim 10
Dependent Claim 36 words
The computer system of claim 6, wherein: (a) the page table memory space occupies contiguous locations in both the physical address space and the virtual address space; and (b) the offset information comprising fixed offset information.
Claim 11
Independent Claim 338 words
A method for loading a translation buffer of a computer system, which computer system includes a virtual memory space having data referenced by a plurality of virtual addresses and a physical memory space having data referenced by a plurality of physical addresses; certain ones of the virtual addresses having a corresponding physical address, the translation buffer being loaded with virtual address information and corresponding physical address information, the method comprising the steps of: (a) providing a contiguous page table memory space in the physical memory space, the page table memory space being referenced by physical addresses, which physical addresses each locate locations containing at least a page table entry for a preselected page of the virtual memory space, the page table entry indicating the physical address of the preselected page of the virtual memory space; (b) providing a base virtual address register containing a base virtual address of a set of contiguous virtual addresses corresponding to the physical addresses used to reference the contiguous page table memory space of the physical address space; (c) providing a page table entry prototype register containing fixed offset information between a first physical address locating the base of the contiguous page table memory space in the physical address space and the base virtual address contained in the base virtual address register; and (d) operating the computer system to load the translation buffer by (i) adds a portion of a preselected on virtual address to the base virtual address contained in the base virtual address register to yield a second virtual address for a page table memory space location containing the corresponding physical address information for the preselected one virtual address; (ii) adding at least a portion of the second virtual address to the offset information contained in the page table entry prototype register to yield physical address information corresponding to the second virtual address; and (iii) loading the translation buffer with the at least a portion of the second virtual address and the physical address information corresponding to the second virtual address.
Claim 12
Independent Claim 338 words
A method for loading a translation buffer of a computer system, which computer system includes a virtual memory space having data referenced by a plurality of virtual addresses and a physical memory space having data referenced by a plurality of physical addresses; certain ones of the virtual addresses having a corresponding physical address, the translation buffer being loaded with virtual address information and corresponding physical address information, the method comprising the steps of: (a) providing a contiguous page table memory space in the physical memory space, the page table memory space being referenced by physical addresses, which physical addresses each locate locations containing at least a page table entry for a preselected page of the virtual memory space, the page table entry indicating the physical address of the preselected page of the virtual memory space; (b) providing a base virtual address register containing a base virtual address of a set of contiguous virtual addresses corresponding to the physical addresses used to reference the contiguous page table memory space of the physical address space; (c) providing a page table entry prototype register containing fixed offset information between a first physical address locating the base of the contiguous page table memory space in the physical address space and the base virtual address contained in the base virtual address register; and (d) operating the computer system to load the translation buffer by (i) adds a portion of a preselected on virtual address to the base virtual address contained in the base virtual address register to yield a second virtual address for a page table memory space location containing the corresponding physical address information for the preselected one virtual address; (ii) adding at least a portion of the second virtual address to the offset information contained in the page table entry prototype register to yield physical address information corresponding to the second virtual address; and (iii) loading the translation buffer with the at least a portion of the second virtual address and the physical address information corresponding to the second virtual address.
Claim 13
Dependent Claim 489 words
A computer system, which comprises (a) a central processing unit; (b) a memory system having a virtual address space containing data referenced by a plurality of virtual addresses and a physical address space containing data referenced by a plurality of physical addresses; (c) the data in the physical address space, referenced by the physical addresses, comprising a preselected portion of the data in the virtual address space referenced by the virtual addresses such that the virtual addresses, of the preselected portion of data referenced by virtual addresses, have corresponding physical addresses; (d) the physical address space also having a contiguous page table memory space therein, the page table memory space being referenced by physical addresses which locate locations in the page table memory space, each of the locations containing at least a page table entry for a preselected page of the virtual address space; (e) a translation mechanism for translating virtual addresses generated by the central processing unit to corresponding physical addresses; (f) said translation mechanism being coupled between the central processing unit and the memory system such that the virtual addresses generated by the central processing unit are translated to the corresponding physical addresses, which corresponding physical addresses are transmitted to the physical address space of the memory system to fetch data referenced by the physical addresses; (g) said translation mechanism including a translation buffer containing preselected portions of the page table memory space to provide corresponding physical address information to the translation mechanism; (h) a base virtual address register containing a base virtual address of a set of contiguous virtual addresses corresponding to the physical addresses used to reference the contiguous page table memory space of the physical address space; (i) a page table prototype register containing fixed offset information between a first physical address which locates the base of the contiguous page table memory space in the physical address space, and the base virtual address contained in the base virtual address register; (j) the central processing unit including means for loading the translation buffer with the preselected portions of the page table memory space; (k) the means for loading the translation buffer being coupled to the base virtual address register and the page table prototype register such that the means for loading the translation buffer: (i) adds a portion of a first virtual address generated by the central processing unit to the base virtual address contained in the base virtual address register to yield a second virtual address for a page table memory space location containing the corresponding physical address information for the first virtual address, (ii) adds at least a portion of the second virtual address to the offset information contained in the page table prototype register to yield physical address information corresponding to the second virtual address, and (iii) loads the translation buffer with at least a portion of the second virtual address and the physical address information corresponding to the second virtual address.
Claim 14
Dependent Claim 489 words
A computer system, which comprises (a) a central processing unit; (b) a memory system having a virtual address space containing data referenced by a plurality of virtual addresses and a physical address space containing data referenced by a plurality of physical addresses; (c) the data in the physical address space, referenced by the physical addresses, comprising a preselected portion of the data in the virtual address space referenced by the virtual addresses such that the virtual addresses, of the preselected portion of data referenced by virtual addresses, have corresponding physical addresses; (d) the physical address space also having a contiguous page table memory space therein, the page table memory space being referenced by physical addresses which locate locations in the page table memory space, each of the locations containing at least a page table entry for a preselected page of the virtual address space; (e) a translation mechanism for translating virtual addresses generated by the central processing unit to corresponding physical addresses; (f) said translation mechanism being coupled between the central processing unit and the memory system such that the virtual addresses generated by the central processing unit are translated to the corresponding physical addresses, which corresponding physical addresses are transmitted to the physical address space of the memory system to fetch data referenced by the physical addresses; (g) said translation mechanism including a translation buffer containing preselected portions of the page table memory space to provide corresponding physical address information to the translation mechanism; (h) a base virtual address register containing a base virtual address of a set of contiguous virtual addresses corresponding to the physical addresses used to reference the contiguous page table memory space of the physical address space; (i) a page table prototype register containing fixed offset information between a first physical address which locates the base of the contiguous page table memory space in the physical address space, and the base virtual address contained in the base virtual address register; (j) the central processing unit including means for loading the translation buffer with the preselected portions of the page table memory space; (k) the means for loading the translation buffer being coupled to the base virtual address register and the page table prototype register such that the means for loading the translation buffer: (i) adds a portion of a first virtual address generated by the central processing unit to the base virtual address contained in the base virtual address register to yield a second virtual address for a page table memory space location containing the corresponding physical address information for the first virtual address, (ii) adds at least a portion of the second virtual address to the offset information contained in the page table prototype register to yield physical address information corresponding to the second virtual address, and (iii) loads the translation buffer with at least a portion of the second virtual address and the physical address information corresponding to the second virtual address.
Claim 15
Dependent Claim 539 words
A computer system, which comprises (a) a central processing unit; (b) a memory system having a virtual address space containing data referenced by a plurality of virtual addresses and a physical address space containing data referenced by a plurality of physical addresses; (c) the data in the physical address space, referenced by the physical addresses, comprising a preselected portion of the data in the virtual address space referenced by the virtual addresses such that the virtual addresses, of the preselected portion of data referenced by virtual addresses, have corresponding physical addresses; (d) the physical address space also having a page table memory space therein, the page table memory space being referenced by physical addresses which locate locations in the page table memory space, each of the locations containing at least a page table entry for a preselected page of the virtual address space; (e) a translation mechanism for translating virtual addresses generated by the central processing unit to corresponding physical addresses; (f) said translation mechanism being coupled between the central processing unit and the memory system such that the virtual addresses generated by the central processing unit are translated to the corresponding physical addresses, which corresponding physical addresses are transmitted to the physical address space of the memory system to fetch data referenced by the physical addresses; (g) said translation mechanism including a translation buffer containing information identical to preselected portions of the page table memory space in order to provide corresponding physical address information to the translation mechanism; (h) a page table memory space further referenced by a set of virtual addresses, which correspond to the physical addresses, for referencing the page table memory space; (i) the translation buffer further including at least certain ones of the set of virtual addresses and the corresponding physical addresses to provide the translation mechanism with information to translate the at least certain ones of the virtual addresses to the corresponding physical addresses, for referencing the page table memory space; and (j) the central processing unit including means for loading the translation buffer with the information identical to preselected portions of the page table memory space, said means including a page table entry prototype mechanism such that said means for loading the translation buffer operates: (i) to add, in the page table prototype mechanism, a portion of a first virtual address generated by the central processing unit to a base virtual address of the set of virtual addresses corresponding to the physical addresses used to reference the page table memory space of the physical address space to yield a second virtual address for a page table memory space location containing the corresponding physical address information for the first virtual address, (ii) to input the second virtual address into the page table prototype mechanism, which page table prototype mechanism contains known cross reference information between each virtual address of the set of virtual addresses and the corresponding physical address for referencing the page table memory space, and which page table entry prototype mechanism operates to generate physical address information corresponding to the second virtual address, and (iii) to load the translation buffer with at least a portion of the second virtual address and the physical address information corresponding to the second virtual address.
Claim 16
Dependent Claim 539 words
A computer system, which comprises (a) a central processing unit; (b) a memory system having a virtual address space containing data referenced by a plurality of virtual addresses and a physical address space containing data referenced by a plurality of physical addresses; (c) the data in the physical address space, referenced by the physical addresses, comprising a preselected portion of the data in the virtual address space referenced by the virtual addresses such that the virtual addresses, of the preselected portion of data referenced by virtual addresses, have corresponding physical addresses; (d) the physical address space also having a page table memory space therein, the page table memory space being referenced by physical addresses which locate locations in the page table memory space, each of the locations containing at least a page table entry for a preselected page of the virtual address space; (e) a translation mechanism for translating virtual addresses generated by the central processing unit to corresponding physical addresses; (f) said translation mechanism being coupled between the central processing unit and the memory system such that the virtual addresses generated by the central processing unit are translated to the corresponding physical addresses, which corresponding physical addresses are transmitted to the physical address space of the memory system to fetch data referenced by the physical addresses; (g) said translation mechanism including a translation buffer containing information identical to preselected portions of the page table memory space in order to provide corresponding physical address information to the translation mechanism; (h) a page table memory space further referenced by a set of virtual addresses, which correspond to the physical addresses, for referencing the page table memory space; (i) the translation buffer further including at least certain ones of the set of virtual addresses and the corresponding physical addresses to provide the translation mechanism with information to translate the at least certain ones of the virtual addresses to the corresponding physical addresses, for referencing the page table memory space; and (j) the central processing unit including means for loading the translation buffer with the information identical to preselected portions of the page table memory space, said means including a page table entry prototype mechanism such that said means for loading the translation buffer operates: (i) to add, in the page table prototype mechanism, a portion of a first virtual address generated by the central processing unit to a base virtual address of the set of virtual addresses corresponding to the physical addresses used to reference the page table memory space of the physical address space to yield a second virtual address for a page table memory space location containing the corresponding physical address information for the first virtual address, (ii) to input the second virtual address into the page table prototype mechanism, which page table prototype mechanism contains known cross reference information between each virtual address of the set of virtual addresses and the corresponding physical address for referencing the page table memory space, and which page table entry prototype mechanism operates to generate physical address information corresponding to the second virtual address, and (iii) to load the translation buffer with at least a portion of the second virtual address and the physical address information corresponding to the second virtual address.
Claim 17
Independent Claim 517 words
A method for retrieving data from a memory of a computer system without requiring a central processing unit to directly access a page table memory space physically located in the memory, which computer system includes a virtual memory space having data referenced by a plurality of virtual addresses, the memory comprising a physical memory space having data referenced by a plurality of physical addresses, certain ones of the virtual addresses each having a corresponding physical address, and a translation buffer loaded with virtual address information and corresponding physical address information, the method comprising the steps of: (a) providing a page table memory space in the physical memory space, the page table memory space being referenced by physical addresses, which physical addresses each locate locations containing at least a page table entry for a preselected page of the virtual memory space, the page table entry indicating the physical address of the preselected page of the virtual memory; (b) providing a base virtual address of a set of virtual addresses corresponding to the physical addresses used to reference the page table memory space of the physical address space; (c) providing fixed offset information between a first physical address locating the base of the page table memory space in the physical address space and the base virtual address; and (d) operating the computer system to retrieve data from the memory by (i) generating a first virtual address, (ii) utilizing the first virtual address to determine whether the translation buffer contains corresponding physical address information for the first virtual address, (iii) using the corresponding physical address information obtained from the translation buffer to retrieve data referenced by the first virtual address when the translation buffer contains the corresponding physical address information for the first virtual address, (iv) adding a portion of the first virtual address to the base virtual address to yield a second virtual address for a page table entry containing corresponding physical address information for the first virtual address when the translation buffer does not contain the corresponding physical address information for the first virtual address, (v) using the second virtual address to determine whether translation buffer contains corresponding physical address information for the second virtual address, (vi) using the corresponding physical address information to retrieve the page table entry referenced by the second virtual address when the translation buffer contains the corresponding physical address information for the second virtual address, (vii) loading the page table entry into the translation buffer after the page table entry of the second virtual address has been retrieved, (viii) repeating steps (ii) and (iii) after loading step (vii) has been performed, (ix) adding at least a portion of the second virtual address to the offset information to determine physical address information corresponding to the second virtual address when the translation buffer does not contain the corresponding physical address information for the second virtual address, (x) loading the translation buffer with the at least a portion of the second virtual address and the physical address information determined in step (ix), (xi) repeating steps (v) through (vii) after the loading step (x) has been performed.
Claim 18
Independent Claim 517 words
A method for retrieving data from a memory of a computer system without requiring a central processing unit to directly access a page table memory space physically located in the memory, which computer system includes a virtual memory space having data referenced by a plurality of virtual addresses, the memory comprising a physical memory space having data referenced by a plurality of physical addresses, certain ones of the virtual addresses each having a corresponding physical address, and a translation buffer loaded with virtual address information and corresponding physical address information, the method comprising the steps of: (a) providing a page table memory space in the physical memory space, the page table memory space being referenced by physical addresses, which physical addresses each locate locations containing at least a page table entry for a preselected page of the virtual memory space, the page table entry indicating the physical address of the preselected page of the virtual memory; (b) providing a base virtual address of a set of virtual addresses corresponding to the physical addresses used to reference the page table memory space of the physical address space; (c) providing fixed offset information between a first physical address locating the base of the page table memory space in the physical address space and the base virtual address; and (d) operating the computer system to retrieve data from the memory by (i) generating a first virtual address, (ii) utilizing the first virtual address to determine whether the translation buffer contains corresponding physical address information for the first virtual address, (iii) using the corresponding physical address information obtained from the translation buffer to retrieve data referenced by the first virtual address when the translation buffer contains the corresponding physical address information for the first virtual address, (iv) adding a portion of the first virtual address to the base virtual address to yield a second virtual address for a page table entry containing corresponding physical address information for the first virtual address when the translation buffer does not contain the corresponding physical address information for the first virtual address, (v) using the second virtual address to determine whether translation buffer contains corresponding physical address information for the second virtual address, (vi) using the corresponding physical address information to retrieve the page table entry referenced by the second virtual address when the translation buffer contains the corresponding physical address information for the second virtual address, (vii) loading the page table entry into the translation buffer after the page table entry of the second virtual address has been retrieved, (viii) repeating steps (ii) and (iii) after loading step (vii) has been performed, (ix) adding at least a portion of the second virtual address to the offset information to determine physical address information corresponding to the second virtual address when the translation buffer does not contain the corresponding physical address information for the second virtual address, (x) loading the translation buffer with the at least a portion of the second virtual address and the physical address information determined in step (ix), (xi) repeating steps (v) through (vii) after the loading step (x) has been performed.

USPTO Annuity & Maintenance Windows

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

Assigned Categories & Tags

No categories assigned to this patent yet.

Assign Category Tag