JP2981711B2 - ディスク記憶装置 - Google Patents

ディスク記憶装置

Info

Publication number
JP2981711B2
JP2981711B2 JP6134686A JP13468694A JP2981711B2 JP 2981711 B2 JP2981711 B2 JP 2981711B2 JP 6134686 A JP6134686 A JP 6134686A JP 13468694 A JP13468694 A JP 13468694A JP 2981711 B2 JP2981711 B2 JP 2981711B2
Authority
JP
Japan
Prior art keywords
data
parity
disk
new
hdd
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
JP6134686A
Other languages
English (en)
Other versions
JPH086736A (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.)
NIPPON AI BII EMU KK
Original Assignee
NIPPON AI BII EMU KK
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 NIPPON AI BII EMU KK filed Critical NIPPON AI BII EMU KK
Priority to JP6134686A priority Critical patent/JP2981711B2/ja
Priority to EP95304114A priority patent/EP0687971A1/en
Publication of JPH086736A publication Critical patent/JPH086736A/ja
Priority to US08/847,837 priority patent/US5875458A/en
Application granted granted Critical
Publication of JP2981711B2 publication Critical patent/JP2981711B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1076Parity data used in redundant arrays of independent storages, e.g. in RAID systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/2002Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where interconnections or communication control functionality are redundant
    • G06F11/2007Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where interconnections or communication control functionality are redundant using redundant communication media
    • G06F11/201Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where interconnections or communication control functionality are redundant using redundant communication media between storage system components
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Human Computer Interaction (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Hardware Redundancy (AREA)
  • Signal Processing For Digital Recording And Reproducing (AREA)

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は、ディスク記憶装置に係
り、より詳しくは、データ転送のための2本のデータバ
スのいずれかに選択的に接続可能な少なくとも1つのハ
ードディスクを含むハードディスク群のハードディスク
にデータの書き込み及びデータの読み出しを行うディス
ク記憶装置に関する。
【0002】
【従来の技術】コンピュータのダウンサイジングが進む
中、ネットワークシステム・マルチメディア等の普及に
よりパーソナルコンピュータが扱うデータ量が非常に増
大している。これに伴い、ハードディスクの処理能力及
びデータの保護が注目されるようになっている。
【0003】このような点に鑑み、ディスク記憶装置に
レイド(RAID(Reduntant Array ofInexpensive Disk
s))システムを用いたものが提案されている。このレイ
ドシステムは、複数のハードディスク(以下、HDDと
いう)を使用し、大容量化、処理速度の向上そして、デ
ータの保護を実現するシステムである。レイドシステム
には、図15に示すように、レイド0〜レイド5までの
6レベルがある。レイド0は、データ(A〜D)を分割
して複数のHDDに記録するものである。レイド1は、
2台のHDDに同一のデータを重複して記録するもので
ある。レイド2は、データ(A〜D)を分割して複数の
HDDに記録すると共にECC用のHDDを使用するも
のである。レイド3は、データ(A〜D)を分割して複
数のHDDに記録すると共に1台のパリティ用のHDD
を使用するものである。パリティは、ワード単位で生成
する。レイド4は、パリティ生成をブロック単位で行う
ものである。パリティ用のHDDは予め定められてい
る。レイド5は、パリティを全HDDに分散するもので
ある。以上のレイド0〜5のいずれの場合も、物理的に
は、1台のHDDに見える。
【0004】
【発明が解決しようとする課題】ところで、レイド5を
用いたディスク記憶装置において、データを書き込むに
当たり、上書きされてしまうデータ(オールドデータ)
と元のパリティーデータ(オールドパリティー)とをそ
れぞれのHDDから読み出す必要があり、その後、新し
いデータと新しいパリティーとをそれぞれのHDDに書
き込む必要がある。即ち、1セクターのデータを書き込
むためには2台のHDDに対してそれぞれデータ読みだ
し、データ書込みの動作が必要で計四回の入出力を必要
とする。
【0005】ここで、データバスが1本であるレイドシ
ステムでは、データ書込みの処理速度が遅く、処理速度
の向上は望めない。一方、データバスが複数あればデー
タの転送回数を見かけ上、半分にすることができる。し
かし、1セクターの書込みであれば、データバスが三本
以上あったとしても、一時期に動作可能なHDDは2台
に限定されることから、該動作している2台に対するデ
ータバス以外のデータバスは使用されていないこととな
る。よって、データバスが3本以上のレイドシステム
は、データバスが2本であるシステムと同等の性能しか
望めない事になる。
【0006】レイドシステムを用いたディスク記憶装置
では、データバスは2本で足りるが、2本のデータバス
を用いて、これを効率良く稼動させているレイドシステ
ムを用いたディスク記憶装置は従来存在しなかった。従
って、データバスが1本のディスク記憶装置では、処理
速度が悪いという問題を有し、また、データバスが3本
以上のディスク記憶装置では、動作しているHDDに対
するデータバス以外のデータバスは不要であるという問
題を有する。
【0007】また、SCSI(Small Conputer System
Interface)インターフェースを備えるディスク記憶装
置(以下、SCSIドライブという)とATA(AT Att
achment )インターフェースを備えるディスク記憶装置
(以下、ATAドライブという)があるが、ATAドラ
イブは、マイクロ・コントローラから直接制御できるた
めに、小規模のHDDを備える構成ではSCSIドライ
ブよりも優れている点が多い。
【0008】しかし、マイクロ・コントローラがATA
ドライブを直接制御しなくてはいけないため、マイクロ
・コントローラの負荷が大きくなる。すなわち、ATA
ドライブの各モードでのタイミングの調整をマイクロ・
コントローラが直接制御するため、負担が大きくなる。
また、高速動作のマイクロ・コントローラを用いる場
合、通常の外部のメモリーマップされたデバイスとして
ATAドライブにアクセスすることはタイミング上、不
可能である。
【0009】さらに、レイドシステムを用いたディスク
記憶装置においてATAインターフェースを備えた構成
では、各HDDからの割り込み要求がマイクロ・コント
ローラに入りすぎるなど、必要な演算処理が多大な負荷
となる。
【0010】本発明は、以上の事実に鑑み成されたもの
で、簡易な構成でデータの書き込み及びデータの読み出
しを高速に行うことが可能なディスク装置を提供するこ
とを目的とする。
【0011】
【課題を解決するための手段】上記目的達成のため請求
項1記載の発明は、まず、データ転送のための2本のデ
ータバスと、前記データバスのいずれかに選択的に接続
可能な少なくとも1つのハードディスクを含むハードデ
ィスク群と、ホストコンピュータからのコマンドに応じ
て、前記少なくとも1つのハードディスクを前記データ
バスのいずれかと選択的に接続して、前記ハードディス
ク群の各ハードディスクにデータの書き込み及びデータ
の読み出しが行われるように制御する制御手段と、を備
える。
【0012】そして、既に書き込まれているパリティー
データと、新たなデータとに基づいて新たなパリティー
データを生成するパリティーデータ生成装置と、前記パ
リティーデータ生成装置で生成されたパリティーデータ
を保持するパリティーバッファと、を更に設け、前記制
御手段は、前記コマンドに基づいて、前記データが既に
書き込まれているデータディスクと前記パリティーデー
タが既に書き込まれているパリティーディスクとが各々
異なる前記データバスに接続されると共に前記既に書き
込まれているデータと前記既に書き込まれているパリテ
ィーデータとが読み出され、前記接続されたデータバス
を通して前記パリティーデータ生成装置に転送され、か
つ、前記パリティーデータ生成装置により生成されたパ
リティーデータを前記パリティーバッファに保持され、
前記コマンドに基づいて、新たなデータが前記データデ
ィスクと接続されている前記データバスに転送されて前
記データディスクに書き込まれ、かつ、前記データディ
スクと接続されている前記データバスを通して転送され
た前記新たなデータと、前記パリティーバッファに保持
されているパリティーデータとが前記パリティーデータ
生成装置に転送されると共に、前記パリティーデータ生
成装置で生成された新たなパリティーデータが前記パリ
ティーディスクと接続されている前記データバスを通し
て前記パリティーディスクに書き込まれるように制御す
る。
【0013】請求項2記載の発明は、請求項1記載の発
明において、前記制御手段は、前記パリティーデータ生
成装置で生成された前記新たなパリティーデータが前記
パリティーディスクと接続されている前記データバスを
通して前記パリティーディスクに書き込まれると共に、
前記パリティーバッファに保持されるように制御するよ
うにしている。
【0014】請求項3記載の発明は、請求項1記載の発
明において、前記パリティーバッファは前記新たなデー
タの一時保持領域としてデータの書き込み及びデータの
読み出しが行われるようにしている。
【0015】
【作用】請求項1記載の発明では、制御手段は、ホスト
コンピュータからのコマンドに応じて、ハードディスク
群の少なくとも1つのハードディスクをデータ転送のた
めの2本のデータバスのいずれかと選択的に接続して、
ハードディスク群の各ハードディスクにデータの書き込
み及びデータの読み出しが行われるように制御する。
【0016】このように、ハードディスク群の各ハード
ディスクにデータの書き込み及びデータの読み出しを行
う際、ハードディスク群の少なくとも1つのハードディ
スクを2本のデータバスのいずれかと選択的に接続して
いることから、少ない本数のデータバスによりデータの
書き込み及びデータ読み出しを高速に行うことができ、
簡易な構成でデータの書き込み及びデータ読み出しを高
速に行うことができる。
【0017】さらに、制御手段は、ホストコンピュータ
からのコマンドに基づいて、データが既に書き込まれて
いるデータディスクとパリティーデータが既に書き込ま
れているパリティーディスクとが各々異なるデータバス
に接続されると共に既に書き込まれているデータと既に
書き込まれているパリティーデータとが読み出され、デ
ータバスを通してパリティーデータ生成装置に転送さ
れ、かつ、パリティーデータ生成装置により生成された
パリティーデータをパリティーバッファに保持されるよ
うに制御する。また、制御手段は、ホストコンピュータ
からのコマンドに基づいて、新たなデータがデータディ
スクと接続されているデータバスに転送されてデータデ
ィスクに書き込まれ、かつ、データディスクと接続され
ているデータバスを通して転送された新たなデータと、
パリティーバッファに保持されているパリティーデータ
とがパリティーデータ生成装置に転送されると共に、パ
リティーデータ生成装置で生成された新たなパリティー
データがパリティーディスクと接続されているデータバ
スを通してパリティーディスクに書き込まれるように制
御する。すなわち、制御手段は、ホストコンピュータか
らのコマンドに基づいて、新たなデータをデータディス
クと接続されているデータバスに転送して当該データデ
ィスクに書き込み、かつ、これと同時に、データディス
クと接続されているデータバスを通して転送された新た
なデータと、パリティーバッファに保持されているデー
タとをパリティーデータ生成装置に転送する処理と、パ
リティーデータ生成装置で生成された新たなパリティー
データをパリティーディスクと接続されているデータバ
スを通してパリティーディスクに書き込む処理とを、一
時期に行う。
【0018】ここで、請求項2記載の発明のように、制
御手段は、パリティーデータ生成装置で生成された新た
なパリティーデータがパリティーディスクと接続されて
いるデータバスを通して前記パリティーディスクに書き
込まれると共に、パリティーバッファに保持されるよう
に制御するようにしてもよい。
【0019】なお、上記パリティーバッファは、請求項
3記載の発明のように、新たなデータの一時保持領域と
してデータの書き込み及びデータの読み出しが行われ
る。
【0020】このように、一方のデータバスから新たな
データをハードディスクに書き込み、該新たなデータを
該同一のデータバスからパリティーデータ生成装置に転
送しかつパリティーデータ生成装置により生成されたパ
リティーデータをパリティーバッファに保持すると共
に、パリティーデータ生成装置で生成された新たなパリ
ティーデータを他方のデータバスからハードディスクに
書き込むことから、2本のデータバスにより、データの
書き込み及びデータの読み込みを高速に行うことができ
る。
【0021】
【実施例】以下、本発明の実施例を図面を参照して詳細
に説明する。本実施例のディスク記憶装置は、レイド5
を用いている。このディスク記憶装置は、図1に示すよ
うに、2本のデータバス100、200を備えており、
4台のHDD0〜3を備えている。HDD0は、データ
バス12を介して、データバス100に固定接続され、
HDD1は、データバス14を介して、データバス20
0に固定接続されている。HDD2、HDD3は各々、
データバス16、18及びマルチプレクサ(以下、MS
という)20、22を介してデータバス100、200
のいずれか一方に接続可能となっている。HDD0〜3
の各々は、コントロール線(セレクト線、アドレスバ
ス、読み出し線(R線)と書込み線(W線)とからなる
R/W線)を介して、データパス・コントローラ(以
下、DPCという)10に接続されている。すなわち、
HDD0〜3の各々は、セレクト線50を共有し、セレ
クト線50はDPC10の1個の入出力端子に接続され
ている。また、DPC10の1個の入出力端子に接続さ
れているアドレスバス60でHDD0〜3の各々のアド
レスバスを共有している。一方、HDD0〜3の各々は
リード(R)又はライト(W)を指示するためのR/W
線52、54、56、58を介してDPC10に接続さ
れている。
【0022】データバス100、200には、パリティ
ー生成装置(以下、PGENという)24が接続されて
いる。PGEN24には、パリティー保持用のメモリー
バッファ(以下、MBという)26が接続されている。
なお、MB26用の制御信号はPGEN24が生成す
る。
【0023】DPC10には、マイクロ・コントローラ
(以下、MCUという)32及びセクターバッファ(以
下、SBという)36が接続されている。SB36に
は、ホストインターフェイス(SCSIインターフェー
ス)・チップ(以下、IFCという)34が接続されて
いる。また、MCU32には、MCU32の制御プログ
ラムを格納するRAM38が接続されており、RAM3
8は、DPC10にも接続されている。MCU32のデ
ータバス42は、MS28の切換えによって、データバ
ス100、データバス200に接続可能であると共に、
IFC34に接続されている。IFC34のデータバス
44はMS30の切換えによってデータバス100、デ
ータバス200に接続可能である。
【0024】DPC10は、図2に示すように、MCU
32によって所定のデータが書き込まれる複数のレジス
タ10Rと、例えば、データ転送終了時に、MCU32
に対して割込みリクエストを発生し、MCU32に出力
して転送終了を告げる信号を生成する制御用のシーケン
サー10Sとを備えている。DPC10は、MCU32
からの信号によりレジスタ10Rに所定のデータが書き
込まれることにより設定されると、これに応じて所定の
制御信号(以下、CSという)を、MS20、22、P
GEN24、MS28、30、SB36、IFC34に
出力する。
【0025】すなわち、MS20、22は、入力したC
Sに応じて、HDD2、HDD3のデータバス16、1
8とデータバス100に接続されたデータバス16a、
18a又はデータバス200に接続されたデータバス1
6b、18bとを接続する。MS28は、入力したCS
に応じて、データバス42とデータバス100又はデー
タバス200とを接続する。MS30は、入力したCS
に応じて、データバス44とデータバス100又はデー
タバス200とを接続する。IFC34は、入力したC
Sに応じて、ホストからのデータを転送する。SB36
は、入力したCSに応じて、ホストからのデータの保持
又は転送を行う。PGEN24は、入力したCSに応じ
て、データバス100を介して転送されたデータとデー
タバス200を介して転送されたデータとのXOR(排
他的論理和)を生成して、この結果をMB26に書込
み、データバス100又はデータバス200からのデー
タとMB26に書き込まれたデータとのXORを生成し
て、この結果を、データバス200又はデータバス10
0に転送する。
【0026】次に、MS20、22、28、30を説明
する。これらMS20、22、28、30は略同様の構
成となっているので、MS28のみを説明し、他の説明
は省略する。
【0027】MS28は、図3に示すように、2個のI
C64、66を備えている。IC64、66は、例え
ば、74ACT16245タイプのものを用いている。
IC64及びIC66の入出力端子G/は、CS線を介
してDPC10からのCSを入力する。IC64及びI
C66の入出力端子DIRは、所定のコマンドを入力す
る。IC64の入出力端子Aには、データバス100が
接続されており、IC66の入出力端子Aには、データ
バス200が接続されており、IC64及びIC66の
入出力端子Bは、データバス42に接続されている。こ
のように構成されたMS28は、入力したCS信号に応
じてデータバス42とデータバス100又はデータバス
200とを接続する。
【0028】次に、本実施例の作用を説明する。まず、
タグド・コマンド・キューイング(以下、TCQとい
う)を用いない場合のデータの書込み動作を図4ないし
図6を参照して説明する。
【0029】HDD0〜3及びIFC34が待機状態と
なっているときに、IFC34がホストからコマンドを
受けた場合には、IFC34は、所定信号をMCU32
に出力する。該信号を入力したMCU32は、IFC3
4が受け取ったコマンドを読み出し、ステップ102
(図4参照)で、ホストからのコマンドを解析し、ステ
ップ104で、解析の結果から、データの書き込みか読
み込みか、データを書き込むデータHDD、パリティデ
ータを書き込むパリティHDDを決定する。なお、本実
施例では、ホストからのコマンドを解析した結果、デー
タの書き込みコマンドであり、データHDDとしてHD
D0、パリティHDDとして、HDD2が決定された例
について説明する。
【0030】ステップ106で、DPC10によってC
SをMS20に出力することにより、HDD2のデータ
バス16とデータバス200に接続されているデータバ
ス16bとを接続する。なお、HDD0はデータバス1
00に固定接続されているので、DPC10によってC
Sを出力する処理は不要である。
【0031】ステップ108で、HDD0、HDD2へ
のディスクパラメータを設定し、ステップ110で、H
DD0、HDD2からデータを読み出すコマンドを発行
する。
【0032】ステップ112で、DPC10に対してC
SをSB36に出力させる。これにより、SB36は、
ホストからのデータを保持する。
【0033】ステップ114で、HDD0、HDD2か
らデータの読み出しが可能か否か判断する。HDD0、
HDD2からデータの読み出しが可能となった場合に、
ステップ116で、PGEN24がデータバス100を
介して転送されたデータ(オールドデータ)とデータバ
ス200を介して転送されたデータ(オールドパリティ
ーデータ)とのXOR演算を行い、この結果(マスクデ
ータ)をMB26に書き込むコマンドを発行する。ステ
ップ118で、HDD0、HDD2からデータを読み出
し、同時にPGEN24を動作させる。
【0034】すなわち、まず、コントロールバスを制御
するための所定のデータと、HDD0、HDD2から転
送する1セクタ分のデータ数(例えば、512バイト)
を指定する所定のデータとをDPC10のレジスタ10
Rに書き込む。これによりDPC10は、アクセスする
HDD0、HDD2のレジスターの番地をアドレスバス
60に出力し、セレクトバス50をアクティブにすると
共に、HDD0のR/W線52、HDD2のR/W線5
6をアクティブにする。
【0035】そして、HDD0、HDD2からデータを
転送するコマンドをDPC10に出力する。これによ
り、HDD0、HDD2からデータがデータバス10
0、200を介して、PGEN24に出力される(図5
参照)。HDD0、HDD2からデータバス100、2
00を介して、データが出力されたPGEN24は、H
DD0からのオールドデータとHDD2からのオールド
パリティーデータとのXORを生成し、この結果をMB
26に書き込む。
【0036】ステップ120で、HDD0、HDD2に
ディスクパラメータをセットし書込みコマンドを発行す
る。
【0037】ステップ122で、DPC10に対してC
SをMS30に出力させる。これにより、MS30はデ
ータバス100とSB36とを接続する(図6参照)。
ステップ124で、DPC10に対してCSをPGEN
24に出力させる。これにより、PGEN24はニュー
パリティデータを生成する。ステップ126で、HDD
0、HDD2は書込みが可能であるか否か判断し、書込
みが可能となった場合には、ステップ128で、ホスト
から転送されてSB36に保持されたニューデータをM
S30を介してHDD0に転送すると共に該ニューデー
タとMB26に保持された第1のXOR値(オールドデ
ータとオールドパリティーデータとのXOR値)とのX
ORを取った第2のXOR値をMS20を介してHDD
2に転送する(図6参照)。これにより、新しいデータ
がHDD0に、新しいパリティーデータがHDD2に書
き込まれる。
【0038】このように、2本のデータバス100、2
00とHDDとの接続の切換えにより、従来1セクタ分
のデータの書込みを4ステップで行っていたものを2ス
テップで実行でき、必要最小限のデータバスにより、デ
ータの転送を高速に行うことができる。
【0039】また、HDD0〜3の各々は、1本のセレ
クトバス50を共有し、セレクトバス50はDPC10
の1個の入出力端子に接続されている。これにより、D
PC10の入出力端子数を少なくすることができ、ディ
スク記憶装置を簡易な構成とするすることができる。
【0040】次に、データの読み出し動作(TCQ無
し)を説明する。なお、以下の説明では、各構成要素の
動作は、MCU32の指示によりDPC10が所定のC
Sを出力することにより行うので、説明を省略する。
【0041】データの読み出し動作は、通常の読み出し
と同一である。但し、図7に示すように、MS30をデ
ータが流れてくるバスに選択しておく必要がある。すな
わち、例えば、HDD0からデータを読み出す場合に
は、DPC10を設定し、MS30がHDD0のデータ
バス12が接続されているデータバス100とデータバ
ス44とを接続しておく必要がある。
【0042】次に、データの書込み動作(TCQを用い
る場合)を、図8に示したタイミングチャートを参照し
て説明する。
【0043】この書込み動作は、TCQを用いない場合
と略同様であるが、TCQによりコマンドが複数存在し
ている場合、2番目以降のコマンドは、1番目のコマン
ドを受けたHDDのシーク及び回転待ち時間を利用し
て、次のように処理a〜jを行う。なお、今、TCQに
よる待ち行列上の1番目の書込みコマンド(コマンド
1)ではHDD0とHDD2が、2番目の書込みコマン
ド(コマンド2)では、HDD1とHDD3がデータの
書き込みが行われるHDDであるとする。
【0044】HDD0〜3及びIFC34が待機状態と
なっているときに、IFC34がホストからコマンド
1、2を受けた場合には(時刻t1)、IFC34は、
所定信号をMCU32に出力する。該信号を入力したM
CU32は、IFC34が受け取ったコマンド1、2を
読み出し、 a.HDD0とHDD2に対して読みだしコマンドを発
行する(時刻t2)。 b.HDD1とHDD3に対して読みだしコマンドを発
行する(時刻t3)。 c.コマンド1に対するデータをホストからIFC34
を介してSB36に書き込む(時刻t4〜t5)。な
お、このデータをSB36−1とする。 d.コマンド2に対するデータをホストからIFC34
を介してSB36に書き込む(時刻t5〜t6)。この
データをSB36−2とする。 e.シーク回転時間(時刻t2〜t7)が経過した時、
時刻t7で、HDD0とHDD2からデータを転送し始
め、時刻t8において、PGEN24によりマスクデー
タを生成する(時刻t8〜t10)。マスクデータはM
B26上に保持しておく(このデータをMB26−1と
する)。 f.HDD0とHDD2に対して書込みコマンドを発行
する。 g.シーク回転時間(時刻t3〜t9)が経過した後、
時刻t11で、HDD1とHDD3からデータを転送し
始め、時刻t12において、PGEN24によりマスク
データを生成する(時刻t12〜t13)。マスクデー
タはMB26上に保持しておく(このデータをMB26
−2とする)。 h.HDD1とHDD3に対して書込みコマンドを発行
する。 i.データSB36−1とデータMB26−1とを用
い、前述したTCQを用いない場合の方法により、新デ
ータと新パリティーをHDD0、HDD2にそれぞれ書
き込む(時刻t10〜t11)。 j.データSB36−2とデータMB26−2とを用
い、前述したTCQを用いない場合の方法により、新デ
ータと新パリティーをD1、D3にそれぞれ書き込む
(時刻t13〜t14)。
【0045】ここで、以上の動作にかかる時間は典型的
には次のようになる。コマンド発行時間 (処理a、b、
f、h)は、1〔μS〕である。ホストデータ転送時間
(処理c、d)は、25〔μS〕である。HDDデータ
転送時間(処理e、g、i、j)は、50〔μS〕であ
る。HDDシーク、回転待ち時間は、5000〔μS〕
である。
【0046】このように、シーク・回転待ち時間をうま
く利用することによりTCQも効率よくハンドリングで
きる。事実、データバスを多数持つ高価なシステムに於
てもパリティー生成器(ここでいうPGEN24に対応
する)は1つしか持たない物が大多数であるので、これ
がボトルネックとなって、本構成と同一のパフォーマン
スとなる。尚、ここでの処理順序はあくまで1例であ
り、例えば、HDD1、HDD3がHDD0、HDD2
よりも先にサーチ・回転待ちが終了すれば、これらHD
Dに対する処理を先んじて行う。
【0047】このように、TCQを用いる場合にも、2
本のデータバス100、200へのHDDの接続の切換
えにより、従来、2つのHDDへの1セクタ分のデータ
の書込みのコマンドを2つ同時に行う場合に8ステップ
で行っていたものを、4ステップで実行でき、必要最小
限のデータバスにより、データの転送を高速に行うこと
ができる。
【0048】次に、データの読みだし動作(TCQを用
いる場合)を説明する。前述した書込み動作(TCQを
用いる場合)と同様に、TCQによりコマンドが複数存
在している場合、2番目以降のコマンドは、1番目のコ
マンドを受けたHDDのシーク及び回転待ち時間を利用
して、処理a〜dを行う。具体的には、今、TCQによ
る待ち行列上の1番目の読みだしコマンドが使用するH
DDがHDD0であり、2番目の読みだしコマンドが使
用するHDDがHDD2であるとする。この時、 a.HDD0に対して読みだしコマンドを発行する。 b.HDD2に対して読みだしコマンドを発行する。 c.HDD0のデータをホストへ転送する。 d.HDD2のデータをホストへ転送する。
【0049】前述した書込み動作(TCQ有り)と同
様、シーク・回転待ち時間をうまく利用することにより
TCQもうまくハンドリングできる。事実、データバス
を多数持つ高価なシステムに於てもホストへの転送速度
がボトルネックとなって、本構成と同一のパフォーマン
スとなる。
【0050】次に、動作不良のHDDが存在する場合の
書込み動作を説明する。なお、図9及び図10に示すよ
うに、HDD0、HDD2がそれぞれデータHDD、パ
リティーHDDであり、HDD0が動作不良とする。 a.図9に示すように、HDD1、HDD3からデータ
を読みだし、PGEN24によりHDD1からのデータ
とHDD3からのデータとのXORを演算し、この結果
(マスクデータ)をMB26に保持する。 b.この処理(a)と同時にホストからのデータをSB
36に蓄える。 c.図10に示すように、SB36のデータ(新しいデ
ータ)とMB26のデータ(マスクデータ)とのXOR
を演算し、この結果(パリティーデータ)をon−th
e−flyでHDD2に対し書き込む。
【0051】このように、動作不良のHDDが存在する
場合でも、2本のデータバスへのHDDの接続の切換え
により、書込み動作が可能となり、必要最小限のデータ
バスにより、データの転送を高速に行うことができる。
【0052】次に、動作不良のHDDが存在する場合の
読みだし動作を説明する。なお、図11及び図12に示
すように、HDD0、HDD2がそれぞれデータHD
D、パリティーHDDであり、HDD0が動作不良とす
る。 a.図11に示すように、HDD1、HDD3からデー
タを読みだし、PGEN24によりHDD1からのデー
タとHDD3からのデータとのXORを演算し、この結
果(マスクデータ)をMB26に保持する。 b.図12に示すように、HDD2のデータ(パリティ
ーデータ)とMB26のデータ(マスクデータ)とのX
ORを演算する。これにより、HDD0のデータのみが
取り出せ、取り出されたデータをon−the−fly
でホストに対して送る。
【0053】このように、動作不良のHDDが存在する
場合でも、2本のデータバスへのHDDの接続の切換え
により、読み出しが可能となり、必要最小限のデータバ
スにより、データの転送を高速に行うことができる。
【0054】なお、HDD1、HDD2、HDD3の読
みだし順序や組み合わせは任意である。
【0055】次に、不良ディスクの回復処理を説明す
る。なお、図13及び図14に示すように、HDD0を
交換したものとする。 a.図13に示すように、HDD1、HDD3からデー
タを読みだし、PGEN24によりHDD1からのデー
タとHDD3からのデータとのXORを演算し、この結
果(マスクデータ)をMB26に保持する。 b.図14に示すように、HDD2のデータ(パリティ
ーデータ)とMB26のデータ(マスクデータ)とのX
ORを演算する。これにより、HDD0のデータのみが
取り出せ、取り出されたデータをon−the−fly
でHDD0に対して書き込む。
【0056】なお、HDD1、HDD2、HDD3の読
みだし順序や組み合わせは任意である。また、処理bに
おいて、HDD0は書込み動作、HDD2は読みだし動
作であり、DPCはHDD0に対してはWバス、HDD
2に対してはR線を同時にアクティブにする機能が要求
される。
【0057】以上説明した実施例では、レイド5を用い
たディスク記憶装置について説明したが、これに限定す
るものでなく、他のレイドも適用できる。すなわち、次
に、レイド0、レイド3の読み出し/書込み動作を説明
する。レイド0では特に大きなデータに対するパフォー
マンスが要求される。本構成では、10MB/sのAT
Aディスクを用いてFAST&WIDE・SCSIの2
0MB/sを達成できる。いま、異なるHDD上(ここ
ではHDD0とHDD2とする)にある2セクタ−を読
みだす動作を考える。 a.HDD0に対して読みだしコマンドを発行する。 b.HDD2に対して読みだしコマンドを発行する。 c.HDD0、HDD2のデータを1回読みだす。 d.MSをHDD0のバスに接続し、ホストにHDD0
からのデータを転送する。 e.MSをHDD2のバスに接続し、ホストにHDD2
からのデータを転送する。 f.以下、処理c〜eを繰り返し、全てのデータをホス
トへ転送する。以上の動作で処理d,eを20MB/s
の周期で繰り返せばホストからは見かけ上20MB/s
のHDDが存在するように見える。
【0058】以上説明したように、2本のデータバスへ
のHDDの接続の切換えにより、必要最小限のデータバ
スにより、データの転送を高速に行うことができ、簡易
な構成でデータの書き込み及びデータの読み出しを高速
に行うことができる。
【0059】また、前述した実施例では、DPCの内部
にレジスターと制御用のシーケンサーとを内蔵し、DP
Cは、MCU32により行われるDPCの内部のレジス
ターへの読み書きにより、データ転送のためのCSを出
力する。DPCは転送終了後、MCUに対して割り込み
リクエストを発生し、MCUに転送終了を告げる。この
ように、DPCは、MCU32の指示により、本実施例
のディスク記憶装置の制御の大部分の時間を占めるデー
タの読み書きを自動的に行うため、MCUのデータ転送
に関わる負荷を低減することができる。さらに、MCU
はDPCを介する事により、HDDへの正確なタイミン
グでの信号のやり取りを可能にし、低速なHDDのアク
セスとは無関係に、データ転送を高速に行うことができ
る。また、HDDもその規格で定められる最適なタイミ
ングで連続してデータ転送を行なえる為、パフォーマン
スが向上する。更に、複数のHDDはDPCを介してそ
れぞれDPCのアドレス上にマッピングされ、個々のレ
ジスターに対するアクセスも簡略化される。
【0060】この場合、MCUからDPCを見た場合、
DPCは、DMAC(DirectMemory Ac
cess Contrller)として機能していると
考えられる。ただ、通常のDMACと異なる点として、
「Set Multiple」命令に対応し、設定され
た複数セクター単位(ブロック)での転送もサポートし
ており、MCUはブロック転送終了時のデータ転送の検
証だけを行えばよい。このDPCによるデータ転送の
間、MCUはATAドライブの制御から解放され、負荷
をその他のジョブに割り振る事ができる。
【0061】以上説明した実施例では、HDD0、HD
D1は固定接続され、HDD2、HDD3は、マルチプ
レクサによってデータバス100、200に接続可能と
しているが、これに限定するものでなく。全てのHDD
0〜3をは、マルチプレクサによってデータバス10
0、200に接続可能に構成するようにしてよい。
【0062】また、前述した実施例では、HDDを4台
用いた例について説明したが、これに限定するものでな
く、5台以上のHDDを用いる場合にも適用することが
てきる。
【0063】
【発明の効果】以上説明したように請求項1記載の発明
は、ハードディスク群の各ハードディスクにデータの書
き込み及びデータの読み出しを行う際、ハードディスク
群の少なくとも1つのハードディスクを2本のデータバ
スのいずれかと選択的に接続していることから、少ない
本数のデータバスによりデータの書き込み及びデータ読
み出しを高速に行うことかでき、簡易な構成でデータの
書き込み及びデータ読み出しを高速に行うことかでき
る、という効果を有する。
【0064】さらに、請求項1の発明は、一方のデータ
バスから新たなデータをデータディスクに書き込み、該
新たなデータを該同一のデータバスからパリティーデー
タ生成装置に転送しかつパリティーデータ生成装置によ
り生成されたパリティーデータをパリティーバッファに
保持すると共に、パリティーデータ生成装置で生成され
た新たなパリティーデータを他方のデータバスからハー
ドディスクに書き込むことから、2本のデータバスによ
り、データの書き込み及びデータの読み込みを高速に行
うことができる、という効果を有する。
【図面の簡単な説明】
【図1】本実施例の概略構成を示したブロック図であ
る。
【図2】DPCの内部構成を示した図である。
【図3】マルチプレクサの内部構成を示した図である。
【図4】TCQを用いない場合のデータの書込み処理ル
ーチンを示したフローチャートである。
【図5】データを書き込むためにオールドデータとオー
ルドパリティーデータとを読み出す際の各データの転送
経路を示した図である。
【図6】ニューデータとニューパリティーデータとの転
送経路を示した図である。
【図7】データを読み出す際のデータの転送経路を示し
た図である。
【図8】TCQを用いない場合のデータの書込み処理の
タイミングチャートである。
【図9】動作不能のHDDが存在する場合にデータを書
き込むためのデータを読み出す際の各データの転送経路
を示した図である。
【図10】ニューデータとニューパリティーデータとの
転送経路を示した図である。
【図11】動作不能のHDDが存在する場合にデータを
読み出す際の各データの転送経路を示した図である。
【図12】動作不能のHDDが存在する場合にデータを
読み出す際の各データの転送経路を示した図である。
【図13】回復したHDDに対してデータを書き込む際
の各データの転送経路を示した図である。
【図14】回復したHDDに対してデータを書き込む際
の各データの転送経路を示した図である。
【図15】レイドシステムの構成を示した概略図であ
る。
【符号の説明】
10 DPC 32 MCU 34 IFC 20、22、28、30 マルチプレクサ 100、200 データバス
───────────────────────────────────────────────────── フロントページの続き (72)発明者 村田 浩樹 神奈川県大和市下鶴間1623番地14 日本 アイ・ビー・エム株式会社 東京基礎研 究所 (72)発明者 高橋 伸彰 神奈川県大和市下鶴間1623番地14 日本 アイ・ビー・エム株式会社 東京基礎研 究所 (56)参考文献 特開 平1−140326(JP,A) (58)調査した分野(Int.Cl.6,DB名) G06F 3/06 301 - 550 G06F 11/18 310 G06F 12/16 310

Claims (3)

    (57)【特許請求の範囲】
  1. 【請求項1】 データ転送のための2本のデータバス
    と、 前記データバスのいずれかに選択的に接続可能な少なく
    とも1つのハードディスクを含むハードディスク群と、 ホストコンピュータからのコマンドに応じて、前記少な
    くとも1つのハードディスクを前記データバスのいずれ
    かと選択的に接続して、前記ハードディスク群の各ハー
    ドディスクにデータの書き込み及びデータの読み出しが
    行われるように制御する制御手段と、 既に書き込まれているデータと、既に書き込まれている
    パリティーデータと、新たなデータとに基づいて新たな
    パリティーデータを生成するパリティーデータ生成装置
    と、 前記パリティーデータ生成装置で生成されたパリティー
    データを保持するパリティーバッファと、 を備え、 前記制御手段は、前記コマンドに基づいて、前記データ
    が既に書き込まれているデータディスクと前記パリティ
    ーデータが既に書き込まれているパリティーディスクと
    が各々異なる前記データバスに接続されると共に前記既
    に書き込まれているデータと前記既に書き込まれている
    パリティーデータとが読み出され、前記接続されたデー
    タバスを通して前記パリティーデータ生成装置に転送さ
    れ、かつ、前記パリティーデータ生成装置により生成さ
    れたパリティーデータが前記パリティーバッファに保持
    され、 前記コマンドに基づいて、新たなデータが前記データデ
    ィスクと接続されている前記データバスに転送されて前
    記データディスクに書き込まれ、かつ、前記データディ
    スクと接続されている前記データバスを通して転送され
    た前記新たなデータと、前記パリティーバッファに保持
    されているパリティーデータとが前記パリティーデータ
    生成装置に転送されると共に、前記パリティーデータ生
    成装置で生成された新たなパリティーデータが前記パリ
    ティーディスクと接続されている前記データバスを通し
    て前記パリティーディスクに書き込まれるように制御す
    る、 ことを特徴とするディスク記憶装置。
  2. 【請求項2】 前記制御手段は、前記パリティーデータ
    生成装置で生成された前記新たなパリティーデータが前
    記パリティーディスクと接続されている前記データバス
    を通して前記パリティーディスクに書き込まれると共
    に、前記パリティーバッファに保持されるように制御す
    る、 ことを特徴とする請求項1記載のディスク記憶装置。
  3. 【請求項3】 前記パリティーバッファは前記新たなデ
    ータの一時保持領域としてデータの書き込み及びデータ
    の読み出しが行われることを特徴とする請求項1記載の
    ディスク記憶装置。
JP6134686A 1994-06-16 1994-06-16 ディスク記憶装置 Expired - Fee Related JP2981711B2 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP6134686A JP2981711B2 (ja) 1994-06-16 1994-06-16 ディスク記憶装置
EP95304114A EP0687971A1 (en) 1994-06-16 1995-06-14 Disk data storage device
US08/847,837 US5875458A (en) 1994-06-16 1997-04-28 Disk storage device

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP6134686A JP2981711B2 (ja) 1994-06-16 1994-06-16 ディスク記憶装置

Publications (2)

Publication Number Publication Date
JPH086736A JPH086736A (ja) 1996-01-12
JP2981711B2 true JP2981711B2 (ja) 1999-11-22

Family

ID=15134209

Family Applications (1)

Application Number Title Priority Date Filing Date
JP6134686A Expired - Fee Related JP2981711B2 (ja) 1994-06-16 1994-06-16 ディスク記憶装置

Country Status (3)

Country Link
US (1) US5875458A (ja)
EP (1) EP0687971A1 (ja)
JP (1) JP2981711B2 (ja)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20030016076A (ko) * 2001-08-20 2003-02-26 데이타코러스 주식회사 하드디스크를 이용한 백업 장치
US7073022B2 (en) 2002-05-23 2006-07-04 International Business Machines Corporation Serial interface for a data storage array
US6928515B2 (en) * 2002-11-09 2005-08-09 International Business Machines Corporation Integrated sector format-error correction code system and method for efficient writing in a disk array system
TWI285313B (en) * 2005-06-22 2007-08-11 Accusys Inc XOR circuit, RAID device capable of recover a plurality of failures and method thereof
US8457706B2 (en) * 2008-05-16 2013-06-04 Covidien Lp Estimation of a physiological parameter using a neural network
US20100218766A1 (en) * 2009-02-27 2010-09-02 Nellcor Puritan Bennett Llc Customizable mandatory/spontaneous closed loop mode selection
US10564856B2 (en) * 2017-07-06 2020-02-18 Alibaba Group Holding Limited Method and system for mitigating write amplification in a phase change memory-based storage device

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4761785B1 (en) * 1986-06-12 1996-03-12 Ibm Parity spreading to enhance storage access
JP2523715B2 (ja) * 1987-11-27 1996-08-14 株式会社日立製作所 磁気ディスク装置
JPH077479B2 (ja) * 1988-12-15 1995-01-30 工業技術院長 学習機能を有する交通流センサ
EP0487901A3 (en) * 1990-11-29 1992-09-23 Hewlett-Packard Company Disk controller using a video ram
US5345565A (en) * 1991-03-13 1994-09-06 Ncr Corporation Multiple configuration data path architecture for a disk array controller
US5359468A (en) * 1991-08-06 1994-10-25 R-Byte, Inc. Digital data storage tape formatter
US5257391A (en) * 1991-08-16 1993-10-26 Ncr Corporation Disk controller having host interface and bus switches for selecting buffer and drive busses respectively based on configuration control signals
JP2672916B2 (ja) * 1991-12-13 1997-11-05 富士通株式会社 アレイディスク装置のデータチェック方法
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
JP3181398B2 (ja) * 1992-10-06 2001-07-03 三菱電機株式会社 アレイ型記録装置
US5367669A (en) * 1993-03-23 1994-11-22 Eclipse Technologies, Inc. Fault tolerant hard disk array controller
US5412668A (en) * 1994-09-22 1995-05-02 International Business Machines Corporation Parity striping feature for optical disks

Also Published As

Publication number Publication date
EP0687971A1 (en) 1995-12-20
JPH086736A (ja) 1996-01-12
US5875458A (en) 1999-02-23

Similar Documents

Publication Publication Date Title
US5996046A (en) Parity generation system for generating new parity using old data in temporary storage without accessing main disk storage of disk drive
US5883909A (en) Method and apparatus for reducing data transfers across a memory bus of a disk array controller
US6370611B1 (en) Raid XOR operations to synchronous DRAM using a read buffer and pipelining of synchronous DRAM burst read data
US5381538A (en) DMA controller including a FIFO register and a residual register for data buffering and having different operating modes
US7284082B2 (en) Controller apparatus and method for improved data transfer
US6636927B1 (en) Bridge device for transferring data using master-specific prefetch sizes
US8086939B2 (en) XOR circuit, RAID device capable of recovering a plurality of failures and method thereof
JPH0820964B2 (ja) メモリ制御装置および方法
JP3247075B2 (ja) パリティブロックの生成装置
JP6649989B2 (ja) ストレージシステム及びその制御方法
JP2981711B2 (ja) ディスク記憶装置
US6370616B1 (en) Memory interface controller for datum raid operations with a datum multiplier
JPH07219719A (ja) 記憶装置及び方法
US6513098B2 (en) Method and apparatus for scalable error correction code generation performance
KR100638378B1 (ko) 디스크 제어장치의 메모리 구조에 대한 시스템 및 방법
JP2001282463A (ja) 複数のデータ移動トランザクションを並行に操作する装置
JP2548475B2 (ja) アレイディスク装置のデータ復元量制御方法
JPH0628261A (ja) データ転送方法及び装置
JPH09160729A (ja) ディスクアレイ装置
JP3615250B2 (ja) ディスクアレイ装置
JPH08202505A (ja) アレイ型記憶装置
JP3184406B2 (ja) ディスクアレイ装置
JPH06250965A (ja) 入出力制御装置
US20030120862A1 (en) Controlling method of storage apparatus, and storage apparatus, disk array device, and disk controller used in the method thereof
JP3496942B2 (ja) メモリアクセス方法

Legal Events

Date Code Title Description
R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20080924

Year of fee payment: 9

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20080924

Year of fee payment: 9

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20090924

Year of fee payment: 10

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20090924

Year of fee payment: 10

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20090924

Year of fee payment: 10

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20090924

Year of fee payment: 10

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20100924

Year of fee payment: 11

LAPS Cancellation because of no payment of annual fees