WO2018008676A1 - Système de traitement d'informations, procédé d'attribution de mémoire cache, dispositif de commande de mémoire, procédé de commande de mémoire et support d'enregistrement - Google Patents

Système de traitement d'informations, procédé d'attribution de mémoire cache, dispositif de commande de mémoire, procédé de commande de mémoire et support d'enregistrement 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
English (en)
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/fr

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

Abstract

Afin d'améliorer les performances d'accès à un support de stockage en optimisant, sans effectuer de mesure, la capacité d'attribution à une partition de mémoire cache correspondant à chaque processus, l'invention concerne un dispositif de commande de mémoire comprenant : un moyen de configuration de candidat à la réduction permettant de définir, en tant que partition ayant une capacité réductible, une partition de mémoire cache contenant une page à laquelle on n'a pas accédé pendant une période plus longue qu'une durée prédéterminée ou bien une page à laquelle on a moins fréquemment accédé qu'une valeur prédéterminée ; et un moyen de commande de capacité qui, lorsqu'une page ayant entraîné une absence de mémoire cache est incluse dans l'historique des pages qui ont été extraites vers un support de stockage d'ordre inférieur à partir de la mémoire cache, réduit la capacité de la partition à capacité réductible, puis ajoute la capacité réduite à la capacité de la partition ayant entraîné l'absence de mémoire cache.
PCT/JP2017/024617 2016-07-08 2017-07-05 Système de traitement d'informations, procédé d'attribution de mémoire cache, dispositif de commande de mémoire, procédé de commande de mémoire et support d'enregistrement WO2018008676A1 (fr)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2016136338A JP2019168733A (ja) 2016-07-08 2016-07-08 情報処理システム、キャッシュ容量配分方法、記憶制御装置およびその方法とプログラム
JP2016-136338 2016-07-08

Publications (1)

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

Family

ID=60912824

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2017/024617 WO2018008676A1 (fr) 2016-07-08 2017-07-05 Système de traitement d'informations, procédé d'attribution de mémoire cache, dispositif de commande de mémoire, procédé de commande de mémoire et support d'enregistrement

Country Status (2)

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

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112737975A (zh) * 2020-12-25 2021-04-30 珠海西山居移动游戏科技有限公司 缓冲区容量调整方法及装置

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 (ja) * 2005-08-04 2007-02-15 Hitachi Ltd ストレージ装置、ディスクキャッシュ制御方法及びディスクキャッシュの容量割当方法
JP2009528610A (ja) * 2006-03-02 2009-08-06 エヌエックスピー ビー ヴィ タスクの実行フェーズに基づいてキャッシュパーティションを動的にリサイズする方法及び装置
WO2014142337A1 (fr) * 2013-03-15 2014-09-18 日本電気株式会社 Dispositif et procédé de stockage, et programme
JP2014175009A (ja) * 2013-03-11 2014-09-22 Lsi Corp 仮想マシンをサポートするフラッシュ・ベースのキャッシング・ソリューションでの動的キャッシュ共有のためのシステム、方法、およびコンピュータ可読媒体

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007041904A (ja) * 2005-08-04 2007-02-15 Hitachi Ltd ストレージ装置、ディスクキャッシュ制御方法及びディスクキャッシュの容量割当方法
JP2009528610A (ja) * 2006-03-02 2009-08-06 エヌエックスピー ビー ヴィ タスクの実行フェーズに基づいてキャッシュパーティションを動的にリサイズする方法及び装置
JP2014175009A (ja) * 2013-03-11 2014-09-22 Lsi Corp 仮想マシンをサポートするフラッシュ・ベースのキャッシング・ソリューションでの動的キャッシュ共有のためのシステム、方法、およびコンピュータ可読媒体
WO2014142337A1 (fr) * 2013-03-15 2014-09-18 日本電気株式会社 Dispositif et procédé de stockage, et programme

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112737975A (zh) * 2020-12-25 2021-04-30 珠海西山居移动游戏科技有限公司 缓冲区容量调整方法及装置
CN112737975B (zh) * 2020-12-25 2023-05-09 珠海西山居数字科技有限公司 缓冲区容量调整方法及装置

Also Published As

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

Similar Documents

Publication Publication Date Title
EP3210121B1 (fr) Technique d'optimisation de mémoire cache pour de grands ensembles de données de travail
US8688897B2 (en) Cache memory management in a flash cache architecture
US9648081B2 (en) Network-attached memory
US9489239B2 (en) Systems and methods to manage tiered cache data storage
US10296255B1 (en) Data migration techniques
WO2016175028A1 (fr) Système de traitement d'informations, dispositif de commande de mémorisation, procédé de commande de mémorisation et programme de commande de mémorisation
JP6691669B2 (ja) 情報処理システム、記憶制御装置、記憶制御方法および記憶制御プログラム
JP5944587B2 (ja) 計算機システム及び制御方法
JP6106028B2 (ja) サーバ及びキャッシュ制御方法
JP2013511081A (ja) デバイス・アダプタを介して、データをキャッシュから複数のストレージ・デバイスの各々にデステージするための方法、システム及びコンピュータ・プログラム
US9342456B2 (en) Storage control program for hierarchy relocation control, storage system with hierarchy relocation control and hierarchy control apparatus thereof
JP2019525330A (ja) キャッシュテスト領域に基づくプリフェッチデータに対するキャッシュ転送ポリシーの選択
US20170147491A1 (en) Method and apparatus for data cache in converged system
WO2017006675A1 (fr) Système de traitement d'informations, dispositif de commande de stockage, procédé de commande de stockage et programme de commande de stockage
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 (fr) Système de traitement d'informations, procédé d'attribution de mémoire cache, dispositif de commande de mémoire, procédé de commande de mémoire et support d'enregistrement
WO2016002325A1 (fr) Système et procédé de traitement d'informations, dispositif de commande de mémorisation et procédé de commande et programme de commande pour dispositif de commande de mémorisation
JP2007102314A (ja) ディスクキャッシュ制御装置
JP7011156B2 (ja) ストレージ制御装置およびプログラム
KR20130112755A (ko) 스토리지 관리 방법 및 장치
JP2014010604A (ja) ストレージ装置とプログラムと方法
CN115268763A (zh) 一种缓存管理方法、装置及设备
KR101976320B1 (ko) 라스트 레벨 캐시 메모리 및 이의 데이터 관리 방법
JP6919277B2 (ja) ストレージシステム、ストレージ管理装置、ストレージ管理方法、及びプログラム

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