【発明の詳細な説明】コンピュータ・メモリ・アレイ・コントロール
この発明は、コンピュータ記憶装置(メモリ)に関するものであり、特に、コ
ンピュータの記憶装置(メモリ)ユニット・アレイの制御方法および制御装置に
関するものである。
高性能なオペレーティング・システムおよびファイルサーバにとっては、デー
タを『捜す(シークする)』必要のないメモリこそが、理想的なコンピュータ・
メモリである。そのようなメモリであれば、瞬間的にすべてのデータ領域にアク
セスすることができる。そのようなメモリは、RAMディスクによって提供可能
である。このことは、メモリ中でのデータの配置が連続しているかランダムであ
るかに拘らず、データへのアクセスを可能とする。しかしながら、RAMのコス
トが高いこと、特にメモリユニットの故障を補うための『予備(redundancy)』を
設けることによる余分なコストを考慮すれば、RAMの使用は、従来の磁気のデ
ィスクドライブ記憶媒体の使用と比較して不利である。
したがって、不揮発性コンピュータ・メモリとしては、磁気ディスク・ドライ
ブが、最も一般的に使用されている。とはいえ、ディスクドライブにはつぎのよ
うな欠点がある。つまり、データの記憶場所に対応したディスクの正しい部分に
、ヘッドを位置させるための時間を必要とする。これは、シークおよび回転遅れ
と呼ばれている。小量のデータだけをディスクから読み出したり、書き込んだり
する際には、この遅れは、データ・アクセス時間の重要な部分となってしまう。
ディスクドライブによるシークおよび回転待ち時間は、コンピュータの動作速
度をかなり制限することになる。ディスクドライブの入力/出力(I/O)速度
は、マイクロプロセッサーの進歩に遅れをとっており、このため、メモリアクセ
スの時間によって、コンピュータの能力が厳しく制限されている。
大容量記憶装置(メモリ)のデータ・アクセス時間を減らすため、比較的安価
な業界標準ディスクドライブが、数多く用いられている。これらの大容量アレイ
を使用する場合には、ディスクドライブの故障を補うために、アレイ中に予備ド
ライブを持たさねばならない。
ドライブをアレイ状(列状)に並べておき、他のドライブに記憶された情報に
基づいて、故障したドライブの内容を、置換ドライブの中に再構築することがで
きようにしたディスクドライブが知られている。
これを実現する種々の構成は、D.A.パターソン、G.ギブソン、R.H.
ケイツによる論文『低価格ディスクの予備アレイの実例(RAID)』(A Case forRed
undant Arrays of Inexpensive Disks)、(アメリカ合衆国、カリホルニア大学
、コンピュータ工学部、レポートNo.UCB/CSD 87/391 12/1987)において、詳
細に述べられている。
この文献には、2つのタイプの構成が記述されている。その構成のうち最初の
ものは、特に大容量のデータ転送に適しており、『RAID−3』と呼ばれてい
る。この構成においては、少なくとも3つのディスクドライブが設けられており
、これらドライブの同じ論理ブロック位置に、情報の連続バイトが記憶される。
1つのドライブは、コントローラーの生成したチェック・バイトを持っており、
ディスクドライブ上のチェック・バイト以外の全てのバイトを、当該チェックバ
イトと他のバイトとに基づいて決定できるようにしている。ここでは、上記にて
定義されたように『RAID−3』の語を用いる。
RAID−3構成においては、次のような、少なくとも5個のディスクドライ
ブを設けることが好ましい。つまり、4バイトは、最初の4個のドライブに書き
込み、チェック・バイトは、5番目のドライブにおける、他のドライブのデータ
バイトと同じ論理ブロック位置に書き込むようにする。こうすることにより、何
れかのドライブが故障しても、記録された各バイトは、他のドライブを読むこと
によって再構築可能となる。ディスクドライブに障害が生じても、コンピュータ
が動作するというだけでなく、内容が古くなっているおそれのあるバックアップ
・コピーによる復元をしなくとも、故障したディスクドライブの交換もしくは回
復を行うことができる。さらに、一つのドライブに欠陥が生じても、そのディス
クドライブが動作を停止している間、それが取り替えられる間、コンピュータの
動作にロスを生じない。RAID−3構成を有するディスクドライブ記憶システ
ムが、ヨーロッパ特許公開公報EP-A-0320107に述べられている。その内容を参照
して、記述の一部とする。
記憶システムの二番目のタイプは、とくにマルチユーザー・アプリケーション
に適しており、『RAID−5』と呼ばれている。RAID−5構成においては
、各ディスクドライブの4つのセクタにデータを記憶し、1つのセクタにチェッ
ク情報を記憶するような少なくとも5個のディスクドライブを設けることが好ま
しい。チェック情報は、そのディスクの4個のセクタの中のデータによって導か
れるのではなく、他の4個の各ディスクの所定セクタから導かれる。したがって
、各ディスクは、残っているディスクのデータおよびチェック情報から再構築す
ることができる。
RAID−5は、単一のディスクドライブと同等の転送機能を有するにもかか
わらず、マルチユーザーへのアクセスを許容するので、少なくとも理論上は、効
果的であるように見える。しかしながら、一つのセクタへ情報を書き込もうとす
ると、2個のディスクへの書き込みが必要となる。すなわち、情報を一つのディ
スクドライブ上の一つのセクタに書き込むとともに、第2のディスクドライブ上
のチェック・セクタにチェック情報を書き込む必要がある。また、チェック・セ
クタへの書き込みは、読出修正書込オペレーション(リード・モディファイ・ラ
イト・オペレーション)であり、すなわち、まず、既存のデータとチェック・セ
クタの読み込みが行われる。なぜなら、書き込まれる新しいデータに基づく正し
いチェック情報が生成されてディスクに書き込み可能となるまでに、そのセクタ
の既存の内容を知っていなければならないからである。とはいえ、RAID−5
は、RAID−3がサポートできないシステムにおいて、すべてのディスクから
の複数のユーザーによる同時読み出しを実現している。
その一方で、RAID−5は、RAID−3によるデータ転送レートを達成し
ていない。なぜなら、RAID−3においては、読出および書込のいずれの操作
も、転送する全情報量の四分の一のだけ、5個の各ディスク(5個のディスクを
用いるシステムにおいて)に転送するだけでよいからである。各々の照合を同時
に完了することができるので、特に大容量の転送を行う場合、その処理は、単一
ディスクの読出または書込よりも速い。ディスクドライブの読出または書込に必
要な時間のほとんどは、正しい角度位置にディスクを回転させるため、およびリ
ードライト・ヘッドをディスクに対して位置決めするために必要な時間である。
明らかに、これは、4つ全体に対すると同様に、1つのディスクにとっても長い
時間である。しかし、一旦正しく位置決めされると、シーケンシャル情報の大容
量転送は、比較的高速で実現できる。
さらに、ユーザにより要求されるシーケンシャル情報の現在の傾向から見て、
RAID−5は、実際上というよりはむしろ理論的な意味において、複数のユー
ザー・アクセスを提供するに留っている。なぜなら、同一ユーザーによるシーケ
ンシャル情報の要求には、複数のディスクを順に読み取ることを含む場合もある
ので、これによりディスクが占領され、他のユーザが使用できなくなってしまう
からである。
さらに、ドライブがRAID−5フォーマットにおいて欠陥を生じた場合には
、コンピュータの機能は著しく低下する。読出時において、必要情報が故障ドラ
イブのセクタ上ににある場合、他の4つの全てのディスクを読んで、その情報を
導き出さねばならない。同じように、ドライブにチェックデータや情報データを
書き込む場合には、適切な情報セクタに書き込みが行われる前に、適切なチェッ
ク情報が決定されて書き込みが行われる前に、4つのディスクの読取が行わなけ
ればならない。
RAID−3のさらなる問題は、各ディスクドライブは、使用状況に応じた最
小容量において、情報の読出・書込をするように製造されている点にある。この
最小容量は、ディスクドライブのフォーマットされたセクタ・サイズであり、通
常、256バイトである。RAID−3フォーマットにおいて、このことは、読
出・書込の際の最小ブロック長が1024バイトとなることを意味する。ディス
クドライブの能力の向上により、最小ブロックサイズは、たとえば512バイト
というように、大きくなる傾向にある。したがって、RAID−3の最小ブロッ
ク長は、4倍の2,048バイトになる。しかしながら、多くのコンピュータの
応用例、たとえばユニックス(バージョン5.3)を使用した応用例等は、最小ブ
ロックサイズとして512バイトを要求する。その結果、そのようなシステムに
おいては、既知のRAID−3技術を容易に利用することができない。これに対
し、RAID−5においては、最小データブロック・サイズが増加しない。
RAID−5そのマルチユーザー能力により、RAID−3に比較して理論上
の有利性を持っているが;実際には、ドライブ障害が発生した場合のデータ転送
速度と処理継続の点において、RAID−3フォーマットの方が大きな可能性を
与えられている。本発明の目的は、RAID−5ディスク・アレイと同様のマル
チユーザー機能あるいはその良好な能力を有するシステムを提供することにある
。発明者は既に、国際出願明細書PCT/GB90/01557で開示したように、RAID−
35というシステムを開発している。このシステムは、本発明と同様のことを提
供するが、RAID−3およびRAID−5としての機能は、あまり良好でない
。このシステムは、次のような認識に立っている。つまり、現代のオペレーティ
ング・システムにおいて、データファイルは、ディスクドライブ面への記録の必
然性から、シーケンシャルであることが多く、読出・書込処理は、その必然性か
らシーケンシャルもしくは少なくとも一部シーケンシャルであることが多い、と
いう認識に立っている。したがって、ディスク記録媒体へのマルチユーザ・アク
セスにおいても、各ユーザは、シーケンシャル・データをシーケンシャルに要求
することができる。
RAID−35システムにおいては、シーケンシャル・データが、前もって読
み出され、バッファに記憶されるので、ホストコンピュータがディスク・アレイ
から要求データを受け取るまでの遅延時間をかなり小さくすることができる。し
たがって、要求データが前回の要求に連続するものである場合には、当該データ
はバッファ中にあるので、シークによる遅れが生じない。
したがって、RAID−35システムは、ユーザがシーケンシャル・データを
要求することが予想される応用分野において極めて効果的である。一方、データ
要求がランダムになされる場合には、RAID−35システムは、上記効果を実
現できない。
ホストコンピュータに対して、高速かつ効率的にランダムデータを出力するこ
とのできるコンピュータ・メモリ・コントローラを提供することが、本発明の目
的である。
RAID−35構成による動作が可能であり、3次元メモリユニット・アレイ
とのインターフェイスを取ることができるコンピュータ・メモリ・コントローラ
を提供することが、本発明の目的である。
RAID−35構成による動作が可能であるとともに、ホストコンピュータに
対して高速かつ効率的にランダムデータを出力することのできるコンピュータ・
メモリ・コントローラを提供することが、本発明の目的である。
本発明は、ホストコンピュータとのインターフェイスをとるのためのコンピュ
ータ・メモリ・コントローラであって、下記を備えたものを提供する、複数のメ
モリ・ユニットとのインターフェイスをとるとともに、そこから読み出した、お
よびそこへ読み出したデータを保持するためのバッファ手段;および、前記ホス
ト・コンピュータおよび前記メモリ・ユニットへのデータ転送および、からのデ
ータ転送を制御するために動作する制御手段;前記バッファ手段は、前記メモリ
・ユニットから読み出されまたは、これに書き込まれるデータを、アドレスでき
るように記憶するための複数のバッファ・セグメントを形成するように制御され
る;前記制御手段は、前記ホスト・コンピューターからの読出または書込要求の
ために、データに対して十分なサイズのバッファ・セグメントを割り当てるよう
に動作する;前記制御手段は、さらに、前記ホスト・コンピュータからのデータ
要求に応じて、異なるメモリ・ユニットに記憶されたデータを、同時にシークす
るために、前記メモリ・ユニットを制御するように動作する。
本発明は、ホストコンピュータとともに用いる複数のメモリ・ユニットを制御
する方法であって以下のステップを備えたものを提供する、前記メモリユニット
内に記憶されているデータの読出要求を前記ホストコンピューターから繰り返し
受け、データの読み出しに十分なサイズのバッファセグメントを割り当て;およ
び前記複数のメモリユニット内のデータを同時にシークする。
本発明は、さらに、ホストコンピュータのためのコンピュータ・メモリ・コン
トローラであって、以下を備えたものを提供する、並列に配置された少なくも3
つのメモリ・チャネルとのインターフェースをとるバッファ手段、各メモリ・チ
ャネルは、バスによって接続された複数のメモリユニットを備えており、前記各
メモリチャネルのメモリユニットは、独立してアクセスすることができる;メモ
リバンクを形成する、前記メモリチャネルのそれぞれのメモリ・ユニット;前記
バッファ手段に接続され、前記ホストコンピュータから入力されたデータを複数
の部分に分割し、よって、前記部分が、メモリバンク内への記憶のための前記
メモリ・チャネルのグループの一つに適用される前に、バッファ・セグメント内
に一時的に記憶されるようにする論理回路;前記論理回路は、さらに、メモリバ
ンクの前記メモリユニットの連続する1つのグループから連続的に読み出され、
前記バッファ手段に読み込まれたデータの部分を再結合するように動作する;前
記論理回路は、前記メモリバンクの少なくとも1つの前記メモリユニットにそれ
が記憶される前に、前記バッファ手段内に一時的に記憶される前記データからチ
ェックバイトまたはバイトのグループを生成するよう動作するパリティー手段を
含んでおり、もし、記憶ユニットの前記グループの一つが故障を起こしていれば
、メモリバンクのメモリユニットの前記グループから読み出された前記データを
再生成させるために用いるように動作する;前記バッファ手段は、メモリ・チャ
ネルの数に対応する複数のチャネルに分割され、各チャネルは、バッファ・セグ
メントの関連する部分に分割される;前記メモリバンクへのまたは前記メモリバ
ンクからのデータおよびチェック・バイトまたはビットのグループの転送を制御
するとともに、前記ホスト・コンピューターからの読出または書込要求のために
、データに対して十分なサイズのバッファ・セグメントを割り当て、さらに、前
記ホスト・コンピュータからのデータ要求に応じて、異なるメモリ・ユニットに
記憶されたデータを、同時にシークするために、前記メモリ・ユニットを制御す
る制御手段。
本発明は、さらにまた、コンピュータ・メモリ・システムであって、以下を備
えたものを提供する、並列に配置された少なくとも3つのメモリ・チャネルを有
する2次元アレイに配置された複数のメモリ・ユニット、前記各メモリ・チャネ
ルは、バスによって接続された複数のメモリ・ユニットを備え、前記各メモリ・
ユニットは独立してアクセス可能である;メモリ・バンクを形成する前記メモリ
・チャネルの各メモリ・ユニット;および前記メモリ・ユニットとのインターフ
ェイスをとり、以下を備えたコントローラ、前記メモリ・チャネルから読み出し
た情報を保持するバッファ手段;前記バッファ手段は、前記メモリ・ユニットか
ら読み出しまたは書き込んだデータをアドレス可能に記憶するために、複数のバ
ッファ・セグメントを形成するように制御され;メモリ・バンク内の前記メモリ
・ユニットのグループの一つから読み出されたバイトまたはビットのグループ
を再結合させるため、前記バッファ手段に接続された制御回路;もし、メモリ・
ユニットの前記グループの一つが故障を起こしていれば、前記メモリ・ユニット
のグループから読み出した情報を再生成するために、前記メモリ・バンクの前記
記メモリ・ユニットの一つから読み出されたチェックバイトまたはバイトのグル
ープを使用するように動作するパリティ手段;および前記ホストコンピューター
、前記記憶ユニットに対する及び前記ホストコンピューター、前記記憶ユニット
への、およびこれらからのデータの転送を制御する制御手段であって、そのデー
タのために十分なサイズのホスト・コンピュータからの読出または書込要求のた
めのバッファセグメントを割り当てるとともに、異なるメモリ・バンクに記憶さ
れたデータを同時にシークするように前記メモリ・ユニットを制御する制御手段
。
本発明のシステムは、高速なランダムアクセスを実現するために、RAID−
3とRAID−5を組み合わせて用いているので、便宜上、RAID−53と呼
ぶことができる。RAID−53においては、データが数多くのディスクの間に
分割され、同時に読み出される。したがって、読出時間を減らしながらも、RA
ID−5のように、システム中のすべてのディスク・バンクから、複数ユーザに
よる同時読出しが可能である。
RAID−53を用いたディスク・アレイ中に記録されたデータに対するアク
セス速度を向上させるため、ディスク・バンクは、アドレスを付してセグメント
に分割される。つまり、シーケンシャル・バンク上の各セグメントが、シーケン
シャル・アドレスを持つように、分割される。これによって、シーケンシャル・
データを、複数のシーケンシャル・バンクの各セグメントに書き込み、複数のメ
モリ・バンクにわたって、データを配分して『ストライプ』状にすることを可能
にしている。以下この技術を、『オーバーレイ・バンク・ストライプ(overlay b
ank stripping)』と呼ぶ。
ディスク・アレイ上のこのデータ構造は、ホストコンピュータではなく、コン
トローラによって制御される。コントローラは、次のようにして、ディスク・バ
ンクのセグメントにアドレスを割り当てる。すなわち、データをディスク・アレ
イに書き込む際に、複数のバンクにわたってストライプ状に書き込むようにする
。
このようなデータのストライプは、RAID−35にも適用でき、これにより
、異なるバンクからのデータの同時読出や同時書込が可能となる。
メモリ・ユニットとしてはディスクドライブが好ましく、さらに、メモリ・バ
ンク毎に5つ、すなわち、チェック情報を記録する1つのディスクと、データを
記録する4つのディスクとによる5つのメモリ・チャネルを設けることが好まし
い。現在標準となっているディスクドライブ・インターフェースSCSI−1 (
Small Computer Systems Interface) を使う場合には、8つまでのアドレスに制
限されているので、1つをコントローラに使用して、7つのメモリ・バンクを使
用することができる。SCSI−2を用いる場合には、15個のバンクを使用する
ことができる。本発明は、上記のようなインターフェースの使用に限定されるも
のではなく、メモリ・バンクの数も任意である。メモリ・バンクの数を多くすれ
ば、同時に開始し得るシーク操作の数を増やすことができ、ホストコンピュータ
のデータアクセス時間を短くすることができる。
最適な性能を得るためには、メモリ・バンクのディスクドライブは、回転スピ
ンドルが同期していることが好ましい。
RAID−3とRAID−5のこの組合せは、同時ランダム・アクセス機能に
関して、5つのスレーブ・バス・ドライブ(slave bus drive)をもつRAID−
5システムの理論最大性能を超える性能をもたらす。さらに、RAID−5シス
テムの読出修正書込(Read-Modify-Write)による性能劣化を避けることができる
。速くかつシンプルなRAID−3タイプの読出/書込機能を提供するのである
。
RAID−53システムは、ディスクドライブの『バンク』につき『一つの』
ディスクドライブに障害が発生した状態においても、最大転送速度を維持する。
I/O要求(入出力リクエスト)が頻繁に出ている間、制御手段はメモリ・バ
ンクへのホスト・データ要求をキューに蓄えておき、要求されたデータのあるメ
モリ・バンクが忙しくない時に、データ・シークと転送を実行することができる
。シークを含んだ命令は、最適化したシーク命令を提供するための最適化をして
おくことが好ましい。
書込要求がコントローラによって受信された時、未完了の読出・書込に障害を
与えることなく、メモリ・バンクへのデータ書込を瞬時に行えることが好ましい
。
このことにより、データがバッファ・セグメントに保持されているときに、たと
えば電源異常があっても、重要なデータの消失が防止される。
メモリバンクの数をかなり多くした実施例においては、バッファ手段、論理回
路およびパリティ手段を、2次元メモリ・ユニット・アレイとともに同じ数だけ
設けている。この構成において、制御手段は、ホストコンピューターおよび2次
元アレイのレイヤ(layer)により構築される3次元メモリ・ユニット・アレイと
のデータ転送を制御するように動作する。
国際出願PCT/GB90/01557においてRAID−35システムのために用いられた
ハードウェアは、RAID−53のためにも同じように使用することができる。
したがって、同じハードウェアに対しオプションとしてRAID−35とRAI
D−53を提供すること可能であり、あるいは双方を一緒に提供して、ハードウ
ェアを共有することも可能である。共有システムにおいて、バッファ手段の最初
の部分は、RAID−53に割り当てられる。残りのバッファメモリは、RAI
D−35の使用に割り当てられる。いくつかをRAID−35のために割り当て
、残りをRAID−35に割り当てて、メモリバンクを共有することができる。
RAID−35の動作は、次に述べるとおりである。要求に応じてなされるホ
ストコンピュータへのシーケンシャル・データの転送は、まず、バッファ・セグ
メントをバッファ手段の割当部分にアドレッシングすることによって制御される
。これにより、要求されたデータがそこに存在するかどうかを確認し、もし存在
していれば当該データをホストコンピュータに送る。要求されたシーケンシャル
・データが、バッファ手段の割当部分のバッファ・セグメントに存在しなければ
、データはメモリ・ユニットから読み出され、ホストコンピュータに与えられる
。ホストコンピュータの要求したデータに対して論理上連続している他のデータ
(further data)も、メモリ・ユニットから読み込まれ、当該他のデータは、バッ
ファ手段の割当部分中のバッファ・セグメントに書き込まれる。制御手段は、バ
ッファ手段の一部分をRAID−35の使用のために割り当てるバッファ・セグ
メントのサイズと数を制御する。
RAID−35とRAID−53システムのディスクドライブ配列(アレイ)
によれば、ディスクドライブ障害時のための予備を実現することができる。発明
の一実施例においては、コントローラについても予備を提供することができる。
第2のコントローラがアレイのバス上の異なったアドレスに設けられていれば、
主コントローラの障害発生時に、システムをダウンさせることなく、もしくはわ
ずかなダウン時間で、補助コントローラを動作させることができる。その後、シ
ステムが動作している間に、コントローラを修復し、もしくは、取り替えること
ができる。
本発明は、また、ホストコンピュータのためのコンピュータ・メモリ・コント
ローラであって、以下を備えたものを提供する、各々が、少なくも3つのメモリ
・チャネルを有する2次元アレイに配置された複数のメモリ・ユニットとのイン
ターフェイスをとるための複数のバッファ手段、各メモリ・チャネルは、バスラ
インによって接続された複数のメモリユニットを備えており、これにより前記各
メモリ・チャネルのメモリ・ユニットが独立してアクセス可能である;メモリ・
バンクを形成する、前記メモリ・チャネルのそれぞれのメモリ・ユニット;メモ
リ・バンク内の前記メモリ・ユニットのグループの一つから読み出されたバイト
またはビットのグループを再結合させるとともに、要求データを発生させるため
、前記バッファ・セグメント内に記憶に記憶される、各前記バッファ手段に接続
される複数の論理回路;前記論理回路は、もし、メモリ・ユニットの前記グルー
プの一つが故障であれば、メモリ・ユニットの前記グループから読み出されたデ
ータを再生成するために、前記メモリ・バンクの前記メモリ・ユニットの一つか
ら読み出されたチェック・バイトまたはバイトのグループを使用するよう動作す
るパリティ手段を含んでおり;前記バッファ手段は、メモリ・チャネルの数に対
応する複数のチャネルに分割され、各チャネルは、バッファ・セグメントの関連
する部分に分割され;ホストコンピュータからの要求に応じて、複数の前記2次
元メモリ・ユニット・アレイにより構成されるメモリ・ユニットの3次元アレイ
から、前記ホストコンピュータへのデータの転送を、以下のように制御するコン
トロール手段、まず、前記バッファ・セグメントにアドレスし、要求データがそ
の中に含まれているかどうかを確認し、もし含まれていれば、前記データを前記
ホスト・コンピュータに供給し、もし要求データがバッファ・セグメントに含ま
れていなければ、前記データをメモリ・ユニットから読み出し、前記データ
を前記ホスト・コンピュータに供給し、前記ホストコンピュータから要求された
データに対して論理的にシーケンシャルな追加データを、前記メモリ・ユニット
から読み出し、前記追加データをバッファ・セグメント内に記憶する;前記コン
トロール手段は、さらに、ホスト・コンピュータからのデータ要求に応じて、異
なるメモリ・バンクに記憶されたデータを同時にシークするため前記メモリ・ユ
ニットを制御するように動作する;前記コントロール手段は、さらに、前記バッ
ファ・セグメントの数およびサイズを制御するために、前記バッファ手段を制御
する。
このRAID−35構成では、記憶容量を増やすために、ディスクドライブを
3次元アレイにしている。
現在、安価なディスクを用いた予備アレイ(redundant array)の最も一般的な
ものは、磁気ディスクドライブを利用したものであるが、本発明はこのようなデ
ィスクドライブの使用に限定されるものではない。本発明は、一旦データが記憶
されると、データ転送速度に比較してデータのシーク時間が長い記憶装置の使用
に対しても同じように適用できる。そのような媒体は、たとえば、光学コンパク
トディスクである。
本発明によるアレイによれば、マルチユーザー・アプリケーションに関する優
れた性能と、高速なデータ転送速度と、いずれか一つの(バンクごとに)ドライ
ブで障害が発生した時の安全性の提供と共に、大容量の情報記憶を実現できる。
このようなアレイの平均故障間隔(MTBF)は(これは、失われたデータの復元不
能をもたらす(バンクごとに)2つのドライブ障害が同時に生じる平均時間を意
味している)、現在入手可能な数千時間のMTBFを有するディスクドライブを用い
て、数千年であると評価されている。
本発明の実施例を、添付の図面を参照しつつ説明する。添付図面において:
図1は、本発明の一実施例によるディスク・アレイ・システムのコントローラ構
造のブロックダイヤグラムである。
図2は、データを分割するハードウェアの動作を示す。
図3は、リード/ライトのデータセル・マトリクスを示す。
図4は、書込データ・セルを示す。
図5は、読出データ・セルを示す。
図6は、RAID−35動作の書込処理におけるソフトウェア・ステップを示す
フローチャートである。
図7は、RAID−35動作の読出処理におけるソフトウェア・ステップを示す
フローチャートである。
図8および図9は、RAID−35動作における、先行読出(read ahead)と後置
書込(write behind)のソフトウエア・ステップを示すフローチャートである。
図10は、RAID−35動作において、中断した転送の再開処理に関するソフ
トウェア・ステップを示すフローチャートである。
図11は、RAID−35動作において、セグメントのクリア処理に関するソフ
トウェア・ステップを示すフローチャートである。
図12と図13は、RAID−35動作において、入出力制御に関するステップ
を示すフローチャートである。
図14と図15は、RAID−53動作の間、図1の80376中央制御装置によっ
て実行されるソフトウェア・ステップを示すフローチャートである。
図16から図19は、RAID-S3動作の間、図1のスレーブ・バスコントローラに
よって実行されるソフトウェア・ステップを示すフローチャートである。
図20は、RAID−53動作におけるアクセスポイントを示す本発明の一実施
例のブロックダイヤグラムである。
図21は、本発明の一実施例による3次元メモリアレイのブロックダイヤグラム
を示す。
図22は、本発明の一実施例による予備コントローラの使用を示す。
図23は、オーバーレイ・バンク・ストライプの技術を用いたアレイの範囲内に
おける、セグメント中のデータの分配を示す。
図1に、RAID−35およびRAID−53のディスク・アレイ・コントロ
ーラの構成を示し、まず、両システムを一緒に検討する。
図面の図1において、コンピュータ・メモリ・コントローラ10の内部インタ
ーフェースは、ESPデータバス・インターフェースと呼ばれ、ホストコンピュ
ータとのインターフェースは、SCSIインターフェースと呼ばれている。
これらは、インターフェース12の中に設けられる。SCSIバスインターフェ
ースは、ホストコンピュータ(図示せず)と通信を行い、ESPインターフェー
スは、コンピュータ・メモリ・コントローラ10のホスト・インターフェース部
11の中にある高性能ダイレクト・メモリ・アクセス(DMA)ユニット14と
通信を行う。ESPインターフェースは、16ビット(1ワード)である。
ホスト・インターフェース部は、インテル80376マイクロ・プロセッサのよう
な適当なマイクロ・プロセッサによる中央制御装置22を有する中央バッファ管
理(CBM)部20およびデータ分割・パリティ制御(DSPC)論理回路24
と通信を行う。これらは、ホストコンピュータから受けた情報を4つのチャネル
に分割し、5つ目のチャネルのためのパリティ情報を生成する機能を実行する。
DSPC24は、最初の4つのチャネルの情報を結合し、パリティチャネルに対
するチェックを行った後、結合した情報をホストコンピュータに伝送する。DS
PC24は、何れか一つのチャネル(一つでなければならない)の情報を、他の
4つののチャネルからの情報に基づいて再構築することができる。
DSPC24は、5つのチャネルA〜Eに分割された中央バッファ26に接続
される。ここで、各バッファは、複数のバッファ・セグメント28に分割される
。各中央バッファ・チャネル26,A〜26,Eは、応用例における要求に従っ
て、たとえば、1/2メガバイトのデータまで記憶できる能力を持っている。R
AID−35のためには、各セグメントを、たとえば128キロバイト程度に小
さくして、16個までのセグメントをバッファ中に形成できるようにする。RA
ID−53のためには、各セグメントを、ホストコンピュータから要求される最
小のデータと同程度に小さくする。
中央バッファ26は、メモリ・コントローラ10のスレーブ・バスインターフ
ェース(SBI)部30中の5つのスレーブ・バスコントローラ33との通信を
行う。
各スレーブ・バスコントローラ32,A〜32,Eは、SCSI-1バス44,A〜4
4,Eに沿った最高7つのディスクドライブ42,0〜42,6との通信を行う。
ドライブ42,0,A〜42,0,Eがバンクの5つのディスクドライブを形成する
ように、ドライブ42,1,A〜42,1,Eからドライブ42,6,A〜42,6,E
までのドライブも同じようにバンクを形成する。5個のドライブの7つのバンク
は、それぞれが1つのディスクドライブを構成し、各々個別に独立してアクセス
可能である。これは、8つのの装置アドレスが可能なSCSI−1バスの使用に
より、実現できる。一つのアドレスが、スレーブ・バスコントローラ32に与え
られ、残り7つのアドレスが7個のディスクドライブのために用意されている。
したがって、RAID−35システムにおいては、各チャネルの記憶容量が7倍
に増加し、スレーブ・バスコントローラ32は、チャネル中の任意の一つのディ
スク42に対し、独立してアクセスすることができる。ディスクドライブのバン
クを1以上使用することは、RAID−53動作の効果を得るために不可欠なこ
とである。
ディスク・ドライブのバンクのこの構成は、図1に示された構成に適用できる
だけでなく、RAID−3構成にも適用できる。あるバンクのディスクドライブ
の中に記憶された情報は、実質的に、他のバンクのディスクドライブからアクセ
スされた情報と同時にアクセスすることができる。したがって、この構成によれ
ば、ディスクドライブのアレイに記憶されたデータのアクセス速度が向上する。
ホストコンピュータとの関係において、その記憶装置は、固有のアドレス番号
により識別される多くのセクタから構成されている。これらのセクタが種々のデ
ィスクドライブ上のどこに、あるいはどのように記憶されているかは、ホストコ
ンピュータ40の関知するところではない。ホストコンピュータは、必要なデー
タ・セクタのアドレスを覚えているにすぎない。もちろん、アドレス自体は、記
憶装置に記憶されたデータの一部を構成する。
一方、中央制御装置22の機能の1つとして、能率的に種々のディスクドライ
ブにデータを書き込む。さらに各セクタは、ホストに関する限り、既知のRAI
D−3フォーマットの4つのディスクドライブの間に分割される。RAID−3
5動作において、中央制御装置22は、ホストコンピュータにより渡された情報
の書込セクタを準備する。その際、与えられたディスクドライブ上のセクタが、
直前のセクタから論理的に連続する情報を含むようにする。
最適な性能を得るため、バンクのディスクドライブは、その回転軸が互いに同
期していることが好ましい。RAID−35における動作
ホストコンピュータがデータを要求すると、中央制御装置22がこの読取要求
を受けて、スレーブ・バスインターフェース(SBI)コントローラ32にその
要求を渡す。スレーブ・バスコントローラ32は、ディスクバンク40を読んで
、該当データをディスクの該当バンクから選択する。DSPC回路24は、要求
されたデータを受け、それがチャネルEのチェック・データに対して正しいかを
チェックする。
パリティーチェックによってエラーが見つかれば、コントローラは、自動的に
、データの再読取りを試みる。それでもなおパリティーエラーが検出されるなら
、コントローラはエラーである旨をホストコンピュータに返す。不良のドライブ
があるならば、これは切り離され、システムは、不良ドライブが取り替えられ、
情報が復元されるまで、正常な4つのチャネルを使用して、同様の方法でかつ機
能を損なうことなく、動作を続けるように準備する。
しかし、データにエラーがないと推定されれば、中央制御装置22は、まず、
SCSI−1インターフェース12へ情報を転送することによって、データ読出
要求に応答する。しかしながら、中央制御装置22は、要求された情報に対し論
理的に連続している情報も読み出すように指示する。これは、『先読み情報』と
呼ばれる。中央制御装置22によってデータ・バッファ・セグメント28のいず
れか1つに割り当てられた能力における先読み情報は、一つのバッファ・セグメ
ント28の中に書き込まれる。
ホストコンピュータが、さらに情報の要求を行う場合には、要求された情報が
前に要求された情報に連続している場合がある。したがって、中央制御装置22
は、読出要求を受けると、必要情報がすでにバッファにあるかどうかを、まずそ
れらのバッファ・セグメント28に問い合わせる。情報がそこにあれば、中央制
御装置22は、ディスクドライブを読むことなく、直ちにユーザの要求に応答す
ることができる。これは、明らかに極めて高速な処理であって、シーク遅れを避
けることができる。
上記において、必要情報がバッファ中になければ、ディスクドライブからの読
み出しを新たに行わねばならない。要求された情報およびシーケンシャル先読み
情報は、前回とは異なる1つのバッファ・セグメントに与えられる。すべてのバ
ッファ・セグメントが満たされるまで、上記の処理が繰り返され、システムは、
セグメントが常に満たされているように維持する。もちろん、すべてのセグメン
トが満たされているにも拘らず、まだディスクドライブから読み出さねばならな
い時点が来る。この時点において、バッファ・セグメントは、中央制御装置22
によって、最も頻繁に参照されるバッファ・セグメント・バッファ28を保持し
、最も使用頻度の少ないものを捨てるように再割り当てされる。。
ホストコンピュータの通常動作の間、中央制御装置22は、利用可能なセグメ
ントの最大数を限度として、少くとも、アプリケーションプログラムと同じ数の
バッファ・セグメント28を割り当てる。最も効率的な方法でディスクドライブ
・シーク・コマンドを命じている中央制御装置22によって、各バッファ・セグ
メントは、満盃にしておかれる。バッファ・セグメントが、ホスト要求によって
50%の残量となった時、または現状のバッファ・セグメント28からでは、ホス
ト要求を満足できなくなった時、上記シーク命令が優先される。したがって、す
べてのバッファ・セグメントは、先読みデータによって、可能な限り満盃にして
おかれる。
ディスクドライブへの書込み情報についても同様の処理が行われる。書込み指
令が中央制御装置22によって受けられると、情報はDSPC回路24によって
分割され、チェック情報が生成される。その結果得られた5つのデータ(compone
nts)は、割当書込みバッファ・セグメントに置かれる。書込みバッファ・セグメ
ントの数は予め選択しておいてもよく、必要な時に動的に割り当ててもよい。い
ずれにしても、その情報がディスクに書かれるまで、書込みバッファ・セグメン
トは、再割り当てによる消去から保護される。ディスクへの実際の書込みは、セ
グメントが満盃になり、もはやシステムが待てなくなった時や、システムが動作
しておらず、読出動作を実行していない時に限り、ホストコンピュータからの指
令の下に実行されるだけである。
結果的に、ホストコンピュータに関する限り、同時に書込みが行われているよ
うに見える。これは、多くの時間を費やすディスクドライブへの実際の書込みの
機会を待っている間、中央制御装置22は、コマンドを非常に速く扱って、バッ
ファへの書込を行うことができるからである。
しかし、このことは、電源故障が発生した際、ユーザがディスク上に記録しよ
うとする書き込みが、ランダム・アクセス・バッファの暫定位置にあることによ
って、電源故障により失われることを意味するものではない。その場合には、バ
ックアップ・コピーから復旧するディスクドライブ・システムが必要である。
また、ハードウェア・スイッチを、設け、ディスクへの書き込みの前に、書込
情報を、一時的にバッファ・セグメントのみに書き込むことにより、すべての書
込み指令が直ちに実行されるようにしてもよい。これにより、メモリ・システム
によって実際に書き込まれていないにもかかわらず、ディスクに書き込まれたと
考えられていたデータが、電力不足によって消失するおそれがなくなる。しかし
これでも、ユーザが書込みコマンドを送った直後に、電力不足が発生すると、情
報が消失してしまうという例外が残るが、この場合、かかる問題は、ユーザも認
識していると思われる。この代替実施例を利用すれば、コンピュータの性能に影
響を及ぼすことは当然である。RAID−53における動作
ホストコンピュータがデータ要求すると、その要求は受信され、バッファ・セ
グメントがそのデータのために割り当てられる。読出要求は、その要求をスレー
ブ・バスコントローラ32に渡す中央制御装置22によって受けられる。スレー
ブ・バスコントローラ32は、ディスクバンク40を読み、該当データをディス
クの該当バンクから選択する。DSPC回路24は、要求されたデータを受け、
それがチャネルEのチェック・データに対して正しいかをチェックする。
パリティーチェックによってエラーが発見された場合、コントローラは、自動
的に、データの読出を再試行する。それでもなお、パリティエラーが発見されれ
ば、コントローラはエラーである旨をホストコンピュータに返す。不良のドライ
ブがあるならば、これは切り離され、システムは、不良ドライブが取り替えられ
、情報が復元されるまで、正常な4つのチャネルを使用して、同様の方法でかつ
機能を損なうことなく、動作を続けるように準備する。
しかし、データにエラーがないと推定されれば、中央制御装置22は、まず、
SCSI−1インターフェース12へ情報を転送することによって、データ読出
要求に応答する。その後、ディスク・バンクは、他の読出要求を受けることがで
き、中央制御装置22のコマンドによりシーク動作を始めることができる。
バッファ・セグメントのサイズは、ホストコンピュータによって要求されるデ
ータのサイズによって決定する。ディスクドライブからの、データの先読み(rea
d ahead)は行われない。
したがって、中央制御装置22は、読出要求を受けて、どのディスクバンクに
データが記録されているかを決定することができるディスク・バンクが動作して
いなければ、データを捜すように(シークするように)ディスク・バンクに指示
することができる。同時に、他の複数のディスク・バンクが、先にホストコンピ
ュータによって要求されたデータを捜していてもよく、一旦、この要求があれば
、中央制御装置22は、ディスク・バンクを読むとともに、SCSI−1インタ
ーフェイス12にデータを送る再構築用のバッファ・セグメントにデータを渡す
ことができる。
図14に、7つのディスク・バンクに対する7つのアクセス・ポイントを示す
。各バンクの各ディスク・ドライブは固有のバス(SCSI)アドレスを持って
おり、コンピュータ・メモリ・コントローラ100によって独立にアクセスでき
る。したがって、最高7つまでのディスク・バンクが、ホストコンピュータによ
って要求されたデータを捜すために同時に動作することができる。ディスク・バ
ンクがシークを行っている間、それはSCSI−1インターフェースから切り離
される。データが捜し出されると、データの読み出しが可能であることが中央制
御装置22に示される。
新たな読出要求を受けた際、ディスク・バンクが忙しければ、中央制御装置2
2はこれらの要求をキューに入れることができる。最適なシーク命令を与えるた
め、キューに入れられた読出要求は、ホストコンピュータがコマンドを出した順
序と同じ順序で、実行される必要はない。
読出要求のキューイングは、スレーブ・バスコントローラ32において実行す
ることもできる。書込み動作においても同様の操作が行われる。しかしながら、
中央制御装置22は、リード/ライトコマンドを未処理にしてキューに入れるよ
りも、着信データを『直ちに』ディスクドライブの必要バンクに書くことを『強
制する』能力を備えている。これにより、コンピュータによってディスクに書き
込まれるべきデータが、たとえば電源故障の際に、バッファ・メモリ26に記憶
されディスクに記録すべきデータが失われないように書き込まれる。RAID−35およびRAID−53におけるハードウエアの詳細な動作
RAID−35およびRAID−53における、ハードウェアデータ分割、パ
リティ生成およびチェック・ロジック、およびバッファ・インターフェース・ロ
ジックの詳細な動作を、図2から図5を参照して説明する。
図2において、ホストシステム・ハードウェア・インターフェースに対して内
部インターフェイスをとるコントローラは、16ビット幅(1ワード)である。
これは、ESPデータバスである。シーケンシャルなホスト・データの4ワード
に対応して、64ビット幅に切り取られた内部バッファ・データが形成される。
同時に、付加ワードすなわち16ビットのパリティ・データが、コントローラに
よって生成される;ここで、一つのパリティービットは、4つのホスト・データ
ビットに対応する。コントローラの中央データバスの内部幅は、80ビットであ
る。これは、64ビットのホスト・データと16ビットのパリティ・データによ
って構成される。
データ分割およびパリティ・ロジック24は、コントローラのカスタマイズ設
計されたASICS(特定用途向けIC)により、16個のリード/ライト・デ
ータセルに分割される。これらデータセルのマトリックスを、図3に示す。これ
らのデータセルの各々は、4つのESP16ビット・データワードの完全なシー
ケンスのために、ESPバスからの同一のデータビットを扱う。すなわち、図2
において、各データセルは、各ESPバス・ワード0,1,2,3からの同じビ
ット扱っている。同時に、各データセルは、これらの4つの16ビットESPバ
ス・データワードのための、関連パリティービットを生成し/読み込む。
説明の都合上、第1データビット0(DB0)についてのみ述べる。データビ
ットDB1〜DB15については、同じ動作、同じ説明となる。
4つの基本動作が実行される、すなわち
1.ホストデータの書き込み
2.ホストへのデータの読み取り
3.ホストの読出動作中の「一欠陥チャネル」データの再生。
4.欠陥ディスクドライブ・ユニットへのデータの再構築ディスクドライブ・アレイへのホストデータの書き込み
図4において、各ホスト16ビットワードからの対応するデータビットが、E
SPデータバスに受信されるように、これらの4ビットの各々は、一時的に、装
置G38〜G41の中に記録/ラッチされる。各ビットがESPバスに現れるよ
うに、それは、2つのセレクト・ラインにより制御されるマルチプレクサを通し
て、Dタイプ・ラッチG33〜G36に向けて、G33から順に送られる。この
最初の動作の完了により、16データセル全部の4つのホスト16ビットワード
(64データビット)が、ゲートG38〜G41に記憶される。4つのDB0デ
ータビットを、DB0-A〜DB0-Dと呼ぶ。
書込動作中、RMW(バッファ読出修正書込(buffer read modify write))制
御信号が、装置G38〜G43の全てのセレクト入力Aにセットされる。この状
況においては、再構築ラインは使用されない(留意する必要なし)。
各ビットがデータセルに同期する(clocked)時、対応するパリティ・データビ
ットがG31、G32とG37によって生成される。受け取った4つのESPバ
ス・ホスト・データ・ワードのそれぞれから得られる4つのビット0の列の最後
までくると、パリティ・ビットが生成され装置G42に記録される。これは、次
に述べるように実行される。最初のビット0(DB0-A)が信号DB0に現われた
時、INITラインをハイ/真にし、ゲート31からの出力をロー/オフにする
。DB0に与えられた値は、ゲート32の出力に現われ、そして正確なタイミン
グでDタイプラッチG37をクロックする。この時、DB0の値がG37の出力
Qに現われる。INIT信号がロー/オフにされ、次に送られてくるDB0の3
つのデータビットのために、データがG31を通過するようにする。ゲートG3
7の出力に記憶されたDB0-Aの値が、ゲ−ト31の出力に現われ、そして第2
のDB0ビット(DB0-B)がDB0信号に現われると、これら2つのビットの
排他的論理和の値が、ゲート32の出力に現われる。適切なタイミングで、この
新たな値は、装置G37をクロックする。このクロックサイクルが終了すると、
G37の出力Qの結果は、DB0-AとDB0-Bとの排他的論理和となっている。こ
の値は、装置G42に記憶される。この動作は、残りの2つのDB0ビット(D
B0-CとDB0-D)が信号DB0に現われた時にも続けて行われる。この動作が終
了すると、全ビットDB0-A〜DB0-Dの排他的論理和の合計が装置42に記憶さ
れることとなり、同時にビットDB0-A〜DB0-Dが、それぞれ装置G38〜G4
1に記憶される。
バッファ・タイミングと同期処理を保護するため、DB0-A〜DB0-Dの排他的
論理和(XOR)の合計値は、このようにして生成される。
この5つの出力DB0-A〜DB0-Eは、4つのホストデータワードの全てのデー
タビット0〜15について生成される。全80ビットは、中央バッファ・メモリ
に記憶される(DRAM)。上記の全処理は、連続する各4つのホスト・データ
・ワード(8ホスト・データ・バイト)について繰り返される。
スレーブ・ディスクドライブ・データの各『セクタ』は、中央バッファに構築
されるので、ディスク・ドライブの同じバンクとなるようにスレーブ・ディスク
ドライブ(チャネルA〜チャネルE)に書き込まれる。
欠陥スレーブ・チャネルもしくはディスク・ドライブが存在すると、コントロ
ーラは、そのドライブ・データをマスクし、当該チャネル/ディスク・ドライブ
にデータを書き込まないようにする。しかしながら、データは、通常どおり中央
バッファに構築される。ホスト・システムへのアレイ・ディスクドライブ・データの読み出し
図5において、ホスト要求に応じて、ディスクアレイからデータが読み出され
、中央バッファメモリ26に置かれる。書込動作と反対の処理により、80ビッ
トの中央バッファデータが、各ビット(4データビットおよび1パリティビット
)のための装置G10〜G14にロードされる。ここでも、DB0についてのみ
考察する。得られた5ビットは、DB0-A〜DB0-Eである。全ての読み取り動作
は、新たなパリティビットを生成し、これをスレーブ・ディスクドライブから読
み出
したビットと比較することにより、合計パリティでチェックされる。
まず、欠陥スレーブ・ディスクドライブがなく、アレイが完全に機能している
場合について考察する。この場合には、全てのマスクビット(マスクA〜マスク
E)がロー/偽とされ、中央バッファ26からの全てのビットが、入力『A』を
とおって、装置G10〜G14の出力に現われる。また、全データビットは、入
力『A』をとおって、装置G6〜G9の出力に現われる。中央バッファへの読み
出し動作の後、4つのデータビットが装置G6〜G9の出力に同時に現われる。
書込動作と反対の処理をするように、全データビットDB0-A〜DB0-Dが、2つ
のセレクトラインによて制御されるマルチプレクサを介して、ESPデータバス
上に再構築される。データビットが中央バッファ26から読み出された時、パリ
ティ・データビットがエクスクルーシブORゲートG4によって再生成され、ゲ
ートG3において、装置G14にスレーブ・ディスクドライブから読み出された
パリティデータと比較される。異なっていることが検出されれば、NMI『マス
ク不能な停止(non-maskable interrupt)』が、ゲートG3を介して、マスタ処理
装置に生成される。全ての読取動作は終了され、コントローラは自動的に再読取
を実行する。
ゲートG5は、新たなパリティビット生成により得られたパリティビットDB
0-Eの結果を出力しない。ゲートG1は、スレーブ・ディスクドライブのいずれ
かが故障し、マスクビットがハイ/真にセットされた場合、NMI動作を抑制す
る。また、何れかのチャネルが故障すると、ゲートG5と連携するゲートG1は
、読み出したパリティビットDB0-Eを、再生成処理において、ゲートG4で用
いることを許可する。ホスト読出動作中に生じた『1つの故障チャネル』データの再生成
図5において、1つの故障ディスクドライブ/チャネルは、コントローラ・ソ
フトウエアによって、ハイ/真にセットされるマスクビットを有している。故障
したチャネル/ドライブに関連するゲートG6〜G9およびG10〜G14は、
その『A』入力ではなく『B』入力によって決まる出力を有している。また、G
1は全てのNMIの発生を阻止し、ゲートG5とともにパリティビットDB0-E
をゲートG4に用いることを許容する。この状況において、G10〜G14の4
つの有効なビットは、ゲートG4において、『失われた』データを『再生成』す
る。そして、ゲートG4の出力とともに、ゲートG6〜G9の『B』入力を介し
て、正しいESPデータバス・ビットDB0を供給する。
たとえば、チャネル2のディスクドライブが故障し、マスクビットmasc−
cがハイ/真にされた場合について考えてみる。ゲートG12の出力はローとな
り、ゲートG4の出力は出ない。また、ゲートG1の出力がロウ/偽になり、N
MIを抑制する。そして、信号DB0-EをゲートG5からゲートG4に与えるこ
とを許可する。ゲート4は、全ての正しい入力を受け、これにより失われたデー
タを再生成し、入力『B』を介して、装置G8の出力に供給する。適切なタイミ
ングで、このビットは、マルチプレクサを介して、DB0に供給される。故障ディスクドライブのデータの再構築
図4および5において、データを再構築するためには、メモリ・コントローラ
は、まず、4つのディスクドライブからデータを読み出し、失われたドライブ・
データを再生成し、最後に、故障ディスクドライブが新らしいディスクドライブ
と交換された後、そのデータを書き込まねばならない。
図5および上記の例『ホスト読出動作中に生じた1つの故障チャネルデータの
再生成』を参照して、再構築の状態においては、ゲートG6〜G9の出力は、E
SPデータバスに供給されない。しかしながら、ゲートG4の出力に再生成され
たデータは、図4の書込データセルのゲートG38〜G42の入力『B』に供給
される。再構築の状態では、RMW信号はハイ/真にセットされ、装置G38〜
G42の出力は、再構築信号の再構築データの値によって決定される。
中央バッファメモリ26の全てのチャネルは、そのデータとして再生成データ
を持つようにセットされる。ただし、ソフトウエア制御により、1つの再生チャ
ネルデータのみが、新しいディスクドライブに書き込まれる。故障チャネル/ディスクドライブの検出
故障チャネル/スレーブ・ディスクドライブの検出は、以下の3つの基準にし
たがって行われる:
1.マスタ80376プロセッサは、『プロセッサ間(interprocessor)』コマン
ド・プロトコル故障を引き起こす80186チャネル(アレイコントローラ回路
)故障を検出する。
2.80186プロセッサは、たとえば、SCSIバス・プロトコル違反等のデ
ィスクドライブの問題を検出する。
3.80186プロセッサは、SCSIバスのハードウエア・エラーを検出する
。そのSCSIバス上の1つのディスクドライブが完全なチャネル故障状態であ
る。
故障状態の検出後、チャネル/ドライブ『マスク』機能が、マスタ80376
マイクロ・プロセッサによって実行される。
故障状態において、マスクされたチャネル/ドライブは、80186チャネル
・プロセッサによる読み出し、書き込みがされない。RAID−35動作のためのソフトウエアの動作
図6〜図13は、中央制御装置22によって動作するソフトウエアの動作を示
すダイアグラムである。
図6は、ディスクドライブのバンクにデータ書込を行う部分のステップを示し
ている。始めは、ソフトウエアは、『バックグランド』モードで動作しており、
指示を待っている。データを送り出せという、ホストからの指示を受けると、こ
れが現在のセグメント中にシーケンシャルに並べられているかどうかを判断する
。データがシーケンシャルであれば、このデータは、セグメントの中にシーケン
シャルデータを形成して記録されている。バッファ・セグメントにシーケンシャ
ルなデータがなければ、新たなセグメントを開き(図8の後書き(write behind)
処理)、ホストからのデータを受け、あるいは通過バッファにデータを受け入れ
、セグメントへの書込準備完了をキューに入れる。新しいセグメントのための余
裕が内場合には、長い時間使用されていないセグメントが捜し出される。そのよ
うなセグメントがない場合には、ホスト書込命令は、保留要求リストに入れられ
る。セグメントが使用可能であれば、それが書込セグメントであるか読出セグメ
ントであるかを判断する。書込セグメントであって、それが空いていれば、再割
り当
てを行う。空いていなければ、このセグメントを、再割り当ての対象から除外す
る。セグメントが、読出セグメントであれば、このセグメントを再割り当てして
、ホストデータを受入れるために開く。
後書き処理を図8に示す。空にする必要のある書込セグメントが開かれた場合
、書込要求は、データを有する開かれた各セグメントのためのI/Oハンドラー
(I/O handler)のためにキューに入れられる。
図7は、読出動作の部分のステップを示すものである。始めは、コントローラ
は、『バックグランド』モードである。ホストコンピュータからのデータ要求を
受けた時、データ要求の開始が読出セグメントにあれば、データを、中央バッフ
ァ26からホストコンピュータに転送することができる。データが中央バッファ
26にない場合、前読み情報(read ahead information)が許されているか否かを
確認する。許されていなければ、読出要求をキューに入れる。データが先読みす
べきものであれば、新しいセグメントのための余裕があるかどうかを判断する。
もしあれば、新しいセグメントを開き、ドライブからバッファ・セグメントにデ
ータを読み込んで、ホストコンピュータに転送する。新しいセグメントのための
余裕がなければ、最後にアクセスされてから最も長い時間の経過しているセグメ
ントを見つける。そして、このセグメントを再割り当てし、ディスク・ドライブ
からのデータを受入れるために開く。
バッファ・セグメント28を満盃の状態に保つため、図9に示す先読み処理が
行われる。データをリフレッシュする必要のある読出セグメントがあるかどうか
を判断する。そのようなセグメントがあれば、読出要求は、セグメントのための
I/Oハンドラーのためにキューに入れられる。
図10は、保留した転送を再開する部分のソフトウエア・ステップを示すもの
である。まず最初に、保留にしたホスト書込要求のリストがあるか否かを判断す
る。もしあれば、保留ホスト書込要求のためにセグメントを再割り当てする余裕
かあるか否かを判断する。ホスト転送のための新しいセグメントを開き、最も長
く保留にされていたホスト要求を見い出し、ホストコンピュータからのデータを
バッファ・セグメントに受け入れる。
図11は、中央バッファ26のセグメントを消去(clean up)するため、ソフト
ウエアによって実行される『管理(housekeeping)』の方法を示すものである。バ
ッファ・セグメントを消去すべき時であるかを判断する。最後のアクセス時刻か
らの時間が、『老人リミット(geriatric limit)』と呼ばれる予め定めた時間よ
り長くなっている全ての読出セグメントを見つけ出し、再割り当てをする。また
、書込セグメントについてもそのようなものがあるか否かを判断し、もしあれば
書込動作を終了(tidied up)する。
図12は、入/出力ハンドラーの動作を示すものであり、図13は、入/出力
サブシステムの動作を示すものである。
バッファ26を可能な限りホストコンピュータの要求するデータで満盃にする
ため、これら全ての処理は、中央制御装置22(80376)によって動作する
ソフトウエアにより実行され、バッファ・セグメントのデータ転送を効率的に制
御し管理している。RAID−53のためのソフトウエアの動作
図14〜19は、RAID−53動作において、スレーブ・コントローラ32
と中央制御装置22によって実行されるソフトウエアの動作を示すダイアグラム
である。
図14は、SCSIターゲットとして選択された時の、中央制御装置22によ
って実現されるステップを示すものである。選択されると、開始機(initiator)
(すなわちホストコンピュータ)からのコマンドをデコードし、構文チェックを
行う。故障を検出すると、チェック・コマンド状態によりコマンドを停止し、コ
ントローラは、バックグランド処理に戻る。構文チェックによりエラーが示され
なければ、キュー位置を割り当てるための、キュー・タグ(queue tag)メッセー
ジを受信したかどうかを判断する。受信しておらず、コマンドがすでに動作して
いる場合には、ビジー状態(busy status)を生成し、コントローラはバックグラ
ンド処理に戻る。コマンドがまだ動作していない場合、またはキュー・タグ・メ
ッセージを受信している場合には、コマンドがデータを要求しているか否かを判
断する。データが要求されている場合には、バッファセグメントをデータのため
に再割り当てし、コマンドがデータ書込である場合には、割り
当てられたバッファ・セグメントに、開始機からデータを受信する。使用可能な
スペースがない場合には、キュー満盃状態を生成し、コントローラはバックグラ
ンド処理に戻る。コマンドがデータ読出である場合や、コマンドがデータ書込で
あって、開始機から、割り当てられたバッファにデータを受け取った場合には、
コマンド・コントロール・ブロックを再割り当てする。このためのスペースがな
い場合には、キュー満盃状態を生成し、コントローラは、バックグランド処理に
戻る。コマンド・コントロール・ブロックを再割り当てすることができた場合に
は、スレーブ・バス・コントローラ32に対し(1つの80186プロセッサ)
適切なコマンドを発生し、コマンド・コントロール・タグポインタをタグとして
送る。その後、切断メッセージを開始機に送り、コントローラはバックグランド
処理に戻る。
図15において、このダイアグラムは、スレーブ・バスコントローラがコマン
ドに応じる際の、中央制御装置中のソフトウエアの動作を示している。応答可能
割込み(response available interrupt)が生成されると、スレーブ・バスコント
ローラからデータを読み出すことができる。応答情報が、デュアル・ポートRA
M(DPRAM)から読み出され、この応答からのタグが、正しいコマンド・コントロ
ール・ブロックを捜すために用いられる。スレーブ・バスコントローラからの応
答を受けたことは、コマンドコントロールブロックの完了フラグに記録される。
チャネル中の全てのスレーブ・バスコントローラが応答したか否か、およびコマ
ンド全体のタイムアウト時間が経過していないかどうかを判断する。コマンド全
体のタイムアウト時間が経過していなければ、中央制御装置は、バックグランド
処理に戻り、応答しなかったチャネルが応答可能となった時、当該チャネルを読
む。コマンド全体のタイムアウト時間が経過していれば、チャネル故障を記録す
る。その後、コマンドが完了できるかどうかを判断する。コマンドが、完了でき
なければ、重大なエラーがあった旨を報告し、プロセッサはバックグランド処理
に戻る。コマンドが完了できれる場合や、全てのチャネルから応答があった場合
には、データ転送を要求するコマンドが完了しているかどうかを判断する。完了
していなければ、コマンドを与えた開始機を再選択し、論理ユニット番号(LUN)
の確認を送り、タグ・メッセージをキューに入れる。その後、中央制御装置は、
バックグランド処理に戻って、良好な状況になった時の割込みを待ち、その後、
バックグランドモードに戻る。
データ転送を要求するコマンドが完了していれば、アクセスされているディス
クのバンクに故障ディスクがあるかどうかを判断する。もし、そうであれば、適
切なチャネルが、失われたデータを再構築するためにマスクされる。コマンドを
与える開始機は、再選択され、LUN確認を送り、タグメッセージを待ち行列に
登録する(キューに登録する)。中央プロセッサ (central processor)は、バス
ライン・フェーズ(段階)のデータが要求され、データが転送されると、割り込
みを受けるまで、バックグランド処理に進む。中央プロセッサは、その後、バッ
クグランド処理に復帰し、良好な状態が回復した際の割り込みを待つ。
図16a及び16bは、中央制御装置からのコマンドを受けて動作するスレー
ブ・バスコントローラによって実行されるソフトウェアの動作を表わしている。
スレーブ・バス・コントローラが、中央制御装置からのコマンドを受けると、コ
マンドがDPRAMから読み出される。このコマンドは、デコードされ、構文チ
ェックがなされて、もし欠陥があれば除去される。そうでなければ、コマンドが
データ読出または書込コマンドのいずれであるかが決定される。もし、そうでな
ければ、コマンドは、記憶バッファを要求しているかを決定するために分析され
、もし、そうならば、バッファが割り当てられる。もし、バッファに空きがなけ
れば、データの読み出しのを続行できるように、処理が保留される。この処理は
、空きが出来た時に再開される。次に、入力/出力キュー・エレメントが、コマ
ンド要求に基づいて、構成されセットされる。このキュー・エレメントは、次に
入力/出力キュー内に入れられ、目的ターゲットリスト上にリンクされる。
もし、コマンドがデータ読み出し又は書込み要求であれば、どのターゲットを
用いるかが決定される。アレイ・ブロック・アドレスが、ターゲット・ブロック
・アドレスに変換される。次に、受けたデータが転用(又はダンプ)すべきもの
であるか、または読出修正書込(read modify write)が要求されているかが決定
される。もし、コマンドが読出要求であれば、転送がバンク限界を超えているか
否かが決定される。もし、超えていなければ、入力/出力キュー・エレメントが
、単一読み出しのために構成され、セットされる。もし、転送がバンク限界を
超えていれば、入力/出力リンク・ブロックが割り当てられ、このコマンドに対
して2つの読み出しを実行すべきであることが記憶される。もし、空きのないこ
とが検出されれば、バックグランド処理を継続し、空きができた時に再開するこ
とができるように、処理が保留にされる。そうでない場合、入力/出力キュー・
エレメントが、ターゲットとキュー要求の読み出しのために、構築されセットさ
れる。また、入力/出力キューが、次のターゲット(target puls one)を読み出
すために、構築されてセットされ、要求がキューに入れられる。こうして、スレ
ーブ・バス・コントローラーは、バックグランド処理に戻る。
コマンドがデータ書込み要求であれば、図16bに示すように、転送がバンク
限界を超えるか否かが判断される。もし、超えていなければ、読出修正書込(リ
ード・モディファイ・ライト)が要求されているか否かが判断される。もし、そ
うであれば、入/出力リンクブロックが割り当てられ、空きが生じるまで処理が
保留される。1又は2の読出修正書込シーケンスの各読み出しための入/出力キ
ューエレメントが、要求されたように構築される。必要であれば、書き込みの整
列部分のためのI/Oキュー・エレメントが構築され、要求がキューに入れられ
る。スレーブ・バス・コントローラーは、次に、バックグランド処理に入る。
もし、データの転送がバンクの限界を超えていれば、下位のターゲットへの書
込が、フロント・読出修正書込(front read midify write)を要求しているか否
かが決定される。もしそうであれば、フロント・読出修正書込の読み出し部分の
入/出力キュー・エレメントが(下位のターゲットに)構築され、要求がキュー
に登録される。次に、転送における配列された書込み部分のための入/出力キュ
ー・エレメントが(下位のターゲットに)構築され、要求がキュー登録にされる
。上位のターゲットへの書込みが、バック・読出修正書込(back read modify wr
ite)を要求するか否かが決定され、もしそうであれば、読出修正書込の読み出し
部分の入/出力キュー・エレメントが(上位のターゲットに)構築され、要求が
キュー登録にされる。つぎに、書込みの配列部分の入/出力キュー・エレメント
が(上位のターゲットに)構築され、要求がキューに登録にされる。つぎに、ス
レーブ・バス・コントローラは、バックグランド処理に入る。
図17は、スレーブ・バス・コントローラによって扱われる入力/出力動作を
表すものである。SCSIバス・フェーズにおいては、特定ターゲットのために
要求入/出力を実行するための取扱いがなされる。もし、ターゲットが接続され
ていなければ、コマンド完了メッセージが受信されたか否かが判断される。もし
、受信されていなければ、警告が発生され、ターゲット欠陥が記録(logged)され
る。コマンド完了時のSCSIキュー・エレメントが、コマンド完了機能が現在
の割込みレベルで実行できるか否かを判断するために検査される。もし、実行可
能なら、最後のSCSI入/出力コマンド完了機能が、入/出力キュー・エレメ
ントで特定されたように実行される。また、入/出力キュー・エレメントは、S
CSI入/出力キューとリンクされず、他に自由に用いられるようにマークされ
る。
もし、コマンド完了機能が現在の割込みレベルで実行できないと判断されれば
、最後のSCSI入/出力コマンド完了機能および入/出力キュー・エレメント
へのポインタが、バックグランド・キュー上に入れられる。また、SCSI入/
出力キューからの入/出力キュー素子・エレメントはリンクせず、エレメントに
はフリーである旨のマークがされない。それは、バックグランド・キューから実
行されるコマンド完了機能によってフリーにされるまで、使用中とされる。
SCSI入/出力キューからの次の入/出力要求が、最低平均スループット(l
owest average throughput)により、ターゲットからの入/出力要求を用いて抽
出される。もし、低い値が複数あれば、最も低いターゲットが使用される。次に
、ターゲット選択コマンドが、SCSIに出力され、プロセッサがバックグラン
ド処理に戻ってくる前に、入/出力がキューに登録される。もし、入/出力キュ
ーが空であれば、SCSI入/出力が停止していることを表わすためのフラグが
セットされる。
図18に、スレーブ・バス・コントローラーによる簡単な入力/出力完了機能
を示す。これは、SCSI割込みレベルからのSCSI入/出力ハンドラー(取
扱器)により実行される。SCSI入/出力キュー・エレメントか検査され、キ
ュー・タグが抽出される。キュー・タグは、スレーブ・バス・コントローラーに
対してコマンドが発せられた時、中央制御装置によって与えられる。もし、SC
SI入/出力の実行が成功しなければ、キュー・タグおよび故障応答が中央制御
装置に送られる。もし、SCSI入/出力の実行が成功すれば、コマンドの完
了を知らせるために、キュー・タグおよび「確認」応答が、中央制御装置に送ら
れる。
図19に、スレーブ・バス・コントローラによる複雑な入力/出力完了機能を
示す。これは、バックグランド・キューからのバックグランドにより実行される
。
入/出力キュー・エレメントは、完了機能に従い、ポインタ・キューによりア
クセスされる。次に、この入出力と関連する入/出力リンクブロックが、アクセ
スされ、その入/出力の完了が、入/出力リンク・ブロック内に記録される。も
し、その入/出力が完全に完了しなければ、SCSI入/出力キュー・エレメン
トからの故障の詳細が、入/出力リンク・ブロック・エラー情報領域に記録され
る。
次に、この入/出力リンクから現在の入/出力リンク・ブロックまでが完了し
たか否かが判断される。もしそうであれば、入/出力リンク・ブロック・エラー
情報領域内に、なんらかの故障が記憶されているか否かが判断される。もしそう
でなければ、特に中央制御装置からの元々のコマンドに対して、『整理(tidy-up
)』ルーチンが実行される。キュー・タグ及び確認応答が、中央制御装置に送ら
れる。
もし、入/出力リンク・ブロック・エラー情報領域に故障が記録されていると
、キュー・タグ、故障応答および故障情報が中央制御装置に送られる。
入/出力リンク・ブロックおよび関連する全てのバッファは、SCSI入/出
力キュー・エレメントと同じようにフリーになる。
上記で言及した「整理」は、関連したSCSI入/出力が、全て問題なく完了
した場合の、スレーブ・バス・コントローラの最後の動作となる。セクタ変換
スレーブ・ディスクドライブ・バンク40を形成するために利用可能なディス
クドライブについての問題が、経験的に得られた。上述のように、『セクタ』に
到着するホストデータは、4つに分割される。この構成は、ホストに用いられる
セクタサイズの4分の1のセクタサイズに、正確にフォーマット可能なスレーブ
・ディスクドライブのアレイを基礎としている。現在の標準セクタサイズは、
512バイトであり、結果的に必要なスレーブ・ディスクのセクタサイズを12
8バイトとしている。
最近まで、このことは問題ではなかったが、電子技術の複雑性および速度の点
から、500メガバイト・レベルを超えるディスクドライブは、セクタ毎に最小
256バイトのみにフォーマットできるのが一般的となっている。さらに、容量
が1ギガバイトを超える新しいディスクドライブは、最小512バイトセクタの
みをサポートしているのが一般的である。このことは、コントローラが、2キロ
バイト・サイズのホスト・セクタのみしかサポートできないことを意味する。
この問題は、『セクタ変換』と呼ばれる技術を適用することにより解決できる
。この技術において、各スレーブ・ディスク・セクタは、128バイトの『仮想
的(バーチャル)』スレーブ・セクタと呼ばれる、4つのホスト・セクタを含ん
でいる。この技術において、もし、ホストが、512バイトから構成される1セ
クタを要求すると、コントローラは、512バイトの大きな実体(actual)スレー
ブ・ディスクドライブ・セクタ中から128バイトの独立したセクタを抽出する
。データを書き込む際、1セクタまたは4つ以下の集合セクタを書込むためには
、まず、コントローラは要求されたセクタの全体を読み出し、必要なセクタの実
体部分のデータを修正する。そして、最後に、スレーブ・ディスク・セクタの全
体を、ディスクドライブに書き戻す。これは、読出修正書込処理の一つの形式で
あり、ディスクドライブへのデータの転送が遅くなるが、これは通常、問題とは
ならない。また、ディスクドライブへの、又はディスクドライブからのデータの
大量転送ためには、この問題の影響は小さく、ホストコンピュータが気付かない
。3次元記憶アレイ
図1に示すハードウェアは、ホストコンピュータが、ディスクドライブの3次
元アレイへのアクセスを行うように、発展させることができる。これは、RAI
D−35及びRAID53の両方に適用可能である。
図21に、コンピュータ・メモリ・コントローラ100に関する3次元ディス
ドライブの構成を示す。ディスクドライブの各面は、図1に示す2次元配列に対
応している(42,0.A,…42,6.E)。この構成において、バッファメ
モリ26およびデータ分割・パリティーロジック24の数は、5つに増えており
、その一つずつが、ディスクドライブの各2次元アレイ(又は面)のためのもの
である。中央制御装置22は、各バッファ・メモリ26、および関連するスレー
ブ・コントローラー32を独立して制御する。各データ分割およびパリティーロ
ジック24は、関連するバッファメモリ26およびSCSI−1インターフェイ
ス12に接続されている。
RAID−35動作においては、この構成により、メモリ容量が極めて大きく
なり、先読みセグメントの数が5に増加するが、RAID−53動作においては
、図1の2次元構成と比べ5倍のシーク処理を同時に行なえるので、データへの
アクセス速度が大きく向上するようになる。
上記に述べたのは、概略的な構成である。実際の構成においては、ディスクド
ライブの面毎に1つずつ設けた、5つの別個のアレイ・コントローラを使用する
。コントローラの予備
図16は、第2コンピュータ・コントローラ100Bの使用を示すものである
。
第2コンピュータ・コントローラ100Bは、主コンピュータ・メモリ・コント
ローラ100Aの故障の場合に供給される。第2コンピュータ・コントローラ1
00Bは、主コンピュータ・メモリ・コントローラ100Aと異なるアドレスが
付されて、各SCSI−1バスラインに接続されている。2つのSCSI−1ア
ドレスが、コントローラ100A及び100Bによって占められているので、接
続できるディスクドライブのバンクの数は6つに減る。
この構成により、故障を修理するために停止させることが許されていないコン
トローラの予備を提供することができる。RAID−35とRAID−53の組合わせ
図1、図21、及び図22に示すハードウェアは、RAID−35及びRAI
D−53のいずれでも動作可能である。さらに、このハードウエアは、ハードウ
ェアを共有することにより両方のシステムで運転することができる。例えば、開
始時(start-up)において、バッファ26の一部をRAID−53に割り当てる
ことができ、残りをRAID−35に割り当てることができる。このシステムが
シーケンシャルでないデータ要求を検出した場合、バッファ・セグメントは、バ
ッファメモリのRAID−53に割り当てられた部分内に開かれ、そこに対して
データが読み出される。中央制御装置22によりシーケンシャルなデータが検出
されれば、適切なバッファ部分中にバッファ・セグメントが割り当てられ、ディ
スクバンクから、通常のRAID−35動作における先読み情報とともに、デー
タが読み出される。
ディスクバンクはシェアすることもできるし、ある数のディスクバンクを、R
AID−53での使用のために割り当て、残りをRAID−35での使用に割り
当てることもできる。
このハードウェアの配分は、ユーザーにより選択的に行なうことができ、ある
いは、シーケンシャルとシーケンシャルでないデータとの率に従って自動的に行
なってもよい。こうして、例えば、このシステムは、開始時にはRAID−53
モードにセットアップし、バッファメモリ26の部分のサイズと、RAID−3
5に割り当てるディスクバンクの数とを、シーケンシャルなデータ要求の数に応
じて変化させるようにしてもよい。オーバーレイ・バンク・ストライプ(Overlay Bank Stripping)
オーバーレイ・バンク・ストライプとは、メモリバンク間でのデータ配列につ
いて以下に用いられる文言であって、RAID−35及びRAID−53の両方
に適用できるものである。
上述の実施例において、データはバンク内にシーケンシャルに記録される。す
なわち、ユーザ・データの論理ブロックが、ディスク面に対して横断的(scross)
に配置され、各追加バンクをシーケンシャル(連続的)に横断する。これは、複
数のバンクからの読出しおよび書込みを、同時に行なうという本システムの能力
をフルに用いていない。もし、データが、ディスクドライブのバンクの全体にう
まく配列されていれば、RAID−35システムを用いたとしても、複数のバン
クからの読出しおよび書込みを同時に行なうことが可能である。
オーバーレイ・バンク・ストライプ技術は、予め定義した(predefined)セグメ
ントの第一バンクに、ホストコンピュータからの書込みデータを受けるにより動
作する。このセグメントが満たされると、データは次のバンク内の同じ論理位置
(logical position)を有するセグメントに書き込まれる。これは、各バンク内の
同じ論理セグメントが満たされるまで繰り返され、満たされると、データは第1
バンク内の次の論理セグメントに書込まれる。これは、アレイが満たされるまで
繰り返される。この処理は、アレイのバンク全体にわたって、データを均等に配
置できるという利点を有している。したがって、ホストコンピュータにより要求
された複数のデータが、同時に読み出し可能な異なったバンクに位置し、データ
の発見速度が速くなる。さらに、コントローラは各セグメントのためにアドレス
を配置するので、データを異なるバンクに同時に書き込むことができ、データ記
録の速度が速くなる。
図23は、アレイ中のセグメント内のデータ配置を示すものである。セグメン
トは、少なくともディスクデータの1つのブロック、たとえば512バイトを含
むデータ・エリア、として定義してもよいが、より多くのディスクデータ・ブロ
ックの集合、たとえば図23に示すように64キロバイトとしてもよい。
もし、ホスト・データ・ブロックが512バイトであれば、各チャネルに12
8バイトを適用するように、RAID−35またはRAID−53技術を用いて
、これを分割する。したがって、各バンクの各ディスクドライブ上の64キロバ
イトのセグメントは、512のホスト・データ・ブロック・セグメントを含む。
上記説明ではセグメントのサイズは64キロバイトであるが、異なったアプリ
ケーションのために最適化が要求される性能に適合させるため、セグメント・サ
イズはユーザーにより選択が可能である。
オーバーレイ・バンク・ストライプが、RAID−53構成とともに用いられ
ると、ホストデータ要求は完全にランダムとなり、オーバーレイ・バンク・スト
ライプを用いるメリットはない。しかしながら、以前、同じバンク(同じセグメ
ント内ではない)に存在したデータのための複数のホストデータ要求(読み出し
または書込み)が同時に現われる場合には、その要求がバンクを横断するように
配置されて、同時に複数の読出/書込処理が行なえるため、かなりの性能向上が
達成される。図23に示す構成において、性能の向上は7である。
その面の上のRAID−35構成ついて、シーケンシャル・データの読取り能
力は、オーバーレイ・バンク・ストライプを使用することにより低下する。しか
し、オーバーレイ・バンク・ストライプを使用すれば、異なるバンク上のデータ
を同時に読み出すことができるので、性能が強化される。したがって、セグメン
トよりも大きなシーケンシャルなデータについては、オーバレイ・バンク・スト
ライプをしなければ、データの全長が、1つのバンクに対して、読み出されまた
は書き込まれるのに対し、オーバレイ・バンク・ストライプによれば、データは
1以上のバンクに対し、同時に、読み出しまたは書き込むことができる。この技
術により、アレイに対するデータ転送レートを高くすることができ、各個別のデ
ィスクが有するアクセス速度の制限により引起こされる限界を克服することがで
きる。もし、図23に示す構成における各バンク上のセグメント内にデータが配
置されていれば、転送レートは7の率(factor of seven)により向上する。しか
しながら、SCSIインターフェイスによって提供されたデータ転送レートを最
適化するため、セグメント・サイズは十分なサイズ、たとえば64キロバイトが
必要となる。
オーバーレイ・バンク・ストリッピングの技術は、RAID−35またはRA
ID−53技術のいずれにも用いることができる。コンピュータ・メモリ・コン
トローラが、この2つの技術のために、バンクを適切に割り当てることにより、
双方が動作するように調整を行う場合には、ディスクバンクが双方でシェアされ
、あるいはディスクバンクが適切に割り当てられてRAID−35またはRAI
D−53のうちの一つに与えられていれば、オーバレイ・バンク・ストライプは
両技術に用いることができる。
上述の実施例から、本発明のコントローラは、ホストコンピュータの複数ユー
ザのために、メモリユニットから転送される大容量なシーケンシャル・データの
ために、および/または、多数のユーザからの少量データのためのランダムな要
求のために提供されるものである。
この発明は、特定の要素および要素の組合わせを参照して記述されているが、
各要素は、他のものまたは他の要素のいかなる組合わせとも結合できることが認
識される。示唆した要素の特定の組合わせにおいて、発明を限定するものではな
い。さらに、前述の記載は、言及したいかなる要素も発明に不可欠であることや
、代替物が用いられることがないことを示唆するものではない。発明として定義
されるものは、本明細書の開示範囲により限定的に解釈されるべきではない。