US20090193182A1 - Information storage device and control method thereof - Google Patents

Information storage device and control method thereof Download PDF

Info

Publication number
US20090193182A1
US20090193182A1 US12/361,237 US36123709A US2009193182A1 US 20090193182 A1 US20090193182 A1 US 20090193182A1 US 36123709 A US36123709 A US 36123709A US 2009193182 A1 US2009193182 A1 US 2009193182A1
Authority
US
United States
Prior art keywords
data
volatile memory
volatile
write
storage medium
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Abandoned
Application number
US12/361,237
Inventor
Tatsuo Nitta
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Toshiba Corp
Original Assignee
Toshiba Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Toshiba Corp filed Critical Toshiba Corp
Assigned to KABUSHIKI KAISHA TOSHIBA reassignment KABUSHIKI KAISHA TOSHIBA ASSIGNMENT OF ASSIGNORS INTEREST (SEE DOCUMENT FOR DETAILS). Assignors: NITTA, TATSUO
Publication of US20090193182A1 publication Critical patent/US20090193182A1/en
Abandoned legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0804Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with main memory updating
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • G06F12/0246Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • G06F3/0611Improving I/O performance in relation to response time
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0625Power saving in storage systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0656Data buffering arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/0674Disk device
    • G06F3/0676Magnetic disk device
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/0679Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B20/00Signal processing not specific to the method of recording or reproducing; Circuits therefor
    • G11B20/10Digital recording or reproducing
    • G11B20/10527Audio or video recording; Data buffering arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0866Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches for peripheral storage systems, e.g. disk cache
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1028Power efficiency
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/20Employing a main memory using a specific memory technology
    • G06F2212/202Non-volatile memory
    • G06F2212/2022Flash memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7205Cleaning, compaction, garbage collection, erase control
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B20/00Signal processing not specific to the method of recording or reproducing; Circuits therefor
    • G11B20/10Digital recording or reproducing
    • G11B20/10527Audio or video recording; Data buffering arrangements
    • G11B2020/1062Data buffering arrangements, e.g. recording or playback buffers
    • G11B2020/1075Data buffering arrangements, e.g. recording or playback buffers the usage of the buffer being restricted to a specific kind of data
    • G11B2020/10759Data buffering arrangements, e.g. recording or playback buffers the usage of the buffer being restricted to a specific kind of data content data
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B2220/00Record carriers by type
    • G11B2220/20Disc-shaped record carriers
    • G11B2220/25Disc-shaped record carriers characterised in that the disc is based on a specific recording technology
    • G11B2220/2508Magnetic discs
    • G11B2220/2516Hard disks
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B2220/00Record carriers by type
    • G11B2220/60Solid state media
    • G11B2220/61Solid state media wherein solid state memory is used for storing A/V content
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Definitions

  • One embodiment of the invention relates to an information storage device having a non-volatile memory which functions as a cache and a control method thereof.
  • an information storage device such as a hard disk drive is utilized.
  • the information storage device stores information in a non-volatile storage medium such as a hard disk.
  • the non-volatile memory is called a non-volatile cache.
  • the information storage device having the non-volatile cache can perform read/write access of data which is specified by a host at high speed. Further, the information storage device which has the non-volatile cache has an advantage that electric power consumption can be reduced because data can be accessed without rotating a hard disk.
  • a storage device which has a hard disk and a non-volatile memory is disclosed.
  • the storage device has a function to perform access to either or both of the hard disk and the non-volatile memory in accordance with an external access request.
  • FIG. 1 is an exemplary block diagram showing a structure of an information storage device according to an embodiment of the invention
  • FIG. 2 is an exemplary block diagram showing a structural example of a controller which is disposed in the information storage device of the embodiment
  • FIG. 3 is an exemplary diagram for explaining an operational example of writing write data to a non-volatile memory which is performed by the information storage device of the embodiment;
  • FIG. 4 is an exemplary diagram for explaining another operational example of writing write data to a non-volatile memory which is performed by the information storage device of the embodiment;
  • FIG. 5 is an exemplary flowchart for explaining procedure of a data move process which is performed by the information storage device of the embodiment
  • FIG. 6 is an exemplary diagram for explaining an example of the data move process which is performed by the information storage device of the embodiment
  • FIG. 7 is an exemplary diagram for explaining another example of the data move process which is performed by the information storage device of the embodiment.
  • FIG. 8 is an exemplary flowchart for explaining procedure of write operation which is performed by the information storage device of the embodiment.
  • FIG. 9 is an exemplary block diagram showing another structural example of the information storage device of the embodiment.
  • an information storage device includes a non-volatile storage medium, a non-volatile memory, a buffer, and a controller.
  • the non-volatile storage medium is configured to store specific data blocks to be read for a host device and write data to be written to the non-volatile storage medium.
  • the buffer configured to temporarily store write data transmitted from the host device.
  • the controller is configured to delete synchronized data the same data block as which exists on the non-volatile storage medium among the specific data blocks stored in the non-volatile memory if the free space of the non-volatile memory is smaller than a given data size, and to write the write data stored in the buffer to the non-volatile memory.
  • FIG. 1 shows a structure of an information storage device 11 according to an embodiment of the present invention.
  • the information storage device 11 is a device which performs writing of data to a non-volatile storage medium and reading of data from the non-volatile storage medium in accordance with an access request from a host device 20 .
  • the information storage device 11 has the non-volatile storage medium and a non-volatile memory which functions as a cache for the non-volatile storage medium.
  • the capacity of the non-volatile memory is smaller than that of the non-volatile storage medium.
  • the non-volatile memory can perform data transfer for reading/writing of data at higher speed than the non-volatile storage medium.
  • the information storage device 11 is realized as a hybrid hard disk drive (HHD).
  • the hybrid HDD is a hard disk drive which has a non-volatile storage medium and a non-volatile memory.
  • the non-volatile storage medium can be realized by a hard disk which is a rotating medium.
  • the information storage device 11 has an LSI 12 in which various circuit blocks are integrated, a hard disk 13 , a buffer 14 , a non-volatile memory 15 and the like.
  • the non-volatile memory 15 is a semiconductor memory which functions as a cache (non-volatile cache) for the hard disk 13 which is a non-volatile storage medium (also called a permanent storage medium).
  • the non-volatile memory 15 can be realized by a flash memory (flash EEPROM) and the like.
  • flash EEPROM flash EEPROM
  • the non-volatile memory 15 is used for storing specific data (specific data blocks) which is to be read at high speed from the information storage device 11 to the host device 20 and storing write data (write data blocks) which is to be written to the hard disk 13 .
  • a copy of a part of the software or a copy of a part of user data which is stored on the hard disk 13 can be stored in the non-volatile memory 15 as the data to be read at high speed to the host device 20 . Accordingly, various data (the software and the user data) can be transferred from the information storage device 11 to the host device 20 at high speed.
  • the host device 20 can specify which data should be stored in the non-volatile memory 15 among the data stored on the hard disk 13 .
  • the information storage device 11 loads the data (also called a data block) corresponding to each of some logical block addresses (LBA) which are specified by the host device 20 from the hard disk 13 to the non-volatile memory 15 .
  • the loaded data can be constantly stored in the non-volatile memory 15 .
  • the data to be stored at the non-volatile memory 15 is not limited to the data corresponding to each of the logical block addresses (LBA) which are specified by the host device 20 .
  • the information storage device 11 can estimate each logical block address (LBA) which has a high possibility to be requested for reading by the host device 20 . Then, the information storage device 11 can load the data corresponding to each of the estimated logical block addresses (LBA) from the hard disk 13 to the non-volatile memory 15 and store the data in the non-volatile memory 15 .
  • the information storage device 11 it is also possible to store data such as a hibernation file, which is requested for writing by the host device 20 , into the non-volatile memory 15 .
  • the non-volatile memory 15 is also utilized as a write cache for temporarily storing write data which is to be written to the hard disk 13 .
  • the write data which is transferred from the host device 20 is temporarily stored in the non-volatile memory 15 .
  • the write data (write data blocks) stored in the non-volatile memory 15 is written to the hard disk 13 .
  • the buffer 14 corresponds to a DRAM cache which is disposed in an ordinary HDD.
  • the buffer 14 can function as a write buffer for temporarily storing write data which is transferred from the host device 20 .
  • the buffer 14 is configured of a volatile memory such as a DRAM and an SDRAM. Although the access speed of reading/writing of the buffer 14 is faster than that of the non-volatile memory 15 , the capacity of the buffer 14 is smaller than that of the non-volatile memory 15 .
  • the write cycle which is performed by the host device 20 is completed when the write data transferred from the host device 20 is stored in the buffer 14 .
  • the information storage device 11 When a Flush Cache command is received from the host device 20 , the information storage device 11 writes the write data (the write data blocks) accumulated in the buffer 14 into the non-volatile memory 15 .
  • the Flush Cache command is a Flush command to instruct to write all of the write data stored in the buffer 14 on the hard disk 13 .
  • the write data in the buffer 14 can be stored in a safe storage place which is non-volatile at high speed.
  • the LSI 12 is an electronic circuit for controlling the operation of the information storage device 11 .
  • the LSI 12 includes a controller 16 , a disk interface 17 , a buffer interface 18 , a memory interface 19 , a host interface 21 and the like.
  • the controller 16 controls the operation of the information storage device 11 in accordance with various commands from the host device 20 .
  • the controller 16 performs communication with the host device 20 via the host interface 21 .
  • the communication between the host device 20 and the controller 16 is performed by utilizing various commands which are defined in the ATA8-ACS standard, for example.
  • the disk interface 17 performs the data transfer between the controller 16 and the hard disk 13 .
  • the data writing to the hard disk 13 and the data reading from the hard disk 13 are performed by utilizing a mechanical drive mechanism disposed in the information storage device 11 .
  • the drive mechanism has a spindle motor for rotating the hard disk 13 , a head, an actuator for moving the head in the radius direction of the hard disk 13 and the like.
  • the memory interface 19 performs the data transfer between the controller 16 and the non-volatile memory 15 .
  • the memory interface 19 is configured of a memory controller for controlling access of the non-volatile memory 15 .
  • the buffer interface 18 performs the data transfer between the controller 16 and the buffer 14 .
  • the buffer interface 18 is configured of a DRAM controller, for example.
  • the controller 16 includes a management table 161 .
  • the controller 16 manages the contents of each data block stored in the non-volatile memory 15 by utilizing the management table 161 .
  • management information is stored for each data block which is stored in the non-volatile memory 15 .
  • the managing information corresponding to each of the data blocks indicates physical address which shows a storage position where the data block is stored in the non-volatile memory 15 , the logical block address (LBA) of the data block, the data size of the data block, attribute of the data block and the like.
  • the attribute shows whether or not the data block is a specified data block (the pinned data) corresponding to the LBA which is previously specified by the host device to be maintained in the non-volatile memory 15 .
  • the controller 16 When a read request (read command) is received from the host device 20 , the controller 16 reads the data block from either the non-volatile memory 15 or the hard disk 13 in accordance with the address (LBA) contained in the read command.
  • LBA address
  • the controller 16 determines whether or not the data block corresponding to the LBA which is specified by the read command exists in the non-volatile memory 15 by referring to the management table 161 .
  • the controller 16 reads the data block from the non-volatile memory 15 .
  • the controller 16 reads the data block from the hard disk 13 .
  • the controller 16 has a function to increase the free area of the non-volatile memory 15 by temporarily deleting a part of the specified data blocks which are stored in the non-volatile memory 15 .
  • the write data accumulated in the buffer 14 (one data block or more which is accumulated in the buffer 14 as the write data) cannot be written into the non-volatile memory 15 .
  • the write data needs to be written to the hard disk 13 .
  • the delay of write operation occurs. If power abnormality such as power failure occurs before completing the write operation on the hard disk 13 , the write data is lost.
  • the controller 16 performs the following processes when the abovementioned flush cache command is received, for example.
  • the controller 16 determines whether or not the free space of the non-volatile memory 15 is smaller than a predetermined data size. In the case where the free space is smaller than the predetermined data size, the controller 16 increases the free space of the non-volatile memory 15 by temporarily deleting the data block (synchronized data) the same data block as which exists on the hard disk 13 among the specified data blocks (pinned data, etc.) which are stored in the non-volatile memory 15 . Then, the controller 16 writes the write data which is stored in the buffer 14 to the non-volatile memory 15 . In this manner, even in the case where the free space of the non-volatile memory 15 is insufficient, the write data accumulated in the buffer 14 can be stored in the non-volatile memory 15 at high speed and the security of the write data can be improved.
  • the synchronized data (also called media synchronized data) is data block the same data block as which also exists on the hard disk 13 . If a certain data block A exists on each of the non-volatile memory 15 and the hard disk 13 , the data block A is the synchronized data. Therefore, even if the synchronized data is deleted from the non-volatile memory 15 , the synchronized data can be restored in the non-volatile memory 15 by reading it from the hard disk 13 .
  • the abovementioned delete process of synchronized data is executed in accordance with occurrence of an event which needs storing of write data stored in the buffer 14 into the non-volatile memory 15 at high speed.
  • factors which cause the events there exist other factors than the reception of the abovementioned flush cache command.
  • the abovementioned delete process of synchronized data is executed.
  • a command instructing execution of a high speed flush process which is described later in FIG. 4
  • the abovementioned delete process of synchronized data is performed.
  • FIG. 2 A structural example of the controller 16 is shown in FIG. 2 .
  • the controller 16 includes a synchronized data delete module 201 , a rewrite process module 202 , an access frequency detection process module 203 , and a data move process module 204 .
  • the synchronized data delete module 201 selects synchronized data from among the data blocks which are stored in the non-volatile memory 15 and executes the process to delete the synchronized data. For example, the synchronized date delete module 201 selects, as the synchronized data, each of the data blocks which are loaded from the hard disk 13 , from among the specified data blocks corresponding respectively to the LBA specified by the host device 20 .
  • the synchronized data delete module 201 preferentially deletes the data block which is synchronized data and has low access frequency among the data blocks stored in the non-volatile memory 15 based on the access frequency by the host device 20 to each of the data blocks of synchronized data. Namely, the data block having a low access frequency is preferentially deleted among the data blocks of the synchronized data. In this manner, reduction of the read access performance caused by the erase of the data blocks can be suppressed to the minimum.
  • the controller 16 itself estimates each logical block address (LBA) which has a high possibility to be requested by the host device 20 and loads the data block corresponding to each of the estimated logical block addresses from the hard disk 13 to the non-volatile memory 15 . Therefore, such data block can be selected as the synchronized data (the synchronized data block).
  • LBA logical block address
  • the data block which is the same as the data block deleted from the non-volatile memory 15 by the synchronized data delete module 201 is respectively read from the hard disk 13 and written to the non-volatile memory 15 by the rewrite process module 202 .
  • the rewrite process is executed after the write data accumulated in the non-volatile memory 15 is written to the hard disk 13 .
  • the access frequency detection process module 203 executes the process to manage access frequency of each data block which is stored in the non-volatile memory 15 . Specifically, the access frequency detection process module 203 counts the number of the read access or write access by the host device 20 for each data block stored in the non-volatile memory 15 . Here, it is not always necessary to count the actual access number itself accurately. For example, it is also possible to manage the presence or absence of the access during a power cycle of the information storage device 11 (the term from the power ON through the power OFF of the information storage device 11 ) for each data block. In this case, the value of the access number corresponding to the data block which is accessed one time or more during one power cycle becomes one. The access number corresponding to the data block becomes zero when there is no access at all during one power cycle. Further, it is also possible to manage the access number by taking only the synchronized data stored at the non-volatile memory 15 as the target.
  • the data move process module 204 executes the data move process for gathering each of the data blocks which have low access frequency among the data blocks into a specific storage area in the non-volatile memory 15 during the normal operation of the information storage device 11 based on the access frequency of each synchronized data (access frequencies of the data blocks which are synchronized data) in the non-volatile memory 15 .
  • the data block which is the synchronized data and has low access frequency among the data blocks stored in the non-volatile memory 15 is gathered into a specific area of the non-volatile memory 15 in advance. In this manner, by gathering each of the data blocks which are to be the erase target, the write data can be effectively written to the free space of the non-volatile memory 15 because continuous storage areas can be assigned as the free space.
  • the non-volatile memory 15 is configured of a flash memory which includes a plurality of erase blocks
  • the synchronized data which have low access frequency among the synchronized data namely, the data blocks which are the synchronized data and have low access frequency
  • the process to delete data from the flash memory is executed on the basis of each erase block. Therefore, by gathering the data blocks which are the synchronized data and have low access frequency into one or more specific erase areas in advance, the synchronized data delete module 201 can delete each of the data blocks which are the synchronized data and have low access frequency all together only by executing the block erase process against the specific erase block. Accordingly, the synchronized data delete process (erase process) can be executed at high speed and the necessary free space can be quickly secured.
  • the process of gathering the data blocks whose LBAs are close to one another to the same erase block is executed. Accordingly, the speed of the rewrite process for restoring the data blocks which are the same as the deleted data blocks respectively from the hard disk 13 in the non-volatile memory 15 can be enhanced.
  • FIG. 3 shows the write operation for writing the write data to the non-volatile memory 15 which is performed at the time of receiving the flush cache command.
  • the controller 16 executes the process (the flush process) of writing each data block accumulated as the write data in the buffer 14 to the non-volatile memory 15 .
  • the flush process can be executed in a state that the rotation of the hard disk 13 is stopped.
  • the flush process is executed based on the premise that the free space, namely, the space to which data can be written freely, is sufficiently assigned in the non-volatile memory 15 .
  • the specified data blocks (pinned data, etc.) corresponding to LBAs specified by the host device 20 and the write data blocks which are to be written to the hard disk 13 are mixed.
  • Each write data block which is stored in the non-volatile memory 15 is new data block which has not been written to the hard disk 13 . Therefore, the write data block which is stored in the non-volatile memory 15 is non-synchronized data (media non-synchronized data) for which the same data block does not exist on the hard disk 13 .
  • the synchronized data (the media synchronized data) the same data block as which exists on the hard disk 13 is included in the data blocks (pinned data) corresponding to LBAs which are specified by the host device 20 .
  • the data block which is loaded from the hard disk 13 to the non-volatile memory 15 is the synchronized data. Further, there is a case where the same data block exists on the hard disk 13 as the data block even though it is transferred from the host device 20 .
  • the controller 16 selects the synchronized data from among the data blocks (for example, pinned data, etc.) which are stored in the non-volatile memory 15 , and temporarily deletes the selected synchronized data so that the free space of the non-volatile memory 15 is increased.
  • the controller 16 also executes the process to update the management table 161 in order to erase the management information corresponding to the deleted synchronized data from the management table 161 .
  • the controller 16 writes each of the write data accumulated in the buffer (the write buffer) 14 to the free space of the non-volatile memory 15 which is secured by the delete of the synchronized data. Accordingly, since only the synchronized data is to be the erase target, there arises no problem due to the data erase.
  • the area to which the write data is written can be secured in the non-volatile memory 15 and the write data can be stored in the non-volatile memory 15 . Therefore, the response performance against the flush cache command can be improved and the possibility that the write data is lost due to electric power abnormality, etc., can be reduced.
  • the process to write the write data stored in the buffer 14 to the non-volatile memory 15 can be executed in a state that the rotation of the hard disk 13 is stopped, the increase of electric power consumption due to the rotation of the hard disk 13 can be prevented.
  • the high speed data flush process is the process, not to write the entire write data accumulated in the buffer 14 to the non-volatile memory 15 , but to write a part of the write data accumulated in the buffer 14 to the hard disk 13 and to write the rest of the write data accumulated in the buffer 14 to the non-volatile memory 15 .
  • the write operation to the hard disk 13 and the write operation to the non-volatile memory 15 are performed simultaneously.
  • the controller 16 selects the write data blocks (for example, the data blocks in which LBAs are continuous, etc.) which can be written to the hard disk 13 at high speed from among the write data blocks accumulated in the buffer 14 , and writes the selected write data blocks to the hard disk 13 .
  • the controller 16 selects the write data blocks (for example, the data blocks in which LBAs are continuous, etc.) which can be written to the hard disk 13 at high speed from among the write data blocks accumulated in the buffer 14 , and writes the selected write data blocks to the hard disk 13 .
  • a reordering process to reorder the selected data blocks in the order of LBA is executed as well.
  • the controller 16 selects the rest of the write data blocks (i.e., the write data blocks other than the selected write data blocks) from among the write data blocks accumulated in the buffer 14 , and writes the rest of the write data blocks to the non-volatile memory 15 .
  • the controller 16 selects the synchronized data (media synchronized data) from among the data blocks (for example, pinned data, etc.) which are stored in the non-volatile memory 15 , and deletes the selected synchronized data (media synchronized data) temporarily so as to secure the free space. In this manner, even in the state that the free space of the non-volatile memory 15 is insufficient, the high speed data flush process can be executed.
  • the following movement process is executed in order to execute the synchronized data erase process efficiently.
  • the controller 16 counts the number of the read access of the host device 20 for each data block which is stored in the non-volatile memory 15 (Step S 101 ). Then, when a garbage collection process or a wear leveling process is executed in the information storage device 11 or when the information storage device 11 is idle, the controller 16 executes the data move process for relocating each of the data blocks which are stored in the non-volatile memory 15 based on the access number corresponding to each of the data blocks stored in the non-volatile memory 15 (Steps S 102 , S 103 ).
  • Step S 102 the controller 16 selects the data blocks which are the synchronized data and have low access frequency from among the data blocks which are stored in the non-volatile memory 15 . Then, in Step S 103 , the controller 16 relocates data blocks stored in the non-volatile memory 15 so that the data blocks which are the media synchronized data and has low access frequency are respectively gathered to the specific erase block, as shown in FIG. 6 .
  • the controller 16 performs the relocating so that data blocks in which LBAs are close to one another are gathered to the same erase block also in consideration of the LBA for each data block which is the media synchronized data and has low access frequency.
  • the state of relocating is shown in FIG. 7 .
  • the data block in which LBA is 100, the data block in which LBA is 20000, the data block in which LBA is 180, the data block in which LBA is 21000, the data block in which LBA is 20 and the data block in which LBA is 16000 are the data blocks which are the media synchronized data and have low access frequency.
  • the data blocks in which LBAs are close to one another namely, the data blocks in which LBAs belong within the predetermined LBA range are moved to the same erase block.
  • the data block in which LBA is 100, the data block in which LBA is 180 and the data block in which LBA is 20 are gathered into the erase block 1 .
  • the data block in which LBA is 20000, the data block in which LBA is 21000 and the data block in which LBA is 16000 are gathered into the erase block 2 .
  • the number of the erase blocks which are to be the erase target varies in accordance with the data size of the write data. For example, if only the erase block 1 is erased in the synchronized data delete process, it is necessary in the rewrite process to execute the process to restore the data block in which LBA is 100, the data block in which LBA is 180 and the data block in which LBA is 20 from the hard disk 13 in the non-volatile memory 15 . In this case, the data block in which LBA is 100, the data block in which LBA is 180 and the data block in which LBA is 20 exist at the storage positions on the hard disk 13 being close to one another (for example, on the same track or on two adjacent tracks). Therefore, these data blocks can be efficiently read from the hard disk 13 and the enhancement of the rewrite process speed can be achieved.
  • Step S 201 When a factor which needs high speed storing of the write data of the buffer 14 to the non-volatile memory 15 is generated, for example, when the flush cache command is received from the host device 20 (Step S 201 ), the controller 16 checks the free space of the non-volatile memory 15 (Step S 202 ). Then, the controller 16 compares the free space of the non-volatile memory 15 with the data size of the write data accumulated in the buffer 14 and determines whether or not the free space of the non-volatile memory 15 is smaller than the data size of the write data (Step S 203 ).
  • Step S 204 When the free space of the non-volatile memory 15 is equal to or larger than the data size of the write data (NO in Step S 203 ), the controller 16 writes the write data accumulated in the buffer 14 to the non-volatile memory 15 (Step S 204 ).
  • the controller 16 When the data move process is performed such that the data blocks which are synchronized data and have low access frequency are previously gathered into some specific erase blocks, the controller 16 only needs to select the erase blocks which are to be the erase target from among the specific erase blocks based on the shortfall size. Then, the controller 16 erases, from the management table 161 , the management information corresponding to each of the data blocks which exist in the selected erase block (Step S 207 ).
  • the controller 16 deletes the whole data in the selected erase block by executing the block erase process against the selected erase block (Step S 208 ). With this erase process, since the free space of the non-volatile memory 15 is increased, the free space corresponding to the data size of the write data is secured at the non-volatile memory 15 . Then, the controller 16 writes each of the write data stored in the buffer 14 to the free space in the non-volatile memory 15 (Step S 209 ). In Step S 209 , the controller 16 can write the write data to the non-volatile memory 15 in the state that the rotation of the hard disk 13 is stopped.
  • the write data accumulated in the buffer 14 can be stored in the non-volatile memory 15 at high speed.
  • Step S 203 the free space of the non-volatile memory 15 is determined whether or not it is smaller than the data size of the write data. However, it is also possible to determine whether or not the free space of the non-volatile memory 15 is smaller than a specific data size which is previously determined.
  • FIG. 9 Another structural example of the information storage device 11 of the present invention is shown in FIG. 9 .
  • the information storage device 11 shown in FIG. 9 is realized by an SSD (Solid State Drive) which includes a non-volatile cache.
  • a non-volatile storage medium 300 which is configured of a non-volatile memory 301 is disposed instead of the hard disk 13 .
  • a non-volatile memory 302 is disposed as a cache with respect to the non-volatile storage medium 300 .
  • the non-volatile memory 302 is a memory device accessible at higher speed than the non-volatile memory 301 in the non-volatile storage medium 300 .
  • the read/write access to the non-volatile memory 302 is performed at higher speed than the read/write access to the non-volatile memory 301 in the non-volatile storage medium 300 as well. Therefore, the synchronized data erase process which is described above is also useful for the information storage device 11 of FIG. 9 .
  • the area to which the write data is written can be secured in the non-volatile memory 15 and the write data can be stored in the non-volatile memory 15 by erasing the synchronized data in the non-volatile memory 15 . Further, since the data move process is executed during the normal operation in advance, the process to erase the synchronized data can be executed at high speed.
  • the various modules of the systems described herein can be implemented as software applications, hardware and/or software modules, or components on one or more computers, such as servers. While the various modules are illustrated separately, they may share some or all of the same underlying logic or code.

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

