[go: up one dir, main page]

JP3181398B2 - アレイ型記録装置 - Google Patents

アレイ型記録装置

Info

Publication number
JP3181398B2
JP3181398B2 JP26736492A JP26736492A JP3181398B2 JP 3181398 B2 JP3181398 B2 JP 3181398B2 JP 26736492 A JP26736492 A JP 26736492A JP 26736492 A JP26736492 A JP 26736492A JP 3181398 B2 JP3181398 B2 JP 3181398B2
Authority
JP
Japan
Prior art keywords
data
redundant
read
recording medium
recording
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
JP26736492A
Other languages
English (en)
Other versions
JPH06119724A (ja
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.)
Mitsubishi Electric Corp
Original Assignee
Mitsubishi Electric 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
Priority to JP26736492A priority Critical patent/JP3181398B2/ja
Application filed by Mitsubishi Electric Corp filed Critical Mitsubishi Electric Corp
Priority to GB9608324A priority patent/GB2298307B/en
Priority to GB9608325A priority patent/GB2298308A/en
Priority to GB9608322A priority patent/GB2298306B/en
Priority to GB9320521A priority patent/GB2271462B/en
Priority to CN93114442A priority patent/CN1058096C/zh
Publication of JPH06119724A publication Critical patent/JPH06119724A/ja
Priority to US08/634,140 priority patent/US5608891A/en
Priority to CN00101194A priority patent/CN1264119A/zh
Application granted granted Critical
Publication of JP3181398B2 publication Critical patent/JP3181398B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • 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/1076Parity data used in redundant arrays of independent storages, e.g. in RAID systems
    • 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
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B20/00Signal processing not specific to the method of recording or reproducing; Circuits therefor
    • G11B20/10Digital recording or reproducing
    • G11B20/18Error detection or correction; Testing, e.g. of drop-outs
    • G11B20/1833Error detection or correction; Testing, e.g. of drop-outs by adding special lists or symbols to the coded information
    • 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/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device

