WO2012002428A1 - Storage device, method for determining de-allocation priority order, and program - Google Patents

Storage device, method for determining de-allocation priority order, and program Download PDF

Info

Publication number
WO2012002428A1
WO2012002428A1 PCT/JP2011/064902 JP2011064902W WO2012002428A1 WO 2012002428 A1 WO2012002428 A1 WO 2012002428A1 JP 2011064902 W JP2011064902 W JP 2011064902W WO 2012002428 A1 WO2012002428 A1 WO 2012002428A1
Authority
WO
WIPO (PCT)
Prior art keywords
data
cache
ssd
hard disk
access
Prior art date
Application number
PCT/JP2011/064902
Other languages
French (fr)
Japanese (ja)
Inventor
周吾 小川
Original Assignee
日本電気株式会社
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 日本電気株式会社 filed Critical 日本電気株式会社
Priority to JP2012522658A priority Critical patent/JP5541361B2/en
Publication of WO2012002428A1 publication Critical patent/WO2012002428A1/en

Links

Images

Classifications

    • 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/0613Improving I/O performance in relation to throughput
    • 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/12Replacement control
    • G06F12/121Replacement control using replacement algorithms
    • 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
    • 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
    • G06F12/0871Allocation or management of cache space

Definitions

  • the present invention relates to a storage device having a cache, a data release priority determination method and a program for performing replacement in the cache.
  • an SSD Solid State Drive, hereinafter referred to as a flash memory
  • HDD Hard Disk Drive
  • the SSD is a storage medium using a flash memory. Since the SSD does not have a physically movable part such as a magnetic head or a platter, it does not require a seek time or a platter rotation waiting time when the magnetic head moves.
  • SSDs have very low latency and high throughput compared to hard disks. Therefore, by replacing the storage medium in the storage device from the hard disk to the SSD, the latency of the storage device can be greatly reduced. In addition, since the SSD consumes less power than the hard disk, power saving of the storage device can also be achieved.
  • SSDs have a higher price per storage capacity than hard disks. For this reason, if all the storage media in the storage device are replaced from the hard disk to the SSD, the cost increases significantly. Therefore, it is conceivable to use an SSD as a large-capacity cache memory for the hard disk.
  • An SSD is more expensive than a hard disk of the same capacity, but is cheaper than a DRAM (Dynamic Random Access Memory) generally used as a cache memory. Since the SSD is a non-volatile storage medium unlike the DRAM, there is an advantage that the data is not lost even when the power of the storage device is cut off and the power of the battery is not present. On the other hand, SSD is faster than hard disk but slower than DRAM.
  • DRAM is a higher cache (for example, a primary cache) and SSD is a lower cache (a hard disk lower than DRAM). It is conceivable to use in combination as a cache closer to the cache (for example, a secondary cache). Thereby, a large-capacity and high-speed cache can be realized at a relatively low cost.
  • a storage device having a cache such as a hard disk having a cache
  • LRU Least Recently Used
  • access frequency access frequency
  • a hard disk has a delay due to seek time and rotation latency each time it accesses a discontinuous block (access to a discontinuous block means access to a block located at a distant address on the storage medium. In the case of a hard disk, it is generally an access to a block that is physically separated on the platter.) When there is a data read request from the outside, this delay may increase the time required for access. However, in the methods such as LRU and LFU, no consideration is given to this delay.
  • An example of an object of the present invention is to select and store data to be stored in a cache according to the access performance characteristics of the storage medium, and to improve the hit rate in the cache, a release priority determination method, and a program Is to provide.
  • a storage device temporarily stores data stored in a storage medium, and has a cache with lower latency than the storage medium and the longer the data length of the data stored in the cache, Includes a release priority determining unit that increases the release priority of the data when performing replacement.
  • a release priority order determination method for temporarily storing data stored in a storage medium, wherein the cache performs replacement in a storage device including a cache having a latency lower than that of the storage medium.
  • the release priority order determination method of the method further comprises increasing the release priority order of the data when the cache performs replacement as the data length of the data stored in the cache is longer.
  • a program temporarily stores data stored in a storage medium, and a release priority order when the cache performs replacement in a storage device including a cache having a latency lower than that of the storage medium The higher the data length of the data stored in the cache, the higher the release priority of the data when the cache performs the replacement is executed.
  • the data to be stored in the cache can be selected and stored according to the access performance characteristics of the storage medium, and the hit rate in the cache can be improved.
  • FIG. 1 is a configuration diagram illustrating a schematic configuration of a computer network system including a storage device according to an embodiment of the present invention. It is a block diagram which shows schematic structure of the memory
  • FIG. 4 is a diagram illustrating an example of a DRAM cache management table stored in a data information storage unit in the embodiment of the present invention. In one Embodiment of this invention, it is a figure which shows the example of the hard disk management table which a data information storage part memorize
  • FIG. 6 is a diagram illustrating an example of a read request transmitted from a host in an embodiment of the present invention.
  • FIG. 6 is a diagram illustrating an example of a write request transmitted from a host in an embodiment of the present invention. 6 is a flowchart illustrating a processing procedure of the storage device when a read request from a host is received in an embodiment of the present invention.
  • FIG. 6 is a flowchart illustrating a processing procedure of the storage device when a write request from a host is received in an embodiment of the present invention.
  • FIG. 10 is a flowchart showing a processing procedure for storing data selected as a release target in step S162 in FIG. 8 and step S212 in FIG. 9 in an SSD cache or a hard disk as necessary.
  • FIG. 10 is a flowchart showing a processing procedure for storing data selected as a release target in step S162 in FIG. 8 and step S212 in FIG. 9 in an SSD cache or a hard disk as necessary.
  • FIG. 10 is a diagram showing information stored in a DRAM cache management table before a read request T process in an embodiment of the present invention.
  • FIG. 10 is a diagram showing information stored in a DRAM cache management table before a read request T process in an embodiment of the present invention.
  • FIG. 6 is a diagram showing information stored in an SSD cache management table before a read request T process in an embodiment of the present invention.
  • FIG. 6 is a diagram illustrating an example of a series of processing requests transmitted from a host to a storage device in an embodiment of the present invention.
  • FIG. 10 is a diagram illustrating information stored in a DRAM cache management table after a read request T process in an embodiment of the present invention.
  • FIG. 10 is a diagram illustrating information stored in an SSD cache management table after processing a read request T in an embodiment of the present invention.
  • FIG. 10 is a diagram illustrating information stored in a DRAM cache management table after processing a read request X in an embodiment of the present invention.
  • FIG. 10 is a diagram showing information stored in an SSD cache management table after processing a read request X in an embodiment of the present invention.
  • FIG. 10 is a diagram illustrating information stored in a DRAM cache management table after a read request Y process in an embodiment of the present invention.
  • FIG. 10 is a diagram illustrating information stored in an SSD cache management table after a read request Y process in an embodiment of the present invention.
  • FIG. 6 is a diagram showing information stored in a DRAM cache management table after processing a read request Z in an embodiment of the present invention.
  • FIG. 1 is a configuration diagram showing a schematic configuration of a computer network system including a storage device according to an embodiment of the present invention.
  • the computer network system shown in FIG. 1 includes one or more hosts 10, a storage device 20, and a network 30.
  • the host 10 transmits a write request or a read request (hereinafter, the write request and the read request are collectively referred to as a “processing request”) to the storage device 20, and is read based on the read request.
  • Receive data The storage device 20 stores data based on a write request from the host 10 and returns data based on a read request.
  • the network 30 connects the host 10 and the storage device 20 and transmits a processing request transmitted from the host 10 to the storage device 20 and a processing result transmitted from the storage device 20 to the host 10.
  • the connection configuration between the host 10 and the storage device 20 is not limited to the configuration via the network shown in FIG.
  • the host 10 and the storage device 20 may be directly connected.
  • the storage device 20 may be incorporated in the host 10.
  • FIG. 2 is a configuration diagram showing a schematic configuration of the storage device 20.
  • the storage device 20 includes a hard disk (storage medium) 210, an SSD cache (cache) 220, a DRAM cache (upper cache) 230, an access processing unit 240, a storage medium performance measurement unit 250, and performance information.
  • a storage unit 260, a release priority order determination unit 270, and a data information storage unit 280 are provided.
  • the hard disk 210 stores data written by the access processing unit 240. As described above, when data is read from the hard disk 210, a delay occurs due to seek time and rotation waiting time for each data.
  • the memory space of the hard disk 210 is divided into blocks, and an address is assigned to each block.
  • the address of the hard disk 210 is also used as an address when accessing the storage device 20 from the outside of the storage device 20, that is, an address of a virtual memory space of the storage device 20 (hereinafter referred to as “virtual address”). That is, the address of the hard disk 210 matches the virtual address.
  • the hard disk 210 and the management means of the hard disk 210 use existing technology.
  • the number of hard disks included in the storage device 20 is not limited to one shown in FIG. 1, and may be two or more.
  • the number of SSD caches 220 included in the storage device 20 is not limited to one as shown in FIG. 1 and may be two or more.
  • the SSD cache 220 and the DRAM cache 230 constitute a two-layer cache for the hard disk 210.
  • the SSD cache 220 is a cache configured by SSD (SSD configured by flash memory as described above).
  • the SSD cache 220 functions as a secondary cache for the hard disk 210.
  • the SSD cache 220 has a higher throughput than the hard disk 210. Since the SSD cache 220 does not particularly have a physically movable part such as a magnetic head or a platter, the latency is very small.
  • the memory space of the SSD cache is divided into blocks having the same size as the blocks of the hard disk 210, and an address is assigned to each block.
  • the DRAM cache 230 has a higher read / write speed than the SSD cache 220.
  • the DRAM cache 230 functions as a primary cache higher than the SSD cache 220.
  • the memory space of the DRAM cache 230 is divided into blocks having the same size as the blocks of the hard disk 210, and an address is assigned to each block.
  • the DRAM cache 230 and the management means of the DRAM cache 230 use existing technology.
  • a write-back method (Write Back Algorithm) is adopted as a data update method of the SSD cache 220 and the DRAM cache.
  • the scope of application of the embodiment of the present invention is not limited to this, and can also be applied to a cache in which data is updated by a write-through method (Write Through Algorithm).
  • the access processing unit 240 In response to a processing request transmitted from the host 10 (FIG. 1), the access processing unit 240 reads / writes data from / to the hard disk 210, the SSD cache 220, and the DRAM cache 230, and stores data in the data information storage unit 280. Update the data. In addition, the access processing unit 240 returns the processing result to the host 10.
  • the storage medium performance measurement unit 250 accesses the hard disk 210 and the SSD cache 220 in advance for consecutive blocks as pre-processing in which the storage device 20 performs processing according to a processing request from the host 10.
  • the storage medium performance measurement unit 250 writes the measured data in the performance information storage unit 260.
  • the performance information storage unit 260 stores the access performance characteristics measured by the storage medium performance measurement unit 250. Access to consecutive blocks means access to blocks located at adjacent addresses on the storage medium. In the case of a hard disk, access is to a block that is physically close to the platter.
  • the performance information storage unit 260 may store these known access performance characteristics in advance. This eliminates the need for the storage device 20 to include the storage medium performance measurement unit 250, thereby simplifying the device configuration.
  • the release priority order determination unit 270 uses the access performance characteristics of the hard disk 210 and the SSD cache 220 stored in the performance information storage unit 260 to store data stored in the SSD cache 220 and data released from the DRAM cache 230.
  • the release priority index value is calculated.
  • the release priority determining unit 270 determines the release priority of each data based on the calculated release priority index value. This release priority indicates the priority that is released from the SSD cache 220 when replacing in the SSD cache 220 (the priority that is written to the SSD cache 220 for data released from the DRAM cache 230).
  • the data information storage unit 280 stores an SSD cache management table indicating the address, access frequency, and the like of each data stored in the SSD cache 220. Further, the data information storage unit 280 stores a DRAM cache management table indicating the address, access frequency, etc. of each data stored in the DRAM cache 230. Further, the data information storage unit 280 stores a hard disk management table indicating the address, access frequency, etc. of each data stored in the hard disk 210.
  • the SSD cache 220 may store the SSD cache management table. Similarly, the DRAM cache 230 may store a DRAM cache management table. Similarly, the hard disk 210 may store a hard disk management table.
  • the storage device 20 includes a data information storage unit. It is not necessary to have 280.
  • FIG. 3 is a diagram illustrating an example of the performance information table stored in the performance information storage unit 260.
  • the performance information table stores the delay time and access speed of the hard disk 210 and the SSD cache 220.
  • the delay time latency (delay time at the beginning of access) is stored.
  • the access speed the speed at the time of accessing a continuous block is stored.
  • the performance information table stores data common to reading and writing. If the values differ between reading and writing, the performance information storage unit 260 stores data for each.
  • FIG. 4A and 4B are diagrams showing examples of the SSD cache management table stored in the data information storage unit 280.
  • the SSD cache management table includes a “Dirty flag (Dirty flag)” field, a “Start address (SSD)” field, a “Start address (virtual)” field, and a “Data length” field. And “access frequency” column.
  • the SSD cache management table stores information on each column for each data on the SSD cache 220.
  • a Dirty flag indicating whether or not the data stored in the hard disk 210 needs to be updated is stored.
  • the data on the SSD cache 220 (hereinafter referred to as “the relevant data” in the description of FIGS. 4A and 4B)
  • “1” indicating that updating is necessary is stored.
  • “0” indicating that there is no need to update the Dirty flag is stored.
  • start address (SSD)” column the start address (hereinafter referred to as “start address (SSD)”) of the data in the address of the SSD memory space (hereinafter referred to as “SSD address”). Stored.
  • start address (virtual) the start address (hereinafter referred to as “start address (virtual)”) of the data in the virtual address (address of the storage device 20) is stored.
  • data length the data length of the data is stored in the notation of the number of blocks.
  • access frequency stores the access frequency (the number of accesses within the latest fixed time) for the data from the host 10.
  • the LRU order instead of the access frequency, the LRU order, that is, the order of the longest elapsed time from the last processing request for the data from the host 10 to the present is shown. It may be stored.
  • FIG. 5 is a diagram illustrating an example of a DRAM cache management table stored in the data information storage unit 280.
  • the DRAM cache management table includes a “Dirty flag” field, a “start address (DRAM)” field, a “start address (virtual)” field, a “data length” field, and an “access frequency”. "Column.
  • the DRAM cache management table stores information on each column for each data on the DRAM cache 230.
  • a Dirty flag indicating whether or not the data stored in the hard disk 210 needs to be updated is stored, as described with reference to FIG. 4A.
  • first address (SSD) data on the DRAM cache 230 at the address of the SSD memory space (hereinafter, “SSD address”) (hereinafter, “the relevant data” in the description of FIG. 5).
  • the first address (hereinafter referred to as “first address (DRAM)”) is stored.
  • the replacement policy applied to the DRAM cache 230 is not limited to LFU. Further, information stored in the DRAM cache management table is not limited to access frequency information. For example, LRU may be applied to the DRAM cache 230. In this case, the DRAM cache management table includes an LRU order information field instead of the access frequency field, and stores the information.
  • FIG. 6 is a diagram illustrating an example of a hard disk management table stored in the data information storage unit 280.
  • the hard disk management table includes a “start address (virtual)” column, a “data length” column, and an “access frequency” column.
  • the hard disk management table stores information in each column for each data on the hard disk 210.
  • the “start address (virtual)” column stores the start address (virtual) of data on the hard disk in the virtual address (hereinafter referred to as “the data” in the description of FIG. 6).
  • the memory space address of the hard disk 210 matches the virtual address
  • the head address (virtual) also indicates the head address in the hard disk 210.
  • the access frequency for the data from the host 10 is stored.
  • the hard disk management table stores data according to the policy. For example, when the LRU is applied to the SSD cache 220 and the DRAM cache 230, the hard disk management table includes an LRU order information field instead of the access frequency field, and stores the information.
  • the address of the hard disk 210 matches the virtual address of the storage device 20. Therefore, it is not necessary to store the correspondence between the address of the hard disk 210 and the virtual address of the storage device 20 in the hard disk management table. Therefore, when it is not necessary to store information (access frequency or LRU order information) according to the replacement policy for the data stored in the hard disk 210, the hard disk management table is unnecessary. For example, when the access frequency after being stored in the SSD cache management table is stored as data in the access frequency column of the SSD cache management table, the access frequency at the time when the data is stored in the hard disk 210 is unnecessary. . In this case, the data information storage unit 280 can be prevented from storing the hard disk management table, and the necessary storage capacity can be reduced.
  • the hard disk management table is used to store the correspondence between the address of the hard disk 210 and the virtual address regardless of whether or not information corresponding to the replacement policy needs to be stored. Necessary. That is, when the storage device 20 writes data to the hard disk 210, the storage device 20 associates the data writing position on the hard disk 210 (that is, the address of the hard disk 210) with the virtual address included in the external write request. Stored in the hard disk management table. When the storage device 20 receives a read request for designating data by a virtual address from the outside, the storage device 20 searches the hard disk management table based on the virtual address, acquires the address of the hard disk 210, and stores the hard disk based on the acquired address.
  • the replacement policy applied to the SSD cache 220 and the replacement policy applied to the DRAM cache 230 may be different.
  • the SSD cache management table, DRAM cache management table, and hard disk management table store data according to both policies.
  • the SSD cache management table, the DRAM cache management table, and the hard disk management table are respectively an access frequency column and an LRU order. And an information column for storing the information.
  • the data in the access frequency column of each table in the data information storage unit 280 is periodically updated by the access processing unit 240.
  • the data information storage unit 280 stores an access history (processing request history from the host 10) for each data.
  • the access processing unit 240 updates the data in the access frequency column based on the access history.
  • FIGS. 7A and 7B are diagrams illustrating examples of processing requests transmitted from the host 10.
  • FIG. 7A shows an example of a read request.
  • FIG. 7B shows an example of a write request.
  • the processing request includes a head address (virtual) and a data length.
  • the head address (virtual) and the data length are used by the access processing unit 240 to specify data to be processed.
  • FIG. 8 is a flowchart showing a processing procedure of the storage device 20 when a read request from the host 10 (FIG. 1) is received.
  • the access processing unit 240 first attempts to read data from the DRAM cache 230.
  • the access processing unit 240 searches the DRAM cache management table stored in the data information storage unit 280. Specifically, the access processing unit 240 reads the head address (virtual) and the data length from the read request, and searches the DRAM cache management table for a line where the head address (virtual) and the data length match (above, Step S101).
  • the access processing unit 240 determines whether or not the data requested to be read exists on the DRAM cache 230. Specifically, the access processing unit 240 determines that the data requested to be read exists in the DRAM cache 230 when a matching line is found in the search performed in step S101. On the other hand, the access processing unit 240 determines that it does not exist when no matching row is found in the search performed in step S101. If a line that matches only the start address and does not match the data length is found, the requested data is considered as data stored in the storage device 20. Therefore, the access processing unit 240 transmits (replies) an error message to the host 10 and ends the process of FIG. 8 (step S102).
  • step S102 If it is determined in step S102 that the read requested data exists in the DRAM cache 230 (step S102: YES), the access processing unit 240 reads the read requested data from the DRAM cache 230 and obtains a result for the read request. The data is transmitted (returned) to the host 10 as data. Specifically, the access processing unit 240 stores an area (one piece of data in the DRAM cache 230) indicated by the head address (DRAM) and the data length stored in the matching row in the search performed in step S101. A set of blocks used for storage is referred to as one “area” (the same applies hereinafter), and data is read out and transmitted to the host 10 (step S111). Thereafter, the process of FIG.
  • the access processing unit 240 next tries to read the data from the SSD cache 220.
  • the access processing unit 240 searches the SSD cache management table stored in the data information storage unit 280. Specifically, as in step S101, a search is made for a line having the same start address (virtual) and data length (step S121). Then, the access processing unit 240 determines whether or not the data requested to be read exists on the SSD cache 220. Specifically, as in step S102, if a matching line is found in the search performed in step S103, it is determined that data exists.
  • step S103 determines whether the line does not exist. If only a head address matches and a line whose data length does not match is found, an error message is transmitted to the host 10 as in step S102, and the process of FIG. 8 is terminated (step S122).
  • step S122 When it is determined in step S122 that the data requested to be read exists on the SSD cache 220 (step S122: YES), the access processing unit 240 reads the data requested to be read from the SSD cache 220 and obtains a result for the read request. The data is transmitted (returned) to the host 10 as data. Specifically, as in step S111, the access processing unit 240 stores the area on the SSD cache 220 indicated by the head address (SSD) and the data length stored in the line matched in the search performed in step S121. The data is read out from the host and transmitted to the host 10 (step S131). Thereafter, the process proceeds to step S151.
  • SSD head address
  • step S122 when it is determined in step S122 that the data requested to be read does not exist on the SSD cache 220 (step S122: NO), the access processing unit 240 reads the data requested to be read from the hard disk 210, and reads the read request. Is transmitted (returned) to the host 10 as result data. Specifically, since the address on the hard disk 210 matches the virtual address, the access processing unit 240 stores the head address (virtual) and the data length stored in the line matched in the search performed in step S121. The data is read from the area on the hard disk 210 shown and transmitted to the host 10 (step S141).
  • the access processing unit 240 that has transmitted the data to the host 10 in step S131 or step S141 stores the data read in that step (hereinafter referred to as “storage target data” in the description of FIG. 8) in the DRAM cache 230.
  • storage target data in the description of FIG. 8
  • Process to store in the present embodiment, as a replacement policy for the DRAM cache 230, a policy is employed in which data received from the host 10 is always stored in the DRAM cache 230.
  • the scope of application of the embodiment of the present invention is not limited to this. For example, the access frequency of data that has received a processing request is compared with the access frequency of each data on the DRAM cache 230, and data having a lower access frequency than the data that has received the processing request is released from the DRAM cache 230.
  • the access processing unit 240 performs the following process only when it is determined that the data capacity can be secured. On the other hand, if the access processing unit 240 determines that the data capacity cannot be secured, the access processing unit 240 accesses the data that has received the processing request (the data on the SSD cache 220 or the hard disk 210 corresponding to the data that has received the processing request). Only the frequency is updated, and the replacement of the DRAM cache 230 is not performed, and the processing of FIG.
  • the access processing unit 240 In the process of storing the storage target data in the DRAM cache 230, the access processing unit 240 first acquires the free capacity on the DRAM cache 230. For example, the access processing unit 240 sums the values in the data length column of the DRAM cache management table stored in the data information storage unit 280 and subtracts the obtained value from the total capacity of the DRAM cache 230 to calculate the free capacity. (Step S151). Then, the access processing unit 240 compares the data length of the storage target data with the free capacity of the DRAM cache 230 and determines whether or not there is free capacity in the DRAM cache 230 that can store the storage target data. (Step S152). If the access processing unit 240 determines that there is free space in the DRAM cache 230 that can store the storage target data (step S152: YES), the access processing unit 240 proceeds to step S163.
  • step S152 when it is determined in step S152 that there is no free space in the DRAM cache 230 that can store the storage target data (step S152: NO), the access processing unit 240 releases it to secure the free space.
  • Select data Specifically, the access processing unit 240 refers to the DRAM cache management table stored in the data information storage unit 280 until the total data length becomes greater than or equal to the data length of the storage target data in order of increasing access frequency. Data on the DRAM cache 230 is selected (step S161). Next, the access processing unit 240 performs processing for storing each of the data selected in step S161 in the SSD cache 220 or the hard disk 210 as necessary. Details of this processing will be described later.
  • the access processing unit 240 releases the data selected in step S161 and secures a free capacity capable of storing the storage target data. (The above is step S162). Then, the access processing unit 240 writes the storage target data to the DRAM cache 230 (step S163). Thereafter, the process of FIG.
  • FIG. 9 is a flowchart showing a processing procedure of the storage device 20 when a write request from the host 10 (FIG. 1) is received.
  • the storage device 20 performs the processing of FIG.
  • Steps S201 to S213 in FIG. 9 are the same as steps S151 to S163 in FIG.
  • the data requested to be written by the host 10 corresponds to the storage target data in steps S151 to S163.
  • the case where the data requested to be written is new data, that is, the case where the area indicated by the head address and the data length included in the write request is an empty area on the hard disk 210 will be described.
  • the access processing unit 240 secures the free area on the hard disk 210 as an area for storing data requested to be written, and then performs the process of FIG.
  • a release request (write request with a data length of 0) is received from the host 10
  • the access processing unit 240 releases the corresponding area in each of the DRAM cache 230, the SSD cache 220, and the hard disk 210.
  • the SSD cache management table and the DRAM cache management table stored in the data information storage unit 280 are updated.
  • 10 and 11 are data selected as a release target in step S162 (FIG. 8) and step S212 (FIG. 9) (hereinafter referred to as “selected data (DRAM)” in the description of FIGS. 9 and 10).
  • selected data DRAM
  • the access processing unit 240 first starts a loop L1 in which processing is performed on each of the selected data (DRAM) in descending order of access frequency. The reason for processing in the order of the high access frequency is to eliminate the waste of the selected data (DRAM) written in the SSD cache being freed (swapped out) when processing the other selected data (DRAM). (Step S301).
  • the access processing unit 240 determines whether to store the selected data (DRAM) in the SSD cache 220 based on the free space on the SSD cache 220 and the release priority of each data on the SSD cache 220. Specifically, the access processing unit 240 first acquires the free capacity on the SSD cache 220. For example, the access processing unit 240 totals the values in the data length column of the SSD cache management table stored in the data information storage unit 280 and subtracts the obtained value from the total capacity of the SSD cache 220 to calculate the free capacity. (Step S302). Next, the access processing unit 240 compares the data length of the storage target data with the free capacity of the SSD cache 220 to determine whether or not the free capacity capable of storing the storage target data exists on the SSD cache 220. Determination is made (step S303). If the access processing unit 240 determines that there is free space in the SSD cache 220 where the storage target data can be stored (step S303: YES), the access processing unit 240 proceeds to step S331.
  • DRAM selected data
  • step S303 determines that the release priority order determining unit 270 , Request release priority determination.
  • the release priority order determination unit 270 selects data (DRAM) to be processed in the loop L1 (hereinafter referred to as “loop L1 data” in the description of FIGS. 9 and 10) and the SSD cache 220.
  • DRAM data
  • loop L1 data data
  • the release priority order is determined and output to the access processing unit 240. A method for determining the release priority will be described later.
  • the release priority order determination unit 270 may calculate the release priority order for each data on the SSD cache 220 before the start of the loop L1. As a result, it is not necessary to repeatedly calculate the release priority, and the amount of calculation can be reduced (step S311).
  • the access processing unit 240 that has received the output of the release priority order selects data to be released from the data on the SSD cache 220 and the loop L1 data (step S312). Specifically, the process of step S312 is as follows. First, the access processing unit 240 totals the data lengths of data having a higher release priority than the loop L1 data among the data on the SSD cache 220 (step S401). The access processing unit 240 determines whether the total data length is less than or equal to the data length of the loop L1 data (step S402). When determining that the total data length is equal to or less than the data length of the loop L1 data, the access processing unit 240 selects the loop L1 data as data to be released (step S411).
  • step S402 determines that the total data length is greater than the data length of the loop L1 data in step S402
  • the access processing unit 240 converts the data on the SSD cache to the data length in descending order of release priority. Selection is made until the total value + the free space on the SDD cache becomes longer (larger) than the data length of the loop L1 data (step S412). Above, the process of step S312 is complete
  • the access processing unit 240 starts a loop L2 for performing processing on each of the data selected in step S312 (hereinafter referred to as “selected data (SSD)” in the description of FIGS. 10 and 11) ( Step S313).
  • the access processing unit 240 updates the data selected by the write request from the host 10 among the selected data (SSD) (that is, the selected data (SSD) in which the Dirty flag is set). ) Only to the hard disk 210.
  • the access processing unit 240 refers to the SSD cache management table or the DRAM cache management table stored in the data information storage unit 280, and selects the selected data (the processing target in the loop L2 ( SSD) (hereinafter, referred to as “loop L2 data” in the description of FIGS. 10 and 11), the value of the Dirty flag is read (step S314).
  • the access processing unit 240 determines whether or not the Dirty flag is set (that is, whether or not the read value is “1”) based on the value of the read Dirty flag (step S315). . If the access processing unit 240 determines that the Dirty flag is not set (step S315: NO), the access processing unit 240 proceeds to step S322.
  • step S315 determines in step S315 that the Dirty flag is set (step S315: YES)
  • the loop L2 data is written to the hard disk 210, that is, the loop L2 data on the hard disk 210 is written.
  • Update step S321.
  • the access processing unit 240 determines whether or not the processing of the loop L2 has been completed for all the selected data (SSD). If the access processing unit 240 determines that there is unprocessed selected data (SSD), the access processing unit 240 returns to step S313 and continues the processing of the loop L2. On the other hand, if the access processing unit 240 determines that the processing of the loop L2 has been completed for all the selected data (SSD), the access processing unit 240 ends the loop L2 (step S322).
  • the access processing unit 240 determines whether the data selected in step S312 is data on the SSD cache (step S323). If the access processing unit 240 determines that the data selected in step S312 is not the data on the SSD cache (that is, the loop L1 data is selected) (step S323: YES), the access processing unit 240 proceeds to step S333. In this case, the loop L1 data is not written to the SSD cache 220. On the other hand, when it is determined in step S323 that the data selected in step S312 is data on the SSD cache (step S323: YES), the access processing unit 240 converts each data selected in step S312 to the SSD. Release from cache. Further, the access processing unit 240 updates the SSD cache management table, that is, deletes information on data released from the SSD cache from the SSD cache management table (step S331).
  • the access processing unit 240 writes the loop L1 data, that is, the data released from the DRAM cache 230 to the SSD cache 220. Further, the access processing unit 240 updates the SSD cache management table, that is, provides a row corresponding to the data written in the SSD cache 220 in the SSD cache management table, and writes the information of each item (step S332). .
  • the access processing unit 240 determines whether or not the processing of the loop L1 has been completed for all the selected data (DRAM). If the access processing unit 240 determines that there is unprocessed selected data (DRAM), the access processing unit 240 returns to step S301 and continues the processing of the loop L1. On the other hand, if the access processing unit 240 determines that the processing of the loop L1 has been completed for all the selected data (DRAM), the access processing unit 240 ends the loop L1 (step S333).
  • the access processing unit 240 releases all selected data (DRAM) from the DRAM cache 230. Further, the access processing unit 240 updates the DRAM cache management table, that is, deletes information on the data released from the DRAM cache from the DRAM cache management table (step S334). Thereafter, the processes in FIGS. 10 and 11 are terminated.
  • DRAM selected data
  • the release priority order determination unit 270 increases the release priority order for data having a longer data length. For example, the release priority determining unit 270 assigns release priorities to the data for which the release priority is to be determined in order of increasing data length. As will be described later, since the access processing unit 240 preferentially releases data with a high release priority from the SSD cache 220, data with a short data length tends to remain in the SSD cache 220. Data with a short data length is data in which the ratio of delay time (latency) at the initial stage of access to the entire time required for access is large.
  • data with a short data length has a large ratio of the time required to read data when the data is read from the hard disk 210 to the time required to read the data when the data is read from the SSD cache 220.
  • data with a short data length is data that has a large cost when no hit is made on the SSD cache 220.
  • the reduction rate due to the use of the cache increases in the response time from when the storage device 20 receives the read request from the host 10 to when all the data is transmitted. I can expect.
  • the hard disk 210 and the SSD cache 220 can be appropriately replaced according to the access performance characteristics of the storage medium.
  • the method by which the release priority order determination unit 270 determines the release priority order is not limited to the above-described method of assigning the release priority order in descending order of the data length.
  • the release priority order determination unit 270 may calculate the release priority index value R based on the formula (1) and assign the release priority order in ascending order of the release priority index value R.
  • R F / L ... Formula (1)
  • “F” indicates the access frequency to the data for which the release priority order is determined.
  • “L” indicates the data length of the data.
  • the release priority order determination unit 270 may calculate the release priority index value Q based on the formula (2), and assign the release priority order in ascending order of the release priority index value Q.
  • Q R / L (2)
  • “R” indicates the priority of the LRU replacement of the data for which the release priority is to be determined, that is, the oldest access time.
  • “L” indicates the data length of the data.
  • the hit rate can be improved while appropriately replacing the hard disk 210 and the SSD cache 220 according to the access performance characteristics of the storage medium.
  • the release priority order determination unit 270 may calculate the release priority index value using the delay time and access speed of the hard disk 210 and the SSD cache 220 stored in the performance information storage unit 260. For example, first, the data length of the target data for determining the release priority is set to “L”. The access frequency for the data is “F”. It is assumed that the data reading speed and writing speed of the hard disk 210 are both “s h ”. It is assumed that the data read speed and write speed of the SSD cache 220 are both “s s ”. It is assumed that the delay time of the hard disk 210 is “a h ” for both reading and writing. Assume that the delay time of the SSD cache 220 is 0 (that is, there is no delay time).
  • the release priority order determination unit 270 calculates the release priority index value P of Expression (6) obtained by multiplying Expression (5) by the access frequency F, and sets the release priority order in ascending order of the release priority index value P. You may make it attach.
  • P ((L / s s ) / (a h + L / s h )) F (6)
  • Equation (6) can be transformed into Equation (7).
  • P ((1 / s s ) / (a h / L + 1 / s h )) F (7) Therefore, the release priority index value P decreases as the value of L increases. That is, the longer the data length, the higher the release priority.
  • the timing at which the release priority determining unit 270 determines the release priority is not limited to the timing at which step S311 is executed.
  • the release priority determination unit 270 may periodically determine the release priority of each data, and the access processing unit 240 may use the release priority. In this case, it is not necessary for the access processing unit 240 to wait for the release priority determination by the release priority determination unit 270 in step 311 and the processing time can be shortened.
  • the hard disk 210 is divided into blocks and addresses are assigned in order from 0 for each block.
  • the hard disk 210 is assumed to store one piece of data in consecutive blocks. Assume that the capacity of the hard disk is sufficiently large with respect to the amount of data to be written, and the problem of fragmentation does not occur. Assume that the delay time when accessing discontinuous blocks of the hard disk 210 is 20 ms (milliseconds) for both reading and writing. It is assumed that the reading speed when accessing consecutive blocks after starting reading is 50000 blocks per second.
  • the SSD cache 220 is divided into blocks of the same size as the hard disk 210, and the number of blocks is 10,000. It is assumed that the delay time when accessing discontinuous blocks in the SSD cache 220 is 0 ms regardless of reading or writing. Therefore, it is assumed that there is no delay in reading or writing due to fragments. Assume that the reading speed when accessing consecutive blocks after starting reading is 100,000 blocks per second.
  • the DRAM cache 230 is divided into blocks of the same size as the hard disk 210 and the number of blocks is 1000. LRU is used as a policy for determining data to be replaced on the DRAM cache 230. Assume that the address space of the entire storage device 20 matches the address space of the block of the hard disk 210.
  • FIG. 12 is a diagram showing information stored in the DRAM cache management table at the start of a series of processes to be described later (hereinafter referred to as “process start time”).
  • process start time information stored in the DRAM cache management table at the start of a series of processes to be described later.
  • process start time it is assumed that one piece of data is stored in successive blocks on the DRAM cache 230, and an area is designated by a head address and a data length.
  • the delay time (latency) of the DRAM cache 230 is 0, even when one piece of data is stored in discontinuous blocks on the DRAM cache 230, the operation timing of the storage device 20 is as follows. It is the same as the description.
  • the area of 10 blocks from the start address “910” is referred to as an area “A”.
  • An area of 30 blocks from the start address “880” is referred to as an area “B”.
  • An area of 500 blocks from the start address “380” is referred to as an area “C”.
  • the number of blocks in use in the state of FIG. 12 is 920 blocks obtained by adding the data length “10” to the start address “910” of the area A. Therefore, the free capacity is 80 blocks obtained by subtracting 920 blocks from 1000 blocks, which is the capacity of the DRAM cache 230.
  • the data in the area A has the highest release priority, that is, the access frequency is low, and then the data in the area B, the data in the area C,. Suppose it is expensive.
  • FIG. 13 is a diagram showing information stored in the SSD cache management table at the start of processing.
  • the DRAM cache 230 one piece of data is stored in successive blocks on the data information storage unit 280, and an area is designated by a head address and a data length.
  • the SSD cache 220 has a delay time (latency) of 0. Therefore, even when one piece of data is stored in a discontinuous block on the SSD cache 220, the operation timing of the storage device 20 is as follows. It is the same as that of description.
  • the areas on the SSD cache 220 in the state of FIG. 13 are referred to as areas “P”, “Q”,.
  • the data shown in FIG. 13 has a high release priority in the order of low access frequency, that is, data in the region U, data in the region T,.
  • FIG. 14 is a diagram illustrating an example of a series of processing requests transmitted from the host 10 (FIG. 1) to the storage device 20. Processing is performed in the order of the arrow ⁇ shown in FIG.
  • a read request T shown in FIG. 14 (read request shown in a row with a symbol T) is a read request for data stored in the area T on the SSD cache 220 in the state shown in FIG.
  • read requests X, Y, and Z are requests for reading data stored in areas X, Y, and Z on hard disk 210, respectively. These data are not stored on the DRAM cache 230 in the state of FIG. 12 or on the SSD cache 220 in the state of FIG. 13 but are stored on the hard disk 210.
  • the access processing unit 240 When a read request T is transmitted from the host 10 to the storage device 20, the access processing unit 240 first refers to the DRAM cache management table on the data information storage unit 280 and stores data in the region T in the DRAM cache 230. Is stored. Here, the data of the region T is not stored in the DRAM cache 230 (FIG. 12). Therefore, the access processing unit 240 refers to the SSD cache management table on the data information storage unit 280 and determines whether or not the data in the region T is stored in the SSD cache 220. The SSD cache 220 stores data of the area T (FIG. 13). Therefore, the access processing unit 240 reads the data in the region T from the SSD cache 220 and transmits the read data to the host 10 that is the transmission source of the read request T as a result of the read request T.
  • FIG. 16 shows information stored in the SSD cache management table after a series of processing for the read request T is performed. Since the free capacity of the DRAM cache 230 is 80 blocks at the start of processing (FIG. 12), the data in the region T (80 blocks) can be stored in the DRAM cache 230 without releasing other data. Therefore, the access processing unit 240 writes the data in the area T into the DRAM cache 230. As a result, the free capacity of the DRAM cache 230 becomes 0 blocks.
  • FIG. 15 shows information stored in the DRAM cache management table after a series of processes for the read request T is performed.
  • the access processing unit 240 determines whether or not the data in the area X is stored in the DRAM cache 230.
  • the data of the area X is not stored in the DRAM cache 230 (FIG. 15). Therefore, the access processing unit 240 determines whether or not the data of the area X is stored in the SSD cache 220.
  • the data of the area X is not stored on the SSD cache 220 (FIG. 16). Therefore, the access processing unit 240 reads the data in the area X from the hard disk 210 and transmits the read data to the host 10 that is the transmission source of the read request X as a result of the read request X.
  • the access processing unit 240 stores the data of the area X in the DRAM cache 230. Since the free capacity of the DRAM cache 230 is 0 block (FIG. 15), the data in the area X cannot be stored in the DRAM cache 230 as it is. Therefore, the access processing unit 240 releases the data of the area A having the highest release priority among the areas on the DRAM cache 230 from the DRAM cache 230 and writes the data of the area X. At this time, the access processing unit 240 determines whether to write the data of the area A to be released to the SSD cache 220. Referring to the SSD cache management table on the data information storage unit 280, the free space of the SSD cache 220 is 20 blocks (FIG.
  • FIG. 17 shows information stored in the DRAM cache management table after a series of processing for the read request X is performed.
  • FIG. 18 shows information stored in the SSD cache management table after a series of processing for the read request X is performed.
  • the access processing unit 240 determines whether data in the area Y is stored in the DRAM cache 230.
  • the DRAM cache 230 stores no data in the area Y (FIG. 17). Therefore, the access processing unit 240 determines whether or not the data of the area Y is stored in the SSD cache 220.
  • the data of area Y is not stored on the SSD cache 220 (FIG. 18).
  • the access processing unit 240 reads the data in the area Y from the hard disk 210 and transmits the read data to the host 10 that is the transmission source of the read request Y as a result of the read request Y. Thereafter, the access processing unit 240 stores the data of the area Y in the DRAM cache 230. Since the free capacity of the DRAM cache 230 is 0 block (FIG. 17), the data in the area X cannot be stored in the DRAM cache 230 as it is. Therefore, the access processing unit 240 releases the data in the area B having the highest data replacement priority from the area on the DRAM cache 230 from the DRAM cache 230 and writes the data in the area Y.
  • the access processing unit 240 determines whether to write the data of the area B to be released to the SSD cache 220 (FIG. 11: Steps S302 to 312).
  • the free space of the SSD cache 220 is 10 blocks (FIG. 18), and 30 blocks of data in the area B are stored on the SSD cache 220.
  • Data needs to be released. Therefore, the release priority order determination unit 270 calculates the release priority order for each piece of data on the SSD cache 220 and determines the data to be released (FIG. 11: step S331).
  • the release priority order determination unit 270 calculates the index value F / L based on the reference count F of each data stored in the SSD cache management table and the data length L of each data, and the calculated index value is low. The release priority is assigned in order from the data.
  • the index values of these data are calculated as follows.
  • the release priority order determination unit 270 assigns the highest release priority order to the data in the area U having the smallest index value. Since the data length of the area U is 200 blocks, by releasing the data in the area U, it is possible to store data up to 210 blocks in total with the current free capacity. Therefore, it is not necessary to replace the data other than the area U in order to store the data of the area B (20 blocks). Therefore, the access processing unit 240 determines the data in the area U as a release target.
  • the access processing unit 240 reads the value of the Dirty flag from the SSD cache management table for the data in the area U to be released (FIG. 11: step S314).
  • the Dirty flag is set (FIG. 18). Therefore, the access processing unit 240 writes the data of the area U to the hard disk 210 (FIG. 11: Step S321). Thereafter, the access processing unit 240 releases the data of the area U from the SSD cache 220 and deletes the information of the area U included in the SSD cache management table of the data information storage unit 280 (FIG. 11: Step S331).
  • FIG. 20 shows information stored in the SSD cache management table after a series of processing for the read request Y is performed. Thereafter, the data in the area B is released from the DRAM cache 230 (FIG. 11: Step S334), and the data in the area Y is newly stored in the DRAM cache 230 (FIG. 8: Step S163). The free capacity of the DRAM cache 230 is 10 blocks.
  • FIG. 19 shows information stored in the DRAM cache management table after a series of processing for the read request Y is performed.
  • the access processing unit 240 determines whether or not the data in the area Z is stored in the DRAM cache 230.
  • the DRAM cache 230 does not store area Z data. Therefore, the access processing unit 240 determines whether or not the data of the area Z is stored in the SSD cache 220. Data of the area Z is not stored on the SSD cache 220. Therefore, the access processing unit 240 reads the data in the area Z from the hard disk 210 and transmits the read data to the read request Z transmission source host 10 as a result of the read request Z.
  • the access processing unit 240 stores the data of the area Z in the DRAM cache 230. Since the free space of the DRAM cache 230 is 10 blocks (FIG. 19), the data in the area X cannot be stored in the DRAM cache 230 as it is. Therefore, the access processing unit 240 releases the data in the area C having the highest release priority among the areas on the DRAM cache 230 from the DRAM cache 230 and writes the data in the area Z.
  • the access processing unit 240 determines whether or not to write the data of the area C to be released to the SSD cache 220.
  • the free space of the SSD cache 220 is 180 blocks (FIG. 20), and in order to store 500 blocks of data in the area C, the SSD cache 220 Data needs to be released. Therefore, the release priority order determination unit 270 calculates the release priority order for each piece of data on the SSD cache 220 and determines the data to be released (FIG. 11: step S331).
  • the data with the smallest index value is not the data stored in the SSD cache 220 but the data in the area C released from the DRAM cache 230.
  • the release priority determining unit 270 assigns the highest release priority to the data in the area C having the smallest index value.
  • the access processing unit 240 does not release the data stored in the SSD cache 220 and does not store the data in the area C in the SSD cache 220 (FIG. 11: Step S323: NO).
  • FIG. 21 shows information stored in the DRAM cache management table after a series of processing for the read request Z is performed.
  • the storage device 20 ends the processing for the processing instructions T, X, Y, and Z shown in FIG.
  • the release priority determining unit 270 increases the release priority of data when the SSD cache 220 performs replacement as the data length of the data stored in the SSD cache 220 is longer. Short data can be preferentially left in the SSD cache 220. This data with a short data length is data with a large ratio of latency (delay time at the beginning of access) in the read time, and the read time reduction rate by storing in the cache is high.
  • the storage device 20 when a read request is received for data with a long data length released from the SSD cache 220, the storage device 20 reads the data from the hard disk 210 and sends a reply. At this time, in the data having a long data length, the ratio of the latency in the reading time is small, and the increase in the reading time due to the latency is relatively small.
  • the storage device 20 preferentially leaves data with a short data length in the SSD cache 220 and reads data with a long data length from the hard disk 210.
  • an increase in reading time due to latency can be suppressed, and reading speed can be improved.
  • the longer the data length of the data stored in the SSD cache 220 the higher the release priority of the data when the SSD cache 220 performs the replacement. Can be preferentially released, and further, not stored in the SSD cache. Thereby, the utilization efficiency of the SSD cache 220 can be improved. Further, it is possible to prevent data having a short data length from being evicted from the SSD cache 220 due to replacement.
  • stream data is generally data with a low access frequency and a long data length.
  • the stream data is not stored in the SSD cache 220 or is released preferentially, thereby improving the hit rate in the SSD cache 220. be able to.
  • stream data is normally accessed in order from the beginning of the data, and is accessed by accessing consecutive blocks. For this reason, the decrease in access speed due to the stream data not hitting the cache is smaller than other data.
  • the release priority determination unit 270 also replaces the SSD cache 220 as the data length of the data stored in the SSD cache 220 is longer and the elapsed time from the last access to the data is longer. Increase the release priority when doing it. Therefore, it is possible to improve the hit rate while performing appropriate replacement according to the latency of the storage medium.
  • the release priority determination unit 270 increases the release priority when the SSD cache 220 performs replacement as the data length of the data stored in the SSD cache 220 is longer and the access frequency to the data is higher. To do. Therefore, it is possible to improve the hit rate while performing appropriate replacement according to the latency of the storage medium.
  • the SSD cache 220 as a secondary cache and providing the DRAM cache 230 as a primary cache, a large-capacity and high-speed cache can be realized at a relatively low cost.
  • the embodiment of the present invention can also be applied to a storage device having a one-layer cache.
  • the access processing unit 240 performs processing excluding processing for the DRAM cache 230 in response to a processing request from the host 10. Specifically, steps S121 to S141 (FIG. 8) and steps S302 to S332 (FIGS. 10 and 11) are executed for the read request, and steps S302 to S332 (FIG. 10) are executed for the write request. , 11).
  • the series of processes in the storage device 20 described above may be stored in a computer-readable recording medium in the form of a program.
  • the above processing may be performed by the computer reading and executing this program. That is, each process in the storage device 20 may be realized by a central processing unit such as a CPU reading the above program into a main storage device such as a ROM or RAM, and executing information processing and calculation processing. .
  • the present invention is suitable for use in a storage device, a release priority determination method, and a program.
  • host 20 storage device 210 hard disk 220 SSD cache 230 DRAM cache 240 access processing unit 250 storage medium performance measurement unit 260 performance information storage unit 270 release priority order determination unit 280 data information storage unit 30 network

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)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

