IP Library Granted Patent US 8,161,210
Granted Patent B1
US 8,161,210 · App. 12/264,158 · Granted Apr 17, 2012

Multi-queue system and method for deskewing symbols in data streams

View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 8,161,210
App. No.
12/264,158
Granted
Apr 17, 2012
Kind
B1
Abstract

A communication system includes a transmitter that transmits multiple data streams to a receiver in the communication system. Each of the data streams includes data and a skip ordered set. The receiver includes a deskew unit for each data stream, each of which includes multiple data queues. Each of the deskew units stores symbols of the data stream received by the deskew unit into the data queues of the data unit by distributing the symbols among the data queues. The deskew unit aligns data symbols across the data streams by deskewing symbols stored in the data queues of the deskew units based on skip ordered sets in the deskew units. Moreover, the receiver may deskew more than one symbol per clock cycle.

Claims (27)

1. A deskew module for aligning data symbols in a plurality of data streams each comprising a plurality of symbols including data symbols and a skip ordered set comprising a number of symbols, the deskew module comprising:

a plurality of deskew units each corresponding to a respective data lane of a plurality of data lanes, each deskew unit of the plurality of deskew units comprising a plurality of data queues and configured to receive symbols of a corresponding data stream of the plurality of data streams from the data lane corresponding to the deskew unit, wherein the data queues of the plurality of data queues in each deskew unit of the plurality of deskew units are separate and distinct from each other;

a controller coupled to the plurality of deskew units and configured to write symbols of the data stream corresponding to each deskew unit into the plurality of data queues of the deskew unit by distributing symbols of the corresponding data stream among the plurality of data queues of the deskew unit, the controller further configured to deskew data symbols stored in the plurality of data queues of the plurality of deskew units based on the skip ordered sets; and

a compensation module configured to replace a skip ordered set of a data stream in the plurality of data streams with a minimal skip ordered set by deleting each symbol of the skip ordered set from the data stream and generating a tag indicating a location of the minimal skip ordered set in the data stream;

wherein a deskew unit of the plurality of deskew units is further configured to selectively insert a symbol into a skip ordered set of the data stream corresponding to deskew unit without storing the inserted symbol into the plurality of data queues of the deskew unit and output the inserted symbol from the deskew unit.

2. The deskew module of claim 1 , wherein the plurality of data queues in each deskew unit comprises a first data queue and a second data queue, and the controller is further configured to distribute symbols of the corresponding data stream among the plurality of data queues of the deskew unit by writing symbols of the corresponding data stream alternatively into the first data queue and the second data queue of the deskew unit.

3. The deskew module of claim 1 , where each deskew unit of the plurality of deskew units further comprises a symbol output module configured to receive symbols of the data stream corresponding to the deskew unit from the plurality of data queues of the deskew unit and output the received symbols from the deskew unit in the same order in which the deskew unit received the symbols of the corresponding data stream.

4. The deskew module of claim 1 , wherein the deskew module is configurable into a first configuration for deskewing data symbols of the plurality of data streams at a first data rate or a second configuration for deskewing data symbols of the plurality of data streams at a second data rate.

5. The deskew module of claim 4 , wherein the first data rate is a gen-1 serdes data rate and the second data rate gen-2 serdes data rate.

6. A system comprising:

a compensation module configured to receive a plurality of data streams each having a data rate and comprising a plurality of symbols including data symbols and a skip ordered set comprising a number of symbols, the compensation module further configured to selectively modify the number of symbols in the skip ordered sets of the plurality of data streams to compensate for differences in the data rates of the data streams in the plurality of data streams by replacing a skip ordered set of a data stream in the plurality of data streams with a minimal skip ordered set by deleting each symbol of the skip ordered set from the data stream and generating a tag indicating a location of the minimal skip ordered set in the data stream; and

a deskew module coupled to the compensation module and comprising a plurality of deskew units each corresponding to respective data lane of a plurality of data lanes, each deskew unit of the plurality of deskew units configured to receive symbols of a corresponding data stream of the plurality of data streams from the data lane corresponding to the deskew unit, each deskew unit of the plurality of deskew units comprising a plurality of data queues, wherein the data queues of the plurality of data queues are separate and distinct from each other, the deskew module further configured to write symbols of the data stream corresponding to each deskew unit into the plurality of data queues of the deskew unit by distributing symbols of the corresponding data stream among the plurality of data queues of the deskew unit, and align data symbols across the plurality of data stream by deskewing data symbols stored in the plurality of data queues of the deskew units based on the skip ordered sets, wherein a deskew unit of the plurality of deskew units is further configured to selectively insert a symbol into a skip ordered set of the data stream corresponding to deskew unit without storing the inserted symbol into the plurality of data queues of the deskew unit and output the inserted symbol from the deskew unit.

