Self-healing link sequence counts within a circular buffer
First Claim
1. A method of communicating with an external device over a bus utilizing one or more virtual channels, at least one of the virtual channels utilizing a transmit buffer to hold commands and data to be sent in packets to the external device, comprising:
- maintaining a current sequence count for packets to be transmitted to the external device;
receiving a packet from the external device indicating an expected sequence count that does not match the current sequence count; and
adjusting the current sequence count to match the expected sequence count by modifying one or more pointers into the transmit buffer.
1 Assignment
0 Petitions
Accused Products
Abstract
Methods and apparatus that allow recovery in the event that sequence counts used on receive and transmit sides of a communications link become out of sync are provided. In response to receiving a packet with an expected sequence count from a receiving device, a transmitting device may adjust pointers into a transmit buffer allowing the transmitting device to begin transmitting packets with the sequence count expected by the receiving device.
73 Citations
23 Claims
-
1. A method of communicating with an external device over a bus utilizing one or more virtual channels, at least one of the virtual channels utilizing a transmit buffer to hold commands and data to be sent in packets to the external device, comprising:
-
maintaining a current sequence count for packets to be transmitted to the external device;
receiving a packet from the external device indicating an expected sequence count that does not match the current sequence count; and
adjusting the current sequence count to match the expected sequence count by modifying one or more pointers into the transmit buffer. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8)
-
-
9. An integrated circuit (IC) device, comprising:
-
one or more processor cores;
a bus interface for transferring data to and from an external device via an external bus;
a transmit buffer for holding packets of data to be sent from the one or more processor cores to the external device over the external bus; and
self-healing link logic circuitry configured to receive, from an external device, a packet containing an expected sequence count for packets transmitted to the external device by the IC device and, if a current sequence count maintained by the IC device does not match the expected sequence count, adjust the current sequence count to match the expected sequence count by modifying one or more pointers into the transmit buffer. - View Dependent Claims (10, 11, 12, 13, 14)
-
-
15. A system, comprising:
-
at least one bus;
one or more external devices; and
a system on a chip (SOC) having one or more processor cores, a transmit buffer for holding packets of data to be sent from the one or more processor cores to the external device over the bus, and self-healing link logic circuitry configured to receive, from an external device, a packet containing an expected sequence count for packets transmitted to the external device by the SOC and, if a current sequence count maintained by the SOC does not match the expected sequence count, adjust the current sequence count to match the expected sequence count by modifying one or more pointers into the transmit buffer. - View Dependent Claims (16, 17, 18, 19, 20, 21, 22, 23)
-
Specification