Disclosed is a storage device which temporarily stores data recorded in a storage medium and which comprises: a cache with smaller latency than the storage medium; and a unit for determining the de-allocation priority order which increases the de-allocation priority order of data at the time the cache is replaced the longer the data length of the data stored in the cache.

Description

記憶装置、解放優先順位決定方法およびプログラムStorage device, release priority determination method and program
 本発明は、キャッシュを有する記憶装置、キャッシュにおいて置換を行う際のデータ解放優先順位決定方法およびプログラムに関する。 The present invention relates to a storage device having a cache, a data release priority determination method and a program for performing replacement in the cache.
 情報通信技術の発展に伴い、情報処理システムが扱うデータ量が増大し、また、即時処理の要求が高まっている。このため、記憶装置についても、大容量のデータを並列かつ短時間で処理できるよう性能の向上が図られている。
 例えば、大容量の記憶媒体として広く用いられているハードディスク(Hard Disk Drive;HDD)よりも高速に読み書きできる、フラッシュメモリで構成されたSSD(Solid State Drive、以下、フラッシュメモリで構成されたSSDを、単に「SSD」と称する)が普及し始めている。SSDは、フラッシュメモリを用いた記憶媒体である。SSDは、磁気ヘッドやプラッタ等の物理的な可動部分を有しないため、磁気ヘッドが移動する際のシーク時間やプラッタの回転待ち時間を要しない。このため、SSDはハードディスクと比べてレイテンシが非常に小さく、スループットも高い。
 したがって、記憶装置内の記憶媒体を、ハードディスクからSSDに置き換えることにより、記憶装置のレイテンシを大幅に短縮できる。また、SSDはハードディスクよりも消費電力が小さいため、記憶装置の省電力化も達成できる。
