Recent developments in a number of different digital technologies have greatly increased the need to transfer large amounts of data from one device to another or across a network to another system. Technological developments permit digitization and compression of large amounts of voice, video, imaging, and data information, which may be rapidly transmitted from computers and other digital equipment to other devices within the network. Computers have faster central processing units and substantially increased memory capabilities, which have increased the demand for devices that can more quickly store and transfer larger amounts of data.
These developments in digital technology have stimulated a need to deliver ever faster storage devices to supply data to these processing units. Double Data Rate (DDR) SDRAM included in main memories for computing systems provides improvements in performance but does not provide permanent storage. Further improvements in faster, permanent data storage are needed.
The subject matter regarded as the invention is particularly pointed out and distinctly claimed in the concluding portion of the specification. The invention, however, both as to organization and method of operation, together with objects, features, and advantages thereof, may best be understood by reference to the following detailed description when read with the accompanying drawings in which:
It will be appreciated that for simplicity and clarity of illustration, elements illustrated in the figures have not necessarily been drawn to scale. For example, the dimensions of some of the elements may be exaggerated relative to other elements for clarity. Further, where considered appropriate, reference numerals have been repeated among the figures to indicate corresponding or analogous elements.
In the following detailed description, numerous specific details are set forth in order to provide a thorough understanding of the invention. However, it will be understood by those skilled in the art that the present invention may be practiced without these specific details. In other instances, well-known methods, procedures, components and circuits have not been described in detail so as not to obscure the present invention.
As shown in
The figure illustrates the wireless embodiment where a transceiver 12 receives and transmits a modulated signal from multiple antennas, although this is not limiting to the present invention. Analog front end transceiver 12 may be a stand-alone Radio Frequency (RF) discrete or integrated analog circuit, or alternatively, transceiver 12 may be embedded with a processor as a mixed-mode integrated circuit. The processor, in general, processes functions that fetch instructions, generate decodes, find operands, and perform appropriate actions, then stores results. The processor may include baseband and applications processing functions and utilize one or more processor cores to handle application functions and allow processing workloads to be shared across the cores.
The processor may transfer data through an interface 26 to a system memory 28 that may include a combination of memories such as a Random Access Memory (RAM), a Read Only Memory (ROM) and a nonvolatile memory, although neither the type of memory, variety of memories, nor combination of memories included in system memory 28 is a limitation of the present invention. Nonvolatile memory 26 may be a memory such as, for example, an ETOX™ Flash NOR Memory, an Electrically Erasable and Programmable Read Only Memory (EEPROM), a Ferroelectric Random Access Memory (FRAM), a Polymer Ferroelectric Random Access Memory (PFRAM), a Magnetic Random Access Memory (MRAM), an Ovonics Unified Memory (OUM), or any other device capable of storing instructions and/or data and retaining that information even with device 10 in a power conservation mode. However, it should be understood that the scope of the present invention is not limited to these examples for a nonvolatile memory.
In accordance with the present invention the architecture of device 10 includes a Double Data Rate (DDR) nonvolatile memory 30 as a high-bandwidth technology that supports data transfers on both the rising and falling edges of each clock cycle. The clock signal transitions from “0” to “1” and back to “0” each cycle with the first transition called the “rising edge” and the second transition the “falling edge”. Normally only one of these clock signal transitions is used to trigger a data transfer but with DDR nonvolatile memory 30 both clock edges are used, effectively doubling the memory's bandwidth by transferring data twice per clock signal. Again, in accordance with the present invention the DDR nonvolatile memory 30 architecture accommodates legacy flash functions while implementing DDR behavior.
Data transferred to these row buffers located in page buffers 206 is burst out to the system based on a clock. Flash specific information and array data may be transferred to the row buffers based on an active command similar to DDR protocol (JEDEC definition). Thus, an active command as detected and decoded by DDR I/F 202 triggers an internal array sense operation for core flash array 210. The data accessed by the active command is stored in one of the row buffers and burst out after specific latencies through DDR I/F 202 during a read command.
As illustrated in the figure, arrayed data stored in core flash array 210 may be sensed and transferred to the I/O bus 208. I/O bus 208 transfers 256-bits of data/information at the 20 MHz frequency to the multiple page buffers 206 where data is held for burst reads. Thus, the DDR I/F block 202 transfers the page buffer data to the host processor system at both edges of the system clock, converting the 256 bit single edged data within the flash device to a 16 bit double edged data to the host processor system.
Also as illustrated in the figure, various registers in DDR nonvolatile memory 30 that store non-array data may be read through the interface that includes the row buffers, i.e., page buffers 206. I/O bus 208 connects page buffers 206 with both the program buffer 212 and the registers and other SRAM block 214 for transferring the data stored in these non-array components to the row buffer and providing access directly during the DDR burst protocol. Thus, an active command issued to a non-array address as decoded by DDR I/F 202 is used to transfer the non-array data to the row buffer where that data may be burst out to the host processor system. Note that even through the non-array data may change over time depending on the activities being performed in the background by DDR nonvolatile memory 30, regular refreshes of the non-array data to the row buffer to ensure the integrity of the data may be scheduled using an internal synchronization scheme.
Writing to DDR nonvolatile memory 30 involves two steps to store data in the internal volatile registers. The data received by DDR I/F 202 in a write operation is transferred through page buffers 206 to eventually be stored in the non-volatile storage as directed by an internal microcontroller 224. Thus, a first step in the write operation writes data from DDR I/F 202 to page buffers 206. A second step transfers that stored data to I/O bus 208 for storage in the non-volatile storage registers.
In one embodiment closing the row buffers of page buffers 20 triggers the transfer of the stored data to the register destination. In this embodiment microcontroller 224 issues a command that results in data storage to the eventual non-volatile registers. The command may or may not manipulate data prior to storage. Note that the bus transfer speed for I/O bus 208 corresponds to the buffer closure latency to ensure that subsequent operations are not interrupted.
Alternatively, another embodiment includes automated data transfer (synchronization) between the row buffer and the non-volatile registers where the data belongs. This embodiment may use an internal state machine (not shown) to inhibit conflicts between external data writes and internal data transfers.
Note that microcontroller 224 may manage complex memory operations internal to DDR nonvolatile memory 30 without intervention from the host processor. Microcontroller 224 may access program code from microcode storage 218 and receive data needed for operations through memory bus 226. Program buffer data stored in program buffer 212 may be accessed by microcontroller 224 to initiate the nonvolatile memory array program operation. Microcontroller 224 may use memory bus 226 to update status bits in the status register of control registers 216. Status bits may be burst out of the status register through page buffers 206 and the DDR I/F block 202 on a host processor system request.
Method 300 is shown beginning at block 310 for an operation where commands are received by DDR nonvolatile memory 30 and decoded by DDR I/F 202. Block 320 indicates an operation to store data in page buffers 206. In block 330 an operation is described where a control signal issued by microcontroller 224 initiates a data transfer. In block 340 the operation includes transferring data stored in page buffers 206 over I/O bus 208 to store in non-volatile storage. Thus, a signal issued by microcontroller 224 controls the data transfers from page buffers 206 through the I/O bus 208 and the eventual storage in the non-volatile registers.
Note that the architecture and operating methods within DDR nonvolatile memory 30 involve a speed path that is limited to the buffer and the I/O ring. The internal registers and flash specific operations operate at 20 MHz and 40 MHz speeds do not operate at the DDR speeds. By reducing the total load on the fast DDR bus, higher performance (e.g. 333 MHz vs. 266 MHz) for the DDR nonvolatile memory may be achieved.
By now it should be apparent that a DDR nonvolatile memory has been presented with page buffers (row buffers) to store the read data and the write data. The data from the page buffers is burst out via the DDR interface at 333 MHz speeds. Reading and writing data from the page buffers to the I/O bus is synchronized with the 20 MHz clock as compared to the 166 MHz operation of the DDR interface. Thus, synchronization is achieved for data transfers between the registers (labeled as program and other command registers) and the page buffers. The array data in transferred based on a specific DDR command (active command).
While certain features of the invention have been illustrated and described herein, many modifications, substitutions, changes, and equivalents will now occur to those skilled in the art. It is, therefore, to be understood that the appended claims are intended to cover all such modifications and changes as fall within the true spirit of the invention.