throbber
USOO5860083A
`
`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
`

This document is available on Docket Alarm but you must sign up to view it.


Or .

Accessing this document will incur an additional charge of $.

After purchase, you can access this document again without charge.

Accept $ Charge
throbber

Still Working On It

This document is taking longer than usual to download. This can happen if we need to contact the court directly to obtain the document and their servers are running slowly.

Give it another minute or two to complete, and then try the refresh button.

throbber

A few More Minutes ... Still Working

It can take up to 5 minutes for us to download a document if the court servers are running slowly.

Thank you for your continued patience.

This document could not be displayed.

We could not find this document within its docket. Please go back to the docket page and check the link. If that does not work, go back to the docket and refresh it to pull the newest information.

Your account does not support viewing this document.

You need a Paid Account to view this document. Click here to change your account type.

Your account does not support viewing this document.

Set your membership status to view this document.

With a Docket Alarm membership, you'll get a whole lot more, including:

  • Up-to-date information for this case.
  • Email alerts whenever there is an update.
  • Full text search for other cases.
  • Get email alerts whenever a new case matches your search.

Become a Member

One Moment Please

The filing “” is large (MB) and is being downloaded.

Please refresh this page in a few minutes to see if the filing has been downloaded. The filing will also be emailed to you when the download completes.

Your document is on its way!

If you do not receive the document in five minutes, contact support at support@docketalarm.com.

Sealed Document

We are unable to display this document, it may be under a court ordered seal.

If you have proper credentials to access the file, you may proceed directly to the court's system using your government issued username and password.


Access Government Site

We are redirecting you
to a mobile optimized page.





Document Unreadable or Corrupt

Refresh this Document
Go to the Docket

We are unable to display this document.

Refresh this Document
Go to the Docket