WO1999040516A1 - Disk cache control method, disk array device, and storage device - Google Patents

Disk cache control method, disk array device, and storage device Download PDF

Info

Publication number
WO1999040516A1
WO1999040516A1 PCT/JP1998/000463 JP9800463W WO9940516A1 WO 1999040516 A1 WO1999040516 A1 WO 1999040516A1 JP 9800463 W JP9800463 W JP 9800463W WO 9940516 A1 WO9940516 A1 WO 9940516A1
Authority
WO
WIPO (PCT)
Prior art keywords
disk
area
access frequency
disk cache
cache
Prior art date
Application number
PCT/JP1998/000463
Other languages
English (en)
French (fr)
Inventor
Yoshifumi Takamoto
Kiyohiro Obara
Original Assignee
Hitachi, Ltd.
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 Hitachi, Ltd. filed Critical Hitachi, Ltd.
Priority to EP98901506A priority Critical patent/EP1061449A4/en
Priority to PCT/JP1998/000463 priority patent/WO1999040516A1/ja
Priority to US09/601,480 priority patent/US6748487B1/en
Publication of WO1999040516A1 publication Critical patent/WO1999040516A1/ja

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/12Replacement control
    • G06F12/121Replacement control using replacement algorithms
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0866Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches for peripheral storage systems, e.g. disk cache
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • 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
    • G06F12/122Replacement control using replacement algorithms of the least frequently used [LFU] type, e.g. with individual count value
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/31Providing disk cache in a specific location of a storage system
    • G06F2212/312In storage controller

