Techniques for servicing fetch requests utilizing coalesing page table entries
First Claim
Patent Images
1. A method of accessing memory comprising:
- determining if a fetched page table entry is a coalesced page table entry from a contiguous attribute of the fetched page table entry, wherein;
a first bit of the contiguous attribute specifies a type of encoding;
a plurality of other bits of the contiguous attribute specifies an actual number of contiguous pages when the first bit is set to a first state;
the plurality of other bits of the contiguous attribute specifies a power of two representation of the number of contiguous pages when the first bit is set to a second state;
determining if the coalesced page table entry can service one or more fetch requests pending in a queue; and
redirecting the one or more appropriate fetch requests in the queue to the coalesced page table entry if the coalesced page table entry can service the fetch requests.
1 Assignment
0 Petitions
Accused Products
Abstract
A memory access technique, in accordance with one embodiment of the present invention, includes coalescing mappings between virtual memory and physical memory when a contiguous plurality of virtual pages map to a contiguous plurality of physical pages. Any of the coalesced page table entries are sufficient to map all pages within the coalesced region. Accordingly, a memory subsystem can redirect one or more pending page table entry fetch requests to an appropriate coalesced page table entry.
-
Citations
18 Claims
-
1. A method of accessing memory comprising:
-
determining if a fetched page table entry is a coalesced page table entry from a contiguous attribute of the fetched page table entry, wherein; a first bit of the contiguous attribute specifies a type of encoding; a plurality of other bits of the contiguous attribute specifies an actual number of contiguous pages when the first bit is set to a first state; the plurality of other bits of the contiguous attribute specifies a power of two representation of the number of contiguous pages when the first bit is set to a second state; determining if the coalesced page table entry can service one or more fetch requests pending in a queue; and redirecting the one or more appropriate fetch requests in the queue to the coalesced page table entry if the coalesced page table entry can service the fetch requests. - View Dependent Claims (2, 3, 4, 5, 6, 7)
-
-
8. A method of accessing memory comprising:
-
receiving one or more memory access requests; generating a fetch request for a given page table entry if a valid non-coalesced or a valid coalesced page table entry for each given memory access request not cached in the translation lookaside buffer; sorting information about the fetch requests into a queue; determining if a fetched page table entry is a coalesced page table entry or a non-coalesced page table entry from a contiguous attribute of the fetched page table entry, wherein; a first bit of the contiguous attribute specifies a type of encoding; a plurality of other bits of the contiguous attribute specifies an actual number of contiguous pages when the first bit is set to a first state; the plurality of other bits of the contiguous attribute specifies a power of two representation of the number of contiguous pages when the first bit is set to a second state; calculating a physical address for a given memory access request utilizing the fetched page table entry; and servicing appropriate fetch requests pending in the queue utilizing the fetched coalesced page table entry, if the fetched coalesced page table entry can service one or more other fetch requests. - View Dependent Claims (9, 10, 11)
-
-
12. A computing device comprising:
-
a first computing device-readable medium to store an address translation data structure; a memory management unit, communicatively coupled to the first computing device-readable medium, including; a second computing device-readable medium to cache one or more page table entries and one or more pending page table entry fetch requests; and a paging unit to determine if a given page table entry fetched from the first computing device-readable medium is a coalesced page table entry or a non-coalesced page table entry, to service a given pending page table entry fetch request utilizing the coalesced page table entry and to redirect another pending page table entry fetch request to the coalesced page table entry, wherein a first bit of a contiguous attribute in the given page table entry specifies a type of encoding, a plurality of other bits of the contiguous attribute specifies an actual number of contiguous pages when the first bit is set to a first state and the plurality of other bits of the contiguous attribute specifies a power of two representation of the number of contiguous pages when the first bit is set to a second state. - View Dependent Claims (13, 14, 15, 16, 17, 18)
-
Specification