According to one embodiment, an information storage device includes a non-volatile storage medium, a non-volatile memory configured to store specific data blocks to be read for a host device and write data to be written to the non-volatile storage medium, a buffer configured to temporarily store write data transmitted from the host device, and a controller. The controller is configured to delete synchronized data the same data block as which exists on the non-volatile storage medium among the specific data blocks stored in the non-volatile memory if the free space of the non-volatile memory is smaller than a given data size, and to write the write data stored in the buffer to the non-volatile memory.

Description

    CROSS-REFERENCE TO RELATED APPLICATIONS
  • This application is based upon and claims the benefit of priority from Japanese Patent Application No. 2008-019364, filed Jan. 30, 2008, the entire contents of which are incorporated herein by reference.
  • BACKGROUND
  • 1. Field
  • One embodiment of the invention relates to an information storage device having a non-volatile memory which functions as a cache and a control method thereof.
  • 2. Description of the Related Art
  • Generally, in an information processing device such as a computer, an information storage device such as a hard disk drive is utilized. The information storage device stores information in a non-volatile storage medium such as a hard disk.
  • Recently, an information storage device having a non-volatile storage medium and a non-volatile memory which functions as a cache has been developed. Normally, the non-volatile memory is called a non-volatile cache. The information storage device having the non-volatile cache can perform read/write access of data which is specified by a host at high speed. Further, the information storage device which has the non-volatile cache has an advantage that electric power consumption can be reduced because data can be accessed without rotating a hard disk.
  • In Jpn. Pat. Appln. KOKAI Publication No. 2005-190187, a storage device which has a hard disk and a non-volatile memory is disclosed. The storage device has a function to perform access to either or both of the hard disk and the non-volatile memory in accordance with an external access request.
  • However, in the state that most of the storage area of the non-volatile cache is used and free space is insufficient, write data from the host cannot be written to the non-volatile cache. Therefore, the write data needs to be written to the hard disk.
  • In this case, when the hard disk is not rotating, spin-up of the hard disk is necessary. Therefore, very long time is needed to complete the writing of the write data to the hard disk. Further, even when the hard disk is rotating, it takes long time to complete the writing of the write data due to seek latency.
  • In this manner, when free space shortage occurs at the non-volatile cache, the write operation of the information storage device becomes slow. If power abnormality such as power failure occurs before the writing of the write data is completed, the write data is lost.
  • BRIEF DESCRIPTION OF THE SEVERAL VIEWS OF THE DRAWINGS
  • A general architecture that implements the various feature of the invention will now be described with reference to the drawings. The drawings and the associated descriptions are provided to illustrate embodiments of the invention and not to limit the scope of the invention.
  • FIG. 1 is an exemplary block diagram showing a structure of an information storage device according to an embodiment of the invention;
  • FIG. 2 is an exemplary block diagram showing a structural example of a controller which is disposed in the information storage device of the embodiment;
  • FIG. 3 is an exemplary diagram for explaining an operational example of writing write data to a non-volatile memory which is performed by the information storage device of the embodiment;
  • FIG. 4 is an exemplary diagram for explaining another operational example of writing write data to a non-volatile memory which is performed by the information storage device of the embodiment;
  • FIG. 5 is an exemplary flowchart for explaining procedure of a data move process which is performed by the information storage device of the embodiment;
  • FIG. 6 is an exemplary diagram for explaining an example of the data move process which is performed by the information storage device of the embodiment;
  • FIG. 7 is an exemplary diagram for explaining another example of the data move process which is performed by the information storage device of the embodiment;
  • FIG. 8 is an exemplary flowchart for explaining procedure of write operation which is performed by the information storage device of the embodiment; and
  • FIG. 9 is an exemplary block diagram showing another structural example of the information storage device of the embodiment.
  • DETAILED DESCRIPTION
  • Various embodiments according to the invention will be described hereinafter with reference to the accompanying drawings. In general, according to one embodiment of the invention, an information storage device includes a non-volatile storage medium, a non-volatile memory, a buffer, and a controller. The non-volatile storage medium is configured to store specific data blocks to be read for a host device and write data to be written to the non-volatile storage medium. The buffer configured to temporarily store write data transmitted from the host device. The controller is configured to delete synchronized data the same data block as which exists on the non-volatile storage medium among the specific data blocks stored in the non-volatile memory if the free space of the non-volatile memory is smaller than a given data size, and to write the write data stored in the buffer to the non-volatile memory.
  • FIG. 1 shows a structure of an information storage device 11 according to an embodiment of the present invention. The information storage device 11 is a device which performs writing of data to a non-volatile storage medium and reading of data from the non-volatile storage medium in accordance with an access request from a host device 20. The information storage device 11 has the non-volatile storage medium and a non-volatile memory which functions as a cache for the non-volatile storage medium. The capacity of the non-volatile memory is smaller than that of the non-volatile storage medium. However, the non-volatile memory can perform data transfer for reading/writing of data at higher speed than the non-volatile storage medium. In the following, it is assumed that the information storage device 11 is realized as a hybrid hard disk drive (HHD). The hybrid HDD is a hard disk drive which has a non-volatile storage medium and a non-volatile memory. In this case, the non-volatile storage medium can be realized by a hard disk which is a rotating medium.
  • Specifically, the information storage device 11 has an LSI 12 in which various circuit blocks are integrated, a hard disk 13, a buffer 14, a non-volatile memory 15 and the like.
  • The non-volatile memory 15 is a semiconductor memory which functions as a cache (non-volatile cache) for the hard disk 13 which is a non-volatile storage medium (also called a permanent storage medium). For example, the non-volatile memory 15 can be realized by a flash memory (flash EEPROM) and the like. The non-volatile memory 15 is used for storing specific data (specific data blocks) which is to be read at high speed from the information storage device 11 to the host device 20 and storing write data (write data blocks) which is to be written to the hard disk 13.
  • With an ordinary HDD, software (kernels in the OS, device drivers in the OS, application programs and the like) and all of user data are stored only on the hard disk 13.
  • With the information storage device 11 of the present embodiment, a copy of a part of the software or a copy of a part of user data which is stored on the hard disk 13 can be stored in the non-volatile memory 15 as the data to be read at high speed to the host device 20. Accordingly, various data (the software and the user data) can be transferred from the information storage device 11 to the host device 20 at high speed.
  • The host device 20 can specify which data should be stored in the non-volatile memory 15 among the data stored on the hard disk 13. The information storage device 11 loads the data (also called a data block) corresponding to each of some logical block addresses (LBA) which are specified by the host device 20 from the hard disk 13 to the non-volatile memory 15. The loaded data can be constantly stored in the non-volatile memory 15.
  • Here, the data to be stored at the non-volatile memory 15 is not limited to the data corresponding to each of the logical block addresses (LBA) which are specified by the host device 20. For example, the information storage device 11 can estimate each logical block address (LBA) which has a high possibility to be requested for reading by the host device 20. Then, the information storage device 11 can load the data corresponding to each of the estimated logical block addresses (LBA) from the hard disk 13 to the non-volatile memory 15 and store the data in the non-volatile memory 15.
  • Further, in the information storage device 11, it is also possible to store data such as a hibernation file, which is requested for writing by the host device 20, into the non-volatile memory 15.
  • Furthermore, the non-volatile memory 15 is also utilized as a write cache for temporarily storing write data which is to be written to the hard disk 13. Namely, the write data which is transferred from the host device 20 is temporarily stored in the non-volatile memory 15. Then, for example, when a storage area for the write cache of the non-volatile memory 15 is filled with the write data (data blocks which should be written) or when the information storage device 11 is idle and the hard disk 13 is available for writing, the write data (write data blocks) stored in the non-volatile memory 15 is written to the hard disk 13.
  • The buffer 14 corresponds to a DRAM cache which is disposed in an ordinary HDD. The buffer 14 can function as a write buffer for temporarily storing write data which is transferred from the host device 20. The buffer 14 is configured of a volatile memory such as a DRAM and an SDRAM. Although the access speed of reading/writing of the buffer 14 is faster than that of the non-volatile memory 15, the capacity of the buffer 14 is smaller than that of the non-volatile memory 15. The write cycle which is performed by the host device 20 is completed when the write data transferred from the host device 20 is stored in the buffer 14.
  • When a Flush Cache command is received from the host device 20, the information storage device 11 writes the write data (the write data blocks) accumulated in the buffer 14 into the non-volatile memory 15. The Flush Cache command is a Flush command to instruct to write all of the write data stored in the buffer 14 on the hard disk 13.
  • As mentioned above, by writing the write data stored in the buffer 14 into the non-volatile memory 15 not on the hard disk 13, the write data in the buffer 14 can be stored in a safe storage place which is non-volatile at high speed.
  • The LSI 12 is an electronic circuit for controlling the operation of the information storage device 11. The LSI 12 includes a controller 16, a disk interface 17, a buffer interface 18, a memory interface 19, a host interface 21 and the like. The controller 16 controls the operation of the information storage device 11 in accordance with various commands from the host device 20. The controller 16 performs communication with the host device 20 via the host interface 21. The communication between the host device 20 and the controller 16 is performed by utilizing various commands which are defined in the ATA8-ACS standard, for example.
  • The disk interface 17 performs the data transfer between the controller 16 and the hard disk 13. The data writing to the hard disk 13 and the data reading from the hard disk 13 are performed by utilizing a mechanical drive mechanism disposed in the information storage device 11. The drive mechanism has a spindle motor for rotating the hard disk 13, a head, an actuator for moving the head in the radius direction of the hard disk 13 and the like.
  • The memory interface 19 performs the data transfer between the controller 16 and the non-volatile memory 15. The memory interface 19 is configured of a memory controller for controlling access of the non-volatile memory 15.
  • The buffer interface 18 performs the data transfer between the controller 16 and the buffer 14. The buffer interface 18 is configured of a DRAM controller, for example.
  • The controller 16 includes a management table 161. The controller 16 manages the contents of each data block stored in the non-volatile memory 15 by utilizing the management table 161. Specifically, in the management table 161, management information is stored for each data block which is stored in the non-volatile memory 15. The managing information corresponding to each of the data blocks indicates physical address which shows a storage position where the data block is stored in the non-volatile memory 15, the logical block address (LBA) of the data block, the data size of the data block, attribute of the data block and the like. The attribute shows whether or not the data block is a specified data block (the pinned data) corresponding to the LBA which is previously specified by the host device to be maintained in the non-volatile memory 15.
  • When a read request (read command) is received from the host device 20, the controller 16 reads the data block from either the non-volatile memory 15 or the hard disk 13 in accordance with the address (LBA) contained in the read command.
  • Specifically, the controller 16 determines whether or not the data block corresponding to the LBA which is specified by the read command exists in the non-volatile memory 15 by referring to the management table 161. When the data block corresponding to the LBA which is specified by the read command is detected to exist in the non-volatile memory 15, the controller 16 reads the data block from the non-volatile memory 15. On the other hand, when the data block corresponding to the LBA which is specified by the read command is detected not to exist in the non-volatile memory 15, the controller 16 reads the data block from the hard disk 13.
  • In addition, in order to prevent occurrence of delay of write operation caused by free area shortage of the non-volatile memory 15 which is the non-volatile cache, the controller 16 has a function to increase the free area of the non-volatile memory 15 by temporarily deleting a part of the specified data blocks which are stored in the non-volatile memory 15.
  • Specifically, in the state that most of the storage area of the non-volatile memory 15 is used and free space of the non-volatile memory 15 is insufficient, the write data accumulated in the buffer 14 (one data block or more which is accumulated in the buffer 14 as the write data) cannot be written into the non-volatile memory 15. In this case, normally, the write data needs to be written to the hard disk 13. Then, the delay of write operation occurs. If power abnormality such as power failure occurs before completing the write operation on the hard disk 13, the write data is lost.
  • Therefore, it is important to enable the write data accumulated in the buffer 14 to be stored in the non-volatile memory 15 even when free space of the non-volatile memory 15 is insufficient. In order to realize the abovementioned, the controller 16 performs the following processes when the abovementioned flush cache command is received, for example.
  • First, the controller 16 determines whether or not the free space of the non-volatile memory 15 is smaller than a predetermined data size. In the case where the free space is smaller than the predetermined data size, the controller 16 increases the free space of the non-volatile memory 15 by temporarily deleting the data block (synchronized data) the same data block as which exists on the hard disk 13 among the specified data blocks (pinned data, etc.) which are stored in the non-volatile memory 15. Then, the controller 16 writes the write data which is stored in the buffer 14 to the non-volatile memory 15. In this manner, even in the case where the free space of the non-volatile memory 15 is insufficient, the write data accumulated in the buffer 14 can be stored in the non-volatile memory 15 at high speed and the security of the write data can be improved.
  • The synchronized data (also called media synchronized data) is data block the same data block as which also exists on the hard disk 13. If a certain data block A exists on each of the non-volatile memory 15 and the hard disk 13, the data block A is the synchronized data. Therefore, even if the synchronized data is deleted from the non-volatile memory 15, the synchronized data can be restored in the non-volatile memory 15 by reading it from the hard disk 13.
  • In the present embodiment, the abovementioned delete process of synchronized data is executed in accordance with occurrence of an event which needs storing of write data stored in the buffer 14 into the non-volatile memory 15 at high speed. As factors which cause the events, there exist other factors than the reception of the abovementioned flush cache command. For example, when the write data is written to the buffer 14 in a state that the head is immediately unloaded to a ramp, the abovementioned delete process of synchronized data is executed. Further, when a command instructing execution of a high speed flush process, which is described later in FIG. 4, is received from the host device 20, the abovementioned delete process of synchronized data is performed.
  • A structural example of the controller 16 is shown in FIG. 2.
  • In order to execute the abovementioned delete process of synchronized data, the controller 16 includes a synchronized data delete module 201, a rewrite process module 202, an access frequency detection process module 203, and a data move process module 204.
  • In the case where the free space of the non-volatile memory 15 is smaller than the predetermined data size (for example, the data size of the write data to be written to the non-volatile memory 15), the synchronized data delete module 201 selects synchronized data from among the data blocks which are stored in the non-volatile memory 15 and executes the process to delete the synchronized data. For example, the synchronized date delete module 201 selects, as the synchronized data, each of the data blocks which are loaded from the hard disk 13, from among the specified data blocks corresponding respectively to the LBA specified by the host device 20. In this case, the synchronized data delete module 201 preferentially deletes the data block which is synchronized data and has low access frequency among the data blocks stored in the non-volatile memory 15 based on the access frequency by the host device 20 to each of the data blocks of synchronized data. Namely, the data block having a low access frequency is preferentially deleted among the data blocks of the synchronized data. In this manner, reduction of the read access performance caused by the erase of the data blocks can be suppressed to the minimum.
  • Here, as mentioned above, it is also possible that the controller 16 itself estimates each logical block address (LBA) which has a high possibility to be requested by the host device 20 and loads the data block corresponding to each of the estimated logical block addresses from the hard disk 13 to the non-volatile memory 15. Therefore, such data block can be selected as the synchronized data (the synchronized data block).
  • In order to restore the deleted data block in the non-volatile memory 15, the data block which is the same as the data block deleted from the non-volatile memory 15 by the synchronized data delete module 201 is respectively read from the hard disk 13 and written to the non-volatile memory 15 by the rewrite process module 202. For example, the rewrite process is executed after the write data accumulated in the non-volatile memory 15 is written to the hard disk 13.
  • The access frequency detection process module 203 executes the process to manage access frequency of each data block which is stored in the non-volatile memory 15. Specifically, the access frequency detection process module 203 counts the number of the read access or write access by the host device 20 for each data block stored in the non-volatile memory 15. Here, it is not always necessary to count the actual access number itself accurately. For example, it is also possible to manage the presence or absence of the access during a power cycle of the information storage device 11 (the term from the power ON through the power OFF of the information storage device 11) for each data block. In this case, the value of the access number corresponding to the data block which is accessed one time or more during one power cycle becomes one. The access number corresponding to the data block becomes zero when there is no access at all during one power cycle. Further, it is also possible to manage the access number by taking only the synchronized data stored at the non-volatile memory 15 as the target.
  • The data move process module 204 executes the data move process for gathering each of the data blocks which have low access frequency among the data blocks into a specific storage area in the non-volatile memory 15 during the normal operation of the information storage device 11 based on the access frequency of each synchronized data (access frequencies of the data blocks which are synchronized data) in the non-volatile memory 15. Namely, the data block which is the synchronized data and has low access frequency among the data blocks stored in the non-volatile memory 15 is gathered into a specific area of the non-volatile memory 15 in advance. In this manner, by gathering each of the data blocks which are to be the erase target, the write data can be effectively written to the free space of the non-volatile memory 15 because continuous storage areas can be assigned as the free space.
  • In the case where the non-volatile memory 15 is configured of a flash memory which includes a plurality of erase blocks, in the data move process, the synchronized data which have low access frequency among the synchronized data, namely, the data blocks which are the synchronized data and have low access frequency, are respectively gathered into one or more specific erase areas. The process to delete data from the flash memory is executed on the basis of each erase block. Therefore, by gathering the data blocks which are the synchronized data and have low access frequency into one or more specific erase areas in advance, the synchronized data delete module 201 can delete each of the data blocks which are the synchronized data and have low access frequency all together only by executing the block erase process against the specific erase block. Accordingly, the synchronized data delete process (erase process) can be executed at high speed and the necessary free space can be quickly secured.
  • Further, in the data move process, based on the LBA of each of the synchronized data having a low access frequency, namely, based on the LBA of each of the data blocks which are the synchronized data and have low access frequency, the process of gathering the data blocks whose LBAs are close to one another to the same erase block is executed. Accordingly, the speed of the rewrite process for restoring the data blocks which are the same as the deleted data blocks respectively from the hard disk 13 in the non-volatile memory 15 can be enhanced.
  • FIG. 3 shows the write operation for writing the write data to the non-volatile memory 15 which is performed at the time of receiving the flush cache command.
  • As mentioned above, in response to the reception of the flush cache command (flush command) from the host device 20, the controller 16 executes the process (the flush process) of writing each data block accumulated as the write data in the buffer 14 to the non-volatile memory 15. The flush process can be executed in a state that the rotation of the hard disk 13 is stopped. Here, the flush process is executed based on the premise that the free space, namely, the space to which data can be written freely, is sufficiently assigned in the non-volatile memory 15.
  • In the non-volatile memory 15, the specified data blocks (pinned data, etc.) corresponding to LBAs specified by the host device 20 and the write data blocks which are to be written to the hard disk 13 are mixed.
  • Each write data block which is stored in the non-volatile memory 15 is new data block which has not been written to the hard disk 13. Therefore, the write data block which is stored in the non-volatile memory 15 is non-synchronized data (media non-synchronized data) for which the same data block does not exist on the hard disk 13.
  • On the other hand, the synchronized data (the media synchronized data) the same data block as which exists on the hard disk 13 is included in the data blocks (pinned data) corresponding to LBAs which are specified by the host device 20. For example, the data block which is loaded from the hard disk 13 to the non-volatile memory 15 is the synchronized data. Further, there is a case where the same data block exists on the hard disk 13 as the data block even though it is transferred from the host device 20.
  • Therefore, in the present embodiment, when the free space of the non-volatile memory 15 is insufficient, the controller 16 selects the synchronized data from among the data blocks (for example, pinned data, etc.) which are stored in the non-volatile memory 15, and temporarily deletes the selected synchronized data so that the free space of the non-volatile memory 15 is increased. In this case, the controller 16 also executes the process to update the management table 161 in order to erase the management information corresponding to the deleted synchronized data from the management table 161.
  • Then, the controller 16 writes each of the write data accumulated in the buffer (the write buffer) 14 to the free space of the non-volatile memory 15 which is secured by the delete of the synchronized data. Accordingly, since only the synchronized data is to be the erase target, there arises no problem due to the data erase.
  • With the abovementioned process, in the present embodiment, even in the case where most of the storage area of the non-volatile memory 15 is used, the area to which the write data is written can be secured in the non-volatile memory 15 and the write data can be stored in the non-volatile memory 15. Therefore, the response performance against the flush cache command can be improved and the possibility that the write data is lost due to electric power abnormality, etc., can be reduced. In addition, since the process to write the write data stored in the buffer 14 to the non-volatile memory 15 can be executed in a state that the rotation of the hard disk 13 is stopped, the increase of electric power consumption due to the rotation of the hard disk 13 can be prevented.
  • Next, with reference to FIG. 4, the operation of a high speed data flush process will be explained as another example of the write operation of the write data.
  • The high speed data flush process is the process, not to write the entire write data accumulated in the buffer 14 to the non-volatile memory 15, but to write a part of the write data accumulated in the buffer 14 to the hard disk 13 and to write the rest of the write data accumulated in the buffer 14 to the non-volatile memory 15. The write operation to the hard disk 13 and the write operation to the non-volatile memory 15 are performed simultaneously.
  • Specifically, when the flush cache command is received from the host device 20 or when a command which explicitly instructs the execution of the high speed data flush process is received from the host device 20, the controller 16 selects the write data blocks (for example, the data blocks in which LBAs are continuous, etc.) which can be written to the hard disk 13 at high speed from among the write data blocks accumulated in the buffer 14, and writes the selected write data blocks to the hard disk 13. In this case, a reordering process to reorder the selected data blocks in the order of LBA is executed as well.
  • At the same time as writing the write data blocks to the hard disk 13, the controller 16 selects the rest of the write data blocks (i.e., the write data blocks other than the selected write data blocks) from among the write data blocks accumulated in the buffer 14, and writes the rest of the write data blocks to the non-volatile memory 15.
  • In the case where the free space of the non-volatile memory 15 is smaller than the total data size of the rest of the write data blocks which are to be written to the non-volatile memory 15, the controller 16 selects the synchronized data (media synchronized data) from among the data blocks (for example, pinned data, etc.) which are stored in the non-volatile memory 15, and deletes the selected synchronized data (media synchronized data) temporarily so as to secure the free space. In this manner, even in the state that the free space of the non-volatile memory 15 is insufficient, the high speed data flush process can be executed.
  • Next, the data move process which is executed at the background during normal operation of the information storage device 11 will be explained with reference to FIG. 5.
  • In the present embodiment, the following movement process is executed in order to execute the synchronized data erase process efficiently.
  • First, the controller 16 counts the number of the read access of the host device 20 for each data block which is stored in the non-volatile memory 15 (Step S101). Then, when a garbage collection process or a wear leveling process is executed in the information storage device 11 or when the information storage device 11 is idle, the controller 16 executes the data move process for relocating each of the data blocks which are stored in the non-volatile memory 15 based on the access number corresponding to each of the data blocks stored in the non-volatile memory 15 (Steps S102, S103).
  • In Step S102, the controller 16 selects the data blocks which are the synchronized data and have low access frequency from among the data blocks which are stored in the non-volatile memory 15. Then, in Step S103, the controller 16 relocates data blocks stored in the non-volatile memory 15 so that the data blocks which are the media synchronized data and has low access frequency are respectively gathered to the specific erase block, as shown in FIG. 6.
  • Further, in the data move process in Step S103, the controller 16 performs the relocating so that data blocks in which LBAs are close to one another are gathered to the same erase block also in consideration of the LBA for each data block which is the media synchronized data and has low access frequency. The state of relocating is shown in FIG. 7. In FIG. 7, the data block in which LBA is 100, the data block in which LBA is 20000, the data block in which LBA is 180, the data block in which LBA is 21000, the data block in which LBA is 20 and the data block in which LBA is 16000 are the data blocks which are the media synchronized data and have low access frequency. The data blocks in which LBAs are close to one another, namely, the data blocks in which LBAs belong within the predetermined LBA range are moved to the same erase block. In FIG. 7, the data block in which LBA is 100, the data block in which LBA is 180 and the data block in which LBA is 20 are gathered into the erase block 1. Further, the data block in which LBA is 20000, the data block in which LBA is 21000 and the data block in which LBA is 16000 are gathered into the erase block 2.
  • In the synchronized data delete process, the number of the erase blocks which are to be the erase target varies in accordance with the data size of the write data. For example, if only the erase block 1 is erased in the synchronized data delete process, it is necessary in the rewrite process to execute the process to restore the data block in which LBA is 100, the data block in which LBA is 180 and the data block in which LBA is 20 from the hard disk 13 in the non-volatile memory 15. In this case, the data block in which LBA is 100, the data block in which LBA is 180 and the data block in which LBA is 20 exist at the storage positions on the hard disk 13 being close to one another (for example, on the same track or on two adjacent tracks). Therefore, these data blocks can be efficiently read from the hard disk 13 and the enhancement of the rewrite process speed can be achieved.
  • Next, the procedure of the write operation of writing the write data to the non-volatile memory 15 will be explained with reference to the flowchart of FIG. 8.
  • When a factor which needs high speed storing of the write data of the buffer 14 to the non-volatile memory 15 is generated, for example, when the flush cache command is received from the host device 20 (Step S201), the controller 16 checks the free space of the non-volatile memory 15 (Step S202). Then, the controller 16 compares the free space of the non-volatile memory 15 with the data size of the write data accumulated in the buffer 14 and determines whether or not the free space of the non-volatile memory 15 is smaller than the data size of the write data (Step S203).
  • When the free space of the non-volatile memory 15 is equal to or larger than the data size of the write data (NO in Step S203), the controller 16 writes the write data accumulated in the buffer 14 to the non-volatile memory 15 (Step S204).
  • When the free space of the non-volatile memory 15 is smaller than the data size of the write data (YES in Step S203), the controller 16 calculates the shortfall size (the shortfall size=the data size of the write data−the free space of the non-volatile memory 15) (Step S205). Then, the controller 16 determines the data blocks to be deleted from among the data blocks stored in the non-volatile memory 15 based on the shortfall size (Step S206). In Step S206, the data blocks which are synchronized data and have low access frequency are selected as the erase target of the data blocks from among the data blocks (for example, pinned data, etc.) stored in the non-volatile memory 15.
  • When the data move process is performed such that the data blocks which are synchronized data and have low access frequency are previously gathered into some specific erase blocks, the controller 16 only needs to select the erase blocks which are to be the erase target from among the specific erase blocks based on the shortfall size. Then, the controller 16 erases, from the management table 161, the management information corresponding to each of the data blocks which exist in the selected erase block (Step S207).
  • Next, the controller 16 deletes the whole data in the selected erase block by executing the block erase process against the selected erase block (Step S208). With this erase process, since the free space of the non-volatile memory 15 is increased, the free space corresponding to the data size of the write data is secured at the non-volatile memory 15. Then, the controller 16 writes each of the write data stored in the buffer 14 to the free space in the non-volatile memory 15 (Step S209). In Step S209, the controller 16 can write the write data to the non-volatile memory 15 in the state that the rotation of the hard disk 13 is stopped.
  • With the abovementioned process, even in the case where the free space of the non-volatile memory 15 is insufficient, the write data accumulated in the buffer 14 can be stored in the non-volatile memory 15 at high speed.
  • Here, in Step S203, the free space of the non-volatile memory 15 is determined whether or not it is smaller than the data size of the write data. However, it is also possible to determine whether or not the free space of the non-volatile memory 15 is smaller than a specific data size which is previously determined.
  • Another structural example of the information storage device 11 of the present invention is shown in FIG. 9.
  • The information storage device 11 shown in FIG. 9 is realized by an SSD (Solid State Drive) which includes a non-volatile cache. In the information storage device 11 of FIG. 9, a non-volatile storage medium 300 which is configured of a non-volatile memory 301 is disposed instead of the hard disk 13. In addition, a non-volatile memory 302 is disposed as a cache with respect to the non-volatile storage medium 300. The non-volatile memory 302 is a memory device accessible at higher speed than the non-volatile memory 301 in the non-volatile storage medium 300. In the structure of FIG. 9, the read/write access to the non-volatile memory 302 is performed at higher speed than the read/write access to the non-volatile memory 301 in the non-volatile storage medium 300 as well. Therefore, the synchronized data erase process which is described above is also useful for the information storage device 11 of FIG. 9.
  • As explained above, according to the present embodiment, even in the state that most of the storage area of the non-volatile memory 15 is used, the area to which the write data is written can be secured in the non-volatile memory 15 and the write data can be stored in the non-volatile memory 15 by erasing the synchronized data in the non-volatile memory 15. Further, since the data move process is executed during the normal operation in advance, the process to erase the synchronized data can be executed at high speed.
  • The various modules of the systems described herein can be implemented as software applications, hardware and/or software modules, or components on one or more computers, such as servers. While the various modules are illustrated separately, they may share some or all of the same underlying logic or code.
  • While certain embodiments of the inventions have been described, these embodiments have been presented by way of example only, and are not intended to limit the scope of the inventions. Indeed, the novel methods and systems described herein may be embodied in a variety of other forms; furthermore, various omissions, substitutions and changes in the form of the methods and systems described herein may be made without departing from the spirit of the inventions. The accompanying claims and their equivalents are intended to cover such forms or modifications as would fall within the scope and spirit of the inventions.

