WO2018008676A1 - Information processing system, cache allocation method, memory control device, memory control method, and recording medium - Google Patents

Information processing system, cache allocation method, memory control device, memory control method, and recording medium Download PDF

Info

Publication number
WO2018008676A1
WO2018008676A1 PCT/JP2017/024617 JP2017024617W WO2018008676A1 WO 2018008676 A1 WO2018008676 A1 WO 2018008676A1 JP 2017024617 W JP2017024617 W JP 2017024617W WO 2018008676 A1 WO2018008676 A1 WO 2018008676A1
Authority
WO
WIPO (PCT)
Prior art keywords
capacity
page
partition
cache
access
Prior art date
Application number
PCT/JP2017/024617
Other languages
French (fr)
Japanese (ja)
Inventor
周吾 小川
Original Assignee
日本電気株式会社
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 日本電気株式会社 filed Critical 日本電気株式会社
Publication of WO2018008676A1 publication Critical patent/WO2018008676A1/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • 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

Definitions

  • the present invention relates to an information processing system, a cache capacity distribution method, a storage control device, a storage control method, and a recording medium.
  • Patent Document 1 discloses a technique for adjusting the capacity to be allocated based on the cache hit frequency.
  • Patent Document 2 discloses a technique for calculating the capacity of each partition when the cache capacity is divided into partitions and handled as an independent cache.
  • Non-Patent Document 3 discloses the following technique. In this technique, newly stored data and data hit once are managed by different LRU (Least Recently Used) caches. Then, when the data previously stored in each cache unit is accessed, the technology moves a certain capacity from the other cache so that the data hits in the cache.
  • LRU Least Recently Used
  • the capacity allocated to each partition of the cache is optimized when it is distributed with a measurement time such as a cache hit rate.
  • a measurement time such as a cache hit rate.
  • An object of the present invention is to provide a technique for solving the above-described problems.
  • a storage control device provides: In the cache memory, a reduction candidate setting means for setting a partition that includes a page that has not been accessed for a predetermined time or a page whose access frequency is lower than a predetermined value as a partition whose capacity can be reduced; If the page where a cache miss occurred is included in the history of pages evicted from the cache memory to a lower storage medium, the capacity of the partition where the cache miss occurred can be reduced by reducing the capacity of the partition where the capacity can be reduced.
  • a storage control method includes: In the cache memory, set a reduction candidate to set a partition that includes a page that has not been accessed for a predetermined time or a page whose access frequency is lower than a predetermined value as a partition whose capacity can be reduced, If the page where a cache miss occurred is included in the history of pages evicted from the cache memory to a lower storage medium, the capacity of the partition where the cache miss occurred can be reduced by reducing the capacity of the partition where the capacity can be reduced. Control the capacity to add.
  • a nonvolatile recording medium includes: In the cache memory, a process for setting a reduction candidate to set a partition that includes a page that has not been accessed for a predetermined time or a page whose access frequency is lower than a predetermined value as a partition whose capacity can be reduced; If the page where a cache miss occurred is included in the history of pages evicted from the cache memory to a lower storage medium, the capacity of the partition where the cache miss occurred can be reduced by reducing the capacity of the partition where the capacity can be reduced.
  • a system provides: A storage medium; An access means for instructing access to the storage medium based on access requests from a plurality of processes; A storage control unit that has a cache memory and controls access to the storage medium; An information processing system comprising: Memory control means In the cache memory, a reduction candidate setting means for setting a partition that includes a page that has not been accessed for a predetermined time or a page whose access frequency is lower than a predetermined value as a partition whose capacity can be reduced; If the page where a cache miss occurred is included in the history of pages evicted from the cache memory to a lower storage medium, the capacity of the partition where the cache miss occurred can be reduced by reducing the capacity of the partition where the capacity can be reduced. Capacity control means to be added; Is provided.
  • a cache capacity allocation method includes: Assigning a partition including at least one page in the cache memory to each of the plurality of processes; In the cache memory, set a reduction candidate to set a partition including a page that has not been accessed for a predetermined time or a page whose access frequency is lower than a predetermined value as a partition whose capacity can be reduced, If the page where a cache miss occurred is included in the history of pages evicted from the cache memory to a lower storage medium, the capacity of the partition where the cache miss occurred can be reduced by reducing the capacity of the partition where the capacity can be reduced. Control the capacity to add, While performing the setting of reduction candidates in the background, the control of the capacity is repeated, and the distribution of the cache capacity for each process is managed.
  • the present invention it is possible to optimize during processing without measuring the capacity to be allocated to the cache partition corresponding to each processing, and to improve the access performance to the storage medium.
  • FIG. 1 is a block diagram illustrating a configuration of a storage control device according to a first embodiment of the present invention. It is a block diagram which shows the structure of the information processing system containing the storage control apparatus which concerns on 2nd Embodiment of this invention. It is a block diagram which shows the function structure of the storage control apparatus which concerns on 2nd Embodiment of this invention. It is a figure which shows the structure of the page state management table which concerns on 2nd Embodiment of this invention. It is a figure which shows the structure of the partition capacity
  • a “page” is an access unit to a cache in the system.
  • the access unit of the storage medium is smaller than the page.
  • all accesses are performed in units of pages.
  • access occurs in units smaller than the page.
  • a storage control device 100 as a first embodiment of the present invention will be described with reference to FIG.
  • the storage control device 100 is a device that controls access to a storage medium including a cache memory.
  • the storage control device 100 includes a reduction candidate setting unit 101 and a capacity control unit 102.
  • the reduction candidate setting unit 101 sets, in the cache memory 130, a partition 111 that includes a page that has not been accessed for a predetermined time or a page whose access frequency is lower than a predetermined value, as a partition 121 whose capacity can be reduced.
  • the capacity control unit 102 operates as follows when the page 122 in which a cache miss has occurred is included in the history 123 of the page evicted from the cache memory 130 to the lower storage medium 140. That is, the capacity control unit 102 reduces the capacity of the partition 121 whose capacity can be reduced and adds it to the capacity of the partition 124 in which a cache miss has occurred.
  • a partition including a page with few accesses is set as a partition whose capacity can be reduced, and the capacity is moved to a partition where a cache miss has occurred in the evicted page.
  • This embodiment can use this operation to optimize the cache capacity during processing without measuring the capacity to be allocated to the cache partition corresponding to each process, and to improve the access performance to the storage medium.
  • the storage control apparatus of this embodiment sets a partition including a page with few accesses to a partition capable of reducing the capacity, and repeatedly moves the capacity to the partition where a cache miss has occurred in the evicted page.
  • the setting of the reducible partition in the storage control device of the present embodiment is performed based on unnecessary page detection that detects a page that has not been accessed as an unnecessary page with a predetermined time as a cycle. Then, the storage control device of this embodiment sets a partition including unnecessary pages as a partition whose capacity can be reduced. This unnecessary page detection is performed using, for example, a clock algorithm. In addition, when there are a plurality of partitions whose capacity can be reduced in capacity transfer, the storage control device of this embodiment sets a partition including a page that is most likely to be evicted to a lower storage medium as a partition whose capacity is reduced. .
  • the storage control device of this embodiment is the page most likely to be evicted to the lower storage medium.
  • the cache capacity distribution method according to the present embodiment includes an allocation process in which a partition including at least one page in the cache memory is assigned to each of a plurality of processes.
  • the cache capacity distribution method of the present embodiment includes a distribution management process for managing the distribution of the cache capacity allocated to each process by repeatedly performing the capacity control process while executing the reduction candidate setting process in the background.
  • the processor does not have a large storage area, and uses a lower-order memory composed of a DRAM (Dynamic Random Access Memory) or the like to process a large amount of data.
  • a lower storage hierarchy is low in a computer, processing performance can be improved by caching data in an upper storage medium.
  • a cache having a sufficient capacity corresponding to the increased access amount is required.
  • the technique disclosed in Non-Patent Document 1 divides the cache into areas called partitions for each process, thereby preventing contention between processes.
  • Each partition operates as an independent cache having an allocated capacity. Therefore, the technique disclosed in Non-Patent Document 1 can avoid contention between processes in which cached data drives out data of other processes by using partitions.
  • the technique disclosed in Non-Patent Document 1 improves the number of hits for the cache capacity by setting an optimum partition capacity for each process.
  • the optimum partition capacity of each process included in the cache depends not only on the memory capacity of the computer and the storage system but also on the combination of processes executed in parallel. The working set changes as the execution of each process proceeds.
  • the technique disclosed in Non-Patent Document 2 dynamically optimizes the capacity distribution of each partition from the access status in the processor cache.
  • the technique disclosed in Non-Patent Document 2 predicts the number of hits when the partition capacity is changed from the cache usage status, and calculates a capacity distribution that maximizes the number of hits for the partition.
  • the technique disclosed in Non-Patent Document 2 refers to the priority of replacement within a partition when each access hits in order to predict the number of hits when the capacity changes.
  • a cache for storage media such as HDDs and SSDs
  • LRU Least Recently Used
  • the data structure representing the priority is in the form of a list in many cases, it is necessary to check the replacement priority of the data hit by the cache from the top. You need to follow the list. Therefore, the response time at the time of a cache hit increases, leading to a decrease in access performance.
  • Non-Patent Document 3 discloses a cache replacement algorithm that dynamically adjusts the capacity of each cache part according to access. This algorithm manages newly stored data and data hit once using different LRU caches. This algorithm moves a certain capacity from the other cache so that the data hits in the cache when the data previously stored in each cache unit is accessed. Therefore, in Non-Patent Document 3, it is not necessary to predict the number of hits at the time of capacity change as in the technique shown in Non-Patent Document 2. However, Non-Patent Document 3 does not support capacity adjustment between three or more caches, and it is not assumed to optimize the capacity between caches or partitions allocated to different processes. .
  • the operation of detecting a page that has not been accessed for a long period of time is used in a general technique for determining data to be replaced in cache and memory management. Used.
  • the process of detecting the occurrence of a cache miss and requesting additional capacity is associated with the process of finding a partition with less access and a capacity reduction. For this reason, the time for changing the capacity is limited, and the data access performance is degraded.
  • the present embodiment provides a method of dynamically adjusting the capacity of each partition so that the cache hit rate of the cache partition capacity of each process on the storage medium is maximized in a plurality of processes executed in parallel. .
  • whether or not the capacity of the partition can be reduced is determined based on the access information to the storage medium through the cache based on the process assigned to each partition. Then, when it is necessary to add capacity of each partition, the present embodiment moves the capacity from the partition capable of capacity reduction prepared in advance to the partition determined to require capacity addition.
  • a criterion for determining whether or not the capacity of the partition can be reduced data stored in the cache but out of the working set is detected.
  • information on access to the storage medium through the cache partition corresponding to each process is used.
  • data that has been evicted on the basis of insufficient cache capacity despite repeated access is detected from the information as a criterion for determining the capacity addition of the partition.
  • the present embodiment monitors whether or not each page included in the cache is accessed, and detects a page that has not been accessed for a long period of time.
  • a page that has not been accessed for a long period of time is likely to have a low access frequency and is likely to be a page that is not included in the working set. Therefore, in the present embodiment, the capacity of the detected page is a capacity that can be released from the partition including the page.
  • the present embodiment stores the history of the most recent page that has been evicted from the cache, and compares it with the history stored when a cache miss occurs in each partition.
  • the cache missed page is included in the history, the cache missed page is considered to have been missed because it was repeatedly accessed but was evicted from the cache. For this reason, in the present embodiment, a request is made to add a capacity of a partition necessary for storing in the cache a page in which the accessed process has missed the cache.
  • the requested capacity is additionally allocated to the partition for which the capacity addition request is made.
  • one partition is selected from the partitions whose capacity can be released, and the capacity requested to be added is subtracted from the capacity allocated to the selected partition.
  • the pages are replaced based on the capacity after the increase and decrease in each partition whose capacity has increased and decreased.
  • the present embodiment operates as follows. In other words, in the present embodiment, the number of pages included is replaced with a page of another partition whose capacity is larger than the capacity, and the number of pages of the partition is increased.
  • the present embodiment dynamically adjusts the capacity of each partition so that the cache hit rate is maximized.
  • This embodiment includes a page status management function, a partition capacity setting function, a replacement target page selection function, a replacement page history management function, an unnecessary page capacity release function, a capacity addition determination function, and an additional capacity acquisition source selection function. And comprising.
  • the page status management function manages information about each page in the cache. In other words, the page state management function determines whether to reduce capacity and add capacity to the cache partition corresponding to each process.
  • the page state management function manages the last access time, the presence / absence of access for a certain time, or the number of accesses for each page in order to maximize the cache hit rate by moving the capacity between partitions.
  • Information for managing each page includes management information held by a general cache such as an identifier such as a storage destination address in the storage medium of data stored in each page and / or a priority of replacement.
  • the information for managing each page has at least one information regarding the last access time for each page, the presence / absence of access within a certain time, and the number of accesses.
  • the partition capacity setting function can set the capacity of each partition during operation, and manages the designation of the capacity allocated to each partition defined in the cache and the releasable capacity.
  • the replacement target page selection function determines the page to be replaced for storing data, or controls the priority order of pages to be replaced. In other words, the replacement target page selection function performs the following operation for each partition defined in the cache and operating as a virtual independent cache. In other words, the replacement target page selection function determines a page as a storage destination of new data based on a cache miss based on the priority order of replacement of each page included in the partition and the partition capacity acquired from the partition capacity setting function. . Further, the replacement target page selection function updates the priority order for replacement of each page of the partition in which new data is stored based on the replacement result.
  • the replacement page history management function manages the history of pages that have been stored in the cache in the past and replaced based on other data. That is, the replacement page history management function manages information as follows for pages replaced based on data newly stored in each partition in the past certain period. That is, the replacement page history management function manages information of an identifier that specifies a storage destination such as an address in a storage medium of data stored in a replaced page.
  • the unnecessary page capacity release function detects an unnecessary page that has not been accessed for a certain period of time from the access information corresponding to each page, or has a low access frequency. Then, the unnecessary page capacity release function calculates a releasable capacity with respect to the capacity allocated to the partition to which the unnecessary page belongs. That is, the unnecessary page capacity release function circulates information on each page managed by the page state management function. Then, the unnecessary page capacity release function detects an unnecessary page that has not been accessed for a certain period of time or has a low access frequency from the information of the last access time, the presence / absence of access within a certain period, and the number of accesses. Then, the unnecessary page capacity release function adds the capacity of the unnecessary page to the releasable capacity managed by the partition capacity setting function for the partition including the unnecessary page.
  • the capacity addition determination function determines whether capacity addition to a partition is necessary from the history of pages replaced in the cache and cache miss information of processing corresponding to each partition. That is, the capacity addition determination function compares an identifier such as an access destination address with an identifier managed based on the replacement page history management function for an access to a storage medium that results in a cache miss. If there is an identifier that matches the access destination, the capacity addition determination function determines that the capacity of the partition needs to be increased in order to increase the cache hit rate, and identifies the partition corresponding to the process that made the access request. Then, the capacity addition determination function makes a capacity addition request for the identified partition.
  • an identifier such as an access destination address
  • the additional capacity acquisition source selection function refers to the history information maintained by the history management function, and selects a partition having a releasable capacity as a capacity acquisition source and a capacity acquisition source. That is, the additional capacity acquisition source selection function selects a partition that provides an additional capacity to satisfy the request in response to a capacity addition request based on the capacity addition determination function.
  • the partition selection condition is a partition having a releasable capacity that is larger than the capacity requested for addition in the partition capacity setting function.
  • the additional capacity acquisition source selection function may select an arbitrary partition at random or select an optimum partition using any other algorithm, for example. .
  • FIG. 2 is a block diagram showing a configuration of an information processing system 200 including a storage control unit 220 as a storage control device according to the present embodiment.
  • the information processing system 200 includes one or more host computers 210, a storage medium 240, and a network 250 that connects the host computer 210 and the storage medium 240.
  • the storage medium 240 may be distributed over a plurality of storage media and connected to the network 250.
  • the host computer 210 includes an OS (Operating System) 211, a plurality of cores operating on the OS 211 and a thread 212 that is software, and the storage control unit 220 of the present embodiment.
  • the storage control unit 220 includes a cache 221 and controls access processing including read and write to the storage medium 240 in the processing of the OS 211 and the plurality of cores and threads 212.
  • the storage medium 240 is a write-once storage medium such as an HDD employing SSD and SMR (Shingled Magnetic Recording) using NAND flash as a storage element.
  • the storage medium 240 may include a medium body 241 and a buffer.
  • the form of the network 250 is not particularly limited, and the host computer 210 and the storage medium 240 may be directly connected.
  • the host computer 210 may be configured by a plurality of devices or systems connected via the network 250.
  • FIG. 3 is a block diagram showing a functional configuration of the storage control unit 220 as the storage control device according to the present embodiment.
  • the same components as those in FIG. 2 are denoted by the same reference numerals.
  • the storage control unit 220 includes a cache 221 as a page pool and an access control unit 301. Further, the storage control unit 220 includes a cache hit / miss determination unit 302, a page state management unit 308 having a page state management table 381, and a partition capacity management unit 307 having a partition capacity setting table 371. Furthermore, the storage control unit 220 includes a replacement target page selection unit 303, a replacement history management unit 304 having a replacement page history table 341, a capacity addition determination unit 305, an additional capacity acquisition source selection unit 306, and an unnecessary page capacity release. Unit 309.
  • the cache hit / miss determination unit 302, the page state management unit 308, the partition capacity management unit 307, the replacement target page selection unit 303, and the unnecessary page capacity release unit 309 function as a reduction candidate setting unit.
  • the cache hit / miss determination unit 302, the page state management unit 308, the partition capacity management unit 307, the replacement target page selection unit 303, the replacement history management unit 304, the capacity addition determination unit 305, and the additional capacity acquisition source selection unit 306 Functions as a capacity control unit.
  • a cache 221 serving as a page pool stores data to be cached in units of pages with respect to accesses to the storage medium 240 by cores and threads of the host computer 210.
  • the access control unit 301 receives an access request from the software of the host computer 210, and performs necessary access processing for the storage medium 240 and a response to the result of the access request. Further, the access control unit 301 accesses the specified page of the cache 221 or stores the data of the page included in the cache 221 instead of accessing the storage medium 240 based on the instruction of the replacement target page selection unit 303. Write to medium 240.
  • the cache hit / miss determination unit 302 receives information on the access destination address of the storage medium 240 in the access request received by the access control unit 301. Then, the cache hit / miss determination unit 302 refers to the page state management table 381 and determines whether the access destination data is in the cache 221. Further, the cache hit / miss determination unit 302 notifies the replacement target page selection unit 303 of the determination result of cache hit or cache miss.
  • the page state management unit 308 uses the page state management table 381 to obtain management information necessary for realizing the cache function for the storage medium 240 and information necessary for adjusting the capacity of the partition for each page included in the cache 221. to manage.
  • FIG. 4 is a diagram showing a configuration of the page state management table 381 according to the present embodiment.
  • each page of the page state management table 381 has a use flag 401 indicating that the page corresponding to the entry is used, and an address 402 indicating the storage location of the data of the page in the storage medium 240. Further, each page entry has a partition number 403 indicating the partition to which the page belongs. Each page entry has a replacement priority 404 indicating the priority of replacement in each partition, and an access flag 405 indicating that each page has a cache hit. Further, each page entry indicates that each page is updated from data recorded in the storage destination of the storage medium 240 and an unnecessary candidate flag 406 indicating that each page is determined to be a cache-unnecessary page. An update flag 407.
  • the format of the data stored in each entry of the page state management table 381 is not limited to the format shown in FIG.
  • the page state management table 381 may be substituted by setting the value of the address 402 to a specific value that does not correspond to the storage area of the storage medium 240.
  • the replacement priority 404 may be expressed in the form of a link list when, for example, LRU (Least Recently) Used) is used as a replacement algorithm for pages in a partition, instead of having rank information as numerical values.
  • LRU Least Recently
  • the page state management table 381 includes the following information: You may make it have. In other words, the page state management table 381 may have the last access time information instead of the access flag 405 in each entry.
  • the partition capacity management unit 307 uses the partition capacity setting table 371 to operate each partition as an independent cache defined in the cache, and manages information on the capacity set in the partition.
  • FIG. 5 is a diagram showing a configuration of the partition capacity setting table 371 according to the present embodiment.
  • Each entry in the partition capacity setting table 371 corresponds to a defined individual partition.
  • Each entry of the partition capacity setting table 371 has a partition number 501 for identifying a partition, and a setting capacity 502 indicating the number of pages allocated to the partition corresponding to the entry. Further, each entry of the partition capacity setting table 371 has a releasable capacity 503 indicating a capacity releasable from other partitions in the partition, and a real capacity 504 indicating the number of pages actually included in the partition.
  • the format of data stored in each entry of the partition capacity setting table 371 is not limited to the format shown in FIG.
  • the partition capacity setting table 371 may use the order of entries counted from the top as the partition number instead of having the partition number 501.
  • the partition capacity setting table 371 may indicate the set capacity 502, the releasable capacity 503, and the real capacity 504 not by the number of pages but by the capacity in bytes.
  • the partition capacity setting table 371 includes a capacity in the entry corresponding to each partition. The number of addition requests may be stored.
  • the replacement target page selection unit 303 instructs the access control unit 301 to access the cache 221 or the storage medium 240 based on the cache hit / cache miss determination result in the cache hit / miss determination unit 302. Then, the replacement target page selection unit 303 updates the replacement priority 404 of each page and the address information corresponding to the data stored in the page state management table 381. Further, the replacement target page selection unit 303 instructs the access control unit 301 to access and respond to the page corresponding to the address specified in the access request.
  • the replacement target page selection unit 303 refers to the set capacity 502 of the partition capacity setting table 371 and determines a partition that provides a page to be replaced in order to store new data. To do. In addition, the replacement target page selection unit 303 adds the address 402 of data already stored in the page to be replaced to the replacement page history table 341 of the replacement history management unit 304. Then, when the update flag 407 of the page to be replaced is set, the replacement target page selection unit 303 instructs the access control unit 301 as follows. That is, the replacement target page selection unit 303 instructs the access control unit 301 to write in advance to the storage location of the storage medium 240 before replacing the data stored in the page with new data.
  • the replacement history management unit 304 uses the replacement page history table 341 to manage addresses for pages replaced using data newly stored in a certain past period in each partition as follows. That is, the replacement history management unit 304 manages the storage destination address of the storage medium 240 related to the data stored in the page. Further, the replacement history management unit 304 deletes an address that has passed a certain period from the page address stored in the replacement page history table 341.
  • FIG. 6 is a diagram showing a configuration of the replacement page history table 341 according to the present embodiment.
  • the replacement page history table 341 has replacement histories 610 to 630 which are history of pages replaced for each partition.
  • the replacement histories 610 to 630 include replacement addresses 611 to 631 representing individual replaced pages, respectively. Note that the number of replacement addresses 611 to 631 stored in each of the replacement histories 610 to 630 is a factor for determining whether or not the capacity of the partition is frequently changed. For example, as the number of replacement addresses 611 to 631 increases, the number of times that satisfies the condition for adding the capacity of the partition at the time of a cache miss increases.
  • replacement history 610 to 630 may use a data format for determining whether a specific address is included in the set of replacement history 610 to 630, such as a Bloom filter. Good.
  • the replacement page history table 341 forms replacement histories 610 to 630 from a plurality of Bloom filters.
  • the replacement page history table 341 can cope with processing for determining a page replaced in a past fixed period by replacing a new Bloom filter and an old Bloom filter every time a fixed period elapses.
  • the capacity addition determination unit 305 includes the address of the storage destination in the replacement page history table 341 in the replacement history 610 to 630 of the partition corresponding to the accessed process for the access that caused the cache miss. judge. If the storage destination address is included in the replacement histories 610 to 630 and a capacity addition request is not made, the capacity addition determination unit 305 determines that capacity addition to the partition is necessary. Then, the capacity addition determination unit 305 instructs the additional capacity acquisition source selection unit 306 to add capacity for one page.
  • the capacity addition determination unit 305 instructs to add capacity for one page, but may instruct to add capacity for a plurality of pages. As the number of pages to be added is increased, the capacity change of one partition becomes larger and the capacity optimization proceeds quickly, but conversely, the capacity change tends to become severe and unstable.
  • a suitable number may be set in consideration of conditions such as the capacity of the cache memory, the capacity of the partition, and the access frequency.
  • the additional capacity acquisition source selection unit 306 receives the capacity addition instruction for the partition from the capacity addition determination unit 305, refers to the releasable capacity 503 for each partition in the partition capacity setting table 371, and selects a partition having a releasable capacity. Extract. Then, the additional capacity acquisition source selection unit 306 selects a partition that provides capacity in response to the capacity addition instruction from the extracted partitions. The additional capacity acquisition source selection unit 306 subtracts one page from the releasable capacity 503 of the partition capacity setting table 371 for the selected partition. Then, the additional capacity acquisition source selection unit 306 adds one page of the set capacity 502 of the partition capacity setting table 371 for the target partition for the capacity addition instruction.
  • the additional capacity acquisition source selection unit 306 performs subtraction from the plurality of pages and the plurality of partitions.
  • the unnecessary page capacity releasing unit 309 circulates each entry in the page state management table 381 and confirms the access flag 405 and the unnecessary candidate flag 406.
  • the access flag 405 When the access flag 405 is set when the entry is visited, it indicates that the corresponding page has been accessed after the previous entry was visited. Therefore, the unnecessary page capacity releasing unit 309 determines that the page is included in the working set. Then, the unnecessary page capacity releasing unit 309 resets the access flag 405.
  • the unnecessary page capacity releasing unit 309 determines that the page has not been accessed for a certain period of time. to decide.
  • the unnecessary page capacity releasing unit 309 determines that the page is not included in the working set. Then, the unnecessary page capacity releasing unit 309 sets the unnecessary candidate flag 406. Further, the unnecessary page capacity releasing unit 309 adds one page to the releasable capacity 503 of the partition capacity setting table 371 for the partition including the page.
  • the unnecessary page capacity is detected using a clock algorithm, but other algorithms may be used.
  • FIG. 7 is a block diagram showing a hardware configuration of the storage control unit 220 as the storage control device in the present embodiment.
  • the storage control unit 220 is illustrated as software processing of the host computer 210.
  • the storage control unit 220 may be realized by a one-chip computer independent of the host computer 210.
  • a CPU (Central Processing Unit) 710 is a processor for arithmetic control, and implements a functional component of the storage controller 220 of FIG. 3 by executing a program.
  • a ROM (Read Only Memory) 720 stores fixed data and programs such as initial data and programs.
  • the cache 221 holds data that is frequently accessed when accessing the external storage medium 240. In this embodiment, an area is assigned to each partition including at least one page for each process.
  • the communication control unit 730 communicates with the storage medium 240 and other devices via the network 250.
  • the number of CPUs 710 is not limited to one, and may be a plurality of CPUs (cores).
  • the communication control unit 730 preferably includes a CPU independent of the CPU 710 and writes or reads transmission / reception data in a RAM (Random Access Memory) 740 area. It is desirable to provide a DMAC (Direct Memory Access Controller) that transfers data between the RAM 740 and the storage 750 (not shown).
  • the input / output interface 760 preferably has a CPU independent of the CPU 710 and writes or reads input / output data in the RAM 740 area. Accordingly, the CPU 710 recognizes that the data has been received or transferred to the RAM 740 and processes the data. In addition, the CPU 710 prepares the processing result in the RAM 740 and leaves the subsequent transmission or transfer to the communication control unit 730, the DMAC, or the input / output interface 760.
  • the RAM 740 is a random access memory that the CPU 710 uses as a temporary storage work area. In the RAM 740, an area for storing data necessary for realizing the present embodiment is secured.
  • the access address 741 is an address accessed from the OS 211, core, or thread 212 to the storage medium 240.
  • the cache hit address 742 is an address that has a cache hit among the access addresses 741.
  • the cache miss address 743 is an address where a cache miss has occurred among the access addresses 741.
  • the capacity addition partition 744 is a partition that requests addition of capacity when the cache missed address matches the replaced address (extruded to the storage medium).
  • the capacity reduction partition 745 is a partition that includes a page with no access or low frequency and is a reduction candidate, and is a partition selected to move the capacity to the capacity addition partition 744.
  • the access information 746 is access contents (including Read and Write) and data to the storage medium 240.
  • Input / output data 747 is data input / output via the input / output interface 760.
  • the transmission / reception data 748 is data transmitted / received to / from the storage medium 240 via the communication control unit 730.
  • the application use area 749 is an area used by the application in processing other than storage control.
  • the storage 750 stores a database, various parameters, or the following data or programs necessary for realizing the present embodiment.
  • the page state management table 381 is a table for managing each page of the cache 221 shown in FIG.
  • the partition capacity setting table 371 is a table for managing the partition of the cache 221 allocated to each process shown in FIG.
  • the replacement page history table 341 is a table for storing, for each partition, the history of page addresses pushed out from the cache 221 to the storage medium 240 shown in FIG.
  • the released capacity calculation algorithm 751 is an algorithm for selecting a partition in which the capacity can be reduced by detecting a page in the cache that is not used or used infrequently, and includes a clock algorithm in this embodiment.
  • the page cyclic cycle (cyclic rate) 752 stores the cyclic cycle in the clock algorithm.
  • the storage 750 stores the following programs.
  • the OS 211 is a basic program that controls the entire host computer 210.
  • the plurality of threads 212 are processing units in a program that is currently being executed by the host computer 210.
  • the storage control program 753 is a program that realizes access control of the present embodiment upon receiving access to the storage medium 240 from the OS 211 and the plurality of threads 212.
  • the access processing module 754 is a module that processes access to the storage medium 240 from the OS 211 and the plurality of threads 212. Further, the access processing module 754 includes a cache hit control module 755 that performs control when a cache hit occurs, and a cache miss control module 756 that performs control when a cache miss occurs.
  • the set capacity control module 757 is a module that controls the movement of the set capacity from the partition whose capacity can be reduced to the partition that requests capacity addition.
  • the free capacity calculation module 758 is a module for selecting a partition whose capacity can be reduced by detecting a page in the cache that is not used or used infrequently according to the free capacity calculation algorithm 751.
  • the input / output interface 760 interfaces input / output data with input / output devices.
  • a display unit 761 and an operation unit 762 are connected to the input / output interface 760, but the present invention is not limited to this.
  • RAM 740 and the storage 750 in FIG. 7 do not show programs and data related to general-purpose functions and other realizable functions that the host computer 210 has.
  • FIG. 8 is a flowchart showing a processing procedure of the storage control unit 220 as the storage control device in the present embodiment. This flowchart is executed by the CPU (core) 710 in FIG. 7 using the RAM 740, and implements the functional configuration unit in FIG.
  • step S801 the storage control unit 220 performs an initialization process including initialization of each table.
  • step S ⁇ b> 803 the storage control unit 220 starts an access process for controlling access to the storage medium 240 in the host computer 210.
  • step S805 the storage control unit 220 starts a set capacity control process for reducing and adding the set capacity of the partition allocated to the cache 221 corresponding to each process.
  • step S807 the storage control unit 220 starts a released capacity calculation process for calculating a capacity (number of pages) that can be released from the partition allocated to the cache 221 corresponding to each process.
  • step S809 the storage control unit 220 determines whether the storage control process is finished. If the storage control unit 220 determines that the storage control process has ended, the storage control unit 220 ends the process.
  • the access process, the set capacity control process, and the released capacity calculation process have been described as being executed independently and in parallel, but the storage control unit 220 executes the processes in association with each other. May be.
  • FIG. 9 is a flowchart showing a procedure of access processing in the present embodiment. This flowchart is a procedure for processing an access request from the software of the host computer 210.
  • the access control unit 301 of the storage control unit 220 When the access control unit 301 of the storage control unit 220 receives an access request from the software of the host computer 210 in step S ⁇ b> 901, the access control unit 301 transmits the access request information to the cache hit / miss determination unit 302.
  • the cache hit / miss determination unit 302 of the storage control unit 220 refers to the page state management table 381 and checks whether there is a page whose address 402 matches the storage destination of the access request storage medium 240.
  • the cache hit / miss determination unit 302 branches based on whether the cache hit / miss occurs.
  • step S907 the cache hit / miss determination unit 302 operates as follows. That is, the cache hit / miss determination unit 302 notifies the replacement target page selection unit 303 of the address of the access request and information indicating whether the access is Read or Write.
  • the replacement target page selection unit 303 of the storage control unit 220 executes processing at the time of a cache hit, and executes processing from step S911 onward after the execution is completed.
  • step S909 the cache hit / miss determination unit 302 operates as follows. That is, the cache hit / miss determination unit 302 notifies the replacement target page selection unit 303 of the address of the access request and information indicating whether the access is Read or Write. In step S909, the replacement target page selection unit 303 executes processing at the time of a cache miss.
  • the access control unit 301 When the access to the storage medium 240 and / or the cache 221 instructed from the replacement target page selection unit 303 in Step S907 or Step S909 is completed, the access control unit 301 operates as follows. That is, in step S911, the access control unit 301 notifies the result to the software that made the access request of the host computer 210, and the access request processing is completed.
  • FIG. 10 is a flowchart showing the procedure of the access process (S907) at the time of cache hit in this embodiment.
  • LRU is assumed as the cache replacement algorithm, but other replacement algorithms may be used.
  • step S1001 the replacement target page selection unit 303 of the storage control unit 220 compares the cache hit address with the address 402 of the page state management table 381, and identifies the page corresponding to the cache hit address.
  • step S1003 the replacement target page selection unit 303 instructs the access control unit 301 to execute an access request for the page of the cache 221 identified in step S1001.
  • step S1005 the replacement target page selection unit 303 updates the replacement priority 404 of the cache hit page in the page state management table 381 to the lowest value. Further, the replacement target page selection unit 303 sets the access flag 405 corresponding to the page and resets the unnecessary candidate flag 406 in step S1005. In step S1007, the replacement target page selection unit 303 increments the replacement priority 404 of the cache hit page in the page state management table 381 by 1 for each of the other pages included in the same partition as the cache hit page.
  • step S1009 the replacement target page selection unit 303 determines whether the cache hit access is Read or Write.
  • the replacement target page selection unit 303 operates as follows in step S1011. That is, the replacement target page selection unit 303 resets the update flag 407 of the cache hit page in the page state management table 381 and ends the process.
  • the replacement target page selection unit 303 sets the cache hit page update flag 407 in the page state management table 381 in step S1013 and ends the process. To do.
  • step S1001 to S1013 The above processing from step S1001 to S1013 is performed, and in step S907 in FIG. 9, the operation of the replacement target page selection unit 303 of the storage control unit 220 performing processing at the time of a cache hit is completed.
  • the processing order of steps S1001 to S1013 is not necessarily the order shown in FIG.
  • the processing of steps S1003 to S1013 can be executed at the same time or executed with the order changed.
  • step S1001 the process for specifying the page corresponding to the cache hit address compared to the address 402 of the page state management table 381 may be the following process.
  • the process is a process for directly receiving page information specified when a cache hit is determined from the cache hit / miss determination unit 302.
  • step S1005 and step S1007 are realized based on the following operation when the replacement priority order 404 is expressed in a link list format.
  • the operation is an operation of moving the position of the page having a cache hit in the link list so that the priority of replacement becomes the lowest.
  • FIG. 11A and FIG. 11B are flowcharts showing the procedure of the access process (S909) at the time of a cache miss in this embodiment.
  • the replacement target page selection unit 303 of the storage control unit 220 accesses the partition capacity setting table 371 in step S1101. Then, the replacement target page selection unit 303 acquires and compares the set capacity 502 and the actual capacity 504 of the partition corresponding to the process that made the access request in which the cache miss occurred. The replacement target page selection unit 303 branches in accordance with the comparison result in step S1103.
  • the replacement target page selection unit 303 operates as follows in step S1105. That is, the replacement target page selection unit 303 accesses the partition capacity setting table 371 and extracts a partition whose actual capacity 504 exceeds the set capacity 502. In step S1107, the replacement target page selection unit 303 selects one arbitrary partition that provides a page necessary for storing new data associated with a cache miss from the partitions extracted in step S1105. Then, in step S1109, the replacement target page selection unit 303 refers to the page state management table 381 and operates as follows.
  • the replacement target page selection unit 303 selects a page having the highest replacement priority 404 among the pages included in the partition selected in step S1107 as a storage location for new data associated with a cache miss. Then, the replacement target page selection unit 303 executes the processing after step S1113.
  • step S1101 if the actual capacity 504 of the partition is greater than or equal to the set capacity 502 (No determination in step S1103), the replacement target page selection unit 303 refers to the page state management table 381 in step S1111. In step S1111, the replacement target page selection unit 303 sets the page having the highest replacement priority 404 among the pages included in the partition corresponding to the process in which the cache miss has occurred as the storage destination of new data associated with the cache miss. select.
  • the replacement target page selection unit 303 operates as follows for the page selected as the storage destination of new data associated with the cache miss with respect to the access control unit 301 in step S1113. That is, the replacement target page selection unit 303 refers to the use flag 401 and the update flag 407 of the page state management table 381 and confirms whether the data of the selected page should be reflected on the storage medium 240. In step S1115, the replacement target page selection unit 303 branches based on whether or not it should be reflected in the storage medium 240. When at least one of the use flag 401 and the update flag 407 is not set for the page selected as the storage destination of the new data (No determination in step S1115), the replacement target page selection unit 303 performs the processing after step S1119 in FIG. 11B. Execute.
  • the replacement target page selection unit 303 performs the following in step S1117. To work. In other words, the replacement target page selection unit 303 acquires the address 402 corresponding to the cache missed page in the page state management table 381. Then, the access control unit 301 is instructed to write the data currently stored in the cache missed page into the area indicated by the address 402 of the storage medium 240.
  • step S1119 the replacement target page selection unit 303 determines whether the access request with a cache miss is Read or Write.
  • the replacement target page selection unit 303 operates as follows in step S1121. That is, the replacement target page selection unit 303 performs the read access requested to the storage medium 240 to the access control unit 301. Then, the replacement target page selection unit 303 instructs the Read result to be stored in the page of the cache 221 selected in Step S1109 or Step S1111.
  • step S1123 the replacement target page selection unit 303 resets the update flag 407 of the page state management table 381 for the page in which the result is stored in step S1121, and executes step S1129 and the subsequent steps.
  • the replacement target page selection unit 303 When the access request from the software of the host computer 210 is Write (No determination in step S1119), the replacement target page selection unit 303 operates as follows in step S1125. That is, the replacement target page selection unit 303 instructs the access control unit 301 to store the data requested to be written in the page of the cache 221 selected in step S1109 or step S1111. In step S1127, the replacement target page selection unit 303 sets the update flag 407 of the cache hit page in the page state management table 381 for the page in which the write result is stored in step S1125.
  • the replacement target page selection unit 303 operates as follows for the page selected in step S1109 or step S1111 in step S1129. That is, the replacement target page selection unit 303 updates the partition number 403 of the page state management table 381 with a number representing the partition corresponding to the process that performed the access request in which the cache miss occurred, and sets the replacement priority 404 to the lowest value. Update to In step S1131, the replacement target page selection unit 303 sets the access flag 405 of the page state management table 381 and resets the unnecessary candidate flag 406 for the page selected in step S1109 or step S1111. In step S1133, the replacement target page selection unit 303 sets the replacement priority 404 of the page state management table 381 to 1 for each of the other pages included in the partition corresponding to the process that performed the access request in which the cache miss occurred. increase.
  • step S1135 the replacement target page selection unit 303 notifies the capacity addition determination unit 305 of the address of the data that has been stored immediately before in the page where the new data is stored. In other words, the replacement target page selection unit 303 sets the address as the new replacement address 611 to 631 in the replacement history 610 to 630 of the corresponding partition.
  • the replacement target page selection unit 303 branches in step S1137 based on the comparison result in step S1101. If the actual capacity 504 of the partition is greater than or equal to the set capacity 502 (Yes determination in step S1137), the process ends. On the other hand, if the actual capacity 504 of the partition is less than the set capacity 502 (No determination in step S1137), the replacement target page selection unit 303 accesses the partition capacity setting table 371 in step S1139. Next, 1 is added to the actual capacity 504 of the partition corresponding to the process that performed the access request in which the cache miss occurred. Then, 1 is subtracted from the actual capacity 504 of the partition in which the page selected in step S1109 or step S1111 was included, and the process ends.
  • step S1101 to S1139 The above processing from step S1101 to S1139 is performed, and in step S909 in FIG. 9, the operation for the replacement target page selection unit 303 to perform processing at the time of a cache miss is completed.
  • the processing order of steps S1101 to S1139 is not necessarily the order shown in FIGS. 11A and 11B.
  • the processes in steps S1129 to S1139 can be executed at the same time or executed in a different order.
  • the replacement target page selection unit 303 may select a partition that provides a page necessary for storing new data associated with a cache miss in step S1107 as follows, for example.
  • the replacement target page selection unit 303 refers to the page state management table 381 and checks the unnecessary candidate flag 406 for the page having the highest replacement priority 404 of each partition. Then, the replacement target page selection unit 303 may preferentially select a partition in which the unnecessary candidate flag 406 is set.
  • FIG. 12 is a flowchart showing the procedure of the set capacity adjustment processing of the partition in this embodiment.
  • the capacity addition determination unit 305 determines the necessity of capacity addition for the partition.
  • the additional capacity acquisition source selection unit 306 determines a partition that provides capacity for the partition that needs capacity addition, and adjusts the set capacity of the partition.
  • the capacity addition determination unit 305 of the storage control unit 220 receives the address of the access request that caused the cache miss from the replacement target page selection unit 303. Then, the capacity addition determination unit 305 executes the following determination in step S1201. The determination is that replacement addresses 611 to 631 that match the address of the access request are included in the replacement history 610 to 630 of the partition corresponding to the process that made the access request in the replacement page history table 341 of the replacement history management unit 304. It is a determination of whether it is included.
  • step S1203 the capacity addition determination unit 305 branches depending on whether replacement addresses 611 to 631 that match the address of the access request are included. If the address resulting in the cache miss is not included in the replacement history 610 to 630 of the partition corresponding to the process (No determination in step S1203), the process ends.
  • the capacity addition determination unit 305 When the cache miss address is included in the replacement history 610 to 630 of the partition corresponding to the process (Yes determination in step S1203), the capacity addition determination unit 305 operates as follows. That is, in step S1205, the capacity addition determination unit 305 instructs the additional capacity acquisition source selection unit 306 to add capacity for one page to the partition that has made the access request in which a cache miss has occurred. In step S1207, the additional capacity acquisition source selection unit 306 of the storage control unit 220 refers to the releasable capacity 503 for each partition in the partition capacity setting table 371 and extracts a partition having a releasable capacity.
  • the additional capacity acquisition source selection unit 306 branches depending on whether or not a partition having a releasable capacity has been extracted in step S1209. If there is no extracted partition (No determination in step S1209), the additional capacity acquisition source selection unit 306 ends the process without adding the capacity to the partition instructed by the capacity addition determination unit 305.
  • the additional capacity acquisition source selection unit 306 operates as follows in step S1211. That is, the additional capacity acquisition source selection unit 306 selects one arbitrary partition that provides the capacity for one page to the partition for which the capacity addition instruction has been issued, from the extracted partitions. In step S1211, the additional capacity acquisition source selection unit 306 subtracts the set capacity 502 and the releasable capacity 503 of the selected partition in the partition capacity setting table 371 by one page. In step S1213, the additional capacity acquisition source selection unit 306 adds one page of the set capacity 502 of the partition for which the capacity addition determination unit 305 has been instructed to add capacity in the partition capacity setting table 371. finish.
  • the storage control unit 220 performs the processing from the above steps S1201 to S1213. That is, the capacity addition determination unit 305 determines the necessity of capacity addition for the partition. Then, the additional capacity acquisition source selection unit 306 determines a partition that provides capacity to the partition that needs capacity addition. Then, the storage controller 220 completes the operation of adjusting the set capacity of the partition.
  • the processing order from steps S1201 to S1213 is not necessarily the procedure shown in FIG. For example, the processes in steps S1211 and S1213 can be executed at the same time or executed in a different order. Further, the additional capacity acquisition source selection unit 306 may select the partition that provides the capacity in step S1211, for example, from the partition having the largest releasable capacity 503 with reference to the partition capacity setting table 371.
  • adjustment of the set capacity of the partition may be performed in units of multiple pages instead of in units of one page.
  • FIG. 13 is a flowchart showing the procedure of partition releasable capacity calculation processing in the present embodiment.
  • the unnecessary page capacity releasing unit 309 extracts a page estimated to be not included in the working set from the pages included in each partition defined on the cache, and the releasable capacity 503 of each partition. Update.
  • the unnecessary page capacity releasing unit 309 of the storage control unit 220 pays attention to the first entry of the page state management table 381 in step S1301.
  • step S1303 the unnecessary page capacity releasing unit 309 refers to the access flag 405 and the unnecessary candidate flag 406 in the entry of interest. Then, the unnecessary page capacity releasing unit 309 determines whether or not the access flag 405 is set in step S1305.
  • the unnecessary page capacity releasing unit 309 resets the access flag 405 of the entry of interest in step S1307, and executes the processing from step S1315 onward. .
  • the unnecessary page capacity releasing unit 309 determines whether or not the unnecessary candidate flag 406 is set in step S1309.
  • step S1315 If the unnecessary candidate flag 406 is set (Yes determination in step S1309), the processing after step S1315 is executed. If the unnecessary candidate flag 406 is not set (No determination in step S1309), the unnecessary page capacity releasing unit 309 sets the unnecessary candidate flag 406 of the entry of interest in step S1311. In step S1313, the unnecessary page capacity releasing unit 309 adds the capacity of one page to the releasable capacity 503 of the partition including the page corresponding to the entry of interest in the partition capacity setting table 371.
  • step S1315 the unnecessary page capacity releasing unit 309 determines whether or not the entry of interest is the last entry in the page state management table 381. If the currently focused entry is the last entry in the page state management table 381 (Yes in step S1315), the unnecessary page capacity releasing unit 309 returns to step S1301 and repeats the process. If the currently focused entry is not the last entry in the page state management table 381 (No in step S1315), the unnecessary page capacity releasing unit 309 operates as follows in step S1317. That is, the unnecessary page capacity releasing unit 309 changes the entry of interest to the next entry in the page state management table 381, returns to step S1303, and repeats the processing.
  • the processing from the above steps S1301 to S1317 is performed, and the unnecessary page capacity releasing unit 309 extracts a page that is presumed not included in the working set from the pages included in each partition defined on the cache. Then, the unnecessary page capacity releasing unit 309 executes an operation of updating the releasable capacity 503 of each partition.
  • the processing order from step S1301 to S1317 is not necessarily the order shown in FIG.
  • the processes in steps S1311 and S1313 can be executed at the same time or executed in a different order.
  • the procedure for sequentially performing the processing on each entry in the page state management table 381 from steps S1301 to S1317 may be a procedure for paying attention to each entry in an arbitrary order.
  • the unnecessary page capacity releasing unit 309 records the last access time of each page in the entry of the page state management table 381 corresponding to each page. Then, the unnecessary page capacity releasing unit 309 determines that the page is not included in the working set and sets the unnecessary candidate flag 406 when a certain time has elapsed from the current time.
  • This embodiment can be optimized during processing without measuring the capacity to be allocated to the cache partition corresponding to each processing, and can improve the access performance to the storage medium.
  • this embodiment realizes optimization of the capacity allocated to each partition without directly measuring the capacity to be allocated to the cache partition corresponding to each process. Furthermore, this embodiment can improve the access performance to the storage medium of the entire process executed by the host computer.
  • the storage control device calculates only the capacity that can be released from the partition without directly detecting the detected page, and the capacity in the other partition is actually calculated. Decide which page to replace when there is a shortage. Based on this operation, a combination of this embodiment and an arbitrary cache replacement algorithm can be realized. In addition, it is possible to reduce the occurrence of cache misses due to erroneous detection of unnecessary pages by delaying page replacement until it is necessary to change the capacity allocation of each partition.
  • the storage control device is different from the second embodiment in that it has a function of adjusting the page cycle period (cyclic rate) in the unnecessary page capacity releasing unit 309.
  • unnecessary page detection includes a detection cycle adjustment function that adjusts the cycle for detecting unnecessary pages. Since other configurations and operations are the same as those in the second embodiment, the same configurations and operations are used. The same reference numerals are assigned and detailed description thereof is omitted.
  • FIG. 14 is a block diagram illustrating a functional configuration of the storage control unit 1420 as the storage control device according to the present embodiment.
  • the same functional components as those in FIG. 3 are denoted by the same reference numerals, and redundant description is omitted.
  • the storage control unit 1420 newly includes a page rotation speed adjustment unit 1410 as compared with the second embodiment shown in FIG. 3.
  • the page patrol speed adjustment unit 1410 instructs the unnecessary page capacity release unit 309 to refer to each entry in the page state management table 381 and determines the processing speed for determining whether a page corresponding to the entry is included in the working set.
  • the processing speed is related to the threshold value for determining whether each page is included in the working set. Setting the speed faster shortens the time it takes for each entry to go around once and go around again.
  • the access frequency of pages determined to be included in the set is increased. That is, the unnecessary page capacity releasing unit 309 extracts pages that are not actively included in the working set, that is, that are highly likely to be unnecessary.
  • the page rotation speed adjustment unit 1410 sets the processing speed slower, thereby increasing the time until each entry is cycled again, and the unnecessary page capacity release unit 309 extracts unnecessary pages more. It can be set to be done strictly.
  • the processing speed instruction for the unnecessary page capacity release unit 309 based on the page patrol speed adjustment unit 1410 can be used in the following cases. For example, when the releasable capacity 503 is insufficient in the partition defined in the cache and the instruction for adding the capacity of the partition based on the determination of the capacity addition determination unit 305 cannot be satisfied, the page circulation speed adjustment unit 1410 To solve the shortage. That is, the page patrol speed adjustment unit 1410 can increase the processing speed to positively extract unnecessary pages and solve the shortage of the releasable capacity 503.
  • the present embodiment can further adjust the frequency and strictness of unnecessary page extraction in the unnecessary page capacity releasing unit 309 in consideration of the cache capacity and the access frequency.
  • the storage control device measures the detection time of the working set for adjusting the page cycle period (cyclic rate) in the unnecessary page capacity release unit 309, compared with the second embodiment and the third embodiment. It differs in that it has the function to do.
  • the storage control device has a cache hit detection function for detecting a cache hit generated in accessing the cache memory in association with the partition to be accessed.
  • the storage control device has a detection time measurement function that measures the time required to detect a page with a high access frequency to the partition from the detection result of the cache hit.
  • the storage control device adjusts the unnecessary page detection cycle based on the measured time. Since other configurations and operations are the same as those in the second embodiment, the same configurations and operations are denoted by the same reference numerals, and detailed description thereof is omitted.
  • FIG. 15 is a block diagram illustrating a functional configuration of the storage control unit 1520 as the storage control device according to the present embodiment.
  • the same functional components as those in FIG. 3 or FIG. 14 are denoted by the same reference numerals, and redundant description is omitted.
  • the storage control unit 1520 newly includes a working set detection time measurement unit 1511 as compared with the third embodiment shown in FIG.
  • the working set detection time measurement unit 1511 obtains a cache hit or cache miss determination result of each access request from the cache hit / miss determination unit 302 and calculates a cache hit rate per fixed time. Further, the working set detection time measurement unit 1511 obtains the frequency of cache misses for which it is determined from the capacity addition determination unit 305 that the capacity addition of the partition is necessary, and calculates the rate at which cache misses occur in all accesses. In addition, the working set detection time measurement unit 1511 compares the calculated cache hit rate with the rate of cache misses determined to require additional partition capacity. Then, the working set detection time measuring unit 1511 measures the time required until the ratio of cache misses determined to require the addition of the partition capacity to be equal to or greater than the cache hit rate. Then, the working set detection time measurement unit 1511 includes a page rotation speed adjustment unit so that the time interval for which the unnecessary page capacity release unit 309 cycles through the entries in the page state management table 381 corresponding to each page becomes the measurement result time. Adjust speed through 1410.
  • FIG. 16 is a flowchart showing a procedure of processing speed adjustment processing in the fourth embodiment of the present invention.
  • the processing speed of the unnecessary page capacity releasing unit 309 is optimally maintained through the page circulation speed adjusting unit 1410.
  • step S1601 the working set detection time measurement unit 1511 of the storage control unit 1520 sets a counter that measures the number of cache hits, the number of cache misses, and the number of cache misses determined to require additional partition capacity to 0 (zero). Reset to.
  • step S1603 the working set detection time measurement unit 1511 acquires the cache hit and cache miss determination results of all access requests from the cache hit / miss determination unit 302 until a predetermined time has elapsed. To do. Then, the working set detection time measurement unit 1511 measures the frequency using a counter.
  • step S1603 the working set detection time measurement unit 1511 acquires information on all cache misses determined to require the addition of a partition capacity from the capacity addition determination unit 305, and measures the frequency using a counter. .
  • step S1605 the working set detection time measurement unit 1511 calculates the cache hit rate a from the cache hit and cache miss frequencies measured in step S1603.
  • step S1607 the working set detection time measurement unit 1511 calculates the ratio b of the number of cache misses determined in step S1603 that is determined to require additional partition capacity to the total access requests.
  • step S1609 the working set detection time measurement unit 1511 determines whether or not a value obtained by dividing the ratio b of the total access requests by the cache hit ratio a is equal to or greater than a certain value.
  • the working set detection time measurement unit 1511 operates as follows. That is, the working set detection time measurement unit 1511 determines that the detection of the working set in the cache is insufficient, and re-executes the processing from step S1601.
  • the working set detection time measurement unit 1511 When the value obtained by dividing the ratio b of the total access requests by the cache hit rate a is not equal to or greater than a certain value (No determination in step S1609), the working set detection time measurement unit 1511 operates as follows in step S1611. . In other words, the working set detection time measurement unit 1511 determines that the working set is sufficiently detected in the cache, and calculates the elapsed time since the start of the process of step S1601.
  • the working set detection time measurement unit 1511 calculates the following page patrol speed.
  • the page circulation speed is a page circulation speed at which the unnecessary page capacity releasing unit 309 circulates all entries in the page state management table 381 corresponding to the pages included in the cache is equal to the time calculated in step S1611. It is. Specifically, the number of entries in the page state management table 381 to be circulated per certain time is calculated by dividing the number of entries in the page state management table 381 by the time calculated in step S1611.
  • step S1615 the working set detection time measuring unit 1511 sets the number of entries calculated in step S1613 as the processing speed of the unnecessary page capacity releasing unit 309, and ends the processing.
  • step S1601 to S1615 The processing from step S1601 to S1615 is performed, and the working set detection time measurement unit 1511 completes the operation of maintaining the processing speed of the unnecessary page capacity release unit 309 through the page cyclic speed adjustment unit 1410.
  • the processing order from steps S1601 to S1615 is not necessarily the order shown in FIG.
  • the processes in steps S1605 and S1607 can be executed at the same time, or can be executed with the order changed.
  • the page patrol speed is adjusted by referring to the cache hit status in the actual operation, so that it can be optimized according to the usage status of the cache and the storage medium, and the access performance to the storage medium is further improved. Can do.
  • the storage control device has a storage control unit as a storage control device that is not in the host computer but externally via a network, or However, they are different in that they are included in the storage medium. Since other configurations and operations are the same as those in the second embodiment, the same configurations and operations are denoted by the same reference numerals, and detailed description thereof is omitted.
  • FIG. 17 is a block diagram illustrating a configuration of an information processing system 1700 including a storage control unit 1720 and 1742 as a storage control device according to the present embodiment.
  • FIG. 17 the same components as those in FIG. 17
  • the information processing system 1700 includes a host computer 1710 having no storage control unit, an independent storage control unit 1720 having a cache 221, and a storage medium 1740 including a storage control unit 1742 having a cache 221.
  • a host computer 1710, a storage control unit 1720, and a storage medium 1740 including a storage control unit 1742 are connected via a network 250.
  • the present embodiment is not limited to processing in the host computer as in the second to fourth embodiments, and the cache is controlled outside the host computer, thereby reducing the load on the host computer and improving the access performance to the storage medium. it can.
  • the present invention may be applied to a system composed of a plurality of devices, or may be applied to a single device. Furthermore, the present invention is also applicable when an information processing program that implements the functions of the embodiments is supplied directly or remotely to a system or apparatus. Therefore, a program installed in a computer, a medium storing the program, or a WWW (World Wide Web) server that downloads the program in order to realize the functions of the present invention on a computer is also included in the scope of the present invention. . In particular, at least a non-transitory computer-readable medium that stores a program that causes a computer to execute the processes included in the above-described embodiments is included in the scope of the present invention.
  • FIG. 18 is a diagram showing an example of the configuration of the storage control device 800 that is an outline of the embodiment of the present invention.
  • the storage control device 800 includes a reduction candidate setting unit 810 and a capacity control unit 820.
  • the reduction candidate setting unit 810 sets, in the cache memory, a partition that includes a page that has not been accessed for a predetermined time or includes a page whose access frequency is lower than a predetermined value as a partition whose capacity can be reduced.
  • the capacity control unit 820 operates as follows.
  • the capacity control unit 820 reduces the capacity of the partition whose capacity can be reduced and adds it to the capacity of the partition where the cache miss has occurred.
  • the storage control device 800 configured as described above has the same effects as the storage control device 100. The reason is that each configuration of the storage control device 800 operates in the same manner as the configuration of the storage control device 100.
  • the storage control device 800 is the minimum configuration of the embodiment of the present invention.
  • a reduction candidate setting means for setting a partition that includes a page that has not been accessed for a predetermined time or a page whose access frequency is lower than a predetermined value as a partition whose capacity can be reduced; If the page where a cache miss occurred is included in the history of pages evicted from the cache memory to a lower storage medium, the capacity of the partition where the cache miss occurred can be reduced by reducing the capacity of the partition where the capacity can be reduced.
  • a storage control device comprising: (Appendix 2) Reduction candidate setting means It has unnecessary page detection means for detecting a page that has not been accessed as an unnecessary page with a predetermined time as a cycle, The storage control device according to appendix 1, wherein a partition including an unnecessary page is set as a partition whose capacity can be reduced. (Appendix 3) The storage control device according to appendix 2, wherein the unnecessary page detection means detects a page that has not been accessed for a predetermined time by using a clock algorithm. (Appendix 4) The storage control device according to appendix 2 or 3, wherein the unnecessary page detection unit includes a detection cycle adjustment unit that adjusts a cycle for detecting an unnecessary page.
  • a cache hit detection means for detecting a cache hit generated in accessing the cache memory in association with the partition to be accessed;
  • a detection time measuring means for measuring a time required for detecting a page having a high access frequency to the partition from a detection result of the cache hit, and further comprising:
  • the storage control device according to appendix 4, wherein the detection cycle adjustment unit adjusts the detection cycle of unnecessary pages based on the measured time.
  • the capacity control means has a plurality of partitions whose capacity can be reduced, any one of appendices 1 to 5 in which a partition including a page that is most likely to be evicted to a lower storage medium is a partition whose capacity is reduced.
  • the storage control device according to item.
  • a storage control method that controls the capacity to be added.
  • Appendix 9 In the cache memory, a process of setting a reduction candidate that sets a page that has not been accessed for a predetermined time or a partition that includes a page whose access frequency is lower than a predetermined value as a partition whose capacity can be reduced; If the page where a cache miss occurred is included in the history of pages evicted from the cache memory to a lower storage medium, the capacity of the partition where the cache miss occurred can be reduced by reducing the capacity of the partition where the capacity can be reduced.
  • a process to control the capacity to be added; A non-volatile recording medium for recording a computer-readable storage control program.
  • a storage medium A storage medium; An access means for instructing access to the storage medium based on access requests from a plurality of processes; A storage control unit that has a cache memory and controls access to the storage medium; An information processing system comprising: Memory control means In the cache memory, a reduction candidate setting means for setting a partition that includes a page that has not been accessed for a predetermined time or a page whose access frequency is lower than a predetermined value as a partition whose capacity can be reduced; If the page where a cache miss occurred is included in the history of pages evicted from the cache memory to a lower storage medium, the capacity of the partition where the cache miss occurred can be reduced by reducing the capacity of the partition where the capacity can be reduced.
  • Capacity control means to be added An information processing system comprising: (Appendix 11) Assigning a partition including at least one page in the cache memory to each of the plurality of processes; In the cache memory, set a reduction candidate to set a partition including a page that has not been accessed for a predetermined time or a page whose access frequency is lower than a predetermined value as a partition whose capacity can be reduced, If the page where a cache miss occurred is included in the history of pages evicted from the cache memory to a lower storage medium, the capacity of the partition where the cache miss occurred can be reduced by reducing the capacity of the partition where the capacity can be reduced. Control the capacity to add, While performing the setting of reduction candidates in the background, repeatedly controlling the capacity and managing the distribution of the cache capacity for each process, Cache capacity allocation method.
  • Storage Controller 101 Reduction Candidate Setting Unit 102 Capacity Control Unit 111 Partition 121 Partition 122 Page 123 History 124 Partition 130 Cache Memory 140 Storage Medium 200 Information Processing System 210 Host Computer 211 OS 212 Thread 220 Storage control unit 221 Cache 240 Storage medium 241 Medium body 250 Network 301 Access control unit 302 Cache hit / miss determination unit 303 Replacement target page selection unit 304 Replacement history management unit 305 Capacity addition determination unit 306 Additional capacity acquisition source selection unit 307 Partition capacity management unit 308 Page state management unit 309 Unnecessary page capacity release unit 341 Replacement page history table 371 Partition capacity setting table 381 Page state management table 401 Use flag 402 Address 403 Partition number 404 Replacement priority 405 Access flag 406 Unnecessary candidate flag 407 Update flag 501 Partition number 502 Set capacity 503 Releasable capacity 504 Real capacity 610 Replacement history 611 Replacement address 630 History 631 replacement address 710 CPU 720 ROM 730 Communication control unit 740 RAM 741 Access address