Definitions

  • the present invention relates to a disk cache control method, a disk display device, and a storage device.
  • the present invention relates to a cache control method for a disk array, and particularly to an efficient cache control in accordance with an application access.
  • a magnetic disk device with high cost performance is generally used as a device for storing computer data.
  • a magnetic disk is a mechanism that reads and writes data using multiple magnetic disks of about 2.5 inches or 3.5 inches and magnetic heads provided on both sides of each magnetic disk.
  • Disk cache is "Understanding I / OS ubsystems First Edition", W. David Schwaderer, Andrew W. ⁇ ⁇ 1 1 3 011, _1 1 ⁇ ., 3 £ 6 2 5 3
  • drive data from a magnetic disk (hereinafter abbreviated as drive) is held in a high-speed semiconductor memory (disk cache) provided in a control device that controls the drive.
  • the drive access is speeded up by transferring the data in the disk cache to the host without accessing the drive.
  • a write completion notification is sent to the host.
  • the written data is written to the specified location of the drive when the disk controller is idle or at regular intervals. In addition, it is protected by a battery so that data is not lost even in case of sudden power failure.
  • Disk cache has the effect of speeding up both the reading and writing of data. But di The squash consists of semiconductor memory, which is more expensive than the drive, and cannot store all data on the drive.
  • the capacity of the disk cache is about 4 GB, which is about 1% of the total drive capacity.
  • any data in the disk cache must be evicted.
  • the newly stored data is written to the evict area. This is called a cache replace. "Understanding I / 0 Subsystems First Edition," W. David Schwaderer, Andrew W. Wi 1 son, Jr., 365-253-3261, 1? 0 (?; 51 I First Out) method and LRU (least recently used) method are described.
  • FIFO is a first-in, first-out method, with the oldest data being evicted in the evening.
  • FIF 0 is effective in the case of an access characteristic that can be accessed sequentially.
  • the FIFO is flushed regardless of the frequency of access, so it is not suitable for random characteristics. For example, even if there is frequently accessed data, the data is flushed out in order by the FIFO method, so the possibility of remaining in the disk cache at the next access is low. Therefore, LRU is often used for cache control.
  • LRU is a method of reusing the least frequently accessed area when the cache area is all in use and one of the areas must be allocated for other data. is there.
  • the LRU method In the LR method, data with a high access frequency tends to remain in the disk cache, so that the hit rate of the cache can be increased compared to FIF0.
  • the LRU method is used not only in disk cache but also in a wide range of fields such as instruction cache in processors and buffer control of database systems. The reason that control according to the access characteristics is possible and that the control overhead is small is the reason why it is widely used.
  • the LRU method can be expected to be effective when cache access is stable. Control cannot be performed well when it changes dynamically. This is because the access characteristics are dynamically changed and the access frequency sampling and disk cache control are shifted. In order to solve this problem, Japanese Patent Publication No.
  • Hei 7-995508 discloses a stochest descent method (steepestdescentmethod) and a disk cache miss rate function that can cope with dynamic changes.
  • a disk cache control method is described. From the steepestdescentmethod and the skew cache miss rate function, a method is used in which the area division using the disk cache is changed so that the disk cache miss rate is minimized. is there.
  • Disk arrays are described in “Understanding I / 0 Subsystems First Edition”, W. David Schwaderer, Andrew W. Wilson, Jr., pages 271-291. In this way, by distributing data to multiple drives and storing redundant data in the drives, this method improves performance and reliability. Larger systems require more drive capacity and use disk arrays because performance and reliability are required at the same time. As the capacity, performance, and reliability of disk arrays have been improved, access cases have increased due to the concentration of many application programs on a single disk array controller. In this case, a single disk cache area will be used in conflict by multiple applications. Disclosure of the invention
  • the standard LR method used in cache control uses only the access frequency for control, so multiple applications such as an environment using a disk array are multiplexed. Efficient control is not possible in an operating environment. For example, suppose that there are two JOBs with different access characteristics, J0B1 accesses a local disk area, J0B2 accesses a wide area, and the access frequency is the same for both. This place In this case, the LRU scheme allocates almost the same cache area to two JOBs because the access frequency is the same. However, since JOB 2 accesses a wide area, even if a cache area is allocated, the improvement rate of the hit rate is low, and the cache control becomes inefficient as a whole.
  • the disk cache control method described in Japanese Patent Publication No. 7-99508 can cope to some extent even when a plurality of applications operate simultaneously, such as a disk array. . Divide the disk cache area into multiple cache pools and adjust the size of each cache pool so that the miss rate is reduced by the cache miss rate function and the steepest descent method. This is a method to improve the disk cache hit rate.
  • the disk cache control method described in Japanese Patent Publication No. 7-99508 is a method of increasing or decreasing the cache in units of a cache pool having a large capacity. Because the management unit is large, when multiple applications use the same pool at the same time, the access of multiple applications is averaged, and it is not possible to detect accurate access characteristics.
  • the present invention detects the distribution of the access frequency, and controls to allocate more cache area to the volume where the distribution of the access frequency is localized. , Conversely, if it is widely distributed In this case, control is performed so that the cache area is not allocated. More specifically, means for dividing the volume area into areas of an arbitrary fixed length, obtaining the access frequency for each area, and preferentially removing the access area from the cache area storing the area with a low access frequency. Having.
  • FIG. 1 shows an overall configuration diagram in Embodiment 1 of the present invention.
  • FIG. 2 shows the relationship between the drives of the disk array and the volumes in the first embodiment of the present invention.
  • Figure 3 shows how to use the cache area.
  • FIG. 4 shows a volume when the file capacities are different.
  • Figure 5 shows two types of access characteristics with different IZO working sets.
  • FIG. 6 shows a cache management table according to the first embodiment of the present invention.
  • FIG. 7 shows a disk-reading program flow according to the first embodiment of the present invention.
  • FIG. 8 shows a disk array write program port according to the first embodiment of the present invention.
  • FIG. 9 shows a cache allocation flow in the first embodiment of the present invention.
  • FIG. 10 shows a configuration of the access characteristic table according to the first embodiment of the present invention.
  • FIG. 11 shows a management area of the access characteristic table in the first embodiment of the present invention.
  • FIG. 12 shows an access characteristic table switching port in the first embodiment of the present invention.
  • FIG. 13 shows a method of switching the access characteristic table in the first embodiment of the present invention.
  • FIG. 14 shows the configuration of the cache unit according to the first embodiment of the present invention.
  • FIG. 15 shows the removal control of the busy queue in the first embodiment of the present invention.
  • FIG. 16 shows a busy queue registration flow in the first embodiment of the present invention.
  • FIG. 17 shows the effect of the first embodiment of the present invention.
  • FIG. 18 shows a flow at the time of power off in the first embodiment of the present invention.
  • FIG. 19 shows a flow at the time of power-on in the first embodiment of the present invention.
  • FIG. 20 shows a volume in which a plurality of IZO working sets exist in the second embodiment of the present invention.
  • FIG. 21 shows the relationship between the volume address and the increment value in the second embodiment of the present invention.
  • FIG. 22 is an overall configuration diagram according to the third embodiment of the present invention.
  • FIG. 23 shows a configuration of an application according to the third embodiment of the present invention.
  • FIG. 24 shows a configuration of the access characteristic table according to the third embodiment of the present invention.
  • FIG. 1 is a schematic configuration diagram of a computer system to which a disk cache control method according to the present invention is applied.
  • 101 is a host processor
  • 122 is a disk array controller.
  • Drives 1 17 to 1 2 1 are connected to the disk controller 1 2 2.
  • the disk array controller 122 interprets the I / O request and sends the request to a given drive 117-121. Perform input and output.
  • the disk array controller 122 includes a host controller 103, a control processor 104, a memory 108, a drive controller 112 to 116, and a bus connecting these components.
  • the host control unit 103 receives the input / output request issued from the host 101 and performs control to notify the host of the end of the processing.
  • the drive control units 112 to 116 perform input / output control of data for connection of the drives 117 to 121.
  • the host control unit 103 and the drive control units 112 to 116 operate and start / end and data transfer instructions are issued from the control processor 104.
  • the operation of the control processor 104 is described in a program or a table stored in the memory 108.
  • the disk array read program 106 controls the input request issued from the host 101, and the disk array write program 107 controls the host 101. This is a control program for controlling the output request issued from.
  • the cache area allocation program 109 allocates a cache area 108 for storing data.
  • the access characteristic table 110 stores information on characteristics of input / output issued from the host 101.
  • the cache area is an area for temporarily storing data read from the drives 117 to 121, and is used when the same data is read again from the host 101. By returning data from the cache area 108 to the host 101, the input / output response can be sped up.
  • When a write request is issued from the host 101 it is used to temporarily hold write data in the cache area 108. Since the write completion report is sent to the host 101 when data is stored in the cache area 108, it can be seen that the write has been performed at high speed.
  • FIG. 2 shows the relationship between drives and volumes in a disk array.
  • the disk array controls multiple drives.
  • a volume is a unit of area managed by a host.
  • a volume is horizontally divided into a plurality of drives in order to enhance the parallel operation of a plurality of drives is generally used.
  • reference numerals 250 to 254 denote drives
  • reference numerals 255 to 258 denote volumes which are host management units.
  • FIG. 3 shows the basic operation of the cache area 108. This shows a situation in which application 1 (201) and application 2 (202) are running at the same time in host 101. If the data requested by application 1 (: 201) and application 2 (202) is not stored in the cache area 108, a predetermined volume 208 is stored. Data is read from ⁇ 2-12 and stored in the cache area 108, and the data is transferred to each application. Volume 208 to 212 and host 10
  • the input / output unit of 1 is 512 bytes to 4K bytes, and the cache area 108 is about 64K bytes. The reason why the cache unit 108 has a large input / output unit is to prevent the cache hit search performance from deteriorating and to reduce the capacity of the management area.
  • staging when a cache miss occurs or when a cache is expelled from a disk, it is performed in units of 64 Kbytes. This operation is called staging. Since the unit of staging is larger than the input / output unit of the host 101, data other than the data requested by the host 101 is staged at the same time during staging. This is a prefetch or batch write effect in the case of sequential access, which contributes to speeding up.
  • FIGS. 4 and 5 show examples in which access is biased when controlling access to a plurality of volumes in a single cache area.
  • files 1 (303) assigned to volume 1 (303), volume 1 (304), and files It is conceivable that the capacity of rule 2 (304) is different.
  • the capacity of file 1 (303) is larger than the capacity of file 2 (304) —File 1 (303) and file 2 (304) are accessed randomly and per unit time If the access frequency, which is the number of I / Os that are accessed, is the same, the access distribution is as shown in Figure 4.
  • FIG. 5 shows a volume list of the volume 1 (301) and the volume 2 (302) to which the file 1 (303) and the file 2 (304) in FIG. 4 are assigned.
  • Reference numerals 402 and 405 denote reference addresses of the volumes 1 and 2
  • reference numerals 403 and 406 denote access frequencies per unit time.
  • Volume 13 03) has a large capacity of file 13 01) and is widely accessed, while volume 2 is localized because of the small capacity of file 2 304) Will be.
  • the conventional cache control method cannot effectively perform the cache.
  • the LR (1 eastrecently used) method has been adopted. The LRU scheme is most accessed when the cache area is all in use and one of the areas must be allocated for another data transfer. This is a method of reusing from an infrequent area.
  • the cache hit ratio is not extremely high for both the volume 1 (301) and the volume 2302), and when the access frequency for each volume is the same,
  • the capacity of the cache area allocated to volume 1 (301) is almost the same as the capacity of the cache area allocated to volume 1 (301).
  • Many cache areas (108) are also allocated to areas where the access frequency distribution is wide and the cache hit rate is considered to be low, which is a problem of the conventional method.
  • the cache rate of the entire system is increased by controlling the allocation of the cache area to the volume 2 (302) in which the distribution of the access frequency is localized. This is the feature.
  • the cache capacity allocated to a wide IZO kingset (401) such as volume 1 (301) can be reduced, and the IZO working set (expected to improve the hit rate) can be expected. 404) allocates a large amount of cache capacity to a small area.
  • FIG. 6 shows the processing flow of the disk array reading program.
  • step 501 it is checked whether the read data is stored in the cache area (108).
  • This check uses the cache management table shown in FIG.
  • the cache management table stores a volume name 600, an area number 600, and a cache storage state 6003.
  • the volume name is a volume managed by the disk controller 122
  • the area number is an identifier of an area in which each volume is divided by the same size as the cache management unit.
  • the cache storage state is a flag indicating whether or not the area is stored in the cache.
  • the cache management table stores information on all volumes managed by the disk control device for each cache management unit size. This is to speed up cache search.
  • the area of the cache management table is first narrowed down by the volume name, and if the read address is indicated by the number of bytes from the head.
  • the numerical value divided by the cache management unit corresponds to the area number 602. This makes it possible to check whether the data is stored in the cache area 108 with a simple operation.
  • a request for the cache area 108 is requested. If it is in the stored cache hit state, the flow proceeds to step 506, and if it is in the missed state, the flow proceeds to step 502.
  • step 502 a cache area allocation program is started, and an area for storing requested data in the cache area 108 is secured. The cache allocation program will be described in detail later.
  • step 503 a drive to read the data requested from the host is selected, and in step 504, the requested data is read from the drive specified in step 503.
  • step 505 the data read in step 504 is stored in the cache area allocated in step 502 or the cache area 108 already allocated.
  • step 506 the request data stored in the cache area 108 is transferred to the host, and the processing ends.
  • FIG. 8 shows a processing flow of the disk array writing program.
  • step 700 it is checked whether the read data is stored in the cache area (108). The check is the same as in step 501.
  • a cache area allocation program is started, and an area for storing write data in the cache area 108 is secured. The cache allocation program will be described in detail later.
  • step 703 the write data is transferred to the area secured in step 702 or the area already secured, and the process ends. Writes to the drive are delayed to speed up the write process.
  • data that has not been written to the drive is checked every several 10 seconds, and if unwritten data exists, the process of writing to the drive is executed in the background.
  • Step 8111 determines whether the I / O request is a sequential access. The determination can be realized by determining whether or not continuous volume address references are made from the past access history.
  • the sequential processing of step 801 is performed.
  • control is performed so that a large number of cache areas 1 () 8 are not allocated to sequential access. Specifically, only areas for several cache management units are available. Do not assign. This is because the sequentially accessed data is rarely reused. Since sequential access has a high access frequency, if this control is not performed, a large amount of the cache area 108 will be used.
  • step 811 It is inefficient to allocate a large amount of cache space 108 for accesses that are unlikely to be re-used, and for sequential accesses like step 811, several cache management units, It is more effective not to assign. Several are allocated to use as an area for read-ahead or collective writing. In the case of a single access, the process ends after executing step 81. Therefore, the access characteristic table described later is not updated. If it is determined that the access is not a single access, the process proceeds to step 802, and it is determined whether an empty area (unused area) exists in the cache area 108. If there is a free area, the process proceeds to step 807; otherwise, the process proceeds to step 803. In step 803, the area with the lowest access frequency per unit area is stripped from the used cache queue.
  • step 804 it is determined whether or not the data in the stripped area has not been written. Unwritten data is data that has the latest data in the cache area 108 and has not been written to the drive. Unwritten data is generated when writing is performed from the host. If it is unwritten data, the process proceeds to step 805 to write data to the disc. In step 806, the unwritten bit is turned off for the next use. In step 807, the cache area secured from step 803 or the free area is registered in the busy queue. In step 808, it is determined whether the request is for writing or reading. If it is a write request, turn on the unwritten bit; otherwise, go to step 810. In step 810, the access characteristic table is updated.
  • FIG. 10 shows the structure of the access characteristic table.
  • the access characteristics table is a table for detecting the IZ0 working set.
  • the table includes a volume name 901, an area number 902, which divides the volume area into arbitrary units, and an access frequency 903 for each area number 902.
  • region number 9002 fixes volume 1055. It is an area divided into an arbitrary area of a fixed length (: 1 050 to 1 054). As will be described later, the area 1505 to 1054) is a unit for collecting the access frequency.
  • An example is shown in which the access characteristics of the volumes 1 and 2 shown in FIG. 5 are mapped to the access characteristic table.
  • Volume 1 has access characteristics with a wide range of IZO working sets
  • volume 2 has access characteristics with a narrow I / O working set.
  • the access characteristic table the access frequency is sampled in an arbitrary unit, for example, in an area divided into 100 MB, so that in the case of a wide-range IZ0 working set such as volume 1, The numerical value is small, and conversely, in the case of a narrow I / O working set such as volume 2, the numerical value is large. It can be seen that the larger this value is, the higher the access frequency is and the smaller the IZO working set is the access characteristics. With the conventional LRU method, only the high access frequency can be detected, but by providing this table, the high access frequency and the size of the IZO working set can be detected.
  • the access characteristic table is dynamically changed by switching between two or more access characteristic tables, which collects the access frequency every time a certain time elapses, and an access characteristic table used for cache control. Will be able to respond to the access that will be made.
  • FIG. 12 shows this processing flow.
  • Step 1002 sets a timer. Set the interval for switching the access characteristics table, for example, i seconds. In the case where the timer is stopped down when the timer reaches 0 seconds, it is possible to know whether the specified time has elapsed by judging whether or not the timer is 0 in step 1003 .
  • the access characteristic table is switched, and the access characteristic table is switched from the currently used access characteristic table to the access characteristic table in which new access characteristics are collected.
  • step 1005 the contents of the access characteristic table used so far are cleared in order to start collecting new access characteristics.
  • the access characteristic table (1105-110) used for cache control and the table 1 for updating the access characteristic are updated. 101 to 1104) can be switched alternately.
  • Access characteristics table If you keep the access characteristics in, you can only get the accumulated value. In this case, it is not possible to accurately detect the access characteristic when the access characteristic changes. Also, if the access characteristics table is one and the access characteristics are cleared at regular intervals, it is possible to respond to changes in access characteristics to some extent, but after clearing, start collecting access characteristics information. Immediately after that, accurate access characteristics cannot be detected.
  • the access characteristic is detected for each volume without changing the interface between the host 101 and the disk controller 122. Is the way. With the current disk interface, it is not possible to know what the application is doing. Therefore, it is necessary for the disk array controller 122 to anticipate the operation of the application running on the host from the volume name and the volume address. In the first embodiment, the volume and the arbitrary size are required. This is achieved by collecting access characteristics for each area delimited by.
  • FIGS. 14 and 15 show the structure of the cache queue and the processing flow of the queue removal control in step 803 of FIG.
  • the cache queue is a queue for managing the use status of the cache area 108 and the unused status.
  • the cache queue is composed of two queues, a used cache queue 1401 and an unused cache queue 14010.
  • the cache cache in use 1401 is a queue that stores data in the cache area
  • the unused cache queue is a queue that manages free space in which no data is stored. It is.
  • the in-use cache queue 1401 stores the front pointer 1442, the rear pointer 1403, the volume name 1444, the volume area number 1445, and the data. has been that key catcher Tsu sure dress 1 4 0 6, the structure of t 1 4 0.
  • Bok 1 4 0 6 is a management unit of the cab Tsu shoe, one structure For example, a capacity of about 64 KB is managed.
  • the forward pointer 1442 and the rear pointer 1443 are pointers for connecting the queues, and change when a queue is deprived or registered.
  • the volume area number 1405 stores the volume name of the data stored in the cache area 108 and the area number in the volume.
  • the unit of the area is the same size as the cache management unit.
  • the cache address 1406 and the unwritten bit 1406 are the cache area 1 in which the data of the volume name 1404 and the volume area number 1405 are stored.
  • the queue index 1447 is an index provided to speed up the determination of the cache deprivation priority in the present invention.
  • the step 803 in FIG. 9 is one of the features of the present invention. In order to obtain an area with the highest deprivation priority, that is, a low access frequency or a wide I / O working set. Need to search for the cache cache in use. However, for example, if the cache area 108 with a total capacity of 1 GB is managed in units of 64 KB, it is necessary to search more than 10,000 queues. Since the overhead is too large in this case, a queue index 1407 is provided to speed up the search.
  • the key index 1407 consists of an index value 1408 and a counter 1409.
  • the counter 1409 is a counter that indicates how many queues are registered in the range of the index value. This is a cache control method based on the access characteristic according to the present invention or a conventional LRU. It is used as information for switching between the cache management method and the method. This will be described later in the in-use cache queue registration process.
  • the index value 1408 can be set to any numerical value, but the numerical value for storing the access frequency 903 of the access characteristic table in FIG. 10 in ascending order is stored. At the time of queue registration, referring to the access frequency 903 in the access characteristic table of FIG. 10, the queue is registered so that the access frequency is within the range of the index value 1408.
  • the access frequency 903 Within the range of index values, they are not completely arranged in the order of the access frequency 903, but they are arranged in order in the range unit of the index value, and the access frequency 903 is high.
  • the ordering within the range of intermediate and index values is complete because leaving the area and the extreme queues that strip the area with low access frequency 903 are significant. Need not be.
  • the queue index 1401 According to the queue index 1401, by scanning only the number of indexes, for example, the number 10, it is possible to arrange the access frequency in order of queue registration.
  • steps 1350 to deprive queues in order from the head with the lowest queue deprivation priority and the number of queues within the deprived index range value are decremented.
  • the unused cache queue 1 410 is a queue for managing a free area where valid data is not stored.
  • the unused cache unit 1410 stores the front pointer 1411, the rear pointer 1412, the volume name 1413, the volume area number 1414, and the data. It consists of a cache address 1415 and an unwritten bit 1416.
  • the structure of 1411-1 to 1416 is the management unit of the cache, and one structure manages a capacity of, for example, about 64 KB.
  • the forward pointer 1402 and the backward pointer 1443 are pointers for connecting the queues, and change occurs when a queue is deprived or registered.
  • the fields of volume name 1413, volume area number 1414, cache address 1415 storing data, and unwritten bit 1416 are valid fields. The value is undecided because no data is stored, and valid information is stored when it is registered in the queue in use.
  • FIG. 16 shows the above-mentioned registration of the in-use cache registration described above.
  • the access frequency of the data to be registered in the busy queue is obtained from the access characteristic table.
  • a cue index search is performed. This search is As described above, from the access frequency acquired from the access characteristic table in step 1301, a search is made as to which location of the cache in use is to be registered.
  • Step 1304 registers in the specified queue position. For LRU control, always connect to the head of the queue. In other words, in the case of LRU, the access frequency is higher at the head of the queue.
  • the counter 1409 of the registered queue index is incremented.
  • the total of the counter 1409 portion of the queue index 1407 is calculated. This value is used in step 1307.
  • step 1307 it is determined whether or not the access characteristics are equalized.
  • the ratio of the result of step 1305 to the result of step 1306 is calculated, and a percentage of the total exists in the range of the index value 1408 in the busy queue. Or ask. If the ratio is equal to or more than the predetermined ratio, it means that the access is equalized. In this case, the process shifts to the conventional LRU control (1309). This is because the effect of the cache control method of the present invention is large when the access characteristics vary, and the effect is small when the equalization is performed. This is because the LRU control eliminates the need to execute step 1303, so that high-speed cache management can be performed. Even in the LRU control mode, the queue index is updated. Therefore, if there is a variation in access, it is possible to switch to the access characteristic control of the present invention in step 1307 (13008) 0.
  • FIG. 17 shows the capacity of the cache area 108 allocated to each application in an environment in which a plurality of applications (J0B) are operating simultaneously, according to the cache control of the present invention.
  • the access frequency of each JOB is higher in the order of JOB4, JOB3, JOB2, J0 ⁇ 1.
  • J0B4 allocates the most cache area because it has the highest access frequency, but JOB4 has a large cache area even when a large cache area is allocated because the I / O working set is large. Since the cache hit rate cannot be expected, the cache area 108 is inefficiently allocated.
  • the IZ0 working set is narrow, and a large number of cache areas 108 are allocated to the area where the access frequency is high. Controlled.
  • JOB 4 has a high access frequency but has a large I / O coding set, so a high hit rate cannot be expected even if a large number of cache areas 108 are allocated.
  • Control is performed so that the area allocated to the area 108 is easily stripped.
  • the deprived area has a relatively high access frequency, and the IZ0 working set is narrow to J0B2 and J0B3 so that the cache rate of the entire disk controller can be improved. Can be improved. Alternatively, a high hit rate can be obtained with a small cache capacity.
  • the cache control method according to the present invention involves searching for a queue, the processing time is longer than that of a conventional cache control method such as LRU.
  • Cache is a high-speed technique that is also used in the field of processors, but since the cache inside the processor requires high speed, the cache control method with search as in the present invention has been adopted. Peg. However, the purpose of the disk cache is to increase the speed of disk access, and it is fast enough to increase the speed of disks that involve mechanical operations in processing.
  • FIGS. 18 and 19 show the flow of using the access characteristic table when the power of the disk array controller 122 is turned off and on.
  • Step 1900 of FIG. 18 writes the access characteristic table (FIG. 10) to an unused area of the drive (117 to 121).
  • step 1902 the used cache queue is written to an unused area of the drive (117 to 121).
  • the access characteristics table (Fig. 10) and cache cache in use written to the drive are used when the power is turned on as shown in Fig. 19.
  • Figure When the power supply is turned on the access area table (Fig. 10) written when the power supply is turned off (Fig. 10) and the cache cache in use indicate that the cache area 1 A flow of loading volume data in 08 is shown.
  • Step 180 reads the access characteristic table (FIG.
  • Step 1801 reads the cache cache in use written in step 1902 of FIG.
  • step 1802 an area of the used cache that is frequently accessed is searched for and its data is input in advance to the cache area 108.
  • the access characteristic table (Fig. 10) stores information before the power is turned off, and can perform control according to the access characteristics immediately after the power is turned on. With the control of Figs. 18 and 19, high performance can be achieved immediately after power-on. Although the control at the time of power on / off is described in FIGS. 18 and 19, the control processor 104 of the disk controller 122 executes the processing of the preceding input of step 1802.
  • a disk cache control method in consideration of drive access time characteristics will be described.
  • the drive is composed of a plurality of disks, and data is read and written by heads provided on the front and back sides of each disk. Reading and writing of data is realized by a seek operation that moves the head to the target location, a search operation that waits until the target location on the rotating disk comes, and an overnight read / write operation to the target location. . In this, the seek seeks the head It is the slowest because of the movement operation.
  • FIG. 20 shows an example in which a plurality of 1/0 working sets exist in a single volume.
  • Reference numeral 2053 denotes a volume reference difference address
  • reference numeral 2054 denotes an access frequency.
  • the IZO working sets are 2005, 2005, and 2005. In this example, access is made to the entire area of the volume, and it is expected that frequent long-distance head movements will occur.
  • the working set at the end of the volume address is controlled so as to be preferentially cached in order to move the head as short as possible. For this purpose, the increment value of step 135 in FIG.
  • FIG. 21 shows the relationship between the address and the increment value.
  • 2101 is a volume reference address
  • 2100 is an increment value. Set the increment value so that the closer the head is to the outside (2102) of the drive, the smaller the increment value is, and the larger the head is (2103), the larger the increment value is. . By doing so, the area close to the inner side 210 can be apparently accessed more frequently, and is more likely to remain in the cache area. Further, as described in the first embodiment, in the area where the access frequency is high and the I / O working set is small, the control that preferentially remains is performed at the same time.
  • the performance can be improved with the effect that the writing performance is good.
  • This control makes it possible to perform cache control in consideration of the access characteristics and the performance characteristics of the drive, and the performance can be further improved.
  • the disk array controller 122 detects the access characteristics without changing the application running on the host 101.
  • the access characteristics are For more accurate detection, a cache control method using a method of specifying the area and characteristics to be accessed on the application side is described.
  • FIG. 22 shows a configuration of a program on the host 222 of the third embodiment of the present invention and a configuration of a memory 222 in the disk array control device 222.
  • a new area notification program 225 3 is provided in the operating system in order to specify the area and characteristics to be accessed by the application 225 1 in the disk controller 2 254.
  • the area notification program 2 25 3 is a disk array control of the input parameters of open—fi 1 e and c 1 ose _ fi 1 e that are issued when the application uses the file and when the use ends.
  • a process to notify the device 2 2 5 4 is performed.
  • the disk read program 2 206 in the memory 2 205 of the disk controller 2 250 controls the input request issued from the host 250 and the disk array write program 2.
  • Reference numeral 207 denotes a control program for controlling an output request issued from the host 225.
  • the cache area allocation program 222 allocates a cache area 222 for storing data.
  • the access characteristic table 222 stores information on the characteristics of input / output issued from the host 250.
  • the access characteristic table update program updates the access characteristic table 2 210 from the command issued from the area notification program 1 15 3.
  • Figure 23 describes the file operations of the application running on the host.
  • 2 202 indicates the 0 parameter of open-fi 1 e issued at the start of using the file.
  • open-fi 1 e uses the file name, application identifier, file start address, file size, and access characteristics as input parameters.
  • the application identifier, file start address, file size, access characteristics, and 0 pen command are passed to the disk array controller.
  • the application identifier is an identifier that can uniquely identify the application to the disk control device.
  • the access characteristics are information indicating whether the application is random or sequential with respect to the file. In addition to random and sequential, access and referencing to skip at a certain width It is also possible to specify complex access, such as the address and order to be referenced.
  • reference numeral 2203 indicates c10se_fi1e issued when the file has been used.
  • the input parameters are the file name and the application identifier.
  • close In the file, the close command and application identifier are passed to the disk array controller.
  • the access characteristic table update program 2 211 receives the application access characteristics 2 202 and 220 3 transferred through the area notification program 2 25 3 and is shown in FIG. 24. Update such access characteristics table. 2401 is the application identifier transferred from the host 250, and 2402 is the access characteristic transferred from the host 250. 24 0 3, 2 4 0 4, 2 4 0 5 are the same as 9 0 1, 9 0 2, 9 0 3 shown in FIG. Note that 2403 and 2404 are converted from the file head address and file size transferred from the host 250.
  • cache control methods are the same as in the first embodiment. By specifying the file area and access characteristics from the application, cache control can be performed more accurately than in the first embodiment, and the access characteristics table is specified from the host 250. It is only necessary to manage the allocated area, so that the capacity can be reduced.
  • the application 222 transfers the minimum required capacity of the cache area to the disk controller 224, and the disk array controller 224 removes the cache area. It is also possible to control so as not to deprive more than the cache capacity transferred from time to time. This is done by adding a field for the minimum allocated cache capacity and the current allocated capacity for each application identifier 2401 in the access characteristic table, registering the cache in use with the cache in use (Fig. 16). When the current allocated capacity is updated when the queue is removed (Fig. 15) and compared to the minimum allocated cache capacity when the queue is removed (Fig. 15), the current allocated capacity is lower than the minimum allocated cache capacity It can be realized by obtaining the next deprivation candidate from the in-use queue without being deprived.
  • the minimum allocated cache capacity can be realized by registering in advance in the disk array control device instead of the instruction from the application.
  • the present invention can be applied to the control of a cache memory in a computer having a CPU, a main memory, and a cache memory, and to the control of a cache memory provided in a controller that controls a plurality of storage devices.

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Description

明 細
ディ スクキヤ ッ シュ制御方法、 ディ スクァレィ装置、 及び記憶装置 技術分野
本発明はディ スク ア レイのキ ャ ッ シ ュ制御方法に関 し、 特にアプリ ケーシ ヨ ンのアクセスに応じた効率的なキャ ッ シング制御を行う。 背景技術
計算機のデータを記憶する装置と して、 コス トパフ ォーマンスが高い 磁気ディ スク装置が一般的に使用される。 磁気ディ スクは 2. 5イ ンチ や 3. 5イ ンチ程度の複数の磁気円盤と、 各磁気円盤の両面に設けられ た磁気へッ ドによりデータが読み書きされる機構である。
磁気ディ スクは、 機械的動作を伴うため処理の時間は 1 0 m秒程度と プロセッサの処理速度などと比較すると遅い。 プロセッサが高速化され ても、 ディ スクが高速化されないとシステム全体の性能が向上しないケ —スも多い。 この問題を解決し、 磁気ディ スクを高速化するために一般 にはディ スクキャ ッ シュが用いられる。 ディ スクキャ ッ シュは、 「 U n d e r s t a n d i n g I / O S u b s y s t e m s F i r s t E d i t i o n」 , W. D a v i d S c h w a d e r e r , A n d r e w W. \¥ 1 1 3 0 11, _1 1~ . 著, 3 £ 6 2 5 3〜 2 6 1 に述べられて いるように、 磁気ディ スク (以下 ドライブと略) のデータを、 ドライブ を制御する制御装置内に設けられた高速な半導体メモリ (ディ スクキヤ ッ シュ) に保持し、 ホス トからの要求データがディ スクキャ ッ シュに存 在した場合には ドライブにはアクセスせずデイ スクキャ ッ シュ内のデー タをホス トへ転送することで ドライブアクセスを高速化する手法である。 また、 書き込み時にもディ スクキャ ッ シュへホス 卜からのデータを書き 込んだ時点でホス 卜へ書き込み終了通知を行う。 書き込まれたデータは、 ディ スク制御装置がアイ ドル状態の時、 または一定間隔で ドライブの所 定の場所に書き込まれる。 また、 突然の電源異常等にもデータの損失が ないようにバッテリで保護される。 ディ スクキャ ッ シュは、 データの読 み込みと書き込みの両方の処理を高速化する効果がある。 しかし、 ディ スクキャ ッ シュは ドライブより も高価な半導体メモリから構成されるた め、 ドライブの全てのデータを格納することはできない。 例えば、 7 0 0 G Bの ドライブ容量に対し、 ディ スクキャ ッ シ ュの容量は 4 G B程度 であり、 全 ドライブ容量の 1 %程度の容量である。 ディ スクキャ ッ シュ の全領域にデータが格納されている状態で、 新たにデータをディ スクキ ャ ッ シュへ格納する場合にはディ スクキヤ ッ シュ内のいずれかのデータ を追い出さなければならない。 データの追い出しが完了すると、 新しく 格納されるデータが追い出された領域に書き込まれる。 これを、 キヤ ッ シユ リ プレースと呼ばれている。 「U n d e r s t a n d i n g I / 0 S u b s y s t e m s F i r s t E d i t i o n」 , W. D a v i d S c h w a d e r e r , A n d r e w W. W i 1 s o n , J r . 著, 3 6 2 5 3〜 2 6 1 には、 1 ? 0 ( ? ; 5 1 I n F i r s t O u t ) 方式と L R U ( l e a s t r e c e n t l y u s e d ) 方式 が記述されている。 F I F Oは、 先入れ先だし方式であり、 最も古いデ —夕から順番に追い出される。 F I F 0はシーケンシャルにアクセスさ れるようなアクセス特性の場合には効果がある。 しかし、 F I F Oでは アクセス頻度の高さに関係なく追い出されてしまうため、 ラ ンダムな特 性の場合には向かない。 例えば、 頻繁にアクセスされるデータがあった としても、 F I F O方式では順番に追い出されてしまうため、 次回のァ クセス時にディ スクキャ ッ シュに残っている可能性は低く なる。 そのた め、 一般にキャ ッシュ制御は L R Uが用いられることが多い。 L R Uは、 キヤ ッ シュ領域が全て使用中で、 その領域の中からいずれかの領域を他 のデータのために割り当てなければならなく なった時に、 最もアクセス 頻度が低い領域から再利用する方法である。 L Rじ方式では、 アクセス 頻度が高いデータはディ スクキャ ッ シュに残りやすく なるので、 F I F 0に比べキャッシュのヒ ッ ト率を高めることができる。 L R U方式は、 ディ スクキヤ ッ シュだけでなく プロセッサ内の命令キヤ ッ シュゃデータ ベースシステムのバッファ制御など広範囲の分野に用いられている方式 である。 アクセス特性に対応した制御が可能である点と、 制御オーバへ ッ ドが小さいことが広く用いられている理由である。 しかし、 L R U方 式はキヤ ッ シュのアクセスが安定した場合には効果が期待できるが、 動 的に変化する場合にはうま く 制御できない。 動的にァクセス特性が変化 するためアクセス頻度の採取とディ スクキヤ ッ シュの制御にずれが生じ てしま うためである。 この問題を解決するために、 特公平 7 — 9 9 5 0 8号公報で最急勾配降下方法 ( s t e e p e s t d e s c e n t m e t h o d ) とディ スクキャ ッ シュ ミ ス率関数とを組み合わせた、 動的変 化に対応可能なディ スクキヤ ッ シュ制御方法が述べられている。 最急勾 配降下力法 ( s t e e p e s t d e s c e n t m e t h o d ) とティ スクキャ ッシュ ミ ス率関数とから、 最もディ スクキャ ッ シュ ミ ス率が少 なく なるようにディ スクキャ ッ シュを使用する領域区分を変化させる方 式である。
一方、 ディ スクキャ ッシュ以外に ドライブを高速化する手段と してデ イ スクアレイがある。 ディ スクアレイは、 「U n d e r s t a n d i n g I / 0 S u b s y s t e m s F i r s t E d i t i o n」 , W. D a v i d S c h w a d e r e r , A n d r e w W . W i l s o n , J r . 著, p a g e 2 7 1 〜 2 9 1 に述べられているように、 複数の ド ライブにデータを分散して配置するとともに冗長データ も ドライブに格 納することで、 性能と信頼性を向上させる方式である。 大規模なシステ ムでは、 要求される全 ドライブ容量も大き く なり、 性能と信頼性が同時 に要求されるためディ スクァレイが使用される。 ディ スクアレイにより 容量, 性能, 信頼性が向上したことで、 単一のディ スクアレイ制御装置 に多数アプリケーショ ンプログラムが集中してアクセスケースが増加し ている。 この場合、 単一のディ スクキャ ッ シュ領域が複数のアプリケー ショ ンで競合して使用されることになる。 発明の開示
現在、 キャ ッ シュ制御では標準的に用いられている L Rじ方法は、 了 クセス頻度しか制御に使用 しないため、 ディ スクアレイが使用される環 境のような複数のアプリ ケ一シ ョ ンが多重に動作している環境では効率 的な制御ができない。 例えば、 アクセス特性が異なる 2つの J O Bがあ り、 J 0 B 1 は局所的なディ スク領域にアクセスし、 J 0 B 2は広範囲 な領域にアクセスし、 共にアクセス頻度は同一であったとする。 この場 合、 L R U方式は、 アクセス頻度が同じであるために、 ほぼ同一のキヤ ッ シュ領域を 2つの J 0 Bに対して割り当てる。 しかし、 J O B 2は広 範囲にアクセスを行うため、 キャ ッ シュ領域を割り当ててもヒ ッ ト率の 向上率は低く 、 全体と して非効率なキャ ッ シュ制御となる。 また、 特公 平 7 — 9 9 5 0 8号公報で述べられているディ スクキヤ ッ シュ制御方法 は、 ディ スクアレイのように複数のアプリケーシ ョ ンが同時に稼動する ような場合でもある程度対応可能である。 ディ スクキヤ ッ シュ領域を複 数のキャ ッ シュプールに分け、 キャ ッシュ ミ ス率関数と最急勾配降下方 法から ミ ス率が小さ く なるように各々のキャ ッ シュプールのサイズを調 節することでディ スクキャ ッ シュヒ ッ ト率を向上させる方式である。 特 公平 7 — 9 9 5 0 8号公報で述べられているデイ スクキャ ッ シュ制御方 法では、 容量が大きなキヤ ッシュプール単位でキヤ ッシュの増減を行う 方法である。 管理単位が大きいために、 複数のアプリケーショ ンが同一 プールを同時に使用するような場合に複数のアプリ ケーショ ンのァクセ スが平均化されてしまい正確なアクセス特性を検知することができない。 例えば、 局所的にアクセスを行う-アプリケーショ ンと、 広範囲にァクセ スを行うアプリケーショ ンが混在した場合等はアクセスが平均化されて しまい、 中間的な範囲のアクセスと同じ制御を行ってしまい最適なキヤ ッ シュ制御ができない問題がある。 また、 キャ ッ シュプールのサイズ調 節のためにキヤッシュプール数の 2乗に比例した演算数がかかってしま うため、 ディ スクキヤ ッシュ容量やディ スク システムが大規模化するほ どオーバへッ ドが増加してしまう問題がある。 また、 アクセスの急激な 変化に追従できない問題もある。 例えば、 非常に高いヒ ッ ト率のキヤ ッ シュプールのアクセスがアプリケ一シ ョ ンの終了等によりアクセスされ なく なった場合に、 その領域を剥奪するする制御が行われにく い。 これ はミ ス率の変化を基本と した制御方法であるため、 変化が起きない場合 に時間的なアクセス特性の変化を正確につかむのが困難であるためであ る。
上記問題を解決するために、 本願発明では、 アクセス頻度の分布を検 知し、 アクセス頻度の分布が局所化されているボリ ゥムに、 よ り多く キ ャ ッ シュ領域を割り当てるように制御し、 逆に広範囲に分布している場 合にはキャ ッ シュ領域を割り当てないように制御する。 具体的には、 ボ リ ゥ厶の領域を任意の固定長の領域に分割し各領域毎にァクセス頻度を 求め、 アクセス頻度が小さい領域が格納されたキャ ッ シュ領域から優先 的に剥奪する手段を有する。
図面の簡単な説明
図 1 は、 本発明の実施例 1 における全体構成図を示す。
図 2は、 本発明の実施例 1 におけるディ スクアレイの ドライブとボリ ゥムの関係を示す。
図 3は、 キャ ッ シュ領域の使用方法を示す。
図 4は、 フ ァイル容量が異なる場合のボリ ゥムを示す。
図 5は、 I Z Oワーキングセッ トが異なる 2種類のアクセス特性を示 す。
図 6は、 本発明の実施例 1 におけるキヤ ッ シュ管理テーブルを示す。 図 7は、 本発明の実施例 1 におけるディ スクァレイ読み込みプログラ ムフロ一を示す。
図 8は、 本発明の実施例 1 におけるディ スクアレイ書き込みプログラム フ口一を示す。
図 9は、 本発明の実施例 1 におけるキャ ッ シュ割り当てフローを示す。 図 1 0は、 本発明の実施例 1 におけるァクセス特性テーブルの構成を 示す。
図 1 1 は、 本発明の実施例 1 におけるアクセス特性テーブルの管理領 域を示す。
図 1 2は、 本発明の実施例 1 におけるアクセス特性テーブル切り替え フ口一を示す。
図 1 3は、 本発明の実施例 1 におけるァクセス特性テーブル切り替え 方法を示す。
図 1 4 は、 本発明の実施例 1 におけるキヤ ッ シユキユーの構成を示す。 図 1 5は、 本発明の実施例 1 における使用中キューの剥奪制御を示す。 図 1 6は、 本発明の実施例 1 における使用中キュー登録フローを示す。 図 1 7は、 本発明の実施例 1 における効果を示す。
図 1 8は、 本発明の実施例 1 におけるパワーオフ時のフローを示す。 図 1 9は、 本発明の実施例 1 におけるパワーオン時のフローを示す。 図 2 0は、 本発明の実施例 2における複数の I Z 0ワーキングセッ ト が存在するボリ ゥムを示す。
図 2 1 は、 本発明の実施例 2におけるボリ ゥムア ドレスとイ ンク リ メ ン ト値の関係を示す。
図 2 2は、 本発明の実施例 3における全体構成図を示す。
図 2 3は、 本発明の実施例 3におけるアプリケ一ショ ンの構成を示す。 図 2 4は、 本発明の実施例 3におけるァクセス特性テーブルの構成を 示す。
発明を実施するための最良の形態
[実施例 1 ]
以下、 本発明に係るディ スクキヤ ッシュ制御方法の実施例 1 を図面に 示しさらに詳細に説明する。
図 1 は、 本発明によるディ スクキヤ ッシュ制御方法を適用する計算機 システムの概略構成図を示したものである。 1 0 1 はホス トプロセッサ であり、 1 2 2はディ スクアレイ制御装置である。 1 1 7〜 1 2 1 は ド ライブであり、 ディ スクァレイ制御装置 1 2 2 と接続される。 ホス ト 1 0 1から入出力要求がディ スクァレイ制御装置 1 2 2に発行されると、 ディスクアレイ制御装置 1 2 2は入出力要求を解釈し、 所定の ドライブ 1 1 7〜 1 2 1 に対し入出力を行う。 ディ スクアレイ制御装置 1 2 2は、 さらに詳細には、 ホス ト制御部 1 0 3 , 制御プロセッサ 1 0 4 , メモリ 1 0 8 , ドライブ制御部 1 1 2〜 1 1 6 , およびこれらを接続するバス 1 1 1 から構成される。 ホス ト制御部 1 0 3はホス 卜 1 0 1 から発行さ れた入出力要求の受け付けや、 処理終了をホス 卜へ知らせる制御を行う。 ドライブ制御部 1 1 2 〜 1 1 6は、 ドライブ 1 1 7 〜 1 2 1 を接続に対 するデータの入出力制御を行う。 ホス 卜制御部 1 0 3 と ドライブ制御部 1 1 2 〜 1 1 6は、 制御プロセッサ 1 0 4から起動/終了, データ転送 指示が発行され動作する。 制御プロセッサ 1 0 4の動作は、 メモリ 1 0 8内に格納されたプログラムやテーブルに記述されている。 ディ スクァ レイ読み込みプログラム 1 0 6は、 ホス ト 1 0 1 から発行された入力要 求を制御し、 ディ スクアレイ書き込みプログラム 1 0 7はホス 卜 1 0 1 から発行された出力要求を制御する制御プログラムである。 キャ ッ シュ 領域割り当てプログラム 1 0 9は、 データを格納するためのキヤ ッ シュ 領域 1 0 8の割り当てを行う。 アクセス特性テーブル 1 1 0は、 ホス ト 1 0 1 から発行された入出力の特性に関する情報が格納されている。 キ ャ ッ シュ領域は、 ドライブ 1 1 7〜 1 2 1 から読み込まれたデータを一 時的に格納しておく領域であり、 再度同一データの読み込みがホス ト 1 0 1 から要求された場合に、 キャ ッ シュ領域 1 0 8からホス ト 1 0 1へ データを返送することで入出力レスポンスを高速化することが可能とな る。 またホス ト 1 0 1 から書き込み要求が発生した場合には、 キヤッシ ュ領域 1 0 8内に書き込みデータを一時的に保持するために使用される。 ホス ト 1 0 1へはキヤ ッ シュ領域 1 0 8へデータが格納された時点で書 き込み完了報告を行うので、 書き込みを高速に行ったように見せること ができる。 キャ ッ シュ領域 1 0 8から ドライブ 1 1 7〜 1 2 1への書き 込みは、 キャ ッ シュ領域 1 0 8から追い出された時、 または定期時間毎 に起動する書き込み処理によりディ スク 1 1 7〜 1 2 1 に書き込まれる。 図 2はディ スクアレイにおける ドライブとボリ ゥムの関係を示してい る。 ディ スクアレイは複数の ドライブを制御している。 ボリ ゥムとはホ ス 卜が管理する領域の単位であり、 ディ スクアレイでは複数 ドライブの 並列動作性を高めるためボリ ゥムを複数 ドライブに水平に分割するケー スが一般的である。 図 2では、 2 5 0〜 2 5 4 は ドライブであり、 2 5 5〜 2 5 8はホス トの管理単位であるボリ ゥムである。 ボリ ゥム ( 2 5 5〜 1 5 8 ) を ドライブ ( 2 5 0〜 2 5 4 ) に渡って配置することで、 いづれのボリ ゥムにアクセスされても複数の ドライブ ( 2 5 0〜 2 5 4 ) の並列動作性を高めることができるようになる。
図 3 はキャ ッ シュ領域 1 0 8の基本的な動作を示している。 ホス ト 1 ◦ 1 内ではアプリケーシ ョ ン 1 ( 2 0 1 ) , アプリケーシ ョ ン 2 ( 2 0 2 ) が同時に起動されている状況を示している。 アプリケーシ ョ ン 1 (: 2 0 1 ) , アプリケーシ ョ ン 2 ( 2 0 2 ) が要求したデータがキヤ ッ シ ュ領域 1 0 8に格納されていなかった場合は、 所定のボリ ゥ厶 2 0 8〜 2 1 2からデータを読み出しキャ ッ シュ領域 1 0 8に格納し、 各アプリ ケ一シ ョ ンへデータを転送する。 ボリ ゥム 2 0 8〜 2 1 2やホス ト 1 0 1 の入出力単位は 5 1 2バイ ト〜 4 Kノくィ トであり、 キャ ッ シュ領域 1 0 8は 6 4 Kバイ ト程度である。 キヤ ッ シュ領域 1 0 8の入出力単位が 大きいのは、 キャ ッ シュ ヒ ッ ト検索の性能を低下させないことと、 管理 領域の容量を少なくするためである。 従って、 キヤ ッ シュ ミ スした場合 やキャ ッ シュからディ スクへ追い出す場合は、 6 4 Kバイ ト単位で行わ れる。 この動作をステージングと呼ぶが、 ホス ト 1 0 1 の入出力単位よ りステージングの単位が大きいために、 ステージング時はホス ト 1 0 1 が要求したデータ以外のデータも同時にステージングすることになる。 これはシーケンシャルアクセスの場合は先読みまたは、 一括書き込み効 果となり高速化に寄与する。
図 4 , 図 5は、 複数のボリ ゥムに対するアクセスを単一のキャ ッシュ 領域で制御を行う場合にアクセスに偏りが生じる例を示している。 偏り が生じる典型的な例と して、 図 4に示すようにボリ ゥム 1 ( 3 0 3 ) , ボリ ゥム 2 ( 3 0 4 ) に割り当てられたフ ァイル 1 ( 3 0 3 ) , フアイ ル 2 ( 3 0 4 ) の容量が異なる場合が考えられる。 フ ァイル 1 ( 3 0 3 ) の容量がファイル 2 ( 3 0 4 ) —の容量に比べ大き く、 ファイル 1 ( 3 0 3 ) , ファイル 2 ( 3 0 4 ) ともにラ ンダムアクセスされ単位時間当 たりにアクセスされる入出力数であるアクセス頻度が同じ場合、 図 4に 示すようなアクセス分布になる。 図 5は、 図 4におけるフアイノレ 1 ( 3 0 3 ) とファイル 2 ( 3 0 4 ) が割り当てられている、 ボリ ゥム 1 ( 3 0 1 ) とボリ ゥム 2 ( 3 0 2 ) のボリ ゥムア ドレス毎のァクセス頻度を 示している。 4 0 2 , 4 0 5はボリ ゥム 1 , ボリ ゥム 2の参照ア ドレス、 4 0 3 , 4 0 6は単位時間当たりのアクセス頻度を示している。 ボリ ウ ム 1 3 0 3 ) は、 ファイル 1 3 0 1 ) の容量が大き く広範囲にァク セスされ、 ボリ ゥム 2はファイル 2 3 0 4 ) の容量が小さいために、 局所化されることになる。 このような偏りが生じるような場合では、 従 来のキャ ッ シ ュ制御方法では効果的にキャ ッ シ ングすることができない。 ランダムアクセスデ一夕のキャ ッ シングには従来から L Rじ ( 1 e a s t r e c e n t l y u s e d ) 方式が採用されている。 L R U方式は、 キャ ッ シュ領域が全て使用中で、 その領域の中からいずれかの領域を他 のデ一夕のために割り当てなければならなく なつた時に、 最もアクセス 頻度が低い領域から再利用する方法である。 従来方式では、 ボリ ゥム 1 ( 3 0 1 ) , ボリ ゥム 2 3 0 2 ) ともにキャ ッ シュ ヒ ッ ト率が極端に 高く なく 、 また各ボリ ゥム毎のアクセス頻度が同一の場合は、 ボリ ゥム 1 ( 3 0 1 ) に対して割り当てるキャ ッ シュ領域の容量と、 ボリ ゥム 1 ( 3 0 1 ) に対して割り当てるキャ ッ シュ領域の容量とは、 ほぼ同一と なる。 ァクセス頻度の分布が広範囲でキヤ ッ シュヒ ッ ト率が低いと考え られる領域にも多くのキャ ッ シュ領域 ( 1 0 8 ) を割り当ててしまい、 これが従来方式の問題点であった。 本発明では、 アクセス頻度の分布が 局所化されているボリ ゥム 2 ( 3 0 2 ) によ り多く キヤ ッ シュ領域を割 り当てるように制御することでシステム全体のキャ ッ シュ率を高めるこ とが特徴である。 つま り、 ボリ ゥム 1 ( 3 0 1 ) のように広い I ZOヮ 一キングセッ ト ( 4 0 1 ) に割り当てるキヤ ッシュ容量を少なく し、 ヒ ッ ト率向上が期待できる I Z 0ワーキングセッ ト ( 4 0 4 ) が狭い領域 へ多く のキヤ ッシュ容量を割り当てる方式である。
図 6は、 ディ スクアレイ読み込みプログラムの処理フローを示してい る。 ステップ 5 0 1 は読み込みデータがキャ ッ シュ領域 ( 1 0 8 ) に格 納されているかチヱ ックする。 このチヱ ックは図 7に示すキャ ッ シュ管 理テーブルが使用される。 キャ ッ シュ管理テーブルは、 ボリ ゥム名 6 0 1 , 領域番号 6 0 2, キヤッシュ格納状態 6 0 3が格納されている。 ボ リ ウム名は、 ディ スクァレイ制御装置 1 2 2が管理するボリ ウムであり、 領域番号は各ボリ ゥムをキヤ ッ シュの管理単位と同じ大きさで区切られ た領域の識別子であり、 キヤ ッ シュ格納状態は当該領域がキャ ッシュに 格納されているかどうかを示すフラグである。 キャ ッ シュ管理テーブル はディ スクァレイ制御装置が管理する全てのボリ ゥムに関する情報がキ ャ ッ シュの管理単位の大きさ毎に格納されている。 これは、 キャ ッ シュ の検索を高速化するためである。 ホス 卜からボリ ゥム名と読み込みァ ド レスが与えられると、 まずボリ ゥム名でキヤ ッ シュ管理テーブルの領域 を絞り込み、 読み込みア ドレスが先頭からのバイ ト数で示されるのであ ればキャ ッ シュ管理単位で割つた数値が領域番号 6 0 2に相当する。 そ れにより、 簡単な演算でキャ ッ シュ領域 1 0 8に格納されているかどう かをチェ ックすることができる。 キャ ッ シュ領域 1 0 8に要求デ一夕が 格納されているキャ ッ シュ ヒ ッ 卜の状態であればステップ 5 0 6に進み、 ミ スヒ ッ 卜の状態であればステップ 5 0 2 に進む。 ステップ 5 0 2では キャ ッ シュ領域割り当てプログラムを起動し、 要求されたデータをキヤ ッ シュ領域 1 0 8に格納するための領域を確保する。 キヤ ッ シュ割り当 てプログラムは、 後で詳細に説明する。 ステップ 5 0 3ではホス 卜から 要求されたデ一夕を読み込むべき ドライブを選択し、 ステップ 5 0 4で はステップ 5 0 3で指定された ドライブから要求データを読み出す。 ス テツプ 5 0 5では、 ステップ 5 0 2で割り当てられたキャ ッ シュ領域ま たは既に割り当てられていたキャ ッ シュ領域 1 0 8へ、 ステップ 5 0 4 で読み込まれたデータを格納する。 ステップ 5 0 6では、 キャ ッ シュ領 域 1 0 8内に格納されている要求データをホス 卜へ転送し、 処理を終了 する。
図 8は、 ディ スクアレイ書き込みプログラムの処理フローを示してい る。 ステップ 7 0 1 は読み込みデータがキヤ ッ シュ領域 ( 1 0 8 ) に格 納されているかチヱ ックする。 チェ ッ クはステップ 5 0 1 と同じ方法で ある。 ステップ 7 0 2ではキャ ッ シュ領域割り当てプログラムを起動し、 書き込みデータをキャ ッ シュ領域 1 0 8に格納するための領域を確保す る。 キャ ッ シュ割り当てプログラムは、 後で詳細に説明する。 ステップ 7 0 3では書き込みデータを、 ステップ 7 0 2で確保した領域または既 に確保されていた領域に転送し、 処理を終了する。 書き込み処理の高速 化のために、 ドライブへの書き込みは遅延させる。 図示していないが、 数 1 0秒毎に ドライブへの未書き込みデータをチェ ック し、 未書き込み データが存在している場合には ドライブへ書き込む処理がバックグラゥ ン ドで実行される。
図 9はキャ ッ シュ割り当てプログラムの処理フローを示している。 ス テツプ 8 1 1 は入出力要求がシーケンシャルアクセスかどうか判定する。 判定は、 過去のアクセス履歴から連続したボリ ゥムァ ドレス参照かどう かを判定することで実現できる。 シーケンシャルアクセスであれば、 ス テツプ 8 0 1 のシ一ゲンシャル処理を行う。 シーケンシャル処理では、 シーケ ンシ ャルアクセスへはキャ ッ シュ領域 1 () 8を多く割り当てない ように制御する。 具体的には、 キャ ッ シュ管理単位の数個分の領域しか 割り当てない。 これは、 シーケンシャルアクセスされたデータが再利用 されることはほとんど無いためである。 シーケンシャルアクセスはァク セス頻度が高いため、 この制御をおこなわないとキャ ッ シュ領域 1 0 8 を多量に使用してしまう。 再利用される可能性が少ないアクセスに多量 のキャ ッ シュ領域 1 0 8を割り当てるのは非効率であり、 ステップ 8 0 1 のようなシーケンシ ャルアクセスには数個のキャ ッ シュ管理単位し力、 割り当てないようにするほうが効果的である。 数個を割り当てるのは先 読み、 またはまとめ書きのための領域と して使用するためである。 シ一 ゲンシャルアクセスの場合は、 ステップ 8 0 1 を実行した後、 処理を終 了する。 従って、 後で説明するアクセス特性テーブルの更新は行わない。 シ一ゲンシャルアクセスではないと判断した場合は、 ステップ 8 0 2に 進みキャ ッ シュ領域 1 0 8に空き領域 (未使用領域) が存在するかどう か判定する。 空き領域が存在する場合にはステップ 8 0 7に進み、 空き 領域が存在しない場合にはステップ 8 0 3に進む。 ステップ 8 0 3では、 使用中キャ ッ シュキューの中から、 最も単位領域当たりのアクセス頻度 が低い領域を剥奪する。 ステップ 8 0 4では剥奪した領域のデータが未 書き込みかどうかを判定する。 データ未書き込みとは、 キャ ッ シュ領域 1 0 8上に最新データがあり、 ドライブへは書き込まれていないデータ である。 ホス 卜から書き込みが行われた場合に未書き込みデータが発生 する。 未書き込みデータであればステップ 8 0 5に進みディ スクへの書 き込みを行う。 ステップ 8 0 6では、 次の利用のために未書き込みビッ トをオフにする。 ステップ 8 0 7では、 ステップ 8 0 3または空き領域 から確保されたキヤ ッ シュ領域を使用中キューに登録する。 ステップ 8 0 8では、 要求が書き込みか読み込みかを判定する。 書き込み要求であ れば、 未書き込みビッ トをオンにし、 そうでなければステップ 8 1 0に 進む。 ステップ 8 1 0では、 アクセス特性テーブルの更新を行う。
図 1 0は、 アクセス特性テーブルの構造を示している。 アクセス特性 テーブルは、 I Z 0ワーキングセッ トを検知するためのテーブルである。 テーブルは、 ボリ ゥム名 9 0 1 , ボリ ゥム領域を任意の単位に区切られ た領域番号 9 0 2 , 領域番号 9 0 2毎のアクセス頻度 9 0 3から構成さ れる。 領域番号 9 0 2は、 図 1 1 に示すように、 ボリ ゥ厶 1 0 5 5を固 定長の任意の領域 (: 1 0 5 0〜 1 0 5 4 ) に区切つた領域である。 後で 述べるように領域 1 0 5 0〜 1 0 5 4 ) はアクセス頻度を採取する単 位である。 図 5 に示されるボリ ゥム 1 とボリ ゥム 2のアクセス特性を本 アクセス特性テーブルにマツ ビングした例を示している。 ボリ ゥム 1 は 広範囲の I Z Oワーキングセッ トを持つアクセス特性であり、 ボリ ゥム 2は狭い I / Oワーキングセッ トを持つアクセス特性である。 これを、 アクセス特性テーブルでは、 任意の単位、 例えば 1 0 0 M B毎に区切つ た領域毎にアクセス頻度を採取することで、 ボリ ゥム 1 のような広範囲 の I Z 0ワーキングセッ 卜の場合は数値が小さ く、 逆にボリ ゥム 2のよ うな狭い I / 0ワーキングセッ 卜の場合には大きな数値を示すことにな る。 この数値が大きいほど、 アクセス頻度が高く、 かつ I Z Oヮーキン グセッ 卜が小さいアクセス特性を持つことがわかるようになる。 従来の L R U方式ではアクセス頻度の高さ しか検知することができなかったが、 本テーブルを設けることで、 アクセス頻度の高さと、 I Z Oワーキング セッ 卜の大きさを検知することができるようになる。 また、 アクセス特 性テーブルは、 2つ以上設け一定時間が経過する毎にアクセス頻度を採 取するアクセス特性テーブルと、 キャ ッ シュの制御に使用するアクセス 特性テーブルを切り替えることで、 動的に変化するアクセスに対応でき るようになる。 図 1 2は、 この処理フローを示している。 ステップ 1 0 0 2はタイマーを設定する。 アクセス特性テーブルを切り替える間隔、 例えば i 秒を設定する。 夕イマ一は力ゥン トダウンされ 0秒になると停 止するような場合は、 ステップ 1 0 0 3 によりタイマーが 0かどうかを 判定することで指定した時間が経過したかどうかを知ることができる。 ステップ 1 0 0 4 はアクセス特性テーブルの切り替えであり、 現在使用 しているアクセス特性テーブルから新しいアクセス特性を採取したァク セス特性テーブルへ切り替える。 ステップ 1 0 0 5は新しく ァクセス特 性を採取し始めるために、 これまで使用 していたァクセス特性テーブル の内容をク リアする。 これにより、 図 1 3に示すように、 一定時間が経 過する毎に、 キャ ッ シュ制御に使用するアクセス特性テーブル ( 1 1 0 5〜 1 1 0 8 ) と、 アクセス特性を更新するテーブル 1 1 0 1 〜 1 1 0 4 ) を交互に切り替えることができる。 アクセス特性テーブルがーつ でアクセス特性を取り続ける場合は、 累積された値しか得ることができ ない。 この場合は、 アクセス特性が変化する場合に正確なアクセス特性 の検知をおこなう ことができない。 また、 アクセス特性テーブルがーつ でアクセス特性を一定時間毎にク リアする場合は、 ある程度アクセス特 性の変化に対応することができるが、 ク リ アされてからアクセス特性情 報を採取し始めた直後は正確なアクセス特性を検知することができない。 2つ以上のアクセス特性テーブルを持ち、 図 1 2のフローを処理した場 合は、 アクセス特性の変化を安定して採取することができるようになる。 また、 本実施例では、 ボリ ゥム毎にアクセス特性を採取することで、 ホ ス ト 1 0 1 とディ スクァレイ制御装置 1 2 2のイ ンタフヱ一スを変更す ることなく アクセス特性を検知する方法である。 現状のディスクイ ンタ フェースでは、 アプリケーショ ンがどのような動作をしているのかを知 るとはできない。 従って、 ディ スクアレイ制御装置 1 2 2はボリ ゥム名 とボリ ゥムア ドレスからホス ト上で稼動するアプリケ一ショ ンの動作を 予想する必要があり、 実施例 1 ではボリ ゥムと任意の大きさで区切られ た領域毎にアクセス特性を採取することで実現している。
図 1 4 , 図 1 5は、 キャ ッ シュキューの構造と図 9のステップ 8 0 3 のキュー剥奪制御の処理フローを示している。 キャ ッ シュキューは、 キ ャッシュ領域 1 0 8の使用 Z未使用状況を管理するキューである。 図 1 4に示すように、 キャ ッ シュキューは、 使用中キャ ッ シユキユー 1 4 0 1 と未使用キヤッ シユキュ一 1 4 1 0の 2つのキューから構成されてい る。 使用中キャ ッ シュキュー 1 4 0 1 は、 キャ ッ シュ領域にデータが格 納されているキューであり、 未使用キュ一 1 4 1 0は、 データが格納さ れていない空き領域を管理するキューである。 使用中キャ ッ シュキュー 1 4 0 1 は、 前方ポイ ンタ 1 4 0 2 , 後方ポイ ンタ 1 4 0 3, ボリ ゥム 名 1 4 0 4 , ボリ ゥムの領域番号 1 4 0 5 , データが格納されているキ ャ ッ シュア ドレス 1 4 0 6 , 未書き込みビッ 卜 1 4 0 6から構成される t 1 4 0 2〜 1 4 0 6の構造がキャ ッ シュの管理単位であり、 一つの構造 で例えば 6 4 K B程度の容量が管理される。 前方ボイ ンタ 1 4 0 2 , 後 方ポイ ンタ 1 4 0 3は、 各キューを連結するためのポイ ンタであり、 キ ユーの剥奪や登録が発生した場合に変更が生じる。 ボリ ゥ厶名 1 4 0 4 . ボリ ゥムの領域番号 1 4 0 5は、 キヤ ッ シュ領域 1 0 8上に格納された データのボリ ゥム名と、 そのボリ ゥム内の領域番号が格納されている。 領域の単位はキヤ ッ シュの管理単位と同じ大きさである。 キャ ッ シュァ ドレス 1 4 0 6 , 未書き込みビッ ト 1 4 0 6は、 ボリ ゥム名 1 4 0 4 , ボリ ゥムの領域番号 1 4 0 5のデータが格納されているキャ ッ シュ領域 1 0 8のァ ドレスであり、 未書き込みビッ ト 1 4 0 6 は最新のデ一タカ ボリ ゥムに書き込まれていない状態の場合オンになり、 ボリ ゥムに書き 込まれた場合オフにされる。 キューイ ンデックス 1 4 0 7 は、 本発明に おけるキヤッシュの剥奪優先順位の決定を高速化するために設けられた イ ンデックスである。 図 9の 8 0 3が、 本発明の特徴の一つとなるステ ップであるが、 剥奪優先順位が最も高い、 すなわちアクセス頻度が低い か、 または I / 0ワーキングセッ 卜が広い領域を得るには使用中キヤッ シユキユ ー 1 4 0 1 を検索する必要がある。 しかし、 例えば 1 G Bの総 容量を持つキヤ ッ シュ領域 1 0 8を 6 4 K B単位で管理した場合、 1万個 以上のキューを検索する必要がある。 これではオーバへッ ドが大きすぎ るため、 キューイ ンデックス 1 4 0 7を設け、 検索の高速化を行う。 キ ユ ーイ ンデックス 1 4 0 7はイ ンデックス値 1 4 0 8 とカウンタ 1 4 0 9から構成される。 カウンタ 1 4 0 9はイ ンデッ クス値の範囲内に何個 のキューが登録されているかを示す力ゥンタであり、 これは本発明にけ るアクセス特性によるキャ ッ シュ制御方法か、 従来の L R U方式におけ るキャ ッシュ管理方式かを切り替えるための情報と してしょうされる。 これは、 後の使用中キャ ッ シュキュー登録処理で述べる。 イ ンデックス 値 1 4 0 8は任意の数値を設定可能であるが、 図 1 0のアクセス特性テ 一ブルのアクセス頻度 9 0 3が低い順に区切るための数値が格納されて いる。 キュー登録時に図 1 0のアクセス特性テーブルのアクセス頻度 9 0 3を参照し、 アクセス頻度がィ ンデッ ク ス値 1 4 0 8の範囲内になる ようにキューに登録される。 イ ンデッ クス値の範囲内では、 完全にァク セス頻度 9 0 3の順番には並んでいないが、 ィ ンデッ クス値の範囲単位 には順番に並んでおり、 またァクセス頻度 9 0 3が高い領域を残すこと と、 アクセス頻度 9 0 3が低い領域を剥奪する両極端のキューが大きな 意味を持っため、 中間およびイ ンデッ クス値の範囲内の並びは完全であ る必要はない。 キューイ ンデックス 1 4 0 1 によ り、 イ ンデッ クスの数 だけ、 例えば数 1 0だけ走査することで、 キュ一登録時にアクセス頻度 の順番にならべることができる。 つま り、 キューの左側は剥奪優先順位 が高い領域群であり、 キューの右側が剥奪優先順位が低い領域群である c このようにキュー登録時に優先順位順に並び替えることで、 図 1 4のキ ュ一剥奪制御の処理フローに示すように、 キューの剥奪優先順位が低い 先頭部分から順番に剥奪するステップ 1 3 5 0 と、 剥奪したイ ンデック ス範囲値の範囲内のキューの数をデク リ メ ン トするステップ 1 3 5 1 だ けで、 アクセス頻度が低いか、 または I Z 0ワーキングセッ トが広い領 域を剥奪し再利用することができるようになる。 未使用キャ ッ シュキュ 一 1 4 1 0は、 有効なデータが格納されていない空き領域を管理するキ ュ一である。 未使用キヤッシユキユー 1 4 1 0は、 前方ポィ ンタ 1 4 1 1 , 後方ポィ ンタ 1 4 1 2 , ボリ ゥム名 1 4 1 3 , ボリ ゥムの領域番号 1 4 1 4, データが格納されているキャ ッ シュア ドレス 1 4 1 5 , 未書 き込みビッ ト 1 4 1 6から構成される。 使用中キャ ッ シュキュー 1 4 0 1 と同様に 1 4 1 1 〜 1 4 1 6の構造がキヤ ッ シュの管理単位であり、 一つの構造で例えば 6 4 K B程度の容量が管理される。 前方ボイ ンタ 1 4 0 2 , 後方ボイ ンタ 1 4 0 3は、 各キューを連結するためのポィ ンタ であり、 キューの剥奪や登録が発生した場合に変更が生じる。 ボリゥム 名 1 4 1 3, ボリ ゥムの領域番号 1 4 1 4 , データが格納されているキ ャ ッ シュア ドレス 1 4 1 5 , 未書き込みビッ ト 1 4 1 6の各フィール ド は、 有効なデータは格納されていないので値は未定であり、 使用中キュ —に登録される時に有効な情報が格納される。
図 1 6は、 上記で述べた使用中キヤ ッ シユキュ一登録のフ口一を示し ている。 ステップ 1 3 0 1 はアクセス特性テーブルから使用中キューに 登録したいデータのアクセス頻度を取得する。 ステップ 1 3 0 2は、 現 在のキャ ッシュ制御モ一 ドが本発明におけるアクセス特性制御か L R U かを判定する。 これは、 アクセスの状態により、 効率のよい方式に切り 替えられるようにするためである。 アクセス特性制御モー ドであればス テツプ 1 3 0 3に進み、 そうでなければステップ 1 3 0 4 に進む。 ステ ップ 1 3 0 3では、 キューイ ンデックスのサーチを行う。 このサーチは 前述の通り、 ステップ 1 3 0 1 でァクセス特性テーブルから取得したァ クセス頻度から、 使用中キヤ ッ シユキユーのどの位置に登録すべきかを 検索する。 この検索によ り、 アクセス頻度が高く 、 また I / Oヮ一キン グセッ 卜が狭いデータは剥奪されにく い位置に登録され、 逆にアクセス 頻度が低いかまたは I / 0ワーキングセッ トが広いデータは剥奪されや すい位置に登録される。 ステップ 1 3 0 4 は、 指定されたキュー位置へ 登録する。 L R U制御の場合は、 必ずキューの先頭に接続する。 つま り、 L R Uの場合はキューの先頭ほどアクセス頻度が高いことを意味する。 ステップ 1 3 0 5は、 登録したキューイ ンデックスのカウンタ 1 4 0 9 をイ ンク リ メ ン トする。 ステップ 1 3 0 6では、 キューイ ンデックス 1 4 0 7のカウンタ 1 4 0 9部分の合計を算出する。 この数値はステップ 1 3 0 7にて使用される。 ステップ 1 3 0 7では、 ァクセス特性が均等 化しているかどうか判定する。 この判定は、 ステップ 1 3 0 5の結果と ステップ 1 3 0 6の結果との比を算出し、 使用中キューの中でイ ンデッ クス値 1 4 0 8の範囲に全体の何割が存在するかを求める。 その割合が 所定の割合以上であれば、 アクセスが均等化されていることを意味して いるため、 この場合は従来の L R U制御へ移行する ( 1 3 0 9 ) 。 これ はアクセス特性にばらつきが生じている場合には本発明におけるキヤッ シュ制御方式の効果が大き く、 均等化されている場合は効果が少なくな ることから、 均等化された場合には従来の L R U制御のほうがステップ 1 3 0 3を実行しなくせ済む分、 高速なキヤ ッ シユキユ ー管理ができる ためである。 L R U制御のモー ド中でも、 キューイ ンデックスの更新は 行うため、 アクセスにばらつきが生じてきた場合には、 ステップ 1 3 0 7で本発明におけるアクセス特性制御に切り替えることができる ( 1 3 0 8 ) 0
図 1 7は、 複数のアプリ ケーシ ョ ン ί J 0 B ) が同時に稼動している 環境で各アプリケーシ ョ ンへ割り当てられるキャ ッ シュ領域 1 0 8の容 量を、 本発明におけるキャ ッ シュ制御方式と従来の L R I:方式とで比較 した例である。 各 J O Bのアクセス頻度は、 J O B 4 , J 0 B 3 , J O B 2 , J 0 Β 1 の順に高い。 また、 1 Ζ 0ワーキングいセッ トは、 J 0 B 2 , J 0 B 3 , J O B 1 , J 0 B 4の順に小さい。 1 2 0 1 は従来方 式の L R U方式の場合の図である。 L R Uによる従来の方法では、 ァク セス頻度しか考慮しないためァクセス頻度が高い順に多く のキャ ッ シュ 領域を割り当てる。 本例では J 0 B 4が最もァクセス頻度が高いため最 も多く のキャッ シュ領域を割り当てるが、 J O B 4 は I / Oワーキング セッ 卜が広いために、 大きなキャ ッ シュ領域を割り当てても高いキヤ ッ シュ ヒ ッ ト率は期待できないため、 効率の悪いキヤ ッ シュ領域 1 0 8の 割り当てになってしまう。 それに対し、 本発明によるキャ ッ シュ制御方 法では、 1 2 0 2に示すように I Z 0ワーキングセッ トが狭く、 またァ クセス頻度が高い領域に多くのキヤ ッシュ領域 1 0 8を割り当てるよう に制御される。 つま り、 J O B 4はアクセス頻度は高いが I ノ 0ヮーキ ングセッ トが広いため、 キヤ ッシュ領域 1 0 8を多く割り当てても高い ヒ ッ ト率が期待できないため、 L R U方式とは違いキヤ ッ シュ領域 1 0 8に割り当てた領域を剥奪しやすい制御を行う。 剥奪した領域は、 ァク セス頻度が比較的高く 、 また I Z 0ワーキングセッ トが狭い J 0 B 2お よび J 0 B 3へ割り振ることでディ スクァレイ制御装置全体のキヤ ッシ ュヒ ッ ト率を向上させることができる。 または、 少ないキャ ッシュ容量 でも高いヒ ッ 卜率を得ることができる。 本発明によるキヤ ッ シュ制御方 法は、 キューのサーチを伴うため、 従来の L R Uのようなキャ ッシュ制 御方法に比べ処理時間が長くなる。 キャ ッ シュは、 プロセッサの分野で も用いられる高速化手法であるが、 プロセッサ内部のキャ ッシュは高速 性が要求されるため、 本発明のようなサーチを伴うキャ ッ シュ制御方法 は採用されにく い。 しかし、 ディ スクキャ ッ シュは、 ディ スクアクセス を高速化することが目的であり、 処理に機械的動作を伴うディ スクの高 速化には十分な速さである。
図 1 8, 図 1 9は、 ディ スクアレイ制御装置 1 2 2の電源のオフ, ォ ン時のアクセス特性テーブルの使用方法についてのフローである。 図 1 8のステップ 1 9 0 0は、 アクセス特性テーブル (図 1 0 ) を ドライブ ( 1 1 7 〜 1 2 1 ) の未使用領域に書き込む。 ステップ 1 9 0 2では、 使用中キャ ッ シュキューを ドライブ ( 1 1 7 〜 1 2 1 ) の未使用領域に 書き込む。 ドライブに書き込まれたアクセス特性テーブル (図 1 0 ) と 使用中キャ ッ シュキューは、 図 1 9に示す電源オン時に使用される。 図 1 9は、 電源オン時に、 電源オフ時に書き込まれたアクセス特性テープ ル (図 1 0 ) と使用中キャ ッ シュキューから、 ホス ト 1 0 1 がアクセス を開始する前に、 あらかじめキャ ッ シュ領域 1 0 8内にボリ ゥムのデ一 タをロー ドしておく フローを示している。 ステップ 1 8 0 0は、 図 1 8 のステップ 1 9 0 0で書き込まれたアクセス特性テーブル (図 1 0 ) を 読み込む。 ステップ 1 8 0 1 は図 1 8のステップ 1 9 0 2で書き込まれ た使用中キヤ ッシユキュ一を読み込む。 ステップ 1 8 0 2では、 使用中 キヤ ッ シユキユーの内アクセス頻度が高い領域を検索し、 そのデ一タを. キャ ッ シュ領域 1 0 8に先行的に入力する。 また、 アクセス特性テープ ル (図 1 0 ) は、 電源オフする前の情報が格納されており、 電源を投入 した直後からアクセス特性に応じた制御を行う ことができる。 図 1 8, 図 1 9の制御により、 電源投入直後から、 高い性能を出すことができる ようになる。 また、 図 1 8 , 1 9では電源オン/オフ時の制御について 記述しているが、 ステップ 1 8 0 2の先行入力は、 ディ スク制御装置 1 2 2の制御プロセッサ 1 0 4が処理を実行していないアイ ドル状態に実 行することも可能であり、 ホス ト 1 0 1 がアクセスする前にデータを先 行的に入力することで、 稼働中でもキヤ ッ シュヒ ッ ト率を高めることが できるようになる。 また、 アクセス特性テーブル (図 1 0 ) だけでも先 行的な入力が可能であり、 アクセス特性テーブルをサーチし、 アクセス 頻度が高い領域を優先してキヤッシュ領域 1 0 8 に読み込むことで実現 可能である。
[実施例 2 ]
以下、 本発明に係るディ スクキヤ ッ シュ制御方法の実施例 2を図面に 示し説明する。 実施例 1 では、 I Z 0ヮーキングセッ トが狭い領域を優 先してキャ ッ シュに残す方法について述べた。 実施例 2では、 ドライブ のァクセス時間の特性を考慮したディ スクキヤ ッ シュ制御方法について 述べる。 ドライブは複数毎の円盤から構成されており、 データの読み書 きは各円盤毎に表面と裏面に設けられたへッ ドによ り行われる。 データ の読み書きには、 目的の場所へへッ ドを移動させるシーク動作と、 回転 する円盤の目的の場所がく るまで待つサーチ動作と、 目的の場所へのデ 一夕の読み書き動作により実現される。 この中では、 シークはヘッ ドを 移動させる動作を行うため、 最も遅い。 また、 へッ ドの移動距離が大き いほど時間がかかる特性がある。 実施例 2では、 この ドライブのシーク 時間を短縮するキャ ッ シュ制御方法を示す。 図 2 0 は、 単体ボリ ゥムの 中で、 複数の 1 / 0ワーキングセッ トが存在する例を示している。 2 0 5 3はボリ ゥム参照差 ドレスであり、 2 0 5 4 はアクセス頻度を示して いる。 I Z Oワーキングセッ トは 2 0 5 0 , 2 0 5 1 , 2 0 5 2である。 この例では、 ボリ ゥムの全域に渡ってアクセスが行われており、 遠距離 のへッ ドの移動が多発していることが予想されるケースである。 本実施 例では、 へッ ドの移動をできるだけ短い距離ですませるようにするため、 ボリ ゥムア ドレスの端のワーキングセッ トを優先してキャ ッ シングする ように制御する。 そのために、 キャッシュ領域に残す領域の優先順位を 決定する図 1 6のステップ 1 3 0 5のイ ンク リ メ ン ト値をアクセスされ たボリ ゥムのア ドレスにより変化させる。 図 2 1 は、 ア ドレスとインク リ メ ン ト値の関係を示している。 2 1 0 1 はボリ ゥム参照ア ドレスであ り、 2 1 0 0はイ ンク リ メ ン ト値である。 へッ ドが ドライブの外側 ( 2 1 0 2 ) に近いほどイ ンク リ メ ン ト値は小さ く 、 内側 ( 2 1 0 3 ) ほど イ ンク リ メ ン ト値が大き く なるように設定する。 こうすることで、 内側 2 1 0 3に近い領域は、 見かけ上、 ァクセス頻度が高く みせることがで き、 キャ ッシュ領域中に残りやすくなる。 また、 実施例 1 で述べたとお り、 アクセス頻度が高く、 また I ノ 0ワーキングセッ 卜が小さい領域は、 優先して残る制御も同時に行われている。 ドライブの内側のデータがキ ャ ッ シュ領域に格納されやすく なつた分、 外側のデータが格納されにく くなるカ^ へッ ドの移動距離が短くなる効果と、 また外側のほうが読み 込み/書き込み性能が良い効果とで性能を高めることができる。 この制 御によ り、 アクセス特性と、 ドライブの性能特性を考慮したキャ ッ シュ 制御が可能になり、 より性能を高めることができるようになる。
[実施例 3 ]
以下、 本発明に係るデイ スクキヤ ッ シュ制御方法の実施例 3を図面に 示し説明する。 実施例 1 では、 ホス ト 1 0 1 上で稼動するアプリケ一シ ョ ンを変更することなく、 ディ スクアレイ制御装置 1 2 2でアクセス特 性を検知する方法について述べている。 本実施例では、 アクセス特性を、 より正確に検知するために、 アプリケーシ ョ ン側でァクセスする領域や 特性を指定する方法を用いたキャ ッ シュ制御方法について述べる。
図 2 2は、 本発明の実施例 3のホス ト 2 2 5 0上のプログラムの構成 と、 ディ スクアレイ制御装置 2 2 5 4 内のメモリ 2 2 0 8内の構成を示 している。 アプリケーショ ン 2 2 5 1 がァクセスする領域や特性をディ スクァレイ制御装置 2 2 5 4 に指定するために、 オペレーティ ングシス テム内に新たに領域通知プログラム 2 2 5 3を設ける。 領域通知プログ ラム 2 2 5 3は、 アプリケ一シ ョ ンがファイルを使用するときと使用が 終わったときに発行する o p e n— f i 1 e と c 1 o s e _ f i 1 eの 入力パラメタをディ スクアレイ制御装置 2 2 5 4 に通知する処理を行う。 ディ スクァレイ制御装置 2 2 5 4のメモリ 2 2 0 5内の、 ディ スクァレ ィ読み込みプログラム 2 2 0 6は、 ホス ト 2 2 5 0から発行された入力 耍求を制御し、 ディ スクアレイ書き込みプログラム 2 2 0 7はホス ト 2 2 5 0から発行された出力要求を制御する制御プログラムである。 キヤ ッ シュ領域割り当てプログラム 2 2 0 9は、 データを格納するためのキ ャ ッ シュ領域 2 2 0 8の割り当てを行う。 アクセス特性テーブル 2 2 1 0は、 ホス ト 2 2 5 0から発行された入出力の特性に関する情報が格納 されている。 アクセス特性テーブル更新プログラムは、 領域通知プログ ラム 1 1 5 3から発行されたコマン ドカヽら、 アクセス特性テーブル 2 2 1 0を更新する。
図 2 3は、 ホス ト上で稼動するアプリケーショ ンのファイル操作につ いて述べている。 2 2 0 2は、 ファイルを使用し始める時に発行する o p e n― f i 1 eの 0ラメタ 示している。 o p e n― f i 1 eは、 フ アイル名, アプリケーシ ョ ン識別子, フ ァイル先頭ア ドレス, フ ァイル サイズ、アクセス特性を入力パラメ タとする。 このうち、 アプリケ一ショ ン識別子, ファイル先頭ア ドレス, ファイルサイズ、アクセス特性および 0 p e n コマン ドを、 ディ スクアレイ制御装置へ情報を渡すことになる。 アプリケーシ ョ ン識別子はデイ スク制御装置に対してアプリケ一ショ ン を一意に識別可能な識別子である。 アクセス特性は、 アプリケーシ ョ ン がファイルに対してラ ンダムかシーケンシャルかを示す情報である。 ラ ンダム, シーケンシャル以外にも、 一定幅でスキップするアクセスや参 照するァ ドレスや順番といつた複雑なァクセスを指定することも可能で ある。 また、 2 2 0 3ではフ ァイルを使用 し終わった時に発行する c 1 0 s e _ f i 1 eを示している。 入力パラメ タはファイル名と、 アプリ ケ一シヨ ン識別子である。 c l o s e— f i l eでは、 c l o s e コマ ン ドとアプリケ一ショ ン識別子がディ スクアレイ制御装置に渡される。 ァクセス特性テーブル更新プログラム 2 2 1 1 は、 領域通知プログラ ム 2 2 5 3を経由して転送されたアプリケーシ ョ ンのアクセス特性 2 2 0 2 , 2 2 0 3を受け付けて、 図 2 4 に示すようなアクセス特性テープ ルを更新する。 2 4 0 1 はホス ト 2 2 5 0から転送されたアプリケーシ ヨ ン識別子, 2 4 0 2はホス ト 2 2 5 0から転送されたアクセス特性で ある。 2 4 0 3 , 2 4 0 4, 2 4 0 5は、 図 1 0に示す 9 0 1 , 9 0 2 , 9 0 3 と同じである。 なお 2 4 0 3 と 2 4 0 4はホス ト 2 2 5 0から転 送されたフアイル先頭ァ ドレス, フアイルサイズから変換する。
その他のキヤ ッ シュ制御の方法は実施例 1 と同じである。 アプリケー シヨ ンからファイルの領域やアクセス特性を指示することで、 実施例 1 に比べより正確にキャ ッ シュ制御を行う ことができるようになり、 また アクセス特性テーブルはホス ト 2 2 5 0から指示された領域のみ管理す るだけで済むため容量を削減することが可能になる。
また、 アプリケーショ ン 2 2 0 1 は、 最低限確保しておきたいキヤッ シュ領域の容量をディ スクァレイ制御装置 2 2 5 4に転送し、 ディスク アレイ制御装置 2 2 5 4 はキヤ ッ シュ領域の剥奪時に転送されたキヤ ッ シュ容量以上は剥奪しないように制御することも可能である。 これは、 アクセス特性テーブルのアプリケーショ ン識別子 2 4 0 1毎に最小割り 当てキヤ ッ シュ容量と現状割り当て容量のフィ 一ル ドを追加し、 使用中 キヤ ッ シユキユーへの登録 (図 1 6 ) とキュー剥奪時 (図 1 5 ) に現状 割り当て容量を更新し、 キュー剥奪時 (図 1 5 ) に最小割り当てキヤ ッ シュ容量と比較し、 現状割り当て容量が最小割り当てキヤ ッ シュ容量を 下回っている場合には剥奪せず、 次の剥奪候補を使用中キューから求め ることで実現可能である。 また、 最小割り当てキャ ッ シュ容量はアプリ ケ一シ ヨ ンからの指示ではなく 、 ディ スクアレイ制御装置内にあらかじ め登録しておく ことでも実現可能である。 以上の通り、 本発明により、 アクセス頻度の分布が局所化されている ボリ ゥムにより多く キャ ッ シュ領域を割り当てるように制御することで システム全体のキヤ ッ シュ率を高めることができる。
尚、 本発明は、 C P Uとメイ ンメモリ とキャ ッ シュメモリ とを有する 計算機におけるキャ ッ シュメモリの制御や、 複数の記憶装置を制御する コン トローラ内に設けられたキヤ ッ シュメモリの制御にも適用できる。

