A method is provided for transmitting serial data. The method includes receiving successive transmit data words, wherein each transmit data word has a plurality of bits. Each of the plurality of bits in each transmit data word is multiplied into a multiple number of adjacent bits to form an expanded data word. Each of the expanded data words is serialized to form a serial data word stream, which is transmitted.
|
1. A method of transmitting serial data, the method comprising:
a) receiving successive transmit data words, wherein each transmit data word has a plurality of bits;
b) selecting between first and second transmit frequencies as a desired transmit frequency, wherein the second transmit frequency is a multiple number of the first transmit frequency;
c) multiplying each of the plurality of bits in each transmit data word into a multiple number of adjacent bits to form an expanded data word;
d) serializing the expanded data words formed in step c) if the desired transmit frequency is the first transmit frequency, or serializing the transmit data words received in step a) if the desired transmit frequency is the second transmit frequency to form a serial data word stream; and
e) transmitting the serial data word stream.
11. A data transmitter comprising:
a parallel transmit data input for receiving successive transmit data words having a plurality of bits;
a transmit register coupled to the parallel data input for storing the successive transmit data words;
a bit repeating circuit coupled to the transmit register, having a first data path and a second, alternate data path, which is multiplexed with the first data path, wherein the first data path applies the transmit data word stored in the transmit register to a parallel transmit data output and the second data path repeats each of the plurality of bits in each transmit data word to form a multiple number of adjacent bits within an expanded data word and applies the expanded data word to the parallel transmit data output; and
a data serializer coupled to the parallel transmit data output and having a serial data output.
7. A method of transmitting data, the method comprising:
a) selecting between first and second transmit frequencies as a desired transmit frequency, wherein the second transmit frequency is a multiple number of the first transmit frequency;
b) receiving successive transmit data words, wherein each transmit data word has a plurality of bits;
c) multiplying each of the plurality of bits in each transmit data word into multiple adjacent bits to form an expanded data word, if the desired transmit frequency is the first transmit frequency, wherein the number of adjacent bits in the expanded data word for each bit in the transmit data word is equal to the multiple number;
d) serializing the expanded data words formed in step c) if the desired transmit frequency is the first transmit frequency, or serializing the transmit data words received in step b) if the desired transmit frequency is the second transmit frequency to form a serial data word stream; and
e) transmitting the serial data word stream at the second transmit frequency, regardless of the desired transmit frequency.
2. The method of
step a) comprises receiving the successive transmit data words at the desired transmit frequency; and
step e) comprises transmitting the serial data word stream at the second transmit frequency, regardless of the desired transmit frequency.
3. The method of
4. The method of
step c) comprises multiplying each of the plurality of bits in each transmit data word into multiple adjacent bits to form the expanded data word, wherein the number of adjacent bits in the expanded data word for each bit in the transmit data word is equal to the multiple number.
5. The method of
c)1) for each successive transmit data word received in step a), sequentially selecting between subsets of the bits in the transmit data word, wherein the number of subsets is equal to the multiple number; and
c)2) for each subset, multiplying each of the bits in that subset into the multiple number of adjacent bits to form a portion of the expanded data word.
6. The method of
d)1) sequentially passing each portion of the expanded data word to a data serializer if the desired transmit frequency is the first transmit frequency; or
d)2) sequentially passing the successive transmit data words received in step a) to the data serializer if the desired transmit frequency is the second transmit frequency to form a serial data word stream.
8. The method of
9. The method of
c)1) for each successive transmit data word received in step b), sequentially selecting between subsets of the bits in the transmit data word, wherein the number of subsets is equal to the multiple number; and
c)2) for each subset, multiplying each of the bits in that subset into the multiple number of adjacent bits to form a portion of the expanded data word.
10. The method of
d)1) sequentially passing each portion of the expanded data word to a data serializer if the desired transmit frequency is the first transmit frequency; or
d)2) sequentially passing the successive transmit data words received in step b) to the data serializer if the desired transmit frequency is the second transmit frequency to form a serial data word stream.
12. The data transmitter of
a bit repeating multiplexer along the second data path, which selects between multiple sets of inputs, wherein the number of sets is equal to the multiple number of adjacent bits and each set is coupled to a respective portion of the transmit register, and wherein the bit repeating circuit has a set of expanded multiplexer outputs; and
a bypass multiplexer having a first set of inputs coupled to the transmit register along the first data path, a second set of inputs coupled to the set of expanded multiplexer outputs along the second data path, and a further set of multiplexer outputs, which forms the parallel transmit data output and is coupled to the data serializer.
14. The data transmitter of
15. The data transmitter of
|
The present invention relates to serial data transmitters and, more particularly, to a serial data transmitter that is capable of operating over a wide range of data rates.
A serial data transmitter has a parallel-to-serial converter, known as a “serializer”, which receives successive multiple-bit data words, converts each data word into a serial representation and concatenates the serial representations to produce a serial bit stream. The serial bit stream output can be single-ended or differential, depending upon the application in which the transmitter is used. The transmitting device also typically includes a receiver that de-serializes incoming data from the transmission media. The serializer typically includes a phase-locked loop (PLL), which locks the rate that each bit is transmitted to a reference clock frequency. The de-serializer also has a PLL, which locks a local clock signal on to the phase and frequency of the data transitions in the serial data stream. The local clock signal is then used capture the incoming data.
As the performance of computer systems increases with each new system generation, serial data communication speed, measured in data rate, typically increases by a factor of two. To maintain backward compatibility with older systems, the serializer and de-serializer are required to operate over wider and wider ranges of data rates. For example, the same serializer and deserializer may be required to operate at 1 gigabits per second (Gb/s), 2 Gb/s or 4 Gb/s, depending on the application in which the device is used. This design requirement forces troublesome design compromises, particularly within the phase-locked loop of the transmitter.
Typically, data is serialized and de-serialized at a frequency that is directly proportional to the data rate. For example, the serializer and deserializer are required to operate twice as fast when transmitting or receiving data at 2 Gb/s than at 1 Gb/s and four times as fast at 4 Gb/s. With the increased range of required data rates, it becomes more and more difficult to design a serializer/deserializer. The design of the PLL that is used for regulating the transmission rate becomes particularly difficult.
For applications employing data rate switching, such as Fibre Channel speed auto-negotiation, switching of the transmit data rate requires a long time period, on the order of hundreds of microseconds, to change the PLL output frequency of the transmitter. In addition, PLL parameters are ideally optimized for jitter performance at a particular data rate. Optimizing the PLL parameters becomes more difficult when the PLL is required to operate at a wide range of data rates.
Also, the design of digital filters in the transmitter becomes more difficult with wider ranges of data rates. Digital filters are commonly used in transmitters for compensating for frequency-dependent losses in a transmission path. While the characteristics of the transmission path are constant, the digital filter characteristics must necessarily change with the data rate. This forces design compromises within the digital filter.
Improved data transmitters are therefore desired, which are capable of operating at a wide range of data rates without compromising the transmitter performance.
One embodiment of the present invention is directed to a method for transmitting serial data. The method includes: a) receiving successive transmit data words, wherein each transmit data word has a plurality of bits; b) multiplying each of the plurality of bits in each transmit data word into a multiple number of adjacent bits to form an expanded data word; c) serializing each of the expanded data words formed in step b) to form a serial data word stream; d) transmitting the serial data word stream.
Another embodiment of the present invention is directed to a method of transmitting data, which includes: a) selecting between first and second transmit frequencies as a desired transmit frequency, wherein the second transmit frequency is a multiple number of the first transmit frequency; b) receiving successive transmit data words, wherein each transmit data word has a plurality of bits; c) multiplying each of the plurality of bits in each transmit data word into multiple adjacent bits to form an expanded data word, if the desired transmit frequency is the first transmit frequency, wherein the number of adjacent bits in the expanded data word for each bit in the transmit data word is equal to the multiple number; d) serializing the expanded data words formed in step c) if the desired transmit frequency is the first transmit frequency, or the transmit data words received in step b) if the desired transmit frequency is the second transmit frequency to form a serial data word stream; and e) transmitting the serial data word stream at the second transmit frequency, regardless of the desired transmit frequency.
Another embodiment of the present invention is directed to data transmitter. The data transmitter includes a parallel transmit data input for receiving successive transmit data words having a plurality of bits. A transmit register is coupled to the parallel data input for storing the successive transmit data words. A bit repeating circuit is coupled to the transmit register, which repeats each of the plurality of bits in each transmit data word to form a multiple number of adjacent bits within an expanded data word and applies the expanded data word to a parallel transmit data output. A data serializer is coupled to the parallel transmit data output and has a serial data output.
The present invention is directed to a serial data transmitter. In one embodiment of the present invention, the transmitter always runs at a narrow range of frequencies corresponding to the maximum supported data rate of the transmitter, such as 2 gigabits per second (Gb/s). To achieve a lower data rate, the transmitter serializes each bit multiple times (i.e., “over-samples” the data). For example, if the maximum data rate is 2 Gb/s, then data can be transmitted at 1 Gb/s by transmitting each bit of data twice at 2 Gb/s. If the maximum data rate is 4 Gb/s, data can be transmitted at 1 Gb/s by transmitting each bit of data four times at 4 Gb/s. The resulting serial output waveforms are the same, and the receiver would still operate normally, locking on to the data at the lower data rate.
For example, sending the serial data pattern,
Each bit in data words 102 and 104 (shown in
The examples shown in
Transmitting each bit multiple times allows the transmitter to operate at a single frequency corresponding to the maximum required data rate regardless of the rate at which the receiver operates. This allows the transmitter data rate to be placed near the center of the transmitter frequency range, thereby allowing the PLL parameters in the transmitter to be optimized for better jitter performance at this speed. Switching data rates can be accomplished almost instantaneously by controlling the number of times each bit is repeated rather than by changing the frequency at which the transmitter PLL operates.
Register 302 has a clock input 308 for loading each successive data word into the register. Clock input 308 receives a clock signal, CLKA, which corresponds to the desired transmit frequency of each 20-bit data word. For example, if the desired data rate were 1.0625 Gb/s, then CLKA would have a frequency of 53.125 MHz. If the desired data rate were 2.125 Gb/s, then CLKA would have a frequency of 106.25 MHz.
Bit repeating circuit 304 includes a bit doubling multiplexer 310 and a bypass multiplexer 312. In this example, bit doubling multiplexer 310 has 10 pairs of adjacent two-input multiplexer elements 314. Each pair of multiplexer elements 314 has a first input coupled to a corresponding one of the bit locations in a first half (or subset) of register 302 (bit locations 0-9) and a second input coupled to a corresponding one of the bit locations in a second half (or subset) of register 302 (bit locations 10-19).
In order to double each bit in register 302, each bit in the first half of register 302 is coupled to the first input of a corresponding pair of the multiplexer elements 314, and each bit in the second half of register 302 is coupled to the second input of a corresponding pair of the multiplexer elements 314. For example, bit “0” is coupled to the first inputs of the first and second elements 314 in bit doubling multiplexer 310. Bit “1” in register 302 is coupled to the first inputs of the third and fourth elements 314 in bit doubling multiplexer 310. This pattern repeats for bit locations 2-9. Bit “10” in the second half of register 302 is coupled to the second inputs of the first and second elements in bit doubling multiplexer 310. Bit “11” is coupled to the second inputs of the third and fourth elements 314 in bit doubling multiplexer 310. Again, this pattern repeats for bit locations 12-19. Multiplexer elements 314 have outputs X0 to X19, respectively, which can be collectively referred to as X[0:19].
Multiplexer elements 314 have a common select input 316, which in this example is coupled to clock signal CLKA. When CLKA is in a first logic state, multiplexer elements 314 double each of bits W[0:9] in the first half of register 302 and pass the expanded bit pattern to outputs X[0:19]. When CLKA is in a second logic state, multiplexer elements 314 double each of bits W[10:19] in the second half of register 302 and pass the expanded bit pattern to outputs X[0:19]. Bit doubling multiplexer 310 therefore sequentially selects between first and second subsets of the bits in transmit register 302 (W[0:9] and W[10:19]) and for each subset, multiplies each of the bits in that subset into a multiple number of adjacent bits to form a portion of an expanded data word. The number of subsets is equal to the multiple number of adjacent bits.
Bypass multiplexer 312 includes 20 two-input multiplexer elements 320. Multiplexer elements 320 each include a first input coupled a corresponding one of the bit locations in register 302, labeled W0 to W19, and a second input coupled to a respective output X0 to X19 of multiplexer elements 314. Multiplexer elements 320 have a common select input 322, which selects whether the outputs X[0:19] from bit doubling multiplexer 310 or the outputs W[0:19] of register 302 will be applied to selectively expanded outputs Z[0:19] for serialization and transmission to the receiver. The desired transmit frequency of transmitter 300 can be selected by simply controlling the state of select input 322. For example if the desired data rate were 2 Gb/s, select input 322 would be set so that bypass multiplexer 302 passes W[0:19] directly to serializer 305. If the desired data rate were 1 Gb/s, select input 322 would be set so that bypass multiplexer 302 passes X[0:19] to serializer 305.
Serializer 305 has a data input 330, which is coupled to outputs Z[0:19] of bypass multiplexer 312. Serializer 305 has a reference clock input 332 and a serial data output 334. Reference clock input 332 receives a reference clock having a frequency corresponding to the highest required data rate. In the example shown in
Therefore, in order to transmit 1 Gb/s data at the 2 Gb/s rate, the number of bits is doubled. Each bit is duplicated by bit doubling multiplexer 310 and then presented to serializer 305 at double the data rate. Serializer 305 then transmits the serial data at 2 Gb/s, with an effective rate of 1 Gb/s.
Any suitable serializer can be used in accordance with the present invention. For example in one embodiment, serializer 305 includes a GigaBlaze® Transceiver Core available from LSI Logic Corporation of Milpitas, Calif. Other types of serializers can also be used.
For 2.125 Gb/s operation, data is clocked into register 302 at the 106.25 MHz rate, as opposed to the 53.125 MHz rate. Because the data rate going into register 302 is already at 2.125 Gb/s, the bit doubling provided by bit doubling multiplexer 310 is not needed. Therefore, bypass multiplexer 312 is switched to select W[0:19] as opposed to X[0:19]. The 2.125 Gb/s data is therefore provided to serializer 305 directly from register 302.
With either the 1.0625 Gb/s rate or the 2.125 Gb/s rate, serializer 305 operates at the same 1.0625 MHz frequency and transmits each bit at 2.125 Gb/s. This allows serializer 305 to always run in a narrow range of frequencies, the highest frequency range required by any application in which serializer 305 is used. The PLL parameters in serializer 305 can therefore be set for optimum jitter performance at this speed. Lower data rates are achieved by transmitting or receiving each bit of data multiple times. This simplifies the design of serializer 305 and results in improved performance.
For applications employing data rate switching, such as speed auto-negotiation in the Fibre Channel protocol, switching between the single and double speed can be instantaneous, requiring only a change in the input data rate to register 302 and the setting of bypass multiplexer 312. In contrast, changing the rate at which a PLL operates would require a large amount of time in order to change the PLL output frequency.
In addition, transmitters often apply pre-emphasis on the serial outputs as a simple form of a digital filter to compensate for high frequency attenuation in the transmission path. As is known in the art, transmitter pre-emphasis works best when the emphasis is asserted for approximately the rise time of the transmitter-plus-transmission path. Hence for a given application, the optimal time to assert emphasis is a constant and independent of the data rate.
The block diagram shown in
In addition, the bit repeating circuit shown in
Although the present invention has been described with reference to preferred embodiments, workers skilled in the art will recognize that changes may be made in form and detail without departing from the spirit and scope of the invention. For example, the transmitter can have a data path with any number of bits in alternative embodiments of the present invention. Thus, the term “data word” used in the specification and claims can include any number of bits. The term “coupled” can include various types of connections or couplings and can include a direct connection or a connection thorough one or more intermediate components.
Jenkins, Michael O., Hardy, Brett D., Okronglis, Michael, Ducaroir, Francois
Patent | Priority | Assignee | Title |
7739430, | Dec 02 2004 | PANASONIC SEMICONDUCTOR SOLUTIONS CO , LTD | Semiconductor integrated circuit |
7768306, | Sep 20 2006 | MEDIATEK INC. | Low to high voltage conversion output driver |
Patent | Priority | Assignee | Title |
4607345, | Jan 07 1982 | FIRSTPOINT CONTACT TECHNOLOGIES, LLC | Serial data word transmission rate converter |
5440684, | Jun 24 1991 | AGFA-Gevaert N. V. | Parallel to serial conversion of information data |
5574676, | Sep 02 1994 | HEWLETT-PACKARD DEVELOPMENT COMPANY, L P | Integer multiply instructions incorporating a subresult selection option |
5896374, | Feb 23 1995 | NTT DoCoMo, Inc | Variable rate transmission method, transmitter and receiver using the same |
6040791, | Nov 17 1994 | Xerox Corporation | System and method for grey value expansion of pixel data |
6232895, | Jan 17 1997 | Telefonaktiebolaget LM Ericsson | Method and apparatus for encoding/decoding n-bit data into 2n-bit codewords |
6642864, | Jan 17 1997 | Telefonaktiebolaget LM Ericsson | Method and apparatus for encoding/decoding N-bit data into 2N-bit codewords |
7106227, | Sep 28 2001 | Agilent Technologies, Inc | Method and apparatus for synchronizing a multiple-stage multiplexer |
20030223469, | |||
20050204245, |
Executed on | Assignor | Assignee | Conveyance | Frame | Reel | Doc |
Nov 21 2002 | OKRONGLIS, MICHAEL | LSI Logic Corporation | ASSIGNMENT OF ASSIGNORS INTEREST SEE DOCUMENT FOR DETAILS | 013683 | /0572 | |
Nov 26 2002 | LSI Logic Corporation | (assignment on the face of the patent) | / | |||
Jan 10 2003 | DUCAROIR, FRANCOIS | LSI Logic Corporation | ASSIGNMENT OF ASSIGNORS INTEREST SEE DOCUMENT FOR DETAILS | 013683 | /0572 | |
Jan 10 2003 | HARDY, BRETT D | LSI Logic Corporation | ASSIGNMENT OF ASSIGNORS INTEREST SEE DOCUMENT FOR DETAILS | 013683 | /0572 | |
Jan 10 2003 | JENKINS, MICHAEL O | LSI Logic Corporation | ASSIGNMENT OF ASSIGNORS INTEREST SEE DOCUMENT FOR DETAILS | 013683 | /0572 | |
Apr 06 2007 | LSI Logic Corporation | LSI Corporation | CHANGE OF NAME SEE DOCUMENT FOR DETAILS | 033102 | /0270 | |
May 06 2014 | LSI Corporation | DEUTSCHE BANK AG NEW YORK BRANCH, AS COLLATERAL AGENT | PATENT SECURITY AGREEMENT | 032856 | /0031 | |
May 06 2014 | Agere Systems LLC | DEUTSCHE BANK AG NEW YORK BRANCH, AS COLLATERAL AGENT | PATENT SECURITY AGREEMENT | 032856 | /0031 | |
Aug 14 2014 | LSI Corporation | AVAGO TECHNOLOGIES GENERAL IP SINGAPORE PTE LTD | ASSIGNMENT OF ASSIGNORS INTEREST SEE DOCUMENT FOR DETAILS | 035390 | /0388 | |
Feb 01 2016 | DEUTSCHE BANK AG NEW YORK BRANCH, AS COLLATERAL AGENT | Agere Systems LLC | TERMINATION AND RELEASE OF SECURITY INTEREST IN PATENT RIGHTS RELEASES RF 032856-0031 | 037684 | /0039 | |
Feb 01 2016 | AVAGO TECHNOLOGIES GENERAL IP SINGAPORE PTE LTD | BANK OF AMERICA, N A , AS COLLATERAL AGENT | PATENT SECURITY AGREEMENT | 037808 | /0001 | |
Feb 01 2016 | DEUTSCHE BANK AG NEW YORK BRANCH, AS COLLATERAL AGENT | LSI Corporation | TERMINATION AND RELEASE OF SECURITY INTEREST IN PATENT RIGHTS RELEASES RF 032856-0031 | 037684 | /0039 | |
Jan 19 2017 | BANK OF AMERICA, N A , AS COLLATERAL AGENT | AVAGO TECHNOLOGIES GENERAL IP SINGAPORE PTE LTD | TERMINATION AND RELEASE OF SECURITY INTEREST IN PATENTS | 041710 | /0001 | |
May 09 2018 | AVAGO TECHNOLOGIES GENERAL IP SINGAPORE PTE LTD | AVAGO TECHNOLOGIES INTERNATIONAL SALES PTE LIMITED | MERGER SEE DOCUMENT FOR DETAILS | 047195 | /0658 | |
Sep 05 2018 | AVAGO TECHNOLOGIES GENERAL IP SINGAPORE PTE LTD | AVAGO TECHNOLOGIES INTERNATIONAL SALES PTE LIMITED | CORRECTIVE ASSIGNMENT TO CORRECT THE EFFECTIVE DATE OF MERGER PREVIOUSLY RECORDED ON REEL 047195 FRAME 0658 ASSIGNOR S HEREBY CONFIRMS THE THE EFFECTIVE DATE IS 09 05 2018 | 047357 | /0302 | |
Sep 05 2018 | AVAGO TECHNOLOGIES GENERAL IP SINGAPORE PTE LTD | AVAGO TECHNOLOGIES INTERNATIONAL SALES PTE LIMITED | CORRECTIVE ASSIGNMENT TO CORRECT THE ERROR IN RECORDING THE MERGER PREVIOUSLY RECORDED AT REEL: 047357 FRAME: 0302 ASSIGNOR S HEREBY CONFIRMS THE ASSIGNMENT | 048674 | /0834 | |
Aug 26 2020 | AVAGO TECHNOLOGIES INTERNATIONAL SALES PTE LIMITED | BROADCOM INTERNATIONAL PTE LTD | ASSIGNMENT OF ASSIGNORS INTEREST SEE DOCUMENT FOR DETAILS | 053771 | /0901 | |
Feb 02 2023 | AVAGO TECHNOLOGIES INTERNATIONAL SALES PTE LIMITED | AVAGO TECHNOLOGIES INTERNATIONAL SALES PTE LIMITED | MERGER SEE DOCUMENT FOR DETAILS | 062952 | /0850 | |
Feb 02 2023 | BROADCOM INTERNATIONAL PTE LTD | AVAGO TECHNOLOGIES INTERNATIONAL SALES PTE LIMITED | MERGER SEE DOCUMENT FOR DETAILS | 062952 | /0850 |
Date | Maintenance Fee Events |
Feb 07 2008 | ASPN: Payor Number Assigned. |
Apr 02 2008 | ASPN: Payor Number Assigned. |
Apr 02 2008 | RMPN: Payer Number De-assigned. |
Sep 05 2011 | M1551: Payment of Maintenance Fee, 4th Year, Large Entity. |
Aug 27 2015 | M1552: Payment of Maintenance Fee, 8th Year, Large Entity. |
Sep 11 2019 | M1553: Payment of Maintenance Fee, 12th Year, Large Entity. |
Date | Maintenance Schedule |
Mar 11 2011 | 4 years fee payment window open |
Sep 11 2011 | 6 months grace period start (w surcharge) |
Mar 11 2012 | patent expiry (for year 4) |
Mar 11 2014 | 2 years to revive unintentionally abandoned end. (for year 4) |
Mar 11 2015 | 8 years fee payment window open |
Sep 11 2015 | 6 months grace period start (w surcharge) |
Mar 11 2016 | patent expiry (for year 8) |
Mar 11 2018 | 2 years to revive unintentionally abandoned end. (for year 8) |
Mar 11 2019 | 12 years fee payment window open |
Sep 11 2019 | 6 months grace period start (w surcharge) |
Mar 11 2020 | patent expiry (for year 12) |
Mar 11 2022 | 2 years to revive unintentionally abandoned end. (for year 12) |