JP2010152747A - Storage system, cache control method and cache control program for storage - Google Patents

Storage system, cache control method and cache control program for storage Download PDF

Info

Publication number
JP2010152747A
JP2010152747A JP2008331452A JP2008331452A JP2010152747A JP 2010152747 A JP2010152747 A JP 2010152747A JP 2008331452 A JP2008331452 A JP 2008331452A JP 2008331452 A JP2008331452 A JP 2008331452A JP 2010152747 A JP2010152747 A JP 2010152747A
Authority
JP
Japan
Prior art keywords
data
cache
semiconductor memory
tag
stored
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2008331452A
Other languages
Japanese (ja)
Inventor
Yoshihiro Hasebe
賀洋 長谷部
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
NEC Corp
Original Assignee
NEC Corp
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 NEC Corp filed Critical NEC Corp
Priority to JP2008331452A priority Critical patent/JP2010152747A/en
Publication of JP2010152747A publication Critical patent/JP2010152747A/en
Pending legal-status Critical Current

Links

Images

Landscapes

  • Memory System Of A Hierarchy Structure (AREA)

Abstract

<P>PROBLEM TO BE SOLVED: To provide a storage system, capable of reducing, in cache control for improving the apparent performance of the storage system from a host computer in response to increase in capacity of a storage medium such as a magnetic disk, the capacity of a battery for battery backup which is set for failures such as power supply interruption without deteriorating the apparent performance from the host computer. <P>SOLUTION: Write data from the host computer is stored in a backed up nonvolatile memory 102, and read data read from the storage medium 104 is stored in a volatile memory 103. Data corresponding to an address of write data is searched on the volatile memory 103, and when the address is present, the write data is stored in the nonvolatile memory 102 after invalidation of read data (or disposal of the cache of the address on the volatile memory) is performed. <P>COPYRIGHT: (C)2010,JPO&INPIT

Description

本発明は、ストレージシステム、ストレージのキャッシュ制御方法、及びキャッシュ制御プログラムに関し、特に磁気ディスクなどの、ホストコンピュータの処理速度に較べて低速かつ大容量である記憶媒体への読み書きを行う際に低速な記憶媒体の性能保証を行うための、いわゆるキャッシュメモリと呼ばれる高速な記憶媒体(DRAMやフラッシュメモリ等)の制御手段において、電源断時にホストコンピュータからキャッシュメモリに書き込まれたデータの保証を行うストレージシステム、ストレージのキャッシュ制御方法、及びキャッシュ制御プログラムに関する。   The present invention relates to a storage system, a storage cache control method, and a cache control program. In particular, the present invention relates to a storage system, such as a magnetic disk, which has a low speed when reading from or writing to a storage medium having a low speed and a large capacity compared to the processing speed of a host computer. A storage system for guaranteeing the data written in the cache memory from the host computer when the power is turned off in the control means of a high-speed storage medium (DRAM, flash memory, etc.) called a so-called cache memory for guaranteeing the performance of the storage medium The present invention relates to a storage cache control method and a cache control program.

従来のストレージシステムでは、ホストコンピュータからのライトデータをキャッシュメモリ(以下、「キャッシュ」と略称することがある)に一時格納し、キャッシュメモリに格納した時点でホストコンピュータに対してライトデータがストレージに書き込まれた旨を応答し、その後にキャッシュメモリに書き込まれたライトデータを、キャッシュに比して低速ではあるが大容量である媒体(磁気ディスク等)に書き込むことにより、ホストコンピュータから見たデータのライト性能を向上させる手法が用いられてきた(ライトバックキャッシュアルゴリズムと呼ばれている)。   In a conventional storage system, write data from a host computer is temporarily stored in a cache memory (hereinafter sometimes abbreviated as “cache”), and when the write data is stored in the cache memory, the write data is stored in the storage to the host computer. Data seen from the host computer by writing to a medium (such as a magnetic disk) that responds to the effect of writing and then writes the write data written in the cache memory to a medium (such as a magnetic disk) that is slower but larger in capacity than the cache. Has been used to improve the write performance (referred to as the write-back cache algorithm).

この場合、キャッシュとしては揮発性の半導体メモリ(DRAM等、以下、単に「揮発メモリ」と呼称する)が使用されるのが一般的であり、これらの揮発メモリは、性能は良いが、ビット当たりの単価が高く、かつ停電時などの不意の電源断時においては書き込まれたデータが喪失することがあり、このため、ライトバックキャッシュアルゴリズムによりキャッシュに書き込まれたデータが電源断により喪失することがあるため、バッテリー等を用いてバックアップする方法が採用されている。   In this case, a volatile semiconductor memory (DRAM or the like, hereinafter simply referred to as “volatile memory”) is generally used as the cache, and these volatile memories have good performance, but per bit. The unit price is high, and the written data may be lost when the power is turned off unexpectedly, such as at the time of a power failure. For this reason, the data written to the cache by the write-back cache algorithm may be lost when the power is turned off. Therefore, a backup method using a battery or the like is employed.

例えば、特許文献1に記載のディスクキャッシュ装置では、データの内容の同一性が保たれていない期間が長くなり、停電等の障害によって失われる可能性も高くなるという問題点に対処するために、各エントリに対して、データの書き込みが行われた時刻が記憶されており、書き込み時刻から所定時間が経過しても、ディスク装置への書き込みが行われていないエントリが存在した場合には、そのエントリのデータのディスク装置への書き込みを行うことを開示している。   For example, in the disk cache device described in Patent Document 1, in order to cope with the problem that the period during which the data contents are not identical is long, and the possibility of being lost due to a failure such as a power failure is high, The time at which data was written is stored for each entry, and if there is an entry that has not been written to the disk device even after a predetermined time has elapsed from the write time, It discloses that data of an entry is written to a disk device.

また、特許文献2に記載のディスクキャッシュ装置では、バッテリーバックアップされていない揮発性メモリと、バッテリーバックアップされている不揮発性メモリとを有しているディスクキャッシュ装置が提案されており、ディスクキャッシュ装置からホスト装置へのリードデータに対しては、揮発性メモリの空エントリに格納し、ホスト装置からディスクキャッシュ装置へのライトデータに対しては、そのアドレスのデータのエントリが揮発性メモリに存在するか否かを判定し、存在すれば当該エントリを無効化した後、存在しなければそのまま、ライトデータを不揮発性メモリの空エントリに格納することを開示している。
特開平2−19941号公報 特開平8−137753号公報:(図1,3〜5、段落12〜13,22〜32)
Further, in the disk cache device described in Patent Document 2, a disk cache device having a volatile memory not backed up by a battery and a non-volatile memory backed up by a battery has been proposed. Read data to the host device is stored in an empty entry in the volatile memory, and for write data from the host device to the disk cache device, is there an entry for the data at that address in the volatile memory? It is disclosed that after determining whether or not the entry exists, the entry is invalidated, and if it does not exist, the write data is stored as it is in an empty entry of the nonvolatile memory.
JP-A-2-19941 JP-A-8-137753: (FIGS. 1, 3-5, paragraphs 12-13, 22-32)

ところで、昨今の情報処理量の増加により、ストレージ1台当たりに格納されるデータ量は増加の一途を辿り、内蔵される磁気ディスクの容量も大幅に増え、接続されるホストコンピュータの数も増加している。このため、キャッシュに必要な記憶容量も増加しており、このため、上記背景技術で述べた従来のストレージシステムにあっては、キャッシュに用いられる不揮発メモリをバックアップするためのバッテリーの容量も増加しているが、容量が大きなバッテリーを用いることはコストの増加を招き、かつストレージにおけるバッテリーの占有体積や重量なども増加するという問題点があった。   By the way, with the recent increase in the amount of information processing, the amount of data stored per storage unit continues to increase, the capacity of the built-in magnetic disk increases significantly, and the number of connected host computers also increases. ing. For this reason, the storage capacity required for the cache is also increasing. For this reason, in the conventional storage system described in the background art above, the capacity of the battery for backing up the non-volatile memory used for the cache also increases. However, the use of a battery with a large capacity has a problem in that the cost increases, and the occupied volume and weight of the battery in the storage also increase.

よって、本発明のストレージシステムにおいては、ストレージの容量増に対応して設けられた前述のキャッシュ(特にDRAM等の揮発性半導体メモリ等を用いたキャッシュ)の、電源断時のデータ保護手段として必要な、不揮発メモリをバックアップするためのバッテリーの容量を削減することが課題であった。
このため、従来の手法ではキャッシュ全体に渡って行っていたバッテリーバックアップ手段において、ホストコンピュータからの見かけの性能を落とすことなくバッテリー容量を削減することが具体的な課題であった。
Therefore, in the storage system of the present invention, it is necessary as a data protection means at the time of power interruption of the above-mentioned cache (particularly a cache using a volatile semiconductor memory such as DRAM) provided corresponding to an increase in storage capacity. In addition, it has been a problem to reduce the capacity of the battery for backing up the nonvolatile memory.
For this reason, in the battery backup means performed over the entire cache in the conventional method, it has been a specific problem to reduce the battery capacity without degrading the apparent performance from the host computer.

なお、前述の特許文献1の提案は、ディスクキャッシュ装置に関する技術であり、停電等が発生しても、その発生時刻から所定時間以内に書き込まれたデータだけが、失われることになるので、停電等による影響を少なくすることはできる。しかし、キャッシュメモリとしてバッテリバックアップした不揮発メモリを使用していないので、データの喪失を完全には防げないし、また、ライトバックを行っていることによる効果を減ずることにもなる。
また、前述の特許文献2の提案は、やはり、ディスクキャッシュ装置に関する技術であり、目的は本発明のストレージシステムと類似しているが、周知のLRUアルゴリズムのみを述べており、電源断時の保護(バックアップ)に必要な復旧手段については、動作が陽に説明されておらず、また、請求項としても、効果としても全く記載されていない。
Note that the proposal of the above-mentioned Patent Document 1 is a technique related to a disk cache device, and even if a power failure occurs, only data written within a predetermined time from the occurrence time is lost. It is possible to reduce the influence of such as. However, since the battery-backed non-volatile memory is not used as the cache memory, the loss of data cannot be prevented completely, and the effect of performing the write-back can be reduced.
The proposal of the above-mentioned Patent Document 2 is also a technology related to a disk cache device, and its purpose is similar to that of the storage system of the present invention, but only the well-known LRU algorithm is described, and protection in the event of power interruption The operation of the recovery means necessary for (backup) is not explained explicitly, and is not described at all as claims or effects.

本発明は、上記従来の問題点に鑑みてなされたものであって、ストレージシステムにおいて、磁気ディスク等の記憶媒体の増加に対応してホストコンピュータからの見かけ上の性能を改善するためのキャッシュ制御に関して、電源断などの障害に備えて設置されるバッテリーバックアップ用のバッテリーの容量を、ホストコンピュータからの見かけの性能を落とすことなく削減することができるストレージシステムを提供することを目的とする。
本発明の他の目的は、電源断が発生した時にも、格納されているデータを損なうことがないストレージシステムを提供することにある。
The present invention has been made in view of the above-described conventional problems, and in a storage system, cache control for improving apparent performance from a host computer in response to an increase in storage media such as magnetic disks. In view of this, an object of the present invention is to provide a storage system that can reduce the capacity of a battery backup battery installed in preparation for a failure such as power interruption without degrading the apparent performance from a host computer.
Another object of the present invention is to provide a storage system that does not impair stored data even when a power failure occurs.

上記課題を解決するために、本発明に係るストレージシステムは、上位装置の要求データ入出力速度よりもデータ入出力速度が遅い大記憶装置を備えると共に、前記上位装置と前記大記憶装置とのデータ入出力速度の差を緩和するキャッシュ手段のキャッシュメモリとして、停電時記憶保持用のバッテリーを有する不揮発性半導体メモリと、揮発性半導体メモリとを備えたストレージシステムにおいて、前記上位装置からデータ書き込み要求が送出された場合に、前記書き込み要求データを前記不揮発性半導体メモリに一時格納すると共に、前記不揮発性半導体メモリに前記書き込み要求データを格納した時点で、前記上位装置に、前記書き込み要求データの書き込みを完了した旨の通知を応答する手段と、前記上位装置からデータ読み出し要求が送出された場合に、前記大記憶装置から前記読み出し要求に合致するデータを読み込んで前記揮発性半導体メモリに格納すると共に、以後、前記上位装置からのデータ読み出し要求が送出された際には、前記揮発性半導体メモリに格納した前記データを読み出して前記上位装置に送出する手段と、電源断から復旧した時点で、前記揮発性半導体メモリに格納した前記データのページが存在する場合には、前記ページを無効化する手段と、を備えたことを特徴とするストレージシステムを提供するものである。   In order to solve the above problems, a storage system according to the present invention includes a large storage device whose data input / output speed is slower than the requested data input / output speed of the host device, and data between the host device and the large storage device. In a storage system comprising a non-volatile semiconductor memory having a battery for storing memory during a power failure and a volatile semiconductor memory as a cache memory for a cache means for reducing the difference in input / output speed, a data write request is issued from the host device. When the write request data is sent, the write request data is temporarily stored in the nonvolatile semiconductor memory, and the write request data is written to the host device when the write request data is stored in the nonvolatile semiconductor memory. Means for responding a notification of completion, and reading data from the host device When a request is sent, data matching the read request is read from the large storage device and stored in the volatile semiconductor memory, and thereafter, when a data read request is sent from the host device , Means for reading out the data stored in the volatile semiconductor memory and sending it to the host device, and when the page of the data stored in the volatile semiconductor memory exists at the time of recovery from a power interruption, And a means for invalidating the page. A storage system is provided.

