In a typical computer memory system, the operation of passing a given amount of data to or from memory within a given period of time has normally been limited by the speed of the device's data access cycle, combined with the amount of data input/output (DQ) pins available to interface with peripheral circuitry. Moreover, as data transfer rates increase, the power used to transmit this data also increases, often to undesirable levels. This power increase is broadly a function of data toggle rate, data signal voltage swing, and capacitance of the physical circuitry across which the data signals are transmitted. This effect may become especially apparent in high speed memory devices, wherein the data toggling rates may become very high.
Embodiments of the invention generally provide a method of encoding (and decoding) data to enable multiple bit data transfers during each data access cycle in a memory system or data transfer device. In one embodiment, the method includes encoding a two bit data word, wherein a pulse level occurring during an access cycle defines a first bit of the data word, and a temporal position of the pulse within the access cycle defines the second bit of the data word.
So that the manner in which the above recited features of the present invention can be understood in detail, a more particular description of the invention, briefly summarized above, may be had by reference to embodiments, some of which are illustrated in the appended drawings. It is to be noted, however, that the appended drawings illustrate only typical embodiments of this invention and are therefore not to be considered limiting of its scope, for the invention may admit to other equally effective embodiments.
Embodiments of the invention generally provide a method for reducing the number of DQ pins and current used to access data in a memory system or data transfer device, wherein an additional bit is temporally encoded on a stream of data being transferred from or written to a memory system or data transfer device during a singular data access cycle. Within the said method, the pulse level of an encoded bit pair determines the first bit of the accessed data, and the pulse's position in time determines the second. In this manner, two bits of information may be accessed in the amount of time previously taken to access one, and the number of DQ pins in the device can consequently be halved.
Embodiments of the invention may generally be used with any type of memory or data transfer device. In one embodiment, the memory may be a circuit included on a device with other types of circuits. For example, the memory may be integrated into a processor device, memory controller device, or other type of integrated circuit device. Devices into which the memory is integrated may include system-on-a-chip (SOC) devices. In another embodiment, the memory may be provided as a memory device which is used with a separate memory controller device or processor device.
In both situations, where the memory is integrated into a device with other circuits and where the memory is provided as a separate device, the memory may be used as part of a larger computer system. The computer system may include a motherboard, central processor, memory controller, the memory, a hard drive, graphics processor, peripherals, and any other devices which may be found in a computer system. The computer system may be part of a personal computer, a server computer, or a smaller system such as an embedded system, personal digital assistant (PDA), or mobile phone.
In some cases, a device including the memory may be packaged together with other devices. Such packages may include any other types of devices, including other devices with the same type of memory, other devices with different types of memory, and/or other devices including processors and/or memory controllers. Also, in some cases, the memory may be included in a device mounted on a memory module. The memory module may include other devices including memories, a buffer chip device, and/or a controller chip device. The memory module may also be included in a larger system such as the systems described above.
In some cases, embodiments of the invention may be used with multiple types of memory or with a memory which is included on a device with multiple other types of memory. The memory types may include volatile memory and non-volatile memory. Volatile memories may include static random access memory (SRAM), pseudo-static random access memory (PSRAM), and dynamic random access memory (DRAM). DRAM types may include single data rate (SDR) DRAM, double data rate (DDR) DRAM, low power (LP) DDR DRAM, and any other types of DRAM. Nonvolatile memory types may include magnetic RAM (MRAM), flash memory, resistive RAM (RRAM), ferroelectric RAM (FeRAM), phase-change RAM (PRAM), electrically erasable programmable read-only memory (EEPROM), laser programmable fuses, electrically programmable fuses (e-fuses), and any other types of nonvolatile memory.
In the present description, reference is made to embodiments of the invention. However, it should be understood that the invention is not limited to specific described embodiments. Instead, any combination of the following features and elements, whether related to different embodiments or not, is contemplated to implement and practice the invention. Furthermore, in various embodiments the invention provides numerous advantages over the prior art. However, although embodiments of the invention may achieve advantages over other possible solutions and/or over the prior art, whether or not a particular advantage is achieved by a given embodiment is not limiting of the invention. Thus, the following aspects, features, embodiments and advantages are merely illustrative and are not considered elements or limitations of the appended claims except where explicitly recited in a claim(s). Likewise, reference to “the invention” shall not be construed as a generalization of any inventive subject matter disclosed herein and shall not be considered to be an element or limitation of the appended claims except where explicitly recited in a claim(s).
Also, signal names used herein are exemplary names, indicative of signals used to perform various functions in a given memory device. In some cases, the relative signals may vary from device to device. Furthermore, the circuits and devices described below and depicted in the figures are merely exemplary of embodiments of the invention. As recognized by those of ordinary skill in the art, embodiments of the invention may be utilized with any memory device.
CODEC 155A of
The memory device 100 may also include a data input/output (I/O) circuit 106 which may be used to input data to, and output data from, the memory array 120. One or more data lines (DQ[0:N]) may be used to input and output data to memory device 100. A write data strobe signal (write DQS) and a read DQS may be used to time the input and output of data to memory device 100, respectively.
According to an embodiment of the invention, the I/O circuit 106 receives bit pairs (or other sized bit groups) from the memory array 120. The bit pairs or groups are then encoded in CODEC 155B and propagated from the memory device to other devices such as the controller 150 depicted in
As depicted in
In the first waveform 210, a high pulse level transmitted “early” (e.g., in the first portion of a DQS cycle) represents the transfer of a binary ‘10.’ In the second waveform 220, a high pulse level transmitted “late” (e.g., in the second portion of a DQS cycle) represents the transfer of a binary ‘11.’ In the third waveform 230, a low pulse level transmitted “early” (e.g., in the first portion of a DQS cycle) represents the transfer of a binary ‘00.’ In the fourth waveform 240, a low pulse level transmitted “late” (e.g., in the second portion of a DQS cycle) represents the transfer of a binary ‘01.’ It will be appreciated that the particular waveforms depicted as representing particular bit pairs may instead be used to represent different bit pairs.
In various embodiments of the current invention represented by memory device 100 of
It will be evident to those skilled in the art and informed by the present disclosure that the invention may be expanded to encoding/decoding methods applicable to more than data bit pairs. Specifically, the invention comprises a methodology adapted to use a pulse level/position characteristic of a pulse waveform to define thereby a multiple bit data word. The word may have two or more bits. In the case of an M-bit data word, each possible bit combination may be conveyed using M levels and M temporal positions within a time interval defined by the active edges of the data strobe. In a pure digital system, such extensions may not be appropriate. However, in systems where multiple levels are available, such extensions may be used to allow for the transfer of multiple bits of data per access cycle. For every additional bit that can be transferred during one access cycle, the number of DQ pins used to maintain the same data transfer rate may be reduced.
Hence, while the foregoing is directed to embodiments of the present invention, other and further embodiments of the invention may be devised without departing from the basic scope thereof, which is determined by the claims that follow.