This application relates generally to interfaces in memory devices. More specifically, this application relates to improving performance and compatibility of input/output (IO) interfaces between a memory device and a host.
Non-volatile memory systems, such as flash memory, have been widely adopted for use in consumer products. Flash memory may be found in different forms, for example in the form of a portable memory card that can be carried between host devices or as a solid state disk (SSD) embedded in a host device. The host device may communicate with the flash memory through input/output (IO) interfaces from the flash memory controller. An interface for data transfer between integrated circuit devices may include a clock signal from the host device which is used by the flash memory to output data to the host. The timing of the data output from the flash memory may depend on the arrival of the clock signal.
The IO voltage may vary at the interface depending on a desired transfer speed and desired backwards compatibility. For example, a lower IO voltage interface and thinner IO gate oxide devices may provide higher transfer speeds, but may incur substantial changes to the interface that may cause reliability and compatibility problems. Devices designed for higher voltages (e.g. thicker gates) may be slow if a low voltage is applied, while thinner gates may not be compatible with older type cards because they are tolerant to high voltages.
It may be desirable to have an interface that utilizes thinner input/output (IO) gate oxide devices with a lower IO voltage interface that maintains compatibility at higher voltage levels. IO pre-driver logic may be split into multiple blocks that are tolerant to different voltages. For example, one block may use gate oxide devices tolerant to IO low voltage (e.g. 1.8V) that speed up the delay path during low voltage operation, while a second block may use gate oxide devices tolerant to IO higher voltage (e.g. 3.3V) for backwards compatibility for high IO voltage operation. This allows the interface to take advantage of the IO low voltage device speed for multi-purpose IO use, while still being used for both low voltage and higher voltage protocols. In other words, devices designed for lower voltage may be used for improved speed, but additional devices may be used in parallel for high voltages.
According to a first aspect, a memory system includes a non-volatile storage having an array of memory blocks storing data and a controller having a processor in communication with the blocks. The controller includes a first input/output (IO) pre-driver logic that is configured for a first voltage and a second IO pre-driver logic that is configured for a second voltage. The processor is configured to provide a signal for selecting between the first voltage and the second voltage.
According to a second aspect, a method is disclosed for interfacing with a host device in a non-volatile storage device having a controller and blocks of memory. The controller is configured for receiving a clock signal from the host device, processing the clock signal with clock pre-driver logic, and generating at least two paths with data pre-driver logic. The at least two paths are configured for different voltage levels.
According to a third aspect, a memory device comprises a non-volatile storage having an array of memory blocks storing data and a controller having a processor in communication with the non-volatile storage. The controller includes an interface circuit that is used for communications between the controller and a host device and includes a clock pre-driver logic that receives a clock signal and a data pre-driver logic that provides a data signal. The controller includes data pre-driver logic that comprises a first input/output (IO) pre-driver logic and is configured for a first voltage and a second IO pre-driver logic configured for a second voltage.
A flash memory system suitable for use in implementing aspects of the invention is shown in
Examples of commercially available removable flash memory cards include the CompactFlash (CF), the MultiMediaCard (MMC), Secure Digital (SD), miniSD, Memory Stick, SmartMedia, TransFlash, and microSD cards. Although each of these cards may have a unique mechanical and/or electrical interface according to its standardized specifications, the flash memory system included in each may be similar. These cards are all available from SanDisk Corporation, assignee of the present application. SanDisk also provides a line of flash drives under its Cruzer trademark, which are hand held memory systems in small packages that have a Universal Serial Bus (USB) plug for connecting with a host by plugging into the host's USB receptacle. Each of these memory cards and flash drives includes controllers that interface with the host and control operation of the flash memory within them.
Host systems that may use SSDs, memory cards and flash drives are many and varied. They include personal computers (PCs), such as desktop or laptop and other portable computers, tablet computers, cellular telephones, smartphones, personal digital assistants (PDAs), digital still cameras, digital movie cameras, and portable media players. For portable memory card applications, a host may include a built-in receptacle for one or more types of memory cards or flash drives, or a host may require adapters into which a memory card is plugged. The memory system may include its own memory controller and drivers but there may also be some memory-only systems that are instead controlled by software executed by the host to which the memory is connected. In some memory systems containing the controller, especially those embedded within a host, the memory, controller and drivers are often formed on a single integrated circuit chip.
The host system 100 of
The memory system 102 of
A clock signal transmitted by the host 100 is submitted to the clock IO logic 302. The clock IO logic 302 may be referred to as clock logic, clock IO cell, clock pre-driver logic, or clock IO pre-driver logic, and is further described with respect to
The voltage level 301 illustrates that the external logic 310 or core may operate at a core voltage level because the core devices are thin, while the logic to the right of the external logic 310 may be at a higher voltage, such as the IO voltage. In other embodiments, the external logic 310 may include circuitry that is optimized for low voltages, as well as circuitry for high voltages to maintain backwards compatibility. Level shifters may be necessary because the IO voltage may vary (e.g. 1.8V and 3.3V) for the same interface protocol and the core logic (e.g. external logic 310) on modern processes (0.13 um and below) may run at lower voltages (e.g. 1.2V or 1.0V).
The data IO logic 312 may be referred to as data logic, data IO cell, data pre-driver logic, or data IO pre-driver logic, and is further described with respect to
When higher transfer speeds are desired, an interface protocol may lower the IO voltage interface and use thinner IO gate oxide devices. However, the use of such gates may result in substantial changes to the interface (e.g. addition of signal pins and backward compatibility for higher IO voltage). A higher IO voltage operation may cause reliability problems. In the examples of SD UHS, MMC 4.4, or other protocols, the interface data transfer rates may increase from prior versions of the protocol, but a lower IO voltage interface was not adopted and backward compatibility may be necessary. Accordingly, the device side ASIC may be designed to handle the different voltages as described. In particular,
The inputs from the external logic 310 may first pass through a multiplexor 506, which flexes between signals I0 and I1. The outputs from the pre-driver logic blocks 502, 504 are multiplexed by multiplexor 512 to drive the last stage of the driver through additional pre-driver logic 514 to the interface 518.
The split of the IO pre-driver logic as in
The path for this circuit is divided into two paths that can maximize the use of thinner IO devices during low voltage operation and maintain backwards compatibility with high voltage IO devices. There may be a signal from the memory controller to disable the switching between block 502 and block 504 to allow for the selection between the blocks. The signal from the memory controller for selecting the path (low or high voltage) through either block 502 or block 504 may be referred to as a MUX_EN signal (not shown) and may be provided to the multiplexor 506 from the memory controller. In particular, the signal from the controller to the multiplexor 506 may determine which path is taken by establishing the voltage. In the example of
A “computer-readable medium,” “machine readable medium,” “propagated-signal” medium, and/or “signal-bearing medium” may comprise any device that includes, stores, communicates, propagates, or transports software for use by or in connection with an instruction executable system, apparatus, or device. The machine-readable medium may selectively be, but not limited to, an electronic, magnetic, optical, electromagnetic, infrared, or semiconductor system, apparatus, device, or propagation medium. A non-exhaustive list of examples of a machine-readable medium would include: an electrical connection “electronic” having one or more wires, a portable magnetic or optical disk, a volatile memory such as a Random Access Memory “RAM”, a Read-Only Memory “ROM”, an Erasable Programmable Read-Only Memory (EPROM or Flash memory), or an optical fiber. A machine-readable medium may also include a tangible medium upon which software is printed, as the software may be electronically stored as an image or in another format (e.g., through an optical scan), then compiled, and/or interpreted or otherwise processed. The processed medium may then be stored in a computer and/or machine memory.
In an alternative embodiment, dedicated hardware implementations, such as application specific integrated circuits, programmable logic arrays and other hardware devices, can be constructed to implement one or more of the methods described herein. Applications that may include the apparatus and systems of various embodiments can broadly include a variety of electronic and computer systems. One or more embodiments described herein may implement functions using two or more specific interconnected hardware modules or devices with related control and data signals that can be communicated between and through the modules, or as portions of an application-specific integrated circuit. Accordingly, the present system encompasses software, firmware, and hardware implementations.
The illustrations of the embodiments described herein are intended to provide a general understanding of the structure of the various embodiments. The illustrations are not intended to serve as a complete description of all of the elements and features of apparatus and systems that utilize the structures or methods described herein. Many other embodiments may be apparent to those of skill in the art upon reviewing the disclosure. Other embodiments may be utilized and derived from the disclosure, such that structural and logical substitutions and changes may be made without departing from the scope of the disclosure. Additionally, the illustrations are merely representational and may not be drawn to scale. Certain proportions within the illustrations may be exaggerated, while other proportions may be minimized. Accordingly, the disclosure and the figures are to be regarded as illustrative rather than restrictive.