また、本発明に係るストレージのキャッシュ制御方法は、停電時記憶保持用のバッテリーを有する不揮発性半導体メモリと、揮発性半導体メモリとを備え、上位装置と大記憶装置とのデータ入出力速度の差を緩和するストレージのキャッシュ制御方法において、前記上位装置からデータ書き込み要求が送出された場合に、前記書き込み要求データを前記不揮発性半導体メモリに一時格納すると共に、前記不揮発性半導体メモリに前記書き込み要求データを格納した時点で、前記上位装置に、前記書き込み要求データの書き込みを完了した旨の通知を応答するステップと、前記上位装置からデータ読み出し要求が送出された場合に、前記大記憶装置から前記読み出し要求に合致するデータを読み込んで前記揮発性半導体メモリに格納すると共に、以後、前記上位装置からのデータ読み出し要求が送出された際には、前記揮発性半導体メモリに格納した前記データを読み出して前記上位装置に送出するステップと、電源断から復旧した時点で、前記揮発性半導体メモリに格納した前記データのページが存在する場合には、前記ページを無効化するステップと、を有することを特徴とするストレージのキャッシュ制御方法を提供するものである。   In addition, the storage cache control method according to the present invention includes a nonvolatile semiconductor memory having a battery for storing memory during a power failure and a volatile semiconductor memory, and a difference in data input / output speed between the host device and the large storage device. In the storage cache control method for mitigating, when a data write request is sent from the host device, the write request data is temporarily stored in the nonvolatile semiconductor memory, and the write request data is stored in the nonvolatile semiconductor memory. At the time of storing, the step of responding to the host device with a notification that the writing of the write request data has been completed, and the data read request from the host device when the data read request is sent from the host device. Reads data that meets the requirements and stores it in the volatile semiconductor memory Thereafter, when a data read request is sent from the host device, the step of reading the data stored in the volatile semiconductor memory and sending it to the host device; And a step of invalidating the page when there is a page of the data stored in the volatile semiconductor memory. A storage cache control method is provided.

さらに、本発明に係るストレージのキャッシュ制御は、停電時記憶保持用のバッテリーを有する不揮発性半導体メモリと、揮発性半導体メモリとを備え、上位装置と大記憶装置とのデータ入出力速度の差を緩和するキャッシュの制御をコンピュータに実行させるストレージのキャッシュ制御プログラムにおいて、前記上位装置からデータ書き込み要求が送出された場合に、前記書き込み要求データを前記不揮発性半導体メモリに一時格納すると共に、前記不揮発性半導体メモリに前記書き込み要求データを格納した時点で、前記上位装置に、前記書き込み要求データの書き込みを完了した旨の通知を応答するステップと、前記上位装置からデータ読み出し要求が送出された場合に、前記大記憶装置から前記読み出し要求に合致するデータを読み込んで前記揮発性半導体メモリに格納すると共に、以後、前記上位装置からのデータ読み出し要求が送出された際には、前記揮発性半導体メモリに格納した前記データを読み出して前記上位装置に送出するステップと、電源断から復旧した時点で、前記揮発性半導体メモリに格納した前記データのページが存在する場合には、前記ページを無効化するステップと、を有することを特徴とするストレージのキャッシュ制御プログラムを提供するものである。   Furthermore, the cache control of the storage according to the present invention comprises a nonvolatile semiconductor memory having a battery for storing memory during a power failure, and a volatile semiconductor memory, and provides a difference in data input / output speed between the host device and the large storage device. In a storage cache control program for causing a computer to control the cache to be relaxed, when a data write request is sent from the host device, the write request data is temporarily stored in the nonvolatile semiconductor memory, and the nonvolatile memory When the write request data is stored in the semiconductor memory, the host device responds to the notification that the writing of the write request data is completed, and when the data read request is sent from the host device, Read data that matches the read request from the large storage device. And reading the data stored in the volatile semiconductor memory and sending it to the host device when a data read request is sent from the host device. And a step of invalidating the page when there is a page of the data stored in the volatile semiconductor memory at the time of recovery from a power failure. Is to provide.

以上説明したように、本発明のストレージシステムによれば、記憶媒体(磁気ディスク装置等の大記憶装置)から読み出したデータを揮発メモリに格納し、ホストコンピュータから送られてくるライトデータを、バッテリーバックアップ等の手段で保護された不揮発メモリに配置することで、ストレージシステムに必要なメモリの記憶容量を確保するので、システム全体として必要な大規模なキャッシュの容量を確保すると共に、一方では、バッテリーバックアップに必要な不揮発メモリ量を削減することで、バックアップに必要なバッテリーの容量を削減し、かつ、電源断などの障害発生時においてもデータ喪失を防ぐことが可能となる効果がある。   As described above, according to the storage system of the present invention, data read from a storage medium (a large storage device such as a magnetic disk device) is stored in a volatile memory, and write data sent from a host computer is stored in a battery. By arranging it in a non-volatile memory protected by means such as backup, the storage capacity of the memory necessary for the storage system is ensured, so that the large-scale cache capacity necessary for the entire system is secured, while the battery By reducing the amount of non-volatile memory required for backup, it is possible to reduce the capacity of the battery required for backup and to prevent data loss even when a failure such as a power failure occurs.

以下、本発明に係るストレージシステムの原理について説明する。
従来のストレージシステムの問題点は、ホストからのライトデータに対するキャッシュと、ストレージシステムの記憶媒体からのリードデータに対するキャッシュとの、いずれのキャッシュについてもバッテリーバックアップを行っていたことにある。通常、記憶媒体(例えば磁気ディスク等)からのリードデータのキャッシュは、この記憶媒体上にデータが有り、よって、電源断にキャッシュのデータは使用不可となっても、記憶媒体上のデータは消えず、再びホストコンピュータからのアクセスがあれば、キャッシュメモリ上に展開できる。
一方、ホストコンピュータからのライトデータは、キャッシュに格納された時点で書き込み完了を応答する場合(即ちライトバックキャッシュ)、一般にホストコンピュータには、このデータは残っておらず、ストレージシステム側のキャッシュに存在するのみであり、よって、ストレージシステムの電源断により保護すべき対象である。
Hereinafter, the principle of the storage system according to the present invention will be described.
The problem with the conventional storage system is that battery backup is performed for both the cache for the write data from the host and the cache for the read data from the storage medium of the storage system. Normally, the cache of read data from a storage medium (such as a magnetic disk) has data on this storage medium. Therefore, even if the cache data becomes unusable when the power is turned off, the data on the storage medium is erased. If there is an access from the host computer again, it can be expanded on the cache memory.
On the other hand, when write data from the host computer responds to the completion of writing when it is stored in the cache (that is, write-back cache), generally this data does not remain in the host computer and is stored in the cache on the storage system side. Therefore, it is a target to be protected by powering off the storage system.

本発明のストレージシステムは、ホストコンピュータからのライトデータを一時格納するための、半導体メモリがバッテリーバックアップされた不揮発メモリと、記憶媒体から読み出したデータを一時格納するための揮発メモリとを備え、ホストからのライトデータは不揮発メモリ、ストレージの記憶媒体(磁気ディスク等)から読み出したデータは揮発メモリに配置する。これにより、バッテリーバックアップに必要なホストコンピュータからのライトデータはシステムの電源断から保護すると共に、バッテリーバックアップの不要なリードキャッシュはバッテリーバックアップの必要が無い揮発メモリに配置する。このように構成することにより、本来必要なライトバックキャッシュのみのバッテリーバックアップを行うので、バッテリー容量を大幅に削減することを可能にする。   A storage system of the present invention includes a nonvolatile memory in which a semiconductor memory is battery-backed for temporarily storing write data from a host computer, and a volatile memory for temporarily storing data read from a storage medium. Write data from the non-volatile memory and data read from the storage medium (magnetic disk or the like) are arranged in the volatile memory. As a result, write data from the host computer necessary for battery backup is protected from the power failure of the system, and a read cache that does not require battery backup is arranged in a volatile memory that does not require battery backup. By configuring in this way, the battery backup of only the write-back cache that is originally necessary is performed, so that the battery capacity can be greatly reduced.

より具体的には、ホストコンピュータからライトリクエストが送られた際に、ライトリクエストで示されるアドレスのライトデータが不揮発メモリまたは揮発メモリのいずれに存在するのかを判断するキャッシュ管理手段を有し、このキャッシュ管理手段は不揮発メモリ及び揮発メモリでキャッシュされたデータのホストから見たアドレスとデータとをリンク付けして管理し、この管理に際してはテーブル等のキャッシュ管理情報を参照する。このキャッシュ管理情報は電源断でも消えない不揮発領域上に配置するが、前述の不揮発メモリの一部を利用しても良く、若しくは別途不揮発メモリを確保して使用しても良い。   More specifically, when a write request is sent from the host computer, there is a cache management means for determining whether the write data at the address indicated by the write request exists in the nonvolatile memory or the volatile memory. The cache management means links and manages the address of the data cached in the nonvolatile memory and the volatile memory as viewed from the host, and refers to cache management information such as a table in this management. The cache management information is arranged in a nonvolatile area that does not disappear even when the power is turned off. However, a part of the nonvolatile memory described above may be used, or a separate nonvolatile memory may be secured and used.

さらに、キャッシュ管理手段は、ホストコンピュータからのライトデータに対して、不揮発メモリと揮発メモリのいずれにも同一アドレスのデータが存在しなければ、不揮発メモリ上にライトデータを格納する領域を確保し、該領域にデータを格納する。また、ホストコンピュータからのライトデータのアドレスで示されるデータが不揮発メモリ上に存在すれば、該不揮発メモリ上のデータをホストコンピュータから送られたライトデータで置き換える。さらに、ホストコンピュータから送られたライトデータのアドレスで示されるデータが不揮発メモリ上に無く、揮発メモリ上に有れば、該揮発メモリ上の該データを無効化し、不揮発メモリ上に新規の領域を確保して、該領域にホストコンピュータからのライトデータを格納する。   Further, the cache management means secures an area for storing the write data on the nonvolatile memory if there is no data at the same address in both the nonvolatile memory and the volatile memory for the write data from the host computer, Data is stored in this area. If the data indicated by the address of the write data from the host computer exists in the nonvolatile memory, the data on the nonvolatile memory is replaced with the write data sent from the host computer. Further, if the data indicated by the address of the write data sent from the host computer is not in the nonvolatile memory and exists in the volatile memory, the data on the volatile memory is invalidated, and a new area is created on the nonvolatile memory. The write data from the host computer is stored in this area.

また、ホストコンピュータからストレージシステムに対して、リードのリクエストが送られた場合には、キャッシュ管理手段は、不揮発メモリ上、或いは揮発メモリのいずれかにリードのリクエストで要求されたデータが存在するか否かを確認し、両者のいずれかに存在すれば、該領域のデータをホストコンピュータに送り、さもなくて、リードのリクエストで要求されたデータが不揮発メモリ、揮発メモリのいずれにも存在しなければ、揮発メモリ上に領域を確保し、該リードリクエストで示されるアドレスのデータを記憶媒体から読み出して該領域に確保すると共に、ホストコンピュータに対してはリードリクエストの結果として、該データを送る。   In addition, when a read request is sent from the host computer to the storage system, the cache management means determines whether the data requested by the read request exists in either the nonvolatile memory or the volatile memory. If it exists in either of them, the data in that area is sent to the host computer. Otherwise, the data requested by the read request must exist in either the nonvolatile memory or the volatile memory. For example, an area is secured on the volatile memory, the data at the address indicated by the read request is read from the storage medium and secured in the area, and the data is sent to the host computer as a result of the read request.

なお、停電等の電源断時には、キャッシュ管理情報上には揮発メモリのデータが有効な状態で復帰し、揮発メモリには実際のデータが無い状態となるため、キャッシュ管理手段は、揮発メモリ上のデータをキャッシュ管理情報の内容を参照して無効化(即ちキャッシュデータとしては破棄)し、電源復帰後に通常の処理に復帰する。   Note that when the power is cut off, such as a power failure, the volatile memory data is restored to the valid state on the cache management information, and the volatile memory has no actual data. The data is invalidated (that is, discarded as cache data) with reference to the contents of the cache management information, and the normal processing is restored after the power is restored.

以下、本発明のストレージシステムの最良の実施形態について、図面を参照して詳細に説明する。
図1は、本発明の実施の形態に係るストレージシステムの全体構成を示す構成図である。
同図に示す本実施の形態に係るストレージシステムは、ホストコンピュータ(図示は省略する)からライトデータが送られデータが不揮発メモリまたは揮発メモリのいずれに存在するかを判断するキャッシュ管理手段101と、キャッシュ管理情報が電源断でも消えない不揮発メモリ102と、キャッシュ管理情報が電源断には消される揮発メモリ103と、磁気ディスク等の記憶媒体104と、を備えて構成される。
Hereinafter, the best embodiment of the storage system of the present invention will be described in detail with reference to the drawings.
FIG. 1 is a configuration diagram showing the overall configuration of the storage system according to the embodiment of the present invention.
The storage system according to the present embodiment shown in the figure includes a cache management unit 101 that receives write data from a host computer (not shown) and determines whether the data exists in a nonvolatile memory or a volatile memory; The non-volatile memory 102 in which the cache management information is not erased even when the power is turned off, the volatile memory 103 in which the cache management information is erased when the power is turned off, and a storage medium 104 such as a magnetic disk are configured.

