[go: up one dir, main page]

JP3011035B2 - 計算機システム - Google Patents

計算機システム

Info

Publication number
JP3011035B2
JP3011035B2 JP6305050A JP30505094A JP3011035B2 JP 3011035 B2 JP3011035 B2 JP 3011035B2 JP 6305050 A JP6305050 A JP 6305050A JP 30505094 A JP30505094 A JP 30505094A JP 3011035 B2 JP3011035 B2 JP 3011035B2
Authority
JP
Japan
Prior art keywords
data
parity
disk
transfer
old
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
JP6305050A
Other languages
English (en)
Other versions
JPH08161124A (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.)
Hitachi Ltd
Original Assignee
Hitachi Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Hitachi Ltd filed Critical Hitachi Ltd
Priority to JP6305050A priority Critical patent/JP3011035B2/ja
Priority to US08/849,236 priority patent/US5996046A/en
Priority to EP95939400A priority patent/EP0797141A1/en
Priority to PCT/JP1995/002518 priority patent/WO1996018141A1/ja
Publication of JPH08161124A publication Critical patent/JPH08161124A/ja
Application granted granted Critical
Publication of JP3011035B2 publication Critical patent/JP3011035B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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 OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2211/00Indexing scheme relating to details of data-processing equipment not covered by groups G06F3/00 - G06F13/00
    • G06F2211/10Indexing scheme relating to G06F11/10
    • G06F2211/1002Indexing scheme relating to G06F11/1076
    • G06F2211/1059Parity-single bit-RAID5, i.e. RAID 5 implementations

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は、コンピュータシステム
の記憶システムとして用いられている複数のディスク装
置をアレイ状に配置したアレイ型ディスクシステムのた
めの制御方式に係わり、特に、CPU負荷の削減を目的
とした計算機システムに関するものである。
【0002】
【従来の技術】ディスクアレイシステムとは、複数のデ
ィスク装置をアレイ状に配置した構成をとり、リード要
求(データの読み出し要求)およびライト要求(データ
の書き込み要求)をディスクの並列動作によって高速に
処理し、パリティ(冗長)データを付加することにより
信頼性を向上させた外部記憶装置である。ディスクアレ
イシステムは、RAID(Redundant Arrays of Inexpe
nsive Disks)と呼ばれ、パリティデータの種類と構成
により5つのレベルに分類されている(論文:"ACase f
or Redundant Arrays of Inexpensive Disks (RAID)",
David A.Patterson, Garth Gibson, and Randy H.Katz,
Computer Science Division Departmentof Electrical
Engineering and Computer Sciences, University of
California Berkeley)。
【0003】上記分類法のレベル5(以下、RAID5
と呼ぶことにする)においては、パリティが各ディスク
に分散されて記憶されており、パリティ更新時に1台の
パリティディスクに処理が集中することを防ぎ、ライト
処理時の性能低下を抑えることができる。したがって、
小さなサイズの読み書きが多量に発生するランダムアク
セスに対し性能向上が見込まれる(日経エレクトロニク
ス1993/4/26 No.579 P.77〜91「特集ディスクアレイ装
置」)。
【0004】ディスクアレイシステムでは、ディスクを
並列に動作させるためと、パリティデータを付加するた
めに、特殊なアドレス変換を行う必要があり、従来は専
用のハードウェアによってそのアドレス変換を行ってき
た。該システムに関する公知例としては、特開平2ー2
36714号公報を挙げることができる。しかし、ホス
トシステムのCPU(Central Processing Unit)性能
が向上してきたことから、ディスクアレイ特有のアドレ
ス変換をソフトウェアプログラムで行うディスクアレイ
システムも存在している。本明細書では、このディスク
アレイシステムを、ソフトウェアRAIDと呼ぶことに
する。ディスクの並列動作のためのアドレス変換をソフ
トウェアプログラムで行うディスクアレイシステムに関
する公知例としては、特開平5ー250099号公報を
挙げることができる。
【0005】ここで、従来例として、RAID5のソフ
トウェアRAIDを図21のシステム構成を用いて説明
する。図21において、1はホストシステム、4はディ
スクインターフェース制御手段、3はディスク装置群で
ある。
【0006】ホストシステム1は、ホストCPU101
と、高速リード・ライト可能なメモリであるキャッシュ
102と、ローカルバス・システムバス間ブリッジ10
3と、データやプログラムを格納するメインメモリ10
4と、バスインターフェース107で構成している。ロ
ーカルバス105は、ホストCPU101と、キャッシ
ュ102と、ローカルバス・システムバス間ブリッジ1
03を接続する。システムバス106は、ローカルバス
・システムバス間ブリッジ103と、バスインターフェ
ース107を接続する。ディスクアレイ制御プログラム
領域109は、メインメモリ104内に配置し、ディス
クアレイシステムを制御するのに必要なディスクアレイ
制御プログラムを格納する。
【0007】ディスクインターフェース制御手段4は、
ホストシステム1のバスインターフェース107と接続
する。
【0008】ディスク装置群3は、本従来例においては
5台のディスク装置301〜305により構成してい
る。ディスク装置301〜305は、デイジーチェーン
接続により、ディスクインターフェース制御手段4と接
続する。
【0009】ディスクアレイシステムでは、複数のディ
スクをストライピングし、そのストライプごとに、パリ
ティデータを付加することにより、信頼性を上げてい
る。ディスクアレイライト時には、各ディスク装置のス
トライプごとのデータの排他的論理和演算によってパリ
ティを生成する。ホストCPU101は、ディスクアレ
イ制御プログラム領域109に格納されているディスク
アレイ制御プログラムを用いて、ストライピングのため
のアドレス変換とパリティ生成を行う。
【0010】ここで、ディスクの並列動作とパリティデ
ータの付加を含めたディスクアレイシステム全体として
行うリード処理とライト処理を、それぞれ、ディスクア
レイリード処理およびディスクアレイライト処理と呼ぶ
こととする。また、ディスクアレイリード処理およびデ
ィスクアレイライト処理において、データを読み書きす
るディスクをデータディスク、パリティを読み書きする
ディスクをパリティディスクと呼ぶこととする。
【0011】従来技術のRAID5のディスクアレイラ
イト処理時において、パリティは式1により求められ
る。なお、XOR は、排他的論理和演算子のことである。
【0012】 新パリティ = 新データ XOR 旧データ XOR 旧パリティ (式1) 式1において、新データとは、ディスクアレイライト処
理において新しく書き込むデータであり、旧データと
は、新データが書き込まれる直前のデータ、つまり、新
データが上書きするデータのことである。新パリティと
は、新データに対応するパリティデータであり、旧パリ
ティとは、旧データに対応するパリティデータである。
【0013】ディスクアレイライト処理においては、旧
データをデータディスクから、旧パリティをパリティデ
ィスクからそれぞれ読み出し、式1によって新パリティ
を生成した後、新データをデータディスクに、新パリテ
ィをパリティディスクにそれぞれ書き込む。
【0014】以下、データディスクからの旧データのリ
ード処理を旧データリード処理、データディスクへの新
データのライト処理を新データライト処理と呼ぶことと
する。同様に、パリティディスクからの旧パリティのリ
ード処理を旧パリティリード処理、パリティディスクへ
の新パリティのライト処理を新パリティライト処理と呼
ぶこととする。
【0015】
【発明が解決しようとする課題】従来技術のディスクア
レイでは、ディスクアレイライト処理において、データ
と、該データに対応するパリティを略同時に更新するこ
とで、ディスク障害に対する信頼性を確保している。し
かし、ディスクアレイライト処理を1回行う場合に、デ
ータディスクと、パリティディスクに対して、リードと
ライトを各1回ずつ行い、合計4回のディスクアクセス
を必要とする。また、2台のディスク装置を占有するた
め、各ディスク装置による並列処理の多重度が下がるこ
とになる。以上のように、従来のディスクアレイにおい
ては、ライト処理性能が低下するという問題がある。
【0016】さらに、ソフトウェア制御による冗長性付
きのディスクアレイにおいては、ディスクアレイ特有の
アドレス変換と、パリティ生成のための排他的論理和演
算をCPUによって行っており、ディスクアレイ処理プ
ログラムの制御に要するCPUの負荷は大きい。したが
って、多量のディスクアレイライト処理を行う場合は、
ディスクアレイ処理プログラムの制御に要するCPU負
荷の増加によって、アプリケーションの性能低下を招く
という問題がある。
【0017】本発明の第1の目的は、新データの書き込
み以外のディスクアクセス回数を削減することでディス
クアレイライト処理を高速化した計算機システムを提供
することにある。
【0018】また、本発明の第2の目的は、ディスクア
レイ処理プログラムの制御に要するCPUの負荷を低減
した計算機システムを提供することにある。
【0019】また、本発明の第3の目的は、前記第1、
第2の目的に加え、既存のホスト装置に簡単なサブシス
テムを付加できる拡張性を有する計算機システムを提供
することにある。
【0020】また、本発明の第4の目的は、前記第1、
第2の目的に加え、パリティを生成するためのデータを
ホスト装置側のメインメモリ上に格納することで、新た
にパリティを生成するためのデータを保持するためのメ
モリやこのメモリを制御するための制御回路を不要とし
た簡単な構成であり、かつ低コストを実現した計算機シ
ステムを提供することにある。
【0021】また、本発明の第5の目的は、前記第1、
第2の目的に加え、ホスト装置のシステムバスと複数の
ディスク装置をそれぞれ制御するディスク装置制御回路
とを接続するバスもしくは前記システムバスもしくはメ
インメモリのトラフィックを低減し、処理の高速化を図
る計算機システムを提供することにある。
【0022】また、本発明の第6の目的は、前記第1、
第2の目的に加え、メインメモリのメモリ容量を圧迫せ
ずにパリティ生成に必要なデータを保持し、ホスト装置
のメインメモリアクセスのトラフィックを低減し、CP
Uの処理の高速化を図る計算機システムを提供すること
にある。
【0023】また、本発明の第7の目的は、前記第1、
第2の目的に加え、複数のディスク装置をそれぞれ制御
するディスク制御回路が有するホスト装置のメインメモ
リへのデータ転送機能を活かし、簡単な構成でメインメ
モリ上のパリティ生成のためのデータをパリティ生成用
メモリに転送することができる計算機システムを提供す
ることにある。
【0024】また、本発明の第8の目的は、前記第1、
第2の目的に加え、複数のディスク装置をそれぞれ制御
するディスク制御回路が有するホスト装置のメインメモ
リへのデータ転送機能を活かし、簡単な構成でメインメ
モリ上のパリティ生成のためのデータをメインメモリ上
のパリティ生成のために必要となるデータを格納してお
く領域に転送することができる計算機システムを提供す
ることにある。
【0025】また、本発明の第9の目的は、パリティ生
成のためのデータ転送を高速化できる計算機システムを
提供することにある。
【0026】
【課題を解決するための手段】前記第1、第6の目的を
達成するために、複数のディスク装置と、CPUとメイ
ンメモリと前記複数のディスク装置を制御するディスク
制御回路とを備えたホスト装置とを有する計算機システ
ムであり、前記CPUは、前記メインメモリ上のプログ
ラムに従って、前記複数のディスク装置をパリティ付き
の論理的な一台のディスクアレイ装置として管理し、前
記新データを前記ディスク装置に書き込む処理に遅延さ
せて非同期に前記新パリティの生成と前記ディスク装置
への書き込み処理を行うよう制御するものであり、この
計算機システムに、更新データ、旧パリティ、旧データ
を保持するパリティ生成用メモリを設けたものである。
【0027】前記第2の目的を達成するために、前記パ
リティ生成用メモリに保持されているデータと前記メイ
ンメモリ上に保持されている前記ディスク制御回路に書
き込むべき新データとから新パリティ又は前記更新デー
タを生成するパリティ生成回路と、前記ディスクアレイ
装置からの読み出し時には読み出すべきデータを前記デ
ィスク制御回路から前記パリティ生成用メモリと前記メ
インメモリへ転送し、前記ディスクアレイ装置への書き
込み時には前記新データを前記メインメモリから前記パ
リティ生成用メモリと前記ディスク制御回路へ転送する
第1のデータ転送回路を設けたものである。
【0028】前記第4の目的を達成するために、パリテ
ィ生成のためのデータである前記更新データ、旧パリテ
ィ、旧データを前記メインメモリ上に保持するためのメ
インメモリ上のパリティ生成用領域と、前記メインメモ
リ上のパリティ生成領域に保持した前記パリティ生成の
ためのデータと前記メインメモリ上の前記ディスク制御
回路に書き込むべき新データを保持しているメインメモ
リ上の新データ領域に保持する前記新データとから前記
新パリティ又は更新データを生成するパリティ生成回路
と、前記ディスクアレイ装置からの読み出し時には読み
出すべきデータを、前記ディスク制御回路から前記メイ
ンメモリ上のパリティ生成用領域と前記メインメモリ上
の読みだすべきデータを格納するメインメモリ上の読み
だしデータ領域の両方へ転送し、前記ディスクアレイ装
置への書き込み時には前記メインメモリ上の新データ領
域から、前記メインメモリ上のパリティ生成用領域と前
記ディスク制御回路へ転送する第2のデータ転送回路を
設けたものである。
【0029】前記第7の目的を達成するために、前記パ
リティ生成用メモリと、前記パリティ生成回路と、前記
ディスクアレイ装置からの読み出し時には読み出すべき
データを前記メインメモリ上の読みだしデータ領域へ転
送し、前記ディスクアレイ装置への書き込み時には前記
メインメモリ上の新データ領域から前記新データを前記
ディスク制御回路へ転送する前記ディスク制御回路と、
ディスクアレイ装置からの読み出し時には前記読み出す
べきデータを前記パリティ生成用メモリに転送し、前記
ディスクアレイ装置への書き込み時には前記メインメモ
リ上の新データ領域から前記新データを前記パリティ生
成用メモリに転送する第3のデータ転送回路とを設けた
ものである。
【0030】前記第8の目的を実現するために、前記メ
インメモリ上のパリティ生成用領域と、前記パリティ生
成回路と、前記ディスクアレイ装置からの読み出し時に
は読み出すべきデータを前記メインメモリ上の読みだし
データ領域へ転送し、前記ディスクアレイ装置への書き
込み時には前記メインメモリ上の新データ領域から新デ
ータを前記ディスク制御回路へ転送する前記ディスク制
御回路と、ディスクアレイ装置からの読み出し時には前
記メインメモリ上の読みだしデータ領域上の読み出され
たデータを前記メインメモリ上のパリティ生成用領域
に、前記ディスクアレイ装置への書き込み時には前記メ
インメモリ上の新データ格納領域から新データを前記メ
インメモリ上のパリティ生成用領域に転送する第4のデ
ータ転送回路とを設けたものである。
【0031】前記第9の目的を達成するために、前記パ
リティ生成用メモリと前記第1、第3いずれかのデータ
転送回路との間に前記パリティ生成のためのデータを一
時的に保持するパリティ生成用高速キャッシュメモリを
設けたものである。
【0032】前記第3の目的を達成するために、前記パ
リティ生成用メモリと、前記パリティ生成回路と、前記
第1から第4のデータ転送回路のうちの1つとを1つの
ボード上に搭載して提供する。もしくは、前記パリティ
生成回路と、前記第1から第4のデータ転送回路のうち
の1つとを1つのボード上に搭載して提供する。また、
前記パリティ生成用メモリと、前記パリティ生成回路
と、高速キャッシュと、前記第1から第4のデータ転送
回路のうちの1つとを1つのボード上に搭載して提供す
る。
【0033】前記第5の目的を達成するために、前記パ
リティ生成回路と、前記第1から第4のデータ転送回路
のうちの1つとを1チップに上に形成し、前記システム
バス、もしくは前記ディスク制御装置と前記システムバ
スを接続するバスのどちらかに接続するよう構成したも
のである。
【0034】
【作用】ホスト装置のCPUは、ホスト装置のメインメ
モリ上のプログラムに従って、複数のディスク装置に信
頼性を付加するパリティ付きの論理的な1台のディスク
アレイ装置として前記複数のディスク装置を管理、制御
する。ディスク制御回路は、複数のディスク装置への要
求の発行、データ転送、要求の終了等のディスク制御を
行う。
【0035】前記CPUは前記ディスクアレイ装置への
データ書き込み要求を受信すると、前記プログラムに従
い、前記複数のディスク装置のうちの少なくとも1台の
ディスク装置へのデータ書き込み要求に変換する。CP
Uは、データの書き込みに先立ち、前記メインメモリ上
の書き込むべきデータである新データに対応するパリテ
ィも新規のパリティである新パリティに更新するため、
新パリティの生成に必要な前記新データの書き込まれる
直前のデータである旧データを読みだし、前記新データ
と前記旧データとの排他的論理和を計算し、この結果を
更新データとしてパリティ生成用メモリに保存すると共
に前記新データを次回の同一アドレスの前記ディスクア
レイ装置へのアクセスの際の旧データとして保存する。
この処理の後、前記新データは前記ディスクアレイ装置
に書き込まれ、前記データ書き込み要求は終了する。C
PUは、この新データ書き込み処理に非同期に遅延させ
て、前記旧データに対応するパリティである旧パリティ
を前記ディスクアレイ装置から読みだし、前記パリティ
生成用メモリに保存してある前記更新データと前記旧パ
リティとの排他的論理和を計算し、この結果を新パリテ
ィとして前記ディスクアレイ装置に保存すると共に前記
パリティ生成用メモリに次回の同一アドレスの前記ディ
スクアレイ装置へのアクセスの際の旧パリティとして保
存する。同様に、前記CPUは前記ディスクアレイ装置
へのデータ読みだし要求を受信すると、前記プログラム
に従い、前記ディスクアレイ装置からデータを読みだ
し、メインメモリ上に転送すると共に、前記パリティ生
成用メモリに次回の同一アドレスの前記ディスクアレイ
装置へのアクセスの際の旧データとして保存する。
【0036】前記パリティ生成用メモリは、前記旧デー
タと、前記更新データと、前記旧パリティとを一時保持
することができ、前記新パリティを生成する際に必要な
データである前記更新データ、旧データ、旧パリティの
いずれか一つでも存在している場合には、CPUは前記
ディスクアレイ装置からではなく、前記パリティ生成用
メモリからこれらのデータを読みだし新パリティの生成
処理に使用することができるので、前記ディスクアレイ
装置からデータをリードしてくる必要がなくディスクア
レイ装置へのアクセス回数が減らすことができる。
【0037】また、前記パリティ生成用メモリに前記パ
リティ生成に必要なデータを格納しておくので、前記メ
インメモリ容量を圧迫することなく、また、前記メイン
メモリアクセスのトラフィックを低減できるという前記
第1、第6の目的を達成することができる。
【0038】さらに、パリティ生成回路は、前記パリテ
ィ生成用メモリに保持されている前記更新データ、旧デ
ータ、旧パリティと、前記新データとから前記新パリテ
ィ又は前記更新データの生成を前記CPUの司令に従
い、生成の間、前記CPUの介在なく実施することがで
きる。また、第1のデータ転送回路は、前記ディスクア
レイ装置からのデータ読み出し時には読み出すべきデー
タを前記ディスク制御回路から前記パリティ生成用メモ
リとメインメモリ上の読みだしデータ領域の両方へ転送
し、前記ディスクアレイ装置への書き込み時にはメイン
メモリ上新データ領域から前記新データを前記パリティ
生成用メモリと前記ディスク制御回路へ転送すること
を、CPUの司令に従い、データ転送の間CPUの介在
なく実施することができる。また、前記パリティ生成回
路および前記第1のデータ転送回路は、ディスクアレイ
制御処理であるパリティ生成処理並びにパリティ生成用
メモリへのデータ転送処理を、前記CPUの介在なく実
施できるので、前記CPUの負荷を低減するという前記
第2の目的を達成することができる。
【0039】さらに、メインメモリ上のパリティ生成用
領域は、前記パリティ生成用メモリに格納していた前記
更新データ、旧パリティ、旧データを前記メインメモリ
上に保持し、パリティ生成回路は、前記メインメモリ上
のパリティ生成領域に保持した前記パリティ生成用デー
タと前記メインメモリ上の新データ領域に保持する前記
新データとから前記新パリティ又は更新データを生成
し、第2のデータ転送回路は、前記CPUからの司令に
基づき、データ転送中は前記CPUの介在を一切必要と
せずに、前記ディスクアレイ装置からの読み出し時には
読み出すべきデータを前記ディスク制御回路から前記メ
インメモリ上のパリティ生成用領域と前記メインメモリ
上の読みだしデータ領域の両方へ転送し、前記ディスク
アレイ装置への書き込み時には前記メインメモリ上の新
データ領域から新データを前記メインメモリ上のパリテ
ィ生成用領域と前記ディスク制御回路の両方へ転送でき
るので、前記第1、第2の目的を前記同様達成でき、さ
らに、前記パリティ生成用メモリと、その制御回路を不
要にすることができるので簡単な構成で、かつ低コスト
を実現するという第4の目的を達成できる。
【0040】ディスク制御回路は、前記CPUからの司
令により、データ転送の間、前記CPUの介在なく、前
記ディスクアレイ装置からの読み出し時には前記読み出
しデータを前記メインメモリ上の読みだしデータ領域へ
転送し、前記ディスクアレイ装置への書き込み時には前
記メインメモリ上の新データ領域から前記新データを前
記ディスク制御回路へ転送することができ、第3のデー
タ転送回路は、前記CPUの司令により、データ転送の
間、前記CPUの介在なく、前記ディスクアレイ装置か
らの読み出し時には前記ディスク制御回路が前記メイン
メモリ上の読みだしデータ領域に転送した前記読み出し
データを前記パリティ生成用メモリに転送し、前記ディ
スクアレイ装置への書き込み時には前記メインメモリ上
の新データ領域上の新データを前記パリティ生成用メモ
リに転送することができるので、前記第1、第2の目的
を前記同様達成でき、さらに、複数のディスク装置をそ
れぞれ制御するディスク制御回路が有する前記メインメ
モリへのデータ転送機能を活かし、簡単な構成でメイン
メモリ上のパリティ生成のためのデータをパリティ生成
用メモリに転送することができるという第7の目的を達
成できる。
【0041】さらに、前記メインメモリ上パリティ生成
用領域と、前記パリティ生成回路と、前記ディスク制御
回路は前記同様動作し、第4のデータ転送回路は、前記
CPUの司令により、データ転送の間、前記CPUの介
在なく、前記ディスクアレイ装置からの読み出し時には
前記ディスク制御回路が前記メインメモリ上読みだしデ
ータ領域に転送した前記読みだしデータを前記メインメ
モリ上パリティ生成用領域に転送し、前記ディスクアレ
イ装置への書き込み時には前記メインメモリ上新データ
領域から前記新データを前記メインメモリ上パリティ生
成用領域に転送することができるので、前記第1、第2
の目的を前記同様達成でき、さらに、前記ディスク制御
回路が有する前記メインメモリへのデータ転送機能を活
かし、簡単な構成でパリティ生成のために必要なデータ
を前記メインメモリ上パリティ生成用領域に転送するこ
とができるという前記第8の目的を達成できる。
【0042】さらに、パリティ生成用高速キャッシュメ
モリは、前記パリティ生成用メモリと、前記第1または
第3のデータ転送回路との間にあり、前記ディスク制御
回路もしくは前記メインメモリと前記パリティ生成用メ
モリ間のデータ転送されるデータを一時保存でき、前記
パリティ生成処理の際に該当するデータが前記パリティ
生成用高速キャッシュメモリ内に存在するときは前記高
速キャッシュメモリからデータを転送することができる
ので、パリティ生成のためのデータ転送を高速化できる
という前記第9の目的を達成できる。
【0043】さらに、前記パリティ生成用メモリと、前
記パリティ生成回路と、前記第1または第3のデータ転
送回路を1つのボード上に搭載すると簡単なサブシステ
ムとしてホスト装置から独立させることができるので、
既存のホスト装置に簡単なサブシステムを付加できる拡
張性を提供できるという前記第3の目的を達成すること
ができる。
【0044】また、前記パリティ生成用メモリと、前記
第2または第4のデータ転送回路を1つのボード上に搭
載すると簡単なサブシステムとしてホスト装置から独立
させることができるので、既存のホスト装置に簡単なサ
ブシステムを付加できる拡張性を提供できるというもう
一つの前記第3の目的を達成することができる。
【0045】さらに、前記パリティ生成回路と前記第1
から第4のデータ転送回路のうちの1つとを1チップ上
に集積することで、前記更新データ及び前記新パリティ
の生成処理と、前記データ転送処理の間に同一データを
扱う際には前記パリティ生成メモリまたは前記メインメ
モリ上パリティ生成用領域から二度にわたり同じデータ
を転送する必要をなくすことができるので、ホスト装置
のシステムバスと前記ディスク装置制御回路とを接続す
るバスもしくは前記システムバスもしくは前記メインメ
モリのトラフィックを低減し、処理の高速化を図ること
ができるという前記第5の目的を達成することができ
る。
【0046】
【実施例】以下、本発明の実施例を図を用いて説明す
る。
【0047】本発明の第1の実施例を図1のシステム構
成を用いて説明する。図1において、1はホストシステ
ム、2はアレイ制御補助手段、3はディスク装置群であ
る。
【0048】ホストシステム1は、ホストCPU(中央
処理演算機)101と、キャッシュ102と、ローカル
バス・システムバス間ブリッジ103と、メインメモリ
104と、バスインターフェース107で構成してい
る。ホストCPU101と、キャッシュ102と、ロー
カルバス・システムバス間ブリッジ103はローカルバ
ス105により接続する。ローカルバス・システムバス
間ブリッジ103と、バスインターフェース107は、
システムバス106に接続する。
【0049】ホストシステム1において、メインメモリ
104は、ユーザ領域108と、ディスクアレイ制御プ
ログラム領域109と、旧データアドレス保持部110
と、パリティアドレス保持部111を有する。
【0050】ディスクアレイ制御プログラム領域109
は、図2に示すように、アプリケーションなどから要求
を受け取る要求受信部120と、次の処理を決定する要
求管理部121と、ディスクアレイシステム特有のアド
レス変換(データ分散/集合処理を含む)を行い、デー
タディスクアドレスとパリティディスクアドレスを算出
するアドレス変換部122と、旧データが該一時保持手
段に存在するかどうかを検索する旧データ検索部123
と、後述する旧更新データ、または、新パリティが該一
時保持手段に存在するかどうかを検索するパリティ検索
部124と、ディスクコマンドとディスクアレイデータ
転送手段制御コマンドと排他的論理和生成手段制御コマ
ンドを生成するアレイ制御補助手段制御コマンド生成部
125と、アレイ制御補助手段制御コマンドをMPU2
10に発行するMPU制御部128と、アプリケーショ
ンなどに要求の終了を知らせる要求終了部126と、遅
延パリティ処理を行うべきかどうかを判定する遅延パリ
ティ処理判定部127で構成している。
【0051】図1に戻り、アレイ制御補助手段2は、バ
スインターフェース201と、MPU(マイクロ処理部)
210と、MPUメモリ211と、5つのディスク制御
回路(以下、ディスクインターフェース制御手段)20
5〜209と、メモリ間コピー、および、ディスクと各
メモリ間、パリティ生成回路(以下、排他的論理和生成
手段)203と各メモリ間のデータ転送を行うデータ転
送回路(ディスクアレイデータ転送手段)202と、排
他的論理和生成手段203と、パリティ生成のためのデ
ータを格納するパリティ生成用メモリ(以下、メモリ2
12)と、遅延パリティ処理を行っていないパリティア
ドレスを記録する未記録パリティアドレス保持手段25
0で構成し、それぞれをMPUバス213で接続する。
該未記録パリティアドレス保持手段250は、バッテリ
ーバックアップしておく。アレイ制御補助手段2はホス
トシステムの一部として提供するか、アレイ制御補助手
段2に含まれるメモリ212と、ディスクアレイデータ
転送手段202と、排他的論理和生成手段203とを1
つのボード上に構成し、ホストシステム1のシステムバ
ス106や、システムバス106とディスクインターフ
ェース205〜209とを接続するアレイ制御補助手段
内部バス204に接続して構成することが考えられる。
1ボードに構成した場合、既存システムに簡単なサブシ
ステムとして付加でき、拡張性を向上させることができ
る。また、バスインターフェース201と、5つのディ
スクインターフェース制御手段205〜209と、ディ
スクアレイデータ転送手段202と、排他的論理和生成
手段203と、メモリ212をアレイ制御補助手段内部
バス204で接続する。バスインターフェース201は
ホストシステム1のバスインターフェース107と接続
する。メモリ212は、ホストCPU101が管理する
メモリアドレス空間にマッピングしているとし、直接参
照可能な構成であるとし、バスインターフェイス201
が制御を行う。
【0052】アレイ制御補助手段2において、MPUメ
モリ211は、MPU制御プログラム領域214と、多
数送られてくるMPUコマンドをキューイングしておく
MPUコマンド格納領域215を有する。MPU制御プ
ログラム領域214は、図3に示すように、MPU制御
部128から要求を受け取る要求受信部220と、次の
処理を決定する要求管理部221と、ディスクアレイデ
ータ転送手段202にコマンドを発行するディスクアレ
イデータ転送手段制御部222と、ディスクインターフ
ェース制御手段205〜209にコマンドを発行するデ
ィスクインターフェース制御手段制御部223と、排他
的論理和生成手段203にコマンドを発行する排他的論
理和生成手段制御部224と、ホストCPU101に要
求の終了の割り込み信号を発行する要求終了部225で
構成している。
【0053】再び図1に戻り、アレイ制御補助手段2に
おいて、メモリ212は、旧データを保持する旧データ
保持手段216と、パリティ生成作業に用いるデータを
一時的に保持しておくパリティ生成作業領域217と、
旧更新データ、または、旧パリティを保持するパリティ
保持手段218と、メモリ212のアドレス管理を行う
メモリ制御手段219を有する。
【0054】アレイ制御保持手段2において、図4に示
すディスクアレイデータ転送手段202は、データ入出
力手段260と、データバッファ261と、2方向デー
タ転送制御手段262で構成している。2方向データ転
送制御手段262は、転送するデータ長をバイト単位で
指定する転送長レジスタ263と、データの転送元のI
Oアドレス、または、メモリアドレスを格納するレジス
タとして、転送元1アドレスレジスタ264と、転送元
2アドレスレジスタ265と、転送元3アドレスレジス
タ266を有し、データの転送先のIOアドレス、また
は、メモリアドレスを格納するレジスタとして、転送先
1アドレスレジスタ267と、転送先2アドレスレジス
タ268を有し、さらに、排他的論理和生成手段203
のIOアドレスを格納する排他的論理和生成手段アドレ
スレジスタ269と、各転送元と各転送先は、それぞれ
IOかメモリかを選択し、排他的論理和生成に係わるデ
ータ転送かどうかを指定するモード選択レジスタ270
と、転送開始コマンドを受け取るコマンドレジスタ27
1を有する。
【0055】実施例1において、ディスクアレイデータ
転送手段202は、転送元1から転送先1へ、または、
転送元1から転送先1、転送先2の同時に2ヶ所の転送
先へ、転送長バイト数のDMA(Direct Memory Access)
転送を行う。ここでDMA転送とは、CPUやMPUに
起動されると、その後はCPUやMPUの介在なくデー
タ転送を行う転送方法のことである。同時に2ヶ所の転
送先へDMA転送することを一括DMA転送と呼ぶこと
とする。
【0056】アレイ制御補助手段2において、図5に示
す排他的論理和生成手段203は、データ入出力手段2
40と、データバッファ241と、排他的論理和演算を
行う排他的論理和演算手段242と、データの入出力の
管理とデータバッファ241の初期化を行うデータ入出
力管理手段243で構成している。データ入出力管理手
段243は、入力してくるデータ数を格納する入力デー
タカウンタレジスタ244と、データバッファ241の
初期化を行うデータバッファ初期化レジスタ245を有
する。
【0057】図1に戻り、メモリ212の旧データ保持
手段216と、メインメモリ104の旧データアドレス
保持部110は、それぞれ同数のデータを保持するよう
にし、例えば、pを自然数として、p番目の各保持手段
のデータが、互いに対応するようにしておく。
【0058】旧データ保持手段216は、1ブロックの
大きさが磁気ディスク装置の論理ブロック長に等しいメ
モリ領域をp個集めたものである。また、旧データアド
レス保持部110は、旧データ保持手段216に保持さ
れている旧データのメモリアドレスと、それに対応した
データが格納されているディスク装置番号と、そのディ
スク装置内の論理ブロックアドレスであるデータディス
クアドレスと、タイムスタンプ等からなる構造体の配列
であり、配列の個数は旧データ保持手段216の有する
ブロック数pに一致する。
【0059】メモリ212のパリティ保持手段218
と、メインメモリ104のパリティアドレス保持部11
1は、それぞれ同数のデータを保持するようにし、例え
ば、qを自然数として、q番目の各保持手段のデータ
が、互いに対応するようにしておく。
【0060】パリティ保持手段218は、1ブロックの
大きさが磁気ディスク装置の論理ブロック長に等しいメ
モリ領域をq個集めたものである。このパリティ保持手
段218の有するブロックの個数qは、遅延パリティ処
理に用いることのできるパリティデータの個数を決定す
ることになる。また、パリティアドレス保持部111
は、パリティ保持手段218に保持されている旧パリテ
ィ、または、旧更新データのメモリアドレスと、それに
対応したパリティが格納されているディスク装置番号
と、そのディスク装置内の論理ブロックアドレスである
パリティディスクアドレスと、タイムスタンプと、保持
しているものが旧更新データなのか旧パリティなのか、
旧パリティならばディスクに書かれているものと同じか
どうかを示すフラグ等からなる構造体の配列であり、配
列の個数はパリティ保持手段218の有するブロック数
qに一致する。
【0061】また、未記録パリティアドレス保持手段2
50は、データディスクとのパリティの整合性がとれて
いないパリティディスクアドレスを格納するメモリ領域
をr個集めたものである。rは、自然数とする。
【0062】ディスク装置群3は、本実施例においては
5台のディスク装置301〜305により構成してい
る。各ディスク装置301〜305はアレイ制御補助手
段2の5つのディスクインターフェース制御手段205
〜209とそれぞれケーブルにより接続する。
【0063】本実施例のディスクアレイライト処理を以
下に示す。従来例のRAID5では、ディスクアレイラ
イト処理時に、データディスクへの旧データリード処理
と新データライト処理、および、パリティディスクへの
旧パリティリード処理と新パリティライト処理が必要と
なり、占有ディスク台数は2台で、合計4回のディスク
アクセスが発生し、ディスクアレイライト性能は著しく
低下する。
【0064】RAID5のディスクアレイライト処理に
おいて、新パリティは式1で求められる。ここで、新デ
ータと旧データの排他的論理和を新更新データとして定
義すると、新パリティは、新更新データと旧パリティの
排他的論理和となる。このことを、以下の式に示す。
【0065】 新更新データ = 新データ XOR 旧データ (式2) 新パリティ = 新更新データ XOR 旧パリティ (式3) 新データライト処理時に式2のように新更新データを生
成し、一時保持手段に保持しておく。ここで、旧データ
保持手段216とパリティ生成作業領域217とパリテ
ィ保持手段218をまとめて一時保持手段と呼ぶことと
する。その後、保持しておいた新更新データを用いて、
新データライト処理とは非同期に、式3のように新パリ
ティを生成し、新パリティライト処理を行う。これによ
り、従来のディスクアレイライト処理を、独立な2つの
処理に分割でき、占有ディスク台数を各処理ごとに1台
ずつにできる。なお、式2および式3の新更新データ
は、同一のものであるが、後述する遅延パリティ処理
(P1)においては式3の段階の新更新データを旧更新
データと呼ぶこととする。ここで、旧更新データとは、
前回のディスクアレイライト処理において一時保持手段
に格納された新更新データのことである。また、式3の
新パリティは、後述する遅延パリティ処理(P2)にお
いては旧パリティと呼ぶこととする。
【0066】また、新データ、新パリティ等のデータを
一時保持手段に保持しておき、再度これらのデータがア
クセスされた際には、ディスクからではなく、一時保持
手段から読み出す。これにより、旧データリード処理、
旧パリティリード処理等のディスクアクセス数を削減で
きる。以上の方法により、ディスクアレイライト処理性
能を向上させる。
【0067】上記の新データライト処理に係わる処理を
データライト処理と呼ぶこととする。また、データライ
ト処理と非同期に行われる、新パリティライト処理に係
わる処理を遅延パリティ処理と呼ぶこととする。本実施
例のディスクアレイライト処理は、データライト処理と
遅延パリティ処理から成る。
【0068】データライト処理は、一時保持手段が何を
格納しているかにより、以下の6つのタイプに分類でき
る。転送は、ディスクアレイデータ転送手段202によ
って行う。
【0069】(W1)一時保持手段に、何もない場合。
【0070】旧データをデータディスクからリードして
一時保持手段に転送する処理と、新データをユーザ領域
108から、データディスクと一時保持手段に転送する
処理と、一時保持手段にある旧データと新データから新
更新データを生成し、一時保持手段に転送する処理を行
う。新更新データの生成には、式2を用いる。
【0071】(W2)一時保持手段に、旧データがある
場合。
【0072】(W1)の場合とほぼ同様であるが、旧デ
ータをデータディスクからリードして一時保持手段に転
送する処理は必要ない。新更新データの生成には、式2
を用いる。
【0073】(W3)一時保持手段に、旧更新データが
ある場合。
【0074】旧データをデータディスクからリードして
一時保持手段に転送する処理と、新データをユーザ領域
108からデータディスクと一時保持手段に転送する処
理と、一時保持手段にある旧データと新データと旧更新
データから新更新データを生成し、一時保持手段に転送
する処理を行う。新更新データの生成には、式4を用い
る。
【0075】 新更新データ = 新データ XOR 旧データ XOR 旧更新データ (式4) ここで、式4を導く。まず、(W1)、または、(W
2)のデータライト処理が行われ、そのときの新データ
と新更新データが一時保持手段にあるとする。さらに新
データを書き換えるときに、新しくライトするデータを
新新データ、生成する新しい更新データを新新更新デー
タ、新新データに対応する新しいパリティを新新パリテ
ィと呼ぶこととする。つまり、書き換える前の新データ
は、新新データから見ると旧データとなり、新データに
対応する新パリティは、新新パリティから見ると、旧パ
リティとなる。新新データのデータライト処理が終了
し、かつ、新新データに対応した遅延パリティ処理が行
われていないとすると、一時保持手段には、新新データ
と、新新更新データがある。ここで、式1より式5が、
式3と式5より式6が導かれる。
【0076】 新新パリティ = 新新データ XOR 新データ XOR 新パリティ (式5) 新新パリティ = 新新データ XOR 新データ XOR 新更新データ XOR 旧パリティ (式6) 新新更新データ = 新新データ XOR 新データ XOR 新更新データ (式7) 新新パリティ = 新新更新データ XOR 旧パリティ (式8) 式7のように新新更新データを、新新データと、新デー
タと、新更新データの排他的論理和とすると、新新パリ
ティは、式8のように新新更新データと、旧パリティの
排他的論理和となる。したがって、新新パリティの生成
の際には、旧パリティがあればよく、新パリティは必要
ないので、遅延パリティ処理が行われなくてもデータラ
イト処理を続けて行うことができる。このように、旧パ
リティを用いて新新データに対応した遅延パリティ処理
を行うことができるので、更新データは、遅延パリティ
処理が行われなくても何回でも再更新することができ
る。したがって、式7より式4が導かれる。
【0077】(W4)一時保持手段に、旧更新データと
旧データがある場合。
【0078】(W3)の場合とほぼ同様であるが、旧デ
ータをディスクからリードして一時保持手段に転送する
処理は必要ない。新更新データの生成には、式4を用い
る。
【0079】(W5)一時保持手段に、旧パリティがあ
る場合。
【0080】旧データをディスクからリードして一時保
持手段に転送する処理と、新データをユーザ領域108
からディスクと一時保持手段に転送する処理と、一時保
持手段にある旧データと新データと旧パリティから新パ
リティを生成し、一時保持手段に転送する処理を行う。
新パリティの生成には、式1を用いる。
【0081】(W6)一時保持手段に、旧パリティと旧
データがある場合。
【0082】(W5)の場合とほぼ同様であるが、旧デ
ータをディスクからリードして一時保持手段に転送する
処理は必要ない。新パリティの生成には、式1を用い
る。
【0083】データライト処理において、一時保持手段
に格納した新データは、次回、データライト処理(W
2)(W4)(W6)における旧データとなる。データ
ライト処理(W2)(W4)(W6)においては、旧デ
ータリード処理を行わないので、ディスクアクセスを1
回削減できる。
【0084】データライト処理(W1)(W2)(W
3)(W4)において、一時保持手段に格納した新更新
データは、次回、データライト処理(W3)(W4)お
よび後述する遅延パリティ処理(P1)における旧更新
データとなる。
【0085】データライト処理(W5)(W6)におい
て、一時保持手段に格納した新パリティは、次回、デー
タライト処理(W5)(W6)および後述する遅延パリ
ティ処理(P2)における旧パリティとなる。データラ
イト処理(W5)(W6)においては、旧パリティリー
ド処理を行わないので、ディスクアクセスを1回削減で
きる。また、新パリティは一時保持手段に格納し、新パ
リティライト処理を行わないので、ディスクアクセスを
1回削減できる。このように、旧パリティの読み出しと
新パリティの書き込みは、一時保持手段を用いるので、
パリティディスクにアクセスすることなくデータライト
処理を連続して行うことができる。
【0086】次に、遅延パリティ処理は、一時保持手段
が何を格納しているかにより、以下の2つのタイプに分
類できる。ただし、一時保持手段に既にディスクに書き
込んだ旧パリティが格納されている場合は、遅延パリテ
ィ処理は行わない。また、一時保持手段に何も格納され
ていない場合、もしくは、旧データだけが格納されてい
る場合も、遅延パリティ処理は行わない。転送は、ディ
スクアレイデータ転送手段202によって行う。
【0087】(P1)一時保持手段に、旧更新データが
ある場合。
【0088】旧パリティをディスクからリードして一時
保持手段に転送する処理と、一時保持手段にある旧パリ
ティと旧更新データから新パリティを生成し、一時保持
手段に転送する処理と、新パリティを一時保持手段から
ディスクへ転送する処理から成る。新パリティの生成に
は、式3を用いる。なお、(P1)における旧更新デー
タは、式3の新更新データに相当する。一時保持手段に
格納した新パリティは、次回、データライト処理(W
5)(W6)における旧パリティとなる。
【0089】(P2)一時保持手段に、ディスクに書き
込んでいない旧パリティがある場合。
【0090】旧パリティを一時保持手段からディスクへ
転送する。なお、(P2)における旧パリティは、式3
の新パリティに相当する。
【0091】以上が、本実施例のディスクアレイライト
処理である。上記のように、データのリードと、パリテ
ィのリード・ライトに一時保持手段を用いることにより
ディスクアクセス回数を削減でき、処理の高速化を図る
ことができる。
【0092】しかし、メインメモリ内のユーザ領域10
8中の新データを一時保持手段があるメモリ領域にコピ
ーして、保持しておく必要がある。以下、このコピーを
メモリ間コピーと呼ぶ。また、新更新データおよび新パ
リティの生成のために、排他的論理和演算を行う必要が
ある。本実施例は、アレイ制御補助手段2を用いて、メ
モリ間コピーと、排他的論理和演算を行い、CPUの負
荷を軽減させる方法を提供するものである。
【0093】また、本実施例のディスクアレイリード処
理を以下に示す。ディスクアレイリード処理は、一時保
持手段が何を格納しているかにより、以下の2つのタイ
プに分類できる。転送は、ディスクアレイデータ転送手
段202によって行う。
【0094】(R1)一時保持手段に、旧データがない
場合。
【0095】目的データである旧データをディスクから
リードして一時保持手段とユーザ領域108に転送する
処理を行う。
【0096】(R2)一時保持手段に、旧データがある
場合。
【0097】目的データである旧データを一時保持手段
からユーザ領域108に転送する。
【0098】ここで、図1の構成をとるディスクアレイ
システムでのディスクアレイリード処理動作と、ディス
クアレイライト処理動作について説明する。ディスクア
レイシステムでは、信頼性を向上させるために、パリテ
ィデータを生成する必要があるが、本実施例のディスク
アレイシステムでは、ディスクアクセスによる性能低下
を避けるために、上記の通り、ディスクアレイライト処
理時には新データと新パリティの書き込み処理を非同期
に行う。そこで、ディスクアレイライト処理について
は、データライト処理と、データライト処理から遅延し
て行われる遅延パリティ処理に分けて説明する。
【0099】[ディスクアレイリード処理]はじめに、
ディスクアレイリード処理動作を図1、図2、図3、図
6を用いて説明する。動作説明の中で、(401)、
(402)は、図6の番号に対応する。ここで、目的デ
ータは、図1のディスク装置301にあるD0であると
する。図2において、ホストシステム1上のアプリケー
ションなどからディスクアレイリード要求が発行される
と、ホストCPU101は、ディスクアレイ制御プログ
ラム領域109内の各プログラムを用いて、以下の処理
を行う。まず、図2の要求受信部120が、該リード要
求を受け取る。要求管理部121は、該リード要求をア
ドレス変換部122に渡し、アドレス変換部122は、
目的データのデータディスクアドレスを算出する。
【0100】旧データ検索部123は、メインメモリ1
04の旧データアドレス保持部110に、目的データの
データディスクアドレスが存在するかを調べることによ
り、目的データがメモリ212内の旧データ保持手段2
16にあるか検索し、ディスクアレイリード処理(R
1)(R2)のタイプ分けを行う。
【0101】該データディスクアドレスが、旧データア
ドレス保持部110に存在しないときは、ディスクアレ
イリード処理(R1)となり、目的データを保持するの
に必要なサイズのメモリを旧データ保持手段216に確
保し、そのメモリアドレスを算出すると共に、該メモリ
アドレスとデータディスクアドレスをまとめて同じ配列
の構造体として、旧データアドレス保持部110に保持
する。
【0102】該データディスクアドレスが、旧データア
ドレス保持部110に存在しているときは、ディスクア
レイリード処理(R2)となり、目的データが存在する
旧データ保持手段216のメモリアドレスを算出する。
【0103】次に、アレイ制御補助手段制御コマンド生
成部125は、以下のようなコマンドを生成する。
【0104】ディスクアレイリード処理(R1)の場合
は、目的データのデータディスクアドレスを格納したデ
ータディスクのリードコマンドと、目的データをディス
クインターフェース制御手段205から、旧データ保持
手段216とユーザ領域108へ一括DMA転送するた
めのディスクアレイデータ転送手段制御コマンドを生成
し、各コマンドをMPU制御コマンドとしてまとめる。
該ディスクアレイデータ転送手段制御コマンドは、転送
長と、転送元1であるディスクインターフェース制御手
段205のIOアドレスと、転送先1である旧データ保
持手段216のメモリアドレスと、転送先2であるユー
ザ領域108のメモリアドレスと、転送元1と転送先1
と転送先2が、それぞれIOかメモリかを指定するモー
ド選択コマンドと、転送開始コマンドを有する。
【0105】ディスクアレイリード処理(R2)の場合
は、目的データを旧データ保持手段216から、ユーザ
領域108へDMA転送するためのディスクアレイデー
タ転送手段制御コマンドを生成し、該コマンドをMPU
制御コマンドとする。該ディスクアレイデータ転送手段
制御コマンドは、転送長と、転送元1である旧データ保
持手段216のメモリアドレスと、転送先1であるユー
ザ領域108のメモリアドレスと、転送元1と転送先1
が、それぞれメモリであることを指定するモード選択コ
マンドと、転送開始コマンドを有する。
【0106】MPU制御部128は、図1のバスインタ
ーフェース107を介して、MPU210に対し該MP
U制御コマンドを発行する。該MPU制御コマンドを受
け取ったMPU210は、MPU制御プログラム領域2
14内の各プログラムを用いて、以下の処理を行う。ま
ず、図3の要求受信部220が、MPU制御コマンドを
受け取り、要求管理部221に渡す。
【0107】ディスクアレイリード処理(R1)の場
合、ディスクインターフェース制御手段制御部223
は、ディスクインターフェース制御手段205に対し、
MPU制御コマンドのうちの目的データのリードコマン
ドを発行する。次に、ディスクインターフェース制御手
段205は、目的データが格納されているディスク装置
301に対して受信した該リードコマンドを発行する。
ディスク装置301は、該リードコマンドを受け取り、
データをディスクインターフェース制御手段205に転
送する。ディスクインターフェース制御手段205は、
MPU210に割り込み信号を発行する。
【0108】次に、ディスクアレイデータ転送手段制御
部222は、ディスクアレイデータ転送手段202に対
しMPU制御コマンドのうちのディスクアレイデータ転
送手段制御コマンドを発行する。ディスクアレイデータ
転送手段202は、該コマンドを受け取り、目的データ
をディスクインターフェース制御手段205から、ユー
ザ領域108と旧データ保持手段216に一括DMA転
送する(401)。ディスクアレイデータ転送手段20
2は、MPU210に割り込み信号を発行する。
【0109】ここで、ディスクアレイデータ転送手段2
02が、ディスクアレイリード処理(R1)において、
一括DMA転送するときの動作を図4を用いて説明す
る。
【0110】ディスクアレイデータ転送手段202は、
ディスクアレイデータ転送手段制御コマンドによって2
方向データ転送制御手段262の転送長レジスタ263
と、転送元1アドレスレジスタ264と、転送先1アド
レスレジスタ267と、転送先2アドレスレジスタ26
8と、モード選択レジスタ270がセットされ、コマン
ドレジスタ271に転送開始コマンドが設定されると、
転送を開始する。
【0111】この場合、転送元1がIO、転送先1と転
送先2がメモリである。データバッファ261の容量が
nバイトだとすると、転送単位はnバイトとなる。転送
長をmバイト、転送元1アドレスをx番地、転送先1ア
ドレスをy番地、転送先2アドレスをz番地とし、x番
地はIOアドレス、y番地とz番地はメモリアドレスと
し、IOから2ヶ所のメモリへの一括DMA転送とす
る。まず、x番地から、データ入出力手段260を介し
て、データバッファ261へnバイトの転送が行われ、
次にデータバッファ261から、データ入出力手段26
0を介して、y番地へnバイトの転送が行われ、つづい
て同じ様にz番地へnバイトの転送が行われ、1つの転
送単位の転送が終了する。
【0112】次の転送単位の転送の前に、転送長レジス
タ263からnを引き、転送先1アドレスレジスタ26
7と、転送先2アドレスレジスタ268にnを加える。
転送元1は、IOであるので、転送元1アドレスレジス
タ264の値は変更しない。すると、次は上記と同様な
方法で、x番地から(y+n)番地へnバイトの転送が
行われ、x番地から(z+n)番地へnバイトの転送が
行われる。この動作を転送長レジスタ263が0になる
まで続けることにより、x番地から、y番地とz番地へ
のmバイトの一括DMA転送が行われる。DMA転送が
終了すると、2方向データ転送制御手段262は割り込
み信号を発行する。
【0113】また、ディスクアレイリード処理(R2)
の場合、図3のディスクアレイデータ転送手段制御部2
22は、ディスクアレイデータ転送手段202に対しM
PU制御コマンドのうちのディスクアレイデータ転送手
段制御コマンドを発行する。ディスクアレイデータ転送
手段202は、該コマンドを受け取り、目的データを旧
データ保持手段216から、ユーザ領域108にDMA
転送する(402)。ディスクアレイデータ転送手段2
02は、MPU210に割り込み信号を発行する。
【0114】ディスクアレイデータ転送手段202が、
ディスクアレイリード処理(R2)において、DMA転
送するときの動作を図4を用いて説明する。
【0115】ディスクアレイデータ転送手段202は、
ディスクアレイデータ転送手段制御コマンドによって2
方向データ転送制御手段262の転送長レジスタ263
と、転送元1アドレスレジスタ264と、転送先1アド
レスレジスタ267と、モード選択レジスタ270がセ
ットされ、コマンドレジスタ271に転送開始コマンド
が設定されると転送を開始する。
【0116】この場合、転送元1と転送先1はメモリで
ある。データバッファ261の容量がnバイトだとする
と、転送単位はnバイトとなる。転送長をmバイト、転
送元1アドレスをx番地、転送先1アドレスをy番地と
し、x番地とy番地はメモリアドレスとし、メモリから
メモリへのDMA転送とする。まず、x番地から、デー
タ入出力手段260を介して、データバッファ261へ
nバイトの転送が行われ、次にデータバッファ261か
ら、データ入出力手段260を介して、y番地へnバイ
トの転送が行われ、1つの転送単位の転送が終了する。
【0117】次の転送単位の転送の前に、転送長レジス
タ263からnを引き、転送元1アドレスレジスタ26
4と、転送先1アドレスレジスタ267にnを加える。
すると、次は上記と同様な方法で、(x+n)番地から
(y+n)番地へnバイトの転送が行われる。この動作
を転送長レジスタ263が0になるまで続けることによ
り、x番地から、y番地へのmバイトのDMA転送が行
われる。DMA転送が終了すると、2方向データ転送制
御手段262は割り込み信号を発行する。
【0118】以下、ディスクアレイリード処理(R1)
(R2)にかかわらず、同じ処理となる。目的データの
転送が終了すると、図3の要求管理部221は、要求終
了部225に処理を移し、要求終了部225は、図1の
ホストCPU101に割り込み信号を出す。割り込み信
号を受けたホストCPU101は、図2のディスクアレ
イ制御プログラム領域109内の要求管理部121を用
いて、要求終了部126に処理を移し、要求終了部12
6は、全体のリード処理を終了させる。
【0119】一般に、アプリケーションは、ファイルの
データを更新する際、データを読み出し、修正した後、
書き戻すリードモディファイライトを行うことが多い。
したがって、ディスクアレイリード処理時には、読み出
したデータを旧データ保持手段216に保持するので、
次回のリード処理の高速化が図れると同時に、リードモ
ディファイライト時のデータライト処理における更新デ
ータ生成処理の高速化を図ることができる。
【0120】[ディスクアレイライト処理]次に、ディ
スクアレイライト処理におけるデータライト処理と遅延
パリティ処理について説明する。
【0121】[データライト処理]データライト処理
(W3)を例として、データライト処理動作を図1、図
2、図3、図7を用いて説明する。動作説明の中で、
(501)から(506)は、図7の番号に対応する。
ここで、新データは、図1のディスク装置301のD0
に書き込まれるとする。ホストシステム1上のアプリケ
ーションなどからディスクアレイライト要求が発行され
ると、ホストCPU101は、ディスクアレイ制御プロ
グラム領域109内の各プログラムを用いて、以下の処
理を行う。
【0122】まず、図2の要求受信部120が、該ライ
ト要求を受け取る。要求管理部121は該ライト要求を
アドレス変換部122に渡し、アドレス変換部122は
新データをライトするデータディスクアドレスと、新デ
ータに対応したパリティディスクアドレスを算出する。
【0123】旧データ検索部123は、算出したデータ
ディスクアドレスが、メインメモリ104の旧データア
ドレス保持部110に存在するかを調べることにより、
メモリ212内の旧データ保持手段216に旧データが
あるか検索し、データライト処理のタイプ分けを行う。
【0124】データライト処理(W3)では、該データ
ディスクアドレスが旧データアドレス保持部110に存
在しないので、新データを保持するのに必要なサイズの
メモリを旧データ保持手段216に確保すると共に、そ
のメモリアドレスとデータディスクアドレスをまとめて
同じ配列の構造体として、旧データアドレス保持部11
0に保持する。
【0125】パリティ検索部124は、算出したパリテ
ィディスクアドレスが、メインメモリ104のパリティ
アドレス保持部111に存在するかを調べることによ
り、メモリ212内のパリティ保持手段218に旧更新
データ、または、旧パリティがあるか検索し、データラ
イト処理のタイプ分けを行う。
【0126】もし、該パリティディスクアドレスがパリ
ティアドレス保持部111に存在しているときは、パリ
ティディスクアドレスに付加されているフラグを元に、
旧更新データか、旧パリティかを調べる。データライト
処理(W3)では、旧更新データが存在するパリティ保
持手段218のメモリアドレスを算出する。
【0127】次に、アレイ制御補助手段制御コマンド生
成部125は、データライト処理(W3)では、以下の
ようなコマンドを生成し、これらをまとめてMPU制御
コマンドとする。
【0128】旧データのデータディスクアドレスを格納
したデータディスクのリードコマンドと、旧データをデ
ィスクインターフェース制御手段205から、パリティ
生成作業領域217へDMA転送するためのディスクア
レイデータ転送手段制御コマンドを生成する。排他的論
理和生成手段制御コマンドとしては、データバッファ初
期化コマンドと、入力データカウンタレジスタ244に
設定する値として入力データ数の3を有するものを生成
する。また、新データを書き込むデータディスクアドレ
スを格納したデータディスクのライトコマンドを生成す
る。
【0129】また、新データをユーザ領域108から、
ディスクインターフェース制御手段205と旧データ保
持手段216へ一括DMA転送するためのディスクアレ
イデータ転送手段制御コマンドを生成する。また、新デ
ータを旧データ保持手段216から排他的論理和生成手
段203へ、旧データをパリティ生成作業領域217か
ら排他的論理和生成手段203へ、旧更新データをパリ
ティ保持手段218から排他的論理和生成手段203
へ、新しく生成された新更新データを排他的論理和生成
手段203からパリティ保持手段218へ、それぞれD
MA転送するための排他的論理和生成モードのディスク
アレイデータ転送手段制御コマンドを生成する。
【0130】アレイ制御補助手段制御コマンド生成部1
25は、以上のようなコマンドを生成し、これらをまと
めてMPU制御コマンドとし、MPU制御部128は、
図1のバスインターフェース107を介して、MPU2
10に対し該MPU制御コマンドを発行する。
【0131】該MPU制御コマンドを受け取ったMPU
210は、MPU制御プログラム領域214内の各プロ
グラムを用いて、以下の処理を行う。まず、図3の要求
受信部220が、MPU制御コマンドを受け取り、要求
管理部221に渡す。
【0132】ディスクインターフェース制御手段制御部
223は、ディスクインターフェース制御手段205に
対し、MPU制御コマンドのうちの旧データのリードコ
マンドを発行する。次に、ディスクインターフェース制
御手段205は、旧データが格納されているディスク装
置301に対して受信した該リードコマンドを発行す
る。ディスク装置301は、該リードコマンドを受け取
り、データをディスクインターフェース制御手段205
に転送する。ディスクインターフェース制御手段205
は、MPU210に割り込み信号を発行する。
【0133】次に、ディスクアレイデータ転送手段制御
部222は、ディスクアレイデータ転送手段202に対
しMPU制御コマンドのうちのディスクアレイデータ転
送手段制御コマンドを発行する。ディスクアレイデータ
転送手段202は、該コマンドを受け取り、旧データを
ディスクインターフェース制御手段205から、パリテ
ィ生成作業領域217に転送する(501)。この場
合、転送元1アドレスは、ディスクインターフェース制
御手段205のIOアドレスであり、転送先1アドレス
は、パリティ生成作業領域217のメモリアドレスであ
る。MPU210は、ディスクアレイデータ転送手段制
御コマンドを用いて、これらのアドレスをディスクアレ
イデータ転送手段202の2方向データ転送制御手段2
62に設定し、IOからメモリ1に転送が行われるよう
にモード選択レジスタ270を設定し、コマンドレジス
タ271に実行コマンドを発行することで、上記の通り
の転送を実施する。ディスクアレイデータ転送手段20
2は、MPU210に割り込み信号を発行する。
【0134】次に、排他的論理和生成手段制御部224
は、排他的論理和生成手段203に対して、コマンドを
発行する。排他的論理和生成手段203を演算可能な状
態にする排他的論理和生成手段制御コマンドの構成を以
下に示す。該コマンドは、排他的論理和を計算するため
に入力してくるデータの数と、データバッファ241の
初期化コマンドを有する。データライト処理(W3)の
場合は、3個の入力データの排他的論理和演算を行うよ
うに設定するため、入力してくるデータ数は、3個であ
る。
【0135】図5の排他的論理和生成手段203は、排
他的論理和生成手段制御コマンドによって、データ入出
力管理手段243の入力データカウンタレジスタ244
にデータ数である3が設定されると、データ入出力手段
240が入力モードとなり、データバッファ初期化レジ
スタ245が設定されると、データバッファ241にあ
るデータが0で初期化され、データの受け入れが可能な
状態になる。すべてのデータの入出力は、ディスクアレ
イデータ転送手段202によって行われる。
【0136】次に、ディスクインターフェース制御手段
制御部223は、ディスクインターフェース制御手段2
05に対し新データのライトコマンドを発行する。次
に、ディスクインターフェース制御手段205は、新デ
ータを格納するディスク装置301に対して受信した該
ライトコマンドを発行する。ディスク装置301は、該
ライトコマンドを受け取り、データを待つ状態となる。
【0137】次に、ディスクアレイデータ転送手段制御
部222は、ディスクアレイデータ転送手段202に対
しディスクアレイデータ転送手段制御コマンドを発行す
る。ディスクアレイデータ転送手段202は、該コマン
ドを受け取り、新データをユーザ領域108から、ディ
スクインターフェース制御手段205と旧データ保持手
段216に一括DMA転送する(502)。このとき、
新データは、データディスクにライトされる。
【0138】この場合、転送元1アドレスは、ユーザ領
域108のメモリアドレスであり、転送先1アドレス
は、ディスクインターフェース制御手段205のIOア
ドレスであり、転送先2アドレスは、旧データ保持手段
216のメモリアドレスである。MPU210は、ディ
スクアレイデータ転送手段制御コマンドを用いて、これ
らのアドレスをディスクアレイデータ転送手段202の
2方向データ転送制御手段262に設定し、メモリか
ら、IOとメモリに転送が行われるようにモード選択レ
ジスタ270を設定し、コマンドレジスタ271に実行
コマンドを発行することで、上記の通りの転送を実施す
る。ディスクアレイデータ転送手段202は、MPU2
10に割り込み信号を発行する。
【0139】ここで、ディスクアレイデータ転送手段2
02が、データライト処理(W3)において一括DMA
転送するときの動作を図4を用いて説明する。
【0140】まず、ディスクアレイリード処理(R1)
の例と同様に各レジスタが設定され、x番地のメモリア
ドレスから、データバッファ261を経て、y番地のI
Oアドレスとz番地のメモリアドレスにnバイトずつ転
送され、1つの転送単位の転送が終了する。
【0141】次の転送単位の転送の前に、転送長レジス
タ263からnを引き、転送元1アドレスレジスタ26
4と、転送先2アドレスレジスタ268にnを加える。
転送先1はIOであるので、転送先1アドレスレジスタ
267の値は変更しない。すると、次は上記と同様な方
法で、(x+n)番地からy番地へnバイトの転送が行
われ、(x+n)番地から(z+n)番地へnバイトの
転送が行われる。この動作を転送長レジスタ263が0
になるまで続けることにより、x番地からy番地とz番
地へのmバイトの一括DMA転送が行われる。DMA転
送が終了すると2方向データ転送制御手段262は割り
込み信号を発行する。
【0142】次に、ディスクアレイデータ転送手段制御
部222は、ディスクアレイデータ転送手段202に対
し排他的論理和生成モードのディスクアレイデータ転送
手段制御コマンドを発行する。ディスクアレイデータ転
送手段202は、該コマンドを受け取り、新データを旧
データ保持手段216から排他的論理和生成手段203
へ(503)、旧データをパリティ生成作業領域217
から排他的論理和生成手段203へ(504)、旧更新
データをパリティ保持手段218から排他的論理和生成
手段203へ(505)それぞれ転送する。次に、排他
的論理和生成手段203によって新しく生成された新更
新データを排他的論理和生成手段203からパリティ保
持手段218へ転送する(506)。ディスクアレイデ
ータ転送手段202の動作手順に従って、それぞれのデ
ータ転送は行われる。
【0143】次に、排他的論理和生成モードについて説
明する。該モードは、いくつかのDMA転送を組み合わ
せたもので、転送元1と転送元2と転送元3から排他的
論理和生成手段203へのDMA転送と、排他的論理和
生成手段203から転送先1へのDMA転送からなる。
ディスクアレイデータ転送手段202は、ディスクアレ
イデータ転送手段制御コマンドによって2方向データ転
送制御手段262の転送長レジスタ263と、転送元1
アドレスレジスタ264と、転送元2アドレスレジスタ
265と、転送元3アドレスレジスタ266と、転送先
1アドレスレジスタ267と、転送先2アドレスレジス
タ268と、排他的論理和生成手段アドレスレジスタ2
69と、モード選択レジスタ270がセットされ、コマ
ンドレジスタ271に転送開始コマンドが設定されると
転送を開始する。該モードの特徴は、一つ一つのDMA
転送に対して割り込みをかけずに、排他的論理和生成手
段203から転送先1へのDMA転送が終了した段階で
割り込み信号を発行することにある。転送元が、3ヶ所
であることは、モード選択レジスタ270に設定する。
【0144】ここで、図5を用いて、排他的論理和生成
手段203の動作を説明する。排他的論理和生成手段2
03は、データ入出力手段240から入力してきたデー
タとデータバッファ241にあるデータを排他的論理和
演算手段242に入れ、これら2つのデータの排他的論
理和を算出した後、結果をデータバッファ241に入れ
るように動作する。
【0145】はじめに、0で初期化されているデータバ
ッファ241にあるデータと、1番目に入力してきたデ
ータ1で排他的論理和をとり、結果をデータバッファ2
41に入れる。このとき、データバッファ241には、
データ1があることになる。次に、2番目に入力してき
たデータ2とデータバッファ241のデータ1で排他的
論理和をとり、結果をデータバッファ241に入れる。
このとき、データバッファ241には、データ1とデー
タ2の排他的論理和があることになる。同様に、3番目
のデータ3が入力してきた場合は、データ3とデータバ
ッファ241のデータで排他的論理和をとり、結果をデ
ータバッファ241に入れる。このとき、データバッフ
ァ241には、データ1とデータ2とデータ3の排他的
論理和があることになる。また、データが入力されるご
とに入力データカウンタレジスタ244がインクリメン
トされ、入力データカウンタレジスタ244が0になる
と、データ入出力手段240が出力モードとなり、ディ
スクアレイデータ転送手段202によって、演算結果が
データバッファ241から出力される。
【0146】動作説明に戻り、図3の要求管理部221
は、新データの書き込みが終了したディスクインタフェ
ース制御手段205と、ディスクアレイデータ転送手段
202から、割り込み信号を受け取ると、要求終了部2
25に処理を移し、要求終了部225は、ホストCPU
101に割り込み信号を出す。
【0147】割り込み信号を受けたホストCPU101
は、図2のディスクアレイ制御プログラム領域109内
の要求管理部121を用いて、要求終了部126に処理
を移し、要求終了部126は、全体のデータライト処理
を終了させる。
【0148】データライト処理(W3)と他のデータラ
イト処理の違いを以下に示す。
【0149】データライト処理(W5)は、データライ
ト処理(W3)の旧更新データを旧パリティに、新しく
生成された新データを新パリティに置き換えたものであ
る。また、図7において、(505)で旧パリティが転
送され、(506)で新パリティが転送される。また、
ディスクアレイ制御プログラム領域109内のパリティ
検索部124は、パリティアドレス保持部111に格納
されているパリティディスクアドレスに付加されている
フラグをパリティディスクに書き込まれているものと違
う旧パリティであることを表すようにする。
【0150】データライト処理(W1)は、データライ
ト処理(W3)において旧更新データを用いないで、新
更新データを生成する処理であり、新パリティ生成に関
する動作がデータライト処理(W3)と異なる。また、
データとの整合性がとれていないパリティのパリティデ
ィスクアドレスを記録する処理を行う。
【0151】ディスクアレイ制御プログラム領域109
内の処理において、パリティ検索部124は、算出した
パリティディスクアドレスが、メインメモリ104のパ
リティアドレス保持部111に存在するかを調べること
により、メモリ212内のパリティ保持手段218に旧
更新データ、または、旧パリティがあるか検索する。デ
ータライト処理(W1)の場合、該パリティディスクア
ドレスがパリティアドレス保持部111に存在しないの
で、新更新データを保持するのに必要なサイズのメモリ
をパリティ保持手段218に確保すると共に、該メモリ
アドレスとパリティディスクアドレスと、データライト
処理後にパリティ保持手段218に格納されるのが新更
新データであることを表すフラグをまとめて同じ構造体
として、パリティアドレス保持部111に保持する。ま
た、該パリティディスクアドレスを未記録パリティアド
レス保持手段250に保持する。
【0152】排他的論理和生成手段制御コマンドは、入
力してくるデータ数を2とする。ディスクアレイデータ
転送手段制御コマンドは、排他的論理和生成モードで、
転送元が2ヶ所であることをモード選択レジスタ270
に設定するものである。図7における(505)の転送
は行わない。
【0153】データライト処理(W2)、(W4)、
(W6)は、それぞれ、データライト処理(W1)、
(W3)、(W5)から旧データリードに係わる処理を
行わないようにしたものである。また、旧データが旧デ
ータ保持手段216にあるので、まず、新データをパリ
ティ生成作業領域217に転送し、排他的論理和生成が
終了した段階で、新データを旧データ保持手段216に
保持する。
【0154】ディスクアレイ制御プログラム領域109
内の処理において、旧データ検索部123は、算出した
データディスクアドレスが、メインメモリ104の旧デ
ータアドレス保持部110に存在するかを調べることに
より、メモリ212内の旧データ保持手段216に旧デ
ータがあるか検索する。データライト処理(W2)、
(W4)、(W6)では、該データディスクアドレスが
旧データアドレス保持部110に存在しているので、旧
データが存在する旧データ保持手段216のメモリアド
レスを算出する。また、新データを保持するのに必要な
サイズのメモリをパリティ生成作業領域214に確保す
ると共に、そのメモリアドレスを算出する。
【0155】その後、排他的論理和生成が終了した段階
で新データが格納されているパリティ生成作業領域21
7のメモリアドレスと、データディスクアドレスをまと
めて同じ配列の構造体とし、旧データアドレス保持部1
10に保持する。このように、旧データアドレス保持部
110内のメモリアドレスを書き換えることで、パリテ
ィ生成作業領域217に保持された新データは、旧デー
タ保持手段216にあることになる。つまり、図7にお
ける(501)の転送は行わず、旧データ保持手段21
6とパリティ生成作業領域217が入れ替わった状態と
なる。
【0156】本実施例のデータライト処理においては、
未記録パリティアドレス保持手段250に書き込まれた
パリティディスクアドレスにより、どのディスク装置の
どの論理ブロックのパリティに変更が必要であるかが記
録される。また、旧データ保持手段216に保持された
新データは、次回のデータライト処理における旧データ
となり、排他的論理和生成手段203による新更新デー
タの生成処理と新パリティの生成処理を高速化できる。
さらに、リードモデファイライト処理においては、リー
ド処理時に読み出したデータが旧データ保持手段216
に保持されているので、変更したデータのデータライト
処理を行う際に、あらためて旧データを読み出す必要が
なく、ディスク装置に対する処理を1回削減できる。
【0157】[遅延パリティ処理]ディスクアレイシス
テムでは、信頼性を向上させるために、パリティデータ
を生成する必要がある。本発明のディスクアレイシステ
ムでは、データライト処理時に新パリティの書き込み処
理を行っていないため、遅延パリティ処理が必要であ
る。遅延パリティ処理は、アプリケーションなどから発
行されるデータライト処理命令とは非同期に行われる処
理である。遅延パリティ処理を図1、図2、図3、図8
を用いて説明する。動作説明の中で、(601)から
(605)は、図8の番号に対応する。ここで、新パリ
ティは、図1のディスク装置305のPに書き込まれる
とする。
【0158】ホストCPU101は、ディスクアレイ制
御プログラム領域109内の各プログラムを用いて、以
下の処理を行う。まず、図2の遅延パリティ処理判定部
127が、遅延パリティ処理を行うべきであると判断す
ると、要求管理部121に処理を渡す。遅延パリティ処
理が開始されるタイミングとして、例えば、ドライブに
対するアクセス頻度が低いときや、パリティ保持手段2
18が旧更新データで一杯になったときなどが考えられ
る。
【0159】要求管理部121は、パリティ検索部12
4に処理を渡し、パリティ検索部124は、メインメモ
リ104のパリティアドレス保持部111にパリティデ
ィスクアドレスが存在するかを検索し、存在したときは
付加されているフラグを調べる。
【0160】パリティアドレス保持部111に何もない
か、もしくは、パリティディスクにあるパリティと同一
のパリティディスクアドレスのみが存在する場合は、要
求管理部121に処理を渡し、要求終了部126が遅延
パリティ処理を終了させる。
【0161】また、パリティアドレス保持部111に、
旧更新データのパリティディスクアドレス、または、パ
リティディスクに書き込まれているものと異なる旧パリ
ティのパリティディスクアドレスが存在する場合は、対
応するパリティ保持手段218のメモリアドレスを算出
し、遅延パリティ処理後にパリティ保持手段218に格
納されるのが、パリティディスクに書き込まれているも
のと同じ旧パリティであることを表すようにフラグを書
き直す。
【0162】次に、アレイ制御補助手段制御コマンド生
成部125は以下のようなコマンドを生成し、これらを
まとめてMPU制御コマンドとする。なお、ディスクア
レイデータ転送手段制御コマンドと排他的論理和生成手
段制御コマンドは、前述したような構成となっている。
【0163】遅延パリティ処理(P1)の場合、旧パリ
ティのパリティディスクアドレスを格納したパリティデ
ィスクのリードコマンドと、旧パリティをディスクイン
ターフェース制御手段209から、パリティ生成作業領
域217へDMA転送するためのディスクアレイデータ
転送手段制御コマンドを生成する。排他的論理和生成手
段制御コマンドとしては、データバッファ初期化コマン
ドと、入力データカウンタレジスタ244に設定する値
として、入力データ数の2を設定する。
【0164】また、旧更新データをパリティ保持手段2
18から排他的論理和生成手段203へ、旧パリティを
パリティ生成作業領域217から排他的論理和生成手段
203へ、新しく生成された新パリティを排他的論理和
生成手段203からパリティ保持手段218へDMA転
送するための排他的論理和生成モードのディスクアレイ
データ転送手段制御コマンドを生成する。
【0165】また、新パリティのパリティディスクアド
レスを格納したパリティディスクのライトコマンドを生
成する。また、新パリティをパリティ保持手段218か
ら、ディスクインターフェース制御手段209へDMA
転送するためのディスクアレイデータ転送手段制御コマ
ンドを生成する。
【0166】遅延パリティ処理(P2)の場合、新パリ
ティのパリティディスクアドレスを格納したパリティデ
ィスクのライトコマンドを生成する。また、新パリティ
をパリティ保持手段218からディスクインターフェー
ス制御手段209へDMA転送するためのディスクアレ
イデータ転送手段制御コマンドを生成する。
【0167】アレイ制御補助手段制御コマンド生成部1
25は、以上のようなコマンドを生成し、これらをまと
めてMPU制御コマンドとし、MPU制御部128は、
図1のバスインターフェース107を介して、MPU2
10に対し該MPU制御コマンドを発行する。
【0168】該MPU制御コマンドを受け取ったMPU
210は、MPU制御プログラム領域214内の各プロ
グラムを用いて、以下の処理を行う。まず、図3の要求
受信部220が、MPU制御コマンドを受け取り、要求
管理部221に渡す。
【0169】まず、遅延パリティ処理(P1)の場合、
ディスクインターフェース制御手段制御部223は、デ
ィスクインターフェース制御手段209に対し、MPU
制御コマンドのうちの旧パリティのリードコマンドを発
行する。次に、ディスクインターフェース制御手段20
9は、旧パリティが格納されているディスク装置305
に対して受信した該リードコマンドを発行する。ディス
ク装置305は、該リードコマンドを受け取り、旧パリ
ティをディスクインターフェース制御手段209に転送
する。ディスクインターフェース制御手段209は、M
PU210に割り込み信号を発行する。
【0170】次に、ディスクアレイデータ転送手段制御
部222は、ディスクアレイデータ転送手段202に対
しMPU制御コマンドのうちのディスクアレイデータ転
送手段制御コマンドを発行する。ディスクアレイデータ
転送手段202は、該コマンドを受け取り、旧パリティ
をディスクインターフェース制御手段209から、パリ
ティ生成作業領域217に転送する(601)。ディス
クアレイデータ転送手段202は、MPU210に割り
込み信号を発行する。
【0171】次に、排他的論理和生成手段制御部224
は、排他的論理和生成手段203に対して、コマンドを
発行し、該コマンドを受け取った排他的論理和生成手段
203はデータバッファ241が初期化され、指定され
た数のデータを受け入れられるように設定される。この
場合、2個の入力データの排他的論理和演算を行うよう
に設定される。
【0172】ディスクインターフェース制御手段制御部
223は、ディスクインターフェース制御手段209に
対し新パリティのライトコマンドを発行する。次に、デ
ィスクインターフェース制御手段209は、新パリティ
を格納するディスク装置305に対して受信した該ライ
トコマンドを発行する。ディスク装置305は、該ライ
トコマンドを受け取り、データを待つ状態となる。
【0173】次に、ディスクアレイデータ転送手段制御
部222は、ディスクアレイデータ転送手段202に対
し排他的論理和生成モードのディスクアレイデータ転送
手段制御コマンドを発行する。ディスクアレイデータ転
送手段202は、該コマンドを受け取り、旧パリティを
パリティ生成作業領域217から排他的論理和生成手段
203へ(602)、旧更新データをパリティ保持手段
218から排他的論理和生成手段203へ(603)、
排他的論理和生成手段203によって新しく生成された
新パリティを排他的論理和生成手段203からパリティ
保持手段218に転送する(604)。さらに、新パリ
ティをパリティ保持手段218からディスクインターフ
ェース制御手段209に転送する(605)。このと
き、新パリティは、パリティディスクにライトされる。
ディスクアレイデータ転送手段202の動作手順に従っ
て、それぞれのデータ転送は行われる。
【0174】次に、遅延パリティ処理(P2)の場合、
ディスクインターフェース制御手段制御部223は、デ
ィスクインターフェース制御手段209に対し新パリテ
ィのライトコマンドを発行する。次に、ディスクインタ
ーフェース制御手段209は、新パリティを格納するデ
ィスク装置305に対して受信した該ライトコマンドを
発行する。ディスク装置305は、該ライトコマンドを
受け取り、データを待つ状態となる。
【0175】ディスクアレイデータ転送手段制御部22
2は、ディスクアレイデータ転送手段202に対しディ
スクアレイデータ転送手段制御コマンドを発行する。デ
ィスクアレイデータ転送手段202は、該コマンドを受
け取り、新パリティをパリティ保持手段218からディ
スクインターフェース制御手段209に転送する(60
5)。このとき、新パリティは、パリティディスクにラ
イトされる。
【0176】以下、遅延パリティ処理(P1)(P2)
にかかわらず、同じ処理となる。図3の要求管理部22
1は、新パリティの書き込みが終了したディスクインタ
フェース制御手段209と、ディスクアレイデータ転送
手段202から、割り込み信号を受け取ると、未記録パ
リティアドレス保持手段250にある遅延パリティ処理
が行われたパリティディスクアドレスを消去した後、要
求終了部225に処理を移し、要求終了部225は、ホ
ストCPU101に割り込み信号を出す。
【0177】割り込み信号を受けたホストCPU101
は、図2のディスクアレイ制御プログラム領域109内
の要求管理部121を用いて、要求終了部126に処理
を移し、要求終了部126は、全体の遅延パリティ処理
を終了させる。
【0178】ここで、本実施例の未記録パリティアドレ
ス保持手段250の効果について説明する。ディスクア
レイシステムでは、信頼性を保つために、パリティデー
タを生成し、保持しなければならない。しかし、本実施
例のディスクアレイシステムでは、新データ書き込み時
には新パリティをパリティディスクに書き込まず、その
後、非同期に遅延パリティ処理を行う。しかし、遅延パ
リティ処理を行う前に、停電などの事態が発生すると、
データとパリティの整合性が保てなくなる。そこで、未
記録パリティアドレス保持手段250に、未処理のパリ
ティディスクアドレスを登録しておくことで、停電など
でパリティ保持手段218から旧更新データ、または、
パリティがなくなっても、次回起動時には、どのディス
ク装置のどの論理アドレスのパリティを生成すべきかが
分かる。パリティは、ディスク装置に記録されているデ
ータに排他的論理和演算を施すことで生成できる。
【0179】次に、本実施例の効果について説明する。
本発明においては、ディスクアレイライト処理を、デー
タライト処理と遅延パリティ処理に分割し、新データを
ライトする際に必要なディスクアクセス数を削減する。
さらに、新データ、新更新データ、新パリティを一時保
持しておく手段を設け、旧データと旧パリティをリード
するディスクアクセス数を削減する。以上の方法によ
り、ディスクアレイリード・ライト処理性能を向上させ
る。また、メモリ間コピーと排他的論理和演算には、C
PUを用いないので、CPUにかかる負荷を削減するこ
とができる。
【0180】はじめに、ディスクアレイリード・ライト
処理性能について考える。ここで、1回のディスクアク
セスに15(msec)かかるとし、ディスク装置5台
で、システム全体のオーバーヘッドを28(%)とする
と、1秒当たり240回のディスクアクセスができる。
【0181】まず、従来のソフトウェアRAIDのディ
スクアクセス回数は、ディスクアレイリード処理時は1
回、ディスクアレイライト処理時は4回である。したが
って、リード率50(%)の時、ディスクアレイリード
・ライト処理を1回ずつ行うためには、5回のディスク
アクセスが必要となり、1秒当たりの各処理は、48
(IOPS)ずつとなり、処理性能は、96(IOP
S)となる。なお、リード率50(%)とは、ディスク
アレイリード・ライト処理の割合が、単位時間当たり5
0(%)ずつであることを表し、IOPSは、1秒当た
りのIO処理数を表す単位である。
【0182】次に、本実施例において、データライト処
理時の旧データ保持手段のヒット率を85(%)とする
と、ディスクアクセス回数は、ディスクアレイリード処
理時においては1回、データライト処理時においては、
旧データヒット時1回、旧データミス時2回となって、
平均1.15回となる。なお、保持手段に読み出したい
データがある場合をヒット、ない場合をミスと呼ぶ。し
たがって 、リード率50(%)の時、ディスクアレイ
リード処理とデータライト処理を1回ずつ行うために
は、2.15回のディスクアクセスが必要となり、1秒
当たりの各処理は、112(IOPS)ずつとなり、合
計224(IOPS)となる。
【0183】しかし、データライト処理時のパリティ保
持手段のヒット率を85(%)とすると、データライト
処理112(IOPS)のうち15(%)の16.8
(IOPS)は、パリティ保持手段に旧更新データを蓄
積させていく処理となる。パリティ保持手段の容量が一
杯になると遅延パリティ処理を行う必要があり、パリテ
ィ保持手段のパリティをパリティディスクに書き込む処
理は、240(IOPS)である。したがって、データ
ライト処理に対して、パリティディスクの書き込みに関
する7(%)のオーバーヘッドが生じ、本実施例の処理
性能は、209(IOPS)となる。よって、リード率
50(%)において、本実施例は、従来のソフトウェア
RAIDの2.18倍の処理性能を有する。
【0184】また、CPUにかかる負荷について考え
る。ここで、メモリからデータを出し入れするスピード
は、4(KByte)、8バースト転送に、33(MH
z)で10クロックかかるとすると、107(MByt
e/sec)となり、オーバーヘッドを約2倍と考える
と、メモリからデータを出し入れするスピードは50
(MByte/sec)となる。
【0185】まず、ソフトウェアRAIDについて、C
PUの負荷率を考える。ディスクアレイライト処理の排
他的論理和演算では、メモリからのデータの出し入れは
4回行われ、システム全体のオーバーヘッドを約2倍と
考えると、4(KByte)の排他的論理和演算には、
640(μsec)かかる。RAIDの管理に1000
(μsec)かかるとすると、4(KByte)の1
(IO)にかかる処理時間は、ディスクアレイリード処
理で1000(μsec)、ディスクアレイライト処理
で1640(μsec)となり、平均で、1320(μ
sec)となる。したがって、1(IO)当たりにかか
るCPU処理の割合は、0.132(%)となる。
【0186】次に、本実施例のように、メモリ間コピー
をディスクアレイデータ転送手段で、排他的論理和演算
を排他的論理和生成手段で行う場合を考えると、CPU
にかかる負荷は、RAIDの管理だけとなるので、4
(KByte)の1(IO)にかかる処理時間は、ディ
スクアレイリード・ライト処理ともに1000(μse
c)となる。したがって、1(IO)当たりにかかるC
PU処理の割合は、0.100(%)となる。
【0187】ディスクアレイリード・ライト処理性能と
CPU負荷率について考えると、リード率50(%)の
とき、ソフトウェアRAIDでは96(IOPS)、本
実施例では209(IOPS)の処理性能であることか
ら、このときの1秒当たりのCPU負荷率は、ソフトウ
ェアRAIDは、96(IOPS)×0.132(%)
=12.7(%)、本実施例は209(IOPS)×
0.100(%)=20.9(%)となる。
【0188】以上をまとめると、リード率50(%)の
とき、本実施例は、従来のソフトウェアRAIDに対
し、約8.2(%)のCPU負荷率の上昇で、IO性能
が2.2倍向上し、低CPU負荷率で高性能化を実現で
きる。
【0189】本発明の実施例2の説明をする。
【0190】システム構成は図1と同じであり、実施例
1との違いは、ディスクアレイデータ転送手段202の
構成および動作の違いと、ディスクインターフェース制
御手段205〜209の構成および動作の違いにある。
【0191】図9に実施例2のディスクアレイデータ転
送手段202の構成を示す。ディスクアレイデータ転送
手段202は、データ入出力手段274と、データバッ
ファ275と、1方向データ転送制御手段276で構成
している。1方向データ転送制御手段276は、転送す
るデータ長をバイト単位で指定する転送長レジスタ27
7と、データの転送元のIOアドレス、または、メモリ
アドレスを格納する転送元アドレスレジスタ278と、
データの転送先のIOアドレス、または、メモリアドレ
スを格納する転送先アドレスレジスタ279と、転送元
と転送先は、それぞれIOかメモリかを指定するモード
選択レジスタ280と、転送開始コマンドを受け取るコ
マンドレジスタ281を有する。
【0192】また、ディスクインターフェース制御手段
205〜209は、DMA転送機能を有し、ディスクイ
ンターフェース制御手段と各メモリの間のDMA転送を
行う。ディスクインターフェース制御手段205〜20
9に送られるリードコマンドと、ライトコマンドには、
DMA転送のためのデータの転送長、データの転送元、
または、転送先のメモリアドレスも併せて格納してお
く。
【0193】実施例2のディスクアレイデータ転送手段
202は、実施例1と違い、転送先アドレスを格納する
レジスタを1つだけ持ち、1回のDMA転送での転送先
は1か所だけである。そこで、実施例1の一括DMA転
送で同時に行われていた2つのDMA転送を、ディスク
インターフェース制御手段205〜209と、ディスク
アレイデータ転送手段202で行う。ディスクインター
フェース制御手段205〜209と、ユーザ領域108
の間のDMA転送は、ディスクインターフェース制御手
段205〜209が行う。
【0194】図9を用いて、ディスクアレイデータ転送
手段202の動作を説明する。実施例2において、ディ
スクアレイデータ転送手段202は、1ヶ所の転送元か
ら1ヶ所の転送先へ、転送長バイト数のDMA転送を行
う。
【0195】まず、ディスクアレイデータ転送手段20
2を起動するディスクアレイデータ転送手段制御コマン
ドの構成を以下に示す。該コマンドは、転送長と、転送
元アドレスと、転送先アドレスと、転送元と転送先が、
それぞれIOかメモリかを指定するモード選択コマンド
と、転送開始コマンドを有する。
【0196】次に、DMA転送する方法を以下に示す。
ディスクアレイデータ転送手段202は、ディスクアレ
イデータ転送手段制御コマンドによって1方向データ転
送制御手段276の転送長レジスタ277と、転送元ア
ドレスレジスタ278と、転送先アドレスレジスタ27
9と、モード選択レジスタ280がセットされ、コマン
ドレジスタ281に転送開始コマンドが設定されると、
転送を開始する。
【0197】転送元がIO、転送先がメモリである場合
のDMA転送の例を、以下に示す。実施例2において、
IOは排他的論理和生成手段203である。データバッ
ファ275の容量がnバイトだとすると、転送単位はn
バイトとなる。転送長をmバイト、転送元アドレスをx
番地、転送先アドレスをy番地とし、x番地はIOアド
レス、y番地はメモリアドレスとし、IOからメモリへ
のDMA転送とする。まず、x番地から、データ入出力
手段274を介して、データバッファ275へnバイト
の転送が行われ、次にデータバッファ275から、デー
タ入出力手段274を介して、y番地へnバイトの転送
が行われ、1つの転送単位の転送が終了する。
【0198】次の転送単位の転送の前に、転送長レジス
タ277からnを引き、転送先アドレスレジスタ279
にnを加える。すると、次は上記と同様な方法で、x番
地から(y+n)番地へnバイトの転送が行われる。こ
の動作を転送長レジスタ277が0になるまで続けるこ
とにより、x番地から、y番地へのmバイトのDMA転
送が行われる。DMA転送が終了すると、1方向データ
転送制御手段276は割り込み信号を発行し処理を終了
する。
【0199】また、転送元がメモリ、転送先がIOの場
合も上記と同様なDMA転送が可能である。この場合、
1つの転送単位nバイトの転送を行った後、さらにnバ
イト転送するときに、転送元がメモリアドレスなので、
メモリアドレスが格納されているレジスタにnを加え、
転送先がIOアドレスなので、IOアドレスが格納され
ているレジスタにはnを加えずに同じ値を用いる。これ
らの動作は、各レジスタに格納されているアドレスが、
IOアドレスか、メモリアドレスかをモード選択レジス
タ280に設定することで1方向データ転送制御手段2
76が制御する。
【0200】ここで、実施例2のディスクアレイシステ
ムでのディスクアレイリード処理と、ディスクアレイラ
イト処理における実施例1との違いを示す。
【0201】[ディスクアレイリード処理]実施例2の
ディスクアレイリード処理のタイプ分けは、実施例1と
同じであるが動作が違う。実施例1からの変更点を以下
に示す。ディスクアレイリード処理(R1)において
は、目的データである旧データをディスクからリードし
てユーザ領域108に転送し、さらに、旧データをユー
ザ領域108から一時保持手段に転送する処理を行う。
旧データをディスクからユーザ領域108に転送する処
理は、ディスクインターフェース制御手段が行う。ディ
スクアレイリード処理(R2)は、実施例1と同様であ
る。
【0202】[ディスクアレイライト処理] [データライト処理]実施例2のデータライト処理のタ
イプ分けは、実施例1と同じであるが動作が違う。実施
例1からの変更点を以下に示す。すべてのデータライト
処理において、新データをユーザ領域108から、デー
タディスクと一時保持手段に転送する処理を、新データ
をユーザ領域108からデータディスクに転送する処理
と、新データをユーザ領域108から一時保持手段に転
送する処理に分けて行う。新データをユーザ領域108
からデータディスクに転送する処理は、ディスクインタ
ーフェース制御手段が行う。また、データライト処理
(W1)(W3)(W5)においては、旧データを一時
保持手段に転送する処理は、ディスクインターフェース
制御手段が行う。
【0203】実施例2のディスクアレイデータ転送手段
202には、排他的論理和生成モードがないので、一時
保持手段と排他的論理和生成手段203の間のデータ転
送は、1回ごとに分けて行う。
【0204】[遅延パリティ処理]実施例2の遅延パリ
ティ処理のタイプ分けは、実施例1と同じであるが動作
が違う。実施例1からの変更点を以下に示す。旧パリテ
ィを一時保持手段に転送する処理と、新パリティをパリ
ティディスクに転送する処理は、ディスクインターフェ
ース制御手段が行う。
【0205】実施例2のディスクアレイデータ転送手段
202には、排他的論理和生成モードがないので、一時
保持手段と排他的論理和生成手段203の間のデータ転
送は、1回ごとに分けて行う。
【0206】実施例2のような構成にすると、ディスク
アレイデータ転送手段202の構造を簡単にすることが
でき、コストの削減が図れると共に、ディスクインター
フェース制御手段205〜209に係わるDMA転送を
ディスクインターフェース制御手段で行い、メモリ間コ
ピーに係わるDMA転送をディスクアレイデータ転送手
段202で行うことで、DMA転送の効率を上げること
ができる。
【0207】ここで、本発明の第3の実施例を図10の
システム構成を用いて説明する。
【0208】図10において、1はホストシステム、2
はアレイ制御補助手段、3はディスク装置群である。
【0209】ホストシステム1は、ホストCPU101
と、キャッシュ102と、ローカルバス・システムバス
間ブリッジ103と、メインメモリ104と、バスイン
ターフェース107で構成している。ホストCPU10
1と、キャッシュ102と、ローカルバス・システムバ
ス間ブリッジ103はローカルバス105により接続す
る。ローカルバス・システムバス間ブリッジ103と、
バスインターフェース107は、システムバス106に
接続する。
【0210】メインメモリ104は、ユーザ領域108
と、ディスクアレイ制御プログラム領域109と、旧デ
ータアドレス保持部110と、パリティアドレス保持部
111と、旧データ保持手段112と、パリティ生成作
業領域113と、パリティ保持手段114と、多数送ら
れてくるコマンドをキューイングしておくコマンド格納
領域115を有する。
【0211】ディスクアレイ制御プログラム領域109
は、図11に示すように、要求受信部120と、要求管
理部121と、アドレス変換部122と、旧データ検索
部123と、パリティ検索部124と、アレイ制御補助
手段制御コマンド生成部125と、ディスクアレイデー
タ転送生成手段254にコマンドを発行するディスクア
レイデータ転送生成手段制御部133と、ディスクイン
ターフェース制御手段制御部131と、要求終了部12
6と、遅延パリティ処理判定部127で構成している。
【0212】図10に戻り、アレイ制御補助手段2は、
バスインターフェース201と、データ転送と排他的論
理和の生成を行うディスクアレイデータ転送生成手段2
54と、DMA転送機能を有する5つのディスクインタ
ーフェース制御手段205〜209と、バッテリーバッ
クアップされた未記録パリティアドレス保持手段250
で構成し、それぞれをアレイ制御補助手段内部バス20
4で接続する。バスインターフェース201はホストシ
ステム1のバスインターフェース107と接続する。ア
レイ制御補助手段2のディスクアレイデータ転送生成手
段254を1つのチップとして構成すれば、更新データ
及び新パリティの生成処理と、データ転送処理の間に同
一データを扱う場合にメインメモリ上のパリティ生成用
領域から2度にわたり同じデータを転送する必要がない
ため、ホスト視巣津のシステムバスとディスクインター
フェース制御手段とを接続するバスもしくはシステムバ
ス若しくは前記メインメモリのトラフィックを低減で
き、処理の高速化を図れる。
【0213】ディスク装置群3は、本実施例においては
5台のディスク装置301〜305により構成してい
る。各ディスク装置301〜305はアレイ制御補助手
段2の5つのディスクインターフェース制御手段205
〜209とそれぞれケーブルにより接続する。
【0214】未記録パリティアドレス保持手段250
と、メインメモリ104内の旧データ保持手段112、
旧データアドレス保持部110、パリティ保持手段11
4、パリティアドレス保持部111の構成は、実施例1
の図1の旧データ保持手段216、旧データアドレス保
持部110、パリティ保持手段218、パリティアドレ
ス保持部111と未記録パリティアドレス保持手段25
0とそれぞれ同じである。
【0215】ここで、アレイ制御補助手段2のディスク
アレイデータ転送生成手段254の構成例を図12を用
いて説明する。
【0216】ディスクアレイデータ転送生成手段254
は、データ入出力手段283と、データ1バッファ28
4と、データ2バッファ285と、データ転送生成管理
手段286と、排他的論理和演算を行う排他的論理和演
算手段287で構成している。
【0217】データ転送生成管理手段286は、転送す
るデータ長をバイト単位で指定する転送長レジスタ28
8と、データの転送元のメモリアドレスを格納するレジ
スタとして、転送元1アドレスレジスタ289と、転送
元2アドレスレジスタ290と、転送元3アドレスレジ
スタ291を有し、データの転送先のメモリアドレスを
格納するレジスタとして、転送先1アドレスレジスタ2
92と、転送先2アドレスレジスタ293を有し、さら
に、どのようなデータ転送と排他的論理和生成を行うか
を指定するモード選択レジスタ294と、転送開始コマ
ンドを受け取るコマンドレジスタ295と、データ入出
力手段283の入出力モードを指定する入出力モードレ
ジスタ296と、データ1バッファ284とデータ2バ
ッファ285の初期化を行うデータバッファ初期化レジ
スタ297を有する。実施例3において、ディスクアレ
イデータ転送生成手段254は、ディスクアレイリード
処理モード、データライト処理モード、遅延パリティ処
理モードのいずれかで動作する。
【0218】実施例1の図1との主な違いは、パリティ
生成に必要な一時保持手段をメインメモリ104に置い
たことと、データ転送とパリティ生成の2つの動作を行
うディスクアレイデータ転送生成手段254をアレイ制
御補助手段2に置いたことと、アレイ制御補助手段2の
制御をMPU210ではなく、ホストCPU101で行
うことである。ここで、旧データ保持手段112とパリ
ティ生成作業領域113とパリティ保持手段114をま
とめて一時保持手段と呼ぶこととする。また、ディスク
インターフェース制御手段205〜209と、メインメ
モリ104間のDMA転送は、ディスクインターフェー
ス制御手段205〜209が行い、その他のDMA転送
は、ディスクアレイデータ転送生成手段254が行う。
【0219】実施例3のディスクアレイライト処理は、
実施例1同様にデータライト処理と遅延パリティ処理か
ら成る。
【0220】データライト処理は、一時保持手段が何を
格納しているかにより、以下の6つのタイプに分類でき
る。
【0221】(W1)一時保持手段に何もない場合。
【0222】旧データをデータディスクからリードして
一時保持手段に転送する処理と、新データをユーザ領域
108からディスクアレイデータ転送生成手段254に
転送する処理と、一時保持手段に転送された旧データを
ディスクアレイデータ転送生成手段254に転送する処
理と、ディスクアレイデータ転送生成手段254におい
て新データと旧データから新更新データを生成する処理
と、ディスクアレイデータ転送生成手段254にある新
データを一時保持手段に転送する処理と、ディスクアレ
イデータ転送生成手段254にある新更新データを一時
保持手段に転送する処理と、新データをユーザ領域10
8からデータディスクに転送する処理を行う。新更新デ
ータの生成には式2を用いる。
【0223】(W2)一時保持手段に、旧データがある
場合。
【0224】(W1)の場合とほぼ同様であるが、旧デ
ータをデータディスクからリードして一時保持手段に転
送する処理は必要ない。新更新データの生成には、式2
を用いる。
【0225】(W3)一時保持手段に、旧更新データが
ある場合。
【0226】旧データをデータディスクからリードして
一時保持手段に転送する処理と、新データをユーザ領域
108からディスクアレイデータ転送生成手段254に
転送する処理と、一時保持手段に転送された旧データを
ディスクアレイデータ転送生成手段254に転送する処
理と、一時保持手段にある旧更新データをディスクアレ
イデータ転送生成手段254に転送する処理と、ディス
クアレイデータ転送生成手段254において新データと
旧データと旧更新データから新更新データを生成する処
理と、ディスクアレイデータ転送生成手段254にある
新データを一時保持手段に転送する処理と、ディスクア
レイデータ転送生成手段254にある新更新データを一
時保持手段に転送する処理と、新データをユーザ領域1
08からデータディスクに転送する処理を行う。新更新
データの生成には、式4を用いる。(W4)一時保持手
段に、旧更新データと旧データがある場合。
【0227】(W3)の場合とほぼ同様であるが、旧デ
ータをディスクからリードして一時保持手段に転送する
処理は必要ない。新更新データの生成には、式4を用い
る。
【0228】(W5)一時保持手段に、旧パリティがあ
る場合。
【0229】旧データをデータディスクからリードして
一時保持手段に転送する処理と、新データをユーザ領域
108からディスクアレイデータ転送生成手段254に
転送する処理と、一時保持手段にある旧データをディス
クアレイデータ転送生成手段254に転送する処理と、
一時保持手段にある旧パリティをディスクアレイデータ
転送生成手段254に転送する処理と、ディスクアレイ
データ転送生成手段254において新データと旧データ
と旧パリティから新パリティを生成する処理と、ディス
クアレイデータ転送生成手段254にある新データを一
時保持手段に転送する処理と、ディスクアレイデータ転
送生成手段254にある新パリティを一時保持手段に転
送する処理と、新データをユーザ領域108からデータ
ディスクに転送する処理を行う。新更新データの生成に
は、式1を用いる。
【0230】(W6)一時保持手段に、旧パリティと旧
データがある場合。
【0231】(W5)の場合とほぼ同様であるが、旧デ
ータをディスクからリードして一時保持手段に転送する
処理は必要ない。新パリティの生成には、式1を用い
る。
【0232】データライト処理において、一時保持手段
に格納した新データは、次回、データライト処理(W
2)(W4)(W6)における旧データとなる。データ
ライト処理(W2)(W4)(W6)においては、旧デ
ータリード処理を行わないので、ディスクアクセスを1
回削減できる。
【0233】上記データライト処理(W1)(W2)
(W3)(W4)において、一時保持手段に格納した新
更新データは、次回、データライト処理(W3)(W
4)および後述する遅延パリティ処理(P1)における
旧更新データとなる。
【0234】上記データライト処理(W5)(W6)に
おいて、一時保持手段に格納した新パリティは、次回、
データライト処理(W5)(W6)および後述する遅延
パリティ処理(P2)における旧パリティとなる。デー
タライト処理(W5)(W6)においては、旧パリティ
リード処理を行わないので、ディスクアクセスを1回削
減できる。また、新パリティは一時保持手段に格納し、
新パリティライト処理を行わないので、ディスクアクセ
スを1回削減できる。このように、旧パリティの読み出
しと新パリティの書き込みは、一時保持手段を用いるの
で、パリティディスクにアクセスすることなくデータラ
イト処理を連続して行うことができる。
【0235】次に、遅延パリティ処理は、一時保持手段
が何を格納しているかにより、以下の2つのタイプに分
類できる。ただし、一時保持手段に既にディスクに書き
込んだ旧パリティが格納されている場合は、遅延パリテ
ィ処理は行わない。また、一時保持手段に何も格納され
ていない場合、もしくは、旧データだけが格納されてい
る場合も、遅延パリティ処理は行わない。
【0236】(P1)一時保持手段に、旧更新データが
ある場合。
【0237】旧パリティをディスクからリードして一時
保持手段に転送する処理と、一時保持手段に転送された
旧パリティをディスクアレイデータ転送生成手段254
に転送する処理と、一時保持手段にある旧更新データを
ディスクアレイデータ転送生成手段254に転送する処
理と、ディスクアレイデータ転送生成手段254におい
て旧パリティと旧更新データから新パリティを生成する
処理と、ディスクアレイデータ転送生成手段254にあ
る新パリティを一時保持手段に転送する処理と、新パリ
ティを一時保持手段からパリティディスクに転送する処
理を行う。新パリティの生成には、式3を用いる。一時
保持手段に格納した新パリティは、次回、データライト
処理(W5)(W6)における旧パリティとなる。
【0238】(P2)一時保持手段に、ディスクに書き
込んでいない旧パリティがある場合。
【0239】旧パリティを一時保持手段からディスクへ
転送する。なお、(P2)における旧パリティは、式3
の新パリティに相当する。
【0240】また、実施例3のディスクアレイリード処
理を以下に示す。
【0241】ディスクアレイリード処理は、一時保持手
段が何を格納しているかにより、以下の2つのタイプに
分類できる。
【0242】(R1)一時保持手段に、旧データがない
場合。
【0243】目的データである旧データをディスクから
リードしてユーザ領域108に転送する処理と、旧デー
タをユーザ領域108からディスクアレイデータ転送生
成手段254に転送する処理と、旧データをディスクア
レイデータ転送生成手段254から一時保持手段に転送
する処理を行う。
【0244】(R2)一時保持手段に、旧データがある
場合。
【0245】目的データである旧データを一時保持手段
からディスクアレイデータ転送生成手段254に転送す
る処理と、旧データをディスクアレイデータ転送生成手
段254からユーザ領域108に転送する処理を行う。
【0246】ここで、図10の構成をとるディスクアレ
イシステムでのディスクアレイリード処理動作と、ディ
スクアレイライト処理動作について説明する。ディスク
アレイライト処理は、データライト処理と、遅延パリテ
ィ処理に分けて説明する。
【0247】[ディスクアレイリード処理]はじめに、
図10と図11と図13を用いてディスクアレイリード
処理動作を説明する。動作説明の中で、(701)から
(705)は、図13の番号に対応する。ここで、目的
データは、図10のディスク装置301にあるD0であ
るとする。ホストシステム1上のアプリケーションなど
からディスクアレイリード要求が発行されると、ホスト
CPU101は、ディスクアレイ制御プログラム領域1
09内の各プログラムを用いて、以下の処理を行う。ま
ず、図11の要求受信部120が、該リード要求を受け
取る。要求管理部121は、該リード要求をアドレス変
換部122に渡し、アドレス変換部122は、目的デー
タのデータディスクアドレスを算出する。
【0248】旧データ検索部123は、メインメモリ1
04の旧データアドレス保持部110に、目的データの
データディスクアドレスが存在するかを調べることによ
り、目的データがメインメモリ104内の旧データ保持
手段112にあるか検索し、ディスクアレイリード処理
(R1)(R2)のタイプ分けを行う。
【0249】該データディスクアドレスが、旧データア
ドレス保持部110に存在しないときは、ディスクアレ
イリード処理(R1)となり、目的データを保持するの
に必要なサイズのメモリを旧データ保持手段112に確
保し、そのメモリアドレスを算出すると共に、該メモリ
アドレスとデータディスクアドレスをまとめて同じ配列
の構造体として、旧データアドレス保持部110に保持
する。
【0250】該データディスクアドレスが、旧データア
ドレス保持部110に存在しているときは、ディスクア
レイリード処理(R2)となり、目的データが存在する
旧データ保持手段112のメモリアドレスを算出す
る。、次に、アレイ制御補助手段制御コマンド生成部1
25は、以下のようなコマンドを生成する。
【0251】ディスクアレイリード処理(R2)の場合
は、目的データを旧データ保持手段112から、ユーザ
領域108へDMA転送するためのディスクアレイリー
ド処理モードのディスクアレイデータ転送生成手段制御
コマンドを生成し、該コマンドをアレイ制御補助手段制
御コマンドとする。該ディスクアレイデータ転送生成手
段制御コマンドは、転送長と、転送元1である旧データ
保持手段112のメモリアドレスと、転送先1であるユ
ーザ領域108のメモリアドレスと、動作のモードを指
定するモード選択コマンドと、転送開始コマンドを有す
る。
【0252】ディスクアレイリード処理(R1)の場合
は、目的データのデータディスクアドレスと読みだした
目的データを転送するユーザ領域108のメモリアドレ
スを格納したデータディスクのリードコマンドと、目的
データをユーザ領域108から旧データ保持手段112
へDMA転送するためのディスクアレイリード処理モー
ドのディスクアレイデータ転送生成手段制御コマンドを
生成し、各コマンドをアレイ制御保持手段制御コマンド
としてまとめる。該ディスクアレイデータ転送生成手段
制御コマンドは、転送長と、転送元1であるユーザ領域
108のメモリアドレスと、転送先1である旧データ保
持手段112のメモリアドレスと、動作のモードを指定
するモード選択コマンドと、転送開始コマンドを有す
る。
【0253】次に、アレイ制御補助手段制御コマンド生
成部125は、要求管理部121に処理を渡す。
【0254】まず、ディスクアレイリード処理(R2)
の場合、ディスクアレイデータ転送生成手段制御部13
3は、ディスクアレイデータ転送生成手段254に対し
アレイ制御補助手段制御コマンドのうちのディスクアレ
イデータ転送生成手段制御コマンドを発行する。ディス
クアレイデータ転送生成手段254は、該コマンドを受
け取り、目的データを旧データ保持手段112からユー
ザ領域108にDMA転送する。この場合、転送元アド
レス1は、旧データ保持手段112のメモリアドレスで
あり、転送先1アドレスは、ユーザ領域108のメモリ
アドレスである。ホストCPU101は、ディスクアレ
イデータ転送生成手段制御コマンドを用いて、これらの
アドレスをディスクアレイデータ転送生成手段254の
データ転送生成管理手段286に設定し、ディスクアレ
イリード処理モードをモード選択レジスタ294に設定
し、コマンドレジスタ295に転送開始コマンドを発行
することで上記の通りのDMA転送を実施する。DMA
転送が終了すると、ディスクアレイデータ転送生成手段
254は、ホストCPU101に割り込み信号を発行す
る。
【0255】ここで、ディスクアレイデータ転送生成手
段254のディスクアレイリード処理モードの動作を図
12を用いて説明する。ディスクアレイデータ転送生成
手段制御コマンドによって、転送長レジスタ288に
は、転送長mバイトが格納され、転送元1アドレスレジ
スタ289には、旧データ保持手段112にある目的デ
ータのメモリアドレスx番地が格納され、転送先1アド
レスレジスタ292には、目的データが転送されるユー
ザ領域108のメモリアドレスy番地が格納される。
【0256】データ1バッファ284とデータ2バッフ
ァ285の容量がnバイトだとすると、転送単位はnバ
イトとなる。まず、目的データをx番地から、データ入
出力手段283を介して、データ1バッファ284へn
バイト転送し(704)、次に目的データをデータ1バ
ッファ284から、データ入出力手段283を介して、
y番地へnバイト転送し(705)、1つの転送単位の
転送が終了する。
【0257】次の転送単位の転送の前に、転送長レジス
タ288からnを引き、転送元1アドレスレジスタ28
9と、転送先1アドレスレジスタ292にnを加える。
すると、次は上記と同様な方法で、(x+n)番地から
(y+n)番地へnバイトの転送が行われる。この動作
を転送長レジスタ288が0になるまで続けることによ
り、x番地から、y番地のDMA転送が行われる。DM
A転送が終了すると、データ転送生成管理手段286は
割り込み信号を発行し処理を終了する。なお、ディスク
アレイリード処理モードの場合、データ入出力手段28
3は、入力モードと出力モードを繰り返す。
【0258】また、後述の実施例4においては、図12
のディスクアレイデータ転送生成手段254は、データ
転送生成管理手段286内にデータの転送先のアドレス
を格納する転送先2アドレスレジスタを有する。転送
元、または、転送先がIOの場合でも、上記と同様なD
MA転送が可能である。その場合、1つの転送単位nバ
イトの転送を行った後、さらにnバイト転送するとき
に、転送元がIOなので、IOアドレスが格納されてい
る各アドレスレジスタには、nを加えずに同じ値を用い
る。転送元、または、転送先がIOであることは、デー
タ転送生成管理手段286のモード選択レジスタ294
に設定する。
【0259】動作説明に戻り、目的データの転送が終了
すると、図11の要求管理部121は、要求終了部12
6に処理を移し要求終了部126は、全体のリード処理
を終了させる。
【0260】また、ディスクアレイリード処理(R1)
の場合、ディスクインターフェース制御手段制御部13
1は、ディスクインターフェース制御手段205に対
し、アレイ制御補助手段制御コマンドのうちの目的デー
タのリードコマンドを発行する。次に、ディスクインタ
ーフェース制御手段205は、目的データが格納されて
いるディスク装置301に対して受信した該リードコマ
ンドを発行する。ディスク装置301は、該リードコマ
ンドを受け取り、目的データをディスクインターフェー
ス制御手段205に転送する。ディスクインターフェー
ス制御手段205は、目的データをユーザ領域108に
DMA転送し(701)、ホストCPU101に割り込
み信号を発行する。次に、ディスクアレイデータ転送生
成手段制御部133は、ディスクアレイデータ転送生成
手段254に対しアレイ制御補助手段制御コマンドのう
ちのディスクアレイデータ転送生成手段制御コマンドを
発行する。ディスクアレイデータ転送生成手段254
は、該コマンドを受け取り、目的データをユーザ領域1
08からから旧データ保持手段112にDMA転送する
(702)(703)。DMA転送が終了すると、ディ
スクアレイデータ転送生成手段254は、ホストCPU
101に割り込み信号を発行する。
【0261】目的データの転送が終了すると、要求管理
部121は、要求終了部126に処理を移し要求終了部
126は、全体のリード処理を終了させる。
【0262】[ディスクアレイライト処理]次に、ディ
スクアレイライト処理におけるデータライト処理と遅延
パリティ処理について説明する。
【0263】[データライト処理]データライト処理
(W3)を例として、データライト処理動作を図10と
図11と図14を用いて説明する。動作説明の中で、
(801)から(807)は、図14の番号に対応す
る。ここで、新データは、図10のディスク装置301
のD0に書き込まれるとする。ホストシステム1上のア
プリケーションなどからディスクアレイライト要求が発
行されると、ホストCPU101は、ディスクアレイ制
御プログラム領域109内の各プログラムを用いて、以
下の処理を行う。
【0264】まず、図11の要求受信部120が、該ラ
イト要求を受け取る。要求管理部121は、該ライト要
求をアドレス変換部122に渡し、アドレス変換部12
2は、新データをライトするデータディスクアドレス
と、新データに対応したパリティディスクアドレスを算
出する。
【0265】旧データ検索部123は、算出したデータ
ディスクアドレスが、メインメモリ104の旧データア
ドレス保持部110に存在するかを調べることにより、
メインメモリ104内の旧データ保持手段112に旧デ
ータがあるか検索し、データライト処理のタイプ分けを
行う。
【0266】データライト処理(W3)では、該データ
ディスクアドレスが旧データアドレス保持部110に存
在しないので、新データを保持するのに必要なサイズの
メモリを旧データ保持手段112に確保すると共に、そ
のメモリアドレスとデータディスクアドレスをまとめて
同じ配列の構造体として、旧データアドレス保持部11
0に保持する。
【0267】パリティ検索部124は、算出したパリテ
ィディスクアドレスが、メインメモリ104のパリティ
アドレス保持部111に存在するかを調べることによ
り、メインメモリ104内のパリティ保持手段114に
旧更新データ、または、旧パリティがあるか検索し、デ
ータライト処理のタイプ分けを行う。
【0268】もし、該パリティディスクアドレスがパリ
ティアドレス保持部111に存在しているときは、パリ
ティディスクアドレスに付加されているフラグを元に、
旧更新データか、旧パリティかを調べる。データライト
処理(W3)では、旧更新データが存在するパリティ保
持手段114のメモリアドレスを算出する。
【0269】次に、アレイ制御補助手段制御コマンド生
成部125は、データライト処理(W3)では、以下の
ようなコマンドを生成し、これらをまとめてアレイ制御
補助手段制御コマンドとする。
【0270】旧データのデータディスクアドレスと読み
だした旧データを転送する旧データ保持手段112のメ
モリアドレスを格納したデータディスクのリードコマン
ドを生成する。
【0271】ディスクアレイデータ転送生成手段制御コ
マンドとしては、ユーザ領域108の新データと、旧デ
ータ保持手段112の旧データと、パリティ保持手段1
14の旧更新データから新パリティを生成し、さらに、
新データを旧データ保持手段112に転送し、生成した
新更新データをパリティ保持手段114に転送するよう
なデータライト処理モードのコマンドを生成する。ま
た、新データが存在するユーザ領域108のメモリアド
レスと新データを書き込むデータディスクアドレスを格
納したデータディスクのライトコマンドを生成する。
【0272】ここで、データライト処理モードのディス
クアレイデータ転送生成手段制御コマンドを以下に示
す。
【0273】データライト処理(W3)の場合、該コマ
ンドは、転送長と、転送元1のユーザ領域108のメモ
リアドレスと、転送元2の旧データ保持手段112のメ
モリアドレスと、転送元3のパリティ保持手段114の
メモリアドレスと、転送先1の旧データ保持手段112
のメモリアドレスと、転送先2のパリティ保持手段11
4のメモリアドレスと、動作のモードを指定するモード
選択コマンドと、データ入出力手段283の入出力モー
ドを指定する入出力モード選択コマンドと、データ1バ
ッファ284とデータ2バッファ285の初期化コマン
ドと、転送開始コマンドを有する。
【0274】アレイ制御補助手段制御コマンド生成部1
25は、以上のようなコマンドを生成し、これらをまと
めてアレイ制御補助手段制御コマンドとし、要求管理部
121に処理を渡す。
【0275】まず、ディスクインターフェース制御手段
制御部131は、ディスクインターフェース制御手段2
05に対し、アレイ制御補助手段制御コマンドのうちの
旧データのリードコマンドを発行する。次に、ディスク
インターフェース制御手段205は、旧データが格納さ
れているディスク装置301に対して受信した該リード
コマンドを発行する。ディスク装置301は、該リード
コマンドを受け取り、旧データをディスクインターフェ
ース制御手段205に転送する。ディスクインターフェ
ース制御手段205は、旧データを旧データ保持手段1
12にDMA転送し(801)、ホストCPU101に
割り込み信号を発行する。
【0276】ディスクアレイデータ転送生成手段制御部
133は、ディスクアレイデータ転送生成手段254に
対しアレイ制御補助手段制御コマンドのうちのディスク
アレイデータ転送生成手段制御コマンドを発行する。デ
ィスクアレイデータ転送生成手段254は、該コマンド
を受け取り、ユーザ領域108の新データと、旧データ
保持手段112の旧データと、パリティ保持手段114
の旧更新データから新更新データを生成し、さらに、新
データを旧データ保持手段112に転送し、生成した新
更新データをパリティ保持手段114に転送するような
データライト処理モードの転送を行う。
【0277】このとき、転送元1はユーザ領域108の
メモリアドレス、転送元2は旧データ保持手段112メ
モリアドレス、転送元3はパリティ保持手段114メモ
リアドレス、転送先1は旧データ保持手段112のメモ
リアドレス、転送先2はパリティ保持手段114のメモ
リアドレスである。ホストCPU101は、ディスクア
レイデータ転送生成手段制御コマンドを用いて、これら
のアドレスをディスクアレイデータ転送生成手段254
のデータ転送生成管理手段286に設定し、モード選択
コマンドによってデータライト処理モードをモード選択
レジスタ294に設定し、入出力モードを入出力モード
レジスタ296に設定し、バッファの初期化コマンドを
データバッファ初期化レジスタ297に設定し、コマン
ドレジスタ295に実行コマンドを発行することで上記
の通りのDMA転送を実施する。ディスクアレイデータ
転送生成手段254は、ホストCPU101に割り込み
信号を発行する。
【0278】ここで、ディスクアレイデータ転送生成手
段254のデータライト処理モードの動作例を図12を
用いて説明する。ディスクアレイデータ転送生成手段制
御コマンドによって、転送長レジスタ288には、転送
長mバイトが格納され、転送元1アドレスレジスタ28
9には、ユーザ領域108にある新データのメモリアド
レスx番地が格納され、転送元2アドレスレジスタ29
0には、旧データ保持手段112にある旧データのメモ
リアドレスy番地が格納され、転送元3アドレスレジス
タ291には、パリティ保持手段114にある旧更新デ
ータのメモリアドレスz番地が格納され、転送先1アド
レスレジスタ292には、新データが転送される旧デー
タ保持手段112のメモリアドレスi番地が格納され、
転送先2アドレスレジスタ293には、新更新データが
転送されるパリティ保持手段114のメモリアドレスj
番地が格納されるとする。
【0279】まず、ディスクアレイデータ転送生成手段
制御コマンドによって、入出力モードレジスタ296に
データ処理(W3)のモードが設定されると、データ入
出力手段283が入力モードとなり、以下、処理に合わ
せて入出力モードが切り替わる。また、データバッファ
初期化レジスタ297が設定されると、データ1バッフ
ァ284とデータ2バッファ285にあるデータが0で
初期化され、排他的論理和演算手段287はデータの受
け入れが可能な状態になる。
【0280】データ1バッファ284とデータ2バッフ
ァ285の容量がnバイトだとすると、転送単位はnバ
イトとなる。まず、新データをx番地からデータ入出力
手段283を介して、データ1バッファ284へnバイ
ト転送する(802)。次に、旧データをy番地からデ
ータ入出力手段283を介して、排他的論理和演算手段
287へnバイト転送し、データ1バッファ284にあ
る新データとの排他的論理和を算出し、結果をデータ2
バッファ285に入れる(803)。データ2バッファ
285には、新データと旧データの排他的論理和がある
ことになる。次に、データ1バッファ284にある新デ
ータをデータ入出力手段283を介して、i番地にnバ
イト転送する(804)。
【0281】次に、旧更新データをz番地からデータ入
出力手段283を介して、排他的論理和演算手段287
にnバイト転送し、データ2バッファ285にあるデー
タとの排他的論理和を算出し、結果をデータ1バッファ
284に入れる(805)。このとき、データ1バッフ
ァ284には、新データと旧データと旧更新データの排
他的論理和である新更新データがあることになる。さら
に、データ1バッファ284にある新更新データをj番
地へnバイト転送する(806)。
【0282】以上が、データライト処理モードにおける
1つの転送単位の動作である。
【0283】次の転送単位の転送の前に、転送長レジス
タ288からnを引き、各アドレスレジスタにnを加え
る。すると、次は上記と同様な方法で、(x+n)番
地、(y+n)番地、(z+n)番地からnバイトの転
送が行われ、(i+n)番地、(j+n)番地へnバイ
トの転送が行われる。この動作を転送長レジスタ288
が0になるまで続けることにより、データライト処理モ
ードのDMA転送が行われる。DMA転送が終了する
と、データ転送生成管理手段286は割り込み信号を発
行し処理を終了する。
【0284】次に、ディスクインターフェース制御手段
制御部131は、ディスクインターフェース制御手段2
05に対し新データのライトコマンドを発行する。ディ
スクインターフェース制御手段205は、新データを格
納するディスク装置に対して受信した該ライトコマンド
を発行する。ディスク装置301は、該ライトコマンド
を受け取り、データを待つ状態となる。ディスクインタ
ーフェース制御手段205は、新データをユーザ領域1
08からディスクインターフェース制御手段205にD
MA転送し(807)、ホストCPU101に割り込み
信号を発行する。このとき新データは、データディスク
にライトされる。
【0285】動作説明に戻り、図11の要求管理部12
1は、新データの書き込みが終了したディスクインタフ
ェース制御手段205から割り込み信号を受け取ると、
要求終了部126に処理を移し、要求終了部126は、
全体のデータライト処理を終了させる。
【0286】データライト処理(W3)と他のデータラ
イト処理の違いを以下に示す。
【0287】データライト処理(W5)は、データライ
ト処理(W3)の旧更新データを旧パリティに、新しく
生成された新データを新パリティに置き換えたものであ
る。(805)で旧パリティが転送され、(806)で
新パリティが転送される。また、ディスクアレイ制御プ
ログラム領域109内のパリティ検索部124は、パリ
ティアドレス保持部111に格納されているパリティデ
ィスクアドレスに付加されているフラグをパリティディ
スクに書き込まれているものと違う旧パリティであるこ
とを表すようにする。
【0288】データライト処理(W1)は、データライ
ト処理(W3)において旧更新データを用いないで、新
更新データを生成する処理であり、パリティ生成に関す
る動作がデータライト処理(W3)と異なる。また、デ
ータとの整合性がとれていないパリティのパリティディ
スクアドレスを記録する処理を行う。
【0289】ディスクアレイ制御プログラム領域109
内の処理において、パリティ検索部124は、算出した
パリティディスクアドレスが、メインメモリ104のパ
リティアドレス保持部111に存在するかを調べること
により、メインメモリ104内のパリティ保持手段11
4に旧更新データ、または、旧パリティがあるか検索す
る。データライト処理(W1)の場合、該パリティディ
スクアドレスがパリティアドレス保持部111に存在し
ないので、新更新データを保持するのに必要なサイズの
メモリをパリティ保持手段114に確保すると共に、そ
のメモリアドレスとパリティディスクアドレスと、デー
タライト処理後にパリティ保持手段114に格納される
のが新更新データであることを表すフラグをまとめて同
じ構造体として、パリティアドレス保持部111に保持
する。また、該パリティディスクアドレスを未記録パリ
ティアドレス保持手段250に保持する。データライト
処理モードのディスクアレイデータ転送生成手段制御コ
マンドによって、入出力モードレジスタ296にデータ
処理(W1)のモードを設定する。(805)の転送
は、行われず、(806)の転送の代わりに、データ2
バッファ285にある新更新データがパリティ保持手段
114に転送される。
【0290】データライト処理(W2)、(W4)、
(W6)は、それぞれ、データライト処理(W1)、
(W3)、(W5)から旧データリードに係わる処理を
行わないようにしたものである。ディスクアレイ制御プ
ログラム領域109内の処理において、旧データ検索部
123は、算出したデータディスクアドレスが、メイン
メモリ104の旧データアドレス保持部110に存在す
るかを調べることにより、メインメモリ104内の旧デ
ータ保持手段112に旧データがあるか検索する。デー
タライト処理(W2)、(W4)、(W6)では、該デ
ータディスクアドレスが旧データアドレス保持部110
に存在しているので、旧データが存在する旧データ保持
手段112のメモリアドレスを算出する。また、新デー
タを保持するのに必要なサイズのメモリを旧データ保持
手段112に確保すると共に、そのメモリアドレスを算
出する。
【0291】実施例3のデータライト処理においては、
未記録パリティアドレス保持手段250に書き込まれた
パリティディスクアドレスにより、どのディスク装置の
どの論理ブロックのパリティに変更が必要であるかが記
録される。また、旧データ保持手段112に保持された
新データは、次回のデータライト処理における旧データ
となり、ディスクアレイデータ転送生成手段254によ
る新更新データの生成処理と新パリティの生成処理を高
速化できる。さらに、リードモデファイライト処理にお
いては、リード処理時に読み出したデータが旧データ保
持手段112に保持されているので、変更したデータの
データライト処理を行う際にあらためて旧データを読み
出す必要がなく、ディスク装置に対する処理を1回削減
できる。
【0292】[遅延パリティ処理]遅延パリティ処理を
図10と図11と図15を用いて説明する。動作説明の
中で、(901)から(905)は、図15の番号に対
応する。ここで、新パリティは、図10のディスク装置
305のPに書き込まれるとする。
【0293】ホストCPU101は、ディスクアレイ制
御プログラム領域109内の各プログラムを用いて、以
下の処理を行う。まず、図11の遅延パリティ処理判定
部127が、遅延パリティ処理を行うべきであると判断
すると、要求管理部121に処理を渡す。遅延パリティ
処理が開始されるタイミングとして、例えば、ドライブ
に対するアクセス頻度が低いときや、パリティ保持手段
114が旧更新データで一杯になったときなどが考えら
れる。
【0294】要求管理部121は、パリティ検索部12
4に処理を渡し、パリティ検索部124は、メインメモ
リ104のパリティアドレス保持部111にパリティデ
ィスクアドレスが存在するかを検索し、存在したときは
付加されているフラグを調べる。
【0295】パリティアドレス保持部111に何もない
か、もしくは、パリティディスクにあるパリティと同一
のパリティディスクアドレスのみが存在する場合は、要
求管理部121に処理を渡し、要求終了部126が遅延
パリティ処理を終了させる。
【0296】また、パリティアドレス保持部111に、
旧更新データのパリティディスクアドレス、または、パ
リティディスクに書き込まれているものと異なる旧パリ
ティのパリティディスクアドレスが存在する場合は、対
応するパリティ保持手段114のメモリアドレスを算出
し、遅延パリティ処理後にパリティ保持手段114に格
納されるのが、パリティディスクに書き込まれているも
のと同じ旧パリティであることを表すようにフラグを書
き直す。
【0297】次に、アレイ制御補助手段制御コマンド生
成部125は、以下のようなコマンドを生成し、これら
をまとめてアレイ制御補助手段制御コマンドとする。
【0298】遅延パリティ処理(P1)の場合、旧パリ
ティのパリティディスクアドレスと、読みだした旧パリ
ティを転送するパリティ生成作業領域113のメモリア
ドレスを格納したパリティディスクのリードコマンドを
生成する。また、ディスクアレイデータ転送生成手段制
御コマンドとしては、パリティ生成作業領域113の旧
パリティと、パリティ保持手段114の旧更新データか
ら新パリティを生成し、さらに、生成した新パリティを
パリティ保持手段114に転送するような遅延パリティ
処理モードのコマンドを生成する。また、新パリティが
存在するパリティ保持手段114のメモリアドレスと新
パリティを書き込むパリティディスクアドレスを格納し
たパリティディスクのライトコマンドを生成する。
【0299】遅延パリティ処理モードの場合のディスク
アレイデータ転送生成手段制御コマンドは、転送長と、
転送元1であるパリティ生成作業領域113のメモリア
ドレスと、転送元2であるパリティ保持手段114のメ
モリアドレスと、転送先1であるパリティ保持手段11
4のメモリアドレスと、モード選択コマンドと、データ
1バッファ284とデータ2バッファ285の初期化コ
マンドと、転送開始コマンドを有する。
【0300】遅延パリティ処理(P2)の場合は、新パ
リティが存在するパリティ保持手段114のメモリアド
レスと新パリティを書き込むパリティディスクアドレス
を格納したパリティディスクのライトコマンドを生成す
る。
【0301】アレイ制御補助手段制御コマンド生成部1
25は、以上のようなコマンドを生成し、これらをまと
めてアレイ制御補助手段制御コマンドとし、要求管理部
121に処理を渡す。
【0302】まず、遅延パリティ処理(P2)の場合を
示す。ディスクインターフェース制御手段制御部131
は、ディスクインターフェース制御手段209に対し新
パリティのライトコマンドを発行する。ディスクインタ
ーフェース制御手段209は、新パリティを格納するデ
ィスク装置305に対して受信した該ライトコマンドを
発行する。ディスク装置305は、該ライトコマンドを
受け取り、データを待つ状態となる。ディスクインター
フェース制御手段209は、新パリティをパリティ保持
手段114からディスクインターフェース制御手段20
9にDMA転送し(905)、ホストCPU101に割
り込み信号を発行する。このとき新パリティは、パリテ
ィディスクにライトされる。
【0303】要求管理部121は、新パリティの書き込
みが終了したディスクインタフェース制御手段209か
ら割り込み信号を受け取ると、未記録パリティアドレス
保持手段250にある遅延パリティ処理が行われたパリ
ティディスクアドレスを消去した後、要求終了部126
に処理を移し、要求終了部126は、全体の遅延パリテ
ィ処理を終了させる。
【0304】次に、遅延パリティ処理(P1)の場合を
示す。ディスクインターフェース制御手段制御部131
は、ディスクインターフェース制御手段209に対し、
アレイ制御補助手段制御コマンドのうちの旧パリティの
リードコマンドを発行する。ディスクインターフェース
制御手段209は、旧データが格納されているディスク
装置305に対して受信した該リードコマンドを発行す
る。ディスク装置305は、該リードコマンドを受け取
り、旧パリティをディスクインターフェース制御手段2
09に転送する。ディスクインターフェース制御手段2
09は、旧パリティをパリティ生成作業領域113にD
MA転送し(901)、ホストCPU101に割り込み
信号を発行する。
【0305】次に、ディスクアレイデータ転送生成手段
制御部133は、ディスクアレイデータ転送生成手段2
54に対しアレイ制御補助手段制御コマンドのうちのデ
ィスクアレイデータ転送生成手段制御コマンドを発行す
る。ディスクアレイデータ転送生成手段254は、該コ
マンドを受け取り、パリティ生成作業領域113の旧パ
リティと、パリティ保持手段114の旧更新データから
新パリティを生成し、さらに、生成した新パリティをパ
リティ保持手段114に転送するような遅延パリティ処
理モードの転送を行う。
【0306】このとき、転送元1はパリティ生成作業領
域113のメモリアドレス、転送元2はパリティ保持手
段114のメモリアドレス、転送先1はパリティ保持手
段114のメモリアドレスである。ホストCPU101
は、ディスクアレイデータ転送生成手段制御コマンドを
用いて、これらのアドレスをディスクアレイデータ転送
生成手段254のデータ転送生成管理手段286に設定
し、遅延パリティ処理モードをモード選択レジスタ29
4に設定し、コマンドレジスタ295に実行コマンドを
発行することで上記の通りのDMA転送を実施する。デ
ィスクアレイデータ転送生成手段254は、ホストCP
U101に割り込み信号を発行する。
【0307】遅延パリティ処理モードのディスクアレイ
データ転送生成手段254の動作を以下に示す。ディス
クアレイデータ転送生成手段制御コマンドによって、転
送長レジスタ288には、転送長mバイトが格納され、
転送元1アドレスレジスタ289には、パリティ作業領
域113にある旧パリティのメモリアドレスx番地が格
納され、転送元2アドレスレジスタ290には、パリテ
ィ保持手段114にある旧更新データのメモリアドレス
y番地が格納され、転送先1アドレスレジスタ292に
は、新パリティが転送されるパリティ保持手段114の
メモリアドレスi番地が格納されるとする。
【0308】まず、ディスクアレイデータ転送生成手段
制御コマンドによって、データバッファ初期化レジスタ
297が設定されると、データ1バッファ284とデー
タ2バッファ285にあるデータが0で初期化され、排
他的論理和演算手段287はデータの受け入れが可能な
状態になる。なお、遅延パリティ処理モードの場合、遅
延パリティ処理(P1)に合わせて入出力モードが切り
替わる。
【0309】データ1バッファ284とデータ2バッフ
ァ285の容量がnバイトだとすると、転送単位はnバ
イトとなる。まず、旧パリティをx番地からデータ入出
力手段283を介して、データ1バッファ284へnバ
イト転送する(902)。次に、旧更新データをy番地
からデータ入出力手段283を介して、排他的論理和演
算手段287へnバイト転送し、データ1バッファ28
4にある新データとの排他的論理和を算出し、結果をデ
ータ2バッファ285に入れる(903)。データ2バ
ッファ285には、新パリティがあることになる。次
に、データ2バッファ285にある新パリティをデータ
入出力手段283を介して、i番地にnバイト転送する
(904)。
【0310】以上が、遅延パリティ処理モードにおける
1つの転送単位の動作である。
【0311】次の転送単位の転送の前に、転送長レジス
タ288からnを引き、各アドレスレジスタにnを加え
る。すると、次は上記と同様な方法で、(x+n)番
地、(y+n)番地からnバイトの転送が行われ、(i
+n)番地へnバイトの転送が行われる。この動作を転
送長レジスタ288が0になるまで続けることにより、
遅延パリティ処理モードのDMA転送が行われる。DM
A転送が終了すると、データ転送生成管理手段286は
割り込み信号を発行し処理を終了する。
【0312】以下、新パリティがパリティ保持手段11
4にある場合(P1)と同様な処理となる。
【0313】実施例3において、ディスクアレイデータ
転送生成手段254は、新更新データおよび新パリティ
の生成の際のデータ転送と排他的論理和演算を同時に行
うので、新更新データおよび新パリティを生成するため
のデータを転送する際に生じるオーバーヘッドを低減す
ることができる。また、一時保持手段をメインメモリ1
04内に配置するため、メモリの有効利用が図れると共
に、製造コストを下げることができる。
【0314】実施例4のシステム構成は図10と同じで
ある。実施例3との違いは、ディスクアレイデータ転送
生成手段254と、ディスクインターフェース制御手段
205〜209の構成および動作の違いにある。
【0315】実施例4のディスクアレイデータ転送生成
手段254の構成は、実施例3の図12のデータ転送生
成管理手段286内に、データの転送先のアドレスを格
納する転送先2アドレスレジスタを加えたものである。
実施例4のディスクアレイデータ転送生成手段254
は、実施例3のディスクアレイデータ転送生成手段25
4の動作に加え、実施例1のディスクアレイデータ転送
手段202と同様に、転送先1から、転送先2と転送先
3へ一括DMA転送を行う機能を有する。また、ディス
クインターフェース制御手段205〜209は、DMA
転送機能を持たないため、ディスクインターフェース制
御手段205〜209とメインメモリ104間のデータ
転送は、ディスクアレイデータ転送生成手段254が行
う。
【0316】ここで、実施例4のディスクアレイシステ
ムでのディスクアレイリード処理と、ディスクアレイラ
イト処理におけるタイプ分けは、実施例3と同じである
が、動作が違う。実施例3からの変更点を以下に示す。
【0317】[ディスクアレイリード処理]ディスクア
レイリード処理(R1)においては、目的データである
旧データをディスクからリードして、ユーザ領域108
と一時保持手段に一括DMA転送する処理を行う。ディ
スクアレイリード処理(R2)は、実施例3と同様であ
る。
【0318】[ディスクアレイライト処理] [データライト処理]すべてのデータライト処理におい
て、新データをユーザ領域108からデータディスクに
転送する処理と、新データをユーザ領域108から一時
保持手段に転送する処理を、新データをユーザ領域10
8から、データディスクと一時保持手段に一括DMA転
送する処理にして行う。
【0319】[遅延パリティ処理]旧パリティを一時保
持手段に転送する処理と、新パリティをパリティディス
クに転送する処理は、ディスクアレイデータ転送生成手
段254が行う。
【0320】以上述べた実施例4は、実施例3と同様な
効果が得られる。
【0321】第5の実施例のシステム構成を図16に示
す。
【0322】図16は、第3実施例の図10におけるデ
ィスクアレイデータ転送生成手段254を、実施例1の
図4に示すディスクアレイデータ転送手段202と図5
に示す排他的論理和生成手段203に置き換えたもので
ある。アレイ制御補助手段2のディスクアレイデータ転
送手段202と排他的論理和生成手段203とを1つの
チップとして提供すれば、実施例3において述べた効果
を得ることは明らかであり、これらを1ボード上に搭載
すれば実施例1で述べたようにシステムの拡張性を向上
することができるのは明らかである。
【0323】また、メインメモリ104のディスクアレ
イ制御プログラム領域109は、図17に示すように、
要求受信部120と、要求管理部121と、アドレス変
換部122と、旧データ検索部123と、パリティ検索
部124と、アレイ制御補助手段制御コマンド生成部1
25と、ディスクアレイデータ転送手段制御部130
と、ディスクインターフェース制御手段制御部131
と、排他的論理和生成手段制御部132と、要求終了部
126と、遅延パリティ処理判定部127で構成してい
る。
【0324】図16の旧データ保持手段112、旧デー
タアドレス保持部110、パリティ保持手段114、パ
リティアドレス保持部111と、未記録パリティアドレ
ス保持手段250の構成は、実施例1の図1の旧データ
保持手段216、旧データアドレス保持部110、パリ
ティ保持手段218、パリティアドレス保持部111と
未記録パリティアドレス保持手段250とそれぞれ同じ
である。ディスクアレイデータ転送手段202および排
他的論理和生成手段203の動作は、実施例1と同じで
あり、ディスクアレイデータ転送手段202は、一括D
MA転送を行うことができる。
【0325】実施例5のディスクアレイリード・ライト
処理においては、実施例1と違い、アレイ制御補助手段
2の制御を図1のようなMPU210ではなく、ホスト
CPU101で行い、一時保持手段は、ホストシステム
1のメインメモリ104内に配置する。実施例5と実施
例1のディスクアレイリード・ライト処理動作の違いを
以下に示す。なお、一時保持手段に格納されているもの
で分類したタイプは、実施例1と実施例5では同じであ
る。
【0326】まず、実施例1においては、図2に示すデ
ィスクアレイ制御プログラム領域109内のアレイ制御
補助手段制御コマンド生成部125が生成した制御コマ
ンドをMPU制御部128に渡し、MPU制御部128
は、図1のMPU210に該制御コマンドを発行する。
【0327】該制御コマンドを受け取ったMPU210
は、図3に示すMPU制御プログラム領域214を用い
て、以下の処理を行う。要求受信部220は、該制御コ
マンドを受け取ると、要求管理部221に処理を渡す。
要求管理部221は、ディスクアレイデータ転送手段制
御部222、ディスクインターフェース制御手段制御部
223および排他的論理和生成手段制御部224に処理
を移し、ディスクアレイデータ転送手段制御部222は
ディスクアレイデータ転送手段202に、ディスクイン
ターフェース制御手段制御部223はディスクインター
フェース制御手段205〜209に、排他的論理和生成
手段制御部224は排他的論理和生成手段203に、そ
れぞれの制御コマンドを発行する。また、要求管理部2
21は、ディスクアレイデータ転送手段202、ディス
クインターフェース制御手段205〜209および排他
的論理和生成手段203から割り込み信号を受け取り、
すべての処理が終了すると要求終了部225に処理を渡
す。要求終了部225は、ホストCPU101に割り込
み信号を出す。
【0328】割り込み信号を受け取ったホストCPU1
01は、図2に示すディスクアレイ制御プログラム領域
109内の要求管理部121を用いて要求終了部126
に処理を移し、要求終了部126は全体の処理を終了さ
せる。
【0329】次に、実施例5においては、図17に示す
ディスクアレイ制御プログラム領域109内のアレイ制
御補助手段制御コマンド生成部125が制御コマンドを
生成した後、要求管理部121に処理が移る。要求管理
部121は、ディスクアレイデータ転送手段制御部13
0、ディスクインターフェース制御手段制御部131お
よび排他的論理和生成手段制御部132に処理を移し、
ディスクアレイデータ転送手段制御部130はディスク
アレイデータ転送手段202に、ディスクインターフェ
ース制御手段制御部131はディスクインターフェース
制御手段205〜209に、排他的論理和生成手段制御
部132は排他的論理和生成手段203に、それぞれの
制御コマンドを発行する。また、要求管理部121は、
ディスクアレイデータ転送手段202およびディスクイ
ンターフェース制御手段205〜209から割り込み信
号を受け取り、すべての処理が終了すると要求終了部1
26に処理を渡す。要求終了部126は、全体の処理を
終了させる。
【0330】実施例5においては、一時保持手段をメイ
ンメモリ104内に配置するため、メモリの有効利用が
図れると共に、実施例1と比較して製造コストを下げる
ことができる。
【0331】実施例6のシステム構成は図16と同じで
ある。実施例5との違いは、ディスクアレイデータ転送
手段202の構成および動作の違いと、ディスクインタ
ーフェース制御手段205〜209の構成および動作の
違いにある。実施例6のディスクアレイデータ転送手段
202の構成と動作は、実施例2の図9に示したディス
クアレイデータ転送手段202と同じであり、1回のD
MA転送での転送先は1ヶ所だけである。ディスクイン
ターフェース制御手段205〜209の構成および動作
は、実施例2と同じであり、ディスクインターフェース
制御手段205〜209とメインメモリ104間のDM
A転送を行う。
【0332】実施例6のディスクアレイリード・ライト
処理においては、実施例2と違い、アレイ制御補助手段
2の制御をMPU210ではなく、ホストCPU101
で行い、メモリはホストシステム1のメインメモリ10
4のみを使用する。
【0333】実施例6と実施例2のディスクアレイリー
ド・ライト処理動作の違いは、実施例5で述べた実施例
5と実施例1の違いと同様である。また、一時保持手段
に格納されているもので分類したタイプは、実施例2と
実施例6では同じである。
【0334】実施例6は、実施例5と同様な効果が得ら
れる。
【0335】第7の実施例のシステム構成を図18に示
す。
【0336】図18は、第1実施例の図1におけるディ
スクアレイデータ転送手段202と排他的論理和生成手
段203を、実施例3の図12に示すディスクアレイデ
ータ転送生成手段254に置き換えたものである。アレ
イ制御補助手段2のディスクアレイデータ転送生成手段
254を1つのチップとして提供すれば、実施例3にお
いて述べた効果を得ることは明らかであり、ディスクア
レイデータ転送生成手段254と、メモリ212とを1
ボード上に搭載すれば実施例1で述べたようにシステム
の拡張性を向上することができるのは明らかである。ま
た、MPUメモリ211のMPU制御プログラム領域2
14は、図19に示すように、要求受信部220と、要
求管理部221と、ディスクアレイデータ転送生成手段
制御部226と、ディスクインターフェース制御手段制
御部223と、要求終了部225で構成している。図1
8のディスクアレイ制御プログラム領域109の構成
は、実施例1の図2と同じである。
【0337】ディスクアレイデータ転送生成手段254
の動作は、実施例3と同じであり、ディスクアレイデー
タ転送生成手段254は、DMA転送とパリティ生成を
行うことができる。
【0338】実施例7のディスクアレイリード・ライト
処理においては、実施例3と違い、アレイ制御補助手段
2の制御をホストCPU101ではなく、MPU210
で行い、一時保持手段は、アレイ制御補助手段2内のメ
モリ212に配置する。
【0339】実施例7と実施例3のディスクアレイリー
ド・ライト処理動作の違いを以下に示す。
【0340】なお、一時保持手段に格納されているもの
で分類したタイプは、実施例3と実施例7では同じであ
る。
【0341】まず、実施例3においては、図11に示す
ディスクアレイ制御プログラム領域109内のアレイ制
御補助手段制御コマンド生成部125が制御コマンドを
生成した後、要求管理部121に処理が移る。要求管理
部121は、ディスクアレイデータ転送生成手段制御部
133およびディスクインターフェース制御手段制御部
131に処理を移し、ディスクアレイデータ転送生成手
段制御部133はディスクアレイデータ転送生成手段2
54に、ディスクインターフェース制御手段制御部13
1はディスクインターフェース制御手段205〜209
に、それぞれの制御コマンドを発行する。また、要求管
理部121は、ディスクアレイデータ転送生成手段25
4およびディスクインターフェース制御手段205〜2
09から割り込み信号を受け取り、すべての処理が終了
すると要求終了部126に処理を渡す。要求終了部12
6は、全体の処理を終了させる。
【0342】次に、実施例7においては、図2に示すデ
ィスクアレイ制御プログラム領域109内のアレイ制御
補助手段制御コマンド生成部125が生成した制御コマ
ンドをMPU制御部128に渡し、MPU制御部128
は、図18のMPU210に該制御コマンドを発行す
る。 該制御コマンドを受け取ったMPU210は、図
19に示すMPU制御プログラム領域214を用いて、
以下の処理を行う。要求受信部220は、該制御コマン
ドを受け取ると、要求管理部221に処理を渡す。要求
管理部221は、ディスクアレイデータ転送生成手段制
御部226およびディスクインターフェース制御手段制
御部223に処理を移し、ディスクアレイデータ転送生
成手段制御部226はディスクアレイデータ転送生成手
段254に、ディスクインターフェース制御手段制御部
223はディスクインターフェース制御手段205〜2
09に、それぞれの制御コマンドを発行する。また、要
求管理部221は、ディスクアレイデータ転送生成手段
254およびディスクインターフェース制御手段205
〜209から割り込み信号を受け取り、すべての処理が
終了すると要求終了部225に処理を渡す。要求終了部
225は、ホストCPU101に割り込み信号を出す。
【0343】割り込み信号を受け取ったホストCPU1
01は、図2に示すディスクアレイ制御プログラム領域
109内の要求管理部121を用いて要求終了部126
に処理を移し、要求終了部126は全体の処理を終了さ
せる。
【0344】実施例7において、ディスクアレイデータ
転送生成手段254は、新更新データおよび新パリティ
の生成の際のデータ転送と排他的論理和演算を同時に行
うので、新更新データおよび新パリティを生成するため
のデータを転送する際に生じるオーバーヘッドを低減す
ることができる。
【0345】実施例8のシステム構成は図18と同じで
ある。
【0346】実施例7との違いは、ディスクアレイデー
タ転送生成手段254の構成および動作の違いと、ディ
スクインターフェース制御手段205〜209の構成お
よび動作の違いにある。実施例8のディスクアレイデー
タ転送生成手段254の構成と動作は、実施例4のディ
スクアレイデータ転送生成手段254と同じであり、一
括DMA転送とパリティ生成を行うことができる。ディ
スクインターフェース制御手段205〜209の構成お
よび動作は、実施例4と同じであり、ディスクインター
フェース制御手段205〜209とメインメモリ104
間のDMA転送を行う。
【0347】実施例8のディスクアレイリード・ライト
処理においては、実施例4と違い、アレイ制御補助手段
2の制御をホストCPU101ではなく、MPU210
で行い、一時保持手段は、アレイ制御補助手段2内のメ
モリ212に配置する。
【0348】実施例8と実施例4のディスクアレイリー
ド・ライト処理動作の違いは、実施例7で述べた実施例
7と実施例3の違いと同様である。また、一時保持手段
に格納されているもので分類したタイプは、実施例4と
実施例8では同じである。
【0349】実施例8は、実施例7と同様な効果が得ら
れる。
【0350】実施例9のシステム構成を図20に示す。
【0351】実施例1との違いは、アレイ制御補助手段
2のメモリ212に高速リード・ライト可能なキャッシ
ュ251を設置したことである。キャッシュ251は、
キャッシュのアドレス管理を行うキャッシュ管理手段2
52と、キャッシュメモリ253で構成している。
【0352】メモリ212内のあるメモリアドレスから
データ転送が行われるときに、該メモリアドレスがキャ
ッシュ251のキャッシュ管理手段252に存在した場
合は、メモリ212からではなく、キャッシュ251か
らデータが転送される。データの読みだしスピードは、
キャッシュ251の方が、メモリ212よりも速いの
で、データ転送の高速化が図れる。
【0353】例えば、リードモディファイライト時につ
いて考える。ディスクアレイリード処理時に読みだした
目的データは、旧データとしてキャッシュメモリ253
と旧データ保持手段216に保持される。続けて行われ
るデータライト処理時に旧データを読み出す場合、旧デ
ータはキャッシュメモリ253から読み出されるため、
旧データ保持手段216から読み出すよりも処理の高速
化が図れる。
【0354】また、データライト処理時において、旧デ
ータ保持手段216に旧データが存在しない場合は、新
データが旧データ保持手段216から排他的論理和生成
手段203にDMA転送されるときや、旧データがパリ
ティ生成作業領域217から排他的論理和生成手段20
3にDMA転送されるときなどにキャッシュがヒットす
る。また、データライト処理時において、旧データ保持
手段216に旧データが存在した場合は、新データがパ
リティ生成作業領域217から排他的論理和生成手段2
03にDMA転送されるときなどにキャッシュがヒット
する。
【0355】また、遅延パリティ処理時において、パリ
ティ保持手段218に更新データが存在した場合は、旧
パリティがパリティ生成作業領域217から排他的論理
和生成手段203にDMA転送されるときや、新パリテ
ィがパリティ保持手段218からディスクインターフェ
ース制御手段209にDMA転送されるときなどにキャ
ッシュがヒットする。
【0356】メモリ212にキャッシュ251を設置し
たことで、高速なデータ読み出しが可能となり、ディス
クアレイリード・ライト処理の高速化を図ることができ
る。
【0357】なお、アレイ制御補助手段2のメモリ21
2に高速リード・ライト可能なキャッシュ251を設置
することは、第2、第7、第8の実施例にも適用でき
る。
【0358】
【発明の効果】本発明の計算機システムによれば、新デ
ータの書き込み以外のディスクアクセス回数を削減する
ことでディスクアレイライト処理を高速化することがで
きる。
【0359】また、本発明の計算機システムによれば、
ディスクアレイ処理プログラムの制御に要するCPUの
負荷を低減することができる。
【0360】また、本発明によれば、既存のホスト装置
に簡単なサブシステムを付加できる拡張性を向上させる
ことができる。
【0361】また、本発明の計算機システムによれば、
パリティを生成するためのデータをホスト装置側のメイ
ンメモリ上に格納することで、新たにパリティを生成す
るためのデータを保持するためのメモリやこのメモリを
制御するための制御回路を不要としたため簡単な構成で
あり、かつ低コストを実現することができる。
【0362】また、本発明の計算機システムによれば、
ホスト装置のシステムバスと複数のディスク装置をそれ
ぞれ制御するディスク装置制御回路とを接続するバスも
しくは前記システムバスもしくはメインメモリのトラフ
ィックを低減し、処理の高速化を図ることができる。
【0363】また、本発明の計算機システムによれば、
メインメモリのメモリ容量を圧迫せずにパリティ生成に
必要なデータを保持し、ホスト装置のメインメモリアク
セスのトラフィックを低減し、CPUの処理の高速化を
図ることができる。
【0364】また、本発明の計算機システムによれば、
複数のディスク装置をそれぞれ制御するディスク制御回
路が有するホスト装置のメインメモリへのデータ転送機
能を活かし、簡単な構成でメインメモリ上のパリティ生
成のためのデータをパリティ生成用メモリに転送するこ
とができる。
【0365】また、本発明の計算機システムによれば、
複数のディスク装置をそれぞれ制御するディスク制御回
路が有するホスト装置のメインメモリへのデータ転送機
能を活かし、簡単な構成でメインメモリ上のパリティ生
成のためのデータをメインメモリ上のパリティ生成のた
めに必要となるデータを格納しておく領域に転送するこ
とができる。
【0366】また、本発明の計算機システムによればパ
リティ生成のためのデータ転送を高速化できる。
【図面の簡単な説明】
【図1】第1の実施例における計算機システムのブロッ
ク図である。
【図2】第1の実施例におけるディスクアレイ制御プロ
グラム領域のブロック図である。
【図3】第1の実施例におけるMPU制御プログラム領
域のブロック図である。
【図4】第1の実施例におけるディスクアレイデータ転
送手段のブロック図である。
【図5】第1の実施例における排他的論理和生成手段の
ブロック図である。
【図6】第1の実施例におけるディスクアレイリード処
理動作図である。
【図7】第1の実施例におけるデータライト処理動作図
である。
【図8】第1の実施例における遅延パリティ処理動作図
である。
【図9】第2の実施例におけるディスクアレイデータ転
送手段のブロック図である。
【図10】第3の実施例における計算機システムのブロ
ック図である。
【図11】第3の実施例におけるディスクアレイ制御プ
ログラム領域のブロック図である。
【図12】第3の実施例におけるディスクアレイデータ
転送生成手段のブロック図である。
【図13】第3の実施例におけるディスクアレイリード
処理動作図である。
【図14】第3の実施例におけるデータライト処理動作
図である。
【図15】第3の実施例における遅延パリティ処理動作
図である。
【図16】第5の実施例における計算機システムのブロ
ック図である。
【図17】第5の実施例におけるディスクアレイ制御プ
ログラム領域のブロック図である。
【図18】第7の実施例における計算機システムのブロ
ック図である。
【図19】第7の実施例におけるMPU制御プログラム
領域のブロック図である。
【図20】第9の実施例における計算機システムのブロ
ック図である。
【図21】従来例における計算機システムのブロック図
である。
【符号の説明】
1…ホストシステム,2…アレイ制御補助手段,3…デ
ィスク装置群,4…ディスクインターフェース制御手
段,101…ホストCPU,102…キャッシュ,10
3…ローカルバス・システムバス間ブリッジ,104…
メインメモリ,105…ローカルバス,106…システ
ムバス,107…バスインターフェース,108…ユー
ザ領域,109…ディスクアレイ制御プログラム領域,
110…旧データアドレス保持部,111…パリティア
ドレス保持部,112…旧データ保持手段,113…パ
リティ生成作業領域,114…パリティ保持手段,11
5…コマンド格納領域,120…要求受信部,121…
要求管理部,122…アドレス変換部,123…旧デー
タ検索部,124…パリティ検索部,125…アレイ制
御補助手段制御コマンド生成部,126…要求終了部,
127…遅延パリティ処理判定部,128…MPU制御
部,130…ディスクアレイデータ転送手段制御部,1
31…ディスクインターフェース制御手段制御部,13
2…排他的論理和生成手段制御部,133…ディスクア
レイデータ転送生成手段制御部,201…バスインター
フェース,202…ディスクアレイデータ転送手段,2
03…排他的論理和生成手段,204…アレイ制御補助
手段内部バス,205〜209…ディスクインターフェ
ース制御手段,210…MPU,211…MPUメモ
リ,212…メモリ,213…MPUバス,214…M
PU制御プログラム領域,215…MPUコマンド格納
領域,216…旧データ保持手段,217…パリティ生
成作業領域,218…パリティ保持手段,219…メモ
リ制御手段,220…要求受信部,221…要求管理
部,222…ディスクアレイデータ転送手段制御部,2
23…ディスクインターフェース制御手段制御部,22
4…排他的論理和生成手段制御部,225…要求終了
部,226…ディスクアレイデータ転送生成手段手段,
250…未記録パリティアドレス保持手段,251…キ
ャッシュ,252…キャッシュ管理手段,253…キャ
ッシュメモリ,254…ディスクアレイデータ転送生成
手段,301〜305…ディスク装置
───────────────────────────────────────────────────── フロントページの続き (72)発明者 兼田 泰典 神奈川県川崎市麻生区王禅寺1099番地株 式会社日立製作所システム開発研究所内 (72)発明者 荒川 敬史 神奈川県川崎市麻生区王禅寺1099番地株 式会社日立製作所システム開発研究所内 (72)発明者 高野 雅弘 神奈川県小田原市国府津2880番地株式会 社日立製作所ストレージシステム事業部 内 (56)参考文献 特開 平6−259197(JP,A) (58)調査した分野(Int.Cl.7,DB名) G06F 3/06 G06F 12/16

