JP4734432B2 - Data storage system - Google Patents

Data storage system Download PDF

Info

Publication number
JP4734432B2
JP4734432B2 JP2009035266A JP2009035266A JP4734432B2 JP 4734432 B2 JP4734432 B2 JP 4734432B2 JP 2009035266 A JP2009035266 A JP 2009035266A JP 2009035266 A JP2009035266 A JP 2009035266A JP 4734432 B2 JP4734432 B2 JP 4734432B2
Authority
JP
Japan
Prior art keywords
data
storage device
read
write
storage
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.)
Expired - Fee Related
Application number
JP2009035266A
Other languages
Japanese (ja)
Other versions
JP2010191672A (en
Inventor
剛彦 蔵重
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.)
Toshiba Corp
Original Assignee
Toshiba 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 Toshiba Corp filed Critical Toshiba Corp
Priority to JP2009035266A priority Critical patent/JP4734432B2/en
Publication of JP2010191672A publication Critical patent/JP2010191672A/en
Application granted granted Critical
Publication of JP4734432B2 publication Critical patent/JP4734432B2/en
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Memory System Of A Hierarchy Structure (AREA)

Description

この発明は、例えば1台以上のHDD(Hard Disk Drive)を備えてなるディスクシステム等に適用して好適なレスポンス性能の向上化技術に関する。   The present invention relates to a technique for improving response performance suitable for application to, for example, a disk system including one or more HDDs (Hard Disk Drives).

近年、ノートブックタイプやデスクトップタイプ等、様々な種類のパーソナルコンピュータが広く利用されている。この種のパーソナルコンピュータの多くは、外部記憶装置としてHDDを利用する。   In recent years, various types of personal computers such as notebook type and desktop type have been widely used. Many personal computers of this type use an HDD as an external storage device.

また、最近では、HDDのレスポンス性能を向上させるために、HDDに不揮発性メモリを内蔵させ、不揮発性半導体メモリをキャッシュとして利用するといった、いわゆるハイブリッドHDDに関する提案も種々なされている(例えば特許文献1等参照)。   Recently, in order to improve the response performance of the HDD, various proposals have been made regarding so-called hybrid HDDs in which a nonvolatile memory is built in the HDD and the nonvolatile semiconductor memory is used as a cache (for example, Patent Document 1). Etc.).

特開2003−167781号公報JP 2003-167781 A

ところで、多数の社員がパーソナルコンピュータを各々使用して作業を進めるオフィス等においては、これらのパーソナルコンピュータを相互に接続するためのLAN(Local Area Network)を敷設することが一般的となっており、また、データの共有化やデータの一元管理化を目的として、大容量のディスクシステムを当該LAN経由でアクセス可能に設置すること等も行われている。   By the way, in offices where a large number of employees work by using personal computers, it is common to install a LAN (Local Area Network) for connecting these personal computers to each other. In addition, for the purpose of data sharing and unified data management, a large capacity disk system is installed so as to be accessible via the LAN.

ディスクシステムは、例えば複数台のHDDを備えることによって、低コストで大容量化を実現している。もし、そのレスポンス性能を向上させるために、(各々がキャッシュとして不揮発性半導体メモリを内蔵する)ハイブリッドHDDを通常のHDDに代えて適用したならば、大幅なコストアップを招いてしまう。   The disk system, for example, includes a plurality of HDDs, thereby realizing an increase in capacity at a low cost. If a hybrid HDD (each of which incorporates a nonvolatile semiconductor memory as a cache) is applied in place of a normal HDD in order to improve the response performance, a significant cost increase will be caused.

この発明はこのような事情を考慮してなされたものであり、例えば1台以上のHDDを備えてなるディスクシステム等のレスポンス性能を大幅なコストアップを招くことなく向上させることを実現したデータ記憶システムを提供することを目的とする。   The present invention has been made in consideration of such circumstances, and for example, a data storage that can improve the response performance of a disk system or the like having one or more HDDs without causing a significant cost increase. The purpose is to provide a system.

実施形態によれば、データ記憶システムは、1台以上の第1の記憶装置と、第2の記憶装置と、前記第1の記憶装置のキャッシュとして前記第2の記憶装置を用いるべく前記第1の記憶装置および前記第2の記憶装置を制御し、前記第2の記憶装置上に存在するデータが前記第1の記憶装置上のデータ全体であるか否かを示す第1のフラグ情報を管理する制御装置と、を具備し、前記制御装置は、前記第1の記憶装置に格納されたデータの読み出しを要求された際、前記第1のフラグ情報より、前記読み出し対象のデータ全体が前記第2の記憶装置に存在する場合、前記第2の記憶装置に格納されているデータを読み出して要求元に転送し、前記第1のフラグ情報より、前記読み出し対象のデータの一部が前記第2の記憶装置に存在する場合、前記第2の記憶装置から読み出したデータの一部と前記第1の記憶装置から読み出したデータのその他の部分とをマージして要求元に転送すると共に、前記マージ後のデータを前記第2の記憶装置に格納して前記第1のフラグ情報をデータ全体が存在する旨を示すように更新し、読み出し対象のデータが前記第2の記憶装置に格納されていない場合、当該読み出し対象のデータを前記第1の記憶装置から読み出して要求元に転送すると共に、当該読み出したデータを前記第2の記憶装置に格納して前記第1のフラグ情報をデータ全体が存在する旨を示すように更新するリード制御手段を有する。 According to an embodiment, the data storage system includes one or more first storage devices, a second storage device, and the first storage device to use the second storage device as a cache of the first storage device . Control the first storage device and the second storage device, and manage first flag information indicating whether or not the data existing on the second storage device is the entire data on the first storage device And when the control device is requested to read the data stored in the first storage device, the entire data to be read is determined from the first flag information by the first flag information. When the data is present in the second storage device, the data stored in the second storage device is read and transferred to the request source, and a part of the data to be read is stored in the second flag information based on the first flag information. Exists in the storage device A part of the data read from the second storage device and the other part of the data read from the first storage device are merged and transferred to the request source, and the merged data is transferred to the second When the first flag information is updated to indicate that the entire data exists and stored in the storage device, and the data to be read is not stored in the second storage device, the data to be read is Read from the first storage device and transfer to the requester, store the read data in the second storage device, and update the first flag information to indicate that the entire data is present that having a lead control means.

この発明によれば、例えば1台以上のHDDを備えてなるディスクシステム等のレスポンス性能を大幅なコストアップを招くことなく向上させることを実現できる。   According to the present invention, for example, it is possible to improve the response performance of a disk system including one or more HDDs without causing a significant cost increase.

本発明の第1実施形態に係るデータ記憶システム(ディスクサブシステム)の構成を示す図。1 is a diagram showing a configuration of a data storage system (disk subsystem) according to a first embodiment of the present invention. 同第1実施形態のディスクサブシステムにおけるSSDの記憶領域の論理的なアロケーション例を示す図。The figure which shows the logical allocation example of the storage area of SSD in the disk subsystem of the said 1st Embodiment. 同第1実施形態のディスクサブシステムにおいてSSD上に確保するキャッシュ領域の一例を示す図。The figure which shows an example of the cache area ensured on SSD in the disk subsystem of the said 1st Embodiment. 同第1実施形態のディスクサブシステムにおいてSSD上に確保する管理データ領域の一例を示す図。The figure which shows an example of the management data area ensured on SSD in the disk subsystem of the said 1st Embodiment. 同第1実施形態のディスクサブシステムにおいてSSD上に確保する管理データ領域内のビットマップの一例を示す図。The figure which shows an example of the bitmap in the management data area ensured on SSD in the disk subsystem of the said 1st Embodiment. 同第1実施形態のディスクサブシステムにおいてSSD上に確保する管理データ領域内のデータキャッシュディレクトリの一例を示す図。The figure which shows an example of the data cache directory in the management data area ensured on SSD in the disk subsystem of the said 1st Embodiment. 同第1実施形態ののディスクサブシステムにおいてSSD上に確保する管理データ領域内のデータキャッシュディレクトリのEntireビットおよびDirtyビットの各組み合わせの意味を説明するための図。The figure for demonstrating the meaning of each combination of the Entire bit and Dirty bit of the data cache directory in the management data area ensured on SSD in the disk subsystem of the said 1st Embodiment. 同第1実施形態ののディスクサブシステムがホストシステムからリードコマンドを受け取った場合の動作手順を説明するための図。The figure for demonstrating the operation | movement procedure when the disk subsystem of the said 1st Embodiment receives the read command from a host system. 同第1実施形態のディスクサブシステムがホストシステムからライトコマンドを受け取った場合の動作手順を説明するための図。The figure for demonstrating the operation | movement procedure when the disk subsystem of the said 1st Embodiment receives the write command from a host system. 同第1実施形態のディスクサブシステムにおいてSSD上に確保する管理データ領域内のビットマップキャッシュディレクトリの一例を示す図。The figure which shows an example of the bitmap cache directory in the management data area ensured on SSD in the disk subsystem of the said 1st Embodiment.

