Configurable serial interconnection
AssigneeCisco Technology, Inc.
InventorsJean-Yves Ouellet, Leonid Goldin
Life of this patent
Estimating the term…
Abstract
A configurable interconnect for use with high-speed electronic system components. The interconnect uses a lightweight protocol with control characters embedded into the data stream. The control characters define events such as end of packet, end of packet with error, transmit on, transmit off, synchronizing codes, and pass-through status. In one described embodiment, the protocol is used in an internetworking device node in which a pair of high-speed counter rotating rings transport data packets. The high-speed interconnect permits data packets to pass through the node without the delays which might otherwise be experienced with time division multiplex bus structures and the like.
Claims35
An interconnect for transporting, within a network node, data between a primary circuit component and a secondary circuit component, the interconnect comprising:
- (a) a primary to_mate transmitter, including a buffer for storing data to be transmitted over the interconnect, and a transmit controller for controlling the insertion of control characters into the data to be transmitted;
- (b) a primary from_mate receiver, including a buffer for storing received data, and a receive controller for interpreting control characters inserted into the data;
- (c) a secondary to_mate transmitter, including a buffer for storing data to be transmitted over the interconnect, and a transmit controller for controlling the insertion of control characters into the data stream to be transmitted;
- (d) a secondary from_mate receiver, including a buffer for storing received data, and a receive controller, for interpreting the control characters inserted into the data;
- (e) a first link for communicating data between the primary to_mate transmitter and the secondary from_mate receiver;
- (f) a second link for communicating data between the secondary to_mate transmitter and the primary from_mate receiver, the second link operating distinctly from the first link such that data may be transmitted at the same time over the first link and the second link;
- (g) whereby the transmit controller in the primary to_mate transmitter is connected with the receive controller in the primary from_mate receiver, and the transmit controller in the secondary to_mate transmitter is connected with the receive controller in the secondary from_mate receiver, such that when a receive controller in the respective from_mate receiver detects that the fill level of the receive buffer is above a threshold, the corresponding to_mate transmit controller inserts a transmit off (XOFF) control character in the data, and when the receive controller in the respective from_mate receiver detects a transmit off (XOFF), the corresponding to_mate transmitter stops transmitting data;
- and
- (h) whereby the transmit controller in the primary to_mate transmitter is connected with the receive controller in the primary from_mate receiver, and the transmit controller in the secondary to_mate transmitter is connected with the receive controller in the secondary from_mate receiver, such that when the receive controller in the respective from_mate receiver detects that the fill level of the receive buffer is below a threshold, the corresponding to_mate transmit controller inserts a transmit on (XON) control character, and when the receive controller in the respective from_mate receiver detects a XON control character, the corresponding to_mate transmitter is enabled to transmit data.
An interconnect for transporting data between a primary circuit component and a secondary circuit component, the interconnect comprising:
- (a) a primary to_mate transmitter, including a buffer for storing data to be transmitted over the interconnect, and a transmit controller for controlling the insertion of control characters into the data to be transmitted;
- (b) a primary from_mate receiver, including a buffer for storing received data, and a receive controller for interpreting control characters inserted into the data;
- (c) a secondary to_mate transmitter, including a buffer for storing data to be transmitted over the interconnect, and a transmit controller for controlling the insertion of control characters into the data stream to be transmitted;
- (d) a secondary from_mate receiver, including a buffer for storing received data, and a receive controller, for interpreting the control characters inserted into the data;
- (e) a first link for communicating data between the primary to_mate transmitter and the secondary from_mate receiver;
- (f) a second link for communicating data between the secondary to_mate transmitter and the primary from_mate receiver, the second link operating distinctly from the first link such that data may be transmitted at the same time over the first link and the second link;
- (g) whereby the transmit controller in the primary to_mate transmitter is connected with the receive controller in the primary from_mate receiver, and the transmit controller in the secondary to_mate transmitter is connected with the receive controller in the secondary from_mate receiver, such that when a receive controller in the respective from_mate receiver detects that the fill level of the receive buffer is above a threshold, the corresponding to_mate transmit controller inserts a transmit off (XOFF) control character in the data, and when the receive controller in the respective from_mate receiver detects a transmit off (XOFF), the corresponding to_mate transmitter stops transmitting data;
- (h) whereby the transmit controller in the primary to_mate transmitter is connected with the receive controller in the primary from_mate receiver, and the transmit controller in the secondary to_mate transmitter is connected with the receive controller in the secondary from_mate receiver, such that when the receive controller in the respective from_mate receiver detects that the fill level of the receive buffer is below a threshold, the corresponding to_mate transmit controller inserts a transmit on (XON) control character, and when the receive controller in the respective from_mate receiver detects a XON control character, the corresponding to_mate transmitter is enabled to transmit data;
- and
- (i) the primary to_mate transmitter is connected to the secondary from_mate receiver to permit data to be passed through between them, and the secondary to-mate transmitter is connected to the primary from_mate receiver to permit data to be passed through between them, and wherein the pass-through connection status information is encoded into an end of packet control character.
An apparatus for transporting data between a first internetworking device and a second internetworking device, comprising:
- a pair of ring connections for coupling the first and second internetworking devices together, such that data packets travel along an outer ring direction from the first internetworking device to the second internetworking device, and such that data packets also travel along an inner ring direction from the second internetworking device to the first internetworking device;
- first and second ring access controls, associated with each of the first and second internetworking devices, each ring access controller for receiving data from a respective one internetworking device on a respective ring, and for transmitting data from the internetworking device onto the other ring, the ring access controllers also for connecting pass-through data packets along a pair of forwarding paths, the forwarding paths including an outer forwarding path for forwarding pass-through data packets received from an outer ring input connection serviced by the first ring access controller to an outer ring output connection serviced by the second ring access controller, and the forwarding paths also including an inner forwarding path for forwarding pass-through data packets receiving from an inner ring input connection serviced by the second ring access controller to an inner ring transmit connection serviced by the first ring access controller;
- and
- wherein each of the ring access controls embeds control characters in the data packets transmitted over the inner forward path and the outer forward path, the control characters indicating pass-through control information for the respective data packet in the same control character as used for synchronization.
An apparatus for transporting data between a first internetworking device and a second internetworking device, comprising:
- a pair of ring connections for coupling the first and second internetworking devices together, such that data packets travel along an outer ring direction from the first internetworking device to the second internetworking device, and such that data packets also travel along an inner ring direction from the second internetworking device to the first internetworking device;
- first and second ring access controls, associated with each of the first and second internetworking devices, each ring access controller for receiving data from a respective one internetworking device on a respective ring, and for transmitting data from the internetworking device onto the other ring, the ring access controllers also for connecting pass-through data packets along a pair of forwarding paths, the forwarding paths including an outer forwarding path for forwarding pass-through data packets received from an outer ring input connection serviced by the first ring access controller to an outer ring output connection serviced by the second ring access controller, and the forwarding paths also including an inner forwarding path for forwarding pass-through data packets receiving from an inner ring input connection serviced by the second ring access controller to an inner ring transmit connection serviced by the first ring access controller;
- and
- wherein each of the ring access controls embed control characters in the data packets transmitted over the inner forward path and the outer forward path, an end of packet control character indicating pass-through control information for the respective data packet and being used for synchronization.
A method for transporting data across an interconnect between a primary circuit component and a secondary circuit component, the method comprising:
- (a) in a primary to_mate transmitter,
- storing, in a buffer, data to be transmitted over the interconnect, and
- controlling, in a transmit controller, the insertion of control characters into the data to be transmitted;
- (b) in a primary from_mate receiver,
- storing, in a buffer, received data, and
- interpreting, in a receive controller, control characters inserted into said received data;
- (c) in a secondary to_mate transmitter,
- storing, in a buffer, data to be transmitted over the interconnect, and
- controlling, in a transmit controller, the insertion of control characters into the data stream to be transmitted;
- (d) in a secondary from_mate receiver,
- storing, in a buffer, received data, and
- interpreting, in a receive controller, control characters inserted into said received data;
- (e) communicating, over a first link, data between the primary to_mate transmitter and the secondary from_mate receiver;
- (f) communicating, over a second link, data between the secondary to_mate transmitter and the primary from_mate receiver, the second link operating distinctly from the first link such that data may be transmitted at the same time over the first link and the second link;
- (g) whereby the transmit controller in the primary to_mate transmitter is connected with the receive controller in the primary from_mate receiver, and the transmit controller in the secondary to_mate transmitter is connected with the receive controller in the secondary from_mate receiver, the method further comprising:
- detecting, in a receive controller in the respective from_mate receiver, when the fill level of the receive buffer is above a threshold,
- upon said detection, inserting, in the corresponding to_mate transmit controller, a transmit off (XOFF) control character in the data,
- detecting, in the receive controller in the respective from_mate receiver, a transmit off (XOFF), and
- upon said XOFF detection, stopping, in the corresponding to_mate transmitter, transmission of data;
- (h) whereby the transmit controller in the primary to_mate transmitter is connected with the receive controller in the primary from_mate receiver, and the transmit controller in the secondary to_mate transmitter is connected with the receive controller in the secondary from_mate receiver, the method further comprising:
- detecting, in the receive controller in the respective from_mate receiver, when the fill level of the receive buffer is below a threshold,
- upon said detecting, inserting, in the corresponding to_mate transmit controller, a transmit on (XON) control character,
- detecting, in the receive controller in the respective from_mate receiver, a XON control character, and
- enabling, in the corresponding to_mate transmitter, transmission of data;
- and
- (i) whereby the primary to_mate transmitter is connected to the secondary from_mate receiver to permit data to be passed through between them, and the secondary to_mate transmitter is connected to the primary from_mate receiver to permit data to be passed through between them, the method further comprising:
- encoding the pass-through connection status information into an end of packet control character.
A method for transporting data between a first internetworking device and a second internetworking device, wherein a pair of ring connections couple the first and second internetworking devices together, such that data packets travel along an outer ring direction from the first internetworking device to the second internetworking device, and such that data packets also travel along an inner ring direction from the second internetworking device to the first internetworking device, the method comprising:
- in each of first and second ring access controllers associated with each of first and second internetworking devices,
- receiving data from a respective one internetworking device on a respective ring, and
- transmitting data from the internetworking device onto the other ring,
- the ring access controllers connecting pass-through data packets along a pair of forwarding paths, the forwarding paths including an outer forwarding path for forwarding pass-through data packets received from an outer ring input connection serviced by the first ring access controller to an outer ring output connection serviced by the second ring access controller, and the forwarding paths also including an inner forwarding path for forwarding pass-through data packets receiving from an inner ring input connection serviced by the second ring access controller to an inner ring transmit connection serviced by the first ring access controller;
- and
- each of the ring access controls embedding control characters in the data packets transmitted over the inner forward path and the outer forward path, an end of packet control character indicating pass-through control information for the respective data packet and being used for synchronization.
Dependencies are inferred from the claim text.