Memory-efficient conversion between differing data transport formats of SONET overhead data
In a SONET apparatus, the data flow differences between OC-768 and OC-192 can be exploited to effectuate conversion between OC-768 and OC-192 using as little as 256 bytes of memory.
Latest Exar Corporation Patents:
- AC direct drive system for light emitting diodes with ultra-low flicker, low harmonic distortion, dimming compatibility and power line regulation
- Adaptive body biasing in CMOS circuits to extend the input common mode operating range
- AC direct drive system for light emitting diodes with ultra-low flicker, low harmonic distortion, dimming compatibility and power line regulation
- Adaptive body biasing in CMOS circuits to extend the input common mode operating range
- Digital controlled oscillator based clock generator for multi-channel design
The invention relates generally to time division multiplexed (TDM) data communications and, more particularly, to low rate processing of overhead data carried in data channels of a high rate TDM data stream.
BACKGROUND OF THE INVENTIONIn conventional SONET systems, an OC-768 frame is composed of 4 OC-192 frames that are time division multiplexed 64 bytes at a time. This is illustrated in
Because each of the dual port memories 11 and 15 is required to store the overhead bytes from two entire OC-768 frames, the
Exemplary embodiments of the present invention can, for any given OC-192 channel, exploit the data flow differences between OC-768 and OC-192 to effectuate conversion between OC-768 and OC-192 using as little as 256 bytes of memory.
The 64 byte slices of
A read/write controller 37 receives, from a conventional OC-768 framer 35, conventional timing information including, for example, OC-768 clock signals and frame, row and column start signals. In response to this information, the read/write controller 37 produces write control signals and read control signals for controlling the write and read operations of the dual port memory apparatus 31.
As shown in
During the next clock cycle after the 16th (and final) 4 byte write operation for the current slice of channel 1 has been completed, the first 4 byte write operation for channel 2 begins, and after this first 4 byte write operation for channel 2 has been completed, the process of reading out the channel 2 bytes, one byte at a time, begins, as illustrated in
At the output side of the overhead drop/add channels 13, the output byte stream for channel 2 will trail the output byte stream for channel 1 by 16 clocks, and the stream for channel 3 will trail the stream for channel 2 by 16 clocks, and the stream for channel 4 will trail the stream for channel 3 by 16 clocks. These 16-clock offsets correspond to the 16-clock TDM channel periods shown in
In the example of
After the first 16 bytes (bytes 0-15) of the channel 1 slice are written into the memory apparatus 33, the first byte (byte 0) of the channel 2 slice is written into the memory apparatus 33 simultaneously with the writing of the 17th byte (byte 16) of channel 1, as shown in
The write control signals and read control signals that control the operation of memory apparatus 33 are produced by the read/write controller 37 in response to the aforementioned timing information received from the conventional OC-768 framer 35. These read and write control signals, as well as the read and write control signals for memory 31, are readily produced by logic in controller 37 based on the timing information conventionally available from the OC-768 framer 35.
The foregoing description makes clear that the dual port memories 31 and 33 of
In some exemplary embodiments, one or both of the dual port memories 31 and 33 are implemented as four separate 64×8 bit FIFO memories, one for each channel. If the memory apparatus 33 is implemented by such a FIFO arrangement, then the separate outputs of the separate FIFOs can be input to a selector 39 under control of the add side memory read control signaling from the read/write controller 37. Thus, during a given FIFO's read cycle, that FIFO can be selected for connection to the output register R2. The select input, the data inputs. (corresponding to four separate FIFO outputs), and the output of selector 39 are shown by broken line in
Although exemplary embodiments of the invention are described above in detail, this does not limit the scope of the invention, which can be practiced in a variety of embodiments.
Claims
1. A method of processing overhead data bytes from SONET data frames, comprising:
- receiving during a predetermined period of time a data frame having a first data format, said data frame comprising a plurality of groups of overhead data bytes, each said group carrying overhead information associated only with a respectively corresponding one of a plurality of SONET data frames;
- converting, while said data frame is received, said plurality of groups of overhead data bytes from said first data format into a second data format; and
- said converting step including, for one of said groups, storing a predetermined number of said overhead data bytes thereof respectively into a plurality of storage locations equal in number to said predetermined number at a first data rate;
- said converting step further including obtaining, at a second data rate, said predetermined number of said overhead data bytes from said plurality of storage locations; and
- said converting step further including storing a further said predetermined number of said overhead data bytes of said one group respectively into said plurality of storage locations at said first data rate,
- wherein said first and second data rates are determined such that said overhead data bytes of said one of said groups are concurrently stored into and obtained from said plurality of storage locations during said predetermined period of time.
2. The method of claim 1, wherein said SONET frames are OC-192 frames.
3. The method of claim 1, wherein said first data format is a time division multiplexed data format.
4. The method of claim 3, wherein said SONET frames are OC-192 frames, and wherein said time division multiplexed data format is OC-768.
5. The method of claim 4, wherein said predetermined number is 64.
6. The method of claim 4, wherein, in said second data format, said groups of overhead data bytes that respectively correspond to OC-192 frames are arranged in parallel with one another.
7. The method of claim 3, wherein, in said second data format, said groups of overhead data bytes are arranged in parallel with one another.
8. The method of claim 1, wherein, in said first data format, respective portions of said groups of overhead data bytes are time division multiplexed with one another.
9. The method of claim 8, wherein, each of said portions consists of said predetermined number of bytes.
10. The method of claim 1, wherein, in said second data format, said groups of overhead data bytes are arranged in parallel with one another.
11. The method of claim 1, wherein said converting step includes, for each of the remainder of said groups:
- storing said predetermined number of said overhead data bytes of said group respectively into a plurality of storage locations associated with said group and equal in number to said predetermined number;
- obtaining said predetermined number of said overhead data bytes of said group from the associated storage locations; and
- after said last-mentioned obtaining step, storing a further said predetermined number of said overhead data bytes of said group respectively into the associated storage locations.
12. The method of claim 1, wherein, in said first data format, said groups of overhead data bytes are arranged in parallel with one another.
13. The method of claim 12, wherein, said second data format is a time division multiplexed data format.
14. The method of claim 13, wherein said SONET frames are OC-192 frames, and wherein said time division multiplexed data format is OC-768.
15. The method of claim 14, wherein said predetermined number is 64.
16. The method of claim 14, wherein, in said first data format, said groups of overhead data bytes that respectively correspond to OC-192 frames arc arranged in parallel with one another.
17. The method of claim 1, wherein said second data format is a time division multiplexed data format.
18. The method of claim 1, wherein, in said second data format, respective portions of said groups of overhead data bytes are time division multiplexed with one another.
19. The method of claim 18, wherein, each of said portions consists of said predetermined number of bytes.
20. An apparatus for processing overhead data bytes from SONET data frames, comprising:
- an input for receiving during a predetermined period of time a data frame having a first data format, said data frame comprising a plurality of groups of overhead data bytes, each said group carrying overhead information associated only with a respectively corresponding one of a plurality of SONET data frames; and
- a converter coupled to said input for converting, while said data frame is received, said plurality of groups of overhead data bytes from said first data format into a second data format, said converter including a memory having a plurality of storage locations, said memory operable with respect to one of said groups for storing a predetermined number of said overhead data bytes of said one group respectively into a number of said storage locations equal to said predetermined number at a first data rate, said memory for outputting said predetermined number of overhead data bytes from said predetermined number of storage locations at a second data rate, and said memory further operable, after having output said predetermined number of overhead data bytes, for storing a further said predetermined number of said overhead data bytes of said one group respectively into said predetermined number of storage locations at said first data rate, wherein said first and second data rates are determined such that said overhead data bytes of said one of said groups are concurrently stored into and obtained from said plurality of storage locations during said predetermined period of time.
21. The apparatus of claim 20, wherein said memory is further operable with respect to each of the remainder of said groups for: (a) storing said predetermined
- number of said overhead data bytes of said group respectively into further said storage locations associated with said group and equal in number to said predetermined number; (b) outputting
- said predetermined number of overhead data bytes of said group from the associated storage locations; and (c) after having output said predetermined number of overhead data bytes, storing a further said predetermined number of said overhead data bytes of said group respectively into the associated storage locations.
22. The apparatus of claim 20, wherein said SONET frames are OC-192 frames.
23. The apparatus of claim 20, wherein said first data format is a time division multiplexed data format.
24. The apparatus of claim 23, wherein said SONET frames are OC-192 frames, and wherein said time division multiplexed data format is OC-768.
25. The apparatus of claim 24, wherein said predetermined number is 64.
26. The apparatus of claim 24, wherein, in said second data format, said groups of overhead data bytes that respectively correspond to OC-192 frames are arranged in parallel with one another.
27. The apparatus of claim 23, wherein, in said second data format, said groups of overhead data bytes are arranged in parallel with one another.
28. The apparatus of claim 20, wherein, in said first data format, respective portions of said groups of overhead data bytes are time division multiplexed with one another.
29. The apparatus of claim 28, wherein each of said portions consists of said predetermined number of bytes.
30. The apparatus of claim 20, wherein, in said second data format, said groups of overhead data bytes are arranged in parallel with one another.
31. The apparatus of claim 20, wherein, in said first data format, said groups of overhead data bytes are arranged in parallel with one another.
32. The apparatus of claim 31, wherein said second data format is a time division multiplexed data format.
33. The apparatus of claim 32, wherein said SONET frames are OC-192 frames, and wherein said time division multiplexed data format is OC-768.
34. The apparatus of claim 33, wherein said predetermined number is 64.
35. The apparatus of claim 33, wherein, in said second data format, said groups of overhead data bytes that respectively correspond to OC-192 frames are arranged in parallel with one another.
36. The apparatus of claim 20, wherein said second data format is a time division multiplexed data format.
37. The apparatus of claim 20, wherein, in said first data format, respective portions of said groups of overhead data bytes are time division multiplexed with one another.
38. The apparatus of claim 37, wherein each of said portions consists of said predetermined number of bytes.
39. The apparatus of claim 20, wherein said memory includes a FIFO memory.
40. The apparatus of claim 39, wherein said FIFO memory includes only said predetermined number of storage locations.
41. The apparatus of claim 21, wherein said memory includes a plurality of FIFO memories which respectively correspond to said groups, each of said FIFO memories including only said predetermined number of storage locations associated with the group to which said FIFO memory corresponds.
42. An apparatus for processing overhead data bytes from SONET data frames, comprising:
- an input for receiving during a predetermined period of time a data frame having a first data format, said data frame comprising a plurality of groups of overhead data bytes, each said group carrying overhead information associated only with a respectively corresponding one of a plurality of SONET data frames;
- a converter coupled to said input for converting, while said data frame is received, said plurality of groups of overhead data bytes from said first data format into a second data format, said converter including a memory having a plurality of storage locations, said memory operable with respect to one of said groups for storing a predetermined number of said overhead data bytes of said one group respectively into a number of said storage locations equal to said predetermined number, said memory for outputting said predetermined number of overhead data bytes from said predetermined number of storage locations, and said memory further operable, after having output said predetermined number of overhead data bytes, for storing a further said predetermined number of said overhead data bytes of said one group respectively into said predetermined number of storage locations;
- an overhead processor coupled to said converter for receiving said groups of overhead data bytes arranged in said second data format and for processing said groups to produce corresponding groups of processed overhead data bytes arranged in said second format; and
- a further converter coupled to said overhead processor for converting said groups of processed overhead data bytes from said second data format into said first data format, said further converter including a further memory having a further plurality of storage locations, said further memory operable with respect to one of said groups of processed overhead data bytes for storing a predetermined number of said processed overhead data bytes of said one group respectively into a number of said further storage locations equal to said predetermined number of said processed overhead data bytes, said further memory for outputting said predetermined number of processed overhead data bytes from said number of said further storage locations and said further memory operable, after having output said predetermined number of processed overhead data bytes, for storing a further said predetermined number of said processed overhead data bytes of said one group respectively into said number of said further storage locations.
5134614 | July 28, 1992 | Baydar et al. |
6628651 | September 30, 2003 | Ryan et al. |
6983414 | January 3, 2006 | Duschatko et al. |
20020172227 | November 21, 2002 | Varelas et al. |
Type: Grant
Filed: Jan 31, 2003
Date of Patent: Nov 6, 2007
Patent Publication Number: 20040151207
Assignee: Exar Corporation (Fremont, CA)
Inventor: Walter Abramsohn (San Jose, CA)
Primary Examiner: Brian Nguyen
Attorney: Townsend and Townsend and Crew
Application Number: 10/356,205
International Classification: H04J 3/22 (20060101);