以下、本実施の形態に係るストレージシステムの動作を説明する。
キャッシュ管理手段101は、不揮発メモリ102と、揮発メモリ103のキャッシュされたデータを、ホストコンピュータからリードリクエスト若しくはライトリクエストで指定されるアドレスとデータとをリンク付けて管理するが、この管理はキャッシュ管理情報を参照して行う。キャッシュ管理情報は電源断でも消えない不揮発メモリ102に配置する。また、ホストコンピュータからのライトデータは記憶媒体104上にマッピングされたアドレスもライトデータと同時に送り、応答性向上のために不揮発メモリ102に一時蓄積された後、最終的に記憶媒体104に書き込まれる。また、ホストコンピュータは前述の記憶媒体104のアドレスを指定して、リードリクエストを発行する。キャッシュ管理手段101は、記憶媒体104または不揮発メモリ102または揮発メモリ103に有る、該アドレスで示される最新のデータをホストコンピュータに返す。
Hereinafter, the operation of the storage system according to the present embodiment will be described.
The cache management unit 101 manages the cached data in the nonvolatile memory 102 and the volatile memory 103 by linking the address and data specified by the read request or the write request from the host computer. Refer to the information. The cache management information is arranged in the nonvolatile memory 102 that does not disappear even when the power is turned off. The write data from the host computer also sends the address mapped on the storage medium 104 at the same time as the write data, is temporarily stored in the non-volatile memory 102 for the purpose of improving responsiveness, and finally written to the storage medium 104. . Further, the host computer designates the address of the storage medium 104 and issues a read request. The cache management unit 101 returns the latest data indicated by the address in the storage medium 104, the nonvolatile memory 102, or the volatile memory 103 to the host computer.

キャッシュ管理情報の構成は図2、図6〜9で示される。なお、図2は、本実施の形態に係るストレージシステムのキャッシュ管理情報の全体構成を示し、図6は、空きページ管理情報を示し、図7は、揮発メモリに割り当てられるCleanなキャッシュページのLRU構成を示し、図8は、不揮発メモリに割り当てられるDirtyなキャッシュページのLRU構成を示し、図9は、不揮発メモリに割り当てられるCleanなキャッシュページのLRU構成を示している。   The configuration of the cache management information is shown in FIG. 2 and FIGS. 2 shows the overall configuration of the cache management information of the storage system according to the present embodiment, FIG. 6 shows the free page management information, and FIG. 7 shows the LRU of the clean cache page allocated to the volatile memory. FIG. 8 shows an LRU configuration of dirty cache pages allocated to the nonvolatile memory, and FIG. 9 shows an LRU configuration of clean cache pages allocated to the nonvolatile memory.

以下、前述の動作を、図2、図6〜9を参照して、さらに詳細に説明する。
図2、図6〜9に構成を示すキャッシュ管理情報は不揮発メモリ102上に存在し、電源断などの障害でも記憶内容は維持される。さらに前述のキャッシュ管理手段101はキャッシュ管理情報としてキャッシュエントリ201、キャッシュタグ202の情報を有する。キャッシュエントリ201は、ホストコンピュータが指定するアドレスからハッシュなどの手法により計算し、同じアドレスであれば同一のキャッシュエントリ201が選択される。ここではハッシュにより計算を行うこととするが、他の同等の方法を利用しても構わない。
キャッシュエントリ201のそれぞれのエントリにはキャッシュタグ202へのポインタが格納されており、図2に示すような双方向リンク構造を取ることを可能にしている。
Hereinafter, the above-described operation will be described in more detail with reference to FIGS. 2 and 6 to 9.
The cache management information shown in FIGS. 2 and 6 to 9 exists in the non-volatile memory 102, and the stored contents are maintained even in the event of a power failure or the like. Further, the cache management means 101 described above has information on the cache entry 201 and the cache tag 202 as cache management information. The cache entry 201 is calculated from an address designated by the host computer by a technique such as hashing. If the address is the same, the same cache entry 201 is selected. Here, calculation is performed using a hash, but other equivalent methods may be used.
A pointer to the cache tag 202 is stored in each entry of the cache entry 201, and it is possible to adopt a bidirectional link structure as shown in FIG.

図3は、キャッシュタグ202の構成を示す構成図である。同図に示すキャッシュタグ202は、キャッシュ情報301、ページポインタ302、LRUポインタ303、及びタグポインタ304から成る。キャッシュ情報301は、キャッシュタグで管理されるページ(詳細は後述するが、データそのものが格納される領域)が揮発メモリまたは不揮発メモリのいずれかに存在するか否かを示すフラグのメモリ種別305と、Dirty情報306と、媒体格納アドレス307から成る。Dirty情報とは、当該ページのデータがDirty(即ち、ライトバックなどによりホストコンピュータから送られたライトデータがキャッシュに存在し、媒体上に未だ書き込まれていない状態)であるか否かを示す情報である。ここではDirtyであれば1を書き込み、Clean(即ち、媒体上のデータと同一のデータがキャッシュ上に存在する状態)であれば、0を書き込むものとする。   FIG. 3 is a configuration diagram showing the configuration of the cache tag 202. The cache tag 202 shown in the figure includes cache information 301, a page pointer 302, an LRU pointer 303, and a tag pointer 304. The cache information 301 includes a memory type 305 of a flag indicating whether or not a page managed by a cache tag (details will be described later, but an area where data itself is stored) exists in either a volatile memory or a nonvolatile memory. Dirty information 306 and medium storage address 307. Dirty information is information indicating whether or not the data of the page is Dirty (that is, the write data sent from the host computer by write back etc. exists in the cache and has not yet been written on the medium). It is. Here, 1 is written if it is Dirty, and 0 is written if it is Clean (that is, the same data as the data on the medium exists in the cache).

媒体格納アドレス307は、ホストコンピュータからのライトデータ、若しくは媒体から読み出したデータをキャッシュメモリ上に一時配置する際に、キャッシュメモリ上のデータが記憶媒体104上のどのアドレスに相当するかを示す情報である。
また、ページポインタ302は、実際にデータが格納される領域であるページのポインタを示し、このポインタは図4にページ構成を示す不揮発メモリ401上のページ、または図5にページ構成を示す揮発メモリ501上のページの、いずれかのページのメモリの先頭アドレスを指し示す。
The medium storage address 307 is information indicating which address on the storage medium 104 the data on the cache memory corresponds to when the write data from the host computer or the data read from the medium is temporarily arranged on the cache memory. It is.
The page pointer 302 indicates a pointer of a page which is an area where data is actually stored. This pointer is a page on the non-volatile memory 401 showing the page configuration in FIG. 4 or a volatile memory showing the page configuration in FIG. The start address of the memory of one of the pages on the page 501 is indicated.

LRUポインタ303はライトバックキャッシュの掃き出しやキャッシュの格納領域であるページが新規に取得できなくなった場合に、Cleanな状態のページの再利用を行う際の優先順位を決める際などに用いる。
以下、図7、図8、図9を参照して説明する。図7は、揮発メモリのCleanページを管理するアルゴリズムがLRU(先入れ後出しアルゴリズム、または後入れ先出しアルゴリズム)の場合の揮発エントリの構成を示す。このLRUに基づく構成の揮発エントリは、記憶媒体104から読み出して揮発メモリ上に一時格納したデータの管理を行うための情報である。揮発Clean LRUエントリ701を先頭に、キャッシュタグ202のリンク構造をとる。
The LRU pointer 303 is used to determine the priority order when reusing pages in a clean state when a write-back cache is flushed or a page that is a cache storage area cannot be newly acquired.
Hereinafter, a description will be given with reference to FIGS. 7, 8, and 9. FIG. 7 shows a configuration of a volatile entry when the algorithm for managing the Clean page of the volatile memory is LRU (first-in last-out algorithm or last-in first-out algorithm). The volatile entry having a configuration based on the LRU is information for managing data read from the storage medium 104 and temporarily stored in the volatile memory. The cache tag 202 has a link structure with the volatile Clean LRU entry 701 at the head.

キャッシュタグ202のLRUポインタ303aが次のキャッシュタグ702の先頭を示し、LRUポインタ303bはエントリに近い側のキャッシュタグの先頭アドレスを格納するリンク構造を取る。リンクの最後のキャッシュタグ703のLRUポインタ303aはリンクの最後を示す情報であるNULL(ゼロ)を書き込み、最終のタグであることを示す。また、エントリ直後のキャッシュタグのLRUポインタ303bは、エントリのアドレスを書き込む。この様な双方向リンク構造を取ることで、リンクの途中のキャッシュタグを取り除くことを容易にする。なお、前述の構成は、図8に示す不揮発メモリ上のDirtyデータを管理するLRU、及び図9の不揮発メモリ上のCleanデータを管理するLRUでも同様に採用している。   The LRU pointer 303a of the cache tag 202 indicates the head of the next cache tag 702, and the LRU pointer 303b has a link structure for storing the head address of the cache tag closer to the entry. The LRU pointer 303a of the last cache tag 703 of the link writes NULL (zero) which is information indicating the end of the link to indicate that it is the last tag. In addition, the LRU pointer 303b of the cache tag immediately after the entry writes the address of the entry. By taking such a bidirectional link structure, it is easy to remove a cache tag in the middle of the link. The above-described configuration is similarly adopted in the LRU that manages dirty data on the nonvolatile memory shown in FIG. 8 and the LRU that manages clean data on the nonvolatile memory in FIG. 9.

また、キャッシュエントリ201のリンク構造を構成するタグポインタ304も双方向リンク構造をとり、LRUポインタと同様な操作を可能にしており、タグポインタ304aはリンクの後ろ側のタグ、タグポインタ304bはエントリに近い側のタグの先頭アドレスを格納する。
同様に、図8の不揮発メモリのDirtyページを管理するリンク、と図9の不揮発メモリのCleanページを管理するリンクとが存在し、それぞれキャッシュ管理情報として、不揮発メモリ上に存在する。
The tag pointer 304 constituting the link structure of the cache entry 201 also has a bidirectional link structure, and the same operation as the LRU pointer is possible. The tag pointer 304a is a tag on the back side of the link, and the tag pointer 304b is an entry. Stores the top address of the tag on the near side.
Similarly, there are a link for managing the dirty page of the non-volatile memory in FIG. 8 and a link for managing the clean page of the non-volatile memory in FIG. 9, each of which exists on the non-volatile memory as cache management information.

さらに、現在使用中のページとは別に、キャッシュエントリで管理されていない、つまり未だ割り当てられていないページを管理するためのリンクも存在し、図6の空きページ管理リンクで管理を行い、最初の電源投入時などの初期状態のページが、全く割り当てられていない時などには全てのページがこの空きページ管理リンクに接続される。このリンクは不揮発メモリ、揮発メモリの個別に管理され、不揮発メモリ空きエントリ601、あるいは揮発メモリ空きエントリ604の何れかに接続され、キャッシュエントリと同様に、キャッシュタグのタグポインタ304のリンク構造により管理され、最後のタグはリンクの最後であるNULLを示す情報をタグポインタに書き込み、ページポインタ302は初期の電源投入時に不揮発メモリまたは揮発メモリ上に割当られた個別のページのポインタを指し示す。   In addition to the currently used page, there is also a link for managing a page that is not managed by a cache entry, that is, not yet allocated, and is managed by the free page management link of FIG. When pages in the initial state such as when power is turned on are not allocated at all, all pages are connected to this empty page management link. This link is managed separately for the nonvolatile memory and the volatile memory, and is connected to either the nonvolatile memory empty entry 601 or the volatile memory empty entry 604, and is managed by the link structure of the tag pointer 304 of the cache tag, similarly to the cache entry. The last tag writes information indicating NULL at the end of the link to the tag pointer, and the page pointer 302 points to an individual page pointer allocated on the non-volatile memory or volatile memory at the time of initial power-on.

図10、図11、及び図12は、本実施形態に係るストレージシステムの全体の動作を示すフローチャート図であり、図10は、リードリクエスク時の動作、図11は、ライトリクエスク時の動作、図12は、電源再立ち上げ時の動作を、それぞれ示すものである。以下、図10、図11、及び図12に示すフローチャートを使用して、本実施の形態の全体の動作について詳細に説明する。
まず、ステップS1では、ホストコンピュータからライトのリクエストを受け取ると、キャッシュ管理手段101は、受け取ったライトリクエストのアドレスがキャッシュエントリ201のリンクに存在するキャッシュタグ内の核のアドレス307と一致するタグを検索する。
ステップS2では、この検索を検証し、該当するタグが無かった場合はステップS3に進み、該当するタグが有った場合はステップS6に移る。
10, 11 and 12 are flowcharts showing the overall operation of the storage system according to this embodiment. FIG. 10 shows the operation during a read request, and FIG. 11 shows the operation during a write request. FIG. 12 shows the operation when the power supply is restarted. Hereinafter, the overall operation of the present embodiment will be described in detail with reference to the flowcharts shown in FIGS. 10, 11, and 12.
First, in step S1, when a write request is received from the host computer, the cache management unit 101 selects a tag whose address of the received write request matches the core address 307 in the cache tag existing in the link of the cache entry 201. Search for.
In step S2, this search is verified. If there is no corresponding tag, the process proceeds to step S3, and if there is a corresponding tag, the process proceeds to step S6.

ステップS3では、不揮発メモリ空きエントリ601のリンクから任意のキャッシュタグを取り出す。
ステップS4では、ステップS1で検索を行ったキャッシュエントリのリンクに、タグポインタ304操作して該取り出したキャッシュタグを挿入し、同キャッシュタグのLRUポインタ303を操作して揮発Clean LRUエントリ701のリンクに挿入する。そして前述のタグのキャッシュ情報のDirty情報306を1のDirtyにセットし、メモリ種別305を1の不揮発にセットする。但し、ステップS3で、不揮発メモリ空きエントリ601のリンクにキャッシュタグが存在しない場合は、不揮発Clean LRUエントリのリンクのキャッシュタグを用いる、更に不揮発Clean LRUエントリのリンクにもキャッシュタグが無い場合には、不揮発Dirty LRUエントリのリンクからキャッシュタグを取り出し、該キャッシュタグのページポインタで示されるページのデータを媒体に書き込んだ後、該キャッシュタグを用いる。
In step S3, an arbitrary cache tag is extracted from the link of the non-volatile memory free entry 601.
In step S4, the cache pointer extracted by operating the tag pointer 304 is inserted into the link of the cache entry searched in step S1, and the link of the volatile Clean LRU entry 701 is operated by operating the LRU pointer 303 of the cache tag. Insert into. Then, the dirty information 306 of the cache information of the tag is set to 1 dirty, and the memory type 305 is set to 1 nonvolatile. However, if there is no cache tag in the link of the non-volatile memory free entry 601 in step S3, the cache tag of the link of the non-volatile Clean LRU entry is used, and if there is no cache tag in the link of the non-volatile Clean LRU entry. The cache tag is extracted from the link of the non-volatile dirty LRU entry, the page data indicated by the page pointer of the cache tag is written to the medium, and then the cache tag is used.

