Multiprocessor system architecture with high availability
First Claim
1. A multiprocessor system of the kind in which each processor accesses common system information asynchronously, the information being updateable by more than one processor simultaneously and dynamically, the system comprising:
- two processor clusters each comprising at least two processors, each cluster operating on a separate clock and power boundary,an array in each cluster having definable, lockable regions therein for storing said system information,a plurality of local ports and a plurality of remote ports in each cluster coupled to the array for enabling execution of array operations in that cluster;
each processor in each cluster being connected to a respective local port, each local port having at least one register for storing address, data, control and status information and each local port being coupled to a corresponding one of said remote ports in the other cluster for communication therewith;
each remote port having at least one register, each such register being connected to a corresponding register in the respective coupled local port of the other cluster, said at least one register storing said address, data, control and status information for causing array operations to be executed selectively in either cluster or in both of said clusters concurrently; and
an arbiter in each cluster connected to the local ports and remote ports therein, each arbiter being coupled to its corresponding array for controlling access thereto and operation thereof, each arbiter communicating with the arbiter of the other cluster for arbitrating global operations, including dual mode TEST AND SET and UNCONDITIONAL SET operations, to its own array and the other (remote) array, and each arbiter comprising means for executing read/write operations in unused array cycles between the TEST portion and the SET portion of a TEST AND SET operation.
1 Assignment
0 Petitions
Accused Products
Abstract
High availability is achieved in a multiprocessor system by grouping the processors into two clusters operating on different clock and power boundaries. In each cluster is an array containing a substantially identical copy of the system information relating to the operation of the processors. Each processor has a local port for accessing the local array and a remote port for accessing the remote array. When an update is made on the system information, it is made on both the local and remote arrays with the remote update performed transparently.
-
Citations
10 Claims
-
1. A multiprocessor system of the kind in which each processor accesses common system information asynchronously, the information being updateable by more than one processor simultaneously and dynamically, the system comprising:
-
two processor clusters each comprising at least two processors, each cluster operating on a separate clock and power boundary, an array in each cluster having definable, lockable regions therein for storing said system information, a plurality of local ports and a plurality of remote ports in each cluster coupled to the array for enabling execution of array operations in that cluster; each processor in each cluster being connected to a respective local port, each local port having at least one register for storing address, data, control and status information and each local port being coupled to a corresponding one of said remote ports in the other cluster for communication therewith; each remote port having at least one register, each such register being connected to a corresponding register in the respective coupled local port of the other cluster, said at least one register storing said address, data, control and status information for causing array operations to be executed selectively in either cluster or in both of said clusters concurrently; and an arbiter in each cluster connected to the local ports and remote ports therein, each arbiter being coupled to its corresponding array for controlling access thereto and operation thereof, each arbiter communicating with the arbiter of the other cluster for arbitrating global operations, including dual mode TEST AND SET and UNCONDITIONAL SET operations, to its own array and the other (remote) array, and each arbiter comprising means for executing read/write operations in unused array cycles between the TEST portion and the SET portion of a TEST AND SET operation. - View Dependent Claims (2)
-
-
3. In a multiprocessor system wherein operation of the processors requires asynchronous access to common system information, the common system information being dynamically updateable by more than one processor concurrently, a method for improving the availability of the multiprocessor system and for communicating information between processors, comprising the steps of:
-
dividing the processors into two clusters; providing an array in each cluster to store a copy of said system information, said array having a plurality of definable, lockable regions; operating each cluster on a separate power and clock boundary; connecting each processor in a particular cluster via a respective local port to the array and to an arbiter for that particular cluster and also to a corresponding remote port in the other cluster; connecting each remote port in said other cluster to the array and to an arbiter for said other cluster; at each update of said system information by a processor in its own cluster via its associated local port, also updating concurrently the copy of system information in the other cluster via the corresponding remote port therein if the array in the other cluster is accessible; arbitrating array operations via said arbiters in both arrays among all requesting processors; and while performing a TEST AND SET operation for one processor in one of the clusters, performing read/write operations for another processor in either of said clusters during unused array cycles between the TEST portion and the SET portion of the TEST AND SET operation. - View Dependent Claims (4, 5, 6, 7, 8, 9, 10)
-
Specification