Claims
- 1. A system for managing access to caches connected to a plurality of processors in a multiprocessor system, comprising:
a system port connectable to each of the plurality of processors and configured to receive a request from a first one of the processors to modify a block of a first cache of the caches, the request corresponding to a coherence state of the block of the first cache; and a memory manager connected to the system port and configured, in response to the received request, (i) to direct sending, over the system port, of probes to the caches, other than the first cache, (ii) to receive cache state information, over the system port, responsive to the probes, (iii) to determine an acknowledgment based on the received cache state information representing one of permission granted and permission denied to modify the block of the first cache, and (iv) to direct sending, over the system port, of the acknowledgment, to the first one of the processors.
- 2. The system of claim 1, wherein:
the request is a set-dirty request to set the coherence state of the block of the cache to dirty.
- 3. The system of claim 1, wherein:
the acknowledgment is determined based on the received cache state information according to a cache protocol.
- 4. The system of claim 2, wherein:
the set-dirty request is acknowledged internally by the first processor independent of the coherence state of the cache.
- 5. The system of claim 2, wherein:
the set-dirty request is sent to the memory manager by the first processor only if the coherence state of the block is clean.
- 6. The system of claim 2, wherein:
the set-dirty request is sent to the memory manager by the first processor only if the coherence state of the block is clean/shared.
- 7. The system of claim 2, wherein:
the set-dirty request is sent to the memory manager by the first processor only if the coherence state of the block is one of clean/shared and clean.
- 8. The system of claim 2, wherein:
the set-dirty request is sent to the memory manager by the first processor only if the coherence state of the block is dirty/shared.
- 9. The system of claim 2, wherein:
the set-dirty request is sent to the memory manager by the first processor only if the coherence state of the block is one of dirty/shared and clean.
- 10. The system of claim 2, wherein:
the set-dirty request is sent to the memory manager by the first processor only if the coherence state of the block is shared.
- 11. The system of claim 2, wherein:
the set-dirty request is sent to the memory manager by the first processor independent of the cache state.
- 12. A method of maintaining cache coherence in a multiprocessor system having a plurality of caches and a main memory, comprising the steps of:
sending a request to modify a block of a first cache of the plurality of caches, the request corresponding to a coherence state of the block of the first cache; sending probes to the caches, other than the first cache, to receive cache state information responsive to the probes; determining an acknowledgment based on the received cache state information representing one of permission granted and permission denied to modify the block of the first cache; and sending the acknowledgment to the first cache.
- 13. The method of claim 12, wherein:
the request is a set-dirty request to set the coherence state of the block of the cache to dirty.
- 14. The method of claim 13, wherein:
the request is sent by a first processor associated with the first cache to a controller managing access to the first cache; and the acknowledgment is received from the controller.
- 15. The method of claim 14, wherein:
the controller managing access to the first cache is one of the first processor and a memory management system for managing access to the plurality of caches.
- 16. The method of claim 15, wherein:
the controller is the first processor; and the request is sent internally to the first processor requesting permission to modify the block of the first cache independent of the coherence state of the first cache.
- 17. The method of claim 15, wherein:
the controller is the memory management system; and the set-dirty request is sent to the memory management system by the first processor to request permission to modify the block of the first cache only if the coherence state of the block is clean.
- 18. The method of claim 15, wherein:
the controller is the memory management system; and the set-dirty request is sent to the memory management system by the first processor to request permission to modify the block of the first cache only if the coherence state of the block is clean/shared.
- 19. The method of claim 15, wherein:
the controller is the memory management system; and the set-dirty request is sent to the memory management system by the first processor to request permission to modify the block of the first cache only if the coherence state of the block is one of clean/shared and clean.
- 20. The method of claim 15, wherein:
the controller is the memory management system; and the set-dirty request is sent to the memory management system by the first processor to request, permission to modify the block of the first cache only if the coherence state of the block is dirty/shared.
- 21. The method of claim 15, wherein:
the controller is the memory management system; and the set-dirty request is sent to the memory management system by the first processor to request permission to modify the block of the first cache only if the coherence state of the block is one of dirty/shared and clean.
- 22. The method of claim 15, wherein:
the controller is the memory management system; and the set-dirty request is sent to the memory management system by the first processor to request permission to modify the block of the first cache only if the coherence state of the block is shared.
- 23. The method of claim 15, wherein:
the controller is the memory management system; and the set-dirty request is sent to the memory management system by the first processor to request permission to modify the block of the first cache independent of the cache state.
- 24. A multiprocessor system, comprising:
a main memory; a plurality of processors, each processor having a cache; and a system for managing access to the caches, the system connectable to the main memory and the plurality of processors, comprising:
a system port connectable to each of the plurality of processors and configured to receive a request from a first one of the processors to modify a block of a first cache of the caches, the request corresponding to a coherence state of the block of the first cache; and a memory manager connected to the system port and configured, in response to the received request, (i) to direct the sending, over the system port, of probes to the caches, other than the first cache, (ii) to receive cache state information, over the system port, responsive to the probes, (iii) to determine an acknowledgment based on the received cache state information representing one of permission granted and permission, denied to modify the block of the first cache, and (iv) to direct the sending, over the system port, of the acknowledgment, to the first one of the processors.
CROSS-REFERENCE TO RELATED APPLICATIONS
[0001] This Application relates to the applications entitled:
[0002] METHOD AND APPARATUS FOR PERFORMING SPECULATIVE MEMORY REFERENCES TO THE MEMORY INTERFACE (U.S. application Ser. No. ______, filed ______) and
[0003] METHOD AND APPARATUS FOR RESOLVING PROBES IN MULTIPROCESSOR SYSTEMS WHICH DO NOT USE EXTERNAL DUPLICATE TAGS FOR PROBE FILTERING (U.S. application Ser. No. ______, filed ______) and
[0004] METHOD AND APPARATUS FOR MINIMIZING PINCOUNT NEEDED BY EXTERNAL MEMORY CONTROL CHIP FOR MULTIPROCESSORS WITH LIMITED MEMORY SIZE REQUIREMENTS (U.S. application Ser. No. ______, filed ______) and
[0005] METHOD AND APPARATUS FOR PERFORMING SPECULATIVE MEMORY FILLS INTO A MICROPROCESSOR (U.S. application Ser. No. ______, filed ______) and
[0006] METHOD AND APPARATUS FOR DEVELOPING MULTIPROCESSOR CACHE CONTROL PROTOCOLS USING ATOMIC PROBE COMMANDS AND SYSTEM DATA CONTROL RESPONSE COMMANDS (U.S. application Ser. No. ______, filed ______) AND
[0007] METHOD AND APPARATUS FOR DEVELOPING MULTIPROCESSOR CACHE CONTROL PROTOCOLS USING AN EXTERNAL ACKNOWLEDGMENT SIGNAL TO SET A CACHE TO A DIRTY STATE (U.S. application Ser. No. ______, filed ______) and
[0008] METHOD AND APPARATUS FOR DEVELOPING MULTIPROCESSOR CACHE CONTROL PROTOCOLS BY PRESENTING A CLEAN VICTIM SIGNAL TO AN EXTERNAL SYSTEM (U.S. application Ser. No. ______, filed ______) and
[0009] METHOD AND APPARATUS FOR DEVELOPING MULTIPROCESSOR CACHE CONTROL PROTOCOLS USING A MEMORY MANAGEMENT SYSTEM GENERATING ATOMIC PROBE COMMANDS AND SYSTEM DATA CONTROL RESPONSE COMMANDS (U.S. application Ser. No. ______, filed ______) and
[0010] METHOD AND APPARATUS FOR DEVELOPING MULTIPROCESSOR CACHE CONTROL PROTOCOLS USING A MEMORY MANAGEMENT SYSTEM TO RECEIVE A CLEAN VICTIM SIGNAL (U.S. application Ser. No. ______, filed ______).
[0011] These applications are filed simultaneously herewith in the U.S. Patent & Trademark Office.