Claims (5)

    (57)【特許請求の範囲】
  1. 【請求項1】複数のデイスク装置と、CPUとメインメ
    モリと前記複数のデイスク装置を制御するデイスク制御
    回路とを備えたホスト装置とを有する計算機システムで
    あって、 前記CPUは、前記メインメモリ上のプログラムに従っ
    て、前記複数のデイスク装置をパリテイ付きの論理的な
    1台のデイスクアレイ装置として管理し、前記新データ
    を前記デイスク装置に書き込む処理に遅延させて非同期
    に前記新パリテイの生成と前記デイスク装置への書き込
    み処理を行なうように制御し、 前記ホスト装置は、 更新データ、旧パリテイ、旧データを保持するパリテイ
    生成用メモリと、 前記パリテイ生成用メモリに保持されているデータと前
    記メインメモリ上に保持されている前記デイスク制御回
    路に書き込むべき新データとから新パリテイ又は前記更
    新データを生成するパリテイ生成回路と、 前記デイスクアレイ装置からのデータ読み出し時には前
    記デイスクアレイ装置に格納されたデータに対応するデ
    ータを前記パリテイ生成用メモリに転送し、前記デイス
    クアレイ装置へのデータ書き込み時には前記デイスクア
    レイ装置に書き込むべきデータに対応するデータを前記
    パリテイ生成用メモリに転送するデータ転送回路とを有
    することを特徴とする計算機システム。
  2. 【請求項2】前記旧データは前記新データが書き込まれ
    る直前のデータであり、前記更新データは前記新データ
    と前記新データにより上書きされる前記デイスクアレイ
    装置のデータとの排他的論理和演算によって生成された
    データであり、前記旧パリテイは前記新パリテイが書き
    込まれる直前のパリテイであり、前記新パリテイは前記
    更新データと前記旧パリテイとの排他的論理和演算によ
    って生成されたデータであることを特徴とする請求項1
    に記載の計算機システム。
  3. 【請求項3】前記パリテイ生成用メモリと、前記パリテ
    イ生成回路と、前記データ転送回路は1つのボード上に
    搭載され、前記ホスト装置のシステムバスに接続されて
    いることを特徴とする請求項2に記載の計算機システ
    ム。
  4. 【請求項4】前記更新データ、旧パリテイ、旧データを
    前記メインメモリ上に保持させたことを特徴とする請求
    項2に記載の計算機システム。
  5. 【請求項5】前記データ転送回路と前記パリテイ生成回
    路とは1チップ上に形成されており、前記1チップは、
    前記ホスト装置のシステムバスと前記デイスク制御装置
    とを接続するバスに接続されていることを特徴とする請
    求項2に記載の計算機システム。