7. The system of claim 6 , wherein the plurality of data queues in each deskew unit comprises a first data queue and a second data queue and the controller is further configured to distribute symbols of the corresponding data stream among the plurality of data queues of the deskew unit by writing symbols of the corresponding data stream alternatively into the first data queue and the second data queue of the deskew unit.

8. The system of claim 7 , wherein each deskew unit of the plurality of deskew units further comprises a symbol output module configured to receive symbols of the data stream corresponding to the deskew unit from the first data queue and the second data queue of the deskew unit and output the received symbols from the deskew unit in the same order in which the deskew unit received the symbols of the corresponding data stream.

9. The system of claim 6 , wherein the deskew module is configurable into a first configuration for deskewing data symbols of the plurality of data streams at a first data rate or a second configuration for deskewing data symbols of the plurality of data streams at a second data rate.

10. The system of claim 9 , wherein the first data rate is a gen-1 serdes data rate and the second data rate gen-2 serdes data rate.

11. A method comprising:

receiving a plurality of data streams from a corresponding plurality of data lanes at a corresponding plurality of deskew units, each data stream of the plurality of data streams comprising a plurality of symbols including data symbols and a skip ordered set comprising a number of symbols;

storing symbols of each data stream of the plurality of data streams into a plurality of data queues corresponding to both the data stream and the data lane corresponding to the data stream by distributing symbols of the corresponding data stream among the plurality of data queues, wherein the data queues of the plurality of data queues are separate and distinct from each other;

aligning data symbols across the plurality of data streams based on the skip ordered sets by deskewing symbols stored in the data queues;

selectively inserting a symbol into a skip ordered set of a data stream without storing the inserted symbol into the data queues corresponding to the data stream; and

replacing a skip ordered set of a data stream in the plurality of data streams with a minimal skip ordered set by deleting each symbol of the skip ordered set from the data stream and generating a tag indicating a location of the minimal skip ordered set in the data stream.

12. The method of claim 11 , wherein each plurality of data queues comprises a first data queue and a second data queue, and storing symbols of each data stream of the plurality of data streams into the plurality of data queues corresponding to the data stream further comprises writing symbols of the data stream alternatively into the first data queue and the second data queue corresponding to the data stream.

13. The method of claim 11 , further comprising:

selecting a data rate from a predetermined plurality of data rates; and

deskewing data symbols of the plurality of data streams stored in the data queues based on the skip ordered sets at the selected data rate.

14. The method of claim 13 , wherein the predetermined plurality of data rates includes a gen-1 serdes data rate and a gen-2 serdes data rate.

Assignments (7)
RELEASE OF SECURITY INTEREST Recorded May 29, 2018
From: MORGAN STANLEY SENIOR FUNDING, INC.
To: MICROSEMI STORAGE SOLUTIONS, INC.; MICROSEMI STORAGE SOLUTIONS (U.S.), INC.
Reel/Frame 046251/0271 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 17, 2016
From: PMC-SIERRA US, INC.
To: MICROSEMI STORAGE SOLUTIONS (US), INC.
Reel/Frame 038016/0493 →
PATENT SECURITY AGREEMENT Recorded Feb 3, 2016
From: MICROSEMI STORAGE SOLUTIONS, INC. (F/K/A PMC-SIERRA, INC.); MICROSEMI STORAGE SOLUTIONS (U.S.), INC. (F/K/A PMC-SIERRA US, INC.)
To: MORGAN STANLEY SENIOR FUNDING, INC.
Reel/Frame 037689/0719 →
RELEASE OF SECURITY INTEREST Recorded Feb 1, 2016
From: BANK OF AMERICA, N.A.
To: PMC-SIERRA, INC.; PMC-SIERRA US, INC.; WINTEGRA, INC.
Reel/Frame 037675/0129 →
SECURITY INTEREST IN PATENTS Recorded Aug 6, 2013
From: PMC-SIERRA, INC.; PMC-SIERRA US, INC.; WINTEGRA, INC.
To: BANK OF AMERICA, N.A.
Reel/Frame 030947/0710 →
CORRECTIVE ASSIGNMENT TO CORRECT THE CONVEYING AND RECEIVING PARTIES PREVIOUSLY RECORDED ON REEL 030832 FRAME 0604. ASSIGNOR(S) HEREBY CONFIRMS THE CONVEYING PARTY DATA: INTEGRATED DEVICE TECHNOLOGY, INC. TECEIVING: PMC-SIERRA US, INC. Recorded Jul 23, 2013
From: INTEGRATED DEVICE TECHNOLOGY, INC.
To: PMC-SIERRA US, INC.
Reel/Frame 030919/0040 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 19, 2013
From: PMC-SIERRA US, INC.
To: INTEGRATED DEVICE TECHNOLOGY, INC.
Reel/Frame 030832/0604 →