Landscapes

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

Abstract

In order to improve access performance to a storage medium by optimizing, without measurement, the capacity to be allocated to a cache partition corresponding to each process, the memory control device according to the present invention comprises: a reduction candidate setting means for setting, as a partition with a reducible capacity, a cache memory partition which contains a page not accessed for a longer period than a predetermined time or a page less frequently accessed than a predetermined value; and a capacity control means which, when a page which resulted in a cache miss is included in the history of pages which have been driven out to a lower-order storage medium from the cache memory, reduces the capacity of the capacity-reducible partition and adds the reduced capacity to the capacity of the partition which resulted in the cache miss.

Description

情報処理システム、キャッシュ容量配分方法、記憶制御装置、記憶制御方法、及び記録媒体Information processing system, cache capacity distribution method, storage control device, storage control method, and recording medium
 本発明は、情報処理システム、キャッシュ容量配分方法、記憶制御装置、記憶制御方法、及び記録媒体に関する。 The present invention relates to an information processing system, a cache capacity distribution method, a storage control device, a storage control method, and a recording medium.
 上記技術分野において、特許文献1には、キャッシュヒット頻度に基づいて配分する容量を調整する技術が開示されている。また、特許文献2には、キャッシュの容量をパーティションに分割して独立したキャッシュとして扱う際に、各パーティションの容量を計算する技術が開示されている。また、非特許文献3は、次の技術を開示している。その技術は、新規に格納されるデータと、一度ヒットしたデータとを異なるLRU(Least Recently Used)キャッシュで管理する。そして、その技術は、各キャッシュ部に以前格納されていたデータがアクセスされた場合に、データがキャッシュ内でヒットするように他方のキャッシュから一定の容量を移動する。 In the above technical field, Patent Document 1 discloses a technique for adjusting the capacity to be allocated based on the cache hit frequency. Patent Document 2 discloses a technique for calculating the capacity of each partition when the cache capacity is divided into partitions and handled as an independent cache. Non-Patent Document 3 discloses the following technique. In this technique, newly stored data and data hit once are managed by different LRU (Least Recently Used) caches. Then, when the data previously stored in each cache unit is accessed, the technology moves a certain capacity from the other cache so that the data hits in the cache.
