← Back to Patent Explorer
US5642494A Expired / Lapsed US ⏱️ 0.0 years remaining

Cache memory with reduced request-blocking

Assignee: Intel Corp
•
Filing: 1994-12-21
•
Granted: 1997-06-24
•
Expires: 2014-12-21
📄 Original PDF 🌐 Google Patents 🔄 Sync Now

Abstract

Abstract A cache memory with reduced request-blocking blocks requests from being accepted by the cache memory based on the types of requests the cache is already servicing. A request which hits the cache memory or a request which misses the cache memory but does not conflict with any requests already being serviced is not blocked. A request which misses the cache memory and also conflicts with a request(s) already being serviced causes the request to be blocked. In one embodiment, conflicts for write requests are determined by checking whether the cache is already retrieving a cache line from system memory for a request which maps into the same cache set as the write request. If such a request exists, then a conflict occurs. In this embodiment, conflicts for read requests are determined by checking whether the cache is already servicing an outstanding request to memory for the same address. If so, then a conflict occurs. If not, then a conflict does not occur unless the victim line for the read request is dirty and no space exists in a write-back buffer to temporarily store the victim line.

Inventors

  • 👤 Wen-Hann Wang
  • 👤 John M. Bauer

Bibliographic Details

Application Number —
Jurisdiction US
Data Source google_patents
Last Synchronized 2026-11-08 03:03
CPC Classifications
G; G06; G06F; G06F12/00; G06F12/02; G06F12/08; G06F12/0802; G06F12/0844; G06F12/0855; G06F12/0859

Claims Analysis

