Method and apparatus for detecting impending overflow and/or underrun of elasticity buffer
First Claim
1. A parallel asynchronous elasticity buffer in a repeater node for transferring data in a data communication system, the data communication system including a plurality of nodes coupled in a network for transferring frames of data from a source node to a destination node through the repeater node, wherein the repeater node receives a plurality of bits of data in a frame from an upstream node and transmits the plurality of bits of data in the frame to a downstream node, and wherein each node in the network transmits data in synchronism with an independent clock, the elasticity buffer comprising:
- receiving means for providing in parallel format, in response to a transmit multibit clock signal that is in synchronism with an independent clock of the upstream node, a multibit data unit received from the upstream node;
storage means including a fixed number of multibit storage elements, coupled to the receiving means, for storing the multibit data unit in parallel format in one of the storage elements, wherein each storage element has a unique address;
transmitting means, coupled to the storage means, for outputting in parallel format, in response to a local multibit clock signal that is in synchronism with the independent clock of the repeater node, one of the multibit data units stored in the storage means;
write pointer means, coupled to the storage means, for selecting as a write address the address of a storage element to store the next multibit data unit provided by the receiving means;
read pointer means, coupled to the storage means, for selecting as a read address the address of a storage element to provide the next multibit data unit output by the transmitting means, wherein each multibit data unit is output in first-in, first-out order;
initialization means for initializing the elasticity buffer to prevent simultaneous selection of the same address as a read address and a write address, wherein in response to initialization, a write address is selected as a read address after a predetermined delay; and
detection means for detecting whether an error condition corresponding to a write overflow or read underrun of a storage element is impending by determining whether the same address is selected as the write address and as the read address during an overlap time period having a duration equal to a threshold time period.
5 Assignments
0 Petitions
Accused Products
Abstract
A parallel asynchronous elasticity buffer. Selection of the address of a storage element for writing or reading of data is provided by asynchronous input and output pointers implemented using circular gray code counters. The buffer is initialized once during transmission of each frame of data so that the pointers do not select the same storage element for writing and reading at the same time. Write overflow or read underrun of a storage element is detected before any data corruption can occur by comparing the input and output pointers. An error condition is detected if the input and output pointers overlap for a threshold period, which can be shorter than the period required for writing or reading of a multibit data unit to or from the buffer. The overlap time period is determined by comparing the pointers at one or more sampling times corresponding to selected phases of a clock signal.
-
Citations
88 Claims
-
1. A parallel asynchronous elasticity buffer in a repeater node for transferring data in a data communication system, the data communication system including a plurality of nodes coupled in a network for transferring frames of data from a source node to a destination node through the repeater node, wherein the repeater node receives a plurality of bits of data in a frame from an upstream node and transmits the plurality of bits of data in the frame to a downstream node, and wherein each node in the network transmits data in synchronism with an independent clock, the elasticity buffer comprising:
-
receiving means for providing in parallel format, in response to a transmit multibit clock signal that is in synchronism with an independent clock of the upstream node, a multibit data unit received from the upstream node; storage means including a fixed number of multibit storage elements, coupled to the receiving means, for storing the multibit data unit in parallel format in one of the storage elements, wherein each storage element has a unique address; transmitting means, coupled to the storage means, for outputting in parallel format, in response to a local multibit clock signal that is in synchronism with the independent clock of the repeater node, one of the multibit data units stored in the storage means; write pointer means, coupled to the storage means, for selecting as a write address the address of a storage element to store the next multibit data unit provided by the receiving means; read pointer means, coupled to the storage means, for selecting as a read address the address of a storage element to provide the next multibit data unit output by the transmitting means, wherein each multibit data unit is output in first-in, first-out order; initialization means for initializing the elasticity buffer to prevent simultaneous selection of the same address as a read address and a write address, wherein in response to initialization, a write address is selected as a read address after a predetermined delay; and detection means for detecting whether an error condition corresponding to a write overflow or read underrun of a storage element is impending by determining whether the same address is selected as the write address and as the read address during an overlap time period having a duration equal to a threshold time period. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61)
-
-
62. A method for transferring data in a data communication system via a repeater node having a parallel asynchronous elasticity buffer, the elasticity buffer including storage means having a fixed number of multibit storage elements, each storage element having a unique address, and the data communication system including a plurality of nodes coupled in a network for transferring frames of data from a source node to a destination node through the repeater node, wherein the repeater node receives a plurality of bits of data in a frame from an upstream node and transmits the plurality of bits of data in the frame to a downstream node, and wherein each node in the network transmits data in synchronism with an independent clock, the method comprising the following steps performed by the repeater node:
-
providing in parallel format to the storage means, in response to a transmit multibit clock signal that is in synchronism with an independent clock of the upstream node, a multibit data unit received from the upstream node; storing the multibit data unit in parallel format in one of the storage elements; outputting in parallel format from the storage means, in response to a local multibit clock signal that is in synchronism with the independent clock of the repeater node, one of the multibit data units stored in the storage means; selecting as a write address the address of a storage element to store the next multibit data unit provided to the storage means; selecting as a read address the address of a storage element to provide the next multibit data unit output by the storage means, wherein each multibit data unit is output in first-in, first-out order; initializing the elasticity buffer to prevent simultaneous selection of the same address as a read address and a write address, wherein in response to initialization, a write address is selected as a read address after a predetermined delay; and detecting whether an error condition corresponding to a write overflow or read underrun of a storage element is impending by determining whether the same address is selected as the write address and as the read address during an overlap time period having a duration equal to a threshold time period. - View Dependent Claims (63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88)
-
Specification