国際公開2014/142337号International Publication No. 2014/142337 特開2007-041904号公報JP 2007-041904 A
 しかしながら、上記文献に記載の技術では、キャッシュの各パーティションに割り当てる容量の適正化は、キャッシュヒット率などの測定時間のある分配された時に行われる。動作中に容量変更を行う場合には、測定時間がなく、容量の適正化に対応できないため、アクセス性能を高めるには限界があった。 However, in the technique described in the above document, the capacity allocated to each partition of the cache is optimized when it is distributed with a measurement time such as a cache hit rate. When capacity is changed during operation, there is no measurement time and it is impossible to cope with optimization of capacity, so there is a limit to improving access performance.
 本発明の目的は、上述の課題を解決する技術を提供することにある。 An object of the present invention is to provide a technique for solving the above-described problems.
 上記目的を達成するため、本発明に係る記憶制御装置は、
 キャッシュメモリにおいて、所定時間を超えてアクセスされていないページ、又は、アクセス頻度が所定値を下回るページを含むパーティションを、容量を削減可能なパーティションと設定する削減候補設定手段と、
 キャッシュミスが発生したページが、キャッシュメモリから下位の記憶媒体に追い出されたページの履歴に含まれている場合、容量を削減可能なパーティションの容量を削減してキャッシュミスが発生したパーティションの容量に追加する容量制御手段と、
 を備える。
In order to achieve the above object, a storage control device according to the present invention provides:
In the cache memory, a reduction candidate setting means for setting a partition that includes a page that has not been accessed for a predetermined time or a page whose access frequency is lower than a predetermined value as a partition whose capacity can be reduced;
If the page where a cache miss occurred is included in the history of pages evicted from the cache memory to a lower storage medium, the capacity of the partition where the cache miss occurred can be reduced by reducing the capacity of the partition where the capacity can be reduced. Capacity control means to be added;
Is provided.
 上記目的を達成するため、本発明に係る記憶制御方法は、
 キャッシュメモリにおいて、所定時間を超えてアクセスされていないページ、又は、アクセス頻度が所定値を下回るページを含むパーティションを、容量を削減可能なパーティションと設定する削減候補を設定し、
 キャッシュミスが発生したページが、キャッシュメモリから下位の記憶媒体に追い出されたページの履歴に含まれている場合、容量を削減可能なパーティションの容量を削減してキャッシュミスが発生したパーティションの容量に追加する容量を制御する。
In order to achieve the above object, a storage control method according to the present invention includes:
In the cache memory, set a reduction candidate to set a partition that includes a page that has not been accessed for a predetermined time or a page whose access frequency is lower than a predetermined value as a partition whose capacity can be reduced,
If the page where a cache miss occurred is included in the history of pages evicted from the cache memory to a lower storage medium, the capacity of the partition where the cache miss occurred can be reduced by reducing the capacity of the partition where the capacity can be reduced. Control the capacity to add.
 上記目的を達成するため、本発明に係る不揮発性記録媒体は、
 キャッシュメモリにおいて、所定時間を超えてアクセスされていないページ、又は、アクセス頻度が所定値を下回るページを含むパーティションを、容量を削減可能なパーティションと設定する削減候補設定する処理と、
 キャッシュミスが発生したページが、キャッシュメモリから下位の記憶媒体に追い出されたページの履歴に含まれている場合、容量を削減可能なパーティションの容量を削減してキャッシュミスが発生したパーティションの容量に追加する容量制御する処理と、
 をコンピュータに実行させる記憶制御プログラムをコンピュータ読み取り可能に記録する。
In order to achieve the above object, a nonvolatile recording medium according to the present invention includes:
In the cache memory, a process for setting a reduction candidate to set a partition that includes a page that has not been accessed for a predetermined time or a page whose access frequency is lower than a predetermined value as a partition whose capacity can be reduced;
If the page where a cache miss occurred is included in the history of pages evicted from the cache memory to a lower storage medium, the capacity of the partition where the cache miss occurred can be reduced by reducing the capacity of the partition where the capacity can be reduced. A process for controlling the capacity to be added;
Is recorded so as to be readable by the computer.
 上記目的を達成するため、本発明に係るシステムは、
 記憶媒体と、
 複数の処理からのアクセス要求に基づいて、記憶媒体へのアクセスを指示するアクセス手段と、
 キャッシュメモリを有し、アクセス手段の記憶媒体へのアクセスを制御する記憶制御手段と、
 を備えた情報処理システムであって、
 記憶制御手段は、
  キャッシュメモリにおいて、所定時間を超えてアクセスされていないページ、又は、アクセス頻度が所定値を下回るページを含むパーティションを、容量を削減可能なパーティションと設定する削減候補設定手段と、
  キャッシュミスが発生したページが、キャッシュメモリから下位の記憶媒体に追い出されたページの履歴に含まれている場合、容量を削減可能なパーティションの容量を削減してキャッシュミスが発生したパーティションの容量に追加する容量制御手段と、
 を備える。
In order to achieve the above object, a system according to the present invention provides:
A storage medium;
An access means for instructing access to the storage medium based on access requests from a plurality of processes;
A storage control unit that has a cache memory and controls access to the storage medium;
An information processing system comprising:
Memory control means
In the cache memory, a reduction candidate setting means for setting a partition that includes a page that has not been accessed for a predetermined time or a page whose access frequency is lower than a predetermined value as a partition whose capacity can be reduced;
If the page where a cache miss occurred is included in the history of pages evicted from the cache memory to a lower storage medium, the capacity of the partition where the cache miss occurred can be reduced by reducing the capacity of the partition where the capacity can be reduced. Capacity control means to be added;
Is provided.
 上記目的を達成するため、本発明に係るキャッシュ容量配分方法は、
 複数の処理の各処理に対して、キャッシュメモリ内の少なくとも1つのページを含むパーティションを割り当て、
 キャッシュメモリにおいて、所定時間を超えてアクセスされていないページ、又は、アクセス頻度が所定値を下回るページを含むパーティションを、容量を削減可能なパーティションと設定する削減の候補を設定し、
 キャッシュミスが発生したページが、キャッシュメモリから下位の記憶媒体に追い出されたページの履歴に含まれている場合、容量を削減可能なパーティションの容量を削減してキャッシュミスが発生したパーティションの容量に追加する容量を制御し、
 削減の候補の設定をバックグラウンドで実行しつつ、容量の制御を繰り返し、各処理に対するキャッシュ容量の配分を管理する。
In order to achieve the above object, a cache capacity allocation method according to the present invention includes:
Assigning a partition including at least one page in the cache memory to each of the plurality of processes;
In the cache memory, set a reduction candidate to set a partition including a page that has not been accessed for a predetermined time or a page whose access frequency is lower than a predetermined value as a partition whose capacity can be reduced,
If the page where a cache miss occurred is included in the history of pages evicted from the cache memory to a lower storage medium, the capacity of the partition where the cache miss occurred can be reduced by reducing the capacity of the partition where the capacity can be reduced. Control the capacity to add,
While performing the setting of reduction candidates in the background, the control of the capacity is repeated, and the distribution of the cache capacity for each process is managed.
 本発明によれば、各処理に対応したキャッシュのパーティションに割り当てるべき容量を測定することなしに処理中に適正化し、記憶媒体に対するアクセス性能を高めることができる。 According to the present invention, it is possible to optimize during processing without measuring the capacity to be allocated to the cache partition corresponding to each processing, and to improve the access performance to the storage medium.
本発明の第1実施形態に係る記憶制御装置の構成を示すブロック図である。1 is a block diagram illustrating a configuration of a storage control device according to a first embodiment of the present invention. 本発明の第2実施形態に係る記憶制御装置を含む情報処理システムの構成を示すブロック図である。It is a block diagram which shows the structure of the information processing system containing the storage control apparatus which concerns on 2nd Embodiment of this invention. 本発明の第2実施形態に係る記憶制御装置の機能構成を示すブロック図である。It is a block diagram which shows the function structure of the storage control apparatus which concerns on 2nd Embodiment of this invention. 本発明の第2実施形態に係るページ状態管理テーブルの構成を示す図である。It is a figure which shows the structure of the page state management table which concerns on 2nd Embodiment of this invention. 本発明の第2実施形態に係るパーティション容量設定テーブルの構成を示す図である。It is a figure which shows the structure of the partition capacity | capacitance setting table which concerns on 2nd Embodiment of this invention. 本発明の第2実施形態に係る置換ページ履歴テーブルの構成を示す図である。It is a figure which shows the structure of the replacement page log | history table which concerns on 2nd Embodiment of this invention. 本発明の第2実施形態における記憶制御装置のハードウェア構成を示したブロック図である。It is the block diagram which showed the hardware constitutions of the storage control apparatus in 2nd Embodiment of this invention. 本発明の第2実施形態における記憶制御装置の処理手順を示したフローチャートである。It is the flowchart which showed the process sequence of the storage control apparatus in 2nd Embodiment of this invention. 本発明の第2実施形態におけるアクセス処理の手順を示したフローチャートである。It is the flowchart which showed the procedure of the access process in 2nd Embodiment of this invention. 本発明の第2実施形態におけるキャッシュヒット時のアクセス処理の手順を示したフローチャートである。It is the flowchart which showed the procedure of the access processing at the time of the cache hit in 2nd Embodiment of this invention. 本発明の第2実施形態におけるキャッシュミス時のアクセス処理の手順を示したフローチャートである。It is the flowchart which showed the procedure of the access processing at the time of the cache miss in 2nd Embodiment of this invention. 本発明の第2実施形態におけるキャッシュミス時のアクセス処理の手順を示したフローチャートである。It is the flowchart which showed the procedure of the access processing at the time of the cache miss in 2nd Embodiment of this invention. 本発明の第2実施形態におけるパーティションの設定容量調整処理の手順を示したフローチャートである。It is the flowchart which showed the procedure of the setting capacity | capacitance adjustment process of the partition in 2nd Embodiment of this invention. 本発明の第2実施形態におけるパーティションの解放可能容量更新処理の手順を示したフローチャートである。It is the flowchart which showed the procedure of the partition releasable capacity update processing in 2nd Embodiment of this invention. 本発明の第3実施形態に係る記憶制御装置の機能構成を示すブロック図である。It is a block diagram which shows the function structure of the storage control apparatus which concerns on 3rd Embodiment of this invention. 本発明の第4実施形態に係る記憶制御装置の機能構成を示すブロック図である。It is a block diagram which shows the function structure of the storage control apparatus which concerns on 4th Embodiment of this invention. 本発明の第4実施形態における処理速度調整処理の手順を示したフローチャートである。It is the flowchart which showed the procedure of the processing speed adjustment process in 4th Embodiment of this invention. 本発明の第5実施形態に係る記憶制御装置を含む情報処理システムの構成を示すブロック図である。It is a block diagram which shows the structure of the information processing system containing the storage control apparatus which concerns on 5th Embodiment of this invention. 本発明における実施形態の概要を示すブロック図である。It is a block diagram which shows the outline | summary of embodiment in this invention.
 以下に、図面を参照して、本発明の実施の形態について例示的に詳しく説明する。ただし、以下の実施の形態に記載されている構成要素は単なる例示であり、本発明の技術範囲をそれらのみに限定する趣旨のものではない。なお、「ページ」とは、システムにおけるキャッシュへのアクセス単位である。記憶媒体のアクセス単位は、多くの場合にページより細かな単位となる。本明細書は、説明を分かりやすくするために、ページ単位で全てのアクセスを行うよう記載している。しかし、実際はページよりも小さな単位でのアクセスが発生している。 Hereinafter, exemplary embodiments of the present invention will be described in detail with reference to the drawings. However, the constituent elements described in the following embodiments are merely examples, and are not intended to limit the technical scope of the present invention only to them. A “page” is an access unit to a cache in the system. In many cases, the access unit of the storage medium is smaller than the page. In this specification, in order to make the explanation easy to understand, it is described that all accesses are performed in units of pages. However, in actuality, access occurs in units smaller than the page.
 [第1実施形態]
 本発明の第1実施形態としての記憶制御装置100について、図1を用いて説明する。記憶制御装置100は、キャッシュメモリを含む記憶媒体へのアクセスを制御する装置である。
[First Embodiment]
A storage control device 100 as a first embodiment of the present invention will be described with reference to FIG. The storage control device 100 is a device that controls access to a storage medium including a cache memory.
 図1に示すように、記憶制御装置100は、削減候補設定部101と、容量制御部102と、を含む。削減候補設定部101は、キャッシュメモリ130において、所定時間を超えてアクセスされていないページ、又は、アクセス頻度が所定値を下回るページを含むパーティション111を、容量を削減可能なパーティション121と設定する。容量制御部102は、キャッシュミスが発生したページ122が、キャッシュメモリ130から下位の記憶媒体140に追い出されたページの履歴123に含まれている場合、次のように動作する。すなわち、容量制御部102は、容量を削減可能なパーティション121の容量を削減してキャッシュミスが発生したパーティション124の容量に追加する。 As shown in FIG. 1, the storage control device 100 includes a reduction candidate setting unit 101 and a capacity control unit 102. The reduction candidate setting unit 101 sets, in the cache memory 130, a partition 111 that includes a page that has not been accessed for a predetermined time or a page whose access frequency is lower than a predetermined value, as a partition 121 whose capacity can be reduced. The capacity control unit 102 operates as follows when the page 122 in which a cache miss has occurred is included in the history 123 of the page evicted from the cache memory 130 to the lower storage medium 140. That is, the capacity control unit 102 reduces the capacity of the partition 121 whose capacity can be reduced and adds it to the capacity of the partition 124 in which a cache miss has occurred.
 本実施形態は、アクセスの少ないページを含むパーティションを、容量を削減可能なパーティションに設定して、追い出されたページでキャッシュミスが発生したパーティションに容量を移動する。本実施形態は、この動作を用いて、各処理に対応したキャッシュのパーティションに割り当てるべき容量を測定することなしに処理中にキャッシュ容量を適正化し、記憶媒体に対するアクセス性能を高めることができる。 In this embodiment, a partition including a page with few accesses is set as a partition whose capacity can be reduced, and the capacity is moved to a partition where a cache miss has occurred in the evicted page. This embodiment can use this operation to optimize the cache capacity during processing without measuring the capacity to be allocated to the cache partition corresponding to each process, and to improve the access performance to the storage medium.
 [第2実施形態]
 次に、本発明の第2実施形態に係るキャッシュメモリを制御する記憶制御装置について説明する。本実施形態の記憶制御装置は、アクセスの少ないページを含むパーティションを、容量を削減可能なパーティション設定して、追い出されたページでキャッシュミスが発生したパーティションへの容量の移動を繰り返す。
[Second Embodiment]
Next, a storage controller that controls the cache memory according to the second embodiment of the present invention will be described. The storage control apparatus of this embodiment sets a partition including a page with few accesses to a partition capable of reducing the capacity, and repeatedly moves the capacity to the partition where a cache miss has occurred in the evicted page.
 ここで、本実施形態の記憶制御装置における削減可能なパーティションの設定は、所定時間を周期として、その間にアクセスされていないページを不要なページとして検出する不要ページ検出に基づいて行われる。そして、本実施形態の記憶制御装置は、不要なページを含むパーティションを、容量を削減可能なパーティションと設定する。この不要ページ検出は、例えば、クロックアルゴリズムを用いて行われる。また、容量の移動において、容量を削減可能なパーティションが複数ある場合、本実施形態の記憶制御装置は、下位の記憶媒体に追い出される可能性の最も高いページを含むパーティションを容量削減するパーティションとする。そして、容量削減をするパーティションにおいて、容量の移動先のパーティションで新たにデータの格納が必要になった場合、本実施形態の記憶制御装置は、下位の記憶媒体に追い出される可能性の最も高いページを削減する。また、本実施形態のキャッシュ容量配分方法は、複数の処理の各処理に対して、キャッシュメモリ内の少なくとも1つのページを含むパーティションを割り当てる割当て処理を含む。さらに、本実施形態のキャッシュ容量配分方法は、削減候補設定処理をバックグラウンドで実行しつつ、容量制御処理を繰り返し、各処理に配分するキャッシュ容量の配分を管理する配分管理処理を含む。 Here, the setting of the reducible partition in the storage control device of the present embodiment is performed based on unnecessary page detection that detects a page that has not been accessed as an unnecessary page with a predetermined time as a cycle. Then, the storage control device of this embodiment sets a partition including unnecessary pages as a partition whose capacity can be reduced. This unnecessary page detection is performed using, for example, a clock algorithm. In addition, when there are a plurality of partitions whose capacity can be reduced in capacity transfer, the storage control device of this embodiment sets a partition including a page that is most likely to be evicted to a lower storage medium as a partition whose capacity is reduced. . Then, in the partition whose capacity is to be reduced, when storage of data is newly required in the partition to which the capacity is moved, the storage control device of this embodiment is the page most likely to be evicted to the lower storage medium. To reduce. In addition, the cache capacity distribution method according to the present embodiment includes an allocation process in which a partition including at least one page in the cache memory is assigned to each of a plurality of processes. Furthermore, the cache capacity distribution method of the present embodiment includes a distribution management process for managing the distribution of the cache capacity allocated to each process by repeatedly performing the capacity control process while executing the reduction candidate setting process in the background.
 《前提技術の説明》
 近年、計算機の処理能力向上、記憶素子、及び記憶媒体の高密度化とともに、計算機において処理されるデータの容量が、増加している。それに伴い、計算機の処理においてより大きな容量を持つ、低速な記憶媒体で構成された下位の記憶階層に対するアクセス量が増加している。例えば、処理で用いるデータ全体が計算機のメモリに収まらない場合、メモリより下位のHDD(Hard Disk Drive)及びNAND(Not-and)フラッシュを用いたSSD(Solid State Drive)などの記憶媒体にデータを格納したアクセスが行われる。また、多くの計算機において、プロセッサは、自身に大きな記憶領域を持たず、大容量のデータを処理するためにDRAM(Dynamic Random Access Memory)等で構成された下位のメモリを使用する。通常、計算機において下位の記憶階層は低速であるため、上位の記憶媒体でデータをキャッシュすることで処理性能の向上が図られる。キャッシュの効果を十分に得るためには、増加したアクセス量に対応した十分な容量のキャッシュが必要となる。
《Explanation of prerequisite technology》
In recent years, the capacity of data processed in a computer has increased as the processing capacity of the computer has increased and the density of storage elements and storage media has increased. Along with this, the amount of access to lower storage hierarchies composed of low-speed storage media having a larger capacity in computer processing is increasing. For example, if the entire data used in the process does not fit in the memory of the computer, the data is stored in a storage medium such as an HDD (Hard Disk Drive) lower than the memory and an SSD (Solid State Drive) using NAND (Not-and) flash. Stored access is performed. In many computers, the processor does not have a large storage area, and uses a lower-order memory composed of a DRAM (Dynamic Random Access Memory) or the like to process a large amount of data. Usually, since a lower storage hierarchy is low in a computer, processing performance can be improved by caching data in an upper storage medium. In order to obtain a sufficient cache effect, a cache having a sufficient capacity corresponding to the increased access amount is required.
 一方で、近年の計算機で採用されるプロセッサでは、処理能力の向上を目的として、同時に複数の処理を並列に実行するためにコア、及び、スレッドと呼ばれる命令実行単位の数が増加している。これらのプロセッサの処理能力を活用して性能向上を図るには、各計算機上で並列に実行する処理数の増加が求められる。計算機上で実行される複数の処理は、通常異なるデータに対して異なる手順で処理を実行する。そのため、並列実行される各処理が利用可能なキャッシュ容量は処理数に反比例して減少する。 On the other hand, the number of instruction execution units called “cores” and “threads” is increasing in processors adopted in recent computers in order to simultaneously execute a plurality of processes in parallel for the purpose of improving the processing capability. In order to improve the performance by utilizing the processing capability of these processors, it is required to increase the number of processes executed in parallel on each computer. The plurality of processes executed on the computer usually execute processes with different procedures for different data. Therefore, the cache capacity that can be used by each process executed in parallel decreases in inverse proportion to the number of processes.
 つまり、各処理に対して余分なキャッシュ容量を割り当てることなく、並列に実行される処理全体のキャッシュの効果を最大化するように容量を配分する必要がある。並列実行される処理数が増加すると、十分に性能が得られるように各処理で使用するデータ量に対して余裕を持った容量を割り当てることは困難である。また、並列実行数の増加に伴い、各処理がキャッシュしたデータ間で競合の発生する可能性が増加する。例えば、処理の一つが大量のデータを参照する場合、キャッシュの容量を多く消費することで並列実行される他の処理が頻繁に参照するデータ(ワーキングセット)が追い出される。複数の処理間でワーキングセットに含まれるデータの追い出しが互いに行われることで、各処理において下位の記憶階層に対するアクセスが増加して、大幅な性能低下につながる。 That is, it is necessary to allocate the capacity so as to maximize the cache effect of the entire processes executed in parallel without allocating an extra cache capacity for each process. As the number of processes executed in parallel increases, it is difficult to allocate a capacity with a margin for the amount of data used in each process so that sufficient performance can be obtained. Further, as the number of parallel executions increases, the possibility of contention between data cached by each process increases. For example, when one of the processes refers to a large amount of data, data (working set) that is frequently referred to by other processes executed in parallel is expelled by consuming a large amount of cache capacity. Since the data included in the working set is mutually purged between a plurality of processes, access to the lower storage hierarchy is increased in each process, leading to a significant performance degradation.
 この問題に対して、例えば、非特許文献1に示された技術は、処理ごとにキャッシュをパーティションと呼ばれる領域に分割することで、処理間の競合発生を防止している。各パーティションは、それぞれ割り当てられた容量の独立したキャッシュとして動作する。そのため、非特許文献1に示された技術は、パーティションを使用することでキャッシュしたデータが他の処理のデータを追い出す処理間の競合を回避可能である。また、非特許文献1に示された技術は、処理ごとに最適なパーティション容量を設定することで、キャッシュ容量に対するヒット数を向上させている。キャッシュに含まれる各処理の最適なパーティション容量は、計算機及びストレージシステムのメモリ容量だけではなく、並列に実行される処理の組合せに依存する。また、ワーキングセットは、各処理の実行が進むとともに変化する。 In response to this problem, for example, the technique disclosed in Non-Patent Document 1 divides the cache into areas called partitions for each process, thereby preventing contention between processes. Each partition operates as an independent cache having an allocated capacity. Therefore, the technique disclosed in Non-Patent Document 1 can avoid contention between processes in which cached data drives out data of other processes by using partitions. The technique disclosed in Non-Patent Document 1 improves the number of hits for the cache capacity by setting an optimum partition capacity for each process. The optimum partition capacity of each process included in the cache depends not only on the memory capacity of the computer and the storage system but also on the combination of processes executed in parallel. The working set changes as the execution of each process proceeds.
 そこで、例えば、非特許文献2に示された技術は、プロセッサのキャッシュにおいてアクセスの状況から動的に各パーティションの容量配分を最適化している。
