I. Field of the Disclosure
The technology of the disclosure relates generally to memory structures and data transfer therefrom.
II. Background
Computing devices rely on memory. The memory may be a hard drive or removable memory drive, for example, and may store software that enables functions on the computing device. Further, memory allows software to read and write data that is used in execution of the software's functionality. While there are several types of memory, random access memory (RAM) is among the most frequently used by computing devices. Dynamic RAM (DRAM) is one type of RAM that is used extensively. Computation speed is at least partially a function of how fast data can be read from the DRAM cells and how fast data can be written to the DRAM cells. Various topologies have been formulated for coupling DRAM cells to an applications processor through a bus. One popular format of DRAM is double data rate (DDR) DRAM. In release 2 of the DDR standard (i.e., DDR2) a T-branch topology was used. In release 3 of the DDR standard (i.e., DDR3), a fly-by topology was used.
In existing DRAM interfaces, data is sent in a parallel manner across the width of the bus. That is, for example, eight bits of an eight-bit word are all sent at the same instance across eight lanes of the bus. The bits are captured in the memory, aggregated into a block, and uploaded into a memory array. When such a parallel transmission is used, especially in a fly-by topology, the word has to be synchronously captured so that the memory may identify the bits as belonging to the same word and upload the bits to the correct memory address.
Skew between bits and between lanes of the bus is unavoidable, and becomes truly problematic at higher speeds. This skew in timing can be “leveled” by adjusting, through training, the delays of the bits and strobes. This “leveled” approach is frequently referred to as “write-leveling.” Write leveling is a hard problem to solve at high speeds and requires an adjustable clock, which in turn leads to complicated frequency switching issues. Thus, there is a need for an improved manner of transferring data to the DRAM arrays.
Aspects disclosed in the detailed description include serial data transmission for dynamic random access memory (DRAM) interfaces. Instead of the parallel data transmission that gives rise to skew concerns, exemplary aspects of the present disclosure transmit the bits of a word serially over a single lane of the bus. Because the bus is a high speed bus, even though the bits come in one after another (i.e., serially), the time between arrival of the first bit and arrival of the last bit of the word is still relatively short. Likewise, because the bits arrive serially, skew between bits becomes irrelevant. The bits are aggregated within a given amount of time and loaded into the memory array.
By sending the bits serially, the need to perform write leveling is eliminated, which reduces training time and area overhead within the memory device. Likewise, power saving techniques may be implemented by turning off lanes that are not needed. Once selective lane activation is used, transmission rates may be varied without having to change the clock frequency. This bandwidth adjustment can be accomplished much faster than with frequency scaling because there is no need to wait for a lock by a phase locked loop (PLL) or training of the channel.
In this regard, in an exemplary aspect, a method is disclosed. The method comprises serializing a byte of data at an applications processor (AP). The method also comprises transmitting the serialized byte of data across a single lane of a bus to a DRAM element. The method also comprises receiving, at the DRAM element, the serialized byte of data from the single lane of the bus.
In this regard, in another exemplary aspect, a memory system is disclosed. The memory system comprises a communication bus comprising a plurality of data lanes and a command lane. The memory system also comprises an AP. The AP comprises a serializer. The AP also comprises a bus interface operatively coupled to the communication bus. The AP also comprises a control system. The control system is configured to cause the serializer to serialize a byte of data and pass the serialized byte of data through the bus interface to the communication bus. The memory system also comprises a DRAM element. The DRAM element comprises a DRAM bus interface operatively coupled to the communication bus. The DRAM element also comprises a deserializer configured to receive data from the DRAM bus interface and deserialize the received data. The DRAM element also comprises a memory array configured to store data received by the DRAM element.
In this regard, in another exemplary aspect, an AP is disclosed. The AP comprises a serializer. The AP also comprises a bus interface operatively coupled to a communication bus. The AP also comprises a control system. The control system is configured to cause the serializer to serialize a byte of data and pass the serialized byte of data through the bus interface to a single lane of the communication bus.
In this regard, in another exemplary aspect, a DRAM element is disclosed. The DRAM element comprises a DRAM bus interface operatively coupled to a communication bus. The DRAM element also comprises a deserializer configured to receive data from the DRAM bus interface and deserialize the received data. The DRAM element also comprises a memory array configured to store data received by the DRAM element.
With reference now to the drawing figures, several exemplary aspects of the present disclosure are described. The word “exemplary” is used herein to mean “serving as an example, instance, or illustration.” Any aspect described herein as “exemplary” is not necessarily to be construed as preferred or advantageous over other aspects.
Aspects disclosed in the detailed description include serial data transmission for dynamic random access memory (DRAM) interfaces. Instead of the parallel data transmission that gives rise to skew concerns, exemplary aspects of the present disclosure transmit the bits of a word serially over a single lane of the bus. Because the bus is a high speed bus, even though the bits come in one after another (i.e., serially), the time between arrival of the first bit and arrival of the last bit of the word is still relatively short. Likewise, because the bits arrive serially, skew between bits becomes irrelevant. The bits are aggregated within a given amount of time and loaded into the memory array.
By sending the bits serially, the need to perform write leveling is eliminated, which reduces training time and area overhead within the memory device. Likewise, power saving techniques may be implemented by turning off lanes that are not needed. Once selective lane activation is used, transmission rates may be varied without having to change the clock frequency. This bandwidth adjustment can be accomplished much faster than with frequency scaling because there is no need to wait for a lock by a phase locked loop (PLL) or training of the channel.
Before addressing exemplary aspects of the present disclosure, a brief review of a conventional parallel data transfer scheme is provided with reference to
With continuing reference to
With continued reference to
To eliminate the disadvantages imposed by write leveling and to eliminate the need for the variable PLL 20, exemplary aspects of the present disclosure provide for serial transmission of the words over single lanes within the data bus. Since the words are received serially, there is no need for the precise timing or write leveling of the memory system 10. Further, by serializing the data and sending words on single lanes within the data bus, the effective bandwidth may be throttled by choosing which lanes are operational.
In this regard,
With continued reference to
As described above, the conventional DRAM elements 16 and 18 of
By changing the data received at the DRAM elements 56 and 58 to serial data based on the clock signal 64 and then collecting the data in the FIFO buffer 92, the memory system 50 is able to eliminate the need for write leveling. That is, because the data arrives serially, there is no longer any requirement that the different parallel bits arrive at the same time, so the complicated procedures (e.g., write leveling) used to achieve such simultaneous arrival are not needed. Furthermore, aspects of the present disclosure also provide an adjustable bandwidth with commensurate power saving benefits without having to scale the frequency of the bus. Specifically, unused lanes may be turned off if the unused lanes are not needed. The dynamic bandwidth is effectuated by turning off lanes when lower bandwidth is possible and reactivating lanes when more bandwidth is required. In contrast, conventional memory systems, such as the memory system 10 of
In this regard,
Against this backdrop of hardware,
With continued reference to
With continued reference to
As noted above, because the speed of the M lane bus 80 and M′ lane bus 84 is relatively high, the delay between arrival of the first bit of a byte and the last bit of a byte is relatively small. Thus, any latency introduced by the delay in deserializing and storing in the FIFO buffer 92 is acceptable when compared to the expense and difficulty associated with write leveling and/or using a variable frequency PLL.
The serial data transmission for DRAM interfaces according to aspects disclosed herein may be provided in or integrated into any processor-based device. Examples, without limitation, include a set top box, an entertainment unit, a navigation device, a communication device, a fixed location data unit, a mobile location data unit, a mobile phone, a cellular phone, a computer, a portable computer, a desktop computer, a personal digital assistant (PDA), a monitor, a computer monitor, a television, a tuner, a radio, a satellite radio, a music player, a digital music player, a portable music player, a digital video player, a video player, a digital video disc (DVD) player, and a portable digital video player.
In this regard,
Other devices can be connected to the system bus 138. As illustrated in
The CPU(s) 132 may also be configured to access the display controller(s) 148 over the system bus 138 to control information sent to one or more displays 152. The display controller(s) 148 sends information to the display(s) 152 to be displayed via one or more video processors 154, which process the information to be displayed into a format suitable for the display(s) 152. The display(s) 152 can include any type of display, including but not limited to a cathode ray tube (CRT), a liquid crystal display (LCD), a plasma display, a light emitting diode (LED) display, etc.
Those of skill in the art will further appreciate that the various illustrative logical blocks, modules, circuits, and algorithms described in connection with the aspects disclosed herein may be implemented as electronic hardware, instructions stored in memory or in another computer-readable medium and executed by a processor or other processing device, or combinations of both. The devices described herein may be employed in any circuit, hardware component, integrated circuit (IC), or IC chip, as examples. Memory disclosed herein may be any type and size of memory and may be configured to store any type of information desired. To clearly illustrate this interchangeability, various illustrative components, blocks, modules, circuits, and steps have been described above generally in terms of their functionality. How such functionality is implemented depends upon the particular application, design choices, and/or design constraints imposed on the overall system. Skilled artisans may implement the described functionality in varying ways for each particular application, but such implementation decisions should not be interpreted as causing a departure from the scope of the present disclosure.
The various illustrative logical blocks, modules, and circuits described in connection with the aspects disclosed herein may be implemented or performed with a processor, a Digital Signal Processor (DSP), an Application Specific Integrated Circuit (ASIC), a Field Programmable Gate Array (FPGA) or other programmable logic device, discrete gate or transistor logic, discrete hardware components, or any combination thereof designed to perform the functions described herein. A processor may be a microprocessor, but in the alternative, the processor may be any conventional processor, controller, microcontroller, or state machine. A processor may also be implemented as a combination of computing devices, e.g., a combination of a DSP and a microprocessor, a plurality of microprocessors, one or more microprocessors in conjunction with a DSP core, or any other such configuration.
The aspects disclosed herein may be embodied in hardware and in instructions that are stored in hardware, and may reside, for example, in Random Access Memory (RAM), flash memory, Read Only Memory (ROM), Electrically Programmable ROM (EPROM), Electrically Erasable Programmable ROM (EEPROM), registers, a hard disk, a removable disk, a CD-ROM, or any other form of computer readable medium known in the art. An exemplary storage medium is coupled to the processor such that the processor can read information from, and write information to, the storage medium. In the alternative, the storage medium may be integral to the processor. The processor and the storage medium may reside in an ASIC. The ASIC may reside in a remote station. In the alternative, the processor and the storage medium may reside as discrete components in a remote station, base station, or server.
It is also noted that the operational steps described in any of the exemplary aspects herein are described to provide examples and discussion. The operations described may be performed in numerous different sequences other than the illustrated sequences. Furthermore, operations described in a single operational step may actually be performed in a number of different steps. Additionally, one or more operational steps discussed in the exemplary aspects may be combined. It is to be understood that the operational steps illustrated in the flow chart diagram may be subject to numerous different modifications as will be readily apparent to one of skill in the art. Those of skill in the art will also understand that information and signals may be represented using any of a variety of different technologies and techniques. For example, data, instructions, commands, information, signals, bits, symbols, and chips that may be referenced throughout the above description may be represented by voltages, currents, electromagnetic waves, magnetic fields or particles, optical fields or particles, or any combination thereof.
The previous description of the disclosure is provided to enable any person skilled in the art to make or use the disclosure. Various modifications to the disclosure will be readily apparent to those skilled in the art, and the generic principles defined herein may be applied to other variations without departing from the spirit or scope of the disclosure. Thus, the disclosure is not intended to be limited to the examples and designs described herein, but is to be accorded the widest scope consistent with the principles and novel features disclosed herein.
The present application claims priority to U.S. Provisional Patent Application Ser. No. 61/930,985 filed on Jan. 24, 2014 and entitled “SERIAL DATA TRANSMISSION FOR A DYNAMIC RANDOM ACCESS MEMORY (DRAM) INTERFACE,” which is incorporated herein by reference in its entirety.
Number | Date | Country | |
---|---|---|---|
61930985 | Jan 2014 | US |