Claims

請 求 の 範 囲
1. データが分割されて格納される複数のディ スク装置と、 ディ スクキ ャ ッ シュとを有し、 上記複数のディ スク装置に複数のボリ ゥムが割り当 てられたディ スクァ レイ装置におけるディ スクキヤ ッ シュ制御方法であ つて、
上記データへの新たなディ スクキャ ッ シュ領域の割り当ては、 上記ボ リ ウムを任意の固定長で区分された領域毎にアクセス頻度を求め、 上記 アクセス頻度が低い上記領域に対して割り当てられているディ スクキヤ ッシュ領域から順に行われることを特徴とするデイ スクキヤ ッシュ制御 方法。
2. 請求項 1記載のディ スクキャ ッシュ制御方法において、 上記ァクセ ス頻度に応じて上記ディ スクキヤッ シュ領域割り当てを L R U (least recently used) 制御に切り替えることを特徴とするディ スクキヤッシ ュ制御方法。
3. 請求項 2記載のディ スクキャ ッ シュ制御方法において、 上記ァクセ ス頻度のばらつきを調べ、 ばらつきが小さい場合に上記ディ スクキヤ ッ シュ領域割り当てを上記 L R U制御に切り替えることを特徴とするディ スクキャ ッ シュ制御方法。
4. 請求項 1記載のディ スクキャ ッシュ制御方法において、 アクセスさ れた上記領域が上記ディ スク装置のへッ ドの初期位置から遠く に離れる ほど上記ァクセス頻度が高く なるように設定し、 該領域に割り当てられ たディ スクキャ ッ シュ領域を剥奪されにく くするように設定することを 特徴とするディ スクキヤ ッ シュ制御方法。
5. 請求項 1 記載のディ スクキャ ッ シュ制御方法において、 アクセスさ れた上記領域が上記ディ スク装置の ドライブの内側に向かうほど上記ァ クセス頻度が高く なるように設定し、 該領域に割り当てられたディ スク キャ ッ シュ領域を剥奪されにく くするようにすることを特徴とするディ スクキャ ッ シュ制御方法。
6. 請求項 1 記載のディ スクキャ ッ シュ制御方法において、 電源遮断時 に上記アクセス頻度の情報を該ディ スク装置の未使用領域に待避し、 該 ディ スクァレイ制御装置の電源が入つた後に該ディ スク装置に格納され た上記アクセス頻度の情報を読み込むとともに、 該アクセス頻度の情報 の中からアクセス頻度が高い領域を先行して該ディ スクキャ ッ シュに読 み込むことを特徴とするデイ スクキヤ ッ シュ制御方法。
7 . 請求項 1 記載のディ スクキャ ッ シュ制御方法において、 上記ァクセ ス頻度の情報を格納する領域を 2面設け、 第 1 の面に格納された第 1 の アクセス頻度情報は該ディ スクキャ ッ シュの制御に使用し、 第 2の面に 格納された第 2のアクセス頻度情報はアクセス頻度の採取に使用し、 上 記第 1及び第 2のアクセス頻度情報は、 一定時間が経過する毎に切り替 えることを特徴とするディ スクキヤ ッ シュ制御方法。
8 . データが分割されて格納される複数のディ スク装置と、 ディ スクキ ャ ッシュとを有し、 上記複数のディ スク装置に複数のボリ ゥムが割り当 てられたディスクアレイ装置におけるディ スクキャ ッ シュ制御方法であ つて、 該ディスクアレイ装置に接铙されたホス トは、 アプリケーショ ン 識別子が含まれるコマン ドを転送し、 該ディ スクアレイ装置は該アプリ ケ一シ ョ ン識別子によって示される領域毎にアクセス頻度を取得し、 新 たな該ディ スクキヤ ッシュ領域割り当て時にアクセス頻度が低い領域か ら順にディスクキャ ッ シュ領域を剥奪することを特徴とするディ スクキ ャ ッシュ制御方法。
9 . 請求項 8記載のディ スクキヤ ッシュ制御方法であって、 上記ホス ト は上記転送コマン ドにディ スクキャ ッ シュの割り当て量を付加し、 上記 ディ スクァレイ装置は上記デイ スクキヤ ッ シュ領域の剥奪時に上記転送 コマン ドに付加されたディ スクキャ ッ シュの割り当て量を残すことを特 徴とするディ スクキャ ッ シュ制御方法。
1 0 . データが分割されて格納される複数のディ スク装置と、 ディ スク キャ ッ シュとを有し、 上記複数のディ スク装置に複数のボリ ゥムが割り 当てられたディ スクアレイ装置において、
上記ボリ ゥムを任意の固定長で区分された領域毎にアクセス頻度を求 める手段と、
上記アクセス頻度が低い上記領域に对して割り当てられているディ ス クキャ ッ シュ領域から順に上記データへの新たなディ スクキヤ ッ シュ領 域の割り当てをするようディ スクキャ ッ シュを制御する手段とを有する ことを特徴とするディ スクアレイ装置。
1 1 . 請求項 1 0記載のディ スクアレイ装置において、 上記アクセス頻 度に応じて上記ディ スクキャ ッ シュ領域割り当てを L R U O e a s t r e c e n t l y u s e d ) 制御に切り替える手段を有することを特徴とするディスク アレイ装置。
1 2 . 請求項 1 1記載のディ スクアレイ装置において、
上記アクセス頻度のばらつきを調べる手段と、
ばらつきが小さい場合に上記ディ スクキヤ ッシュ領域割り当てを上記 L R U制御に切り替える手段とを有することを特徴とするディ スクアレイ 装置。
1 3 . 請求項 1 0記載のディ スクアレイ装置において、 アクセスされた 上記領域が上記ディ スク装置の ドライブの内側に向かうほど上記ァクセ ス頻度が高くなるように設定する手段を有することを特徴とするディス クアレイ装置。
1 4 . 請求項 1 0記載のディ スクアレイ装置において、
電源遮断時に上記ァクセス頻度の情報を上記ディ スク装置の未使用領 域に待避する手段と、
上記ディ スクアレイ制御装置の電源が入った後に上記ディ スク装置に 格納された上記アクセス頻度の情報を読み込むとともに、 上記アクセス 頻度の情報の中からァクセス頻度が高い領域を先行して該ディ スクキヤ ッ シュに読み込む手段とを有することを特徴とするディ スクアレイ装置。
1 5 . 請求項 1 0記載のディ スクアレイ装置において、 上記アクセス頻 度の情報を格納する領域と、
該領域の第 1 の領域に格納され上記ディ スクキヤ ッ シュの制御に使用 される第 1 のアクセス頻度情報と、 該領域の第 1 の領域に格納されァク セス頻度の採取に使用される第 2のアクセス頻度情報を一定時間が経過 する毎に切り替える手段とを有することを特徴とするディ スクアレイ装
1 6 . データが分割されて格納される複数のディ スク装置と、 ディ スク キャ ッ シュとを有し、 上記複数のディ スク装置に複数のボリ ゥムが割り 当てられたディ スクアレイ装置と、 該ディ スクアレイ装置に接続され、 アプリ ケーシ ョ ン識別子が含まれ るコマン ドを転送するホス トと、
該ディ スクアレイ装置は該アプリケーシ ョ ン識別子によって示される 領域毎にアクセス頻度を取得し、 該ディ スクキャ ッ シュ領域割り当て時 にアクセス頻度が低い領域から順にディ スクキヤ ッ シュ領域を剥奪する ようディ スクキャ ッ シュを制御する手段とを有することを特徴とするデ イ スクァレイ装置。
1 7 . 請求項 1 6記載のディ スクアレイ装置であって、
上記ホス トは上記転送コマン ドにディ スクキャ ッ シュの割り当て量を 付加する手段を有し、
上記ディ スクキヤ ッシュ制御手段は上記ディ スクキヤ ッ シュ領域の剥 奪時に上記転送コマン ドに付加されたディ スクキャ ッ シュの割り当て量 を残すよう制御する手段を有することを特徴とするディ スクアレイ装置。
1 8 . データが格納されるディ スク装置と、 ディ スクキャ ッ シュとを有 する記憶装置におけるディ スクキャ ッ シュ制御方法であって、
上記データへの新たなディ スクキヤ ッ シュ領域の割り当ては、 上記デ ィ スク装置の領域毎にアクセス頻度を求め、 上記アクセス頻度が低い上 記領域に対して割り当てられているディ スクキヤ ッ シュ領域から順に行 うことを特徴とする記憶装置。
1 9 . データが格納されるディ スク装置と、 ディ スクキャ ッ シュとを有 する記憶装置におけるディ スクキヤ ッ シュ制御方法であって、
上記データへの新たなデイ スクキヤ ッ シュ領域の割り当ては、 上記デ ィ スク装置の領域毎にアクセス頻度を求め、 上記アクセス頻度が低い上 記領域に対して割り当てられているディ スクキャ ッ シュ領域から順に行 い、
アクセスされた上記領域が上記ディ スク装置のへッ ドの初期位置から 遠く に離れるほど上記ァクセス頻度が高く なるように設定し、 該領域に 割り当てられたディ スクキャ ッ シュ領域を剥奪されにく くするように設 定することを特徴とするディ スクキャ ッ シ ュ制御方法。
2 0 . デ一夕が格納されるディ スク装置と、 ディ スクキャ ッ シュとを有 する記憶装置におけるディ スクキャ ッ シ ュ制御方法であって、 上記データへの新たなディ スクキヤ ッ シュ領域の割り当ては、 上記デ ィ スク装置の領域毎にアクセス頻度を求め、 上記アクセス頻度が低い上 記領域に対して割り当てられているディ スクキヤ ッ シュ領域から順に行 い、
アクセスされた上記領域が上記ディ スク装置の ドライブの内側に向か うほど上記アクセス頻度が高く なるように設定し、 該領域に割り当てら れたディ スクキャ ッ シュ領域を剥奪されにく くするようにすることを特 徴とするディ スクキヤ ッ シュ制御方法。
2 1 . データが格納されるディ スク装置と、 ディ スクキャ ッ シュとを有 する記憶装置において、
上記ディ スク装置の領域毎にアクセス頻度を求める手段と、 上記データへの新たなディ スクキヤ ッシュ領域の割り当ては、 上記ァ クセス頻度が低い上記領域に対して割り当てられているディ スクキヤ ッ シュ領域から順に行うようディ スクキヤ ッ シュを制御する手段と有する ことを特徴とする記憶装置。
2 2 . データが格納されるディ スク装置と、 ディ スクキャ ッ シュとを有 する記憶装置において、
上記ディ スク装置の領域毎にアクセス頻度を求める手段と、 上記データへの新たなディ スクキヤ ッシュ領域の割り当ては、 上記ァ クセス頻度が低い上記領域に対して割り当てられているディ スクキヤ ッ シュ領域から順に行うようディ スクキヤ ッ シュを制御する手段と、 アクセスされた上記領域が上記ディ スク装置のへッ ドの初期位置から 遠く に離れるほど上記ァクセス頻度が高く なるように設定する手段とを 有し、 該領域に割り当てられたディ スクキャ ッ シ ュ領域を剥奪されにく く したことを特徴とする記憶装置。
2 3 . データが格納されるディ スク装置と、 ディ スクキャ ッ シュとを有 する記憶装置において、
上記ディ スク装置の領域毎にアクセス頻度を求める手段と、 上記データへの新たなディ スクキヤ ッ シュ領域の割り当ては、 上記ァ クセス頻度が低い上記領域に対して割り当てられているディ スクキヤ ッ シュ領域から順に行うようディ スクキャ ッ シ ュを制御する手段と、 アクセスされた上記領域が上記ディ スク装置の ドライブの内側に向か うほど上記アクセス頻度が高く なるように設定する手段とを有し、 該領 域に割り当てられたディ スクキャ ッ シュ領域を剥奪されにく く したこと を特徴とする記憶装置。
PCT/JP1998/000463 1998-02-04 1998-02-04 Disk cache control method, disk array device, and storage device WO1999040516A1 (en)

