JP3779385B2 - Disk array controller - Google Patents
Disk array controller Download PDFInfo
- Publication number
- JP3779385B2 JP3779385B2 JP23426496A JP23426496A JP3779385B2 JP 3779385 B2 JP3779385 B2 JP 3779385B2 JP 23426496 A JP23426496 A JP 23426496A JP 23426496 A JP23426496 A JP 23426496A JP 3779385 B2 JP3779385 B2 JP 3779385B2
- Authority
- JP
- Japan
- Prior art keywords
- data
- disk
- cache
- exclusive
- cache memory
- 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
Links
Images
Landscapes
- Techniques For Improving Reliability Of Storages (AREA)
- Memory System Of A Hierarchy Structure (AREA)
- Detection And Correction Of Errors (AREA)
Description
【0001】
【発明の属する技術分野】
本発明は、複数のディスクドライブを備えたディスクアレイ装置に係り、特にディスクドライブとホスト装置との間の転送データを一時記憶しておくキャッシュメモリを備え、ディスクドライブのアクセスを制御するディスクアレイ制御装置に関する。
【0002】
【従来の技術】
ディスクアレイ装置は、複数のディスクドライブを備え、これら複数のディスクドライブ(に装着されている記憶媒体)にホスト装置からのデータを分散して格納することで、並列アクセスを可能としてアクセスの高速化を図ったものである。
【0003】
ディスクアレイ装置には、ディスクドライブをアクセス制御するディスクアレイ制御装置が設けられている。このディスクアレイ制御装置は、ホスト装置からの転送データ(書き込みデータ)に対して、データ訂正情報としてのパリティデータを生成し、上記複数のディスクドライブのうちのいずれかに書き込むようになっている。これにより、複数のディスクドライブのうちの1台が故障した場合にも、このパリティデータと残りのディスクドライブのデータを用いることで、故障したディスクドライブのデータを復元することができる。なお、パリティデータの書き込み先ディスクは、データの分散配置方法によって異なり、(RAID3と称される方法に代表されるように)固定の場合と、(RAID5と称される方法に代表されるように)順次切り換えられる場合とがある。
【0004】
さてディスクアレイ制御装置は、ディスクドライブとホスト装置との間の転送データを一時記憶しておくキャッシュメモリ(ディスクキャッシュ)を有しているのが一般的であり、当該キャッシュメモリに目的データが存在する場合には、(機械的なアクセス動作を伴う)ディスクドライブをアクセスすることなく、当該キャッシュメモリから目的データを高速アクセスできる。
【0005】
【発明が解決しようとする課題】
上記した従来のディスクアレイ制御装置において、ホスト装置からの書き込みデータに対してパリティデータを生成して当該パリティデータをディスクドライブに保存しておき、そのパリティデータを用いて元のデータを復元するためには、制御装置内のファームウェアプログラムによって行うか、制御装置自体をパリティデータ生成並びにデータ復元の専用のハードウェア装置として構成する必要があった。
【0006】
しかしながら、ファームウェアで行うには処理速度の問題があり、専用のハードウェアでは回路が複雑化する問題があった。
本発明は上記事情を考慮してなされたものでその目的は、キャッシュメモリを有するディスクキャッシュ手段側に、キャッシュメモリアクセス時のリード/ライトデータを利用してパリティデータを生成する或いはデータを復元する機能を持たせることで、構成の簡略化、処理の高速化及び制御の容易化が図れるディスクアレイ制御装置を提供することにある。
【0007】
【課題を解決するための手段】
本発明のディスク制御装置は、外部のホスト装置との間の入出力を司る外部入出力手段と、ホスト装置からのデータストリームが一定サイズで分割されて分散配置されるN個のディスクドライブを含むディスクドライブ群との接続を可能とするディスクドライブ入出力手段と、上記ディスクドライブとホスト装置との間の転送データを一時記憶するためのキャッシュメモリを有するディスクキャッシュ手段と、各部を制御する主制御手段とを具備しており、上記ディスクキャッシュ手段には、2つのデータ間でビット単位の排他的論理和演算を行う排他的論理和回路と、上記キャッシュメモリに対するリード/ライトデータ及び上記排他的論理和回路の排他的論理和演算結果のいずれか一方を一時記憶するための先入れ先出し方式の記憶手段と、上記キャッシュメモリに対するアクセス制御、上記記憶手段に対するアクセス制御、及び上記排他的論理和回路の制御を含むディスクキャッシュ手段全体の制御を司るディスクキャッシュ制御手段とを設け、このディスクキャッシュ制御手段により、次のような制御を行うことで、即ち主制御手段からの指示によるキャッシュメモリからのデータ読み出し時に、当該キャッシュメモリから読み出されたデータを上記記憶手段に書き込む動作、または当該キャッシュメモリから読み出されたデータとその時点において上記記憶手段に書き込まれているデータとの排他的論理和演算を上記排他的論理和回路により行わせ、その排他的論理和演算結果を上記記憶手段に再度書き込む、もしくは上記キャッシュメモリの読み出しデータとして出力する動作の制御を行うことで、上記キャッシュメモリに書き込まれているデータを利用して上記N個のディスクドライブの対応領域に分散配置されるデータの排他的論理和演算結果であるパリティデータを生成して出力することを特徴とする。
【0008】
また本発明は、上記ディスクキャッシュ制御手段に、次のような制御を行う機能、即ち上記主制御手段からの指示によるキャッシュメモリへのデータ書き込み時に、当該キャッシュメモリに書き込まれるデータを上記記憶手段にも書き込む動作、または当該キャッシュメモリに書き込まれるデータとその時点において上記記憶手段に書き込まれているデータとの排他的論理和演算を上記排他的論理和回路により行わせ、その排他的論理和演算結果を上記記憶手段に再度書き込む動作を制御する機能を持たせることで、上記キャッシュメモリに書き込まれるデータを利用して上記N個のディスクドライブの対応領域に分散配置されるデータの排他的論理和演算結果であるパリティデータを生成して出力することを特徴とする。
【0009】
このような構成のディスクアレイ制御装置においては、ディスクキャッシュ手段側に、キャッシュメモリアクセス時のリード/ライトデータを利用してパリティデータを生成する機能を持たせることで、構成の簡略化、処理の高速化及び制御の容易化が図れる。
【0010】
また本発明は、上記ディスクキャッシュ制御手段に、次のようなシーケンス処理を行う機能、即ち上記キャッシュメモリからのデータ読み出しを指示する特定のリードコマンドが主制御手段から与えられた場合に、当該コマンドに付されているアドレス情報で指定されたデータを含む、上記N個のディスクドライブの対応領域に分散配置されるN個のデータを順番に読み出し、1番目に読み出したデータについてはそのまま上記記憶手段に書き込み、2番目乃至N−1番目に読み出したデータについては当該データとその時点において上記記憶手段に書き込まれているデータとの排他的論理和演算を上記排他的論理和回路により行わせて、その排他的論理和演算結果を上記記憶手段に再度書き込み、N番目に読み出したデータについては当該データとその時点において上記記憶手段に書き込まれているデータとの排他的論理和演算を上記排他的論理和回路により行わせて、その排他的論理和演算結果である上記1番目乃至N番目のデータのパリティデータを生成し、当該パリティデータを上記特定リードコマンドに対するキャッシュメモリの読み出しデータとして出力するシーケンス処理を行う機能を持たせたことを特徴とする。
【0011】
また本発明は、上記ディスクキャッシュ制御手段に、次のようなシーケンス処理を行う機能、即ち上記主制御手段から上記キャッシュメモリへのデータ書き込みを指示する特定のライトコマンドが与えられた場合に、上記N個のディスクドライブの対応領域に分散配置される連続するN個のライトデータを、当該コマンドに付されているアドレス情報で指定されたキャッシュメモリの領域に順番に書き込み、1番目のデータの書き込み時には、当該データを上記記憶手段にも書き込み、2番目乃至N番目のデータの書き込み時には、当該データとその時点において上記記憶手段に書き込まれているデータとの排他的論理和演算を上記排他的論理和回路により行わせて、その排他的論理和演算結果を上記記憶手段に再度書き込むシーケンス処理を行う機能を持たせ、N番目のデータの書き込み時に、上記記憶手段内に1番目乃至N番目のデータのパリティデータが書き込まれるようにしたことを特徴とする。
【0012】
このようなディスクアレイ制御装置においては、主制御手段からディスクキャッシュ手段内のディスクキャッシュ制御手段に対して、特定のリードコマンドまたはライトコマンドが与えられるだけで、当該コマンドで指定されたキャッシュデータリード動作またはキャッシュデータライト動作に伴うパリティ生成のためのシーケンス処理が行われるため、処理の一層の高速化が可能となる。特に、キャッシュデータライト動作に伴うパリティ生成では、キャッシュメモリに書き込むと同時にパリティデータが生成できるため、最も高速化が図れる。
【0013】
また本発明は、上記ディスクキャッシュ制御手段を上記主制御手段から書き換え可能なプログラマブルなロジックデバイスによって構成し、電源投入時に、目的とするディスクアレイの構成を上記ロジックデバイスにより変更可能としたことを特徴とする。
【0014】
このような構成においては、不必要に大きなデバイスを使用することなく、装置の小形化、高速化のために機能が削減されるのを防ぐことが可能となる。
また本発明は、キャッシュメモリへのアクセス時にパリティデータの生成を行うか否かが、キャッシュメモリへのアクセスのために上記主制御手段からディスクキャッシュ制御手段に渡されるアドレス情報の所定部分により指定されるようにしたことを特徴とする。
【0015】
このような構成においては、キャッシュメモリへのアクセスに際し、アドレス情報の所定部分だけで通常のキャッシュリード/ライトを行うか、キャッシュリード/ライトデータを利用したパリティ生成を行うかを切り換え指定できる。
【0016】
また本発明は、上記外部入力手段、ディスクドライブ入出力手段、ディスクキャッシュ手段及び主制御手段が標準バスにより相互接続される構成とすると共に、上記ディスクキャッシュ制御手段が上記キャッシュメモリを上記標準バスの手順に従ってアクセスする構成としたことを特徴とする。
【0017】
このように、ディスクキャッシュ手段を標準バスに接続可能な独立した構成として、ディスクドライブ群を持つ既存のシステムの標準バスに接続することで、制御プログラムを提供するのみで、特別なハードウェアの変更を加えることなく、信頼性の高いディスクサブシステムを構築することができる。
【0018】
また本発明は、上記主制御手段から上記ロジックデバイスに対し、当該主制御手段によりアクセス可能な制御レジスタ回路を介して上記Nの値(データストリームの分割数)を通知する構成としたことを特徴とする。
【0019】
このような構成においては、システムの動作中にも、主制御手段から制御レジスタ回路を介してディスクアレイの構成を自由に変更することができる。
また本発明は、上記N個のディスクドライブとは別のディスクドライブが、このN個のディスクドライブに分散配置されているデータのパリティデータを格納する専用のディスク(パリティデータ格納ディスク)として割り当てられているディスクアレイ構成、或いは上記N個のディスクドライブがパリティデータ格納ディスクを兼ねているディスクアレイ構成において、上記のキャッシュリード/ライト時のパリティ生成をデータ復元に適用し、上記ディスクキャッシュ制御手段に次の機能、即ち上記N個のディスクドライブの1つが故障した場合に、当該ディスクドライブのデータを復元する動作を、上記主制御手段からの指示により、上記ディスクドライブ群に格納されているN個のデータ及びそのパリティデータのうち、故障したディスクドライブ内のデータを除くN個のデータを上記ディスクキャッシュ手段内で利用して、当該N個のデータの排他的論理和演算結果を求めることで、上記故障したディスクドライブ内のデータを復元する機能を持たせたことを特徴とする。この復元されたデータを、ディスクドライブ群内のバックアップ用のディスクドライブ(ホットスペアディスク)に格納すれば、故障したディスクドライブに代えて用いることができる。
このような構成においては、キャッシュメモリアクセス時のリード/ライトデータを利用して障害ディスクのデータを復元することができる。
【0020】
【発明の実施の形態】
以下、本発明の実施の形態につき図面を参照して説明する。
図1は本発明の一実施形態に係るディスクアレイ制御装置を備えたディスクアレイ装置の構成を示すブロック図である。
【0021】
図1のディスクアレイ装置は、複数、例えば6台のディスクドライブ10-0〜10-6と、このディスクドライブ10-0〜10-6をアクセス制御するディスクアレイ制御装置20とから構成されている。
【0022】
ディスクドライブ10-0〜10-5は例えばハードディスクドライブ(HDD)であり、ディスクドライブ10-0〜10-3の4台がデータ格納用(データディスク用)に、ディスクドライブ10-4がデータ訂正情報としてのパリティデータ格納用(パリティディスク用)に、そしてディスクドライブ10-5が(ホットスペアディスクと称される)バックアップディスク用に割り当てられているものとする。
【0023】
ここではデータストリームを一定サイズS、例えば4Kバイト(S=4Kバイト)の塊(チャンク)を単位に分割してディスクドライブ10-0〜10-3に分散配置する形態が適用されるものとする。この場合、データストリームをサイズS(=4Kバイト)のチャンクA0 ,B0 ,C0 ,D0 ,A1 ,B1 ,C1 ,D1 …に分割するものとすると、チャンクAi (i=0,1…)はディスクドライブ10-0に、チャンクBi はディスクドライブ10-1に、チャンクCi はディスクドライブ10-2に、そしてチャンクDi はディスクドライブ10-3に、それぞれ配置されることになる。また、チャンクAi 〜Di のバリデータPi はディスクドライブ10-4に配置される。これらAi ,Bi ,Ci ,Di ,Pi は、ディスクドライブ10-0,10-1,10-2,10-3,10-4の同一ディスク領域に配置されるのが一般的である。ここで、Ai 〜Di のチャンク数4をデータストリームに対する分割数と呼ぶ。
【0024】
ディスクアレイ制御装置20は、制御部21、外部入出力部22、ディスク入出力部23-0〜23-5及びディスクキャッシュ部24を備えている。この制御部21、外部入出力部22、ディスク入出力部23-0〜23-5及びディスクキャッシュ部24は、ローカルバス、例えば標準バスとして知られているPCIバス(Peripheral Component Interconnect Bus )25により相互接続されている。
【0025】
制御部21は、マイクロプロセッサ211及び(ROM或いはRAM等で構成される)ファームウェアメモリ(F/Wメモリ)212を有し、F/Wメモリ212に格納されているF/Wプログラム(ファームウェアプログラム)に従って、外部入出力部22、ディスク入出力部23-0〜23-5及びディスクキャッシュ部24の制御を行うと共に、これらの間で行われるデータ転送を制御する。制御部21は、条件指定プログラミング等のためのインタフェース(制御部インタフェース)213を有しており、このインタフェース213を通して、後述するFPGA(フィールド・プログラマブル・ゲート・アレイ)244の動作回路(論理)を決定する。
【0026】
外部入出力部22は、外部のホスト装置(図示せず)と接続されており、PCIバス25との間でデータ転送を行うための手順等の制御を司る。具体的には、外部入出力部22は、ホスト装置からのデータをPCIバス25を介してディスクキャッシュ部24、ディスク入出力部23-0〜23-5へ転送する制御、更にはディスクキャッシュ部24、ディスク入出力部23-0〜23-5からのデータをホスト装置へ転送する制御を行う。
【0027】
ディスク入出力部23-0〜23-5は、ディスクドライブ10-0〜10-5と接続されており、PCIバス25とディスクドライブ10-0〜10-5との間のデータ転送を行うための手順等の制御を司る。具体的には、PCIバス25に接続されている外部入出力部22及びディスクキャッシュ部24とディスクドライブ10-0〜10-5との間のデータ転送を制御する。
【0028】
ディスクキャッシュ部24は、図2にその詳細を示すように、キャッシュメモリ240、先入れ先出し方式のバッファ(FIFOメモリ)241、PCIバス25との間のバスブリッジ回路をなすPCIバスブリッジ242、キャッシュメモリ240及びFIFOメモリ241を制御するコントロールロジック243、排他的論理和回路(EX−OR)245、双方向バッファIC246、アドレスバッファIC247、バッファIC248a,248b及び制御レジスタ249から構成される。
【0029】
キャッシュメモリ240は、ホスト装置からの書き込みデータを一時記憶しておくためのもので、例えばDRAM群から構成される。キャッシュメモリ240は、図3に示すように、データストリームの分割サイズSでDA,DB,DC,DD…のように複数の分割領域に分割して管理される。分割領域DA,DB,DC,DDは、上記チャンクAi ,Bi ,Ci ,Di を一時記憶するのに用いられる。キャッシュメモリ240とPCIバス25との間のデータ転送は、制御部21からのコマンドにより、PCIバス25の手順に従って例えば32バイト単位で行われるものとする。
【0030】
FIFOメモリ241は、キャッシュメモリ240またはPCIバス25からのデータを一時記憶すると共に、当該FIFOメモリ241自身からのデータとキャッシュメモリ240またはPCIバス25からのデータをもとに(排他的論理和回路245により)生成されるパリティデータを一時記憶するのに用いられる。FIFOメモリ241の容量は例えばキャッシュメモリ240とPCIバス25との間の1回のデータ転送サイズに一致する32バイトである。
【0031】
PCIバスブリッジ242は、PCIバス25との間のデータの授受と、PCIバス25からのコマンドの受け取りを行う。またPCIバスブリッジ242は、受け取ったコマンドに従って、キャッシュメモリ240とPCIバス25との間のデータバス2401経由での(方向を考慮した)データ転送、キャッシュメモリ240またはPCIバス25からFIFOメモリ241(に対応するバッファIC248a)または排他的論理和回路245へのデータ転送、FIFOメモリ241からキャッシュメモリ240への転送、排他的論理和回路245(に対応するバッファIC248b)からPCIバス25への転送を適宜行う。
【0032】
コントロールロジック243は、PCIバスブリッジ242が受信したコマンドに従ってキャッシュメモリ240へのアクセスがパリティ生成を伴わないノーマルアクセスモードか、或いはパリティ生成を伴うパリティ生成モードかを判定し、その判定結果に応じてキャッシュメモリ240へのリード/ライトタイミング制御等を行う。またコントロールロジック243は、受け取ったコマンドからキャッシュメモリ240に対するアドレス情報を読み取り、キャッシュメモリ240(とアドレスバス2402を介して接続されているアドレスバッファIC247)へのアドレス出力を行う。
【0033】
本実施形態において、上記PCIバスブリッジ242及びコントロールロジック243は、ディスクキャッシュ部24における制御手段(ディスクキャッシュ制御手段)を構成しており、プログラマブルなロジックデバイスとしての例えばフィールド・プログラマブル・ゲート・アレイ(FPGA)244を用いて実現される。このFPGA244は、制御部21のインタフェース213から制御レジスタ249を介して内部の論理がローディング(プログラミング)されることによって、その動作回路が決定される。
【0034】
排他的論理和回路245は、データバス2401を介して送られるデータとFIFOメモリ241から読み出されるデータとの排他的論理和をとってパリティデータを生成する。
【0035】
次に本実施形態における基本的な動作を、ホスト装置からのディスクリード要求に対するディスクリード動作と、ホスト装置からのディスクライト要求に対するディスクライト動作について順に説明する。
【0036】
(1)ディスクリード動作
まず、ホスト装置からディスクリード要求が出され、当該ディスクリード要求が外部入出力部22、PCIバス25を介して制御部21に伝達されたものとする。制御部21は、ホスト装置からのディスクリード要求を受け取ると、要求されたデータがディスクキャッシュ部24のキャッシュメモリ240上に存在するか否かを判定する。この判定の仕方については、従来からよく知られており、且つ本願発明に直接関係しないため、説明を省略する。
【0037】
制御部21は、要求されたデータがキャッシュメモリ240に存在する場合には、キャッシュメモリ240からのデータリードを指示するコマンド(キャッシュデータリードコマンド)を、PCIバス25経由でディスクキャッシュ部24内のPCIバスブリッジ242に送出する。このキャッシュデータリードコマンドには、例えば32ビットのアドレス情報が付されている。
【0038】
本実施形態において、32ビットのアドレス情報で示されるアドレス空間の、例えば00000000h〜00010000h(末尾のhは16進表現であることを示す)の範囲はファームウェア(F/W)プログラム用に割り当てられ、10000000h〜1FFFFFFFhと、20000000h〜2FFFFFFFhの範囲はいずれもキャッシュメモリ240用に割り当てられる。ここで、10000000h〜1FFFFFFFhと20000000h〜2FFFFFFFhの例えば下位28ビットによりキャッシュメモリ240のアドレスが示される。そして本実施形態では、制御部21からPCIバスブリッジ242に送出されるコマンドに付されている32ビットのアドレス情報の下位28ビットにより、目的データ(32バイト)の先頭キャッシュメモリアドレスが示される。また、上位4ビットの値によって、キャッシュメモリ240を対象とする通常のデータリード/ライト(ここではデータリード)を行うノーマルアクセスモードであるか、或いはキャッシュメモリ240を対象とするデータリード/ライトを行うと共に、そのリード/ライトデータを利用してパリティデータを生成するパリティ生成モードであるかが示されるようになっている。ここでは、“0001”(1h)でノーマルアクセスモードが、0010”(2h)でパリティ生成モードが示される。
【0039】
PCIバスブリッジ242は、制御部21からのキャッシュデータリードコマンドをPCIバス25を通して受け取ると、当該コマンドからデータの流れる方向を決定すると共に、当該コマンドをコントロールロジック243に送る。
【0040】
コントロールロジック243は、PCIバスブリッジ242からキャッシュデータリードコマンドを受け取ると、当該コマンドに付されているアドレス情報の上位4ビットを参照し、“0001”であるならばノーマルアクセスモードであり、0010”であるならばパリティ生成モードであるものと判断する。ここでは、ノーマルアクセスモードが指定されているものとすると、コントロールロジック243は、ノーマルアクセスモードでのキャッシュデータリードのための制御を次のように行う。
【0041】
コントロールロジック243は、PCIバスブリッジ242から受け取ったキャッシュデータリードコマンドに従って、データバス2401上の双方向バッファIC246を制御する。またコントロールロジック243は、アドレスバス2402上のアドレスバッファIC247を制御し、上記キャッシュデータリードコマンドに付されているアドレス情報(の下位28ビット)から得られるキャッシュメモリアドレス(先頭キャッシュメモリアドレス)の設定と、キャッシュメモリ240に対するデータリードのための制御信号の生成出力を行う。
【0042】
すると、キャッシュメモリ240から指定のキャッシュメモリアドレスで示される32バイトのデータが(例えば4バイト単位で)読み出される。この32バイトのデータは双方向バッファIC246、データバス2401を介してPCIバスブリッジ242に(4バイト単位で)導かれ、当該PCIバスブリッジ242によりPCIバス25を介して外部入出力部22に転送される。そして外部入出力部22に転送された32バイトデータは、当該外部入出力部22によりホスト装置に転送される。
【0043】
制御部21は、PCIバスブリッジ242へのノーマルアクセスモード指定のキャッシュデータリードコマンドの出力を、アドレス情報(の下位28ビット)を切り換えながら、ホスト装置から要求されたデータが全てリードされるまで繰り返す。
【0044】
一方、ホスト装置から要求されたデータがキャッシュメモリ240に存在しない場合には、制御部21はディスク入出力部23-0〜23-3を制御することで、要求されたデータをディスクドライブ10-0〜10-3からPCIバス25に読み出してディスクキャッシュ部24のキャッシュメモリ240に格納しながら、そのデータを外部入出力部22に転送する。この外部入出力部22に転送されたデータは、当該外部入出力部22によりホスト装置に転送される。
【0045】
(2)ディスクライト動作
次に、ホスト装置からディスクライト要求が出され、当該ディスクライト要求が外部入出力部22、PCIバス25を介して制御部21に伝達されたものとする。この場合、ホスト装置からはライトデータ(のストリーム)が転送される。
【0046】
制御部21は、ホスト装置からのディスクライト要求を受け取ると、キャッシュメモリ240へのデータライトを指示するコマンド(キャッシュデータライトコマンド)を、PCIバス25経由でディスクキャッシュ部24内のPCIバスブリッジ242に送出する。このコマンドには32ビットのアドレス情報が付されている。このアドレス情報の上位4ビットはノーマルアクセスモードを示す“0001”となっており、下位28ビットはキャッシュメモリアドレスを示している。
【0047】
コントロールロジック243は、制御部21からPCIバスブリッジ242に送られたキャッシュデータライトコマンドに付されているアドレス情報の上位4ビットが“0001”の場合、ノーマルアクセスモードでのキャッシュデータライトのための制御を行う。これにより、ホスト装置から外部入出力部22を介してPCIバス25に転送されるデータ(ここでは、ライト用のデータストリームの先頭の32バイトデータ)が、PCIバスブリッジ242によりデータバス2401、双方向バッファIC246を介してキャッシュメモリ240に送られて、上記キャッシュデータライトコマンドに付されているアドレス情報の下位28ビットの示すキャッシュメモリ240内領域に書き込まれる。
【0048】
制御部21は、PCIバスブリッジ242へのノーマルアクセスモード指定のキャッシュデータライトコマンドの出力を、アドレス情報(の下位28ビット)を切り換えながら、ホスト装置から要求されたデータが32バイト単位で全てキャッシュメモリ240に書き込まれるまで繰り返す。
【0049】
制御部21は、ホスト装置から要求されたデータが全てキャッシュメモリ240に書き込まれると、そのキャッシュメモリ240に書き込まれたデータをノーマルアクセスモード指定のキャッシュデータリードコマンドを用いて逐次読み出してディスク入出力部23-0〜23-3の1つに転送する制御を行うことで、対応するディスクドライブに格納させる。
【0050】
制御部21は、以上のノーマルアクセスモード指定のキャッシュデータリードコマンドを用いた制御を、アドレス情報(の下位28ビット)を切り換えながら、ホスト装置からのディスクライト要求に従ってキャッシュメモリ240に書き込んだデータがディスクドライブ10-0〜10-3に全て格納されるまで繰り返す。
【0051】
さて、ディスクドライブ10-0〜10-3へのディスクライト動作が行われた場合、ディスクドライブ10-4に格納されている対応するパリティデータを更新する必要がある。この場合、制御部21は、パリティ生成モード指定のキャッシュデータリードコマンドを用いてキャッシュメモリ240からデータを読み出してパリティデータを生成する制御を行う。このキャッシュデータリード時のパリティ生成動作について図3及び図4を参照して説明する。
【0052】
(3)キャッシュデータリード時のパリティ生成動作
今、ホスト装置からのディスクライト要求に従う一連の上記(2)のディスクライト動作により、要求されたライトデータのストリームがキャッシュメモリ240に書き込まれると共に、このキャッシュメモリ240に書き込まれたライトデータがディスクドライブ10-0〜10-3に分散配置されたものとする。ここでは、サイズS(=4Kバイト)のデータ(チャンク)Ai ,Bi ,Ci ,Di がキャッシュメモリ240のサイズS(=4Kバイト)の領域DA,DB,DC,DDに書き込まれると共に、ディスクドライブ10-0,10-1,10-2,10-3に分散配置されたものとする。チャンクAi は32バイトデータai1,ai2,ai3…ainの、チャンクBi は32バイトデータbi1,bi2,bi3…binの、チャンクCi は32バイトデータci1,ci2,ci3…cinの、そしてチャンクDi は32バイトデータdi1,di2,di3…dinの、それぞれ集合である。
【0053】
制御部21はまず、データai1,bi1,ci1,di1をリードしてそのパリティデータpi1を生成するために、パリティ生成モード指定のキャッシュデータリードコマンド、即ち上位4ビットが“0010”のアドレス情報が付されたキャッシュデータリードコマンドをPCIバス25を介してPCIバスブリッジ242に送出する。このアドレス情報の下位28ビットは、データai1,bi1,ci1,di1のうちの例えばデータai1が書き込まれているキャッシュメモリ240のアドレスを示す。
【0054】
PCIバスブリッジ242は、制御部21からのキャッシュデータリードコマンドをPCIバス25を通して受け取ると、当該コマンドからデータの流れる方向を決定すると共に、当該コマンドをコントロールロジック243に送る。
【0055】
コントロールロジック243は、PCIバスブリッジ242からキャッシュデータリードコマンドを受け取ると、当該コマンドに付されているアドレス情報の上位4ビットを参照し、この例のように“0010”の場合には、パリティ生成モード指定のキャッシュデータリードコマンドであると判断し、そのためのシーケンス処理を次のように実行する。
【0056】
まずコントロールロジック243は、受け取ったコマンドに付されているアドレス情報(の下位28ビット)から得られるキャッシュメモリアドレス(先頭キャッシュメモリアドレス)の設定と、キャッシュメモリ240に対するデータリードのための制御信号の生成出力を行うことで、目的とする32バイトのデータai1(チャンクAi 中の先頭の32バイトデータ)をキャッシュメモリ240から双方向バッファIC246を介してデータバス2401に(4バイト単位で)読み出し、図4において符号41で示すように、PCIバスブリッジ242(及びバッファIC248a)を介してFIFOメモリ241に書き込む。
【0057】
次にコントロールロジック243は、キャッシュメモリ240に対するアドレスを上記一定サイズS(=4Kバイト)だけ自動的に加算して、パリティ生成の対象となる4組の32バイトデータai1,bi1,ci1,di1中のデータbi1のアドレスを生成する。そしてコントロールロジックは、この生成したアドレスを用いて、データbi1(チャンクBi 中の先頭の32バイトデータ)をキャッシュメモリ240から双方向バッファIC246、データバス2401を介して、図4において符号42で示すように排他的論理和回路245側に読み出す。
【0058】
同時にコントロールロジック243は、前回FIFOメモリ241に書き込んだデータai1を図4において符号43で示すように排他的論理和回路245側に読み出す。
【0059】
排他的論理和回路245は、FIFOメモリ241から読み出されたデータai1とキャッシュメモリ240から読み出されたデータbi1とのビット単位の排他的論理和をとる。この排他的論理和回路245の(32バイトの)排他的論理和演算結果は、コントロールロジック243の制御により、図4において符号44で示すように(バッファIC248b,248aを介して)FIFOメモリ241に(4バイト単位で)書き込まれる。
【0060】
次にコントロールロジック243は、前回と同様にキャッシュメモリ240に対するアドレスを上記一定サイズSだけ自動的に加算して、今度はデータci1のアドレスを生成することにより、当該データci1(チャンクCi 中の先頭の32バイトデータ)をキャッシュメモリ240から双方向バッファIC246、データバス2401を介して、図4において符号42で示すように排他的論理和回路245側に読み出す。
【0061】
同時にコントロールロジック243は、前回FIFOメモリ241に書き込んだデータai1,bi1の排他的論理和結果を図4において符号43で示すように排他的論理和回路245側に読み出す。
【0062】
排他的論理和回路245は、FIFOメモリ241から読み出されたデータ(データai1,bi1の排他的論理和結果)とキャッシュメモリ240から読み出されたデータci1とのビット単位の排他的論理和をとる。この排他的論理和回路245の(32バイトの)排他的論理和結果、即ちデータai1〜ci1の排他的論理和結果は、コントロールロジック243の制御により、図4において符号44で示すように(バッファIC248b,248aを介して)FIFOメモリ241に書き込まれる。
【0063】
次にコントロールロジック243は、前回と同様にキャッシュメモリ240に対するアドレスを上記一定サイズSだけ自動的に加算して、今度は4番目のデータdi1のアドレスを生成することにより、当該データdi1(チャンクDi 中の先頭の32バイトデータ)をキャッシュメモリ240から双方向バッファIC246、データバス2401を介して、図4において符号45で示すように排他的論理和回路245側に読み出す。
【0064】
同時にコントロールロジック243は、前回FIFOメモリ241に書き込んだデータai1〜ci1の排他的論理和結果の排他的論理和結果を図4において符号46で示すように排他的論理和回路245側に読み出す。
【0065】
排他的論理和回路245は、FIFOメモリ241から読み出されたデータ(データai1〜ci1の排他的論理和結果)とキャッシュメモリ240から読み出されたデータdi1とのビット単位の排他的論理和をとる。この排他的論理和回路245の(32バイトの)排他的論理和結果は、データai1〜di1(チャンクAi 〜Di 中の先頭の32バイトデータai1〜di1)のパリティデータpi1であり、制御部21からの(パリティ生成モード指定の)キャッシュデータリードコマンドで指定された(キャッシュメモリ240からの)リードデータであるかのように、図4において符号47で示すように(バッファIC248b及び)PCIバスブリッジ242を介してPCIバス25に送出される。このPCIバス25に送出されたデータai1〜di1の排他的論理和結果であるパリティデータpi1は、制御部21の制御のもとで、ディスク入出力部23-4により(パリティディスク用に割り当てられている)ディスクドライブ10-4に格納される。
【0066】
次に制御部21は、チャンクAi 〜Di 中の2番目の32バイトデータai2〜di2 をキャッシュメモリ240から順次リードしてそのパリティデータpi2を生成するためのパリティ生成モード指定のキャッシュデータリードコマンドをPCIバス25を介してPCIバスブリッジ242に送出する。このアドレス情報の上位4ビットには“0010”が設定されており、下位28ビットは、データai2,bi2,ci2,di2のうちのデータai2が書き込まれているキャッシュメモリ240のアドレスを示す。
【0067】
ディスクキャッシュ部24では、制御部21からの2回目のパリティ生成モード指定のキャッシュデータリードコマンド出力に応じて、前記した1回目のパリティ生成モード指定のキャッシュデータリードコマンド出力の場合と同様のシーケンス処理が行われ、キャッシュメモリ240からデータai2,bi2,ci2,di2が順次リードされて、その排他的論理和がとられ、パリティデータpi2が生成される。これは、チャンクAi ,Bi ,Ci ,Di 中の後続のデータai2,bi2,ci2,di2〜ain,bin,cin,dinについても同様に処理される。
【0068】
このような、チャンクAi ,Bi ,Ci ,Di 中のai1,bi1,ci1,di1〜ain,bin,cin,dinの全ての組についてパリティデータ生成が行われるのは、チャンクAi ,Bi ,Ci ,Di の少なくとも1つが全て更新された(ディスクライトされた)場合であり、チャンクAi ,Bi ,Ci ,Di 中の一部のデータだけが更新された場合には、該当するデータ組についてだけ上記の処理によるパリティデータ生成が行われる。
【0069】
なお、前記実施形態では、コントロールロジック243にシーケンス処理の機能を持たせ、制御部21から1つのパリティ生成モード指定のキャッシュデータリードコマンドが与えられるだけで、当該コマンドで指定されるデータaijの他に、当該データと組をなす他のデータbij,cij,dijも、キャッシュメモリ240上のデータaij,bij,cij,dij相互の配置間隔Sをもとにキャッシュメモリアドレスの自動更新を行うことで、キャッシュメモリ240から順次リードしてパリティデータpijを生成する場合について説明したが、これに限るものではない。
【0070】
例えば、制御部21からディスクキャッシュ部24に対して、各データaij,bij,cij,dij毎のリードのためのパリティ生成モード指定のキャッシュデータリードコマンドを逐次発行する構成としても構わない。この場合、制御部21からパリティ生成モード指定のキャッシュデータリードコマンドが与えられる毎に、当該コマンドで指定されるデータがキャッシュメモリ240から読み出され、そのままFIFOメモリ241に格納されるか(1回目のパリティ生成モード指定のキャッシュデータリードコマンドの場合)、その時点においてFIFOメモリ241に格納されているデータと排他的論理和がとられてFIFOメモリ241に格納されるか(2回目及び3回目のパリティ生成モード指定のキャッシュデータリードコマンドの場合)、その時点においてFIFOメモリ241に格納されているデータと排他的論理和がとられて、パリティデータが生成されて、ディスクドライブ10-4に転送される(最後である4回目のパリティ生成モード指定のキャッシュデータリードコマンドの場合)。
【0071】
このように、制御部21からディスクキャッシュ部24に対して各データaij,bij,cij,dij別に逐次コマンドを発行する方式では、ディスクキャッシュ部24(内のコントロールロジック243)での(キャッシュメモリアドレスの自動更新を含む)シーケンス処理機構を必要としないことから、ハードウェア量は少なくて済むものの、前記実施形態におけるように1回のパリティ生成モード指定のキャッシュデータリードコマンドの発行だけでディスクキャッシュ部24でのパリティ生成が自動的に行えるものに比べて、動作速度は低下する。
【0072】
また前記実施形態では、ホスト装置から要求されたデータが全てキャッシュメモリ240に書き込まれ、そのキャッシュメモリ240に書き込まれたデータがディスクドライブ10-0〜10-3に書き込まれた後に、ディスクキャッシュ部24でのパリティ生成が行われる場合(キャッシュデータリード時のパリティ生成動作)について説明したが、キャッシュメモリ240へのデータライト時に、そのライトデータを利用して並行してパリティデータを生成することも可能である。
【0073】
(4)キャッシュデータライト時のパリティ生成動作
そこで、キャッシュデータライト時のパリティ生成動作について図5を参照して説明する。
【0074】
まず本実施形態では、データストリームをディスクドライブ10-0〜10-3に分散配置する際の分割サイズSがキャッシュメモリ240とPCIバス25との間の1回のデータ転送サイズである32バイトに一致することを前提としている。
【0075】
今、ホスト装置からのディスクライト要求に伴うライトデータ(データストリーム)が、外部入出力部22を介してPCIバス25に連続して転送されるものとする。ここでは、説明を簡略化するために、上記ライトデータのサイズが128バイトであり、それを32バイト単位で分割した各チャンクを先頭から順にai ,bi ,ci ,di であるとする。
【0076】
制御部21はまず、1番目のデータai をキャッシュメモリ240に書き込むと同時にFIFOメモリ241にも書き込むために、パリティ生成モード指定のキャッシュデータライトコマンド、即ち上位4ビットが“0010”のアドレス情報が付されたキャッシュデータライトコマンドをPCIバス25を介してPCIバスブリッジ242に送出する。このアドレス情報の下位28ビットは、データai1の書き込み先となるキャッシュメモリ240のアドレスを示す。
【0077】
PCIバスブリッジ242は、制御部21からのパリティ生成モード指定のキャッシュデータライトコマンドをPCIバス25を通して受け取ると、当該コマンドからデータの流れる方向を決定すると共に、当該コマンドをコントロールロジック243に送る。
【0078】
コントロールロジック243は、PCIバスブリッジ242から1番目のパリティモード指定のキャッシュデータライトコマンドを受け取ると、まずPCIバス25上に連続して転送されるライトデータ(データストリーム)中の先頭(1番目)の32バイトデータai をPCIバスブリッジ242から(データバス2401、双方向バッファIC246を介して)キャッシュメモリ240の指定アドレスに書き込むと共に、図5において符号51で示すように、PCIバスブリッジ242から(バッファIC248a)を介してFIFOメモリ241に書き込む。
【0079】
次に制御部21は、2番目の32バイトデータbi をキャッシュメモリ240に書き込むと同時に対応するデータをFIFOメモリ241に書き込むために、パリティ生成モード指定のキャッシュデータライトコマンドをPCIバス25を介してPCIバスブリッジ242に送出する。
【0080】
コントロールロジック243は、制御部21からPCIバスブリッジ242に送出された2番目のパリティ生成モード指定のキャッシュデータライトコマンドを受け取ると、PCIバス25上に連続して転送されるライトデータ中の2番目の32バイトデータbi をPCIバスブリッジ242からキャッシュメモリ240の指定アドレスに書き込むと共に、図5において符号52で示すように、PCIバスブリッジ242を介して排他的論理和回路245側に伝達させる。同時にコントロールロジック243は、前回FIFOメモリ241に書き込んだデータai を図5において符号53で示すように排他的論理和回路245側に読み出す。
【0081】
排他的論理和回路245は、FIFOメモリ241から読み出されたデータai とPCIバス25からPCIバスブリッジ242を介して転送されるデータbi とのビット単位の排他的論理和をとる。この排他的論理和回路245の(32バイトの)排他的論理和結果は、コントロールロジック243の制御により、図5において符号54で示すように(バッファIC248b,248aを介して)FIFOメモリ241に書き込まれる。
【0082】
次に制御部21は、3番目の32バイトデータci をキャッシュメモリ240に書き込むと同時に対応するデータをFIFOメモリ241に書き込むために、パリティ生成モード指定のキャッシュデータライトコマンドをPCIバス25を介してPCIバスブリッジ242に送出する。
【0083】
コントロールロジック243は、制御部21からPCIバスブリッジ242に送出された3番目のパリティ生成モード指定のキャッシュデータライトコマンドを受け取ると、PCIバス25上に連続して転送されるライトデータ中の3番目の32バイトデータci をPCIバスブリッジ242からキャッシュメモリ240の指定アドレスに書き込むと共に、図5において符号52で示すように、PCIバスブリッジ242を介して排他的論理和回路245側に伝達させる。同時にコントロールロジック243は、前回FIFOメモリ241に書き込んだ1番目のデータai と2番目のデータbi との排他的論理和結果を図5において符号53で示すように排他的論理和回路245側に読み出す。
【0084】
排他的論理和回路245は、FIFOメモリ241から読み出されたデータai ,bi の排他的論理和結果とPCIバス25からPCIバスブリッジ242を介して転送されるデータci とのビット単位の排他的論理和をとる。この排他的論理和回路245の(32バイトの)排他的論理和結果は、コントロールロジック243の制御により、図5において符号54で示すように(バッファIC248b,248aを介して)FIFOメモリ241に書き込まれる。
【0085】
次に制御部21は、4番目の32バイトデータdi をキャッシュメモリ240に書き込むと同時に対応するデータをFIFOメモリ241に書き込むために、パリティ生成モード指定のキャッシュデータライトコマンドをPCIバス25を介してPCIバスブリッジ242に送出する。
【0086】
コントロールロジック243は、制御部21からPCIバスブリッジ242に送出された4番目のパリティ生成モード指定のキャッシュデータライトコマンドを受け取ると、PCIバス25上に連続して転送されるライトデータ中の4番目の32バイトデータdi をPCIバスブリッジ242からキャッシュメモリ240の指定アドレスに書き込むと共に、図5において符号52で示すように、PCIバスブリッジ242を介して排他的論理和回路245側に伝達させる。同時にコントロールロジック243は、前回FIFOメモリ241に書き込んだデータai 〜ci の排他的論理和結果を図5において符号53で示すように排他的論理和回路245側に読み出す。
【0087】
排他的論理和回路245は、FIFOメモリ241から読み出されたデータai 〜ci の排他的論理和結果とPCIバス25からPCIバスブリッジ242を介して転送されるデータdi とのビット単位の排他的論理和をとる。この排他的論理和回路245の(32バイトの)排他的論理和結果、即ちデータai ,bi ,ci ,di の排他的論理和結果を、図5において符号54で示すようにFIFOメモリ241に書き込む。これによりFIFOメモリ241内に、データai 〜di のパリティデータpi が生成されたことになる。このFIFOメモリ241内に生成されたデータai 〜di のパリティデータpi は、図5において符号55,55aで示すようにPCIバスブリッジ242側に読み出されて、当該PCIバスブリッジ242からPCIバス25を介してディスク入出力部23-4に転送され、(パリティディスク用に割り当てられている)ディスクドライブ10-4に格納される。
【0088】
その後、制御部21は、キャッシュメモリ240に書き込まれたホスト装置からのディスクライトデータをノーマルアクセスモード指定のキャッシュデータリードコマンドを用いて逐次読み出してディスク入出力部23-0〜23-3の1つに転送する制御を行うことで、対応するディスクドライブに格納させる。
【0089】
このキャッシュデータライト時のパリティ生成手法は、キャッシュメモリ240にホスト装置からのデータを書き込むと同時に、パリティデータを生成できるため、前記(3)の手法に比べて動作速度は向上する。但し、ハードウェア量は若干多くなる。
【0090】
以上、ホスト装置からのディスクライト要求に応じてキャッシュメモリ240に書き込まれたライトデータ或いはキャッシュメモリ240に書き込まれるライトデータを利用して、ディスクキャッシュ部24にてキャッシュデータリード時或いはキャッシュデータライト時のパリティ生成を行う場合について説明したが、このパリティ生成技術は、ディスクドライブ10-0〜10-3のいずれか1つに障害が発生した際に、残りの正常なディスクドライブとパリティディスク用のディスクドライブ10-4のデータから、障害ディスクのデータを復元してバックアップ(ホットスペアディスク)用のディスクドライブ10-5に格納するデータ復元処理にも応用可能である。
【0091】
(5)ディスクキャッシュ部24でのデータ復元
そこで、ディスクキャッシュ部24でのデータ復元について、ディスクドライブ10-0〜10-3のうちの1つ、例えばディスクドライブ10-3が故障したために、ディスクドライブ10-0〜10-2のデータとディスクドライブ10-4のデータを用いて、そのデータのキャッシュメモリ240へのライト時にデータ復元を行う場合を例に説明する。なお、このデータ復元処理では、ディスクドライブかからのデータの読み出し順が管理できるため、前記(4)のキャッシュデータライト時のパリティ生成動作とは異なって、データストリームの分割サイズSがキャッシュメモリ240とPCIバス25との間の1回のデータ転送サイズに一致する必要はない。
【0092】
今、制御部21は、ディスクドライブ10-0〜10-2に格納されているチャンクAi 〜Ci のj番目の32バイトデータaij〜cijと、ディスクドライブ10-4に格納されている、チャンクAi 〜Di のj番目の32バイトデータaij〜dijのパリティデータpijとから、チャンクDi のj番目の32バイトデータdijを復元しようとしているものとする。
【0093】
この場合、制御部21は、ディスク入出力部23-0〜23-2,23-4を順に制御して、対応するディスクドライブ10-0〜10-2,10-4からPCIバス25にデータaij〜cij,pijを順に読み出させると共に、このデータaij〜cij,pijをライトデータとするパリティ生成指定のキャッシュデータライトコマンドをディスクキャッシュ部24に順次発行する。これにより、前記したホスト装置からのライトデータをもとにパリティデータを生成する場合と同様にして、(データaij〜cij,pijをキャッシュメモリ240に書き込むと共に)FIFOメモリ241内にデータaij〜cij,pijの排他的論理和結果を生成することができる。ここで、ディスクドライブ10-4からのデータpijは、障害発生ディスクドライブ10-3からのデータとして扱われ、データdijが読み込まれた際に書き込まれるキャッシュメモリ240内領域に書き込まれる。
【0094】
明らかなように、上記したデータaij〜cij,pijの排他的論理和結果はデータdijに一致する。即ち本実施形態では、ディスクドライブ10-0〜10-2,10-4からキャッシュメモリ240へのキャッシュデータライト時に、そのライトデータaij〜cij,pijからデータdijを復元することができる。このFIFOメモリ241内に復元されたデータdijは、図5において符号55,55aで示すようにPCIバスブリッジ242側に読み出されて、当該PCIバスブリッジ242からPCIバス25を介してディスク入出力部23-4に転送され、バックアップ用のディスクドライブ10-4内の(データaij〜cij,pija に対応する)領域に格納される。また、FIFOメモリ241からPCIバスブリッジ242側に読み出されたデータdijは、図5において符号55bで示すようにキャッシュメモリ240に転送されて、先に書き込まれているデータpijが当該データdijに書き換えられる。
【0095】
なお、上記したデータdijの復元を、パリティ生成指定のキャッシュデータリードコマンドを用いて実現することも可能である。ここでは、ディスクドライブ10-0〜10-2に格納されているチャンクAi 〜Ci と、ディスクドライブ10-4に格納されている、チャンクAi 〜Di のパリティデータPi を順次読み出して(ノーマルアクセスモード指定のキャッシュデータライトコマンド列を用いて)キャッシュメモリ240に書き込んだ後、パリティ生成指定のキャッシュデータリードコマンド列を用いてキャッシュメモリ240からチャンクAi 〜Di の32バイトデータaij〜cij,pij(j=0〜n)を順に読み出させることで、データaij〜cij,pijの排他的論理和結果、即ち復元したデータdijを取得することになる。
【0096】
さて、図1及び図2の構成において、(電源投入時における)システムのリセット、若しくは外部入出力部22より得たコマンド等によってディスクアレイの構成を変える必要が生じた場合には、制御部21(内のマイクロプロセッサ211)は、F/Wメモリ212に実装されたデータを選択し、制御部インタフェース213からディスクキャッシュ部24の制御レジスタ249を介してFPGA244へのローディングを行う。これにより、目的とするディスクアレイの構成(RAIDの形態)を簡単に変更することができる。このように本実施形態においては、ディスクキャッシュ部24のPCIバスブリッジ242及びコントロールロジック243をFPGA244を用いて実現することで、不必要に大きなデバイスを使用することなく、装置の小形化、高速化のために機能が削減されるのを防ぐことが可能となる。
【0097】
また、本実施形態において、PCIバス25の手順に従ってアクセスされるキャッシュメモリ240を有するディスクキャッシュ部24は、PCIバス25に直接接続可能なようにカード化されている。このように、ディスクキャッシュ部24を独立したカード構成として、複数のディスクドライブを持つ既存のシステムのPCIバス25(標準バス)に接続可能なようにすることで、制御プログラムを提供するのみで、特別なハードウェアの変更を加えることなく、信頼性の高いディスクサブシステムを構築することができる。
【0098】
さて、前記したディスクキャッシュ部24におけるキャッシュデータリード時のパリティ生成、或いはキャッシュデータライト時のパリティ生成のための一連のシーケンス処理では、制御部21からのパリティ生成モード指定のキャッシュデータリードコマンド、或いはパリティ生成モード指定のキャッシュデータライトコマンドに応じて、排他的論理和演算が繰り返し行われる。この排他的論理和演算を繰り返し行うデータの数は、データストリームの分割数Nに一致する。そこで本実施形態では、この分割数N(ここでは4)を、制御部21(内のマイクロプロセッサ211)から(当該マイクロプロセッサ211によりアクセス可能な)制御レジスタ249を介してコントロールロジック243に通知するようにしている。したがって、制御部21(内のマイクロプロセッサ211)から制御レジスタ249を介してディスクキャッシュ部24のコントロールロジック243に分割数Nを通知して、当該コントロールロジック243でのシーケンス処理を変更することによって、システムの動作中にも、ディスクアレイの構成を自由に変更することができる。
【0099】
以上は、パリティデータが専用のディスクドライブ(10-4)に格納される(RAID3に代表される)ディスクアレイ構成のディスクアレイ装置に適用した場合について説明したが、本発明は、データと同様にパリティデータについても、各データディスク(ディスクドライブ10-0〜10-3)に分散配置される(RAID5に代表される)ディスクアレイ構成のディスクアレイ装置にも適用可能である。
【0100】
【発明の効果】
以上詳述したように本発明によれば、キャッシュメモリを有するディスクキャッシュ手段側に、キャッシュメモリアクセス時のリード/ライトデータを利用してパリティデータを生成する或いはデータを復元する機能を持たせることで、構成の簡略化、処理の高速化及び制御の容易化が実現できる。
【図面の簡単な説明】
【図1】本発明の一実施形態に係るディスクアレイ制御装置を備えたディスクアレイ装置の構成を示すブロック図。
【図2】図1中のディスクキャッシュ部24の詳細構成を示すブロック図。
【図3】同実施形態において、ディスクキャッシュ部24上に予め定められた間隔Sで並んでいる4個のデータからパリティデータを生成する手順を説明するための図。
【図4】同実施形態におけるキャッシュデータリード時のパリティデータ生成の流れを説明するための図。
【図5】同実施形態におけるキャッシュデータライト時のパリティデータ生成の流れを説明するための図。
【符号の説明】
10-0〜10-5…ディスクドライブ、
20…ディスクアレイ制御装置、
21…制御部(主制御手段)、
22…外部入出力部、
23-0〜235 …ディスク入出力部、
24…ディスクキャッシュ部、
25…PCIバス(標準バス)、
240…キャッシュメモリ、
241…FIFOメモリ(先入れ先出し方式の記憶手段)、
242…PCIバスブリッジ(ディスクキャッシュ制御手段)、
243…コントロールロジック(ディスクキャッシュ制御手段)、
244…FPGA(フィールドプログラマブルゲートアレイ、プログラマブルなロジックデバイス、ディスクキャッシュ制御手段)、
245…排他的論理和回路、
249…制御レジスタ。[0001]
BACKGROUND OF THE INVENTION
The present invention relates to a disk array device having a plurality of disk drives, and more particularly to a disk array control for controlling access to a disk drive by including a cache memory for temporarily storing transfer data between the disk drive and a host device. Relates to the device.
[0002]
[Prior art]
The disk array device has multiple disk drives, and the data from the host device is distributed and stored in these multiple disk drives (the storage media attached to them), enabling parallel access and increasing access speed. Is intended.
[0003]
The disk array device is provided with a disk array control device for controlling access to the disk drive. This disk array control device generates parity data as data correction information for transfer data (write data) from the host device, and writes it to any of the plurality of disk drives. Thereby, even when one of the plurality of disk drives fails, the data of the failed disk drive can be restored by using the parity data and the data of the remaining disk drives. Note that the parity data write destination disk differs depending on the data distribution and arrangement method, and is fixed (as represented by a method called RAID 3) or as represented by a method (called
[0004]
The disk array control device generally has a cache memory (disk cache) for temporarily storing transfer data between the disk drive and the host device, and the target data exists in the cache memory. In this case, the target data can be accessed at high speed from the cache memory without accessing the disk drive (with mechanical access operation).
[0005]
[Problems to be solved by the invention]
In the conventional disk array control device described above, parity data is generated for write data from the host device, the parity data is stored in the disk drive, and the original data is restored using the parity data. However, it is necessary to configure the control device itself as a hardware device dedicated to parity data generation and data restoration by a firmware program in the control device.
[0006]
However, there is a problem of processing speed when using the firmware, and there is a problem that the circuit becomes complicated with dedicated hardware.
The present invention has been made in view of the above circumstances, and an object of the present invention is to generate parity data or restore data by using read / write data at the time of accessing the cache memory on the disk cache means side having the cache memory. It is an object of the present invention to provide a disk array control device capable of simplifying the configuration, speeding up processing, and facilitating control by providing functions.
[0007]
[Means for Solving the Problems]
The disk control apparatus of the present invention includes external input / output means for controlling input / output to / from an external host device, and N disk drives in which a data stream from the host device is divided and distributed in a predetermined size. Disk drive input / output means enabling connection with a disk drive group, disk cache means having a cache memory for temporarily storing transfer data between the disk drive and the host device, and main control for controlling each part The disk cache means includes an exclusive OR circuit for performing an exclusive OR operation in bit units between two data, read / write data to the cache memory, and the exclusive logic. First-in first-out storage means for temporarily storing either one of the exclusive OR operation results of the sum circuit Disk cache control means for controlling the entire disk cache means including access control to the cache memory, access control to the storage means, and control of the exclusive OR circuit, and the disk cache control means In other words, when data is read from the cache memory in response to an instruction from the main control means, the data read from the cache memory is written to the storage means or read from the cache memory. The exclusive OR operation of the data and the data written in the storage means at that time is performed by the exclusive OR circuit, and the exclusive OR operation result is rewritten in the storage means, or Output as cache memory read data By controlling the operation, the data written in the cache memory is used to generate parity data that is the exclusive OR operation result of the data distributed and arranged in the corresponding areas of the N disk drives. Output.
[0008]
Further, the present invention provides a function for performing the following control to the disk cache control means, that is, when data is written to the cache memory in accordance with an instruction from the main control means, the data written to the cache memory is stored in the storage means. Or the exclusive OR operation of the data written in the cache memory and the data written in the storage means at that time is performed by the exclusive OR circuit, and the result of the exclusive OR operation By having the function of controlling the operation of rewriting the data in the storage means, using the data written in the cache memory, the exclusive OR operation of the data distributed in the corresponding areas of the N disk drives Parity data as a result is generated and output.
[0009]
In the disk array control device having such a configuration, the disk cache means side has a function of generating parity data using read / write data when accessing the cache memory, thereby simplifying the configuration and processing. High speed and easy control can be achieved.
[0010]
The present invention also provides a function for performing the following sequence processing to the disk cache control means, that is, when a specific read command for instructing data reading from the cache memory is given from the main control means. N data distributed in the corresponding area of the N disk drives including the data specified by the address information attached to is sequentially read, and the first read data is directly stored in the storage means For the second to N−1th read data, the exclusive OR operation of the data and the data written in the storage means at that time is performed by the exclusive OR circuit. The exclusive OR operation result is rewritten in the storage means, and the Nth read data is The exclusive OR operation between the data and the data written in the storage means at that time is performed by the exclusive OR circuit, and the first to Nth results of the exclusive OR operation are obtained. It has a function of performing a sequence process of generating parity data of data and outputting the parity data as read data of the cache memory in response to the specific read command.
[0011]
In the present invention, when the disk cache control unit is given a function of performing the following sequence processing, that is, when a specific write command instructing data writing to the cache memory is given from the main control unit, Write consecutive N write data distributed in the corresponding area of N disk drives in order to the cache memory area specified by the address information attached to the command, and write the first data Sometimes, the data is also written to the storage means, and when the second to Nth data is written, an exclusive OR operation between the data and the data written to the storage means at that time is performed with the exclusive logic. A sequence process in which the exclusive OR operation result is rewritten in the storage means by the sum circuit. To have the function of performing, when writing the N th data, characterized in that as the parity data of the first through N-th data in the storage means is written.
[0012]
In such a disk array control device, only a specific read command or write command is given from the main control means to the disk cache control means in the disk cache means, and the cache data read operation specified by the command is executed. Alternatively, since the sequence processing for parity generation accompanying the cache data write operation is performed, the processing speed can be further increased. In particular, in the parity generation accompanying the cache data write operation, since the parity data can be generated simultaneously with writing to the cache memory, the highest speed can be achieved.
[0013]
Further, the present invention is characterized in that the disk cache control means is constituted by a programmable logic device that can be rewritten from the main control means, and the configuration of the target disk array can be changed by the logic device when the power is turned on. And
[0014]
In such a configuration, functions can be prevented from being reduced for downsizing and speeding up of the apparatus without using an unnecessarily large device.
In the present invention, whether to generate parity data when accessing the cache memory is specified by a predetermined part of the address information passed from the main control means to the disk cache control means for accessing the cache memory. It is characterized by that.
[0015]
In such a configuration, when accessing the cache memory, it is possible to switch between normal cache read / write using only a predetermined portion of the address information and parity generation using cache read / write data.
[0016]
According to the present invention, the external input means, the disk drive input / output means, the disk cache means, and the main control means are interconnected by a standard bus, and the disk cache control means connects the cache memory to the standard bus. It is characterized in that the access is made according to the procedure.
[0017]
In this way, the disk cache means can be connected to the standard bus as an independent configuration, and by connecting to the standard bus of an existing system having disk drives, only a control program is provided and special hardware changes are made. Therefore, it is possible to construct a highly reliable disk subsystem.
[0018]
The present invention is characterized in that the main control means notifies the logic device of the value of N (the number of data stream divisions) via a control register circuit accessible by the main control means. And
[0019]
In such a configuration, the configuration of the disk array can be freely changed from the main control means via the control register circuit even during the operation of the system.
In the present invention, a disk drive different from the N disk drives is assigned as a dedicated disk (parity data storage disk) for storing parity data of data distributed and arranged in the N disk drives. In the disk array configuration in which the N disk drives also serve as parity data storage disks, the parity generation at the time of cache read / write is applied to data restoration, and the disk cache control means The next function, that is, when one of the N disk drives fails, the operation of restoring the data of the disk drive is performed in accordance with an instruction from the main control means. Data and its parity data. The data in the failed disk drive is restored by using the N data excluding the data in the disk drive in the disk cache means and obtaining the exclusive OR operation result of the N data. It is characterized by having a function. If the restored data is stored in a backup disk drive (hot spare disk) in the disk drive group, it can be used in place of the failed disk drive.
In such a configuration, the data on the failed disk can be restored using the read / write data when accessing the cache memory.
[0020]
DETAILED DESCRIPTION OF THE INVENTION
Embodiments of the present invention will be described below with reference to the drawings.
FIG. 1 is a block diagram showing a configuration of a disk array device including a disk array control device according to an embodiment of the present invention.
[0021]
The disk array apparatus of FIG. 1 is composed of a plurality of, for example, six disk drives 10-0 to 10-6 and a disk
[0022]
The disk drives 10-0 to 10-5 are, for example, hard disk drives (HDD). Four disk drives 10-0 to 10-3 are for data storage (for data disks), and the disk drive 10-4 is for data correction. Assume that the disk drive 10-5 is allocated for storing parity data as information (for a parity disk) and for a backup disk (referred to as a hot spare disk).
[0023]
Here, a mode is adopted in which the data stream is divided into units of a certain size S, for example, 4 Kbytes (S = 4 Kbytes) and distributed to the disk drives 10-0 to 10-3. . In this case, if the data stream is divided into chunks A0, B0, C0, D0, A1, B1, C1, D1,... Of size S (= 4 Kbytes), chunk Ai (i = 0, 1...) Is a disk. In the drive 10-0, the chunk Bi is arranged in the disk drive 10-1, the chunk Ci is arranged in the disk drive 10-2, and the chunk Di is arranged in the disk drive 10-3. The validators Pi of the chunks Ai to Di are arranged in the disk drive 10-4. These Ai, Bi, Ci, Di, Pi are generally arranged in the same disk area of the disk drives 10-0, 10-1, 10-2, 10-3, 10-4. Here, the number of chunks Ai to Di is called the number of divisions for the data stream.
[0024]
The disk
[0025]
The control unit 21 includes a microprocessor 211 and a firmware memory (F / W memory) 212 (configured by ROM or RAM), and an F / W program (firmware program) stored in the F /
[0026]
The external input /
[0027]
The disk input / output units 23-0 to 23-5 are connected to the disk drives 10-0 to 10-5, and perform data transfer between the
[0028]
As shown in detail in FIG. 2, the disk cache unit 24 includes a
[0029]
The
[0030]
The
[0031]
The
[0032]
The control logic 243 determines whether the access to the
[0033]
In the present embodiment, the
[0034]
The exclusive OR
[0035]
Next, basic operations in the present embodiment will be described in order of a disk read operation in response to a disk read request from the host device and a disk write operation in response to a disk write request from the host device.
[0036]
(1) Disk read operation
First, it is assumed that a disk read request is issued from the host device, and the disk read request is transmitted to the control unit 21 via the external input /
[0037]
When the requested data exists in the
[0038]
In the present embodiment, a range of, for example, 00000000h to 00010000h (the h at the end indicates hexadecimal representation) of the address space indicated by 32-bit address information is allocated for a firmware (F / W) program, The ranges of 10000000h to 1FFFFFFFh and 20000000h to 2FFFFFFFh are all allocated for the
[0039]
When the
[0040]
When the control logic 243 receives the cache data read command from the
[0041]
The control logic 243 controls the bidirectional buffer IC 246 on the data bus 2401 according to the cache data read command received from the
[0042]
Then, 32-byte data indicated by the designated cache memory address is read from the cache memory 240 (for example, in units of 4 bytes). The 32-byte data is led to the PCI bus bridge 242 (in units of 4 bytes) via the bidirectional buffer IC 246 and the data bus 2401, and transferred to the external input /
[0043]
The control unit 21 repeats the output of the cache data read command designating the normal access mode to the
[0044]
On the other hand, when the data requested by the host device does not exist in the
[0045]
(2) Disk write operation
Next, it is assumed that a disk write request is issued from the host device and the disk write request is transmitted to the control unit 21 via the external input /
[0046]
Upon receiving a disk write request from the host device, the control unit 21 sends a command (cache data write command) for instructing data write to the
[0047]
When the upper 4 bits of the address information attached to the cache data write command sent from the control unit 21 to the
[0048]
The control unit 21 caches all the data requested by the host device in units of 32 bytes while switching the address information (the lower 28 bits) while outputting the cache data write command designating the normal access mode to the
[0049]
When all the data requested from the host device is written into the
[0050]
The control unit 21 performs control using the above-described normal access mode designation cache data read command while switching the address information (lower 28 bits), and the data written to the
[0051]
When the disk write operation to the disk drives 10-0 to 10-3 is performed, it is necessary to update the corresponding parity data stored in the disk drive 10-4. In this case, the control unit 21 performs control to read out data from the
[0052]
(3) Parity generation operation when reading cache data
Now, by the series of disk write operations (2) according to the disk write request from the host device, the requested write data stream is written to the
[0053]
First, in order to read the data ai1, bi1, ci1, and di1 and generate the parity data pi1, the control unit 21 generates a parity data pi1 cache data read command, that is, address information whose upper 4 bits are “0010”. The attached cache data read command is sent to the
[0054]
When the
[0055]
When the control logic 243 receives the cache data read command from the
[0056]
First, the control logic 243 sets the cache memory address (first cache memory address) obtained from the address information (the lower 28 bits) attached to the received command, and sets the control signal for data read to the
[0057]
Next, the control logic 243 automatically adds the address to the
[0058]
At the same time, the control logic 243 reads the data a i1 previously written in the
[0059]
The exclusive OR
[0060]
Next, the control logic 243 automatically adds the address to the
[0061]
At the same time, the control logic 243 reads the exclusive OR result of the data ai1 and bi1 previously written in the
[0062]
The exclusive OR
[0063]
Next, the control logic 243 automatically adds the address for the
[0064]
At the same time, the control logic 243 reads the exclusive OR result of the exclusive OR results of the data ai1 to ci1 written in the
[0065]
The exclusive OR
[0066]
Next, the controller 21 sequentially reads the second 32-byte data ai2 to di2 in the chunks Ai to Di from the
[0067]
In the disk cache unit 24, in accordance with the second-time parity data generation mode designation cache data read command output from the control unit 21, the same sequence processing as in the first-time parity data generation mode designation cache data read command output The data ai2, bi2, ci2, and di2 are sequentially read from the
[0068]
Parity data generation is performed for all pairs of ai1, bi1, ci1, di1 to ain, bin, cin, and diin the chunks Ai, Bi, Ci, and Di. The chunks Ai, Bi, Ci, and When at least one of Di is updated (disc written), and only a part of the data in the chunks Ai, Bi, Ci, Di is updated, only the corresponding data set Parity data generation by processing is performed.
[0069]
In the above embodiment, the control logic 243 is provided with a sequence processing function, and only one cache data read command designating a parity generation mode is given from the control unit 21. In addition to the data aij designated by the command, In addition, other data bij, cij, dij paired with the data are also automatically updated based on the arrangement interval S between the data aij, bij, cij, dij on the
[0070]
For example, the control unit 21 may sequentially issue a cache data read command designating a parity generation mode for reading each data aij, bij, cij, dij to the disk cache unit 24. In this case, every time a cache data read command designating a parity generation mode is given from the control unit 21, data designated by the command is read from the
[0071]
As described above, in the method in which commands are sequentially issued from the control unit 21 to the disk cache unit 24 for each data aij, bij, cij, dij, (cache memory address) in the disk cache unit 24 (internal control logic 243). Since a sequence processing mechanism (including automatic update) is not required, the amount of hardware can be reduced. However, as in the above-described embodiment, the disk cache unit can be obtained only by issuing a cache data read command specifying a parity generation mode once. The operation speed is lower than that in which the parity generation at 24 can be automatically performed.
[0072]
In the embodiment, all the data requested from the host device is written in the
[0073]
(4) Parity generation operation during cache data write
A parity generation operation at the time of cache data write will be described with reference to FIG.
[0074]
First, in this embodiment, the division size S when the data stream is distributed to the disk drives 10-0 to 10-3 is 32 bytes, which is the size of one data transfer between the
[0075]
Now, it is assumed that write data (data stream) accompanying a disk write request from the host device is continuously transferred to the
[0076]
First, the control unit 21 writes the first data a i into the
[0077]
When the
[0078]
When the control logic 243 receives the first parity mode designation cache data write command from the
[0079]
Next, the control unit 21 writes a cache data write command designating a parity generation mode via the
[0080]
When the control logic 243 receives the cache data write command for designating the second parity generation mode sent from the control unit 21 to the
[0081]
The exclusive OR
[0082]
Next, the control unit 21 writes the cache data write command for designating the parity generation mode via the
[0083]
Upon receiving the third parity generation mode designation cache data write command sent from the control unit 21 to the
[0084]
The exclusive OR
[0085]
Next, the control unit 21 writes a cache data write command designating a parity generation mode via the
[0086]
When the control logic 243 receives the fourth parity generation mode designation cache data write command sent from the control unit 21 to the
[0087]
The exclusive OR
[0088]
Thereafter, the control unit 21 sequentially reads the disk write data written in the
[0089]
In this parity data generation method at the time of cache data write, since the data from the host device can be written to the
[0090]
As described above, when the cache data is read or the cache data is written by the disk cache unit 24 using the write data written to the
[0091]
(5) Data restoration in the disk cache unit 24
Therefore, with regard to data restoration in the disk cache unit 24, one of the disk drives 10-0 to 10-3, for example, the disk drive 10-3 has failed. A case will be described as an example in which data is restored using the data of the disk drive 10-4 when the data is written to the
[0092]
Now, the control unit 21 receives the j th 32-byte data aij to cij of the chunks Ai to Ci stored in the disk drives 10-0 to 10-2 and the chunk Ai stored in the disk drive 10-4. It is assumed that the jth 32-byte data dij of the chunk Di is to be restored from the parity data pij of the jth 32-byte data aij to dij of .about.Di.
[0093]
In this case, the control unit 21 sequentially controls the disk input / output units 23-0 to 23-2 and 23-4 to transfer data from the corresponding disk drives 10-0 to 10-2 and 10-4 to the
[0094]
As is apparent, the exclusive OR result of the data aij to cij, pij described above coincides with the data dij. That is, in the present embodiment, at the time of cache data write from the disk drives 10-0 to 10-2 and 10-4 to the
[0095]
Note that the above-described restoration of the data dij can also be realized by using a cache data read command designated for parity generation. Here, the chunks Ai to Ci stored in the disk drives 10-0 to 10-2 and the parity data Pi of the chunks Ai to Di stored in the disk drive 10-4 are sequentially read (normal access mode). After writing to the cache memory 240 (using the designated cache data write command sequence), the 32-byte data aij to cij, pij (j) of the chunks Ai to Di from the
[0096]
In the configuration of FIGS. 1 and 2, when it is necessary to change the configuration of the disk array due to a system reset (when power is turned on) or a command obtained from the external input /
[0097]
In this embodiment, the disk cache unit 24 having the
[0098]
In the series of sequence processing for parity generation at the time of cache data read in the disk cache unit 24 or parity generation at the time of cache data write, a cache data read command designating a parity generation mode from the control unit 21 or The exclusive OR operation is repeatedly performed in accordance with the cache data write command designated by the parity generation mode. The number of data for which this exclusive OR operation is repeated coincides with the data stream division number N. Therefore, in the present embodiment, this division number N (here, 4) is notified from the control unit 21 (inside the microprocessor 211) to the control logic 243 via the control register 249 (accessible by the microprocessor 211). I am doing so. Accordingly, the control unit 21 (internal microprocessor 211) notifies the control logic 243 of the disk cache unit 24 of the division number N via the
[0099]
The above has been described with respect to a case where the present invention is applied to a disk array device having a disk array configuration (represented by RAID 3) in which parity data is stored in a dedicated disk drive (10-4). The parity data can also be applied to a disk array device having a disk array configuration (represented by RAID 5) distributed and arranged in each data disk (disk drives 10-0 to 10-3).
[0100]
【The invention's effect】
As described above in detail, according to the present invention, the disk cache means having a cache memory is provided with a function of generating parity data or restoring data using read / write data when accessing the cache memory. Thus, the configuration can be simplified, the processing speed can be increased, and the control can be facilitated.
[Brief description of the drawings]
FIG. 1 is a block diagram showing a configuration of a disk array device including a disk array control device according to an embodiment of the present invention.
FIG. 2 is a block diagram showing a detailed configuration of a disk cache unit 24 in FIG.
FIG. 3 is a view for explaining a procedure for generating parity data from four pieces of data arranged in a predetermined interval S on the disk cache unit 24 in the embodiment;
FIG. 4 is a view for explaining a flow of parity data generation at the time of cache data read in the embodiment;
FIG. 5 is a view for explaining a flow of parity data generation at the time of cache data write in the embodiment;
[Explanation of symbols]
10-0 to 10-5 ... disk drive,
20 ... Disk array control device,
21 ... Control unit (main control means),
22 ... external input / output unit,
23-0 to 235 ... Disc input / output unit,
24 ... disk cache part,
25 ... PCI bus (standard bus),
240 ... cache memory,
241 ... FIFO memory (first-in first-out storage means),
242 ... PCI bus bridge (disk cache control means),
243 ... control logic (disk cache control means),
244 ... FPGA (field programmable gate array, programmable logic device, disk cache control means),
245 ... exclusive OR circuit,
249: Control register.
Claims (6)
前記ディスクキャッシュ手段は、2つのデータ間でビット単位の排他的論理和演算を行う排他的論理和回路と、前記キャッシュメモリに対するリード/ライトデータ及び前記排他的論理和回路の排他的論理和演算結果のいずれか一方を一時記憶するための先入れ先出し方式の記憶手段と、前記キャッシュメモリに対するアクセス制御、前記記憶手段に対するアクセス制御、及び前記排他的論理和回路の制御を含む前記ディスクキャッシュ手段全体の制御を司るディスクキャッシュ制御手段とを備え、
前記ディスクキャッシュ制御手段は、前記主制御手段から前記キャッシュメモリへのデータ書き込みを指示する特定のライトコマンドが与えられた場合に、前記N個のディスクドライブの対応領域に分散配置される連続するN個のライトデータを、当該コマンドに付されているアドレス情報で指定された前記キャッシュメモリの領域に順番に書き込み、1番目のデータの書き込み時には、当該データを前記記憶手段にも書き込み、2番目乃至N番目のデータの書き込み時には、当該データとその時点において前記記憶手段に書き込まれているデータとの排他的論理和演算を前記排他的論理和回路により行わせて、その排他的論理和演算結果を前記記憶手段に再度書き込むシーケンス処理を行い、前記N番目のデータの書き込み時に、前記記憶手段内に前記1番目乃至N番目のデータのパリティデータが書き込まれ、当該記憶手段に書き込まれたパリティデータが前記ディスクドライブ群のうちの1つのディスクドライブに書き込まれるように制御すると共に、前記キャッシュメモリに書き込まれた前記N個のライトデータの前記ディスクドライブ群のうちのN個のディスクドライブへの書き込みが、前記パリティデータの書き込みよりも後に実行されるように制御する
ことを特徴とするディスクアレイ制御装置。 Connection between an external input / output unit that controls input / output with an external host device and a disk drive group including N disk drives in which a data stream from the host device is divided and distributed in a fixed size A disk comprising disk drive input / output means, disk cache means having a cache memory for temporarily storing transfer data between the disk drive and the host device, and main control means for controlling each part An array controller,
The disk cache means comprises: an exclusive OR circuit that performs bitwise exclusive OR operation between two data; read / write data for the cache memory; and exclusive OR operation result of the exclusive OR circuit A first-in first-out storage means for temporarily storing any one of the above, and control of the entire disk cache means including access control to the cache memory, access control to the storage means, and control of the exclusive OR circuit A disk cache control means
The disk cache control means is arranged to continuously distribute N arranged in the corresponding areas of the N disk drives when a specific write command for instructing data writing to the cache memory is given from the main control means. The write data is sequentially written to the area of the cache memory designated by the address information attached to the command, and when the first data is written, the data is also written to the storage means. When writing the Nth data, the exclusive OR operation of the data and the data written in the storage means at that time is performed by the exclusive OR circuit, and the exclusive OR operation result is obtained. A sequence process for rewriting to the storage means is performed, and the storage is performed when the Nth data is written. The first through the parity data of the N-th data is written into the stage, and controls so as parity data written in the storage means is written to one disk drive of the disk drive group, the cache Control is performed so that writing of the N write data written in the memory to the N disk drives in the disk drive group is performed after the writing of the parity data.
A disk array control device.
前記ディスクキャッシュ制御手段は、前記キャッシュメモリを前記標準バスの手順に従ってアクセスするように構成されていることを特徴とする請求項3記載のディスクアレイ制御装置。The external input means, the disk drive input / output means, the disk cache means and the main control means are interconnected by a standard bus,
4. The disk array control apparatus according to claim 3, wherein the disk cache control means is configured to access the cache memory according to a procedure of the standard bus.
前記主制御手段は前記制御レジスタ回路を介して前記ロジックデバイスに前記Nの値を通知することを特徴とする請求項2記載のディスクアレイ制御装置。The disk cache means comprises a control register circuit for the logic device, accessible by the main control means,
3. The disk array control apparatus according to claim 2, wherein the main control means notifies the value of N to the logic device via the control register circuit.
前記ディスクキャッシュ制御手段は、前記N個のディスクドライブの1つが故障した場合に、当該ディスクドライブのデータを復元する動作を、前記主制御手段からの指示により、前記ディスクドライブ群に格納されているN個のデータ及びそのパリティデータのうち、故障したディスクドライブ内のデータを除くN個のデータを前記ディスクキャッシュ手段内で利用して、当該N個のデータの排他的論理和演算結果を求めることで、前記故障したディスクドライブ内のデータを復元することを特徴とする請求項1記載のディスクアレイ制御装置。The disk drives different from the N disk drives in the disk drive group, or the N disk drives store or distribute parity data of data distributed in the N disk drives. Has been placed,
The disk cache control means stores, in the disk drive group, an operation of restoring data of the disk drive in response to an instruction from the main control means when one of the N disk drives fails. Of the N data and the parity data, N data excluding data in the failed disk drive is used in the disk cache means to obtain an exclusive OR operation result of the N data. 2. The disk array control apparatus according to claim 1 , wherein data in the failed disk drive is restored.
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP23426496A JP3779385B2 (en) | 1996-09-04 | 1996-09-04 | Disk array controller |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP23426496A JP3779385B2 (en) | 1996-09-04 | 1996-09-04 | Disk array controller |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| JPH1078854A JPH1078854A (en) | 1998-03-24 |
| JP3779385B2 true JP3779385B2 (en) | 2006-05-24 |
Family
ID=16968252
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP23426496A Expired - Fee Related JP3779385B2 (en) | 1996-09-04 | 1996-09-04 | Disk array controller |
Country Status (1)
| Country | Link |
|---|---|
| JP (1) | JP3779385B2 (en) |
Families Citing this family (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US6415355B1 (en) | 1998-05-11 | 2002-07-02 | Kabushiki Kaisha Toshiba | Combined disk array controller and cache control method for parity generation mode and data restoration mode |
| US7543100B2 (en) | 2001-06-18 | 2009-06-02 | 3Par, Inc. | Node controller for a data storage system |
-
1996
- 1996-09-04 JP JP23426496A patent/JP3779385B2/en not_active Expired - Fee Related
Also Published As
| Publication number | Publication date |
|---|---|
| JPH1078854A (en) | 1998-03-24 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US6049890A (en) | Disk array system and its control method | |
| US5720027A (en) | Redundant disc computer having targeted data broadcast | |
| US5394532A (en) | Disk drive array memory system having instant format capability | |
| US8074149B2 (en) | Disk controller methods and apparatus with improved striping, redundancy operations and interfaces | |
| US6904498B2 (en) | Raid controller disk write mask | |
| US6009481A (en) | Mass storage system using internal system-level mirroring | |
| US6401149B1 (en) | Methods for context switching within a disk controller | |
| JP3590381B2 (en) | Disk array device and data updating method in the device | |
| JP3181398B2 (en) | Array type recording device | |
| KR20000065071A (en) | Flyby generates parity for data collected from the bus | |
| JPH02503966A (en) | Large-capacity duplex disk storage method and device | |
| US5420983A (en) | Method for merging memory blocks, fetching associated disk chunk, merging memory blocks with the disk chunk, and writing the merged data | |
| US6055646A (en) | Disk array apparatus for multimedia server | |
| US10628045B2 (en) | Internal data transfer management in a hybrid data storage device | |
| JP3779385B2 (en) | Disk array controller | |
| USRE36448E (en) | Memory controller with parity generator for an I/O control unit | |
| JP2981711B2 (en) | Disk storage device | |
| JP3202550B2 (en) | Disk array subsystem | |
| JP4057718B2 (en) | Disk array control device and cache control method applied to the same | |
| WO2005089339A2 (en) | Disk controller methods and apparatus with improved striping redundancy operations and interfaces | |
| JPH11327796A (en) | Disk array control device and cache control method applied to the device | |
| WO1984002016A1 (en) | Dynamic addressing for variable track length cache memory | |
| JPS62145445A (en) | Cache memory system | |
| JPH06274282A (en) | Magnetic recording device | |
| JP2000099274A (en) | Buffering system |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20051208 |
|
| A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20051213 |
|
| A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20060210 |
|
| TRDD | Decision of grant or rejection written | ||
| A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20060228 |
|
| A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20060302 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100310 Year of fee payment: 4 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100310 Year of fee payment: 4 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110310 Year of fee payment: 5 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120310 Year of fee payment: 6 |
|
| LAPS | Cancellation because of no payment of annual fees |