ステップS5では、該タグのページポインタ302のアドレスにホストコンピュータからのデータを格納し、ホストコンピュータにデータを書き込んだ旨を示す情報を送信し、ホストコンピュータからのライトリクエストを終了する。
ステップS6では、ステップS2で該当するアドレスの一致する格納アドレス307のキャッシュタグが有った場合の処理として、該当するキャッシュタグのキャッシュ情報301のDirty情報306が1のDirtyであるか否かを判定し、Dirtyであれば、ステップS5に移る。
ステップS7では、キャッシュ情報301のDirty情報306がDirtyでない(即ち、Cleanである)場合の処理として、キャッシュ情報301のメモリ種別305の判定を行い、メモリ種別305が1の不揮発であれば、ステップS8に進み、さもなくて、メモリ種別305が不揮発でなければ、ステップS9に移る。
In step S5, data from the host computer is stored at the address of the page pointer 302 of the tag, information indicating that the data has been written is transmitted to the host computer, and the write request from the host computer is terminated.
In step S6, as a process when there is a cache tag of the storage address 307 that matches the corresponding address in step S2, it is determined whether or not the dirty information 306 of the cache information 301 of the corresponding cache tag is 1 dirty. If it is determined that it is Dirty, the process proceeds to step S5.
In step S7, as a process when the dirty information 306 of the cache information 301 is not dirty (that is, clean), the memory type 305 of the cache information 301 is determined. If the memory type 305 is not nonvolatile, the process proceeds to step S9.

ステップS8では、Dirty情報306をCleanからDirtyに書き換えた後、該キャッシュタグのページポインタ302で示されるアドレスのページにホストコンピュータからのライトデータを書き込み、ステップS5に移る。
ステップS9では、ステップS7でキャッシュ情報301のメモリ種別305が1の不揮発でない(即ち0のCleanである)場合の処理として、該タグのページの無効化処理を行う。
In step S8, after the dirty information 306 is rewritten from clean to dirty, write data from the host computer is written to the page of the address indicated by the page pointer 302 of the cache tag, and the process proceeds to step S5.
In step S9, as a process in the case where the memory type 305 of the cache information 301 is not non-volatile (that is, clean of 0) in step S7, the tag page invalidation process is performed.

この無効化処理には、該ページタグをキャッシュエントリ201のリンクとLRUのリンク(この場合は揮発Clean LRUエントリのリンク)から取り外し、揮発メモリ空きエントリ604のリンクに挿入することで揮発メモリ上のキャッシュを破棄する。その後に、新たに不揮発メモリ空きエントリ601のリンクから新たにタグを取り出し、該タグのキャッシュ情報301のDirty情報306を1のDirtyに、同じくメモリ種別を1の不揮発に変更を行い、ホストコンピュータからのライトリクエストのアドレスでサーチを行ったキャッシュエントリのリンクを接続し、その後、不揮発Dirty LRUエントリ801のリンクに接続する。その後に、ステップS5に移る。   In this invalidation processing, the page tag is removed from the link of the cache entry 201 and the link of the LRU (in this case, the link of the volatile Clean LRU entry), and inserted into the link of the volatile memory free entry 604, so that it is stored on the volatile memory. Discard the cache. After that, a new tag is newly extracted from the link of the non-volatile memory free entry 601, the dirty information 306 of the cache information 301 of the tag is changed to 1 Dirty, and the memory type is similarly changed to 1 non-volatile. The link of the cache entry searched with the address of the write request is connected, and then the link of the nonvolatile dirty LRU entry 801 is connected. Thereafter, the process proceeds to step S5.

図11は、ホストコンピュータからリードリクエストが有った場合の動作を示すフローチャート図である。
まず、ステップS21では、ホストコンピュータからのリードリクエストをキャッシュ管理手段101が受け取ると、該リクエストで示されたリードのアドレスを、ハッシュを用いてキャッシュエントリを決定し、該キャッシュエントリのリンクに接続されたキャッシュタグ201の格納アドレス307に該当するアドレスを検索する。
次に、ステップS21では、この検索結果を検証し、格納アドレス307で示されるアドレスが無い場合はステップS23に進み、さもなくて、格納アドレス307で示されるアドレスが有る場合はステップS24に移る。
FIG. 11 is a flowchart showing the operation when there is a read request from the host computer.
First, in step S21, when the cache management unit 101 receives a read request from the host computer, the cache entry is determined by using the hash of the read address indicated by the request and connected to the link of the cache entry. The address corresponding to the storage address 307 of the cache tag 201 is searched.
Next, in step S21, the search result is verified. If there is no address indicated by the storage address 307, the process proceeds to step S23. Otherwise, if there is an address indicated by the storage address 307, the process proceeds to step S24.

ステップS23では、ステップS22で、リードリクエストで指定されたアドレスがキャッシュタグ201の格納アドレス307から見つからなかった場合の処理として、新たに揮発メモリ空きエントリ604のリンクからキャッシュタグを取り出すか、無ければ揮発Clean LRUエントリのリンクからタグを取り出してデータを格納するページを取得し、その後、該タグのアドレスを最初に検索を行ったキャッシュエントリのリンクと揮発Clean LRUエントリのリンクにそれぞれ挿入する。この時、キャッシュ情報301のDirty情報はCleanに、メモリ種別は揮発に設定する。その後、該リードリクエストのアドレスを格納アドレス307に書き込むと共に、該アドレスで指定される記憶媒体104のデータを読み出して、ページポインタ302のアドレスで示されるページに書き込み、ステップS24に進む。   In step S23, if the address specified in the read request in step S22 is not found from the storage address 307 of the cache tag 201, the cache tag is newly taken out from the link of the volatile memory free entry 604, or there is nothing. A tag is extracted from the link of the volatile Clean LRU entry to obtain a page for storing data, and then the address of the tag is inserted into the link of the cache entry and the link of the volatile Clean LRU entry that are searched first. At this time, the dirty information of the cache information 301 is set to Clean, and the memory type is set to volatile. Thereafter, the address of the read request is written to the storage address 307, the data of the storage medium 104 designated by the address is read, and the data is written to the page indicated by the address of the page pointer 302, and the process proceeds to step S24.

ステップS24では、該タグのページアドレス302のアドレスで示されるページのデータをホストコンピュータに送り、リードリクエストが終了した旨も返し、該リードリクエストを終了する。
図12は、電源断後の再起動時の復旧処理を示すフローチャート図である。
電源断から復旧した直後は、電源断により揮発メモリ103上にあるページのデータは消去されており、電源断により保護されたキャッシュ管理情報と矛盾した状態になる。このため、キャッシュ管理情報から、揮発メモリ103で消去されたページの情報を取り除かねばならないので、図12のフローチャート図で示す処理を行う。
In step S24, the page data indicated by the address of the page address 302 of the tag is sent to the host computer, the fact that the read request has been completed is also returned, and the read request is terminated.
FIG. 12 is a flowchart showing a recovery process at the time of restart after power-off.
Immediately after recovery from the power interruption, the page data on the volatile memory 103 is erased due to the power interruption, resulting in a state inconsistent with the cache management information protected by the power interruption. For this reason, since the page information erased in the volatile memory 103 must be removed from the cache management information, the processing shown in the flowchart of FIG. 12 is performed.

まず、ステップS31では、復旧処理中はキャッシュ管理情報が矛盾した状態でホストコンピュータからのライト、若しくはリードのリクエストを受け付けると誤動作を引き起こす可能性があるため、復旧処理が完了するまでリードもしくはライトのリクエストを一時停止する。そして、最初に揮発Clean LRUエントリ604のポインタを参照する。
ステップS32では、揮発Clean LRUエントリ604のポインタが最後(=NULL)か否かのチェックを行い、揮発Clean LRUエントリ604のポインタがNULLでなければ処理するキャッシュタグが有るので次のステップS33に進む。さもなくて、揮発Clean LRUエントリ604のポインタがNULLであれば処理するキャッシュタグが無いので、ステップS35に移る。
First, in step S31, if a write or read request is received from the host computer in a state where the cache management information is inconsistent during the recovery process, it may cause a malfunction. Pause the request. First, the pointer of the volatile Clean LRU entry 604 is referred to.
In step S32, it is checked whether or not the pointer of the volatile Clean LRU entry 604 is last (= NULL). If the pointer of the volatile Clean LRU entry 604 is not NULL, there is a cache tag to be processed, and the process proceeds to the next step S33. . Otherwise, if the pointer of the volatile Clean LRU entry 604 is NULL, there is no cache tag to process, and the process moves to step S35.

ステップS33では、該ポインタで示されるキャッシュタグのタグポインタ304で示されるキャッシュエントリのリンクから取り除くと共に、揮発Clean LRUエントリ701のリンクからも取り除く。その後、ステップS34では、該キャッシュタグを揮発メモリ空きエントリ601の最後に繋げ、ステップS31に戻って残りのキャッシュタグの処理の継続を行う。
ステップS35では、揮発性記憶媒体上のページの無効化の処理が完了したことになるので、ホストコンピュータからのリードあるいはライトリクエストの受付可能な状態に設定し、後に通常の状態に復帰する。
In step S33, it is removed from the link of the cache entry indicated by the tag pointer 304 of the cache tag indicated by the pointer and also from the link of the volatile Clean LRU entry 701. Thereafter, in step S34, the cache tag is connected to the end of the volatile memory free entry 601, and the process returns to step S31 to continue the processing of the remaining cache tags.
In step S35, since the process of invalidating the page on the volatile storage medium has been completed, it is set in a state where a read or write request from the host computer can be accepted, and then returns to the normal state.

図13は、本実施の形態に係るストレージシステムにおけるキャッシュ制御情報の初期値の1例を示す説明図である。
次に、図10、図11、図12のフローチャートを使用し、図13に示すキャッシュ制御情報の初期値を参照しながら、本実施形態に係るストレージシステムの動作を具体的な実施例で説明する。
この実施例では、図1に示した記憶媒体104は磁気ディスク装置(HDD)やシリコンディスク、光ディスク等のリード/ライト可能な記録媒体によって構成してよい。
記憶媒体104は前記の記憶媒体を1以上を有し、ホストアドレスからのリードまたはライトリクエストで、指定するアドレスに対して唯一のデータ格納場所を決定可能とする。
FIG. 13 is an explanatory diagram showing an example of the initial value of the cache control information in the storage system according to the present embodiment.
Next, referring to the initial values of the cache control information shown in FIG. 13, using the flowcharts of FIGS. 10, 11, and 12, the operation of the storage system according to this embodiment will be described in a specific example. .
In this embodiment, the storage medium 104 shown in FIG. 1 may be constituted by a readable / writable recording medium such as a magnetic disk device (HDD), a silicon disk, or an optical disk.
The storage medium 104 has one or more of the above storage media, and can determine a unique data storage location for a specified address by a read or write request from a host address.

また、実際に記憶媒体にデータ書き込まれる際に、媒体欠陥や媒体障害によりリードまたはライトができなくなることに備えて、同一データを複数の媒体に書くことや、ディスクアレイシステムで用いられるRAID制御等により、パリティを使ったデータの冗長化を行ってもよい。キャッシュ管理手段101から、これらの記憶媒体に対してリード動作またはライト動作を行う際には、これらの冗長化の処理は隠蔽化され、ホストコンピュータからのリードリクエストまたはライトリクエストで指定されるアドレスにより、仮想的に1つの格納場所に決定する。以下の説明では、記憶媒体104に対するリード動作またはライト動作は、これらの冗長化処理が隠蔽化されているものとする。また、これらホストコンピュータが指定するアドレスと格納アドレスは同一のアドレス空間を示すが、キャッシュ管理情報内で示されるポインタは、これらとは別のアドレス空間での管理が行われる。   In addition, when data is actually written to a storage medium, the same data is written to a plurality of media, RAID control used in a disk array system, etc. in preparation for the case where reading or writing cannot be performed due to a medium defect or medium failure. Thus, data redundancy using parity may be performed. When the cache management unit 101 performs a read operation or a write operation on these storage media, the redundancy processing is concealed and is performed according to the address specified by the read request or write request from the host computer. , Virtually determine one storage location. In the following description, it is assumed that these redundancy processes are concealed in the read operation or write operation on the storage medium 104. The addresses designated by these host computers and the storage addresses indicate the same address space, but the pointers shown in the cache management information are managed in a different address space.

図14は、本実施の形態に係るストレージシステムにおけるキャッシュ制御情報の1実施例としての状態図を示す説明図である。
以下、図1、図3、図10、図13、及び図14を参照して、本ストレージシステムに対してホストコンピュータからのライトリクエストが有った場合の1実施例について説明する。ホストコンピュータからライトリクエストを受け取ると、キャッシュ管理手段101は、受け取ったライトリクエストのアドレスを、キャッシュエントリ201のリンクに存在するキャッシュタグ内で検索する。この時、ホストコンピュータから受け取ったライトリクエストで示されるアドレスが、例えば“4700”とし、図13でキャッシュされたデータを管理するキャッシュタグのリンクがキャッシュエントリ1301のみに接続された状態であるものとする。
FIG. 14 is an explanatory diagram showing a state diagram as one example of cache control information in the storage system according to the present embodiment.
Hereinafter, with reference to FIG. 1, FIG. 3, FIG. 10, FIG. 13, and FIG. 14, one embodiment when there is a write request from the host computer to this storage system will be described. When the write request is received from the host computer, the cache management unit 101 searches the cache tag existing in the link of the cache entry 201 for the address of the received write request. At this time, the address indicated by the write request received from the host computer is, for example, “4700”, and the cache tag link for managing the cached data in FIG. 13 is connected only to the cache entry 1301. To do.