Landscapes

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

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】この発明はコンピュータの記憶シ
ステムであるアレイ型記録装置に関するものであり、例
えば、複数のディスク装置をアレイ状に配したディスク
駆動システムの性能及び信頼性の改善に関する。
【0002】
【従来の技術】複数のディスク装置をアレイ状に構成し
たディスクシステムについては各種の文献、特許が発表
されている。これらの文献のなかで、カリフォルニア大
学バークレー校から大容量化する記憶データの信頼性を
飛躍的に改善する方式についての発表がある。この論
文、”A Case for Redundant A
rrays of Inexpensive Disk
s(RAID)”,Proc,ACM SIGMOD
Conf.,Chicago,IL,June 198
8ではデータの信頼性を改善する方式について従来のミ
ラーディスク方式からブロックインタリーブパリティ方
式まで5つのレベルに分類している。それぞれの概略を
以下に示す。
【0003】RAIDレベル1 通常のミラー(シャドー)方式であり、同一のデータを
2つのグループのディスク装置に記憶する。RAIDレ
ベル1のシステムは高信頼性が要求されるシステムでは
従来から一般的である。ただし、冗長度が大きいために
容量当たりコストが高価となる。
【0004】RAIDレベル2 DRAMで使われているハミングコード形式を適用した
もので、冗長グループのデータディスクにビットインタ
リーブして記憶する。一方、1ビットエラー修正可能と
するため、グループ(1グループ10〜25台程度の構
成)当たり複数台のチェックディスク(データディスク
数10台の時、チェックディスク数は4台必要)にEC
Cコードを書く。冗長度がやや大きい。
【0005】RAIDレベル3 パリティディスクを固定で使用し、データをグループ中
のデータディスクにバイトインタリーブして記録する。
エラー位置はドライブごとのECCから判るのでパリテ
ィディスクは1台ですむ。スピンドルを回転同期させ高
速度転送するのに適している。
【0006】RAIDレベル4 パリティディスクを固定で使用し、データをグループ中
のデータディスクにブロックインタリーブして記録す
る。レベル3との違いはインタリーブ単位が異なり、ブ
ロック単位で記録するため小量データのアクセスが多い
場合により向いている。
【0007】RAIDレベル5 レベル3や4と違って固定のパリティディスクを持た
ず、パリティデータは構成するディスクに分散記録(ス
トライピング)する。このため、WRITE時にパリテ
ィディスクへの負荷集中といったことが起きず、10P
Sが増加する(WRITEの比率が多いほどRAIDレ
ベル4より有利となる)。使用時性能も容量効率もとも
に良い。
【0008】冗長性を持ったアレイ型ディスク駆動装置
の従来の例としては、特開平2−236714号公報に
開示された米国のアレイ テクノロジー コーポレーシ
ョンによる「アレイ型ディスク駆動機構のシステム及び
方法」がある。アレイ テクノロジー コーポレーショ
ンの例では、冗長レベル及びホストコンピュータからみ
た構成ディスク装置の論理台数を選択可能としている。
【0009】またパリティデータの分散記録(ストライ
ピング)については、特開昭62−293355号公報
の、米国のインターナショナル・ビジネス・マシーンズ
・コーポレーションの「データ保護機構」にその方法が
示されている。
【0010】図28は例えば上記特開平2−23671
4号公報に示された従来のアレイ型ディスク駆動装置を
示す構成図であり、図において、2はホストコンピュー
タとアレイコントローラ間のバッファとなるホストイン
ターフェース(以下、ホストI/Fという)、3はアレ
イコントローラ全体を制御するマイクロプロセッサ、4
はメモリ、5は冗長データを生成及びデータの復元をす
るEORエンジン、6は上記ホストI/F2、マイクロ
プロセッサ3、メモリ4及びEORエンジン5を共通に
接続するデータバス、8はチャネルコントローラで、複
数のチャネルコントローラ8が上記データバス6に接続
されている。9はディスク装置、10はチャネルで、デ
ィスク装置9がチャネル10を介して上記チャネルコン
トローラ8に接続される。13は複数台のディスク装置
9を制御するアレイコントローラである。
【0011】図29はRAIDの冗長データの生成に関
する説明をする図である。図29に示すように5台のデ
ィスクの内1台のディスクのデータは他の4台のディス
クのデータの冗長データ(パリティ)を記憶するように
なっている。パリティは4台のディスクのデータのエク
スクルーシブOR(XOR)の演算によって計算され
る。即ちパリティディスクPのパリティデータはディス
ク0とディスク1とディスク2とディスク3のデータの
XORをとったものである。このようなパリティを冗長
データとして持つことにより、例えばディスク0のデー
タが何らかの障害により読めない場合にはディスク1と
ディスク2とディスク3とパリティディスクPのデータ
のエクスクルーシブOR(XOR)をとったデータがデ
ィスク0のデータとして復元することが可能になる。
【0012】なお、パリティの計算は前述したように4
台のディスクのデータのXORをとることにより生成で
きるが、別な方法としてデータを書き込もうとするディ
スクの古いデータと現在パリティディスクに記録されて
いる現在のパリティデータをリードして新しいデータと
古いデータと現在のパリティデータの3つのデータのX
ORを計算して新しいパリティデータとする場合もあ
る。その方法を図30を用いて説明する。例えばディス
ク2に対して新しいデータDN(2)を記録しようとす
る場合には、先ず古いデータをディスク2からDO
(2)として読み込む。同時にパリティディスクから現
在のパリティデータをDO(P)をリードしてくる。そ
して、DN(2)とDO(2)とDO(P)の3つのデ
ータのXORを計算して新しいパリティデータDN
(P)とする。そして新しいデータDN(2)をディス
ク2に記録する。最後に新しいパリティデータDN
(P)をパリティディスクに記録する。
【0013】次に図28に示したシステムの動作につい
て説明する。図28において、ホストコンピュータとの
データの記憶再生はすべてホストI/F2を介して成さ
れ、データの記憶時にはホストコンピュータからの命令
及びデータは一旦データバス6を介してメモリ4に記憶
される。データの再生時にはメモリ4に準備されたデー
タがホストI/F2を介してホストコンピュータに伝送
される。図31はホストI/F2の内部のブロック図及
びその動作フローチャートを示す図である。図におい
て、21はI/Fプロトコルチップ、22はマイコンで
ある。I/Fプロトコルチップ21はSCSIをハンド
ルするためのインターフェースチップであり、マイコン
22はI/Fプロトコルチップ21で受け付けられたデ
ータの内容を解析した結果を次段のコントローラに出力
する。マイコン22は図のフローチャートに示すように
コマンドの正当性をチェックし、次にコマンドの内容を
解析する。さらにその解析された結果に基づき論理アド
レスから物理アドレスへの変換を行なう。このようにコ
マンドの正当性のチェックとコマンドのデコードとアド
レス変換はシーケンシャルに行なわれる。この時間は例
えば、300マイクロセカンドから1ミリセカンドの時
間を要するために、例えば、他のハードウェアの性能を
向上させた場合でもホストI/F内におけるマイコン2
2の性能が向上しないため、実質的にデータの転送速度
が向上できないという不具合があった。
【0014】以下RAIDレベル5における動作につい
て、図28、図32を用いて説明する。データの記憶時
にメモリ4に記憶されたデータをマイクロプロセッサ3
がデータブロックに分割し、データ書き込みディスク装
置及び冗長データ書き込みディスク装置を決定する。R
AIDレベル5では、冗長データの更新のために書き込
みに該当するデータブロックの旧データが必要なため、
書き込みに先立ち、読みだし動作が実施される。データ
の転送はメモリ4、チャネル8間をデータバス6を介し
て行われ、上記データ転送に同期してEORエンジン5
にて冗長データが生成される。
【0015】例えば、図32に示すように1024バイ
トのデータ書き込みでは、データブロックが512バイ
トで設定されていたとすると、上記1024バイトのデ
ータは「16」と「17」の2ブロックに分割して記録
されるとともに、パリティデータPが記録される。この
ような記録状態をストライピングと言う。これを、次
に、順を追って説明する。まず、図28に示す、書き込
みデータディスク装置9a,9b及び冗長データディス
ク装置9eが決定される。次にマイクロプロセッサ3の
制御によりEORエンジン5が起動され、データディス
ク装置9a,9b及び冗長データディスク装置9eが接
続されたチャネルコントローラ8a,8b,8eに対
し、冗長データ計算のための旧データの読みだし指令が
なされる。上記データディスク装置9a,9b及び冗長
データディスク装置9eの旧データの読みだしが完了
後、マイクロプロセッサ3の指示により、データディス
ク装置9a,9bに対する新データの書き込み、及び冗
長ディスク装置9eに対するEORエンジン5で生成さ
れた更新冗長データの書き込みが実施される。以上によ
りホストコンピュータに対しデータの書き込み完了が報
告される。上記のとおりデータの書き込み時には、冗長
データ生成のために旧データの先読みだしが必要となる
ため、処理時間が長くなる。
【0016】また、図32に示したように1つのデータ
が複数のディスクにわたって分割されて記録される場合
には、そのデータをアクセスするのに複数のディスクに
アクセスする必要があり性能が劣化する。
【0017】次に、データ読みだしについて説明する。
ホストコンピュータからデータ読みだしが指令される
と、マイクロプロセッサ3により該当データが記憶され
ているデータブロック及びデータディスク装置が計算さ
れる。例えばディスク装置9cに該当データが記憶され
ていると、ディスク装置9cが接続されたチャネルコン
トローラ8cに読みだし指令が発行される。ディスク装
置9cのデータ読みだしが完了すると、データはメモリ
4に転送され、ホストコンピュータ1に対しデータの読
みだし完了が報告される。
【0018】次に異常発生時のデータ修復及びスタンバ
イディスクへのデータ再構築について説明する。データ
修復は、例えば上記説明のディスク装置9cのデータ読
みだしが不可能となった場合に実施される。ディスク装
置9cのデータ読みだしが不可能となった場合、マイク
ロプロセッサ3により読みだし該当データブロックを含
む冗長グループのディスク装置全てからのデータ読みだ
しが実施され、EORエンジン5により読みだし不能と
なった該当データブロックのデータが復元される。
【0019】例えば、冗長グループがディスク装置9
a,9b,9c,9d,9eで構成されるとすると、デ
ィスク装置9a,9b,9d,9eからデータブロック
が読み出され、EORエンジン5によりディスク装置9
cのデータが復元され、データはメモリ4に転送され、
ホストコンピュータ1に対しデータの読みだし完了が報
告される。上記のとおり、ディスク装置に異常が発生し
て、データ読みだしが不可能となってもデータの修復が
可能となり、データの信頼性を向上している。
【0020】データの再構築は、例えば上記説明のよう
に、ディスク装置9cが使用不能となった場合に実施さ
れる。この場合マイクロプロセッサ3によりディスク装
置9cに記憶されたデータを含む冗長グループのディス
ク装置全てからのデータ読みだしが実施されEORエン
ジン5によりディスク装置9cのデータが復元され、復
元されたデータはスタンバイディスク上に再構築され
る。
【0021】例えば冗長グループがディスク装置9a,
9b,9c,9d,9eで構成されるとすると、ディス
ク装置9a,9b,9d,9eからデータが読みださ
れ、EORエンジン5によりディスク装置9cのデータ
が復元され、復元されたデータはスタンバイディスク上
に書き込まれ、ディスク装置9cのデータがスタンバイ
ディスク上に再構築される。以上により使用不能ディス
ク装置9cがスタンバイディスク上で代替される。この
代替処理はシステム稼働中に実施されるため代替処理中
はシステムの性能が劣化する。
【0022】
【発明が解決しようとする課題】従来のアレイ型ディス
ク駆動装置は以上のとおり構成されているので、通常動
作においてもデータ書き込み時には冗長データ生成のた
めにデータの先読みだしが必要となり処理時間が遅くな
る等の問題があった。また、ディスク装置代替処理で、
代替スタンバイディスクに代替が発生すると、さらにシ
ステムの性能を劣化させる等の問題があった。
【0023】この発明は上記のような問題点を解消する
ためになされたもので、データの読み出し時、書き込み
時の処理時間を改善したアレイ型記録装置を得ることを
目的としている。
【0024】
【課題を解決するための手段】の発明に係るアレイ型
記録装置は、従来の装置が読み書き回路のために同一の
回路を用いていたものに対して書き込み回路と読み出し
回路を分離して設けるようにしたものであり、以下の要
素を有するものである。 (a)データを記録する複数の記録媒体、 (b)上記複数の記録媒体にデータを書き込む書き込み
回路、 (c)上記書き込み回路とは異なる回路であって、上記
複数の記録媒体からデータを読み出す読み出し回路。
【0025】の発明に係るアレイ型記録装置は、複数
の記録媒体に対応してデータを一時記憶する先入先出バ
ッファ(FIFO)を備えたことを特徴としており、以
下の要素を有するものである。 (a)データを記録する複数の記録媒体、 (b)上記複数の記録媒体の各々に対応して先入先出バ
ッファを備え、上記先入先出バッファを介して上記記録
媒体に対してデータを読み書きする読み書き手段。
【0026】の発明に係るアレイ型記録装置は、例え
ばインターフェース部にデュアルポートメモリを備え、
このデュアルポートメモリの各ポートからデュアルポー
トメモリに記憶されたデータをアクセスする複数の指令
処理部を有していることを特徴とし、以下の要素を有す
るものである。 (a)データを記録する複数の記録媒体、 (b)要求に基づき上記記録媒体に対してデータを読み
書きする読み書き手段、 (c)上記読み書き手段に対して要求を出すため、以下
の要素をもつインターフェース手段、 (c1)外部装置からの指令を入力する指令入力部、 (c2)複数のアクセスポートを有し、上記指令入力部
から入力した指令を保持する多ポートメモリ、 (c3)上記多ポートメモリに保持された指令から上記
読み書き手段に出す要求へ変換するための処理をいくつ
かの処理に分割してそれぞれ分担するとともに、多ポー
トメモリの各アクセスポートから指令をアクセスし分担
された処理を実行する複数の指令処理部。
【0027】の発明に係るアレイ型記録装置は、デー
タをストライピングにより複数の記録媒体に分散して記
録する場合の冗長データの配置に特徴があるものであ
り、データを連続して書き込む場合に次の冗長グループ
の先頭を以前の冗長グループの冗長データを書き込んだ
記録媒体から所定の方向にスタートし、データを連続し
て読み出す場合には複数の記録媒体を順に所定の方向に
読み出すことに特徴があり、以下の要素を有するもので
ある。(a)データを記録する複数の記録媒体、 (b)上記複数の記録媒体に複数のデータブロックから
冗長グループを構成するデータ及びその冗長グループの
冗長データを分散して記録するとともに、連続する複数
の冗長グループを書き込む場合は、冗長グループを構成
する複数のデータブロックを複数の記録媒体に順に所定
の方向に書き込むとともに、前の冗長グループの冗長デ
ータを書き込んだ記録媒体と同一の記録媒体から次の冗
長グループを構成する複数のデータブロックの先頭のデ
ータブロックを書き込むことにより、各冗長グループの
冗長データを複数の記録媒体にサイクリックに配置する
書き込み手段、 (c)上記書き込み手段により書き込まれた連続する複
数の冗長グループを連続して読み出す場合に、ひとつの
冗長グループからデータを読み出す際にその冗長グルー
プの冗長データを読み出して読み出した冗長グループの
冗長データを無視するとともに、その冗長データを読み
出した記録媒体と同一の記録媒体から順に所定の方向に
複数の記録媒体のデータを読み出すことにより連続する
複数の冗長グループを構成する複数のデータブロックの
次のデータを読み出す読み出し手段。
【0028】の発明に係るアレイ型記録装置は、先入
先出バッファ(FIFO)を介して記録媒体に記録され
たデータを読み出す場合に先入先出バッファにデータを
読み出すと同時に修復データを生成することを特徴とし
ており、以下の要素を有するものである。(a)データ及びその冗長データを分散して記録する複
数の記録媒体、 (b)以下の要素を有し、上記複数の記録媒体に記録さ
れたデータを読み出す読み出し手段、 (b1)上記複数の記録媒体の各々に対応して設けられ
各記録媒体に記録されたデータをそれぞれ入力する複数
の先入先出バッファ、 (b2)上記複数の先入先出バッファを介して各記録媒
体に記録されたデータをそれぞれ読み出す読み出し制御
回路、 (b3)上記読み出し制御回路による上記各記録媒体に
記録されたデータの読み出しの際に不具合が発生したデ
ータの属している冗長グループのデータを上記複数の先
入先出バッファに対して読み出すと同時に読み出したデ
ータを入力し、入力したデータの排他的論理和を演算し
上記先入先出バッファに入力して、不具合の発生したデ
ータを修復するための修復データを生成する修復データ
生成回路。
【0029】の発明に係るアレイ型記録装置は、先入
先出バッファ(FIFO)を介して記録媒体にデータを
書き込む場合に、書き込むデータの冗長データを同時に
生成することを特徴としており、以下の要素を有するも
のである。(a)データ及びその冗長データを分散して記録する複
数の記録媒体、 (b)以下の要素を有し、上記複数の記録媒体にデータ
を書き込む書き込み手段、 (b1)上記複数の記録媒体の各々に対応して設けられ
各記録媒体にそれぞれ記録する複数の先入先出バッフ
ァ、 (b2)上記複数の先入先出バッファを介して各記録媒
体にデータをそれぞれ書き込む書き込み制御回路、 (b3)上記書き込み制御回路により上記複数の先入先
出バッファに転送されたデータを入力し、入力したデー
タの排他的論理和を演算し上記先入先出バッファに入力
して、記録媒体へ書き込むデータの冗長データを生成す
る冗長データ生成回路。
【0030】の発明に係るアレイ型記録装置は、デー
タの読み出し回路の中に読み出したデータを書き込み回
路へ転送する転送回路を有し、データを書き込む書き込
み回路においては、転送回路から転送されてきたデータ
を用いて冗長データを生成することを特徴としており、
以下の要素を有するものである。(a)データ及びその冗長データを分散して記録する複
数の記録媒体、 (b)以下の要素を有し、上記複数の記録媒体に記録さ
れたデータを読み出す読み出し手段、 (b1)上記複数の記録媒体の各々に対応して設けられ
各記録媒体に記録されたデータをそれぞれ入力する複数
の先入先出バッファ、 (b2)上記複数の先入先出バッファを介して各記録媒
体に記録されたデータとその冗長データを読み出す読み
出し制御回路、 (b3)上記読み出し制御回路による上記各記録媒体に
記録されたデータとその冗長データの読み出しの際に読
み出されるデータとその冗長データとを上記複数の先入
先出バッファに対して読み出すと同時に読み出したデー
タとその冗長データとを入力し、入力したデータとその
冗長データとの排他的論理和を演算して生成する排他的
論理和データ生成回路、 (b4)上記排他的論理和データ生成回路が生成した排
他的論理和データを転送する転送回路、 (c)以下の要素を有し、上記複数の記録媒体にデータ
を書き込む書き込み手段、 (c1)上記複数の記録媒体の各々に対応して設けられ
各記録媒体にそれぞれ記録する複数の先入先出バッフ
ァ、 (c2)上記複数の先入先出バッファを介して各記録媒
体にデータを書き込む書き込み制御回路、 (c3)上記書き込み制御回路による上記複数の先入先
出バッファから上記記録媒体へのデータの書き込みの際
に、上記転送回路から転送された排他的論理和データを
入力し、上記書き込み制御回路により上記複数の先入先
出バッファに転送された書き込むデータを入力すると同
時に、入力した排他的論理和データと 書き込むデータと
から排他的論理和を演算し記録媒体に書き込むデータの
冗長データを生成する冗長データ生成回路。
【0031】の発明に係るアレイ型記録装置は、先入
先出バッファ(FIFO)を有しており、その先入先出
バッファを用いて先入先出バッファに蓄積されたデータ
を任意の数だけ転送できる出力手段を有していることを
特徴としている。
【0032】の発明に係るアレイ型記録装置は、従来
のアレイ型記録装置が複数の記録媒体に対して一つのキ
ャッシュメモリをもっているのに対して、この発明にお
いては複数の記録媒体にそれぞれ対応してキャッシュメ
モリを設けていることを特徴としており、以下の要素を
有するものである。 (a)データを記録する複数の記録媒体、 (b)上記記録媒体に対応して設けられ、記録媒体に対
して読み書きされるデータを一時保持するキャッシュメ
モリ、 (c)上記キャッシュメモリを介して記録媒体に対して
データの読み書きを行う読み書き手段。
【0033】の発明に係るアレイ型記録装置は、任意
の複数台の記録装置の処理完了報告の組合せによって、
例えば割り込みを発生するようにし、その割り込みに従
って対応するタスクを起動することを特徴としており、
以下の要素を有するものである。(a)データを記録する複数の記録媒体、 (b)上記複数の記録媒体のうち任意の数の記録媒体に
それぞれアクセス要求を出す複数のタスク手段、 (c)上記複数のタスク手段によりアクセス要求が出さ
れた各記録媒体のアクセス終了を報告する報告手段、 (d)上記報告手段により、アクセス終了が報告された
記録媒体の組み合わせが上記任意の数の記録媒体の組み
合わせと一致する時、上記複数のタスク手段の中から対
応するタスク手段を識別してそのタスクを起動するタス
ク起動手段。
【0034】
【作用】の発明においては、データを書き込む書き込
み回路と、データを読み出す読み出し回路をそれぞれ異
なる回路で構成するようにしたので、書き込み動作と読
み出し動作が平行して実行されることにより、アレイ型
記録装置の処理性能が向上する。
【0035】の発明においては、先入先出バッファが
記録媒体の各々に対応して設けられているため、各記録
媒体に対応したデータ処理をその専用の先入先出バッフ
ァを用いて行なうことにより高速な処理が行える。
【0036】の発明においては、インターフェース部
に多ポートメモリを配置し、この多ポートメモリに対し
て複数の指令処理部が同時にアクセスするため、従来、
時系列的に行われていた処理が平行して実行されること
によりインターフェース部の処理が高速になる。
【0037】の発明においては、書き込み手段により
書き込まれるデータ、すなわちストライピングされたデ
ータが螺旋状に配置されるため、読み出し手段がそのデ
ータを読み出す場合には螺旋状に配置されたストライピ
ングデータを順に連続して読み出すことが可能になる。
すなわち、書き込み手段が次の冗長グループの書き込み
を前の冗長グループの冗長データを配置した記録媒体と
同一の記録媒体から書き込むために読み出し手段が新た
な冗長グループのデータを読み出す場合には、前の冗長
グループの冗長データがある記録媒体から読み始めるこ
とになる。従って、前の冗長グループの冗長データをあ
らかじめ読み飛ばす或いは無視することにより、次の冗
長グループのデータをその記録媒体から読み込むことに
より、複数の記録媒体を所定の方向にサイクリックに読
むことによりデータを連続して読み出すことが可能にな
る。
【0038】の発明においては、例えばある記録媒体
にエラーが起こり、この記録媒体に記録されたデータを
修復しようとした場合に正常に動作する記録媒体からデ
ータを読み出して修復データを作成する必要があるが、
この発明においては、正常な記録媒体から読み出すデー
タを入出力バッファに記録する。そして読み出したデー
タの中で最後に転送されて先入先出バッファに読み出さ
れるデータの転送クロックに同期して、読み出しデータ
を用いた修復データを作成する。すなわち、修復データ
生成回路は、読み出し制御回路が記録媒体からデータを
先入先出バッファに読み出す場合にその読み出しに同期
して修復データを生成することにより、記録媒体からデ
ータを読み出した時点で修復データがすでに生成されて
いることになり、従来のようなすべてのデータを読み出
した後に修復データをさらに生成するという時間を省略
することができ、修復データ生成の処理を高速に行うこ
とが可能になる。
【0039】の発明においては、データを記録媒体に
書き込む場合に冗長データを生成して書き込むことにな
るが、冗長データ生成回路は書き込み制御回路が記録媒
体にデータを書き込む場合に、その書き込むデータの中
で最後に先入先出バッファに転送される書き込みデータ
の転送ブロックに同期して書き込みデータの冗長データ
を生成する。このように冗長データ生成回路は書き込み
制御回路がデータを書き込むのと同時に冗長データを生
成するため、従来は書き込みデータから冗長データを生
成する時間を特別に必要としていたのに対して、この発
明においては書き込みデータを記録媒体に書き込みなが
ら、同時に冗長データを生成することができ、冗長デー
タを生成する時間を省略することが可能である。
【0040】の発明においては、データを記録媒体に
書き込む場合に、古いデータを一旦読み込んでから新た
な冗長データを生成するということを改善しようとした
ものであり、読み出し制御回路により読み出されたデー
タと冗長データとを書き込み制御回路に転送する転送回
路を有しており、この転送回路によりデータが転送され
るのと同時に新たに書き込むデータを用いて新たな冗長
データを生成するため、従来のように読み出した古いデ
ータと書き込む新しいデータから冗長データを生成する
という特別な時間を必要とせず、冗長データ生成の時間
を短縮することが可能である。
【0041】の発明においては、出力手段が先入先出
バッファからデータを任意の回数出力させることができ
るため、例えば書き込みエラー、或いは読み出しエラー
が発生した場合には先入先出バッファにあるデータを出
力手段により再び転送することが可能になるため書き込
み動作においてはリライトの実行が可能になり、また読
み出し動作においては読み出したデータの再転送が可能
になる。
【0042】の発明においては、キャッシュメモリが
複数の記録媒体の各々に対応して設けられているため、
データのアクセスが高速になると共に、キャッシュは各
々の記録媒体に設けられているため、キャッシュの使用
を対応する記録媒体に限ることができ、キャッシュを他
の記録媒体のために用いる必要がなく、キャッシュが複
数の記録媒体によって使用される場合に用いられる排他
処理が不要になる。
【0043】の発明においては、報告手段が設けら
れ、この報告手段による報告の組合せにより、その記録
媒体への処理要求を出したタスクを識別し、その識別さ
れたタスクを起動するため、処理要求により動作した記
録媒体がすべてその処理を完了した時点で、これを期待
しているタスクを自動的に起動することが可能になる。
【0044】
【実施例】
実施例1.図1は、この発明に係るアレイ型記録装置の
一実施例を示す図である。図において、100はインタ
ーフェースユニット、200は自己修復ユニット、30
0はRAIDユニット、400はRAIDユニット30
0の内部にあるリードユニット、500は同じくRAI
Dユニット300の内部にあるライトユニット、600
はリードユニット400及びライトユニット500及び
RAIDユニット300全体を制御するための制御回路
である。700はRAIDユニット300に接続された
磁気ディスク装置制御ユニット(HDD制御ユニット)
である。800はHDD制御ユニット700に接続され
た磁気ディスク装置である。
【0045】次に、図2及び図3を用いてインターフェ
ースユニット100の説明をする。図2において、10
1はSCSIインターフェース、110はこのSCSI
インターフェースをつかさどるSCSIチップ、120
はSCSIチップ110より入力されたプロトコルを解
析するSCSIMPU、130はDMA転送を行うDM
Aチップ、140は二つのアクセスポートをもつデュア
ルポートRAM、150は0.5から1メガバイトのサ
イズをもつバッファ、160はSCSIチップ110と
SCSIMPU120とデュアルポートRAM140に
接続されたコントロールバス、170はSCSIチップ
110とDMAチップ130とデュアルポートRAM1
40とバッファ150に接続されたデータバスである。
【0046】デュアルポートRAM140は二つのアク
セスポートをもち、この例においては、コントロールバ
ス160とデータバス170に対してそれぞれのポート
を接続している。SCSIインターフェース101を介
してSCSIチップ110に入力された処理要求はこの
コントロールバス160とデータバス170にそれぞれ
分割されて処理されることになる。SCSIチップ11
0は処理要求を一旦デュアルポートRAM140に格納
し、このデュアルポートRAM140に格納された処理
要求はSCSIMPU120とDMAチップ130によ
ってアクセスされることになる。SCSIMPU120
は例えばデュアルポートRAMに格納されたコマンド群
(CDB,コマンドディスクリプションブロック)をデ
ュアルポートRAMからコントロールバス160を用い
て読み出しそのコマンドの正当性のチェックを行うと共
にコマンドのデコードを行う。一方、DMAチップ13
0はSCSIMPU120がコマンドの正当性のチェッ
ク及びコマンドのデコードを行っている間に必要となる
アドレスを得るために、例えば論理アドレスから物理ア
ドレスへの変換を行う。このように、このインターフェ
ースユニット100はコントロールバスとデータバスを
別々にもっていることを特徴とし、かつデュアルポート
RAM140に一旦コマンド群を格納し、それぞれのポ
ートから各プロセッサがアクセスを同時に行って、コマ
ンドの解析や必要な変換を平行して実行するところに特
徴がある。
【0047】なお、バッファ150は転送するデータの
転送長が長い場合に使用する。或いは磁気ディスク装置
からデータを一旦読み込んでからそれを修正して再び磁
気ディスク装置に書き込むというリードモディファイラ
イトの動作を行う場合に使用する。また、SCSIチッ
プ110及びDMAチップ130は外部とのインターフ
ェースをとることにより接続されているRAIDユニッ
ト300等のデバックを行なうことができ、ホストコン
ピュータ等からの診断システムに対して応答することが
可能である。
【0048】次に、図3はインターフェースユニット1
00の他の例を示す図である。図3において、110は
SCSIチップ、120はマイコン、121はコマンド
チェック回路、122は論理物理アドレス変換器、14
0はデュアルポートRAMである。この例においては、
SCSIチップ110がSCSIインターフェース10
1から転送されたコマンド群(CDB)をデュアルポー
トRAM140に格納する。マイコン120とコマンド
チェック回路121と論理物理アドレス変換器122は
デュアルポートRAM140に同時にアクセスすること
が可能である。従ってコマンドチェック回路121では
デュアルポートRAM140のコマンド群(CDB)の
コマンドの正当性をチェックする。同時にマイコン12
0ではコマンドをデコードする。さらに論理物理アドレ
ス変換器122では入力された論理アドレスから物理ア
ドレスを生成する。コマンドチェック回路121はハー
ドウェアで構成することもできるし、或いはマイコン1
20とは異なるマイコンにより構成することも可能であ
る。同様に論理物理アドレス変換器122も専用のハー
ドウェアで構成することも可能であるし、マイコン12
0とは異なるマイコンで処理することも可能である。こ
のようにインターフェースユニット100が行なう処理
を3つの部分に分けて系列的に行うことにより、インタ
ーフェースユニット100でのオーバーヘッドを減らす
ことができ、アレイ型ディスク装置の処理速度を向上す
ることが可能になる。
【0049】次に、図4は図1に示した自己修復ユニッ
ト200の構成を示す図である。図において、210は
ログメモリ、220は日付、時刻等のカレンダーを保持
するためのカレンダーバッテリー、230は自己修復ユ
ニットを制御するためのMPU、240はオプションと
してつけることが可能なオペレーションパネルである。
オペレーションパネル240にはレディーLEDやフォ
ールトLEDなどの各種表示装置が設けられていると共
に、修復用のソフトウェアや或いは診断用のソフトウェ
アが設けられている。或いはメンテナンスを行うための
診断システムをオンラインで接続するような通信用機能
も備わっている。この自己修復ユニット200は図示し
ていないリアルタイムクロックを内蔵すると共に、日
付、時刻等のカレンダーを保持するためのカレンダーバ
ッテリー220を有しており、日付、時刻と共にRAI
Dユニット300の動作状態をログメモリ210に採取
することが可能である。MPU230はRAIDユニッ
ト300の動作を常時監視し、そのログデータをログメ
モリ210に採取する。またMPU230はオペレーシ
ョンパネル240に設けられた診断ソフトウェアに基づ
いてRAIDユニット300を診断する。また、磁気デ
ィスク装置に故障が起こり、これを代替ディスクに代替
する場合に修復作業が必要になるが、MPU230はオ
ペレーションパネル240にある修復ソフトウェアに基
づいてインターフェースユニット100が受け付ける処
理要求と競合しながら代替ディスクに対してのデータの
修復作業を実行する。通常、この代替ディスクへの修復
作業は正常に動作する他のディスク装置を先頭から最後
まで全面的に読み出して修復データを代替ディスクへ書
き込むという動作を行う。MPU230は、この全面読
み出し動作をインターフェースユニット110が通常通
り処理要求をホストコンピュータ等の上位装置から受け
付ける合間をぬって実行する。
【0050】次に、図5は図1に示したRAIDユニッ
ト300の詳細な構成を示す図である。図において、3
10はRAIDユニット300の中核となるゲートアレ
イである。400はゲートアレイ310の内部に設けら
れたリードユニット、500は同じくゲートアレイ31
0に設けられたライトユニット、600は制御回路であ
る。また410はリードユニット400の内部に設けら
れたFIFO、420は冗長データ等を生成するために
設けられたエクスクルーシブOR回路である。450は
データバス170とFIFO420を接続するスイッチ
である。また510はライトユニット500に設けられ
たFIFO、520は冗長データ等を生成するために用
いられるエクスクルーシブOR回路である。320は図
4に示した自己修復ユニット200のMPU230の制
御情報を格納するデュアルポートRAM、321は前述
したインターフェースユニット100のコントロールバ
ス160からの制御情報を格納するためのデュアルポー
トRAMである。330はデュアルポートRAM320
と330のデータにアクセスをしてインターフェースユ
ニット100と自己修復ユニット200との通信を行う
MPUである。340は磁気ディスク装置へのアクセス
終了報告を受け、割り込みを発生する割り込み回路であ
る。350はMPU330が処理をする要求を保持する
ためのスタックである。360は磁気ディスク装置に対
してそれぞれ設けられたデュアルポートRAMである。
370は磁気ディスク装置側からデュアルポートRAM
360のメッセージをポーリングするためのポーリング
レジスタである。
【0051】次に動作について説明する。RAIDユニ
ット300はその中核としてゲートアレイ310を有
し、そのゲートアレイ310内部にはリードユニット4
00とライトユニット500がそれぞれ別個に設けられ
ている。リードユニット400は複数の磁気ディスク装
置からデータを読み出すための読み出し回路であり、そ
の内部には読み出したデータをそれぞれの磁気ディスク
装置に対応して記録するFIFO410が設けられてい
る。同様にライトユニット500の内部には磁気ディス
ク装置にデータを書き込むため磁気ディスク装置それぞ
れに対応したFIFO510が設けられている。このリ
ードユニット400とライトユニット500のFIFO
はスイッチ450によりインターフェースユニット10
0からのデータバス170に対して選択的に接続され
る。
【0052】次に、これらリードユニットとライトユニ
ットの動作をそれぞれ読み出す場合と書き込む場合に分
けて説明する。インターフェースユニット100からデ
ータを読み出すような指令がコントロールバス160を
経由して伝えられると、その読み出し要求は制御回路
(コントロールロジックともいう)600に伝えられ
る。同様に同じ要求がデュアルポートRAM321の内
部に記録されることになる。コントロールロジック60
0はリードユニット400を動作させることになる。ま
た、MPU330はデュアルポートRAM321に記録
されたメッセージを入手すると、それが読み出し要求で
あることを判断し、関連するデータが記録されている磁
気ディスク装置に対応するデュアルポートRAM360
に対してメッセージを書き込む。ポーリングレジスタ3
70は磁気ディスク装置側からインターラプトの処理を
受け付けることによりポーリングを行うものであり、M
PU330によりメッセージを書き込まれたデュアルポ
ートRAMに対応する磁気ディスク装置はそのメッセー
ジに基づいてデータをバス380を経由して、リードユ
ニット400の対応するFIFO410にデータを転送
する。コントロールロジック600はあらかじめデータ
を転送してくる磁気ディスク装置のFIFOをスイッチ
切り換えによりレディー状態としておく。そして、FI
FOに関連するデータが読み込まれた後はデータバス1
70を用いてそのデータをインターフェースユニット1
00に転送する。
【0053】一方、インターフェースユニットにデータ
を書き込むための要求がホストコンピュータ等から出さ
れた場合にはコントロールバス160を経由して書き込
み要求があることをコントロールロジック600及びデ
ュアルポートRAM321に伝える。コントロールロジ
ック600はデータバス170を用いてそのデータを書
き込むべき磁気ディスク装置に対応するFIFOに対し
てデータを入手する。MPU330はデュアルポートR
AM321にある書き込み要求に基づき対応する磁気デ
ィスク装置を判定し、関連するデュアルポートRAMに
書き込み要求が来ていることのメッセージを書き込む。
磁気ディスク装置はホーリングレジスタを用いて自分の
磁気ディスク装置に書き込み要求があることを知るとバ
ス380を用いて自分の磁気ディスク装置に対応するF
IFO410からデータを取り込み記録する。
【0054】次に、コントロールロジック600につい
て説明する。コントロールロジック600はコントロー
ルバス160通じてインターフェースユニットからホス
トコンピュータ等からの要求に基づいてリードユニット
及びライトユニットを制御する。特にリードユニット及
びライトユニットのFIFOをアクセスする場合にアク
セスパターンとモードを設定する。アクセスパターンは
例えば第1から第19までの19種類のアクセスパター
ンを用意する(ここではアクセスパターンについては詳
述しない)。また、モードとしては、ブロックリード、
ブロックライト、シングルリード、シングルライト、修
復リードの5つのモードを設定し、その何れかのモード
を選択するようにする。
【0055】デュアルポートRAM321はコントロー
ルバス160を経由してインターフェースユニット10
0からのディスクアクセスの要求を順次記録する。ま
た、一方、デュアルポートRAM321はこれらの要求
が完了したということをMPU330から受け取り、要
求の完了報告を記録し、コントロールバス160を経由
してインターフェースユニット100に伝える役割りを
持っている。例えば、インターフェースユニット100
から読み出しの要求がでた場合には、FIFO410に
その読み出しデータがすでに用意され、RAIDユニッ
ト300からインターフェースユニット100に対して
データが転送できる状態になった場合に、データの用意
が完了したということをこのデュアルポートRAM32
1を用いてインターフェースユニット100に報告す
る。また、インターフェースユニット100からデータ
を書き込む要求があった場合にはライトユニット500
とコントロールロジック600の準備ができた場合に、
データバス170を介して書き込むべきデータを送る旨
の要求をデュアルポートRAM321を用いてインター
フェースユニット100に対して報告する。或いは、一
旦読み出したデータを変更して再び書き込むというリー
ドモディファイライトという処理を行う場合に、インタ
ーフェースユニット100に対してモディファイライト
するようにデュアルポートRAM321を介してインタ
ーフェースユニット100に対して報告する。
【0056】次に、図1に示したHDD制御ユニット7
00及び磁気ディスク装置800の構成を図6を用いて
説明する。図6において、700はHDD制御ユニッ
ト、710はHDD制御ユニット700の制御をつかさ
どるMPU、720はHDD制御ユニット700がSC
SIを用いてディスク装置をアクセスする場合のSCS
Iチップ、730はデータを一時的に記録するキャッシ
ュメモリである。また、800は200メガバイト2.
5インチ磁気ディスク装置、あるいは1ギガバイト3.
5インチ磁気ディスク装置等の磁気ディスク装置であ
る。
【0057】図に示すようにHDD制御ユニット700
は5つの制御ユニットからなり、それぞれの制御ユニッ
トの中にMPU710、SCSIチップ720、キャッ
シュメモリ730を有しており、それぞれの制御ユニッ
トに対して磁気ディスク装置800が接続されている構
成となっている。制御ユニットと磁気ディスク装置のイ
ンターフェースはこの例ではSCSIを用いているが、
その他のインターフェースとして例えば、IDE或いは
PCMCIA等のインターフェースを用いる場合でも良
い。また、この例では1つの制御ユニットに対して2台
の磁気ディスク装置を接続している例を示しているが、
1つの制御ユニットに対して3台或いは4台等の磁気デ
ィスク装置を接続できるようにしてもかまわない。
【0058】MPU710は磁気ディスク装置800と
前述したRAIDユニット300との間にあってストリ
ング命令によりデータを転送するものであり、MPU7
10はデータ転送に専念することが可能である。また、
キャッシュメモリ730はCAMを使用してキャッシュ
検索をできる構成となっている。さらにキャッシュはそ
れぞれの制御ユニットに対して設けられているため、キ
ャッシュの検索が並列に実行でき高速なアクセスが可能
となる。従来のようにキャッシュを一ヶ所しか持たずそ
のキャッシュを複数の制御ユニット(複数の磁気ディス
ク装置)によって共有して用いる場合には、どのデータ
がどの制御ユニット(磁気ディスク装置)によって用い
られているものであるかをキャッシュメモリ上で管理す
る必要があったが、このようにキャッシュメモリを各制
御ユニット(磁気ディスク装置)に対してそれぞれ設け
ることによりキャッシュ上の排他処理が不要になる。
【0059】次に、図5に示したリードユニット及びラ
イトユニットのリード及びライトの動作を磁気ディスク
装置のデータの配置を示すことによって説明する。図7
はスパイラリングデータ配列を示す図である。従来例で
説明した図32においては、従来のデータ配列としてス
トライピングデータ配列の場合を説明したが、この図7
はスパイラリングデータ配列の場合を示している。この
スパイラリングデータ配列は転送長の長いデータを連続
して扱うために有利なデータを配列するため、従来のス
トライピングデータ配列を改良したものである。
【0060】図32に示すように、従来のストライピン
グデータ配列の場合にはデータを連続して書き込む場合
に、図において左から右方向にデータを書き込む。すな
わちデータブロック0,1,2,3の順に書き込むと同
時にそのパリティを書き込むことになる。これを1つの
冗長グループとして書き込んだ後、次の冗長グループの
冗長データを1つずらして書き込むため、次の冗長グル
ープはデータブロックが4で始まり、次に冗長データが
来て5,6,7という順番に書き込むことになる。この
ように冗長データが図において斜め左上から斜め右下に
シフトして記録されると同時に先のデータが左側に記録
され順に右方向に後のデータが記録される。
【0061】これに対して、スパイラリングデータ配列
というのは、図7に示すように0から24のデータブロ
ックを書き込む場合、或いは読み出す場合に磁気ディス
ク装置0(HDD0)から順に磁気ディスク装置4(H
DD4)まで順番に読み書きできるような配列となって
いる。すなわちデータブロック0,1,2,3,4を読
み出す場合はHDD0,1,2,3,4を順に読み出す
と共に、データブロック5,6,7,8,9を読み出す
場合には再びHDD0,1,2,3,4を順番に読み出
せば良い。同様にデータブロック10,11,12,1
3,14を読み出す場合にはHDD0,1,2,3,4
を順番に読み出せば良いことになる。ただし、図に示す
ようにデータブロック3を読み出すときには冗長データ
PをHDD4から同時に読み出し、これをから読みする
か或いは無視する必要がある。このように冗長データP
をその冗長グループの最後に読み出すデータと同時にか
ら読みする、或いは無視することにより磁気ディスク装
置を順番に螺旋状に或いは竜巻状に読み込むだけで連続
したデータを得ることが可能になる。
【0062】スパイラリングデータ配列というのは、ラ
イトユニット500がデータをライトする場合には、冗
長データPを複数の磁気ディスク装置にサイクリックに
配置すると共に、次の冗長グループの書き込みの先頭を
前の冗長グループの冗長データを書き込んだ磁気ディス
ク装置から始めることにより、達成することが可能であ
る。また、リードユニットがこのスパイラリングデータ
配列からデータを読み出す場合には、1つの冗長グルー
プの最後のデータを読み出す場合にその冗長グループの
冗長データも同時に読み出してこれを無視すると共に、
次の冗長グループの先頭データを前の冗長グループの冗
長データがあった磁気ディスク装置から読み出す。
【0063】次に、図8を用いて図7に示したスパイラ
リングデータ配列の他の例について説明する。図7にお
いては、データブロック1つから構成される冗長グルー
プの場合を示したが、これはスパイラリングの深さを1
とした場合であり、図8においてはスパイラリングの深
さを4とした場合について説明する。スパイラリングの
深さを4とするというのは1つの磁気ディスク装置の連
続する4つの論理アドレス(データブロック)を連続し
て読み書きする場合をいうものとする。従って、図8に
示すようにデータブロック0,1,2,3がHDD0に
記録され、データブロック4,5,6,7がHDD1に
記録され、同様にデータブロック8,9,10,11が
HDD2に記録されることになる。このようにしてデー
タブロック0から14が磁気ディスク装置に記録される
と共に冗長データPは同じくスパイラリングの深さを4
とした分の冗長データが生成され、HDD4に記録され
ることになる。図8には示していないが、次の冗長グル
ープを記録する場合は冗長データPは図7に示したよう
にHDD3に記録され、さらに次の冗長グループを記録
する場合は冗長データPはHDD2に記録されることに
なり、冗長データPは図7に示すようにサイクリックに
記録されることになる。
【0064】図8に示したような状態で論理アドレス2
から5(データブロック2から5)をアクセスする場合
について説明する。論理アドレス2から5(データブロ
ック2から5)を読み出す場合にはHDD0とHDD1
のデータを読み出し、ゲートアレイ310のリードユニ
ットのFIFOにデータを転送する。リードユニット4
00のFIFO410からインターフェースユニット1
00にデータを転送する場合に、論理アドレス0と1の
データを捨て、残りの論理アドレス2と3のデータを転
送する。同様にHDD1から読み込まれた論理アドレス
4から7のデータのうち4と5のデータをインターフェ
ースユニット100に転送し、論理アドレス6と7のデ
ータはインターフェースユニット100に転送しないで
これを捨てる。
【0065】次に、論理アドレス2から5に対してデー
タを書き込む場合について説明する。同様にHDD0と
HDD1から論理アドレス0から3及び4から7のデー
タを読み出してFIFO上に展開する。その上にインタ
ーフェースユニット100から転送されてくる書き込み
データをシフトして重ねる。すなわちこの時点でFIF
Oにある論理アドレス2,3,4,5のデータがライト
データによって書き換えられることになる。その後FI
FOにあるデータをHDD0とHDD1に書き込むこと
になる。すなわち、論理アドレス0から3のデータがH
DD0に書き込まれ、論理アドレス4から7のデータが
HDD1に書き込まれる。
【0066】次に、図9を用いてリードユニット400
の詳細について説明する。図9において、410はデー
タを先入先出するFIFO、420は冗長データを生成
するエクスクルーシブOR回路、430はディスク装置
側からのバス380とFIFO410の接続及び切断を
行うスイッチ、440はエクスクルーシブOR回路42
0から出力される冗長データ等をFIFOに接続するた
めのスイッチ、450はFIFO410をインターフェ
ースユニット100のデータバス170と接続するため
のスイッチである。460はFIFO410をエクスク
ルーシブOR回路420に接続するためのスイッチであ
る。900と910はエクスクルーシブOR回路420
の演算結果を出力する転送バスである。600は制御回
路である。
【0067】制御回路600は前述したスイッチ43
0,440,450,460をアクセスパターン及びモ
ードに従って切り換えることによりリードの動作を実行
する。また、FIFO410に対してデータを書き込む
ためのクロックを監視し、また、FIFO410からデ
ータを読み出すためのクロックを供給する。また、制御
回路600は内部にシーケンサ(図示せず)を有してお
り、シーケンサは図7に示したようなスパイラリングデ
ータ配列をスパイラリングテーブルとして記憶してお
り、このスパイラリングテーブルを参照して読み書きす
るための磁気ディスク装置を決定する。またスパイラリ
ングテーブルは図8に示したように、スパイラリングの
深さについても記憶し、制御回路600はスパイラリン
グの深さを参照して動作することになる。
【0068】なお、このスパイラリングテーブルを変更
することによって図7、図8に示したようなスパイラリ
ングデータ配列以外の配列に基づくリードライトの動作
も行なうことが可能である。例えば図7、図8の場合は
RAIDレベル5に対応した例を示したものであるが、
図32に示したような従来のRAIDレベル5に対応す
る一般のストライピングデータ配列に対応するようにし
てもかまわない。或いはRAIDレベル4に対応するよ
うな配列を記憶するようにしてもかまわない。
【0069】次に、図9を用いて読み出し動作について
説明する。まず、図7に示すような配列でデータを連続
して読み出す場合について説明する。データを連続して
読み出す場合にはHDD0からの読み出したデータがF
IFO410aに入力され、HDD1から読み出された
データブロック1のデータがFIFO410bに読み込
まれる。同様にHDD2及びHDD3からのデータがF
IFO410cと410dに読み出される。FIFO4
10dにデータが読み出されている場合に、HDD4か
らの冗長データPもFIFO410eに入力される。制
御回路600はFIFO410aから410dに読み出
されたデータのうちスイッチ450を順に切り換えるこ
とにより、データブロック0から3までのデータをデー
タバス170に転送する。次に、データブロック4のデ
ータがHDD4からFIFO410eに読み出され、同
様にしてデータブロック5から7のデータがFIFO4
10aから410cに読み出される。FIFO410c
にデータが読み出されている場合には、HDD3から冗
長データPがFIFO410dに読み出されている。こ
のようにして、第2番目の冗長グループがFIFO41
0に読み出されると制御回路600は再び450のスイ
ッチを切り換えることにより、データブロック4から7
のデータをデータバス170に順に転送する。FIFO
410dに読み込まれた冗長データは無視される。
【0070】次に、エクスクルーシブOR回路420の
動作について説明する。例えば、HDD0からのデータ
の読み出しに不具合があり、正常に読み出せなかった場
合、HDD1からHDD4までのデータを読み出すこと
によりHDD0のデータを復元することが可能である。
この場合にはFIFO410bから410eに対してH
DD0で故障が生じたデータの属している冗長グループ
のデータが読み出される。FIFO410bから410
eに読み出されるデータは同時にスイッチ460を経由
してエクスクルーシブOR回路420に入力される。
【0071】図10は、エクスクルーシブOR回路42
0の詳細を示す図である。FIFO410aから410
eの出力は5つのアンド回路に入力され、その後エクス
クルーシブOR素子によって5つの信号のエクスクルー
シブORが演算されることになる。この例においては、
HDD1からHDD4のデータがFIFO410bから
410eに入力されているため、HDD0に対応するス
イッチ460はオフされ、残りのHDD1からHDD4
に対応するスイッチ460がオンになり、データをエク
スクルーシブOR回路420に入力することになる。エ
クスクルーシブOR回路420はHDD1からHDD4
までのデータのエクスクルーシブORを演算し出力す
る。この出力は転送バス910に出力され、制御回路6
00がHDD0に対応するスイッチ440をオンにする
ことにより修復されたデータがFIFO410aに生成
されることになる。HDD1からHDD4に対応するス
イッチ440はオフされたままである。このようにHD
D1からHDD4をFIFOに読み出すと同時に、エク
スクルーシブOR回路420が各ビット単位に修復デー
タを生成して、FIFO410aに書き込むため、修復
データはHDD1からHDD4の中で最後に転送される
読み出しデータの転送ブロックに同期してFIFO41
0aに生成されることになり、従来のようにHDD1か
らHDD4のデータを一旦メモリに読み込んだ後に、そ
れらのデータを用いて修復データを生成するという時間
を削減することができる。
【0072】図11は、この修復データを生成する場合
の時間関係を示す図である。図において、Tは時間の経
過を表している。データを読み込む場合にはまず読み出
し命令によりディスク装置がシークした後、データを図
に示すように時間Xを要して読み出す。図9に示したよ
うなエクスクルーシブOR回路420を有していること
によりHDD1からHDD4に読み出す時間をXとする
と、HDD0を修復する時間は図に示す時間Yだけ要す
ることになる。この時間Xの終了時点と時間Yの終了時
点の差は理想的なケースでエクスクルーシブOR回路4
20が動作するのに必要な時間、すなわち素子の動作遅
延時間だけずれる程度である。
【0073】次に、図12を用いてライトユニットの詳
細な構成について説明する。図12において、510は
先入先出するFIFO、520はエクスクルーシブOR
回路、530はインターフェースユニット100のデー
タバス170とFIFO510を接続するためのスイッ
チ、540はエクスクルーシブOR回路520とFIF
O510を接続するためのスイッチ、550はFIFO
510と磁気ディスク装置側へのバス380を接続する
ためのスイッチである。560はFIFO510とエク
スクルーシブOR回路520を接続するためのスイッチ
である。900は図9に示したリードユニットのエクス
クルーシブOR回路420からの出力を転送するための
転送バスである。
【0074】次に、図12に示したライトユニットの動
作について説明する。転送長の長いデータを連続して書
き込む場合には、図7に示したようなスパイラリングデ
ータ配列がスパイラリングテーブルに記憶されており、
制御回路600はスパイラリングテーブルを参照するこ
とにより、連続するデータを図7に示すような配列に従
って書き込むことになる。すなわち、制御回路600は
スパイラリングテーブルを参照し、データブロック0か
ら3のデータをFIFO510aから510dに転送す
る。エクスクルーシブOR回路520はFIFO510
aから510dに転送されてきたデータを入力し、その
エクスクルーシブORを演算する。エクスクルーシブO
R回路520は図10に示したような回路構成を有して
おり、エクスクルーシブOR回路520からの出力はF
IFO510eに出力されることになる。従って、FI
FO510eにはHDD0からHDD3に書き込まれる
データの冗長データが生成されることになる。この冗長
データの生成はFIFO510aから510dの中で最
後に転送される書き込みデータの転送ブロックに同期し
て生成されることになる。FIFO510eに冗長デー
タが生成されるタイミングは理想的にはFIFO510
aから510dの中で一番最後にデータが転送されたタ
イミングからエクスクルーシブOR回路520の動作遅
延分だけ遅れたタイミングである。従って、従来のよう
に書き込みデータを一旦メモリに記憶した後、そのデー
タを用いてエクスクルーシブORを演算し冗長データを
求めるという時間を削減することができる。このように
FIFO510aから510eにデータが準備されると
制御回路600はスイッチ550をオンして、FIFO
510と磁気ディスク装置側へのバス380を接続し、
FIFOにあるデータをそれぞれ対応する磁気ディスク
装置に記録する。
【0075】次に、データを連続して書き込む場合でな
く、ある1つのデータブロックにデータを書き込む場合
の動作例について説明する。例えばHDD0に対してデ
ータを書き込む場合には、HDD0に以前から書き込ま
れていた古いデータODとその冗長グループの冗長デー
タOPを読み出す必要がある。もしその冗長データがH
DD4に記録されていると仮定すると、HDD0にデー
タを書き込むためにはHDD0とHDD4から古いデー
タODと古い冗長データOPを一旦読み込み、これら古
いデータODと古い冗長データOPと新しく書き込むデ
ータから新たな冗長データを作成する必要がある。古い
データODと古い冗長データOPを読み込む場合には図
9に示したリードユニットによって行われる。読み出さ
れたデータはFIFO410aとFIFO410eに読
み出される。そしてこの読み出されたデータはエクスク
ルーシブOR回路420に転送される。エクスクルーシ
ブOR回路420では古いデータODと古い冗長データ
OPのエクスクルーシブORを演算し、これを転送バス
900に出力する。転送されたデータはスイッチ560
を経由して書き込みユニットのエクスクルーシブOR回
路520に入力される。
【0076】一方、書き込みユニット500においては
書き込むデータがデータバス170を経由してFIFO
510aに入力される、FIFO510aに入力された
データはエクスクルーシブOR回路520に転送され
る。エクスクルーシブOR回路520は転送バス900
から転送されてきたODとOPのエクスクルーシブOR
が演算された信号とFIFO510aにある新たに書き
込むデータのエクスクルーシブORを演算し出力する。
このエクスクルーシブOR回路から出力されたデータは
スイッチ540を経由してFIFO510eに書き込ま
れる。このようにしてFIFO510aには新たに書き
込むデータが準備されると同時にFIFO510eには
新たな冗長データが同時に生成されることになる。制御
回路600はスイッチ550を制御し、FIFO510
aとFIFO510eを磁気ディスク装置へのバス38
0に接続することによりデータを磁気ディスク装置へ記
録する。このようにリードユニットのエクスクルーシブ
OR回路420とライトユニットのエクスクルーシブO
R回路520があることにより、従来は一旦読み込んだ
データと新たなデータのエクスクルーシブORを演算す
ることにより冗長データを計算していたのに対して、こ
の実施例によれば、新たな冗長データが新たなライトデ
ータの転送とほぼ同時に生成することが可能になり、従
来のエクスクルーシブORを演算するという特別な時間
を削減することが可能になる。
【0077】次に、図13〜図25を用いて前述したリ
ードユニットとライトユニットの動作をそれぞれのモー
ドに分けて説明する。図13は、図9と図12に示した
リードユニット400とライトユニット500を磁気デ
ィスク装置を間に挟んだ構成として模式的に示したもの
である。図において、各記号は図9及び図12に表示し
たものと同様である。ただし、525はエクスクルーシ
ブOR回路520によって出力される冗長データを記録
するためのPGENFIFOである。
【0078】次に、図14〜図16を用いて磁気ディス
ク装置からデータを読み出す場合の動作について説明す
る。図14に示すようにHDD2,3,4からデータブ
ロック2,3,4のデータを読み出すような場合につい
て説明する。この読み出しの動作は図15に示すよう
に、まず該当磁気ディスクHDD2,3,4からデータ
をRDFIFO#2から#4に読み込む。これら3台の
ディスクへのアクセスは並列して行なうことができる。
ただし、この動作を行うにあたっては動作開始条件とし
てRDFIFO#2から#4があいており、ライトアド
レスがリセットされていることが条件となる。次に、R
DFIFOにデータブロック2から4のデータが揃う
と、図16に示すようにRDFIFO#2から#4のデ
ータを順番に読み出し、データバス170に順番に転送
する。
【0079】次に、図17から図20を用いて1ブロッ
クに対してデータを書き込む場合の動作について説明す
る。まず、図17に示すようにHDD1のデータブロッ
ク1にデータを書く場合には、図19に示すように新た
に書き込むデータをWRTFIFO#1とPGENFI
FO525に転送する。また同時にHDD1とHDD5
(HDD5には冗長データが記録されているものとす
る。)からそれぞれ該当するデータをRDFIFO#1
と#5に読み出す。
【0080】さらに図20に示すように、RDFIFO
#1と#5に読み出されたデータはエクスクルーシブO
R回路410を経由してエクスクルーシブOR回路52
0に入力される。この入力と同時に新しく書き込むデー
タを保持していたPGENFIFO252からのデータ
をエクスクルーシブOR回路520に入力してやること
によりエクスクルーシブOR回路520の出力は古いデ
ータと古いパリティと新しい書き込みデータとのエクス
クルーシブORを出力することになる。この出力はWR
TFIFO#5に保持される。そして最後の処理として
WRTFIFO#1にある新たに書き込むデータをHD
D1に書き込むと共にWRTFIFO#5にあるデータ
をHDD5に冗長データとして書き込む。
【0081】次に、図21から図25を用いて1つの冗
長グループを磁気ディスク装置に書き込む場合のグルー
プライトの動作について説明する。図21に示すように
磁気ディスク装置のデータブロック1から4に対してデ
ータを記録する場合について以下に説明する。まず、図
23に示すように新しく書き込むデータをWRTFIF
O#1に転送する。同様に図24に示すように新しく書
き込むデータをWRTFIFO#2に転送する。これと
同じ動作をWRTFIFO#3と#4についても行な
う。エクスクルーシブOR回路520はFIFOにデー
タが順に入力されるたびにFIFO512に新たな冗長
データを作成する。すなわちWRTFIFO#1にデー
タが転送された場合に同様のデータがPGENFIFO
525にも転送され、次にWRTFIFO#2に次のデ
ータが転送されると同時にこのデータとすでにPGEN
FIFO525に存在するデータのエクスクルーシブO
Rがとられて再びPGENFIFO525に記録される
ことになる。このような動作をHDD1に書き込むデー
タからHDD4に書き込むデータについて4回繰り返し
た後、図25に示すようにFIFOのデータをそれぞれ
の磁気ディスク装置に書き込むことになる。
【0082】次に、FIFOの機能について説明する。
FIFOはデータを先入先出方式で一時蓄積するために
用いられるものである。従って、通常は先入先出で出力
したデータはFIFOに残らないことになるが、この例
では、FIFOに一旦入力されたデータはそれを消去す
るという指令があるまではその中身をFIFOに保持す
るようにする。FIFOのデータを保持するためには、
例えば、通常は先入先出のためにデータをシフトしなが
ら出力することはせず、カウンタ等を設けてカウンタを
カウントアップすることによりカウンタの指しているデ
ータを順に出力することによりFIFOの機能を達成す
るようにすればよい。或いは従来と同様にFIFOのデ
ータをシフトすることによりデータをアウトプットする
とともに、FIFOから出力されたデータを再びFIF
Oに入力してやることにより、FIFOのデータがサイ
クリックに循環するような構成にしてもかまわない。こ
のようにFIFOのデータが消去されずに残っているこ
とによりFIFOのデータを再転送することが可能であ
る。
【0083】例えば、データをライトする場合に磁気デ
ィスク装置側に何らかの障害が生じ、FIFOから出力
したデータが失われた場合にFIFOは以前のデータを
保持しているため再びホストコンピュータ等からデータ
を受け取る必要はなく、FIFOに保持されているデー
タを磁気ディスク装置に転送するだけでデータの消失を
回復することが可能になる。すなわち書き込み動作のリ
トライが即座に実行することが可能になる。また、デー
タを読み出す場合について考えてみるとFIFOのデー
タをインターフェースユニット100に出力した後に、
インターフェースユニット等に何らかの障害が生じてデ
ータの再読み込み、再読み出しを依頼された場合にFI
FOに同一のものが残っているため、再びディスク装置
から読み出すという動作を省略することができ、単にF
IFOに存在しているデータを再びインターフェースユ
ニットに出力してやるだけでよい。すなわち読み出し動
作のリトライが即座に実行できるという効果がある。
【0084】次に、図26を用いて図5に示した割り込
み回路340の構成について説明する。図26におい
て、340は複数台の磁気ディスク装置の動作完了を検
知し、その複数台の磁気ディスク装置を動作させた処理
プログラムを起動させる割り込み回路である。341は
割り込みベクター番号を発送する割り込みベクトル番号
発送回路、342は割り込みベクトル番号を生成する変
換器、343は複数台の磁気ディスク装置の動作完了を
検知して割り込み信号を発生する割り込み発生回路であ
る。また345はアンド素子、346はオア素子、34
4はMPU330からプログラマブルに値をセットする
ことができるレジスタである。
【0085】次に動作について説明する。MPU330
は処理要求がホストインターフェース100から送られ
てくると、その処理要求がどのディスクを使用するかを
判定し、その判定した磁気ディスク装置に対して動作す
るような制御を行うが、同時にレジスタ344に対して
値をセットする。例えば処理要求がHDD0とHDD4
にアクセスする場合には、図のレジスタ344に示すよ
うにHDD0とHDD4に対応するビットに0をセット
し、残りのビットに1をセットする。磁気ディスク装置
800及びHDD制御ユニット700はその処理を終え
た場合に完了報告を割り込み回路340に対して行う。
この例ではHDD0がその処理を終了した場合、及びH
DD4がその処理を終了した場合に完了報告がなされ
る。HDD0とHDD4から完了報告がなされた場合、
割り込み発生回路343はオア回路346によりレジス
タ344の値と完了報告の演算を行うことによりオア回
路からの出力はすべて1になる。そしてアンド回路34
5がオンになる。変換器342はこのオンになった割り
込み発生回路を検出して割り込みベクター番号に変換
し、割り込みベクター番号発送回路341に送る。割り
込みベクター番号発送回路341は、割り込みベクター
番号をMPU330に発送し、MPU330は図27に
示すようにそれぞれのベクター番号に対応した番地にジ
ャンプすることにより要求を達した処理プログラムを起
動することが可能になる。例えばベクター番号0を発送
した場合にはMPU330は100番地から用意されて
いるタスク0用の処理プログラムを起動することが可能
になる。
【0086】この例では割り込み発生回路343が5セ
ット用意されている例を示しているため、MPU330
は5つまでの処理要求をスタック350に保持して処理
することが可能である。すなわち、5つまでの処理要求
それぞれに対応して割り込み発生回路343のレジスタ
344をそれぞれセットすることにより、HDD制御ユ
ニットが処理の完了報告を行った時点で割り込み発生回
路343が動作し、割り込みベクター番号発送回路がそ
の処理要求に対応したベクター番号をMPUに発送する
ため処理要求に対応したタスクをスタック350から自
動的に起動することが可能になる。このように割り込み
回路340は任意の複数台のHDDの完了報告の組合せ
条件で任意の割り込みベクター番号を発生する回路を有
し、そのベクター番号に従って対応するタスクを起動す
ることができる。従って複数の磁気ディスク装置に対し
てアクセスを実行し、その動作完了を待つ場合に所望の
磁気ディスク装置がすべて処理を完了した時点でこれを
待っているタスクを自動的に識別して起動することがで
きる。また、レジスタ344はMPU330によってプ
ログラマブルに変更することができ、割り込みベクター
番号によって起動するプログラムもプログラマブルに変
更することができるため、非常に柔軟性のある割り込み
回路340を構成することができる。また、動作完了を
期待する磁気ディスク装置の番号や台数や或いは処理要
求に対応した起動しようとするタスクの番号等もプログ
ラマブルに変更することができシステムが非常に柔軟に
構成できる。
【0087】実施例2.上記実施例1においては、磁気
ディスク装置が5台ある場合を示したが、その台数に制
限はなく他の台数でもかまわない。また、上記実施例に
おいては、HDD制御ユニットに対して1台または2台
の磁気ディスク装置を接続する場合を示したがHDD制
御ユニットに接続する磁気ディスク装置の台数に制限は
ない。
【0088】実施例3.上記実施例1においては、デュ
アルポートRAMを用いる場合を示したが、デュアルポ
ートRAM以外に複数のアクセスポートを持つメモリで
あればデュアルポートRAMの代わりに複数のポートを
持つ他のメモリを用いる場合でもかまわない。
【0089】実施例4.上記実施例1においては、磁気
ディスク装置においてアレイ型記録装置を構成する場合
を示したが、磁気ディスク装置以外に光ディスク装置や
CDROM装置や半導体ディスクメモリ(SSD)等に
よりアレイ型記録装置を構成するような場合でもかまわ
ない。或いは1つのシステムに用いられる記録装置は同
一種類の記録装置である場合に限らず、光ディスク装置
と磁気ディスク装置等が混在するようなシステムであっ
てもかまわない。
【0090】
【発明の効果】以上のようにこの発明によればリードラ
イト処理のオーバーヘッドが削減し、性能が向上したア
レイ型記録装置を得ることができる。特に冗長データ生
成動作の時間短縮及び簡略化が図れ、さらに修復データ
の生成の時間短縮及び簡略化が図れる。さらにデータを
連続して扱えると共にメモリ転送及びデータの加工動作
が不要になる。さらに複数ブロック書き込み時のパリテ
ィ書き込み動作回数を削減することができる。さらに読
み書き動作のリトライが即座に実行できるという効果が
ある。
【図面の簡単な説明】
【図1】この発明による一実施例のブロック図である。
【図2】この発明の一実施例によるインターフェースユ
ニットのブロック図である。
【図3】この発明の一実施例によるインターフェースユ
ニットの他の実施例を示す図である。
【図4】この発明の一実施例による自己修復ユニットの
ブロック図である。
【図5】この発明の一実施例によるRAIDユニットの
ブロック図である。
【図6】この発明の一実施例によるHDD制御ユニット
と磁気ディスク装置のブロック図である。
【図7】この発明の一実施例によるスパイラリングデー
タ配列を示す図である。
【図8】この発明の一実施例によるスパイラリングデー
タ配列の他の例を示す図である。
【図9】この発明の一実施例によるリードユニットのブ
ロック図である。
【図10】この発明の一実施例によるエクスクルーシブ
OR回路の回路図である。
【図11】この発明の一実施例によるタイミングを示す
図である。
【図12】この発明の一実施例によるライトユニットの
ブロック図である。
【図13】この発明の一実施例による動作を説明するた
めの図である。
【図14】この発明の一実施例による動作を説明するた
めの図である。
【図15】この発明の一実施例による動作を説明するた
めの図である。
【図16】この発明の一実施例による動作を説明するた
めの図である。
【図17】この発明の一実施例による動作を説明するた
めの図である。
【図18】この発明の一実施例による動作を説明するた
めの図である。
【図19】この発明の一実施例による動作を説明するた
めの図である。
【図20】この発明の一実施例による動作を説明するた
めの図である。
【図21】この発明の一実施例による動作を説明するた
めの図である。
【図22】この発明の一実施例による動作を説明するた
めの図である。
【図23】この発明の一実施例による動作を説明するた
めの図である。
【図24】この発明の一実施例による動作を説明するた
めの図である。
【図25】この発明の一実施例による動作を説明するた
めの図である。
【図26】この発明の一実施例による割り込み回路を示
すフロップ図である。
【図27】この発明の一実施例による割り込みベクター
を説明するための図である。
【図28】従来のアレイ型磁気ディスク装置を示す図で
ある。
【図29】アレイ型磁気ディスク装置の動作を説明する
ための図である。
【図30】アレイ型磁気ディスク装置の動作を説明する
ための図である。
【図31】従来のインターフェースユニットの動作を説
明するための図である。
【図32】従来のストライピングデータ配列を示す図で
ある。
【符号の説明】
100 インターフェースユニット 160 コントロールバス 170 データバス 200 自己修復ユニット 300 RAIDユニット 340 割り込み回路 400 リードユニット 410 FIFO 420 エクスクルーシブOR回路 500 ライトユニット 510 FIFO 520 エクスクルーシブOR回路 600 制御回路 700 HDD制御ユニット 800 磁気ディスク装置
───────────────────────────────────────────────────── フロントページの続き (56)参考文献 特開 平4−278641(JP,A) 特開 平4−259026(JP,A) 特開 平4−233025(JP,A) 特開 平2−81123(JP,A) (58)調査した分野(Int.Cl.7,DB名) G06F 3/06 G11B 20/10

