JPH06161672A - プログラム可能なディスクドライブアレイコントローラ - Google Patents

プログラム可能なディスクドライブアレイコントローラ

Info

Publication number
JPH06161672A
JPH06161672A JP5166939A JP16693993A JPH06161672A JP H06161672 A JPH06161672 A JP H06161672A JP 5166939 A JP5166939 A JP 5166939A JP 16693993 A JP16693993 A JP 16693993A JP H06161672 A JPH06161672 A JP H06161672A
Authority
JP
Japan
Prior art keywords
data
disk
controller
disk drive
programmable
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP5166939A
Other languages
English (en)
Inventor
John G Mcbride
ジョン・ジー・マクブライド
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.)
HP Inc
Original Assignee
Hewlett Packard Co
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 Hewlett Packard Co filed Critical Hewlett Packard Co
Publication of JPH06161672A publication Critical patent/JPH06161672A/ja
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/70Masking faults in memories by using spares or by reconfiguring
    • G11C29/88Masking faults in memories by using spares or by reconfiguring with partially good memories
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0656Data buffering arrangements

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Human Computer Interaction (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Programmable Controllers (AREA)
  • Signal Processing For Digital Recording And Reproducing (AREA)

Abstract

(57)【要約】 【目的】 様々な個数のテ゛ィスクト゛ライフ゛を扱うためのフ゜ロク゛
ラム可能な融通性を有するテ゛ィスクト゛ライフ゛アレイ用コントローラを提供
する。 【構成】 ホストフ゜ロセッサからの連続テ゛ータを複数のテ゛ィスクト゛ライ
フ゛(以下DD)36,38,40,42,44にわたって分配するフ゜ロク゛ラム
可能テ゛ィスクアレイコントローラ10である。このコントローラ10は複数のDD
が接続されたテ゛ハ゛イスホ゜ート28を備える。テ゛ュアルホ゜ートハ゛ッファメモ
リ16はDD36,38,40に格納するためにホストフ゜ロセッサからのテ゛ータ
を受信する。フ゜ロク゛ラム可能制御手段10はハ゛ッファメモリ16から
のテ゛ータにアクセスし、そのテ゛ータをDD36,38,40へ格納するため
にテ゛ハ゛イスホ゜ートへ供給させる。この制御手段10は、ハ゛ッファメ
モリ16からアクセスされるテ゛ータアト゛レスを制御するために、各DD3
6,38,40に関連する可変インクリメントカウンタ56を備えている。各
カウンタ56は、その関連するDDがハ゛ッファメモリ手段16からn番目
毎のテ゛ータセク゛メントを受信するよう値nだけカウントを逐次にイン
クリメントするようにフ゜ロク゛ラム可能である。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は、安価なディスクドライ
ブからなるアレイ用のコントローラに関し、特に、多数
の冗長で安価なディスクドライブを制御し、できるだけ
少数のディスクドライブポート回路を用いるディスクド
ライブコントローラに関する。
【0002】
【従来の技術】1988年6月1日から3日までイリノイ州シ
カゴにおいて開催されたACM Sigmod会議の議事録109頁
から116頁に記載のPatterson等による「A Case for Red
undantArrays of Inexpensive Disks (RAID) (安価
なディスクの冗長アレイ)」には、単一で大きく高価な
磁気ディスクドライブの容量は急速に増大したが、その
性能の改善は緩慢である、ということが述べられてい
る。彼らは、大型で高価なディスクの代替案としては安
価なデスクの冗長アレイ(RAID)が魅力的であり、性
能の大幅な改善を約束した。ディスクドライブアレイの
欠点は、アレイ中のいずれか1つのディスクドライブが
故障するまでの平均時間が、今日のユーザーにとって受
容できない程度の時間間隔でアレイ全体を故障状態にす
るものである、ということである。実際に、彼らは、安
価なディスクの大型アレイは故障の許容範囲を設定しな
ければ信頼性が低すぎて実用にならない、という結論を
出した。
【0003】この信頼性の問題の解決策として、Patter
son等は、その信頼性の問題を部分的に、或いは、大幅
に克服するものとして5レベルのRAIDシステムの冗
長性を必要条件とした。提案された5つのシステムの各
々により、故障したディスクドライブを迅速に交換する
ことが可能となり、その故障したディスクドライブに含
まれるデータを交換したディスクドライブ上に再生する
ことが可能となる。更に、故障したドライブに含まれる
データは、それが交換ディスクドライブに書き込まれる
以前であっても、ホストプロセッサに対して利用可能な
ものとなる。
【0004】様々なレベルのRAIDシステムに関する
以下の説明では、「ストライピング(striping)」の概念
を用いる。要するに、ストライピングとは、複数のディ
スクにわたってデータをインタリーブ(交互配置)する
ことである。「ストライプ」配置では、ビット、バイ
ト、ワード、またはブロックごとにインターリビングが
行われ、次に続くデータ要素が次に続くディスクドライ
ブに配置される。例えば、4つのディスクドライブアレ
イが存在すると仮定した場合、ワード1はディスクドラ
イブ1に配置され、ワード2はディスクドライブ2に、
ワード3はディスクドライブ3に、ワード4はディスク
ドライブ4に、そしてワード5はディスクドライブ1に
配置される、といった具合である。パリティ冗長性を採
用しているRAIDシステムの場合、余分なディスクド
ライブ(1個或いは複数個)には、各ストライプ毎にパ
リティ情報が含まれる。ディスクドライブが損失して
も、そのデータはパリティデータを用いて回復可能であ
るので、その損失ドライブのデータの置換が妨げられる
ことはない。
【0005】Patterson等は以下の各レベルのRAID
を主張した。
【0006】第1レベルのRAID:ミラー・ディスク
であり、このシステム構造は、従来の方法として用いら
れるもので、その場合、全てのディスクドライブは複製
され、ディスクへの書込みは全て、チェックディスクに
も書き込まれる。
【0007】第2レベルのRAID:この構成の意図す
るところは、1グループのディスクドライブの各ディス
クにわたってデータのビット・インタリービングを行
い、あらゆるディスク上の単一ビットエラーを検出して
修正するのに充分なチェックディスクを付加することで
ある。
【0008】第3レベルのRAID:データは複数のデ
ィスクにわたってそのストライピングが行われ、1つの
冗長パリティディスクドライブが設けられる。故障して
いない残りのディスクのパリティを計算し、次いで当初
のディスクドライブの完全なグループに関して計算され
たパリティに対してビット毎の比較を行うことにより、
故障したディスク上の情報を復元することができる。第
3レベルのRAIDは、信頼性の間接費を最低水準にし
て優れた性能特性を提供する。RAIDレベル2,3の
他の特徴は、データを含む全てのディスクが各データ転
送に関係する、ということである。
【0009】第4レベルのRAID:このシステム構成
は、単一ディスク上に比較的大きい個々のデータユニッ
ト(例えばデータブロック)を保持することと、逐次の
ブロックを複数のディスクにわたって書き込むことと、
各ブロックに関するパリティを計算することと、付加設
置されたパリティディスクドライブにパリティブロック
を配置することとを提案するものである。レベル4のR
AIDにより、種々のディスクに対する読み出し動作に
おいて或るレベルの並列実行が達成可能になる。
【0010】第5レベルのRAID:このシステム構成
では、チェックキャラクタ又はパリティキャラクタの格
納場所として単一ディスクドライブが割り当てられるこ
とはない。パリティは、ドライブアレイ中の全てのディ
スク間に分配される。従って、例えば5つのディスクか
ら成るディスクアレイが存在する場合には、第1ストラ
イプはディスク1で開始し、ストライプ1に関するパリ
ティはディスク5に配置される。ストライプ2に関する
パリティはディスク1に配置され、その第1データセグ
メントはディスク2で開始する、といった具合となる。
このレベルはまた、ディスクに対する読み出し及び書き
込みの並列実行を可能にする。
【0011】Patterson等の論文に続き、ゼロレベルの
RAIDが主張され、この場合、データは複数のディス
クドライブにわたってストライピングされ、パリティの
挿入に関する準備は有さない。上述のRAIDレベルの
うち、レベルゼロ,1,3,5が最も広く使用されてき
た。ただし、RAID3,5では複雑なデータ構造が必
要とされるので、従来のアレイコントローラの構造は、
接続されたディスクドライブの構成の変更に関して本質
的に融通性が欠如したものとなる。更に、この種のRA
ID構成用のアレイコントローラは一般に、ディスクド
ライブ1つにつき1つのデバイスポートを備えており、
これはこの種コントローラのコストを増大させる原因と
なっている。
【0012】従来のアレイコントローラは、バッファモ
ード及び非バッファモードの両方において動作する。オ
ハイオ州、DaytonのNCR社により市販されているADP-92
ディスクアレイコントローラは、ホストプロセッサとデ
ィスクドライブアレイとの間でデータをバッファするも
のではない。コントローラは、ホストからのデータの受
信時に、到来するデータを各々のドライブに分配する。
ADP-92は、各ディスクドライブ毎に1つのデバイスポー
トコントローラモジュールを備えており、これは、コン
トローラ構造を高価にする原因となっている。
【0013】他のアレイコントローラでは、ディスクと
ホストコンピュータとの間で転送されるデータを一時的
に記憶する単一ポートバッファが採用されている。この
バッファの利点は、ホストポートが、ブロックがストラ
イプされたモードにおいて、その最高速度でデータを転
送することが可能になる、ということである。これに対
し、バッファを持たないコントローラはその機能を持た
ない。
【0014】同様に、この種バッファにより、ホストチ
ャネルにおける装置のオーバーラップ及び待ち時間をコ
ントローラが利用することが可能になる。しかし、この
種のコントローラは、その性質上、製作費が高くなり、
更に、単一ポートバッファは、その単一ポート構造のた
め、データ転送に制限を加えるものとなる。
【0015】
【発明が解決しようとする課題】従って、本発明の目的
は、様々な個数のディスクドライブを扱うためのプログ
ラム可能な融通性を有するディスクドライブアレイ用の
コントローラを提供することにある。
【0016】本発明の別の目的は、デバイスポートの個
数を最小限に維持したまま、種々のRAIDレベル構成
を実施可能にする、プログラム可能なアレイコントロー
ラを提供することにある。
【0017】更に、本発明の他の目的は、単一ポートバ
ッファの使用に起因する性能上の不利益を回避すること
のできるバッファ付きディスクアレイコントローラを供
給することにある。
【0018】
【課題を解決するための手段】プログラム可能なディス
クアレイコントローラは、ホストプロセッサからの連続
するデータを複数のディスクドライブにわたって分配す
る。このコントローラは、複数ディスクドライブが接続
された1つのデバイスポートを有する。デュアルポート
バッファメモリは、ディスクドライブに記憶するための
データをホストプロセッサから受信する。プログラム可
能なコントローラは、バッファメモリからのデータにア
クセスし、ディスクドライブに記憶させるためにそのデ
ータをデバイスポートに供給させる。プログラム可能な
コントローラは、バッファメモリからアクセスされるデ
ータアドレスを制御するために、各ディスクドライブと
関連した可変インクリメントカウンタを有する。各々の
可変インクリメントカウンタは、関連するディスクドラ
イブがバッファメモリからn番目毎のデータセグメント
を受信するように値nだけカウントを逐次インクリメン
トさせるようにプログラム可能である。
【0019】
【実施例】図面において、ホストコンピュータは、ホス
トポート12を介してアレイコントローラ10と通信する。
ホストポート12は、受信したホストデータを、データバ
ス14を介して1つ又は複数のバッファメモリに送る。図
示の例では、2つのビデオRAMバッファ16,18が示さ
れ、その各々の直列データ入力ポートにはデータバスl4
が接続されている。ビデオRAMはデュアルポートラン
ダムアクセスメモリであり、その一方のポートは直列デ
ータI/O能力を提供し、他方のポートは独立して動作
可能な並列データI/Oポートを提供する。ビデオRA
M16,18へのデータフローは、VRAMアレイ論理モジ
ュール20によって制御される。制御バス22は、VRAM
アレイ論理モジュール20をホストポート12及びビデオR
AM16,18に接続する。
【0020】ホストポート12によりデータバス14上に置
かれたデータは、CRC/パリティ生成モジュール24に
も供給され、これによって、周期的冗長性チェックキャ
ラクタ及び他のパリティ信号が導出される。マイクロプ
ロセッサ26は、コントローラ10内の各モジュールに接続
され、アレイコントローラ全体の動作を制御する。
【0021】ビデオRAM16は、データバス30を介して
デバイスポート28に接続された並列ポートを備える。同
様に、ビデオRAM18は、データバス32によってデバイ
スポート34に接続された並列ポートを備える。例示目的
のため、3つのディスクドライブ(即ち36,38,40)はデ
バイスポート28によりサービスされ、2つのドライブ
(42,44)はデバイスポート34によりサービスされる。
ビデオRAM16,l8及びデバイスポート28,34の動作は、
デバイスポートアレイ論理コントローラ46,48によって
それぞれ制御される。
【0022】デバイスポートアレイ論理コントローラ46
は、制御バス50を介してビデオRAM16及びデバイスポ
ート28に接続される。同様に、デバイスポートアレイ論
理コントローラ48は、制御バス52を介してビデオRAM
18及びデバイスポート34に接続される。更に、各々のデ
バイスポートアレイ論理コントローラ46,48は、制御バ
ス54を介してビデオRAMアレイ論理モジュール20から
の入力を受信する。
【0023】各々のデバイスポートアレイ論理コントロ
ーラ46,48は、複数のカウンタを備え、その一方は、関
連するデバイスポートによりサービスされる各ディスク
ドライブへ割り当てられる。デバイスポートアレイ論理
コントローラ46は、3つのカウンタ56を備え、デバイス
ポートアレイ論理コントローラ48は2つのカウンタ58を
備える。各カウンタは、プログラム可能であって、任意
のカウントで開始し及び所望のカウントでインクリメン
トするようセット可能である。以下、アレイコントロー
ラ10はRAID−3モードで動作しており、これによ
り、逐次のデータワードはディスクドライブ36,38,40,4
2にわたって分配され、パリティワードはディスクドラ
イブ44に格納される(即ちワードのストライピングが行
われる)ものと仮定する。従って、第1ストライプは、
ディスクドライブ36上に格納されたワード1と、ディス
クドライブ38上のワード2と、ディスクドライブ40上の
ワード3と、ディスクドライブ42上のワード4と、ディ
スクドライブ44に格納されたワード1〜4用のパリティ
とからなる。次のストライプは、ディスクドライブ36に
格納されたワード5で始まり、全てのワードが格納さ
れ、結果として得られる各ストライプ用のパリティがデ
ィスクドライブ44に格納されるまで、周期的態様で進行
する。
【0024】アレイコントローラ10の詳細な動作につい
て説明する前に、ビデオRAMアレイ論理モジュール20
及びデバイスポートアレイ論理コントローラ46,48の機
能について考察することとする。以下、データは、バイ
・ワード法(by-word basis)でディスクドライブ36,38,4
0,42,44間に分配されるものと仮定する。個々のワード
がホストポート12によって受信されてデータバス14上に
配置されると、ビデオRAMアレイ論理モジュール20
は、それらのワードをビデオRAM16,18に逐次格納さ
せる。ワード1,2,3は、ビデオRAM16中の最初の
3つの記憶位置に連続的に格納され、ワード4は、ビデ
オRAM18中の最初の記憶位置に格納される。ワード1
〜4がビデオRAM16,18にわたって分配された後、C
RC/パリティモジュール24によってワード1〜4に関
して導出されたパリティワードがビデオRAM18中の次
の隣接データ位置(第2記憶位置)に挿入され、ビデオ
RAM16においてデータワードの格納シーケンスが開始
される。この動作により、ビデオRAMアレイ論理モジ
ュール20は、RAID−3様式でディスクドライブ36〜
44に到来データワードを格納する準備を整える。
【0025】各デバイスポートアレイ論理コントローラ
(46,48)は、関連するビデオRAMからアクセスさ
れ、ディスクドライブに格納するために関連するデバイ
スポートに供給されるワードを決定する。ワード選択
は、カウンタ56,58により制御される。各々のカウンタ5
6,58は、その関連ビデオRAMにそれぞれ接続されてい
るディスクドライブの個数、即ち、図示の例では3及び
2に等しいカウントだけインクリメントするようにプロ
グラムされる。更に、各カウンタは、そのカウントから
最初のカウント1だけオフセットするようにプログラム
される。従って、カウンタ56の第1のカウンタはカウン
ト1から開始し、第2のカウンタはカウント2から開始
し、第3のカウンタはカウント3から開始し、カウンタ
56の各カウンタのインクリメント値は3である。同様に
して、デバイスポートアレイ論理コントローラ48におけ
る2つのカウンタ58は、それぞれ、カウント1及びカウ
ント2から開始し、各カウンタはそのカウントを2だけ
インクリメントする。
【0026】カウンタ56,58のプログラミングは、マイ
クロプロセッサ26によって制御され、そのカウンタの関
連するビデオRAMに接続されたディスクドライブの個
数及び実行中のRAID手順に関係するものである。図
示の例の場合、カウンタ56の第1のカウンタは、1→4
→7といった具合にインクリメントする。このカウンタ
は、ディスクドライブ36に割り当てられる。従って、そ
のカウントにより、ビデオRAM16は、その第1、第
4、第7番目等々のワードを、ディスクドライブ36内の
連続するストライプに格納するために、データバス30上
へ、そしてデバイスポート28中へと読み出す。同様に、
カウンタ56の第2のカウンタは、ディスクドライブ38に
割り当てられ、ビデオRAM16からの第2、第5、第8
番目等々のワードがディスクドライブ38内の連続するス
トライプに格納されるようにする。
【0027】RAID−3手順が実行され、「ディスク
への書き込み」が要求されたものと仮定して、システム
の動作を説明する。ホストコンピュータからの「ディス
クへの書き込み」要求に応答して、ホストポート12は、
マイクロプロセッサ26の割り込みを実施する。これに応
答して、マイクロプロセッサ26は、ホストポート12にデ
ータの受信許可を与え、次いでホストポート12がホスト
コンピュータにそのデータを送ることを指示する。同時
に、マイクロプロセッサ26はまた、到来データの配置に
関してアレイ論理コントローラ20,46,48のプログラムを
行う。こうして、マイクロプロセッサ26は、アレイコン
トローラ10に5つのディスクドライブが取り付けられて
いることと、ディスクドライブ36,38,40がビデオRAM
16に接続されていることと、ディスクドライブ42,44が
ビデオRAM18に接続されていることとをビデオRAM
アレイ論理モジュール20に指示する。更に、マイクロプ
ロセッサ26は、RAID−3手順が実行されるべきであ
るということと、ディスクドライブ36,38,40,42にわた
るデータワードのストライピング及びディスクドライブ
44へのパリティデータの挿入を可能にするように到来ワ
ードがビデオRAM16,18に分配されなければならない
こととをビデオRAMアレイ論理モジュール20に指示す
る。マイクロプロセッサ26はまた、CRC/パリティモ
ジュール24を初期化する。この段階で、ビデオRAMア
レイ論理モジュール20は、ホストポート12からのデータ
の受信を可能にするようにビデオRAM16,18上の直ア
レイポートを作動させるようデバイスポートアレイ論理
コントローラ46,48に指示する。
【0028】最初のワードがホストポート12によってデ
ータバス14上に置かれると、そのワードは、ビデオRA
M16に格納され、これと同時に、パリティ値がCRC/
パリティモジュール24で計算される。同様の動作が2番
目及び3番目のワードについても行われ、それらのワー
ドはビデオRAM16内の隣接位置に格納される。4番目
のワードがバス14上に現れると、そのワードは、ビデオ
RAMアレイ論理モジュール20によりビデオRAM18へ
と送られてそこに格納される。この段階で、CRC/パ
リティモジュール24は、ワード1〜4についてのパリテ
ィを含むので、そのパリティの値はビデオRAM18内の
次の記憶位置に配置される。5番目のワードが到着する
と、そのワードは、ビデオRAMアレイ論理モジュール
20によりビデオRAM16へと導かれ、全てのデータがビ
デオRAM16,18に格納されるまで上述の動作が継続さ
れる。
【0029】当業者であれば、入力格納動作の完了に先
立ってビデオRAM16,18からのデータ転送を開始する
ことが可能であるが、データ出力がホストポート12から
のデータ入力を追い越すことはない、ということが重要
であることが理解されよう。この例では、ビデオRAM
16,18が充満して、それぞれの直列I/Oポートを介し
てそれ以上データを格納することができなくなるまで、
マイクロプロセッサ26は、ディスクドライブへのデータ
の格納を開始しないものと仮定している。更に、どちら
のビデオRAMにおいても、その開始アドレスは任意の
記憶場所であって差し支えないこと、及び、2つのビデ
オRAM内のアドレスは互いに独立しているということ
が理解されるべきである。
【0030】この段階(又は一層早い段階)で、マイク
ロプロセッサ26は、カウンタ56及びカウンタ58が適切な
インクリメントされたカウントで開始し、関連するビデ
オRAMに取り付けられているディスクドライブの個数
だけ各カウントをインクリメントするように、前記カウ
ンタ56,58のプログラムを行う。上述のように、各カウ
ンタは、ディスクドライブにも関連しており、その関連
するビデオRAMからそれぞれの関連するディスクドラ
イブへのデータアクセスを制御する。このように、マイ
クロプロセッサ26は、カウンタ56の第1のカウンタがカ
ウント1で開始し、第2のカウンタがカウント2で開始
し、第3のカウンタがカウント3で開始するように初期
化を行う。カウンタ58は、同様に、それぞれカウント1
及びカウント2で開始するように初期化される。カウン
タ56はカウント3だけインクリメントし、カウンタ58は
カウント2だけインクリメントするように指示される。
【0031】更に、マイクロプロセッサ26は、データを
受信するためにデバイスポート28,34(並びにそれに接
続されているディスクドライブ)の準備を整える。次い
で、マイクロプロセッサ26は、デバイスポートアレイ論
理コントローラ46に「GO」信号を供給し、次いでデバ
イスポートアレイ論理コントローラ46が、データ転送の
準備が整ったことをデバイスポート28に合図する。次い
でデバイスポート28が、ディスクドライブ36に関する1
ワードを要求し、コントローラ46が、ビデオRAM16内
の第1のワードにアクセスし、そのデータをデータバス
30上に置く。次いで第1のカウンタ56がカウント3だけ
インクリメントされ、ビデオRAM16内の第4のデータ
ワードがアクセスされて、ディスクドライブ36に書き込
まれる。通常は、単一のディスクドライブへの書き込み
が全て完了し、次いでデバイスポート28がディスクドラ
イブ38に切り替えられ、そこでカウンタ56の第2のカウ
ンタの動作を介して全ての書き込みが達成される。その
手順は、カウンタ56,58におけるそれぞれのカウントの
制御に従って全データがディスクドライブ36〜44に書き
込まれるまで継続する。同様にして、CRCデータワー
ドは、適切な順序でディスクに書き込まれる。
【0032】デバイスポートアレイ論理コントローラ4
6,48、及びそのそれぞれが備えたカウンタがプログラム
可能であることより、1つのデバイスポート又はビデオ
RAMバッファメモリの1つのバンクに任意の個数のデ
ィスクドライブを接続することが可能になる。また、カ
ウントインクリメント及び最初のカウント状態を調節す
ることにより、所与のRAID構成で複数のディスクド
ライブにわたりデータを書き込むことが可能になる。こ
の手順はまた、RAIDゼロ,1,4,5にも適用する
ことができる。これらの場合、アレイを構成する様々な
ディスクドライブにわたりデータを適切に分配すること
を保証するために、マイクロプロセッサ26は、カウンタ
の初期カウントを絶えず更新する。
【0033】上記説明は本発明の例示に過ぎないことを
理解されたい。当業者であれば、本発明の思想から逸脱
することなく、様々な代替策及び修正策を講じることが
可能である。従って、本発明は、特許請求の範囲に含ま
れるそのような代替策、修正策、変形例の全てを包含す
ることを意図したものである。
【0034】
【発明の効果】本発明は上述のように構成したので、様
々な個数のディスクドライブを扱うためのプログラム可
能な融通性を有するディスクドライブアレイ用のコント
ローラを提供することが可能となる。
【図面の簡単な説明】
【図1】本発明を実施したアレイコントローラを示すブ
ロック図である。
【符号の説明】
10 アレイコントローラ 12 ホストポート 16,18 ビデオRAMバッファ 20 VRAMアレイ論理モジュール 24 CRC/パリティ生成モジュール 26 マイクロプロセッサ 28,34 デバイスポート 36,38,40,42,44 ディスクドライブ 46,48 デバイスポートアレイ論理コントロー
ラ 56,58 カウンタ

Claims (1)

    【特許請求の範囲】
  1. 【請求項1】ホストプロセッサからのデータを複数のデ
    ィスクドライブにわたって分配するプログラム可能なデ
    ィスクアレイコントローラであって、このコントローラ
    が、 デバイスポート手段と、 そのデバイスポート手段に接続されたn個のディスクド
    ライブと、 前記デバイスポート手段に接続され、前記ホストプロセ
    ッサからのデータを受信して格納する、バッファメモリ
    手段と、 前記各ディスクドライブと関連するカウンタ手段を備
    え、前記バッファメモリ手段からのデータにアクセス
    し、そのデータを前記ディスクドライブへ格納するため
    に前記デバイスポート手段へと供給させる、プログラム
    可能な制御手段であって、前記各カウンタ手段が、その
    カウンタ手段に関連するディスクドライブへn番目毎の
    データセグメントを前記バッファメモリ手段が与えるよ
    うにカウントnだけ逐次にインクリメントを行うように
    プログラム可能である、前記プログラム可能な制御手段
    とから成ることを特徴とする、プログラム可能なディス
    クアレイコントローラ。
JP5166939A 1992-07-06 1993-07-06 プログラム可能なディスクドライブアレイコントローラ Pending JPH06161672A (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US909902 1992-07-06
US07/909,902 US5471640A (en) 1992-07-06 1992-07-06 Programmable disk array controller having n counters for n disk drives for stripping data where each counter addresses specific memory location by a count n

Publications (1)

Publication Number Publication Date
JPH06161672A true JPH06161672A (ja) 1994-06-10

Family

ID=25428009

Family Applications (1)

Application Number Title Priority Date Filing Date
JP5166939A Pending JPH06161672A (ja) 1992-07-06 1993-07-06 プログラム可能なディスクドライブアレイコントローラ

Country Status (4)

Country Link
US (1) US5471640A (ja)
EP (1) EP0578139B1 (ja)
JP (1) JPH06161672A (ja)
DE (1) DE69330924T2 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003296038A (ja) * 2002-03-21 2003-10-17 Network Appliance Inc Raidシステムにおいてストライプの連続アレイに書き込む方法

Families Citing this family (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5878280A (en) * 1993-09-23 1999-03-02 Philips Electronics North America Corp. Data buffering system for plural data memory arrays
US5761417A (en) * 1994-09-08 1998-06-02 International Business Machines Corporation Video data streamer having scheduler for scheduling read request for individual data buffers associated with output ports of communication node to one storage node
US5712976A (en) * 1994-09-08 1998-01-27 International Business Machines Corporation Video data streamer for simultaneously conveying same one or different ones of data blocks stored in storage node to each of plurality of communication nodes
US5555424A (en) * 1994-10-06 1996-09-10 The Dow Chemical Company Extended Harvard architecture computer memory system with programmable variable address increment
US5862403A (en) * 1995-02-17 1999-01-19 Kabushiki Kaisha Toshiba Continuous data server apparatus and data transfer scheme enabling multiple simultaneous data accesses
US5603050A (en) * 1995-03-03 1997-02-11 Compaq Computer Corporation Direct memory access controller having programmable timing
CA2220974A1 (en) * 1995-05-22 1996-11-28 Mti Technology Corporation Disk array system including a dual-ported staging memory and concurrent redundancy calculation capability
US5678061A (en) * 1995-07-19 1997-10-14 Lucent Technologies Inc. Method for employing doubly striped mirroring of data and reassigning data streams scheduled to be supplied by failed disk to respective ones of remaining disks
US5893138A (en) * 1995-10-02 1999-04-06 International Business Machines Corporation System and method for improving channel hardware performance for an array controller
JP2981482B2 (ja) * 1995-12-06 1999-11-22 日本アイ・ビー・エム株式会社 データ記憶システム、データ転送方法及びデータ再構成方法
JPH09251437A (ja) * 1996-03-18 1997-09-22 Toshiba Corp 計算機装置及び連続データサーバ装置
US6018778A (en) * 1996-05-03 2000-01-25 Netcell Corporation Disk array controller for reading/writing striped data using a single address counter for synchronously transferring data between data ports and buffer memory
KR100205072B1 (ko) * 1996-12-05 1999-06-15 정선종 디스크 어레이 제어기에서의 vram 기판 패리티 엔진
US5953352A (en) 1997-06-23 1999-09-14 Micron Electronics, Inc. Method of checking data integrity for a raid 1 system
US6061822A (en) * 1997-06-23 2000-05-09 Micron Electronics, Inc. System and method for providing a fast and efficient comparison of cyclic redundancy check (CRC/checks sum) values of two mirrored disks
US6151641A (en) * 1997-09-30 2000-11-21 Lsi Logic Corporation DMA controller of a RAID storage controller with integrated XOR parity computation capability adapted to compute parity in parallel with the transfer of data segments
US6098119A (en) * 1998-01-21 2000-08-01 Mylex Corporation Apparatus and method that automatically scans for and configures previously non-configured disk drives in accordance with a particular raid level based on the needed raid level
US6658584B1 (en) 2000-09-06 2003-12-02 International Business Machines Corporation Method and structure for managing large counter arrays
US6701447B1 (en) 2000-09-06 2004-03-02 International Business Machines Corporation System for delaying the counting of occurrences of a plurality of events occurring in a processor until the disposition of the event has been determined
US6952794B2 (en) * 2002-10-10 2005-10-04 Ching-Hung Lu Method, system and apparatus for scanning newly added disk drives and automatically updating RAID configuration and rebuilding RAID data
CA2522915A1 (en) 2003-04-21 2004-11-04 Netcell Corp. Disk array controller with reconfigurable data path
US8560807B2 (en) 2011-12-14 2013-10-15 International Business Machines Corporation Accessing a logic device through a serial interface

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3626374A (en) * 1970-02-10 1971-12-07 Bell Telephone Labor Inc High-speed data-directed information processing system characterized by a plural-module byte-organized memory unit
US4509118A (en) * 1982-05-25 1985-04-02 Honeywell Information Systems Inc. Method and apparatus for defining magnetic disk track field lengths using a programmable counter
US4688168A (en) * 1984-08-23 1987-08-18 Picker International Inc. High speed data transfer method and apparatus
AU630635B2 (en) * 1988-11-14 1992-11-05 Emc Corporation Arrayed disk drive system and method
US5146574A (en) * 1989-06-27 1992-09-08 Sf2 Corporation Method and circuit for programmable selecting a variable sequence of element using write-back
EP0428021B1 (en) * 1989-11-03 1998-09-02 Compaq Computer Corporation Method for data distribution in a disk array
US5208813A (en) * 1990-10-23 1993-05-04 Array Technology Corporation On-line reconstruction of a failed redundant array system
AU8683991A (en) * 1990-11-09 1992-05-14 Array Technology Corporation Logical partitioning of a redundant array storage system
EP0487901A3 (en) * 1990-11-29 1992-09-23 Hewlett-Packard Company Disk controller using a video ram

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003296038A (ja) * 2002-03-21 2003-10-17 Network Appliance Inc Raidシステムにおいてストライプの連続アレイに書き込む方法

Also Published As

Publication number Publication date
EP0578139A2 (en) 1994-01-12
EP0578139A3 (en) 1998-02-18
DE69330924D1 (de) 2001-11-22
DE69330924T2 (de) 2002-04-11
US5471640A (en) 1995-11-28
EP0578139B1 (en) 2001-10-17

Similar Documents

Publication Publication Date Title
JPH06161672A (ja) プログラム可能なディスクドライブアレイコントローラ
US6101615A (en) Method and apparatus for improving sequential writes to RAID-6 devices
US5442752A (en) Data storage method for DASD arrays using striping based on file length
EP0572564B1 (en) Parity calculation in an efficient array of mass storage devices
US7913148B2 (en) Disk controller methods and apparatus with improved striping, redundancy operations and interfaces
US6195727B1 (en) Coalescing raid commands accessing contiguous data in write-through mode
US5446855A (en) System and method for disk array data transfer
US5544339A (en) Array of disk drives with redundant channels
US5889795A (en) Disk array system and method for storing data
US6502166B1 (en) Method and apparatus for distributing data across multiple disk drives
US7099994B2 (en) RAID memory system
US5537567A (en) Parity block configuration in an array of storage devices
US6154854A (en) Logical partitioning of a redundant array storage system
US8281067B2 (en) Disk array controller with reconfigurable data path
EP0501818A1 (en) Fault tolerant data storage apparatus including computer disk drives
EP0874313A2 (en) Method of storing data in a redundant array of disks
US20090144497A1 (en) Redundant Storage of Data on an Array of Storage Devices
US5650969A (en) Disk array system and method for storing data
US20020184443A1 (en) Disk array device with selectable method for generating redundant data
US5862313A (en) Raid system using I/O buffer segment to temporary store striped and parity data and connecting all disk drives via a single time multiplexed network
US20020144028A1 (en) Method and apparatus for increased performance of sequential I/O operations over busses of differing speeds
EP0548153A1 (en) Computer memory array control
EP0702302B1 (en) Disk array for data storage
US6898666B1 (en) Multiple memory system support through segment assignment
JP3220581B2 (ja) アレイ形式の記憶装置システム