また、アドレス“4700”のアドレスのハッシュ値の計算がキャッシュエントリ1301のエントリを指し示すものとする。すると、キャッシュ管理手段101が指定されたアドレスからキャッシュエントリ1301のリンクに、該当するアドレスのタグが存在するか否かの検索を行う。キャッシュエントリ1301に格納されているポインタがこの時“7806”であり、キャッシュ管理手段101は、次に、アドレス“7806”で指定されるキャッシュタグ1302の格納アドレスの内容と、ホストコンピュータから指定されたアドレス“4700”との比較を行うと、キャッシュタグ1302の格納アドレスは“12A000”であるため一致しない。   Also, the calculation of the hash value of the address “4700” indicates the entry of the cache entry 1301. Then, the cache management unit 101 searches the link of the cache entry 1301 from the designated address to determine whether a tag with the corresponding address exists. The pointer stored in the cache entry 1301 is “7806” at this time, and the cache management unit 101 next specifies the contents of the storage address of the cache tag 1302 specified by the address “7806” and the host computer. When the comparison is made with the address “4700”, the storage address of the cache tag 1302 is “12A000”, which does not match.

そこで、キャッシュ管理手段101は、キャッシュタグ1302のタグポインタを参照し、次のキャッシュタグが存在するか否かの判断を行う。このため、キャッシュ管理手段101は、キャッシュタグの後方を参照するタグポインタF304aの値で示されるキャッシュタグを参照する。この時、キャッシュタグ1302のタグポインタF304aの値は“6450”であるので、この“6450”で指定されるキャッシュタグ1303を参照する。前回と同様にキャッシュタグ1303の格納アドレスを参照すると、“36C00”であり、ホストコンピュータから指定されたアドレス“4700”とは異なるため、更に後方のキャッシュタグの参照を行う。同様にキャッシュタグ1303のタグポインタF304aの値は“3200”である。   Therefore, the cache management unit 101 refers to the tag pointer of the cache tag 1302 and determines whether or not the next cache tag exists. Therefore, the cache management unit 101 refers to the cache tag indicated by the value of the tag pointer F304a that refers to the back of the cache tag. At this time, since the value of the tag pointer F304a of the cache tag 1302 is “6450”, the cache tag 1303 designated by this “6450” is referred to. When the storage address of the cache tag 1303 is referred to in the same manner as the previous time, it is “36C00”, which is different from the address “4700” designated by the host computer. Similarly, the value of the tag pointer F304a of the cache tag 1303 is “3200”.

この“3200”で示されるキャッシュタグはキャッシュタグ1304であり、キャッシュタグ1304の格納アドレスは“47600”である。やはり、ホストコンピュータの指定するアドレス“4700”とは異なるため、次のキャッシュタグが存在するか否かを引き続き検索するが、キャッシュタグ1304のタグポインタF(304a)(図3に示すキャッシュタグの符号を参照)は“NULL”を示しているので、キャッシュタグ1304はキャッシュエントリ1301の最後のタグであることが判定できる。故にホストコンピュータから指定されたアドレスで示されるデータは存在しないこととなり、検索の結果、該当するキャッシュタグは無いと判定する(ステップS1)。   The cache tag indicated by “3200” is the cache tag 1304, and the storage address of the cache tag 1304 is “47600”. Again, since the address is different from the address “4700” designated by the host computer, whether or not the next cache tag exists is continuously searched. The tag pointer F (304a) of the cache tag 1304 (the cache tag shown in FIG. (See reference numeral) indicates “NULL”, so that the cache tag 1304 can be determined to be the last tag of the cache entry 1301. Therefore, there is no data indicated by the address designated by the host computer, and it is determined that there is no corresponding cache tag as a result of the search (step S1).

次に、該アドレスのタグが無いと判定すると(ステップS2:NO)、不揮発メモリ空きエントリ1341のリンクの先頭からタグを取り出す。これには図14に示す不揮発空きエントリ1341を参照し、該不揮発空きエントリ1341で指し示されるキャッシュタグ1342を取り出す。不揮発空きエントリ1341のタグポインタは“7200”を示しているので、“7200”のキャッシュタグを参照する。キャッシュタグ1342を不揮発空きエントリのリンクから外すには、キャッシュタグエントリ1342のタグポインタF(304a)の内容をタグポインタB(304b)のポインタで示されるキャッシュタグのタグポインタF(304a)にコピーする。   Next, when it is determined that there is no tag at the address (step S2: NO), the tag is extracted from the head of the link of the nonvolatile memory empty entry 1341. For this, the nonvolatile empty entry 1341 shown in FIG. 14 is referred to, and the cache tag 1342 indicated by the nonvolatile empty entry 1341 is taken out. Since the tag pointer of the nonvolatile free entry 1341 indicates “7200”, the cache tag “7200” is referred to. To remove the cache tag 1342 from the link of the nonvolatile free entry, the contents of the tag pointer F (304a) of the cache tag entry 1342 are copied to the tag pointer F (304a) of the cache tag indicated by the pointer of the tag pointer B (304b). To do.

ここで不揮発空きエントリ1341のポインタは、他のキャッシュタグのタグポインタF(304a)と同等の扱いと考える。そして、キャッシュタグ1342のタグポインタB(304b)の内容をタグポインタF(304a)のポインタで示されるキャッシュタグ1343のタグポインタB(304b)に書き込むことで実現する。すると、不揮発空きエントリ1341の内容はキャッシュタグ1343のアドレス“8250”となり、キャッシュタグ1343のタグポインタB(304b)の内容は、不揮発空きエントリ1341を示す“7200”で置き換わり、これにてキャッシュタグ1342の取り出しを完了する。   Here, the pointer of the nonvolatile empty entry 1341 is considered to be equivalent to the tag pointer F (304a) of another cache tag. This is realized by writing the contents of the tag pointer B (304b) of the cache tag 1342 to the tag pointer B (304b) of the cache tag 1343 indicated by the pointer of the tag pointer F (304a). Then, the content of the nonvolatile empty entry 1341 becomes the address “8250” of the cache tag 1343, and the content of the tag pointer B (304b) of the cache tag 1343 is replaced with “7200” indicating the nonvolatile empty entry 1341. The removal of 1342 is completed.

他のエントリに関しても、キャッシュタグの取り出しは同様に行う。また、この時不揮発空きエントリ1341に空きページが無ければ、不揮発Clean LRUエントリからキャッシュタグを取り出して利用するか、不揮発Dirty LRUのキャッシュタグを取り出して利用する。不揮発Dirty LRUを取り出す際には、ページポインタで示されるページのデータを格納アドレスで一意に決定できる記憶媒体の領域に書き込んだ後に使用する(ステップS3)。   The cache tags are extracted in the same manner for other entries. At this time, if there is no empty page in the nonvolatile empty entry 1341, the cache tag is extracted from the nonvolatile Clean LRU entry and used, or the cache tag of the nonvolatile dirty LRU is extracted and used. When the nonvolatile dirty LRU is taken out, it is used after the page data indicated by the page pointer is written in the storage medium area that can be uniquely determined by the storage address (step S3).

キャッシュタグを取り出した後は、キャッシュタグ1342をキャッシュエントリ1301の最後に接続すると共に、不揮発Dirtyエントリ1321の最後に接続する。これには、キャッシュエントリ1301のポインタのキャッシュタグを順次後方にタグポインタF(304a)を参照しながらタグポインタF(304a)がNULLになるまで順次辿る。キャッシュタグ1304が最後のキャッシュタグとなるので、キャッシュタグ1304のタグポインタF(304a)の内容を、キャッシュタグ1342の先頭アドレスの値に置き換え、キャッシュタグ1342のタグポインタF(304a)の値をNULLに、キャッシュタグ1342のタグポインタB(304b)の内容をキャッシュタグ1304の先頭アドレスを格納する。   After the cache tag is taken out, the cache tag 1342 is connected to the end of the cache entry 1301 and also connected to the end of the nonvolatile dirty entry 1321. For this purpose, the cache tag of the pointer of the cache entry 1301 is sequentially traced backward until the tag pointer F (304a) becomes NULL while referring to the tag pointer F (304a). Since the cache tag 1304 is the last cache tag, the content of the tag pointer F (304a) of the cache tag 1304 is replaced with the value of the start address of the cache tag 1342, and the value of the tag pointer F (304a) of the cache tag 1342 is changed. In NULL, the contents of the tag pointer B (304b) of the cache tag 1342 and the head address of the cache tag 1304 are stored.

ここではキャッシュタグ1304のタグポインタ304aの値が“8310”に、キャッシュタグ1342のタグポインタF(304a)の値が“NULL”に、そしてキャッシュタグ1342のタグポインタB(304b)の値が“3200”となり、キャッシュエントリ1301を先頭とするリンクが完成する。また、同時に不揮発Dirty LRUエントリも同様にしてリンクの最後に追加を行う。するとキャッシュタグ1312のLRUポインタF(303a)の内容はキャッシュタグ1342の先頭アドレスである“8310”に置き換わり、キャッシュタグ1342のLRUポインタF303aは“NULL”に、同じくLRUポインタ303bの内容はキャッシュタグ1322の先頭アドレスである“6300”に置き換わり、不揮発Dirty LRUエントリ1321を先頭とするリンクが完成する。   Here, the value of the tag pointer 304a of the cache tag 1304 is “8310”, the value of the tag pointer F (304a) of the cache tag 1342 is “NULL”, and the value of the tag pointer B (304b) of the cache tag 1342 is “ 3200 ", and the link starting from the cache entry 1301 is completed. At the same time, a nonvolatile dirty LRU entry is added to the end of the link in the same manner. Then, the content of the LRU pointer F (303a) of the cache tag 1312 is replaced with “8310” which is the start address of the cache tag 1342, the LRU pointer F303a of the cache tag 1342 is “NULL”, and the content of the LRU pointer 303b is also the cache tag. The link starting from the nonvolatile dirty LRU entry 1321 is completed by replacing “6300” which is the start address of 1322.

この後、キャッシュタグ1342のキャッシュ情報のDirty情報306を1のDirtyにセットし、メモリ種別305を1の不揮発にセットし、格納アドレスをホストコンピュータからリードリクエストまたはライトリクエストで指定されたアドレス“4700”を格納する(ステップS4)。その後、キャッシュタグ1342のページポインタ302で示されるページ(この場合は“不揮発メモリページ8”のアドレスにホストコンピュータからのデータ)を格納し、ホストコンピュータにデータを書き込んだ旨を示す情報を送信し、ホストコンピュータからのライトリクエストを終了する(ステップS5)。   Thereafter, the Dirty information 306 of the cache information of the cache tag 1342 is set to 1 Dirty, the memory type 305 is set to 1 non-volatile, and the storage address is specified by the read request or write request from the host computer “4700”. "Is stored (step S4). Thereafter, the page indicated by the page pointer 302 of the cache tag 1342 (in this case, data from the host computer at the address of “nonvolatile memory page 8”) is stored, and information indicating that the data has been written is transmitted to the host computer. Then, the write request from the host computer is terminated (step S5).

以下、ステップS2で、該当するアドレスのタグが有った場合の1実施例について説明する。
この場合は、図13に示す状態で、ホストコンピュータからのライトリクエストで示されるアドレスが“36C00”であった場合に該当する。前述の場合と同様にアドレス“36C00”のハッシュ値の計算がキャッシュエントリ1301を示すとすると、前述の場合と同様にキャッシュエントリ1301のリンクのサーチを行う(ステップS1)。すると、キャッシュタグ1303の格納アドレスと一致するので、キャッシュにヒットしたと判定する(ステップS2)。次に、キャッシュタグ1303のキャッシュ情報301のDirty情報306が1のDirtyであるか否かを判別する(ステップS6)。
Hereinafter, one embodiment in the case where there is a tag of the corresponding address in step S2 will be described.
This case corresponds to the case where the address indicated by the write request from the host computer is “36C00” in the state shown in FIG. As in the case described above, if the calculation of the hash value of the address “36C00” indicates the cache entry 1301, the link search for the cache entry 1301 is performed as in the case described above (step S1). Then, since it matches the storage address of the cache tag 1303, it is determined that the cache has been hit (step S2). Next, it is determined whether or not the dirty information 306 of the cache information 301 of the cache tag 1303 is 1 dirty (step S6).

キャッシュタグ1303のDirty情報はDirtyであるので、キャッシュタグ1303ページポインタ、ここでは“不揮発メモリページ1”で示されるメモリのアドレスにホストコンピュータからのデータを書き込み、ホストコンピュータからのライトリクエストを完了するステップS5)。
キャッシュ情報301のDirty情報306がDirtyではない場合(即ちCleanである場合)を説明する。この場合、ステップS2では、ホストコンピュータからのライトリクエストが“47600”である場合と同様に、キャッシュエントリ1301のリンクのサーチを行い、その結果キャッシュタグ1304の格納情報が一致している。
Since the Dirty information of the cache tag 1303 is Dirty, the data from the host computer is written to the cache tag 1303 page pointer, here the memory address indicated by “nonvolatile memory page 1”, and the write request from the host computer is completed. Step S5).
A case where the dirty information 306 of the cache information 301 is not dirty (that is, clean) will be described. In this case, in step S2, as in the case where the write request from the host computer is “47600”, the link search of the cache entry 1301 is performed, and as a result, the storage information of the cache tag 1304 is the same.

