IP Library Granted Patent US 7,424,036
Granted Patent B1
US 7,424,036 · App. 10/227,453 · Granted Sep 9, 2008

Efficient virtual concatenation datapath for SONET/SDH

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 7,424,036
App. No.
10/227,453
Granted
Sep 9, 2008
Kind
B1
Abstract

The present invention is a SONET payload processing system capable of handling virtual concatenation of SONET payloads. The payload processing system enables combinations of sub-frames, comprising an arbitrary number of virtual concatenation data streams, to be multiplexed into a single SONET frame stream. The present invention further provides a processing system that is not limited by the number of sub-frames or the grouping arrangement. The payload processing system accepts both virtual concatenation and contiguous concatenation within the same SONET frame stream and processes them into blocks of data that do not intermix information from different channels.

Claims (76)

1. A method of mapping discrete data units sequentially located within a mapper input data word onto predetermined discrete data units non-sequentially located within a mapper output data word based on a specific index, the method including the steps of:

accepting the discrete data units within the mapper input data word;

shifting each of the discrete data units within the mapper input data word by a shift amount, the shift amount being based on the specific index value associated with the mapper input data word accepted in the accepting step;

generating an address associated with each of the discrete data units, and shifting the address using the same shift amount as the discrete data unit; and

storing as the mapper output data word the set of discrete data units shifted in the shifting step,

the shift amount for each of the discrete data units within the mapper input data word being determined by the equations:

(N*i) mod D, for (N*i)>D

( N*i ), for ( N*i )<= D

where N is the specific index, i is the index of the discrete data unit in the mapper input data word, and D is the total number of the discrete data units in the mapper output data word, such that if one of the discrete data units maps onto a position within the mapper output data word that has been previously mapped, the data unit is instead mapped onto a next sequentially available output position.

2. The method as claimed in claim 1 , further including processing of a plurality of data streams, each data stream including a plurality of discrete data units, each data unit including a portion of a data sub-frame, each data sub-frame including a portion of a data frame, and the method further including the steps of:

receiving the plurality of data streams, and

reordering the discrete data units contained in the data streams according to the data sub-frames to form the mapper input data words, such that each of the mapper input data words contains discrete data units from only one of the data sub-frames.

3. The method as claimed in claim 2 , further including the step of producing index-shifted mapper output data words, by shifting each of the mapper output data words by a shift amount equal to the index of the data sub-frame of which the mapper output data word forms a part.

4. The method as claimed in claim 3 , further including the step of accumulating the index-shifted mapper output data words within an accumulation buffer.

5. The method as claimed in claim 4 , wherein the data frames are SONET/SDH frames.

6. The method as claimed in claim 5 , wherein the data sub-frames are virtually concatenated or contiguously concatenated.

7. The method as claimed in claim 4 , further including the step of removing gaps in the accumulated data words.

8. The method as claimed in claim 7 , wherein the data frames are SONET/SDH frames.

9. The method as claimed in claim 8 , wherein the data sub-frames are virtually concatenated or contiguously concatenated.

10. The method as claimed in claim 3 , further including the step of time-shifting and aligning the mapper input data words to compensate for differential time delays imposed upon the data sub-frame from which the mapper input data words are drawn.

11. The method as claimed in claim 10 , wherein the data frames are SONET/SDH frames.

12. The method as claimed in claim 11 , wherein the data sub-frames are virtually concatenated or contiguously concatenated.

13. A method of forming a data frame, each data frame including a plurality of data sub-frames, each data sub-frame having a plurality of discrete data units, each data unit being associated with a particular one of a plurality of data streams, the method comprising the steps of:

receiving the plurality of data streams;

forming the discrete data units comprising the data streams into mapper input data words;

mapping discrete data units sequentially located within a mapper input data word onto predetermined discrete data units non-sequentially located within a mapper output data word based on a specific index; and

reordering the mapper output data words according to the data sub-frames in order to form the data frames,

wherein the step of mapping includes:

accepting the discrete data units within the mapper input data words;

shifting each of the discrete data units within the mapper input data words by a shift amount the shift amount being based on the specific index value associated with the mapper input data words; and

storing as the mapper output data word the shifted set of discrete data units, and

wherein the shift amount for each of the discrete data units within the mapper input data word is determined by the equations:

(N*i) mod D, for (N*i)>D

( N*i ), for ( N*i )<= D

where N is the specific index, i is the index of the discrete data unit in the mapper input data word, and D is the total number of the discrete data units in the mapper output data word, such that if one of the discrete data units maps onto a position within the mapper output data word that has been previously mapped, the data unit is instead mapped onto a next sequentially available output position.

14. The method as claimed in claim 13 , further including the step of inserting overhead information into each of the plurality of sub-frames.

15. An apparatus for mapping discrete data units sequentially located within a mapper input data word onto predetermined discrete data units non-sequentially located within a mapper output data word based on a specific index, the apparatus comprising:

an input means for accepting the discrete data units within the mapper input data word;

a shifting means for shifting each of the discrete data units within the mapper input data word by a shift amount, the shift amount being based on the specific index value associated with the mapper input data word;

a means for generating an address associated with each of the discrete data units, and a means for shifting the address using the same shift amount as the discrete data unit; and

an output register means for storing a mapper output data word from the shifting means,

the shift amount for each of the discrete data units within the mapper input data word being determined by the equations:

(N*i) mod D, for (N*i)>D

( N*i ), for ( N*i )<= D

where N is the specific index, i is the index of the discrete data unit in the mapper input data word, and D is the total number of the discrete data units in the mapper output data word, such that if one of the discrete data units maps onto a position within the mapper output data word that has been previously mapped, the data unit is instead mapped onto a next sequentially available output position.

16. The apparatus as claimed in claim 15 , further including processing of a plurality of data streams, each data stream including a plurality of discrete data units, each data unit including a portion of a data sub-frame, each data sub-frame including a portion of a data frame, and the apparatus further including:

a means for receiving the plurality of data streams, and

a means for reordering the discrete data units contained in the data streams according to the data sub-frames to form the mapper input data words, such that each of the mapper input data words contains discrete data units from only one of the data sub-frames.

17. The apparatus as claimed in claim 16 , further including a means for producing index-shifted mapper output data words by shifting each of the mapper output data words by a shift amount equal to the index of the data sub-frame of which the mapper output data word forms a part.

18. The apparatus as claimed in claim 17 , further including a means for accumulating the index-shifted mapper output data words within an accumulation buffer.

19. The apparatus as claimed in claim 18 , wherein the data frames are SONET/SDH frames.

20. The apparatus as claimed in claim 19 , wherein the data sub-frames are virtually concatenated or contiguously concatenated.

21. The apparatus as claimed in claim 18 , further including a packer and an output First-In-First-Out buffer means, whereby gaps in the accumulated data are removable.

22. The apparatus as claimed in claim 21 , wherein the data frames are SONET/SDH frames.

23. The apparatus as claimed in claim 22 , wherein the data sub-frames are virtually concatenated or contiguously concatenated.

24. The apparatus as claimed in claim 18 , further including a plurality of said accumulation buffers, wherein each accumulation buffer is used to accumulate data from the index-shifted mapper output data words corresponding to a specific plurality of said data sub-frames.

25. The apparatus as claimed in claim 24 , further including a packer means and a plurality of output First-In-First-Out buffer means, each of the output First-In-First-Out buffer means being associated with the specific plurality of the data sub-frames, whereby gaps in the accumulated data are removable.

26. The apparatus as claimed in claim 25 , wherein the data frames are SONET/SDH frames.

27. The apparatus as claimed in claim 26 , wherein the data sub-frames are virtually concatenated or contiguously concatenated.

28. The apparatus as claimed in claim 17 , further including a means for time-shifting and aligning the mapper input data words to compensate for differential time delays imposed upon the data sub-frame from which the mapper input data words are drawn.