非特許文献2に示された技術は、パーティション容量が変化した場合のヒット数をキャッシュの利用状況から予測し、パーティションに対してヒット数が最大化される容量配分を算出する。非特許文献2に示された技術は、容量変化時のヒット数を予測するために、各アクセスがヒットした際のパーティション内部における置換の優先順位を参照する。しかし、HDD及びSSDのような記憶媒体に対するキャッシュのように、容量が大きく多数のデータを含む環境において、各パーティションでヒットしたアクセスに対する置換の優先順位を調べることは困難である。例えば、キャッシュ置換のアルゴリズムとしてLRU(Least Recently Used)を用いる場合、優先順位を表すデータ構造が多くの場合にリストの形式であるため、キャッシュヒットしたデータの置換の優先順位を調べるために先頭からリストをたどる必要がある。そのため、キャッシュヒット時の応答時間が増加してアクセス性能の低下につながる。
Thus, for example, the technique disclosed in Non-Patent Document 2 dynamically optimizes the capacity distribution of each partition from the access status in the processor cache.
The technique disclosed in Non-Patent Document 2 predicts the number of hits when the partition capacity is changed from the cache usage status, and calculates a capacity distribution that maximizes the number of hits for the partition. The technique disclosed in Non-Patent Document 2 refers to the priority of replacement within a partition when each access hits in order to predict the number of hits when the capacity changes. However, in an environment having a large capacity and containing a large number of data, such as a cache for storage media such as HDDs and SSDs, it is difficult to examine the priority of replacement for accesses hit in each partition. For example, when LRU (Least Recently Used) is used as a cache replacement algorithm, since the data structure representing the priority is in the form of a list in many cases, it is necessary to check the replacement priority of the data hit by the cache from the top. You need to follow the list. Therefore, the response time at the time of a cache hit increases, leading to a decrease in access performance.
 また、非特許文献3では、キャッシュの部位毎の容量をアクセスに応じて動的に調整するキャッシュ置換アルゴリズムが示されている。このアルゴリズムは、新規に格納されるデータと、一度ヒットしたデータとを異なるLRUキャッシュを用いて管理している。そして、このアルゴリズムは、各キャッシュ部に以前格納されていたデータがアクセスされた場合にデータがキャッシュ内でヒットするように、他方のキャッシュから一定の容量を移動する。そのため、非特許文献3では、非特許文献2に示された技術のような容量変化時のヒット数の予測は、不要である。しかし、非特許文献3では、3つ以上のキャッシュ間の容量調整には対応しておらず、それぞれ異なる処理に対して割り当てられたキャッシュ又はパーティション間の容量を最適化することは想定されていない。 Also, Non-Patent Document 3 discloses a cache replacement algorithm that dynamically adjusts the capacity of each cache part according to access. This algorithm manages newly stored data and data hit once using different LRU caches. This algorithm moves a certain capacity from the other cache so that the data hits in the cache when the data previously stored in each cache unit is accessed. Therefore, in Non-Patent Document 3, it is not necessary to predict the number of hits at the time of capacity change as in the technique shown in Non-Patent Document 2. However, Non-Patent Document 3 does not support capacity adjustment between three or more caches, and it is not assumed to optimize the capacity between caches or partitions allocated to different processes. .
 長期間アクセスされていないページを検出する動作自体は、キャッシュ及びメモリ管理において置換対象のデータを決定する一般的な技術において用いられるが、通常は検出されたページを直接置換の対象とするために用いられる。 The operation of detecting a page that has not been accessed for a long period of time is used in a general technique for determining data to be replaced in cache and memory management. Used.
 (課題)
 並列に実行される複数処理において高い性能を実現するために、共有キャッシュにおいて処理間のキャッシュの競合を防ぐと同時に、各処理に対してキャッシュの効果を最大化するように容量を配分することが求められる。そのために、各処理のワーキングセットを基に最適なパーティションの容量を求める必要がある。各処理のワーキングセットを動的に測定するために、対応するパーティション毎のデータアクセスを監視し、繰り返しアクセスされるデータの総容量を調べる必要がある。
(Task)
In order to achieve high performance in multiple processes executed in parallel, it is possible to allocate a capacity so as to maximize the effect of the cache for each process while preventing cache contention between processes in the shared cache. Desired. Therefore, it is necessary to obtain an optimum partition capacity based on the working set of each process. In order to dynamically measure the working set of each process, it is necessary to monitor the data access for each corresponding partition and check the total capacity of the data that is repeatedly accessed.
 しかし、一般的に各処理のワーキングセットを調べて、その結果が判明するまでに時間を要する。ワーキングセットに含まれる各データはアクセス頻度が高いほど、測定開始から早期にアクセスが検出される可能性が高いと言える。逆にワーキングセット内の相対的にアクセス頻度の低いデータは、測定開始から当該データに対するアクセスが検出されるまでに時間を要する可能性が高い。結果的に、ワーキングセット全体について漏れなく測定するために多くの時間を要する。 However, in general, it takes time to examine the working set of each process and find out the result. It can be said that the higher the access frequency of each data included in the working set, the higher the possibility that access will be detected earlier from the start of measurement. Conversely, data with relatively low access frequency in the working set is likely to take time from the start of measurement until access to the data is detected. As a result, it takes a lot of time to measure the entire working set without omission.
 つまり、各処理のキャッシュのパーティションに割り当てる容量が決定するまでに時間を要することが課題である。例えば、計算機上で新たな処理の実行を開始又は終了する際に、各処理のパーティションに対する最適な容量配分が変化する。また、多くの場合に各処理のワーキングセットは、時間とともに変化する。しかし、ワーキングセットの確定に多くの時間を要することから、これらの容量配分変化への対応が困難である。特に、各パーティションにおける余剰分の容量を算出するためには、ワーキングセットから外れたデータの検出が必要である。そのため、例えば、新たに実行を開始した処理のように即座にパーティションの容量追加が必要な場合に対応できず、性能が大きく低下する。 In other words, it is a problem that it takes time to determine the capacity allocated to the cache partition of each process. For example, when starting or ending execution of a new process on the computer, the optimum capacity distribution for each process partition changes. In many cases, the working set of each process changes with time. However, since it takes a lot of time to determine the working set, it is difficult to cope with these capacity distribution changes. In particular, in order to calculate the surplus capacity in each partition, it is necessary to detect data out of the working set. For this reason, for example, it is not possible to deal with a case where the capacity of the partition needs to be immediately added as in a process that has been newly started, and the performance is greatly reduced.
 すなわち、前提技術においては、キャッシュの動作中の各動作に割り当てられたパーティションの容量を変更する場合であっても、次の処理が関連付けられている。つまり、キャッシュミスの発生を検知して容量追加を要求する処理と、アクセスが少なく容量が削減可能なパーティションを見つける処理とが関連付けられている。そのため、容量変更の時間短縮が制限されて、データアクセスの性能が低下してしまう。 That is, in the base technology, even when the capacity of the partition allocated to each operation during the cache operation is changed, the following processing is associated. In other words, the process of detecting the occurrence of a cache miss and requesting additional capacity is associated with the process of finding a partition with less access and a capacity reduction. For this reason, the time for changing the capacity is limited, and the data access performance is degraded.
 《本実施形態の説明》
 本実施形態は、並列に実行される複数の処理において、記憶媒体に対する各処理のキャッシュパーティションの容量をキャッシュヒット率が最大となるように、各パーティションの容量を動的に調整する方法を提供する。そのために、本実施形態は、各パーティションを割り当てられた処理に基づくキャッシュを通した記憶媒体に対するアクセスの情報を基に、パーティションの容量削減の可否を判断しておく。そして、各パーティションの容量追加が必要になると、本実施形態は、容量追加が必要と判断されたパーティションに対して、予め準備された容量削減が可能なパーティションから容量を移動する。
<< Description of this embodiment >>
The present embodiment provides a method of dynamically adjusting the capacity of each partition so that the cache hit rate of the cache partition capacity of each process on the storage medium is maximized in a plurality of processes executed in parallel. . For this purpose, in the present embodiment, whether or not the capacity of the partition can be reduced is determined based on the access information to the storage medium through the cache based on the process assigned to each partition. Then, when it is necessary to add capacity of each partition, the present embodiment moves the capacity from the partition capable of capacity reduction prepared in advance to the partition determined to require capacity addition.
 本実施形態は、パーティションの容量削減の可否を判断する基準として、キャッシュに格納されているもののワーキングセットから外れたデータを検出する。また、本実施形態は、各処理に対応するキャッシュパーティションを通した記憶媒体に対するアクセスの情報を用いる。そして、本実施形態は、その情報から、パーティションの容量追加の判断基準として、繰り返しアクセスされているにも拘わらずキャッシュの容量不足に基づいて追い出されているデータを検出する。 In this embodiment, as a criterion for determining whether or not the capacity of the partition can be reduced, data stored in the cache but out of the working set is detected. In the present embodiment, information on access to the storage medium through the cache partition corresponding to each process is used. In this embodiment, data that has been evicted on the basis of insufficient cache capacity despite repeated access is detected from the information as a criterion for determining the capacity addition of the partition.
 まず、本実施形態は、キャッシュに含まれる各ページに対するアクセスの有無を監視し、長期間アクセスされていないページを検出する。長期間アクセスされていないページは、アクセス頻度が低い可能性が高く、ワーキングセットに含まれないページである可能性が高いと考えられる。そのため、本実施形態は、検出されたページの容量を、当該ページを含むパーティションから解放可能な容量とする。 First, the present embodiment monitors whether or not each page included in the cache is accessed, and detects a page that has not been accessed for a long period of time. A page that has not been accessed for a long period of time is likely to have a low access frequency and is likely to be a page that is not included in the working set. Therefore, in the present embodiment, the capacity of the detected page is a capacity that can be released from the partition including the page.
 次に、本実施形態は、キャッシュから追い出された直近のページの履歴を保存し、各パーティションでキャッシュミスが発生した際に保存された履歴と照合する。キャッシュミスしたページが履歴に含まれている場合、キャッシュミスしたページは、繰り返しアクセスされているもののキャッシュから追い出されたことが原因でミスになったと考えられる。そのため、本実施形態は、アクセスを行った処理がキャッシュミスしたページをキャッシュに格納するために必要なパーティションの容量追加の要求を行う。 Next, the present embodiment stores the history of the most recent page that has been evicted from the cache, and compares it with the history stored when a cache miss occurs in each partition. When the cache missed page is included in the history, the cache missed page is considered to have been missed because it was repeatedly accessed but was evicted from the cache. For this reason, in the present embodiment, a request is made to add a capacity of a partition necessary for storing in the cache a page in which the accessed process has missed the cache.
 そして、本実施形態は、容量追加の要求が行われたパーティションに対して、要求した容量を追加で割り当てる。一方で、本実施形態は、容量の解放が可能なパーティションから1つのパーティションを選択し、選択されたパーティションに割り当てられた容量から追加を要求された分の容量を減算する。 In this embodiment, the requested capacity is additionally allocated to the partition for which the capacity addition request is made. On the other hand, in the present embodiment, one partition is selected from the partitions whose capacity can be released, and the capacity requested to be added is subtracted from the capacity allocated to the selected partition.
 本実施形態は、容量が増加、及び減少した各パーティションで、それぞれ増加後、減少後の容量に基づいてページの置き換えを行う。キャッシュミスに伴い新たなデータを格納する際に、データの格納先となるパーティションに含まれるページ数が容量よりも少ない場合、本実施形態は、次のように動作する。すなわち、本実施形態は、含まれるページ数が容量よりも多い他パーティションのページを置き換えて、パーティションのページ数を増加させる。以上の処理を繰り返すことで、本実施形態は、各パーティションの容量を動的にキャッシュヒット率が最大となるように調整する。 In this embodiment, the pages are replaced based on the capacity after the increase and decrease in each partition whose capacity has increased and decreased. When storing new data due to a cache miss, if the number of pages included in the partition that is the data storage destination is less than the capacity, the present embodiment operates as follows. In other words, in the present embodiment, the number of pages included is replaced with a page of another partition whose capacity is larger than the capacity, and the number of pages of the partition is increased. By repeating the above processing, the present embodiment dynamically adjusts the capacity of each partition so that the cache hit rate is maximized.
 本実施形態は、ページ状態管理機能と、パーティション容量設定機能と、置換対象ページ選択機能と、置換ページ履歴管理機能と、不要ページ容量解放機能と、容量追加判定機能と、追加容量取得元選択機能と、を備える。 This embodiment includes a page status management function, a partition capacity setting function, a replacement target page selection function, a replacement page history management function, an unnecessary page capacity release function, a capacity addition determination function, and an additional capacity acquisition source selection function. And comprising.
 ページ状態管理機能は、キャッシュ内の各ページに関する情報を管理する。すなわち、ページ状態管理機能は、各処理に対応するキャッシュパーティションに対する容量削減、及び、容量追加の判断を行う。そして、ページ状態管理機能は、パーティション間で容量の移動を行うことでキャッシュヒット率を最大化するために、各ページに対する最終アクセス時間、一定時間のアクセス有無、又は、アクセス数を管理する。各ページを管理するための情報は、各ページに格納されたデータの記憶媒体における格納先アドレス等の識別子、及び/又は置換の優先順位などの一般的なキャッシュが持つ管理情報を持つ。さらに、各ページを管理するための情報は、上記以外に、各ページに対する最終アクセス時間、一定時間内のアクセス有無、及びアクセス数に関する、少なくともいずれか1つの情報を持つ。 The page status management function manages information about each page in the cache. In other words, the page state management function determines whether to reduce capacity and add capacity to the cache partition corresponding to each process. The page state management function manages the last access time, the presence / absence of access for a certain time, or the number of accesses for each page in order to maximize the cache hit rate by moving the capacity between partitions. Information for managing each page includes management information held by a general cache such as an identifier such as a storage destination address in the storage medium of data stored in each page and / or a priority of replacement. In addition to the above, the information for managing each page has at least one information regarding the last access time for each page, the presence / absence of access within a certain time, and the number of accesses.
 パーティション容量設定機能は、各パーティションの容量を動作中に設定可能であり、キャッシュ内に定義された各パーティションに対して割り当てられた容量、及び、解放可能な容量の指定を管理する。 The partition capacity setting function can set the capacity of each partition during operation, and manages the designation of the capacity allocated to each partition defined in the cache and the releasable capacity.
 置換対象ページ選択機能は、データを格納するための置換対象となるページの決定、又は置換対象となるページの優先順位を制御する。すなわち、置換対象ページ選択機能は、キャッシュ内に定義された、仮想的な独立したキャッシュとして動作する各パーティションに対して、次のような動作を実行する。すなわち、置換対象ページ選択機能は、パーティションに含まれる各ページの置換に関する優先順位とパーティション容量設定機能から取得したパーティション容量とを基に、キャッシュミスに基づく新規データの格納先となるページを決定する。また、置換対象ページ選択機能は、置換結果を基に新規データが格納されるパーティションの各ページの置換に関する優先順位を更新する。 The replacement target page selection function determines the page to be replaced for storing data, or controls the priority order of pages to be replaced. In other words, the replacement target page selection function performs the following operation for each partition defined in the cache and operating as a virtual independent cache. In other words, the replacement target page selection function determines a page as a storage destination of new data based on a cache miss based on the priority order of replacement of each page included in the partition and the partition capacity acquired from the partition capacity setting function. . Further, the replacement target page selection function updates the priority order for replacement of each page of the partition in which new data is stored based on the replacement result.
 置換ページ履歴管理機能は、過去にキャッシュに格納されており、他のデータに基づいて置換されたページの履歴を管理する。すなわち、置換ページ履歴管理機能は、各パーティションにおいて過去一定期間に新規に格納されるデータに基づいて置換されたページについて、次のように情報を管理する。すなわち、置換ページ履歴管理機能は、置換されたページに格納されていたデータの、記憶媒体におけるアドレス等の格納先を指定する識別子の情報を管理する。 The replacement page history management function manages the history of pages that have been stored in the cache in the past and replaced based on other data. That is, the replacement page history management function manages information as follows for pages replaced based on data newly stored in each partition in the past certain period. That is, the replacement page history management function manages information of an identifier that specifies a storage destination such as an address in a storage medium of data stored in a replaced page.
 不要ページ容量解放機能は、各ページに対応するアクセスの情報から一定時間アクセスが行われていないか、又はアクセス頻度の低い不要ページを検出する。そして、不要ページ容量解放機能は、不要ページが属するパーティションに割り当てられた容量に対して、解放可能な容量を計算する。すなわち、不要ページ容量解放機能は、ページ状態管理機能で管理される各ページの情報を巡回する。そして、不要ページ容量解放機能は、最終アクセス時間、又は一定時間内のアクセス有無、アクセス数の情報から一定時間アクセスが行われていない、若しくはアクセス頻度の低い不要ページを検出する。そして、不要ページ容量解放機能は、不要ページが含まれるパーティションに対して、パーティション容量設定機能で管理される解放可能な容量に、不要ページの容量を加算する。 The unnecessary page capacity release function detects an unnecessary page that has not been accessed for a certain period of time from the access information corresponding to each page, or has a low access frequency. Then, the unnecessary page capacity release function calculates a releasable capacity with respect to the capacity allocated to the partition to which the unnecessary page belongs. That is, the unnecessary page capacity release function circulates information on each page managed by the page state management function. Then, the unnecessary page capacity release function detects an unnecessary page that has not been accessed for a certain period of time or has a low access frequency from the information of the last access time, the presence / absence of access within a certain period, and the number of accesses. Then, the unnecessary page capacity release function adds the capacity of the unnecessary page to the releasable capacity managed by the partition capacity setting function for the partition including the unnecessary page.
 容量追加判定機能は、キャッシュ内で置換されたページの履歴と各パーティションに対応する処理のキャッシュミスの情報から、パーティションに対する容量追加が必要か判定する。すなわち、容量追加判定機能は、キャッシュミスとなった記憶媒体に対するアクセスについて、アクセス先のアドレス等の識別子を、置換ページ履歴管理機能に基づいて管理される識別子と比較する。アクセス先と一致する識別子が存在する場合は、容量追加判定機能は、キャッシュヒット率増加のためにパーティションの容量追加が必要と判定し、アクセス要求を行った処理に対応するパーティションを特定する。そして、容量追加判定機能は、特定されたパーティションに対する容量追加要求を行う。 The capacity addition determination function determines whether capacity addition to a partition is necessary from the history of pages replaced in the cache and cache miss information of processing corresponding to each partition. That is, the capacity addition determination function compares an identifier such as an access destination address with an identifier managed based on the replacement page history management function for an access to a storage medium that results in a cache miss. If there is an identifier that matches the access destination, the capacity addition determination function determines that the capacity of the partition needs to be increased in order to increase the cache hit rate, and identifies the partition corresponding to the process that made the access request. Then, the capacity addition determination function makes a capacity addition request for the identified partition.
 追加容量取得元選択機能は、履歴管理機能が維持する履歴情報を参照してパーティションに対する容量追加、及び容量の取得元となる解放可能な容量を持つパーティションを選択する。すなわち、追加容量取得元選択機能は、容量追加判定機能に基づいた容量追加要求に対して、要求を満たすための追加容量を提供するパーティションを選択する。パーティションの選択条件は、パーティション容量設定機能において、追加要求を行った容量以上の解放可能な容量を持つパーティションである。選択条件を満たすパーティションが複数存在する場合は、追加容量取得元選択機能は、例えば、ランダムで任意のパーティションを選択しても、その他の任意のアルゴリズムを用いて最適なパーティションを選択してもよい。 The additional capacity acquisition source selection function refers to the history information maintained by the history management function, and selects a partition having a releasable capacity as a capacity acquisition source and a capacity acquisition source. That is, the additional capacity acquisition source selection function selects a partition that provides an additional capacity to satisfy the request in response to a capacity addition request based on the capacity addition determination function. The partition selection condition is a partition having a releasable capacity that is larger than the capacity requested for addition in the partition capacity setting function. When there are a plurality of partitions that satisfy the selection condition, the additional capacity acquisition source selection function may select an arbitrary partition at random or select an optimum partition using any other algorithm, for example. .
 《情報処理システム》
 図2は、本実施形態に係る記憶制御装置としての記憶制御部220を含む情報処理システム200の構成を示すブロック図である。
《Information processing system》
FIG. 2 is a block diagram showing a configuration of an information processing system 200 including a storage control unit 220 as a storage control device according to the present embodiment.
 図2を参照すると、情報処理システム200は、1台以上のホストコンピュータ210、記憶媒体240、及び、ホストコンピュータ210と記憶媒体240とを接続するネットワーク250を含む。なお、記憶媒体240は、複数の記憶媒体に分散してネットワーク250に接続されていてもよい。 2, the information processing system 200 includes one or more host computers 210, a storage medium 240, and a network 250 that connects the host computer 210 and the storage medium 240. Note that the storage medium 240 may be distributed over a plurality of storage media and connected to the network 250.
 ホストコンピュータ210は、OS(Operating System)211及びOS211上で動作する複数のコア及びソフトウェアであるスレッド212と、本実施形態の記憶制御部220と、を備える。記憶制御部220は、キャッシュ221を有し、OS211及び複数のコア及びスレッド212の処理における、記憶媒体240へのRead及びWriteを含むアクセス処理を制御する。 The host computer 210 includes an OS (Operating System) 211, a plurality of cores operating on the OS 211 and a thread 212 that is software, and the storage control unit 220 of the present embodiment. The storage control unit 220 includes a cache 221 and controls access processing including read and write to the storage medium 240 in the processing of the OS 211 and the plurality of cores and threads 212.
 記憶媒体240は、NANDフラッシュを記憶素子として用いたSSD及びSMR(Shingled Magnetic Recording)を採用したHDDなどの追記形式の記憶媒体である。なお、記憶媒体240は、媒体本体241とバッファなどとを有してもよい。また、ネットワーク250の形態は特に限定されず、ホストコンピュータ210と記憶媒体240とが直接接続される形態であってもよい。また、ホストコンピュータ210は、ネットワーク250を介して接続された複数の装置、又は、システムで構成されてもよい。 The storage medium 240 is a write-once storage medium such as an HDD employing SSD and SMR (Shingled Magnetic Recording) using NAND flash as a storage element. Note that the storage medium 240 may include a medium body 241 and a buffer. Further, the form of the network 250 is not particularly limited, and the host computer 210 and the storage medium 240 may be directly connected. The host computer 210 may be configured by a plurality of devices or systems connected via the network 250.
 《記憶制御装置の機能構成》
 図3は、本実施形態に係る記憶制御装置としての記憶制御部220の機能構成を示すブロック図である。なお、図3において、図2と同様の構成要素には、同じ参照番号を付している。
<< Functional configuration of storage controller >>
FIG. 3 is a block diagram showing a functional configuration of the storage control unit 220 as the storage control device according to the present embodiment. In FIG. 3, the same components as those in FIG. 2 are denoted by the same reference numerals.
 図3を参照すると、記憶制御部220は、ページプールとしてのキャッシュ221と、アクセス制御部301とを備える。さらに、記憶制御部220は、キャッシュヒット/ミス判定部302と、ページ状態管理テーブル381を有するページ状態管理部308と、パーティション容量設定テーブル371を有するパーティション容量管理部307とを備える。さらに、記憶制御部220は、置換対象ページ選択部303と、置換ページ履歴テーブル341を有する置換履歴管理部304と、容量追加判定部305と、追加容量取得元選択部306と、不要ページ容量解放部309と、を備える。 3, the storage control unit 220 includes a cache 221 as a page pool and an access control unit 301. Further, the storage control unit 220 includes a cache hit / miss determination unit 302, a page state management unit 308 having a page state management table 381, and a partition capacity management unit 307 having a partition capacity setting table 371. Furthermore, the storage control unit 220 includes a replacement target page selection unit 303, a replacement history management unit 304 having a replacement page history table 341, a capacity addition determination unit 305, an additional capacity acquisition source selection unit 306, and an unnecessary page capacity release. Unit 309.
 なお、図3において、キャッシュヒット/ミス判定部302、ページ状態管理部308、パーティション容量管理部307、置換対象ページ選択部303、及び、不要ページ容量解放部309が、削減候補設定部として機能する。また、キャッシュヒット/ミス判定部302、ページ状態管理部308、パーティション容量管理部307、置換対象ページ選択部303、置換履歴管理部304、容量追加判定部305、及び、追加容量取得元選択部306が、容量制御部として機能する。 In FIG. 3, the cache hit / miss determination unit 302, the page state management unit 308, the partition capacity management unit 307, the replacement target page selection unit 303, and the unnecessary page capacity release unit 309 function as a reduction candidate setting unit. . In addition, the cache hit / miss determination unit 302, the page state management unit 308, the partition capacity management unit 307, the replacement target page selection unit 303, the replacement history management unit 304, the capacity addition determination unit 305, and the additional capacity acquisition source selection unit 306 Functions as a capacity control unit.
 《キャッシュ》
 ページプールとしてのキャッシュ221は、ホストコンピュータ210のコア及びスレッドの、記憶媒体240に対するアクセスについて、キャッシュされるデータをページ単位で格納する。
"cache"
A cache 221 serving as a page pool stores data to be cached in units of pages with respect to accesses to the storage medium 240 by cores and threads of the host computer 210.
 《アクセス制御部》
 アクセス制御部301は、ホストコンピュータ210のソフトウェアからのアクセス要求を受け取り、記憶媒体240に対して必要なアクセス処理と、アクセス要求に対する結果の応答を行う。また、アクセス制御部301は、置換対象ページ選択部303の指示に基づいて、記憶媒体240に対するアクセスの代わりにキャッシュ221の指定されたページにアクセス、又は、キャッシュ221に含まれるページのデータを記憶媒体240に書き込む。
《Access control unit》
The access control unit 301 receives an access request from the software of the host computer 210, and performs necessary access processing for the storage medium 240 and a response to the result of the access request. Further, the access control unit 301 accesses the specified page of the cache 221 or stores the data of the page included in the cache 221 instead of accessing the storage medium 240 based on the instruction of the replacement target page selection unit 303. Write to medium 240.
 《キャッシュヒット/ミス判定部》
 キャッシュヒット/ミス判定部302は、アクセス制御部301の受け取ったアクセス要求における記憶媒体240のアクセス先アドレスの情報を受け取る。そして、キャッシュヒット/ミス判定部302は、ページ状態管理テーブル381を参照して、アクセス先のデータがキャッシュ221にあるか否かを判定する。また、キャッシュヒット/ミス判定部302は、キャッシュヒット又はキャッシュミスの判定結果を置換対象ページ選択部303に伝える。
<< Cash hit / miss judgment part >>
The cache hit / miss determination unit 302 receives information on the access destination address of the storage medium 240 in the access request received by the access control unit 301. Then, the cache hit / miss determination unit 302 refers to the page state management table 381 and determines whether the access destination data is in the cache 221. Further, the cache hit / miss determination unit 302 notifies the replacement target page selection unit 303 of the determination result of cache hit or cache miss.
 《ページ状態管理部》
 ページ状態管理部308は、ページ状態管理テーブル381を用いて、キャッシュ221に含まれる各ページについて、記憶媒体240に対するキャッシュ機能の実現に必要な管理情報、及び、パーティションの容量調整に必要な情報を管理する。
《Page status management unit》
The page state management unit 308 uses the page state management table 381 to obtain management information necessary for realizing the cache function for the storage medium 240 and information necessary for adjusting the capacity of the partition for each page included in the cache 221. to manage.
 (ページ状態管理テーブル)
 図4は、本実施形態に係るページ状態管理テーブル381の構成を示す図である。