ステップS6では、該キャッシュタグ1303のDirty情報がCleanであることを判定する(ステップS6:NO)。次に、同タグのキャッシュ情報301のメモリ種別305の判定を行い(ステップS7)、1の不揮発メモリであるので、キャッシュタグ1304の、Dirty情報306をCleanからDirtyに書き換えた後、該タグのページポインタ302で示されるアドレスのページにホストコンピュータからのライトデータを書き込み、ライトリクエストを完了する(ステップS5)。   In step S6, it is determined that the dirty information of the cache tag 1303 is Clean (step S6: NO). Next, the memory type 305 of the cache information 301 of the same tag is determined (step S7), and since it is one non-volatile memory, after rewriting the dirty information 306 of the cache tag 1304 from Clean to Dirty, Write data from the host computer is written to the page at the address indicated by the page pointer 302, and the write request is completed (step S5).

以下では、ステップS7でキャッシュ情報301のメモリ種別305が1の不揮発ではなかった場合(即ち0の揮発メモリで有った場合)の1実施例について説明する。
ここでホストコンピュータから指定されるライトリクエストのアドレスが“12A000”であるとする。アドレス“12A000”のハッシュ値の計算結果はキャッシュエントリ1301を指し示すものとする。この時、キャッシュエントリ1301のリンクを辿ると、キャッシュタグ1302の格納アドレスと一致し、該アドレスで指定されるデータがキャッシュに存在することが判定できる(ステップS1,S2:YES)。そこで、ステップS6で、キャッシュタグ1302のキャッシュ情報がCleanであることを判定し、ステップS7で、キャッシュ情報が揮発メモリであることを判定できる。これは、ライトリクエストのデータが揮発メモリに存在することを示す。
In the following, one embodiment will be described in the case where the memory type 305 of the cache information 301 is not 1 in step S7 (that is, 0 is a volatile memory).
Here, it is assumed that the address of the write request designated by the host computer is “12A000”. The calculation result of the hash value of the address “12A000” indicates the cache entry 1301. At this time, if the link of the cache entry 1301 is traced, it can be determined that the data matches the storage address of the cache tag 1302 and the data specified by the address exists in the cache (steps S1, S2: YES). Therefore, it can be determined in step S6 that the cache information of the cache tag 1302 is Clean, and in step S7, it can be determined that the cache information is volatile memory. This indicates that the data of the write request exists in the volatile memory.

ホストコンピュータからのライトリクエストのデータは電源断に備えて不揮発メモリに配置する、このため、揮発メモリのデータは無効化(即ちキャッシュのデータの破棄作業)を行い、同一アドレスの異なるデータが存在すること防止する。これは、キャッシュタグ1302をキャッシュエントリ1301から取り外すと同時に揮発Clean LRUエントリ1311のリンクから取り外し、揮発空きエントリ1351に接続することで実現する。   The data of the write request from the host computer is arranged in the nonvolatile memory in preparation for power failure. For this reason, the data in the volatile memory is invalidated (that is, the cache data is discarded), and there is data with the same address but different To prevent it. This is realized by removing the cache tag 1302 from the cache entry 1301 and simultaneously removing it from the link of the volatile Clean LRU entry 1311 and connecting it to the volatile empty entry 1351.

キャッシュタグ1302をキャッシュエントリのリンクから外すには、キャッシュタグエントリ1302のタグポインタF(304a)の内容をタグポインタB(304b)のポインタで示されるキャッシュタグのタグポインタF(304a)にコピーする。ここではキャッシュエントリ1301の内容を書き換えることになる。そして、キャッシュタグ1302のタグポインタB(304b)の内容をタグポインタF(304a)のポインタで示されるキャッシュタグ1303のタグポインタB(304b)に書き込むことで実現する。これで、キャッシュエントリ1301の内容にはキャッシュタグ1303のアドレス“6450”が入り、キャッシュタグ1303のタグポインタB(304b)の内容は、キャッシュタグエントリ1301を示す“3708”で置き換わり、キャッシュタグ1302の取り出しを完了する。   To remove the cache tag 1302 from the link of the cache entry, the contents of the tag pointer F (304a) of the cache tag entry 1302 are copied to the tag pointer F (304a) of the cache tag indicated by the pointer of the tag pointer B (304b). . Here, the contents of the cache entry 1301 are rewritten. This is realized by writing the contents of the tag pointer B (304b) of the cache tag 1302 into the tag pointer B (304b) of the cache tag 1303 indicated by the pointer of the tag pointer F (304a). Thus, the address “6450” of the cache tag 1303 is entered in the contents of the cache entry 1301, and the contents of the tag pointer B (304b) of the cache tag 1303 are replaced with “3708” indicating the cache tag entry 1301. Complete the removal.

同様に、揮発Clean LRUエントリ1311のリンクからも取り外す作業を行い、キャッシュタグ1302の取り出し処理を完了する。この時、揮発Clean LRUエントリ1311の内容はキャッシュタグ1312のアドレスである“6200”で置き換わり、キャッシュタグ1312のLRUポインタB(304b)の内容はエントリのアドレスの“1010”に置き換わり、揮発Clean LRUエントリからの取り外しを完了する。その後、揮発空きエントリ1351のリンクの最後に接続する。これには、揮発空きエントリ1351の内容で示されるアドレスのキャッシュタグのLRUポインタF(303a)を順次”NULL"になるまで辿る。   Similarly, the operation of removing from the link of the volatile Clean LRU entry 1311 is also performed, and the process for removing the cache tag 1302 is completed. At this time, the content of the volatile Clean LRU entry 1311 is replaced with “6200” which is the address of the cache tag 1312, and the content of the LRU pointer B (304b) of the cache tag 1312 is replaced with “1010” of the entry address. Complete removal from the entry. Thereafter, connection is made to the end of the link of the volatile free entry 1351. To this end, the LRU pointer F (303a) of the cache tag at the address indicated by the contents of the volatile free entry 1351 is sequentially traced until it becomes “NULL”.

図13に示す状態ではキャッシュタグ1353がリンクの最後となる。ここで、キャッシュタグ1353のLRUポインタF(303a)に1302の先頭アドレス“7806”を格納し、キャッシュタグ1302のLRUポインタF(303a)に”NULL"を、LRUポインタB(303b)にはキャッシュタグ1353の先頭アドレスである“8120”を書き込むことで実現する。
これらのキャッシュエントリとLRUエントリから取り外すことで、キャッシュの無効化が実現され、他の属性を持つキャッシュに関しても同様の手順で無効化が行われる。その後に、前述の場合と同様に新規に不揮発メモリ空きエントリ1341からページを確保する。
この手順はステップS3、ステップS4の場合と全く同じ処理となる(ステップS9)。
その後に、新規に取得されたキャッシュタグのページで示されるアドレスのページにホストコンピュータからのライトデータを書き込み、ホストコンピュータにライト書き込みを完了した旨の情報を返し、ライトリクエストを完了する(ステップS5)。
In the state shown in FIG. 13, the cache tag 1353 is the last link. Here, the head address “7806” of 1302 is stored in the LRU pointer F (303a) of the cache tag 1353, “NULL” is stored in the LRU pointer F (303a) of the cache tag 1302, and the cache is stored in the LRU pointer B (303b). This is realized by writing “8120” which is the head address of the tag 1353.
By removing these cache entries and LRU entries, the cache is invalidated, and the cache having other attributes is invalidated in the same procedure. After that, a page is newly secured from the non-volatile memory free entry 1341 as in the case described above.
This procedure is exactly the same as in steps S3 and S4 (step S9).
Thereafter, the write data from the host computer is written to the page of the address indicated by the newly acquired cache tag page, information indicating that the write writing is completed is returned to the host computer, and the write request is completed (step S5). ).

以下、図11に示すホストコンピュータからリードリクエストがあった場合の1実施例をフローチャートを使用して説明する。
ホストコンピュータからのリードリクエストをキャッシュ管理手段101が受け取ると、該リクエストで示されるリードを行うアドレスでハッシュを用いて、キャッシュエントリを決定する。この時、ホストコンピュータから送られて来るリードリクエストのアドレスが“12A000”でキャッシュ管理情報が図13に示す状態であったとすると、前述のライトリクエストの場合と同様にキャッシュエントリ1301の内容で示されるキャッシュタグを順次辿り、格納アドレスに指定されたアドレスの検索を行う。この時、キャッシュタグ1302の格納アドレスが“12A000”で一致する(ステップS21,S22)。
Hereinafter, an embodiment when a read request is received from the host computer shown in FIG. 11 will be described using a flowchart.
When the cache management unit 101 receives a read request from the host computer, the cache entry is determined using a hash at the address at which the read indicated by the request is performed. At this time, assuming that the address of the read request sent from the host computer is “12A000” and the cache management information is in the state shown in FIG. 13, it is indicated by the contents of the cache entry 1301 as in the case of the write request described above. The cache tag is sequentially traced, and the address specified as the storage address is searched. At this time, the storage address of the cache tag 1302 matches with “12A000” (steps S21 and S22).

その後、キャッシュタグ1302のページポインタで示されるページ、即ち“揮発メモリページ0”の情報をホストコンピュータに送信し、ホストコンピュータからのリードリクエストを完了する。また、ホストコンピュータからのリードリクエストで示されるアドレスが“36C00”、“47600”の場合も同様で、それぞれ該当するアドレスが“36C00”の場合は“不揮発メモリページ1”、アドレスが“47600”の場合は、“不揮発メモリページ2”のデータをホストコンピュータに送り、リードリクエストが終了した旨も返し、該リードリクエストを終了する(ステップ24)。   Thereafter, the page indicated by the page pointer of the cache tag 1302, that is, the information of “volatile memory page 0” is transmitted to the host computer, and the read request from the host computer is completed. The same applies to the case where the address indicated by the read request from the host computer is “36C00” and “47600”. When the corresponding address is “36C00”, “nonvolatile memory page 1” and the address is “47600”. In this case, the data of “nonvolatile memory page 2” is sent to the host computer, the fact that the read request is finished is also returned, and the read request is finished (step 24).

また、ステップS22で、リードリクエストで指定されるアドレスのデータが見つからなかった場合、即ちリードリクエストで指定されたアドレスと、キャッシュタグ201の格納アドレス307が一致しない場合には、新たに揮発メモリ空きエントリ604の先頭からタグを取り出すか、無ければ揮発Clean LRUエントリの先頭のタグを取り出し、データを格納するページを取得する。ここでホストコンピュータからのリードリクエストで指定されたアドレスが“5F000”で、アドレス“5F000”のハッシュ値がキャッシュエントリ1301を示した場合、ステップS21の場合と同様にキャッシュエントリ1301のリンクの検索を行う。この場合、それぞれのキャッシュタグの格納アドレスに一致するものが無いため、該当するキャッシュタグが無いと判定する(ステップS22)。   In step S22, if data at the address specified by the read request is not found, that is, if the address specified by the read request and the storage address 307 of the cache tag 201 do not match, a new volatile memory space is available. A tag is taken out from the head of the entry 604, or if not, the head tag of the volatile Clean LRU entry is taken out, and a page storing data is obtained. If the address specified in the read request from the host computer is “5F000” and the hash value of the address “5F000” indicates the cache entry 1301, the link search for the cache entry 1301 is performed in the same manner as in step S21. Do. In this case, since there is no match with the storage address of each cache tag, it is determined that there is no corresponding cache tag (step S22).

その後、新規に揮発メモリからページを確保する。それには揮発空きエントリ1351の内容で示される最初のキャッシュタグを取り出す。揮発空きエントリ1351に利用可能なキャッシュタグが無ければ、揮発Clean LRUエントリから取り出して使用する。この時、取り出されたキャッシュタグがキャッシュタグ1352であったとすると、キャッシュ情報301のDirty情報はCleanに、メモリ種別は揮発に設定し、該キャッシュタグ1352に、前述と同じ方法で、揮発LRUエントリ1311の最後と、キャッシュエントリ1301の最後へのリンク付け(接続)を行う。   Thereafter, a new page is secured from the volatile memory. For this purpose, the first cache tag indicated by the contents of the volatile free entry 1351 is taken out. If there is no available cache tag in the volatile free entry 1351, it is extracted from the volatile Clean LRU entry and used. At this time, if the fetched cache tag is the cache tag 1352, the dirty information of the cache information 301 is set to Clean, the memory type is set to volatile, and the volatile LRU entry is stored in the cache tag 1352 in the same manner as described above. Linking (connection) to the end of 1311 and the end of the cache entry 1301 is performed.

次に、該リードリクエストのアドレスを格納アドレス307に“5F000”を書き込むと共に、該アドレスで指定される記憶媒体104のデータをページポインタ302にアドレスで示されるページ、即ち“揮発メモリページ13”に書き込む(ステップS23)。
その後に書き込んだデータをホストコンピュータに送ると共に、リードリクエストが終了した旨を返し、該リードリクエストを完了する(ステップS24)。
以下、図12に示すフローチャートを使用して、電源断後に行われる再起動時の処理の1実施例について説明する。
電源断から復旧した直後は、電源断により揮発メモリ103上にあるページのデータは消去されており、不揮発メモリ102上のキャッシュ管理情報と矛盾した状態になる。このため、キャッシュ管理情報から、揮発メモリ103で消去されたページの情報を取り除かなければならない(以下で説明する)。
Next, “5F000” is written to the storage address 307 as the address of the read request, and the data of the storage medium 104 specified by the address is stored in the page indicated by the address in the page pointer 302, that is, “volatile memory page 13”. Write (step S23).
Thereafter, the written data is sent to the host computer, and the read request is returned, and the read request is completed (step S24).
Hereinafter, an embodiment of the process at the time of restarting performed after the power is turned off will be described using the flowchart shown in FIG.
Immediately after the recovery from the power interruption, the page data on the volatile memory 103 is erased due to the power interruption, resulting in a state inconsistent with the cache management information on the nonvolatile memory 102. For this reason, the information of the page erased in the volatile memory 103 must be removed from the cache management information (described below).