JP6305050A 1994-12-08 1994-12-08 計算機システム Expired - Fee Related JP3011035B2 (ja)

Priority Applications (4)

Application Number Priority Date Filing Date Title
JP6305050A JP3011035B2 (ja) 1994-12-08 1994-12-08 計算機システム
US08/849,236 US5996046A (en) 1994-12-08 1995-12-08 Parity generation system for generating new parity using old data in temporary storage without accessing main disk storage of disk drive
EP95939400A EP0797141A1 (en) 1994-12-08 1995-12-08 Computer system
PCT/JP1995/002518 WO1996018141A1 (en) 1994-12-08 1995-12-08 Computer system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP6305050A JP3011035B2 (ja) 1994-12-08 1994-12-08 計算機システム

Publications (2)

Publication Number Publication Date
JPH08161124A JPH08161124A (ja) 1996-06-21
JP3011035B2 true JP3011035B2 (ja) 2000-02-21

Family

ID=17940516

Family Applications (1)

Application Number Title Priority Date Filing Date
JP6305050A Expired - Fee Related JP3011035B2 (ja) 1994-12-08 1994-12-08 計算機システム

Country Status (4)

Country Link
US (1) US5996046A (ja)
EP (1) EP0797141A1 (ja)
JP (1) JP3011035B2 (ja)
WO (1) WO1996018141A1 (ja)

