Claims
- 1. 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.
- 2. 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.
- 3. 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.
- 4. 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.
- 5. 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.
- 6. 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.
- 7. 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.
- 8. 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.
- 9. 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.
- 10. 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.
- 11. 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.
Parent Case Info
This application is a continuation of application Ser. No. 07/202,886, filed Jun. 6, 1988.
US Referenced Citations (22)
Foreign Referenced Citations (1)
Number |
Date |
Country |
WOA8802148 |
Mar 1988 |
WOX |
Non-Patent Literature Citations (2)
Entry |
IBM Technical Disclosure Bulletin, "Segmented Virtual to Reel Translation Assist", vol. 27, No. 2, Jul. 1984. |
B. Furht, et al., Computer, "A Survey of Microprocessor Architectures for Memory Management", vol. 20, No. 3, Mar. 1987. |
Continuations (1)
|
Number |
Date |
Country |
Parent |
202886 |
Jun 1988 |
|