Abstract:
A storage unit made of fast and slow storage medium is implemented to shorten computer boot time significantly. The unit is composed of fast storage medium such as random access memory (RAM) and slow storage medium such as FLASH, SRAM, Battery Powered RAM, ROM and CD-ROM etc. A data storage medium controller is implemented to move data between second data storage medium and slow storage medium in a way that is transparent to the system bus so that data moving can happen in parallel to computer initialization. This architecture allows computer to boot from a faster media without having to wait for data to be moved from slower media and hence making computer boot faster.

Description:
BACKGROUND OF INVENTION  
         [0001]    1. Field of Invention  
           [0002]    The present invention relates to a data storage system for a computer and, more particularly, to a data storage system for fast booting of a computer and, more particularly, to a combination of a first data storage medium for storage of data in an economic and secure manner with a second data storage medium for receiving data from the first data for fast booting of a computer. For example, the first data storage medium may be an erasable and programmable non-volatile memory module connected to a computer host platform through a bus. The bus may be an IDE bus, USB bus, ISA bus, PCI bus, system RAM bus or any other appropriate bus. For example, the second data storage medium may be a RAM module.  
           [0003]    2. Related Prior Art  
           [0004]    Erasable and programmable non-volatile memories, hereinafter referred to as “flash memories” or “flash devices,” are known in the art for storage of data. Flash devices include electrically erasable and programmable read-only memories (“EEPROM”). An EEPROM consists of flash-type, floating-gate transistors, and is similar to an EPROM in function and performance except for allowing an in-circuit, programmable operation to erase pages of the memory. An example of such a flash device is given in U.S. Pat. No. 5,799,168, incorporated for reference as if fully set forth herein.  
           [0005]    There is a significant trend to employ open architecture to develop appliances and embedded devices. Compared with proprietary architecture, open architecture enjoys a great availability of components in hardware and software from the open architecture society. It is easier to kick off a new design in open architecture than in proprietary architecture. Another advantage of open architecture is the availability of experienced engineer resource in the open architecture society.  
           [0006]    In developing appliances and embedded systems, disadvantages related to using hard disk drives have been found. A hard disk drive consumes a lot of power, entails a large physical size, and is vulnerable to threats such as vibration and humidity, etc.  
           [0007]    These problems can be effectively addressed via replacing a hard disk drive with a flash device that consumes little power, involves a small physical size, and is robust and durable compared with a hard disk drive.  
           [0008]    However, as flash devices are generally slow in reading and especially in writing compared with hard disk drives, it is infeasible to use flash devices as main storage medium instead of hard disk drives when fast startup is a required. This is especially true for mission-critical applications such as medical and military applications. Although less critical, slow startup makes an appliance less acceptable if an end user has to wait some minutes for the appliance to get ready for operation.  
           [0009]    Unfortunately, no such architecture exists for a storage system that is more reliable and boots faster than a hard disk drive. For example, U.S. Pat. No. 5,860,083 fails to disclose a data storage system that boots faster and is robust and durable than a hard disk drive.  
         SUMMARY OF INVENTION  
         [0010]    It is an objective of the present invention to provide a data storage system that consumes little power.  
           [0011]    It is another objective of the present invention to provide a data storage system that is small in size.  
           [0012]    It is another objective of the present invention to provide a data storage system that is robust and durable.  
           [0013]    It is another objective of the present invention to provide a data storage system that boots fast.  
           [0014]    According to the present invention, a computer includes a basic input/output system, an operating system kernel and a data storage system performing as a boot disk for the computer. The data storage system includes a first data storage medium, a second data storage medium, a data storage medium controller and an interface. The first data storage medium is capable of non-volatile storage of data including at least an operating system. The data can be read from and written to the second data storage medium faster than they can be read from and written to the first data storage medium. The data storage medium controller is capable of controlling transfer of the data from the first data storage medium to the second data storage medium when the computer is undergoing initialization. The interface is connected between the data storage medium controller and the computer. Thus, the data can be transferred between the first data storage medium, the second data storage medium and the computer for executing the operating system for booting.  
           [0015]    In an aspect, the data storage system may be implemented in a dual-bank memory card including a flash device and a random access memory module including bank # 0  and bank # 1 . The flash device is used as the first data storage medium. Bank # 0  of the random access memory is used as the normal system random access memory. Bank # 1  of the random access memory is used as the second data storage medium.  
           [0016]    In another aspect, the data storage system may be implemented in a dual-bank memory card including bank # 0  and bank # 1 . Bank # 0  is a random access memory used as the normal system random access memory. Bank # 1  is a very fast flash device used as the first and second data storage medium.  
           [0017]    The data storage medium controller is capable of isolating the first data storage medium or the second data storage medium from the computer and emulating the data storage medium that is isolated from the computer.  
           [0018]    The emulation is done via wiring chip selection signals of both banks to bank # 0  so that the memory card is mistaken by the basic input/output system as including identical random access memories on both bank, thus rendering the memory card fully compatible with existing personal computer systems without the need to modify existing basic input/output systems or operating system kernels.  
           [0019]    The emulation is done via modifying the basic input/output system.  
           [0020]    The emulation is done via modifying the operating system kernel.  
           [0021]    Other objects, advantages and novel features of the invention will become more apparent from the following detailed description when taken in conjunction with the attached drawings. 
       
    
    
     BRIEF DESCRIPTION OF DRAWINGS  
       [0022]    The present invention will be described through detailed illustration of embodiments referring to the attached drawings.  
         [0023]    [0023]FIG. 1 is a block diagram of a data storage system for use in a computer according to the present invention.  
         [0024]    [0024]FIG. 2 is a block diagram of an IDE disk embodying the data storage system shown in FIG. 1.  
         [0025]    [0025]FIG. 3 is a block diagram similar to FIG. 2 but showing the IDE disk in a different mode of operation.  
         [0026]    [0026]FIG. 4 is a block diagram of an IEEE 1394 disk embodying the data storage system shown in FIG. 1.  
         [0027]    [0027]FIG. 5 is a block diagram similar to FIG. 4 but showing the IEEE 1394 disk in a different mode of operation.  
         [0028]    [0028]FIG. 6 is a block diagram of an ISA card embodying the data storage system shown in FIG. 1.  
         [0029]    [0029]FIG. 7 is a block diagram similar to FIG. 6 but showing the ISA card in a different mode of operation.  
         [0030]    [0030]FIG. 8 is a block diagram of a PCI card embodying the data storage system shown in FIG. 1.  
         [0031]    [0031]FIG. 9 is a block diagram similar to FIG. 8 but showing the PCI card in a different mode of operation.  
         [0032]    [0032]FIG. 10 is a block diagram of an SCSI disk embodying the data storage system shown in FIG. 1.  
         [0033]    [0033]FIG. 11 is a block diagram similar to FIG. 10 but showing the SCSI disk in a different mode of operation.  
         [0034]    [0034]FIG. 12 is a block diagram of a USB disk embodying the data storage system shown in FIG. 1.  
         [0035]    [0035]FIG. 13 is a block diagram similar to FIG. 12 but showing the USB disk in a different mode of operation.  
         [0036]    [0036]FIG. 14 is a flow chart of a process of initialization of a computer equipped with a data storage system as shown in FIGS.  1 ˜ 13 .  
         [0037]    [0037]FIG. 15 is a block diagram of a memory card embodying the data storage system shown in FIG. 1.  
         [0038]    [0038]FIG. 16 is a block diagram similar to FIG. 15 but showing the memory card in a different mode of operation.  
         [0039]    [0039]FIG. 17 is a block diagram of another memory card embodying the data storage system shown in FIG. 1.  
         [0040]    [0040]FIG. 18 is a block diagram similar to FIG. 17 but showing the memory card in a different mode of operation.  
         [0041]    [0041]FIG. 19 is a block diagram of another memory card embodying the data storage system shown in FIG. 1.  
         [0042]    [0042]FIG. 20 is a block diagram similar to FIG. 19 but showing the memory card in a different mode of operation.  
         [0043]    [0043]FIG. 21 is a flow chart of a process of initialization of a computer equipped with a data storage system as shown in FIGS. 1 and 14˜ 20 . 
     
    
     DETAILED DESCRIPTION OF EMBODIMENTS  
       [0044]    Referring to FIG. 1, according to the present invention, a data storage system for a computer includes a first data storage medium  2 , a second data storage medium  4  connected with the fast data storage medium  2 , a data storage medium controller  6  connected with the fast data storage medium  2 . A system bus  8  is connected between the data storage medium controller  6  and a computer  10 . Although not shown, the computer  10  includes a basic input/output system (“BIOS”) for initialization thereof.  
         [0045]    The first data storage medium  2  is used to store an operating system and other data in a secure and economic manner whether it is turned on or off. The first data storage medium may be an erasable and programmable non-volatile memory such as a flash device. Compared with a hard disk drive, the first data storage medium  2  consumes less power, involves a small physical size, and is robust and durable.  
         [0046]    The second storage  4  is used to receive the operating system from the first data storage medium  2  after the data storage system is turned on. From the second data storage medium  4 , the operating system can be read for booting in a time-economic manner. Read/write with the second storage  4  is faster than with a hard disk drive.  
         [0047]    The data storage medium controller  6  includes a medium bus  12 . The first medium  2  is connected with the medium bus  12 . The second medium  4  is connected with the medium bus  12 . The data storage medium controller  6  includes an isolator  14  connected between the medium bus  12  and the second medium  4 . The data storage medium controller  6  is used to control the operation of the whole data storage system.  
         [0048]    Referring to FIGS.  2 ˜ 13 , the first data storage medium  2  is a flash device, and the second data storage medium  4  is a random access memory (“RAM”) module. The system bus  8  may be an IDE bus as shown in FIGS. 2 and 3, an IEEE 1394 bus as shown in FIGS. 4 and 5, an ISA bus as shown in FIGS. 6 and 7, a PCI bus as shown in FIGS. 8 and 9, an SCSI bus as shown in FIGS. 10 and 11 or a USB bus as shown in FIGS. 12 and 13.  
         [0049]    Referring to FIG. 14, when the computer  10  including the BIOS and the data storage system according to the present invention is turned on, the BIOS proceeds with the process of initialization thereof, and the data storage medium controller  6  proceeds with some tasks to be described.  
         [0050]    While the BIOS performs early initialization, memory detection and hardware initialization, the data storage medium controller  6  transfers the operating system from the first data storage medium  2  to the second data storage medium  4 . When the BIOS is ready for an attempt to boot the computer  10 , the transfer of the operating system from the first data storage medium  2  to the second data storage medium  4  has been finished. Thus, the operating system can be read from the second data storage medium  4  for booting in a time-economic manner.  
         [0051]    After the BIOS boots the computer  10  successfully, to ensure data integrity, wherever a “WRITE” request is sent from the computer  10  to the data storage medium controller  6 ,on receiving the “WRITE” request, the data storage medium controller  6  writes identical data to the first data storage medium  2  (a flash device) and the second data storage medium (RAM) simultaneously.  
         [0052]    [0052]FIGS. 15 and 16 are similar block diagrams of a memory card embodying the data storage system shown in FIG. 1. This memory card includes a data storage medium controller  6 , a flash device, bank # 0  and bank # 1 . Bank # 0  is a bank of RAM. Bank # 1  is also a bank of RAM. The flash device is used as the first data storage medium  2 . Bank # 0  is used as the normal system RAM. Bank # 1  is used as the second data storage medium  4 . The system bus  8  is a RAM bus.  
         [0053]    [0053]FIGS. 17 and 18 are similar block diagrams of another memory card embodying the data storage system shown in FIG. 1. This memory card includes a data storage medium controller  6 , bank # 0  and bank # 1 . Bank # 0  is a bank of RAM. Bank # 1  is a bank of fast flash devices directly accessible through RAM Bus. Bank # 0  is used as the normal system RAM. Bank # 1  is used as both the first data storage medium  2  and the second data storage medium  4 . In other words, the first data storage medium  2  and the second data storage medium  4  are merged in bank # 1 . In other words, the second data storage medium  4  is eliminated. Because the first data storage  2  is sufficiently fast as consisting of RAM, an additional data storage medium for fast boot the computer is no longer necessary. In this case, no transfer of data occurs between the first data storage medium  2  and the second data storage medium  4 . The system bus  8  is a RAM bus.  
         [0054]    [0054]FIGS. 19 and 20 are similar block diagrams of another memory card embodying the data storage system shown in FIG. 1. This memory card includes a data storage medium controller  6 , bank # 0  and bank # 1 . Bank # 0  is a bank of RAM. Bank # 1  is a bank of RAM connected with and powered by means of a power supply such as a battery (not shown). Bank # 0  is used as the normal system RAM. Bank # 1  is used as both the first data storage medium  2  and the second data storage medium  4 . In other words, the first data storage medium  2  and the second data storage medium  4  are merged in bank # 1 . In other words, the second data storage medium  4  is eliminated. Because the first data storage  2  is sufficiently fast as consisting of RAM, an additional data storage medium for fast boot the computer is no longer necessary. In this case, no transfer of data occurs between the first data storage medium  2  and the second data storage medium  4 . The system bus  8  is a RAM bus.  
         [0055]    Referring to FIG. 21, when the computer  10  including the BIOS and the data storage system according to the present invention is turned on, the BIOS proceeds with the process of initialization thereof, and the data storage medium controller  6  proceeds with some tasks to be described.  
         [0056]    When the data storage system receives power and starts up, the data storage medium controller  6  instructs the isolator  12  to isolate the second data storage medium  4  from the system bus  8  to avoid the data stored in the second data storage medium data  4  being destroyed by the process of the initialization of the computer  10 . Before the BIOS starts any process such as “Memory Detection” that includes writing data to the second data storage medium  4 , the data storage medium controller  6  must command the isolator  12  to isolate the second data storage medium  4  from the system bus  8 . Thus, the data stored in the second data storage medium  4  will not be interrupted and destroyed due to the BIOS writing data to the RAM module  4 .  
         [0057]    When the second data storage medium  4  is isolated from the system bus  8  during the process of the initialization of the computer  10 , the computer  10  cannot recognize it and therefore assumes that the second data storage medium  4  does not exist. The second data storage medium  4  will not function even if it is later connected with the system bus  8 . Therefore, it is necessary for the data storage medium controller  6  to emulate the existence of the second data storage medium  4  to make sure that the second data storage medium can be utilized by the computer  10 . Referring to FIG. 15, memory cards emulate the existence of the second data storage medium  4 , i.e., bank # 1  via coupling the chip select signals to “cheat” the BIOS so that the BIOS believes the memory module consists of two identical banks.  
         [0058]    As the second data storage medium  4  is isolated from the RAM bus  8 , the data storage medium controller  6  transfers data from the flash device to bank # 1  when the memory cards receive power and start up.  
         [0059]    Right before an attempt to boot the computer  10  by means of the BIOS, the data storage medium controller  6  starts to take commands from the computer  10  and process the commands. When the data storage medium controller  6  finishes with data transfer, it waits for the computer  10  to give commands to turn off isolation and emulation to allow access to bank # 1  with useful data by the computer  10  in order to continue the process of booting.  
         [0060]    According to the present invention, the data storage medium controller  6  provides a data transfer function to transfer data between the first data storage medium  2  and the second data storage medium  4 . The data transfer function of the storage data storage medium controller  6  is implemented to be transparent to the system bus  8 . Hence, no modification of the existing computer  10  is required. When the computer  10  starts, the operating system is transferred from first data storage medium  2  to the second data storage medium  4  in parallel to the initialization of the computer  10 . When reaching the last stage of the initialization, the computer  10  boots from the second data storage medium  4 , thus shortening the time required for the initialization of the computer  10 .  
         [0061]    The computer  10  may be, but is not limited to, a personal computer (“PC”) running DOS, any operating system provided by Microsoft, OS/2™ or Linux, or a Macintosh computer, or a computer running JAVA™ OS as the operating system, or a graphical workstation such as computers provide by Sun Microsystems and Silicon Graphics, or any other computer including a version of the UNIX operating system such as AIX™ or SOLARIS™ provided by Sun Microsystems or any other known and available operating system, including operating systems such as Windows CE™ for embedded systems, including cellular telephones, handheld computational devices and palmtop computational devices, and any other computational device which can be connected to a network. Hereinafter, the operating systems provided by Microsoft include but is not limited to Windows 95™, Windows 3.X™ (in which “X” is an integer such as “1”), Windows NT™, Windows 98™, Windows CE™ and any upgraded versions of these operating systems.  
         [0062]    The present invention has been described via illustration of some embodiments. The applicant gives these embodiments only as examples, and those skilled in the art can derive variations from the embodiments after a study of this specification. Therefore, these embodiments shall not limit the scope of the present invention that is defined in the following claims.