29. The apparatus as claimed in claim 28 , wherein the data frames are SONET/SDH frames.

30. The apparatus as claimed in claim 29 , wherein the data sub-frames are virtually concatenated or contiguously concatenated.

31. An apparatus for forming a data frame, each data frame including a plurality of data sub-frames, each data sub-frame having a plurality of discrete data units, each data unit being associated with a particular one of a plurality of data streams, the apparatus comprising:

a means for receiving the plurality of data streams;

a means for forming the discrete data units comprising the data streams into mapper input data words;

a means for mapping discrete data units sequentially located within a mapper input data word onto predetermined discrete data units non-sequentially located within a mapper output data word based on a specific index; and

a means for reordering the mapper output data words according to the data sub-frames in order to form the data frames,

wherein the means for mapping includes,

a means for accepting the discrete data units within the mapper input data words,

a means for shifting each of the discrete data units within the mapper input data words by a shift amount, the shift amount being based on the specific index value associated with the mapper input data words, and

a means for storing as the mapper output data word the shifted set of discrete data units, and

wherein the shift amount for each of the discrete data units within the mapper input data word is determined by the equations:

(N*i) mod D, for (N*i)>D

( N*i ), for ( N*i )<= D

where N is the specific index, i is the index of the discrete data unit in the mapper input data word, and D is the total number of the discrete data units in the mapper output data word, such that if one of the discrete data units maps onto a position within the mapper output data word that has been previously mapped, the data unit is instead mapped onto a next sequentially available output position.

32. The apparatus as claimed in claim 31 , further including a means for inserting overhead information into each of the plurality of sub-frames.

Assignments (10)
RELEASE OF SECURITY INTEREST Recorded Mar 9, 2022
From: WELLS FARGO BANK, NATIONAL ASSOCIATION, AS NOTES COLLATERAL AGENT
To: MICROCHIP TECHNOLOGY INCORPORATED; SILICON STORAGE TECHNOLOGY, INC.; ATMEL CORPORATION; MICROSEMI CORPORATION; MICROSEMI STORAGE SOLUTIONS, INC.
Reel/Frame 059358/0001 →
RELEASE OF SECURITY INTEREST Recorded Feb 25, 2022
From: JPMORGAN CHASE BANK, N.A., AS ADMINISTRATIVE AGENT
To: MICROCHIP TECHNOLOGY INCORPORATED; SILICON STORAGE TECHNOLOGY, INC.; ATMEL CORPORATION; MICROSEMI CORPORATION; MICROSEMI STORAGE SOLUTIONS, INC.
Reel/Frame 059333/0222 →
SECURITY INTEREST Recorded Sep 18, 2018
From: MICROCHIP TECHNOLOGY INCORPORATED; SILICON STORAGE TECHNOLOGY, INC.; ATMEL CORPORATION; MICROSEMI CORPORATION; MICROSEMI STORAGE SOLUTIONS, INC.
To: WELLS FARGO BANK, NATIONAL ASSOCIATION, AS NOTES COLLATERAL AGENT
Reel/Frame 047103/0206 →
SECURITY INTEREST Recorded Jun 25, 2018
From: MICROCHIP TECHNOLOGY INCORPORATED; SILICON STORAGE TECHNOLOGY, INC.; ATMEL CORPORATION; MICROSEMI CORPORATION; MICROSEMI STORAGE SOLUTIONS, INC.
To: JPMORGAN CHASE BANK, N.A., AS ADMINISTRATIVE AGENT
Reel/Frame 046426/0001 →
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 →
CHANGE OF NAME Recorded Mar 22, 2016
From: PMC-SIERRA, INC.
To: MICROSEMI STORAGE SOLUTIONS, INC.
Reel/Frame 038067/0428 →
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 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 3, 2002
From: ALEXANDER, THOMAS; WONG, DAVID; KIMBROW, JAMES WHITNEY
To: PMC SIERRA, INC.
Reel/Frame 013549/0467 →