Priority Applications (3)

Application Number Priority Date Filing Date Title
EP98901506A EP1061449A4 (en) 1998-02-04 1998-02-04 METHOD OF MANAGING ANEMATORY DISK, DISC STRUCTURE AND MEMORY
PCT/JP1998/000463 WO1999040516A1 (en) 1998-02-04 1998-02-04 Disk cache control method, disk array device, and storage device
US09/601,480 US6748487B1 (en) 1998-02-04 1998-02-04 Disk cache control method, disk array system, and storage system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP1998/000463 WO1999040516A1 (en) 1998-02-04 1998-02-04 Disk cache control method, disk array device, and storage device

Publications (1)

Publication Number Publication Date
WO1999040516A1 true WO1999040516A1 (en) 1999-08-12

Family

ID=14207537

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP1998/000463 WO1999040516A1 (en) 1998-02-04 1998-02-04 Disk cache control method, disk array device, and storage device

Country Status (3)

Country Link
US (1) US6748487B1 (ja)
EP (1) EP1061449A4 (ja)
WO (1) WO1999040516A1 (ja)

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7251716B2 (en) 2004-04-28 2007-07-31 Hitachi, Ltd. Method and system for data processing with recovery capability
JP2008181457A (ja) * 2007-01-26 2008-08-07 Hewlett-Packard Development Co Lp 検索システムおよびその方法
JPWO2008155815A1 (ja) * 2007-06-19 2010-08-26 富士通株式会社 情報処理装置
JP2011530133A (ja) * 2008-08-04 2011-12-15 サンディスク アイエル リミテッド キャッシュコンテンツの記憶管理
US8239634B2 (en) 2007-06-05 2012-08-07 Nec Corporation Input/output control based on information specifying input/output issuing source and input/output priority
US8549244B2 (en) 2010-07-16 2013-10-01 Fujitsu Limited Device and method of copying data between disks having equal or different rotational rates
US8732687B2 (en) 2009-03-17 2014-05-20 Nec Corporation Arrangement method of programs to memory space, apparatus, and recording medium