(Page status management table)
FIG. 4 is a diagram showing a configuration of the page state management table 381 according to the present embodiment.
 ページ状態管理テーブル381の各ページのエントリは、エントリに対応する当該ページが使用されていることを示す使用フラグ401と、記憶媒体240における当該ページのデータの格納先を示すアドレス402とを有する。さらに、各ページのエントリは、当該ページの所属するパーティションを示すパーティション番号403を有する。また、各ページのエントリは、各パーティションにおける置換の優先順位を示す置換優先順位404と、各ページがキャッシュヒットしたことを示すアクセスフラグ405と、を有する。さらに、各ページのエントリは、各ページがキャッシュ不要なページと判定されていることを示す不要候補フラグ406と、各ページが記憶媒体240の格納先に記録されたデータから更新されていることを示す更新フラグ407と、を有する。 The entry of each page of the page state management table 381 has a use flag 401 indicating that the page corresponding to the entry is used, and an address 402 indicating the storage location of the data of the page in the storage medium 240. Further, each page entry has a partition number 403 indicating the partition to which the page belongs. Each page entry has a replacement priority 404 indicating the priority of replacement in each partition, and an access flag 405 indicating that each page has a cache hit. Further, each page entry indicates that each page is updated from data recorded in the storage destination of the storage medium 240 and an unnecessary candidate flag 406 indicating that each page is determined to be a cache-unnecessary page. An update flag 407.
 なお、ページ状態管理テーブル381の各エントリに格納されるデータの形式は、図4に示した形式に限定されない。ページ状態管理テーブル381は、例えば、使用フラグ401を持つ代わりにアドレス402の値を記憶媒体240の記憶領域と対応しない特定の値に設定することで代用してもよい。また、置換優先順位404は、順位情報を数値で持つ代わりに、例えば、パーティション内のページの置換アルゴリズムとしてLRU(Least Recently Used)を用いる場合に、リンクリストの形式で表してもよい。加えて、例えば、不要ページ容量解放部309が各ページのアクセス時刻の情報を用いて不要なデータが格納されたページであるか判定を行う場合、ページ状態管理テーブル381は、次のように情報を持つようにしてもよい。すなわち、ページ状態管理テーブル381は、各エントリにアクセスフラグ405の代わりに最終アクセス時刻の情報を持つようにしてもよい。 Note that the format of the data stored in each entry of the page state management table 381 is not limited to the format shown in FIG. For example, instead of having the use flag 401, the page state management table 381 may be substituted by setting the value of the address 402 to a specific value that does not correspond to the storage area of the storage medium 240. Further, the replacement priority 404 may be expressed in the form of a link list when, for example, LRU (Least Recently) Used) is used as a replacement algorithm for pages in a partition, instead of having rank information as numerical values. In addition, for example, when the unnecessary page capacity releasing unit 309 determines whether the page stores unnecessary data using the access time information of each page, the page state management table 381 includes the following information: You may make it have. In other words, the page state management table 381 may have the last access time information instead of the access flag 405 in each entry.
 《パーティション容量管理部》
 パーティション容量管理部307は、パーティション容量設定テーブル371を用いて、各パーティションをキャッシュ内に定義され独立したキャッシュとして動作させ、パーティションに設定された容量の情報を管理する。
<Partition capacity management section>
The partition capacity management unit 307 uses the partition capacity setting table 371 to operate each partition as an independent cache defined in the cache, and manages information on the capacity set in the partition.
 (パーティション容量設定テーブル)
 図5は、本実施形態に係るパーティション容量設定テーブル371の構成を示す図である。
(Partition capacity setting table)
FIG. 5 is a diagram showing a configuration of the partition capacity setting table 371 according to the present embodiment.
 パーティション容量設定テーブル371の各エントリは、定義された個別のパーティションに対応している。そして、パーティション容量設定テーブル371の各エントリは、パーティションを識別するためのパーティション番号501と、エントリに対応する当該パーティションに割り当てられたページ数を示す設定容量502と、を有する。さらに、パーティション容量設定テーブル371の各エントリは、当該パーティションにおいて他パーティションに対して解放可能な容量を示す解放可能容量503と、実際にパーティションに含まれるページ数を表す実容量504と、を有する。 Each entry in the partition capacity setting table 371 corresponds to a defined individual partition. Each entry of the partition capacity setting table 371 has a partition number 501 for identifying a partition, and a setting capacity 502 indicating the number of pages allocated to the partition corresponding to the entry. Further, each entry of the partition capacity setting table 371 has a releasable capacity 503 indicating a capacity releasable from other partitions in the partition, and a real capacity 504 indicating the number of pages actually included in the partition.
 なお、パーティション容量設定テーブル371の各エントリに格納されるデータの形式は、図5に示した形式に限定されない。パーティション容量設定テーブル371は、例えば、パーティション番号501を持つ代わりに先頭から数えたエントリの順番をパーティション番号として使用してもよい。また、パーティション容量設定テーブル371は、設定容量502、解放可能容量503、及び、実容量504を、ページ数ではなく、バイト単位の容量で示してもよい。さらに、容量追加判定部305における各パーティションの容量追加要求を1回ずつ処理せずに、複数回の要求をまとめて処理する場合、パーティション容量設定テーブル371は、各パーティションに対応するエントリに、容量追加要求の回数を格納してもよい。 Note that the format of data stored in each entry of the partition capacity setting table 371 is not limited to the format shown in FIG. For example, the partition capacity setting table 371 may use the order of entries counted from the top as the partition number instead of having the partition number 501. Further, the partition capacity setting table 371 may indicate the set capacity 502, the releasable capacity 503, and the real capacity 504 not by the number of pages but by the capacity in bytes. Further, when the capacity addition determination unit 305 does not process the capacity addition request for each partition once, but processes multiple requests collectively, the partition capacity setting table 371 includes a capacity in the entry corresponding to each partition. The number of addition requests may be stored.
 《置換対象ページ選択部》
 置換対象ページ選択部303は、キャッシュヒット/ミス判定部302におけるキャッシュヒット又はキャッシュミスの判定結果に基づき、アクセス制御部301に対してキャッシュ221又は記憶媒体240に対する必要なアクセスの指示をする。そして、置換対象ページ選択部303は、ページ状態管理テーブル381に格納された各ページの置換優先順位404及びデータに対応するアドレスの情報を更新する。また、置換対象ページ選択部303は、アクセス制御部301に対して、アクセス要求で指定されたアドレスに対応するページに対するアクセスを行い、応答するように指示する。
《Replacement target page selection part》
The replacement target page selection unit 303 instructs the access control unit 301 to access the cache 221 or the storage medium 240 based on the cache hit / cache miss determination result in the cache hit / miss determination unit 302. Then, the replacement target page selection unit 303 updates the replacement priority 404 of each page and the address information corresponding to the data stored in the page state management table 381. Further, the replacement target page selection unit 303 instructs the access control unit 301 to access and respond to the page corresponding to the address specified in the access request.
 さらに、キャッシュミスが発生した場合に、置換対象ページ選択部303は、パーティション容量設定テーブル371の設定容量502を参照して、新しいデータを格納するために置換対象となるページを提供するパーティションを決定する。また、置換対象ページ選択部303は、置換対象となるページに既に格納されているデータのアドレス402を、置換履歴管理部304の置換ページ履歴テーブル341に追加する。そして、置換対象ページ選択部303は、置換対象となるページの更新フラグ407がセットされている場合、アクセス制御部301に、次のように指示する。すなわち、置換対象ページ選択部303は、当該ページに格納されているデータを新しいデータで置き換える前に、予め記憶媒体240の格納先に書き込むように、アクセス制御部301に指示する。 Further, when a cache miss occurs, the replacement target page selection unit 303 refers to the set capacity 502 of the partition capacity setting table 371 and determines a partition that provides a page to be replaced in order to store new data. To do. In addition, the replacement target page selection unit 303 adds the address 402 of data already stored in the page to be replaced to the replacement page history table 341 of the replacement history management unit 304. Then, when the update flag 407 of the page to be replaced is set, the replacement target page selection unit 303 instructs the access control unit 301 as follows. That is, the replacement target page selection unit 303 instructs the access control unit 301 to write in advance to the storage location of the storage medium 240 before replacing the data stored in the page with new data.
 《置換履歴管理部》
 置換履歴管理部304は、置換ページ履歴テーブル341を用いて、各パーティションにおいて過去の一定期間に新規に格納されるデータを用いて置換されたページについて、次のように、アドレスを管理する。すなわち、置換履歴管理部304は、当該ページに格納されていたデータに関する記憶媒体240の格納先アドレスを管理する。また、置換履歴管理部304は、置換ページ履歴テーブル341に格納されたページのアドレスから一定の期間を経過したアドレスを削除する。
《Replacement history management unit》
The replacement history management unit 304 uses the replacement page history table 341 to manage addresses for pages replaced using data newly stored in a certain past period in each partition as follows. That is, the replacement history management unit 304 manages the storage destination address of the storage medium 240 related to the data stored in the page. Further, the replacement history management unit 304 deletes an address that has passed a certain period from the page address stored in the replacement page history table 341.
 (置換ページ履歴テーブル)
 図6は、本実施形態に係る置換ページ履歴テーブル341の構成を示す図である。
(Replacement page history table)
FIG. 6 is a diagram showing a configuration of the replacement page history table 341 according to the present embodiment.
 置換ページ履歴テーブル341は、パーティションごとに置換されたページの履歴である置換履歴610~630を持つ。置換履歴610~630は、それぞれ、置換された個別のページを表す置換アドレス611~631を含む。なお、置換履歴610~630のそれぞれに記憶される置換アドレス611~631の数は、パーティションの容量変更を頻繁に行うか否かを決定する要因となる。例えば、置換アドレス611~631の数を多くするにつれて、キャッシュミス時にパーティションの容量追加の条件を満たす回数が増加する。 The replacement page history table 341 has replacement histories 610 to 630 which are history of pages replaced for each partition. The replacement histories 610 to 630 include replacement addresses 611 to 631 representing individual replaced pages, respectively. Note that the number of replacement addresses 611 to 631 stored in each of the replacement histories 610 to 630 is a factor for determining whether or not the capacity of the partition is frequently changed. For example, as the number of replacement addresses 611 to 631 increases, the number of times that satisfies the condition for adding the capacity of the partition at the time of a cache miss increases.
 なお、置換ページ履歴テーブル341の各エントリに格納されるデータの形式は、図6に示した形式に限定されない。例えば、置換履歴610~630は、置換アドレス611~631を格納する代わりに、Bloomフィルタのように特定のアドレスが置換履歴610~630の集合に含まれるか判定するためのデータ形式を用いてもよい。この場合、置換ページ履歴テーブル341は、置換履歴610~630を複数のBloomフィルタから形成する。そして、置換ページ履歴テーブル341は、一定期間の経過ごとに新しいBloomフィルタと古いBloomフィルタを入れ替えることで、過去の一定期間内に置換されたページを判定する処理に対応可能である。 Note that the format of data stored in each entry of the replacement page history table 341 is not limited to the format shown in FIG. For example, instead of storing replacement addresses 611 to 631, replacement history 610 to 630 may use a data format for determining whether a specific address is included in the set of replacement history 610 to 630, such as a Bloom filter. Good. In this case, the replacement page history table 341 forms replacement histories 610 to 630 from a plurality of Bloom filters. The replacement page history table 341 can cope with processing for determining a page replaced in a past fixed period by replacing a new Bloom filter and an old Bloom filter every time a fixed period elapses.
 《容量追加判定部》
 容量追加判定部305は、キャッシュミスとなったアクセスについて、格納先のアドレスを置換ページ履歴テーブル341に格納された、アクセスを行った処理に対応するパーティションの置換履歴610~630に含まれているか判定する。そして、容量追加判定部305は、格納先のアドレスが置換履歴610~630に含まれており、かつ、容量追加要求が行われていない場合は、当該パーティションに対する容量追加が必要と判定する。そして、容量追加判定部305は、追加容量取得元選択部306に対して1ページ分の容量の追加指示を行う。
《Capacity addition judgment unit》
Whether the capacity addition determination unit 305 includes the address of the storage destination in the replacement page history table 341 in the replacement history 610 to 630 of the partition corresponding to the accessed process for the access that caused the cache miss. judge. If the storage destination address is included in the replacement histories 610 to 630 and a capacity addition request is not made, the capacity addition determination unit 305 determines that capacity addition to the partition is necessary. Then, the capacity addition determination unit 305 instructs the additional capacity acquisition source selection unit 306 to add capacity for one page.
 なお、本実施形態においては、容量追加判定部305は、1ページ分の容量の追加を指示するが、複数ページ分の容量の追加を指示してもよい。追加するページ数を増加させるにつれて、1回のパーティションの容量変化が大きくなり、容量適正化が迅速に進むが、逆に、容量の変化が激しく不安定になる傾向がある。キャッシュメモリの容量、パーティションの容量、及び、アクセス頻度などの条件を考慮して、好適な数が、設定されればよい。 In this embodiment, the capacity addition determination unit 305 instructs to add capacity for one page, but may instruct to add capacity for a plurality of pages. As the number of pages to be added is increased, the capacity change of one partition becomes larger and the capacity optimization proceeds quickly, but conversely, the capacity change tends to become severe and unstable. A suitable number may be set in consideration of conditions such as the capacity of the cache memory, the capacity of the partition, and the access frequency.
 《追加容量取得元選択部》
 追加容量取得元選択部306は、容量追加判定部305からのパーティションに対する容量追加指示を受けて、パーティション容量設定テーブル371の各パーティションに関する解放可能容量503を参照し、解放可能な容量を持つパーティションを抽出する。そして、追加容量取得元選択部306は、抽出されたパーティションから、容量追加指示に対して容量を提供するパーティションを選択する。追加容量取得元選択部306は、選択されたパーティションについて、パーティション容量設定テーブル371の解放可能容量503から1ページ分を減算する。そして、追加容量取得元選択部306は、容量追加指示の対象のパーティションについて、パーティション容量設定テーブル371の設定容量502を1ページ分加算する。
<< Additional capacity acquisition source selection part >>
The additional capacity acquisition source selection unit 306 receives the capacity addition instruction for the partition from the capacity addition determination unit 305, refers to the releasable capacity 503 for each partition in the partition capacity setting table 371, and selects a partition having a releasable capacity. Extract. Then, the additional capacity acquisition source selection unit 306 selects a partition that provides capacity in response to the capacity addition instruction from the extracted partitions. The additional capacity acquisition source selection unit 306 subtracts one page from the releasable capacity 503 of the partition capacity setting table 371 for the selected partition. Then, the additional capacity acquisition source selection unit 306 adds one page of the set capacity 502 of the partition capacity setting table 371 for the target partition for the capacity addition instruction.
 なお、容量追加判定部305が、複数ページの追加要求をする場合、追加容量取得元選択部306は、複数ページ及び複数パーティションからの減算をすることになる。 In addition, when the capacity addition determination unit 305 requests addition of a plurality of pages, the additional capacity acquisition source selection unit 306 performs subtraction from the plurality of pages and the plurality of partitions.
 《不要ページ容量解放部》
 不要ページ容量解放部309は、ページ状態管理テーブル381の各エントリを巡回し、アクセスフラグ405及び不要候補フラグ406を確認する。エントリの巡回時にアクセスフラグ405がセットされている場合は、前回当該エントリを巡回した後に対応するページに対してアクセスがあったことを示す。そのため、不要ページ容量解放部309は、ワーキングセットに含まれるページと判断する。そして、不要ページ容量解放部309は、アクセスフラグ405をリセットする。一方、エントリの巡回時にアクセスフラグ405がセットされてなく、かつ、不要候補フラグ406がセットされていない場合は、不要ページ容量解放部309は、当該ページが一定期間アクセスされていないページであると判断する。つまり、不要ページ容量解放部309は、ワーキングセットに含まれないページであると判断する。そして、不要ページ容量解放部309は、不要候補フラグ406をセットする。また、不要ページ容量解放部309は、当該ページを含むパーティションについて、パーティション容量設定テーブル371の解放可能容量503に1ページ分を加算する。
<< Unnecessary page capacity release part >>
The unnecessary page capacity releasing unit 309 circulates each entry in the page state management table 381 and confirms the access flag 405 and the unnecessary candidate flag 406. When the access flag 405 is set when the entry is visited, it indicates that the corresponding page has been accessed after the previous entry was visited. Therefore, the unnecessary page capacity releasing unit 309 determines that the page is included in the working set. Then, the unnecessary page capacity releasing unit 309 resets the access flag 405. On the other hand, when the access flag 405 is not set at the time of entry circulation and the unnecessary candidate flag 406 is not set, the unnecessary page capacity releasing unit 309 determines that the page has not been accessed for a certain period of time. to decide. That is, the unnecessary page capacity releasing unit 309 determines that the page is not included in the working set. Then, the unnecessary page capacity releasing unit 309 sets the unnecessary candidate flag 406. Further, the unnecessary page capacity releasing unit 309 adds one page to the releasable capacity 503 of the partition capacity setting table 371 for the partition including the page.
 なお、本実施形態は、例えば、クロックアルゴリズムを用いて不要ページ容量の検出を行うが、他のアルゴリズムを使用してもよい。 In this embodiment, for example, the unnecessary page capacity is detected using a clock algorithm, but other algorithms may be used.
 《記憶制御装置のハードウェア構成》
 図7は、本実施形態における記憶制御装置としての記憶制御部220のハードウェア構成を示したブロック図である。なお、図7においては、記憶制御部220は、ホストコンピュータ210のソフトウェア処理として図示する。しかし、記憶制御部220は、ホストコンピュータ210とは独立したワンチップのコンピュータで実現されてもよい。
<< Hardware configuration of storage controller >>
FIG. 7 is a block diagram showing a hardware configuration of the storage control unit 220 as the storage control device in the present embodiment. In FIG. 7, the storage control unit 220 is illustrated as software processing of the host computer 210. However, the storage control unit 220 may be realized by a one-chip computer independent of the host computer 210.
 図7で、CPU(Central Processing Unit)710は演算制御用のプロセッサであり、プログラムを実行することで図3の記憶制御部220の機能構成部を実現する。ROM(Read Only Memory)720は、初期データ及びプログラムなどの固定データ及びプログラムを記憶する。また、キャッシュ221は、外部の記憶媒体240のアクセスにおいて頻繁にアクセスするデータを保持する。本実施形態では、各処理に対して少なくとも1つのページを含むパーティション単位に、領域が割り当てられる。また、通信制御部730は、ネットワーク250を介して記憶媒体240及び他の装置と通信する。
なお、CPU710は、1つに限定されず、複数のCPU(コア)であってもよい。また、通信制御部730は、CPU710とは独立したCPUを有して、RAM(Random Access Memory)740の領域に送受信データを書き込み又は読み出すことが望ましい。また、RAM740とストレージ750との間でデータを転送するDMAC(Direct Memory Access Controller)を設けるのが望ましい(図示なし)。さらに、入出力インタフェース760は、CPU710とは独立したCPUを有して、RAM740の領域に入出力データを書き込み又は読み出しするのが望ましい。したがって、CPU710は、RAM740にデータが受信又は転送されたことを認識してデータを処理する。また、CPU710は、処理結果をRAM740に準備し、後の送信又は転送を、通信制御部730、DMAC、又は入出力インタフェース760に任せる。
In FIG. 7, a CPU (Central Processing Unit) 710 is a processor for arithmetic control, and implements a functional component of the storage controller 220 of FIG. 3 by executing a program. A ROM (Read Only Memory) 720 stores fixed data and programs such as initial data and programs. The cache 221 holds data that is frequently accessed when accessing the external storage medium 240. In this embodiment, an area is assigned to each partition including at least one page for each process. The communication control unit 730 communicates with the storage medium 240 and other devices via the network 250.
The number of CPUs 710 is not limited to one, and may be a plurality of CPUs (cores). In addition, the communication control unit 730 preferably includes a CPU independent of the CPU 710 and writes or reads transmission / reception data in a RAM (Random Access Memory) 740 area. It is desirable to provide a DMAC (Direct Memory Access Controller) that transfers data between the RAM 740 and the storage 750 (not shown). Further, the input / output interface 760 preferably has a CPU independent of the CPU 710 and writes or reads input / output data in the RAM 740 area. Accordingly, the CPU 710 recognizes that the data has been received or transferred to the RAM 740 and processes the data. In addition, the CPU 710 prepares the processing result in the RAM 740 and leaves the subsequent transmission or transfer to the communication control unit 730, the DMAC, or the input / output interface 760.
 RAM740は、CPU710が一時記憶のワークエリアとして使用するランダムアクセスメモリである。RAM740には、本実施形態の実現に必要なデータを記憶する領域が確保されている。アクセスアドレス741は、OS211、コア、又はスレッド212から、記憶媒体240にアクセスしたアドレスである。キャッシュヒットアドレス742は、アクセスアドレス741の内、キャッシュヒットしたアドレスである。キャッシュミスアドレス743は、アクセスアドレス741の内、キャッシュミスしたアドレスである。容量追加パーティション744は、キャッシュミスしたアドレスが置換された(記憶媒体に押し出された)アドレスと一致して、容量追加を要求するパーティションである。容量削減パーティション745は、アクセスのない、又は、頻度の低いページを含み、削減候補となったパーティションで、容量追加パーティション744に容量を移動するために選択されたパーティションである。アクセス情報746は、記憶媒体240に対するアクセス(Read、Writeを含む)内容及びデータである。入出力データ747は、入出力インタフェース760を介して入出力されるデータである。送受信データ748は、通信制御部730を介して記憶媒体240に送受信されるデータである。アプリケーション使用領域749は、記憶制御以外の処理でアプリケーションが使用するエリアである。 The RAM 740 is a random access memory that the CPU 710 uses as a temporary storage work area. In the RAM 740, an area for storing data necessary for realizing the present embodiment is secured. The access address 741 is an address accessed from the OS 211, core, or thread 212 to the storage medium 240. The cache hit address 742 is an address that has a cache hit among the access addresses 741. The cache miss address 743 is an address where a cache miss has occurred among the access addresses 741. The capacity addition partition 744 is a partition that requests addition of capacity when the cache missed address matches the replaced address (extruded to the storage medium). The capacity reduction partition 745 is a partition that includes a page with no access or low frequency and is a reduction candidate, and is a partition selected to move the capacity to the capacity addition partition 744. The access information 746 is access contents (including Read and Write) and data to the storage medium 240. Input / output data 747 is data input / output via the input / output interface 760. The transmission / reception data 748 is data transmitted / received to / from the storage medium 240 via the communication control unit 730. The application use area 749 is an area used by the application in processing other than storage control.
 ストレージ750には、データベース、各種のパラメータ、又は、本実施形態の実現に必要な以下のデータ又はプログラムが記憶されている。ページ状態管理テーブル381は、図4に示した、キャッシュ221の各ページを管理するテーブルである。パーティション容量設定テーブル371は、図5に示した、各処理に割り当てられたキャッシュ221のパーティションを管理するテーブルである。置換ページ履歴テーブル341は、図6に示した、キャッシュ221から記憶媒体240に押し出されたページアドレスの履歴をパーティションごとに格納するテーブルである。解放容量算出アルゴリズム751は、使用してない又は使用頻度が低いキャッシュ内のページを検出して、容量を削減可能なパーティションを選定するアルゴリズムであって、本実施形態ではクロックアルゴリズムを含む。ページ巡回周期(巡回速度)752は、クロックアルゴリズムにおける巡回周期を格納する。 The storage 750 stores a database, various parameters, or the following data or programs necessary for realizing the present embodiment. The page state management table 381 is a table for managing each page of the cache 221 shown in FIG. The partition capacity setting table 371 is a table for managing the partition of the cache 221 allocated to each process shown in FIG. The replacement page history table 341 is a table for storing, for each partition, the history of page addresses pushed out from the cache 221 to the storage medium 240 shown in FIG. The released capacity calculation algorithm 751 is an algorithm for selecting a partition in which the capacity can be reduced by detecting a page in the cache that is not used or used infrequently, and includes a clock algorithm in this embodiment. The page cyclic cycle (cyclic rate) 752 stores the cyclic cycle in the clock algorithm.
 ストレージ750には、以下のプログラムが格納される。OS211は、本ホストコンピュータ210の全体を制御する基礎プログラムである。複数のスレッド212は、現在、本ホストコンピュータ210が実行中のプログラムにおける処理単位である。記憶制御プログラム753は、OS211及び複数のスレッド212からの記憶媒体240へのアクセスを受けて、本実施形態のアクセス制御を実現するプログラムである。アクセス処理モジュール754は、OS211及び複数のスレッド212からの記憶媒体240へのアクセスを処理するモジュールである。さらに、アクセス処理モジュール754は、キャッシュヒット時の制御を行うキャッシュヒット制御モジュール755と、キャッシュミス時の制御を行うキャッシュミス制御モジュール756と、を含む。設定容量制御モジュール757は、容量削減可能なパーティションから容量追加を要求するパーティションへの設定容量の移動を制御するモジュールである。解放容量算出モジュール758は、解放容量算出アルゴリズム751に従って、使用してない又は使用頻度が低いキャッシュ内のページを検出して、容量を削減可能なパーティションを選定するためのモジュールである。 The storage 750 stores the following programs. The OS 211 is a basic program that controls the entire host computer 210. The plurality of threads 212 are processing units in a program that is currently being executed by the host computer 210. The storage control program 753 is a program that realizes access control of the present embodiment upon receiving access to the storage medium 240 from the OS 211 and the plurality of threads 212. The access processing module 754 is a module that processes access to the storage medium 240 from the OS 211 and the plurality of threads 212. Further, the access processing module 754 includes a cache hit control module 755 that performs control when a cache hit occurs, and a cache miss control module 756 that performs control when a cache miss occurs. The set capacity control module 757 is a module that controls the movement of the set capacity from the partition whose capacity can be reduced to the partition that requests capacity addition. The free capacity calculation module 758 is a module for selecting a partition whose capacity can be reduced by detecting a page in the cache that is not used or used infrequently according to the free capacity calculation algorithm 751.
 入出力インタフェース760は、入出力機器との入出力データをインタフェースする。入出力インタフェース760には、表示部761、及び操作部762が接続されるが、これに限定されない。 The input / output interface 760 interfaces input / output data with input / output devices. A display unit 761 and an operation unit 762 are connected to the input / output interface 760, but the present invention is not limited to this.
 なお、図7のRAM740及びストレージ750には、ホストコンピュータ210が有する汎用の機能及び他の実現可能な機能に関連するプログラム及びデータは、図示されていない。 Note that the RAM 740 and the storage 750 in FIG. 7 do not show programs and data related to general-purpose functions and other realizable functions that the host computer 210 has.
 《記憶制御装置の処理手順》
 図8は、本実施形態における記憶制御装置としての記憶制御部220の処理手順を示したフローチャートである。このフローチャートは、図7のCPU(コア)710がRAM740を使用して実行し、図3の機能構成部を実現する。
<< Processing procedure of storage controller >>
FIG. 8 is a flowchart showing a processing procedure of the storage control unit 220 as the storage control device in the present embodiment. This flowchart is executed by the CPU (core) 710 in FIG. 7 using the RAM 740, and implements the functional configuration unit in FIG.
 記憶制御部220は、ステップS801において、各テーブルの初期化などを含む初期化処理を行う。記憶制御部220は、ステップS803において、ホストコンピュータ210における記憶媒体240へのアクセスを制御するための、アクセス処理をスタートさせる。また、記憶制御部220は、ステップS805において、キャッシュ221に各処理に対応して配分されたパーティションの設定容量を削減及び追加するための、設定容量制御処理をスタートさせる。また、記憶制御部220は、ステップS807において、キャッシュ221に各処理に対応して配分されたパーティションから解放可能な容量(ページ数)を算出するための、解放容量算出処理をスタートさせる。 In step S801, the storage control unit 220 performs an initialization process including initialization of each table. In step S <b> 803, the storage control unit 220 starts an access process for controlling access to the storage medium 240 in the host computer 210. In step S805, the storage control unit 220 starts a set capacity control process for reducing and adding the set capacity of the partition allocated to the cache 221 corresponding to each process. In step S807, the storage control unit 220 starts a released capacity calculation process for calculating a capacity (number of pages) that can be released from the partition allocated to the cache 221 corresponding to each process.
 記憶制御部220は、ステップS809において、記憶制御処理の終了か否かを判定する。そして、記憶制御部220は、記憶制御処理の終了と判定すれば、処理を終了する。なお、図8においては、アクセス処理と、設定容量制御処理と、解放容量算出処理とは、独立に並行して実行されるとして説明したが、記憶制御部220は、それぞれを関連付けてシーケンスに実行してもよい。 In step S809, the storage control unit 220 determines whether the storage control process is finished. If the storage control unit 220 determines that the storage control process has ended, the storage control unit 220 ends the process. In FIG. 8, the access process, the set capacity control process, and the released capacity calculation process have been described as being executed independently and in parallel, but the storage control unit 220 executes the processes in association with each other. May be.
 (アクセス処理)
 図9は、本実施形態におけるアクセス処理の手順を示したフローチャートである。本フローチャートは、ホストコンピュータ210のソフトウェアからのアクセス要求の処理を行う手順である。