Claims (12)

1. An information storage device comprising:
a non-volatile storage medium;
a non-volatile memory configured to store specific data to be read for a host device and data to be written to the non-volatile storage medium;
a buffer configured to temporarily store the data to be written transmitted from the host device; and
a controller configured to delete data synchronized with the data in the non-volatile storage medium among the specific data stored in the non-volatile memory, if a space available in the non-volatile memory is smaller than a threshold data size, and to write the data to be written stored in the buffer to the non-volatile memory.
2. The information storage device of claim 1, wherein the controller is configured to delete data with a substantially low access frequency with priority among a plurality of the synchronized data stored in the non-volatile memory.
3. The information storage device of claim 2, wherein the controller is configured to move data in order to gather data with low access frequencies among the plurality of data into a designated storage area in the non-volatile memory, the data is moved during normal operation of the information storage device.
4. The information storage device of claim 2, wherein the non-volatile memory is a flash memory comprising a plurality of erase blocks, and
the controller is configured to move data during normal operation of the information storage device, to gather data with low access frequencies among the plurality of data into at least one designated erase block in the flash memory, and to erase the whole data in the at least one designated erase block in order to erase the gathered data.
5. The information storage device of claim 4, wherein the data moving comprising gathering data with logical block addresses close to one another among the data with low access frequencies into the same erase block.
6. The information storage device of claim 5, wherein the controller comprises a rewrite module configured to read data being the same as data deleted from the designated erase block from the non-volatile storage medium, and to rewrite the data read from the non-volatile storage medium to the non-volatile memory.
7. The information storage device of claim 1, wherein the non-volatile storage medium comprises a hard disk which is a rotating medium, and
the controller is configured to write the data to be written stored in the buffer to the non-volatile memory in a state that rotation of the hard disk is stopped.
8. The information storage device of claim 1, wherein the non-volatile storage medium comprises a hard disk which is a rotating medium, and
the controller is configured to write a portion to be written among a plurality of data stored in the buffer to the hard disk, and to write the rest of the plurality of data to the non-volatile memory simultaneously.
9. An information storage device comprising:
a non-volatile storage medium;
a non-volatile memory configured to function as a cache, to store specific data to be read for a host device, and to write data to be written to the non-volatile storage medium;
a buffer configured to temporarily store the data to be written transmitted from the host device; and
a controller configured to read a data from either the non-volatile storage medium or the non-volatile memory in accordance with an address comprised in a read request when the read request is received from the host device, and to determine whether a space available in the non-volatile memory is smaller than a threshold data size, when a command instructing to write the data to be written stored in the buffer to the non-volatile storage medium is received from the host device, and configured to delete data synchronized with the data in the non-volatile storage medium among the specific data stored in the non-volatile memory, if the available space is smaller than the threshold data size, and to write the data to be written stored in the buffer to the non-volatile memory.
10. A control method of controlling operation of an information storage device comprising a non-volatile storage medium, a non-volatile memory configured to store specific data to be read for a host device and to write data to be written to the non-volatile storage medium, and a buffer configured to temporarily store the data to be written transmitted from the host device, the method comprising:
reading data from either the non-volatile storage medium or the non-volatile memory in accordance with an address comprised in a read request from the host device;
increasing a space available in the non-volatile memory by deleting data synchronized with the data in the non-volatile storage medium among the specific data stored in the non-volatile memory, if the available space is smaller than a threshold data size; and
writing the data to be written stored in the buffer to the available space of the non-volatile memory.
11. The control method of claim 10, wherein the deleting further comprises deleting data with a substantially low access frequency with priority among a plurality of the synchronized data stored in the non-volatile memory.
12. The control method of claim 11, further comprising moving data during normal operation of the information storage device in order to gather data with low access frequencies among the plurality of data into a designated storage area in the non-volatile memory by the host device.
US12/361,237 2008-01-30 2009-01-28 Information storage device and control method thereof Abandoned US20090193182A1 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2008-019364 2008-01-30
JP2008019364A JP2009181314A (en) 2008-01-30 2008-01-30 Information recording device and control method thereof