図13は電源再投入後のキャッシュ管理情報の状態を示している。まず、復旧処理中はキャッシュ管理情報が矛盾した状態でホストコンピュータからのライトリクエストまたはリードリクエストを受け付けると誤動作を引き起こす可能性があるため、復旧処理が完了するまでリードリクエストまたはライトリクエストの動作を一時停止する。そして、最初に揮発Clean LRUエントリ1311の示すポインタを参照し(ステップS31)、当該ポインタが最後を示すNULLポインタであるか否かの判定を行う(ここで、NULLであれば処理すべき揮発メモリ上に存在するキャッシュのキャッシュタグの取り除きが完了したこととなる)。 FIG. 13 shows the state of the cache management information after the power is turned on again. First, during a recovery process, accepting a write request or read request from the host computer with inconsistent cache management information can cause a malfunction, so the read request or write request operation is temporarily suspended until the recovery process is complete. Stop. First, the pointer indicated by the volatile Clean LRU entry 1311 is referred to (step S31), and it is determined whether or not the pointer is a NULL pointer indicating the end (if NULL, the volatile memory to be processed is processed). The removal of the cache tag of the existing cache has been completed).

まず、揮発Clean LRUエントリの内容を参照する。ここではキャッシュタグ1302がリンクに接続されているので“7806”が参照される(ステップS31)。
次に該当するポインタが“NULL”であるか否かの判定を行う(ステップS32)。
該当のポインタは“NULL”ではないため、これを揮発LRUエントリ1311とキャッシュエントリ1301から取り除き、その後に取り出したキャッシュタグ1302を揮発空きエントリ1351に接続することで完了する。
ちなみに、上記一連の処理は、図10のステップS9におけるキャッシュの無効化処理と同じ手順である(ステップS33,S34)。この時点で揮発Clean LRUエントリのリンクは揮発Clean LRUエントリの内容がキャッシュタグ1312の先頭アドレス、キャッシュタグ1312のタグポインタBがエントリの先頭アドレス、タグポインタFが“NULL”の状態である。この状態で再びステップS31,S32に戻り、揮発Cleanエントリの内容が“NULL”であるか否かを判定する。
First, refer to the contents of the volatile Clean LRU entry. Here, since the cache tag 1302 is connected to the link, “7806” is referred to (step S31).
Next, it is determined whether or not the corresponding pointer is “NULL” (step S32).
Since the corresponding pointer is not “NULL”, it is removed from the volatile LRU entry 1311 and the cache entry 1301, and the cache tag 1302 taken out thereafter is connected to the volatile free entry 1351 to complete the operation.
Incidentally, the above-described series of processing is the same procedure as the cache invalidation processing in step S9 of FIG. 10 (steps S33 and S34). At this time, the link of the volatile Clean LRU entry is such that the content of the volatile Clean LRU entry is the start address of the cache tag 1312, the tag pointer B of the cache tag 1312 is the start address of the entry, and the tag pointer F is “NULL”. In this state, the process returns to steps S31 and S32 again to determine whether or not the content of the volatile Clean entry is “NULL”.

ここではキャッシュタグ1312の先頭アドレスである“6200”が格納されているので、次の処理に移行する。前回と同様にキャッシュタグ1312の取り出しを行う。この時点で、揮発Clean LRUエントリの内容は“NULL”の状態となる。そしてステップS31に戻り、再び揮発Clean LRUエントリを参照する。
この時揮発Clean LRUエントリの内容は“NULL”であるため、無効化すべきキャッシュは全て完了したこととなり、ステップS35に移る(ステップS32)。ステップS35では、抑止されていたホストコンピュータからのリードリクエストまたはライトリクエストの受付の開始を行い、以後、通常のリード/ライトリクエストに対する処理を行って処理を終了する。
Here, since “6200” which is the head address of the cache tag 1312 is stored, the processing shifts to the next processing. As in the previous time, the cache tag 1312 is taken out. At this point, the content of the volatile Clean LRU entry is in a “NULL” state. Then, the process returns to step S31 to refer to the volatile Clean LRU entry again.
At this time, since the content of the volatile Clean LRU entry is “NULL”, all the caches to be invalidated are completed, and the process proceeds to step S35 (step S32). In step S35, reception of the read request or write request from the host computer that has been suppressed is started, and thereafter, processing for a normal read / write request is performed and the processing is terminated.

以上に示す実施例の各々では、新規若しくは再利用されたキャッシュタグのキャッシュエントリのリンクへの接続はリンクの最後(最後尾)に付けているが、これは任意のキャッシュエントリの直後に接続してもよく、その場合も最後に接続するのと同様の処理で可能である。また、不揮発空きエントリや、揮発空きエントリについても上記と同様である。
揮発Clean LRUエントリ、不揮発Dirty LRUエントリ、不揮発Cleanエントリについても、リンクの最後(最後尾)に接続を行っていたが、これは基本的なLRU(先入れ後出しアルゴリズム)の考え方に基づいており、LRUのアルゴリズムやキャッシュ再利用の最適化アルゴリズムなどによってはリンクの最後ではなく、途中や先頭に接続することも考えられる。この場合もリンクの最後に接続する処理をリンクの途中に適用することが可能である。
In each of the embodiments shown above, the connection to the link of the cache entry of a new or reused cache tag is attached at the end (end) of the link, but this is connected immediately after any cache entry. In this case, the same processing as that for the last connection is possible. The same applies to the nonvolatile empty entry and the volatile empty entry.
The volatile Clean LRU entry, non-volatile Dirty LRU entry, and non-volatile Clean entry were also connected at the end of the link (the end), but this is based on the basic LRU (first-in last-out algorithm) concept. Depending on the LRU algorithm and cache reuse optimization algorithm, it may be possible to connect to the middle or beginning of the link instead of the end of the link. Also in this case, it is possible to apply the process of connecting to the end of the link in the middle of the link.

これらの処理を行うことで、媒体から読み出したリードデータを揮発メモリに格納し、ホストから送られたライトデータを不揮発メモリに格納することが可能となり、かつ電源断後の復旧後においても揮発メモリ上で喪失されたキャッシュの無効化が行われ、以降矛盾の無い動作を可能としている。結果として不揮発メモリの使用量を抑えることが可能となり、ひいては不揮発メモリに必要なバッテリーバックアップを最小限にすることが可能となる。   By performing these processes, the read data read from the medium can be stored in the volatile memory, the write data sent from the host can be stored in the non-volatile memory, and the volatile memory can be restored even after the power is restored. Invalidation of the cache lost above is performed, so that operation without contradiction is enabled thereafter. As a result, it is possible to reduce the amount of use of the nonvolatile memory, and as a result, it is possible to minimize the battery backup required for the nonvolatile memory.

また、この実施例では、不揮発メモリはDRAM等の揮発メモリを使用し、これをバッテリーバックアップすることを想定したが、バッテリーバックアップを必要としない他の不揮発半導体メモリ、例えばFeRAMやMRAM等にも同様に適用可能である。なお、これらの不揮発半導体メモリは価格が高いが、本発明に係るストレージシステムでは、これら高価なメモリの使用量を節減できるので、低価格化が可能になるという別の効果が達成できる。   In this embodiment, it is assumed that the nonvolatile memory uses a volatile memory such as a DRAM and is backed up by a battery. However, the same applies to other nonvolatile semiconductor memories that do not require a battery backup, such as FeRAM and MRAM. It is applicable to. Although these non-volatile semiconductor memories are expensive, the storage system according to the present invention can reduce the amount of use of these expensive memories, thereby achieving another effect that the price can be reduced.

また、不揮発メモリの代わりに、記憶媒体に比して高速ではあるが価格の高い磁気ディスクなどでも同様の効果が得られる(よって、単なるキャシュメモリだけではなく、いわゆる仮想記憶装置とも呼称される階層構造を有する記憶装置(即ち、磁気ディスク装置を主体に階層化された記憶装置)の構築にも適用可能である)。また、上記の実施例では、記憶媒体は磁気ディスクなどの大容量で比較的低速な記憶媒体としたが、記憶媒体としては、上記の記憶媒体とは別に、1つ以上のストレージを使用してもよい。   Further, a similar effect can be obtained with a magnetic disk that is faster than a storage medium but is more expensive than a non-volatile memory (thus, not only a cache memory but also a so-called virtual storage device) The present invention can also be applied to the construction of a storage device having a structure (that is, a storage device that is mainly hierarchized by a magnetic disk device). In the above embodiment, the storage medium is a large-capacity and relatively low-speed storage medium such as a magnetic disk. However, as the storage medium, one or more storages are used separately from the storage medium. Also good.

なお、本発明に係るストレージシステムの各構成要素の処理の少なくとも一部をコンピュータ制御により実行するものとし、かつ、上記処理を、図10,11,12の各フローチャートで示した手順によりコンピュータに実行せしめるプログラムは、半導体メモリを始め、CD−ROMや磁気テープなどのコンピュータ読み取り可能な記録媒体に格納して配付してもよい。そして、少なくともマイクロコンピュータ、パーソナルコンピュータ、汎用コンピュータを範疇に含むコンピュータが、上記の記録媒体から上記プログラムを読み出して、実行するものとしてもよい。   It should be noted that at least a part of the processing of each component of the storage system according to the present invention is executed by computer control, and the above processing is executed by the computer according to the procedures shown in the flowcharts of FIGS. The program to be shown may be distributed by storing it in a computer-readable recording medium such as a semiconductor memory, a CD-ROM, or a magnetic tape. A computer including at least a microcomputer, a personal computer, and a general-purpose computer may read and execute the program from the recording medium.

本発明は、ディスクアレイのキャッシュ制御、パーソナルコンピュータやサーバなどが内蔵する磁気ディスクのキャッシュ、特に大容量バッテリーによるバックアップを必要とするキャッシュの構築に好適に適用可能である。また、磁気ディスク装置や光ディスク装置などを主体とする階層記憶装置においても、停電時保証を必要とするキャッシュ機構が用いられる場合には適用可能である。   The present invention can be suitably applied to cache control of a disk array, a cache of a magnetic disk built in a personal computer, a server, or the like, particularly a cache that requires backup with a large capacity battery. The present invention can also be applied to a hierarchical storage device mainly composed of a magnetic disk device, an optical disk device, etc., when a cache mechanism requiring a power failure guarantee is used.

本発明の実施の形態に係るストレージシステムの全体構成を示す構成図である。1 is a configuration diagram showing an overall configuration of a storage system according to an embodiment of the present invention. 本実施の形態に係るストレージシステムのキャッシュ管理情報の全体構成を示す構成図である。It is a block diagram which shows the whole structure of the cache management information of the storage system which concerns on this Embodiment. キャッシュタグ202の構成を示す構成図である。2 is a configuration diagram showing a configuration of a cache tag 202. FIG. 不揮発メモリ401上のページ構成を示す構成図である。4 is a configuration diagram showing a page configuration on a nonvolatile memory 401. FIG. 揮発メモリ501上のページ構成を示す構成図である。3 is a configuration diagram showing a page configuration on a volatile memory 501. FIG. 空きページ管理のためのリンク構成を示す構成図である。It is a block diagram which shows the link structure for empty page management. 揮発メモリに割り当てられるCleanなキャッシュページのLRU構成を示す構成図である。It is a block diagram which shows the LRU structure of the clean cache page allocated to a volatile memory. 不揮発メモリに割り当てられるDirtyなキャッシュページのLRU構成を示す構成図である。It is a block diagram which shows the LRU structure of the dirty cache page allocated to a non-volatile memory. 不揮発メモリに割り当てられるCleanなキャッシュページのLRU構成を示す構成図である。It is a block diagram which shows the LRU structure of the clean cache page allocated to a non-volatile memory. 本発明の実施の形態に係るストレージシステムのライトリクエスク時の動作を示すフローチャート図である。It is a flowchart figure which shows the operation | movement at the time of the write request of the storage system which concerns on embodiment of this invention. 本発明の実施の形態に係るストレージシステムのリードリクエスク時の動作を示すフローチャート図である。It is a flowchart figure which shows the operation | movement at the time of the read request of the storage system which concerns on embodiment of this invention. 本発明の実施の形態に係るストレージシステムの電源断後の復旧動作を示すフローチャート図である。It is a flowchart figure which shows the recovery operation after the power-off of the storage system which concerns on embodiment of this invention. 本実施の形態に係るストレージシステムにおけるキャッシュ制御情報の初期値の1例を示す説明図である。It is explanatory drawing which shows an example of the initial value of the cache control information in the storage system which concerns on this Embodiment. 本実施の形態に係るストレージシステムにおけるキャッシュ制御情報の1実施例としての状態図を示す説明図である。It is explanatory drawing which shows the state figure as one Example of the cache control information in the storage system which concerns on this Embodiment.

符号の説明Explanation of symbols