以下、図面を参照して、この発明の実施形態を説明する。   Embodiments of the present invention will be described below with reference to the drawings.

(第1実施形態)
図1は、本発明の第1実施形態に係るデータ記憶システムの構成を示す図である。本データ記憶システムは、ホストシステム1が利用するデータを大量に記憶するためのディスクサブシステム2として実現されている。ホストシステム1とディスクサブシステム2との接続形態は任意であり、例えばLAN(Local Area Network)を介して接続される環境下においては、複数のホストシステム1が存在しても良い。また、ホストシステム1とディスクサブシステム2とが同一のコンピュータ上に存在して、データバスを介して接続される形態も当然に考えられ得る。
(First embodiment)
FIG. 1 is a diagram showing a configuration of a data storage system according to the first embodiment of the present invention. This data storage system is realized as a disk subsystem 2 for storing a large amount of data used by the host system 1. The connection form between the host system 1 and the disk subsystem 2 is arbitrary. For example, in an environment connected via a LAN (Local Area Network), a plurality of host systems 1 may exist. In addition, a mode in which the host system 1 and the disk subsystem 2 exist on the same computer and are connected via a data bus can naturally be considered.

図1に示すように、ディスクサブシステム2は、制御部21、メモリ21A、複数の論理HDD(hard Disk Drive)22およびSSD(Solid State Drive)23から構成されている。   As shown in FIG. 1, the disk subsystem 2 includes a control unit 21, a memory 21 </ b> A, a plurality of logical HDDs (hard disk drives) 22, and SSDs (solid state drives) 23.

制御部21は、本ディスクサブシステム2の動作を制御する中枢部であり、ホストシステム1が発行する論理HDD22へのデータの書き込み要求(ライトコマンド)または論理HDD22からのデータの読み出し要求(リードコマンド)を受け付け、この要求された論理HDD22に対するデータアクセスを効率的に処理すべく、メモリ21A、論理HDD22およびSSD23を駆動制御する。制御部21は、ディスクサブシステム2がホストシステム1と外部接続される場合、例えばマイクロコントローラおよび制御プログラム等から構成され、ディスクサブシステム2がホストシステム1と同一のコンピュータ上に存在する場合には、例えばBIOS(Basic Input/Output System)やデバイスドライバ等から構成される。   The control unit 21 is a central unit that controls the operation of the disk subsystem 2, and a data write request (write command) to the logical HDD 22 issued by the host system 1 or a data read request (read command) from the logical HDD 22. ), And drives and controls the memory 21A, the logical HDD 22, and the SSD 23 in order to efficiently process the requested data access to the logical HDD 22. When the disk subsystem 2 is externally connected to the host system 1, the control unit 21 includes, for example, a microcontroller and a control program, and when the disk subsystem 2 exists on the same computer as the host system 1. For example, it is composed of a basic input / output system (BIOS), a device driver, and the like.

そして、本ディスクサブシステム2は、安価・低速な論理HDD22で大容量の記憶領域を構成しつつ、高速なSSD23を、これら論理HDD22の共用キャッシュとして設置し、かつ、このSSD23を共用キャッシュとして効率的に使用するための仕組みを当該制御部21が備えることにより、大幅なコストアップを招くことなく、レスポンス性能を向上させることを実現したものであり、以下、この点について詳述する。   The disk subsystem 2 configures a high-speed SSD 23 as a shared cache of these logical HDDs 22 while configuring a large-capacity storage area with low-cost and low-speed logical HDDs 22 and makes the SSD 23 efficient as a shared cache. By providing the control unit 21 with a mechanism for using it in an effective manner, it is possible to improve response performance without incurring a significant cost increase. This point will be described in detail below.

なお、メモリ21Aは、制御部21が作業領域として使用する、各種データを一時的に格納するための例えばDRAM等である。また、論理HDD22は、単体のHDDや、複数のHDDを並列接続して耐障害性を高めたRAID(Redundant Array of Inexpensive Disks)等である。ディスクサブシステム2内の論理HDD22として、単体のHDDとRAIDとが混在していても構わない。ホストシステム1は、各論理HDD22を個別に認識して、それぞれに対するデータアクセス要求を本ディスクサブシステム2の制御部21に対して発行する。そして、SSD23は、記憶部として不揮発性半導体メモリであるフラッシュメモリを搭載した記憶デバイスである。前述のように、本ディスクサブシステムは、このSSD23を、論理HDD22の共用キャッシュとして使用すべく搭載するが、共用キャッシュとして割り当てる領域以外の余剰領域については、論理HDD22と同様に、1つの論理ドライブとして、ホストシステム1からのアクセス要求を受け付け可能としても良い。   The memory 21A is, for example, a DRAM or the like for temporarily storing various data used as a work area by the control unit 21. The logical HDD 22 is a single HDD, a RAID (Redundant Array of Inexpensive Disks) or the like in which a plurality of HDDs are connected in parallel to improve fault tolerance. As the logical HDD 22 in the disk subsystem 2, a single HDD and RAID may be mixed. The host system 1 individually recognizes each logical HDD 22 and issues a data access request for each to the control unit 21 of the disk subsystem 2. The SSD 23 is a storage device equipped with a flash memory that is a nonvolatile semiconductor memory as a storage unit. As described above, this disk subsystem is equipped with this SSD 23 to be used as a shared cache of the logical HDD 22, but the surplus area other than the area allocated as the shared cache is one logical drive as in the logical HDD 22. As described above, an access request from the host system 1 may be accepted.

図2は、本ディスクサブシステム2におけるSSD23の記憶領域の論理的なアロケーション例を示す図である。   FIG. 2 is a diagram showing a logical allocation example of the storage area of the SSD 23 in the disk subsystem 2.

ここでは、SSD23が32Gバイトの記憶容量を有するものと想定する。一方、論理HDD22の数は最大16台とし、各々の容量は最大2Tバイトとする。また、制御部21は、論理HDD22へのデータの書き込みおよび論理HDD22からのデータの読み出しを128Kバイト単位で実行する。以下、これをブロックサイズと称する。論理HDD22の使用単位であるセクタは512バイトであり、よって、1ブロックは256セクタとなる。この32Gバイトの大きさを持つSSD23の記憶領域を、制御部21は、図2に示すように、キャッシュ領域a1、管理データ領域a2、余剰領域a3の3通りに使い分ける。   Here, it is assumed that the SSD 23 has a storage capacity of 32 GB. On the other hand, the maximum number of logical HDDs 22 is 16, and the capacity of each is maximum 2T bytes. In addition, the control unit 21 executes writing of data to the logical HDD 22 and reading of data from the logical HDD 22 in units of 128 Kbytes. Hereinafter, this is referred to as a block size. A sector that is a unit of use of the logical HDD 22 is 512 bytes, and therefore one block is 256 sectors. As shown in FIG. 2, the control unit 21 uses the storage area of the SSD 23 having a size of 32 GB in three ways: a cache area a1, a management data area a2, and a surplus area a3.

キャッシュ領域a1は、論理HDD22のデータの一部を保持する領域、つまり前述の共用キャッシュとして使用する領域である。ここでは、SSD23の全記憶容量中の半分である16Gバイトを当該キャッシュ領域a1として割り当てるものとする。論理HDD22のデータは、ブロックサイズ単位で当該キャッシュ領域a1に保持される。換言すると、当該キャッシュ領域a1は、ブロックサイズごとの領域に分けられる。   The cache area a1 is an area that holds a part of the data of the logical HDD 22, that is, an area that is used as the aforementioned shared cache. Here, 16 Gbytes, which is half of the total storage capacity of the SSD 23, is allocated as the cache area a1. Data of the logical HDD 22 is held in the cache area a1 in block size units. In other words, the cache area a1 is divided into areas for each block size.

また、管理データ領域a2は、キャッシュ領域a1上に存在する論理HDD22のデータの一部を管理するための各種管理データを保持する領域である。   The management data area a2 is an area for holding various management data for managing a part of the data of the logical HDD 22 existing on the cache area a1.

