`
`United States Patent
`
`[19]
`
`[11] Patent Number:
`
`5,860,083
`
`Sukegawa
`
`[45] Date of Patent:
`
`Jan. 12, 1999
`
`[54] DATA STORAGE SYSTEM HAVING FLASH
`MEMORY AND DISK DRIVE
`
`........................ .. 711/101
`7/1998 Auclair et al.
`5,778,418
`FOREIGN PATENT DOCUMENTS
`
`[75]
`
`Inventor: Hiroshi Sukegawa, Tokyo, Japan
`
`[73] Assignee: Kabushiki Kaisha Toshiba, Kawasaki,
`Japan
`
`0 706 135
`5—11933
`8—63395
`8—115241
`
`4/1996
`1/1993
`3/1996
`5/1996
`
`.
`
`European Pat. O11.
`Japan .
`Japan .
`Japan .
`
`Primary Examiner—Tod R. Swann
`Assistant Examiner—Conley B. King, Jr.
`Attorney, Agent, or Firm—Finnegan, Henderson, Farabow,
`Garrett & Dunner, L.L.P.
`
`[57]
`
`ABSTRACT
`
`In a data storage system using a flash memory unit and an
`HDD, the storage area of the flash memory unit is logically
`divided into a permanent storage area, a non—volatile cache
`area, which are used as cache memory areas of the HDD,
`and a high-speed access area. These divided areas are
`individually managed. The permanent storage area stores
`data which is used frequently for a relatively long time
`period. The non-volatile cache area is used as an ordinary
`cache memory area in which data, which is updated rela-
`tively frequently, is stored. The high-speed access area is a
`storage area to be used by, e.g. an operating system (OS) of
`a host system. For example, a swap file, which needs to be
`accessed at high speed, is shifted into the high-speed access
`area.
`
`28 Claims, 10 Drawing Sheets
`
`[21] Appl. No.: 818,983
`
`[22]
`
`[30]
`
`Filed:
`
`Mar. 14, 1997
`
`Foreign Application Priority Data
`
`[JP]
`
`Nov. 26, 1996
`
`Japan .................................. .. 8—31485O
`
`Int. CL5 ................................................ .. G06F 12/08
`[51]
`
`
`......................... .. 711/103; 711/117; 711/171;
`[52] U.S. Cl.
`711/173
`
`[58] Field of Search ................................... .. 711/103, 113,
`711/117, 170, 171, 173
`
`[56]
`
`References Cited
`U.S. PATENT DOCUMENTS
`
`............................... .. 711/161
`5,175,842 12/1992 Totani
`5,371,876
`12/1994 Ewertz et al.
`711/159
`5,437,018
`7/1995 Kohayashi et al.
`395/652
`5,535,357
`7/1996 Moran et al.
`711/103
`5,644,539
`7/1997 Yamagami et al.
`365/200
`5,701,492 12/1997 Wadsworth et al.
`..... .. 395/712
`5,745,418
`4/1998 Ma et al.
`........ ..
`.. 365/185.33
`
`
`
`
`
`HOST
`SYSTEM
`
`
`
`MANAGEMENT
`INFORMATION
`TABLE
`
`
`
`
`DEVICE
`DRIVER
`
`CACHE
`SYSTEM
`CONTROLLER
`
`
`
`PERMANENT
`STORAGE AREA
`
`HIGH-SPEED
`ACCESS AREA
`
`
`
`
`
`
`NON-VOLATILE
`CACHE AREA
`
`IOC
`
`APPLE 1005
`
`APPLE 1005
`
`1
`
`
`
`U.S. Patent
`
`Jan. 12,1999
`
`Sheet 1 of 10
`
`5,860,083
`
`HOST
`
`SYSTEM
`
`5
`
`, ........... -:
`
`3
`
`MANAGEMENT
`INFORMATION
`TABLE
`
`CACHE
`SYSTEM
`CONTROLLER
`
`
`
`DEVICE
`
`DRIVER
`
`I. _ _ . . _ . ..-
`
`
`
`
`
`
`
`H|GH—SPEED
`ACCESS AREA
`
`NON—VOLATILE
`CACHE AREA
`
`PERMANENT
`
`STORAGE AREA
`
`23
`
`28
`
`#0
`
`MAIN
`
`MEMORY
`
`
`
` CARD CONTROLLER
`
`s _ _ . _ . . _ _ _ _ _ _ _
`
`. _ . _-n
`
`r _ _ _ _ _
`
`. _ _ _-‘
`
`#1
`
`FIG.2
`
`2
`
`
`
`U.S. Patent
`
`Jan. 12,1999
`
`Sheet 2 of 10
`
`5,860,083
`
`START
`
`SI
`
`START DATA STORAGE UTILITY
`PROGRAM OF CACHE SYSTEM
`CONTROLLER
`
`S8
`
`N0
`
`S2
`
`SET PERMANENT STORAGE
`AREA IN FLASH MEMORY
`
`S9
`
`READ CONTROL
`
`
`33
`
`INSTRUCT HOST SYSTEM TO
`START APPLICATION PROGRAM
`
`84
`Rgsa gggTROL INFORMATION
`
`INFORMATION FROM
`PERMANENT STORAGE
`AREA
`
`START APPLICATION
`PROGRAM ‘N HOST
`
`SYSTEM
`
`
`
`STORE CONTROL INFORMATION
`
`IN PERMANENT STORAGE AREA E
`
`85
`
`S10
`
`igii
`
`YES
`
`86
`
`STOP OATA STORAGE
`UTILITY PROGRAM
`
`$7
`
`I:
`
`I
`
`(3.
`
`E3
`
`3
`
`
`
`U.S. Patent
`
`Jan. 12,1999
`
`Sheet 3 of 10
`
`5,860,083
`
`
`
`POWER IS TURNED ON
`
`S11
`
`S18
`
`COMPLETED9SET DATA STORAGE MODE
`
`S12
`
`S13
`
`NO
`
`'
`
`yes
`
`819
`
`STOP DATA STORAGE
`UTILITY PROGRAM
`
`STORE MODE INFORMATION
`IN PERMANENT STORAGE
`AREA
`
`
`
`
`
`
`s14 EM
`
`IS POWER
`TURNED ON
`AGAIN?
`
`S15
`
`
`
`
`
`START DATA STORAGE
`UTILITY PROGRAM OF
`CACHE SYSTEM CONTROLLER
`
`
`
`
`S16
`
`READ CONTROL INFORMATION
`FROM HDD
`
`STORE CONTROL INFORMATION
`IN PERMANENT STORAGE AREA
`
`S17
`
`FIG. 4
`
`4
`
`
`
`U.S. Patent
`
`Jan. 12,1999
`
`Sheet 4 of 10
`
`5,860,083
`
`ISSUE READ COMMAND T0 HDD
`
` S20
`
`S24
`
`
`
`STORE DATA IN
`NON-VOLATILE
`
`CACHE AREA
`
`
`
`STORE DATA IN
`
`PERMANENT STORAGE
`AREA
`
` TRANSFER READ DATA
`
`TO HOST SYSTEM
`
`
`
`5
`
`
`
`U.S. Patent
`
`Jan. 12,1999
`
`Sheet 5 of 10
`
`5,860,083
`
`
`
`
`DETERMINE THAT NON-
`VOLATILE CACHE AREA
`IS ENABLED OR NOT
`
`
`
`S30
`
`S3
`
`
`
`ACCESS AREA
`
`83
`
`DETERMINE THAT AREA OF
`FILE SIZE IS RESERVED
`
`OR NOT [N H|5H_3pEED
`ACCESS AREA
`
`EXPAND AREA OF FILE
`SIZE INTO NON-VOLATILE
`CACHE AREA
`
`
`HIGH-SPEED ACCESS AREA EXPAND AREA OF FILE
`
`
`S34
`
`STORE SWAP FILE IN
`
`SIZE INTO STORAGE
`
`AREA OF HDD
`
`
`
`
`
`FIG. 6A
`
`
`
`
`
`S36
`
`ENABLED
`
`?
`
`YES
`
`S37
`
`6
`
`
`
`U.S. Patent
`
`Jan. 12, 1999
`
`Sheet 6 of 10
`
`5,860,083
`
`341
`
`
`
`DETERMINE THAT DATA
`IS STORED OR NOT IN
`NON-VOLATILE CACHE
`AREA
`
`
`
`
`DETERMINE THAT THE
`SAME DATA IS STORED
`OR NOT IN HOD
`
`S43
`
`S46
`
`
`
`
`
`
`SAVE DATA STORED IN
`EXPANDED AREA IN HDD
`
` ERASE DATA STORED IN
`
`EXPANDED AREA OF NON-
`VOLATILE CACHE AREA
`
`
`
`FIG. 6B
`
`7
`
`
`
`U.S. Patent
`
`Jan. 12, 1999
`
`Sheet 7 of 10
`
`5,860,083
`
`
`
`START
`
`
`
`
`
`
`
`DATA UPDATING
`
`S51
`
`
`
` PERMANENT
`STORAGE AREA
`
`?
`
`S50
`
`
`
`UPDATE DATA STORED
`UPDATE ONLY DATA
`IN PERMANENT STORAGE
`STORED IN PERMANENT
`AREA AND SERIALLY
`STORAGE AREA
`
`STORE UPDATED DATA
`IN HDD
`
`
`
`
`
`
`
`
` STORE UPDATED DATA
`
`IN HDD AFTER DATA
`UPDATING IS COMPLETED
`
`8
`
`
`
`U.S. Patent
`
`Jan. 12, 1999
`
`Sheet 8 of 10
`
`5,860,083
`
`S
`
`S
`
`
`
`
`
`UPDATE DATA STORED IN
`NON-VOLATILE CACHE
`AREA AND SERIALLY
`STORE UPDATED DATA
`IN HDD
`
`UPDATE ONLY DATA
`STORED IN NON-
`VOLATILE CACHE AREA
`
`
`
`
`
`
`
`
`STORE UPDATED DATA
`IN HDD AFTER DATA
`
`UPDATING IS COMPLETED
`
`S58
`
`
`
`FIG. 7B
`
`9
`
`
`
`U.S. Patent
`
`Jan. 12, 1999
`
`Sheet 9 of 10
`
`5,860,083
`
`ISSUE READ COMMAND TO HDD
`
`360
`
`REFER SECTOR COUNT
`(SN)OF ACCESSED SECTOR
`
`S61
`
`CALCULATE FREQUENCY OF
`USE OF DATA STORED IN
`ACCESSEO SECTOR
`
`362
`
`
`
`
`
`S63
`
`HIGH
`FREQUENCY OF
`USE?
`
`
`
`
`
`
`
`STORE DATA IN
`NON-VOLATILE
`CACHE AREA
`
`S64
`
`DO NOT STORE
`DATA IN FLASH
`MEMORY
`
`
`
`
`FIG. 8A
`
`10
`
`10
`
`
`
`U.S. Patent
`
`Jan. 12,1999
`
`Sheet 10 of 10
`
`5,860,083
`
`ISSUE READ COMMAND TO HDD
`
`S70
`
`REFER SECTOR COUNT
`(SN) OF ACCESSED SECTOR
`
`
`
`
`
` STORE DATA IN
`PERMANENT STORAGE
`AREA
`
` DO NOT STORE
`
`DATA IN FLASH
`MEMORY
`
`FIG. 8B
`
`11
`
`11
`
`
`
`5,860,083
`
`1
`DATA STORAGE SYSTEM HAVING FLASH
`MEMORY AND DISK DRIVE
`
`BACKGROUND OF THE INVENTION
`
`The present invention relates to a data storage system
`which is applied to a con1puter system and has a flash
`memory unit (also known as “semiconductor disk unit”) and
`a disk drive.
`
`In a conventional computer system, a hard disk drive
`(HDD) is used as an external memory device wherein a disk
`is used as a storage medium. The HDD can be used as a
`large-capacity file apparatus. However, as compared to a
`main memory comprising a semiconductor memory (e.g. a
`DRAM), the access speed of the HDD is lower. A cache
`system for the HDD has been known as means for increasing
`the access speed of the HDD.
`In the cache system, in particular, frequently used data
`is-stored in a storage medium having a higher access speed
`than the HDD, thereby compensating the low access speed
`of the HDD. In a specific system, a part of the storage area
`of the main memory (volatile IC memory) comprising a
`DRAM is used as a cache area of the HDD (this system
`being called “smartdrive”). In this system, however,
`the
`main memory is cleared when the power to the system is
`switched off. Thus, the cache system does not function when
`the power is switched on. Accordingly, after the power is
`switched on,
`the HDD is accessed to enable the cache
`system to function effectively, thereby achieving a learning
`effect. The learning effect will now be described. When a
`request for access to the IIDD occurs, this request first fails
`since no data is stored in the cache memory (a part of the
`main memory in this case). Then, the data associated with
`the access request is re ad out from the HDD and stored in the
`cache memory. Thus, if the next access request occurs, the
`data stored in the cache memory is quickly read out from the
`cache memory in place of the cache memory. This effect of
`achieving the cache function is called “leaning effect.”
`The cache system using the above-described main
`memory does not effectively function when the first access
`request for the HDD occurs at the time of turning-on of
`power. Consequently, when the computer system is started
`up, the cache system cannot be utilized to run the operating
`system (OS) or frequently used application programs
`The OA and AP are thus started up by using the low
`access-speed HDD. With an increase in the scale of the OS
`and AP, the low access speed of the HDD elongates the time
`needed to start up the OS and AP. This is considered a
`serious problem.
`To solve this problem, there has been proposed a cache
`system for an HDD, which uses a flash memory unit
`comprising a flash EEPROM (electrically erasable program-
`mable read-only memory). The flash memory, unlike the
`main memory, is a non—volatile storage medium and has a
`higher acccss speed than the HDD. Accordingly, in the cache
`system using the flash memory, the data stored in the flash
`memory functioning as cache memory can be retained even
`if the power is switched off, and the cache function is
`effectively performed at
`the time of turning on power.
`Moreover, the flash memory having a higher access speed
`than the HDD can perform a high—speed buffer function.
`As described above, the cache system using the cache
`memory as flash memory can effectively perform the cache
`function for the HDD cvcn when the power is turned on.
`Therefore, the cache system as combined with the HDD can
`constitute a high—speed, large-capacity external storage sys-
`tem.
`
`5
`
`10
`
`15
`
`25
`
`30
`
`35
`
`40
`
`45
`
`50
`
`55
`
`60
`
`65
`
`2
`In other words, the data storage system comprising the
`combination of the large-capacity HDD and high—speed,
`non—volatile flash memory can achieve not only the above-
`described function but also a function which will influence
`the performance of the computer system by the effective use
`of the respective memory units. Specifically, the storage area
`of the flash. memory is set in accordance with the contents
`of data to be stored, or the cooperative function of the flash
`memory and the HDD is set, thereby to effectively use the
`data storage system, as will be described below.
`For example, when information (or control information in
`the present invention) necessary for starting up the OS or a
`frequently used AP is to be stored in the storage area in the
`flash memory,
`it
`is desirable that
`the OS and AP are
`permanently stored in the flash memory since the frequency
`of use of both programs is high. On the other hand, for
`example, when a word search utility program is run for a
`number of files and the HDD is accessed, it is not important,
`in general, to permanently store the file accessed fron1 the
`HDD in the cache memory area of the flash memory. Since
`such an accessed file is frequently updated, there is no need
`to permanently store it.
`Besides, when the computer system perfonns a swapping
`operation,
`it is possible to store a swap filc in thc flash
`memory in place of the HDD. Since the file size of the swap
`file produced in the swapping operation is variable, the size
`of the storage area set in the flash memory needs to be
`variable accordingly. However, since the storage area of the
`flash memory is limited, it is desirable to perform a coop-
`erative function with the HDD, for example,
`to use the
`storage area in the HDD in accordance with the increase in
`file size of the swap file.
`BRIEF SUMMARY OF THE INVENTION
`
`The object of the present invention is to provide a data
`storage system having a disk drive and a flash memory unit,
`wherein the storage area of the flash memory unit as well as
`a cache system is efliciently used, and cooperative functions
`of the flash memory and an HDD are achieved, whereby the
`data storage system can be efficiently used.
`A data storage system according to the present invention
`comprises a disk drive, flash memory means, and control
`means. The flash memory means uses a non—volatile flash
`memory as a data storage medium, and has an entire storage
`area logically sorted into a plurality of storage areas
`assigned to predetermined functions. The control means
`controls data input/output of the disk drive and the flash
`memory means and stores all data or specified data stored in
`the disk of the disk drive into that one of the logically sorted
`storage areas in the flash memory means, which has the
`associated function.
`
`The flash memory means has the entire storage area
`logically sorted into a first storage area for permanently
`storing data, a second storage area which can be associated
`with the host system and is used for high—speed access, and
`a third storage area for use as a non—volatile cache memory
`area. When the control means accesses the flash memory
`means according to an instruction from the host system, the
`control means individually manages the first storage area,
`second storage area and third storage area. The data stored
`in the disk drive is read out and stored in the first and third
`storage areas, and the data transferred from the host system
`is stored in the second storage area.
`According to this system, for example, control informa-
`tion necessary for starting an application program
`and
`an OS, which are frequently used,
`is stored in the first
`
`12
`
`12
`
`
`
`5,860,083
`
`3
`storage area. Thus, the storage area of the flash memory can
`be effectively used in accordance with the function and the
`condition of use of data.
`
`The control means includes means for determining
`whether or not the second storage area has an area size for
`storing the specified data transferred from the host system.
`When the area size in the second storage area is deter-
`mined to be insufficient by the determining means at the time
`of storing the specified data in accordance with an instruc-
`tion from the host computer,
`the second storage area is
`expanded to a storage area in the disk of the disk drive and
`the specified data is stored dividedly into the second storage
`area and the expanded area in the disk.
`Accordingly, when a swap file, for example, is stored in
`the second storage area, the second storage area can be
`expanded in accordance with the file size of the swap file.
`For example, an empty area in the disk drive may be used
`as the expanded area, and a part of the swap file, which
`cannot be stored in the second storage area, is stored in the
`expanded area. The information such as the swap file having
`a variable size can be stored, with the cache memory area in
`the flash memory being freely varied. In this case, the flash
`memory and the HDD may be made to function
`cooperatively, so as to take advantage of the high-speed
`access performance of the flash memory and the file area
`with large capacity of the disk drive.
`Additional objects and advantages of the invention will be
`set forth in the description which follows, and in part will be
`obvious from the description, or may be learned by practice
`of the invention. The objects and advantages of the invention
`may be realized and obtained by means of the instrumen-
`talities and combinations particularly pointed out
`in the
`appended claims.
`
`BRIEF DESCRIPTION OF THE SEVERAL
`VIEWS OF THE DRAWING
`
`The accompanying drawings, which are incorporated in
`and constitute a part of the specification, illustrate presently
`preferred embodiments of the invention, and together with
`the general description given above and the detailed descrip-
`tion of the preferred embodiments given below, serve to
`explain the principles of the invention.
`FIG. 1 is a block diagram showing a main part of a data
`storage system according to the present invention;
`FIG. 2 is a block diagram showing a main part of a
`computer system according to the present invention;
`FIG. 3 is a flow chart illustrating an operation relating to
`a first embodiment of the invention;
`FIG. 4 is a flow chart illustrating an operation relating to
`a modification of the first embodiment of the invention;
`FIG. 5 is a flow chart illustrating an operation relating to
`a second embodiment of the invention;
`FIGS. 6A and 6B are flow charts illustrating the operation
`relating to the second embodiment of the invention;
`FIGS. 7A and 7B are flow charts illustrating a operation
`relating to a third embodiment of the invention; and
`FIGS. 8A and 8B are flow charts illustrating an operation
`relating to a modification of the third embodiment of the
`invention.
`
`DETAILED DESCRIPTION OF THE
`INVENTION
`
`invention will now be
`Embodiments of the present
`described with reference to the accompanying drawings.
`
`4
`
`(Data Storage System)
`It is assumed that the data storage system of the present
`invention is applied to a computer system such as a personal
`computer. Thus, as shown in FIG. 1, this data storage system
`has a flash memory unit 1 constituted by a flash EEPROM,
`a disk drive or an HDD (Hard Disk Drive) 2, and a
`controller. The controller includes a cache system controller
`3 (hereinafter called “controller”) for performing a cache
`function of using the flash memory 11nit 1 as a cache
`memory, and a device driver (software) 5 with no cache
`function.
`The device driver 5 has a function of controlling the flash
`memory unit 1 under the management of the OS (Operation
`System) of a host system 4. In this invention, in particular,
`the device driver 5 performs the access control (to be
`described later) of a highspeed access area 10B or a specific
`storage area in the flash memory unit 1. The controller 3
`performs data input/output control (including cache opera-
`tion control) for the flash memory unit 1 and HDD 2 via
`respective device drivers (i.e. a flash memory driver and a
`hard disk driver).
`The host system 4 refers to a computer body comprising
`a CPU of the computer system, a main memory storing the
`OS and an application program (AP), and other various
`structural elements. The controller 3 is provided between the
`host system 4 and the storage units 1 and 2. The controller 3
`controls the flash memory unit 1 and HDD 2, as an inte-
`grated storage system, in accordance with access requests
`(read/write commands) issued from the host system 4 to the
`HDD.
`
`(Computer System)
`The data storage system and host system 4 of the present
`invention are components of a computer system such as a
`personal computer, as shown in FIG. 2. In this computer
`system, the flash memory unit, HDD 2 and a floppy disk
`drive (FDD) 27 according to the present invention can be
`used as peripheral devices.
`Specifically, a PCI bus 20 is used as a local bus connected
`to the peripheral devices. The PCI bus 20 is connected to a
`CPU 22 via a PCI bridge 21. The PCI bridge 21 is connected
`to a main memory 23 storing the OS and AP of the host
`system 4. The PCI bus 20 is also connected to a PC card
`controller 24 matching with a card bus, a flash memory drive
`(according to ATA specifications) 26, the FDD 27, the HDD
`2 and a ROM (Read-Only Memory) 28 storing a basic
`input/output system (BIOS).
`The PC card controller 24 is a controller for controlling an
`IC card of PCMCIA standards. The flash memory unit 1
`includes a flash memory card 25 controlled by the PC card
`controller 24, and the flash memory drive 26. The FDD 27
`enables the OS, AP or various drivers such as device drivers
`relating to the present invention to be installed in the system
`by means of a floppy disk.
`In the computer system, different drive numbers (#0, #1)
`are assigned to the HDD 2 and the flash memory drive 26 or
`flash memory card 25. The HDD 2 and flash memory unit 1
`are treated as different drives in hardware by the OS or AP
`of the host system 4. Accordingly, the OS or AP can use, via
`the controller 3 or device driver 5, those storage areas in the
`flash drive 26 or flash memory card 25 of flash memory unit
`1, which are other than the storage area used as the cache
`memory area relating to the present invention, as storage
`areas of an ordinary external storage device.
`(First Embodiment)
`An operation of the above-described system configuration
`according to a first embodiment of the invention will now be
`described with reference to a flow chart of FIG. 3.
`
`5
`
`10
`
`15
`
`25
`
`30
`
`35
`
`40
`
`45
`
`50
`
`55
`
`60
`
`65
`
`13
`
`13
`
`
`
`5,860,083
`
`5
`is assumed that the entire
`it
`In the present invention,
`storage area of the flash memory unit 1 is logically divided
`into permanent storage area 10A, high—speed access area
`10B and non-volatile cache area 10C and the divided areas
`are managed. The controller 3 manages the storage areas
`10A to 10C of the flash memory unit 1 by using a manage-
`ment information table 3A. The management information
`table 3A is stored, for example, in the non-volatile cache
`area 10C of flash memory unit 1.
`The first embodiment relates to a system wherein the
`permanent storage area 10A of flash memory unit 1 is used
`as a cache memory area. In this embodiment, it is supposed
`that the user desires to start a frequently used application
`program
`at high speed at all times.
`The user starts a data storage utility program of the cache
`system controller 3 via a user interface provided in the host
`system 4 (step S1). The data storage utility program reads
`specified data from the HDD 2 and stores the read data in a
`specified storage area in the flash memory unit 1. In this
`case, it is assumed that the user sets the permanent storage
`area 10A in the flash memory unit 1 as the data storage area,
`at the time of instructing the start of the data storage utility
`program (step S2).
`Then, the user instructs the host system 4 to start the AP
`(step S3). The host system 4, upon receiving the AP start
`instruction, issues a read command to the controller 3 in
`order to read control information necessary for the start of
`the AP from the HDD 2.
`The controller 3 controls the IIDD 2, reads out the control
`information necessary for the start of the AP and transfers
`the read-out control information to the host system 4 (step
`S4). At this time, according to the started-up data storage
`utility program, the controller 3 stores the AP control infor-
`mation read out from the HDD 2 in the permanent storage
`area 10A of flash memory unit 1 (step S5). When the AP has
`been prepared to start, the data storage utility program is
`stopped by the instruction from the user (“YES” in step S6;
`step S7). Through these operations, the control information
`necessary for starting the AP is stored in the permanent
`storage area 10A in the flash memory unit 1.
`In this case,
`the control
`information is stored in the
`permanent storage area 10A in flash memory unit 1 under the
`file name designated by the user. Information for correlating
`the file name and the AP and information of other comment
`
`is recorded on the management information table 3A by the
`data storage utility program. The user inputs the file name to
`the controller 3 via the user interface, thereby referring to the
`file (the control information of the AP in this case) stored in
`the permanent storage area 10A. The user can delete the file,
`if unnecessary. In other words,
`the control
`information
`necessary for starting the AP is permanently stored in the
`permanent storage area 10A in the flash memory unit 1 as
`one file, until the user instructs the deletion of the file.
`If the user instructs the start of the same AP via the user
`
`interface, the host system 4 issues the read command, as
`described above,
`to read from the HDD 2 the control
`information necessary for starting the AP (“YES” in step
`S8). Upon receiving the read command, the controller 3
`determines whether the control information to be accessed is
`
`stored in the flash memory unit 1 by using the management
`information table 3A. Since the AP control information is
`
`stored in the permanent storage area 10A, the cache memory
`area is successfully accessed. Accordingly, the controller 3
`reads out the AP control information from the permanent
`storage area 10A of flash memory unit 1, without accessing
`the HDD 2, and transfers the read-out control information to
`the host system 4 (step S9). The host system 4 starts the AP
`
`10
`
`15
`
`25
`
`30
`
`35
`
`40
`
`45
`
`50
`
`55
`
`60
`
`65
`
`6
`designated by the user on the basis of the transferred AP
`control information (step S10).
`By the above—described cache system, the control infor-
`mation of the frequently used AP designated by the user is
`read out from the HDD 2 and stored in the permanent
`storage area 10A in the flash memory unit 1 used as the
`cache memory area. Accordingly, when the AP is to be
`started next time, the AP control information can be read out
`quickly from the permanent storage area 10A used as cache
`memory area, and not from the HDD 2. Thereby, the host
`system 4 can quickly acquire the control information at the
`time of starting the AP. As a result, the AP can be quickly
`started. Since the AP control information is permanently
`stored in the permanent storage area 10A until the user
`instructs the deletion of the control information, as described
`above, the frequently used AP can be started quickly at all
`times.
`
`(First Modification of the First Embodiment)
`FIG. 4 is a flow chart illustrating a first modification of the
`first embodiment. This modification relates to a system
`having a mode (data storage mode) for storing the control
`information necessary for starting the OS in the permanent
`storage area 10A of flash memory unit 1, for example, when
`the OS of the host system 4 is started in a series of operations
`from the turn-on of power to the completion of the starting
`operation.
`When the system is switched on and the user sets the data
`storage mode via the user interface, the controller 3 stores
`the information representing the data storage mode in the
`permanent storage area 10A in flash memory unit 1 (steps
`S11 to S13).
`After the power is turned off and then turned on again, the
`controller 3 starts the above-mentioned data storage utility
`program on the basis of the information of the set data
`storage mode (“YES” in step S14; step S15). According to
`the data storage utility program, the control information,
`which is pre-stored in the HDD 2 and necessary for starting
`the OS, is read out and stored in the permanent storage area
`10A (steps S16 and S17). The controller 3 transfers to the
`host system 4 the control information necessary for starting
`the OS read out from the HDD 2. Based on the control
`
`the host system 4 starts the OS. After the
`information,
`preparation for starting the OS is completed, the data storage
`utility program is stopped (“YES” in step S18; step S19).
`According to this system, when the OS is automatically
`started by the control information read out from the HDD 2
`at the time of turning-on of power, the control information
`is stored in the permanent storage area 10Aused as the cache
`memory area for the HDD 2. Accordingly, when the OS is
`started at
`the time of the next tuming-on of power,
`the
`control information necessary for starting the OS is read out
`not from the HDD 2 but from the permanent storage area
`10A or cache memory area, and the read-out control infor-
`mation is transferred to the host system 4. Thus, the control
`information can be accessed from the permanent storage
`area 10A in the flash memory unit 1 having a higher access
`speed than the HDD 2. As a result, the OS can be started at
`higher speed.
`Like the AP control information, the OS control informa-
`tion may be stored as one file in the permanent storage area
`10A. Thereby, the user can refer to, or delete, the OS control
`information on an as-needed basis. For example, at the time
`of shipment of the personal computer, if the OS is pre-
`installed in the flash memory unit 1 functioning as cache
`memory area, the user can delete the OS control information
`based on the user’s judgment. Specifically, the OS control
`information may be deleted by a user who is used to starting
`
`14
`
`14
`
`
`
`5,860,083
`
`7
`the OS by making use of a resume function of BIOS28,
`without re-starting the personal computer.
`(Second Modification of the First Embodiment)
`the
`In a second modification of the first embodiment,
`BIOS stored in the ROM 28 of the system, as shown in FIG.
`2, includes a part of the operation program of the controller
`3. According to this system, when the power is turned on, the
`BIOS can start the OS of the system or the AP by accessing
`the flash memory unit 1 without activating the HDD 2.
`Therefore, the power for starting the HDD 2 can be saved.
`This modification is suitable for a power-save mode com-
`puter. The BIOS having the resume fiinction of the system
`can restart the OS of the system or the AP from the state
`before the power turn-off by accessing the flash memory unit
`1, without starting the HDD 2, at the time of the resume.
`(Second Embodiment)
`Asecond embodiment of the invention relates to a system
`wherein the high-speed access area 10B which is logically
`set in the storage areas in flash memory unit 1, as shown in
`FIG. 1, is used. The high-speed access area 10B is supposed '
`to be a storage area which can be directly accessed via the
`controller 3 or device driver 5 with no cache function from
`
`10
`
`15
`
`the OS or AP in the host system 4.
`In other words,
`the high-speed access area 10B is not
`necessarily used as a cache memory area of the HDD 2. The
`high-speed access area 10B is used in a way different from
`the above-mentioned permanent storage area 10A or the
`non-volatile cache area 10C (to be described later). In the
`system of the present invention, when the host system 4
`issues the read command to the HDD 2, the controller 3
`determines whether the data to be accessed (e.g. AP control
`information as mentioned above) is stored in the permanent
`storage area 10A or non-volatile cache area 10C, which is
`the cache memory area (or whether the cache memory area
`is “hit”) (steps S20 and S21), as shown in FIGS. 5. If the data
`to be accessed is “hit”, the controller 3 reads the data from
`the permanent storage area 10A or non-volatile cache area
`10C and transfers the read-out data to the host system 4
`(“YES” in step S21; step S25).
`On the other hand, if the cache memory area is not “hit”,
`the controller 3 accesses the HDD 2, reads out the data to be
`accessed and transfers the read-out data to the host system
`4. In this case, as described above, if the data to be accessed
`is the permanent data designated by the user, the controller
`3 stores it in the permanent storage area 10A (“NO” in step
`S21; steps S22 and 23). If the data to be accessed is not the
`permanent data designated by the user, the controller 3 stores
`the data in the non-volatile cache area 10C which is used as
`
`an ordinary cache memory area (“NO” in step S22; step
`S24). Thus, the data read out from the HDD 2 is stored at
`least once in the permanent storage area 10A and non-
`volatile cache area 10C in flash memory unit 1. In particular,
`it is assumed that the non-volatile cache area 10C is used
`independently by the controller 3 and not directly used by
`the user’s intent.
`As compared to the permanent storage area 10A and
`non-volatile cache area 10C, the high-speed access area 10B
`relating to the present embodiment permits direct access by
`the OS orAP. Thus, the high-speed access area 10B can store
`not only the data read out of the HDD 2 but also data to be
`newly written. A specific example of the present embodi-
`ment will now be described with reference to flow charts of
`FIGS. 6A and 6B. In this example, it is assumed that a swap
`file in a swapping operation is stored in the high-speed
`access area 10B.
`When the host system 4 executes a program other than the
`programs such as the AP stored in the main memory 23, the
`
`25
`
`30
`
`35
`
`40
`
`45
`
`50
`
`55
`
`60
`
`65
`
`15
`
`8
`host system 4 performs a swapping operation. In the swap-
`ping operation, the program (including data) stored in the
`main memory 23 is shifted from the main memory 23 as a
`swap file, thereby to load the program to be executed in the
`main memory 23. Normally, the swap file is shifted to the
`HDD 2.
`In the present embodiment, if the swap file is produced by
`the swapping operation of the host system 4, the controller
`3 responds to an access request from the host system 4 and
`accesses the high-speed access area 10B in the flash memory
`unit 1 (steps S30 and S31). At this time, the controller 3
`determines whether or not the high-speed access area 10B
`corresponding to the file size of the swap file is reserved
`(step S32). If the high-speed access area 10B is reserved, the
`controller 3 stores the swap file in the high-speed access area
`10B (“YES” in step S33; step S34). The OS can refer to the
`swap file stored in the high-speed access area 10B on the
`basis of the file name. Accordingly, the OS can read out the
`swap file from the high-speed access area 10B on an
`as—needed basis via the controller 3, and restore the swap file
`to the main memory 23.
`On the other hand, if the file size of the swap file is
`