With the development of information communication technology, the amount of data handled by an information processing system has increased, and the demand for immediate processing has increased. For this reason, the performance of the storage device is also improved so that a large amount of data can be processed in parallel and in a short time.
For example, an SSD (Solid State Drive, hereinafter referred to as a flash memory) that can read and write faster than a hard disk (Hard Disk Drive; HDD) that is widely used as a large-capacity storage medium. Simply referred to as “SSD”). The SSD is a storage medium using a flash memory. Since the SSD does not have a physically movable part such as a magnetic head or a platter, it does not require a seek time or a platter rotation waiting time when the magnetic head moves. For this reason, SSDs have very low latency and high throughput compared to hard disks.
Therefore, by replacing the storage medium in the storage device from the hard disk to the SSD, the latency of the storage device can be greatly reduced. In addition, since the SSD consumes less power than the hard disk, power saving of the storage device can also be achieved.
 しかし、SSDはハードディスクと比べて記憶容量あたりの価格が高い。そのため、記憶装置内の全ての記憶媒体をハードディスクからSSDに置き換えると、コストが大幅に増加してしまう。
 そこで、ハードディスクに対する大容量のキャッシュメモリとしてSSDを用いることが考えられる。SSDは同容量のハードディスクよりも高価だが、一般的にキャッシュメモリとして用いられるDRAM(Dynamic Random Access Memory、ダイナミック・ランダム・アクセス・メモリ)よりも安価である。SSDはDRAMとは異なり不揮発性の記憶媒体であるため、記憶装置の電源が切断され、バッテリーの電源が存在しない場合でもデータが失われない利点を有する。
 一方、SSDは、ハードディスクよりも高速であるが、DRAMよりも低速である。そこで、単にSSDをキャッシュとして用いた場合よりもさらに高速性を得るためには、ハードディスクに対して、DRAMを上位のキャッシュ(例えば一次キャッシュ)、SSDを下位のキャッシュ(DRAMより低次の、ハードディスクにより近いキャッシュ、例えば二次キャッシュ)として組み合わせて用いることが考えられる。これにより、大容量かつ高速のキャッシュを比較的安価に実現できる。
However, SSDs have a higher price per storage capacity than hard disks. For this reason, if all the storage media in the storage device are replaced from the hard disk to the SSD, the cost increases significantly.
Therefore, it is conceivable to use an SSD as a large-capacity cache memory for the hard disk. An SSD is more expensive than a hard disk of the same capacity, but is cheaper than a DRAM (Dynamic Random Access Memory) generally used as a cache memory. Since the SSD is a non-volatile storage medium unlike the DRAM, there is an advantage that the data is not lost even when the power of the storage device is cut off and the power of the battery is not present.
On the other hand, SSD is faster than hard disk but slower than DRAM. Therefore, in order to obtain higher speed than when SSD is simply used as a cache, DRAM is a higher cache (for example, a primary cache) and SSD is a lower cache (a hard disk lower than DRAM). It is conceivable to use in combination as a cache closer to the cache (for example, a secondary cache). Thereby, a large-capacity and high-speed cache can be realized at a relatively low cost.
 このような、キャッシュを備えたハードディスクなど、キャッシュを有する記憶装置において、キャッシュの空き領域が不足しデータの置換を行う際に、解放するデータを選択するための、幾つかの方法(ポリシー)が知られている(データの置換とは、既に記憶しているデータを解放して新たなデータを記憶させることである)。
 例えば、特許文献1に記載のLRU(Least Recently Used、最長時間未使用)では、未使用時間の長いデータ、すなわち、最後にアクセスされた時刻の古いデータを優先的に解放する。LFU(Least Frequently Used)では、使用頻度(アクセス頻度)の低いデータを優先的に解放する。
In a storage device having a cache, such as a hard disk having a cache, there are several methods (policies) for selecting data to be released when the cache has insufficient free space and data replacement is performed. It is known (replacement of data is to release already stored data and store new data).
For example, in LRU (Least Recently Used), which is described in Patent Document 1, data with a long unused time, that is, data with the oldest access time is preferentially released. In LFU (Least Frequently Used), data with low usage frequency (access frequency) is preferentially released.
 これらの方法を用いれば、特に、データ毎の使用頻度がほぼ固定されている場合にヒット率の向上を期待できる。すなわち、未使用時間の長いデータは、使用頻度が低く、将来使用されるまでの時間も長いことが考えられる。そこで、LRUを用いて未使用時間の長いデータを優先的に解放することで、将来使用されるまでの時間が短いデータがキャッシュに残り、ヒット率が向上することが期待できる。また、使用頻度の低いデータは、将来においても使用頻度が低い、すなわち、一定時間以内に使用される確率が低いことが考えられる。そこで、LFUを用いて使用頻度の低いデータを優先的に解放することで、一定時間以内に使用される確率が高いデータが1次記憶媒体に残り、ヒット率が向上することが期待できる。 If these methods are used, an improvement in hit rate can be expected especially when the frequency of use for each data is almost fixed. That is, it is conceivable that data with a long unused time has a low use frequency and a long time until it is used in the future. Thus, by preferentially releasing data with a long unused time using LRU, it can be expected that data with a short time until future use remains in the cache and the hit rate is improved. In addition, it is considered that data with low use frequency is low in use frequency in the future, that is, the probability of being used within a certain time is low. Therefore, it is expected that data with high probability of being used within a predetermined time remains in the primary storage medium by preferentially releasing data with low usage frequency using LFU, and the hit rate is improved.
日本国特開2008-21314号公報Japanese Unexamined Patent Publication No. 2008-21314
 しかしながら、LRUやLFU等の方法では、記憶媒体のアクセス性能の特性に応じて適切な置換を行うことはできない。例えば、ハードディスクは、不連続のブロックに対するアクセスを行う毎にシーク時間および回転待ち時間による遅延が生じる(不連続のブロックに対するアクセスとは、記憶媒体上で離れたアドレスに位置するブロックに対するアクセスを意味する。ハードディスクの場合は、一般的に、プラッタ上で物理的に離れた位置にあるブロックに対するアクセスとなる。)。外部からデータ読出要求があった際に、この遅延によりアクセスに要する時間が長くなってしまうおそれがある。しかしながら、LRUやLFU等の方法では、この遅延に対する配慮はなされていない。 However, methods such as LRU and LFU cannot perform appropriate replacement according to the characteristics of the access performance of the storage medium. For example, a hard disk has a delay due to seek time and rotation latency each time it accesses a discontinuous block (access to a discontinuous block means access to a block located at a distant address on the storage medium. In the case of a hard disk, it is generally an access to a block that is physically separated on the platter.) When there is a data read request from the outside, this delay may increase the time required for access. However, in the methods such as LRU and LFU, no consideration is given to this delay.
 本発明は、このような事情を考慮してなされた。本発明の目的の一例は、記憶媒体のアクセス性能特性に応じてキャッシュに格納すべきデータを選択して格納し、キャッシュにおけるヒット率向上を図ることのできる記憶装置、解放優先順位決定方法およびプログラムを提供することにある。 The present invention has been made in consideration of such circumstances. An example of an object of the present invention is to select and store data to be stored in a cache according to the access performance characteristics of the storage medium, and to improve the hit rate in the cache, a release priority determination method, and a program Is to provide.
 この発明は上述した課題を解決するためになされた。本発明の一態様による記憶装置は、記憶媒体に記憶されるデータを一時的に保存し、前記記憶媒体よりもレイテンシの小さいキャッシュと、前記キャッシュが記憶するデータのデータ長が長いほど、前記キャッシュが置換を行う際の前記データの解放優先順位を高くする解放優先順位決定部と、を具備する。 This invention was made to solve the above-mentioned problems. A storage device according to one embodiment of the present invention temporarily stores data stored in a storage medium, and has a cache with lower latency than the storage medium and the longer the data length of the data stored in the cache, Includes a release priority determining unit that increases the release priority of the data when performing replacement.
 本発明の一態様による解放優先順位決定方法は、記憶媒体に記憶されるデータを一時的に保存し、前記記憶媒体よりもレイテンシの小さいキャッシュを具備する記憶装置の、前記キャッシュが置換を行う際の解放優先順位決定方法であって、前記キャッシュが記憶するデータのデータ長が長いほど、前記キャッシュが置換を行う際の前記データの解放優先順位を高くすることを具備する。 According to one aspect of the present invention, there is provided a release priority order determination method for temporarily storing data stored in a storage medium, wherein the cache performs replacement in a storage device including a cache having a latency lower than that of the storage medium. The release priority order determination method of the method further comprises increasing the release priority order of the data when the cache performs replacement as the data length of the data stored in the cache is longer.
 本発明の一態様によるプログラムは、記憶媒体に記憶されるデータを一時的に保存し、前記記憶媒体よりもレイテンシの小さいキャッシュを具備する記憶装置の、前記キャッシュが置換を行う際の解放優先順位を決定するコンピュータに、前記キャッシュが記憶するデータのデータ長が長いほど、前記キャッシュが置換を行う際の前記データの解放優先順位を高くすることを実行させる。 A program according to one aspect of the present invention temporarily stores data stored in a storage medium, and a release priority order when the cache performs replacement in a storage device including a cache having a latency lower than that of the storage medium The higher the data length of the data stored in the cache, the higher the release priority of the data when the cache performs the replacement is executed.
 本発明によれば、記憶媒体のアクセス性能特性に応じてキャッシュに格納すべきデータを選択して格納し、キャッシュにおけるヒット率向上を図ることができる。 According to the present invention, the data to be stored in the cache can be selected and stored according to the access performance characteristics of the storage medium, and the hit rate in the cache can be improved.
本発明の一実施形態における記憶装置を含むコンピュータネットワークシステムの概略構成を示す構成図である。1 is a configuration diagram illustrating a schematic configuration of a computer network system including a storage device according to an embodiment of the present invention. 本発明の一実施形態における記憶装置の概略構成を示す構成図である。It is a block diagram which shows schematic structure of the memory | storage device in one Embodiment of this invention. 本発明の一実施形態において、性能情報記憶部の記憶する性能情報テーブルの例を示す図である。In one Embodiment of this invention, it is a figure which shows the example of the performance information table which a performance information storage part memorize | stores. 本発明の一実施形態において、データ情報記憶部の記憶するSSDキャッシュ管理テーブルの例を示す図である。In one Embodiment of this invention, it is a figure which shows the example of the SSD cache management table which a data information storage part memorize | stores. 本発明の一実施形態において、データ情報記憶部の記憶するSSDキャッシュ管理テーブルの例を示す図である。In one Embodiment of this invention, it is a figure which shows the example of the SSD cache management table which a data information storage part memorize | stores. 本発明の一実施形態において、データ情報記憶部の記憶するDRAMキャッシュ管理テーブルの例を示す図である。FIG. 4 is a diagram illustrating an example of a DRAM cache management table stored in a data information storage unit in the embodiment of the present invention. 本発明の一実施形態において、データ情報記憶部の記憶するハードディスク管理テーブルの例を示す図である。In one Embodiment of this invention, it is a figure which shows the example of the hard disk management table which a data information storage part memorize | stores. 本発明の一実施形態において、ホストから送信される読出要求の例を示す図である。FIG. 6 is a diagram illustrating an example of a read request transmitted from a host in an embodiment of the present invention. 本発明の一実施形態において、ホストから送信される書込要求の例を示す図である。FIG. 6 is a diagram illustrating an example of a write request transmitted from a host in an embodiment of the present invention. 本発明の一実施形態において、ホストからの読出要求を受信した際の、記憶装置の処理手順を示すフローチャートである。6 is a flowchart illustrating a processing procedure of the storage device when a read request from a host is received in an embodiment of the present invention. 本発明の一実施形態において、ホストからの書込要求を受信した際の、記憶装置の処理手順を示すフローチャートである。6 is a flowchart illustrating a processing procedure of the storage device when a write request from a host is received in an embodiment of the present invention. 図8のステップS162および図9のステップS212における、解放対象として選択されたデータの各々について、必要に応じてSSDキャッシュ、または、ハードディスクに格納する処理手順を示すフローチャートである。FIG. 10 is a flowchart showing a processing procedure for storing data selected as a release target in step S162 in FIG. 8 and step S212 in FIG. 9 in an SSD cache or a hard disk as necessary. 図8のステップS162および図9のステップS212における、解放対象として選択されたデータの各々について、必要に応じてSSDキャッシュ、または、ハードディスクに格納する処理手順を示すフローチャートである。FIG. 10 is a flowchart showing a processing procedure for storing data selected as a release target in step S162 in FIG. 8 and step S212 in FIG. 9 in an SSD cache or a hard disk as necessary. 本発明の一実施形態において、読出要求T処理前において、DRAMキャッシュ管理テーブルが格納する情報を示す図である。FIG. 10 is a diagram showing information stored in a DRAM cache management table before a read request T process in an embodiment of the present invention. 本発明の一実施形態において、読出要求T処理前において、SSDキャッシュ管理テーブルが格納する情報を示す図である。FIG. 6 is a diagram showing information stored in an SSD cache management table before a read request T process in an embodiment of the present invention. 本発明の一実施形態において、ホストから記憶装置に送信される一連の処理要求の例を示す図である。FIG. 6 is a diagram illustrating an example of a series of processing requests transmitted from a host to a storage device in an embodiment of the present invention. 本発明の一実施形態において、読出要求T処理後において、DRAMキャッシュ管理テーブルが格納する情報を示す図である。FIG. 10 is a diagram illustrating information stored in a DRAM cache management table after a read request T process in an embodiment of the present invention. 本発明の一実施形態において、読出要求T処理後において、SSDキャッシュ管理テーブルが格納する情報を示す図である。FIG. 10 is a diagram illustrating information stored in an SSD cache management table after processing a read request T in an embodiment of the present invention. 本発明の一実施形態において、読出要求X処理後において、DRAMキャッシュ管理テーブルが格納する情報を示す図である。FIG. 10 is a diagram illustrating information stored in a DRAM cache management table after processing a read request X in an embodiment of the present invention. 本発明の一実施形態において、読出要求X処理後において、SSDキャッシュ管理テーブルが格納する情報を示す図である。FIG. 10 is a diagram showing information stored in an SSD cache management table after processing a read request X in an embodiment of the present invention. 本発明の一実施形態において、読出要求Y処理後において、DRAMキャッシュ管理テーブルが格納する情報を示す図である。FIG. 10 is a diagram illustrating information stored in a DRAM cache management table after a read request Y process in an embodiment of the present invention. 本発明の一実施形態において、読出要求Y処理後において、SSDキャッシュ管理テーブルが格納する情報を示す図である。FIG. 10 is a diagram illustrating information stored in an SSD cache management table after a read request Y process in an embodiment of the present invention. 本発明の一実施形態において、読出要求Z処理後において、DRAMキャッシュ管理テーブルが格納する情報を示す図である。FIG. 6 is a diagram showing information stored in a DRAM cache management table after processing a read request Z in an embodiment of the present invention.
 以下、図面を参照して、本発明の実施の形態について説明する。
 図1は、本発明の一実施形態における記憶装置を含むコンピュータネットワークシステムの概略構成を示す構成図である。図1に示すコンピュータネットワークシステムは、1台以上のホスト10と、記憶装置20と、ネットワーク30とを具備する。
 ホスト10は、記憶装置20に対して、書込要求や読出要求(以下では、書込要求と読出要求とを併せて「処理要求」と称する)を送信し、読出要求に基づいて読み出されたデータを受信する。
 記憶装置20は、ホスト10からの書込要求に基づいてデータを記憶し、読出要求に基づいてデータを返信する。
 ネットワーク30は、ホスト10と記憶装置20とを接続して、ホスト10から記憶装置20へ送信される処理要求や、記憶装置20からホスト10へ送信される処理結果を伝送する。
 ホスト10と記憶装置20との接続構成は、図1に示すネットワークを介した構成に限らない。ホスト10と記憶装置20とが直接接続されていてもよい。記憶装置20がホスト10の内部に組み込まれていてもよい。
Embodiments of the present invention will be described below with reference to the drawings.
FIG. 1 is a configuration diagram showing a schematic configuration of a computer network system including a storage device according to an embodiment of the present invention. The computer network system shown in FIG. 1 includes one or more hosts 10, a storage device 20, and a network 30.
The host 10 transmits a write request or a read request (hereinafter, the write request and the read request are collectively referred to as a “processing request”) to the storage device 20, and is read based on the read request. Receive data.
The storage device 20 stores data based on a write request from the host 10 and returns data based on a read request.
The network 30 connects the host 10 and the storage device 20 and transmits a processing request transmitted from the host 10 to the storage device 20 and a processing result transmitted from the storage device 20 to the host 10.
The connection configuration between the host 10 and the storage device 20 is not limited to the configuration via the network shown in FIG. The host 10 and the storage device 20 may be directly connected. The storage device 20 may be incorporated in the host 10.
 図2は、記憶装置20の概略構成を示す構成図である。図2において、記憶装置20は、ハードディスク(記憶媒体)210と、SSDキャッシュ(キャッシュ)220と、DRAMキャッシュ(上位キャッシュ)230と、アクセス処理部240と、記憶媒体性能測定部250と、性能情報記憶部260と、解放優先順位決定部270と、データ情報記憶部280とを具備する。
 ハードディスク210は、アクセス処理部240により書き込まれるデータを記憶する。上述したように、ハードディスク210は、データを読み出す際に、データ毎にシーク時間および回転待ち時間による遅延が生じる。ハードディスク210のメモリ空間はブロックに区切られており、ブロック毎にアドレスが付されている。ハードディスク210のアドレスは、記憶装置20の外部から記憶装置20にアクセスする際のアドレス、すなわち、記憶装置20の仮想メモリ空間のアドレス(以下では、「仮想アドレス」と称する)としても用いられる。すなわち、ハードディスク210のアドレスと仮想アドレスとは一致する。ハードディスク210、及びハードディスク210の管理手段は、既存技術を用いる。
 記憶装置20が具備するハードディスクの台数は図1に示す1台に限らず、2台以上であってもよい。記憶装置20が具備するSSDキャッシュ220の台数も図1に示す1台に限らず、2台以上であってもよい。