そして、余剰領域a3は、SSD23上にキャッシュ領域a1,管理データ領域a2を確保し終えた後の残存領域であり、制御部21は、この余剰領域a3を1つの論理ドライブとして、論理HDD22と同様に、当該論理ドライブに対するホストシステム1からのアクセス要求を受け付ける。   The surplus area a3 is a remaining area after securing the cache area a1 and the management data area a2 on the SSD 23, and the control unit 21 uses the surplus area a3 as one logical drive in the same manner as the logical HDD 22. Then, an access request from the host system 1 to the logical drive is accepted.

図3は、SSD23上に確保したキャッシュ領域a1の一例を示す図である。   FIG. 3 is a diagram showing an example of the cache area a1 secured on the SSD 23. As shown in FIG.

前述したように、キャッシュ領域a1は、ブロックサイズ、つまり128Kバイトごとの領域に分けられている。そして、制御部21は、論理HDD22のデータの一部を、このキャッシュ領域a1内に4wayセットアソシアティブ方式で格納する。より具体的に説明すると、本ディスクサブシステム2においては、論理HDD22の最大数は16台であるので、論理HDD22の識別子は4ビットで表現できる。また、各論理HDD22の最大容量は2Tバイトであるので、各論理HDD22内のセクタ位置を示すLBA(Logical Block Address)は32ビットで表現できる。よって、本ディスクサブシステム2全体内でのセクタ位置(セクタアドレス)は、上位4ビット+下位32ビットの36ビットで表現できる。制御部21は、この36ビットのセクタアドレス中の22−8桁の値が一致するアドレスを1グループとして、各グループ毎に4つずつ格納する。   As described above, the cache area a1 is divided into block sizes, that is, areas of every 128 Kbytes. Then, the control unit 21 stores a part of the data of the logical HDD 22 in the cache area a1 by the 4-way set associative method. More specifically, in the present disk subsystem 2, since the maximum number of logical HDDs 22 is 16, the identifier of the logical HDD 22 can be expressed by 4 bits. Further, since the maximum capacity of each logical HDD 22 is 2 Tbytes, an LBA (Logical Block Address) indicating a sector position in each logical HDD 22 can be expressed by 32 bits. Therefore, the sector position (sector address) in the entire disk subsystem 2 can be expressed by 36 bits of upper 4 bits + lower 32 bits. The control unit 21 stores four addresses for each group, with the addresses having the same 22-8 digit values in the 36-bit sector address as one group.

そこで、制御部21は、図3に示すように、キャッシュ領域a1上に、先頭から(EA:前述の36ビットのセクタアドレス中の22−8桁の値,way:0〜3)の並びで、(0000,0),(0000,1),…(7FFF,3)の各キャッシュ領域を割り当てる。そして、制御部21は、最近に読み出されたデータほど再び読み出される確率が高いことを前提として、各グループごとに、論理HDD22から読み出されたデータが最近に読み出された順に4つずつ当該キャッシュ領域a1上に格納されるように、当該キャッシュ領域a1内におけるデータの入れ替えを実行する。   Therefore, as shown in FIG. 3, the control unit 21 arranges (EA: 22-8 digit value in the aforementioned 36-bit sector address, way: 0 to 3) from the top in the cache area a1. , (0000, 0), (0000, 1),... (7FFF, 3) are allocated. Then, the control unit 21 assumes that the data read out from the logical HDD 22 for each group is four in the order in which the data is read out, on the assumption that the data read out more recently has a higher probability of being read out again. Data is exchanged in the cache area a1 so as to be stored in the cache area a1.

なお、制御部21は、ホストシステム1から論理HDD22への書き込みが要求されたデータについては、キャッシュ領域a1に空きがあれば(同一グループの他のデータのキャッシュ領域a1への格納数が4に達していなければ)、空きwayを使ったキャッシュ領域a1への格納を実行する。また、空きがなければ、同一グループ内で最も過去に読み出された(最も格納優先度の低い)データが論理HDD22に未反映の書き込みデータを含まない場合に、このデータと入れ替えて、当該書き込み対象データをキャッシュ領域a1へ格納する。即ち、アクセス時間はライトデータの方が近くても、再アクセスの可能性の高いリードデータの方が優先的にキャッシュ領域a1上に存在することになる。   Note that the control unit 21 determines that the data requested to be written from the host system 1 to the logical HDD 22 is free in the cache area a1 (the number of other data in the same group stored in the cache area a1 is four). If not, storage in the cache area a1 using the free way is executed. Also, if there is no free space, when the data read in the past in the same group (lowest storage priority) does not include write data not reflected in the logical HDD 22, the data is replaced with this data. The target data is stored in the cache area a1. That is, even if the access time is closer to the write data, the read data having a higher possibility of re-access is preferentially present in the cache area a1.

SSD23は、論理HDD22よりも高速であるので、レスポンス性能を向上させることができる。また、SSD23は、不揮発性の記憶デバイスであるので、例えば定期点検後などにディスクサブシステム2を起動した際、前回のディスクサブシステム2の停止時直前に読み出されていたデータが格納された状態にあるので、起動直後からレスポンス性能を向上させる作用が現れる。そして、1台を複数の論理HDD22の共用キャッシュとして適用するので、大幅なコストアップを招くことがない。   Since the SSD 23 is faster than the logical HDD 22, the response performance can be improved. Further, since the SSD 23 is a non-volatile storage device, for example, when the disk subsystem 2 is started after a periodic inspection, data read immediately before the previous stop of the disk subsystem 2 is stored. Since it is in a state, the effect of improving the response performance appears immediately after startup. Since one unit is applied as a shared cache for a plurality of logical HDDs 22, there is no significant cost increase.

また、図4は、SSD23上に確保した管理データ領域a2の一例を示す図である。   FIG. 4 is a diagram showing an example of the management data area a2 secured on the SSD 23.

ビットマップa21(以下、BMと記することがある)は、キャッシュ領域a1に格納された論理HDD22のデータについて、ブロックごとに、ホストシステム1からの書き込み要求を要因として格納されたデータのセクタ位置を記憶しておくためのデータ群である。図5に、このビットマップa1の一例を示す。   Bit map a21 (hereinafter sometimes referred to as BM) is the sector position of data stored in the cache area a1 for each block of the data in the logical HDD 22 due to a write request from the host system 1 for each block. Is a data group for storing. FIG. 5 shows an example of this bitmap a1.

前述したように、本実施形態では、1ブロックは256セクタであるので、各ブロック内の書き込みセクタ位置を記憶するためには、256ビット、つまり、32バイトの情報が必要となる。1セクタは512バイトであるので、1セクタに16ブロック分のビットマップを保存できる。そこで、制御部21は、キャッシュ領域a1に割り当てたブロックサイズの各キャッシュ領域と同じ並びで当該ビットマップを保存する。   As described above, in this embodiment, since one block has 256 sectors, 256 bits, that is, 32 bytes of information are required to store the write sector position in each block. Since one sector is 512 bytes, 16 blocks of bitmap can be stored in one sector. Therefore, the control unit 21 saves the bitmap in the same arrangement as each cache area having the block size allocated to the cache area a1.

制御部21は、論理HDD22へのデータの書き込みおよび論理HDD22からのデータの読み出しをブロックサイズで実行する。よって、制御部21は、ホストシステム1が発行した書き込み要求(ライトコマンド)をブロック単位に分割して、分割後のブロックごとに論理HDD22へのデータ書き込みを実行する。いま、ホストシステム1から書き込みを要求されたデータのサイズがブロックサイズの整数倍でない場合を考えると、最後はブロックサイズに満たないデータの書き込みを行う必要が生じる(書き込みを要求されたデータのサイズがブロックサイズに満たない場合も同様)。このような場合に備え、ビットマップを管理しておくことで、その後のキャッシュであるSSD23から論理HDD22への反映時等に必要となるデータマージを実行することが可能となる。例えばホストシステム1がセクタ単位でのデータ書き込みを要求してきた場合、制御部21は、この書き込みを、当該セクタを含むブロック単位の書き込みに変換し、内部的にはブロック単位での書き込みを実行するが、この場合も、SSD23にキャッシュされたブロックデータ内の当該セクタと論理HDD23に格納されたその他のセクタとのデータマージの際に当該ビットマップが利用される。   The control unit 21 executes data writing to the logical HDD 22 and data reading from the logical HDD 22 in a block size. Therefore, the control unit 21 divides the write request (write command) issued by the host system 1 into blocks, and executes data writing to the logical HDD 22 for each of the divided blocks. Considering the case where the size of the data requested to be written by the host system 1 is not an integral multiple of the block size, it is necessary to write data less than the block size at the end (the size of the data requested to be written). The same is true if is less than the block size). In preparation for such a case, by managing the bitmap, it becomes possible to execute data merging necessary when reflecting the cache 23 from the SSD 23 to the logical HDD 22. For example, when the host system 1 requests writing of data in units of sectors, the control unit 21 converts this writing into writing in units of blocks including the sector, and internally executes writing in units of blocks. However, in this case as well, the bitmap is used when data is merged between the sector in the block data cached in the SSD 23 and the other sectors stored in the logical HDD 23.