(Access processing)
FIG. 9 is a flowchart showing a procedure of access processing in the present embodiment. This flowchart is a procedure for processing an access request from the software of the host computer 210.
 記憶制御部220のアクセス制御部301は、ステップS901において、ホストコンピュータ210のソフトウェアからのアクセス要求を受け取ると、キャッシュヒット/ミス判定部302に対してアクセス要求の情報を伝える。記憶制御部220のキャッシュヒット/ミス判定部302は、ステップS903において、ページ状態管理テーブル381を参照し、アドレス402がアクセス要求の記憶媒体240に対する格納先と一致するページが存在するか確認する。そして、キャッシュヒット/ミス判定部302は、ステップS905において、キャッシュヒットかキャッシュミスかに基づいて分岐する。 When the access control unit 301 of the storage control unit 220 receives an access request from the software of the host computer 210 in step S <b> 901, the access control unit 301 transmits the access request information to the cache hit / miss determination unit 302. In step S903, the cache hit / miss determination unit 302 of the storage control unit 220 refers to the page state management table 381 and checks whether there is a page whose address 402 matches the storage destination of the access request storage medium 240. In step S905, the cache hit / miss determination unit 302 branches based on whether the cache hit / miss occurs.
 アクセス要求の記憶媒体240に対する格納先に一致するデータを格納するページが存在する場合(ステップS905のYes判定)、ステップS907において、キャッシュヒット/ミス判定部302は、次のように動作する。すなわち、キャッシュヒット/ミス判定部302は、アクセス要求のアドレス、及び、アクセスがRead又はWriteのいずれであるかの情報を置換対象ページ選択部303に伝える。そして、ステップS907において、記憶制御部220の置換対象ページ選択部303は、キャッシュヒット時の処理を実行し、実行が完了した後はステップS911以降の処理を実行する。 When there is a page that stores data that matches the storage destination of the access request storage medium 240 (Yes in step S905), in step S907, the cache hit / miss determination unit 302 operates as follows. That is, the cache hit / miss determination unit 302 notifies the replacement target page selection unit 303 of the address of the access request and information indicating whether the access is Read or Write. In step S907, the replacement target page selection unit 303 of the storage control unit 220 executes processing at the time of a cache hit, and executes processing from step S911 onward after the execution is completed.
 アクセス要求の記憶媒体240に対する格納先に一致するデータを格納するページが存在しない場合(ステップS905のNo判定)、ステップS909において、キャッシュヒット/ミス判定部302は、次のように動作する。すなわち、キャッシュヒット/ミス判定部302は、アクセス要求のアドレス、及び、アクセスがRead又はWriteのいずれであるかの情報を置換対象ページ選択部303に伝える。そして、ステップS909において、置換対象ページ選択部303は、キャッシュミス時の処理を実行する。 If there is no page that stores data that matches the storage location of the access request storage medium 240 (No in step S905), in step S909, the cache hit / miss determination unit 302 operates as follows. That is, the cache hit / miss determination unit 302 notifies the replacement target page selection unit 303 of the address of the access request and information indicating whether the access is Read or Write. In step S909, the replacement target page selection unit 303 executes processing at the time of a cache miss.
 ステップS907、又は、ステップS909にて置換対象ページ選択部303から指示された、記憶媒体240、及び/又は、キャッシュ221に対するアクセスを完了すると、アクセス制御部301は、次のように動作する。すなわち、アクセス制御部301は、ステップS911において、ホストコンピュータ210のアクセス要求を行ったソフトウェアに結果を通知し、アクセス要求の処理を完了する。 When the access to the storage medium 240 and / or the cache 221 instructed from the replacement target page selection unit 303 in Step S907 or Step S909 is completed, the access control unit 301 operates as follows. That is, in step S911, the access control unit 301 notifies the result to the software that made the access request of the host computer 210, and the access request processing is completed.
 (キャッシュヒット時のアクセス処理)
 図10は、本実施形態におけるキャッシュヒット時のアクセス処理(S907)の手順を示したフローチャートである。なお、本実施形態は、キャッシュ置換アルゴリズムとしてLRUを想定するが、他の置換アルゴリズムを用いてもよい。
(Access processing at the time of cache hit)
FIG. 10 is a flowchart showing the procedure of the access process (S907) at the time of cache hit in this embodiment. In the present embodiment, LRU is assumed as the cache replacement algorithm, but other replacement algorithms may be used.
 記憶制御部220の置換対象ページ選択部303は、ステップS1001において、キャッシュヒットしたアドレスをページ状態管理テーブル381のアドレス402と比較して、キャッシュヒットしたアドレスと対応するページを特定する。置換対象ページ選択部303は、ステップS1003において、アクセス制御部301に対して、ステップS1001で特定したキャッシュ221のページにアクセス要求の実行を指示する。 In step S1001, the replacement target page selection unit 303 of the storage control unit 220 compares the cache hit address with the address 402 of the page state management table 381, and identifies the page corresponding to the cache hit address. In step S1003, the replacement target page selection unit 303 instructs the access control unit 301 to execute an access request for the page of the cache 221 identified in step S1001.
 置換対象ページ選択部303は、ステップS1005において、ページ状態管理テーブル381における、キャッシュヒットしたページの置換優先順位404を最低値に更新する。また、置換対象ページ選択部303は、ステップS1005において、ページに対応するアクセスフラグ405をセットし、不要候補フラグ406をリセットする。置換対象ページ選択部303は、ステップS1007において、キャッシュヒットしたページと同一のパーティションに含まれる他の各ページについて、ページ状態管理テーブル381のキャッシュヒットしたページの置換優先順位404を1増加させる。 In step S1005, the replacement target page selection unit 303 updates the replacement priority 404 of the cache hit page in the page state management table 381 to the lowest value. Further, the replacement target page selection unit 303 sets the access flag 405 corresponding to the page and resets the unnecessary candidate flag 406 in step S1005. In step S1007, the replacement target page selection unit 303 increments the replacement priority 404 of the cache hit page in the page state management table 381 by 1 for each of the other pages included in the same partition as the cache hit page.
 置換対象ページ選択部303は、ステップS1009において、キャッシュヒットしたアクセスがReadであるかWriteであるかを判定する。キャッシュヒットしたアクセスがReadである場合(ステップS1009のYes判定)、置換対象ページ選択部303は、ステップS1011において、次のように動作する。すなわち、置換対象ページ選択部303は、ページ状態管理テーブル381のキャッシュヒットしたページの更新フラグ407をリセットして処理を終了する。キャッシュヒットしたアクセスがWriteである場合(ステップS1009のNo判定)、置換対象ページ選択部303は、ステップS1013において、ページ状態管理テーブル381のキャッシュヒットしたページの更新フラグ407をセットして処理を終了する。 In step S1009, the replacement target page selection unit 303 determines whether the cache hit access is Read or Write. When the cache hit access is “Read” (Yes in step S1009), the replacement target page selection unit 303 operates as follows in step S1011. That is, the replacement target page selection unit 303 resets the update flag 407 of the cache hit page in the page state management table 381 and ends the process. When the cache hit access is Write (No determination in step S1009), the replacement target page selection unit 303 sets the cache hit page update flag 407 in the page state management table 381 in step S1013 and ends the process. To do.
 以上のステップS1001からS1013までの処理を行い、図9のステップS907において、記憶制御部220の置換対象ページ選択部303がキャッシュヒット時の処理を行う動作が完了する。ステップS1001からS1013の処理順序は、必ずしも図10に示した順序である必要はない。例えば、ステップS1003からS1013の処理は、同時期に実行、又は、順序を入れ替えた実行が可能である。また、ステップS1001において、ページ状態管理テーブル381のアドレス402と比較してキャッシュヒットしたアドレスと対応するページを特定する処理は、次のような処理でもよい。その処理とは、キャッシュヒット/ミス判定部302からキャッシュヒットの判定を行った際に特定されたページ情報を直接に受け取る処理である。さらに、ステップS1005及びステップS1007の置換優先順位404に対する処理は、置換優先順位404がリンクリスト形式で表される場合は、次の操作に基づいて実現される。その操作とは、リンクリストにおけるキャッシュヒットしたページの位置を、置換の優先順位が最低となるように移動する操作である。 The above processing from step S1001 to S1013 is performed, and in step S907 in FIG. 9, the operation of the replacement target page selection unit 303 of the storage control unit 220 performing processing at the time of a cache hit is completed. The processing order of steps S1001 to S1013 is not necessarily the order shown in FIG. For example, the processing of steps S1003 to S1013 can be executed at the same time or executed with the order changed. Further, in step S1001, the process for specifying the page corresponding to the cache hit address compared to the address 402 of the page state management table 381 may be the following process. The process is a process for directly receiving page information specified when a cache hit is determined from the cache hit / miss determination unit 302. Further, the processing for the replacement priority order 404 in step S1005 and step S1007 is realized based on the following operation when the replacement priority order 404 is expressed in a link list format. The operation is an operation of moving the position of the page having a cache hit in the link list so that the priority of replacement becomes the lowest.
 (キャッシュミス時のアクセス処理)
 図11A及び図11Bは、本実施形態におけるキャッシュミス時のアクセス処理(S909)の手順を示したフローチャートである。
(Access processing at the time of cache miss)
FIG. 11A and FIG. 11B are flowcharts showing the procedure of the access process (S909) at the time of a cache miss in this embodiment.
 記憶制御部220の置換対象ページ選択部303は、ステップS1101において、パーティション容量設定テーブル371にアクセスする。そして、置換対象ページ選択部303は、キャッシュミスが発生したアクセス要求を行った処理に対応するパーティションの設定容量502と実容量504とを取得して比較する。置換対象ページ選択部303は、ステップS1103において、比較結果に対応して分岐する。 The replacement target page selection unit 303 of the storage control unit 220 accesses the partition capacity setting table 371 in step S1101. Then, the replacement target page selection unit 303 acquires and compares the set capacity 502 and the actual capacity 504 of the partition corresponding to the process that made the access request in which the cache miss occurred. The replacement target page selection unit 303 branches in accordance with the comparison result in step S1103.
 比較の結果、パーティションの実容量504が設定容量502を下回る場合(ステップS1103のYes判定)、置換対象ページ選択部303は、ステップS1105において、次のように動作する。すなわち、置換対象ページ選択部303は、パーティション容量設定テーブル371にアクセスし、実容量504が設定容量502を上回るパーティションを抽出する。置換対象ページ選択部303は、ステップS1107において、ステップS1105で抽出したパーティションから、キャッシュミスに伴う新規データの格納に必要なページを提供する任意のパーティションを1つ選択する。そして、置換対象ページ選択部303は、ステップS1109において、ページ状態管理テーブル381を参照して、次のように動作する。すなわち、置換対象ページ選択部303は、ステップS1107で選択されたパーティションに含まれるページのうち、置換優先順位404が最も高いページをキャッシュミスに伴う新規データの格納先として選択する。そして、置換対象ページ選択部303は、ステップS1113以降の処理を実行する。 As a result of the comparison, when the actual capacity 504 of the partition is less than the set capacity 502 (Yes in step S1103), the replacement target page selection unit 303 operates as follows in step S1105. That is, the replacement target page selection unit 303 accesses the partition capacity setting table 371 and extracts a partition whose actual capacity 504 exceeds the set capacity 502. In step S1107, the replacement target page selection unit 303 selects one arbitrary partition that provides a page necessary for storing new data associated with a cache miss from the partitions extracted in step S1105. Then, in step S1109, the replacement target page selection unit 303 refers to the page state management table 381 and operates as follows. That is, the replacement target page selection unit 303 selects a page having the highest replacement priority 404 among the pages included in the partition selected in step S1107 as a storage location for new data associated with a cache miss. Then, the replacement target page selection unit 303 executes the processing after step S1113.
 ステップS1101での比較の結果、パーティションの実容量504が設定容量502以上である場合(ステップS1103のNo判定)、置換対象ページ選択部303は、ステップS1111において、ページ状態管理テーブル381を参照する。そして、置換対象ページ選択部303は、ステップS1111において、キャッシュミスが発生した処理に対応するパーティションに含まれるページのうち、置換優先順位404が最も高いページをキャッシュミスに伴う新規データの格納先として選択する。 As a result of the comparison in step S1101, if the actual capacity 504 of the partition is greater than or equal to the set capacity 502 (No determination in step S1103), the replacement target page selection unit 303 refers to the page state management table 381 in step S1111. In step S1111, the replacement target page selection unit 303 sets the page having the highest replacement priority 404 among the pages included in the partition corresponding to the process in which the cache miss has occurred as the storage destination of new data associated with the cache miss. select.
 置換対象ページ選択部303は、ステップS1113において、アクセス制御部301に対して、キャッシュミスに伴う新規データの格納先として選択したページについて、次のように動作する。すなわち、置換対象ページ選択部303は、ページ状態管理テーブル381の使用フラグ401及び更新フラグ407を参照して、選択したページのデータを記憶媒体240に反映するべきか確認する。置換対象ページ選択部303は、ステップS1115において、記憶媒体240に反映するべきか否かに基づいて分岐する。新規データの格納先として選択したページについて、使用フラグ401及び更新フラグ407の少なくとも1つがセットされていない場合(ステップS1115のNo判定)、置換対象ページ選択部303は図11BのステップS1119以降の処理を実行する。 The replacement target page selection unit 303 operates as follows for the page selected as the storage destination of new data associated with the cache miss with respect to the access control unit 301 in step S1113. That is, the replacement target page selection unit 303 refers to the use flag 401 and the update flag 407 of the page state management table 381 and confirms whether the data of the selected page should be reflected on the storage medium 240. In step S1115, the replacement target page selection unit 303 branches based on whether or not it should be reflected in the storage medium 240. When at least one of the use flag 401 and the update flag 407 is not set for the page selected as the storage destination of the new data (No determination in step S1115), the replacement target page selection unit 303 performs the processing after step S1119 in FIG. 11B. Execute.
 一方、新規データの格納先として選択したページについて、使用フラグ401及び更新フラグ407の両方がセットされている場合(ステップS1115のYes判定)、置換対象ページ選択部303は、ステップS1117において、次のように動作する。すなわち、置換対象ページ選択部303は、ページ状態管理テーブル381のキャッシュミスしたページに対応するアドレス402を取得する。そして、アクセス制御部301に対して、キャッシュミスしたページに現在格納されているデータを、記憶媒体240のアドレス402が示す領域に対して書き込むように指示する。 On the other hand, when both the use flag 401 and the update flag 407 are set for the page selected as the storage destination of the new data (Yes determination in step S1115), the replacement target page selection unit 303 performs the following in step S1117. To work. In other words, the replacement target page selection unit 303 acquires the address 402 corresponding to the cache missed page in the page state management table 381. Then, the access control unit 301 is instructed to write the data currently stored in the cache missed page into the area indicated by the address 402 of the storage medium 240.
 置換対象ページ選択部303は、ステップS1119において、キャッシュミスしたアクセス要求がReadかWriteかを判定する。ホストコンピュータ210のソフトウェアからのアクセス要求がReadである場合(ステップS1119のYes判定)、置換対象ページ選択部303は、ステップS1121において、次のように動作する。すなわち、置換対象ページ選択部303は、アクセス制御部301に対して、記憶媒体240に要求されたReadアクセスを実行する。そして、置換対象ページ選択部303は、ステップS1109又はステップS1111で選択したキャッシュ221のページにRead結果を格納するように指示する。置換対象ページ選択部303は、ステップS1123において、ステップS1121で結果を格納したページについて、ページ状態管理テーブル381の更新フラグ407をリセットして、ステップS1129以降を実行する。 In step S1119, the replacement target page selection unit 303 determines whether the access request with a cache miss is Read or Write. When the access request from the software of the host computer 210 is Read (Yes in step S1119), the replacement target page selection unit 303 operates as follows in step S1121. That is, the replacement target page selection unit 303 performs the read access requested to the storage medium 240 to the access control unit 301. Then, the replacement target page selection unit 303 instructs the Read result to be stored in the page of the cache 221 selected in Step S1109 or Step S1111. In step S1123, the replacement target page selection unit 303 resets the update flag 407 of the page state management table 381 for the page in which the result is stored in step S1121, and executes step S1129 and the subsequent steps.
 ホストコンピュータ210のソフトウェアからのアクセス要求がWriteである場合(ステップS1119のNo判定)、置換対象ページ選択部303は、ステップS1125において、次のように動作する。すなわち、置換対象ページ選択部303は、アクセス制御部301に対して、Writeを要求されたデータを、ステップS1109又はステップS1111で選択した、キャッシュ221のページに格納するように指示する。置換対象ページ選択部303は、ステップS1127において、ステップS1125でWrite結果を格納したページについて、ページ状態管理テーブル381の、キャッシュヒットしたページの更新フラグ407をセットする。 When the access request from the software of the host computer 210 is Write (No determination in step S1119), the replacement target page selection unit 303 operates as follows in step S1125. That is, the replacement target page selection unit 303 instructs the access control unit 301 to store the data requested to be written in the page of the cache 221 selected in step S1109 or step S1111. In step S1127, the replacement target page selection unit 303 sets the update flag 407 of the cache hit page in the page state management table 381 for the page in which the write result is stored in step S1125.
 置換対象ページ選択部303は、ステップS1129において、ステップS1109又はステップS1111で選択したページについて、次のように動作する。すなわち、置換対象ページ選択部303は、ページ状態管理テーブル381のパーティション番号403を、キャッシュミスが発生したアクセス要求を行った処理に対応するパーティションを表す番号で更新し、置換優先順位404を最低値に更新する。置換対象ページ選択部303は、ステップS1131において、ステップS1109又はステップS1111で選択したページについて、ページ状態管理テーブル381のアクセスフラグ405をセットし、不要候補フラグ406をリセットする。そして、置換対象ページ選択部303は、ステップS1133において、キャッシュミスが発生したアクセス要求を行った処理に対応するパーティションに含まれる他の各ページについて、ページ状態管理テーブル381の置換優先順位404を1増加させる。 The replacement target page selection unit 303 operates as follows for the page selected in step S1109 or step S1111 in step S1129. That is, the replacement target page selection unit 303 updates the partition number 403 of the page state management table 381 with a number representing the partition corresponding to the process that performed the access request in which the cache miss occurred, and sets the replacement priority 404 to the lowest value. Update to In step S1131, the replacement target page selection unit 303 sets the access flag 405 of the page state management table 381 and resets the unnecessary candidate flag 406 for the page selected in step S1109 or step S1111. In step S1133, the replacement target page selection unit 303 sets the replacement priority 404 of the page state management table 381 to 1 for each of the other pages included in the partition corresponding to the process that performed the access request in which the cache miss occurred. increase.
 置換対象ページ選択部303は、ステップS1135において、容量追加判定部305に、新規データの格納先となったページに直前まで格納されていたデータのアドレスを伝える。つまり、置換対象ページ選択部303は、そのアドレスを、対応するパーティションの置換履歴610~630に、新たな置換アドレス611~631として設定する。 In step S1135, the replacement target page selection unit 303 notifies the capacity addition determination unit 305 of the address of the data that has been stored immediately before in the page where the new data is stored. In other words, the replacement target page selection unit 303 sets the address as the new replacement address 611 to 631 in the replacement history 610 to 630 of the corresponding partition.
 置換対象ページ選択部303は、ステップS1137において、ステップS1101での比較の結果に基づいて分岐する。パーティションの実容量504が設定容量502以上であった場合(ステップS1137のYes判定)、処理を終了する。一方、パーティションの実容量504が設定容量502を下回っていた場合(ステップS1137のNo判定)、置換対象ページ選択部303は、ステップS1139において、パーティション容量設定テーブル371にアクセスする。次に、キャッシュミスが発生したアクセス要求を行った処理に対応するパーティションの実容量504に1を加算する。そして、ステップS1109又はステップS1111で選択したページが含まれていたパーティションの実容量504から1を減算して、処理を終了する。 The replacement target page selection unit 303 branches in step S1137 based on the comparison result in step S1101. If the actual capacity 504 of the partition is greater than or equal to the set capacity 502 (Yes determination in step S1137), the process ends. On the other hand, if the actual capacity 504 of the partition is less than the set capacity 502 (No determination in step S1137), the replacement target page selection unit 303 accesses the partition capacity setting table 371 in step S1139. Next, 1 is added to the actual capacity 504 of the partition corresponding to the process that performed the access request in which the cache miss occurred. Then, 1 is subtracted from the actual capacity 504 of the partition in which the page selected in step S1109 or step S1111 was included, and the process ends.
 以上のステップS1101からS1139までの処理を行い、図9のステップS909において、置換対象ページ選択部303がキャッシュミス時の処理を行う動作が完了する。ステップS1101からS1139の処理順序は、必ずしも図11A及び図11Bに示した順序である必要はない。例えば、ステップS1129からS1139の処理は同時期に実行、又は、順序を入れ替えた実行が可能である。また、置換対象ページ選択部303は、ステップS1107においてキャッシュミスに伴う新規データの格納に必要なページを提供するパーティションを、例えば、次のように選択してもよい。すなわち、置換対象ページ選択部303は、ページ状態管理テーブル381を参照して各パーティションの置換優先順位404が最も高いページについて不要候補フラグ406を調べる。そして、置換対象ページ選択部303が、不要候補フラグ406がセットされているパーティションを優先的に選択するようにしてもよい。 The above processing from step S1101 to S1139 is performed, and in step S909 in FIG. 9, the operation for the replacement target page selection unit 303 to perform processing at the time of a cache miss is completed. The processing order of steps S1101 to S1139 is not necessarily the order shown in FIGS. 11A and 11B. For example, the processes in steps S1129 to S1139 can be executed at the same time or executed in a different order. In addition, the replacement target page selection unit 303 may select a partition that provides a page necessary for storing new data associated with a cache miss in step S1107 as follows, for example. That is, the replacement target page selection unit 303 refers to the page state management table 381 and checks the unnecessary candidate flag 406 for the page having the highest replacement priority 404 of each partition. Then, the replacement target page selection unit 303 may preferentially select a partition in which the unnecessary candidate flag 406 is set.
 (設定容量調整処理)
 図12は、本実施形態におけるパーティションの設定容量調整処理の手順を示したフローチャートである。本フローチャートにおいては、容量追加判定部305がパーティションの容量追加の必要性を判定する。そして、追加容量取得元選択部306が、容量追加が必要なパーティションに対して容量を提供するパーティションを決定して、パーティションの設定容量を調整する。
(Set capacity adjustment processing)
FIG. 12 is a flowchart showing the procedure of the set capacity adjustment processing of the partition in this embodiment. In this flowchart, the capacity addition determination unit 305 determines the necessity of capacity addition for the partition. Then, the additional capacity acquisition source selection unit 306 determines a partition that provides capacity for the partition that needs capacity addition, and adjusts the set capacity of the partition.
 記憶制御部220の容量追加判定部305は、置換対象ページ選択部303からキャッシュミスとなったアクセス要求のアドレスを受け取る。すると、容量追加判定部305は、ステップS1201において、次の判定を実行する。その判定とは、置換履歴管理部304が有する置換ページ履歴テーブル341の、アクセス要求を行った処理に対応するパーティションの置換履歴610~630に、アクセス要求のアドレスと一致する置換アドレス611~631が含まれているかの判定である。 The capacity addition determination unit 305 of the storage control unit 220 receives the address of the access request that caused the cache miss from the replacement target page selection unit 303. Then, the capacity addition determination unit 305 executes the following determination in step S1201. The determination is that replacement addresses 611 to 631 that match the address of the access request are included in the replacement history 610 to 630 of the partition corresponding to the process that made the access request in the replacement page history table 341 of the replacement history management unit 304. It is a determination of whether it is included.
 容量追加判定部305は、ステップS1203において、アクセス要求のアドレスと一致する置換アドレス611~631が含まれているか否かで分岐する。キャッシュミスとなったアドレスが処理に対応するパーティションの置換履歴610~630に含まれていなかった場合(ステップS1203のNo判定)、処理を終了する。 In step S1203, the capacity addition determination unit 305 branches depending on whether replacement addresses 611 to 631 that match the address of the access request are included. If the address resulting in the cache miss is not included in the replacement history 610 to 630 of the partition corresponding to the process (No determination in step S1203), the process ends.
 キャッシュミスとなったアドレスが処理に対応するパーティションの置換履歴610~630に含まれている場合(ステップS1203のYes判定)は、容量追加判定部305は、次のように動作する。すなわち、容量追加判定部305は、ステップS1205において、追加容量取得元選択部306に対してキャッシュミスが発生したアクセス要求を行ったパーティションへの1ページ分の容量の追加指示を行う。記憶制御部220の追加容量取得元選択部306は、ステップS1207において、パーティション容量設定テーブル371の各パーティションに関する解放可能容量503を参照し、解放可能な容量を持つパーティションを抽出する。 When the cache miss address is included in the replacement history 610 to 630 of the partition corresponding to the process (Yes determination in step S1203), the capacity addition determination unit 305 operates as follows. That is, in step S1205, the capacity addition determination unit 305 instructs the additional capacity acquisition source selection unit 306 to add capacity for one page to the partition that has made the access request in which a cache miss has occurred. In step S1207, the additional capacity acquisition source selection unit 306 of the storage control unit 220 refers to the releasable capacity 503 for each partition in the partition capacity setting table 371 and extracts a partition having a releasable capacity.
 追加容量取得元選択部306は、ステップS1209において、解放可能な容量を持つパーティションが抽出されたか否かで分岐する。抽出されたパーティションがない場合(ステップS1209のNo判定)、追加容量取得元選択部306は、容量追加判定部305が指示したパーティションへの容量追加を行わずに処理を終了する。 The additional capacity acquisition source selection unit 306 branches depending on whether or not a partition having a releasable capacity has been extracted in step S1209. If there is no extracted partition (No determination in step S1209), the additional capacity acquisition source selection unit 306 ends the process without adding the capacity to the partition instructed by the capacity addition determination unit 305.
 抽出されたパーティションがある場合(ステップS1209のYes判定)、追加容量取得元選択部306は、ステップS1211において、次のように動作する。すなわち、追加容量取得元選択部306は、抽出したパーティションの中から、容量追加指示が行われたパーティションに1ページ分の容量を提供する任意のパーティションを1つ選択する。そして、追加容量取得元選択部306は、ステップS1211において、パーティション容量設定テーブル371における選択されたパーティションの設定容量502及び解放可能容量503を1ページ分ずつ減算する。また、追加容量取得元選択部306は、ステップS1213において、パーティション容量設定テーブル371における、容量追加判定部305から容量の追加指示が行われたパーティションの設定容量502を1ページ分加算して処理を終了する。 If there is an extracted partition (Yes in step S1209), the additional capacity acquisition source selection unit 306 operates as follows in step S1211. That is, the additional capacity acquisition source selection unit 306 selects one arbitrary partition that provides the capacity for one page to the partition for which the capacity addition instruction has been issued, from the extracted partitions. In step S1211, the additional capacity acquisition source selection unit 306 subtracts the set capacity 502 and the releasable capacity 503 of the selected partition in the partition capacity setting table 371 by one page. In step S1213, the additional capacity acquisition source selection unit 306 adds one page of the set capacity 502 of the partition for which the capacity addition determination unit 305 has been instructed to add capacity in the partition capacity setting table 371. finish.
 記憶制御部220は、以上のステップS1201からS1213までの処理を行う。つまり、容量追加判定部305が、パーティションの容量追加の必要性を判定する。そして、追加容量取得元選択部306が、容量追加が必要なパーティションに対して容量を提供するパーティションを決定する。そして、記憶制御部220は、パーティションの設定容量を調整する動作を完了する。ステップS1201からS1213までの処理順序は、必ずしも図12に示した手順である必要はない。例えば、ステップS1211とS1213の処理は同時期に実行、又は、順序を入れ替えた実行が可能である。また、追加容量取得元選択部306は、ステップS1211において容量を提供するパーティションを、例えば、パーティション容量設定テーブル371を参照して解放可能容量503が最も多いパーティションから選択するようにしてもよい。 The storage control unit 220 performs the processing from the above steps S1201 to S1213. That is, the capacity addition determination unit 305 determines the necessity of capacity addition for the partition. Then, the additional capacity acquisition source selection unit 306 determines a partition that provides capacity to the partition that needs capacity addition. Then, the storage controller 220 completes the operation of adjusting the set capacity of the partition. The processing order from steps S1201 to S1213 is not necessarily the procedure shown in FIG. For example, the processes in steps S1211 and S1213 can be executed at the same time or executed in a different order. Further, the additional capacity acquisition source selection unit 306 may select the partition that provides the capacity in step S1211, for example, from the partition having the largest releasable capacity 503 with reference to the partition capacity setting table 371.
 なお、前述したように、パーティションの設定容量の調整は、1ページ単位でなく複数ページ単位で行われてもよい。 As described above, adjustment of the set capacity of the partition may be performed in units of multiple pages instead of in units of one page.
 (解放可能容量算出処理)
 図13は、本実施形態におけるパーティションの解放可能容量算出処理の手順を示したフローチャートである。本フローチャートにおいては、不要ページ容量解放部309が、キャッシュ上に定義された各パーティションに含まれるページから、ワーキングセットに含まれていないと推測されるページを抽出し、各パーティションの解放可能容量503を更新する。