FIG. 2 is a configuration diagram showing a schematic configuration of the storage device 20. In FIG. 2, the storage device 20 includes a hard disk (storage medium) 210, an SSD cache (cache) 220, a DRAM cache (upper cache) 230, an access processing unit 240, a storage medium performance measurement unit 250, and performance information. A storage unit 260, a release priority order determination unit 270, and a data information storage unit 280 are provided.
The hard disk 210 stores data written by the access processing unit 240. As described above, when data is read from the hard disk 210, a delay occurs due to seek time and rotation waiting time for each data. The memory space of the hard disk 210 is divided into blocks, and an address is assigned to each block. The address of the hard disk 210 is also used as an address when accessing the storage device 20 from the outside of the storage device 20, that is, an address of a virtual memory space of the storage device 20 (hereinafter referred to as “virtual address”). That is, the address of the hard disk 210 matches the virtual address. The hard disk 210 and the management means of the hard disk 210 use existing technology.
The number of hard disks included in the storage device 20 is not limited to one shown in FIG. 1, and may be two or more. The number of SSD caches 220 included in the storage device 20 is not limited to one as shown in FIG. 1 and may be two or more.
 SSDキャッシュ220とDRAMキャッシュ230とで、ハードディスク210に対する2層のキャッシュを構成する。
 SSDキャッシュ220は、SSD(上述のように、フラッシュメモリで構成されたSSD)にて構成されるキャッシュである。SSDキャッシュ220は、ハードディスク210に対する二次的なキャッシュとして機能する。SSDキャッシュ220は、ハードディスク210よりもスループットが高い。SSDキャッシュ220は、特に、磁気ヘッドやプラッタ等の物理的な可動部分を有しないため、レイテンシが非常に小さい。SSDキャッシュのメモリ空間は、ハードディスク210のブロックと同じ大きさのブロックに区切られており、ブロック毎にアドレスが付されている。
 DRAMキャッシュ230は、SSDキャッシュ220よりも、さらに読み書きの速度が速い。DRAMキャッシュ230は、SSDキャッシュ220よりも上位の一次的なキャッシュとして機能する。DRAMキャッシュ230のメモリ空間は、ハードディスク210のブロックと同じ大きさのブロックに区切られており、ブロック毎にアドレスが付されている。DRAMキャッシュ230、及びDRAMキャッシュ230の管理手段は、既存技術を用いる。
The SSD cache 220 and the DRAM cache 230 constitute a two-layer cache for the hard disk 210.
The SSD cache 220 is a cache configured by SSD (SSD configured by flash memory as described above). The SSD cache 220 functions as a secondary cache for the hard disk 210. The SSD cache 220 has a higher throughput than the hard disk 210. Since the SSD cache 220 does not particularly have a physically movable part such as a magnetic head or a platter, the latency is very small. The memory space of the SSD cache is divided into blocks having the same size as the blocks of the hard disk 210, and an address is assigned to each block.
The DRAM cache 230 has a higher read / write speed than the SSD cache 220. The DRAM cache 230 functions as a primary cache higher than the SSD cache 220. The memory space of the DRAM cache 230 is divided into blocks having the same size as the blocks of the hard disk 210, and an address is assigned to each block. The DRAM cache 230 and the management means of the DRAM cache 230 use existing technology.
 本実施形態では、SSDキャッシュ220およびDRAMキャッシュのデータ更新方式としてライトバック方式(Write Back Algorithm)を採用する。しかしながら、本発明の実施形態の適用範囲はこれに限らず、ライトスルー方式(Write Through Algorithm)によってデータ更新が行われるキャッシュにも適用できる。 In this embodiment, a write-back method (Write Back Algorithm) is adopted as a data update method of the SSD cache 220 and the DRAM cache. However, the scope of application of the embodiment of the present invention is not limited to this, and can also be applied to a cache in which data is updated by a write-through method (Write Through Algorithm).
 アクセス処理部240は、ホスト10(図1)から送信される処理要求に応じて、ハードディスク210と、SSDキャッシュ220と、DRAMキャッシュ230とに対してデータの読み書きを行い、データ情報記憶部280のデータを更新する。また、アクセス処理部240は、処理結果をホスト10に返信する。
 記憶媒体性能測定部250は、記憶装置20がホスト10からの処理要求に応じた処理を行う前処理として、予め、ハードディスク210と、SSDキャッシュ220との各々に対し、連続のブロックに対するアクセスを行う場合と、離散的なアクセスを行う場合との各々について、かつ、読出(Read)の場合と、書込(Write)の場合との各々について、アクセス速度(スループット)と、遅延時間(レイテンシ)とを含むアクセス性能特性を測定する。記憶媒体性能測定部250は、測定したデータを、性能情報記憶部260に書き込んでおく。性能情報記憶部260は、記憶媒体性能測定部250が測定したアクセス性能特性を記憶する。連続のブロックに対するアクセスとは、記憶媒体上で隣接するアドレスに位置するブロックに対するアクセスを意味する。ハードディスクの場合は、プラッタ上で物理的に近い位置にあるブロックに対するアクセスとなる。
 ハードディスク210およびSSDキャッシュ220のアクセス性能特性が既知の場合は、性能情報記憶部260が、これら既知のアクセス性能特性を予め記憶しておくようにしてもよい。これにより、記憶装置20が、記憶媒体性能測定部250を具備する必要が無くなり、装置構成を簡略にできる。
In response to a processing request transmitted from the host 10 (FIG. 1), the access processing unit 240 reads / writes data from / to the hard disk 210, the SSD cache 220, and the DRAM cache 230, and stores data in the data information storage unit 280. Update the data. In addition, the access processing unit 240 returns the processing result to the host 10.
The storage medium performance measurement unit 250 accesses the hard disk 210 and the SSD cache 220 in advance for consecutive blocks as pre-processing in which the storage device 20 performs processing according to a processing request from the host 10. The access speed (throughput) and the delay time (latency) for each of the case of the case and the case of discrete access, and for each of the case of reading (Read) and the case of writing (Write) Measure access performance characteristics including The storage medium performance measurement unit 250 writes the measured data in the performance information storage unit 260. The performance information storage unit 260 stores the access performance characteristics measured by the storage medium performance measurement unit 250. Access to consecutive blocks means access to blocks located at adjacent addresses on the storage medium. In the case of a hard disk, access is to a block that is physically close to the platter.
When the access performance characteristics of the hard disk 210 and the SSD cache 220 are known, the performance information storage unit 260 may store these known access performance characteristics in advance. This eliminates the need for the storage device 20 to include the storage medium performance measurement unit 250, thereby simplifying the device configuration.
 解放優先順位決定部270は、性能情報記憶部260の記憶する、ハードディスク210およびSSDキャッシュ220のアクセス性能特性を用いて、SSDキャッシュ220の記憶するデータや、DRAMキャッシュ230から解放されるデータについて、解放優先指標値を算出する。解放優先順位決定部270は、算出した解放優先指標値に基づいて、各データの解放優先順位を決定する。この解放優先順位は、SSDキャッシュ220にて置換を行う際に、SSDキャッシュ220から解放される優先順位(DRAMキャッシュ230から解放されるデータについては、SSDキャッシュ220に書き込まれる優先順位)を示す。 The release priority order determination unit 270 uses the access performance characteristics of the hard disk 210 and the SSD cache 220 stored in the performance information storage unit 260 to store data stored in the SSD cache 220 and data released from the DRAM cache 230. The release priority index value is calculated. The release priority determining unit 270 determines the release priority of each data based on the calculated release priority index value. This release priority indicates the priority that is released from the SSD cache 220 when replacing in the SSD cache 220 (the priority that is written to the SSD cache 220 for data released from the DRAM cache 230).
 データ情報記憶部280は、SSDキャッシュ220が記憶する各データのアドレスやアクセス頻度等を示すSSDキャッシュ管理テーブルを記憶する。また、データ情報記憶部280は、DRAMキャッシュ230が記憶する各データのアドレスやアクセス頻度等を示すDRAMキャッシュ管理テーブルを記憶する。さらに、データ情報記憶部280は、ハードディスク210が記憶する各データのアドレスやアクセス頻度等を示すハードディスク管理テーブルを記憶する。
 SSDキャッシュ220がSSDキャッシュ管理テーブルを記憶するようにしてもよい。同様に、DRAMキャッシュ230がDRAMキャッシュ管理テーブルを記憶するようにしてもよい。同様に、ハードディスク210がハードディスク管理テーブルを記憶するようにしてもよい。
 特に、SSDキャッシュ220がSSDキャッシュ管理テーブルを記憶し、かつ、DRAMキャッシュ230がDRAMキャッシュ管理テーブルを記憶し、かつ、ハードディスク210がハードディスク管理テーブルを記憶する場合、記憶装置20は、データ情報記憶部280を具備する必要がない。
The data information storage unit 280 stores an SSD cache management table indicating the address, access frequency, and the like of each data stored in the SSD cache 220. Further, the data information storage unit 280 stores a DRAM cache management table indicating the address, access frequency, etc. of each data stored in the DRAM cache 230. Further, the data information storage unit 280 stores a hard disk management table indicating the address, access frequency, etc. of each data stored in the hard disk 210.
The SSD cache 220 may store the SSD cache management table. Similarly, the DRAM cache 230 may store a DRAM cache management table. Similarly, the hard disk 210 may store a hard disk management table.
In particular, when the SSD cache 220 stores the SSD cache management table, the DRAM cache 230 stores the DRAM cache management table, and the hard disk 210 stores the hard disk management table, the storage device 20 includes a data information storage unit. It is not necessary to have 280.
 次に、図3~図5を参照して、性能情報記憶部260およびデータ情報記憶部280が記憶するデータのデータ構成について説明する。
 図3は、性能情報記憶部260の記憶する性能情報テーブルの例を示す図である。図3に示すように、性能情報テーブルは、ハードディスク210及びSSDキャッシュ220の、遅延時間およびアクセス速度を格納する。遅延時間としては、レイテンシ(アクセス初期の遅延時間)を格納する。アクセス速度としては、連続のブロックにアクセスする際の速度を格納する。本実施形態では、ハードディスク210及びSSDキャッシュ220は、データを読み出す際と書き込む際との遅延時間やアクセス速度が同一であるとする。このため、性能情報テーブルは、読み出しの際と書き込みの際とに共通するデータを記憶している。読み出しの際と書き込みの際とで値が異なる場合は、性能情報記憶部260が、それぞれについてデータを格納するようにする。
Next, the data structure of data stored in the performance information storage unit 260 and the data information storage unit 280 will be described with reference to FIGS.
FIG. 3 is a diagram illustrating an example of the performance information table stored in the performance information storage unit 260. As shown in FIG. 3, the performance information table stores the delay time and access speed of the hard disk 210 and the SSD cache 220. As the delay time, latency (delay time at the beginning of access) is stored. As the access speed, the speed at the time of accessing a continuous block is stored. In the present embodiment, it is assumed that the hard disk 210 and the SSD cache 220 have the same delay time and access speed when reading data and when writing data. For this reason, the performance information table stores data common to reading and writing. If the values differ between reading and writing, the performance information storage unit 260 stores data for each.
 図4Aおよび図4Bは、データ情報記憶部280の記憶するSSDキャッシュ管理テーブルの例を示す図である。図4Aに示すように、SSDキャッシュ管理テーブルは、「Dirtyフラグ(Dirty flag)」欄と、「先頭アドレス(SSD)」欄と、「先頭アドレス(仮想)」欄と、「データ長」欄と、「アクセス頻度」欄とを含む。SSDキャッシュ管理テーブルは、SSDキャッシュ220上の各データについて、各欄の情報を格納する。 4A and 4B are diagrams showing examples of the SSD cache management table stored in the data information storage unit 280. FIG. As shown in FIG. 4A, the SSD cache management table includes a “Dirty flag (Dirty flag)” field, a “Start address (SSD)” field, a “Start address (virtual)” field, and a “Data length” field. And “access frequency” column. The SSD cache management table stores information on each column for each data on the SSD cache 220.
 「Dirtyフラグ」欄には、ハードディスク210の記憶するデータの更新の要否を示すDirtyフラグが格納される。Dirtyフラグの値としては、SSDキャッシュ220上のデータ(以下、図4Aおよび4Bの説明において、「当該データ」と称する)について、ホスト10から新たに書込要求があった場合には、データを更新する必要があることを示す「1」が格納される。一方、ハードディスク210に未反映の書込要求がない場合は、Dirtyフラグに更新する必要が無いことを示す「0」が格納される。
 「先頭アドレス(SSD)」欄には、SSDのメモリ空間のアドレス(以下では、「SSDアドレス」と称する)における、当該データの先頭アドレス(以下では、「先頭アドレス(SSD)」と称する)が格納される。
In the “Dirty flag” column, a Dirty flag indicating whether or not the data stored in the hard disk 210 needs to be updated is stored. As the value of the Dirty flag, the data on the SSD cache 220 (hereinafter referred to as “the relevant data” in the description of FIGS. 4A and 4B), when there is a new write request from the host 10, “1” indicating that updating is necessary is stored. On the other hand, when there is no unreflected write request in the hard disk 210, “0” indicating that there is no need to update the Dirty flag is stored.
In the “start address (SSD)” column, the start address (hereinafter referred to as “start address (SSD)”) of the data in the address of the SSD memory space (hereinafter referred to as “SSD address”). Stored.
 「先頭アドレス(仮想)」欄には、仮想アドレス(記憶装置20のアドレス)における、当該データの先頭アドレス(以下では、「先頭アドレス(仮想)」と称する)が格納される。
 「データ長」欄には、当該データのデータ長がブロック数の表記にて格納される。
 「アクセス頻度」欄には、ホスト10からの当該データに対するアクセス頻度(直近の一定時間内におけるアクセス回数)が格納される。
 図4Bに示すように、SSDキャッシュ管理テーブルに、アクセス頻度に代えて、LRU順序、すなわち、ホスト10から当該データに対する処理要求が最後に行われてから現在までの経過時間の長い順の順序が格納されていてもよい。
In the “start address (virtual)” column, the start address (hereinafter referred to as “start address (virtual)”) of the data in the virtual address (address of the storage device 20) is stored.
In the “data length” column, the data length of the data is stored in the notation of the number of blocks.
The “access frequency” column stores the access frequency (the number of accesses within the latest fixed time) for the data from the host 10.
As shown in FIG. 4B, in the SSD cache management table, instead of the access frequency, the LRU order, that is, the order of the longest elapsed time from the last processing request for the data from the host 10 to the present is shown. It may be stored.
 図5は、データ情報記憶部280の記憶するDRAMキャッシュ管理テーブルの例を示す図である。図5に示すように、DRAMキャッシュ管理テーブルは、「Dirtyフラグ」欄と、「先頭アドレス(DRAM)」欄と、「先頭アドレス(仮想)」欄と、「データ長」欄と、「アクセス頻度」欄とを含む。DRAMキャッシュ管理テーブルは、DRAMキャッシュ230上の各データについて、各欄の情報を格納する。
 「Dirtyフラグ」欄には、図4Aを参照して説明したのと同様、ハードディスク210の記憶するデータの更新の要否を示すDirtyフラグが格納される。
 「先頭アドレス(SSD)」欄には、SSDのメモリ空間のアドレス(以下では、「SSDアドレス」と称する)における、DRAMキャッシュ230上のデータ(以下、図5の説明において、「当該データ」と称する)の先頭アドレス(以下では、「先頭アドレス(DRAM)」と称する)が格納される。
FIG. 5 is a diagram illustrating an example of a DRAM cache management table stored in the data information storage unit 280. As shown in FIG. 5, the DRAM cache management table includes a “Dirty flag” field, a “start address (DRAM)” field, a “start address (virtual)” field, a “data length” field, and an “access frequency”. "Column. The DRAM cache management table stores information on each column for each data on the DRAM cache 230.
In the “Dirty flag” column, a Dirty flag indicating whether or not the data stored in the hard disk 210 needs to be updated is stored, as described with reference to FIG. 4A.
In the “first address (SSD)” column, data on the DRAM cache 230 at the address of the SSD memory space (hereinafter referred to as “SSD address”) (hereinafter, “the relevant data” in the description of FIG. 5). The first address (hereinafter referred to as “first address (DRAM)”) is stored.
 「先頭アドレス(仮想)」欄には、当該データの先頭アドレス(仮想)が格納される。
 「データ長」欄には、当該データのデータ長がブロック数の表記にて格納される。
 「アクセス頻度」欄には、ホスト10からの当該データに対するアクセス頻度が格納される。
 DRAMキャッシュ230に適用される置換ポリシーはLFUに限られない。また、DRAMキャッシュ管理テーブルに格納される情報も、アクセス頻度情報に限らない。例えば、DRAMキャッシュ230に対してLRUを適用してもよく、この場合は、DRAMキャッシュ管理テーブルは、アクセス頻度欄に代えてLRU順序情報欄を具備し、その情報を格納する。
In the “start address (virtual)” column, the start address (virtual) of the data is stored.
In the “data length” column, the data length of the data is stored in the notation of the number of blocks.
The “access frequency” column stores the access frequency for the data from the host 10.
The replacement policy applied to the DRAM cache 230 is not limited to LFU. Further, information stored in the DRAM cache management table is not limited to access frequency information. For example, LRU may be applied to the DRAM cache 230. In this case, the DRAM cache management table includes an LRU order information field instead of the access frequency field, and stores the information.
 図6は、データ情報記憶部280の記憶するハードディスク管理テーブルの例を示す図である。図6に示すように、ハードディスク管理テーブルは、「先頭アドレス(仮想)」欄と、「データ長」欄と、「アクセス頻度」欄とを含む。ハードディスク管理テーブルは、ハードディスク210上の各データについて、各欄の情報を格納する。
 「先頭アドレス(仮想)」欄には、仮想アドレスにおける、ハードディスク上のデータ(以下、図6の説明において、「当該データ」と称する)の先頭アドレス(仮想)が格納される。上述したように、ハードディスク210のメモリ空間のアドレスは、仮想アドレスと一致しており、先頭アドレス(仮想)は、ハードディスク210における先頭アドレスをも示している。
FIG. 6 is a diagram illustrating an example of a hard disk management table stored in the data information storage unit 280. As shown in FIG. 6, the hard disk management table includes a “start address (virtual)” column, a “data length” column, and an “access frequency” column. The hard disk management table stores information in each column for each data on the hard disk 210.
The “start address (virtual)” column stores the start address (virtual) of data on the hard disk in the virtual address (hereinafter referred to as “the data” in the description of FIG. 6). As described above, the memory space address of the hard disk 210 matches the virtual address, and the head address (virtual) also indicates the head address in the hard disk 210.
 「アクセス頻度」欄には、ホスト10からの当該データに対するアクセス頻度が格納される。SSDキャッシュ220およびDRAMキャッシュ230に対してLFU以外の置換ポリシーが適用される場合は、ハードディスク管理テーブルは、そのポリシーに応じたデータを格納する。たとえば、SSDキャッシュ220およびDRAMキャッシュ230に対してLRUが適用される場合、ハードディスク管理テーブルは、アクセス頻度欄に代えてLRU順序情報欄を具備し、その情報を格納する。 In the “access frequency” column, the access frequency for the data from the host 10 is stored. When a replacement policy other than LFU is applied to the SSD cache 220 and the DRAM cache 230, the hard disk management table stores data according to the policy. For example, when the LRU is applied to the SSD cache 220 and the DRAM cache 230, the hard disk management table includes an LRU order information field instead of the access frequency field, and stores the information.
 上述したように、ハードディスク210のアドレスと、記憶装置20の仮想アドレスとは一致する。よって、ハードディスク管理テーブルにて、ハードディスク210のアドレスと、記憶装置20の仮想アドレスとの対応付けを記憶しておく必要はない。したがって、ハードディスク210の記憶するデータについて、置換ポリシーに応じた情報(アクセス頻度あるいはLRU順序情報など)を記憶する必要が無い場合は、ハードディスク管理テーブルは不要である。
 例えば、SSDキャッシュ管理テーブルのアクセス頻度欄のデータとして、SSDキャッシュ管理テーブルに格納された後のアクセス頻度を格納する場合、そのデータがハードディスク210に格納されている時点でのアクセス頻度は不要である。この場合、データ情報記憶部280が、ハードディスク管理テーブルを記憶しないようにでき、必要な記憶容量を削減できる。
As described above, the address of the hard disk 210 matches the virtual address of the storage device 20. Therefore, it is not necessary to store the correspondence between the address of the hard disk 210 and the virtual address of the storage device 20 in the hard disk management table. Therefore, when it is not necessary to store information (access frequency or LRU order information) according to the replacement policy for the data stored in the hard disk 210, the hard disk management table is unnecessary.
For example, when the access frequency after being stored in the SSD cache management table is stored as data in the access frequency column of the SSD cache management table, the access frequency at the time when the data is stored in the hard disk 210 is unnecessary. . In this case, the data information storage unit 280 can be prevented from storing the hard disk management table, and the necessary storage capacity can be reduced.
 ハードディスク210のアドレスと仮想アドレスとが一致しない場合は、置換ポリシーに応じた情報を記憶する必要の有無にかかわらず、ハードディスク210のアドレスと仮想アドレスとの対応関係を記憶するためにハードディスク管理テーブルが必要となる。すなわち、記憶装置20は、ハードディスク210にデータを書き込む際に、ハードディスク210上のデータを書き込んだ位置(すなわち、ハードディスク210のアドレス)と、外部からの書込要求に含まれる仮想アドレスとを対応付けて、ハードディスク管理テーブルに格納しておく。そして、記憶装置20は、仮想アドレスによりデータを指定する読出要求を外部から受けると、仮想アドレスに基づいてハードディスク管理テーブルを検索して、ハードディスク210のアドレスを取得し、取得したアドレスに基づいてハードディスク210からデータを読み出す。
 ただし、本実施形態では、上述のように、ハードディスク210のアドレスと、記憶装置20の仮想アドレスとが一致するので、ハードディスク210のアドレスと仮想アドレスとの対応関係を記憶する必要は無い。従って、置換ポリシーに応じた情報を記憶する必要が無い場合は、ハードディスク管理テーブルは不要である。