また、データキャッシュディレクトリa22(以下、DCDと記することがある)は、論理HDD22のデータの一部をSSD23にキャッシュするために本ディスクサブシステム2が採用する4wayセットアソシアティブ方式のディレクトリである。図6は、このデータキャッシュディレクトリの一例を示す。   Further, the data cache directory a22 (hereinafter sometimes referred to as DCD) is a 4-way set associative directory employed by the disk subsystem 2 in order to cache a part of the data of the logical HDD 22 in the SSD 23. FIG. 6 shows an example of this data cache directory.

図6中、LDは、論理HDD22の識別子である。本ディスクサブシステム2では、前述の通り4バイトあり、また、LBAは32ビットである。そして、前述の通り、この上位4ビット+下位32ビットの36ビットで本ディスクサブシステム2のセクタアドレスは構成される。このセクタアドレスの35−23桁をFA(Frame Address)部、22−8桁をEA(Entry Address)部と定義する。   In FIG. 6, LD is an identifier of the logical HDD 22. In this disk subsystem 2, there are 4 bytes as described above, and the LBA is 32 bits. As described above, the sector address of the disk subsystem 2 is composed of 36 bits of the upper 4 bits and the lower 32 bits. The 35-23 digits of the sector address are defined as an FA (Frame Address) portion, and the 22-8 digits are defined as an EA (Entry Address) portion.

データキャッシュディレクトリa22は、EA分(行)×way分(列)のテーブルである。各wayフィールドは、FA、LRU(Least Resently used)カウンタ、Entireビット、Dirtyビットから構成される。   The data cache directory a22 is a table of EA (row) × way (column). Each way field includes an FA, an LRU (Least Resently used) counter, an Entire bit, and a Dirty bit.

FAには、セクタアドレスのFA部が格納される。よって、例えば読み出し対象データについて、セクタアドレスのEA部を検索キーとしてディレクトリを参照し、同一ライン内のいずれかのwayのFAがセクタアドレスのFA部と一致しているときにヒット(SSD23上に存在する)、いずれにも一致しないときにミスヒット(SSD23上に存在しない)と判断することができる。   The FA stores the FA part of the sector address. Thus, for example, with respect to the read target data, the directory is referenced using the EA part of the sector address as a search key, and if any way FA in the same line matches the FA part of the sector address, a hit (on the SSD 23) Exists), it can be determined as a miss hit (not present on the SSD 23) when they do not match any of them.

LRUカウンタは、初期値の0からway数の値を取るカウンタ領域である。大きい値ほど最近に読み出しが行われたことを表す。   The LRU counter is a counter area that takes a value from the initial value 0 to the number of ways. A larger value indicates that reading has been performed recently.

Entireビットは、ブロック全体がSSD23に記録されているか否かを示す表すフラグ領域である。”1”が全体が存在、”0”が一部が存在、を示す。   The Entire bit is a flag area indicating whether or not the entire block is recorded in the SSD 23. “1” indicates that there is a whole, and “0” indicates that there is a part.

Dirtyビットは、当該ブロック内に書き込みデータが存在するか否かを示すフラグ領域である。”1”が書き込みデータが存在、”0”が書き込みデータが不在、を示す。   The Dirty bit is a flag area indicating whether or not write data exists in the block. “1” indicates that there is write data, and “0” indicates that there is no write data.

このEntireビットとDirtyビットとによって、データキャッシュディレクトリa22にヒットしている時のブロックデータの所在は図7に示す通りであることが判明する。より具体的に説明すると、Entireビットが”0”で、Dirtyビットが”1”の場合、SSD23のデータの一部が最新で、この最新データの位置はビットマップに記録されている。Entireビットが”1”で、Dirtyビットが”0”の場合は、SSD23と論理HDD22とに同じデータが存在している。そして、EntireビットとDirtyビットの両方が”1”の場合は、SSD23のデータが最新で、論理HDD22のデータは古い。なお、Entireビットが”0”の場合、ブロック内の少なくとも一部に書き込みデータを含むので、Dirtyビットは必然的に”1”となるので、理論上、EntireビットとDirtyビットとの両方が”0”の組み合わせは存在しない。   From the Entire bit and the Dirty bit, it is found that the location of the block data when hitting the data cache directory a22 is as shown in FIG. More specifically, when the Entire bit is “0” and the Dirty bit is “1”, a part of the data of the SSD 23 is the latest, and the position of this latest data is recorded in the bitmap. When the Entire bit is “1” and the Dirty bit is “0”, the same data exists in the SSD 23 and the logical HDD 22. When both the Entire bit and the Dirty bit are “1”, the data in the SSD 23 is the latest and the data in the logical HDD 22 is old. When the Entire bit is “0”, the write data is included in at least a part of the block, so the Dirty bit is inevitably “1”, so theoretically both the Entire bit and the Dirty bit are “ There is no 0 ”combination.

以上の管理データ領域a2のビットマップa21およびデータキャッシュディレクトリa22は、本ディスクサブシステム2の起動時に制御部21が管理するメモリ21Aに展開され、本ディスクサブシステム2のシャットダウン時等の所定のタイミングで書き戻される。   The bitmap a21 and the data cache directory a22 of the management data area a2 described above are expanded in the memory 21A managed by the control unit 21 when the disk subsystem 2 is started, and at a predetermined timing such as when the disk subsystem 2 is shut down. Will be written back.

次に、本ディスクサブシステム2の制御部21が実行する、SSD23を共用キャッシュとして用いた論理HDD22からのデータ読み出し時/論理HDD22へのデータ書き込み時の動作原理を説明する。   Next, an operation principle executed by the control unit 21 of the disk subsystem 2 when reading data from / writing data to the logical HDD 22 using the SSD 23 as a shared cache will be described.

まず、図6および図8を参照しながら、ホストシステム1からリードコマンドを受け取った場合の動作手順を説明する。   First, an operation procedure when a read command is received from the host system 1 will be described with reference to FIGS.

ホストシステム1からデータのリードコマンドを受け取ると、制御部21は、このリードコマンドをブロック単位に分割し、分割後のブロックごとにデータの読み出し処理を実行する。   When receiving a data read command from the host system 1, the control unit 21 divides the read command into blocks and executes data read processing for each of the divided blocks.

この分割後のブロックごとのデータの読み出し処理において、制御部21は、まず、セクタアドレスのEA部とFA部とを使って、データキャッシュディレクトリa22上でのヒット有無、つまり、読み出し対象ブロックがSSD23のキャッシュ領域a1に存在するか否かを調べる。   In the data read processing for each block after the division, the control unit 21 first uses the sector address EA portion and FA portion to determine whether or not there is a hit in the data cache directory a22, that is, the read target block is the SSD 23. Whether it exists in the cache area a1.

ヒットしていたら、制御部21は、今度は、読み出し対象ブロックを保持するwayのEntireビットが”1”か否かを調べる。もし、Entireビットが”1”であれば(ケースR1)は、制御部21は、SSD23のキャッシュ領域a1に存在するブロックデータを読み出して、読み出し対象データを取得する。この時、制御部21は、後処理として、当該wayのLRUカウンタを最大値にし、更新前の値よりも大きい値を持つ他のwayのLRUカウンタの値を1ずつデクリメントする。この操作により、LRUカウンタは、時間的に近い順に4→3→2→1の値または初期値の0が保持されることになる。   If there is a hit, the control unit 21 checks whether or not the Entire bit of the way holding the read target block is “1”. If the Entire bit is “1” (Case R1), the control unit 21 reads the block data existing in the cache area a1 of the SSD 23 and acquires the read target data. At this time, as post-processing, the control unit 21 sets the LRU counter of the way to the maximum value and decrements the value of the LRU counter of another way having a value larger than the value before the update by one. By this operation, the value of 4 → 3 → 2 → 1 or the initial value of 0 is held in the LRU counter in ascending order of time.

