US10009214B1ActiveUtility

Multiplexers with protection switching

92
Assignee: INPHI CORPPriority: Aug 9, 2017Filed: Aug 9, 2017Granted: Jun 26, 2018
Est. expiryAug 9, 2037(~11.1 yrs left)· nominal 20-yr term from priority
H04L 43/0847H04W 28/06H04L 1/22H04L 41/12H04L 12/427H04L 12/40176H04W 28/04G06F 11/2007H04L 29/08H04L 65/40
92
PatentIndex Score
11
Cited by
1
References
20
Claims

Abstract

The present invention is directed to data communication. In certain embodiments, the present invention provides switching mechanism for choosing between redundant communication links. Data received from a first set of communication links are processed to have alignment markers removed, and first figure of merit value is determined based on the data without alignment markers. Similarly, a second figure of merit value is determined for the data received from the second set of communication links. A switch selects between the first set of communication links and the second set of communication links based on their respective figure of merit values. Alignment markers are inserted into the data transmitted through the selected set of data links. There are other embodiments as well.

Claims

exact text as granted — not AI-modified
What is claimed is: 
     
       1. A communication device comprising:
 a first input port configured to receive a first plurality of data streams from a first plurality of data lanes, the first plurality of data lanes comprising n data lanes, n being greater than 1; 
 a second input port configured to receive a second plurality of data streams from a second plurality of data lanes; 
 a first forward error correction (FEC) module configured to decode the first plurality of data streams; 
 a second FEC module configured to decode the second plurality of data streams; 
 a first alignment marker (AM) removing module configured to remove AMs from the first plurality of data streams to generate a third plurality of data streams; 
 a second AM removing module configured to remove AMs from the second plurality of data streams to generate a fourth plurality of data streams; 
 a first monitoring module configured to determine a first coding error amount associated with the third plurality of data streams; 
 a second monitoring module configured to determine a second coding error amount associated with the fourth plurality of data streams; 
 a first figure of merit (FOM) module configured to calculate a first FOM value based the first coding error amount and/or output from the first FEC; 
 a second FOM module configured to calculate a second FOM value based on the second coding error amount and/or output from the second FEC; 
 a switch configured to output a fifth plurality of data streams selected between the third plurality of data streams and the fourth plurality of data streams based at least on the first FOM value and the second FOM value; and 
 an AM insertion module configured to insert AMs into the fifth plurality of data streams. 
 
     
     
       2. The device of  claim 1  wherein the first plurality of data lanes and the second plurality of data lanes are configured as redundant data links. 
     
     
       3. The device of  claim 1  further comprising an AM buffer for storing codewords embedded within the fifth plurality of data streams. 
     
     
       4. The device of  claim 1  further comprising an FEC encoding module for encoding the fifth plurality of data streams with AMs. 
     
     
       5. The device of  claim 1  further comprising a transcoding module for transcoding the fifth plurality of data streams with AMs. 
     
     
       6. The device of  claim 1  further comprising a multiplexing module for distributing the fifth plurality of data streams into n output data lanes. 
     
     
       7. The device of  claim 1  wherein n is 2, 4, 8, 16, 32, or 64. 
     
     
       8. The device of  claim 1  wherein the first FEC module is configured to performing Reed Solomon (RS) FEC. 
     
     
       9. A method for switching between data paths, the method comprising;
 receiving a first plurality of data streams from a first plurality of n data lanes, n being greater than 1; 
 receiving a second plurality of data streams from a second plurality of n data lanes; 
 performing FEC decoding on the first plurality of data streams; 
 performing FEC decoding on the second plurality of data streams; 
 generating a third plurality of data streams by removing AMs from the first plurality of data streams; 
 generating a fourth plurality of data streams by removing AMs from the second plurality of data streams; 
 determining a first FOM value for the third plurality of data streams; 
 determining a second FOM value for the fourth plurality of data streams; 
 generating a fifth plurality of data streams by selecting between the third plurality of data streams and the fourth plurality of data streams based on at least the first FOM value and the second FOM value; and 
 generating a sixth plurality of data streams by inserting AMs into the fifth plurality of data streams. 
 
     
     
       10. The method of  claim 9  wherein the first plurality of data streams and the second plurality of data streams are received from a same data source. 
     
     
       11. The method of  claim 9  further comprising buffering the fifth plurality of data streams. 
     
     
       12. The method of  claim 9  further comprising performing FEC encoding on the sixth plurality of data streams. 
     
     
       13. The method of  claim 9  further comprising generating an output data stream by transcoding the sixth plurality of data streams. 
     
     
       14. The method of  claim 9  further comprising distributing the sixth plurality of data streams in to n output data lanes. 
     
     
       15. The method of  claim 9  further comprising scrambling the sixth plurality of data streams. 
     
     
       16. The method of  claim 9  further comprising inserting parity bits into the sixth plurality of data streams. 
     
     
       17. The method of  claim 9  further comprising descrambling the third plurality of data streams. 
     
     
       18. The method of  claim 9  further comprising initiating a switching process if a predetermined number of windows includes uncorrected FEC frames. 
     
     
       19. A SerDes system comprising:
 a first SerDes device having a first plurality of data lanes and a second plurality of data lanes; 
 a first input port configured to receive a first plurality of data streams from the first plurality of data lanes, the first plurality of data lanes comprising n data lanes, n being greater than 1; 
 a second input port configured to receive a second plurality of data streams from the second plurality of data lanes; 
 a first alignment marker (AM) removing module configured to remove AMs from the first plurality of data streams to generate a third plurality of data streams; 
 a second AM removing module configured to remove AMs from the second plurality of data streams to generate a fourth plurality of data streams; 
 a first monitoring module configured to determine a first coding error amount associated with the third plurality of data streams; 
 a second monitoring module configured to determine a second coding error amount associated with the fourth plurality of data streams; 
 a first figure of merit (FOM) module configured to calculate a first FOM value based at least on the first coding error amount; 
 a second FOM module configured to calculate a second FOM value based at least on the second coding error amount; 
 a switch configured to output a fifth plurality of data streams selected between the third plurality of data streams and the fourth plurality of data streams based at least on the first FOM value and the second FOM value; and 
 an AM insertion module configured to insert AMs into the fifth plurality of data streams. 
 
     
     
       20. The SerDes system of  claim 19  further comprising a second SerDes device for processing the fifth plurality of data streams.

Cited by (0)

No later patents cite this yet.

References (0)

No backward citations on record.