If the address of the hard disk 210 does not match the virtual address, the hard disk management table is used to store the correspondence between the address of the hard disk 210 and the virtual address regardless of whether or not information corresponding to the replacement policy needs to be stored. Necessary. That is, when the storage device 20 writes data to the hard disk 210, the storage device 20 associates the data writing position on the hard disk 210 (that is, the address of the hard disk 210) with the virtual address included in the external write request. Stored in the hard disk management table. When the storage device 20 receives a read request for designating data by a virtual address from the outside, the storage device 20 searches the hard disk management table based on the virtual address, acquires the address of the hard disk 210, and stores the hard disk based on the acquired address. Read data from 210.
However, in this embodiment, since the address of the hard disk 210 and the virtual address of the storage device 20 match as described above, it is not necessary to store the correspondence between the address of the hard disk 210 and the virtual address. Therefore, when it is not necessary to store information according to the replacement policy, the hard disk management table is unnecessary.
 SSDキャッシュ220に適用される置換ポリシーと、DRAMキャッシュ230に適用される置換ポリシーとが異なっていてもよい。この場合、SSDキャッシュ管理テーブルと、DRAMキャッシュ管理テーブルと、ハードディスク管理テーブルとは、両ポリシーに応じたデータを格納する。たとえば、SSDキャッシュ220にLRUが適用され、DRAMキャッシュ230にLFUが適用される場合は、SSDキャッシュ管理テーブルと、DRAMキャッシュ管理テーブルと、ハードディスク管理テーブルとは、それぞれ、アクセス頻度欄と、LRU順序情報欄とを含み、それらの情報を格納する。 The replacement policy applied to the SSD cache 220 and the replacement policy applied to the DRAM cache 230 may be different. In this case, the SSD cache management table, DRAM cache management table, and hard disk management table store data according to both policies. For example, when the LRU is applied to the SSD cache 220 and the LFU is applied to the DRAM cache 230, the SSD cache management table, the DRAM cache management table, and the hard disk management table are respectively an access frequency column and an LRU order. And an information column for storing the information.
 データ情報記憶部280の各テーブルのアクセス頻度欄のデータは、アクセス処理部240によって定期的に更新される。例えば、データ情報記憶部280が、各データに対するアクセス履歴(ホスト10からの処理要求履歴)を記憶している。アクセス処理部240は、そのアクセス履歴に基づいて、アクセス頻度欄のデータを更新する。 The data in the access frequency column of each table in the data information storage unit 280 is periodically updated by the access processing unit 240. For example, the data information storage unit 280 stores an access history (processing request history from the host 10) for each data. The access processing unit 240 updates the data in the access frequency column based on the access history.
 図7Aおよび7Bは、ホスト10から送信される処理要求の例を示す図である。図7Aは読出要求の例を示す。図7Bは書込要求の例を示す。図7Aおよび7Bに示すように、処理要求には、先頭アドレス(仮想)およびデータ長が含まれている。この先頭アドレス(仮想)およびデータ長は、アクセス処理部240が、処理対象のデータを特定するために用いられる。 7A and 7B are diagrams illustrating examples of processing requests transmitted from the host 10. FIG. FIG. 7A shows an example of a read request. FIG. 7B shows an example of a write request. As shown in FIGS. 7A and 7B, the processing request includes a head address (virtual) and a data length. The head address (virtual) and the data length are used by the access processing unit 240 to specify data to be processed.
 次に、図8~11を参照して、記憶装置20の動作について説明する。
 図8は、ホスト10(図1)からの読出要求を受信した際の、記憶装置20の処理手順を示すフローチャートである。記憶装置20は、ホスト10からの読出要求を受信する毎に、図8の処理を行う。
 ホスト10からの読出要求を受信すると、アクセス処理部240は、まず、DRAMキャッシュ230からのデータの読み出しを試みる。まず、アクセス処理部240は、データ情報記憶部280の記憶するDRAMキャッシュ管理テーブルを検索する。具体的には、アクセス処理部240は、読出要求から先頭アドレス(仮想)およびデータ長を読み出し、DRAMキャッシュ管理テーブル上で、先頭アドレス(仮想)およびデータ長の一致する行を検索する(以上、ステップS101)。
Next, the operation of the storage device 20 will be described with reference to FIGS.
FIG. 8 is a flowchart showing a processing procedure of the storage device 20 when a read request from the host 10 (FIG. 1) is received. Each time the storage device 20 receives a read request from the host 10, the storage device 20 performs the process of FIG.
When receiving a read request from the host 10, the access processing unit 240 first attempts to read data from the DRAM cache 230. First, the access processing unit 240 searches the DRAM cache management table stored in the data information storage unit 280. Specifically, the access processing unit 240 reads the head address (virtual) and the data length from the read request, and searches the DRAM cache management table for a line where the head address (virtual) and the data length match (above, Step S101).
 そして、アクセス処理部240は、読出要求されたデータがDRAMキャッシュ230上に存在するか否かを判定する。具体的には、アクセス処理部240は、ステップS101で行った検索にて、一致する行を発見した場合は、読出要求されたデータがDRAMキャッシュ230上に存在すると判定する。一方、アクセス処理部240は、ステップS101で行った検索にて、一致する行を発見しなかった場合は、存在しないと判定する。先頭アドレスのみが一致し、データ長が一致しない行を発見した場合は、要求されているデータが記憶装置20の記憶するデータと齟齬している。そのため、アクセス処理部240は、ホスト10にエラーメッセージを送信(返信)して図8の処理を終了する(以上、ステップS102)。 Then, the access processing unit 240 determines whether or not the data requested to be read exists on the DRAM cache 230. Specifically, the access processing unit 240 determines that the data requested to be read exists in the DRAM cache 230 when a matching line is found in the search performed in step S101. On the other hand, the access processing unit 240 determines that it does not exist when no matching row is found in the search performed in step S101. If a line that matches only the start address and does not match the data length is found, the requested data is considered as data stored in the storage device 20. Therefore, the access processing unit 240 transmits (replies) an error message to the host 10 and ends the process of FIG. 8 (step S102).
 ステップS102にて、読出要求されたデータがDRAMキャッシュ230上に存在すると判定した場合(ステップS102:YES)、アクセス処理部240は、読出要求されたデータをDRAMキャッシュ230から読み出し、読出要求に対する結果データとしてホスト10に送信(返信)する。具体的には、アクセス処理部240は、ステップS101で行った検索にて一致した行に格納されている、先頭アドレス(DRAM)およびデータ長が示す、DRAMキャッシュ230上の領域(1つのデータを格納するために用いられるブロックの集合を、1つの「領域」と称する。以下同様)からデータを読み出して、ホスト10に送信する(ステップS111)。その後、図8の処理を終了する。 If it is determined in step S102 that the read requested data exists in the DRAM cache 230 (step S102: YES), the access processing unit 240 reads the read requested data from the DRAM cache 230 and obtains a result for the read request. The data is transmitted (returned) to the host 10 as data. Specifically, the access processing unit 240 stores an area (one piece of data in the DRAM cache 230) indicated by the head address (DRAM) and the data length stored in the matching row in the search performed in step S101. A set of blocks used for storage is referred to as one “area” (the same applies hereinafter), and data is read out and transmitted to the host 10 (step S111). Thereafter, the process of FIG.
 一方、読出要求されたデータがDRAMキャッシュ上に存在しないと判定した場合(ステップS102:NO)、アクセス処理部240は、次に、SSDキャッシュ220からのデータの読み出しを試みる。まず、アクセス処理部240は、データ情報記憶部280の記憶するSSDキャッシュ管理テーブルを検索する。具体的には、ステップS101と同様、先頭アドレス(仮想)およびデータ長の一致する行を検索する(以上、ステップS121)。
 そして、アクセス処理部240は、読出要求されたデータがSSDキャッシュ220上に存在するか否かを判定する。具体的には、ステップS102と同様、ステップS103で行った検索にて、一致する行を発見した場合は、データが存在すると判定する。一方、ステップS103で行った検索にて、一致する行を発見しなかった場合は、存在しないと判定する。先頭アドレスのみが一致し、データ長が一致しない行を発見した場合は、ステップS102と同様、ホスト10にエラーメッセージを送信して図8の処理を終了する(以上、ステップS122)。
On the other hand, when it is determined that the data requested to be read does not exist in the DRAM cache (step S102: NO), the access processing unit 240 next tries to read the data from the SSD cache 220. First, the access processing unit 240 searches the SSD cache management table stored in the data information storage unit 280. Specifically, as in step S101, a search is made for a line having the same start address (virtual) and data length (step S121).
Then, the access processing unit 240 determines whether or not the data requested to be read exists on the SSD cache 220. Specifically, as in step S102, if a matching line is found in the search performed in step S103, it is determined that data exists. On the other hand, if no matching line is found in the search performed in step S103, it is determined that the line does not exist. If only a head address matches and a line whose data length does not match is found, an error message is transmitted to the host 10 as in step S102, and the process of FIG. 8 is terminated (step S122).
 ステップS122にて、読出要求されたデータがSSDキャッシュ220上に存在すると判定した場合(ステップS122:YES)、アクセス処理部240は、読出要求されたデータをSSDキャッシュ220から読み出し、読出要求に対する結果データとしてホスト10に送信(返信)する。具体的には、ステップS111と同様、アクセス処理部240は、ステップS121で行って検索にて一致した行に格納されている、先頭アドレス(SSD)およびデータ長が示す、SSDキャッシュ220上の領域からデータを読み出して、ホスト10に送信する(ステップS131)。その後、処理がステップS151に進む。 When it is determined in step S122 that the data requested to be read exists on the SSD cache 220 (step S122: YES), the access processing unit 240 reads the data requested to be read from the SSD cache 220 and obtains a result for the read request. The data is transmitted (returned) to the host 10 as data. Specifically, as in step S111, the access processing unit 240 stores the area on the SSD cache 220 indicated by the head address (SSD) and the data length stored in the line matched in the search performed in step S121. The data is read out from the host and transmitted to the host 10 (step S131). Thereafter, the process proceeds to step S151.
 一方、ステップS122にて、読出要求されたデータがSSDキャッシュ220上に存在しないと判定した場合(ステップS122:NO)、アクセス処理部240は、読出要求されたデータをハードディスク210から読み出し、読出要求に対する結果データとしてホスト10に送信(返信)する。具体的には、ハードディスク210上のアドレスは仮想アドレスと一致するので、アクセス処理部240は、ステップS121で行って検索にて一致した行に格納されている、先頭アドレス(仮想)およびデータ長が示す、ハードディスク210上の領域からデータを読み出して、ホスト10に送信する(ステップS141)。 On the other hand, when it is determined in step S122 that the data requested to be read does not exist on the SSD cache 220 (step S122: NO), the access processing unit 240 reads the data requested to be read from the hard disk 210, and reads the read request. Is transmitted (returned) to the host 10 as result data. Specifically, since the address on the hard disk 210 matches the virtual address, the access processing unit 240 stores the head address (virtual) and the data length stored in the line matched in the search performed in step S121. The data is read from the area on the hard disk 210 shown and transmitted to the host 10 (step S141).
 ステップS131またはステップS141にてホスト10にデータを送信したアクセス処理部240は、そのステップにて読み出したデータ(以下、図8の説明において、「格納対象データ」と称する。)をDRAMキャッシュ230に格納する処理を行う。
 本実施形態では、DRAMキャッシュ230の置換ポリシーとして、ホスト10から処理要求を受けたデータを必ずDRAMキャッシュ230に格納するポリシーを採用している。しかしながら、本発明の実施形態の適用範囲はこれに限らない。例えば、処理要求を受けたデータのアクセス頻度と、DRAMキャッシュ230上の各データのアクセス頻度とを比較し、処理要求を受けたデータよりもアクセス頻度の低いデータをDRAMキャッシュ230上から解放することによって、処理要求を受けたデータの容量を確保可能か否かを判定するようにしてもよい。この場合、アクセス処理部240は、データの容量を確保可能と判定した場合のみ、以下の処理を行う。一方、アクセス処理部240は、データの容量を確保不可能と判定した場合は、処理要求を受けたデータ(処理要求を受けたデータに該当するSSDキャッシュ220上またはハードディスク210上のデータ)のアクセス頻度を更新するのみで、DRAMキャッシュ230における置換は行わずに図8の処理を終了する。
The access processing unit 240 that has transmitted the data to the host 10 in step S131 or step S141 stores the data read in that step (hereinafter referred to as “storage target data” in the description of FIG. 8) in the DRAM cache 230. Process to store.
In the present embodiment, as a replacement policy for the DRAM cache 230, a policy is employed in which data received from the host 10 is always stored in the DRAM cache 230. However, the scope of application of the embodiment of the present invention is not limited to this. For example, the access frequency of data that has received a processing request is compared with the access frequency of each data on the DRAM cache 230, and data having a lower access frequency than the data that has received the processing request is released from the DRAM cache 230. Thus, it may be determined whether or not it is possible to secure the capacity of the data for which the processing request has been received. In this case, the access processing unit 240 performs the following process only when it is determined that the data capacity can be secured. On the other hand, if the access processing unit 240 determines that the data capacity cannot be secured, the access processing unit 240 accesses the data that has received the processing request (the data on the SSD cache 220 or the hard disk 210 corresponding to the data that has received the processing request). Only the frequency is updated, and the replacement of the DRAM cache 230 is not performed, and the processing of FIG.
 格納対象データをDRAMキャッシュ230に格納する処理において、アクセス処理部240は、まず、DRAMキャッシュ230上の空き容量を取得する。例えば、アクセス処理部240は、データ情報記憶部280の記憶するDRAMキャッシュ管理テーブルのデータ長欄の値を合計し、得られた値をDRAMキャッシュ230の全体容量から減算して空き容量を算出する(以上、ステップS151)。
 そして、アクセス処理部240は、格納対象データのデータ長と、DRAMキャッシュ230の空き容量とを比較して、格納対象データを格納可能な空き容量がDRAMキャッシュ230上に存在するか否かを判定する(ステップS152)。
 アクセス処理部240は、格納対象データを格納可能な空き容量がDRAMキャッシュ230上に存在すると判定した場合(ステップS152:YES)、ステップS163に進む。
In the process of storing the storage target data in the DRAM cache 230, the access processing unit 240 first acquires the free capacity on the DRAM cache 230. For example, the access processing unit 240 sums the values in the data length column of the DRAM cache management table stored in the data information storage unit 280 and subtracts the obtained value from the total capacity of the DRAM cache 230 to calculate the free capacity. (Step S151).
Then, the access processing unit 240 compares the data length of the storage target data with the free capacity of the DRAM cache 230 and determines whether or not there is free capacity in the DRAM cache 230 that can store the storage target data. (Step S152).
If the access processing unit 240 determines that there is free space in the DRAM cache 230 that can store the storage target data (step S152: YES), the access processing unit 240 proceeds to step S163.
 一方、ステップS152にて、格納対象データを格納可能な空き容量がDRAMキャッシュ230上に存在しないと判定した場合(ステップS152:NO)、アクセス処理部240は、空き容量を確保するために解放するデータを選択する。具体的には、アクセス処理部240は、データ情報記憶部280の記憶するDRAMキャッシュ管理テーブルを参照して、アクセス頻度の低い順に、データ長の合計が格納対象データのデータ長以上になるまで、DRAMキャッシュ230上のデータを選択する(ステップS161)。
 次に、アクセス処理部240は、ステップS161にて選択したデータの各々について、必要に応じてSSDキャッシュ220、または、ハードディスク210に格納する処理を行う。この処理の詳細については後述する。その後、アクセス処理部240は、ステップS161にて選択したデータを解放して、格納対象データを格納可能な空き容量を確保する。(以上、ステップS162)。
 そして、アクセス処理部240は、格納対象データをDRAMキャッシュ230に書き込む(ステップS163)。その後、図8の処理を終了する。
On the other hand, when it is determined in step S152 that there is no free space in the DRAM cache 230 that can store the storage target data (step S152: NO), the access processing unit 240 releases it to secure the free space. Select data. Specifically, the access processing unit 240 refers to the DRAM cache management table stored in the data information storage unit 280 until the total data length becomes greater than or equal to the data length of the storage target data in order of increasing access frequency. Data on the DRAM cache 230 is selected (step S161).
Next, the access processing unit 240 performs processing for storing each of the data selected in step S161 in the SSD cache 220 or the hard disk 210 as necessary. Details of this processing will be described later. Thereafter, the access processing unit 240 releases the data selected in step S161 and secures a free capacity capable of storing the storage target data. (The above is step S162).
Then, the access processing unit 240 writes the storage target data to the DRAM cache 230 (step S163). Thereafter, the process of FIG.
 図9は、ホスト10(図1)からの書込要求を受信した際の、記憶装置20の処理手順を示すフローチャートである。記憶装置20は、ホスト10からの書込要求を受信する毎に、図9の処理を行う。
 図9のステップS201~S213は、図8のステップS151~S163と同様である。ステップS201~S213においては、ホスト10から書込要求のあったデータが、ステップS151~S163の格納対象データに相当する。
 書込要求のあったデータが、新規のデータである場合、すなわち、書込要求に含まれる先頭アドレスおよびデータ長の示す領域が、ハードディスク210上の空き領域である場合について説明する。この場合は、アクセス処理部240は、ハードディスク210上のその空き領域を、書込要求のあったデータを格納する領域として確保した後、図9の処理を行う。
 ホスト10から、解放要求(データ長が0の書込要求)を受信した場合は、アクセス処理部240は、DRAMキャッシュ230上、SSDキャッシュ220上、ハードディスク210上の各々において、該当する領域を解放し、データ情報記憶部280の記憶するSSDキャッシュ管理テーブルおよびDRAMキャッシュ管理テーブルを更新する。
FIG. 9 is a flowchart showing a processing procedure of the storage device 20 when a write request from the host 10 (FIG. 1) is received. Each time the storage device 20 receives a write request from the host 10, the storage device 20 performs the processing of FIG.
Steps S201 to S213 in FIG. 9 are the same as steps S151 to S163 in FIG. In steps S201 to S213, the data requested to be written by the host 10 corresponds to the storage target data in steps S151 to S163.
The case where the data requested to be written is new data, that is, the case where the area indicated by the head address and the data length included in the write request is an empty area on the hard disk 210 will be described. In this case, the access processing unit 240 secures the free area on the hard disk 210 as an area for storing data requested to be written, and then performs the process of FIG.
When a release request (write request with a data length of 0) is received from the host 10, the access processing unit 240 releases the corresponding area in each of the DRAM cache 230, the SSD cache 220, and the hard disk 210. Then, the SSD cache management table and the DRAM cache management table stored in the data information storage unit 280 are updated.
 図10および図11は、ステップS162(図8)およびステップS212(図9)における、解放対象として選択されたデータ(以下、図9および10の説明において、「被選択データ(DRAM)」と称する)の各々について、必要に応じてSSDキャッシュ220、または、ハードディスク210に格納する処理手順を示すフローチャートである。
 図10および11の処理において、アクセス処理部240は、まず、被選択データ(DRAM)の各々に対して、アクセス頻度の高い順に処理を行うループL1を開始する。アクセス頻度の高い順に処理を行う理由は、SSDキャッシュに書き込んだ被選択データ(DRAM)が、他の被選択データ(DRAM)に対する処理を行う際に解放される(スワップアウトする)無駄を無くすためである(以上、ステップS301)。
10 and 11 are data selected as a release target in step S162 (FIG. 8) and step S212 (FIG. 9) (hereinafter referred to as “selected data (DRAM)” in the description of FIGS. 9 and 10). ) Is a flowchart showing a processing procedure for storing in the SSD cache 220 or the hard disk 210 as necessary.
10 and 11, the access processing unit 240 first starts a loop L1 in which processing is performed on each of the selected data (DRAM) in descending order of access frequency. The reason for processing in the order of the high access frequency is to eliminate the waste of the selected data (DRAM) written in the SSD cache being freed (swapped out) when processing the other selected data (DRAM). (Step S301).
 アクセス処理部240は、SSDキャッシュ220上の空き容量およびSSDキャッシュ220上の各データの解放優先順位に基づいて、被選択データ(DRAM)をSSDキャッシュ220に格納するか否かを判定する。
 具体的には、アクセス処理部240は、まず、SSDキャッシュ220上の空き容量を取得する。例えば、アクセス処理部240は、データ情報記憶部280の記憶するSSDキャッシュ管理テーブルのデータ長欄の値を合計し、得られた値をSSDキャッシュ220の全体容量から減算して空き容量を算出する(以上、ステップS302)。
 次に、アクセス処理部240は、格納対象データのデータ長と、SSDキャッシュ220の空き容量とを比較して、格納対象データを格納可能な空き容量がSSDキャッシュ220上に存在するか否かを判定する(ステップS303)。アクセス処理部240は、格納対象データを格納可能な空き容量がSSDキャッシュ220上に存在すると判定した場合(ステップS303:YES)、ステップS331に進む。
The access processing unit 240 determines whether to store the selected data (DRAM) in the SSD cache 220 based on the free space on the SSD cache 220 and the release priority of each data on the SSD cache 220.
Specifically, the access processing unit 240 first acquires the free capacity on the SSD cache 220. For example, the access processing unit 240 totals the values in the data length column of the SSD cache management table stored in the data information storage unit 280 and subtracts the obtained value from the total capacity of the SSD cache 220 to calculate the free capacity. (Step S302).
Next, the access processing unit 240 compares the data length of the storage target data with the free capacity of the SSD cache 220 to determine whether or not the free capacity capable of storing the storage target data exists on the SSD cache 220. Determination is made (step S303). If the access processing unit 240 determines that there is free space in the SSD cache 220 where the storage target data can be stored (step S303: YES), the access processing unit 240 proceeds to step S331.
 一方、ステップS303にて、格納対象データを格納可能な空き容量がSSDキャッシュ220上に存在しないと判定した場合(ステップS303:NO)、アクセス処理部240は、解放優先順位決定部270に対して、解放優先順位の決定を要求する。そして、解放優先順位決定部270は、ループL1にて処理対象となっている被選択データ(DRAM)(以下、図9および10の説明において、「ループL1データ」と称する)と、SSDキャッシュ220上の各データについて、解放優先順位を決定し、アクセス処理部240に出力する。解放優先順位の決定方法については後述する。
 解放優先順位決定部270が、SSDキャッシュ220上の各データについて、ループL1の開始前に解放優先順位を算出しておくようにしてもよい。これにより、解放優先順位を繰り返し算出する必要が無くなり、計算量を削減できる(以上、ステップS311)。
