Claims
- 1. In a system comprising two communicating devices, a method of communication comprising:
creating information packets, each of which has an assigned known order number from a plurality of order values; organizing the order values in a predetermined order which the information packets must be transmitted and received in; transmitting the information packets in successive packets solely in accordance with the predetermined order from a first of the two communicating devices to a second of the two communicating devices; successively checking and verifying that each of the information packets which is received is being received pursuant to the predetermined order; and either (1) accepting in the predetermined order each received information packet by providing an acknowledge response from the second of the two communicating devices to the first of the two communicating devices; or (2) rejecting a specific information packet by providing the acknowledge response, the rejecting forcing the first of the two communicating devices to determine which specific information packet was rejected and to resend the specific information packet which was rejected until the specific information packet is accepted by the second of the two communicating devices.
- 2. The method of communication of claim 1 further comprising:
upon the first of the two communicating devices receiving the acknowledge response indicating acceptance by the second of the two communicating devices of a predetermined information packet, tracking the plurality of order values to indicate which of the plurality of order values is a next expected order value.
- 3. The method of communication of claim 1 further comprising:
detecting at the second of the two communicating devices that the specific information packet does not have a correct order value or that there are errors associated with the specific information packet which was received; sending the acknowledge response to the first of the two communicating devices indicating said detecting; responding to the acknowledge response by having the first of the two communicating devices request the second of the two communicating devices to transmit a present order value of the second of the two communicating devices; and forcing the first of the two communication devices to retransfer one or more information packets beginning with the present order value provided by the second of the two communicating devices.
- 4. The method of communication of claim 1 further comprising:
detecting at the second of the two communicating devices that no errors exist associated with the specific information packet which was received; determining that the specific information packet could not be accepted due to an inability of the second of the two communicating devices to store the specific information packet; providing the acknowledge response to the first of the two communicating devices indicating the specific information packet which could not be accepted by the second of the two communication devices; and forcing the first of the two communicating devices to retransfer to the second of the two communicating devices the specific information packet which could not be accepted by the second of the two communication devices.
- 5. The method of communication of claim 1 further comprising:
before receiving the acknowledge response, transmitting additional information packets following the predetermined order and creating an indicator within the first of the two communicating devices to indicate an order value of a next information packet to be transferred.
- 6. The method of communication of claim 1 further comprising:
including with the acknowledge response from the second of the two communicating devices a present value of the order number which the second of the two communicating devices used to decide to accept or reject a presently pending information packet being processed.
- 7. The method of communication of claim 1 further comprising:
checking for communication errors at the second of the two communicating devices by implementing a predetermined error checking scheme of the information packets which the second of the two communicating devices receives.
- 8. The method of communication of claim 1 further comprising:
implementing the system as a source synchronous system by transmitting a clock with the information packets.
- 9. The method of communication of claim 1 further comprising:
clocking the first of the two communicating devices with a first clock signal and clocking the second of the two communicating devices with a second clock signal, the first clock signal and the second clock signal being asynchronous with respect to each other.
- 10. The method of communication of claim 1 further comprising:
coupling a third communicating device to the second of the two communicating devices, the first of the two communicating devices communicating the information packets to the third communicating device by following the steps of claim 1; and repeating the steps of claim 1 between the second of the two communicating devices and the third communicating device, thereby eliminating delivery responses between the first of the two communicating devices and the third communicating device.
- 11. A device for use in a system, the device adapted to transmit and receive information packets with an additional device, the device comprising:
assembly circuitry for creating and transmitting information packets, each of which has an assigned known order number from a plurality of order values, and organizing the order values in a predetermined order which the information packets must be transmitted and received in; acknowledgement circuitry for receiving responses from the additional device indicating whether the additional device successfully received an information packet of correct order value; tracking circuitry coupled to the acknowledgement circuitry and the assembly circuitry for maintaining an indication of a current order value of an information packet which is to be next approved by the additional device and an indication of a next order value of an information packet which is to be next transmitted, the tracking circuitry controlling the assembly and transmission of information packets by the assembly circuitry; parsing circuitry for receiving information packets from the additional device, the parsing circuitry separating a data field from an order number field of each of the information packets; comparison circuitry coupled to the parsing circuitry for comparing a received order number with an authorized order number for a next authorized information packet to be received; error detection circuitry coupled to the parsing circuitry for receiving the data field of each of the information packets and determining whether any data errors exist, the error detection circuitry providing an error signal in response to detection of an error; storage and logic circuitry for determining if resources exist to store the next authorized information packet to be received and for storing the next authorized information packet; acknowledge circuitry coupled to the comparison circuitry, to the error detection circuitry and to the storage and logic circuitry, the acknowledge circuit providing an acknowledge response to the additional device indicating whether the next authorized information packet was received, had no errors and could be stored.
- 12. The device of claim 11 further comprising:
an outbound information packet queue coupled to the assembly circuitry for storing data portions of information packets prior to transmission; and wherein the storage and logic circuitry further comprises an inbound information packet queue for storing data portions of received information packets upon approval of a received information packet by the acknowledge circuitry.
- 13. The device of claim 12 wherein the information packets each comprise a first field which comprises the plurality of order values, a second field which comprises an attributes field, and a third field which comprises a data field.
- 14. The device of claim 12 wherein the tracking circuitry further comprises a scoreboard register, the scoreboard register having a storage location for each of the plurality of order values, a first pointer value which indicates an expected order value to be next acknowledged by the acknowledge response, and a second pointer value which indicates a next order value to be used in connection with a transmitted information packet.
- 15. A method of communicating information packets between a transmitting device and a receiving device, comprising:
ordering the information packets in a predetermined order to be transmitted and received; transmitting the information packets solely in the predetermined order from the transmitting device to the receiving device; receiving the information packets solely in the predetermined order with the receiving device and successively checking each received information packet to determine if each information packet can be accepted; providing a response from the receiving device to the transmitting device, the response indicating if transmitted information packets are accepted; if a response indicates a rejected information packet due to the receiving unit detecting an error associated with the rejected information packet, sending a request from the transmitting unit to the receiving unit for an order number of the rejected information packet and resending information packet transmission beginning with the order number of the rejected information packet; if a response indicates a rejected information packet due to the receiving unit being unable to accept the rejected information packet although no specific error associated with the rejected information packet was found, sending a response to the transmitting unit indicating rejection was due to being unable to accept the rejection information packet and forcing the transmitting unit to back up to the rejected information packet and retransmit the rejected information packet.
- 16. The method of claim 15 further comprising:
using a scoreboard register in the transmitting device to indicate what ordering value is associated with a next response from the receiving device associated with a transmitted information packet and to indicate what ordering value is associated with a next information packet transmission.
- 17. The method of claim 15 further comprising:
providing a receiving unit with the transmitting device, the receiving unit functioning to receive information packets as the receiving device does; and providing a transmitting unit with the receiving device, the transmitting unit functioning to transmit information packets as the transmitting device does, wherein information packets are bidirectionally communicated between the transmitting device and the receiving device.
- 18. The method of claim 15 further comprising:
clocking the transmitting device with a first clock; clocking the receiving device with a second clock which is asynchronous with first clock.
- 19. The method of claim 15 further comprising:
before receiving a response from the receiving device regarding a first transmitted information packet, transmitting one or more additional information packets in predetermined order to the receiving device.
RELATED APPLICATIONS
[0001] This nonprovisional patent application claims a right of priority and the benefit of Provisional U.S. patent application Ser. No. 60/175,856 filed Jan. 13, 2000 entitled “Rio Bus Protocol” by Bryan Marietta pursuant to 35 U.S.C. §119(e).
Provisional Applications (1)
|
Number |
Date |
Country |
|
60175856 |
Jan 2000 |
US |