Method and apparatus for converting parallel data to serial data in high speed applications
A method and apparatus to convert parallel data to serial data. More specifically, there is provided a parallel-to-serial converter comprising a data pipeline configured to receive parallel data, and binary sort logic comprising a plurality of switches arranged to receive the parallel data from the data pipeline, and configured to output the parallel data serially.
Latest Micron Technology, Inc. Patents:
- ITERATIVE DECODING TECHNIQUE FOR CORRECTING DRAM DEVICE FAILURES
- ITERATIVE ERROR CORRECTION IN MEMORY SYSTEMS
- Integrated Assemblies Comprising Hydrogen Diffused Within Two or More Different Semiconductor Materials, and Methods of Forming Integrated Assemblies
- APPARATUSES AND METHODS FOR ECC PARITY BIT REDUCTION
- NONLINEAR DRAM DIGITAL EQUALIZATION
1. Field of the Invention
The present invention relates generally to parallel-to-serial conversion and, more particularly, to parallel-to-serial conversion in high speed memory devices.
2. Description of the Related Art
This section is intended to introduce the reader to various aspects of art which may be related to various aspects of the present invention which are described and/or claimed below. This discussion is believed to be helpful in providing the reader with background information to facilitate a better understanding of the various aspects of the present invention. Accordingly, it should be understood that these statements are to be read in this light, and not as admissions of prior art.
Semiconductor memory devices such as synchronous dynamic random access memory (SDRAM) devices are widely used in computers and electronic systems. An SDRAM device generally includes a memory array comprising a large number of memory cells each configured to store data. During a memory read operation, data from the memory cells is accessed and output to a data pad (DQPAD) for processing and use by external devices. The operation of the SDRAM is generally based on a common clock signal.
As will be appreciated, there are a number of different types of SDRAM devices. Early generation SDRAM devices are generally configured such that data from the memory cells may be accessed and one bit of data may be output to the DQPAD on every clock cycle. Demands for higher processing speeds led to the development of double data rate (DDR) SDRAM devices. DDR SDRAM devices generally allow for two bits of data to be accessed and output to the DQPAD on every clock cycle. To achieve this, DDR SDRAM devices commonly clock data out to the DQPAD on every rising and every failing edge of the clock signal. DDR SDRAMS generally allow for data to be transferred from the memory device at a clock rate in the range of 200 to 550 MHz.
The next generation of SDRAMS include DDR2 SDRAMS. The advantage of DDR2 over DDR SDRAMS is its ability to run at even higher clock speeds due to an improved electrical interface. With a clock frequency of 100 MHz, an SDRAM will transfer data on every rising edge of the clock pulse, thus achieving an effective 100 MHz transfer rate. Like DDR, DDR2 will transfer data on every rising and falling edge of the clock, achieving an effective rate of 200 MHz with the same clock frequency. DDR2's clock frequency is further boosted by an improved electrical interface running twice as fast as the memory clock, on-die termination, pre-fetch buffers and off-chip drivers. Thus, DDR2 devices have a data transfer rate in the range of 500-667 MHZ. With the next generation of SDRAMs being developed to facilitate data transfer rates in the range of 800-1067 MHZ (DDR3), internal transfer of data within the memory device becomes increasingly difficult to manage.
To facilitate the ever increasing processing speeds, data is often split onto parallel data buses within the memory devices such that concurrent processing may be utilized. While concurrency does improve accessing and processing speeds, eventually, the parallel data is serialized in order to pipeline the output data in a serial manner. Due to the ever increasing transfer rates of the memory devices, parallel-to-serial conversion for serially pipelining the data output from the memory device becomes increasingly challenging.
The present invention may address one or more of the problems set forth above.
The foregoing and other advantages of the invention may become apparent upon reading the following detailed description and upon reference to the drawings in which:
One or more specific embodiments of the present invention will be described below. In an effort to provide a concise description of these embodiments, not all features of an actual implementation may be described in the specification. It should be appreciated that in the development of any such actual implementation, as in any engineering or design project, numerous implementation-specific decisions are made to achieve the developers' specific goals, such as compliance with system-related and business-related constraints, which may vary from one implementation to another. Moreover, it should be appreciated that such a development effort might be complex and time consuming, but would nevertheless be a routine undertaking of design, fabrication, and manufacture for those of ordinary skill having the benefit of this disclosure.
Turning now to the drawings, and referring initially to
The device 10 typically includes a power supply 14. For instance, if the device 10 is portable, the power supply 14 would advantageously include permanent batteries, replaceable batteries, and/or rechargeable batteries. The power supply 14 may also include an A/C adapter, so that the device may be plugged into a wall outlet, for instance. In fact, the power supply 14 may also include a D/C adapter, so that the device 10 may be plugged into a vehicle's cigarette lighter, for instance.
Various other devices may be coupled to the processor 12, depending upon the functions that the device 10 performs. For instance, a user interface 16 may be coupled to the processor 12. The user interface 16 may include an input device, such as buttons, switches, a keyboard, a light pin, a mouse, and/or a voice recognition system, for instance. A display 18 may also be coupled to the processor 12. The display 18 may include an LCD display, a CRT, LEDs, and/or an audio display. Furthermore, an RF subsystem/baseband processor 20 may also be coupled to the processor 12. The RF subsystem/baseband processor 20 may include an antenna that is coupled to an RF receiver and to an RF transmitter (not shown). A communication port 22 may also be coupled to the processor 12. The communication port 22 may be adapted to be coupled to a peripheral device 24, such as a modem, a printer, or a computer, for instance, or to a network, such as a local area network or the Internet.
Because the processor 12 controls the functioning of the device 10 generally under the control of software programming, memory is coupled to the processor 12 to store and facilitate execution of the software program. For instance, the processor 12 may be coupled to volatile memory 26, which may include dynamic random access memory (DRAM), static random access memory (SRAM), Double Data Rate (DDR) memory, DDR2, DDR3, etc. The processor 12 may also be coupled to non-volatile memory 28. The non-volatile memory 28 may include a read only memory (ROM), such as an EPROM or Flash Memory, to be used in conjunction with the volatile memory. The size of the ROM is typically selected to be just large enough to store any necessary operating system, application programs, and fixed data. The volatile memory 26, on the other hand, is typically quite large so that it can store dynamically loaded applications. Additionally, the non-volatile memory 28 may include a high capacity memory such as a disk drive, tape drive memory, CD ROM drive, DVD, read/write CD ROM drive, and/or a floppy disk drive.
The volatile memory 26 may include a number of SDRAMs which may implement DDR, DDR2, or DDR3 technology. As previously discussed, the SDRAM differs from a DRAM in that the SDRAM is controlled synchronously with a timing source, such as the system clock. To accomplish synchronous control, latches are used to provide data and other information on the inputs and outputs of the SDRAM. Thus, in a read operation for example, the processor 12 may access a data output latch a predetermined number of clock cycles after issuing the read request. The predetermined number of clock cycles typically corresponds to the amount of time needed to access the requested data, move the data to the output latch, and allow the data to stabilize. The data is clocked out of the output latch synchronous with the system clock which provides the timing source for the processor 12. Synchronization of the data read from the output latch with the system clock is generally implemented via a delay locked loop (DLL) circuit. In general, the DLL locks the data output signal to the system clock by shifting the output data in time such that it is nominally aligned with the system clock. Thus, the DLL can compensate for timing delays introduced by various components in the SDRAM.
Write operations also are performed synchronously or in synchronization with a timing source, such as the system clock or other externally provided timing source. Thus, data may be clocked into an input latch and written to the memory array under control of a write clock provided from the external device which is performing the write operation. Delay locked loops may also be implemented to synchronize write data with the write clock.
Turning now to
Control, address, and data information provided over a memory bus are represented by individual inputs to the SDRAM 30. These individual representations are illustrated by a data bus 32, address lines 34, and various discrete lines directed to control logic 36. As will be appreciated, the various buses and control lines may vary depending on the system. As is known in the art, the SDRAM 30 includes a memory array 38 which comprises rows and columns of addressable memory cells. Each memory cell in a row is coupled to a word line. Additionally, each memory cell in a column is coupled to a bit line. Each cell in the memory array 38 typically includes a storage capacitor and an access transistor as is conventional in the art.
The SDRAM 30 interfaces with, for example, a processor 12, such as a microprocessor, through address lines 34 and data lines 32. Alternatively, the SDRAM 30 may interface with other devices, such as an SDRAM controller, a microcontroller, a chip set, or other electronic system. The microprocessor 12 also may provide a number of control signals to the SDRAM 30. Such signals may include row and column address strobe signals RAS and CAS, a write enable signal WE, a clock enable signal CKE, and other conventional control signals. The control logic 36 controls the many available functions of the SDRAM 30. In addition, various other control circuits and signals not detailed herein contribute to the operation of the SDRAM 30, as known to one of ordinary skill in the art.
A row address buffer 40 and a row decoder 42 receive and decode row addresses from row address signals provided on the address lines 34. Each unique row address corresponds to a row of cells in the memory array 38. The row decoder 42 typically includes a word line driver, an address decoder tree, and circuitry which translates a given row address received from row address buffers 40 and selectively activates the appropriate word line of the memory array 38 via the word line drivers.
A column address buffer 44 and a column decoder 46 receive and decode column address signals provided on the address lines 34. The column decoder 46 may also determine when a column is defective, as well as the address of a replacement column. The column decoder 46 is coupled to sense amplifiers 48. The sense amplifiers 48 are coupled to complementary pairs of bit lines of the memory array 38.
The sense amplifiers 48 are coupled to data-in (i.e., write) and data-out (i.e., read) circuitry. The data in circuitry may comprise a serial-to-parallel converter 50 configured to receive write data. The serial-to-parallel converter 50 includes data drivers and latches configured to receive external write data serially, and convert the serial write data to parallel data for storage in the memory array 38. During a write operation, the write data bus 51 provides data to the serial-to-parallel converter 50. As will be appreciated, the write data bus 51 is part of the databus 32. The sense amplifier 48 receives data from the serial-to-parallel converter 50 and stores the data in the memory array 38 as a charge on a capacitor of a cell at an address specified on the address line 34. In one embodiment, the write data bus 51 is an 8-bit data bus carrying data at 400 MHz or higher.
During a read operation, the SDRAM 30 transfers data to the microprocessor 12 from the memory array 38. Complementary bit lines for the accessed cell are equilibrated during a precharge operation to a reference voltage provided by an equilibration circuit and a reference voltage supply. The charge stored in the accessed cell is then shared with the associated bit lines. The sense amplifier 48 detects and amplifies a difference in voltage between the complementary bit lines. Address information received on address lines 34 selects a subset of the bit lines and couples them to complementary pairs of input/output (I/O) wires or lines. The I/O wires pass the amplified voltage signals to the data-out circuitry, such a parallel-to-serial converter 52, via an internal data bus 54. The internal data-bus 54 is a parallel data bus that operates at a lower frequency (e.g. 100 MHz) than the data bus 32 (including the write data bus 51 and the read data bus 58). The parallel-to-serial converter 52 is configured to receive parallel data from the slower internal data bus 54 and to transmit the data, serially, to a data pad (DQPAD) 56 via the read data bus 58. As with the write data bus 51, the read data bus 58 is a high speed data bus configured to operate at 400 MHz or higher. As previously discussed, transferring the data at higher external rates than the transfer rates being implemented internally within the SDRAM 30 introduces a number of design challenges. As described further below, embodiments of the present invention may be implemented within the parallel-to-serial converter 52 such that the SDRAM 30 is capable of accurately operating at the high frequencies employed with high speed memory systems, such as DDR, DDR2 and DDR3 systems.
In accordance with embodiments of the present invention and as will be described further with reference to
Turning now to
The parallel-to-serial converter 52 includes a data pipeline 62 and binary data sort logic 64. As will be described in more detail with reference to
The binary data sort logic 64 includes a plurality of switches 70 and a final stage switching circuit 72. Each of the switches 70 operates under the control of a respective internally generated switch control signals RCK<0>, RCK<1>, RCK<2>, FCK<0>, FCK<1> or FCK<2>. Switch control signals RCK<0>, RCK<1>and RCK<2>, are clocks signals that control data to be released on the rising edge of CLK (DLLCK) and the switch control signals FCK<0>, FCK<1>or FCK<2> which control the release of data on the falling edge of CLK, as will be further illustrated in
In general, each of the switches 70 simply toggles between two data inputs. That is, data is passed through each respective switch 70 under the control of a respective switch control signal. When the control signal is high, the switch will pass data from the first input. When the control signal is low, the switch 70 will pass data from the second input. For instance, starting with the upper left switch 70 illustrated in
The first four switches (i.e., the four leftmost switches in
As will be appreciated, each stage of switches (first, second and final) in the binary data sort logic 64 essentially doubles the data transmission frequency such that the parallel data transmitted from the bus 54 is passed to the read data bus 58 and that the read data bus 58 operates at approximately 8× the frequency of the internal bus 54. The data on the read data bus 58 is being transmitted serially and driven at a rate that matches the external clock (XCLK) rate and the DLL clock (DLLCK) rate. The timing relationship of the switch control signals, the DLL clock signal DLLCK and the external clock signal XCLK will be illustrated with respect to
Referring now to
Referring again briefly to
Referring now to
Referring now to
Those skilled in the art will appreciate the operation of the clock generation circuit 100 illustrated with reference to
Referring now to
The timing control circuit 110 is implemented to hold valid data and convert pre-charged data to DC to smooth timing from remote (versus close) data. The timing control circuit 110 includes three NOR gates 112, two inverters 114 and an AND gate 116, which may be arranged as illustrated in
Also illustrated in
Referring now to
Referring now to
Referring again to
As further illustrated, and referring to the second stage switches 70 (under the control of RCK<0> and FCK<0>) the output states and relative switching is further illustrated in
Advantageously, embodiments of the present invention provide techniques for converting parallel data to serial data in high speed applications, such as high speed memory systems. In accordance with embodiments of the present techniques, the conversion is performed by employing a number of switches in the converter. Further, the converter is essentially operated under the control of the DLLCK signal and thus needs no control since it is a free-running clock signal.
While the invention may be susceptible to various modifications and alternative forms, specific embodiments have been shown by way of example in the drawings and have been described in detail herein. However, it should be understood that the invention is not intended to be limited to the particular forms disclosed. Rather, the invention is to cover all modifications, equivalents, and alternatives falling within the spirit and scope of the invention as defined by the following appended claims.
Claims
1. A parallel-to-serial converter comprising:
- a data pipeline configured to receive parallel data; and
- binary sort logic comprising a plurality of switches arranged to receive the parallel data from the data pipeline, and configured to output the parallel data serially, wherein a first switch is configured to transmit either a first data input bit or a second data input bit depending on a state of a first control signal, and wherein a second switch is configured to transmit either a third data input bit or a fourth data input bit depending on a state of a second control signal.
2. The parallel-to-serial converter, as set forth in claim 1, wherein the plurality of switches comprises:
- a first stage comprising a first plurality of switches configured to receive data in parallel from the data pipeline;
- a second stage comprising a second plurality of switches configured to receive the data from the first plurality of switches; and
- a final stage comprising switching logic configured to receive the data from the second plurality of switches and configured to output the data serially.
3. The parallel-to-serial converter, as set forth in claim 2, wherein the first stage is configured to double a frequency of the parallel data, and wherein the second stage is configured to double a frequency of the data received from the first stage and wherein the final stage is configured to double a frequency of the data received from the second stage.
4. The parallel-to-serial converter, as set forth in claim 2, wherein the first stage comprises four switches and the second stage comprises two switches.
5. The parallel-to-serial converter, as set forth in claim 1, wherein the data pipeline is configured to receive the parallel data at a first frequency and the binary data sort logic is configured to output the parallel data serially at a second frequency, wherein the second frequency is greater than the first frequency.
6. A device comprising:
- an internal data bus comprising a plurality of data buses, wherein each of the plurality of data buses is configured to transmit a respective data bit in parallel with respect to the others of the plurality of data buses;
- a parallel-to-serial converter configured to receive the respective data bits from the internal data bus and to transmit the data bits serially at an output, wherein the parallel-to-serial converter comprises a plurality of stages, and wherein each of the plurality of stages comprises a plurality of switches, wherein a first switch is configured to alternatingly transmit data from a first input and a second input in response to a first control signal, and wherein a second switch is configured to alternatingly transmit data from a third input and a fourth input in response to a second control signal; and
- a read data bus configured to receive the data bits from the output of the converter and to transmit the data bits externally with respect to the device.
7. The device, as set forth in claim 6, wherein the internal data bus transmits the data bits at a first frequency, and wherein the read data bus transmits the data bits at a second frequency greater than the first frequency.
8. The device, as set forth in claim 7, wherein the second frequency is approximately eight times greater than the first frequency.
9. The device, as set forth in claim 7, wherein the second frequency is in the range of approximately 800-1066 Mbps.
10. The device, as set forth in claim 6, wherein each of the respective control signals is generated internally with respect to the parallel-to-serial converter.
11. The device, as set forth in claim 6, wherein each of the plurality of stages is configured to double a frequency of data transmission.
12. The device, as set forth in claim 6, wherein the device comprises a memory device.
13. The device, as set forth in claim 6, wherein the device comprises a DDR3 SDRAM.
14. A data sort device comprising:
- a first switching stage, configured to receive data in parallel on eight data buses and configured to transmit the data on four data buses, wherein the first switching stage comprises a plurality of switches and wherein each of the plurality of switches is controlled by a respective clock signal, wherein each respective clock signal comprises a different phase;
- a second switching stage configured to receive the data from the first switching stage on the four data buses and configured to transmit the data on two data buses; and
- a final switching stage configured to receive the data from the second switching stage on the two data buses and configured to serially transmit the data on an output bus.
15. The data sort device, as set forth in claim 14, wherein the first plurality of switches of the first switching stage comprises:
- a first switch configured to receive a first bit of a data word on a first of the eight data buses and to receive a fifth bit of the data word on a second of the eight data buses and further configured to alternatingly transmit the first bit and the fifth bit onto a first of the four data buses;
- a second switch configured to receive a third bit of the data word on a third of the eight data buses and to receive a seventh bit of the data word on a fourth of the eight data buses and further configured to alternatingly transmit the third bit and the seventh bit onto a second of the four data buses;
- a third switch configured to receive a second bit of the data word on a fifth of the eight data buses and to receive a sixth bit of the data word on a sixth of the eight data buses and further configured to alternatingly transmit the second bit and the sixth bit onto a third of the four data buses; and
- a fourth switch configured to receive a fourth bit of the data word on a seventh of the eight data buses and to receive an eighth bit of the data word on an eighth of the eight data buses and further configured to alternatingly transmit the fourth bit and the eighth bit onto a fourth of the four data buses.
16. The data sort device, as set forth in claim 15, wherein the second switching stage comprises:
- a fifth switch configured to alternatingly receive the first bit and the fifth bit on the first of the four data buses and to alternatingly receive the third bit and the seventh bit on the second of the four data buses and further configured to alternatingly transmit each of first bit, the third bit, the fifth bit, and the seventh bit onto a first of the two data buses; and
- a sixth switch configured to alternatingly receive the second bit and the sixth bit on the third of the four data buses and to alternatingly receive the fourth bit and the eight bit on the fourth of the four data buses and further configured to alternatingly transmit each of second bit, the fourth bit, the sixth bit, and the eighth bit onto a second of the two data buses.
17. The data sort device, as set forth in claim 16, wherein the final switching stage is configured to alternatingly receive the first bit, the third bit, the fifth bit and the seventh bit on the first of the two data buses and to alternatingly receive the second bit, the fourth bit, the sixth bit and the eighth bit on the second of the two data buses and further configured to alternatingly transmit the first bit, the second bit, the third bit, the fourth bit, the fifth bit, the sixth bit, the seventh bit and the eighth bit on the output bus.
18. The data sort device, as set forth in claim 14, wherein the four data buses transmit data twice as fast as the eight data buses transmit data.
19. The data sort device, as set forth in claim 14, wherein the two data buses transmit data twice as fast as the four data buses transmit data.
20. The data sort device, as set forth in claim 14, wherein the output bus transmits data twice as fast as the two data buses transmit data.
21. A method of converting parallel data to serial data comprising:
- receiving data in parallel on eight data buses at a first switching stage;
- transmitting the data from the first switching stage on four data buses, wherein the data is transmitted on each of the four data buses by a respective clock signal, wherein each respective clock signal comprises a respective phase which is different from the respective phase of any of the other respective clock signals;
- receiving the data from the first switching stage on the four data buses at a second switching stage;
- transmitting the data from the second switching stage on two data buses;
- receiving the data from the second switching stage on the two data buses at a final switching stage; and
- transmitting the data serially from the final switching stage onto an output bus.
22. The method, as set forth in claim 21, wherein receiving data at the first switching stage comprises:
- receiving a first bit of a data word at a first switch on a first of the eight data buses;
- receiving a fifth bit of the data word at the first switch on a second of the eight data buses;
- alternatingly transmitting the first bit and the fifth bit onto a first of the four data buses;
- receiving a third bit of the data word at a second switch on a third of the eight data buses;
- receiving a seventh bit of the data word at the second switch on a fourth of the eight data buses;
- alternatingly transmitting the third bit and the seventh bit onto a second of the four data buses;
- receiving a second bit of a data word at a third switch on a fifth of the eight data buses;
- receiving a sixth bit of the data word at the third switch on a sixth of the eight data buses;
- alternatingly transmitting the second bit and the sixth bit onto a third of the four data buses;
- receiving a fourth bit of a data word at a fourth switch on a seventh of the eight data buses;
- receiving a eighth bit of the data word at the fourth switch on an eighth of the eight data buses; and
- alternatingly transmitting the fourth bit and the eighth bit onto a fourth of the four data buses.
23. The method, as set forth in claim 22, wherein receiving data at the second switching stage comprises:
- alternatingly receiving the first bit and the fifth bit on the first of the four data buses at a fifth switch;
- alternatingly receiving the third bit and the seventh bit on the second of the four data buses at the fifth switch;
- alternatingly transmitting each of first bit, the third bit, the fifth bit, and the seventh bit from the fifth switch onto a first of the two data buses;
- alternatingly receiving the second bit and the sixth bit on the third of the four data buses at a sixth switch;
- alternatingly receiving the fourth bit and the eighth bit on the fourth of the four data buses at the sixth switch; and
- alternatingly transmitting each of second bit, the fourth bit, the sixth bit, and the eighth bit from the sixth switch onto a second of the two data buses.
24. The method, as set forth in claim 23, wherein transmitting the data serially from the final switching stage comprises:
- alternatingly receiving the first bit, the third bit, the fifth bit and the seventh bit on the first of the two data buses at the final switching stage;
- alternatingly receiving the second bit, the fourth bit, the sixth bit and the eighth bit on the second of the two data buses; and
- alternatingly transmitting the first bit, the second bit, the third bit, the fourth bit, the fifth bit, the sixth bit, the seventh bit and the eighth bit onto the output bus.
3885167 | May 1975 | Berglund |
5243599 | September 7, 1993 | Barrett et al. |
5721545 | February 24, 1998 | Poplevine |
5726990 | March 10, 1998 | Shimada et al. |
6556494 | April 29, 2003 | Morzano et al. |
6600691 | July 29, 2003 | Morzano et al. |
6614371 | September 2, 2003 | Zhang |
6741193 | May 25, 2004 | Nagata |
6970116 | November 29, 2005 | Masaki |
7006021 | February 28, 2006 | Lombaard |
20050219084 | October 6, 2005 | Dietrich et al. |
0 759 664 | February 1997 | EP |
1 028 427 | August 2000 | EP |
- Cao et al., OC-192 Transmitter and Receiver in Standard 0.18- μm CMOS, IEEE Journal of Solid-State Circuits, vol. 37, No. 12, Dec. 2002, pp. 1768-1780.
- Ivan E. Sutherland, Micropipelines, Communications of the ACM, Jun. 1989, vol. 32, pp. 720-729.
- R.B. Nubling, J. Yu, K.C.Wang, P.M. Asbeck, N.H. Sheng, M.F. Chang, R.L. Pierson, G.J. Sullivan, M.A. McDonald, A.J. Price, and D.M. Chen; High Speed 8:1 Multiplexer and 1:8 demultiplexer implemented with A/GaAs/GaAs HBTs; Thousand Oaks, CA. USA, 1990.
Type: Grant
Filed: Sep 1, 2005
Date of Patent: Apr 15, 2008
Patent Publication Number: 20070046511
Assignee: Micron Technology, Inc. (Boise, ID)
Inventors: Christopher K. Morzano (Boise, ID), Wen Li (Boise, ID)
Primary Examiner: Howard Williams
Attorney: Fletcher Yoder
Application Number: 11/218,997
International Classification: H03M 9/00 (20060101);