Virtual memory management
First Claim
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.
1 Assignment
0 Petitions
Accused Products
Abstract
A method for managing a virtual memory system configured to allow multiple page sizes is described. Each page size has at least one table associated with it. The method involves maintaining entries in the tables to keep track of the page size for which the effective address is mapped. When a new effective address to physical address mapping needs to be made for a page size, the method accesses the appropriate tables to identify prior mappings for another page size in the same segment. If no such conflicting mapping exists, it creates a new mapping in the appropriate table. A formula is used to generate an index to access a mapping in a table.
-
Citations
16 Claims
-
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. - View Dependent Claims (2, 3, 4, 5)
-
-
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. - View Dependent Claims (7, 8, 9, 10, 11)
-
-
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. - View Dependent Claims (13, 14, 15, 16)
-
Specification