Fast path memory read request processing in a multi-level memory architecture
First Claim
1. A method of processing a memory read request in a multi-level memory architecture of the type including a cache memory and a main memory, the method comprising, in response to receiving the memory read request:
- initiating a cache lookup operation to determine if the memory read request is directed to a cache line currently cached in the cache memory;
speculatively issuing the memory read request to the main memory prior to completion of the cache lookup operation by;
receiving the memory read request;
determining whether the memory read request is directed to the same cache line as any memory write request stored in a first queue that stores requests awaiting a cache lookup response;
bypassing the first queue in response to determining that the memory read request is not directed to the same cache line as any memory write request stored in the first queue;
determining whether the memory read request is directed to the same cache line as any memory write request stored in a second queue that stores requests for which cache lookup responses have been received and that are awaiting communication to the main memory; and
bypassing the second queue in response to determining that the memory read request is not directed to the same cache line as any memory write request stored in the second queue.
1 Assignment
0 Petitions
Accused Products
Abstract
A circuit arrangement and method selectively reorder speculatively issued memory read requests being communicated to a lower memory level in a multi-level memory architecture. In particular, a memory read request that has been speculatively issued to a lower memory level prior to completion of a cache lookup operation initiated in a cache memory in a higher memory level may be reordered ahead of at least one previously received and pending request awaiting communication to the lower memory level. By doing so, the latency associated with the memory read request is reduced when the request results in a cache miss in the higher level memory, and as a result, system performance is improved.
132 Citations
25 Claims
-
1. A method of processing a memory read request in a multi-level memory architecture of the type including a cache memory and a main memory, the method comprising, in response to receiving the memory read request:
-
initiating a cache lookup operation to determine if the memory read request is directed to a cache line currently cached in the cache memory;
speculatively issuing the memory read request to the main memory prior to completion of the cache lookup operation by;
receiving the memory read request;
determining whether the memory read request is directed to the same cache line as any memory write request stored in a first queue that stores requests awaiting a cache lookup response;
bypassing the first queue in response to determining that the memory read request is not directed to the same cache line as any memory write request stored in the first queue;
determining whether the memory read request is directed to the same cache line as any memory write request stored in a second queue that stores requests for which cache lookup responses have been received and that are awaiting communication to the main memory; and
bypassing the second queue in response to determining that the memory read request is not directed to the same cache line as any memory write request stored in the second queue.
-
-
2. A method of processing a memory read request in a multi-level memory architecture of the type including first and second memory levels, wherein the first memory level comprises a cache memory, the method comprising, in response to receiving the memory read request:
-
initiating a cache lookup operation to determine if the memory read request is directed to a cache line currently cached in the cache memory in the first memory level; and
speculatively issuing the memory read request to the second memory level prior to completion of the cache lookup operation, including reordering the memory read request ahead of at least one previously received and pending request awaiting communication to the second memory level. - View Dependent Claims (3, 4, 5, 6, 7, 8, 9, 10, 11)
-
-
12. A circuit arrangement, comprising:
-
first control logic configured to process a received memory read request by initiating a cache lookup operation of a cache memory disposed in a first memory level among first and second memory levels in a multi-level memory architecture to determine if the memory read request is directed to a cache line currently cached in the cache memory in the first memory level, and speculatively the memory read request to the second memory level prior to completion of the cache lookup operation; and
second control logic coupled to the first control logic and configured to selectively reorder the memory read request ahead of at least one previously received and pending request awaiting communication to the second memory level in connection with speculatively issuing the memory read request. - View Dependent Claims (13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25)
-
Specification