Flash based solid state disk (SSD) has slowly gained momentum and acceptance from industrial application, defense application, corporate application to server application and general user application. The major driving force behind the transition is due to advances in flash technology development and the intrinsic benefits from the flash components. The advantages of flash based SSD over tradition hard disk drive (HDD) are:
1. Lower power consumption.
2. Lighter weight.
3. Lower heat dissipation.
4. No noise.
5. No mechanical parts.
But SSD has its disadvantages that have been the hurdles for replacing HDD:
1. Higher cost.
2. Lower density.
3. Lower performance.
Further, a conventional SSD tends to manage a group of flash memory, in the order of 4, 8, 16, 32 or more components. It presents a great design challenge in the areas:
1. Pin-outs to manage too many flash device interfaces.
2. Wear-leveling across too many flash components.
3. Manufacturability and testability on SSD system.
4. Time lag in supporting and taking advantage of new flash technology.
5. Time to market.
6. Cost saving from new flash technology.
Traditional HDD comes without security built-in. If a host system with a HDD is stolen, the content of the HDD can easily be accessed and misappropriated. Even though there is a software solution to provide the whole disk encryption, it suffers several problems in real life application:
1. Performance penalty due to software encryption and decryption.
2. Additional driver installation required.
3. Still leaving room for attack if the password authentication utility is resided in the HDD.
If SSD is to become mainstreamed to transition from a niche product to a more general user application, it has to address the hurdles mentioned above, in addition to adding values such as security, scalability and others.
A conventional Secure Digital (SD) flash card block diagram is shown in FIG. 1. The block diagram comprises a physical interface 11, a SD card controller 12 and flash memory 13. The physical interface 11 connects to a host system through interface bus 14. A SD card, Compact Flash (CF) card and USB drive are the simplest form of a solid state disk (SSD).
In a conventional storage system, such as the ones described in U.S. patent Ser. No. 10/707,871 (20050005044), U.S. Ser. No. 10/709,718 (20050005063), U.S. Pat. No. 6,098,119, and U.S. Pat. No. 6,883,083, U.S. Pat. No. 6,877,044, U.S. Pat. No. 6,421,760, U.S. Pat. No. 6,138,176, U.S. Pat. No. 6,134,630, U.S. Pat. No. 6,549,981 and published application no. US 20030120865 a storage controller automatically configures disk drives at system boot-up or at runtime. It performs the basic storage identification and aggregation functionality. The prior art invention is best at detecting the drive insertion and removal during runtime. But it fails to recognize the asynchronous nature between the host system and the storage system during boot-up time. Since the storage controller functions as a virtualization controller, it takes time to identify, test and to configure the physical drives during host system boot-up. If there is not a mechanism to re-synchronize the host system and the storage system, the host system will simply time-out and fail to recognize and configure the virtual logical storage. As such, the conventional systems at best serve only as a secondary storage system, instead of a primary storage system. Another weakness of U.S. Pat. No. 6,098,119 is that the system requires each physical drive to have one or more preloaded “parameter settings” during initialization. It poses the limitation in auto-configuration.
Most of the conventional systems do not address the storage expandability and scalability either. Even though U.S. patent application Ser. No. 10/707,871 (20050005044) and U.S. patent application Ser. No. 10/709,718 (20050005063) do address the storage virtualization computer system with scalability, its focus is on the “external” storage virtualization controller coupling to a host entity that can be a host computer or a server. It fails to address the virtual storage boot-up problem mentioned above. It is still at best serving as a secondary storage based on its storage virtualization architecture.
Further, conventional systems fail to address the drive security in password authentication and hardware encryption that is vital in notebook computer primary drive application.
As in U.S. Pat. No. 7,003,623 as shown in FIG. 2, a more straight forward SSD system comprises a SATA (Serial ATA) to flash memory controller 25 and a group of flash memory 13. The SATA to flash memory controller 25 includes a SATA host interface 251, and a plurality of flash device interfaces 252. SATA host interface is for interfacing with the SATA host controller 21 of Host system 20, while the flash device interfaces 252 are for interfacing with the flash memory 13.
Each flash memory 13 has a total of about 15 to 23 signal pins to interface with the controller 25. The SATA host interface 251 requires 4 signal pins to interface with the SATA host controller 21. The SATA to flash memory controller 25 would require a total of at least 124 signal pins to manage 8 flash memory 13; or a total of 244 signal pins to manage 16 flash memory 13.
As is seen in FIG. 2, the controller 25 has to manage the error correction code (ECC), wear leveling, bad block re-mapping, free storage allocation, as well as many book keeping tasks inherent to flash memory based SSD. As it can be seen, the complexity increases proportionally to the number of flash memory components. It not only presents cost issue to the controller, but also creates manufacturability and testability on the conventional SSD system. In essence, this conventional approach is not very scalable, if the same controller is to be used for two or more different density designs. The pin count of the controller will have to accommodate at least 124 pins for four flash memory, or 244 pins for eight flash memory, or even 484 pins for sixteen flash memory chips. Therefore, this system is limited only on a small density application of SSD that is not very scalable and expandable.
Accordingly, what is desired is a system and method that addresses the above-identified issues. The present invention addresses such a need.