Deprecated: The each() function is deprecated. This message will be suppressed on further calls in /home/zhenxiangba/zhenxiangba.com/public_html/phproxy-improved-master/index.php on line 456
JP3779385B2 - Disk array controller - Google Patents
[go: Go Back, main page]

JP3779385B2 - Disk array controller - Google Patents

Disk array controller Download PDF

Info

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
Application number
JP23426496A
Other languages
Japanese (ja)
Other versions
JPH1078854A (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 JP23426496A priority Critical patent/JP3779385B2/en
Publication of JPH1078854A publication Critical patent/JPH1078854A/en
Application granted granted Critical
Publication of JP3779385B2 publication Critical patent/JP3779385B2/en
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

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 RAID 5). ) It may be switched sequentially.
[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 array control apparatus 20 for controlling access to the disk drives 10-0 to 10-6. .
[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 array control device 20 includes a control unit 21, an external input / output unit 22, disk input / output units 23-0 to 23-5, and a disk cache unit 24. The control unit 21, the external input / output unit 22, the disk input / output units 23-0 to 23-5, and the disk cache unit 24 are connected by a local bus, for example, a PCI bus (Peripheral Component Interconnect Bus) 25 known as a standard bus. Interconnected.
[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 / W memory 212. Accordingly, the external input / output unit 22, the disk input / output units 23-0 to 23-5, and the disk cache unit 24 are controlled, and the data transfer performed between them is controlled. The control unit 21 has an interface (control unit interface) 213 for condition-designed programming and the like, and through this interface 213, an operation circuit (logic) of an FPGA (field programmable gate array) 244 described later is provided. decide.
[0026]
The external input / output unit 22 is connected to an external host device (not shown) and controls a procedure for performing data transfer with the PCI bus 25. Specifically, the external input / output unit 22 controls the transfer of data from the host device to the disk cache unit 24 and the disk input / output units 23-0 to 23-5 via the PCI bus 25, and further the disk cache unit. 24. Control is performed to transfer data from the disk input / output units 23-0 to 23-5 to the host device.
[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 PCI bus 25 and the disk drives 10-0 to 10-5. Control of the procedure of Specifically, data transfer between the external input / output unit 22 and the disk cache unit 24 connected to the PCI bus 25 and the disk drives 10-0 to 10-5 is controlled.
[0028]
As shown in detail in FIG. 2, the disk cache unit 24 includes a cache memory 240, a first-in first-out buffer (FIFO memory) 241, a PCI bus bridge 242 that forms a bus bridge circuit with the PCI bus 25, and a cache memory 240. And a control logic 243 for controlling the FIFO memory 241, an exclusive OR circuit (EX-OR) 245, a bidirectional buffer IC 246, an address buffer IC 247, buffer ICs 248a and 248b, and a control register 249.
[0029]
The cache memory 240 is for temporarily storing write data from the host device, and is composed of, for example, a DRAM group. As shown in FIG. 3, the cache memory 240 is managed by being divided into a plurality of divided areas such as DA, DB, DC, DD. The divided areas DA, DB, DC and DD are used for temporarily storing the chunks Ai, Bi, Ci and Di. It is assumed that data transfer between the cache memory 240 and the PCI bus 25 is performed in units of 32 bytes, for example, according to the procedure of the PCI bus 25 according to a command from the control unit 21.
[0030]
The FIFO memory 241 temporarily stores data from the cache memory 240 or the PCI bus 25, and based on the data from the FIFO memory 241 itself and the data from the cache memory 240 or the PCI bus 25 (exclusive OR circuit). Used to temporarily store the generated parity data. The capacity of the FIFO memory 241 is, for example, 32 bytes that matches the size of one data transfer between the cache memory 240 and the PCI bus 25.
[0031]
The PCI bus bridge 242 exchanges data with the PCI bus 25 and receives commands from the PCI bus 25. Further, the PCI bus bridge 242 transfers the data via the data bus 2401 (considering the direction) between the cache memory 240 and the PCI bus 25 according to the received command, and the FIFO memory 241 (from the cache memory 240 or the PCI bus 25 to the FIFO memory 241 ( Data transfer to the buffer IC 248a) or the exclusive OR circuit 245, transfer from the FIFO memory 241 to the cache memory 240, and transfer from the exclusive OR circuit 245 (corresponding to the buffer IC 248b) to the PCI bus 25. Do as appropriate.
[0032]
The control logic 243 determines whether the access to the cache memory 240 is a normal access mode without parity generation or a parity generation mode with parity generation in accordance with a command received by the PCI bus bridge 242, and according to the determination result For example, read / write timing control to the cache memory 240 is performed. The control logic 243 reads address information for the cache memory 240 from the received command, and outputs an address to the cache memory 240 (and an address buffer IC 247 connected via the address bus 2402).
[0033]
In the present embodiment, the PCI bus bridge 242 and the control logic 243 constitute a control means (disk cache control means) in the disk cache unit 24, for example, a field programmable gate array (programmable logic device). FPGA) 244. The operation circuit of the FPGA 244 is determined by loading (programming) internal logic from the interface 213 of the control unit 21 via the control register 249.
[0034]
The exclusive OR circuit 245 generates parity data by taking the exclusive OR of the data sent via the data bus 2401 and the data read from the FIFO memory 241.
[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 / output unit 22 and the PCI bus 25. When receiving a disk read request from the host device, the control unit 21 determines whether the requested data exists in the cache memory 240 of the disk cache unit 24. This determination method has been well known in the art and is not directly related to the present invention, and therefore the description thereof will be omitted.
[0037]
When the requested data exists in the cache memory 240, the control unit 21 sends a command (cache data read command) for instructing data read from the cache memory 240 to the disk cache unit 24 via the PCI bus 25. The data is sent to the PCI bus bridge 242. For example, 32-bit address information is attached to the cache data read command.
[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 cache memory 240. Here, the address of the cache memory 240 is indicated by, for example, the lower 28 bits of 10000000h to 1FFFFFFFh and 20000000h to 2FFFFFFFh. In this embodiment, the first cache memory address of the target data (32 bytes) is indicated by the lower 28 bits of the 32-bit address information attached to the command sent from the control unit 21 to the PCI bus bridge 242. Further, it is a normal access mode in which normal data read / write (herein, data read) for the cache memory 240 is performed according to the value of the upper 4 bits, or data read / write for the cache memory 240 is performed. In addition, it is indicated whether the parity generation mode is to generate parity data using the read / write data. Here, “0001” (1h) indicates the normal access mode, and 0010 ”(2h) indicates the parity generation mode.
[0039]
When the PCI bus bridge 242 receives a cache data read command from the control unit 21 via the PCI bus 25, the PCI bus bridge 242 determines the data flow direction from the command and sends the command to the control logic 243.
[0040]
When the control logic 243 receives the cache data read command from the PCI bus bridge 242, the control logic 243 refers to the upper 4 bits of the address information attached to the command. If “0001”, the control logic 243 is the normal access mode, and “0010”. If the normal access mode is designated, the control logic 243 controls the cache data read in the normal access mode as follows. To do.
[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 PCI bus bridge 242. The control logic 243 controls the address buffer IC 247 on the address bus 2402 to set a cache memory address (first cache memory address) obtained from the address information (the lower 28 bits) attached to the cache data read command. Then, a control signal for data read to the cache memory 240 is generated and output.
[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 / output unit 22 via the PCI bus 25 by the PCI bus bridge 242. Is done. The 32-byte data transferred to the external input / output unit 22 is transferred to the host device by the external input / output unit 22.
[0043]
The control unit 21 repeats the output of the cache data read command designating the normal access mode to the PCI bus bridge 242 while switching the address information (lower 28 bits) until all the data requested from the host device is read. .
[0044]
On the other hand, when the data requested by the host device does not exist in the cache memory 240, the control unit 21 controls the disk input / output units 23-0 to 23-3 to transfer the requested data to the disk drive 10-. The data is transferred to the external input / output unit 22 while being read from 0 to 10 −3 to the PCI bus 25 and stored in the cache memory 240 of the disk cache unit 24. The data transferred to the external input / output unit 22 is transferred to the host device by the external input / output unit 22.
[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 / output unit 22 and the PCI bus 25. In this case, write data (stream) is transferred from the host device.
[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 cache memory 240 via the PCI bus 25 to the PCI bus bridge 242 in the disk cache unit 24. To send. This command has 32-bit address information. The upper 4 bits of this address information are “0001” indicating the normal access mode, and the lower 28 bits indicate the cache memory address.
[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 PCI bus bridge 242 are “0001”, the control logic 243 is used to write the cache data in the normal access mode. Take control. As a result, data transferred from the host device to the PCI bus 25 via the external input / output unit 22 (here, the first 32-byte data of the data stream for writing) is transferred to the data bus 2401 by the PCI bus bridge 242. The data is sent to the cache memory 240 via the direction buffer IC 246 and written into the area in the cache memory 240 indicated by the lower 28 bits of the address information attached to the cache data write command.
[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 PCI bus bridge 242. Repeat until written to memory 240.
[0049]
When all the data requested from the host device is written into the cache memory 240, the control unit 21 sequentially reads out the data written in the cache memory 240 using a cache data read command specified in the normal access mode, and inputs / outputs the disk. By performing control to transfer to one of the units 23-0 to 23-3, the data is stored in the corresponding disk drive.
[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 cache memory 240 in accordance with the disk write request from the host device. Repeat until all the disk drives 10-0 to 10-3 are stored.
[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 cache memory 240 and generate parity data using a cache data read command designating the parity generation mode. A parity generation operation at the time of reading the cache data will be described with reference to FIGS.
[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 cache memory 240 and the write data written to the cache memory 240 is written to the disk. It is assumed that the drives 10-0 to 10-3 are distributedly arranged. Here, data (chunks) Ai, Bi, Ci, Di of size S (= 4 Kbytes) are written in areas DA, DB, DC, DD of size S (= 4 Kbytes) in the cache memory 240 and the disk drive. It is assumed that 10-0, 10-1, 10-2, and 10-3 are distributed. Chunk Ai is 32-byte data ai1, ai2, ai3... Ain, chunk Bi is 32-byte data bi1, bi2, bi3... Bin, chunk Ci is 32-byte data ci1, ci2, ci3. Byte data di1, di2, di3.
[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 PCI bus bridge 242 via the PCI bus 25. The lower 28 bits of the address information indicate the address of the cache memory 240 in which, for example, the data ai1 of the data ai1, bi1, ci1, di1 is written.
[0054]
When the PCI bus bridge 242 receives a cache data read command from the control unit 21 via the PCI bus 25, the PCI bus bridge 242 determines the data flow direction from the command and sends the command to the control logic 243.
[0055]
When the control logic 243 receives the cache data read command from the PCI bus bridge 242, it refers to the upper 4 bits of the address information attached to the command, and in the case of “0010” as in this example, parity generation is performed. It is determined that the command is a mode-specified cache data read command, and the sequence processing for that is executed as follows.
[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 cache memory 240. By generating and outputting, the target 32-byte data ai1 (first 32 byte data in the chunk Ai) is read from the cache memory 240 to the data bus 2401 via the bidirectional buffer IC 246 (in units of 4 bytes). As shown by reference numeral 41 in FIG. 4, data is written to the FIFO memory 241 via the PCI bus bridge 242 (and the buffer IC 248a).
[0057]
Next, the control logic 243 automatically adds the address to the cache memory 240 by the fixed size S (= 4 Kbytes), and in the four sets of 32-byte data ai1, bi1, ci1, di1 that are the targets of parity generation. The address of the data bi1 is generated. Then, the control logic uses this generated address to send data bi1 (first 32 bytes of data in the chunk Bi) from the cache memory 240 via the bidirectional buffer IC 246 and the data bus 2401, indicated by reference numeral 42 in FIG. Thus, the data is read to the exclusive OR circuit 245 side.
[0058]
At the same time, the control logic 243 reads the data a i1 previously written in the FIFO memory 241 to the exclusive OR circuit 245 side as indicated by reference numeral 43 in FIG.
[0059]
The exclusive OR circuit 245 calculates the exclusive OR of the data ai1 read from the FIFO memory 241 and the data bi1 read from the cache memory 240 in bit units. The exclusive OR operation result (32 bytes) of the exclusive OR circuit 245 is stored in the FIFO memory 241 as indicated by reference numeral 44 in FIG. 4 (via the buffer ICs 248b and 248a) under the control of the control logic 243. Written (in units of 4 bytes).
[0060]
Next, the control logic 243 automatically adds the address to the cache memory 240 by the fixed size S as in the previous time, and generates the address of the data ci1 this time, so that the data ci1 (the head in the chunk Ci) is generated. (32-byte data) is read from the cache memory 240 via the bidirectional buffer IC 246 and the data bus 2401 to the exclusive OR circuit 245 side as indicated by reference numeral 42 in FIG.
[0061]
At the same time, the control logic 243 reads the exclusive OR result of the data ai1 and bi1 previously written in the FIFO memory 241 to the exclusive OR circuit 245 side as indicated by reference numeral 43 in FIG.
[0062]
The exclusive OR circuit 245 performs an exclusive OR operation in units of bits of the data read from the FIFO memory 241 (exclusive OR result of the data ai1 and bi1) and the data ci1 read from the cache memory 240. Take. The exclusive OR result (32 bytes) of the exclusive OR circuit 245, that is, the exclusive OR result of the data ai1 to ci1 is controlled by the control logic 243 as shown by reference numeral 44 in FIG. Written to the FIFO memory 241 (via ICs 248b, 248a).
[0063]
Next, the control logic 243 automatically adds the address for the cache memory 240 by the fixed size S in the same manner as the previous time, and this time generates the address of the fourth data di1, thereby generating the data di1 (chunk Di). The first 32-byte data) is read out from the cache memory 240 via the bidirectional buffer IC 246 and the data bus 2401 to the exclusive OR circuit 245 side as indicated by reference numeral 45 in FIG.
[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 FIFO memory 241 last time to the exclusive OR circuit 245 side as indicated by reference numeral 46 in FIG.
[0065]
The exclusive OR circuit 245 performs an exclusive OR operation in units of bits of the data read from the FIFO memory 241 (exclusive OR result of the data ai1 to ci1) and the data di1 read from the cache memory 240. Take. The exclusive OR result (32 bytes) of the exclusive OR circuit 245 is the parity data pi1 of the data ai1 to di1 (the first 32 byte data ai1 to di1 in the chunks Ai to Di), and the control unit 21 PCI bus bridge (buffer IC 248b and) as indicated by reference numeral 47 in FIG. 4 as if it were read data (from the cache memory 240) specified by the cache data read command (specifying the parity generation mode) from The data is sent to the PCI bus 25 via 242. Parity data pi1, which is an exclusive OR result of the data ai1 to di1 sent to the PCI bus 25, is assigned (assigned to a parity disk by the disk input / output unit 23-4 under the control of the control unit 21. Stored in the disk drive 10-4.
[0066]
Next, the controller 21 sequentially reads the second 32-byte data ai2 to di2 in the chunks Ai to Di from the cache memory 240 and generates a parity data generation mode cache data read command for generating the parity data pi2. The data is sent to the PCI bus bridge 242 via the PCI bus 25. "0010" is set in the upper 4 bits of this address information, and the lower 28 bits indicate the address of the cache memory 240 in which the data ai2 of the data ai2, bi2, ci2, di2 is written.
[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 cache memory 240, exclusive ORed with each other, and parity data pi2 is generated. This is similarly applied to the subsequent data ai2, bi2, ci2, di2 to ain, bin, cin, din in the chunks Ai, Bi, Ci, Di.
[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 cache memory 240. In the above description, the parity data pij is generated by sequentially reading from the cache memory 240. However, the present invention is not limited to this.
[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 cache memory 240 and stored in the FIFO memory 241 as it is (first time). Cache data read command in the parity generation mode designation), whether the data stored in the FIFO memory 241 at this time is exclusive-ORed and stored in the FIFO memory 241 (second and third times) In the case of a cache data read command designating the parity generation mode), the data stored at that time in the FIFO memory 241 is exclusive-ORed to generate parity data, which is transferred to the disk drive 10-4 (The last parity generation mode for the fourth time In the case of constant of cache data read command).
[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 cache memory 240, and after the data written in the cache memory 240 is written in the disk drives 10-0 to 10-3, the disk cache unit Although the case where parity generation at 24 is performed (parity generation operation at the time of cache data read), parity data may be generated in parallel using the write data when writing data to the cache memory 240. Is possible.
[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 cache memory 240 and the PCI bus 25. It is assumed that they match.
[0075]
Now, it is assumed that write data (data stream) accompanying a disk write request from the host device is continuously transferred to the PCI bus 25 via the external input / output unit 22. Here, in order to simplify the description, it is assumed that the size of the write data is 128 bytes and each chunk obtained by dividing the write data in units of 32 bytes is ai, bi, ci, di in order from the top.
[0076]
First, the control unit 21 writes the first data a i into the cache memory 240 and simultaneously writes it into the FIFO memory 241. Therefore, the cache data write command designating the parity generation mode, that is, the address information whose upper 4 bits are “0010” is stored. The attached cache data write command is sent to the PCI bus bridge 242 via the PCI bus 25. The lower 28 bits of this address information indicate the address of the cache memory 240 to which the data ai1 is written.
[0077]
When the PCI bus bridge 242 receives the cache data write command designating the parity generation mode from the control unit 21 through the PCI bus 25, the PCI bus bridge 242 determines the data flow direction from the command and sends the command to the control logic 243.
[0078]
When the control logic 243 receives the first parity mode designation cache data write command from the PCI bus bridge 242, first, the control logic 243 first (first) in the write data (data stream) continuously transferred onto the PCI bus 25. Are written from the PCI bus bridge 242 (via the data bus 2401 and the bidirectional buffer IC 246) to the designated address of the cache memory 240, and as indicated by reference numeral 51 in FIG. Write to the FIFO memory 241 via the buffer IC 248a).
[0079]
Next, the control unit 21 writes a cache data write command designating a parity generation mode via the PCI bus 25 in order to write the second 32-byte data bi into the cache memory 240 and simultaneously write the corresponding data into the FIFO memory 241. The data is sent to the PCI bus bridge 242.
[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 PCI bus bridge 242, the control logic 243 receives the second of the write data continuously transferred onto the PCI bus 25. Is written to the designated address of the cache memory 240 from the PCI bus bridge 242 and is transmitted to the exclusive OR circuit 245 side via the PCI bus bridge 242 as indicated by reference numeral 52 in FIG. At the same time, the control logic 243 reads the data a i previously written in the FIFO memory 241 to the exclusive OR circuit 245 side as indicated by reference numeral 53 in FIG.
[0081]
The exclusive OR circuit 245 calculates the exclusive OR of the data ai read from the FIFO memory 241 and the data bi transferred from the PCI bus 25 via the PCI bus bridge 242 in bit units. The exclusive OR result (32 bytes) of the exclusive OR circuit 245 is written into the FIFO memory 241 as shown by reference numeral 54 in FIG. 5 (via the buffer ICs 248b and 248a) under the control of the control logic 243. It is.
[0082]
Next, the control unit 21 writes the cache data write command for designating the parity generation mode via the PCI bus 25 in order to write the third 32-byte data ci to the cache memory 240 and simultaneously write the corresponding data to the FIFO memory 241. The data is sent to the PCI bus bridge 242.
[0083]
Upon receiving the third parity generation mode designation cache data write command sent from the control unit 21 to the PCI bus bridge 242, the control logic 243 receives the third of the write data continuously transferred onto the PCI bus 25. Is written to the designated address of the cache memory 240 from the PCI bus bridge 242 and is transmitted to the exclusive OR circuit 245 side via the PCI bus bridge 242 as indicated by reference numeral 52 in FIG. At the same time, the control logic 243 reads the exclusive OR result of the first data a i and the second data bi written in the FIFO memory 241 last time to the exclusive OR circuit 245 side as indicated by reference numeral 53 in FIG. .
[0084]
The exclusive OR circuit 245 exclusively controls the exclusive OR of the data ai and bi read from the FIFO memory 241 and the data ci transferred from the PCI bus 25 via the PCI bus bridge 242. Take logical OR. The exclusive OR result (32 bytes) of the exclusive OR circuit 245 is written into the FIFO memory 241 as shown by reference numeral 54 in FIG. 5 (via the buffer ICs 248b and 248a) under the control of the control logic 243. It is.
[0085]
Next, the control unit 21 writes a cache data write command designating a parity generation mode via the PCI bus 25 in order to write the fourth 32-byte data di into the cache memory 240 and simultaneously write the corresponding data into the FIFO memory 241. The data is sent to the PCI bus bridge 242.
[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 PCI bus bridge 242, the control logic 243 is the fourth in the write data continuously transferred onto the PCI bus 25. Is written to the designated address of the cache memory 240 from the PCI bus bridge 242 and is transmitted to the exclusive OR circuit 245 side via the PCI bus bridge 242 as indicated by reference numeral 52 in FIG. At the same time, the control logic 243 reads the exclusive OR result of the data ai to ci written in the FIFO memory 241 last time to the exclusive OR circuit 245 side as indicated by reference numeral 53 in FIG.
[0087]
The exclusive OR circuit 245 exclusively controls the exclusive OR of the data ai to ci read from the FIFO memory 241 and the data di transferred from the PCI bus 25 via the PCI bus bridge 242. Take logical OR. The exclusive OR result (32 bytes) of the exclusive OR circuit 245, that is, the exclusive OR result of the data a i, b i, c i, d i is written into the FIFO memory 241 as indicated by reference numeral 54 in FIG. . As a result, the parity data pi of the data ai to di is generated in the FIFO memory 241. Parity data pi of the data ai to di generated in the FIFO memory 241 is read out to the PCI bus bridge 242 side as indicated by reference numerals 55 and 55a in FIG. 5 and is sent from the PCI bus bridge 242 to the PCI bus 25. To the disk input / output unit 23-4 and stored in the disk drive 10-4 (allocated for the parity disk).
[0088]
Thereafter, the control unit 21 sequentially reads the disk write data written in the cache memory 240 from the host device using the cache data read command designating the normal access mode, and 1 of the disk input / output units 23-0 to 23-3. It is stored in the corresponding disk drive.
[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 cache memory 240 and the parity data can be generated at the same time, the operation speed is improved as compared with the method (3). However, the amount of hardware is slightly increased.
[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 cache memory 240 or the write data written to the cache memory 240 in response to a disk write request from the host device. However, this parity generation technology is used for the remaining normal disk drives and parity disks when any one of the disk drives 10-0 to 10-3 fails. The present invention can also be applied to data restoration processing in which the data of the failed disk is restored from the data of the disk drive 10-4 and stored in the disk drive 10-5 for backup (hot spare disk).
[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 cache memory 240. In this data restoration process, since the order of reading data from the disk drive can be managed, unlike the parity generation operation at the time of cache data write in (4), the data stream division size S is set to the cache memory 240. It is not necessary to match the size of one data transfer between the PCI bus 25 and the PCI bus 25.
[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 PCI bus 25. Aij to cij and pij are sequentially read, and a cache data write command designating parity generation using the data aij to cij and pij as write data is sequentially issued to the disk cache unit 24. As a result, the data aij to cij are stored in the FIFO memory 241 (as well as the data aij to cij and pij are written to the cache memory 240) in the same manner as when parity data is generated based on the write data from the host device. , Pij can be generated as an exclusive OR result. Here, the data pij from the disk drive 10-4 is handled as data from the failed disk drive 10-3, and is written in an area in the cache memory 240 that is written when the data dij is read.
[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 cache memory 240, the data dij can be restored from the write data aij to cij and pij. The data dij restored in the FIFO memory 241 is read to the PCI bus bridge 242 side as indicated by reference numerals 55 and 55a in FIG. 5 and is input / output to the disk via the PCI bus 25 from the PCI bus bridge 242. The data is transferred to the section 23-4 and stored in an area (corresponding to the data aij to cij, pija) in the backup disk drive 10-4. Further, the data dij read from the FIFO memory 241 to the PCI bus bridge 242 side is transferred to the cache memory 240 as indicated by reference numeral 55b in FIG. 5, and the previously written data pij is changed to the data dij. Rewritten.
[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 cache memory 240 using the cache data read command sequence designated for parity generation = 0 to n) are read in order to obtain the exclusive OR result of the data aij to cij, pij, that is, the restored data dij.
[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 / output unit 22, the control unit 21 The (microprocessor 211) selects data mounted in the F / W memory 212, and loads the data from the control unit interface 213 to the FPGA 244 via the control register 249 of the disk cache unit 24. This makes it possible to easily change the target disk array configuration (RAID form). As described above, in the present embodiment, the PCI bus bridge 242 and the control logic 243 of the disk cache unit 24 are realized by using the FPGA 244, thereby reducing the size and speed of the apparatus without using an unnecessarily large device. Therefore, it is possible to prevent the function from being reduced.
[0097]
In this embodiment, the disk cache unit 24 having the cache memory 240 that is accessed according to the procedure of the PCI bus 25 is carded so that it can be directly connected to the PCI bus 25. Thus, by providing the disk cache unit 24 as an independent card configuration and being connectable to the PCI bus 25 (standard bus) of an existing system having a plurality of disk drives, it is only necessary to provide a control program. A highly reliable disk subsystem can be constructed without any special hardware changes.
[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 control register 249, and changes the sequence processing in the control logic 243, Even during system operation, the configuration of the disk array can be freely changed.
[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)

外部のホスト装置との間の入出力を司る外部入出力手段と、前記ホスト装置からのデータストリームが一定サイズで分割されて分散配置されるN個のディスクドライブを含むディスクドライブ群との接続を可能とするディスクドライブ入出力手段と、前記ディスクドライブと前記ホスト装置との間の転送データを一時記憶するためのキャッシュメモリを有するディスクキャッシュ手段と、各部を制御する主制御手段とを備えたディスクアレイ制御装置であって、
前記ディスクキャッシュ手段は、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.
前記ディスクキャッシュ制御手段は、前記主制御手段から書き換え可能なプログラマブルなロジックデバイスによって構成されており、電源投入時に、目的とするディスクアレイの構成を前記ロジックデバイスにより変更可能としたことを特徴とする請求項1記載のディスクアレイ制御装置。The disk cache control means is composed of 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. The disk array control device according to claim 1 . 前記キャッシュメモリへのアクセス時に前記パリティデータの生成を行うか否かが、前記キャッシュメモリへのアクセスのために前記主制御手段から前記ディスクキャッシュ制御手段に渡されるアドレス情報の所定部分により指定されるようにしたことを特徴とする請求項1記載のディスクアレイ制御装置。Whether or not to generate the parity data when accessing the cache memory is designated by a predetermined portion of address information passed from the main control means to the disk cache control means for accessing the cache memory. 2. The disk array control apparatus according to claim 1 , wherein the disk array control apparatus is configured as described above. 前記外部入力手段、前記ディスクドライブ入出力手段、前記ディスクキャッシュ手段及び前記主制御手段は標準バスにより相互接続されており、
前記ディスクキャッシュ制御手段は、前記キャッシュメモリを前記標準バスの手順に従ってアクセスするように構成されていることを特徴とする請求項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個のディスクドライブとは別のディスクドライブ、または前記N個のディスクドライブには、前記N個のディスクドライブに分散配置されているデータのパリティデータが格納、または分散配置されており、
前記ディスクキャッシュ制御手段は、前記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.
JP23426496A 1996-09-04 1996-09-04 Disk array controller Expired - Fee Related JP3779385B2 (en)

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)

* Cited by examiner, † Cited by third party
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

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