Event-reaction communication protocol in an object oriented processor array
First Claim
1. A method of arbitrating communications between a plurality of message sources and a message target, said method comprising:
- a) establishing a maximum number of allowed pending messages;
b) informing each of the sources what said maximum number is;
c) each source monitoring communications with the target to determine a present number of pending messages;
d) no source sending a message to the target unless the present number is less than the maximum number;
e) each source starting a message to the target by sending a request to the target;
f) the present number being incremented each time a request is sent to the target;
g) the target responding to a request by a requesting source by commanding the requesting source to send a message;
h) the target confirming receipt of each message sent to it; and
i) the present number being decremented each time the target confirms receipt of a message.
5 Assignments
0 Petitions
Accused Products
Abstract
An object oriented processor array includes a library of functional objects which are instantiated by commands through a system object and which communicate via a high level language. According to the invention, communication is based on an "event-reaction" model. According to the event-reaction model, when a processor object has a message to send, it generates a data event which is registered with the target recipient of the message (usually the host). The target reacts to the event by allowing a variable amount of I/O exchange between the processor object and the target prior to an acknowledgement of the data event. According to one embodiment, until the data event is acknowledged, no other data event may be sent to the target. According to another embodiment, a fixed number of data events may be pending simultaneously. In one embodiment of a multi-node system, each node (each object oriented processor array) is aware of network traffic and data events related to a particular target (host) receiver are registered with all nodes which have that receiver as a target as well as with the target. The number of data events which may be simultaneously pending at any time is determined by the target and known to each of the nodes. The target arbitrates the flow of messages based on the registration of data events.
-
Citations
10 Claims
-
1. A method of arbitrating communications between a plurality of message sources and a message target, said method comprising:
-
a) establishing a maximum number of allowed pending messages; b) informing each of the sources what said maximum number is; c) each source monitoring communications with the target to determine a present number of pending messages; d) no source sending a message to the target unless the present number is less than the maximum number; e) each source starting a message to the target by sending a request to the target; f) the present number being incremented each time a request is sent to the target; g) the target responding to a request by a requesting source by commanding the requesting source to send a message; h) the target confirming receipt of each message sent to it; and i) the present number being decremented each time the target confirms receipt of a message. - View Dependent Claims (2)
-
-
3. An object oriented processor system, comprising:
-
a) a host processor; and b) a plurality of object oriented processors coupled to said host processor, at least some of said object oriented processors generating data in response to events, each of said data generating object oriented processors includes request means for sending a request to said host processor, memory means for knowing a maximum permissible number of simultaneous pending requests, and monitoring means for monitoring communications with said host processor to determine a present number of pending requests, wherein i) each of said data generating object oriented processors sends a request to said host processor before data can be sent to said host processor; ii) each of said data generating object oriented processors is aware of a maximum permissible number of simultaneous pending requests; iii) each of said data generating object oriented processors monitors communications with said host processor to determine a present number of pending requests; iv) none of said data generating object oriented processors sends a request to said host processor unless the present number is less than the maximum number. - View Dependent Claims (4, 5, 6)
-
-
7. An object oriented processor system, comprising:
-
a) a host processor; and b) a plurality of object oriented processors coupled to said host processor, at least some of said object oriented processors generating data in response to events, each of said data generating object oriented processors includes a request generator, memory, and a communications monitor, wherein i) each of said data generating object oriented processors sends a request via said request generator to said host processor before data can be sent to said host processor; ii) said memory of each of said data generating object oriented processors contains an indication of a maximum permissible number of simultaneous pending requests; iii) each of said data generating object oriented processors monitors communications with said host processor via said communications monitor to determine a present number of pending requests; iv) none of said data generating object oriented processors sends a request to said host processor unless the present number is less than the maximum number. - View Dependent Claims (8, 9, 10)
-
Specification