Families Citing this family (27)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3409859B2 (ja) 1991-01-31 2003-05-26 株式会社日立製作所 制御装置の制御方法
US6874101B2 (en) 1991-01-31 2005-03-29 Hitachi, Ltd. Storage unit subsystem
DE19529434B4 (de) * 1995-08-10 2009-09-17 Continental Teves Ag & Co. Ohg Microprozessorsystem für sicherheitskritische Regelungen
JP2914360B2 (ja) * 1997-09-30 1999-06-28 ソニー株式会社 外部記憶装置及びデータ処理方法
US6415355B1 (en) * 1998-05-11 2002-07-02 Kabushiki Kaisha Toshiba Combined disk array controller and cache control method for parity generation mode and data restoration mode
JP2978882B1 (ja) * 1998-06-03 1999-11-15 三菱電機株式会社 デバイス間データ転送装置及びデバイス間データ転送方法
US6629199B1 (en) * 1999-08-20 2003-09-30 Emc Corporation Digital data storage system including directory for efficiently providing formatting information for stored records and utilization of a check value for verifying that a record is from a particular storage location
JP3459609B2 (ja) * 2000-03-17 2003-10-20 三洋電機株式会社 ライトキャッシュ回路、ライトキャッシュ回路を備えた記録装置、およびライトキャッシュ方法
US6665773B1 (en) * 2000-12-26 2003-12-16 Lsi Logic Corporation Simple and scalable RAID XOR assist logic with overlapped operations
US6766480B2 (en) * 2001-03-14 2004-07-20 Hewlett-Packard Development Company, L.P. Using task description blocks to maintain information regarding operations
JP2003015826A (ja) * 2001-07-04 2003-01-17 Hitachi Ltd ディスクアレイ制御装置における共有メモリコピー機能
JP2003108420A (ja) * 2001-09-27 2003-04-11 Hitachi Ltd データストレージシステム及びこの制御方法
US6859890B2 (en) * 2002-04-30 2005-02-22 Lsi Logic Corporation Method for reducing data/parity inconsistencies due to a storage controller failure
US7069382B2 (en) * 2003-09-24 2006-06-27 Aristos Logic Corporation Method of RAID 5 write hole prevention
US7146484B2 (en) * 2004-06-15 2006-12-05 Hitachi, Ltd. Method and apparatus for caching storage system
US7739462B2 (en) * 2005-02-23 2010-06-15 International Business Machines Corporation Policy based data shredding for storage controller
US7496695B2 (en) * 2005-09-29 2009-02-24 P.A. Semi, Inc. Unified DMA
CN101690068A (zh) 2006-12-06 2010-03-31 弗森多系统公司(dba弗森-艾奥) 用于在多个独立主机之间共享的设备的装置、系统、以及方法
US7991941B2 (en) * 2008-01-15 2011-08-02 Alcatel Lucent Memory access assist
US9218183B2 (en) * 2009-01-30 2015-12-22 Arm Finance Overseas Limited System and method for improving memory transfer
WO2010137178A1 (en) * 2009-05-25 2010-12-02 Hitachi,Ltd. Storage subsystem
JP2016184372A (ja) * 2015-03-27 2016-10-20 富士通株式会社 ストレージシステム,情報処理装置,パリティ生成プログラム及びパリティ生成方法
US10620870B2 (en) * 2017-12-08 2020-04-14 Intel Corporation Data storage device with bytewise copy
TWI640997B (zh) * 2017-12-27 2018-11-11 群聯電子股份有限公司 資料保護方法、記憶體控制電路單元與記憶體儲存裝置
KR102695482B1 (ko) * 2018-08-03 2024-08-14 에스케이하이닉스 주식회사 데이터 저장 장치 및 그것의 동작 방법
US10977073B2 (en) * 2019-07-10 2021-04-13 Dell Products L.P. Architectural data mover for RAID XOR acceleration in a virtualized storage appliance
CN112783684A (zh) * 2019-11-06 2021-05-11 华为技术有限公司 一种校验数据计算方法及装置

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3409859B2 (ja) * 1991-01-31 2003-05-26 株式会社日立製作所 制御装置の制御方法
JP2913917B2 (ja) * 1991-08-20 1999-06-28 株式会社日立製作所 記憶装置および記憶装置システム
US5289418A (en) * 1992-02-14 1994-02-22 Extended Systems, Inc. Memory apparatus with built-in parity generation
US5469566A (en) * 1992-03-12 1995-11-21 Emc Corporation Flexible parity generation circuit for intermittently generating a parity for a plurality of data channels in a redundant array of storage units
US5819109A (en) * 1992-12-07 1998-10-06 Digital Equipment Corporation System for storing pending parity update log entries, calculating new parity, updating the parity block, and removing each entry from the log when update is complete

