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
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 |