Families Citing this family (35)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003216460A (ja) * 2002-01-21 2003-07-31 Hitachi Ltd 階層ストレージ装置及びその制御装置
US7136966B2 (en) * 2002-03-18 2006-11-14 Lsi Logic Corporation Method and apparatus for using a solid state disk device as a storage controller cache
JP2005166155A (ja) * 2003-12-02 2005-06-23 Hitachi-Lg Data Storage Inc 光ディスクドライブ装置
US8244974B2 (en) * 2003-12-10 2012-08-14 International Business Machines Corporation Method and system for equalizing usage of storage media
JP4548037B2 (ja) * 2004-08-09 2010-09-22 株式会社日立製作所 キャッシュメモリの管理方法、ストレージ装置または計算機システム
US7590803B2 (en) * 2004-09-23 2009-09-15 Sap Ag Cache eviction
US20060143398A1 (en) * 2004-12-23 2006-06-29 Stefan Rau Method and apparatus for least recently used (LRU) software cache
US7539821B2 (en) * 2004-12-28 2009-05-26 Sap Ag First in first out eviction implementation
US20060143256A1 (en) 2004-12-28 2006-06-29 Galin Galchev Cache region concept
US20060143389A1 (en) * 2004-12-28 2006-06-29 Frank Kilian Main concept for common cache management
JP4819369B2 (ja) 2005-02-15 2011-11-24 株式会社日立製作所 ストレージシステム
US7966450B2 (en) * 2005-09-01 2011-06-21 Micron Technology, Inc. Non-volatile hard disk drive cache system and method
JP2007072988A (ja) * 2005-09-09 2007-03-22 Hitachi Ltd ディスクアレイ装置及びデータ移動方法並びにプログラム
US8571061B2 (en) * 2006-07-07 2013-10-29 Avaya Communications Israel Ltd. Inter-network translation
US8990396B2 (en) * 2006-07-07 2015-03-24 Avaya Communication Israel Ltd. Cache memory storage
WO2008070803A1 (en) 2006-12-06 2008-06-12 Fusion Multisystems, Inc. (Dba Fusion-Io) Apparatus, system, and method for managing data from a requesting device with an empty data token directive
US7836226B2 (en) 2007-12-06 2010-11-16 Fusion-Io, Inc. Apparatus, system, and method for coordinating storage requests in a multi-processor/multi-thread environment
US9519540B2 (en) 2007-12-06 2016-12-13 Sandisk Technologies Llc Apparatus, system, and method for destaging cached data
US8433854B2 (en) * 2008-06-25 2013-04-30 Intel Corporation Apparatus and method for cache utilization
KR101517761B1 (ko) * 2008-07-30 2015-05-06 시게이트 테크놀로지 엘엘씨 데이터 저장 위치 관리 방법 및 이를 데이터 저장 시스템
JP5402210B2 (ja) * 2009-04-24 2014-01-29 ヤマハ株式会社 画像処理装置
CN101566933B (zh) * 2009-06-11 2012-07-04 成都市华为赛门铁克科技有限公司 一种配置缓存的方法、装置和电子设备及数据读写装置
WO2012116369A2 (en) 2011-02-25 2012-08-30 Fusion-Io, Inc. Apparatus, system, and method for managing contents of a cache
US9235443B2 (en) 2011-11-30 2016-01-12 International Business Machines Corporation Allocation enforcement in a multi-tenant cache mechanism
US8850122B2 (en) * 2011-11-30 2014-09-30 International Business Machines Corporation Cache optimization via predictive cache size modification
US9251086B2 (en) 2012-01-24 2016-02-02 SanDisk Technologies, Inc. Apparatus, system, and method for managing a cache
CN103793329B (zh) * 2012-10-26 2017-12-22 腾讯科技(北京)有限公司 数据存储方法及数据存储装置
US9213644B2 (en) * 2013-03-07 2015-12-15 Lenovo Enterprise Solutions (Singapore) Pte. Ltd. Allocating enclosure cache in a computing system
US9208086B1 (en) 2014-01-09 2015-12-08 Pure Storage, Inc. Using frequency domain to prioritize storage of metadata in a cache
US9612964B2 (en) * 2014-07-08 2017-04-04 International Business Machines Corporation Multi-tier file storage management using file access and cache profile information
US11169919B2 (en) 2019-05-12 2021-11-09 International Business Machines Corporation Cache preference for selected volumes within a storage system
US11176052B2 (en) 2019-05-12 2021-11-16 International Business Machines Corporation Variable cache status for selected volumes within a storage system
US11163698B2 (en) * 2019-05-12 2021-11-02 International Business Machines Corporation Cache hit ratios for selected volumes using synchronous I/O
US11151035B2 (en) 2019-05-12 2021-10-19 International Business Machines Corporation Cache hit ratios for selected volumes within a storage system
US11237730B2 (en) 2019-05-12 2022-02-01 International Business Machines Corporation Favored cache status for selected volumes within a storage system

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS63280356A (ja) * 1987-05-12 1988-11-17 Nec Corp 仮想ディスク装置のバッファ管理方式
JPH0331948A (ja) * 1989-06-28 1991-02-12 Mitsubishi Electric Corp ディスクキャシュ
JPH0492941A (ja) * 1990-08-09 1992-03-25 Digital Equip Corp <Dec> キャッシュメモリの順次参照管理方法および装置
JPH04259048A (ja) * 1991-02-14 1992-09-14 Fujitsu Ltd 統計情報による先読みデータ制御方式
JPH08115263A (ja) * 1994-10-18 1996-05-07 Fuji Xerox Co Ltd メモリ装置

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5432919A (en) * 1989-07-06 1995-07-11 Digital Equipment Corporation Sequential reference management for cache memories
JP2830218B2 (ja) * 1989-11-22 1998-12-02 株式会社日立製作所 キャッシュ付ディスク制御装置の障害処理方法
CA2121852A1 (en) * 1993-04-29 1994-10-30 Larry T. Jost Disk meshing and flexible storage mapping with enhanced flexible caching
JP3099930B2 (ja) * 1993-07-16 2000-10-16 株式会社東芝 ディスクアレイ装置
JPH0877073A (ja) * 1994-08-31 1996-03-22 Toshiba Corp 集合光ディスク装置
US6009498A (en) * 1995-02-16 1999-12-28 Fujitsu Limited Disk control unit for holding track data in cache memory
WO1996037846A1 (en) * 1995-05-22 1996-11-28 Syncronys Softcorp Virtual memory management system with adaptive knowledge base
US5956744A (en) * 1995-09-08 1999-09-21 Texas Instruments Incorporated Memory configuration cache with multilevel hierarchy least recently used cache entry replacement
US5778430A (en) * 1996-04-19 1998-07-07 Eccs, Inc. Method and apparatus for computer disk cache management
US5822759A (en) * 1996-11-22 1998-10-13 Versant Object Technology Cache system
JPH10187505A (ja) * 1996-12-24 1998-07-21 Toshiba Corp 情報記憶システム及び同システムに適用するデータ配置方法
US6311252B1 (en) * 1997-06-30 2001-10-30 Emc Corporation Method and apparatus for moving data between storage levels of a hierarchically arranged data storage system
WO1999034356A2 (en) * 1997-12-30 1999-07-08 Genesis One Technologies, Inc. Disk cache enhancer with dynamically sized read request based upon current cache hit rate

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS63280356A (ja) * 1987-05-12 1988-11-17 Nec Corp 仮想ディスク装置のバッファ管理方式
JPH0331948A (ja) * 1989-06-28 1991-02-12 Mitsubishi Electric Corp ディスクキャシュ
JPH0492941A (ja) * 1990-08-09 1992-03-25 Digital Equip Corp <Dec> キャッシュメモリの順次参照管理方法および装置
JPH04259048A (ja) * 1991-02-14 1992-09-14 Fujitsu Ltd 統計情報による先読みデータ制御方式
JPH08115263A (ja) * 1994-10-18 1996-05-07 Fuji Xerox Co Ltd メモリ装置

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
See also references of EP1061449A4 *

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7251716B2 (en) 2004-04-28 2007-07-31 Hitachi, Ltd. Method and system for data processing with recovery capability
JP2008181457A (ja) * 2007-01-26 2008-08-07 Hewlett-Packard Development Co Lp 検索システムおよびその方法
US8239634B2 (en) 2007-06-05 2012-08-07 Nec Corporation Input/output control based on information specifying input/output issuing source and input/output priority
JPWO2008155815A1 (ja) * 2007-06-19 2010-08-26 富士通株式会社 情報処理装置
JP4692678B2 (ja) * 2007-06-19 2011-06-01 富士通株式会社 情報処理装置
JP2011530133A (ja) * 2008-08-04 2011-12-15 サンディスク アイエル リミテッド キャッシュコンテンツの記憶管理
US8732687B2 (en) 2009-03-17 2014-05-20 Nec Corporation Arrangement method of programs to memory space, apparatus, and recording medium
US8549244B2 (en) 2010-07-16 2013-10-01 Fujitsu Limited Device and method of copying data between disks having equal or different rotational rates

