JP4558003B2 - Data access processing method and storage control device - Google Patents

Data access processing method and storage control device Download PDF

Info

Publication number
JP4558003B2
JP4558003B2 JP2007135602A JP2007135602A JP4558003B2 JP 4558003 B2 JP4558003 B2 JP 4558003B2 JP 2007135602 A JP2007135602 A JP 2007135602A JP 2007135602 A JP2007135602 A JP 2007135602A JP 4558003 B2 JP4558003 B2 JP 4558003B2
Authority
JP
Japan
Prior art keywords
access
command
data
area
access command
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2007135602A
Other languages
Japanese (ja)
Other versions
JP2008293111A (en
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 JP2007135602A priority Critical patent/JP4558003B2/en
Publication of JP2008293111A publication Critical patent/JP2008293111A/en
Application granted granted Critical
Publication of JP4558003B2 publication Critical patent/JP4558003B2/en
Application status is Active legal-status Critical
Anticipated expiration legal-status Critical

Links

Images

Description

  The present invention relates to a storage control device that performs data transfer processing between a host computer and a storage device, and in particular, a data access method in a storage device control device having a cache memory for improving access performance from the host computer, and The present invention relates to a storage control device.

  A storage control device that performs data transfer processing between a host computer and a storage device generally has a cache memory for improving the performance of access from the host computer. In recent years, in this type of storage control device, technology for efficient operation of a cache memory has been applied. For example, the storage control device described in Patent Literature 1 divides a storage device into a plurality of storage areas, collects statistical information about access for each divided storage area, and then stores a storage area based on the statistical information. A technique of switching the operation mode of the cache memory (whether or not data prefetching is performed in the cache memory) is applied every time. The technique described in Patent Document 1 is effective when the tendency of access to each storage area changes uniformly between online processing and batch processing.

For example, Patent Document 2 also describes a technique related to data prefetching to a cache memory. In the technique described in Patent Document 2, when a read request from a host computer for a continuous area of the same logical storage device is received a predetermined number of times or more, it is determined as a sequential read access, and the cache memory is prefetched. .
JP-A-2-50236 Japanese Patent Laid-Open No. 3-102443

  As described above, the technique described in Patent Document 1 is an effective method when the tendency of access to each divided storage area changes uniformly between online processing and batch processing. However, in the case where accesses with various trends are mixed in the same storage area at the same time, the access to each storage area is evaluated uniformly as in the technique described in Patent Document 1, Optimization of cache memory operation is difficult. For example, the tendency of access to both a relatively large file and small management information for managing the file is generally greatly different, and these accesses are mixed.

  Therefore, in order to further reduce the possibility of mixing accesses having different tendencies, for example, it is conceivable to make the granularity of division for a storage device extremely small. However, in the technique described in Patent Document 1, since it is necessary to hold statistical information for each divided storage area, if the granularity of division is extremely small, that is, if the number of divisions is extremely large, statistical information is retained. This increases the memory capacity required. An increase in the memory capacity causes an increase in the price of the device. This method is not practical considering the recent increase in capacity of storage devices represented by hard disk drives (HDD).

  On the other hand, in the technique described in Patent Document 2, it is necessary to receive a read request from a host computer a certain number of times (the number of prefetch thresholds) before it can be determined that the read request is a sequential request. . Until the read-ahead threshold value is reached, a read process from the storage device occurs every time a read request is made. In general, the number of prefetch thresholds is 2 to 3 or more. Therefore, in the case of a sequential read request with a small number of times such that the read request from the host computer is completed in two or three times, it is difficult to obtain the effect of prefetching with the technique described in Patent Document 2. In the technique described in Patent Document 2, if it is determined that the read request is a sequential access request as a result of receiving two or three read requests, the subsequent data is prefetched into the cache memory. . However, in the case of a sequential read request with a small number of times as described above, the pre-read data is not used in the end and is wasted, which may deteriorate the throughput performance of the apparatus.

  The present invention has been made in consideration of the above circumstances, and an object of the present invention is to provide a data access processing method capable of improving access performance when accesses from a host computer are mixed and present at the same time. To provide a storage control device.

  According to one aspect of the present invention, a logical storage device is provided to the host computer, connected to a host computer and at least one storage device, using a part or all of the storage device, and A cache memory faster than the storage device for processing data transfer between the host computer and the storage device, and temporarily holding read / write data designated by an access command from the host computer; The access type specified by the access command, and the start address indicating the area in the logical storage device specified by the access command and the transfer size or the transfer size range information to which the transfer size belongs are stored as a log of the access command. Storage control device having an access command log table Is Oite executed, the data access processing method for processing data access according to the access command from the host computer is provided. This method refers to the access command log table based on the current access command to be processed this time given from the host computer to the storage control device, and has the same access type as the current access command and the current access command. A step of extracting logs of all access commands having the same transfer size or the same transfer size range as the command as similar commands having similar characteristics to the current access command, and based on the extracted logs of all similar commands A step of determining an access tendency and a data access process corresponding to the current access command based on the determined access tendency, wherein the read / write data specified by the current access command is targeted To the cache memory Determining a data access process including at least one of a process involving access and a process involving access to the cache memory targeted for data in an area near the area specified by the current access command; and Executing a data access process; and adding a log of the current access command to the address command log table.

  According to the present invention, the access tendency of a command similar to the current access command extracted from the access command table is determined, not the access tendency specified by the command sequence including the current access command itself, and the determined access is determined. Based on the above trend, processing involving access to the cache memory targeted for read / write data specified by the current access command, and data to the cache memory targeted for data in the vicinity of the area specified by the current access command A data access process corresponding to the current access command including at least one of the processes involving access is determined. As a result, even if access from the host computer is mixed and present at the same time, even with sequential access that is completed with a small number of access command sequences, access to the cache memory is involved. The optimum data access process corresponding to the current access command can be determined, and the access performance can be improved.

Embodiments of the present invention will be described below with reference to the drawings.
FIG. 1 is a block diagram showing a configuration of a computer system according to an embodiment of the present invention. This computer system includes a storage control device 11, at least one storage device, for example, a plurality of magnetic disk devices (HDD) 12, and a host computer 13.

  The storage controller 11 controls access to the HDD 12 and transfers data between the host computer 13 and the HDD 12.

  The HDD 12 is used to configure at least one logical storage device (logical storage device) provided to the host computer 13 (accessible from the host computer 13). The logical storage device is configured using a partial storage area or all storage areas of one or a plurality of HDDs 12. In the present embodiment, as shown in FIG. 1, it is assumed that one logical storage device 120 is configured using all storage areas of the three HDDs 12.

  The host computer 13 sends a request (access command) for accessing the logical storage device 120 to the storage control device 11. Normally, the access command includes information on the type of write / read, the start address (start address), and the size. The start address indicates the start position (start position) of the area to be accessed in the logical storage device 120. The transfer size indicates the size of data to be transferred (write / read data), that is, the size of the area to be accessed. In the present embodiment, a head block address (head logical block address) indicating the head block position (head logical block position) of the area to be accessed is used as the head address, and the transferred data ( A transfer block size size indicating the number of blocks (write / read data) (the number of blocks in the area to be accessed) is used.

  The storage controller 11 includes interface control circuits 111 and 112, a cache memory 113, a chip set 114, a microprocessor 115, a memory (local memory) 116, and a ROM 117.

  The interface control circuit 111 controls a host connection interface 21 such as SCSI (Small Computer System Interface) or Fiber Channel for connecting the storage controller 11 to the host computer 13.

  The interface control circuit 112 controls a storage device connection interface 22 such as SCSI or Fiber Channel for connecting the storage control device 11 to a plurality of HDDs 12.

  The cache memory 113 is a buffer memory faster than the HDD 12 for temporarily storing read / write data requested by the host computer 13 and data pre-read from the logical storage device 120 (the HDD 12 constituting the cache memory 113). . In this embodiment, the cache memory 113 is backed up by a battery.

  The chip set 114 is a bridge circuit for connecting the microprocessor 115 and peripheral circuits (peripheral circuits such as the memory 116 and the ROM 117). Interface control circuits 111 and 112 and a cache memory 113 are also connected to the chip set 114 via the internal bus 23. The internal bus 23 is a bus used inside the storage controller 11 such as PCI (Peripheral Component Interconnect) -X or PCI Express.

  The microprocessor 115 performs control of other elements in the storage control device 11 and various processes by executing a program 118 (program code included) copied (loaded) from the ROM 117 to the memory 116. .

  The memory 116 is used as a local memory of the storage control device 11. The memory 116 provides an area where the program 118 stored in the ROM 117 is copied for execution by the microprocessor 115 and a work area used in various processes of the microprocessor 115. The memory 116 also provides an area for storing an access command log table 119 and a pointer (next pointer) P indicating the next entry (next entry) in the table 119 where a log is to be held. The access command log table 119 is prepared for each logical storage device when a plurality of logical storage devices are provided to the host computer 13. In this embodiment, it is assumed that one logical storage device 120 is provided to the host computer 13.

  The access command log table 119 is used to hold a log of access commands from the host computer 13 that requests access to a storage area in the logical storage device 120 corresponding to the table 119. FIG. 2 shows an example of the data structure of the access command log table 119 in association with the next pointer P.

  The access command log table 119 has N + 1 entries from the 0th entry (entry whose entry number is 0) to the Nth entry (entry whose entry number is N). Each entry of the table 119 includes fields 201, 202, and 203. Fields 201, 202, and 203 are a write / read type (W / R type), a head address (head block address), and an access type specified by an access command (write / read request) from the host computer 13, respectively. It is used to hold information on transfer size (transfer block size).

  The number N + 1 of entries in the access command log table 119, that is, the maximum number N + 1 of logs that can be held in the access command log table 119 may be determined according to the memory capacity of the memory 116 that can be prepared, the processing frequency of the access command, and the like.

  When the storage controller 11 receives an access command from the host computer 13, the access command log is held in an entry in the access command log table 119 pointed to by the next pointer P based on the received command. Here, the W / R type, head address (head block address), and transfer size (transfer block size) of the received command are held in fields 201, 202 and 203, respectively, in the entry of the access command log table 119. Further, the access command log is held in order from the first entry (0th entry) of the access command log table 119. When the log is held up to the last entry (Nth entry), it returns to the top entry and is held again from the top entry. As described above, in this embodiment, access command log information is held in the access command log table 119 in a round-robin manner. That is, the access command log table 119 is used as a ring buffer.

  When the access command log is held in the entry in the access command log table 119 pointed to by the next pointer P, the next pointer P is updated to indicate the next entry. That is, the next pointer P is incremented by 1 when the access command log is held in any of the 0th to (N-1) th entries, and is set to 0 when the access command log is held in the Nth entry. Returned.

  FIG. 3 is a block diagram showing a configuration of the data access processing device 30 realized in the storage control device 11. The data access processing device 30 performs data access processing including access to the cache memory 113, and includes a data access processing unit 300 and an access command log table 119.

  The data access processing unit 300 is realized by the microprocessor 115 in the storage control device 11 shown in FIG. 1 reading and executing the program 118 copied from the ROM 117 to the memory (local memory) 116. The data access processing unit 300 includes a cache hit determination unit 310, a similar command extraction unit 320, an access tendency determination unit 330, a data access processing determination unit 340, a data access unit 350, and a table management unit 360.

  The cache hit determination unit 310 determines whether the requested data exists in the cache memory 113 when the data read is requested by the access command (current access command) transmitted from the host computer 13, that is, Cache hit / miss hit is determined. The similar command extraction unit 320 extracts a log of a command (similar command) similar to the current access command from the access command log table 119.

  Based on the similar command log extracted by the similar command extraction unit 320, the access tendency determination unit 330 determines an access tendency from the host computer 13 regarding the similar command. The access tendency determination unit 330 includes an access reappearance rate calculation unit 331, an access appearance rate calculation unit 332, and a neighborhood region determination unit 333.

  Based on the log of the similar command, the access reappearance rate calculating unit 331 returns the rate of access to the storage area (same area) designated by the similar command, that is, the reappearance rate of access to the same area (identical (Region access re-appearance rate) is calculated as an index representing an access tendency. If the same area access reappearance rate is high, the access recall rate to the storage area (specified area) specified by the current access command is also high, that is, access to the same area as the specified area may occur in the near future. Expected to be high.

  Based on the log of the similar command, the access appearance rate calculation unit 332 generates a rate of access to an area (neighboring area) in the vicinity of the storage area (designated area) designated by the similar command, that is, access to the neighboring area Is calculated as an index representing an access tendency. When the neighborhood area access appearance rate is high, the appearance rate of access to the neighborhood area of the storage area (designated area) specified by the current access command is also high, that is, access to the neighborhood area of the designated area may occur in the near future. Is expected to be high.

  The neighborhood area determination unit 333 determines a neighborhood area of the storage area designated by the current access command based on the log of the similar command and the current access command.

The data access processing determination unit 340 calculates the access tendency determined by the access tendency determination unit 330, that is, the same area access reappearance rate calculated by the access reappearance rate calculation unit 331 and the access appearance rate calculation unit 332. Based on the neighborhood area access appearance rate and the neighborhood area information determined by the neighborhood area determination unit 333, the data access process corresponding to the current access command is determined. The data access process is a process involving access to the cache memory 113 targeted for read / write data specified by the current access command, and data in an area near the area (specified area) specified by the current access command. Including at least one of processes involving access to the cache memory 113.
The data access processing determination unit 340 includes a cache execution determination unit 341, a prefetch determination unit 342, and a destaging delay determination unit 343.

  The cache execution determination unit 341 has the same area access reappearance rate calculated by the access reappearance rate calculating unit 331 as the access type (W / R type) specified by the current access command is read (R). If the value is equal to or greater than the predetermined value (first threshold value), it is determined to hold the data designated by the current access command in the cache memory 113. The prefetch determination unit 342 has a predetermined constant value (second value) in which the W / R type specified by the current access command is read (R) and the neighborhood area access appearance rate calculated by the access appearance rate calculation unit 332 is determined in advance. If it is equal to or greater than (threshold), it is determined to prefetch data in the cache memory 113 in the vicinity area of the storage area specified by the current access command (the vicinity area determined by the vicinity area determination unit 333). The destaging delay determination unit 343 has the W / R type specified by the current access command as write (W), and the same region access reappearance rate or access appearance rate calculation unit 332 calculated by the access reappearance rate calculation unit 331. When the neighborhood area access appearance rate calculated by the above is greater than or equal to a threshold value (first threshold value or second threshold value), the data area specified by the current access command is stored in the storage area specified by the current access command. It decides to delay the timing of the processing (destaging) to write to the.

  The data access unit 350 executes the data access process determined by the data access process determination unit 340 (the cache execution determination unit 341, the prefetch determination unit 342, and the destaging delay determination unit 343). The table management unit 360 manages the access command log table 119 and the next pointer P, and adds the access command log transmitted from the host computer 13 to the entry in the access command log table 119 indicated by the next pointer P.

Next, the data access processing executed by the data access processing unit 300 shown in FIG. 3 will be described in order, divided into read access processing and write access processing.
First, read access processing executed in the data access processing unit 300 will be described with reference to FIGS. 4 is a flowchart showing the procedure of the read access process, FIG. 5 is a flowchart showing the procedure of the neighboring area determination process in the flowchart of FIG. 4, and FIG. 6 is the procedure of the first to fourth data access processes in the flowchart of FIG. It is a flowchart to show. FIG. 7 is a diagram for explaining the neighborhood region determination processing by the neighborhood region determination unit 333.

  Assume that an access command (read access command, that is, a read request) in which the W / R type is read (R) is transmitted from the host computer 30 to the storage controller 11 via the host connection interface 21. When this read access command is received by the storage control device 11, the data access processing unit 300 realized in the storage control device 11 performs the following read access processing.

  First, the cache hit determination unit 310 in the data access processing unit 300 determines whether the data requested by the read access command (current read access command) received by the storage control device 11 exists in the cache memory 113, that is, a cache hit. It is determined whether or not there is (step S1). If there is a cache hit, the data access unit 350 immediately reads the data requested by the current read access command from the cache memory 113 and transfers it to the host computer 13 (step S2). Then, the table management unit 360 logs each of the current read access command log, that is, the read (R), the start address (start block address), and the transfer size (transfer block size) which are the W / R types designated by the current read access command. Information is added to the entry in the access command log table 119 pointed to by the next pointer P (step S3). In step S3, the table management unit 360 increments the next pointer P by 1. As a result, the read access process corresponding to the current read access command ends.

  On the other hand, if it is not a cache hit, that is, if it is a cache miss (step S1), the similar command extraction unit 320 in the data access processing unit 300 operates. The similar command extraction unit 320 extracts a log of a command (read access command) similar to the current read access command from the access command log table 119 (step S3).

  In this embodiment, the transfer size is used as an evaluation measure for determining a command similar to the current read access command (similar command). Here, as similar commands, for example, commands having the same W / R type (R) and the same transfer size (similar commands of the first type), or having the same W / R type (R), and It is possible to predefine a command (second type of similar command) whose transfer size is within the same range. The transfer size range (transfer size range) is, for example, less than 2 KB (kilobytes), 2 KB or more and less than 8 KB, 8 KB or more and less than 16 KB, 16 KB or more and less than 64 KB, or 64 KB or more. The transfer size used for the evaluation scale for determining the first type of similar command is, for example, only 2 KB, 8 KB, 16 KB, and 64 KB, and used for the evaluation scale for determining the second type of similar command. It is also possible to define both similar commands of the first and second types by setting the transfer size range to be less than 2KB, for example, less than 2KB, less than 8KB, more than 8KB, less than 16KB, more than 16KB, less than 64KB and more than 64KB. is there.

  The definition of the similar command is managed for the storage control device 11 (internal data access processing unit 300) from, for example, a terminal connected directly or indirectly (via a network or the like) to the storage control device 11 in FIG. Can be performed in accordance with the user's operation. A similar command may be defined by the program 118 stored in the ROM 117.

  In the present embodiment, it is assumed that the W / R type and the transfer size match are defined as an evaluation scale for determining a similar command. That is, in this embodiment, it is assumed that the first type of similar command is defined as the similar command.

  Assume that the W / R type of the current access command is read (R) and the transfer size is 4h (unit is block). In this case, in the example of the access command log table 119 illustrated in FIG. 2, the similar command extraction unit 320 includes a command including information indicating that the W / R type is read (R) and the transfer size is 4h from the table 119. A log of each command stored in an entry in the access command log table 119 having an entry number “0, 3, 5, 8, 10, 13” is extracted as a log of similar commands (step S4). . Hereinafter, for simplification of description, such a command (similar command) is expressed as an access command (or command) having an entry number “0, 3, 5, 8, 10, 13”. The same applies to access commands stored in entries in the access command log table 119 of other entry numbers.

  The log of similar commands extracted by the similar command extraction unit 320 is passed to the access tendency determination unit 330. Then, the access reappearance rate calculation unit 331 in the access tendency determination unit 330 calculates the same region access reappearance rate based on the extracted log of similar commands (step S5). That is, the access reappearance rate calculation unit 331 calculates the recall rate of access to the storage area (same area) designated by the similar command as the same area access reappearance rate based on the extracted log of similar commands. In this example, access commands with entry numbers “0” and “8” and access commands with entry numbers “3” and “13” specify access to the same area. Therefore, the reappearance rate of access to the same area (same area access reappearance rate) is 2/6 = 33%.

  On the other hand, the access appearance rate calculation unit 332 in the access tendency determination unit 330 calculates a neighborhood area access appearance rate based on the extracted log of similar commands (step S6). That is, the access appearance rate calculation unit 332 calculates the appearance rate of access to a region (neighboring region) in the vicinity of the storage region (same region) designated by the similar command based on the extracted similar command log. Calculate as a rate. In the present embodiment, the neighborhood region can be defined in advance in the same manner as an evaluation scale for determining a similar command. Here, it is assumed that an area continuous with a storage area designated by a certain similar command is defined as a neighborhood area. When the neighborhood area is defined in this way, in the example of the access command log table 119 in FIG. 2, any command with the entry number “0, 3, 5, 8, 10, 13” Since the access is to an area that is far away, the near area access appearance rate is 0%.

  Unlike the above example, if the transfer size of the access command from the host computer 13 whose W / R type is read (R) is 100h, the similar command extraction unit 320 displays the access command shown in FIG. From the log table 119, the log of each command with the entry number “2, 9, 12, 14” is extracted as a log of similar commands (step S4). In the example of the log of similar commands, the storage area designated by any command does not match, so the same area access reappearance rate is 0% (step S5). On the other hand, the neighborhood area access appearance rate is 2/4 = 50% because the access command is an area in which the access commands having the entry numbers “2”, “9”, and “14” are consecutive (step S6). . Note that the processing order of steps S5 and S6 may be the reverse of this embodiment.

  The neighborhood region determination unit 333 in the access tendency determination unit 330 determines (estimates) the neighborhood region of the storage region (designated region) designated by the current read access command based on the extracted log of similar commands and the current access command. The neighborhood area determination process (step S7) is performed. The procedure of the neighborhood region determination process (step S7) by the neighborhood region determination unit 333 will be described with reference to the flowchart of FIG.

  First, the neighborhood area determination unit 333 sets (a set of) consecutive storage areas from a group of storage areas having a size matching the transfer size designated by the current read access command based on the extracted similar command log. Is specified (step S7a). In the process of step S7a, narrowing down to a command group that designates access to a storage area (neighboring area) close to each other is first performed from the extracted similar command groups. Then, a group of continuous storage areas is specified based on the storage areas designated by the narrowed command groups.

  Next, the neighborhood region determination unit 333 identifies a similar command (first similar command) executed first in the similar command group corresponding to the identified storage region group (step S7b). The neighborhood area determination unit 333 then identifies the specified storage area group, the storage area corresponding to the specified first similar command in the storage area group, and the storage area (designation specified by the current read access command). Based on the (region), a neighborhood region of the designated region is determined (step S7c). In step S7c, the neighborhood area determination unit 333 confirms that the storage area (first storage area) corresponding to the identified first similar command in the group of identified storage areas corresponds to the specified area. Based on the premise, the neighborhood area of the designated area is determined as follows.

  First, the neighborhood area determination unit 333 sets an area including the specified storage area group in the logical storage device 120 so that the first storage area of the specified storage area group corresponds to the specified area. Corresponding to the storage area (second storage area). Then, the neighborhood area determination unit 333 determines an area excluding the designated area in the second storage area as a neighborhood area of the designated area (a vicinity area of the storage area designated by the current read access command).

  The neighborhood area determined by the neighborhood area determination unit 333 is classified into three types according to the position of the first storage area in the specified group of storage areas. If the first storage area is the head position of the specified group of storage areas, the neighboring area is a storage area adjacent to the rear of the designated area (the side with the larger address). When the first storage area is the final position of the specified group of storage areas, the neighboring area is a storage area adjacent to the front of the designated area (the side with the smaller address). When the first storage area is neither the start position nor the end position of the specified group of storage areas, the neighborhood area is a storage area that is adjacent to the front of the designated area and two storage areas that are adjacent to the rear. It becomes.

  Here, the reason why it is assumed that the first storage area (the storage area corresponding to the first similar command) in the group of specified storage areas corresponds to the designated area. In the present embodiment, when the data in the designated area is a cache miss that is not held in the cache memory 113, and the neighborhood area access appearance rate calculated by the access appearance rate calculation unit 332 is a predetermined value (first value). 2 or more), the data in the vicinity of the designated area is prefetched into the cache memory 113 as described later. For this reason, if an area other than the first storage area (third area) in the group of specified storage areas corresponds to the designated area, the designated area is used when the current read access command is executed. Since the data in the vicinity area including the data has already been prefetched in the cache memory 113, a cache hit should occur. Therefore, a cache miss hit at the time of execution of the current read access command means that the first storage area in the specified group of storage areas corresponds to the designated area.

  Here, the neighborhood area determined by the neighborhood area determination unit 333 will be described in detail with reference to FIG. The continuous storage area 71, storage area 72, and storage area 73 shown in FIGS. 7A to 7C have the same size and represent the group of the specified storage areas. In FIG. 7, it is assumed that the addresses increase in the order of the storage area 71, the storage area 72, and the storage area 73.

  7A, 7 </ b> B, and 7 </ b> C, in the storage areas 71, 72, and 73 that are not hatched, similar commands corresponding to the storage areas correspond to the three storage areas 71 to 73, respectively. Indicates that it is being executed first in a group of similar commands. That is, of the storage areas 71, 72, and 73, the storage area that is not hatched indicates the first storage area.

  7A, 7B, and 7C show storage areas 710, 720, and 730 that are associated with the storage areas 71, 72, and 73, respectively. In FIGS. 7A, 7B, and 7C, storage areas 710, 720, and 730 that are not hatched indicate designated areas, respectively. 7A, 7 </ b> B, and 7 </ b> C, storage areas (first storage areas) that are not hatched among the specified storage areas 71 to 73 are storage areas 710, 720, and 730. The storage area 74 including the storage areas 71 to 73 corresponds to the storage area (second storage area) 740 including the storage areas 710, 720, and 730 so as to correspond to the designated area that is not hatched. It is attached.

  In FIG. 7A, the storage areas 720 and 730 correspond to the storage areas 72 and 73 excluding the storage area (first storage area) 71 among the storage areas 71 to 73. Therefore, in the case of FIG. 7A, a storage area (a storage area that is hatched) including the storage areas 720 and 730 is determined as the neighborhood area 750. In FIG. 7B, the storage areas 710 and 730 correspond to the storage areas 71 and 73 excluding the storage area (first storage area) 72 among the storage areas 71 to 73. Therefore, in the case of FIG. 7B, storage areas (storage areas with hatching) 710 and 730 are determined as neighboring areas 760 and 770, respectively. In FIG. 7C, the storage areas 710 and 720 correspond to the storage areas 71 and 72 excluding the storage area (first storage area) 73 among the storage areas 71 to 73. Therefore, in the case of FIG. 7C, the storage area (the storage area to which hatching is performed) composed of the storage areas 710 and 720 is determined as the neighborhood area 780.

  Here, a specific example of the neighborhood region determination process by the neighborhood region determination unit 333 will be described. Here, as described above, it is assumed that the log of each command having the entry number “2, 9, 12, 14” is extracted as a log of similar commands. In this case, three consecutive storage areas designated by the commands having the entry numbers “2, 9, 14”, that is, a storage area having a start address of 2800h and a size of 100h, a storage address having a start address of 2900h and a size of 100h An area and a storage area having a head address of 3A00h and a size of 100h are specified (step S7a). Of the commands with the entry numbers “2, 9, 14”, the command with the entry number “2” is identified as the head similar command (step S7b).

  Of the three specified storage areas, the storage area (first storage area) having a head address corresponding to the head similar command of 2800h and size of 100h (first storage area) is an area of size 100h specified by the current read access command ( The storage area having a size of 300h (that is, a storage area having a start address of 2800h and a size of 300h) composed of the three specified storage areas has a size of 100h specified by the current read access command. It is made to correspond to a storage area (second storage area) having a size of 300 h including the area (designated area). In this case, similarly to FIG. 7C, a storage area having a size of 200h adjacent to the designated area behind the designated area is determined as a neighboring area (step S7c).

  In the above example, there is one set of groups of continuous storage areas specified based on the extracted log of similar commands. However, a plurality of sets of such groups of continuous storage areas may be specified. In such a case, an average value of the sizes of the plurality of sets may be set as the size of the group of continuous storage areas and the size of the second storage area.

  When extracting commands having the same W / R type and the same transfer size within the same transfer size range as similar commands (second type of similar commands), the storage areas 71 to 71 shown in FIG. Instead of 73 and 710 to 730, a storage area corresponding to the transfer size range to which the storage areas 71 to 73 and 710 to 730 belong may be used.

  Now, the start address and size of the neighborhood area determined by the neighborhood area determination unit 333 are notified to the data access processing determination unit 340 as the prefetch start address and the prefetch size forming the information of the neighborhood area, respectively. The prefetch start address and the prefetch size are used in the data access process when a first data access process (step S11) or a third data access process (step S13) described later is executed.

  Same-area access recurrence rate and neighboring region access appearance rate calculated by the access recurrence rate calculating unit 331 and the access appearance rate calculating unit 332, respectively, and information on the neighboring region determined by the neighboring region determining unit 333 (read-ahead start address) And the information on the prefetch size) are notified to the data access processing determination unit 340. Then, when the W / R type of the current access command is read (R), the cache execution determining unit 341 in the data access processing determining unit 340 has the same area access reappearance rate equal to or higher than a predetermined first threshold. Is determined (step S8). Based on the determination result, the cache execution determination unit 341 determines whether to store (delete) the data specified by the current access command and stored in the cache memory 113 in the cache memory 113.

  On the other hand, the prefetch determination unit 342 in the data access processing determination unit 340 has the neighborhood region access appearance rate when the same region access re-appearance rate is less than the first threshold value or greater than or equal to the first threshold value. It is determined whether it is equal to or greater than a predetermined second threshold (step S9 or S10). Based on the determination result, the prefetch determination unit 342 determines whether or not to prefetch data in the vicinity of the storage area designated by the current access command into the cache memory 113.

  The data access processing determination unit 340 notifies the data access unit 350 of the determination results (determination results) of the cache execution determination unit 341 and the prefetch determination unit 342 described above. Then, based on the notified determination result, the data access unit 350 performs the first data access process (step S11), the second data access process (step S12), the third data access process (step S13), and the fourth data access process. Any one of the data access processes (step S14) is executed.

  First, because the same area access recall is less than the first threshold (step S8 is NO) and the neighboring area access appearance rate is greater than or equal to the second threshold (step S9 is YES), it is specified by the current access command. When deletion of data (designated data) from the cache memory 113 and prefetching of data in the neighboring area are determined, a first data access process (step S11) is executed. Next, since the same region access re-appearance rate is less than the first threshold (step S8 is NO) and the neighborhood region access appearance rate is less than the second threshold (step S9 is NO), the cache memory of the designated data When it is determined to delete from 113 and no prefetching of data in the neighboring area, the second data access process (step S12) is executed. Next, since the same region access re-appearance rate is equal to or higher than the first threshold (step S8 is YES) and the neighboring region access appearance rate is equal to or higher than the second threshold (step S10 is YES), the cache memory of the designated data When holding in 113 and prefetching of data in the neighboring area are determined, a third data access process (step S13) is executed. Since the same area access reappearance rate is equal to or higher than the first threshold (step S8 is YES) and the neighboring area access appearance rate is less than the second threshold (step S10 is NO), the cache memory 113 for the designated data is stored. When it is determined that the data is not stored and the data in the neighboring area is not prefetched, the fourth data access process (step S14) is executed.

  Here, if both the first and second threshold values are 30%, the same area access reappearance rate is equal to or greater than the first threshold value and the appearance of neighboring area accesses in the case of the read access command with the transfer size of 4h described above. The rate is less than the second threshold. In this case, the fourth data access process (step S14) is executed. On the other hand, in the case of the above-described read access command with a transfer size of 100h, the same area access reappearance rate is less than the first threshold value, and the neighboring area access appearance rate is greater than or equal to the second threshold value. In this case, the first data access process (step S11) is executed.

  When any one of the data access processes in steps S11 to S14 is executed, the table management unit 360 executes step S3 as in the case where step S2 is executed.

Next, each data access process (steps S11 to S14) will be described sequentially.
First, the first data access process (step S11) will be described with reference to the flowchart of FIG. The first data access process is a process when the same area access re-appearance rate is low and the vicinity area access appearance rate is high.

  When the same area access reappearance rate is low, it is unlikely that the data read from the logical storage device 120 based on the current read access command will be read again by the read access command newly transmitted from the host computer 13. is expected. Therefore, even if the data read based on the current read access command is held in the cache memory 113, a cache hit cannot be expected for the data in the near future.

  On the other hand, when the neighborhood area access appearance rate is high, it is predicted that there is a high possibility of access to the neighborhood area of the storage area (designated area) designated by the current read access command. Therefore, if the data in the vicinity area of the designated area is prefetched into the cache memory 113 and stored in the cache memory 113, it is expected that the data in the vicinity area will be cache hit in the near future.

  Therefore, in the first data access process, the data access unit 350 stores the data in the storage area (specified area) in the logical storage device 120 specified by the current read access command (data requested from the host computer 13) in the cache memory. In addition, the data in the neighborhood area (indicated by the prefetch start address and the prefetch size) determined by the neighborhood area determination unit 333 is prefetched into the cache memory 113 (step S11a). That is, the data access unit 350 reads data corresponding to “request size from the host computer 13 + prefetch size” into the cache memory 113.

  Next, the data access unit 350 transfers the data requested from the host computer 13 among the data read into the cache memory 113 to the host computer 13 (step S11b). After the data transfer, the data access unit 350 immediately deletes the data from the cache memory 113 and releases the area in the cache memory 113 that holds the data (step S11c). Thus, the first data access process ends.

  As a result of the processing in step S11c, it is possible to eliminate waste of occupying the area in the cache memory 113 with data that is unlikely to be read again. On the other hand, since the cache memory 113 holds the data in the neighborhood area that is prefetched in the cache memory 113 and is likely to be accessed from the host computer 13, the data is requested from the host computer 13. The data can be immediately transferred to the host computer 13.

  As described above, in the present embodiment, the best effect of the cache memory 113 can be obtained by preferentially allocating a limited area (cache memory resource) of the cache memory 113 to a more effective access. it can. In addition, in determining whether the access is more effective (that is, the same area access reappearance rate or the neighboring area access appearance rate is high), the access tendency specified by the command string including the current access command itself is used. Instead, a command access tendency similar to the current access command extracted from the access command log table 119 is used. For this reason, even when accesses from the host computer 13 exist in a variety of mixed manners at the same time, it can be completed with a small access command sequence (number of times less than the prefetch threshold described in Patent Document 2). Even in the case of sequential access, it is possible to easily determine the optimum data access process corresponding to the current access command that accompanies access to the cache memory 113. In addition, since it is possible to easily cope with a case where accesses from the host computer 13 exist in a mixed manner at the same time, even if the capacity of the logical storage device is increased, the statistics applied by the technique described in Patent Document 1 are used. It is possible to suppress an increase in storage capacity required for an access command log table that holds an access command log corresponding to information.

  Next, the second data access process (step S12) will be described with reference to the flowchart of FIG. The second data access process is a process when the same area access reappearance rate is low and the vicinity area access appearance rate is also low. When the same area access reappearance rate is low, as described above, it is unlikely that data read based on the current read access command will be read again in the near future. In addition, when the neighborhood area access appearance rate is low, it is unlikely that access to the neighborhood area of the designated area will occur in the near future.

  Therefore, in the second data access process, the data access unit 350 caches only data in the storage area (designated area) in the logical storage device 120 designated by the current read access command (data requested from the host computer 13). The data is read into the memory 113 (step S12a).

  Next, the data access unit 350 transfers the data read into the cache memory 113 (data requested from the host computer 13) to the host computer 13 (step S12b). After the data transfer, the data access unit 350 immediately deletes the data from the cache memory 113 and releases the area in the cache memory 113 that holds the data (step S12c). Thus, the second data access process ends.

  Next, the third data access process (step S13) will be described with reference to the flowchart of FIG. The third data access process is a process when the same area access reappearance rate is high and the vicinity area access appearance rate is also high. If the same area access reappearance rate is high, there is a high possibility that data read based on the current read access command will be read again in the near future. Further, when the neighborhood area access appearance rate is high, it is highly likely that access to the neighborhood area of the designated area will occur in the near future as described above.

  Therefore, in the third data access process, the data access unit 350 stores the data in the storage area (designated area) in the logical storage device 120 designated by the current read access command in the same way as the first data access process. While reading into the cache memory 113, data in the neighborhood area (indicated by the prefetch start address and the prefetch size) determined by the neighborhood area determination unit 333 is prefetched into the cache memory 113 (step S13a).

  Next, the data access unit 350 transfers the data requested from the host computer 13 among the data read into the cache memory 113 to the host computer 13 (step S13b). Thus, the third data access process ends. As described above, in the third data access process, the data in the designated area requested from the host computer 13 is held in the cache memory 113 and the data in the vicinity area is prefetched into the cache memory 113.

  Next, the fourth data access process (step S14) will be described with reference to the flowchart of FIG. The fourth data access process is a process when the same area access re-appearance rate is high and the vicinity area access appearance rate is low. In such a case, there is a high possibility that data read from the designated area will be read again in the near future, but it is unlikely that access to the neighboring area will occur in the near future.

  Therefore, in the fourth data access process, the data access unit 350 caches only data in the storage area (specified area) in the logical storage device 120 specified by the current read access command (data requested from the host computer 13). The data is read into the memory 113 (step S14a).

  Next, the data access unit 350 transfers the data read into the cache memory 113 (data requested from the host computer 13) to the host computer 13 (step S14b). Thus, the fourth data access process ends.

  As described above, in the present embodiment, data that can be expected to have a cache hit is preferentially held in the cache memory 113, and data that is expected to be accessed later is read in advance from the logical storage device 120. By holding in the cache memory 113, it is possible to effectively use a limited storage area (cache memory resource) of the cache memory 113, improve the cache hit rate, and consequently improve the access performance.

Next, write access processing executed in the data access processing unit 300 will be described with reference to the flowchart of FIG.
Assume that an access command (write access command, that is, a write request) whose W / R type is write (W) is transmitted from the host computer 30 to the storage controller 11 via the host connection interface 21. When the write access command is received by the storage control device 11, the data access processing unit 300 performs the following write access processing.

  First, the similar command extraction unit 320 extracts a log of a command (write access command) similar to the current write access command from the access command log table 119, as in the case of the read access command described above (step S21).

  Then, the access reappearance rate calculation unit 331 in the access tendency determination unit 330 calculates the same region access reappearance rate based on the extracted log of similar commands (step S22). On the other hand, the access appearance rate calculation unit 332 in the access tendency determination unit 330 calculates a neighborhood area access appearance rate based on the extracted log of similar commands (step S23). These steps S22 and S23 are performed in the same manner as steps S5 and S6 in the read access process described above.

  When the W / R type of the current access command is write (W), the destaging delay determining unit 343 in the data access processing determining unit 340 is the same area access reappearance rate calculated by the access reappearance rate calculating unit 331 or It is determined whether the neighborhood area access appearance rate calculated by the access appearance rate calculation unit 332 is equal to or greater than a first threshold value or a second threshold value (here, the first threshold value = the second threshold value) (step S1). S24).

  If the same area access reappearance rate or neighborhood area access appearance rate is equal to or greater than a threshold (first threshold or second threshold), the same area or neighborhood as the storage area (specified area) specified by the current access command It is predicted that access to the area is likely to occur in the near future.

  Accordingly, the destaging delay determination unit 343 stores the write data specified by the current write access command from the host computer 13 in the cache memory 113 based on the determination result in step S24, and then stores the write data in the logical storage device 120 ( It is determined whether the processing (destaging) to be written to the HDD 12) that is configured to be delayed or immediately executed. Specifically, when the same region access reappearance rate or the neighboring region access appearance rate is equal to or greater than the threshold (YES in step S24), the destaging delay determination unit 343 determines the destaging delay. On the other hand, when the same region access reappearance rate or the neighboring region access appearance rate is less than the threshold value (NO in step S24), the destaging delay determination unit 343 determines to perform destaging immediately.

  The determination result (determination result) by the destaging delay determination unit 343 is notified to the data access unit 350. Then, the data access unit 350 executes one of steps S25 and S26 as follows based on the notified determination result.

  First, it is assumed that the destaging delay is determined as a result of determining that the same area access re-appearance rate is equal to or greater than a threshold (first threshold). In this case, the data access unit 350 stores the write data specified by the current write access command from the host computer 13 in the cache memory 113 in a mode (first mode) in which destaging to the logical storage device 120 is delayed. (Step S25). As a result, there is a high possibility that a write access to the same area as the storage area (specified area) specified by the current write access command will occur, so that the cache memory 113 will transfer to the same area in the logical storage device 120. It is possible to prevent the number of data destaging (the number of writes) from increasing.

  Similarly, it is assumed that the destaging delay is determined as a result of determining that the neighborhood area access appearance rate is equal to or higher than the threshold. Also in this case, the data access unit 350 uses the cache memory 113 to write the write data specified by the current write access command from the host computer 13 in the first mode (the mode in which destaging to the logical storage device 120 is delayed). (Step S25). As a result, when a write access to a neighboring area of the storage area (designated area) designated by the current write access command occurs, data is collectively transferred from the cache memory 113 to the designated area and neighboring area in the logical storage device 120. Can be written, and the number of times of destaging (number of times of writing) can be reduced.

  In general, since the performance of the logical storage device 120 (the HDD 12 constituting the logical storage device 120) is lower than that of the host computer 13 and the cache memory 113, access to the storage device 120 often becomes a bottleneck when the access load increases. For this reason, reducing the number of writes to the logical storage device 120 contributes to an improvement in access performance. Further, since the period for which the write data is held in the cache memory 113 becomes long, when a read access command for requesting reading of the data is sent from the host computer 13, a cache hit occurs and the host computer 13 is informed. There is also an effect that can respond at high speed.

  On the other hand, as a result of determining that both the same region access reappearance rate and the neighboring region access appearance rate are equal to or less than the threshold value, it is determined that the destaging is performed immediately. In this case, the data access unit 350 stores the write data specified by the current write access command from the host computer 13 in the cache memory 113 in a mode (second mode) in which destaging to the logical storage device 120 is performed immediately. (Step S26). In the second mode, after the write data stored in the cache memory 113 is immediately destaged, the data is deleted from the cache memory 113, and the area in the cache memory 113 in which the data is held is changed. To be released.

  When both the same area access reappearance rate and the neighboring area access appearance rate are equal to or less than the threshold value, it cannot be expected that the same area or the neighboring area will be accessed in the near future. In such a case, holding the write data designated by the current write access command in the cache memory 113 reduces the utilization efficiency of the cache memory 113. However, in this embodiment, the write data is stored in the cache memory 113 in the second mode (step S26). Therefore, the destaging of the write data stored in the cache memory 113 is immediately performed, and thereafter the data is deleted from the cache memory 113 and the corresponding area in the cache memory 113 is released. Thereby, it is possible to prevent the use efficiency of the cache memory 113 from being lowered.

  When one of steps S25 and S26 is executed, the table management unit 360 logs the current write access command, that is, the write (W) that is the W / R type specified by the current write access command, the head address, and the transfer. Each size information is added to the entry in the access command log table 119 pointed to by the next pointer P (step S27). In step S27, the table management unit 360 increments the next pointer P by 1. As a result, the write access process corresponding to the current write access command ends.

  Note that the access tendency determination unit 330 may have only one of the access reappearance rate calculation unit 331 and the access appearance rate calculation unit 332. In the read access process when the access tendency determination unit 330 has only the access reappearance rate calculation unit 331, the data access processing determination unit 340 determines the second data access according to the same area access reappearance rate. The process or the fourth data access process may be determined. Similarly, in the read access process when the access tendency determination unit 330 has only the access appearance rate calculation unit 332, the data access process determination unit 340 performs the third data access process according to the neighborhood area access appearance rate. Alternatively, the fourth data access process may be determined.

[Modification]
Next, a modification of the above embodiment will be described. The feature of this modified example is that the storage area of the logical storage device 120 is divided into a plurality of zones, and the processing including extraction of similar commands applied in the above embodiment is applied to each zone.

  FIG. 9 shows a logical storage device 120 divided into a plurality of zones and a zone management table 90 for managing the plurality of zones. In the example of FIG. 9, the storage area of the logical storage device 120 is managed by being divided into M + 1 zones Z0 (# 0), Z1 (# 1), Z2 (# 2),... ZM (#M). Here, the sizes of the zones Z0 to ZM may be uniform or non-uniform. If a use is predetermined for each partial area in the logical storage device 120, a zone may be defined for each area.

  The zone management table 90 has M + 1 entries that match the number of zones in the logical storage device 120. The entry with the entry number i (i = 0 to M) in the zone management table 90 is used to hold information (zone information) of the zone Zi of the zone number i that matches the entry number i. Each entry of the zone management table 90 includes fields 91 and 92. The fields 91 and 92 of the entry with the entry number i (i = 0 to M) in the table 90 hold information on the start address (start block address) and size (block size) of the zone Zi of the zone number i, respectively. Used.

  As described above, the entry of the entry number i in the zone management table 90 is used to hold information on the zone Zi of the zone number i that matches the entry number i. Therefore, even if each entry in the zone management table 90 does not have a field for holding the zone number of the corresponding zone Zi, the corresponding zone Zi can be specified from the entry number i of the entry. Of course, each entry of the zone management table 90 may have a field for holding the zone number of the corresponding zone Zi.

  In this modification, an access command log table 119 having a structure shown in FIG. 2 is prepared for each of the zones Z0 to ZM. When extracting a similar command log based on an access command from the host computer 13, the similar command extraction unit 320 refers to the zone management table 90 and stores in the access command log table 119 specified by the access command. It is determined to which of the zones Z0 to ZM the area (designated area) belongs. The similar command extraction unit 320 extracts a log of similar commands based on the access command log table 119 corresponding to the determined zone.

  In this way, by applying the processing including extraction of similar commands, which is applied in the above embodiment, for each zone, when there is locality in the access tendency, the same region access reappearance rate and the neighborhood The effect of improving the accuracy of determining the area access appearance rate can be expected.

  When a plurality of logical storage devices are provided to the host computer 13, a zone management table 90 is prepared for each logical storage device, and an access command log table 119 is prepared for each logical storage device and for each zone. It ’s fine.

  The present invention is not limited to the above-described embodiment or its modification as it is, and can be embodied by modifying the components without departing from the scope of the invention in the implementation stage. In addition, various inventions can be formed by appropriately combining a plurality of constituent elements disclosed in the embodiment or its modification. For example, you may delete a some component from all the components shown by embodiment or its modification.

The block diagram which shows the structure of the computer system which concerns on one Embodiment of this invention. The figure which shows the data structure example of the access command log table shown by FIG. 1 matched with a next pointer. The block diagram which shows the structure of the data access processing apparatus implement | achieved in the storage control apparatus shown by FIG. 6 is a flowchart showing a procedure of read access processing in the embodiment. 5 is a flowchart showing a procedure of neighborhood region determination processing in the flowchart of FIG. 4. 5 is a flowchart showing a procedure of first to fourth data access processes in the flowchart of FIG. 4. The figure for demonstrating the said vicinity area determination process. 6 is a flowchart showing the procedure of write access processing in the embodiment. The figure which shows the logical storage apparatus divided | segmented into the several zone applied in the modification of the embodiment, and the zone management table for managing the said several zone.

Explanation of symbols

  DESCRIPTION OF SYMBOLS 11 ... Storage control device, 12 ... HDD (storage device), 13 ... Host computer, 30 ... Data access processing device, 90 ... Zone management table, 113 ... Cache memory, 115 ... Microprocessor, 116 ... Memory (local memory), 117 ... ROM, 118 ... program, 119 ... access command log table, 120 ... logical storage device, 300 ... data access processing unit, 310 ... cache hit determination unit, 320 ... similar command extraction unit, 330 ... access tendency determination unit, 331 ... access reappearance rate calculation unit, 332 ... access appearance rate calculation unit, 333 ... neighboring region determination unit, 340 ... data access processing determination unit, 341 ... cache execution determination unit, 342 ... prefetch determination unit, 343 ... destaging delay determination Part, 350... Data access part, 36 ... table management unit.

Claims (10)

  1. A host computer and at least one storage device are connected, and a logical storage device is provided to the host computer using a part or all of the storage device, and between the host computer and the storage device. A cache memory faster than the storage device for temporarily storing read / write data designated by the access command from the host computer, and an access type designated by the access command, And an access command log table for holding, as a log of the access command, a start address indicating an area in the logical storage device specified by the access command and information on a transfer size or a transfer size range to which the transfer size belongs. The host executed in the storage controller A data access processing method for processing data access according to the access command from the computer,
    By referring to the access command log table based on the current access command to be processed this time given from the host computer to the storage controller, the same access type as the current access command and the same transfer as the current access command Extracting a log of all access commands having a size or the same transfer size range as a log of similar commands having similar characteristics to the current access command;
    Based on the extracted log of similar commands, the ratio of the number of similar commands specifying the same area to the number of extracted similar commands is the ratio of the same area access that is the ratio at which the access to the same area appears again Calculating the reappearance rate;
    Predicting whether or not the reproducibility of access to the area specified by the current access command is high based on whether the calculated same area access reappearance rate is equal to or higher than a predetermined first threshold, and the prediction based on the results, the a data access processing corresponding to the current access command, the data access processing including processing with access to the cache memory intended for read / write data designated by said current access command A step to determine;
    Executing the determined data access process;
    Adding a log of the current access command to the address command log table.
  2. In the step of determining the data access processing, the current access is determined based on an access type designated by the current access command and whether the calculated same area access reappearance rate is equal to or higher than the first threshold. It is determined whether or not the data specified by the command is held in the cache memory, or whether or not the destaging timing for writing the data specified by the current access command from the cache memory to the logical storage device is delayed. The data access processing method according to claim 1 .
  3. In the step of determining the data access processing, when the access type specified by the current access command is read, the current access access reappearance rate is calculated based on whether the calculated same area access reappearance rate is equal to or higher than the first threshold. The data access processing method according to claim 2 , wherein it is determined whether data specified by an access command is to be held in the cache memory.
  4. In the step of determining the data access process, when the access type specified by the current access command is write, the current access command is determined based on whether the calculated same area access reappearance rate is equal to or higher than the first threshold. 3. The data access processing method according to claim 2, wherein whether to delay the destaging timing for writing the data designated by the access command from the cache memory to the logical storage device is determined.
  5. Based on the log of the extracted similar commands, the ratio of the number of other similar commands specifying the area near the area specified by the similar command to the number of similar commands extracted A step of calculating as a neighborhood area access appearance rate, which is a rate at which accesses appear,
    In the step of determining the data access process , an access to an area in the vicinity of an area designated by the current access command is performed based on whether the calculated neighborhood area access appearance rate is equal to or higher than a predetermined second threshold. The process with access to the cache memory for the read / write data designated by the current access command or the designation of the current access command is specified based on the prediction result. The data access processing method according to claim 1, wherein a data access process including a process involving access to the cache memory targeted for data in an area near the area is determined.
  6. In the step of determining the data access processing, the current access command is determined based on an access type designated by the current access command and whether the calculated neighborhood area access appearance rate is equal to or higher than the second threshold value. Whether to prefetch the data in the area near the area designated by the cache memory, or to delay the destaging timing for writing the data designated by the current access command from the cache memory to the logical storage device The data access processing method according to claim 5, wherein: is determined.
  7. In the step of determining the data access processing, when the access type specified by the current access command is read, the current access is determined based on whether the calculated neighborhood area access appearance rate is equal to or higher than the second threshold. The data access processing method according to claim 6 , wherein whether to prefetch data in an area in the vicinity of an area designated by a command into the cache memory is determined.
  8. In the step of determining the data access processing, when the access type specified by the current access command is write, the current access is determined based on whether the calculated neighborhood area access appearance rate is equal to or higher than the second threshold. 7. The data access processing method according to claim 6, wherein whether to delay the destaging timing for writing the data designated by the command from the cache memory to the logical storage device is determined.
  9. The entire storage area of the logical storage device is divided into a plurality of zones and managed,
    The storage controller has the access command log table for each zone,
    In the extracting step, the access command log table corresponding to the zone to which the area specified by the current access command belongs is referred to,
    In the step of adding, in any one of claims 1 to 8, wherein said that the log of the current access command is added to said access command log table corresponding to the zone in which the specified region belongs of the current access command The data access processing method described.
  10. A host computer and at least one storage device are connected, and a logical storage device is provided to the host computer using a part or all of the storage device, and between the host computer and the storage device. In the storage control device that processes the data transfer of
    A cache memory faster than the storage device for temporarily storing read / write data designated by an access command from the host computer;
    The access type specified by the access command and the start address indicating the area in the logical storage device specified by the access command and the transfer size or the transfer size range information to which the transfer size belongs are stored as a log of the access command. Access command log table for
    By referring to the access command log table based on the current access command to be processed this time given from the host computer to the storage controller, the same access type as the current access command and the same transfer as the current access command Similar command extraction means for extracting logs of all access commands in the size or the same transfer size range as logs of similar commands similar in characteristics to the current access command,
    Based on the extracted log of similar commands, the ratio of the number of similar commands specifying the same area to the number of extracted similar commands is the ratio of the same area access that is the ratio at which the access to the same area appears again Same area access re-appearance rate calculating means for calculating the re-appearance rate,
    Predicting whether or not the reproducibility of access to the area specified by the current access command is high based on whether the calculated same area access reappearance rate is equal to or higher than a predetermined first threshold, and the prediction based on the results, the a data access processing corresponding to the current access command, the data access processing including processing with access to the cache memory intended for read / write data designated by said current access command A data access process determining means for determining; a data access means for executing the determined data access process;
    A storage control device comprising: table management means for managing the access command log table and adding a log of the current access command to the address command log table.
JP2007135602A 2007-05-22 2007-05-22 Data access processing method and storage control device Active JP4558003B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2007135602A JP4558003B2 (en) 2007-05-22 2007-05-22 Data access processing method and storage control device

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2007135602A JP4558003B2 (en) 2007-05-22 2007-05-22 Data access processing method and storage control device

Publications (2)

Publication Number Publication Date
JP2008293111A JP2008293111A (en) 2008-12-04
JP4558003B2 true JP4558003B2 (en) 2010-10-06

Family

ID=40167794

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2007135602A Active JP4558003B2 (en) 2007-05-22 2007-05-22 Data access processing method and storage control device

Country Status (1)

Country Link
JP (1) JP4558003B2 (en)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6160240B2 (en) * 2013-05-23 2017-07-12 富士通株式会社 Information processing apparatus, information processing system, information processing apparatus control method, and information processing apparatus control program
JP2015207123A (en) 2014-04-18 2015-11-19 富士通株式会社 Storage device, storage control method, and storage control program
JP6107761B2 (en) * 2014-08-04 2017-04-05 日本電気株式会社 Disk array device and method for controlling disk array device

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003044358A (en) * 2001-07-31 2003-02-14 Mitsubishi Electric Corp Cache memory controller
JP2004078755A (en) * 2002-08-21 2004-03-11 Hitachi Ltd Information processing system
JP2006072789A (en) * 2004-09-03 2006-03-16 Hitachi Ltd Storage system and data management device of the same
JP2007058728A (en) * 2005-08-26 2007-03-08 Hitachi Ltd Data transfer system

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4987533A (en) * 1988-05-05 1991-01-22 International Business Machines Corporation Method of managing data in a data storage hierarchy and a data storage hierarchy therefor with removal of the least recently mounted medium
US5634109A (en) * 1994-06-20 1997-05-27 International Business Machines Corporation Method and system for enhanced data management efficiency in memory subsystems utilizing redundant arrays of disk memory devices and a nonvolatile cache
JPH08147216A (en) * 1994-11-17 1996-06-07 Hitachi Ltd Data processor
JP3373360B2 (en) * 1996-06-13 2003-02-04 沖電気工業株式会社 Disk array device
JP3282525B2 (en) * 1996-12-20 2002-05-13 松下電器産業株式会社 Data management device and network data management system
JPH10301847A (en) * 1997-04-30 1998-11-13 Nec Corp Data storage device
JP3400328B2 (en) * 1997-12-26 2003-04-28 株式会社日立製作所 Data storage method and data storage device

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003044358A (en) * 2001-07-31 2003-02-14 Mitsubishi Electric Corp Cache memory controller
JP2004078755A (en) * 2002-08-21 2004-03-11 Hitachi Ltd Information processing system
JP2006072789A (en) * 2004-09-03 2006-03-16 Hitachi Ltd Storage system and data management device of the same
JP2007058728A (en) * 2005-08-26 2007-03-08 Hitachi Ltd Data transfer system

Also Published As

Publication number Publication date
JP2008293111A (en) 2008-12-04

Similar Documents

Publication Publication Date Title
US8176251B2 (en) Dynamic optimization of cache memory
Wang et al. An efficient design and implementation of LSM-tree based key-value store on open-channel SSD
Zhou et al. Second-level buffer cache management
JP2008525919A (en) Method for programmer-controlled cache line eviction policy
Lee et al. A log buffer-based flash translation layer using fully-associative sector translation
CN1240000C (en) Determination of input/output page delete with improved super high speed storage ability
CA2894936C (en) Controller, flash memory apparatus, and method for writing data into flash memory apparatus
US8832357B2 (en) Memory system having a plurality of writing mode
JP2015518987A (en) Specialization of I / O access patterns for flash storage
US6807607B1 (en) Cache memory management system and method
CN100476760C (en) Method, system and apparatus for hierarchical cache line replacement
JP2010191638A (en) Cache device
US7260684B2 (en) Trace cache filtering
Jo et al. FAB: flash-aware buffer management policy for portable media players
Park et al. CFLRU: a replacement algorithm for flash memory
Li et al. CCF-LRU: a new buffer replacement algorithm for flash memory
US20080086599A1 (en) Method to retain critical data in a cache in order to increase application performance
JP2011128998A (en) Semiconductor storage device
US20060026364A1 (en) Multi-level page cache for enhanced file system performance via read ahead
US8255630B1 (en) Optimization of cascaded virtual cache memory
US7623134B1 (en) System and method for hardware-based GPU paging to system memory
KR101361928B1 (en) Cache prefill on thread migration
US7584327B2 (en) Method and system for proximity caching in a multiple-core system
JP2000250813A (en) Data managing method for i/o cache memory
US10191688B2 (en) Memory system and information processing system

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20100302

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20100506

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20100622

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20100720

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130730

Year of fee payment: 3

S531 Written request for registration of change of domicile

Free format text: JAPANESE INTERMEDIATE CODE: R313531

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

S533 Written request for registration of change of name

Free format text: JAPANESE INTERMEDIATE CODE: R313533

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350