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

Cache control for use in a multiprocessor to prevent data from ping-ponging between caches

Assignee: EMC Corp
•
Filing: 1995-05-18
•
Granted: 1998-01-27
•
Expires: 2015-05-18
📄 Original PDF 🌐 Google Patents 🔄 Sync Now

Abstract

Abstract A multiprocessor cache control uses ping-pong bits to reduces the number of invalidate cycles on a shared system bus in a multiprocessor system with a plurality of caches when data is being updated by multiple CPUs. The ping-pong bit is used predict when sharing is taking place and convert read-shared requests into read-exclusive requests.

Inventors

  • 👤 Jeffrey S. Kimmel
  • 👤 Elizabeth H. Reeves
  • 👤 Peter B. Everdell

Bibliographic Details

Application Number —
Jurisdiction US
Data Source google_patents
Last Synchronized 2026-11-08 15:18
CPC Classifications
G; G06; G06F; G06F12/00; G06F12/02; G06F12/08; G06F12/0802; G06F12/0806; G06F12/0808; G06F12/0811

Claims Analysis

Total Claims: 25
Claim 1
Independent Claim 161 words
A cache memory control system for use with a plurality of Job Processors (JPs), said system comprising: (a) a main memory for storing a plurality of instructions and operands at addressable locations; (b) a plurality of JPs each having a private cache capable of storing information from said memory each private cache having a plurality of cache lines each of which may be in either an invalid, or at least one valid state; (c) a plurality of ping-pong bits one bit associated with each said cache line of each said plurality of JPs; (d) a tag unit connected to said plurality of JPs and said plurality of ping-pong bits; (e) a system bus connected to said tag unit; (f) if said system bus accesses said tag unit and if the ping-pong bit associated with the cache line being accessed by said tag unit is true then the cache line associated with said ping-pong bit will be set to said invalid state.
Claim 2
Dependent Claim 161 words
A cache memory control system for use with a plurality of Job Processors (JPs), said system comprising: (a) a main memory for storing a plurality of instructions and operands at addressable locations; (b) a plurality of JPs each having a private cache capable of storing information from said memory each private cache having a plurality of cache lines each of which may be in either an invalid, or at least one valid state; (c) a plurality of ping-pong bits one bit associated with each said cache line of each said plurality of JPs; (d) a tag unit connected to said plurality of JPs and said plurality of ping-pong bits; (e) a system bus connected to said tag unit; (f) if said system bus accesses said tag unit and if the ping-pong bit associated with the cache line being accessed by said tag unit is true then the cache line associated with said ping-pong bit will be set to said invalid state.
Claim 3
Dependent Claim 24 words
The cache memory control system according to claim 1 wherein said tag unit further includes setting said associated ping-pong bit to the false state.
Claim 4
Dependent Claim 20 words
The cache memory control system according to claim 1, also comprising an additional cache connected to each of said JPs.
Claim 5
Dependent Claim 133 words
The cache memory control system according to claim 3, also comprising: (a) a plurality of remote shared (RS) bits, one RS bit associated with each said cache line of said additional cache; (b) said system bus also having a SHARED signal used to control said RS bit; (c) said SHARED signal connected to said tag unit; (d) said tag unit setting said RS bit to the false state if one of said plurality of JPs issues a read that misses said additional cache and said SHARED signal is not asserted on said system bus; (e) said tag unit setting said RS bit to the true state if one of said plurality of said JPs issues a read that misses said additional cache and said shared signal is not asserted on said system bus.
Claim 6
Dependent Claim 40 words
The cache memory control system according to claim 4 wherein said tag unit sets said RS bit to the true state if there is a read without intent-to-modify on said system bus and said read hits on said additional cache.
Claim 7
Dependent Claim 23 words
The cache memory control system according to claim 5, wherein said system bus also includes an INTERVENE signal connected to said tag unit.
Claim 8
Dependent Claim 45 words
The cache memory control system according to claim 6, wherein said tag unit sets said associated ping-pong bit to the false state when one of said plurality of JPs issues a read request which misses said additional cache and said INTERVENE signal is not asserted.
Claim 9
Dependent Claim 44 words
The cache memory control system according to claim 6, wherein said tag unit sets said associated ping-pong bit to the true state when one of said plurality of JPs issues a read request which misses said additional cache and said INTERVENE signal is asserted.
Claim 10
Dependent Claim 38 words
The cache memory control system according to claim 5, wherein said tag unit sets said associated ping-pong bit to the false state when one of said plurality of JPs issues a read request which hits said additional cache.
Claim 11
Dependent Claim 42 words
The cache memory control system according to claim 5, wherein said tag unit sets said associated ping-pong bit to the true state when one of said plurality of JPs issues a read request with intent to modify which misses said additional cache.
Claim 12
Dependent Claim 49 words
The cache memory control system according to claim 5, wherein said tag unit sets said associated ping-pong bit to the true state when one of said plurality of JPs issues a read request with intent to modify which hits said additional cache and said associated RS bit is true.
Claim 13
Dependent Claim 37 words
The cache memory control system according to claim 5, wherein said tag unit sets said associated ping-pong bit to the true state when there is an invalidate cycle on said system bus which misses said additional cache.
Claim 14
Dependent Claim 44 words
The cache memory control system according to claim 5, wherein said tag unit sets said associated ping-pong bit to the true state when there is an invalidate cycle on said system bus which hits said additional cache and said associated RS bit is true.
Claim 15
Dependent Claim 18 words
The cache memory control system according to claim 1, wherein said tag unit is external to said JP.
Claim 16
Dependent Claim 197 words
In a data processing system having a main memory; a plurality of job processors (JPs), each JP having a microprocessor and a first cache memory; a system bus; a plurality of local buses, each local bus being connected to a subset of the JPs; a plurality of shared cache memories, each shared cache memory being connected to the system bus and one of the local buses; and a plurality of tag units, each tag unit being connected to the system bus, one of the local buses and one of the shared cache memories, comprising: (a) in each shared cache memory, maintaining information associated with each data entry in at least a portion of that shared cache memory indicating whether that data entry is identified as a candidate for transfer to another shared cache memory, and (b) if a data entry is transferred from a first shared cache memory to a second shared cache memory and the information stored in the first shared cache memory associated with the transferred data entry indicates that data entry was identified as a candidate for transfer to another shared cache memory, invalidating the transferred cache entry in the first shared cache memory.
Claim 17
Dependent Claim 197 words
In a data processing system having a main memory; a plurality of job processors (JPs), each JP having a microprocessor and a first cache memory; a system bus; a plurality of local buses, each local bus being connected to a subset of the JPs; a plurality of shared cache memories, each shared cache memory being connected to the system bus and one of the local buses; and a plurality of tag units, each tag unit being connected to the system bus, one of the local buses and one of the shared cache memories, comprising: (a) in each shared cache memory, maintaining information associated with each data entry in at least a portion of that shared cache memory indicating whether that data entry is identified as a candidate for transfer to another shared cache memory, and (b) if a data entry is transferred from a first shared cache memory to a second shared cache memory and the information stored in the first shared cache memory associated with the transferred data entry indicates that data entry was identified as a candidate for transfer to another shared cache memory, invalidating the transferred cache entry in the first shared cache memory.
Claim 18
Dependent Claim 31 words
The method of claim 15 wherein step b) comprises the additional step of invalidating all copies of the transferred cache entry in all JPs connected to the first shared cache memory.
Claim 19
Dependent Claim 379 words
In a data processing system having a main memory; a plurality of job processors (JPs), each JP having a microprocessor and a first cache memory; a system bus; a plurality of local buses, each local bus being connected to a subset of the JPs; a plurality of shared cache memories, each shared cache memory being connected to the system bus and one of the local buses; and a plurality of tag units, each tag unit being connected to the system bus, one of the local buses and one of the shared cache memories, a plurality of ping pong bits connected to each said tag unit, a method for controlling the state of the ping pong bits connected to one of said tag units in response to a "read not intent to modify request" received by a first shared cache memory, the method comprising: (a) if the read request originated from one of the JPs connected to the first shared cache memory and the requested cache entry is not located in the first shared cache memory and the requested cache entry is received from a second shared cache memory, setting the ping pong bit associated with the received cache entry in the first shared cache memory to a first state, (b) if the read request originated from one of the JPs connected to the first shared cache memory and the requested cache entry is not located in the first shared cache memory and the requested cache entry is received from the main memory, setting the ping pong bit associated with the received cache entry in the first shared cache memory to a second state, (c) if the read request originated from one of the JPs connected to the first shared cache memory and the requested cache entry is located in the first shared cache memory, setting the ping pong bit associated with the received cache entry in the first shared cache memory to a second state, and (d) if the read request originated from a JP connected to a second shared cache memory and the cache entry is located in the first shared cache memory and the ping pong bit associated with the requested cache entry is in the first state, setting the ping pong bit to the second state.
Claim 20
Dependent Claim 379 words
In a data processing system having a main memory; a plurality of job processors (JPs), each JP having a microprocessor and a first cache memory; a system bus; a plurality of local buses, each local bus being connected to a subset of the JPs; a plurality of shared cache memories, each shared cache memory being connected to the system bus and one of the local buses; and a plurality of tag units, each tag unit being connected to the system bus, one of the local buses and one of the shared cache memories, a plurality of ping pong bits connected to each said tag unit, a method for controlling the state of the ping pong bits connected to one of said tag units in response to a "read not intent to modify request" received by a first shared cache memory, the method comprising: (a) if the read request originated from one of the JPs connected to the first shared cache memory and the requested cache entry is not located in the first shared cache memory and the requested cache entry is received from a second shared cache memory, setting the ping pong bit associated with the received cache entry in the first shared cache memory to a first state, (b) if the read request originated from one of the JPs connected to the first shared cache memory and the requested cache entry is not located in the first shared cache memory and the requested cache entry is received from the main memory, setting the ping pong bit associated with the received cache entry in the first shared cache memory to a second state, (c) if the read request originated from one of the JPs connected to the first shared cache memory and the requested cache entry is located in the first shared cache memory, setting the ping pong bit associated with the received cache entry in the first shared cache memory to a second state, and (d) if the read request originated from a JP connected to a second shared cache memory and the cache entry is located in the first shared cache memory and the ping pong bit associated with the requested cache entry is in the first state, setting the ping pong bit to the second state.
Claim 21
Dependent Claim 148 words
In a data processing system having a main memory; a plurality of job processors (JPs), each JP having a microprocessor and a cache memory; and a system bus, the method of controlling data transfer operations among the JPs comprising the steps of: (a) in each cache memory of each JP, maintaining information associated with each data entry in at least a portion of that cache memory indicating whether that data entry is identified as a candidate for transfer over the system bus to a different JP; and (b) if a data entry is transferred from a first JP to a second JP over the system bus and the information maintained in step (a) associated with the transferred data entry indicates that that data entry was identified as a candidate for transfer over the system bus, invalidating the transferred cache entry in the cache memory of the first JP.
Claim 22
Dependent Claim 148 words
In a data processing system having a main memory; a plurality of job processors (JPs), each JP having a microprocessor and a cache memory; and a system bus, the method of controlling data transfer operations among the JPs comprising the steps of: (a) in each cache memory of each JP, maintaining information associated with each data entry in at least a portion of that cache memory indicating whether that data entry is identified as a candidate for transfer over the system bus to a different JP; and (b) if a data entry is transferred from a first JP to a second JP over the system bus and the information maintained in step (a) associated with the transferred data entry indicates that that data entry was identified as a candidate for transfer over the system bus, invalidating the transferred cache entry in the cache memory of the first JP.
Claim 23
Dependent Claim 193 words
In a data processing system having a main memory; a plurality of job processors (JPs), each JP having a microprocessor and a cache memory, each said cache memory having a plurality of ping pong bits associated therewith, each said ping pong bit being associated with a individual cache entry in the cache memory with which the ping pong bit is associated; a method for controlling the state of the ping pong bits in response to a cache entry access request from a first JP, the method comprising the steps of: (a) if the requested cache entry is received over the system bus from a second JP, (i) setting the ping pong bit associated with the requested cache entry in said first JP to a first state, and (ii) if the ping pong bit associated with the requested cache entry in said second JP is in the first state, setting said ping pong bit in said second JP to a second state; and (b) if the requested cache entry is received from the main memory, setting the ping pong bit associated with the received cache entry in said first JP to a second state.
Claim 24
Dependent Claim 193 words
In a data processing system having a main memory; a plurality of job processors (JPs), each JP having a microprocessor and a cache memory, each said cache memory having a plurality of ping pong bits associated therewith, each said ping pong bit being associated with a individual cache entry in the cache memory with which the ping pong bit is associated; a method for controlling the state of the ping pong bits in response to a cache entry access request from a first JP, the method comprising the steps of: (a) if the requested cache entry is received over the system bus from a second JP, (i) setting the ping pong bit associated with the requested cache entry in said first JP to a first state, and (ii) if the ping pong bit associated with the requested cache entry in said second JP is in the first state, setting said ping pong bit in said second JP to a second state; and (b) if the requested cache entry is received from the main memory, setting the ping pong bit associated with the received cache entry in said first JP to a second state.
Claim 25
Dependent Claim 47 words
The method of claim 19 further comprising the additional step of: (c) if the requested cache entry is received from another JP other than over the system bus, setting the ping pong bit associated with the received cache entry in said first JP to a second state.

References Cited (Backward Citations)

US5317716A Cited

USPTO Annuity & Maintenance Windows

Annuity Stage Window Opens Payment Deadline Surcharge Period Until Estimated Fee Status
3.5 Years (Year 4) 2001-01-26 2001-07-28 2002-01-27 $2000.00 Window Closed / Lapsed
7.5 Years (Year 8) 2005-01-26 2005-07-28 2006-01-27 $3760.00 Window Closed / Lapsed
11.5 Years (Year 12) 2009-01-26 2009-07-28 2010-01-27 $7700.00 Window Closed / Lapsed

Assigned Categories & Tags

No categories assigned to this patent yet.

Assign Category Tag