Directory based cache coherency system supporting multiple instruction processor and input/output caches
First Claim
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.
11 Assignments
0 Petitions
Accused Products
Abstract
A directory-based cache coherency system is disclosed for use in a data processing system having multiple Instruction Processors (IP) and multiple Input/Output (I/0) units coupled through a shared main memory. The system includes one or more IP cache memories, each coupled to one or more IPs and to the shared main memory for caching units of data referred to as cache lines. The system further includes one or more I/O memories within ones of the I/O units, each I/O memory being coupled to the shared main memory for storing cache lines retrieved from the shared main memory. Coherency is maintained through the use of a central directory which stores status for each of the cache lines in the system. The status indicates the identity of the IP caches and the I/O memories having valid copies of a given cache line, and further identifies a set of access privileges, that is, the cache line “state”, associated with the cache line. The cache line states are used to implement a state machine which tracks the cache lines and ensures only valid copies of are maintained within the memory system. According to another aspect of the system, the main memory performs continuous tracking and control functions for all cache lines residing in the IP caches. In contrast, the system maintains tracking and control functions for only predetermined cache lines provided to the I/O units so that system overhead may be reduced. The coherency system further supports multiple heterogeneous instruction processors which operate on cache lines of different sizes.
-
Citations
8 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. - View Dependent Claims (2, 3, 4)
-
-
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.
-
Specification