Also Published As

Publication number Publication date
US6748487B1 (en) 2004-06-08
EP1061449A1 (en) 2000-12-20
EP1061449A4 (en) 2005-12-21

Similar Documents

Publication Publication Date Title
WO1999040516A1 (en) Disk cache control method, disk array device, and storage device
US9569130B2 (en) Storage system having a plurality of flash packages
US5734861A (en) Log-structured disk array with garbage collection regrouping of tracks to preserve seek affinity
US5895488A (en) Cache flushing methods and apparatus
US5513336A (en) System and method for determining when and what position in cache memory to store data elements utilizing least and last accessed data replacement method
US8856397B1 (en) Techniques for statistics collection in connection with data storage performance
US7159073B2 (en) Data storage and caching architecture
JP4162184B2 (ja) データベース管理システムの実行情報を取得する手段を有する記憶装置
JP5349897B2 (ja) ストレージシステム
JPH0574102B2 (ja)
US7062608B2 (en) Storage device adapter equipped with integrated cache
JP5531091B2 (ja) 計算機システム及びその負荷均等化制御方法
US8244955B2 (en) Storage system and its controlling method
JP6323445B2 (ja) ストレージ装置と方法及びプログラム
JP6283770B2 (ja) ストレージシステム
WO2014002126A1 (en) Computer system and method of controlling i/o with respect to storage apparatus
US9699254B2 (en) Computer system, cache management method, and computer
JPH11203056A (ja) 入出力制御装置及びアレイディスク装置
JP2014010604A (ja) ストレージ装置とプログラムと方法
US20180052772A1 (en) Storage system and storage control method
JPH1011337A (ja) 記憶装置におけるデータ制御方法
JP3898369B2 (ja) ページング処理装置および記録媒体
JP2005166073A (ja) 記憶装置の制御装置および制御方法
JP3721338B2 (ja) 記憶装置の制御装置および制御方法

Legal Events

Date Code Title Description
AK Designated states

Kind code of ref document: A1

Designated state(s): CN JP KR US

AL Designated countries for regional patents

Kind code of ref document: A1

Designated state(s): AT BE CH DE DK ES FI FR GB GR IE IT LU MC NL PT SE

DFPE Request for preliminary examination filed prior to expiration of 19th month from priority date (pct application filed before 20040101)
121 Ep: the epo has been informed by wipo that ep was designated in this application
WWE Wipo information: entry into national phase

Ref document number: 1998901506

Country of ref document: EP

Ref document number: 09601480

Country of ref document: US

NENP Non-entry into the national phase

Ref country code: KR

WWP Wipo information: published in national office

Ref document number: 1998901506

Country of ref document: EP