Method of controlling the flow of information between senders and receivers across links being used as channels
First Claim
1. A method of controlling the flow of information between senders and receivers of data, said system comprising:
- initiating, by a first system a sending of a request, via a link, to a second system, said request having one or more data items associated therewith, wherein none of the one or more data items is sent with the request;
indicating that a receiver of data is prepared to receive said one or more data items from a sender of data, wherein said receiver is one of said first system and said second system depending on said request, and said sender is the other of said first system and said second system;
forwarding, in response to said indicating, said one or more data items; and
wherein said link is being used as a channel in that the link is not stopped while said receiver is preparing for said one or more data items.
1 Assignment
0 Petitions
Accused Products
Abstract
Controlling the flow of information between senders and receivers across links being used as channels. In one example, a self-timed interface link is adapted to be used as a channel. Such an interface is referred to as an integrated cluster bus. The flow control for the integrated cluster bus includes, for instance, a Data Request packet that indicates to the transmitter of data that it can now send the data; a continue indicator that specifies that more data is to follow; and a sequence indicator that is used to determine if a particular message is in proper sequence order. The integrated cluster bus does not require large data buffers and offers low latency messaging.
44 Citations
16 Claims
-
1. A method of controlling the flow of information between senders and receivers of data, said system comprising:
-
initiating, by a first system a sending of a request, via a link, to a second system, said request having one or more data items associated therewith, wherein none of the one or more data items is sent with the request;
indicating that a receiver of data is prepared to receive said one or more data items from a sender of data, wherein said receiver is one of said first system and said second system depending on said request, and said sender is the other of said first system and said second system;
forwarding, in response to said indicating, said one or more data items; and
wherein said link is being used as a channel in that the link is not stopped while said receiver is preparing for said one or more data items. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16)
determining, by said sender control logic, whether another data request indication has been previously received for said request; and
indicating an error when another data request indication has been previously received.
-
-
4. The method of claim 2, further comprising:
-
determining whether said request specifies a read operation;
determining whether a data request indication is received by said receiver control logic for said request; and
indicating an error when said request specifies a read operation and said data request indication is received by said receiver control logic.
-
-
5. The method of claim 2, wherein said forwarding comprises forwarding said one or more data items from said sender control logic to said receiver control logic.
-
6. The method of claim 5, further comprising storing, by said receiver control logic, said one or more data items at said receiver.
-
7. The method of claim 5, wherein said forwarding said one or more data items comprises using one or more data packets to forward said one or more data items, and wherein a continuing indicator set in one of said one or more data packets indicates another data packet is to follow.
-
8. The method of claim 7, further comprising including in at least one data packet of said one or more data packets at least one sequence number usable in maintaining delivery order of said at least one data packet.
-
9. The method of claim 1, further comprising:
-
issuing, by said sender, a command to obtain an address of one of said one or more data items to be forwarded;
determining whether said command has been previously issued for said request; and
indicating an error when said command has been previously issued for said request.
-
-
10. The method of claim 9, further comprising:
-
determining whether a start command has been issued prior to said command to obtain said address; and
indicating an error when said start command has not been issued prior to said command.
-
-
11. The method of claim 1, further comprising:
-
determining whether any of said one or more data items has been forwarded prior to indicating said receiver is ready to receive said one or more data items; and
indicating an error when any of said one or more data items has been forwarded prior to indicating said receiver is ready to receive said one or more data items.
-
-
12. The method of claim 1, wherein said initiating comprises causing a start command to be issued, and wherein said method further comprises:
-
determining whether another start command has been previously issued for said request; and
indicating an error when said another start command has previously been issued.
-
-
13. The method of claim 1, further comprising:
-
issuing, by said receiver, a command to obtain at least one memory address of said receiver;
determining whether said command has been previously issued for said request; and
indicating an error when said command has been previously issued for said request.
-
-
14. The method of claim 13, further comprising:
-
determining, after said command is issued, whether control logic of said receiver has received a data request indication; and
indicating an error when said control logic has received said data request indication.
-
-
15. The method of claim 13, further comprising:
-
determining whether a start command has been issued prior to said command to obtain said at least one memory address; and
indicating an error when said start command has not been issued prior to said command.
-
-
16. The method of claim 1, further comprising:
-
sending, by said second system to said first system, an indication that the request is complete;
determining whether a start command for said request was issued by said first system prior to the sending of the complete indication; and
indicating an error when said start command has not been issued prior to the sending of the complete indication.
-
Specification