Total Claims: 29
Claim 1
Independent Claim 97 words
In a memory subsystem, a method of responding to a first request to a cache memory, the method comprising the steps of: (a) determining whether the first request misses the cache memory; (b) determining whether the first request conflicts with a second request received by the cache memory prior to the first request, provided the first request misses the cache memory, wherein the second request missed the cache memory; and (c) servicing the first request, provided the first request either hits the cache memory or does not conflict with the second request, otherwise rejecting the first request.
Claim 2
Dependent Claim 97 words
In a memory subsystem, a method of responding to a first request to a cache memory, the method comprising the steps of: (a) determining whether the first request misses the cache memory; (b) determining whether the first request conflicts with a second request received by the cache memory prior to the first request, provided the first request misses the cache memory, wherein the second request missed the cache memory; and (c) servicing the first request, provided the first request either hits the cache memory or does not conflict with the second request, otherwise rejecting the first request.
Claim 3
Dependent Claim 29 words
The method of claim 1, wherein said step (b) comprises the step of determining whether the first request and the second request are requests to the same memory address.
Claim 4
Dependent Claim 93 words
The method of claim 1, wherein said step (c) comprises the steps of: determining a victim line in the cache memory; checking whether the victim line in the cache memory is in a dirty state; copying a data line from a main system memory corresponding to the first request into the cache memory location occupied by the victim line, provided the victim line is not in the dirty state; and returning the cache line corresponding to the first request to a requesting agent, provided the victim line is not in the dirty state.
Claim 5
Dependent Claim 49 words
The method of claim 1, further comprising the steps of: determining a victim line in the cache memory; checking whether the victim line in the cache memory is in a dirty state; and checking whether a write-back buffer is full, provided the victim line is in the dirty state.
Claim 6
Dependent Claim 34 words
The method of claim 4, wherein said step (c) comprises the step of returning a cache line corresponding to the first request to a requesting agent, provided space is available in the write-back buffer.
Claim 7
Dependent Claim 26 words
The method of claim 1, further comprising the step of repeating steps (b) and (c) until said first request no longer conflicts with said second request.
Claim 8
Dependent Claim 13 words
The method of claim 1, wherein the first request is a read request.
Claim 9
Dependent Claim 19 words
The method of claim 1, wherein the first request originates with a microprocessor coupled to the cache memory subsystem.
Claim 10
Independent Claim 134 words
A method in a memory subsystem of responding to a first request from a first requesting agent targeting a cache memory of the memory subsystem, the method comprising the steps of: (a) determining whether a second request was received by the cache memory from a second requesting agent prior to the first request, wherein the cache memory has not yet returned data corresponding to the second request to the second requesting agent; (b) checking whether the first request and the second request map into the same set in the cache memory, provided the cache memory has not yet returned the data corresponding to the second request to the second requesting agent; and (c) blocking said first request if the first request and the second request map into the same set in the cache memory.
Claim 11
Independent Claim 134 words
A method in a memory subsystem of responding to a first request from a first requesting agent targeting a cache memory of the memory subsystem, the method comprising the steps of: (a) determining whether a second request was received by the cache memory from a second requesting agent prior to the first request, wherein the cache memory has not yet returned data corresponding to the second request to the second requesting agent; (b) checking whether the first request and the second request map into the same set in the cache memory, provided the cache memory has not yet returned the data corresponding to the second request to the second requesting agent; and (c) blocking said first request if the first request and the second request map into the same set in the cache memory.
Claim 12
Dependent Claim 13 words
The method of claim 9, wherein said first request is a write request.
Claim 13
Dependent Claim 19 words
The method of claim 9, wherein said first requesting agent and said second requesting agent are the same agents.
Claim 14
Dependent Claim 31 words
The method of claim 9, further comprising repeating steps (a) through (c) until the first request no longer maps into the same set in the cache memory as the second request.
Claim 15
Dependent Claim 140 words
A memory subsystem comprising: a cache memory including a plurality of cache memory locations; a write-back buffer which temporarily stores data from a cache memory location of said plurality of cache memory locations which is being written back to a main system memory; a cache control logic coupled to the cache memory and the write-back buffer; comparison logic coupled to the cache control logic configured to compare a first request received by the memory subsystem with a second request which the cache control logic is in the process of servicing, and to determine whether the first request conflicts with the second request; and wherein the cache control logic is configured to service the first request if the first request either hits the cache memory or does not conflict with the second request, and configured to otherwise block the first request.
Claim 16
Dependent Claim 140 words
A memory subsystem comprising: a cache memory including a plurality of cache memory locations; a write-back buffer which temporarily stores data from a cache memory location of said plurality of cache memory locations which is being written back to a main system memory; a cache control logic coupled to the cache memory and the write-back buffer; comparison logic coupled to the cache control logic configured to compare a first request received by the memory subsystem with a second request which the cache control logic is in the process of servicing, and to determine whether the first request conflicts with the second request; and wherein the cache control logic is configured to service the first request if the first request either hits the cache memory or does not conflict with the second request, and configured to otherwise block the first request.
Claim 17
Dependent Claim 26 words
The memory subsystem of claim 13, wherein the comparison logic includes address comparison logic which compares the addresses of the first request and the second request.
Claim 18
Dependent Claim 27 words
The memory subsystem of claim 14, wherein the cache control logic rejects the first request when the address of the first request and the second request match.
Claim 19
Dependent Claim 31 words
The memory subsystem of claim 13, wherein the comparison logic includes set comparison logic which compares the set corresponding to the first request with the set corresponding to the second request.
Claim 20
Dependent Claim 26 words
The cache memory subsystem of claim 13, wherein said write-back buffer comprises temporary storage for a plurality of requests being serviced by the cache memory subsystem.
Claim 21
Dependent Claim 175 words
A memory subsystem comprising: a cache memory including a plurality of cache memory locations; a write-back buffer which temporarily stores data from a cache memory location of said plurality of cache memory locations which is being written back to a main system memory; first cache control logic coupled to the cache memory for returning a cache line to an agent which requested the cache line; second cache control logic coupled to the write-back buffer and the cache memory for rejecting a request; comparison logic coupled to the second cache control logic which compares a first request received by the memory subsystem with a second request which the second cache control logic is in the process of servicing, wherein the comparison logic includes set comparison logic which compares the set corresponding to the first request with the set corresponding to the second request; and wherein said second cache control logic rejects the first request when the cache memory set that the first request maps into matches the cache memory set that the second request maps into.
Claim 22
Dependent Claim 175 words
A memory subsystem comprising: a cache memory including a plurality of cache memory locations; a write-back buffer which temporarily stores data from a cache memory location of said plurality of cache memory locations which is being written back to a main system memory; first cache control logic coupled to the cache memory for returning a cache line to an agent which requested the cache line; second cache control logic coupled to the write-back buffer and the cache memory for rejecting a request; comparison logic coupled to the second cache control logic which compares a first request received by the memory subsystem with a second request which the second cache control logic is in the process of servicing, wherein the comparison logic includes set comparison logic which compares the set corresponding to the first request with the set corresponding to the second request; and wherein said second cache control logic rejects the first request when the cache memory set that the first request maps into matches the cache memory set that the second request maps into.
Claim 23
Dependent Claim 166 words
A computer system comprising: a bus; a processor coupled to the bus; a system memory coupled to the bus; a cache memory coupled to the processor including a plurality of cache memory locations; and a cache memory controller, coupled to the processor, including, a write-back buffer which temporarily stores data from a cache memory location of said plurality of cache memory locations which is being written back to a main system memory, a cache control logic coupled to the write-back buffer; comparison logic coupled to the cache control logic configured to compare a first request received by the cache memory controller with a second request which the cache control logic is in the process of servicing and to determine whether the first request conflicts with the second request, and wherein the cache control logic is configured to service the first request if the first request either hits the cache memory or does not conflict with the second request, and configured to otherwise reject the first request.
Claim 24
Dependent Claim 166 words
A computer system comprising: a bus; a processor coupled to the bus; a system memory coupled to the bus; a cache memory coupled to the processor including a plurality of cache memory locations; and a cache memory controller, coupled to the processor, including, a write-back buffer which temporarily stores data from a cache memory location of said plurality of cache memory locations which is being written back to a main system memory, a cache control logic coupled to the write-back buffer; comparison logic coupled to the cache control logic configured to compare a first request received by the cache memory controller with a second request which the cache control logic is in the process of servicing and to determine whether the first request conflicts with the second request, and wherein the cache control logic is configured to service the first request if the first request either hits the cache memory or does not conflict with the second request, and configured to otherwise reject the first request.
Claim 25
Dependent Claim 25 words
The system of claim 19, wherein said comparison logic includes address comparison logic which compares the address of the first request and the second request.
Claim 26
Dependent Claim 26 words
The system of claim 20, wherein the cache control logic rejects said first request when the address of the first request and the second request match.
Claim 27
Dependent Claim 30 words
The system of claim 19, wherein said comparison logic includes set comparison logic which compares the set corresponding to the first request with the set corresponding to the second request.
Claim 28
Dependent Claim 201 words
A computer system comprising: a bus; a processor coupled to the bus; a system memory coupled to the bus; a cache memory coupled to the processor including a plurality of cache memory locations; and a cache memory controller, including, a write-back buffer which temporarily stores data from a cache memory location of said plurality of cache memory locations which is being written back to a main system memory, first cache control logic coupled to the cache memory for returning a cache line to an agent which requested the cache line, second cache control logic coupled to the write-back buffer and the cache memory for rejecting a request, comparison logic coupled to the second cache control logic which compares a first request received by the cache memory controller with a second request which the second cache control logic is in the process of servicing, wherein the comparison logic includes set comparison logic which compares the set corresponding to the first request with the set corresponding to the second request; and wherein said second cache control logic rejects the first request when the cache memory set that the first request maps into matches the cache memory set that the second request maps into.
Claim 29
Dependent Claim 201 words
A computer system comprising: a bus; a processor coupled to the bus; a system memory coupled to the bus; a cache memory coupled to the processor including a plurality of cache memory locations; and a cache memory controller, including, a write-back buffer which temporarily stores data from a cache memory location of said plurality of cache memory locations which is being written back to a main system memory, first cache control logic coupled to the cache memory for returning a cache line to an agent which requested the cache line, second cache control logic coupled to the write-back buffer and the cache memory for rejecting a request, comparison logic coupled to the second cache control logic which compares a first request received by the cache memory controller with a second request which the second cache control logic is in the process of servicing, wherein the comparison logic includes set comparison logic which compares the set corresponding to the first request with the set corresponding to the second request; and wherein said second cache control logic rejects the first request when the cache memory set that the first request maps into matches the cache memory set that the second request maps into.

References Cited (Backward Citations)

EP0213694A2 Cited
US4794521A Cited
GB2230120A Cited
EP0568231A1 Cited
US5434993A Cited

USPTO Annuity & Maintenance Windows

Annuity Stage Window Opens Payment Deadline Surcharge Period Until Estimated Fee Status
3.5 Years (Year 4) 2000-06-23 2000-12-23 2001-06-24 $2000.00 Window Closed / Lapsed
7.5 Years (Year 8) 2004-06-23 2004-12-23 2005-06-24 $3760.00 Window Closed / Lapsed
11.5 Years (Year 12) 2008-06-23 2008-12-23 2009-06-24 $7700.00 Window Closed / Lapsed

Assigned Categories & Tags

No categories assigned to this patent yet.

Assign Category Tag