Claims (6)

    (57)【特許請求の範囲】
  1. 【請求項1】 以下の要素を有するアレイ型記録装置 (a)データを記録する複数の記録媒体、 (b)上記複数の記録媒体に複数のデータブロックから
    冗長グループを構成するデータ及びその冗長グループの
    冗長データを分散して記録するとともに、連続する複数
    の冗長グループを書き込む場合は、冗長グループを構成
    する複数のデータブロックを複数の記録媒体に順に所定
    の方向に書き込むとともに、前の冗長グループの冗長デ
    ータを書き込んだ記録媒体と同一の記録媒体から次の冗
    長グループを構成する複数のデータブロックの先頭のデ
    ータブロックを書き込むことにより、各冗長グループの
    冗長データを複数の記録媒体にサイクリックに配置する
    書き込み手段、 (c)上記書き込み手段により書き込まれた連続する複
    数の冗長グループを連続して読み出す場合に、ひとつの
    冗長グループからデータを読み出す際にその冗長グルー
    プの冗長データを読み出して読み出した冗長グループの
    冗長データを無視するとともに、その冗長データを読み
    出した記録媒体と同一の記録媒体から順に所定の方向に
    複数の記録媒体のデータを読み出すことにより連続する
    複数の冗長グループを構成する複数のデータブロックの
    次のデータを読み出す読み出し手段。
  2. 【請求項2】 以下の要素を有するアレイ型記録装置 (a)データ及びその冗長データを分散して記録する複
    数の記録媒体、 (b)以下の要素を有し、上記複数の記録媒体に記録さ
    れたデータを読み出す読み出し手段、 (b1)上記複数の記録媒体の各々に対応して設けられ
    各記録媒体に記録されたデータをそれぞれ入力する複数
    の先入先出バッファ、 (b2)上記複数の先入先出バッファを介して各記録媒
    体に記録されたデータをそれぞれ読み出す読み出し制御
    回路、 (b3)上記読み出し制御回路による上記各記録媒体に
    記録されたデータの読み出しの際に不具合が発生したデ
    ータの属している冗長グループのデータを上記複数の先
    入先出バッファに対して読み出すと同時に読み出したデ
    ータを入力し 、入力したデータの排他的論理和を演算し
    上記先入先出バッファに入力して、不具合の発生したデ
    ータを修復するための修復データを生成する修復データ
    生成回路。
  3. 【請求項3】 以下の要素を有するアレイ型記録装置 (a)データ及びその冗長データを分散して記録する複
    数の記録媒体、 (b)以下の要素を有し、上記複数の記録媒体にデータ
    を書き込む書き込み手段、 (b1)上記複数の記録媒体の各々に対応して設けられ
    各記録媒体にそれぞれ記録する複数の先入先出バッフ
    ァ、 (b2)上記複数の先入先出バッファを介して各記録媒
    体にデータをそれぞれ書き込む書き込み制御回路、 (b3)上記書き込み制御回路により上記複数の先入先
    出バッファに転送されたデータを入力し、入力したデー
    タの排他的論理和を演算し上記先入先出バッファに入力
    して、記録媒体へ書き込むデータの冗長データを生成す
    る冗長データ生成回路。
  4. 【請求項4】 以下の要素を有するアレイ型記録装置 (a)データ及びその冗長データを分散して記録する複
    数の記録媒体、 (b)以下の要素を有し、上記複数の記録媒体に記録さ
    れたデータを読み出す読み出し手段、 (b1)上記複数の記録媒体の各々に対応して設けられ
    各記録媒体に記録されたデータをそれぞれ入力する複数
    の先入先出バッファ、 (b2)上記複数の先入先出バッファを介して各記録媒
    体に記録されたデータとその冗長データを読み出す読み
    出し制御回路、 (b3)上記読み出し制御回路による上記各記録媒体に
    記録されたデータとその冗長データの読み出しの際に読
    み出されるデータとその冗長データとを上記複数の先入
    先出バッファに対して読み出すと同時に読み出したデー
    タとその冗長データとを入力し、入力したデータとその
    冗長データとの排他的論理和を演算して生成する排他的
    論理和データ生成回路、 (b4)上記排他的論理和データ生成回路が生成した排
    他的論理和データを 転送する転送回路、 (c)以下の要素を有し、上記複数の記録媒体にデータ
    を書き込む書き込み手段、 (c1)上記複数の記録媒体の各々に対応して設けられ
    各記録媒体にそれぞれ記録する複数の先入先出バッフ
    ァ、 (c2)上記複数の先入先出バッファを介して各記録媒
    体にデータを書き込む書き込み制御回路、 (c3)上記書き込み制御回路による上記複数の先入先
    出バッファから上記記録媒体へのデータの書き込みの際
    に、上記転送回路から転送された排他的論理和データを
    入力し、上記書き込み制御回路により上記複数の先入先
    出バッファに転送された書き込むデータを入力すると同
    時に、入力した排他的論理和データと書き込むデータと
    から排他的論理和を演算し記録媒体に書き込むデータの
    冗長データを生成する冗長データ生成回路。
  5. 【請求項5】 上記アレイ型記録装置は、さらに、上記
    複数の先入先出バッファからデータを出力するととも
    に、その出力されるデータを保持し続け、データを再び
    先入先出バッファから出力できる出力手段を備えたこと
    を特徴とする請求項2から4いずれかに記載のアレイ型
    記録装置。
  6. 【請求項6】 以下の要素を有するアレイ型記録装置 (a)データを記録する複数の記録媒体、 (b)上記複数の記録媒体のうち任意の数の記録媒体に
    それぞれアクセス要求を出す複数のタスク手段、 (c)上記複数のタスク手段によりアクセス要求が出さ
    れた各記録媒体のアクセス終了を報告する報告手段、 (d)上記報告手段により、アクセス終了が報告された
    記録媒体の組み合わせが上記任意の数の記録媒体の組み
    合わせと一致する時、上記複数のタスク手段の中から対
    応するタスク手段を識別してそのタスクを起動するタス
    ク起動手段。
