JPH06309113A - ディスク装置 - Google Patents
ディスク装置Info
- Publication number
- JPH06309113A JPH06309113A JP5100853A JP10085393A JPH06309113A JP H06309113 A JPH06309113 A JP H06309113A JP 5100853 A JP5100853 A JP 5100853A JP 10085393 A JP10085393 A JP 10085393A JP H06309113 A JPH06309113 A JP H06309113A
- Authority
- JP
- Japan
- Prior art keywords
- data
- disk
- read
- disks
- record
- 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
Links
Abstract
(57)【要約】
【目的】 データと冗長データの読み書きの同期のため
の複雑な制御を不要とし、ディスク装置の高信頼化と低
価格化と処理性能を向上させる。 【構成】 1つのスピンドルに固定された複数のディス
クに、ホストコンピュータから与えられたデータと、そ
のデータから生成した冗長データを格納して、そのデー
タと冗長データを、1つのアクチュエータに固定された
複数のヘッドで同時に読み書きする。
の複雑な制御を不要とし、ディスク装置の高信頼化と低
価格化と処理性能を向上させる。 【構成】 1つのスピンドルに固定された複数のディス
クに、ホストコンピュータから与えられたデータと、そ
のデータから生成した冗長データを格納して、そのデー
タと冗長データを、1つのアクチュエータに固定された
複数のヘッドで同時に読み書きする。
Description
【0001】
【産業上の利用分野】本発明は、磁気ディスクや光磁気
ディスクなど、円盤タイプの記憶媒体を用いるディスク
装置に係わり、特に、複数のヘッドを用いて、複数のデ
ィスクに対するリード/ライト動作を同時に行なうディ
スク装置に関するものである。
ディスクなど、円盤タイプの記憶媒体を用いるディスク
装置に係わり、特に、複数のヘッドを用いて、複数のデ
ィスクに対するリード/ライト動作を同時に行なうディ
スク装置に関するものである。
【0002】
【従来の技術】複数のヘッドを用いて、複数のディスク
に対するリード/ライト動作を同時に行なうディスク装
置において、その高性能化と高信頼化を図るための従来
技術には、例えば、特開昭59−38866号公報に記
載のものや、ディー パターソンらによる、1988
年、ACM SIGMODコンファレンスの論文の第1
09頁〜第116頁の「ア ケース フォア リダンダ
ント アレイズ オブ インエクスペンシブ ディスク
ス」(D.Patterson,et al:A Case for Redundant Arrays
of Inexpensive Disks(RAID),ACM SIGMOD conference
proceeding,Chicago,IL,Junel-3,1988,pp.109-116.)に
記載のものがある。
に対するリード/ライト動作を同時に行なうディスク装
置において、その高性能化と高信頼化を図るための従来
技術には、例えば、特開昭59−38866号公報に記
載のものや、ディー パターソンらによる、1988
年、ACM SIGMODコンファレンスの論文の第1
09頁〜第116頁の「ア ケース フォア リダンダ
ント アレイズ オブ インエクスペンシブ ディスク
ス」(D.Patterson,et al:A Case for Redundant Arrays
of Inexpensive Disks(RAID),ACM SIGMOD conference
proceeding,Chicago,IL,Junel-3,1988,pp.109-116.)に
記載のものがある。
【0003】特開昭59−38866号公報では、複数
のヘッドとバッファ、および、書き込み/読み出し回路
を有するディスク装置において、それらを並行して動作
させる技術が開示されている。また、パターソンらによ
る論文は、複数の小容量のディスク装置からなるディス
クアレイ上のデータ配置に関する技術を開示したもので
あり、ディスクアレイは、物理的には複数の小容量のデ
ィスク装置から構成されていても、情報処理装置に対し
ては1台のディスク装置として動作するデイスクシステ
ムである。この論文では、いくつかのデータ配置技術が
提案されているが、代表的な2つのデータ配置技術に次
のようなものがある。 (a)レコード単位配置 この配置技術では、情報処理装置とのリード/ライト単
位であるレコードが、そのままの形でディスク装置上に
配置されている。以下、このような配置をレコード単位
配置と呼び、パターソンらの論文では、「RAID
4」、「RAID5」として扱われている。このレコー
ド単位配置の特長は、ディスクアレイを構成するそれぞ
れのディスク装置ごとにリード/ライト処理を行えるこ
とである。従って、レコード単位配置の場合、ディスク
アレイ内で実行できるリード/ライト処理の多重度が向
上するので、デイスク装置全体の性能が向上する。
のヘッドとバッファ、および、書き込み/読み出し回路
を有するディスク装置において、それらを並行して動作
させる技術が開示されている。また、パターソンらによ
る論文は、複数の小容量のディスク装置からなるディス
クアレイ上のデータ配置に関する技術を開示したもので
あり、ディスクアレイは、物理的には複数の小容量のデ
ィスク装置から構成されていても、情報処理装置に対し
ては1台のディスク装置として動作するデイスクシステ
ムである。この論文では、いくつかのデータ配置技術が
提案されているが、代表的な2つのデータ配置技術に次
のようなものがある。 (a)レコード単位配置 この配置技術では、情報処理装置とのリード/ライト単
位であるレコードが、そのままの形でディスク装置上に
配置されている。以下、このような配置をレコード単位
配置と呼び、パターソンらの論文では、「RAID
4」、「RAID5」として扱われている。このレコー
ド単位配置の特長は、ディスクアレイを構成するそれぞ
れのディスク装置ごとにリード/ライト処理を行えるこ
とである。従って、レコード単位配置の場合、ディスク
アレイ内で実行できるリード/ライト処理の多重度が向
上するので、デイスク装置全体の性能が向上する。
【0004】一方、ディスクアレイの高信頼化は、冗長
構成を取ることにより行なわれる。例えば、レコード単
位配置においては、それぞれのディスク装置に格納され
た1レコード分のデータレコードから、1レコード分の
パリティデータ(データの誤り検出に用いる冗長データ
の一つの例)からなるパリティレコード(冗長データレ
コードの一つの例)を作成し、これを1つのレコードと
して、ディスク装置に格納する。尚、パリテイレコード
と、それを生成したデータレコードの集合をパリティグ
ループと呼ぶ。通常、同一パリティグループの各レコー
ドは、それぞれ別のディスク装置に格納される。また、
パリティグループ内に2つ以上のパリティレコードを含
む場合もある。パリティレコードを生成したデータレコ
ードのうち、いずれか1つのレコードに障害が発生した
場合、パリティレコードと他のデータレコードの内容か
ら、障害レコードの内容が復元される。従って、パリテ
ィグループが格納されているディスク装置の集合のうち
のいずれかに障害が発生しても、データを回復できる。
通常、パリティグループ内のパリティレコードの数がm
個であれば、最大m台のディスク装置に障害が発生して
も、パリティグループのデータを回復できる。
構成を取ることにより行なわれる。例えば、レコード単
位配置においては、それぞれのディスク装置に格納され
た1レコード分のデータレコードから、1レコード分の
パリティデータ(データの誤り検出に用いる冗長データ
の一つの例)からなるパリティレコード(冗長データレ
コードの一つの例)を作成し、これを1つのレコードと
して、ディスク装置に格納する。尚、パリテイレコード
と、それを生成したデータレコードの集合をパリティグ
ループと呼ぶ。通常、同一パリティグループの各レコー
ドは、それぞれ別のディスク装置に格納される。また、
パリティグループ内に2つ以上のパリティレコードを含
む場合もある。パリティレコードを生成したデータレコ
ードのうち、いずれか1つのレコードに障害が発生した
場合、パリティレコードと他のデータレコードの内容か
ら、障害レコードの内容が復元される。従って、パリテ
ィグループが格納されているディスク装置の集合のうち
のいずれかに障害が発生しても、データを回復できる。
通常、パリティグループ内のパリティレコードの数がm
個であれば、最大m台のディスク装置に障害が発生して
も、パリティグループのデータを回復できる。
【0005】このレコード単位配置の場合には、ライト
処理によってデータレコードの内容が変更されるたび
に、パリティレコードの更新も必要となるため、従来の
ディスク装置と比較して、ライト処理の性能が劣化す
る。しかも、パリティレコードの更新値を決定するため
には、ライト処理の対象となるデータレコードの更新値
以外にも、以下に示す値の集合を得るための前処理が必
要である。 (い)ライト処理が発生したデータレコードとパリテイ
レコードの更新前の値。 (ろ)ライト処理が発生したデータレコードが属するパ
リティグループ内の他のデータレコードの値 (い)に示した値を得る方が、通常はオーバヘッドが小
さいため、ライト処理が発生した場合、通常、(い)に
示した値を得る技術が用いられる。
処理によってデータレコードの内容が変更されるたび
に、パリティレコードの更新も必要となるため、従来の
ディスク装置と比較して、ライト処理の性能が劣化す
る。しかも、パリティレコードの更新値を決定するため
には、ライト処理の対象となるデータレコードの更新値
以外にも、以下に示す値の集合を得るための前処理が必
要である。 (い)ライト処理が発生したデータレコードとパリテイ
レコードの更新前の値。 (ろ)ライト処理が発生したデータレコードが属するパ
リティグループ内の他のデータレコードの値 (い)に示した値を得る方が、通常はオーバヘッドが小
さいため、ライト処理が発生した場合、通常、(い)に
示した値を得る技術が用いられる。
【0006】この時、ライトするレコードと同一のパリ
ティグループのパリティレコードのあるディスクに注目
すると、パリティレコードの更新のためには、パリティ
レコードの更新前の値のリードと、新たに作成したパリ
ティレコードのライトを行う必要があるが、リードおよ
びライトとも、ディスク上の同じ領域に対する処理であ
るため、ディスクが1回転するのを待たなければならな
い。また、ライト時のライトするディスクに注目する
と、ライト時には、ライトデータの書き込みだけではな
く、パリティレコードの更新のために、データレコード
の更新前の値のリードを行う必要があるが、リードおよ
びライトとも、ディスク上の同じ領域に対する処理であ
るため、ディスクが最低1回転するのを待たなければな
らない。
ティグループのパリティレコードのあるディスクに注目
すると、パリティレコードの更新のためには、パリティ
レコードの更新前の値のリードと、新たに作成したパリ
ティレコードのライトを行う必要があるが、リードおよ
びライトとも、ディスク上の同じ領域に対する処理であ
るため、ディスクが1回転するのを待たなければならな
い。また、ライト時のライトするディスクに注目する
と、ライト時には、ライトデータの書き込みだけではな
く、パリティレコードの更新のために、データレコード
の更新前の値のリードを行う必要があるが、リードおよ
びライトとも、ディスク上の同じ領域に対する処理であ
るため、ディスクが最低1回転するのを待たなければな
らない。
【0007】(b)バイト単位配置 この配置技術では、情報処理装置とのリード/ライト単
位であるレコードは、バイトあるいはビットなどの、よ
り細かく分割された形でディスク装置上に配置されてい
る。以下、このような配置をバイト単位配置と呼び、パ
ターソンらの論文では、「RAID3」として扱われて
いる。このバイト単位配置の特長は、1つのレコードの
リード/ライトの時に、ディスクアレイを構成するそれ
ぞれのディスク装置が、すべて同時にリード/ライト処
理を行うことである。従って、バイト単位配置の場合、
情報処理装置との間のデータ転送速度が向上するので、
デイスクシステム全体のスループットが向上する。ま
た、ディスクアレイの高信頼化については、パリティデ
ータが生成され、配置される単位が、バイトあるいはビ
ットなどであることを除いては、上述したレコード単位
配置と同様である。ただし、ライト時のパリティ更新に
ついては、上述の(ろ)に示した値を常に使用できるた
め、高速な処理ができる。
位であるレコードは、バイトあるいはビットなどの、よ
り細かく分割された形でディスク装置上に配置されてい
る。以下、このような配置をバイト単位配置と呼び、パ
ターソンらの論文では、「RAID3」として扱われて
いる。このバイト単位配置の特長は、1つのレコードの
リード/ライトの時に、ディスクアレイを構成するそれ
ぞれのディスク装置が、すべて同時にリード/ライト処
理を行うことである。従って、バイト単位配置の場合、
情報処理装置との間のデータ転送速度が向上するので、
デイスクシステム全体のスループットが向上する。ま
た、ディスクアレイの高信頼化については、パリティデ
ータが生成され、配置される単位が、バイトあるいはビ
ットなどであることを除いては、上述したレコード単位
配置と同様である。ただし、ライト時のパリティ更新に
ついては、上述の(ろ)に示した値を常に使用できるた
め、高速な処理ができる。
【0008】しかし、この時、このディスクアレイ装置
は、独立した複数のディスク装置から構成されており、
リード/ライト処理やパリティレコードの更新時には、
パリティグループ内のディスク装置の回転、および、ヘ
ッドのシークを同期して行う必要がある。もし、パリテ
ィグループ内のディスク装置の回転位置とシーク位置が
ランダムであるとすると、全てのディスク装置に対して
行われるリードやライトの操作の完了は、最も遅いディ
スク装置の操作の完了まで待たされるため、ディスクア
レイ装置全体としての応答時間が悪化する。特に、上述
の(b)で示したバイト単位配置技術においては、1つ
のレコードのリード/ライトの時に、必ずパリティグル
ープの全てのディスク装置が、リード/ライトを行う必
要があるため、この影響は顕著である。このような回転
やシークを同期させるためには、各ディスク装置が生成
するインデクス信号をディスク装置間で伝達して、比較
しあうなどの複雑な制御が必要である。
は、独立した複数のディスク装置から構成されており、
リード/ライト処理やパリティレコードの更新時には、
パリティグループ内のディスク装置の回転、および、ヘ
ッドのシークを同期して行う必要がある。もし、パリテ
ィグループ内のディスク装置の回転位置とシーク位置が
ランダムであるとすると、全てのディスク装置に対して
行われるリードやライトの操作の完了は、最も遅いディ
スク装置の操作の完了まで待たされるため、ディスクア
レイ装置全体としての応答時間が悪化する。特に、上述
の(b)で示したバイト単位配置技術においては、1つ
のレコードのリード/ライトの時に、必ずパリティグル
ープの全てのディスク装置が、リード/ライトを行う必
要があるため、この影響は顕著である。このような回転
やシークを同期させるためには、各ディスク装置が生成
するインデクス信号をディスク装置間で伝達して、比較
しあうなどの複雑な制御が必要である。
【0009】
【発明が解決しようとする課題】解決しようとする問題
点は、従来の独立した複数のディスク装置から構成され
るディスクアレイ装置では、パリティグループ内のディ
スク装置の回転やシークの複雑な同期制御を必要とする
点と、全てのディスク装置に対して行われるリードやラ
イトの操作の完了は、最も遅いディスク装置の操作の完
了まで待たされるため、ディスクアレイ装置全体として
の応答時間が悪化する点である。本発明の目的は、これ
ら従来技術の課題を解決し、データの読み書きと、それ
に対応する冗長データの読み書きを効率良く行ない、性
能および信頼性の向上が可能なディスク装置を提供する
ことである。
点は、従来の独立した複数のディスク装置から構成され
るディスクアレイ装置では、パリティグループ内のディ
スク装置の回転やシークの複雑な同期制御を必要とする
点と、全てのディスク装置に対して行われるリードやラ
イトの操作の完了は、最も遅いディスク装置の操作の完
了まで待たされるため、ディスクアレイ装置全体として
の応答時間が悪化する点である。本発明の目的は、これ
ら従来技術の課題を解決し、データの読み書きと、それ
に対応する冗長データの読み書きを効率良く行ない、性
能および信頼性の向上が可能なディスク装置を提供する
ことである。
【0010】
【課題を解決するための手段】上記目的を達成するた
め、本発明のディスク装置は、(1)情報処理装置の読
み書き対象となるデータを記憶する円盤形状のディスク
と、複数のディスクを同心軸上に固定して一括で回転さ
せるスピンドルと、複数のディスクのそれぞれに対応す
る複数のヘッドを固定して一括でシーク動作させるアク
チュエータとを具備し、複数のディスクへのアクセスを
同時に行なうディスク装置において、n枚のディスク
に、情報処理装置から転送されるデータレコードを格納
し、また、このn枚のディスク上のデータレコードから
生成した、このデータレコードの誤り検出に用いる冗長
データレコードを、n枚のディスク以外のm枚のディス
クに格納するディスク制御部を設けることを特徴とす
る。また、(2)上記(1)に記載のディスク装置にお
いて、ディスク制御部は、冗長データレコードを、n枚
のディスク上の各データレコードの格納位置と同じヘッ
ドの固定位置で、m枚のディスクに格納することを特徴
とする。また、(3)上記(1)、もしくは、(2)の
いずれかに記載のディスク装置において、複数のヘッド
を、アクチュエータに同一直線上に固定して設けること
を特徴とする。また、(4)上記(1)から(3)のい
ずれかに記載のディスク装置において、ディスク制御部
は、情報処理装置からライト要求と共に転送されてきた
データレコードをn個に分割し、このn個の分割データ
をn枚のディスクへ、また、このn個の分割データから
生成したm個の冗長データをm枚のディスクへ格納する
ことを特徴とする。また、(5)上記(4)に記載のデ
ィスク装置において、ディスク制御部は、情報処理装置
からのリード要求に応答して、n枚のディスク上のn個
の分割データと、m枚のディスク上のm個の冗長データ
を同時に読み出し、この読み出したn個の分割データを
用いてm個の新たな冗長データ生成し、そして、このm
個の新たな冗長データと、読み出したm個の冗長データ
とが、それぞれ一致する場合に、n枚のディスクから読
み出したn個の分割データを統合して、情報処理装置に
転送することを特徴とする。また、(6)上記(5)に
記載のディスク装置において、ディスク制御部は、m個
の冗長データの読み出しとn枚のディスクからの読み出
しを同時に行なった時に、m個以下の分割データの読み
出しに失敗した場合には、正常に読みだされた分割デー
タとm個の冗長データに基づき、読み出しに失敗した各
々の分割データを生成することを特徴とする。また、
(7)上記(1)から(3)のいずれかに記載のディス
ク装置において、ディスク制御部は、情報処理装置から
のライト要求に応答して、このライト先に格納されてい
る更新前データレコードと、この更新前データレコード
に対応して生成したm個の冗長データレコードとを同時
に読み出し、この読み出した更新前データレコードと冗
長データレコード、および、ライト要求と共に転送され
てきたデータレコードとを用いて、新たな冗長データレ
コードを生成し、この新たな冗長データレコードと、転
送されてきたデータレコードとを、ディスクに同時に格
納することを特徴とする。また、(8)上記(1)から
(3)のいずれかに記載のディスク装置において、ディ
スク制御部は、情報処理装置から、複数のヘッドにより
同時にアクセス可能なn個以上のデータレコードが連続
して転送される場合には、n個のデータレコードと、こ
のn個のデータレコードから生成したm個の冗長データ
レコードとを、同時にディスクに格納し、n個に満たな
い残りのk個のデータレコードと、ディスク上から読み
出したk個のデータレコードと同時にアクセス可能なn
−k個のデータレコードとから、m個の冗長データレコ
ードを生成し、このm個の冗長データレコードと、処理
装置から転送されてきたk個のデータレコードとを、同
時にディスクに格納することを特徴とする。また、
(9)上記(7)、もしくは、(8)のいずれかに記載
のディスク装置において、ディスク制御部は、情報処理
装置からのリード要求に応答して、このリード要求の対
象となるデータレコードに対応して生成した冗長データ
レコードと、この冗長データレコードの生成に用いた全
てのデータレコードとを、n枚のディスクとm枚のディ
スクから同時に読み出し、この読み出した全てのデータ
レコードを用いて生成した新たな冗長データレコード
と、読み出した冗長データレコードとが一致する場合
に、読み出したリード要求の対象となるデータレコード
を、情報処理装置に転送することを特徴とする。また、
(10)上記(1)から(9)のいずれかに記載のディ
スク装置において、ディスク制御部と複数のディスク間
で転送されるデータを一時記憶するバッファ記憶部を、
複数のディスク毎に設け、ディスク制御部は、このバッ
ファ記憶部を介して、複数のディスクからのデータの同
時読み出し、および、複数のディスクへのデータの同時
書き込みを行なうことを特徴とする。また、(11)上
記(10)に記載のディスク装置において、ディスク制
御部は、情報処理装置からのアクセス対象のデータが、
複数のバッファ記憶部に記憶されているか否かを判定し
て、ディスクキャッシュ制御を行なうことを特徴とす
る。また、(12)上記(11)に記載のディスク装置
において、バッファ記憶部に、複数のデータレコードお
よび冗長データレコードを記憶することを特徴とする。
め、本発明のディスク装置は、(1)情報処理装置の読
み書き対象となるデータを記憶する円盤形状のディスク
と、複数のディスクを同心軸上に固定して一括で回転さ
せるスピンドルと、複数のディスクのそれぞれに対応す
る複数のヘッドを固定して一括でシーク動作させるアク
チュエータとを具備し、複数のディスクへのアクセスを
同時に行なうディスク装置において、n枚のディスク
に、情報処理装置から転送されるデータレコードを格納
し、また、このn枚のディスク上のデータレコードから
生成した、このデータレコードの誤り検出に用いる冗長
データレコードを、n枚のディスク以外のm枚のディス
クに格納するディスク制御部を設けることを特徴とす
る。また、(2)上記(1)に記載のディスク装置にお
いて、ディスク制御部は、冗長データレコードを、n枚
のディスク上の各データレコードの格納位置と同じヘッ
ドの固定位置で、m枚のディスクに格納することを特徴
とする。また、(3)上記(1)、もしくは、(2)の
いずれかに記載のディスク装置において、複数のヘッド
を、アクチュエータに同一直線上に固定して設けること
を特徴とする。また、(4)上記(1)から(3)のい
ずれかに記載のディスク装置において、ディスク制御部
は、情報処理装置からライト要求と共に転送されてきた
データレコードをn個に分割し、このn個の分割データ
をn枚のディスクへ、また、このn個の分割データから
生成したm個の冗長データをm枚のディスクへ格納する
ことを特徴とする。また、(5)上記(4)に記載のデ
ィスク装置において、ディスク制御部は、情報処理装置
からのリード要求に応答して、n枚のディスク上のn個
の分割データと、m枚のディスク上のm個の冗長データ
を同時に読み出し、この読み出したn個の分割データを
用いてm個の新たな冗長データ生成し、そして、このm
個の新たな冗長データと、読み出したm個の冗長データ
とが、それぞれ一致する場合に、n枚のディスクから読
み出したn個の分割データを統合して、情報処理装置に
転送することを特徴とする。また、(6)上記(5)に
記載のディスク装置において、ディスク制御部は、m個
の冗長データの読み出しとn枚のディスクからの読み出
しを同時に行なった時に、m個以下の分割データの読み
出しに失敗した場合には、正常に読みだされた分割デー
タとm個の冗長データに基づき、読み出しに失敗した各
々の分割データを生成することを特徴とする。また、
(7)上記(1)から(3)のいずれかに記載のディス
ク装置において、ディスク制御部は、情報処理装置から
のライト要求に応答して、このライト先に格納されてい
る更新前データレコードと、この更新前データレコード
に対応して生成したm個の冗長データレコードとを同時
に読み出し、この読み出した更新前データレコードと冗
長データレコード、および、ライト要求と共に転送され
てきたデータレコードとを用いて、新たな冗長データレ
コードを生成し、この新たな冗長データレコードと、転
送されてきたデータレコードとを、ディスクに同時に格
納することを特徴とする。また、(8)上記(1)から
(3)のいずれかに記載のディスク装置において、ディ
スク制御部は、情報処理装置から、複数のヘッドにより
同時にアクセス可能なn個以上のデータレコードが連続
して転送される場合には、n個のデータレコードと、こ
のn個のデータレコードから生成したm個の冗長データ
レコードとを、同時にディスクに格納し、n個に満たな
い残りのk個のデータレコードと、ディスク上から読み
出したk個のデータレコードと同時にアクセス可能なn
−k個のデータレコードとから、m個の冗長データレコ
ードを生成し、このm個の冗長データレコードと、処理
装置から転送されてきたk個のデータレコードとを、同
時にディスクに格納することを特徴とする。また、
(9)上記(7)、もしくは、(8)のいずれかに記載
のディスク装置において、ディスク制御部は、情報処理
装置からのリード要求に応答して、このリード要求の対
象となるデータレコードに対応して生成した冗長データ
レコードと、この冗長データレコードの生成に用いた全
てのデータレコードとを、n枚のディスクとm枚のディ
スクから同時に読み出し、この読み出した全てのデータ
レコードを用いて生成した新たな冗長データレコード
と、読み出した冗長データレコードとが一致する場合
に、読み出したリード要求の対象となるデータレコード
を、情報処理装置に転送することを特徴とする。また、
(10)上記(1)から(9)のいずれかに記載のディ
スク装置において、ディスク制御部と複数のディスク間
で転送されるデータを一時記憶するバッファ記憶部を、
複数のディスク毎に設け、ディスク制御部は、このバッ
ファ記憶部を介して、複数のディスクからのデータの同
時読み出し、および、複数のディスクへのデータの同時
書き込みを行なうことを特徴とする。また、(11)上
記(10)に記載のディスク装置において、ディスク制
御部は、情報処理装置からのアクセス対象のデータが、
複数のバッファ記憶部に記憶されているか否かを判定し
て、ディスクキャッシュ制御を行なうことを特徴とす
る。また、(12)上記(11)に記載のディスク装置
において、バッファ記憶部に、複数のデータレコードお
よび冗長データレコードを記憶することを特徴とする。
【0011】
【作用】本発明においては、データを読み書きするヘッ
ドと、データから生成される冗長データを読み書きする
ヘッドとを、同じアクチュエータに固定し、一緒にシー
ク動作を行うため、シーク時間は必ず同じになる。さら
に、データを格納するディスクと、そのデータから生成
する冗長データを格納するディスクとを、同じスピンド
ルに固定して、一緒に回転させるため、待ち時間は必ず
同じになる。このことにより、特別な制御を行なうこと
なく、データの読み書きと、それに対応する冗長データ
の読み書きとの正確な同期をとることができる。また、
情報処理装置から転送されてきたデータレコードを、デ
ィスクごとに分割して、冗長データを生成した後、複数
のヘッドで、複数のディスクに同時に書き込む。このこ
とにより、例えば、このデータレコードが、情報処理装
置からリード要求された場合には、ディスクごとに分割
されているデータと冗長データを、複数のヘッドで同時
に読み込み、高速化を図ることができる。データの一部
が読み出せない場合においても、そのデータの回復に、
同時に読み出したパリティグループ内の他のデータと冗
長データを用いることにより、高速に回復することがで
きる。
ドと、データから生成される冗長データを読み書きする
ヘッドとを、同じアクチュエータに固定し、一緒にシー
ク動作を行うため、シーク時間は必ず同じになる。さら
に、データを格納するディスクと、そのデータから生成
する冗長データを格納するディスクとを、同じスピンド
ルに固定して、一緒に回転させるため、待ち時間は必ず
同じになる。このことにより、特別な制御を行なうこと
なく、データの読み書きと、それに対応する冗長データ
の読み書きとの正確な同期をとることができる。また、
情報処理装置から転送されてきたデータレコードを、デ
ィスクごとに分割して、冗長データを生成した後、複数
のヘッドで、複数のディスクに同時に書き込む。このこ
とにより、例えば、このデータレコードが、情報処理装
置からリード要求された場合には、ディスクごとに分割
されているデータと冗長データを、複数のヘッドで同時
に読み込み、高速化を図ることができる。データの一部
が読み出せない場合においても、そのデータの回復に、
同時に読み出したパリティグループ内の他のデータと冗
長データを用いることにより、高速に回復することがで
きる。
【0012】さらに、情報処理装置から更新用として転
送されてきたデータレコードを、分割せずにディスクに
格納する場合にも、新たな冗長データレコードを生成す
る時に、この生成に用いる更新前のデータレコードと、
この更新前のデータレコードに対応して生成した冗長デ
ータレコードとを、各々のディスクから同時に読み出す
ことにより、高速化できる。そして、このデータレコー
ドが、情報処理装置からリード要求された場合には、要
求されたデータレコードと、それに対応する冗長データ
レコードと、それらと同じパリティグループに属するデ
ータレコードを、各ディスクから同時に読み込み、転送
するデータレコードの正否の判定に用いる冗長データレ
コードを高速に生成することができる。また、情報処理
装置から、同時にアクセスできる数より多くの、同じパ
リティグループに属する複数のデータレコードが転送さ
れてきた場合には、情報処理装置から転送されてきたデ
ータレコードから新パリティレコードを生成することに
より、更新前データレコードのディスクからの読み込み
を不要とする。
送されてきたデータレコードを、分割せずにディスクに
格納する場合にも、新たな冗長データレコードを生成す
る時に、この生成に用いる更新前のデータレコードと、
この更新前のデータレコードに対応して生成した冗長デ
ータレコードとを、各々のディスクから同時に読み出す
ことにより、高速化できる。そして、このデータレコー
ドが、情報処理装置からリード要求された場合には、要
求されたデータレコードと、それに対応する冗長データ
レコードと、それらと同じパリティグループに属するデ
ータレコードを、各ディスクから同時に読み込み、転送
するデータレコードの正否の判定に用いる冗長データレ
コードを高速に生成することができる。また、情報処理
装置から、同時にアクセスできる数より多くの、同じパ
リティグループに属する複数のデータレコードが転送さ
れてきた場合には、情報処理装置から転送されてきたデ
ータレコードから新パリティレコードを生成することに
より、更新前データレコードのディスクからの読み込み
を不要とする。
【0013】さらに、リード/ライト処理において、デ
ータレコードおよび冗長データレコードをバッファに格
納して、キャッシュ制御を行なう。このことにより、情
報処理装置からデータレコードへのリード要求がきた時
に、バッファ上にデータレコードがあれば、ディスクか
らデータレコードを読み出すことなく、情報処理装置に
それを転送し、処理の高速化が図れる。また、データレ
コードへのライト要求がきた時にも、バッファ上にデー
タレコードとそれに対応する冗長データレコードの更新
前の値が残っていれば、ディスクから読み込むことな
く、バッファにある更新前データレコードと冗長データ
レコードを用いて、更新後のデータレコードに対応した
新冗長データレコードを作成し、そして、ディスクに同
時に書き込も、高速化が図れる。また、バッファの容量
を大きくすることにより、多数のデータレコードを保持
することができ、リードライト処理をさらに高速化する
ことができる。
ータレコードおよび冗長データレコードをバッファに格
納して、キャッシュ制御を行なう。このことにより、情
報処理装置からデータレコードへのリード要求がきた時
に、バッファ上にデータレコードがあれば、ディスクか
らデータレコードを読み出すことなく、情報処理装置に
それを転送し、処理の高速化が図れる。また、データレ
コードへのライト要求がきた時にも、バッファ上にデー
タレコードとそれに対応する冗長データレコードの更新
前の値が残っていれば、ディスクから読み込むことな
く、バッファにある更新前データレコードと冗長データ
レコードを用いて、更新後のデータレコードに対応した
新冗長データレコードを作成し、そして、ディスクに同
時に書き込も、高速化が図れる。また、バッファの容量
を大きくすることにより、多数のデータレコードを保持
することができ、リードライト処理をさらに高速化する
ことができる。
【0014】
【実施例】以下、本発明の実施例を、図面により詳細に
説明する。図1は、本発明のディスク装置の本発明に係
わる構成の第1の実施例を示すブロック図である。本第
1の実施例のディスク装置10は、4枚のディスク20
a〜20dと、それらのディスク20a〜20dを固定
する1つのスピンドル30と、ディスク20a〜20d
ごとに1つあるヘッド40a〜40dと、ヘッド40a
〜40dを固定する1つのアクチュエータ50と、本発
明に係わるデータおよび冗長データの読み書きを含み、
ディスク装置10全体の動作制御を行なうディスク制御
部60とにより構成されている。本図の25は、4枚の
ディスク20a〜20dの同一シーク位置にある4つの
トラックの総称としてのシリンダである。また、ディス
ク20a〜20d上の2つの半径に囲まれた扇形の領域
はセクタと呼ばれ、ディスク20a〜20dの読み書き
の最小の単位である。ディスク20a〜20dのセクタ
長は512バイトとする。
説明する。図1は、本発明のディスク装置の本発明に係
わる構成の第1の実施例を示すブロック図である。本第
1の実施例のディスク装置10は、4枚のディスク20
a〜20dと、それらのディスク20a〜20dを固定
する1つのスピンドル30と、ディスク20a〜20d
ごとに1つあるヘッド40a〜40dと、ヘッド40a
〜40dを固定する1つのアクチュエータ50と、本発
明に係わるデータおよび冗長データの読み書きを含み、
ディスク装置10全体の動作制御を行なうディスク制御
部60とにより構成されている。本図の25は、4枚の
ディスク20a〜20dの同一シーク位置にある4つの
トラックの総称としてのシリンダである。また、ディス
ク20a〜20d上の2つの半径に囲まれた扇形の領域
はセクタと呼ばれ、ディスク20a〜20dの読み書き
の最小の単位である。ディスク20a〜20dのセクタ
長は512バイトとする。
【0015】本発明に係わるディスク制御部60は、C
PU(Central Processing Uni
t、中央処理装置)からなるプロセッサ61と、起動時
のプログラム等を記憶するROM(Read Only
Memory、リード専用メモリ)62と、RAM
(Random Access Memory、読み書
き可能メモリ)からなり、外部記憶装置からのデータや
プログラム等を記憶するメモリ63と、ROM62やメ
モリ63などをプロセッサ61に接続するバス64と、
外部のホストコンピュータ(情報処理装置)90との接
続制御を行なうホストインタフェース65と、データ格
納用の3つのディスク20a〜20cに対応して設けら
れた3個のデータ用バッファ70a〜70cと、パリテ
ィデータ(冗長データ)格納用のディスク20dに対応
して設けられたパリティ用バッファ80と、各ディスク
20a〜20dに対応して設けられた4つのリード/ラ
イト回路55a〜55dとにより構成されている。ヘッ
ド40a〜40dと、データ用バッファ70a〜70c
やパリティ用バッファ80との間のデータとパリティの
転送は、リード/ライト回路55a〜55dを通して行
われる。これら4つのリード/ライト回路55a〜55
dは並行して動作する。
PU(Central Processing Uni
t、中央処理装置)からなるプロセッサ61と、起動時
のプログラム等を記憶するROM(Read Only
Memory、リード専用メモリ)62と、RAM
(Random Access Memory、読み書
き可能メモリ)からなり、外部記憶装置からのデータや
プログラム等を記憶するメモリ63と、ROM62やメ
モリ63などをプロセッサ61に接続するバス64と、
外部のホストコンピュータ(情報処理装置)90との接
続制御を行なうホストインタフェース65と、データ格
納用の3つのディスク20a〜20cに対応して設けら
れた3個のデータ用バッファ70a〜70cと、パリテ
ィデータ(冗長データ)格納用のディスク20dに対応
して設けられたパリティ用バッファ80と、各ディスク
20a〜20dに対応して設けられた4つのリード/ラ
イト回路55a〜55dとにより構成されている。ヘッ
ド40a〜40dと、データ用バッファ70a〜70c
やパリティ用バッファ80との間のデータとパリティの
転送は、リード/ライト回路55a〜55dを通して行
われる。これら4つのリード/ライト回路55a〜55
dは並行して動作する。
【0016】データ用バッファ70a〜70cとパリテ
ィ用バッファ80の大きさは、いずれも、ディスク20
a〜20dの1セクタ長、ここでは、512バイトであ
る。また、ROM62には、ディスク装置10の制御プ
ログラムと、ディスク装置10の構成を表すパラメタが
格納されている。メモリ63は、読み書き可能であり、
ディスク装置10の制御プログラムの作業領域として使
われる。バス64により、プロセッサ61と、ROM6
2と、メモリ63と、ホストインタフェース65と、デ
ータ用バッファ70a〜70cと、パリティ用バッファ
80、および、リード/ライト回路55が接続されてい
る。ホストコンピュータ90とディスク装置10の間の
インタフェースは、SCSI(Small Compu
ter System Interface、スカジ
ー)とし、ホストインタフェース65が、SCSIプロ
トコルに従った伝送を行う。ディスク20a〜20dに
は、片面にしかデータは記録されていないものとする。
また、データ用バッファ70a〜70cとパリティ用バ
ッファ80は、ディスク20a〜20d、および、ヘッ
ド40a〜40dと同数(ここでは4つ)存在し、必ず
対応したディスク20a〜20dのデータを格納する。
ィ用バッファ80の大きさは、いずれも、ディスク20
a〜20dの1セクタ長、ここでは、512バイトであ
る。また、ROM62には、ディスク装置10の制御プ
ログラムと、ディスク装置10の構成を表すパラメタが
格納されている。メモリ63は、読み書き可能であり、
ディスク装置10の制御プログラムの作業領域として使
われる。バス64により、プロセッサ61と、ROM6
2と、メモリ63と、ホストインタフェース65と、デ
ータ用バッファ70a〜70cと、パリティ用バッファ
80、および、リード/ライト回路55が接続されてい
る。ホストコンピュータ90とディスク装置10の間の
インタフェースは、SCSI(Small Compu
ter System Interface、スカジ
ー)とし、ホストインタフェース65が、SCSIプロ
トコルに従った伝送を行う。ディスク20a〜20dに
は、片面にしかデータは記録されていないものとする。
また、データ用バッファ70a〜70cとパリティ用バ
ッファ80は、ディスク20a〜20d、および、ヘッ
ド40a〜40dと同数(ここでは4つ)存在し、必ず
対応したディスク20a〜20dのデータを格納する。
【0017】本第1の実施例において、シリンダ25を
構成するトラック数は「4」であり、データを格納する
トラック数は「3」、パリティを格納するトラック数は
「1」である。ホストコンピュータ90とのリード/ラ
イト単位であるデータレコードは、セクタごとに分割さ
れ、各ディスク20a〜20cに格納される。図示して
いないが、分割されたデータは、ディスク20a〜20
c上の各セクタに記録される。従来技術として説明した
(b)のバイト単位配置、すなわち、「RAID3」に
近い格納形式であるが、ここでは分割の単位は、バイト
ではなくてセクタである。
構成するトラック数は「4」であり、データを格納する
トラック数は「3」、パリティを格納するトラック数は
「1」である。ホストコンピュータ90とのリード/ラ
イト単位であるデータレコードは、セクタごとに分割さ
れ、各ディスク20a〜20cに格納される。図示して
いないが、分割されたデータは、ディスク20a〜20
c上の各セクタに記録される。従来技術として説明した
(b)のバイト単位配置、すなわち、「RAID3」に
近い格納形式であるが、ここでは分割の単位は、バイト
ではなくてセクタである。
【0018】図2は、図1におけるディスク制御部がデ
ィスクへのアクセス時に用いる情報が登録されている対
応表の構成の一具体例を示す説明図である。本例の対応
表201は、図1のディスク装置10のセクタの論理ブ
ロックアドレスと、物理ブロックアドレスの対応を示
す。ここで、セクタの論理ブロックアドレス(LBA)
とは、図1のディスク装置10内でのセクタの相対番号
であり、ホストコンピュータ90とディスク装置10の
間のSCSIインタフェースにおいて、目的セクタを指
定するために使われる。また、セクタの物理ブロックア
ドレスとは、実際にセクタの存在するシリンダ番号とヘ
ッド番号、および、セクタ番号の組である。図1のディ
スク20a〜20d上の各セクタの前には、そのセクタ
の物理ブロックアドレスを示すid(アイディ)部と呼
ばれる記憶領域が付随する。
ィスクへのアクセス時に用いる情報が登録されている対
応表の構成の一具体例を示す説明図である。本例の対応
表201は、図1のディスク装置10のセクタの論理ブ
ロックアドレスと、物理ブロックアドレスの対応を示
す。ここで、セクタの論理ブロックアドレス(LBA)
とは、図1のディスク装置10内でのセクタの相対番号
であり、ホストコンピュータ90とディスク装置10の
間のSCSIインタフェースにおいて、目的セクタを指
定するために使われる。また、セクタの物理ブロックア
ドレスとは、実際にセクタの存在するシリンダ番号とヘ
ッド番号、および、セクタ番号の組である。図1のディ
スク20a〜20d上の各セクタの前には、そのセクタ
の物理ブロックアドレスを示すid(アイディ)部と呼
ばれる記憶領域が付随する。
【0019】対応表201中の「1」〜「3」という数
字は、セクタに割当てられた論理ブロックアドレスを示
す。この対応は、「ヘッド番号=論理ブロックアドレス
を3で割った余り」などとしてプログラムで求める。こ
の対応表201全体を、図1のメモリ63あるいはRO
M62に持つこともできる。図1のホストコンピュータ
90から送られてきたデータレコードは、この対応表2
01に従って、セクタに分割され、図1の同じシリンダ
内の異なるディスク20a〜20c上の同じセクタ位置
に格納される。これらのセクタをデータセクタという。
図中の「p0」は、論理ブロックアドレス「0」〜
「2」の3つのセクタの排他的論理和をとって生成され
るパリティであり、それらと同じシリンダ内の異なる図
1のディスク20d上の同じセクタ位置に格納される。
これをパリティセクタという。
字は、セクタに割当てられた論理ブロックアドレスを示
す。この対応は、「ヘッド番号=論理ブロックアドレス
を3で割った余り」などとしてプログラムで求める。こ
の対応表201全体を、図1のメモリ63あるいはRO
M62に持つこともできる。図1のホストコンピュータ
90から送られてきたデータレコードは、この対応表2
01に従って、セクタに分割され、図1の同じシリンダ
内の異なるディスク20a〜20c上の同じセクタ位置
に格納される。これらのセクタをデータセクタという。
図中の「p0」は、論理ブロックアドレス「0」〜
「2」の3つのセクタの排他的論理和をとって生成され
るパリティであり、それらと同じシリンダ内の異なる図
1のディスク20d上の同じセクタ位置に格納される。
これをパリティセクタという。
【0020】図1のプロセッサ61は、4バイトの2つ
の整数の排他的論理和を計算する機械命令を有し、上述
の複数のセクタの排他的論理和はその繰り返しで求め
る。尚、排他的論理和以外でも、データから、パリティ
に代表される冗長データを生成することもできる。ま
た、データからパリティに代表される冗長データを生成
するために、専用の回路を設けることもできる。ここ
で、パリテイセクタと、それを生成したデータセクタと
の集合をパリティグループと呼ぶ。そして、「p0」と
「0」〜「2」は、1つのパリティグループに属する。
また、「p1」と「3」〜「5」は、1つのパリティグ
ループに属するが、「p0」の属するパリティグループ
とは別である。以下、同じパリティグループに属するセ
クタを縦1列のセクタと呼ぶ。
の整数の排他的論理和を計算する機械命令を有し、上述
の複数のセクタの排他的論理和はその繰り返しで求め
る。尚、排他的論理和以外でも、データから、パリティ
に代表される冗長データを生成することもできる。ま
た、データからパリティに代表される冗長データを生成
するために、専用の回路を設けることもできる。ここ
で、パリテイセクタと、それを生成したデータセクタと
の集合をパリティグループと呼ぶ。そして、「p0」と
「0」〜「2」は、1つのパリティグループに属する。
また、「p1」と「3」〜「5」は、1つのパリティグ
ループに属するが、「p0」の属するパリティグループ
とは別である。以下、同じパリティグループに属するセ
クタを縦1列のセクタと呼ぶ。
【0021】次に、図3のフローチャートを参照して、
図1におけるホストコンピュータ90からのリード要求
に対する図1のディスク装置10の動作を説明する。図
3は、図1におけるディスク装置の本発明に係わるリー
ド処理動作の一具体例を示すフローチャートである。図
1のディスク制御部60におけるホストインタフェース
65は、図1のホストコンピュータ90からのリードコ
マンドを受ける(ステップ105)。リードコマンドに
は、目的の論理ブロックアドレスと、転送長が指定され
る。論理ブロックアドレスは「4」、転送長は「5」セ
クタとして以下の説明を続ける。コマンドで指定された
論理ブロックアドレスに対応する物理ブロックアドレス
を図2に示す対応表201に従って求める(ステップ1
06)。論理ブロックアドレス「4」のセクタのヘッド
番号は「1」、シリンダ番号は「0」、セクタ番号は
「1」である。図1のヘッド40a〜40dをシリンダ
「0」へシークする(ステップ110)。ヘッド番号
「1」のヘッドでセクタのid部を読みながら、目的の
セクタ番号「1」のセクタが現れるまで回転待ちをする
(ステップ120)。
図1におけるホストコンピュータ90からのリード要求
に対する図1のディスク装置10の動作を説明する。図
3は、図1におけるディスク装置の本発明に係わるリー
ド処理動作の一具体例を示すフローチャートである。図
1のディスク制御部60におけるホストインタフェース
65は、図1のホストコンピュータ90からのリードコ
マンドを受ける(ステップ105)。リードコマンドに
は、目的の論理ブロックアドレスと、転送長が指定され
る。論理ブロックアドレスは「4」、転送長は「5」セ
クタとして以下の説明を続ける。コマンドで指定された
論理ブロックアドレスに対応する物理ブロックアドレス
を図2に示す対応表201に従って求める(ステップ1
06)。論理ブロックアドレス「4」のセクタのヘッド
番号は「1」、シリンダ番号は「0」、セクタ番号は
「1」である。図1のヘッド40a〜40dをシリンダ
「0」へシークする(ステップ110)。ヘッド番号
「1」のヘッドでセクタのid部を読みながら、目的の
セクタ番号「1」のセクタが現れるまで回転待ちをする
(ステップ120)。
【0022】目的セクタが現れたら、図1の4個のヘッ
ド40a〜40dで、同時にそれぞれ1セクタを読み込
んで、図1のリード/ライト回路55a〜55dを経
て、図1のデータ用バッファ70a〜70cおよびパリ
ティ用バッファ80に入れる(ステップ130)。3個
のデータセクタのうち、障害のため読めないものが1つ
あれば(ステップ140)、パリティおよび同じパリテ
ィグループ内の他のデータにより、障害データを回復し
て、データ用バッファに入れる(ステップ150)。仮
に、論理ブロックアドレス「5」のセクタが障害の場
合、論理ブロックアドレス「3」、「4」のデータセク
タと、「p1」のパリティセクタの3つのデータの排他
的論理和をとれば、論理ブロックアドレス「5」のデー
タセクタを回復できる。2つ以上のデータセクタが障害
のため読めない場合、あるいはデータセクタが1つ以上
と、パリティセクタ1つが読めない場合は(ステップ1
60)、図1のホストコンピュータ90に、コマンドの
エラーを通知して(ステップ162)、リードコマンド
処理を終了する。4つのセクタが全て正常に読み込めた
時に、データの排他的論理和をとってパリティと比較
し、一致しない時には、図1のホストコンピュータ90
にエラーを通知するというチェックを行うこともでき
る。そうすることにより、データの信頼性が高まる。
ド40a〜40dで、同時にそれぞれ1セクタを読み込
んで、図1のリード/ライト回路55a〜55dを経
て、図1のデータ用バッファ70a〜70cおよびパリ
ティ用バッファ80に入れる(ステップ130)。3個
のデータセクタのうち、障害のため読めないものが1つ
あれば(ステップ140)、パリティおよび同じパリテ
ィグループ内の他のデータにより、障害データを回復し
て、データ用バッファに入れる(ステップ150)。仮
に、論理ブロックアドレス「5」のセクタが障害の場
合、論理ブロックアドレス「3」、「4」のデータセク
タと、「p1」のパリティセクタの3つのデータの排他
的論理和をとれば、論理ブロックアドレス「5」のデー
タセクタを回復できる。2つ以上のデータセクタが障害
のため読めない場合、あるいはデータセクタが1つ以上
と、パリティセクタ1つが読めない場合は(ステップ1
60)、図1のホストコンピュータ90に、コマンドの
エラーを通知して(ステップ162)、リードコマンド
処理を終了する。4つのセクタが全て正常に読み込めた
時に、データの排他的論理和をとってパリティと比較
し、一致しない時には、図1のホストコンピュータ90
にエラーを通知するというチェックを行うこともでき
る。そうすることにより、データの信頼性が高まる。
【0023】次に、図1のデータ用バッファ70a〜7
0cから、図1のホストコンピュータ90に、縦1列の
セクタのうちで、図1のホストコンピュータ90がリー
ドコマンドで要求した範囲のデータセクタを転送する
(ステップ170)。この場合、図1のデータ用バッフ
ァ70a〜70cには、論理ブロックアドレス「3」の
セクタも読み込まれているが、これは転送する必要はな
いため、論理ブロックアドレス「4」と「5」の2セク
タを転送する。コマンドで指定された転送長のデータの
転送が終了したかを調べる(ステップ180)。まだで
あれば、次の縦1列のセクタを読み、処理を続ける。
尚、後続セクタの読み込みにおいて、シークあるいは回
転待ちが必要になれば行う。
0cから、図1のホストコンピュータ90に、縦1列の
セクタのうちで、図1のホストコンピュータ90がリー
ドコマンドで要求した範囲のデータセクタを転送する
(ステップ170)。この場合、図1のデータ用バッフ
ァ70a〜70cには、論理ブロックアドレス「3」の
セクタも読み込まれているが、これは転送する必要はな
いため、論理ブロックアドレス「4」と「5」の2セク
タを転送する。コマンドで指定された転送長のデータの
転送が終了したかを調べる(ステップ180)。まだで
あれば、次の縦1列のセクタを読み、処理を続ける。
尚、後続セクタの読み込みにおいて、シークあるいは回
転待ちが必要になれば行う。
【0024】この例では、簡単のために、この後続セク
タの読み込みと、ステップ150のデータ回復、およ
び、ステップ170の図1のホストコンピュータ90へ
の転送とは時間的に重複せず、順に行われるように記述
した。しかし、DMA(ダイレクトメモリアクセス)を
使用したり、図1のプロセッサ61を複数登載して、こ
れらの処理を並列に行うことは可能である。その時に
は、図1のデータ用バッファ70a〜70cとパリティ
用バッファ80は、本例で示した1セクタではなく、も
っと大きな容量が必要である。さらに、図1のディスク
20a〜20dからデータを読み込んだが、図1のホス
トコンピュータ90への転送がまだ完了していないなど
のバッファ状態の管理と、バッファアクセスのための排
他制御が必要である。処理方式をそのように改善すれ
ば、ある縦1列のセクタを、図1のデータ用バッファ7
0a〜70cからホストコンピュータ90に転送してい
る間に、後続の次の縦1列のセクタを、ディスク20a
〜20dからデータ用バッファ70a〜70cの別の領
域に読み込むことができ、ディスク装置の応答時間ない
しスループットが向上する。以上で、図1のホストコン
ピュータ90からのリード要求に対する処理動作の説明
を終り、次に、図1のホストコンピュータ90からのラ
イト要求に対する処理動作の説明を行なう。
タの読み込みと、ステップ150のデータ回復、およ
び、ステップ170の図1のホストコンピュータ90へ
の転送とは時間的に重複せず、順に行われるように記述
した。しかし、DMA(ダイレクトメモリアクセス)を
使用したり、図1のプロセッサ61を複数登載して、こ
れらの処理を並列に行うことは可能である。その時に
は、図1のデータ用バッファ70a〜70cとパリティ
用バッファ80は、本例で示した1セクタではなく、も
っと大きな容量が必要である。さらに、図1のディスク
20a〜20dからデータを読み込んだが、図1のホス
トコンピュータ90への転送がまだ完了していないなど
のバッファ状態の管理と、バッファアクセスのための排
他制御が必要である。処理方式をそのように改善すれ
ば、ある縦1列のセクタを、図1のデータ用バッファ7
0a〜70cからホストコンピュータ90に転送してい
る間に、後続の次の縦1列のセクタを、ディスク20a
〜20dからデータ用バッファ70a〜70cの別の領
域に読み込むことができ、ディスク装置の応答時間ない
しスループットが向上する。以上で、図1のホストコン
ピュータ90からのリード要求に対する処理動作の説明
を終り、次に、図1のホストコンピュータ90からのラ
イト要求に対する処理動作の説明を行なう。
【0025】図4は、図1におけるディスク装置の本発
明に係わるライト動作の一具体例を示すフローチャート
である。図1のディスク制御部60のホストインタフェ
ース65は、図1のホストコンピュータ90からライト
コマンドを受ける(ステップ210)。ライトコマンド
には、書き込むべきデータの論理ブロックアドレスと、
転送長が指定される。論理ブロックアドレスは「4」、
転送長は「5」セクタとして以下の説明を続ける。コマ
ンドで指定された論理ブロックアドレスに対応する物理
ブロックアドレスを、図2に示す対応表201に従って
求める(ステップ220)。論理ブロックアドレス
「4」のセクタのヘッド番号は「1」、シリンダ番号は
「0」、セクタ番号は「1」である。書き込むべきデー
タがヘッド番号「0」のセクタから始まっていない場合
は(ステップ230)、そのデータセクタを含む縦1列
のセクタのうち、パリティセクタを除いたもの、この場
合、論理ブロックアドレス「3」〜「4」のデータセク
タを、リード処理で示した手続きに従って、図1のデー
タ用バッファ70a〜70cへ読み込む(ステップ23
2、234、240)。これは、パリティを生成するた
めの縦1列のデータセクタをそろえるためである。
明に係わるライト動作の一具体例を示すフローチャート
である。図1のディスク制御部60のホストインタフェ
ース65は、図1のホストコンピュータ90からライト
コマンドを受ける(ステップ210)。ライトコマンド
には、書き込むべきデータの論理ブロックアドレスと、
転送長が指定される。論理ブロックアドレスは「4」、
転送長は「5」セクタとして以下の説明を続ける。コマ
ンドで指定された論理ブロックアドレスに対応する物理
ブロックアドレスを、図2に示す対応表201に従って
求める(ステップ220)。論理ブロックアドレス
「4」のセクタのヘッド番号は「1」、シリンダ番号は
「0」、セクタ番号は「1」である。書き込むべきデー
タがヘッド番号「0」のセクタから始まっていない場合
は(ステップ230)、そのデータセクタを含む縦1列
のセクタのうち、パリティセクタを除いたもの、この場
合、論理ブロックアドレス「3」〜「4」のデータセク
タを、リード処理で示した手続きに従って、図1のデー
タ用バッファ70a〜70cへ読み込む(ステップ23
2、234、240)。これは、パリティを生成するた
めの縦1列のデータセクタをそろえるためである。
【0026】書き込むべきデータレコードの先頭から、
縦1列のセクタ分、ここでの場合、論理ブロックアドレ
ス「4」と「5」の2セクタを、図1のホストコンピュ
ータ90からデータ用バッファ70a〜70cへ受ける
(ステップ250)。この時、データレコードの開始論
理ブロックアドレスに対応したヘッドのデータ用バッフ
ァから順に格納する。パリティを生成し、図1のパリテ
ィ用バッファ80に入れる(ステップ260)。ステッ
プ220で求めた物理ブロックアドレス、シリンダ
「0」へシークする(ステップ270)。目的のセクタ
番号「1」を持つセクタの回転待ちをする(ステップ2
80)。図1の4個のヘッド40a〜40dで同時に、
図1のデータ用バッファ70a〜70cとパリティ用バ
ッファ80から、図1のリード/ライト回路55a〜5
5dを介して、図1のディスク20a〜20dに、それ
ぞれ1セクタの書き込みを行う(ステップ290)。コ
マンドで指定された転送長のデータの転送が終了したか
を調べる(ステップ295)。まだならば、後続の縦1
列のセクタを、図1のホストコンピュータ90から転送
して、処理を続ける。尚、後続セクタの書き込みにおい
てシークあるいは回転待ちが必要になれば行う。
縦1列のセクタ分、ここでの場合、論理ブロックアドレ
ス「4」と「5」の2セクタを、図1のホストコンピュ
ータ90からデータ用バッファ70a〜70cへ受ける
(ステップ250)。この時、データレコードの開始論
理ブロックアドレスに対応したヘッドのデータ用バッフ
ァから順に格納する。パリティを生成し、図1のパリテ
ィ用バッファ80に入れる(ステップ260)。ステッ
プ220で求めた物理ブロックアドレス、シリンダ
「0」へシークする(ステップ270)。目的のセクタ
番号「1」を持つセクタの回転待ちをする(ステップ2
80)。図1の4個のヘッド40a〜40dで同時に、
図1のデータ用バッファ70a〜70cとパリティ用バ
ッファ80から、図1のリード/ライト回路55a〜5
5dを介して、図1のディスク20a〜20dに、それ
ぞれ1セクタの書き込みを行う(ステップ290)。コ
マンドで指定された転送長のデータの転送が終了したか
を調べる(ステップ295)。まだならば、後続の縦1
列のセクタを、図1のホストコンピュータ90から転送
して、処理を続ける。尚、後続セクタの書き込みにおい
てシークあるいは回転待ちが必要になれば行う。
【0027】上述の例では簡単のため、この後続セクタ
の図1のホストコンピュータ90からの転送と、ステッ
プ260のパリティ生成、および、ステップ290にお
ける図1のディスク20a〜20dへの書き込みとは時
間的に重複せず、順に行われるように記述した。これを
並列に処理することが可能であることは、リード処理で
の説明と同じである。上述の例では、同じパリティグル
ープに属するセクタは、図1のディスク20a〜20d
上の同じ回転位置に格納され、即ち、同じセクタ番号を
有するとしたが、図1のディスク20a〜20d間で、
これらセクタの回転位置をずらして格納することも可能
である。以上で、ライト処理動作の説明を終る。
の図1のホストコンピュータ90からの転送と、ステッ
プ260のパリティ生成、および、ステップ290にお
ける図1のディスク20a〜20dへの書き込みとは時
間的に重複せず、順に行われるように記述した。これを
並列に処理することが可能であることは、リード処理で
の説明と同じである。上述の例では、同じパリティグル
ープに属するセクタは、図1のディスク20a〜20d
上の同じ回転位置に格納され、即ち、同じセクタ番号を
有するとしたが、図1のディスク20a〜20d間で、
これらセクタの回転位置をずらして格納することも可能
である。以上で、ライト処理動作の説明を終る。
【0028】以上に述べたように、第1の実施例では、
図1のホストコンピュータ90から転送されたデータレ
コードは、分割されて図1のディスク20a〜20cに
格納される。さらに、パリティが生成されて、図1のデ
ィスク20dに格納される。これらのデータとパリティ
は、同一シリンダに格納され、同時に読み書きが可能で
ある。このようにして、図1におけるディスク装置10
は、パリティの存在により高信頼性を持ちながらも、デ
ータレコードの分割と同時アクセスにより、高いスルー
プットを持つ。
図1のホストコンピュータ90から転送されたデータレ
コードは、分割されて図1のディスク20a〜20cに
格納される。さらに、パリティが生成されて、図1のデ
ィスク20dに格納される。これらのデータとパリティ
は、同一シリンダに格納され、同時に読み書きが可能で
ある。このようにして、図1におけるディスク装置10
は、パリティの存在により高信頼性を持ちながらも、デ
ータレコードの分割と同時アクセスにより、高いスルー
プットを持つ。
【0029】尚、上述の第1の実施例では、データレコ
ードは、セクタに分割されて各ディスクに格納された
が、これを従来技術で説明した(b)のバイト単位配置
にならって、1バイトごとに分割して各ディスクに格納
することもできる。つまり、データレコードの最初の1
バイトは、ヘッド番号「0」のディスクに、次の1バイ
トはヘッド番号1のディスクに、次の1バイトはヘッド
番号「2」のディスクに格納し、これら3バイトの排他
的論理和をとって生成した1バイトのパリティを、ヘッ
ド番号「3」のディスクに格納する。このように、デー
タレコードを1バイトごとに分割した場合には、ステッ
プ230から240の、パリティを生成するための縦1
列のデータをそろえるためのディスクからのデータ読み
込みは必要なくなる。ただし、図1のホストコンピュー
タ90から転送されるデータレコード長は、データを格
納するディスクの数の整数倍でなくてはいけない。以上
で、第1の実施例の説明を終る。
ードは、セクタに分割されて各ディスクに格納された
が、これを従来技術で説明した(b)のバイト単位配置
にならって、1バイトごとに分割して各ディスクに格納
することもできる。つまり、データレコードの最初の1
バイトは、ヘッド番号「0」のディスクに、次の1バイ
トはヘッド番号1のディスクに、次の1バイトはヘッド
番号「2」のディスクに格納し、これら3バイトの排他
的論理和をとって生成した1バイトのパリティを、ヘッ
ド番号「3」のディスクに格納する。このように、デー
タレコードを1バイトごとに分割した場合には、ステッ
プ230から240の、パリティを生成するための縦1
列のデータをそろえるためのディスクからのデータ読み
込みは必要なくなる。ただし、図1のホストコンピュー
タ90から転送されるデータレコード長は、データを格
納するディスクの数の整数倍でなくてはいけない。以上
で、第1の実施例の説明を終る。
【0030】次に、本発明の第2の実施例を図5〜図9
を用いて説明する。図5は、本発明のディスク装置の本
発明に係わる構成の第2の実施例を示すブロック図であ
る。本第2の実施例のディスク装置310の構成要素の
多くは、図1における第1の実施例のディスク装置10
と同じであるため、異なる点についてのみ、以下に説明
する。ディスク装置310は、図1のディスク装置10
と以下の点が異なる。 (i)ディスク装置310のデータ用バッファ370a
〜370cとパリティ用バッファ380の容量は、1セ
クタではなく10トラックである。 (ii)ディスク装置310では、ヘッド40a〜40
d、および、リード/ライト回路55a〜55dは、一
度には2つしか動作しない。 (iii)ディスク装置310のメモリ363には、バッ
ファ管理テーブル330a〜330dが格納されてい
る。 ディスク装置310は、データの配置の仕方が、図1の
ディスク装置10と大きく異なる。ディスク装置310
において、ホストコンピュータ90とのリード/ライト
単位であるデータレコードは、分割されることなくその
ままの大きさで、ディスク20a〜20dのいずれかに
格納される。従来の技術における(a)のレコード単位
配置、すなわち、「RAID4」に近い格納形式であ
る。
を用いて説明する。図5は、本発明のディスク装置の本
発明に係わる構成の第2の実施例を示すブロック図であ
る。本第2の実施例のディスク装置310の構成要素の
多くは、図1における第1の実施例のディスク装置10
と同じであるため、異なる点についてのみ、以下に説明
する。ディスク装置310は、図1のディスク装置10
と以下の点が異なる。 (i)ディスク装置310のデータ用バッファ370a
〜370cとパリティ用バッファ380の容量は、1セ
クタではなく10トラックである。 (ii)ディスク装置310では、ヘッド40a〜40
d、および、リード/ライト回路55a〜55dは、一
度には2つしか動作しない。 (iii)ディスク装置310のメモリ363には、バッ
ファ管理テーブル330a〜330dが格納されてい
る。 ディスク装置310は、データの配置の仕方が、図1の
ディスク装置10と大きく異なる。ディスク装置310
において、ホストコンピュータ90とのリード/ライト
単位であるデータレコードは、分割されることなくその
ままの大きさで、ディスク20a〜20dのいずれかに
格納される。従来の技術における(a)のレコード単位
配置、すなわち、「RAID4」に近い格納形式であ
る。
【0031】データ用バッファ370a〜370cとパ
リティ用バッファ380は、いずれも10トラックの容
量を持ち、最も最近にアクセスされたトラックのデータ
を格納する。バッファ管理テーブル330a〜330d
は、メモリ363内に4つのディスク20a〜20dに
対応して4つあり、それぞれのディスク20a〜20d
に対応したデータ用バッファ370a〜370cとパリ
ティ用バッファ380中に現在あるトラックの番号を有
する。さらに、データ用バッファ370a〜370cと
パリティ用バッファ380に、トラックが部分的にしか
読み込まれていない時には、有効なデータのバッファ内
の開始セクタ番号と終了セクタ番号を有する。
リティ用バッファ380は、いずれも10トラックの容
量を持ち、最も最近にアクセスされたトラックのデータ
を格納する。バッファ管理テーブル330a〜330d
は、メモリ363内に4つのディスク20a〜20dに
対応して4つあり、それぞれのディスク20a〜20d
に対応したデータ用バッファ370a〜370cとパリ
ティ用バッファ380中に現在あるトラックの番号を有
する。さらに、データ用バッファ370a〜370cと
パリティ用バッファ380に、トラックが部分的にしか
読み込まれていない時には、有効なデータのバッファ内
の開始セクタ番号と終了セクタ番号を有する。
【0032】ホストコンピュータ90からのリード/ラ
イト要求を実行するために必要なデータレコード、また
は、パリティレコードを含むトラックがバッファに存在
し、さらに、必要なデータレコードまたはパリティレコ
ードに対応する部分に有効なデータがある場合をキャッ
シュヒット、ない場合をキャッシュミスという。ホスト
コンピュータ90のライト要求は、新データレコード
が、ディスク20a〜20dと、データ用バッファ37
0a〜370cおよびパリティ用バッファ380の両方
に書き込まれるまで完了しない。このため、データ用バ
ッファ370a〜370cおよびパリティ用バッファ3
80上のデータと、ディスク20a〜20d上のデータ
とは、常に同一である。これを、ライトスルー方式のキ
ャッシュという。バッファ管理テーブル330a〜33
0dは、各トラックが最後にアクセスされた時刻を有す
る。データ用バッファ370a〜370cおよびパリテ
ィ用バッファ380上に新しいデータレコードやパリテ
ィレコードを格納する時には、もっとも古いトラックの
データを上書きして、そのバッファを使う。これを、L
RU(最長不使用法)のバッファ置換アルゴリズムとい
う。
イト要求を実行するために必要なデータレコード、また
は、パリティレコードを含むトラックがバッファに存在
し、さらに、必要なデータレコードまたはパリティレコ
ードに対応する部分に有効なデータがある場合をキャッ
シュヒット、ない場合をキャッシュミスという。ホスト
コンピュータ90のライト要求は、新データレコード
が、ディスク20a〜20dと、データ用バッファ37
0a〜370cおよびパリティ用バッファ380の両方
に書き込まれるまで完了しない。このため、データ用バ
ッファ370a〜370cおよびパリティ用バッファ3
80上のデータと、ディスク20a〜20d上のデータ
とは、常に同一である。これを、ライトスルー方式のキ
ャッシュという。バッファ管理テーブル330a〜33
0dは、各トラックが最後にアクセスされた時刻を有す
る。データ用バッファ370a〜370cおよびパリテ
ィ用バッファ380上に新しいデータレコードやパリテ
ィレコードを格納する時には、もっとも古いトラックの
データを上書きして、そのバッファを使う。これを、L
RU(最長不使用法)のバッファ置換アルゴリズムとい
う。
【0033】図6は、図5におけるディスク制御部がデ
ィスクへのアクセス時に用いる情報が登録されている対
応表の構成の一具体例を示す説明図である。本例の対応
表601は、図5のディスク装置310における論理ブ
ロックアドレスと、物理ブロックアドレスとの対応を示
す。ここで、1トラック内のセクタ数は「100」とし
た。図2の対応表201と比較してわかるように、図5
のディスク装置310においては、論理ブロックアドレ
スは、同一シリンダ、および、同一ディスクの中では、
セクタ番号の増加に従って、単調に1つずつ増加する。
これは、図5のホストコンピュータ90から渡されたデ
ータレコードが、図5のディスク20a〜20d間で分
割されずに格納されることを示す。図5における第2の
実施例のディスク装置310のリード処理とライト処理
について、以下に説明する。
ィスクへのアクセス時に用いる情報が登録されている対
応表の構成の一具体例を示す説明図である。本例の対応
表601は、図5のディスク装置310における論理ブ
ロックアドレスと、物理ブロックアドレスとの対応を示
す。ここで、1トラック内のセクタ数は「100」とし
た。図2の対応表201と比較してわかるように、図5
のディスク装置310においては、論理ブロックアドレ
スは、同一シリンダ、および、同一ディスクの中では、
セクタ番号の増加に従って、単調に1つずつ増加する。
これは、図5のホストコンピュータ90から渡されたデ
ータレコードが、図5のディスク20a〜20d間で分
割されずに格納されることを示す。図5における第2の
実施例のディスク装置310のリード処理とライト処理
について、以下に説明する。
【0034】図7は、図5におけるディスク装置の本発
明に係わるリード処理動作の一具体例を示すフローチャ
ートである。本例は、図5のホストコンピュータ90か
らのリード要求に対する図5のディスク装置310の動
作を示すものである。図5におけるディスク制御部36
0のホストインタフェース65は、図5のホストコンピ
ュータ90からのリードコマンドを受ける(ステップ4
05)。リードコマンドには、目的の論理ブロックアド
レスと、転送長が指定される。論理ブロックアドレスは
「101」、転送長は「5」セクタとして以下の説明を
続ける。コマンドで指定された論理ブロックアドレスに
対応する物理ブロックアドレスを、図6の対応表601
に従って求める(ステップ410)。論理ブロックアド
レス「101」のセクタのヘッド番号は「1」、シリン
ダ番号は「0」、セクタ番号は「1」である。ヘッド番
号「1」の図5におけるバッファ管理テーブル330b
を見て、シリンダ番号「0」のトラックが、図5のデー
タ用バッファ370bにあるか、さらに、セクタ番号
「1」から5セクタ分のデータがあるかを調べる(ステ
ップ415)。ある、即ちキャッシュヒットならば、図
5のデータ用バッファ370bからホストコンピュータ
90へ、リードコマンドで指定されたデータレコードを
転送する(ステップ440)。
明に係わるリード処理動作の一具体例を示すフローチャ
ートである。本例は、図5のホストコンピュータ90か
らのリード要求に対する図5のディスク装置310の動
作を示すものである。図5におけるディスク制御部36
0のホストインタフェース65は、図5のホストコンピ
ュータ90からのリードコマンドを受ける(ステップ4
05)。リードコマンドには、目的の論理ブロックアド
レスと、転送長が指定される。論理ブロックアドレスは
「101」、転送長は「5」セクタとして以下の説明を
続ける。コマンドで指定された論理ブロックアドレスに
対応する物理ブロックアドレスを、図6の対応表601
に従って求める(ステップ410)。論理ブロックアド
レス「101」のセクタのヘッド番号は「1」、シリン
ダ番号は「0」、セクタ番号は「1」である。ヘッド番
号「1」の図5におけるバッファ管理テーブル330b
を見て、シリンダ番号「0」のトラックが、図5のデー
タ用バッファ370bにあるか、さらに、セクタ番号
「1」から5セクタ分のデータがあるかを調べる(ステ
ップ415)。ある、即ちキャッシュヒットならば、図
5のデータ用バッファ370bからホストコンピュータ
90へ、リードコマンドで指定されたデータレコードを
転送する(ステップ440)。
【0035】ステップ415において、キャッシュミス
ならば、図5のヘッド40a〜40dをシリンダ「0」
へシークする(ステップ420)。ヘッド番号「1」の
図5のヘッド40bでセクタのid部を読みながら、目
的のセクタ番号「1」のセクタが現れるまで回転待ちを
する(ステップ425)。目的セクタが現れたならば、
ヘッド番号「1」の図5のヘッド40bで、目的データ
レコードを、また、ヘッド番号「3」の図5のヘッド4
0dでそれに対応するパリティレコードを、同時にそれ
ぞれ5セクタ読み込んで、図5のリード/ライト回路5
5b、55dを経て、図5のデータ用バッファ370
b、および、パリティ用バッファ380に入れる(ステ
ップ427)。この時、リードコマンドで指定された転
送長以上のセクタ、例えば、トラック全体を読み込んで
バッファに格納しておいても良い。
ならば、図5のヘッド40a〜40dをシリンダ「0」
へシークする(ステップ420)。ヘッド番号「1」の
図5のヘッド40bでセクタのid部を読みながら、目
的のセクタ番号「1」のセクタが現れるまで回転待ちを
する(ステップ425)。目的セクタが現れたならば、
ヘッド番号「1」の図5のヘッド40bで、目的データ
レコードを、また、ヘッド番号「3」の図5のヘッド4
0dでそれに対応するパリティレコードを、同時にそれ
ぞれ5セクタ読み込んで、図5のリード/ライト回路5
5b、55dを経て、図5のデータ用バッファ370
b、および、パリティ用バッファ380に入れる(ステ
ップ427)。この時、リードコマンドで指定された転
送長以上のセクタ、例えば、トラック全体を読み込んで
バッファに格納しておいても良い。
【0036】読み込みが成功したならば(ステップ43
0)、図5のバッファ管理テーブル330b、330d
に、今読み込んだトラック番号「0」と、セクタ番号
「1」〜「5」を記録する(ステップ435)。目的デ
ータレコードをホストコンピュータに転送して(ステッ
プ440)、処理を終了する。目的データレコードの読
み込みに失敗したならば、対応するパリティレコードの
読み込みは成功したかを調べる(ステップ450)。失
敗していれば、ホストコンピュータにエラーを通知して
(ステップ465)、処理を終了する。パリティレコー
ドが読めていれば、パリティグループ内のデータレコー
ドを全て読んで、後述の図8で示すように、目的のデー
タレコードを回復する(ステップ455)。回復できれ
ば(ステップ460)、回復した目的データレコード
を、図5のデータ用バッファ370bに格納して、図5
のバッファ管理テーブル330b、330dにトラック
番号「0」と、セクタ番号「1」〜「5」を記録する
(ステップ435)。回復できなければ、ホストコンピ
ュータにエラーを通知して(ステップ465)、処理を
終了する。
0)、図5のバッファ管理テーブル330b、330d
に、今読み込んだトラック番号「0」と、セクタ番号
「1」〜「5」を記録する(ステップ435)。目的デ
ータレコードをホストコンピュータに転送して(ステッ
プ440)、処理を終了する。目的データレコードの読
み込みに失敗したならば、対応するパリティレコードの
読み込みは成功したかを調べる(ステップ450)。失
敗していれば、ホストコンピュータにエラーを通知して
(ステップ465)、処理を終了する。パリティレコー
ドが読めていれば、パリティグループ内のデータレコー
ドを全て読んで、後述の図8で示すように、目的のデー
タレコードを回復する(ステップ455)。回復できれ
ば(ステップ460)、回復した目的データレコード
を、図5のデータ用バッファ370bに格納して、図5
のバッファ管理テーブル330b、330dにトラック
番号「0」と、セクタ番号「1」〜「5」を記録する
(ステップ435)。回復できなければ、ホストコンピ
ュータにエラーを通知して(ステップ465)、処理を
終了する。
【0037】図8は、図5におけるディスク装置の本発
明に係わるデータ回復処理動作の一具体例を示すフロー
チャートである。本例は、図7のステップ455におけ
るデータ回復処理を示すのもであり、このデータ回復処
理は、回復対象データレコードの物理ブロックアドレス
と長さを指定して呼ばれる。そのデータレコードと同じ
パリティグループに属する全てのデータレコードについ
て、以下のステップ600〜650を繰り返す。データ
レコードがキャッシュヒットしていれば(ステップ60
0)、本関数呼出し元が以前に読んだパリティレコード
と、そのデータレコードの排他的論理和を取り、その結
果を、図5のメモリ363内の作業用領域に格納する
(ステップ650)。キャッシュミスの場合、目的デー
タレコードがあるヘッドで、目的セクタ「1」の回転待
ちをする(ステップ610)。本関数が呼ばれる時のヘ
ッド位置は、回復対象データレコードの格納されている
シリンダにあるため、目的データレコードを読みこむた
めのシークは必要ない。目的セクタが現れたならば、そ
こから5セクタ分、データ用バッファに読みこむ(ステ
ップ620)。
明に係わるデータ回復処理動作の一具体例を示すフロー
チャートである。本例は、図7のステップ455におけ
るデータ回復処理を示すのもであり、このデータ回復処
理は、回復対象データレコードの物理ブロックアドレス
と長さを指定して呼ばれる。そのデータレコードと同じ
パリティグループに属する全てのデータレコードについ
て、以下のステップ600〜650を繰り返す。データ
レコードがキャッシュヒットしていれば(ステップ60
0)、本関数呼出し元が以前に読んだパリティレコード
と、そのデータレコードの排他的論理和を取り、その結
果を、図5のメモリ363内の作業用領域に格納する
(ステップ650)。キャッシュミスの場合、目的デー
タレコードがあるヘッドで、目的セクタ「1」の回転待
ちをする(ステップ610)。本関数が呼ばれる時のヘ
ッド位置は、回復対象データレコードの格納されている
シリンダにあるため、目的データレコードを読みこむた
めのシークは必要ない。目的セクタが現れたならば、そ
こから5セクタ分、データ用バッファに読みこむ(ステ
ップ620)。
【0038】読み込みが成功した場合(ステップ63
0)、そのヘッドに対応したバッファ管理テーブルに、
今読み込んだトラック番号「0」と、セクタ番号「1」
から「5」を記録する(ステップ640)。読み込みに
失敗した場合(ステップ630)、エラーを、本関数呼
出し元に返して終了する(ステップ680)。今読み込
んだデータレコードと、作業領域に回復中の回復対象デ
ータレコードの排他的論理和をとって、作業領域中の回
復対象データレコードを置き換える(ステップ65
0)。パリティグループの全てのデータレコードについ
て排他的論理和を取り終ったならば(ステップ66
0)、正常終了する(ステップ670)。尚、ここで
は、1データレコードずつ読み込みを行っているが、2
つのヘッドで同時にデータレコードを読み込んでも良
い。
0)、そのヘッドに対応したバッファ管理テーブルに、
今読み込んだトラック番号「0」と、セクタ番号「1」
から「5」を記録する(ステップ640)。読み込みに
失敗した場合(ステップ630)、エラーを、本関数呼
出し元に返して終了する(ステップ680)。今読み込
んだデータレコードと、作業領域に回復中の回復対象デ
ータレコードの排他的論理和をとって、作業領域中の回
復対象データレコードを置き換える(ステップ65
0)。パリティグループの全てのデータレコードについ
て排他的論理和を取り終ったならば(ステップ66
0)、正常終了する(ステップ670)。尚、ここで
は、1データレコードずつ読み込みを行っているが、2
つのヘッドで同時にデータレコードを読み込んでも良
い。
【0039】図9は、図5におけるディスク装置の本発
明に係わるライト処理動作の一具体例を示すフローチャ
ートである。本例は、図5のホストコンピュータ90か
らのライト要求に対する図5のディスク装置310の動
作を示すものである。図5のディスク制御部360のホ
ストインタフェース65は、図5のホストコンピュータ
90からのライトコマンドを受ける(ステップ50
5)。ライトコマンドには、目的の論理ブロックアドレ
スと、転送長が指定される。論理ブロックアドレスは
「101」、転送長は「5」セクタとして以下の説明を
続ける。コマンドで指定された論理ブロックアドレスに
対応する物理ブロックアドレスを図6の対応表601に
従って求める(ステップ510)。論理ブロックアドレ
ス「101」のセクタのヘッド番号は「1」、シリンダ
番号は「0」、セクタ番号は「1」である。
明に係わるライト処理動作の一具体例を示すフローチャ
ートである。本例は、図5のホストコンピュータ90か
らのライト要求に対する図5のディスク装置310の動
作を示すものである。図5のディスク制御部360のホ
ストインタフェース65は、図5のホストコンピュータ
90からのライトコマンドを受ける(ステップ50
5)。ライトコマンドには、目的の論理ブロックアドレ
スと、転送長が指定される。論理ブロックアドレスは
「101」、転送長は「5」セクタとして以下の説明を
続ける。コマンドで指定された論理ブロックアドレスに
対応する物理ブロックアドレスを図6の対応表601に
従って求める(ステップ510)。論理ブロックアドレ
ス「101」のセクタのヘッド番号は「1」、シリンダ
番号は「0」、セクタ番号は「1」である。
【0040】図5のホストコンピュータ90から、図5
のメモリ363の作業領域に、ライト対象のデータレコ
ードを転送する(ステップ515)。まず、パリティグ
ループ内の全データレコードからパリティを生成するこ
とが効率的であるか否かを調べる。ライト対象データレ
コードと同じパリティグループに属する他のデータレコ
ードが、キャッシュにあるかどうかを見る(ステップ5
20)。ここでの場合、ヘッド番号「0」と「2」の図
5のバッファ管理テーブル330a、330cを見て、
シリンダ番号「0」のトラックがデータ用バッファ37
0a、370cにあるか、さらに、セクタ番号「1」か
ら5セクタ分のデータがあるか調べる。それぞれがあれ
ば、即ちヘッド番号「0」と「2」の両方のバッファに
おいてキャッシュヒットならば、パリティ生成をする
(ステップ525)。尚、パリティ生成については、後
で説明する。
のメモリ363の作業領域に、ライト対象のデータレコ
ードを転送する(ステップ515)。まず、パリティグ
ループ内の全データレコードからパリティを生成するこ
とが効率的であるか否かを調べる。ライト対象データレ
コードと同じパリティグループに属する他のデータレコ
ードが、キャッシュにあるかどうかを見る(ステップ5
20)。ここでの場合、ヘッド番号「0」と「2」の図
5のバッファ管理テーブル330a、330cを見て、
シリンダ番号「0」のトラックがデータ用バッファ37
0a、370cにあるか、さらに、セクタ番号「1」か
ら5セクタ分のデータがあるか調べる。それぞれがあれ
ば、即ちヘッド番号「0」と「2」の両方のバッファに
おいてキャッシュヒットならば、パリティ生成をする
(ステップ525)。尚、パリティ生成については、後
で説明する。
【0041】キャッシュミスならば、パリティの生成
を、更新前データレコードと更新前パリティから行うこ
とを試みる。ライト対象のデータレコードおよびそれに
対応するパリティレコードがキャッシュにあるかを見る
(ステップ550)。ここでは、ヘッド番号「1」と
「3」の図5のバッファ管理テーブル330b、330
dを見て、シリンダ番号「0」のトラックが、図5のデ
ータ用バッファ370b、370dにあるか、さらに、
セクタ番号「1」から5セクタ分のデータがあるかを調
べる。もし、それぞれがあれば、即ちヘッド番号「1」
と「3」の両方のバッファにおいてキャッシュヒットな
らば、パリティ生成をする(ステップ525)。しか
し、キャッシュミスならば、パリティを生成するため
に、ライト対象のデータレコード、および、それに対応
するパリティレコードのそれぞれの更新前の値を、図5
のディスク20b、20dから読みこむ必要がある。こ
のため、図5のヘッド40b、40dを、シリンダへシ
ークする(ステップ555)。ヘッド番号「1」の図5
のヘッド40bでセクタのid部を読みながら、目的の
セクタ番号「1」のセクタが現れるまで、回転待ちをす
る(ステップ560)。
を、更新前データレコードと更新前パリティから行うこ
とを試みる。ライト対象のデータレコードおよびそれに
対応するパリティレコードがキャッシュにあるかを見る
(ステップ550)。ここでは、ヘッド番号「1」と
「3」の図5のバッファ管理テーブル330b、330
dを見て、シリンダ番号「0」のトラックが、図5のデ
ータ用バッファ370b、370dにあるか、さらに、
セクタ番号「1」から5セクタ分のデータがあるかを調
べる。もし、それぞれがあれば、即ちヘッド番号「1」
と「3」の両方のバッファにおいてキャッシュヒットな
らば、パリティ生成をする(ステップ525)。しか
し、キャッシュミスならば、パリティを生成するため
に、ライト対象のデータレコード、および、それに対応
するパリティレコードのそれぞれの更新前の値を、図5
のディスク20b、20dから読みこむ必要がある。こ
のため、図5のヘッド40b、40dを、シリンダへシ
ークする(ステップ555)。ヘッド番号「1」の図5
のヘッド40bでセクタのid部を読みながら、目的の
セクタ番号「1」のセクタが現れるまで、回転待ちをす
る(ステップ560)。
【0042】目的セクタが現れたならば、ヘッド番号
「1」の図5のヘッド40bで目的データレコードを、
ヘッド番号「3」の図5のヘッド40dでそれに対応す
るパリティレコードを、同時に、それぞれ5セクタ読み
込んで、図5のリード/ライト回路55b、55dを経
て、図5のデータ用バッファ370b、および、パリテ
ィ用バッファ380に入れる(ステップ565)。この
時、リードコマンドで指定された転送長以上のセクタ、
例えば、トラック全体を読み込んで、バッファに格納し
ておいても良い。読み込みが成功したならば(ステップ
570)、図5のバッファ管理テーブル330a、33
0dに、今読み込んだトラック番号「0」と、セクタ番
号「1」〜「5」を記録して(ステップ572)、パリ
ティ生成を行なう(ステップ525)。
「1」の図5のヘッド40bで目的データレコードを、
ヘッド番号「3」の図5のヘッド40dでそれに対応す
るパリティレコードを、同時に、それぞれ5セクタ読み
込んで、図5のリード/ライト回路55b、55dを経
て、図5のデータ用バッファ370b、および、パリテ
ィ用バッファ380に入れる(ステップ565)。この
時、リードコマンドで指定された転送長以上のセクタ、
例えば、トラック全体を読み込んで、バッファに格納し
ておいても良い。読み込みが成功したならば(ステップ
570)、図5のバッファ管理テーブル330a、33
0dに、今読み込んだトラック番号「0」と、セクタ番
号「1」〜「5」を記録して(ステップ572)、パリ
ティ生成を行なう(ステップ525)。
【0043】目的データレコード、あるいは、パリティ
レコードの読み込みに失敗したならば、パリティグルー
プ内の全データレコードからパリティを生成する方式に
切り替える。このため、ライト対象のデータレコードと
同じパリティグループに属する他のデータレコードを、
ディスクから読みこむ必要がある。この処理は上述の目
的データレコードの読み込みと同様であるので、以下、
ステップ575〜590の説明は簡単に行う。すなわ
ち、ヘッドは既に目的シリンダに位置づいているはずな
ので、シーク動作は不要である。ヘッド番号「0」番の
図5のヘッド40aで回転待ちをし(ステップ57
5)、目的セクタが現れたならば、ヘッド番号「0」と
「2」番の図5のヘッド40a、40cで、同時にデー
タレコードを読み込み、図5のリード/ライト回路55
a、55cを経て、図5のデータ用バッファ370a、
370cに入れる(ステップ580)。読み込みに成功
したならば(ステップ585)、図5のバッファ管理テ
ーブル330a、330cに、トラック番号やその他を
記録する(ステップ587)。失敗したならば、ホスト
コンピュータにエラーを通知して(ステップ590)、
処理を終了する。
レコードの読み込みに失敗したならば、パリティグルー
プ内の全データレコードからパリティを生成する方式に
切り替える。このため、ライト対象のデータレコードと
同じパリティグループに属する他のデータレコードを、
ディスクから読みこむ必要がある。この処理は上述の目
的データレコードの読み込みと同様であるので、以下、
ステップ575〜590の説明は簡単に行う。すなわ
ち、ヘッドは既に目的シリンダに位置づいているはずな
ので、シーク動作は不要である。ヘッド番号「0」番の
図5のヘッド40aで回転待ちをし(ステップ57
5)、目的セクタが現れたならば、ヘッド番号「0」と
「2」番の図5のヘッド40a、40cで、同時にデー
タレコードを読み込み、図5のリード/ライト回路55
a、55cを経て、図5のデータ用バッファ370a、
370cに入れる(ステップ580)。読み込みに成功
したならば(ステップ585)、図5のバッファ管理テ
ーブル330a、330cに、トラック番号やその他を
記録する(ステップ587)。失敗したならば、ホスト
コンピュータにエラーを通知して(ステップ590)、
処理を終了する。
【0044】以下に、パリティ生成後の処理(ステップ
525〜540)の説明を行なう。ステップ525の処
理に到着した時、更新後データレコードは、図5のメモ
リ363内の作業領域にあり、その他に(A)更新前の
目的データレコードとパリティレコード、あるいは、
(B)目的データレコードと同じパリティグループに属
する他のデータレコードのいずれかが、図5のデータ用
バッファ370a〜370cおよびパリティ用バッファ
380にあるはずである。(A)の場合も(B)の場合
も、パリティ生成は、上述の3つのデータレコードの排
他的論理和をとって、その結果を現在のパリティレコー
ドと置き換えて、図5のパリティ用バッファ380に格
納することである(ステップ525)。更新後データレ
コードと新パリティレコードをディスクに書き込むため
に、シークして(ステップ530)、回転待ちをし(ス
テップ535)、ディスクへの書き込みを行う(ステッ
プ540)。すなわち、ヘッド番号「1」のヘッドで更
新後データレコードを、ヘッド番号「3」のヘッドで新
パリティレコードを、同時に、データレコード長だけ、
図5のディスク20b、20dに書き込み、ライトコマ
ンドの処理を終了する。
525〜540)の説明を行なう。ステップ525の処
理に到着した時、更新後データレコードは、図5のメモ
リ363内の作業領域にあり、その他に(A)更新前の
目的データレコードとパリティレコード、あるいは、
(B)目的データレコードと同じパリティグループに属
する他のデータレコードのいずれかが、図5のデータ用
バッファ370a〜370cおよびパリティ用バッファ
380にあるはずである。(A)の場合も(B)の場合
も、パリティ生成は、上述の3つのデータレコードの排
他的論理和をとって、その結果を現在のパリティレコー
ドと置き換えて、図5のパリティ用バッファ380に格
納することである(ステップ525)。更新後データレ
コードと新パリティレコードをディスクに書き込むため
に、シークして(ステップ530)、回転待ちをし(ス
テップ535)、ディスクへの書き込みを行う(ステッ
プ540)。すなわち、ヘッド番号「1」のヘッドで更
新後データレコードを、ヘッド番号「3」のヘッドで新
パリティレコードを、同時に、データレコード長だけ、
図5のディスク20b、20dに書き込み、ライトコマ
ンドの処理を終了する。
【0045】このように、図5〜9を用いて説明したよ
うに、本第2の実施例のディスク装置では、データレコ
ードは分割されずにいずれかのディスクに格納される。
データレコードとパリティレコードは、同じシリンダ上
に格納され、2つのヘッドで同時に読み書きされる。ま
た、図5におけるデータ用バッファ370a〜370c
とパリティ用バッファ380で、最近アクセスしたデー
タおよびパリティを保持し、このバッファにより、ディ
スクの機械的なシークおよび回転待ち動作なしに、デー
タレコードの処理が行える場合があるために、ディスク
装置の性能が向上する。
うに、本第2の実施例のディスク装置では、データレコ
ードは分割されずにいずれかのディスクに格納される。
データレコードとパリティレコードは、同じシリンダ上
に格納され、2つのヘッドで同時に読み書きされる。ま
た、図5におけるデータ用バッファ370a〜370c
とパリティ用バッファ380で、最近アクセスしたデー
タおよびパリティを保持し、このバッファにより、ディ
スクの機械的なシークおよび回転待ち動作なしに、デー
タレコードの処理が行える場合があるために、ディスク
装置の性能が向上する。
【0046】以上、図1〜9を用いて説明したように、
本第1、第2の実施例のディスク装置では、データと冗
長データの読み書きの同期のための複雑な制御が不要と
なり、少ない部品点数と簡素な制御プログラムにより、
冗長データを持つ高信頼なディスク装置を容易に構成す
ることができる。また、データと冗長データの読み書き
の同期を、より正確、より高速に行うことができる。
尚、本発明は、図1〜図9を用いて説明した実施例に限
定されるものではなく、その要旨を逸脱しない範囲にお
いて種々変更可能である。例えば、上述の第1、第2の
実施例では、リード/ライト回路は、各ヘッドごとに、
合計4つあるとしたが、ヘッドと回路のスイッチング回
路を設けることにより、リード/ライト回路をヘッドの
数以下、例えば2つにすることもできる。また、データ
用バッファとパリティ用バッファは、各ヘッドごとに、
合計4つあるとしたが、それ以外の構成、例えば、1つ
のバッファにデータレコードとパリティレコードを格納
するという構成にすることもできる。
本第1、第2の実施例のディスク装置では、データと冗
長データの読み書きの同期のための複雑な制御が不要と
なり、少ない部品点数と簡素な制御プログラムにより、
冗長データを持つ高信頼なディスク装置を容易に構成す
ることができる。また、データと冗長データの読み書き
の同期を、より正確、より高速に行うことができる。
尚、本発明は、図1〜図9を用いて説明した実施例に限
定されるものではなく、その要旨を逸脱しない範囲にお
いて種々変更可能である。例えば、上述の第1、第2の
実施例では、リード/ライト回路は、各ヘッドごとに、
合計4つあるとしたが、ヘッドと回路のスイッチング回
路を設けることにより、リード/ライト回路をヘッドの
数以下、例えば2つにすることもできる。また、データ
用バッファとパリティ用バッファは、各ヘッドごとに、
合計4つあるとしたが、それ以外の構成、例えば、1つ
のバッファにデータレコードとパリティレコードを格納
するという構成にすることもできる。
【0047】
【発明の効果】本発明によれば、データと冗長データの
読み書きの同期のための複雑な制御が不要となり、少な
い部品点数と簡素な制御プログラムにより、冗長データ
を持つ高信頼なディスク装置を容易に構成することがで
き、かつ、データと冗長データの読み書きの同期を、よ
り正確に、また、より高速に行うことができ、ディスク
装置の高信頼化と低価格化、および、処理性能の向上が
可能である。
読み書きの同期のための複雑な制御が不要となり、少な
い部品点数と簡素な制御プログラムにより、冗長データ
を持つ高信頼なディスク装置を容易に構成することがで
き、かつ、データと冗長データの読み書きの同期を、よ
り正確に、また、より高速に行うことができ、ディスク
装置の高信頼化と低価格化、および、処理性能の向上が
可能である。
【図1】本発明のディスク装置の本発明に係わる構成の
第1の実施例を示すブロック図である。
第1の実施例を示すブロック図である。
【図2】図1におけるディスク制御部がディスクへのア
クセス時に用いる情報が登録されている対応表の構成の
一具体例を示す説明図である。
クセス時に用いる情報が登録されている対応表の構成の
一具体例を示す説明図である。
【図3】図1におけるディスク装置の本発明に係わるリ
ード処理動作の一具体例を示すフローチャートである。
ード処理動作の一具体例を示すフローチャートである。
【図4】図1におけるディスク装置の本発明に係わるラ
イト動作の一具体例を示すフローチャートである。
イト動作の一具体例を示すフローチャートである。
【図5】本発明のディスク装置の本発明に係わる構成の
第2の実施例を示すブロック図である。
第2の実施例を示すブロック図である。
【図6】図5におけるディスク制御部がディスクへのア
クセス時に用いる情報が登録されている対応表の構成の
一具体例を示す説明図である。
クセス時に用いる情報が登録されている対応表の構成の
一具体例を示す説明図である。
【図7】図5におけるディスク装置の本発明に係わるリ
ード処理動作の一具体例を示すフローチャートである。
ード処理動作の一具体例を示すフローチャートである。
【図8】図5におけるディスク装置の本発明に係わるデ
ータ回復処理動作の一具体例を示すフローチャートであ
る。
ータ回復処理動作の一具体例を示すフローチャートであ
る。
【図9】図5におけるディスク装置の本発明に係わるラ
イト処理動作の一具体例を示すフローチャートである。
イト処理動作の一具体例を示すフローチャートである。
10 ディスク装置 20a〜20d ディスク 25 シリンダ 30 スピンドル 40a〜40d ヘッド 50 アクチュエータ 60 ディスク制御部 61 プロセッサ 62 ROM 63 メモリ 64 バス 65 ホストインタフェース 70a〜70c データ用バッファ 80 パリティ用バッファ 90 ホストコンピュータ 201 対応表 310 ディスク装置 330a〜330d バッファ管理テーブル 360 ディスク制御部 363 メモリ 370a〜370c データ用バッファ 380 パリティ用バッファ 601 対応表
───────────────────────────────────────────────────── フロントページの続き (72)発明者 宮崎 道生 神奈川県小田原市国府津2880番地 株式会 社日立製作所ストレージシステム事業部内
Claims (12)
- 【請求項1】 情報処理装置の読み書き対象となるデー
タを記憶する円盤形状のディスクと、複数の該ディスク
を同心軸上に固定して一括で回転させるスピンドルと、
上記複数のディスクのそれぞれに対応する複数のヘッド
を固定して一括でシーク動作させるアクチュエータとを
具備し、上記複数のディスクへのアクセスを同時に行な
うディスク装置において、n枚の上記ディスクに、上記
情報処理装置から転送されるデータレコードを格納し、
該n枚のディスク上のデータレコードから生成した該デ
ータレコードの誤り検出に用いる冗長データレコード
を、上記n枚のディスク以外のm枚のディスクに格納す
るディスク制御手段を設けることを特徴とするディスク
装置。 - 【請求項2】 請求項1に記載のディスク装置におい
て、上記ディスク制御手段は、上記冗長データレコード
を、上記n枚のディスク上の各データレコードの格納位
置と同じヘッドの固定位置で、上記m枚のディスクに格
納することを特徴とするディスク装置。 - 【請求項3】 請求項1、もしくは、請求項2のいずれ
かに記載のディスク装置において、上記複数のヘッド
を、上記アクチュエータに同一直線上に固定して設ける
ことを特徴とするディスク装置。 - 【請求項4】 請求項1から請求項3のいずれかに記載
のディスク装置において、上記ディスク制御手段は、上
記情報処理装置からライト要求と共に転送されてきたデ
ータレコードをn個に分割し、該n個の分割データを上
記n枚のディスクへ、該n個の分割データから生成した
m個の冗長データを上記m枚のディスクへ格納すること
を特徴とするディスク装置。 - 【請求項5】 請求項4に記載のディスク装置におい
て、上記ディスク制御手段は、上記情報処理装置からの
リード要求に応答して、上記n枚のディスク上のn個の
分割データと、上記m枚のディスク上のm個の冗長デー
タを同時に読み出し、該読み出したn個の分割データを
用いて生成したm個の新たな冗長データと上記読み出し
たm個の冗長データとが、それぞれ一致する場合に、上
記n枚のディスクから読み出したn個の分割データを統
合して、上記情報処理装置に転送することを特徴とする
ディスク装置。 - 【請求項6】 請求項5に記載のディスク装置におい
て、上記ディスク制御手段は、上記m個の冗長データの
読み出しと同時に行なわれた上記n枚のディスクからの
読み出しに失敗した上記分割データの数がm個以下であ
れば、正常に読みだされた分割データとm個の冗長デー
タに基づき、上記読み出しに失敗した各々の分割データ
を生成することを特徴とするディスク装置。 - 【請求項7】 請求項1から請求項3のいずれかに記載
のディスク装置において、上記ディスク制御手段は、上
記情報処理装置からのライト要求に応答して、該ライト
先に格納されている更新前データレコードと、該更新前
データレコードに対応して生成したm個の冗長データレ
コードとを同時に読み出し、該読み出した更新前データ
レコードと冗長データレコード、および、上記ライト要
求と共に転送されてきたデータレコードとを用いて、新
たな冗長データレコードを生成し、該新たな冗長データ
レコードと上記転送されてきたデータレコードを、上記
ディスクに同時に格納することを特徴とするディスク装
置。 - 【請求項8】 請求項1から請求項3のいずれかに記載
のディスク装置において、上記ディスク制御手段は、上
記情報処理装置から、上記複数のヘッドにより同時にア
クセス可能なn個以上のデータレコードが連続して転送
される場合には、n個のデータレコードと、該n個のデ
ータレコードから生成したm個の冗長データレコードと
を、同時に上記ディスクに格納し、上記n個に満たない
残りのk個のデータレコードと、上記ディスク上から読
み出した上記k個のデータレコードと同時にアクセス可
能なn−k個のデータレコードとから、m個の冗長デー
タレコードを生成し、該m個の冗長データレコードと、
上記処理装置から転送されてきたk個のデータレコード
とを、同時に上記ディスクに格納することを特徴とする
ディスク装置。 - 【請求項9】 請求項7、もしくは、請求項8のいずれ
かに記載のディスク装置において、上記ディスク制御手
段は、上記情報処理装置からのリード要求に応答して、
該リード要求の対象となるデータレコードに対応して生
成した冗長データレコードと、該冗長データレコードの
生成に用いた全てのデータレコードとを、上記n枚のデ
ィスクとm枚のディスクから同時に読み出し、該読み出
した全てのデータレコードを用いて生成した新たな冗長
データレコードと、上記読み出した冗長データレコード
とが一致する場合に、上記読み出したリード要求の対象
となるデータレコードを、上記情報処理装置に転送する
ことを特徴とするディスク装置。 - 【請求項10】 請求項1から請求項9のいずれかに記
載のディスク装置において、上記ディスク制御手段と上
記複数のディスク間で転送されるデータを一時記憶する
バッファ記憶手段を、上記複数のディスク毎に設け、上
記ディスク制御手段は、該バッファ記憶手段を介して、
上記複数のディスクからのデータの同時読み出し、およ
び、上記複数のディスクへのデータの同時書き込みを行
なうことを特徴とするディスク装置。 - 【請求項11】 請求項10に記載のディスク装置にお
いて、上記ディスク制御手段は、上記情報処理装置から
のアクセス対象のデータが、上記複数のバッファ記憶手
段に記憶されているか否かを判定して、ディスクキャッ
シュ制御を行なうことを特徴とするディスク装置。 - 【請求項12】 請求項11のディスク装置において、
上記バッファ記憶手段に、複数の上記データレコードお
よび冗長データレコードを記憶することを特徴とするデ
ィスク装置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP5100853A JPH06309113A (ja) | 1993-04-27 | 1993-04-27 | ディスク装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP5100853A JPH06309113A (ja) | 1993-04-27 | 1993-04-27 | ディスク装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
JPH06309113A true JPH06309113A (ja) | 1994-11-04 |
Family
ID=14284876
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP5100853A Pending JPH06309113A (ja) | 1993-04-27 | 1993-04-27 | ディスク装置 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JPH06309113A (ja) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2007200458A (ja) * | 2006-01-26 | 2007-08-09 | Shinko Electric Ind Co Ltd | 磁気ディスク装置およびデータ抹消方法 |
JP2010061702A (ja) * | 2008-09-01 | 2010-03-18 | Hitachi Ltd | 情報記録再生装置、情報記録再生システム、情報処理装置および情報再生装置 |
-
1993
- 1993-04-27 JP JP5100853A patent/JPH06309113A/ja active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2007200458A (ja) * | 2006-01-26 | 2007-08-09 | Shinko Electric Ind Co Ltd | 磁気ディスク装置およびデータ抹消方法 |
JP2010061702A (ja) * | 2008-09-01 | 2010-03-18 | Hitachi Ltd | 情報記録再生装置、情報記録再生システム、情報処理装置および情報再生装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US5072378A (en) | Direct access storage device with independently stored parity | |
JP2501007B2 (ja) | デ―タ記憶システム及びその動作方法 | |
US6049890A (en) | Disk array system and its control method | |
US5720027A (en) | Redundant disc computer having targeted data broadcast | |
US5442752A (en) | Data storage method for DASD arrays using striping based on file length | |
JP3304115B2 (ja) | 構成可能な冗長アレイ記憶装置 | |
US5404361A (en) | Method and apparatus for ensuring data integrity in a dynamically mapped data storage subsystem | |
JP3302688B2 (ja) | 並列ディスク駆動機構アレイ式データ記憶サブシステム用の論理トラック書込みスケジューリングのシステム | |
JP3181398B2 (ja) | アレイ型記録装置 | |
US5613088A (en) | Raid system including first and second read/write heads for each disk drive | |
US20050050381A1 (en) | Methods, apparatus and controllers for a raid storage system | |
JPH06332623A (ja) | アレイ型記録装置及び記録装置 | |
JPH04232557A (ja) | Dasd制御方法及び装置 | |
JPH06202817A (ja) | ディスクアレイ装置及びそのデータ更新方法 | |
JPH0756688A (ja) | データ記憶装置 | |
JPH05143471A (ja) | 記憶装置の冗長アレイ内の故障記憶装置のオンライン再構成方法 | |
US6397348B1 (en) | Redundant array of disk drives with asymmetric mirroring and asymmetric mirroring data processing method | |
JPH10105344A (ja) | データ記録装置システム及びそのデータ書込方法 | |
US6304946B1 (en) | System and method for optimizing cache write backs to disks | |
JP2000020248A (ja) | ディスクの障害回復方法、ディスクドライバおよび記録媒体 | |
JPH06309113A (ja) | ディスク装置 | |
JP2733189B2 (ja) | ディスクアレイ装置の入出力制御方法 | |
JP3008801B2 (ja) | 記憶装置システムおよびディスクアレイ制御装置 | |
JP3615250B2 (ja) | ディスクアレイ装置 | |
JPH0744331A (ja) | ディスクアレイ装置およびその制御方法 |