Publications (1)

Publication Number Publication Date
US20090193182A1 true US20090193182A1 (en) 2009-07-30

Family

ID=40900378

Family Applications (1)

Application Number Title Priority Date Filing Date
US12/361,237 Abandoned US20090193182A1 (en) 2008-01-30 2009-01-28 Information storage device and control method thereof

Country Status (3)

Country Link
US (1) US20090193182A1 (en)
JP (1) JP2009181314A (en)
CN (1) CN101499036A (en)

Cited By (34)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20100011168A1 (en) * 2008-07-11 2010-01-14 Samsung Electronics Co., Ltd Method and apparatus for cache flush control and write re-ordering in a data storage system
US20110082967A1 (en) * 2009-10-05 2011-04-07 Deshkar Shekhar S Data Caching In Non-Volatile Memory
US20110161565A1 (en) * 2009-12-31 2011-06-30 Phison Electronics Corp. Flash memory storage system and controller and data writing method thereof
US20110167197A1 (en) * 2010-01-05 2011-07-07 Mark Leinwander Nonvolatile Storage with Disparate Memory Types
CN102129353A (en) * 2010-01-13 2011-07-20 群联电子股份有限公司 Flash storage system, flash controller and data writing method
US20110198931A1 (en) * 2010-02-17 2011-08-18 Integrated Device Technology, Inc. Systems, devices, and methods for providing backup power to a load
US20110296085A1 (en) * 2010-05-28 2011-12-01 International Business Machines Corporation Cache memory management in a flash cache architecture
US20120137063A1 (en) * 2010-11-26 2012-05-31 Buffalo Inc. Auxiliary storage device and processing method thereof
US20120191647A1 (en) * 2005-09-15 2012-07-26 Berend Ozceri Endless memory
US20120198131A1 (en) * 2011-01-31 2012-08-02 Phison Electronics Corp. Data writing method for rewritable non-volatile memory, and memory controller and memory storage apparatus using the same
US20130019057A1 (en) * 2011-07-15 2013-01-17 Violin Memory, Inc. Flash disk array and controller
US20130212317A1 (en) * 2012-02-13 2013-08-15 Shai Traister Storage and Host Devices for Overlapping Storage Areas for a Hibernation File and Cached Data
US20130282964A1 (en) * 2010-05-05 2013-10-24 Microsoft Corporation Flash memory cache including for use with persistent key-value store
WO2013165386A1 (en) 2012-05-01 2013-11-07 Hewlett-Packard Development Company, L.P. Prearranging data to commit to non-volatile memory
US20140343896A1 (en) * 2013-05-15 2014-11-20 Google Inc. Determining Sensor Information in the Background On a Mobile Device
CN104598389A (en) * 2015-01-09 2015-05-06 上海小蚁科技有限公司 Method and device for storing data
US9146875B1 (en) * 2010-08-09 2015-09-29 Western Digital Technologies, Inc. Hybrid drive converting non-volatile semiconductor memory to read only based on life remaining
US9430376B2 (en) 2012-12-26 2016-08-30 Western Digital Technologies, Inc. Priority-based garbage collection for data storage systems
US9448918B2 (en) 2005-09-15 2016-09-20 Eye-Fi, Inc. Content-aware digital media storage device and methods of using the same
US20170139826A1 (en) * 2015-11-17 2017-05-18 Kabushiki Kaisha Toshiba Memory system, memory control device, and memory control method
US9690658B2 (en) 2014-03-29 2017-06-27 Fujitsu Limited Distributed storage system and method
US9785666B2 (en) 2010-12-28 2017-10-10 Microsoft Technology Licensing, Llc Using index partitioning and reconciliation for data deduplication
US9804784B2 (en) 2012-12-06 2017-10-31 Kabushiki Kaisha Toshiba Low-overhead storage of a hibernation file in a hybrid disk drive
CN107844265A (en) * 2016-09-20 2018-03-27 三星电子株式会社 The method of Memory Controller in the method and Operations Computing System of Operations Computing System
US9977732B1 (en) * 2011-01-04 2018-05-22 Seagate Technology Llc Selective nonvolatile data caching based on estimated resource usage
EP3301584A4 (en) * 2015-06-29 2018-06-27 Huawei Technologies Co., Ltd. Storage system, storage management device, storage device, hybrid storage device, and storage management method
EP3441869A1 (en) * 2017-08-09 2019-02-13 Kabushiki Kaisha Toshiba Storage controller, storage device, and write control method
US10268415B2 (en) 2013-06-05 2019-04-23 Kabushiki Kaisha Toshiba Data storage device including a first storage unit and a second storage unit and data storage control method thereof
US10474569B2 (en) 2014-12-29 2019-11-12 Toshiba Memory Corporation Information processing device including nonvolatile cache memory and processor
US10672179B2 (en) 2015-12-30 2020-06-02 Wuhan United Imaging Healthcare Co., Ltd. Systems and methods for data rendering
US20200242084A1 (en) * 2019-01-28 2020-07-30 International Business Machines Corporation Dynamically increasing available storage space in a storage volume
US10838665B2 (en) 2016-12-05 2020-11-17 Huawei Technologies Co., Ltd. Method, device, and system for buffering data for read/write commands in NVME over fabric architecture
US11762581B2 (en) 2016-12-05 2023-09-19 Huawei Technologies Co., Ltd. Method, device, and system for controlling data read/write command in NVMe over fabric architecture
USRE49818E1 (en) * 2010-05-13 2024-01-30 Kioxia Corporation Information processing method in a multi-level hierarchical memory system