Entireビットが”0”であった場合、制御部21は、続いて、当該ブロックデータに対応するビットマップa21を参照し、すべてが書き込みセクタで占められているか、つまり、全データがSSD23のキャッシュ領域a1に存在するかを調べる。もし、全データがSSD23のキャッシュ領域a1に存在すれば(ケースR2)、制御部21は、SSD23のキャッシュ領域a1に存在するブロックデータを読み出して、読み出し対象データを取得する。この時も、制御部21は、前述の後処理としてのLRUカウンタの更新を実行する。   When the Entire bit is “0”, the control unit 21 subsequently refers to the bit map a21 corresponding to the block data to determine whether everything is occupied by the write sector, that is, all the data is cached in the SSD 23. It is checked whether it exists in the area a1. If all the data exists in the cache area a1 of the SSD 23 (case R2), the control unit 21 reads the block data existing in the cache area a1 of the SSD 23 and acquires the read target data. Also at this time, the control unit 21 updates the LRU counter as the post-processing described above.

一方、Entireビットが”0”であって、全データがSSD23のキャッシュ領域a1に存在しない場合(ケースR3)、制御部21は、SSD23のキャッシュ領域a1および論理HDD22の双方から読み出し対象ブロックのデータを読み出し、ビットマップa21に基づき、データマージを行って最新の状態のブロックデータを形成して、読み出し対象データを取得する。そして、制御部21は、SSD23のキャッシュ領域a1に格納されていたブロックデータを、当該形成した最新の状態のブロックデータに更新すべく当該SSD23のキャッシュ領域a1への書き込みを実行する。この時、制御部21は、前述のLRUカウンタの更新に加えて、当該wayのEntireビットを”1”にする処理を後処理として実行する。   On the other hand, when the Entire bit is “0” and all data does not exist in the cache area a1 of the SSD 23 (case R3), the control unit 21 reads the data of the block to be read from both the cache area a1 of the SSD 23 and the logical HDD 22. And based on the bit map a21, data merging is performed to form the latest block data, and the read target data is acquired. Then, the control unit 21 performs writing to the cache area a1 of the SSD 23 in order to update the block data stored in the cache area a1 of the SSD 23 to the formed block data of the latest state. At this time, in addition to the above-described updating of the LRU counter, the control unit 21 executes a process for setting the Entire bit of the way to “1” as a post-process.

また、読み出し対象ブロックがSSD23のキャッシュ領域a1に存在しない場合、つまり、データキャッシュディレクトリa22上でヒットしなかった場合(ケースR4)、制御部21は、論理HDD22からの読み出しを行うことにより、読み出し対象データを取得する。制御部21は、この読み出したブロックデータのSSD23のキャッシュ領域a1への書き込みを併せて実行する。   In addition, when the block to be read does not exist in the cache area a1 of the SSD 23, that is, when there is no hit in the data cache directory a22 (case R4), the control unit 21 performs reading by reading from the logical HDD 22. Get the target data. The control unit 21 also writes the read block data to the cache area a1 of the SSD 23.

この書き込みは、同一グループ内に空きwayが存在すれば、当該wayに対して実行する。また、空きwayが存在しなければ、LRUカウンタの値が最も小さいwayのデータと入れ替えるべく実行する。入れ替え対象のwayのDirtyビットが”1”であったならば、このデータの論理HDD22への反映を行った後に実行する。この際、Entireビットが”0”であったならば、ビットマップa21を参照しながらデータマージを実行する。論理HDD22への反映を終了させた時、制御部21は、Entireビット、Dirtyビット、ビットマップa21の該当箇所の初期化をそれぞれ実行する。   If there is an empty way in the same group, this writing is executed for that way. If there is no free way, the process is executed to replace the data of the way having the smallest value of the LRU counter. If the Dirty bit of the way to be replaced is “1”, the data is reflected on the logical HDD 22 and then executed. At this time, if the Entire bit is “0”, data merging is executed with reference to the bitmap a21. When the reflection to the logical HDD 22 is finished, the control unit 21 executes initialization of the corresponding portions of the Entire bit, the Dirty bit, and the bitmap a21.

そして、(ケースR4の場合の)後処理として、制御部21は、当該wayのLRUカウンタの値を最大値にし、その他のwayのLRUカウンタの値を1ずつデクリメントする処理と共に、Entireビットを”1”に設定する処理を実行する。   Then, as post-processing (in the case of the case R4), the control unit 21 sets the value of the LRU counter of the way to the maximum value and decrements the value of the LRU counter of the other way one by one, and sets the Entire bit to “ The process of setting to 1 ″ is executed.

続いて、図6および図9を参照しながら、ホストシステム1からライトコマンドを受け取った場合の動作手順を説明する。   Next, an operation procedure when a write command is received from the host system 1 will be described with reference to FIGS. 6 and 9.

ホストシステム1からデータのリードコマンドを受け取ると、制御部21は、このリードコマンドをブロック単位に分割し、分割後のブロックごとにデータの書き込み処理を実行する。   When receiving a data read command from the host system 1, the control unit 21 divides the read command into blocks and executes data write processing for each of the divided blocks.

この分割後のブロックごとのデータの書き込み処理において、制御部21は、まず、セクタアドレスのEA部とFA部とを使って、データキャッシュディレクトリa22上でのヒット有無、つまり、書き込み対象ブロックがSSD23のキャッシュ領域a1に存在するか否かを調べる。   In the data writing process for each block after the division, the control unit 21 first uses the sector address EA part and the FA part to determine whether or not there is a hit in the data cache directory a22, that is, the write target block is the SSD 23. Whether it exists in the cache area a1.

ヒットしていたら、制御部21は、今度は、この書き込みがブロックサイズ、つまり256セクタ分のものか否かを調べる。もし、ブロック単位の書き込みであれば(ケースW1)、制御部21は、SSD23のキャッシュ領域a1に存在するブロックデータ上に当該書き込み対象データを上書きすべくSSD23に対する書き込みを実行する。この時、制御部21は、後処理として、Entireビット、Dirtyビットを”1”にし、必要であればビットマップa21の該当箇所の初期化を実行する。書き込みが256セクタ未満のものであった場合には(ケースW2)、後処理として、さらに書き込みセクタの位置を記憶しておくためのビットマップの更新を実行する。   If there is a hit, the control unit 21 checks whether or not this writing is a block size, that is, 256 sectors worth. If writing is in block units (case W1), the control unit 21 executes writing to the SSD 23 to overwrite the write target data on the block data existing in the cache area a1 of the SSD 23. At this time, as post-processing, the control unit 21 sets the Entire bit and Dirty bit to “1”, and if necessary, initializes the corresponding part of the bitmap a21. If the writing is less than 256 sectors (Case W2), as a post-processing, a bitmap update for further storing the position of the writing sector is executed.

一方、書き込み対象ブロックがSSD23のキャッシュ領域a1に存在しない場合、つまり、データキャッシュディレクトリa22上でヒットしなかった場合、制御部21は、同一グループ内に空きwayが存在するか否か、および、空きwayが存在しない場合にはLRUカウンタの値が最も小さいwayのDirtyビットが”0”か否かを調べる。   On the other hand, when the block to be written does not exist in the cache area a1 of the SSD 23, that is, when there is no hit on the data cache directory a22, the control unit 21 determines whether there is an empty way in the same group, and When there is no empty way, it is checked whether the dirty bit of the way having the smallest value of the LRU counter is “0”.

同一グループ内に空きwayが存在した場合、または、LRUカウンタの値が最も小さいwayのDirtyビットが”0”だった場合、制御部21は、その書き込みがブロック単位のものであれば(ケースW3)、当該書き込み対象データを空きwayまたはLRUカウンタの値が最も小さいwayに格納し、後処理として、当該wayのEntireビット、Dirtyビットを”1”にする。また、書き込みが256セクタ未満のものであった場合には(ケースW4)、後処理として、さらに書き込みセクタの位置を記憶しておくためのビットマップの更新を実行する。   When there is an empty way in the same group, or when the dirty bit of the way having the smallest LRU counter value is “0”, the control unit 21 determines that the writing is in units of blocks (case W3 ), The data to be written is stored in the way where the value of the empty way or the LRU counter is the smallest, and, as post-processing, the Entire bit and Dirty bit of the way are set to “1”. If the writing is less than 256 sectors (Case W4), update of the bitmap for storing the position of the writing sector is further executed as post-processing.