JP26736492A 1992-10-06 1992-10-06 アレイ型記録装置 Expired - Fee Related JP3181398B2 (ja)

Priority Applications (8)

Application Number Priority Date Filing Date Title
JP26736492A JP3181398B2 (ja) 1992-10-06 1992-10-06 アレイ型記録装置
GB9608325A GB2298308A (en) 1992-10-06 1993-10-05 A disk storage array with a spiralling distribution of redundancy data
GB9608322A GB2298306B (en) 1992-10-06 1993-10-05 Array type recording system
GB9320521A GB2271462B (en) 1992-10-06 1993-10-05 Array type recording system
GB9608324A GB2298307B (en) 1992-10-06 1993-10-05 Array type recording system
CN93114442A CN1058096C (zh) 1992-10-06 1993-10-06 阵列型记录装置
US08/634,140 US5608891A (en) 1992-10-06 1996-04-19 Recording system having a redundant array of storage devices and having read and write circuits with memory buffers
CN00101194A CN1264119A (zh) 1992-10-06 2000-01-25 阵列型记录装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP26736492A JP3181398B2 (ja) 1992-10-06 1992-10-06 アレイ型記録装置

Publications (2)

Publication Number Publication Date
JPH06119724A JPH06119724A (ja) 1994-04-28
JP3181398B2 true JP3181398B2 (ja) 2001-07-03