On the other hand, if it is determined in step S303 that there is no free space in the SSD cache 220 that can store the storage target data (step S303: NO), the access processing unit 240 determines that the release priority order determining unit 270 , Request release priority determination. The release priority order determination unit 270 then selects data (DRAM) to be processed in the loop L1 (hereinafter referred to as “loop L1 data” in the description of FIGS. 9 and 10) and the SSD cache 220. For each of the above data, the release priority order is determined and output to the access processing unit 240. A method for determining the release priority will be described later.
The release priority order determination unit 270 may calculate the release priority order for each data on the SSD cache 220 before the start of the loop L1. As a result, it is not necessary to repeatedly calculate the release priority, and the amount of calculation can be reduced (step S311).
 解放優先順位の出力を受けたアクセス処理部240は、SSDキャッシュ220上の各データおよびループL1データの中から、解放対象とするデータを選択する(ステップS312)。
 ステップS312の処理は、具体的には以下のとおりである。
 まず、アクセス処理部240は、SSDキャッシュ220上のデータのうち、ループL1データよりも解放優先順位の高いデータのデータ長を合計する(ステップS401)。
 アクセス処理部240は、合計したデータ長が、ループL1データのデータ長以下か否かを判定する(ステップS402)。アクセス処理部240は、合計したデータ長が、ループL1データのデータ長以下と判定した場合は、ループL1データを解放対象とするデータとして選択する(ステップS411)。一方、アクセス処理部240は、合計したデータ長が、ステップS402にてループL1データのデータ長よりも大きいと判定した場合は、SSDキャッシュ上のデータを、解放優先順位の高い順に、データ長の合計値+SDDキャッシュ上の空き容量が、ループL1データのデータ長よりも長く(大きく)なるまで選択する(ステップS412)。以上で、ステップS312の処理を終了し、ステップS313に進む。
The access processing unit 240 that has received the output of the release priority order selects data to be released from the data on the SSD cache 220 and the loop L1 data (step S312).
Specifically, the process of step S312 is as follows.
First, the access processing unit 240 totals the data lengths of data having a higher release priority than the loop L1 data among the data on the SSD cache 220 (step S401).
The access processing unit 240 determines whether the total data length is less than or equal to the data length of the loop L1 data (step S402). When determining that the total data length is equal to or less than the data length of the loop L1 data, the access processing unit 240 selects the loop L1 data as data to be released (step S411). On the other hand, if the access processing unit 240 determines that the total data length is greater than the data length of the loop L1 data in step S402, the access processing unit 240 converts the data on the SSD cache to the data length in descending order of release priority. Selection is made until the total value + the free space on the SDD cache becomes longer (larger) than the data length of the loop L1 data (step S412). Above, the process of step S312 is complete | finished and it progresses to step S313.
 次に、アクセス処理部240は、ステップS312にて選択したデータ(以下、図10および11の説明において、「被選択データ(SSD)」と称する)の各々に対する処理を行うループL2を開始する(ステップS313)。このループでは、アクセス処理部240は、被選択データ(SSD)のうち、ホスト10からの書込要求によりデータが更新されているもの(すなわち、Dirtyフラグがセットされている被選択データ(SSD))のみをハードディスク210に書き込む。
 ループL2の処理において、まず、アクセス処理部240は、データ情報記憶部280の記憶するSSDキャッシュ管理テーブルまたはDRAMキャッシュ管理テーブルを参照して、ループL2にて処理対象となっている被選択データ(SSD)(以下、図10および11の説明において、「ループL2データ」と称する)のDirtyフラグの値を読み出す(ステップS314)。次に、アクセス処理部240は、読み出したDirtyフラグの値に基づき、Dirtyフラグがセットされているか否か(すなわち、読み出した値が「1」であるか否か)を判定する(ステップS315)。アクセス処理部240は、Dirtyフラグがセットされていないと判定した場合(ステップS315:NO)、ステップS322に進む。