Families Citing this family (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2011031796A2 (en) * 2009-09-08 2011-03-17 Fusion-Io, Inc. Apparatus, system, and method for caching data on a solid-state storage device
JP2011090460A (en) * 2009-10-21 2011-05-06 Toshiba Corp Data storage device and method of controlling the same
US20130238851A1 (en) * 2012-03-07 2013-09-12 Netapp, Inc. Hybrid storage aggregate block tracking
US20140219021A1 (en) * 2013-02-07 2014-08-07 Seagate Technology Llc Data protection for unexpected power loss
US9892798B2 (en) 2012-09-11 2018-02-13 Seagate Technology Llc Data protection for unexpected power loss
JP6158035B2 (en) * 2013-10-21 2017-07-05 東芝テック株式会社 Content playback apparatus and program
KR101548917B1 (en) 2014-02-24 2015-09-02 에스케이텔레콤 주식회사 Memory management apparatus and control method thereof
CN104363389A (en) * 2014-11-11 2015-02-18 广东中星电子有限公司 Lens vignetting compensation method and system
JP6320322B2 (en) * 2014-12-29 2018-05-09 東芝メモリ株式会社 Cache memory device and program
WO2016194979A1 (en) * 2015-06-02 2016-12-08 日本電気株式会社 Storage system, storage control device, storage control method, and program
US10289315B2 (en) * 2017-03-27 2019-05-14 Western Digital Technologies, Inc. Managing I/O operations of large data objects in a cache memory device by dividing into chunks
JP6346345B2 (en) * 2017-06-06 2018-06-20 東芝テック株式会社 Content playback apparatus and program
KR20200088713A (en) * 2019-01-15 2020-07-23 에스케이하이닉스 주식회사 Memory controller and operating method thereof

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070250662A1 (en) * 2006-04-21 2007-10-25 Kabushiki Kaisha Toshiba Storage device using nonvolatile cache memory and control method thereof
US7340580B2 (en) * 2003-12-25 2008-03-04 Kabushiki Kaisha Toshiba Storage device and information processing system

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7340580B2 (en) * 2003-12-25 2008-03-04 Kabushiki Kaisha Toshiba Storage device and information processing system
US20070250662A1 (en) * 2006-04-21 2007-10-25 Kabushiki Kaisha Toshiba Storage device using nonvolatile cache memory and control method thereof

Cited By (54)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20120191647A1 (en) * 2005-09-15 2012-07-26 Berend Ozceri Endless memory
US8688945B2 (en) * 2005-09-15 2014-04-01 Eye-Fi, Inc. Endless memory
US9448918B2 (en) 2005-09-15 2016-09-20 Eye-Fi, Inc. Content-aware digital media storage device and methods of using the same
US8307162B2 (en) * 2008-07-11 2012-11-06 Seagate Technology Llc Method and apparatus for cache flush control and write re-ordering in a data storage system
US20100011168A1 (en) * 2008-07-11 2010-01-14 Samsung Electronics Co., Ltd Method and apparatus for cache flush control and write re-ordering in a data storage system
US20110082967A1 (en) * 2009-10-05 2011-04-07 Deshkar Shekhar S Data Caching In Non-Volatile Memory
WO2011044154A1 (en) * 2009-10-05 2011-04-14 Marvell Semiconductor, Inc. Data caching in non-volatile memory
US9003159B2 (en) * 2009-10-05 2015-04-07 Marvell World Trade Ltd. Data caching in non-volatile memory
US20110161565A1 (en) * 2009-12-31 2011-06-30 Phison Electronics Corp. Flash memory storage system and controller and data writing method thereof
US8904086B2 (en) * 2009-12-31 2014-12-02 Phison Electronics Corp. Flash memory storage system and controller and data writing method thereof
US20150039820A1 (en) * 2009-12-31 2015-02-05 Phison Electronics Corp. Flash memory storage system and controller and data writing method thereof
US9009399B2 (en) * 2009-12-31 2015-04-14 Phison Electronics Corp. Flash memory storage system and controller and data writing method thereof
US20110167197A1 (en) * 2010-01-05 2011-07-07 Mark Leinwander Nonvolatile Storage with Disparate Memory Types
CN102129353A (en) * 2010-01-13 2011-07-20 群联电子股份有限公司 Flash storage system, flash controller and data writing method
US8638010B2 (en) 2010-02-17 2014-01-28 Integrated Device Technology, Inc. Systems, devices, and methods for providing backup power to a load
US20110198931A1 (en) * 2010-02-17 2011-08-18 Integrated Device Technology, Inc. Systems, devices, and methods for providing backup power to a load
US20130282964A1 (en) * 2010-05-05 2013-10-24 Microsoft Corporation Flash memory cache including for use with persistent key-value store
US20130282965A1 (en) * 2010-05-05 2013-10-24 Microsoft Corporation Flash memory cache including for use with persistent key-value store
US9436596B2 (en) * 2010-05-05 2016-09-06 Microsoft Technology Licensing, Llc Flash memory cache including for use with persistent key-value store
US9298604B2 (en) * 2010-05-05 2016-03-29 Microsoft Technology Licensing, Llc Flash memory cache including for use with persistent key-value store
USRE49818E1 (en) * 2010-05-13 2024-01-30 Kioxia Corporation Information processing method in a multi-level hierarchical memory system
US20110296085A1 (en) * 2010-05-28 2011-12-01 International Business Machines Corporation Cache memory management in a flash cache architecture
US8688897B2 (en) * 2010-05-28 2014-04-01 International Business Machines Corporation Cache memory management in a flash cache architecture
US8688900B2 (en) * 2010-05-28 2014-04-01 International Business Machines Corporation Cache memory management in a flash cache architecture
US20130145089A1 (en) * 2010-05-28 2013-06-06 International Business Machines Corporation Cache memory management in a flash cache architecture
US9146875B1 (en) * 2010-08-09 2015-09-29 Western Digital Technologies, Inc. Hybrid drive converting non-volatile semiconductor memory to read only based on life remaining
US20120137063A1 (en) * 2010-11-26 2012-05-31 Buffalo Inc. Auxiliary storage device and processing method thereof
US9785666B2 (en) 2010-12-28 2017-10-10 Microsoft Technology Licensing, Llc Using index partitioning and reconciliation for data deduplication
US9977732B1 (en) * 2011-01-04 2018-05-22 Seagate Technology Llc Selective nonvolatile data caching based on estimated resource usage
US20120198131A1 (en) * 2011-01-31 2012-08-02 Phison Electronics Corp. Data writing method for rewritable non-volatile memory, and memory controller and memory storage apparatus using the same
TWI494948B (en) * 2011-01-31 2015-08-01 Phison Electronics Corp Data writing method for a non-volatile memory module, memory controller and memory storage apparatus
US20130019057A1 (en) * 2011-07-15 2013-01-17 Violin Memory, Inc. Flash disk array and controller
US20130212317A1 (en) * 2012-02-13 2013-08-15 Shai Traister Storage and Host Devices for Overlapping Storage Areas for a Hibernation File and Cached Data
WO2013165386A1 (en) 2012-05-01 2013-11-07 Hewlett-Packard Development Company, L.P. Prearranging data to commit to non-volatile memory
EP2845105A4 (en) * 2012-05-01 2015-12-23 Hewlett Packard Development Co Prearranging data to commit to non-volatile memory
US9804784B2 (en) 2012-12-06 2017-10-31 Kabushiki Kaisha Toshiba Low-overhead storage of a hibernation file in a hybrid disk drive
US9430376B2 (en) 2012-12-26 2016-08-30 Western Digital Technologies, Inc. Priority-based garbage collection for data storage systems
US9015378B2 (en) * 2013-05-15 2015-04-21 Google Inc. Determining sensor information in the background on a mobile device
US20140343896A1 (en) * 2013-05-15 2014-11-20 Google Inc. Determining Sensor Information in the Background On a Mobile Device
US10268415B2 (en) 2013-06-05 2019-04-23 Kabushiki Kaisha Toshiba Data storage device including a first storage unit and a second storage unit and data storage control method thereof
US9690658B2 (en) 2014-03-29 2017-06-27 Fujitsu Limited Distributed storage system and method
US10474569B2 (en) 2014-12-29 2019-11-12 Toshiba Memory Corporation Information processing device including nonvolatile cache memory and processor
CN104598389A (en) * 2015-01-09 2015-05-06 上海小蚁科技有限公司 Method and device for storing data
EP3301584A4 (en) * 2015-06-29 2018-06-27 Huawei Technologies Co., Ltd. Storage system, storage management device, storage device, hybrid storage device, and storage management method
US20170139826A1 (en) * 2015-11-17 2017-05-18 Kabushiki Kaisha Toshiba Memory system, memory control device, and memory control method
US10672179B2 (en) 2015-12-30 2020-06-02 Wuhan United Imaging Healthcare Co., Ltd. Systems and methods for data rendering
US11544893B2 (en) 2015-12-30 2023-01-03 Wuhan United Imaging Healthcare Co., Ltd. Systems and methods for data deletion
CN107844265A (en) * 2016-09-20 2018-03-27 三星电子株式会社 The method of Memory Controller in the method and Operations Computing System of Operations Computing System
US10838665B2 (en) 2016-12-05 2020-11-17 Huawei Technologies Co., Ltd. Method, device, and system for buffering data for read/write commands in NVME over fabric architecture
US11762581B2 (en) 2016-12-05 2023-09-19 Huawei Technologies Co., Ltd. Method, device, and system for controlling data read/write command in NVMe over fabric architecture
EP3441869A1 (en) * 2017-08-09 2019-02-13 Kabushiki Kaisha Toshiba Storage controller, storage device, and write control method
US11144239B2 (en) 2017-08-09 2021-10-12 Kabushiki Kaisha Toshiba Storage controller, storage device, and write control method
US20200242084A1 (en) * 2019-01-28 2020-07-30 International Business Machines Corporation Dynamically increasing available storage space in a storage volume
US10762048B2 (en) * 2019-01-28 2020-09-01 International Business Machines Corporation Dynamically increasing available storage space in a storage volume

Also Published As

Publication number Publication date
JP2009181314A (en) 2009-08-13
CN101499036A (en) 2009-08-05

Similar Documents

Publication Publication Date Title
US20090193182A1 (en) Information storage device and control method thereof
CN102576293B (en) Data management in solid storage device and Bedding storage system
US10776153B2 (en) Information processing device and system capable of preventing loss of user data
US8560759B1 (en) Hybrid drive storing redundant copies of data on disk and in non-volatile semiconductor memory based on read frequency
US8706985B1 (en) System and method for optimizing garbage collection in data storage
US9256542B1 (en) Adaptive intelligent storage controller and associated methods
US9804784B2 (en) Low-overhead storage of a hibernation file in a hybrid disk drive
US8738882B2 (en) Pre-organization of data
US8327076B2 (en) Systems and methods of tiered caching
US8782334B1 (en) Hybrid drive copying disk cache to non-volatile semiconductor memory
US20120144097A1 (en) Memory system and data deleting method
US20150127889A1 (en) Nonvolatile memory system
US20130227198A1 (en) Flash memory device and electronic device employing thereof
US9268499B1 (en) Hybrid drive migrating high workload data from disk to non-volatile semiconductor memory
US9208101B2 (en) Virtual NAND capacity extension in a hybrid drive
US20130031296A1 (en) System and method for managing address mapping information due to abnormal power events
KR20150035560A (en) Optimized context drop for a solid state drive(ssd)
US20080025706A1 (en) Information recording apparatus and control method thereof
US8862819B2 (en) Log structure array
US7913029B2 (en) Information recording apparatus and control method thereof
US9189392B1 (en) Opportunistic defragmentation during garbage collection
KR101204163B1 (en) Semiconductor memory device
JP2010160605A (en) Semiconductor memory device, host device, and semiconductor memory system
KR20090042077A (en) File management system and method
KR101070511B1 (en) Solid state drive controller and method for operating of the solid state drive controller

Legal Events

Date Code Title Description
AS Assignment

Owner name: KABUSHIKI KAISHA TOSHIBA, JAPAN

Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:NITTA, TATSUO;REEL/FRAME:022187/0373

Effective date: 20081107

STCB Information on status: application discontinuation

Free format text: EXPRESSLY ABANDONED -- DURING EXAMINATION