Family

ID=17443806

Family Applications (1)

Application Number Title Priority Date Filing Date
JP26736492A Expired - Fee Related JP3181398B2 (ja) 1992-10-06 1992-10-06 アレイ型記録装置

Country Status (4)

Country Link
US (1) US5608891A (ja)
JP (1) JP3181398B2 (ja)
CN (2) CN1058096C (ja)
GB (1) GB2271462B (ja)

Families Citing this family (40)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6728832B2 (en) 1990-02-26 2004-04-27 Hitachi, Ltd. Distribution of I/O requests across multiple disk units
US5680574A (en) * 1990-02-26 1997-10-21 Hitachi, Ltd. Data distribution utilizing a master disk unit for fetching and for writing to remaining disk units
JP2981711B2 (ja) * 1994-06-16 1999-11-22 日本アイ・ビー・エム株式会社 ディスク記憶装置
JP2968181B2 (ja) * 1994-11-29 1999-10-25 インターナショナル・ビジネス・マシーンズ・コーポレイション ディスク装置及びデータ書込読出方法
IL112091A0 (en) * 1994-12-20 1995-03-15 Scitex Corp Ltd Apparatus and method for high speed data transfer
DE69632424T2 (de) * 1995-02-17 2005-05-12 Kabushiki Kaisha Toshiba, Kawasaki Server für kontinuierliche Daten und Datentransferschema für mehrfache gleichzeitige Datenzugriffe
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 日本アイ・ビー・エム株式会社 データ記憶システム、データ転送方法及びデータ再構成方法
US5717850A (en) * 1996-03-12 1998-02-10 International Business Machines Corporation Efficient system for predicting and processing storage subsystem failure
JP2868080B2 (ja) * 1996-09-12 1999-03-10 三菱電機株式会社 通信監視制御装置及び通信監視制御方法
US5812754A (en) * 1996-09-18 1998-09-22 Silicon Graphics, Inc. Raid system with fibre channel arbitrated loop
US5944838A (en) * 1997-03-31 1999-08-31 Lsi Logic Corporation Method for fast queue restart after redundant I/O path failover
US5951693A (en) * 1997-09-29 1999-09-14 Emc Corporation Data storage system having data reconstruction
KR100241596B1 (ko) * 1997-11-24 2000-02-01 윤종용 온 보드된 스카시를 이용하여 레이드 기능을 구현하는 컴퓨터시스템
DE19811035A1 (de) * 1998-03-13 1999-09-16 Grau Software Gmbh Verfahren zum Speichern von Daten
US6249878B1 (en) * 1998-03-31 2001-06-19 Emc Corporation Data storage system
US6185639B1 (en) * 1998-06-05 2001-02-06 International Business Machines Corporation System and method to reduce a computer system's interrupt processing overhead
US7047357B1 (en) * 1998-10-01 2006-05-16 Intel Corporation Virtualized striping controller
US6397273B2 (en) * 1998-12-18 2002-05-28 Emc Corporation System having an enhanced parity mechanism in a data assembler/disassembler for use in a pipeline of a host-storage system interface to global memory
US6393606B1 (en) * 1999-06-25 2002-05-21 Agilent Technologies, Inc. Inverse assembler
US6928521B1 (en) 2000-08-01 2005-08-09 International Business Machines Corporation Method, system, and data structures for using metadata in updating data in a storage device
JP2002073425A (ja) * 2000-08-31 2002-03-12 Hitachi Ltd 媒体再生装置
US7404021B2 (en) * 2000-11-17 2008-07-22 Aristos Logic Corporation Integrated input/output controller
US20030084397A1 (en) * 2001-10-31 2003-05-01 Exanet Co. Apparatus and method for a distributed raid
US7206904B2 (en) * 2002-03-20 2007-04-17 Hewlett-Packard Development Company, L.P. Method and system for buffering multiple requests from multiple devices to a memory
US20040205269A1 (en) * 2003-04-09 2004-10-14 Netcell Corp. Method and apparatus for synchronizing data from asynchronous disk drive data transfers
CA2522915A1 (en) * 2003-04-21 2004-11-04 Netcell Corp. Disk array controller with reconfigurable data path
GB0315157D0 (en) * 2003-06-28 2003-08-06 Ibm Safe write to multiply-redundant storage
JP2005165444A (ja) 2003-11-28 2005-06-23 Hitachi Ltd ディスクアレイ装置、及びディスクアレイ装置の制御方法
MX2007000659A (es) * 2004-07-26 2007-04-17 Electric Power Res Inst Dispositivo de medicion.
US7917694B1 (en) 2004-09-23 2011-03-29 Netlogic Microsystems, Inc. Method and system for finding maximal stripes in cache memory with content addressable memory
JP2006309315A (ja) * 2005-04-26 2006-11-09 Mitsubishi Electric Corp データ記録装置ならびにデータ記録装置を備えた検査装置および制御装置
US8370715B2 (en) * 2007-04-12 2013-02-05 International Business Machines Corporation Error checking addressable blocks in storage
US7904749B2 (en) * 2008-10-24 2011-03-08 Hitachi, Ltd. Fast data recovery from HDD failure
EP2211263A3 (en) * 2009-01-23 2013-01-23 Infortrend Technology, Inc. Method for performing storage virtualization in a storage system architecture
US8732396B2 (en) * 2009-06-08 2014-05-20 Lsi Corporation Method and apparatus for protecting the integrity of cached data in a direct-attached storage (DAS) system
US8458377B2 (en) * 2010-03-05 2013-06-04 Lsi Corporation DMA engine capable of concurrent data manipulation
CN102929801B (zh) * 2012-10-25 2016-06-22 华为技术有限公司 一种用于磁盘寻址的方法和装置
US9299387B2 (en) 2014-07-25 2016-03-29 Kabushiki Kaisha Toshiba Magnetic disk apparatus, controller and data processing method
JP2019164472A (ja) * 2018-03-19 2019-09-26 株式会社東芝 半導体装置

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4761785B1 (en) * 1986-06-12 1996-03-12 Ibm Parity spreading to enhance storage access
US5257367A (en) * 1987-06-02 1993-10-26 Cab-Tek, Inc. Data storage system with asynchronous host operating system communication link
AU630635B2 (en) * 1988-11-14 1992-11-05 Emc Corporation Arrayed disk drive system and method
US5233618A (en) * 1990-03-02 1993-08-03 Micro Technology, Inc. Data correcting applicable to redundant arrays of independent disks
US5208813A (en) * 1990-10-23 1993-05-04 Array Technology Corporation On-line reconstruction of a failed redundant array system
EP0485110B1 (en) * 1990-11-09 1999-08-25 Emc Corporation Logical partitioning of a redundant array storage system
EP0516832A1 (en) * 1990-12-20 1992-12-09 Eastman Kodak Company Disk array image memory for laser printer
JP2743606B2 (ja) * 1991-04-11 1998-04-22 三菱電機株式会社 アレイ型記録装置
JP2818162B2 (ja) * 1997-11-17 1998-10-30 株式会社ソフィア 遊技機