Next, the access processing unit 240 starts a loop L2 for performing processing on each of the data selected in step S312 (hereinafter referred to as “selected data (SSD)” in the description of FIGS. 10 and 11) ( Step S313). In this loop, the access processing unit 240 updates the data selected by the write request from the host 10 among the selected data (SSD) (that is, the selected data (SSD) in which the Dirty flag is set). ) Only to the hard disk 210.
In the process of the loop L2, first, the access processing unit 240 refers to the SSD cache management table or the DRAM cache management table stored in the data information storage unit 280, and selects the selected data (the processing target in the loop L2 ( SSD) (hereinafter, referred to as “loop L2 data” in the description of FIGS. 10 and 11), the value of the Dirty flag is read (step S314). Next, the access processing unit 240 determines whether or not the Dirty flag is set (that is, whether or not the read value is “1”) based on the value of the read Dirty flag (step S315). . If the access processing unit 240 determines that the Dirty flag is not set (step S315: NO), the access processing unit 240 proceeds to step S322.
 一方、ステップS315にて、アクセス処理部240は、Dirtyフラグがセットされていると判定した場合(ステップS315:YES)、ループL2データをハードディスク210に書き込む、すなわち、ハードディスク210上のループL2データを更新する(ステップS321)。
 アクセス処理部240は、全ての被選択データ(SSD)に対してループL2の処理を完了したか否かを判定する。アクセス処理部240は、未処理の被選択データ(SSD)が存在すると判定した場合は、ステップS313に戻り、ループL2の処理を継続する。一方、アクセス処理部240は、全ての被選択データ(SSD)に対してループL2の処理を完了したと判定した場合は、ループL2を終了する(以上、ステップS322)。
On the other hand, if the access processing unit 240 determines in step S315 that the Dirty flag is set (step S315: YES), the loop L2 data is written to the hard disk 210, that is, the loop L2 data on the hard disk 210 is written. Update (step S321).
The access processing unit 240 determines whether or not the processing of the loop L2 has been completed for all the selected data (SSD). If the access processing unit 240 determines that there is unprocessed selected data (SSD), the access processing unit 240 returns to step S313 and continues the processing of the loop L2. On the other hand, if the access processing unit 240 determines that the processing of the loop L2 has been completed for all the selected data (SSD), the access processing unit 240 ends the loop L2 (step S322).
 次に、アクセス処理部240は、ステップS312にて選択したデータが、SSDキャッシュ上のデータか否かを判定する(ステップS323)。アクセス処理部240は、ステップS312にて選択したデータが、SSDキャッシュ上のデータではない(すなわち、ループL1データを選択した)と判定した場合(ステップS323:YES)、ステップS333に進む。この場合は、ループL1データのSSDキャッシュ220への書き込みは行われない。
 一方、ステップS323にて、ステップS312にて選択したデータが、SSDキャッシュ上のデータであると判定した場合(ステップS323:YES)、アクセス処理部240は、ステップS312にて選択した各データをSSDキャッシュから解放する。さらに、アクセス処理部240は、SSDキャッシュ管理テーブルを更新する、すなわちSSDキャッシュから解放したデータの情報をSSDキャッシュ管理テーブルから削除する(ステップS331)。
Next, the access processing unit 240 determines whether the data selected in step S312 is data on the SSD cache (step S323). If the access processing unit 240 determines that the data selected in step S312 is not the data on the SSD cache (that is, the loop L1 data is selected) (step S323: YES), the access processing unit 240 proceeds to step S333. In this case, the loop L1 data is not written to the SSD cache 220.
On the other hand, when it is determined in step S323 that the data selected in step S312 is data on the SSD cache (step S323: YES), the access processing unit 240 converts each data selected in step S312 to the SSD. Release from cache. Further, the access processing unit 240 updates the SSD cache management table, that is, deletes information on data released from the SSD cache from the SSD cache management table (step S331).
 そして、アクセス処理部240は、ループL1データ、すなわち、DRAMキャッシュ230から解放されるデータを、SSDキャッシュ220に書き込む。さらに、アクセス処理部240は、SSDキャッシュ管理テーブルを更新する、すなわち、SSDキャッシュ220に書き込んだデータに対応する行を、SSDキャッシュ管理テーブルに設け、各項目の情報を書き込む(以上、ステップS332)。
 アクセス処理部240は、全ての被選択データ(DRAM)に対してループL1の処理を完了したか否かを判定する。アクセス処理部240は、未処理の被選択データ(DRAM)が存在すると判定した場合は、ステップS301に戻り、ループL1の処理を継続する。一方、アクセス処理部240は、全ての被選択データ(DRAM)に対してループL1の処理を完了したと判定した場合は、ループL1を終了する(以上、ステップS333)。
Then, the access processing unit 240 writes the loop L1 data, that is, the data released from the DRAM cache 230 to the SSD cache 220. Further, the access processing unit 240 updates the SSD cache management table, that is, provides a row corresponding to the data written in the SSD cache 220 in the SSD cache management table, and writes the information of each item (step S332). .
The access processing unit 240 determines whether or not the processing of the loop L1 has been completed for all the selected data (DRAM). If the access processing unit 240 determines that there is unprocessed selected data (DRAM), the access processing unit 240 returns to step S301 and continues the processing of the loop L1. On the other hand, if the access processing unit 240 determines that the processing of the loop L1 has been completed for all the selected data (DRAM), the access processing unit 240 ends the loop L1 (step S333).
 アクセス処理部240は、全ての被選択データ(DRAM)をDRAMキャッシュ230から解放する。さらに、アクセス処理部240は、DRAMキャッシュ管理テーブルを更新する、すなわちDRAMキャッシュから解放したデータの情報をDRAMキャッシュ管理テーブルから削除する(以上、ステップS334)。その後、図10および11の処理を終了する。 The access processing unit 240 releases all selected data (DRAM) from the DRAM cache 230. Further, the access processing unit 240 updates the DRAM cache management table, that is, deletes information on the data released from the DRAM cache from the DRAM cache management table (step S334). Thereafter, the processes in FIGS. 10 and 11 are terminated.
 ステップS311において、解放優先順位決定部270が、解放優先順位を決定する方法について説明する。解放優先順位決定部270は、データ長の長いデータほど解放優先順位を高くする。
 例えば、解放優先順位決定部270は、解放優先順位決定対象の各データについて、データ長の長い順に解放優先順位を付す。後述するように、アクセス処理部240は、解放優先順位の高いデータを優先的にSSDキャッシュ220から解放するので、データ長の短いデータがSSDキャッシュ220に残りやすくなる。データ長の短いデータは、アクセスに要する時間全体に対するアクセス初期の遅延時間(レイテンシ)の割合が大きいデータである。すなわち、データ長の短いデータは、そのデータがSSDキャッシュ220から読み出される場合にデータ読み出しに要する時間に対する、そのデータがハードディスク210から読み出される場合にデータ読み出しに要する時間の比が大きい。この点において、データ長の短いデータは、SSDキャッシュ220上でヒットしなかった場合のコストが大きいデータである。このようなデータがSSDキャッシュ220に記憶されることで、記憶装置20がホスト10からの読出要求を受信してからそのデータ全て送信するまでの応答時間について、キャッシュ利用による短縮率が高まることが期待できる。
 このように、ハードディスク210およびSSDキャッシュ220の、記憶媒体のアクセス性能特性に応じて適切な置換を行える。
A method in which the release priority determining unit 270 determines the release priority in step S311 will be described. The release priority order determination unit 270 increases the release priority order for data having a longer data length.
For example, the release priority determining unit 270 assigns release priorities to the data for which the release priority is to be determined in order of increasing data length. As will be described later, since the access processing unit 240 preferentially releases data with a high release priority from the SSD cache 220, data with a short data length tends to remain in the SSD cache 220. Data with a short data length is data in which the ratio of delay time (latency) at the initial stage of access to the entire time required for access is large. That is, data with a short data length has a large ratio of the time required to read data when the data is read from the hard disk 210 to the time required to read the data when the data is read from the SSD cache 220. In this regard, data with a short data length is data that has a large cost when no hit is made on the SSD cache 220. By storing such data in the SSD cache 220, the reduction rate due to the use of the cache increases in the response time from when the storage device 20 receives the read request from the host 10 to when all the data is transmitted. I can expect.
As described above, the hard disk 210 and the SSD cache 220 can be appropriately replaced according to the access performance characteristics of the storage medium.
 解放優先順位決定部270が解放優先順位を決定する方法は、上述した、データ長の長い順に解放優先順位を付す方法に限らない。
 例えば、解放優先順位決定部270が、式(1)に基づいて、解放優先指標値Rを算出し、解放優先指標値Rの小さい順に解放優先順位を付すようにしてもよい。
 R = F/L  ・・・  式(1)
 ここで、“F”は、解放優先順位決定対象のデータに対するアクセス頻度を示す。“L”は、そのデータのデータ長を示す。
 このように優先順位を決定することにより、データ長の長いデータほど高い解放優先順位が付されるので、データ長の長い順に解放優先順位を付す場合と同様、SSDキャッシュ220上でヒットしなかった場合のコストが大きいデータをSSDキャッシュ220に残せる。加えて、このように優先順位を決定する場合、アクセス頻度の低いデータほど高い解放優先順位が付されるので、アクセス頻度の高いデータをSSDキャッシュ220に残せる。これにより、ヒット率の向上が期待できる。
 このように、ハードディスク210およびSSDキャッシュ220の、記憶媒体アクセス性能特性に応じて適切な置換を行いつつ、ヒット率の向上を図れる。
The method by which the release priority order determination unit 270 determines the release priority order is not limited to the above-described method of assigning the release priority order in descending order of the data length.
For example, the release priority order determination unit 270 may calculate the release priority index value R based on the formula (1) and assign the release priority order in ascending order of the release priority index value R.
R = F / L ... Formula (1)
Here, “F” indicates the access frequency to the data for which the release priority order is determined. “L” indicates the data length of the data.
By determining the priority order in this way, data with a longer data length is given a higher release priority order. Therefore, as with the case where the release priority order is assigned in order of the longer data length, no hit was made on the SSD cache 220. In this case, data with a large cost can be left in the SSD cache 220. In addition, when the priority order is determined in this way, data with a lower access frequency is given a higher release priority order, so that data with a higher access frequency can remain in the SSD cache 220. As a result, an improvement in hit rate can be expected.
As described above, the hit rate can be improved while performing appropriate replacement of the hard disk 210 and the SSD cache 220 in accordance with the storage medium access performance characteristics.
 解放優先順位決定部270が、式(2)に基づいて、解放優先指標値Qを算出し、解放優先指標値Qの小さい順に解放優先順位を付すようにしてもよい。
 Q = R/L  ・・・  式(2)
 ここで、“R”は、解放優先順位決定対象のデータの、LRU置換の優先順位、すなわち、最終アクセス時刻の古い順を示す。“L”は、そのデータのデータ長を示す。
 データ毎のアクセス頻度がほぼ固定されている場合、LRU置換の優先順位が高いほどアクセス頻度が低い。従って、解放優先指標値Qの小さい順に解放優先順位を付する場合は、式(1)に基づいて解放優先順位を付す上記の場合と同様、SSDキャッシュ220上でヒットしなかった場合のコストが大きいデータをSSDキャッシュ220に残せる。加えて、解放優先指標値Qの小さい順に解放優先順位を付する場合は、アクセス頻度の低いデータほど高い解放優先順位が付されるので、アクセス頻度の高いデータをSSDキャッシュ220に残せる。
 このように、ハードディスク210およびSSDキャッシュ220の、記憶媒体のアクセス性能特性に応じて適切な置換を行いつつ、ヒット率の向上を図れる。
The release priority order determination unit 270 may calculate the release priority index value Q based on the formula (2), and assign the release priority order in ascending order of the release priority index value Q.
Q = R / L (2)
Here, “R” indicates the priority of the LRU replacement of the data for which the release priority is to be determined, that is, the oldest access time. “L” indicates the data length of the data.
When the access frequency for each data is almost fixed, the higher the priority of LRU replacement, the lower the access frequency. Therefore, when the release priority is assigned in ascending order of the release priority index value Q, the cost of not hitting on the SSD cache 220 is the same as in the above case where the release priority is assigned based on the formula (1). Large data can remain in the SSD cache 220. In addition, when assigning release priorities in ascending order of the release priority index value Q, data with lower access frequency is given higher release priorities, so that data with higher access frequency can remain in the SSD cache 220.
As described above, the hit rate can be improved while appropriately replacing the hard disk 210 and the SSD cache 220 according to the access performance characteristics of the storage medium.
 解放優先順位決定部270が、性能情報記憶部260の記憶する、ハードディスク210およびSSDキャッシュ220の、遅延時間およびアクセス速度を用いて解放優先指標値を算出するようにしてもよい。
 例えば、まず、解放優先順位を決定する対象データのデータ長を“L”とする。そのデータに対するアクセス頻度を“F”とする。ハードディスク210のデータ読出速度および書込速度は共に“s”であるとする。SSDキャッシュ220のデータ読出速度および書込速度は共に“s”であるとする。ハードディスク210の遅延時間は読み書き共に“a”であるとする。SSDキャッシュ220の遅延時間は0である(すなわち、遅延時間はない)とする。
The release priority order determination unit 270 may calculate the release priority index value using the delay time and access speed of the hard disk 210 and the SSD cache 220 stored in the performance information storage unit 260.
For example, first, the data length of the target data for determining the release priority is set to “L”. The access frequency for the data is “F”. It is assumed that the data reading speed and writing speed of the hard disk 210 are both “s h ”. It is assumed that the data read speed and write speed of the SSD cache 220 are both “s s ”. It is assumed that the delay time of the hard disk 210 is “a h ” for both reading and writing. Assume that the delay time of the SSD cache 220 is 0 (that is, there is no delay time).
 この場合、データがSSDキャッシュ220から読み出される際に、読出要求を受けてから全データを読み終わるまでの読出時間は、式(3)にて算出される。
 L/s ・・・ 式(3)
 データがハードディスク210から読み出される際に、読出要求を受けてから全データを読み終わるまでの読出時間は、式(4)にて算出される。
 a + L/s ・・・ 式(4)
 したがって、データがSSDキャッシュ220から読み出される場合の読出時間を、ハードディスク210から読み出される場合の読出時間で除した比は、式(5)のようになる。
 (L/s)/(a + L/s)  ・・・  式(5)
 この値が小さいデータほど、ハードディスク210から読み出される場合に対する、SSDキャッシュ220から読み出される場合の、読出時間の短縮率が大きい。この点で、式(5)により算出される値が小さいデータほど、SSDキャッシュ220上でヒットしなかった場合のコストが大きい。
In this case, when the data is read from the SSD cache 220, the read time from when the read request is received until all the data is read is calculated by Expression (3).
L / s s Formula (3)
When data is read from the hard disk 210, the read time from receipt of a read request until reading of all data is calculated by equation (4).
a h + L / s h ... Formula (4)
Therefore, the ratio obtained by dividing the read time when data is read from the SSD cache 220 by the read time when data is read from the hard disk 210 is expressed by Equation (5).
(L / s s ) / (a h + L / s h ) (5)
Data with a smaller value has a higher read time reduction rate when read from the SSD cache 220 than when read from the hard disk 210. In this regard, the smaller the value calculated by the equation (5), the higher the cost when no hit is made on the SSD cache 220.
 そこで、解放優先順位決定部270が、式(5)にアクセス頻度Fを乗じて得られる、式(6)の解放優先指標値Pを算出し、解放優先指標値Pの小さい順に解放優先順位を付すようにしてもよい。
 P = ((L/s)/(a + L/s))F  ・・・  式(6)
 このように優先順位を決定することにより、SSDキャッシュ220上でヒットしなかった場合のコストが大きいデータをSSDキャッシュ220に残せる。加えて、解放優先指標値Pの小さい順に解放優先順位を付する場合は、アクセス頻度の低いデータほど高い解放優先順位が付されるので、アクセス頻度の高いデータをSSDキャッシュ220に残せる。
Therefore, the release priority order determination unit 270 calculates the release priority index value P of Expression (6) obtained by multiplying Expression (5) by the access frequency F, and sets the release priority order in ascending order of the release priority index value P. You may make it attach.
P = ((L / s s ) / (a h + L / s h )) F (6)
By determining the priority order in this way, data having a large cost when no hit is made on the SSD cache 220 can be left in the SSD cache 220. In addition, when assigning release priorities in ascending order of the release priority index value P, data with lower access frequency is given higher release priorities, so that data with higher access frequency can remain in the SSD cache 220.
 このように、ハードディスク210およびSSDキャッシュ220の、記憶媒体のアクセス性能特性に応じて適切な置換を行いつつ、ヒット率の向上を図れる。
 式(6)は、式(7)のように変形できる。
 P = ((1/s)/(a/L + 1/s))F  ・・・  式(7)
 したがって、Lの値が大きいほど解放優先指標値Pの値は小さくなる。すなわち、データ長の長いデータほど解放優先順位が高くなる。
As described above, the hit rate can be improved while appropriately replacing the hard disk 210 and the SSD cache 220 according to the access performance characteristics of the storage medium.
Equation (6) can be transformed into Equation (7).
P = ((1 / s s ) / (a h / L + 1 / s h )) F (7)
Therefore, the release priority index value P decreases as the value of L increases. That is, the longer the data length, the higher the release priority.
 解放優先順位決定部270が解放優先順位を決定するタイミングは、ステップS311が実行されるタイミングに限らない。例えば、解放優先順位決定部270が、定期的に各データの解放優先順位を決定し、アクセス処理部240が、その解放優先順位を用いるようにしてもよい。この場合、アクセス処理部240が、ステップ311にて解放優先順位決定部270の解放優先順位決定を待つ必要がなく、処理時間の短縮を図れる。 The timing at which the release priority determining unit 270 determines the release priority is not limited to the timing at which step S311 is executed. For example, the release priority determination unit 270 may periodically determine the release priority of each data, and the access processing unit 240 may use the release priority. In this case, it is not necessary for the access processing unit 240 to wait for the release priority determination by the release priority determination unit 270 in step 311 and the processing time can be shortened.
 次に、図12~図21を参照して、記憶装置20の動作例について説明する。
 以下では、ハードディスク210はブロックに分割され、ブロック毎にアドレスが0から順番に割り当てられているとする。ハードディスク210は、1つのデータを連続するブロックに格納するとする。書き込まれるデータ量に対してハードディスクの容量は充分に大きく、フラグメントの問題は生じないとする。
 ハードディスク210の、不連続のブロックにアクセスする際の遅延時間は読出、書込共に20ms(ミリセカンド)であるとする。読出を開始した後、連続のブロックにアクセスする際の読出速度は、1秒あたり50000ブロックであるとする。
Next, an operation example of the storage device 20 will be described with reference to FIGS.
In the following, it is assumed that the hard disk 210 is divided into blocks and addresses are assigned in order from 0 for each block. The hard disk 210 is assumed to store one piece of data in consecutive blocks. Assume that the capacity of the hard disk is sufficiently large with respect to the amount of data to be written, and the problem of fragmentation does not occur.
Assume that the delay time when accessing discontinuous blocks of the hard disk 210 is 20 ms (milliseconds) for both reading and writing. It is assumed that the reading speed when accessing consecutive blocks after starting reading is 50000 blocks per second.
 SSDキャッシュ220は、ハードディスク210と同サイズのブロックに分割され、ブロック数が10000であるとする。
 SSDキャッシュ220の、不連続のブロックにアクセスする際の遅延時間は、読出、書込によらず0msであるとする。したがって、フラグメントによる読出または書込の遅延は生じないとする。読出を開始した後、連続のブロックにアクセスする際の読出速度は、1秒あたり100000ブロックであるとする。
The SSD cache 220 is divided into blocks of the same size as the hard disk 210, and the number of blocks is 10,000.
It is assumed that the delay time when accessing discontinuous blocks in the SSD cache 220 is 0 ms regardless of reading or writing. Therefore, it is assumed that there is no delay in reading or writing due to fragments. Assume that the reading speed when accessing consecutive blocks after starting reading is 100,000 blocks per second.
 DRAMキャッシュ230は、ハードディスク210と同サイズのブロックに分割され、ブロック数が1000であるとする。DRAMキャッシュ230上の置換するデータの決定ポリシーとしてLRUを使用する。
 記憶装置20全体のアドレス空間は、ハードディスク210のブロックのアドレス空間に一致するとする。
The DRAM cache 230 is divided into blocks of the same size as the hard disk 210 and the number of blocks is 1000. LRU is used as a policy for determining data to be replaced on the DRAM cache 230.
Assume that the address space of the entire storage device 20 matches the address space of the block of the hard disk 210.
 図12は、後述する一連の処理の開始時(以下、「処理開始時」と称する)において、DRAMキャッシュ管理テーブルが格納する情報を示す図である。説明を簡単にするため、1つのデータは、DRAMキャッシュ230上の連続するブロックに格納され、先頭アドレスおよびデータ長にて領域が指定されるとする。前述したように、DRAMキャッシュ230は、遅延時間(レイテンシ)が0であるため、1つのデータがDRAMキャッシュ230上の不連続のブロックに格納される場合でも、記憶装置20の動作タイミングは以下の説明と同様である。 FIG. 12 is a diagram showing information stored in the DRAM cache management table at the start of a series of processes to be described later (hereinafter referred to as “process start time”). In order to simplify the description, it is assumed that one piece of data is stored in successive blocks on the DRAM cache 230, and an area is designated by a head address and a data length. As described above, since the delay time (latency) of the DRAM cache 230 is 0, even when one piece of data is stored in discontinuous blocks on the DRAM cache 230, the operation timing of the storage device 20 is as follows. It is the same as the description.
 以下では、図12の状態におけるDRAMキャッシュ230上の領域のうち、先頭アドレス「910」から10ブロックの領域を領域「A」と称する。先頭アドレス「880」から30ブロックの領域を領域「B」と称する。先頭アドレス「380」から500ブロックの領域を領域「C」と称する。図12の状態における、使用中のブロック数は、領域Aの先頭アドレス「910」にデータ長「10」を加えた920ブロックである。したがって、空き容量は、DRAMキャッシュ230の容量である1000ブロックから920ブロックを減じた80ブロックである。
 図12に示されるデータのうち、領域Aのデータが、最も解放優先順位が高く、すなわち、アクセス頻度が低く、次いで、領域Bのデータ、領域Cのデータ、・・・の順に解放優先順位が高いとする。
In the following, among the areas on the DRAM cache 230 in the state of FIG. 12, the area of 10 blocks from the start address “910” is referred to as an area “A”. An area of 30 blocks from the start address “880” is referred to as an area “B”. An area of 500 blocks from the start address “380” is referred to as an area “C”. The number of blocks in use in the state of FIG. 12 is 920 blocks obtained by adding the data length “10” to the start address “910” of the area A. Therefore, the free capacity is 80 blocks obtained by subtracting 920 blocks from 1000 blocks, which is the capacity of the DRAM cache 230.
Of the data shown in FIG. 12, the data in the area A has the highest release priority, that is, the access frequency is low, and then the data in the area B, the data in the area C,. Suppose it is expensive.
 図13は処理開始時において、SSDキャッシュ管理テーブルが格納する情報を示す図である。DRAMキャッシュ230と同様、1つのデータは、データ情報記憶部280上の連続するブロックに格納され、先頭アドレスおよびデータ長にて領域が指定されるとする。DRAMキャッシュ230と同様、SSDキャッシュ220は、遅延時間(レイテンシ)が0であるため、1つのデータがSSDキャッシュ220上の不連続のブロックに格納される場合でも、記憶装置20の動作タイミングは以下の説明と同様である。
 以下では、図13の状態におけるSSDキャッシュ220上の各領域を、それぞれ符号にて示すように、領域「P」、領域「Q」、・・・、領域「U」と称する。図13の状態における、使用中のブロック数は、領域Uの先頭アドレス「9780」にデータ長「200」を加えた9980ブロックである。したがって、空き容量は、SSDキャッシュ220の容量である10000ブロックから9980ブロックを減じた20ブロックである。
 図13に示されるデータは、アクセス頻度の低い順、すなわち、領域Uのデータ、領域Tのデータ、・・・、領域Pのデータの順に解放優先順位が高い。
FIG. 13 is a diagram showing information stored in the SSD cache management table at the start of processing. As with the DRAM cache 230, one piece of data is stored in successive blocks on the data information storage unit 280, and an area is designated by a head address and a data length. Similar to the DRAM cache 230, the SSD cache 220 has a delay time (latency) of 0. Therefore, even when one piece of data is stored in a discontinuous block on the SSD cache 220, the operation timing of the storage device 20 is as follows. It is the same as that of description.
Hereinafter, the areas on the SSD cache 220 in the state of FIG. 13 are referred to as areas “P”, “Q”,. The number of blocks in use in the state of FIG. 13 is 9980 blocks obtained by adding the data length “200” to the start address “9780” of the area U. Therefore, the free capacity is 20 blocks obtained by subtracting 9980 blocks from 10,000 blocks, which is the capacity of the SSD cache 220.
The data shown in FIG. 13 has a high release priority in the order of low access frequency, that is, data in the region U, data in the region T,.
 図14は、ホスト10(図1)から記憶装置20に送信される一連の処理要求の例を示す図である。図14に示す矢印αの順に処理が行われる。図14に示す、読出要求T(符号Tを付した行に示す読出要求)は図13の状態におけるSSDキャッシュ220上の領域Tに格納されたデータの読出要求である。
 一方、読出要求X、Y、Zは、それぞれ、ハードディスク210上の領域X、Y、Zに格納されたデータの読出要求である。これらのデータは、図12の状態におけるDRAMキャッシュ230上および図13の状態におけるSSDキャッシュ220上には格納されておらず、ハードディスク210上に格納されている。
FIG. 14 is a diagram illustrating an example of a series of processing requests transmitted from the host 10 (FIG. 1) to the storage device 20. Processing is performed in the order of the arrow α shown in FIG. A read request T shown in FIG. 14 (read request shown in a row with a symbol T) is a read request for data stored in the area T on the SSD cache 220 in the state shown in FIG.
On the other hand, read requests X, Y, and Z are requests for reading data stored in areas X, Y, and Z on hard disk 210, respectively. These data are not stored on the DRAM cache 230 in the state of FIG. 12 or on the SSD cache 220 in the state of FIG. 13 but are stored on the hard disk 210.
 ホスト10から記憶装置20に対して読出要求Tが送信されると、アクセス処理部240は、まず、データ情報記憶部280上のDRAMキャッシュ管理テーブルを参照して、DRAMキャッシュ230に領域Tのデータが格納されているか否かを判定する。ここでは、DRAMキャッシュ230には、領域Tのデータは格納されていない(図12)。
 そこで、アクセス処理部240はデータ情報記憶部280上のSSDキャッシュ管理テーブルを参照して、SSDキャッシュ220に領域Tのデータが格納されているか否かを判定する。SSDキャッシュ220には、領域Tのデータが格納されている(図13)。そこで、アクセス処理部240は、領域TのデータをSSDキャッシュ220から読み出し、読み出したデータを、読出要求Tに対する結果として読出要求Tの送信元のホスト10に送信する。
When a read request T is transmitted from the host 10 to the storage device 20, the access processing unit 240 first refers to the DRAM cache management table on the data information storage unit 280 and stores data in the region T in the DRAM cache 230. Is stored. Here, the data of the region T is not stored in the DRAM cache 230 (FIG. 12).
Therefore, the access processing unit 240 refers to the SSD cache management table on the data information storage unit 280 and determines whether or not the data in the region T is stored in the SSD cache 220. The SSD cache 220 stores data of the area T (FIG. 13). Therefore, the access processing unit 240 reads the data in the region T from the SSD cache 220 and transmits the read data to the host 10 that is the transmission source of the read request T as a result of the read request T.
 その後、アクセス処理部240は、データ情報記憶部280の記憶するSSDキャッシュ管理テーブルに格納される領域Tのアクセス頻度を更新する。具体的には、アクセス処理部240は、領域Tのアクセス頻度「999」に1を加算して「1000」とする。
 図16は、読出要求Tに対する一連の処理を行った後のSSDキャッシュ管理テーブルが格納する情報を示す。
 処理開始時において、DRAMキャッシュ230の空き容量は80ブロックであるため(図12)、他のデータを解放せずに領域Tのデータ(80ブロック)をDRAMキャッシュ230に格納可能である。そこで、アクセス処理部240は、領域TのデータをDRAMキャッシュ230に書き込む。これにより、DRAMキャッシュ230の空き容量は0ブロックとなる。
 図15は、読出要求Tに対する一連の処理を行った後のDRAMキャッシュ管理テーブルが格納する情報を示す。
Thereafter, the access processing unit 240 updates the access frequency of the area T stored in the SSD cache management table stored in the data information storage unit 280. Specifically, the access processing unit 240 adds 1 to the access frequency “999” of the region T to obtain “1000”.
FIG. 16 shows information stored in the SSD cache management table after a series of processing for the read request T is performed.
Since the free capacity of the DRAM cache 230 is 80 blocks at the start of processing (FIG. 12), the data in the region T (80 blocks) can be stored in the DRAM cache 230 without releasing other data. Therefore, the access processing unit 240 writes the data in the area T into the DRAM cache 230. As a result, the free capacity of the DRAM cache 230 becomes 0 blocks.
FIG. 15 shows information stored in the DRAM cache management table after a series of processes for the read request T is performed.
 読出要求Tに続いて、ホスト10から記憶装置20に対して読出要求Xが送信されると、アクセス処理部240はDRAMキャッシュ230に領域Xのデータが格納されているか否かを判定する。ここでは、DRAMキャッシュ230には領域Xのデータが格納されていない(図15)。
 そこで、アクセス処理部240は、SSDキャッシュ220に領域Xのデータが格納されているか否かを判定する。ここでは、SSDキャッシュ220上に領域Xのデータは格納されていない(図16)。
 そこで、アクセス処理部240は、ハードディスク210から領域Xのデータを読み出し、読み出したデータを、読出要求Xに対する結果として読出要求Xの送信元のホスト10に送信する。
When a read request X is transmitted from the host 10 to the storage device 20 following the read request T, the access processing unit 240 determines whether or not the data in the area X is stored in the DRAM cache 230. Here, the data of the area X is not stored in the DRAM cache 230 (FIG. 15).
Therefore, the access processing unit 240 determines whether or not the data of the area X is stored in the SSD cache 220. Here, the data of the area X is not stored on the SSD cache 220 (FIG. 16).
Therefore, the access processing unit 240 reads the data in the area X from the hard disk 210 and transmits the read data to the host 10 that is the transmission source of the read request X as a result of the read request X.
 その後、アクセス処理部240は、領域XのデータをDRAMキャッシュ230に格納する。DRAMキャッシュ230の空き容量は0ブロックであるため(図15)、そのままでは、領域XのデータをDRAMキャッシュ230に格納できない。そこで、アクセス処理部240は、DRAMキャッシュ230上の領域のうち、解放優先順位が最も高い領域Aのデータを、DRAMキャッシュ230上から解放し、領域Xのデータを書き込む。
 この際、アクセス処理部240は、解放される領域Aのデータを、SSDキャッシュ220に書き込むか否かを判定する。データ情報記憶部280上のSSDキャッシュ管理テーブルを参照すると、SSDキャッシュ220の空き容量は、20ブロックであり(図16)、他のデータを解放せずに領域Aのデータ(10ブロック)を格納可能である。そこで、アクセス処理部240は、領域AのデータをSSDキャッシュ220に書き込む。これによりSSDキャッシュ220の空き容量は10ブロックとなる。
 図17は、読出要求Xに対する一連の処理を行った後のDRAMキャッシュ管理テーブルが格納する情報を示す。図18は、読出要求Xに対する一連の処理を行った後のSSDキャッシュ管理テーブルが格納する情報を示す。
Thereafter, the access processing unit 240 stores the data of the area X in the DRAM cache 230. Since the free capacity of the DRAM cache 230 is 0 block (FIG. 15), the data in the area X cannot be stored in the DRAM cache 230 as it is. Therefore, the access processing unit 240 releases the data of the area A having the highest release priority among the areas on the DRAM cache 230 from the DRAM cache 230 and writes the data of the area X.
At this time, the access processing unit 240 determines whether to write the data of the area A to be released to the SSD cache 220. Referring to the SSD cache management table on the data information storage unit 280, the free space of the SSD cache 220 is 20 blocks (FIG. 16), and the data in the area A (10 blocks) is stored without releasing other data. Is possible. Therefore, the access processing unit 240 writes the data of the area A into the SSD cache 220. As a result, the free space of the SSD cache 220 becomes 10 blocks.
FIG. 17 shows information stored in the DRAM cache management table after a series of processing for the read request X is performed. FIG. 18 shows information stored in the SSD cache management table after a series of processing for the read request X is performed.
 読出要求Xに続いて、ホスト10から読出要求Yが送信されると、アクセス処理部240は、DRAMキャッシュ230に領域Yのデータが格納されているか否かを判定する。DRAMキャッシュ230には領域Yのデータが格納されていない(図17)。
 そこで、アクセス処理部240は、SSDキャッシュ220に領域Yのデータが格納されているか否かを判定する。ここでは、SSDキャッシュ220上に領域Yのデータは格納されていない(図18)。
When a read request Y is transmitted from the host 10 following the read request X, the access processing unit 240 determines whether data in the area Y is stored in the DRAM cache 230. The DRAM cache 230 stores no data in the area Y (FIG. 17).
Therefore, the access processing unit 240 determines whether or not the data of the area Y is stored in the SSD cache 220. Here, the data of area Y is not stored on the SSD cache 220 (FIG. 18).
 そこで、アクセス処理部240は、ハードディスク210から領域Yのデータを読み出し、読み出したデータを、読出要求Yに対する結果として読出要求Yの送信元のホスト10に送信する。
 その後、アクセス処理部240は、領域YのデータをDRAMキャッシュ230に格納する。DRAMキャッシュ230の空き容量は0ブロックであるため(図17)、そのままでは、領域XのデータをDRAMキャッシュ230に格納できない。そこで、アクセス処理部240は、DRAMキャッシュ230上の領域のうち、データ置換の優先度が最も高い領域Bのデータを、DRAMキャッシュ230上から解放し、領域Yのデータを書き込む。
Therefore, the access processing unit 240 reads the data in the area Y from the hard disk 210 and transmits the read data to the host 10 that is the transmission source of the read request Y as a result of the read request Y.
Thereafter, the access processing unit 240 stores the data of the area Y in the DRAM cache 230. Since the free capacity of the DRAM cache 230 is 0 block (FIG. 17), the data in the area X cannot be stored in the DRAM cache 230 as it is. Therefore, the access processing unit 240 releases the data in the area B having the highest data replacement priority from the area on the DRAM cache 230 from the DRAM cache 230 and writes the data in the area Y.
 この際、アクセス処理部240は、解放される領域Bのデータを、SSDキャッシュ220に書き込むか否かを判定する(図11:ステップS302~312)。データ情報記憶部280上のSSDキャッシュ管理テーブルを参照すると、SSDキャッシュ220の空き容量は10ブロックであり(図18)、領域Bの30ブロック分のデータを格納するためにはSSDキャッシュ220上のデータを開放する必要がある。そこで、解放優先順位決定部270が、SSDキャッシュ220上の各データについて解放優先順位を算出し、解放するデータを決定する(図11:ステップS331)。解放優先順位決定部270は、SSDキャッシュ管理テーブルに格納された各データの参照回数Fと、各データのデータ長Lとに基づいて、指標値F/Lを算出し、算出した指標値が低データから順に解放優先順位を付す。 At this time, the access processing unit 240 determines whether to write the data of the area B to be released to the SSD cache 220 (FIG. 11: Steps S302 to 312). Referring to the SSD cache management table on the data information storage unit 280, the free space of the SSD cache 220 is 10 blocks (FIG. 18), and 30 blocks of data in the area B are stored on the SSD cache 220. Data needs to be released. Therefore, the release priority order determination unit 270 calculates the release priority order for each piece of data on the SSD cache 220 and determines the data to be released (FIG. 11: step S331). The release priority order determination unit 270 calculates the index value F / L based on the reference count F of each data stored in the SSD cache management table and the data length L of each data, and the calculated index value is low. The release priority is assigned in order from the data.
 この時点でSSDキャッシュ220に存在するのは領域P、Q、R、S、T、U、Aのデータである(図18)。これらのデータの指標値を計算すると以下のとおりである。Pの指標値は50000/5000=10である。Qの指標値は36000/3000=12である。Rの指標値は10800/1200=9である。Sの指標値は5500/500=11である。Tの指標値は本実施例内で1回アクセスされているため(999+1)/80=12.5である。Uの指標値は50/200=0.25である。Aの指標値は500/10=50である。DRAMキャッシュ230から解放される領域Bのデータについて指標値を算出すると、900/30=30となる。そこで、解放優先順位決定部270は、指標値が最小である領域Uのデータに対して最も高い解放優先順位を付す。この領域Uのデータ長は200ブロックであるため、領域Uのデータを解放することで、現在の空き容量と合計して210ブロックまでのデータを格納可能となる。そのため領域B(20ブロック)のデータを格納するために領域U以外のデータを置き換える必要はない。したがって、アクセス処理部240は、領域Uのデータを解放対象に決定する。 At this time, the data in the areas P, Q, R, S, T, U, and A exist in the SSD cache 220 (FIG. 18). The index values of these data are calculated as follows. The index value of P is 50000/5000 = 10. The index value of Q is 36000/3000 = 12. The index value of R is 10800/1200 = 9. The index value of S is 5500/500 = 11. The index value of T is (999 + 1) /80=12.5 because it is accessed once in the present embodiment. The index value of U is 50/200 = 0.25. The index value of A is 500/10 = 50. When the index value is calculated for the data in the area B released from the DRAM cache 230, 900/30 = 30. Therefore, the release priority order determination unit 270 assigns the highest release priority order to the data in the area U having the smallest index value. Since the data length of the area U is 200 blocks, by releasing the data in the area U, it is possible to store data up to 210 blocks in total with the current free capacity. Therefore, it is not necessary to replace the data other than the area U in order to store the data of the area B (20 blocks). Therefore, the access processing unit 240 determines the data in the area U as a release target.
 アクセス処理部240は、解放対象となる領域Uのデータについて、SSDキャッシュ管理テーブルから、Dirtyフラグの値を読み出す(図11:ステップS314)。ここでは、Dirtyフラグがセットされている(図18)。そのため、アクセス処理部240は、領域Uのデータをハードディスク210に書き込む(図11:ステップS321)。その後、アクセス処理部240は、SSDキャッシュ220上から領域Uのデータを解放し、データ情報記憶部280のSSDキャッシュ管理テーブルに含まれる領域Uの情報も削除する(図11:ステップS331)。 The access processing unit 240 reads the value of the Dirty flag from the SSD cache management table for the data in the area U to be released (FIG. 11: step S314). Here, the Dirty flag is set (FIG. 18). Therefore, the access processing unit 240 writes the data of the area U to the hard disk 210 (FIG. 11: Step S321). Thereafter, the access processing unit 240 releases the data of the area U from the SSD cache 220 and deletes the information of the area U included in the SSD cache management table of the data information storage unit 280 (FIG. 11: Step S331).
 その後、アクセス処理部240はデータ情報記憶部280上のSSDキャッシュ管理テーブルに領域Bのデータの情報を追加し、SSDキャッシュ220に領域Bのデータを格納する(図11:ステップS332)。これによりSSDキャッシュ220の空き容量は10+200-30=180ブロックとなる。
 図20は、読出要求Yに対する一連の処理を行った後のSSDキャッシュ管理テーブルが格納する情報を示す。
 その後DRAMキャッシュ230から領域Bのデータを解放し(図11:ステップS334)、領域Yのデータを新たにDRAMキャッシュ230に格納する(図8:ステップS163)。DRAMキャッシュ230の空き容量は、10ブロックとなる。
 図19は、読出要求Yに対する一連の処理を行った後のDRAMキャッシュ管理テーブルが格納する情報を示す。
Thereafter, the access processing unit 240 adds area B data information to the SSD cache management table on the data information storage unit 280, and stores the area B data in the SSD cache 220 (FIG. 11: step S332). As a result, the free capacity of the SSD cache 220 becomes 10 + 200−30 = 180 blocks.
FIG. 20 shows information stored in the SSD cache management table after a series of processing for the read request Y is performed.
Thereafter, the data in the area B is released from the DRAM cache 230 (FIG. 11: Step S334), and the data in the area Y is newly stored in the DRAM cache 230 (FIG. 8: Step S163). The free capacity of the DRAM cache 230 is 10 blocks.
FIG. 19 shows information stored in the DRAM cache management table after a series of processing for the read request Y is performed.
 読出要求Yに続いて、ホスト10から読出要求Zが送信されると、アクセス処理部240はDRAMキャッシュ230に領域Zのデータが格納されているか否かを判定する。DRAMキャッシュ230には領域Zのデータが格納されていない。
 そこで、アクセス処理部240は、SSDキャッシュ220に領域Zのデータが格納されているか否かを判定する。SSDキャッシュ220上に領域Zのデータは格納されていない。そこで、アクセス処理部240は、ハードディスク210から領域Zのデータを読み出し、読み出したデータを、読出要求Zに対する結果として読出要求Z送信元のホスト10に送信する。
When a read request Z is transmitted from the host 10 following the read request Y, the access processing unit 240 determines whether or not the data in the area Z is stored in the DRAM cache 230. The DRAM cache 230 does not store area Z data.
Therefore, the access processing unit 240 determines whether or not the data of the area Z is stored in the SSD cache 220. Data of the area Z is not stored on the SSD cache 220. Therefore, the access processing unit 240 reads the data in the area Z from the hard disk 210 and transmits the read data to the read request Z transmission source host 10 as a result of the read request Z.
 その後、アクセス処理部240は、領域ZのデータをDRAMキャッシュ230に格納する。DRAMキャッシュ230の空き容量は10ブロックであるため(図19)、そのままでは、領域XのデータをDRAMキャッシュ230に格納できない。そこで、アクセス処理部240は、DRAMキャッシュ230上の領域のうち、解放優先順位が最も高い領域Cのデータを、DRAMキャッシュ230上から解放し、領域Zのデータを書き込む。 After that, the access processing unit 240 stores the data of the area Z in the DRAM cache 230. Since the free space of the DRAM cache 230 is 10 blocks (FIG. 19), the data in the area X cannot be stored in the DRAM cache 230 as it is. Therefore, the access processing unit 240 releases the data in the area C having the highest release priority among the areas on the DRAM cache 230 from the DRAM cache 230 and writes the data in the area Z.
 この際、アクセス処理部240は、解放される領域Cのデータを、SSDキャッシュ220に書き込むか否かを判定する。データ情報記憶部280上のSSDキャッシュ管理テーブルを参照すると、SSDキャッシュ220の空き容量は180ブロックであり(図20)、領域Cの500ブロック分のデータを格納するためにはSSDキャッシュ220上のデータを開放する必要がある。そこで、解放優先順位決定部270が、SSDキャッシュ220上の各データについて解放優先順位を算出し、解放するデータを決定する(図11:ステップS331)。 At this time, the access processing unit 240 determines whether or not to write the data of the area C to be released to the SSD cache 220. Referring to the SSD cache management table on the data information storage unit 280, the free space of the SSD cache 220 is 180 blocks (FIG. 20), and in order to store 500 blocks of data in the area C, the SSD cache 220 Data needs to be released. Therefore, the release priority order determination unit 270 calculates the release priority order for each piece of data on the SSD cache 220 and determines the data to be released (FIG. 11: step S331).
 この時点でSSDキャッシュ220に存在するのは領域P、Q、R、S、T、B、Aのデータである(図20)。これらの指標値を計算すると以下のとおりとなる。Pの指標値は50000/5000=10である。Qの指標値は36000/3000=12である。Rの指標値は10800/1200=9である。Sの指標値は5500/500=11である。Tの指標値は1000/80=12.5である。Aの指標値は500/10=50である。Bの指標値は900/30=30である。一方DRAMキャッシュ230から解放される領域Cのデータについて指標値を求めると、Cの指標値は2000/500=4となる。このように、指標値が最小となるデータはSSDキャッシュ220に格納されたデータではなく、DRAMキャッシュ230から解放される領域Cのデータである。解放優先順位決定部270は、この指標値が最小である領域Cのデータに対して最も高い解放優先順位を付す。これにより、アクセス処理部240は、SSDキャッシュ220に格納されたデータを開放せず、また、領域CのデータをSSDキャッシュ220に格納しない(図11:ステップS323:NO)。 At this time, the data in the areas P, Q, R, S, T, B, and A exist in the SSD cache 220 (FIG. 20). These index values are calculated as follows. The index value of P is 50000/5000 = 10. The index value of Q is 36000/3000 = 12. The index value of R is 10800/1200 = 9. The index value of S is 5500/500 = 11. The index value of T is 1000/80 = 12.5. The index value of A is 500/10 = 50. The index value of B is 900/30 = 30. On the other hand, when the index value is obtained for the data in the area C released from the DRAM cache 230, the index value of C is 2000/500 = 4. Thus, the data with the smallest index value is not the data stored in the SSD cache 220 but the data in the area C released from the DRAM cache 230. The release priority determining unit 270 assigns the highest release priority to the data in the area C having the smallest index value. Thereby, the access processing unit 240 does not release the data stored in the SSD cache 220 and does not store the data in the area C in the SSD cache 220 (FIG. 11: Step S323: NO).
 領域CのデータのDirtyフラグは0であるため(図19)、アクセス処理部240は、領域Cのデータのハードディスク210への書き込みも行わない(図11:ステップS315:NO)。その後、アクセス処理部240は、領域CのデータをDRAMキャッシュ230から解放し(図11:ステップS334)、領域ZのデータをDRAMキャッシュ230に書き込む(図8:ステップS163)。
 図21は、読出要求Zに対する一連の処理を行った後のDRAMキャッシュ管理テーブルが格納する情報を示す。
 以上により、記憶装置20は、図14に示される処理命令T、X、Y、Zに対する処理を終了する。
Since the Dirty flag of the data in area C is 0 (FIG. 19), the access processing unit 240 does not write the data in area C to the hard disk 210 (FIG. 11: Step S315: NO). Thereafter, the access processing unit 240 releases the data in the area C from the DRAM cache 230 (FIG. 11: step S334), and writes the data in the area Z into the DRAM cache 230 (FIG. 8: step S163).
FIG. 21 shows information stored in the DRAM cache management table after a series of processing for the read request Z is performed.
Thus, the storage device 20 ends the processing for the processing instructions T, X, Y, and Z shown in FIG.
 以上のように、解放優先順位決定部270は、SSDキャッシュ220の記憶するデータのデータ長が長いほど、SSDキャッシュ220が置換を行う際のそのデータの解放優先順位を高くするので、データ長の短いデータを優先的にSSDキャッシュ220に残すことができる。このデータ長の短いデータは、読出時間に占めるレイテンシ(アクセス初期の遅延時間)の割合の大きいデータであり、キャッシュに格納することによる読出時間の短縮率が高い。
 一方、SSDキャッシュ220から解放されるデータ長の長いデータに対して、読出要求を受信した場合、記憶装置20は、ハードディスク210からデータを読み出して返信を行う。その際、データ長の長いデータでは、読出時間に占めるレイテンシの割合が小さく、レイテンシによる読出時間の増大は比較的軽微である。
As described above, the release priority determining unit 270 increases the release priority of data when the SSD cache 220 performs replacement as the data length of the data stored in the SSD cache 220 is longer. Short data can be preferentially left in the SSD cache 220. This data with a short data length is data with a large ratio of latency (delay time at the beginning of access) in the read time, and the read time reduction rate by storing in the cache is high.
On the other hand, when a read request is received for data with a long data length released from the SSD cache 220, the storage device 20 reads the data from the hard disk 210 and sends a reply. At this time, in the data having a long data length, the ratio of the latency in the reading time is small, and the increase in the reading time due to the latency is relatively small.
 このように、記憶装置20は、データ長の短いデータを優先的にSSDキャッシュ220に残し、データ長の長いデータはハードディスク210から読み出すようにしている。これにより、レイテンシによる読出時間の増大を抑え、読出速度の向上を図ることができる。
 特に、SSDキャッシュ220の記憶するデータのデータ長が長いほど、SSDキャッシュ220が置換を行う際のそのデータの解放優先順位を高くすることにより、ストリームデータ等、参照頻度が低く、かつ長大なデータを優先的に解放でき、さらには、SSDキャッシュに格納されないようにすることができる。これにより、SSDキャッシュ220の利用効率を向上させることができる。また、データ長の短いデータが、置換によりSSDキャッシュ220から追い出されることを防止できる。
In this way, the storage device 20 preferentially leaves data with a short data length in the SSD cache 220 and reads data with a long data length from the hard disk 210. As a result, an increase in reading time due to latency can be suppressed, and reading speed can be improved.
In particular, the longer the data length of the data stored in the SSD cache 220, the higher the release priority of the data when the SSD cache 220 performs the replacement. Can be preferentially released, and further, not stored in the SSD cache. Thereby, the utilization efficiency of the SSD cache 220 can be improved. Further, it is possible to prevent data having a short data length from being evicted from the SSD cache 220 due to replacement.
 特に、ストリームデータは、一般的に、アクセス頻度が低く、かつ、データ長が長いデータである。データ長が長いほど解放優先順位を高くする上記の方法を用いて、このストリームデータをSSDキャッシュ220に格納されないようにする、あるいは優先的に解放することにより、SSDキャッシュ220におけるヒット率向上を図ることができる。
 さらには、ストリームデータは、データの先頭から順にアクセスされるのが通常であり、連続のブロックに対するアクセスによってアクセスが行われる。そのため、ストリームデータがキャッシュ上でヒットしないことによるアクセス速度の低下は、他のデータに比べて小さい。このストリームデータの解放優先順位を高くして、他のデータを優先的にSSDキャッシュ220に格納することにより、記憶装置20のアクセス速度向上を図ることができる。
In particular, stream data is generally data with a low access frequency and a long data length. By using the above method of increasing the release priority as the data length is longer, the stream data is not stored in the SSD cache 220 or is released preferentially, thereby improving the hit rate in the SSD cache 220. be able to.
Furthermore, stream data is normally accessed in order from the beginning of the data, and is accessed by accessing consecutive blocks. For this reason, the decrease in access speed due to the stream data not hitting the cache is smaller than other data. By increasing the release priority of the stream data and preferentially storing other data in the SSD cache 220, the access speed of the storage device 20 can be improved.
 また、解放優先順位決定部270は、SSDキャッシュ220の記憶するデータのデータ長が長いほど、かつ、データへのアクセスが最後に行われてからの経過時間が長いほど、SSDキャッシュ220が置換を行う際の解放優先順位を高くする。このため、記憶媒体のレイテンシに応じて適切な置換を行いつつ、ヒット率の向上を図れる。 The release priority determination unit 270 also replaces the SSD cache 220 as the data length of the data stored in the SSD cache 220 is longer and the elapsed time from the last access to the data is longer. Increase the release priority when doing it. Therefore, it is possible to improve the hit rate while performing appropriate replacement according to the latency of the storage medium.
 また、解放優先順位決定部270は、SSDキャッシュ220の記憶するデータのデータ長が長いほど、かつ、そのデータへのアクセス頻度が高いほど、SSDキャッシュ220が置換を行う際の解放優先順位を高くする。このため、記憶媒体のレイテンシに応じて適切な置換を行いつつ、ヒット率の向上を図れる。 In addition, the release priority determination unit 270 increases the release priority when the SSD cache 220 performs replacement as the data length of the data stored in the SSD cache 220 is longer and the access frequency to the data is higher. To do. Therefore, it is possible to improve the hit rate while performing appropriate replacement according to the latency of the storage medium.
 また、SSDキャッシュ220を二次的なキャッシュとし、一次的なキャッシュとしてDRAMキャッシュ230を設けることにより、大容量かつ高速なキャッシュを比較的安価に実現できる。 Further, by providing the SSD cache 220 as a secondary cache and providing the DRAM cache 230 as a primary cache, a large-capacity and high-speed cache can be realized at a relatively low cost.
 本発明の実施形態は、1層のキャッシュを備える記憶装置にも適用できる。この場合、アクセス処理部240は、ホスト10からの処理要求に応じて、DRAMキャッシュ230に対する処理を除いた処理を行う。具体的には、読出要求に対して、ステップS121~S141(図8)、および、ステップS302~S332(図10、11)を実行し、書込要求に対して、ステップS302~S332(図10、11)を実行する。 The embodiment of the present invention can also be applied to a storage device having a one-layer cache. In this case, the access processing unit 240 performs processing excluding processing for the DRAM cache 230 in response to a processing request from the host 10. Specifically, steps S121 to S141 (FIG. 8) and steps S302 to S332 (FIGS. 10 and 11) are executed for the read request, and steps S302 to S332 (FIG. 10) are executed for the write request. , 11).
 上述した記憶装置20における一連の処理の過程は、プログラムの形式でコンピュータ読み取り可能な記録媒体に記憶されていてもよい。このプログラムをコンピュータが読み出して実行することによって、上記処理が行われてもよい。すなわち、記憶装置20における、各処理は、CPU等の中央演算処理装置がROMやRAM等の主記憶装置に上記プログラムを読み出して、情報の加工、演算処理を実行することにより実現されてもよい。 The series of processes in the storage device 20 described above may be stored in a computer-readable recording medium in the form of a program. The above processing may be performed by the computer reading and executing this program. That is, each process in the storage device 20 may be realized by a central processing unit such as a CPU reading the above program into a main storage device such as a ROM or RAM, and executing information processing and calculation processing. .
 以上、本発明の実施形態について図面を参照して詳述してきたが、具体的な構成はこの実施形態に限られるものではなく、この発明の要旨を逸脱しない範囲の設計変更等も含まれる。 As described above, the embodiment of the present invention has been described in detail with reference to the drawings. However, the specific configuration is not limited to this embodiment, and includes design changes and the like without departing from the gist of the present invention.
 この出願は、2010年7月1日に出願された日本出願特願2010-151052を基礎とする優先権を主張し、その開示の全てをここに取り込む。 This application claims priority based on Japanese Patent Application No. 2010-155102 filed on July 1, 2010, the entire disclosure of which is incorporated herein.
 本発明は、記憶装置、解放優先順位決定方法およびプログラムに用いて好適である。 The present invention is suitable for use in a storage device, a release priority determination method, and a program.