(Releasable capacity calculation processing)
FIG. 13 is a flowchart showing the procedure of partition releasable capacity calculation processing in the present embodiment. In this flowchart, the unnecessary page capacity releasing unit 309 extracts a page estimated to be not included in the working set from the pages included in each partition defined on the cache, and the releasable capacity 503 of each partition. Update.
 記憶制御部220の不要ページ容量解放部309は、ステップS1301において、ページ状態管理テーブル381の最初のエントリに着目する。 The unnecessary page capacity releasing unit 309 of the storage control unit 220 pays attention to the first entry of the page state management table 381 in step S1301.
 不要ページ容量解放部309は、ステップS1303において、着目中のエントリにおけるアクセスフラグ405及び不要候補フラグ406を参照する。そして、不要ページ容量解放部309は、ステップS1305において、アクセスフラグ405がセットされているか否かを判定する。 In step S1303, the unnecessary page capacity releasing unit 309 refers to the access flag 405 and the unnecessary candidate flag 406 in the entry of interest. Then, the unnecessary page capacity releasing unit 309 determines whether or not the access flag 405 is set in step S1305.
 アクセスフラグ405がセットされていた場合(ステップS1305のYes判定)、不要ページ容量解放部309は、ステップS1307において、着目中のエントリのアクセスフラグ405をリセットして、ステップS1315以降の処理を実行する。一方、アクセスフラグ405がセットされていない場合(ステップS1305のNo判定)、不要ページ容量解放部309は、ステップS1309において、不要候補フラグ406がセットされているか否かを判定する。 If the access flag 405 has been set (Yes in step S1305), the unnecessary page capacity releasing unit 309 resets the access flag 405 of the entry of interest in step S1307, and executes the processing from step S1315 onward. . On the other hand, when the access flag 405 is not set (No determination in step S1305), the unnecessary page capacity releasing unit 309 determines whether or not the unnecessary candidate flag 406 is set in step S1309.
 不要候補フラグ406がセットされている場合(ステップS1309のYes判定)は、ステップS1315以降の処理を実行する。不要候補フラグ406がセットされていない場合(ステップS1309のNo判定)、不要ページ容量解放部309は、ステップS1311において、着目中のエントリの不要候補フラグ406をセットする。そして、不要ページ容量解放部309は、ステップS1313において、パーティション容量設定テーブル371の、着目中のエントリに対応するページが含まれるパーティションの解放可能容量503に1ページ分の容量を加算する。 If the unnecessary candidate flag 406 is set (Yes determination in step S1309), the processing after step S1315 is executed. If the unnecessary candidate flag 406 is not set (No determination in step S1309), the unnecessary page capacity releasing unit 309 sets the unnecessary candidate flag 406 of the entry of interest in step S1311. In step S1313, the unnecessary page capacity releasing unit 309 adds the capacity of one page to the releasable capacity 503 of the partition including the page corresponding to the entry of interest in the partition capacity setting table 371.
 不要ページ容量解放部309は、ステップS1315において、着目中のエントリがページ状態管理テーブル381の末尾のエントリか否かを判定する。現在着目中のエントリがページ状態管理テーブル381の最後のエントリである場合(ステップS1315のYes判定)、不要ページ容量解放部309は、ステップS1301に戻って処理を繰り返す。現在着目中のエントリがページ状態管理テーブル381の最後のエントリではない場合(ステップS1315のNo判定)、不要ページ容量解放部309は、ステップS1317において、次のように動作する。すなわち、不要ページ容量解放部309は、着目中のエントリをページ状態管理テーブル381における次のエントリに変更して、ステップS1303に戻り処理を繰り返す。 In step S1315, the unnecessary page capacity releasing unit 309 determines whether or not the entry of interest is the last entry in the page state management table 381. If the currently focused entry is the last entry in the page state management table 381 (Yes in step S1315), the unnecessary page capacity releasing unit 309 returns to step S1301 and repeats the process. If the currently focused entry is not the last entry in the page state management table 381 (No in step S1315), the unnecessary page capacity releasing unit 309 operates as follows in step S1317. That is, the unnecessary page capacity releasing unit 309 changes the entry of interest to the next entry in the page state management table 381, returns to step S1303, and repeats the processing.
 以上のステップS1301からS1317までの処理を行い、不要ページ容量解放部309が、キャッシュ上に定義された各パーティションに含まれるページから、ワーキングセットに含まれていないと推測されるページを抽出する。そして、不要ページ容量解放部309が、各パーティションの解放可能容量503を更新する動作を実行する。ステップS1301からS1317までの処理順序は、必ずしも図13に示した順序である必要はない。例えば、ステップS1311とS1313の各処理は、同時期に実行、又は、順序を入れ替えた実行が可能である。また、ステップS1301からS1317までのページ状態管理テーブル381の各エントリに対して処理を順番に行っていく手順は、任意の順序で各エントリに着目する手順であってもよい。加えて、各エントリに対応するページがワーキングセットに含まれない、又は、長期間アクセスされていないページであると判定する方法として、アクセスフラグ405がセットされているかを確認する代わりに、次のような手順であってもよい。その手順では、例えば、不要ページ容量解放部309が、各ページに対応するページ状態管理テーブル381のエントリに、各ページの最終アクセス時刻を記録する。そして、不要ページ容量解放部309が、現在時刻と比較して一定の時間が経過している場合にワーキングセットに含まれないページと判断して不要候補フラグ406をセットする。 The processing from the above steps S1301 to S1317 is performed, and the unnecessary page capacity releasing unit 309 extracts a page that is presumed not included in the working set from the pages included in each partition defined on the cache. Then, the unnecessary page capacity releasing unit 309 executes an operation of updating the releasable capacity 503 of each partition. The processing order from step S1301 to S1317 is not necessarily the order shown in FIG. For example, the processes in steps S1311 and S1313 can be executed at the same time or executed in a different order. Further, the procedure for sequentially performing the processing on each entry in the page state management table 381 from steps S1301 to S1317 may be a procedure for paying attention to each entry in an arbitrary order. In addition, as a method of determining that the page corresponding to each entry is not included in the working set or has not been accessed for a long time, instead of checking whether the access flag 405 is set, the following is performed: Such a procedure may be used. In the procedure, for example, the unnecessary page capacity releasing unit 309 records the last access time of each page in the entry of the page state management table 381 corresponding to each page. Then, the unnecessary page capacity releasing unit 309 determines that the page is not included in the working set and sets the unnecessary candidate flag 406 when a certain time has elapsed from the current time.
 本実施形態は、各処理に対応したキャッシュのパーティションに割り当てるべき容量を測定することなしに処理中に適正化し、記憶媒体に対するアクセス性能を高めることができる。 This embodiment can be optimized during processing without measuring the capacity to be allocated to the cache partition corresponding to each processing, and can improve the access performance to the storage medium.
 すなわち、本実施形態は、キャッシュを通した記憶媒体に対するアクセスの情報を基に、パーティションの容量削減の可否を判断し、各パーティションの容量追加が必要な場合に削減可能なパーティションのいずれか一つから容量を移動する処理を繰り返す。この処理に基づいて、本実施形態は、各処理に対応したキャッシュのパーティションに割り当てるべき容量を直接測定せずに、各パーティションに割り当てる容量の最適化を実現する。さらに、本実施形態は、ホストコンピュータで実行される処理全体の記憶媒体に対するアクセス性能を高めることが可能である。 That is, according to the present embodiment, it is determined whether or not the capacity of the partition can be reduced based on the access information to the storage medium through the cache, and any one of the partitions that can be reduced when the capacity of each partition needs to be added. Repeat the process to move the capacity. Based on this processing, this embodiment realizes optimization of the capacity allocated to each partition without directly measuring the capacity to be allocated to the cache partition corresponding to each process. Furthermore, this embodiment can improve the access performance to the storage medium of the entire process executed by the host computer.
 具体的には、第2実施形態に係る記憶制御装置は、検出されたページを直接置換対象とはせずにパーティションから解放可能な容量のみを計算しておき、実際に他のパーティションにおいて容量が不足した際に改めて置換するページを決定する。この動作に基づき、本実施形態と任意のキャッシュ置換アルゴリズムとの組合せが、実現可能になる。加えて、各パーティションの容量の割当てに変更が必要になるまでページの置換を遅らせることで、不要なページの誤検出に伴うキャッシュミスの発生を低減することが可能である。 Specifically, the storage control device according to the second embodiment calculates only the capacity that can be released from the partition without directly detecting the detected page, and the capacity in the other partition is actually calculated. Decide which page to replace when there is a shortage. Based on this operation, a combination of this embodiment and an arbitrary cache replacement algorithm can be realized. In addition, it is possible to reduce the occurrence of cache misses due to erroneous detection of unnecessary pages by delaying page replacement until it is necessary to change the capacity allocation of each partition.
 [第3実施形態]
 次に、本発明の第3実施形態に係る記憶制御装置について説明する。本実施形態に係る記憶制御装置は、上記第2実施形態と比べると、不要ページ容量解放部309におけるページ巡回周期(巡回速度)を調整する機能を有する点で異なる。本実施形態において、不要ページ検出は、不要なページを検出する周期を調整する検出周期調整機能を含む、その他の構成及び動作は、第2実施形態と同様であるため、同じ構成及び動作については同じ符号を付してその詳しい説明を省略する。
[Third Embodiment]
Next, a storage control apparatus according to the third embodiment of the present invention will be described. The storage control device according to the present embodiment is different from the second embodiment in that it has a function of adjusting the page cycle period (cyclic rate) in the unnecessary page capacity releasing unit 309. In the present embodiment, unnecessary page detection includes a detection cycle adjustment function that adjusts the cycle for detecting unnecessary pages. Since other configurations and operations are the same as those in the second embodiment, the same configurations and operations are used. The same reference numerals are assigned and detailed description thereof is omitted.
 《記憶制御装置の機能構成》
 図14は、本実施形態に係る記憶制御装置としての記憶制御部1420の機能構成を示すブロック図である。なお、図14において、図3と同様の機能構成部には同じ参照番号を付して、重複する説明は省略する。
<< Functional configuration of storage controller >>
FIG. 14 is a block diagram illustrating a functional configuration of the storage control unit 1420 as the storage control device according to the present embodiment. In FIG. 14, the same functional components as those in FIG. 3 are denoted by the same reference numerals, and redundant description is omitted.
 図14を参照すると、記憶制御部1420は、図3で表される第2実施形態と比較して、新たにページ巡回速度調整部1410を備える。 Referring to FIG. 14, the storage control unit 1420 newly includes a page rotation speed adjustment unit 1410 as compared with the second embodiment shown in FIG. 3.
 ページ巡回速度調整部1410は、不要ページ容量解放部309がページ状態管理テーブル381の各エントリを参照して、エントリに対応するページがワーキングセットに含まれているか判定する処理の速度を指示する。処理の速度は、各ページがワーキングセットに含まれるか判定する閾値に関係しており、速度を速く設定することで各エントリが一度巡回されてから再度巡回されるまでの時間が短くなり、ワーキングセットに含まれると判定されるページのアクセス頻度は高くなる。つまり、不要ページ容量解放部309において積極的にワーキングセットに含まれない、つまり、不要である可能性の高いページが、抽出される。逆に、ページ巡回速度調整部1410は、処理速度を遅く設定することで、各エントリが再度巡回されるまでの時間が長くして、不要ページ容量解放部309に基づく不要なページの抽出がより厳密に行われるように設定可能である。 The page patrol speed adjustment unit 1410 instructs the unnecessary page capacity release unit 309 to refer to each entry in the page state management table 381 and determines the processing speed for determining whether a page corresponding to the entry is included in the working set. The processing speed is related to the threshold value for determining whether each page is included in the working set. Setting the speed faster shortens the time it takes for each entry to go around once and go around again. The access frequency of pages determined to be included in the set is increased. That is, the unnecessary page capacity releasing unit 309 extracts pages that are not actively included in the working set, that is, that are highly likely to be unnecessary. On the contrary, the page rotation speed adjustment unit 1410 sets the processing speed slower, thereby increasing the time until each entry is cycled again, and the unnecessary page capacity release unit 309 extracts unnecessary pages more. It can be set to be done strictly.
 ページ巡回速度調整部1410に基づく不要ページ容量解放部309に対する処理速度の指示は、次の場合に用いることが可能である。例えば、キャッシュ内で定義されるパーティションにおいて解放可能容量503が不足しており、容量追加判定部305の判定に基づくパーティションの容量追加の指示を満たせない場合に、ページ巡回速度調整部1410は、次のように不足を解消する。すなわち、ページ巡回速度調整部1410は、処理速度を速くして不要ページを積極的に抽出し、解放可能容量503の不足を解消することができる。 The processing speed instruction for the unnecessary page capacity release unit 309 based on the page patrol speed adjustment unit 1410 can be used in the following cases. For example, when the releasable capacity 503 is insufficient in the partition defined in the cache and the instruction for adding the capacity of the partition based on the determination of the capacity addition determination unit 305 cannot be satisfied, the page circulation speed adjustment unit 1410 To solve the shortage. That is, the page patrol speed adjustment unit 1410 can increase the processing speed to positively extract unnecessary pages and solve the shortage of the releasable capacity 503.
 本実施形態は、さらに、キャッシュの容量及びアクセス頻度などを考慮して、不要ページ容量解放部309における不要なページの抽出の頻度と厳密性との調整をすることができる。 The present embodiment can further adjust the frequency and strictness of unnecessary page extraction in the unnecessary page capacity releasing unit 309 in consideration of the cache capacity and the access frequency.
 [第4実施形態]
 次に、本発明の第4実施形態に係る記憶制御装置について説明する。本実施形態に係る記憶制御装置は、上記第2実施形態及び第3実施形態と比べると、不要ページ容量解放部309におけるページ巡回周期(巡回速度)を調整するためのワーキングセットの検出時間を測定する機能を有する点で異なる。本実施形態においては、記憶制御装置は、キャッシュメモリへのアクセスにおいて発生したキャッシュヒットを、アクセスの対象であるパーティションに関連付けて検出するキャッシュヒット検出機能を備える。さらに、本実施形態においては、記憶制御装置は、キャッシュヒットの検出結果から、パーティションに対するアクセス頻度の高いページの検出に要する時間を測定する検出時間測定機能を備える。そして、本実施形態においては、記憶制御装置は、測定された時間に基づいて、不要ページの検出周期を調整する。その他の構成及び動作は、第2実施形態と同様であるため、同じ構成及び動作については同じ符号を付してその詳しい説明を省略する。
[Fourth Embodiment]
Next, a storage control apparatus according to the fourth embodiment of the present invention will be described. The storage control device according to the present embodiment measures the detection time of the working set for adjusting the page cycle period (cyclic rate) in the unnecessary page capacity release unit 309, compared with the second embodiment and the third embodiment. It differs in that it has the function to do. In the present embodiment, the storage control device has a cache hit detection function for detecting a cache hit generated in accessing the cache memory in association with the partition to be accessed. Furthermore, in this embodiment, the storage control device has a detection time measurement function that measures the time required to detect a page with a high access frequency to the partition from the detection result of the cache hit. In the present embodiment, the storage control device adjusts the unnecessary page detection cycle based on the measured time. Since other configurations and operations are the same as those in the second embodiment, the same configurations and operations are denoted by the same reference numerals, and detailed description thereof is omitted.
 《記憶制御装置の機能構成》
 図15は、本実施形態に係る記憶制御装置としての記憶制御部1520の機能構成を示すブロック図である。なお、図15において、図3又は図14と同様の機能構成部には同じ参照番号を付して、重複する説明は省略する。
<< Functional configuration of storage controller >>
FIG. 15 is a block diagram illustrating a functional configuration of the storage control unit 1520 as the storage control device according to the present embodiment. In FIG. 15, the same functional components as those in FIG. 3 or FIG. 14 are denoted by the same reference numerals, and redundant description is omitted.
 図15を参照すると、記憶制御部1520は、図14で表される第3実施形態と比較して、新たにワーキングセット検出時間測定部1511を備える。 Referring to FIG. 15, the storage control unit 1520 newly includes a working set detection time measurement unit 1511 as compared with the third embodiment shown in FIG.
 ワーキングセット検出時間測定部1511は、キャッシュヒット/ミス判定部302から各アクセス要求のキャッシュヒット又はキャッシュミスの判定結果を取得し、一定時間あたりのキャッシュヒット率を算出する。また、ワーキングセット検出時間測定部1511は、容量追加判定部305からパーティションの容量追加が必要と判定されたキャッシュミスの頻度を取得し、キャッシュミスが全アクセスにおいて発生している割合を算出する。加えて、ワーキングセット検出時間測定部1511は、算出したキャッシュヒット率と、パーティションの容量追加が必要と判定されたキャッシュミスの割合を比較する。そして、ワーキングセット検出時間測定部1511は、パーティションの容量追加が必要と判定されたキャッシュミスの割合がキャッシュヒット率に比べて一定以上となるまでに要する時間を測定する。そして、ワーキングセット検出時間測定部1511は、不要ページ容量解放部309が各ページに対応するページ状態管理テーブル381のエントリを巡回する時間間隔が、測定結果の時間となるようにページ巡回速度調整部1410を通して速度を調整する。 The working set detection time measurement unit 1511 obtains a cache hit or cache miss determination result of each access request from the cache hit / miss determination unit 302 and calculates a cache hit rate per fixed time. Further, the working set detection time measurement unit 1511 obtains the frequency of cache misses for which it is determined from the capacity addition determination unit 305 that the capacity addition of the partition is necessary, and calculates the rate at which cache misses occur in all accesses. In addition, the working set detection time measurement unit 1511 compares the calculated cache hit rate with the rate of cache misses determined to require additional partition capacity. Then, the working set detection time measuring unit 1511 measures the time required until the ratio of cache misses determined to require the addition of the partition capacity to be equal to or greater than the cache hit rate. Then, the working set detection time measurement unit 1511 includes a page rotation speed adjustment unit so that the time interval for which the unnecessary page capacity release unit 309 cycles through the entries in the page state management table 381 corresponding to each page becomes the measurement result time. Adjust speed through 1410.
 《処理速度調整処理》
 図16は、本発明の第4実施形態における処理速度調整処理の手順を示したフローチャートである。本フローチャートは、不要ページ容量解放部309の処理速度を、ページ巡回速度調整部1410を通して最適に維持する。
<Processing speed adjustment processing>
FIG. 16 is a flowchart showing a procedure of processing speed adjustment processing in the fourth embodiment of the present invention. In this flowchart, the processing speed of the unnecessary page capacity releasing unit 309 is optimally maintained through the page circulation speed adjusting unit 1410.
 記憶制御部1520のワーキングセット検出時間測定部1511は、ステップS1601において、キャッシュヒット数、キャッシュミス数、及び、パーティションの容量追加が必要と判定されたキャッシュミス数を計測するカウンタを0(ゼロ)にリセットする。ワーキングセット検出時間測定部1511は、ステップS1603において、事前に定められた一定の時間が経過するまで、キャッシュヒット/ミス判定部302から全てのアクセス要求のキャッシュヒット、及びキャッシュミスの判定結果を取得する。そして、ワーキングセット検出時間測定部1511は、その頻度を、カウンタを用いて計測する。同様に、ワーキングセット検出時間測定部1511は、ステップS1603において、容量追加判定部305からパーティションの容量追加が必要と判定された全てのキャッシュミスの情報を取得して、その頻度をカウンタで計測する。 In step S1601, the working set detection time measurement unit 1511 of the storage control unit 1520 sets a counter that measures the number of cache hits, the number of cache misses, and the number of cache misses determined to require additional partition capacity to 0 (zero). Reset to. In step S1603, the working set detection time measurement unit 1511 acquires the cache hit and cache miss determination results of all access requests from the cache hit / miss determination unit 302 until a predetermined time has elapsed. To do. Then, the working set detection time measurement unit 1511 measures the frequency using a counter. Similarly, in step S1603, the working set detection time measurement unit 1511 acquires information on all cache misses determined to require the addition of a partition capacity from the capacity addition determination unit 305, and measures the frequency using a counter. .
 ワーキングセット検出時間測定部1511は、ステップS1605において、ステップS1603で計測したキャッシュヒット、キャッシュミスの頻度からキャッシュヒット率aを算出する。また、ワーキングセット検出時間測定部1511は、ステップS1607において、ステップS1603で計測した、パーティションの容量追加が必要と判定されたキャッシュミス数が、全アクセス要求に占める割合bを算出する。 In step S1605, the working set detection time measurement unit 1511 calculates the cache hit rate a from the cache hit and cache miss frequencies measured in step S1603. In step S1607, the working set detection time measurement unit 1511 calculates the ratio b of the number of cache misses determined in step S1603 that is determined to require additional partition capacity to the total access requests.
 ワーキングセット検出時間測定部1511は、ステップS1609において、全アクセス要求に占める割合bをキャッシュヒット率aで割った値が一定の値以上か否かを判定する。全アクセス要求に占める割合bをキャッシュヒット率aで割った値が一定の値以上の場合(ステップS1609のYes判定)、ワーキングセット検出時間測定部1511は、次のように動作する。すなわち、ワーキングセット検出時間測定部1511は、キャッシュにおけるワーキングセットの検出が不十分であると判断して、ステップS1601からの処理を再実行する。 In step S1609, the working set detection time measurement unit 1511 determines whether or not a value obtained by dividing the ratio b of the total access requests by the cache hit ratio a is equal to or greater than a certain value. When the value obtained by dividing the ratio b of the total access requests by the cache hit rate a is equal to or greater than a certain value (Yes determination in step S1609), the working set detection time measurement unit 1511 operates as follows. That is, the working set detection time measurement unit 1511 determines that the detection of the working set in the cache is insufficient, and re-executes the processing from step S1601.
 全アクセス要求に占める割合bをキャッシュヒット率aで割った値が一定の値以上でない場合(ステップS1609のNo判定)、ワーキングセット検出時間測定部1511は、ステップS1611において、次のように動作する。すなわち、ワーキングセット検出時間測定部1511は、キャッシュにおけるワーキングセットの検出が十分に行われていると判断して、最初にステップS1601の処理を開始してからの経過時間を算出する。 When the value obtained by dividing the ratio b of the total access requests by the cache hit rate a is not equal to or greater than a certain value (No determination in step S1609), the working set detection time measurement unit 1511 operates as follows in step S1611. . In other words, the working set detection time measurement unit 1511 determines that the working set is sufficiently detected in the cache, and calculates the elapsed time since the start of the process of step S1601.
 ワーキングセット検出時間測定部1511は、ステップS1613において、次のようなページ巡回速度を計算する。そのページ巡回速度とは、不要ページ容量解放部309がキャッシュに含まれるページに対応するページ状態管理テーブル381の全エントリを巡回する時間が、ステップS1611で算出した時間と等しくなるようなページ巡回速度である。具体的には、ページ状態管理テーブル381のエントリ数をステップS1611において算出した時間で割ることで、一定時間あたりに巡回するべきページ状態管理テーブル381のエントリ数が算出される。 In step S1613, the working set detection time measurement unit 1511 calculates the following page patrol speed. The page circulation speed is a page circulation speed at which the unnecessary page capacity releasing unit 309 circulates all entries in the page state management table 381 corresponding to the pages included in the cache is equal to the time calculated in step S1611. It is. Specifically, the number of entries in the page state management table 381 to be circulated per certain time is calculated by dividing the number of entries in the page state management table 381 by the time calculated in step S1611.
 ワーキングセット検出時間測定部1511は、ステップS1615において、ページ巡回速度調整部1410に対して、ステップS1613で算出されたエントリ数を不要ページ容量解放部309の処理速度として設定して処理を終了する。 In step S1615, the working set detection time measuring unit 1511 sets the number of entries calculated in step S1613 as the processing speed of the unnecessary page capacity releasing unit 309, and ends the processing.
 以上のステップS1601からS1615までの処理を行い、ワーキングセット検出時間測定部1511は、不要ページ容量解放部309の処理速度を、ページ巡回速度調整部1410を通して最適に維持する動作を完了する。ステップS1601からS1615までの処理順序は、必ずしも図16に示した順序である必要はない。例えば、ステップS1605とS1607の各処理は同時期に実行、又は、順序を入れ替えた実行が可能である。 The processing from step S1601 to S1615 is performed, and the working set detection time measurement unit 1511 completes the operation of maintaining the processing speed of the unnecessary page capacity release unit 309 through the page cyclic speed adjustment unit 1410. The processing order from steps S1601 to S1615 is not necessarily the order shown in FIG. For example, the processes in steps S1605 and S1607 can be executed at the same time, or can be executed with the order changed.
 本実施形態は、実際の動作におけるキャッシュヒットの状況を参照して、ページ巡回速度を調整するので、キャッシュ及び記憶媒体の使用状況に応じた適正化ができ、記憶媒体に対するアクセス性能をより高めることができる。 In the present embodiment, the page patrol speed is adjusted by referring to the cache hit status in the actual operation, so that it can be optimized according to the usage status of the cache and the storage medium, and the access performance to the storage medium is further improved. Can do.
 [第5実施形態]
 次に、本発明の第5実施形態に係る記憶制御装置について説明する。本実施形態に係る記憶制御装置は、上記第2実施形態乃至第4実施形態と比べると、記憶制御装置としての記憶制御部がホストコンピュータ内ではなく、ネットワークを介した外部に独立して、又は、記憶媒体に含まれる点で異なる。その他の構成及び動作は、第2実施形態と同様であるため、同じ構成及び動作については同じ符号を付してその詳しい説明を省略する。
[Fifth Embodiment]
Next, a storage control apparatus according to the fifth embodiment of the present invention will be described. Compared with the second to fourth embodiments, the storage control device according to the present embodiment has a storage control unit as a storage control device that is not in the host computer but externally via a network, or However, they are different in that they are included in the storage medium. Since other configurations and operations are the same as those in the second embodiment, the same configurations and operations are denoted by the same reference numerals, and detailed description thereof is omitted.
 《情報処理システム》
 図17は、本実施形態に係る記憶制御装置としての記憶制御部1720、及び、1742を含む情報処理システム1700の構成を示すブロック図である。なお、図17において、図2と同様の構成要素には同じ参照番号を付して、重複する説明は省略する。
《Information processing system》
FIG. 17 is a block diagram illustrating a configuration of an information processing system 1700 including a storage control unit 1720 and 1742 as a storage control device according to the present embodiment. In FIG. 17, the same components as those in FIG.
 情報処理システム1700は、記憶制御部を有しないホストコンピュータ1710と、キャッシュ221を有する独立した記憶制御部1720と、キャッシュ221を有する記憶制御部1742を含む記憶媒体1740と、を含む。情報処理システム1700において、ホストコンピュータ1710と、記憶制御部1720と、記憶制御部1742を含む記憶媒体1740とが、ネットワーク250を介して接続されている。 The information processing system 1700 includes a host computer 1710 having no storage control unit, an independent storage control unit 1720 having a cache 221, and a storage medium 1740 including a storage control unit 1742 having a cache 221. In the information processing system 1700, a host computer 1710, a storage control unit 1720, and a storage medium 1740 including a storage control unit 1742 are connected via a network 250.
 本実施形態は、第2乃至第4実施形態のようにホストコンピュータにおける処理に限定されず、キャッシュをホストコンピュータ外で制御することで、ホストコンピュータの負荷を減らし、記憶媒体へのアクセス性能を向上できる。 The present embodiment is not limited to processing in the host computer as in the second to fourth embodiments, and the cache is controlled outside the host computer, thereby reducing the load on the host computer and improving the access performance to the storage medium. it can.
 [他の実施形態]
 以上、実施形態を参照して本発明を説明したが、本発明は上記実施形態に限定されるものではない。本発明の構成及び詳細には、本発明のスコープ内で当業者が理解し得る様々な変更をすることができる。また、それぞれの実施形態に含まれる別々の特徴を如何様に組み合わせたシステム又は装置も、本発明の範疇に含まれる。
[Other Embodiments]
The present invention has been described above with reference to the embodiments, but the present invention is not limited to the above embodiments. Various changes that can be understood by those skilled in the art can be made to the configuration and details of the present invention within the scope of the present invention. In addition, a system or an apparatus in which different features included in each embodiment are combined in any way is also included in the scope of the present invention.
 また、本発明は、複数の機器から構成されるシステムに適用されてもよいし、単体の装置に適用されてもよい。さらに、本発明は、実施形態の機能を実現する情報処理プログラムが、システム又は装置に、直接又は遠隔から供給される場合にも適用可能である。したがって、本発明の機能をコンピュータで実現するために、コンピュータにインストールされるプログラム、そのプログラムを格納した媒体、又はそのプログラムをダウンロードさせるWWW(World Wide Web)サーバも、本発明の範疇に含まれる。特に、少なくとも、上述した実施形態に含まれる処理をコンピュータに実行させるプログラムを格納した非一時的コンピュータ可読媒体(non-transitory computer readable medium)は、本発明の範疇に含まれる。 Further, the present invention may be applied to a system composed of a plurality of devices, or may be applied to a single device. Furthermore, the present invention is also applicable when an information processing program that implements the functions of the embodiments is supplied directly or remotely to a system or apparatus. Therefore, a program installed in a computer, a medium storing the program, or a WWW (World Wide Web) server that downloads the program in order to realize the functions of the present invention on a computer is also included in the scope of the present invention. . In particular, at least a non-transitory computer-readable medium that stores a program that causes a computer to execute the processes included in the above-described embodiments is included in the scope of the present invention.
 [実施形態の概要]
 図面を参照して、本発明における実施形態の概要を説明する。
 図18は、本発明における実施形態の概要である記憶制御装置800の構成の一例を示す図である。
 記憶制御装置800は、削減候補設定部810と、容量制御部820と、を備える。削減候補設定部810が、キャッシュメモリにおいて、所定時間を超えてアクセスされていないページ、又は、アクセス頻度が所定値を下回るページを含むパーティションを、容量を削減可能なパーティションと設定する。そして、キャッシュミスが発生したページが、キャッシュメモリから下位の記憶媒体に追い出されたページの履歴に含まれている場合、容量制御部820は、次のように動作する。すなわち、容量制御部820が、容量を削減可能なパーティションの容量を削減してキャッシュミスが発生したパーティションの容量に追加する。
 このように構成された記憶制御装置800は、記憶制御装置100と同様の効果を奏する。その理由は、記憶制御装置800の各構成が、記憶制御装置100の構成と同様に動作するためである。
 なお、記憶制御装置800は、本発明における実施形態の最小構成である。