Also Published As

Publication number Publication date
CN1091224A (zh) 1994-08-24
CN1058096C (zh) 2000-11-01
JPH06119724A (ja) 1994-04-28
US5608891A (en) 1997-03-04
GB9320521D0 (en) 1993-11-24
CN1264119A (zh) 2000-08-23
GB2271462A (en) 1994-04-13
GB2271462B (en) 1997-03-05

Similar Documents

Publication Publication Date Title
JP3181398B2 (ja) アレイ型記録装置
JP3302688B2 (ja) 並列ディスク駆動機構アレイ式データ記憶サブシステム用の論理トラック書込みスケジューリングのシステム
US5479611A (en) Disk array apparatus
US5720027A (en) Redundant disc computer having targeted data broadcast
JP3742494B2 (ja) 大容量記憶装置
US5155835A (en) Multilevel, hierarchical, dynamically mapped data storage subsystem
US5430855A (en) Disk drive array memory system using nonuniform disk drives
US6484234B1 (en) Method and apparatus for efficiently destaging data from a cache to two or more non-contiguous storage locations
JP2912802B2 (ja) ディスクアレイ装置の故障対処方法および装置
JPWO2006123416A1 (ja) ディスク故障復旧方法及びディスクアレイ装置
EP0506761A1 (en) Direct access storage device with independently stored parity
KR20090096406A (ko) 전역 핫 스패어 디스크를 이용한 연결단절된 드라이브의 재구성 및 카피백 시스템 및 방법
JP2912299B2 (ja) ディスクアレイ制御装置
JP4499193B2 (ja) 記録再生装置及び記録再生方法
JPH08171463A (ja) ディスクアレイ装置におけるデータ読み出し方法およびディスクアレイ装置
JP2857289B2 (ja) ディスクアレイ装置
JP3615250B2 (ja) ディスクアレイ装置
GB2298307A (en) A disk array with multiport memory
JP2868003B1 (ja) 磁気ディスク装置
JP3263647B2 (ja) 磁気デイスク装置及び情報転送方法
JPH0816327A (ja) ディスクアレイ装置
JPH0588988A (ja) デイスクアレイ装置及びデータの復元方法
JPH04296926A (ja) 記録媒体制御装置
JPH10222314A (ja) 記憶装置アレイシステム
JPH08137628A (ja) ディスクアレイ装置

Legal Events

Date Code Title Description
LAPS Cancellation because of no payment of annual fees