Claims
- 1. For use in a data processing system having multiple instruction processors (IPs) and multiple input/output (I/O) systems, a memory system, comprising:a shared main memory to store addressable blocks of data signals; one or more IP caches each coupled to one or more of the IPs and each coupled to said shared main memory to store selectable ones of said addressable blocks of data signals received from said shared main memory; one or more I/O memories each coupled to an associated one or more of the I/O systems and each coupled to said shared main memory to store selectable ones of said addressable blocks of data signals received from said shared main memory; a directory storage device coupled to said shared main memory to store directory information for each associated one of said addressable blocks, said directory information indicating which of said one or more IP caches and which of said one or more I/O memories is storing an associated addressable block of data signals, said directory information further including access privilege indicators for said associated addressable block of data signals, said access privilege indicators being selected from a first set of access privilege indicators if at least one of said IP caches stores said associated addressable block, said access privilege indicators being selected from a second set of access privilege indicators if only said one or more I/O memories stores said associated addressable block, wherein each of said IP caches and each of said I/O memories includes circuits to issue commands to said shared main memory, each of said commands to request a copy of a requested one of said addressable blocks of data signals, and further including a control circuit coupled to ones of said IP caches and ones of said I/O memories to receive said issued commands, and to determine, based on a selected one of said issued commands for said requested one of the addressable blocks of data signals, and further based on said associated one of said access privilege indicators for said requested one of said addressable blocks of data signals, which one of said access privilege indicators is to be associated with said requested one of said addressable blocks of data signals upon completion of execution of said selected one of said issued command, and wherein each of said IP caches and ones of said I/O memories may return modified said requested ones of said addressable blocks of data signals to said shared main memory to be stored during return operations, and wherein said directory storage device includes an error circuit responsive to said return operations such that any of said return operations causes an error signal to be issued if said return operation is performed by any of said IP caches or any of said I/O memories not indicated by said directory information as storing any one of said modified requested ones of said addressable blocks of data signals.
- 2. The memory system of claim 1, wherein ones of said access privilege indicators indicate exclusive cache states such that any of said requested addressable blocks associated with said exclusive cache states may be stored within at most one of said IP caches or one of said I/O memories at any given time.
- 3. The memory system of claim 2 wherein if a requesting one of said IP caches or a requesting one of said I/O memories makes a request to said shared main memory for a requested one of said addressable blocks of data signals associated with one of said exclusive cache states, and said requested one of said addressable blocks of data signals is stored within a storing one of said IP caches, said control unit causes said storing one of said IP caches to provide said requested one of said addressable blocks of data signals to said shared main memory, and further causes said requested one of said addressable blocks of data signals to be associated with a different said cache state.
- 4. The memory system of claim 2 wherein if a requesting one of said IP caches or said I/O memories makes a request to said shared main memory for a requested one of said addressable blocks of data signals associated with one of said exclusive cache states, and said requested one of said addressable blocks of data signals is stored within a storing one of said I/O memories, said shared main memory allows said storing one of said I/O memories to retain said requested one of said addressable blocks of data signals, which is maintained in said one of said exclusive cache states.
- 5. For use in a data processing system having multiple instruction processors (IPs) and multiple input/output (I/O) systems, a memory system, comprising:a shared main memory to store addressable blocks of data signals; one or more IP caches each coupled to one or more of the IPs and each coupled to said shared main memory to store selectable ones of said addressable blocks of data signals received from said shared main memory; one or more I/O memories each coupled to an associated one or more of the I/O systems and each coupled to said shared main memory to store selectable ones of said addressable blocks of data signals received from said shared main memory; a directory storage device coupled to said shared main memory to store directory information for each associated one of said addressable blocks, said directory information indicating which of said one or more IP caches and which of said one or more I/O memories is storing an associated addressable block of data signals, said directory information further including access privilege indicators for said associated addressable block of data signals, said access privilege indicators being selected from a first set of access privilege indicators if at least one of said IP caches stores said associated addressable block, said access privilege indicators being selected from a second set of access privilege indicators if only said one or more I/O memories stores said associated addressable block, and further including a control circuit to determine, based on said access privilege indicators for an associated addressable block of data signals, the number of said IP caches or the number of said I/O memories which may store said associated addressable block of data signals, and the manner in which said addressable block of data signals may be read from, or written to, within the memory system, and wherein predetermined ones of the I/O memories are I/O caches, and wherein access privilege indicators are provided to allow ones of said addressable blocks of data signals to be stored by ones of said I/O caches to be used by said coupled ones of the I/O systems for read-only purposes.
- 6. For use in a data processing system having multiple instruction processors (IPs) and multiple input/output (I/O) systems, a memory system, comprising:a shared main memory to store addressable blocks of data signals; one or more IP caches each coupled to one or more of the IPs and each coupled to said shared main memory to store selectable ones of said addressable blocks of data signals received from said shared main memory; one or more I/O memories each coupled to an associated one or more of the I/O systems and each coupled to said shared main memory to store selectable ones of said addressable blocks of data signals received from said shared main memory; a directory storage device coupled to said shared main memory to store directory information for each associated one of said addressable blocks, said directory information indicating which of said one or more IP caches and which of said one or more I/O memories is storing an associated addressable block of data signals, said directory information further including access privilege indicators for said associated addressable block of data signals, said access privilege indicators being selected from a first set of access privilege indicators if at least one of said IP caches stores said associated addressable block, said access privilege indicators being selected from a second set of access privilege indicators if only said one or more I/O memories stores said associated addressable block, and further including a control circuit to determine, based on said access privilege indicators for an associated addressable block of data signals, the number of said IP caches or the number of said I/O memories which may store said associated addressable block of data signals, and the manner in which said addressable block of data signals may be read from, or written to, within the memory system, and wherein predetermined ones of the I/O memories are I/O buffers, and wherein access privilege indicators included within said second set of access privilege indicators are provided to allow associated ones of said addressable blocks of data signals each to be stored within any one of said I/O buffers, and whereby ones of the I/O systems may read from, or write to, said addressable blocks of data signals stored within said I/O buffers coupled to said ones of the I/O systems.
- 7. For use in a data processing system having multiple instruction processors (IPs) and multiple input/output (I/O) systems, a memory system, comprising:a shared main memory to store addressable blocks of data signals; one or more IP caches each coupled to one or more of the IPs and each coupled to said shared main memory to store selectable ones of said addressable blocks of data signals received from said shared main memory; one or more I/O memories each coupled to an associated one or more of the I/O systems and each coupled to said shared main memory to store selectable ones of said addressable blocks of data signals received from said shared main memory; a directory storage device coupled to said shared main memory to store directory information for each associated one of said addressable blocks, said directory information indicating which of said one or more IP caches and which of said one or more I/O memories is storing an associated addressable block of data signals, said directory information further including access privilege indicators for said associated addressable block of data signals, said access privilege indicators being selected from a first set of access privilege indicators if at least one of said IP caches stores said associated addressable block, said access privilege indicators being selected from a second set of access privilege indicators if only said one or more I/O memories stores said associated addressable block, wherein each of said IP caches and each of said I/O memories includes circuits to issue commands to said shared main memory, each of said commands to request a copy of a requested one of said addressable blocks of data signals, and further including a control circuit coupled to ones of said IP caches and ones of said I/O memories to receive said issued commands, and to determine, based on a selected one of said issued commands for said requested one of the addressable blocks of data signals, and further based on said associated one of said access privilege indicators for said requested one of said addressable blocks of data signals, which one of said access privilege indicators is to be associated with said requested one of said addressable blocks of data signals upon completion of execution of said selected one of said issued command, and wherein one of said control circuit includes a circuit responsive to one of said commands that is a fetch MSU own command to cause requested one of said addressable blocks of data signals to become associated with predetermined ones of said access privilege indicators that indicate that said shared main memory is prepared to be partitioned into multiple systems.
- 8. For use in a data processing system having multiple instruction processors (IPs) and multiple input/output (I/O) systems, a memory system, comprising:a shared main memory to store addressable blocks of data signals; one or more IP caches each coupled to one or more of the IPs and each coupled to said shared main memory to store selectable ones of said addressable blocks of data signals received from said shared main memory; one or more I/O memories each coupled to an associated one or more of the I/O systems and each coupled to said shared main memory to store selectable ones of said addressable blocks of data signals received from said shared main memory; a directory storage device coupled to said shared main memory to store directory information for each associated one of said addressable blocks, said directory information indicating which of said one or more IP caches and which of said one or more I/O memories is storing an associated addressable block of data signals, wherein each of said IP caches and each of said I/O memories includes circuits to issue commands to said shared main memory, each of said commands to request a copy of a requested one of said addressable blocks of data signals, and further including a control circuit coupled to ones of said IP caches and ones of said I/O memories to receive said issued commands, and to determine, based on a selected one of said issued commands for said requested one of the addressable blocks of data signals, and further based on said associated one of said access privilege indicators for said requested one of said addressable blocks of data signals, which one of said access privilege indicators is to be associated with said requested one of said addressable blocks of data signals upon completion of execution of said selected one of said issued command, and wherein each of said IP caches and ones of said I/O memories may return modified said requested ones of said addressable blocks of data signals to said shared main memory to be stored during return operations, and wherein said directory storage device includes an error circuit responsive to said return operations such that any of said return operations causes an error signal to be issued if said return operation is performed by any of said IP caches or any of said I/O memories not indicated by said directory information as storing any one of said modified requested ones of said addressable blocks of data signals.
CROSS-REFERENCE TO OTHER APPLICATIONS
This application is a Division of Ser. No. 09/001,598 filed Dec. 31, 1997.
The following co-pending applications of common assignee contain some common disclosure:
“A Directory-Based Cache Coherency System”, filed Nov. 5, 1997, U.S. application Ser. No. 08/965,004, and incorporated herein by reference in its entirety;
“Memory Optimization State”, filed Nov. 5, 1997, U.S. application Ser. No. 08/964,626, now U.S. Pat. No. 6,052,760, issued Apr. 18, 2000, and incorporated herein by reference in its entirety;
“High-Performance Modular Memory System with Crossbar Connections”, filed Dec. 31, 1997, U.S. application Ser. No. 09/001,592, and incorporated herein by reference in its entirety; and
“High-Speed Memory Storage Unit for a Multiprocessor System Having Integrated Directory and Data Storage Subsystems”, filed Dec. 31, 1997, U.S. application Ser. No. 09/001,588, and incorporated herein by reference in its entirety.
US Referenced Citations (19)
Non-Patent Literature Citations (4)
Entry |
Agarwal et al., “An Evaluation of Directory Schemes for Cache Coherence”, ACM International Conference on Computer Architecture, pp. 280-298, 1988.* |
Marquardt et al. “A Cache-Coherent, Distributed Memory Multiprocessor-System”, Conference on High Performance Networking and Computing, pp. 466-475, 1989.* |
M. Ligure, “Are Crossbars Really Dead?: The Case for Optical Multiprocessor Interconnect Systems”, Proceedings of the International Conference on Computer Architecture, pp. 106-115, 1995.* |
Carter et al., “Techniques for Reducing Consistency-Related Communication in Distributed Shared-Memory Systems”, ACM Transactions on Computer Systems (TOCS), pp. 205-243, Aug. 1995. |