同一グループ内に空きwayが存在せず、かつ、LRUカウンタの値が最も小さいwayのDirtyビットが”1”だった場合には(ケースW5)、制御部21は、当該書き込み対象データのSSD23によるキャッシングは行わず、論理HDD23への書き込みを実行する。   When there is no free way in the same group and the dirty bit of the way having the smallest LRU counter value is “1” (case W5), the control unit 21 uses the SSD 23 of the write target data. Writing to the logical HDD 23 is executed without caching.

また、制御部21は、ホストシステム1からリードコマンドを受け取った場合、およびライトコマンドを受け取った場合のほか、ホストシステム1が一定時間以上コマンドを発生させなかった場合に、データキャッシュディレクトリa22内のDirtyビットが”1”のブロックデータを論理HDD22に反映させ、SSD23のキャッシュ領域a1と論理HDD22とを同じ状態とするライトバック処理をデータキャッシュディレクトリa22のライン単位に実行する。このライトバック処理は、Spread First方式で実行する。即ち、データキャッシュディレクトリa22内の各ライン間で、Dirtyビットが”1”の数が均等になるような順番で進めていく。1ライン分のライトバック処理中、ホストシステム1からコマンドが送られて来なかった場合に、制御部21は、引き続き、このライトバック処理を継続する。   Further, the control unit 21 receives the read command from the host system 1 and receives the write command, or when the host system 1 does not generate a command for a certain time or more, the data cache directory a22 The write-back process for reflecting the block data whose Dirty bit is “1” to the logical HDD 22 and making the cache area a1 of the SSD 23 and the logical HDD 22 in the same state is executed for each line of the data cache directory a22. This write-back process is executed by the Spread First method. That is, the process proceeds in the order in which the number of Dirty bits “1” is equal between the lines in the data cache directory a22. If no command is sent from the host system 1 during the write-back process for one line, the control unit 21 continues this write-back process.

以上のように、本ディスクサブシステム1においては、制御部21が、データキャッシュディレクトリa22、ビットマップa21を使って、SSD23のキャッシュ領域a1を管理することによって、複数台の低速な論理HDD22からのデータの読み出しを、高い確率で、1台の高速のSSD23からの読み出しで代替することを可能とし、レスポンス性能を大幅なコストアップを招くことなく向上させることを実現する。   As described above, in the present disk subsystem 1, the control unit 21 manages the cache area a1 of the SSD 23 by using the data cache directory a22 and the bitmap a21, so that a plurality of low-speed logical HDDs 22 are controlled. Data reading can be replaced with high-speed reading from one high-speed SSD 23 with high probability, and the response performance can be improved without causing a significant cost increase.

(第2実施形態)
次に、本発明の第2実施形態について説明する。
(Second Embodiment)
Next, a second embodiment of the present invention will be described.

前述した第1実施形態では、制御部21が、本ディスクサブシステム2の起動時に、SSD23の管理データ領域a2に保持されるビットマップa21を、自身が管理するメモリ21Aに展開することを前提とした。   In the first embodiment described above, it is assumed that the control unit 21 expands the bitmap a21 held in the management data area a2 of the SSD 23 to the memory 21A managed by itself when the disk subsystem 2 is started. did.

ビットマップa21は、SSD23上に確保するキャッシュ領域a1が16Gバイトの場合、4Mバイトという膨大なテーブルとなる。よって、大容量のメモリ21Aを搭載しなければならなくなる。そこで、本第2実施形態では、このビットマップa21のすべてをメモリ21Aに展開するのではなく、さらに当該ビットマップa21についても、4wayセットアソシアティブ方式で、その一部をメモリ21Aにキャッシュすることによって、メモリ21Aの必要容量を低減し、さらなるコストダウンを実現する。   The bitmap a21 is a huge table of 4M bytes when the cache area a1 secured on the SSD 23 is 16G bytes. Therefore, it is necessary to mount a large capacity memory 21A. Therefore, in the second embodiment, not all of the bitmap a21 is expanded in the memory 21A, but the bitmap a21 is also cached in the memory 21A by the 4-way set associative method. The required capacity of the memory 21A is reduced and further cost reduction is realized.

図10は、ビットマップa21の一部をメモリ21Aにキャッシュするためのビットマップキャッシュディレクトリの一例を示す図である。このビットマップキャッシュディレクトリは、図4に示した管理データ領域a2のその他の管理データとしてSSD23に格納され、第1実施形態におけるビットマップa21に代えて、データキャッシュディレクトリa22と共に、本ディスクサブシステム2の起動時にメモリ21Aに展開され、本ディスクサブシステム2のシャットダウン時等の所定のタイミングで書き戻される。   FIG. 10 is a diagram illustrating an example of a bitmap cache directory for caching a part of the bitmap a21 in the memory 21A. This bitmap cache directory is stored in the SSD 23 as other management data of the management data area a2 shown in FIG. 4, and this disk subsystem 2 is used together with the data cache directory a22 instead of the bitmap a21 in the first embodiment. Is expanded in the memory 21A at the time of activation, and written back at a predetermined timing such as when the disk subsystem 2 is shut down.

本実施形態のディスクサブシステム2においては、LD4ビットとLBA32ビットとを繋ぎ合わせた36ビットのセクタアドレスの22−19桁をBMFA(Bit Map Frame Address)部、18−13桁をBMEA(Bit Map Entry Address)部と定義する。ビットマップキャッシュディレクトリは、BMEA分(行)×way分(列)のテーブルである。各wayフィールドは、BMFA、LRUカウンタ、Dirtyビットから構成される。   In the disk subsystem 2 of the present embodiment, the 22-19 digits of the 36-bit sector address obtained by connecting the LD4 bit and the LBA32 bit are used as the BMFA (Bit Map Frame Address) portion, and the 18-13 digits are used as the BMEA (Bit Map). Entry Address) part. The bitmap cache directory is a table of BMEA (rows) × way (columns). Each way field includes a BMFA, an LRU counter, and a dirty bit.