10 ホスト
20  記憶装置
210     ハードディスク
220      SSDキャッシュ
230    DRAMキャッシュ
240 アクセス処理部
250      記憶媒体性能測定部
260  性能情報記憶部
270      解放優先順位決定部
280  データ情報記憶部
30      ネットワーク 
10 host 20 storage device 210 hard disk 220 SSD cache 230 DRAM cache 240 access processing unit 250 storage medium performance measurement unit 260 performance information storage unit 270 release priority order determination unit 280 data information storage unit 30 network

Claims (8)

  1.  記憶媒体に記憶されるデータを一時的に保存し、前記記憶媒体よりもレイテンシの小さいキャッシュと、
     前記キャッシュが記憶するデータのデータ長が長いほど、前記キャッシュが置換を行う際の前記データの解放優先順位を高くする解放優先順位決定部と、
     を具備する記憶装置。
    Temporarily storing data stored in a storage medium, a cache having a lower latency than the storage medium; and
    A release priority determining unit that increases the release priority of the data when the cache performs replacement, as the data length of the data stored in the cache is longer;
    A storage device comprising:
  2.  前記解放優先順位決定部は、前記キャッシュが記憶するデータについて、前記データへのアクセスが最後に行われてからの経過時間が長いほど、前記キャッシュが置換を行う際の解放優先順位を高くする請求項1に記載の記憶装置。 The release priority determination unit increases the release priority when the cache performs replacement as the elapsed time from the last access to the data is longer for the data stored in the cache. Item 4. The storage device according to Item 1.
  3.  前記解放優先順位決定部は、前記キャッシュが記憶するデータについて、前記データへのアクセス頻度が低いほど、前記キャッシュが置換を行う際の解放優先順位を高くする請求項1または請求項2に記載の記憶装置。 3. The release priority determination unit according to claim 1, wherein for the data stored in the cache, the release priority when the cache performs replacement increases as the access frequency to the data decreases. Storage device.
  4.  前記キャッシュよりも上位のキャッシュである上位キャッシュをさらに具備する
     請求項1から3のいずれか一項に記載の記憶装置。
    The storage device according to any one of claims 1 to 3, further comprising an upper cache that is an upper cache than the cache.
  5.  前記記憶媒体はハードディスクである請求項1から4のいずれか一項に記載の記憶装置。 The storage device according to any one of claims 1 to 4, wherein the storage medium is a hard disk.
  6.  前記キャッシュは、不揮発性の半導体で構成される記憶媒体にて構成される請求項1から5のいずれか一項に記載の記憶装置。 The storage device according to any one of claims 1 to 5, wherein the cache is configured by a storage medium including a nonvolatile semiconductor.
  7.  記憶媒体に記憶されるデータを一時的に保存し、前記記憶媒体よりもレイテンシの小さいキャッシュを具備する記憶装置の、前記キャッシュが置換を行う際の解放優先順位決定方法であって、
     前記キャッシュが記憶するデータのデータ長が長いほど、前記キャッシュが置換を行う際の前記データの解放優先順位を高くすることを具備する解放優先順位決定方法。
    A storage device that temporarily stores data stored in a storage medium and includes a cache having a latency lower than that of the storage medium, and a release priority determination method when the cache performs replacement,
    A release priority determination method comprising: increasing the release priority of data when the cache performs replacement as the data length of data stored in the cache is longer.
  8.  記憶媒体に記憶されるデータを一時的に保存し、前記記憶媒体よりもレイテンシの小さいキャッシュを具備する記憶装置の、前記キャッシュが置換を行う際の解放優先順位を決定するコンピュータに、
     前記キャッシュが記憶するデータのデータ長が長いほど、前記キャッシュが置換を行う際の前記データの解放優先順位を高くすることを実行させるためのプログラム。 
    A computer that temporarily stores data stored in a storage medium and has a cache having a smaller latency than the storage medium, and determines a release priority when the cache performs replacement.
    A program for executing an increase in the release priority of the data when the cache performs replacement as the data length of the data stored in the cache is longer.
PCT/JP2011/064902 2010-07-01 2011-06-29 Storage device, method for determining de-allocation priority order, and program WO2012002428A1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2012522658A JP5541361B2 (en) 2010-07-01 2011-06-29 Storage device, release priority determination method and program

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2010151052 2010-07-01
JP2010-151052 2010-07-01

Publications (1)

Publication Number Publication Date
WO2012002428A1 true WO2012002428A1 (en) 2012-01-05

Family

ID=45402133

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2011/064902 WO2012002428A1 (en) 2010-07-01 2011-06-29 Storage device, method for determining de-allocation priority order, and program

Country Status (2)

Country Link
JP (1) JP5541361B2 (en)
WO (1) WO2012002428A1 (en)

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2013174997A (en) * 2012-02-24 2013-09-05 Mitsubishi Electric Corp Cache control device and cache control method
JP2014153969A (en) * 2013-02-12 2014-08-25 Hitachi Ltd Information processing system
JP2014186590A (en) * 2013-03-25 2014-10-02 Nec Corp Resource allocation system and resource allocation method
JP2015203963A (en) * 2014-04-14 2015-11-16 キヤノン株式会社 Information processing device, document management system, and information processing method, and program
JP2017004554A (en) * 2016-08-24 2017-01-05 ルネサスエレクトロニクス株式会社 Information processing apparatus
JP2017205420A (en) * 2016-05-20 2017-11-24 株式会社アクセル Image formation system and game machine
JP2021114264A (en) * 2020-01-21 2021-08-05 富士通株式会社 Storage control device and storage control program

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10824562B2 (en) * 2018-01-09 2020-11-03 Hossein Asadi Reconfigurable caching

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH01159746A (en) * 1987-12-16 1989-06-22 Fujitsu Ltd Disk cache control system
JP2010009548A (en) * 2008-06-30 2010-01-14 Toshiba Corp Storage device, control device, storage system, and storage method

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7379974B2 (en) * 2003-07-14 2008-05-27 International Business Machines Corporation Multipath data retrieval from redundant array

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH01159746A (en) * 1987-12-16 1989-06-22 Fujitsu Ltd Disk cache control system
JP2010009548A (en) * 2008-06-30 2010-01-14 Toshiba Corp Storage device, control device, storage system, and storage method

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2013174997A (en) * 2012-02-24 2013-09-05 Mitsubishi Electric Corp Cache control device and cache control method
JP2014153969A (en) * 2013-02-12 2014-08-25 Hitachi Ltd Information processing system
JP2014186590A (en) * 2013-03-25 2014-10-02 Nec Corp Resource allocation system and resource allocation method
JP2015203963A (en) * 2014-04-14 2015-11-16 キヤノン株式会社 Information processing device, document management system, and information processing method, and program
JP2017205420A (en) * 2016-05-20 2017-11-24 株式会社アクセル Image formation system and game machine
JP2017004554A (en) * 2016-08-24 2017-01-05 ルネサスエレクトロニクス株式会社 Information processing apparatus
JP2021114264A (en) * 2020-01-21 2021-08-05 富士通株式会社 Storage control device and storage control program

Also Published As

Publication number Publication date
JP5541361B2 (en) 2014-07-09
JPWO2012002428A1 (en) 2013-08-29

Similar Documents

Publication Publication Date Title
JP5541361B2 (en) Storage device, release priority determination method and program
JP5066241B2 (en) Memory system
JP5010723B2 (en) Semiconductor memory control device
JP4738536B1 (en) Nonvolatile memory controller and nonvolatile memory control method
US9529724B2 (en) Layered architecture for hybrid controller
US20170235681A1 (en) Memory system and control method of the same
JP5434738B2 (en) Disk unit
US20110231598A1 (en) Memory system and controller
JP6139381B2 (en) Memory system and method
US20140013025A1 (en) Hybrid memory with associative cache
KR101297442B1 (en) Nand flash memory including demand-based flash translation layer considering spatial locality
US20130198453A1 (en) Hybrid storage device inclucing non-volatile memory cache having ring structure
US10635581B2 (en) Hybrid drive garbage collection
JP2012128815A (en) Memory system
US20180113815A1 (en) Cache entry replacement based on penalty of memory access
WO2014142337A1 (en) Storage device and method, and program
JPWO2018211749A1 (en) Storage controller, storage system, storage controller control method, and program
JP2019537162A (en) Unassigned cache policy
JPWO2011019029A1 (en) Data processing apparatus, data recording method, and data recording program
KR101105127B1 (en) Buffer cache managing method using ssdsolid state disk extension buffer and apparatus for using ssdsolid state disk as extension buffer
US9268700B2 (en) Cache control device, cache control method, and program thereof
US20150052310A1 (en) Cache device and control method thereof
KR101456370B1 (en) Method and device for management of storage
JP5699854B2 (en) Storage control system and method, replacement method and method
JP2021135538A (en) Storage control apparatus and storage control program

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 11800890

Country of ref document: EP

Kind code of ref document: A1

WWE Wipo information: entry into national phase

Ref document number: 2012522658

Country of ref document: JP

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 11800890

Country of ref document: EP

Kind code of ref document: A1