Legal claims defining the scope of protection, as filed with the USPTO.
1. A method for managing a virtual memory system configured to allow multiple page sizes in a segment, the method comprising: receiving an effective address and a page size; providing a first table set, having one member corresponding to each configured page size, each member of the first table set containing translation descriptors, each translation descriptor having effective address to physical address mappings, made during address translations for pages of the corresponding size; providing a second table set, having one member corresponding to each configured page size except for the smallest configured page size, each member of the second table set containing translation descriptors, each translation descriptor having effective address to physical address mappings, made during address translations for pages of all sizes except the corresponding size; determining whether the received page size corresponds to the smallest configured page size and upon a determination that the received page size corresponds to the smallest configured page size, performing: obtaining the physical address for the received effective address by matching the received effective address to the translation descriptors, in the member of the first table set corresponding to the received page size, in the event such translation descriptors exist in the first table set, and returning the physical address from the matching translation descriptor, else generating the physical address by calculating the mapping; and determining that no mapping for the received effective address exists, in any member of the first table set corresponding to a page size except the received page size, else determining that a mismatch situation results; upon a determination that the received page size does not correspond to the smallest configured page size, performing: obtaining the physical address for the received effective address by matching the received effective address to the translation descriptors, in the member of the first table set corresponding to the received page size, in the event such translation descriptors exist in the first table set, and returning the physical address from the matching translation descriptor, else generating the physical address by calculating the mapping; and determining that no mapping for the received effective address exists, in the member of the second table set corresponding to the received page size, else determining that a mismatch situation results; and creating mappings, in the member of the first table set corresponding to the received page size, and in the member tables of the second table set corresponding to all page sizes except the received page size, in the event mismatch is not reported.
2. The method of claim 1 , wherein the configured page sizes include 4K, 64K and 16M.
3. The method of claim 1 , wherein location of the mapping in a table is obtained by calculating an index, wherein the table is a member of one of the first table set and the second table set.
4. The method of claim 3 , wherein the table is a hash table.
5. The method of claim 3 , wherein the page size to which the table corresponds, and table size are used as parameters in calculating the index.
6. A memory management system comprising: a virtual memory space divided into pages, wherein the pages have different sizes, wherein the virtual memory space is addressed using an effective address; a first table set, having one member corresponding to each configured page size, each member of the first table set containing translation descriptors, each translation descriptor having effective address to physical address mappings, made during address translations for pages of the corresponding size; a second table set, having one member corresponding to each configured page size except for the smallest configured size, each member of the second table set containing translation descriptors, each translation descriptor having effective address to physical address mappings, made during address translations for pages of all sizes except the corresponding size; a decision module configured to perform: receiving a page size and an effective address; and choosing a first searching module, upon determining that the received page size corresponds to the smallest configured page size; else choosing a second searching module, upon determining that the received page size does not correspond to the smallest configured page size; wherein the first searching module is configured to perform: obtaining the physical address for the received effective address by matching the received effective address to the translation descriptors, in the member of the first table set corresponding to the received page size, in the event such translation descriptors exist in the first table set, and returning the physical address from the matching translation descriptor, else generating the physical address by calculating the mapping; and determining that no mapping for the received effective address exists, in any member of the first table set corresponding to a page size except the received page size, else determining that a mismatch situation results; and the second searching module, configured to perform: obtaining the physical address for the received effective address by matching the received effective address to the translation descriptors, in the member of the first table set corresponding to the received page size, in the event such translation descriptors exist in the first table set, and returning the physical address from the matching translation descriptor, else generating the physical address by calculating the mapping; and determining that no mapping for the received effective address exists, in the member of the second table set corresponding to the received page size, else determining that a mismatch situation results; and a writing module for creating mappings, in the member of the first table set corresponding to the received page size, and in the member tables of the second table set corresponding to all page sizes except the received page size, in the event mismatch is not reported.
7. The system of claim 6 , wherein the configured page sizes include 4K, 64K and 16M.
8. The system of claim 6 , wherein the location of the mapping in a table is obtained by calculating an index, wherein the table is a member of one of the first table set and the second table set.
9. The system of claim 8 , wherein the table is a hash table.
10. The system of claim 8 , wherein a calculation module is operatively coupled with a plurality of modules comprising the decision module, the first searching module, the second searching module and the writing module.
11. The system of claim 10 , wherein the calculation module uses the received page size and hash table size as inputs for calculating the index.
12. A method for managing a segmented virtual memory space, using tables including effective address data, wherein the method is executed on a computer system configured to allow multiple page sizes in the same segment, wherein the method comprises: dividing the memory into pages of different sizes; creating and maintaining page tables for address translation, wherein the page tables contain effective addresses, real addresses and attributes of the pages; creating and maintaining segment table, wherein the segment table comprises information about effective address to intermediate address mapping; matching and creating translation descriptors in the tables; receiving an effective address and a page size; providing a first table set, having one member corresponding to each configured page size, each member of the first table set containing translation descriptors, each translation descriptor having effective address to physical address mappings, made during address translations for pages of the corresponding size; providing a second table set, having one member corresponding to each configured page size except for the smallest configured page size, each member of the second table set containing translation descriptors, each translation descriptor having effective address to physical address mappings, made during address translations for pages of all sizes except the corresponding size; determining whether the received page size corresponds to the smallest configured page size and upon a determination that the received page size corresponds to the smallest configured page size, performing: obtaining the physical address for the received effective address by matching the received effective address to the translation descriptors, in the member of the first table set corresponding to the received page size, in the event such translation descriptors exist in the first table set, and returning the physical address from the matching translation descriptor, else generating the physical address by calculating the mapping; and determining that no mapping for the received effective address exists, in any member of the first table set corresponding to a page size except the received page size, else determining that a mismatch situation results; upon a determination that the received page size does not correspond to the smallest configured page size, performing: obtaining the physical address for the received effective address by matching the received effective address to the translation descriptors, in the member of the first table set corresponding to the received page size, in the event such translation descriptors exist in the first table set, and returning the physical address from the matching translation descriptor, else generating the physical address by calculating the mapping; and determining that no mapping for the received effective address exists, in the member of the second table set corresponding to the received page size, else determining that a mismatch situation results; and creating mappings, in the member of the first table set corresponding to the received page size, and in the member tables of the second table set corresponding to all page sizes except the received page size, in the event mismatch is not reported.
13. The method of claim 12 , wherein the configured page sizes include 4K, 64K and 16M.
14. The method of claim 12 , wherein location of the mapping in a table is obtained by calculating an index, wherein the table is a member of one of the first table set and the second table set.
15. The method of claim 14 , wherein the table is a hash table.
16. The method of claim 14 , wherein the page size to which the table corresponds, and table size are used as parameters in calculating the index.
Unknown
April 19, 2011
Browse 5M+ US patents with plain-English claim translations and AI-generated analysis.