Ring based distributed communication bus for a multiprocessor network
First Claim
1. A method for providing communication between a plurality of nodes coupled in a ring formation, said method comprising the steps of:
- receiving, at an input of each node, data from one of the neighboring nodes on said ring during a predetermined time period;
depositing data at an output of each node during said predetermined time period, wherein said data deposited by each node is either said data received at said input of said node during said predetermined time period or data provided by the respective node; and
wherein said plurality nodes further comprises a plurality processors, each processor including a memory for storing a subset of shared data shared between at least two of said plurality of nodes,wherein said method further comprises the step of maintaining data coherency between each of said memories in each of said plurality of processors and said memory node, said step of maintaining coherency further comprising the steps of;
determining, at each processor, whether data received during said time period is updated data of interest to said receiving processor by;
determining a first nodal distance between a processor that transmitted said new data and said receiving processor; and
determining a second nodal distance between said receiving processor and a node indicated in a node field associated with version data stored at said processor;
storing said received data at said receiving processor if the relationship between said first nodal distance and said second nodal distance indicate that said data is updated data of interest to said processor.
3 Assignments
0 Petitions
Accused Products
Abstract
A method for providing communication between a plurality of nodes coupled in a ring arrangement, wherein a plurality of the nodes comprise processors each having a cache memory for storing a subset of shared data. Each of the nodes on the ring deposits data into a data slot during a given time period. The data deposited by each node may comprise an address field and a node field. To ensure data coherency between the caches, each processor on the ring includes a queue for saving a plurality of received data representative of the latest bus data transmitted on the bus. As each processor receives new data, the new data is compared against the plurality of saved data in the queue to determine if the address field of the new data matches the address field of any of the saved data of the queue. In the event that the new data matches one of the plurality of saved data, it is determined whether the new data represents updated data from the memory device. If the new data represents updated data it is shifted into the queue. If it does not represent updated data, it is discarded.
51 Citations
12 Claims
-
1. A method for providing communication between a plurality of nodes coupled in a ring formation, said method comprising the steps of:
-
receiving, at an input of each node, data from one of the neighboring nodes on said ring during a predetermined time period; depositing data at an output of each node during said predetermined time period, wherein said data deposited by each node is either said data received at said input of said node during said predetermined time period or data provided by the respective node; and wherein said plurality nodes further comprises a plurality processors, each processor including a memory for storing a subset of shared data shared between at least two of said plurality of nodes, wherein said method further comprises the step of maintaining data coherency between each of said memories in each of said plurality of processors and said memory node, said step of maintaining coherency further comprising the steps of; determining, at each processor, whether data received during said time period is updated data of interest to said receiving processor by; determining a first nodal distance between a processor that transmitted said new data and said receiving processor; and determining a second nodal distance between said receiving processor and a node indicated in a node field associated with version data stored at said processor; storing said received data at said receiving processor if the relationship between said first nodal distance and said second nodal distance indicate that said data is updated data of interest to said processor. - View Dependent Claims (2, 3, 4, 5, 6)
-
-
7. An apparatus comprising:
-
a bus arranged in a ring and having a protocol dividing transfer of data on said bus into a plurality of fixed time slots; and a plurality of nodes, coupled for point to point communication on said ring, each of said nodes being assigned a unique node number and communicating with said bus by transmitting data during one of said plurality of fixed time slots, wherein a portion of said of plurality of nodes comprises a plurality of processors, and wherein each of said processors further comprise a first memory, for storing a subset of shared data, said subset of shared data shared between at least two of said plurality of nodes; means, at each node for receiving data from other nodes on said ring, wherein said received data comprises a node field and an address field; means for maintaining coherency between said memories of said nodes including means, responsive to a match between said address field of said received data and an address of a version of said data stored at said receiving node, for determining a first distance and a second distance, wherein said first distance is the distance between the node indicated in the node field of the retrieved data and the node receiving the data, and the second distance is the distance between the mode receiving the data and a node associated with the stored version of the data at said received node. - View Dependent Claims (8, 9, 10, 11, 12)
-
Specification