BMFAには、セクタアドレスのBMFA部が格納される。よって、例えば読み出し対象データに関するビットマップついて、セクタアドレスのBMEA部を検索キーとしてディレクトリを参照し、同一ライン内のいずれかのwayのBMFAがセクタアドレスのBMFA部と一致しているときにヒット(メモリ21A上に存在する)、いずれにも一致しないときにミスヒット(メモリ21A上に存在しない)と判断することができる。   The BMFA stores the BMFA part of the sector address. Thus, for example, with respect to a bitmap related to data to be read, a directory is referenced using the BMEA part of the sector address as a search key, and a hit (when the BMFA of any way in the same line matches the BMFA part of the sector address ( It can be determined that there is a mis-hit (does not exist on the memory 21A) when it does not match any of them.

LRUカウンタは、初期値の0からway数の値を取るカウンタ領域である。大きい値ほど最近にキャッシュされたことを表す。   The LRU counter is a counter area that takes a value from the initial value 0 to the number of ways. Larger values indicate more recently cached.

Dirtyビットは、当該ビットマップが書き込みデータの位置情報を有するか否かを示すフラグ領域である。”1”が書き込みデータの位置情報が存在、”0”が書き込みデータの位置情報が不在、を示す。   The Dirty bit is a flag area indicating whether or not the bitmap has position information of write data. “1” indicates that the position information of the write data exists, and “0” indicates that the position information of the write data does not exist.

次に、本第2実施形態の制御部21が実行する、ビットマップa21のキャッシュ処理について説明する。   Next, the cache processing of the bitmap a21 executed by the control unit 21 of the second embodiment will be described.

制御部21は、セクタアドレスのBMEA部とBMFA部とを使って、ビットマップキャッシュディレクトリ上でのヒット有無、つまりアクセス対象のビットマップ部分がメモリ21A上に存在するか否かを調べる。   The control unit 21 checks whether or not there is a hit in the bitmap cache directory, that is, whether or not the access target bitmap portion exists in the memory 21A, using the sector address BMEA and BMFA portions.

ヒットしていたら、制御部21は、メモリ21A上に存在するビットマップ部分を使用する。もし、このビットマップ部分について更新を行った場合、制御部21は、Dirtyビットを”1”にする。また、この時、制御部21は、データキャッシュディレクトリa22の場合と同様、後処理として、当該wayのLRUカウンタを最大値にし、更新前の値よりも大きい値を持つ他のwayのLRUカウンタの値を1ずつデクリメントする。この操作により、LRUカウンタは、時間的に近い順に4→3→2→1の値または初期値の0が保持されることになる。   If there is a hit, the control unit 21 uses the bitmap portion existing on the memory 21A. If the bitmap portion is updated, the control unit 21 sets the dirty bit to “1”. At this time, as in the case of the data cache directory a22, the control unit 21 sets the LRU counter of the way to the maximum value as post-processing and sets the LRU counter of another way having a value larger than the value before the update. Decrement the value by one. By this operation, the value of 4 → 3 → 2 → 1 or the initial value of 0 is held in the LRU counter in ascending order of time.

一方、ヒットしていなかった場合、制御部21は、同一グループ内に空きwayが存在すれば、アクセス対象のビットマップ部分をSSD23から読み出して、当該空きwayに格納する。また、空きwayが存在しなければ、LRUカウンタの値が最も小さいwayのビットマップ部分との入れ替えを実行する。この時、入れ替え対象のwayのDirtyビットが”1”であったならば、入れ替え前のビットマップ部分のSSD23への書き戻しを実行し、そのDirtyビットを初期化する。Dirtyビットが”1”でなければ、この書き戻しを行う必要はない。そして、制御部21は、後処理として、前述のLRUカウンタの更新を実行する。   On the other hand, if there is no hit, if there is an empty way in the same group, the control unit 21 reads the bitmap part to be accessed from the SSD 23 and stores it in the empty way. Further, if there is no free way, replacement with the bitmap portion of the way having the smallest LRU counter value is executed. At this time, if the Dirty bit of the way to be exchanged is “1”, the bitmap portion before the exchange is written back to the SSD 23, and the Dirty bit is initialized. If the Dirty bit is not “1”, this write back is not necessary. And the control part 21 performs the update of the above-mentioned LRU counter as post-processing.

このような手順で、ビットマップa21の一部をメモリ21A上にキャッシュする本第2実施形態のディスクサブシステムにおいては、4Mバイトのビットマップa21を約1Mバイトの作業領域で利用可能となるので、メモリ21Aの必要容量を低減でき、さらなるコストダウンを実現することができる。   In the disk subsystem according to the second embodiment in which a part of the bitmap a21 is cached on the memory 21A by such a procedure, the 4-Mbyte bitmap a21 can be used in a work area of about 1 Mbyte. The required capacity of the memory 21A can be reduced, and further cost reduction can be realized.

以上のように、本ディスクサブシステム2によれば、例えば1台以上のHDDを備えてなるディスクシステム等のレスポンス性能を大幅なコストアップを招くことなく向上させることが実現される。   As described above, according to the present disk subsystem 2, it is possible to improve the response performance of a disk system or the like including, for example, one or more HDDs without causing a significant cost increase.

なお、本発明は、上記実施形態そのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化できる。また、上記実施形態に開示されている複数の構成要素の適宜な組み合わせにより種々の発明を形成できる。例えば、実施形態に示される全構成要素から幾つかの構成要素を削除してもよい。更に、異なる実施形態に構成要素を適宜組み合わせてもよい。   Note that the present invention is not limited to the above-described embodiment as it is, and can be embodied by modifying the constituent elements without departing from the scope of the invention in the implementation stage. In addition, various inventions can be formed by appropriately combining a plurality of components disclosed in the embodiment. For example, some components may be deleted from all the components shown in the embodiment. Furthermore, you may combine a component suitably in different embodiment.

1…ホストシステム、2…ディスクサブシステム、21…制御部、21A…メモリ、22…論理HDD、23…SSD。 DESCRIPTION OF SYMBOLS 1 ... Host system, 2 ... Disk subsystem, 21 ... Control part, 21A ... Memory, 22 ... Logical HDD, 23 ... SSD.

Claims (11)

1台以上の第1の記憶装置と、
第2の記憶装置と、
前記第1の記憶装置のキャッシュとして前記第2の記憶装置を用いるべく前記第1の記憶装置および前記第2の記憶装置を制御し、前記第2の記憶装置上に存在するデータが前記第1の記憶装置上のデータ全体であるか否かを示す第1のフラグ情報を管理する制御装置と、
を具備し、
前記制御装置は、
前記第1の記憶装置に格納されたデータの読み出しを要求された際、
前記第1のフラグ情報より、前記読み出し対象のデータ全体が前記第2の記憶装置に存在する場合、前記第2の記憶装置に格納されているデータを読み出して要求元に転送し、
前記第1のフラグ情報より、前記読み出し対象のデータの一部が前記第2の記憶装置に存在する場合、前記第2の記憶装置から読み出したデータの一部と前記第1の記憶装置から読み出したデータのその他の部分とをマージして要求元に転送すると共に、前記マージ後のデータを前記第2の記憶装置に格納して前記第1のフラグ情報をデータ全体が存在する旨を示すように更新し、
読み出し対象のデータが前記第2の記憶装置に格納されていない場合、当該読み出し対象のデータを前記第1の記憶装置から読み出して要求元に転送すると共に、当該読み出したデータを前記第2の記憶装置に格納して前記第1のフラグ情報をデータ全体が存在する旨を示すように更新する
リード制御手段を有する、
ことを特徴とするデータ記憶システム。
One or more first storage devices;
A second storage device;
The first storage device and the second storage device are controlled to use the second storage device as a cache of the first storage device, and data existing on the second storage device is the first storage device. A control device for managing first flag information indicating whether or not the entire data on the storage device is;
Comprising
The controller is
When requested to read data stored in the first storage device,
From the first flag information, when the entire data to be read is present in the second storage device, the data stored in the second storage device is read and transferred to the request source,
Based on the first flag information, when a part of the data to be read exists in the second storage device, a part of the data read from the second storage device and the data read from the first storage device The other data portion is merged and transferred to the request source, and the merged data is stored in the second storage device so that the first flag information indicates that the entire data exists. Updated to
When the data to be read is not stored in the second storage device, the data to be read is read from the first storage device and transferred to the request source, and the read data is transferred to the second storage device. Read control means for storing in the device and updating the first flag information to indicate that the entire data is present ,
A data storage system characterized by that.
前記制御装置の前記リード制御手段は、前記第1の記憶装置に格納されたデータが、そのアドレスを示すビット列中の所定のビット列の値が同一のデータ毎に、読み出しを要求された時が時間的に近い順に所定数ずつ前記第2の記憶装置に格納されるように、前記第2の記憶装置内におけるデータの入れ替えを実行することを特徴とする請求項1記載のデータ記憶システム。 It said read control means of the control device, the first data stored in the storage device, the value of the predetermined bit sequence in the bit sequence representing the address for each identical data is requested read as time is stored in the order of closeness in time to the previous SL secondary storage One not a predetermined number, according to claim 1, wherein the benzalkonium perform the replacement of data in the second storage device Data storage system. 前記制御装置は、前記第1の記憶装置へのデータの書き込みを要求された際、書き込み先のアドレスに対応するデータが前記第2の記憶装置に格納されていた場合、当該データの書き込みを前記第2の記憶装置に対して実行するライト制御手段をさらに有することを特徴とする請求項2記載のデータ記憶システム。 When the control device is requested to write data to the first storage device and the data corresponding to the write destination address is stored in the second storage device, the control device writes the data to the first storage device. 3. The data storage system according to claim 2, further comprising a write control means that executes the second storage device. 前記制御装置の前記ライト制御手段は、前記書き込み先のアドレスに対応するデータが前記第2の記憶装置に格納されていない場合、当該書き込み先のアドレスを示すビット列中の前記所定のビット列の値が同一のデータの前記第2の記憶装置への格納数が所定数に達していなければ、当該書き込み対象データの書き込みを前記第2の記憶装置に対して実行することを特徴とする請求項3記載のデータ記憶システム。 When the data corresponding to the address of the write destination is not stored in the second storage device, the write control means of the control device determines that the value of the predetermined bit string in the bit string indicating the address of the write destination is 4. The writing of the write target data to the second storage device is executed when the number of the same data stored in the second storage device does not reach a predetermined number. Data storage system. 前記制御手段は、前記第2の記憶装置上に存在するデータが書き込みデータを含んでいるか否かを示す第2のフラグ情報をさらに管理し、
前記制御装置の前記ライト制御手段は、前記書き込み先のアドレスに対応するデータが前記第2の記憶装置に格納されておらず、かつ、当該書き込み先のアドレスを示すビット列中の前記所定のビット列の値が同一のデータの前記第2の記憶装置への格納数が所定数に達していた場合、当該格納されている所定数のデータ内で読み出しを要求された時が時間的に最も遠いデータについて、前記第2のフラグ情報を参照して、書き込みデータを含んでいるか否かを判定し、前記書き込みデータを含んでいない場合、このデータと入れ替えるべく、当該書き込み対象データの書き込みを前記第2の記憶装置に対して実行することを特徴とする請求項3記載のデータ記憶システム。
The control means further manages second flag information indicating whether or not the data existing on the second storage device includes write data;
The write control means of the control device does not store data corresponding to the write destination address in the second storage device, and stores the predetermined bit string in the bit string indicating the write destination address . When the number of data having the same value stored in the second storage device has reached a predetermined number, the data that is farthest in time when reading is requested within the predetermined number of stored data the reference to the second flag information, determines whether Luke contain write data, the If no write data such contain, to replace this data, the writing of the write target data 4. The data storage system according to claim 3, wherein the data storage system is executed for the second storage device.
前記制御手段は、
前記第1の記憶装置内における記憶領域の使用単位である第1の単位を複数個まとめた第2の単位で前記第1の記憶装置へのデータの書き込みおよび前記第1の記憶装置からのデータの読み出しを実行し、
前記第2の記憶装置上に存在する前記第1の記憶装置上のデータについて、前記第2の単位ごとに、前記ライト制御手段によるデータの書き込み有無を前記第1の単位で示すビットマップ情報を管理するビットマップ管理手段をさらに有することを特徴とする請求項3記載のデータ記憶システム。
The control means includes
Writing data to the first storage device and data from the first storage device in a second unit in which a plurality of first units, which are units of use of storage areas in the first storage device, are collected. Read
The data on the first storage device is present in the second storage device on, for each of the second unit, the bitmap information indicating the writing presence or absence of data by said write control means in said first unit 3. Symbol mounting data storage system further comprising a bit map management means for managing.
前記制御手段の前記リード制御手段は、前記第2の記憶装置から読み出したデータの一部と前記第1の記憶装置から読み出したデータのその他の部分とのマージを、前記ビットマップ管理手段が管理するビットマップ情報に基づいて実行することを特徴とする請求項6記載のデータ記憶システム。 The read control means of the control means manages the merge of a part of the data read from the second storage device and the other part of the data read from the first storage device by the bitmap management means. 7. The data storage system according to claim 6, wherein the data storage system is executed based on bitmap information to be executed . 前記制御装置は、前記第1の記憶装置からのデータの読み出しおよび前記第1の記憶装置へのデータの書き込みのいずれもが一定時間以上要求されなかった時、前記第2のフラグ情報が書き込みデータを含んでいる旨を示す前記第2の記憶装置上のデータを前記第1の記憶装置に格納するライトバック手段をさらに有することを特徴とする請求項記載のデータ記憶システム。 When the controller does not request reading of data from the first storage device and writing of data to the first storage device for a predetermined time or longer, the control unit displays the second flag information as write data. 6. The data storage system according to claim 5 , further comprising write-back means for storing in the first storage device data on the second storage device indicating that the data is included in the first storage device. 前記制御装置の前記ライトバック手段は、各々のアドレスを示すビット列中の前記所定のビット列の値が同一のデータ群のうち、前記ライト制御手段による書き込み部分を含むデータの数が多いデータ群を優先して前記第1の記憶装置への格納を行っていくことを特徴とする請求項記載のデータ記憶システム。 The write-back means of the control device gives priority to a data group having a large number of data including a writing portion by the write control means , among data groups having the same value of the predetermined bit string in a bit string indicating each address. 9. The data storage system according to claim 8 , wherein the data is stored in the first storage device. 前記制御装置は、前記第2の記憶装置が備える記憶領域中の第1の領域を、前記第1の記憶装置からの読み出し対象データの格納領域として用い、前記第2の記憶装置が備える記憶領域中の第2の領域を、当該第2の記憶装置への書き込み対象データの格納領域として用いることを特徴とする請求項1記載のデータ記憶システム。   The control device uses a first area in a storage area provided in the second storage device as a storage area for data to be read from the first storage device, and a storage area provided in the second storage device 2. The data storage system according to claim 1, wherein the second area is used as an area for storing data to be written to the second storage device. 前記第1の記憶装置は、1以上の磁気ディスク装置によって構成され、
前記第2の記憶装置は、不揮発性半導体メモリ装置によって構成される、
ことを特徴とする請求項1記載のデータ記憶システム。
The first storage device is composed of one or more magnetic disk devices,
The second storage device includes a nonvolatile semiconductor memory device.
The data storage system according to claim 1.
JP2009035266A 2009-02-18 2009-02-18 Data storage system Expired - Fee Related JP4734432B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2009035266A JP4734432B2 (en) 2009-02-18 2009-02-18 Data storage system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2009035266A JP4734432B2 (en) 2009-02-18 2009-02-18 Data storage system

Publications (2)

Publication Number Publication Date
JP2010191672A JP2010191672A (en) 2010-09-02
JP4734432B2 true JP4734432B2 (en) 2011-07-27

Family

ID=42817655

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2009035266A Expired - Fee Related JP4734432B2 (en) 2009-02-18 2009-02-18 Data storage system

Country Status (1)

Country Link
JP (1) JP4734432B2 (en)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5692590B2 (en) * 2011-04-20 2015-04-01 日本電気株式会社 Reboot, boot, shutdown acceleration device and reboot, boot, shutdown acceleration method
JP6011153B2 (en) 2012-08-22 2016-10-19 富士通株式会社 Storage system, storage control method, and storage control program
JP2021092877A (en) * 2019-12-09 2021-06-17 Necプラットフォームズ株式会社 Server system, detection method and program
CN116880776B (en) * 2023-09-06 2023-11-17 上海凯翔信息科技有限公司 Data processing system for storing data

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH07129470A (en) * 1993-11-09 1995-05-19 Hitachi Ltd Disk control method
JP2006012006A (en) * 2004-06-29 2006-01-12 Tokugen Ou Cache device and method
JP2008276646A (en) * 2007-05-02 2008-11-13 Hitachi Ltd Storage device and data management method for storage device

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH07129470A (en) * 1993-11-09 1995-05-19 Hitachi Ltd Disk control method
JP2006012006A (en) * 2004-06-29 2006-01-12 Tokugen Ou Cache device and method
JP2008276646A (en) * 2007-05-02 2008-11-13 Hitachi Ltd Storage device and data management method for storage device

Also Published As

Publication number Publication date
JP2010191672A (en) 2010-09-02

Similar Documents

Publication Publication Date Title
JP6832187B2 (en) Methods and systems for caching in data storage subsystems
US9378131B2 (en) Non-volatile storage addressing using multiple tables
EP2742428B1 (en) Cache management including solid state device virtualization
JP5571691B2 (en) Maintaining mapping address tables in storage
JP5593577B2 (en) Storage system and control method thereof
US8321639B2 (en) Command tracking for direct access block storage devices
US9128847B2 (en) Cache control apparatus and cache control method
EP2685384B1 (en) Elastic cache of redundant cache data
US20150378886A1 (en) Software-defined ssd and system using the same
US9792073B2 (en) Method of LUN management in a solid state disk array
US20100115175A9 (en) Method of managing a large array of non-volatile memories
US9047200B2 (en) Dynamic redundancy mapping of cache data in flash-based caching systems
US20120059978A1 (en) Storage array controller for flash-based storage devices
US20160253123A1 (en) NVMM: An Extremely Large, Logically Unified, Sequentially Consistent Main-Memory System
JP2000099282A (en) File management system
EP3629142B1 (en) Method of operating storage device, storage device performing the same and storage system including the same
JP4734432B2 (en) Data storage system
US20180307427A1 (en) Storage control apparatus and storage control method
JP4724253B2 (en) Data storage system and cache data consistency guarantee method
US20240311049A1 (en) Device cache engine for a cache-coherent interconnect memory expansion
JP2003263276A (en) Disk system and disk access method
JP2010170268A (en) Storage system control method, storage control device, and program
JP6273678B2 (en) Storage device
JP2020115275A (en) Information processing device and program
JP2009080549A (en) Disk array controller and data layout method

Legal Events

Date Code Title Description
A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20100921

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20101126

A911 Transfer of reconsideration by examiner before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20101206

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

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20110329

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20110425

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

Free format text: PAYMENT UNTIL: 20140428

Year of fee payment: 3

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

Free format text: PAYMENT UNTIL: 20140428

Year of fee payment: 3

LAPS Cancellation because of no payment of annual fees