101 キャッシュ管理手段
102 不揮発メモリ
103 揮発メモリ
104 記憶媒体
201 キャッシュエントリ
202 キャッシュタグ
301 キャッシュ情報
302 ページポインタ
303 LRUポインタ
303a LRUポインタF
303b LRUポインタB
304 タグポインタ
304a タグポインタF
304b タグポインタB
305 メモリ種別
306 Dirty情報
307 格納アドレス
401 不揮発メモリ
501 揮発メモリ
601 不揮発メモリ空きエントリ
602,603 キャッシュタグ
604 揮発メモリ空きエントリ
605、606 キャッシュタグ
701 揮発Clean LRUエントリ
702〜704 キャッシュタグ
801 不揮発Dirty LRUエントリ
802〜804 キャッシュタグ
901 不揮発Clean LRUエントリ
902〜904 キャッシュタグ
DESCRIPTION OF SYMBOLS 101 Cache management means 102 Non-volatile memory 103 Volatile memory 104 Storage medium 201 Cache entry 202 Cache tag 301 Cache information 302 Page pointer 303 LRU pointer 303a LRU pointer F
303b LRU pointer B
304 Tag pointer 304a Tag pointer F
304b Tag pointer B
305 Memory type 306 Dirty information 307 Storage address 401 Non-volatile memory 501 Volatile memory 601 Non-volatile memory empty entry 602, 603 Cache tag 604 Volatile memory empty entry 605, 606 Cache tag 701 Volatile Clean LRU entry 702-704 Cache tag 801 Non-volatile dirty LRU entry 802 to 804 Cache tag 901 Nonvolatile Clean LRU entry 902 to 904 Cache tag

Claims (6)

上位装置の要求データ入出力速度よりもデータ入出力速度が遅い大記憶装置を備えると共に、前記上位装置と前記大記憶装置とのデータ入出力速度の差を緩和するキャッシュ手段のキャッシュメモリとして、停電時記憶保持用のバッテリーを有する不揮発性半導体メモリと、揮発性半導体メモリとを備えたストレージシステムにおいて、
前記上位装置からデータ書き込み要求が送出された場合に、前記書き込み要求データを前記不揮発性半導体メモリに一時格納すると共に、前記不揮発性半導体メモリに前記書き込み要求データを格納した時点で、前記上位装置に、前記書き込み要求データの書き込みを完了した旨の通知を応答する手段と、
前記上位装置からデータ読み出し要求が送出された場合に、前記大記憶装置から前記読み出し要求に合致するデータを読み込んで前記揮発性半導体メモリに格納すると共に、以後、前記上位装置からのデータ読み出し要求が送出された際には、前記揮発性半導体メモリに格納した前記データを読み出して前記上位装置に送出する手段と、
電源断から復旧した時点で、前記揮発性半導体メモリに格納した前記データのページが存在する場合には、前記ページを無効化する手段と、
を備えたことを特徴とするストレージシステム。
A power failure is provided as a cache memory having a large storage device whose data input / output speed is slower than the requested data input / output speed of the host device, and for reducing the difference in data input / output speed between the host device and the large storage device. In a storage system comprising a non-volatile semiconductor memory having a battery for holding time and a volatile semiconductor memory,
When a data write request is sent from the host device, the write request data is temporarily stored in the nonvolatile semiconductor memory, and the write request data is stored in the nonvolatile semiconductor memory. Means for responding to the notification that the writing of the write request data has been completed;
When a data read request is sent from the host device, data matching the read request is read from the large storage device and stored in the volatile semiconductor memory. Thereafter, a data read request from the host device is received. Means for reading out the data stored in the volatile semiconductor memory and sending it to the host device when sent out;
When the page of the data stored in the volatile semiconductor memory exists at the time of recovery from the power interruption, the means for invalidating the page;
A storage system characterized by comprising:
前記不揮発性半導体メモリに前記上位装置からの書き込み要求データを書き込む際に実行する手段として、前記揮発性半導体メモリ上に前記書き込み要求データと同一アドレスのデータが存在するか否かを検証する手段と、前記揮発性半導体メモリ上に前記同一アドレスのデータが存在することが判明した場合には前記揮発性半導体メモリ上の前記データの無効化を行う手段と、を備えたことを特徴とする請求項1記載のストレージシステム。 Means for verifying whether data having the same address as the write request data exists on the volatile semiconductor memory, as means executed when writing the write request data from the host device to the nonvolatile semiconductor memory; And a means for invalidating the data on the volatile semiconductor memory when it is found that the data of the same address exists on the volatile semiconductor memory. The storage system according to 1. 前記上位装置にはコンピュータシステムが含まれることを特徴とする請求項1記載のストレージシステム。   The storage system according to claim 1, wherein the host device includes a computer system. 前記大記憶装置には磁気ディスク装置または光ディスク装置が含まれることを特徴とする請求項1記載のストレージシステム。   The storage system according to claim 1, wherein the large storage device includes a magnetic disk device or an optical disk device. 停電時記憶保持用のバッテリーを有する不揮発性半導体メモリと、揮発性半導体メモリとを備え、上位装置と大記憶装置とのデータ入出力速度の差を緩和するストレージのキャッシュ制御方法において、
前記上位装置からデータ書き込み要求が送出された場合に、前記書き込み要求データを前記不揮発性半導体メモリに一時格納すると共に、前記不揮発性半導体メモリに前記書き込み要求データを格納した時点で、前記上位装置に、前記書き込み要求データの書き込みを完了した旨の通知を応答するステップと、
前記上位装置からデータ読み出し要求が送出された場合に、前記大記憶装置から前記読み出し要求に合致するデータを読み込んで前記揮発性半導体メモリに格納すると共に、以後、前記上位装置からのデータ読み出し要求が送出された際には、前記揮発性半導体メモリに格納した前記データを読み出して前記上位装置に送出するステップと、
電源断から復旧した時点で、前記揮発性半導体メモリに格納した前記データのページが存在する場合には、前記ページを無効化するステップと、
を有することを特徴とするストレージのキャッシュ制御方法。
In a storage cache control method comprising a nonvolatile semiconductor memory having a battery for storing memory during a power failure, and a volatile semiconductor memory, and mitigating a difference in data input / output speed between a host device and a large storage device,
When a data write request is sent from the host device, the write request data is temporarily stored in the nonvolatile semiconductor memory, and the write request data is stored in the nonvolatile semiconductor memory. Responding with a notification that the writing of the write request data has been completed;
When a data read request is sent from the host device, data matching the read request is read from the large storage device and stored in the volatile semiconductor memory. Thereafter, a data read request from the host device is received. When sent, the step of reading the data stored in the volatile semiconductor memory and sending it to the host device;
When there is a page of the data stored in the volatile semiconductor memory at the time of recovery from a power failure, invalidating the page;
A storage cache control method comprising:
停電時記憶保持用のバッテリーを有する不揮発性半導体メモリと、揮発性半導体メモリとを備え、上位装置と大記憶装置とのデータ入出力速度の差を緩和するキャッシュの制御をコンピュータに実行させるストレージのキャッシュ制御プログラムにおいて、
前記上位装置からデータ書き込み要求が送出された場合に、前記書き込み要求データを前記不揮発性半導体メモリに一時格納すると共に、前記不揮発性半導体メモリに前記書き込み要求データを格納した時点で、前記上位装置に、前記書き込み要求データの書き込みを完了した旨の通知を応答するステップと、
前記上位装置からデータ読み出し要求が送出された場合に、前記大記憶装置から前記読み出し要求に合致するデータを読み込んで前記揮発性半導体メモリに格納すると共に、以後、前記上位装置からのデータ読み出し要求が送出された際には、前記揮発性半導体メモリに格納した前記データを読み出して前記上位装置に送出するステップと、
電源断から復旧した時点で、前記揮発性半導体メモリに格納した前記データのページが存在する場合には、前記ページを無効化するステップと、
を有することを特徴とするストレージのキャッシュ制御プログラム。
A storage device comprising a nonvolatile semiconductor memory having a battery for storing memory during a power failure and a volatile semiconductor memory, which allows a computer to execute cache control to reduce a difference in data input / output speed between a host device and a large storage device. In the cache control program,
When a data write request is sent from the host device, the write request data is temporarily stored in the nonvolatile semiconductor memory, and the write request data is stored in the nonvolatile semiconductor memory. Responding with a notification that the writing of the write request data has been completed;
When a data read request is sent from the host device, data matching the read request is read from the large storage device and stored in the volatile semiconductor memory. Thereafter, a data read request from the host device is received. When sent, the step of reading the data stored in the volatile semiconductor memory and sending it to the host device;
When there is a page of the data stored in the volatile semiconductor memory at the time of recovery from a power failure, invalidating the page;
A storage cache control program comprising:
JP2008331452A 2008-12-25 2008-12-25 Storage system, cache control method and cache control program for storage Pending JP2010152747A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2008331452A JP2010152747A (en) 2008-12-25 2008-12-25 Storage system, cache control method and cache control program for storage

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2008331452A JP2010152747A (en) 2008-12-25 2008-12-25 Storage system, cache control method and cache control program for storage

Publications (1)

Publication Number Publication Date
JP2010152747A true JP2010152747A (en) 2010-07-08

Family

ID=42571742

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2008331452A Pending JP2010152747A (en) 2008-12-25 2008-12-25 Storage system, cache control method and cache control program for storage

Country Status (1)

Country Link
JP (1) JP2010152747A (en)

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5404798B2 (en) * 2009-09-21 2014-02-05 株式会社東芝 Virtual storage management device and storage management device
JP2014041649A (en) * 2013-10-28 2014-03-06 Toshiba Corp Virtual storage management device and storage management device
JP2015018575A (en) * 2014-09-25 2015-01-29 株式会社東芝 Storage device, information processing apparatus, and program
JP2015141545A (en) * 2014-01-29 2015-08-03 日本電気株式会社 Storage control device, storage control method, and program
WO2015186243A1 (en) * 2014-06-06 2015-12-10 株式会社日立製作所 Storage device
US9235515B2 (en) 2012-03-29 2016-01-12 Semiconductor Energy Laboratory Co., Ltd. Array controller and storage system
JP2016015012A (en) * 2014-07-02 2016-01-28 日本電気株式会社 Storage device, control apparatus, storage device control method, and program
WO2016117129A1 (en) * 2015-01-23 2016-07-28 株式会社日立製作所 Storage system and control method therefor

Cited By (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9471507B2 (en) 2009-09-21 2016-10-18 Kabushiki Kaisha Toshiba System and device for page replacement control between virtual and real memory spaces
US8775752B2 (en) 2009-09-21 2014-07-08 Kabushiki Kaisha Toshiba Virtual memory management apparatus and memory management apparatus
US9910602B2 (en) 2009-09-21 2018-03-06 Toshiba Memory Corporation Device and memory system for storing and recovering page table data upon power loss
US8990525B2 (en) 2009-09-21 2015-03-24 Kabushiki Kaisha Toshiba Virtual memory management apparatus
JP5404798B2 (en) * 2009-09-21 2014-02-05 株式会社東芝 Virtual storage management device and storage management device
US9235515B2 (en) 2012-03-29 2016-01-12 Semiconductor Energy Laboratory Co., Ltd. Array controller and storage system
JP2014041649A (en) * 2013-10-28 2014-03-06 Toshiba Corp Virtual storage management device and storage management device
JP2015141545A (en) * 2014-01-29 2015-08-03 日本電気株式会社 Storage control device, storage control method, and program
US9501414B2 (en) 2014-01-29 2016-11-22 Nec Corporation Storage control device and storage control method for cache processing according to time zones
WO2015186243A1 (en) * 2014-06-06 2015-12-10 株式会社日立製作所 Storage device
JP2016015012A (en) * 2014-07-02 2016-01-28 日本電気株式会社 Storage device, control apparatus, storage device control method, and program
JP2015018575A (en) * 2014-09-25 2015-01-29 株式会社東芝 Storage device, information processing apparatus, and program
WO2016117129A1 (en) * 2015-01-23 2016-07-28 株式会社日立製作所 Storage system and control method therefor
CN107111459A (en) * 2015-01-23 2017-08-29 株式会社日立制作所 Storage system and its control method
JPWO2016117129A1 (en) * 2015-01-23 2017-11-09 株式会社日立製作所 Storage system and control method thereof
US10452321B2 (en) 2015-01-23 2019-10-22 Hitachi, Ltd. Storage system and control method therefor
CN107111459B (en) * 2015-01-23 2020-06-26 株式会社日立制作所 Storage system and control method thereof

Similar Documents

Publication Publication Date Title
US8862808B2 (en) Control apparatus and control method
US20200034304A1 (en) Techniques to perform power fail-safe caching without atomic metadata
US8762661B2 (en) System and method of managing metadata
EP2329361B1 (en) Aggregation of write traffic to a data store
US8549225B2 (en) Secondary cache for write accumulation and coalescing
US8819367B1 (en) Accelerated translation power recovery
JP2010152747A (en) Storage system, cache control method and cache control program for storage
US9158673B2 (en) Use of differing granularity heat maps for caching and migration
KR101567134B1 (en) Buffer cache apparatus, journaling file system and journaling method for incorporating journaling features within non-volatile buffer cache
US20100235568A1 (en) Storage device using non-volatile memory
JP2001166993A (en) Memory control unit and method for controlling cache memory
US10423343B2 (en) Information processing device and memory controller
US9940071B2 (en) Memory system that carries out an atomic write operation
KR101023877B1 (en) Method managing cache/disk and controller of enabling the method
US9471252B2 (en) Use of flash cache to improve tiered migration performance
US8938641B2 (en) Method and apparatus for synchronizing storage volumes
TW202409840A (en) Non-transitory computer-readable medium, storage device and storage method
JP4892812B2 (en) Cache control and data processing system and processing program therefor
JP2006099802A (en) Storage controller, and control method for cache memory
KR100866513B1 (en) Data Process Method Using Journaling File System Based on Flash Memory
KR101474843B1 (en) Buffer cache apparatus, journaling file system and journaling method for incorporating journaling features within non-volatile buffer cache
JP7470112B2 (en) Persistent Memory Cleaning
JP4989861B2 (en) Data writing method and disk device
TW201418984A (en) Method for protecting data integrity of disk and computer program product for implementing the method
KR101450157B1 (en) Apparatus and method for cooperative data management for non-volatile ubj buffer cache and non-volatile storage

Legal Events

Date Code Title Description
RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20100709