[Outline of Embodiment]
An outline of an embodiment of the present invention will be described with reference to the drawings.
FIG. 18 is a diagram showing an example of the configuration of the storage control device 800 that is an outline of the embodiment of the present invention.
The storage control device 800 includes a reduction candidate setting unit 810 and a capacity control unit 820. The reduction candidate setting unit 810 sets, in the cache memory, a partition that includes a page that has not been accessed for a predetermined time or includes a page whose access frequency is lower than a predetermined value as a partition whose capacity can be reduced. When the page in which the cache miss has occurred is included in the history of the page that has been evicted from the cache memory to the lower storage medium, the capacity control unit 820 operates as follows. That is, the capacity control unit 820 reduces the capacity of the partition whose capacity can be reduced and adds it to the capacity of the partition where the cache miss has occurred.
The storage control device 800 configured as described above has the same effects as the storage control device 100. The reason is that each configuration of the storage control device 800 operates in the same manner as the configuration of the storage control device 100.
The storage control device 800 is the minimum configuration of the embodiment of the present invention.
 上記の実施形態の一部又は全部は、以下の付記のようにも記載されうるが、以下には限られない。
 (付記1)
 キャッシュメモリにおいて、所定時間を超えてアクセスされていないページ、又は、アクセス頻度が所定値を下回るページを含むパーティションを、容量を削減可能なパーティションと設定する削減候補設定手段と、
 キャッシュミスが発生したページが、キャッシュメモリから下位の記憶媒体に追い出されたページの履歴に含まれている場合、容量を削減可能なパーティションの容量を削減してキャッシュミスが発生したパーティションの容量に追加する容量制御手段と、
 を備える記憶制御装置。
 (付記2)
 削減候補設定手段は、
  所定時間を周期として、その間にアクセスされてないページを不要なページとして検出する不要ページ検出手段を有し、
  不要なページを含むパーティションを、容量を削減可能なパーティションと設定する、付記1に記載の記憶制御装置。
 (付記3)
 不要ページ検出手段は、クロックアルゴリズムを用いて、所定時間にアクセスされてないページを検出する、付記2に記載の記憶制御装置。
 (付記4)
 不要ページ検出手段は、不要なページを検出する周期を調整する検出周期調整手段を含む、付記2又は3に記載の記憶制御装置。
 (付記5)
 キャッシュメモリへのアクセスにおいて発生したキャッシュヒットを、アクセスの対象であるパーティションに関連付けて検出するキャッシュヒット検出手段と、
 キャッシュヒットの検出結果から、パーティションに対するアクセス頻度の高いページの検出に要する時間を測定する検出時間測定手段と、をさらに備え、
 検出周期調整手段は、測定された時間を基づいて、不要なページの検出周期を調整する、付記4に記載の記憶制御装置。
 (付記6)
 容量制御手段は、容量を削減可能なパーティションが複数ある場合、下位の記憶媒体に追い出される可能性の最も高いページを含むパーティションを、容量削減をするパーティションとする、付記1乃至5のいずれか1項に記載の記憶制御装置。
 (付記7)
 容量制御手段は、容量削減をするパーティションにおいて、下位の記憶媒体に追い出される可能性の最も高いページを削減する、付記1乃至6のいずれか1項に記載の記憶制御装置。
 (付記8)
 キャッシュメモリにおいて、所定時間を超えてアクセスされていないページ、又は、アクセス頻度が所定値を下回るページを含むパーティションを、容量を削減可能なパーティションと設定する削減候補を設定し、
 キャッシュミスが発生したページが、キャッシュメモリから下位の記憶媒体に追い出されたページの履歴に含まれている場合、容量を削減可能なパーティションの容量を削減してキャッシュミスが発生したパーティションの容量に追加する容量を制御する
 記憶制御方法。
 (付記9)
 キャッシュメモリにおいて、所定時間を超えてアクセスされていないページ、又は、アクセス頻度が所定値を下回るページを含むパーティションを、容量を削減可能なパーティションと設定する削減候補を設定する処理と、
 キャッシュミスが発生したページが、キャッシュメモリから下位の記憶媒体に追い出されたページの履歴に含まれている場合、容量を削減可能なパーティションの容量を削減してキャッシュミスが発生したパーティションの容量に追加する容量を制御する処理と、
 をコンピュータに実行させる記憶制御プログラムをコンピュータ読み取り可能に記録する不揮発性記録媒体。
 (付記10)
 記憶媒体と、
 複数の処理からのアクセス要求に基づいて、記憶媒体へのアクセスを指示するアクセス手段と、
 キャッシュメモリを有し、アクセス手段の記憶媒体へのアクセスを制御する記憶制御手段と、
 を備えた情報処理システムであって、
 記憶制御手段は、
  キャッシュメモリにおいて、所定時間を超えてアクセスされていないページ、又は、アクセス頻度が所定値を下回るページを含むパーティションを、容量を削減可能なパーティションと設定する削減候補設定手段と、
  キャッシュミスが発生したページが、キャッシュメモリから下位の記憶媒体に追い出されたページの履歴に含まれている場合、容量を削減可能なパーティションの容量を削減してキャッシュミスが発生したパーティションの容量に追加する容量制御手段と、
 を備える情報処理システム。
 (付記11)
 複数の処理の各処理に対して、キャッシュメモリ内の少なくとも1つのページを含むパーティションを割り当て、
 キャッシュメモリにおいて、所定時間を超えてアクセスされていないページ、又は、アクセス頻度が所定値を下回るページを含むパーティションを、容量を削減可能なパーティションと設定する削減の候補を設定し、
 キャッシュミスが発生したページが、キャッシュメモリから下位の記憶媒体に追い出されたページの履歴に含まれている場合、容量を削減可能なパーティションの容量を削減してキャッシュミスが発生したパーティションの容量に追加する容量を制御し、
 削減の候補の設定をバックグラウンドで実行しつつ、容量の制御を繰り返し、各処理に対するキャッシュ容量の配分を管理する、
 キャッシュ容量配分方法。
A part or all of the above-described embodiment can be described as in the following supplementary notes, but is not limited thereto.
(Appendix 1)
In the cache memory, a reduction candidate setting means for setting a partition that includes a page that has not been accessed for a predetermined time or a page whose access frequency is lower than a predetermined value as a partition whose capacity can be reduced;
If the page where a cache miss occurred is included in the history of pages evicted from the cache memory to a lower storage medium, the capacity of the partition where the cache miss occurred can be reduced by reducing the capacity of the partition where the capacity can be reduced. Capacity control means to be added;
A storage control device comprising:
(Appendix 2)
Reduction candidate setting means
It has unnecessary page detection means for detecting a page that has not been accessed as an unnecessary page with a predetermined time as a cycle,
The storage control device according to appendix 1, wherein a partition including an unnecessary page is set as a partition whose capacity can be reduced.
(Appendix 3)
The storage control device according to appendix 2, wherein the unnecessary page detection means detects a page that has not been accessed for a predetermined time by using a clock algorithm.
(Appendix 4)
The storage control device according to appendix 2 or 3, wherein the unnecessary page detection unit includes a detection cycle adjustment unit that adjusts a cycle for detecting an unnecessary page.
(Appendix 5)
A cache hit detection means for detecting a cache hit generated in accessing the cache memory in association with the partition to be accessed;
A detection time measuring means for measuring a time required for detecting a page having a high access frequency to the partition from a detection result of the cache hit, and further comprising:
The storage control device according to appendix 4, wherein the detection cycle adjustment unit adjusts the detection cycle of unnecessary pages based on the measured time.
(Appendix 6)
If the capacity control means has a plurality of partitions whose capacity can be reduced, any one of appendices 1 to 5 in which a partition including a page that is most likely to be evicted to a lower storage medium is a partition whose capacity is reduced. The storage control device according to item.
(Appendix 7)
The storage control device according to any one of appendices 1 to 6, wherein the capacity control means reduces a page most likely to be evicted to a lower storage medium in a partition whose capacity is to be reduced.
(Appendix 8)
In the cache memory, set a reduction candidate to set a partition that includes a page that has not been accessed for a predetermined time or a page whose access frequency is lower than a predetermined value as a partition whose capacity can be reduced,
If the page where a cache miss occurred is included in the history of pages evicted from the cache memory to a lower storage medium, the capacity of the partition where the cache miss occurred can be reduced by reducing the capacity of the partition where the capacity can be reduced. A storage control method that controls the capacity to be added.
(Appendix 9)
In the cache memory, a process of setting a reduction candidate that sets a page that has not been accessed for a predetermined time or a partition that includes a page whose access frequency is lower than a predetermined value as a partition whose capacity can be reduced;
If the page where a cache miss occurred is included in the history of pages evicted from the cache memory to a lower storage medium, the capacity of the partition where the cache miss occurred can be reduced by reducing the capacity of the partition where the capacity can be reduced. A process to control the capacity to be added;
A non-volatile recording medium for recording a computer-readable storage control program.
(Appendix 10)
A storage medium;
An access means for instructing access to the storage medium based on access requests from a plurality of processes;
A storage control unit that has a cache memory and controls access to the storage medium;
An information processing system comprising:
Memory control means
In the cache memory, a reduction candidate setting means for setting a partition that includes a page that has not been accessed for a predetermined time or a page whose access frequency is lower than a predetermined value as a partition whose capacity can be reduced;
If the page where a cache miss occurred is included in the history of pages evicted from the cache memory to a lower storage medium, the capacity of the partition where the cache miss occurred can be reduced by reducing the capacity of the partition where the capacity can be reduced. Capacity control means to be added;
An information processing system comprising:
(Appendix 11)
Assigning a partition including at least one page in the cache memory to each of the plurality of processes;
In the cache memory, set a reduction candidate to set a partition including a page that has not been accessed for a predetermined time or a page whose access frequency is lower than a predetermined value as a partition whose capacity can be reduced,
If the page where a cache miss occurred is included in the history of pages evicted from the cache memory to a lower storage medium, the capacity of the partition where the cache miss occurred can be reduced by reducing the capacity of the partition where the capacity can be reduced. Control the capacity to add,
While performing the setting of reduction candidates in the background, repeatedly controlling the capacity and managing the distribution of the cache capacity for each process,
Cache capacity allocation method.
 以上、実施形態(及び実施例)を参照して本願発明を説明したが、本願発明は上記実施形態(及び実施例)に限定されるものではない。本願発明の構成や詳細には、本願発明のスコープ内で当業者が理解し得る様々な変更をすることができる。 As mentioned above, although this invention was demonstrated with reference to embodiment (and an Example), this invention is not limited to the said embodiment (and Example). Various changes that can be understood by those skilled in the art can be made to the configuration and details of the present invention within the scope of the present invention.
 この出願は、2016年 7月 8日に出願された日本出願特願2016-136338を基礎とする優先権を主張し、その開示の全てをここに取り込む。 This application claims priority based on Japanese Patent Application No. 2016-136338 filed on July 8, 2016, the entire disclosure of which is incorporated herein.
100 記憶制御装置
101 削減候補設定部
102 容量制御部
111 パーティション
121 パーティション
122 ページ
123 履歴
124 パーティション
130 キャッシュメモリ
140 記憶媒体
200 情報処理システム
210 ホストコンピュータ
211 OS
212 スレッド
220 記憶制御部
221 キャッシュ
240 記憶媒体
241 媒体本体
250 ネットワーク
301 アクセス制御部
302 キャッシュヒット/ミス判定部
303 置換対象ページ選択部
304 置換履歴管理部
305 容量追加判定部
306 追加容量取得元選択部
307 パーティション容量管理部
308 ページ状態管理部
309 不要ページ容量解放部
341 置換ページ履歴テーブル
371 パーティション容量設定テーブル
381 ページ状態管理テーブル
401 使用フラグ
402 アドレス
403 パーティション番号
404 置換優先順位
405 アクセスフラグ
406 不要候補フラグ
407 更新フラグ
501 パーティション番号
502 設定容量
503 解放可能容量
504 実容量
610 置換履歴
611 置換アドレス
630 置換履歴
631 置換アドレス
710 CPU
720 ROM
730 通信制御部
740 RAM
741 アクセスアドレス
742 キャッシュヒットアドレス
743 キャッシュミスアドレス
744 容量追加パーティション
745 容量削減パーティション
746 アクセス情報
747 入出力データ
748 送受信データ
749 アプリケーション使用領域
750 ストレージ
751 解放容量算出アルゴリズム
752 ページ巡回周期(巡回速度)
753 記憶制御プログラム
754 アクセス処理モジュール
755 キャッシュヒット制御モジュール
756 キャッシュミス制御モジュール
757 設定容量制御モジュール
758 解放容量算出モジュール
760 入出力インタフェース
761 表示部
762 操作部
800 記憶制御装置
810 削減候補設定部
820 容量制御部
1410 ページ巡回速度調整部
1420 記憶制御部
1511 ワーキングセット検出時間測定部
1520 記憶制御部
1700 情報処理システム
1710 ホストコンピュータ
1720 記憶制御部
1740 記憶媒体
1742 記憶制御部
100 Storage Controller 101 Reduction Candidate Setting Unit 102 Capacity Control Unit 111 Partition 121 Partition 122 Page 123 History 124 Partition 130 Cache Memory 140 Storage Medium 200 Information Processing System 210 Host Computer 211 OS
212 Thread 220 Storage control unit 221 Cache 240 Storage medium 241 Medium body 250 Network 301 Access control unit 302 Cache hit / miss determination unit 303 Replacement target page selection unit 304 Replacement history management unit 305 Capacity addition determination unit 306 Additional capacity acquisition source selection unit 307 Partition capacity management unit 308 Page state management unit 309 Unnecessary page capacity release unit 341 Replacement page history table 371 Partition capacity setting table 381 Page state management table 401 Use flag 402 Address 403 Partition number 404 Replacement priority 405 Access flag 406 Unnecessary candidate flag 407 Update flag 501 Partition number 502 Set capacity 503 Releasable capacity 504 Real capacity 610 Replacement history 611 Replacement address 630 History 631 replacement address 710 CPU
720 ROM
730 Communication control unit 740 RAM
741 Access address 742 Cache hit address 743 Cache miss address 744 Capacity addition partition 745 Capacity reduction partition 746 Access information 747 Input / output data 748 Transmission / reception data 749 Application usage area 750 Storage 751 Release capacity calculation algorithm 752 Page cycle period (cyclic rate)
753 Storage control program 754 Access processing module 755 Cache hit control module 756 Cache miss control module 757 Set capacity control module 758 Release capacity calculation module 760 Input / output interface 761 Display unit 762 Operation unit 800 Storage controller 810 Reduction candidate setting unit 820 Capacity control Unit 1410 page patrol speed adjustment unit 1420 storage control unit 1511 working set detection time measurement unit 1520 storage control unit 1700 information processing system 1710 host computer 1720 storage control unit 1740 storage medium 1742 storage control unit

Claims (11)

  1.  キャッシュメモリにおいて、所定時間を超えてアクセスされていないページ、又は、アクセス頻度が所定値を下回るページを含むパーティションを、容量を削減可能なパーティションと設定する削減候補設定手段と、
     キャッシュミスが発生したページが、前記キャッシュメモリから下位の記憶媒体に追い出されたページの履歴に含まれている場合、前記容量を削減可能なパーティションの容量を削減して前記キャッシュミスが発生したパーティションの容量に追加する容量制御手段と、
     を備える記憶制御装置。
    In the cache memory, a reduction candidate setting means for setting a partition that includes a page that has not been accessed for a predetermined time or a page whose access frequency is lower than a predetermined value as a partition whose capacity can be reduced;
    When the page in which the cache miss has occurred is included in the history of the page that has been evicted from the cache memory to a lower storage medium, the partition in which the cache miss has occurred by reducing the capacity of the partition that can reduce the capacity Capacity control means to be added to the capacity of
    A storage control device comprising:
  2.  前記削減候補設定手段は、
      前記所定時間を周期として、その間にアクセスされてないページを不要なページとして検出する不要ページ検出手段を有し、
      前記不要なページを含むパーティションを、前記容量を削減可能なパーティションと設定する、請求項1に記載の記憶制御装置。
    The reduction candidate setting means includes:
    An unnecessary page detection unit that detects a page that has not been accessed as an unnecessary page with the predetermined time as a cycle,
    The storage control device according to claim 1, wherein a partition including the unnecessary page is set as a partition capable of reducing the capacity.
  3.  前記不要ページ検出手段は、クロックアルゴリズムを用いて、前記所定時間にアクセスされてないページを検出する、請求項2に記載の記憶制御装置。 3. The storage control device according to claim 2, wherein the unnecessary page detection means detects a page that has not been accessed for the predetermined time by using a clock algorithm.
  4.  前記不要ページ検出手段は、前記不要なページを検出する前記周期を調整する検出周期調整手段を含む、請求項2又は3に記載の記憶制御装置。 The storage control device according to claim 2 or 3, wherein the unnecessary page detecting means includes a detection cycle adjusting means for adjusting the cycle for detecting the unnecessary page.
  5.  前記キャッシュメモリへのアクセスにおいて発生したキャッシュヒットを、アクセスの対象であるパーティションに関連付けて検出するキャッシュヒット検出手段と、
     前記キャッシュヒットの検出結果から、パーティションに対するアクセス頻度の高いページの検出に要する時間を測定する検出時間測定手段と、をさらに備え、
     前記検出周期調整手段は、前記測定された時間を基づいて、前記不要なページの検出周期を調整する、請求項4に記載の記憶制御装置。
    A cache hit detecting means for detecting a cache hit generated in accessing the cache memory in association with a partition to be accessed;
    A detection time measuring means for measuring a time required for detecting a page having a high access frequency to the partition from the detection result of the cache hit, and further comprising:
    The storage control device according to claim 4, wherein the detection cycle adjustment unit adjusts a detection cycle of the unnecessary page based on the measured time.
  6.  前記容量制御手段は、前記容量を削減可能なパーティションが複数ある場合、下位の記憶媒体に追い出される可能性の最も高いページを含むパーティションを、容量削減をするパーティションとする、請求項1乃至5のいずれか1項に記載の記憶制御装置。 6. The capacity control unit according to claim 1, wherein when there are a plurality of partitions capable of reducing the capacity, a partition including a page most likely to be evicted to a lower storage medium is set as a partition whose capacity is reduced. The storage control device according to any one of the above.
  7.  前記容量制御手段は、容量削減をするパーティションにおいて、下位の記憶媒体に追い出される可能性の最も高いページを削減する、請求項1乃至6のいずれか1項に記載の記憶制御装置。 The storage control device according to any one of claims 1 to 6, wherein the capacity control means reduces a page most likely to be evicted to a lower storage medium in a partition whose capacity is to be reduced.
  8.  キャッシュメモリにおいて、所定時間を超えてアクセスされていないページ、又は、アクセス頻度が所定値を下回るページを含むパーティションを、容量を削減可能なパーティションと設定する削減候補を設定し、
     キャッシュミスが発生したページが、前記キャッシュメモリから下位の記憶媒体に追い出されたページの履歴に含まれている場合、前記容量を削減可能なパーティションの容量を削減して前記キャッシュミスが発生したパーティションの容量に追加する容量を制御する
     記憶制御方法。
    In the cache memory, set a reduction candidate to set a partition that includes a page that has not been accessed for a predetermined time or a page whose access frequency is lower than a predetermined value as a partition whose capacity can be reduced,
    When the page in which the cache miss has occurred is included in the history of the page that has been evicted from the cache memory to a lower storage medium, the partition in which the cache miss has occurred by reducing the capacity of the partition that can reduce the capacity A storage control method for controlling the capacity to be added to the capacity.
  9.  キャッシュメモリにおいて、所定時間を超えてアクセスされていないページ、又は、アクセス頻度が所定値を下回るページを含むパーティションを、容量を削減可能なパーティションと設定する削減候補を設定する処理と、
     キャッシュミスが発生したページが、前記キャッシュメモリから下位の記憶媒体に追い出されたページの履歴に含まれている場合、前記容量を削減可能なパーティションの容量を削減して前記キャッシュミスが発生したパーティションの容量に追加する容量を制御する処理と、
     をコンピュータに実行させる記憶制御プログラムをコンピュータ読み取り可能に記録する不揮発性記録媒体。
    In the cache memory, a process of setting a reduction candidate that sets a page that has not been accessed for a predetermined time or a partition that includes a page whose access frequency is lower than a predetermined value as a partition whose capacity can be reduced;
    When the page in which the cache miss has occurred is included in the history of the page that has been evicted from the cache memory to a lower storage medium, the partition in which the cache miss has occurred by reducing the capacity of the partition that can reduce the capacity Processing to control the capacity to be added to the capacity of
    A non-volatile recording medium for recording a computer-readable storage control program.
  10.  記憶媒体と、
     複数の処理からのアクセス要求に基づいて、前記記憶媒体へのアクセスを指示するアクセス手段と、
     キャッシュメモリを有し、前記アクセス手段の前記記憶媒体へのアクセスを制御する記憶制御手段と、
     を備えた情報処理システムであって、
     前記記憶制御手段は、
      前記キャッシュメモリにおいて、所定時間を超えてアクセスされていないページ、又は、アクセス頻度が所定値を下回るページを含むパーティションを、容量を削減可能なパーティションと設定する削減候補設定手段と、
      キャッシュミスが発生したページが、前記キャッシュメモリから下位の前記記憶媒体に追い出されたページの履歴に含まれている場合、前記容量を削減可能なパーティションの容量を削減して前記キャッシュミスが発生したパーティションの容量に追加する容量制御手段と、
     を備える情報処理システム。
    A storage medium;
    Access means for instructing access to the storage medium based on access requests from a plurality of processes;
    Storage control means for controlling access to the storage medium of the access means, having a cache memory;
    An information processing system comprising:
    The storage control means
    In the cache memory, a reduction candidate setting means for setting a page that has not been accessed for a predetermined time or a partition including a page whose access frequency is lower than a predetermined value as a partition whose capacity can be reduced;
    When the page in which a cache miss has occurred is included in the history of pages that have been evicted from the cache memory to the lower storage medium, the cache miss has occurred by reducing the capacity of the partition capable of reducing the capacity. Capacity control means to add to the capacity of the partition;
    An information processing system comprising:
  11.  複数の処理の各処理に対して、キャッシュメモリ内の少なくとも1つのページを含むパーティションを割り当て、
     前記キャッシュメモリにおいて、所定時間を超えてアクセスされていないページ、又は、アクセス頻度が所定値を下回るページを含むパーティションを、容量を削減可能なパーティションと設定する削減の候補を設定し、
     キャッシュミスが発生したページが、前記キャッシュメモリから下位の記憶媒体に追い出されたページの履歴に含まれている場合、前記容量を削減可能なパーティションの容量を削減して前記キャッシュミスが発生したパーティションの容量に追加する容量を制御し、
     削減の候補の設定をバックグラウンドで実行しつつ、前記容量の制御を繰り返し、前記各処理に対するキャッシュ容量の配分を管理する、
     キャッシュ容量配分方法。
    Assigning a partition including at least one page in the cache memory to each of the plurality of processes;
    In the cache memory, set a reduction candidate to set a partition that includes a page that has not been accessed for a predetermined time or a page whose access frequency is lower than a predetermined value as a partition whose capacity can be reduced,
    When the page in which the cache miss has occurred is included in the history of the page that has been evicted from the cache memory to a lower storage medium, the partition in which the cache miss has occurred by reducing the capacity of the partition that can reduce the capacity Control the capacity to add to the capacity of
    While performing the setting of reduction candidates in the background, the control of the capacity is repeated, and the distribution of the cache capacity for each process is managed.
    Cache capacity allocation method.
PCT/JP2017/024617 2016-07-08 2017-07-05 Information processing system, cache allocation method, memory control device, memory control method, and recording medium WO2018008676A1 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2016136338A JP2019168733A (en) 2016-07-08 2016-07-08 Information processing system, cache capacity distribution method, storage control apparatus, and method and program thereof
JP2016-136338 2016-07-08

Publications (1)

Publication Number Publication Date
WO2018008676A1 true WO2018008676A1 (en) 2018-01-11

Family

ID=60912824

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2017/024617 WO2018008676A1 (en) 2016-07-08 2017-07-05 Information processing system, cache allocation method, memory control device, memory control method, and recording medium

Country Status (2)

Country Link
JP (1) JP2019168733A (en)
WO (1) WO2018008676A1 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112737975A (en) * 2020-12-25 2021-04-30 珠海西山居移动游戏科技有限公司 Buffer capacity adjusting method and device

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20230195639A1 (en) * 2021-12-21 2023-06-22 Advanced Micro Devices, Inc. Stochastic optimization of surface cacheability in parallel processing units

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007041904A (en) * 2005-08-04 2007-02-15 Hitachi Ltd Storage device, disk cache control method and capacity allocating method of disk cache
JP2009528610A (en) * 2006-03-02 2009-08-06 エヌエックスピー ビー ヴィ Method and apparatus for dynamically resizing cache partition based on task execution phase
WO2014142337A1 (en) * 2013-03-15 2014-09-18 日本電気株式会社 Storage device and method, and program
JP2014175009A (en) * 2013-03-11 2014-09-22 Lsi Corp System, method and computer-readable medium for dynamic cache sharing in flash-based caching solution supporting virtual machines

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007041904A (en) * 2005-08-04 2007-02-15 Hitachi Ltd Storage device, disk cache control method and capacity allocating method of disk cache
JP2009528610A (en) * 2006-03-02 2009-08-06 エヌエックスピー ビー ヴィ Method and apparatus for dynamically resizing cache partition based on task execution phase
JP2014175009A (en) * 2013-03-11 2014-09-22 Lsi Corp System, method and computer-readable medium for dynamic cache sharing in flash-based caching solution supporting virtual machines
WO2014142337A1 (en) * 2013-03-15 2014-09-18 日本電気株式会社 Storage device and method, and program

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112737975A (en) * 2020-12-25 2021-04-30 珠海西山居移动游戏科技有限公司 Buffer capacity adjusting method and device
CN112737975B (en) * 2020-12-25 2023-05-09 珠海西山居数字科技有限公司 Buffer capacity adjustment method and device

Also Published As

Publication number Publication date
JP2019168733A (en) 2019-10-03

Similar Documents

Publication Publication Date Title
EP3210121B1 (en) Cache optimization technique for large working data sets
US8688897B2 (en) Cache memory management in a flash cache architecture
US9648081B2 (en) Network-attached memory
US10296255B1 (en) Data migration techniques
US9489239B2 (en) Systems and methods to manage tiered cache data storage
WO2016175028A1 (en) Information processing system, storage control device, storage control method, and storage control program
JP6691669B2 (en) Information processing system, storage control device, storage control method, and storage control program
WO2015015550A1 (en) Computer system and control method
JP6106028B2 (en) Server and cache control method
JP2013511081A (en) Method, system, and computer program for destaging data from a cache to each of a plurality of storage devices via a device adapter
JP2019525330A (en) Cache transfer policy selection for prefetch data based on cache test area
US10176098B2 (en) Method and apparatus for data cache in converged system
WO2017006675A1 (en) Information processing system, storage control device, storage control method, and storage control program
US10853252B2 (en) Performance of read operations by coordinating read cache management and auto-tiering
US20170220476A1 (en) Systems and Methods for Data Caching in Storage Array Systems
WO2018008676A1 (en) Information processing system, cache allocation method, memory control device, memory control method, and recording medium
WO2016002325A1 (en) Information processing system, information processing method, storage control device, and control method and control program for storage control device
KR101456370B1 (en) Method and device for management of storage
JP2007102314A (en) Disk cache-control device
JP6353981B2 (en) Storage system and storage control method
JP7011156B2 (en) Storage controller and program
JP2014010604A (en) Storage device, program, and method
CN115268763A (en) Cache management method, device and equipment
KR101976320B1 (en) Last level cache memory and data management method thereof
JP2016207096A (en) Hierarchical storage device, hierarchical storage system, hierarchical storage method, and hierarchical storage program

Legal Events

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

Ref document number: 17824279

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 17824279

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: JP