The present invention relates generally to mass storage devices and more particularly to a highly integrated mass storage device with an intelligent FLASH controller.
A removable mass storage device includes a FLASH controller and one or more FLASH memories. It has replaced a floppy disk because it is smaller in size and has a higher storage capacity when utilized with a computing device, such as a personal computer, notebook computer, laptop computer or other portable device.
The FLASH controller 12 includes a USB serial interface unit 14 and a FLASH interface unit 16. The USB serial interface unit includes a transceiver (XCVR) block 18, a serial interface engine (SIE) block 20, data buffers 22, registers 24 and interrupt logic 40. The USB serial interface is 14 coupled to an internal bus 26 to allow for the various elements of the USB interface to communicate with the elements of the FLASH interface unit 16. The FLASH interface unit includes a microprocessor unit (MPU) 28, a ROM 30, a RAM 32, FLASH logic 34, error correction code (ECC) logic 36 and general purpose input/output (GPIO) logic 38. The GPIO logic 38 is coupled to a plurality of LEDs, write protect switch and other I/O devices 42. The FLASH logic is coupled to a plurality of FLASH memories 44.
The mass storage device 10 includes an external power regulator 52 for providing power supplies to the FLASH controller 12. The device 10 includes an external reset circuit 54 for providing a reset signal to the FLASH controller 12. The mass storage device also includes an external quart crystal oscillator 56 to provide the fundamental frequency to PLL 58 within the FLASH controller 12.
The conventional FLASH controller 12 has several problems which will be detailed below.
Integrated ROM for Software Program
The conventional FLASH controller 12 has an external ROM 46 for storing software program (including boot and control codes). After development software program is provided to the internal ROM 30 in the FLASH interface unit 16. Once the internal ROM 30 is programmed, it cannot be changed and the software program is “frozen”. Typically, the external ROM 46 is eliminated but if it remains in the mass storage device 10 it affects the compactness of the controller. The advent of new FLASH memory types and new features will always make the current FLASH controller an obsolete one. Accordingly, typically frequent development cycles are necessary which are costly and time consuming.
USB 1.X Standard
USB 1.x is an older generation of serial interface with maximum throughput of 12 Mb/s. This speed is a bottleneck compared to the speed performance of NAND FLASH memory. The contemporary NAND write speed is around 55 Mb/s and read speed is around 129 Mb/s. These speeds are apparently much faster than USB1.x standard. The progress of semiconductor process will further increase the performance of NAND and thereby the speed bottleneck will become greater.
Variety of New FLASH Types
The advance of FLASH technology has also created a greater variety of FLASH types for reasons of performance, cost and capacity. For example, a large page size (2K Bytes) FLASH memory has better write performance against a small page size (512 Bytes) FLASH memory; an Multi Level Cell (MLC) FLASH memory has higher capacity versus an Single Level Cell (SLC) FLASH memory for the same form factor; an AND or Super-AND FLASH memory has been created to circumvent intellectual property issues. To support these various FLASH memories, the FLASH interface unit must be able to detect and access them accordingly.
Compactness
Since the FLASH controller is a removable device its compactness is highly important. In addition to the FLASH controller and the FLASH memory, the external components (i.e., power regulator 52, reset circuit 54, crystal oscillator 56 and external ROM 46) also create problems when attempting to reduce the overall size of the device.
Accordingly, what is needed is a highly integrated mass storage device which includes a FLASH controller that overcomes the above-identified problems. The present invention addresses such a need.
A FLASH controller is disclosed. The controller comprises a USB interface unit. The USB interface unit implements a USB standard that has a bus speed equal or greater than 12 Mb/s. The controller includes an internal bus coupled to the USB interface unit; and a FLASH interface unit coupled to the internal bus. The FLASH interface unit includes FLASH controller logic that allows the throughput for access to the FLASH memory to match the speed of the USB standard.
Advantages of the FLASH controller in accordance with the present invention include (1) utilizing the higher speed USB interface such as the USB 2.0 standard, which substantially increases the serial throughput between USB host and FLASH controller; (2) utilizing more advanced FLASH control logic which is implemented to raise the throughput for the FLASH memory access; (3) utilizing an intelligent algorithm to detect and access the different FLASH types, which broadens the sourcing and the supply of FLASH memory; (4) by storing the software program along with data in FLASH memory which results in the cost of the controller being reduced, and also makes the software program field changeable and upgradeable; and (5) providing high integration, which substantially reduces the overall space needed and reduces the complexity and the cost of manufacturing.
The present invention relates generally to mass storage devices and more particularly to a highly integrated mass storage device with an intelligent FLASH controller. The following description is presented to enable one of ordinary skill in the art to make and use the invention and is provided in the context of a patent application and its requirements. Various modifications to the preferred embodiment and the generic principles and features described herein will be readily apparent to those skilled in the art. Thus, the present invention is not intended to be limited to the embodiment shown but is to be accorded the widest scope consistent with the principles and features described herein.
As is seen the crystal 156, reset circuit 154, and power regulator 152 are now integrated within the FLASH controller 102 in contrast to being external components to the FLASH controller 12 of
The current NAND FLASH memory speeds are around 129 Mb/s for read, 55 Mb/s for write, which is a bottleneck compared to 480 Mb/s of USB 2.0. Thus, a more advanced FLASH control logic 134 implemented in accordance with the present invention increases the throughput for the FLASH memory access. There are a number of ways to raise the throughput by the FLASH control logic and they will be described below.
A. Provide Wider Broadband Flash Memory Data Bus
A typical mass storage device 200 uses a FLASH memory 202 with an 8-bit data bus, as shown in
B. Provide Concurrent Internal and External Cycles
A NAND FLASH memory has a page register and memory array as the major building blocks. For the FLASH memory write cycle, the FLASH controller executes external write cycles to fill the page register first, then the FLASH memory will assert a busy signal and program the data from the page register into the memory array. No other access to the FLASH memory is allowed during this busy period of internal program cycle that is in the magnitude of hundreds of microseconds. For the FLASH memory read cycle, before FLASH controller 102 can execute the read cycles to fetch the data, the FLASH memory asserts a busy signal and transfers the data from the memory array to the page register. No other access is allowed during this busy period of internal transfer cycle that is in the magnitude of tens of microseconds.
With multiple FLASH memories, the concurrent execution of internal and external cycles can remove the idle time caused by the internal busy period, thereby increasing the overall throughput of the FLASH memory access.
For example, referring to
C. Provide Concurrent Internal and External Cycles Upon Wider Bus
Combining the concurrent internal and external cycles with a wider data bus can further increase the throughput of the FLASH control logic. As shown in
Intelligent FLASH Controller Algorithm
The advance of FLASH memory technology has also created a greater variety of FLASH types for reasons of performance, cost and capacity. Each manufacturer may include additional features for differentiation.
Due to the potential shortage, cost, the need for sourcing flexibility of FLASH memories, and the fact that unique control is required to access each different FLASH type, it is important to implement a FLASH controller with intelligent algorithm to detect and access the different FLASH types.
The typical FLASH memory contains ID code which identifies the FLASH type, the manufacturer, and the features of the FLASH memory such as page size, block size organization, capacity, etc.
Different FLASH Types
The following are the examples of FLASH types and the ways to access them using the FLASH controller 102 in accordance with the present invention:
A. Multi-Level Cell (MLC) Versus Single-Level Cell (SLC):
Access to an MLC FLASH memory is different from access to an SLC FLASH memory. The FLASH controller 102 needs different schemes for address decoding as well as for error code detection and correction. The basic cell in a FLASH memory is a transistor 700 as shown in
Typical FLASH memory uses SLC technology, which has only two possible voltage levels shown at the left table in
MLC technology enables storage of multiple bits per memory cell by charging the floating gate of a transistor to more than two levels by precisely controlled injection of electrical charges. A two-bit MLC FLASH memory has four voltage levels as shown at the right table in
An MLC FLASH memory effectively reduces cell area as well as the die size for a given density and leads to a significantly reduced unit cost-per-megabyte. This is important for devices such as mass storage, which has concern for space and cost.
As there are more voltage levels in an MLC FLASH memory, the enhanced ECC/EDC control logic 136 (
The pin assignments may have slight differences from different vendors for the cause of different features or architectures.
Example: Samsung K9F1G08, K9W4G08 and Toshiba TC58DVG02A are the popular NAND FLASH memories with different signal assignment at Pin 6.
To accommodate multiple FLASH memories with different pin assignments on a same PCB is typically a difficult issue to address with the conventional FLASH controller. Conventionally, this issue is addressed by using hardware switching to select the appropriate signal connection according to the FLASH memory used.
To Store Software Program in Flash Memory
A conventional mass storage device uses FLASH memories for data storage. A FLASH memory is a non-volatile memory that is programmable and suitable for software program storage as well. Certain NAND FLASH memories include a Power-on Auto-read feature that enables serial access of data of the first page without command and address input after power on. This feature eases the loading of the software program when powering on.
A software program typically includes boot code and control code. The software program normally has standard and dynamic sections. The standard section is a fixed code that will never change, whereas the dynamic section contains codes that will be altered according to changes in design and features etc.
By storing the software program in the FLASH memory along with data, the program is no longer frozen, the ROM can be reduced or eliminated, thereby not only the cost of the controller is reduced, but also the software program is field changeable and upgradeable. In addition, as the upgrade or modification effort is solely in software, and hardware effort is not required, the overall development cost and time is significantly reduced.
Compactness
The compactness and cost are key factors to removable devices such as a mass storage device. Modem IC packaging can integrate discrete IC components with different technology and material into one IC package. For example, a MCP (Multi-Chip Package), as shown in
The nature of mixed signal technology allows the hybrid integration of both analog and digital circuitry. Therefore, higher integration can be incorporated into the same die for the controller, crystal, reset circuit and power regulator.
Advantages
1. Utilizing the higher speed USB interface such as the USB 2.0 standard substantially increases the serial throughput between USB host and FLASH controller.
2. Utilizing more advanced FLASH control logic which is implemented to raise the throughput for the FLASH memory access.
3. Utilizing an intelligent algorithm to detect and access the different FLASH types broadens the sourcing and the supply of FLASH memory.
4. By storing the software program along with data in FLASH memory not only is the cost of the controller reduced, but the software program is also field changeable and upgradeable.
5. Providing high integration substantially reduces the overall space needed and reduces the complexity and the cost of manufacturing.
Although the present invention has been described in accordance with the embodiments shown, one of ordinary skill in the art will readily recognize that there could be variations to the embodiments and those variations would be within the spirit and scope of the present invention. Accordingly, a FLASH controller in accordance with the present invention applies to a variety of mass storage devices such as Serial ATA FLASH hard drive, IDE FLASH hard drive, SCSI FLASH hard drive and Ethernet FLASH hard drive. In addition, a FLASH controller in accordance with the present invention also applies to FLASH memory cards such as Express Card, Mini PCI Express Card, Secure Digital Card, Multi Media Card, Memory Stick Card and Compact FLASH card. Finally, a FLASH controller in accordance with the present invention also applies to the other serial buses such as PCI Express bus, Serial ATA bus, IEEE 1394 bus and Ethernet bus. Accordingly, many modifications may be made by one of ordinary skill in the art without departing from the spirit and scope of the appended claims.