Also Published As

Publication number Publication date
EP0797141A1 (en) 1997-09-24
WO1996018141A1 (en) 1996-06-13
US5996046A (en) 1999-11-30
JPH08161124A (ja) 1996-06-21

Similar Documents

Publication Publication Date Title
JP3011035B2 (ja) 計算機システム
JP3302688B2 (ja) 並列ディスク駆動機構アレイ式データ記憶サブシステム用の論理トラック書込みスケジューリングのシステム
US5572660A (en) System and method for selective write-back caching within a disk array subsystem
JP3422370B2 (ja) ディスクキャッシュ制御装置
US6470421B1 (en) Method and means for reducing device contention by random accessing and partial track staging of records according to a first DASD format but device mapped according to a second DASD format
US5579474A (en) Disk array system and its control method
JP3431972B2 (ja) 仮想ディスクシステム
JP3697395B2 (ja) 異なるデータ構造を格納するための方法及び装置
JP3209634B2 (ja) 計算機システム
JP3258117B2 (ja) 記憶装置サブシステム
JPH10105344A (ja) データ記録装置システム及びそのデータ書込方法
JP3247075B2 (ja) パリティブロックの生成装置
JPH10320128A (ja) ディスクアレイ装置の制御方法
US7058692B2 (en) Computer, computer system, and data transfer method
US5787463A (en) Disk array system including a dual-ported staging memory and concurrent redundancy calculation capability
WO1993013475A1 (en) Method for performing disk array operations using a nonuniform stripe size mapping scheme
JPH0869359A (ja) ディスクアレイ装置
JP2008135055A (ja) 計算機システムおよび二次記憶装置
US5875458A (en) Disk storage device
JPH0863394A (ja) 記憶装置システムおよび記憶装置の制御方法
JP3011020B2 (ja) アレイ型デイスクシステム
JP3067558B2 (ja) ディスクアレイ装置の拡張構成方法およびディスクアレイ装置
JP3236166B2 (ja) キャッシュ制御方法および情報処理装置
JP2857289B2 (ja) ディスクアレイ装置
JP3615250B2 (ja) ディスクアレイ装置

Legal Events

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