JPH02236714A - アレイ型ディスク駆動機構システム及び方法 - Google Patents
アレイ型ディスク駆動機構システム及び方法Info
- Publication number
- JPH02236714A JPH02236714A JP1296004A JP29600489A JPH02236714A JP H02236714 A JPH02236714 A JP H02236714A JP 1296004 A JP1296004 A JP 1296004A JP 29600489 A JP29600489 A JP 29600489A JP H02236714 A JPH02236714 A JP H02236714A
- Authority
- JP
- Japan
- Prior art keywords
- disk drive
- disk
- arrayed
- data
- computer
- 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.)
- Granted
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1008—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1076—Parity data used in redundant arrays of independent storages, e.g. in RAID systems
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11B—INFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
- G11B20/00—Signal processing not specific to the method of recording or reproducing; Circuits therefor
- G11B20/10—Digital recording or reproducing
- G11B20/12—Formatting, e.g. arrangement of data block or words on the record carriers
- G11B20/1217—Formatting, e.g. arrangement of data block or words on the record carriers on discs
- G11B20/1252—Formatting, e.g. arrangement of data block or words on the record carriers on discs for discontinuous data, e.g. digital information signals or computer program data
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11B—INFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
- G11B20/00—Signal processing not specific to the method of recording or reproducing; Circuits therefor
- G11B20/10—Digital recording or reproducing
- G11B20/18—Error detection or correction; Testing, e.g. of drop-outs
- G11B20/1833—Error detection or correction; Testing, e.g. of drop-outs by adding special lists or symbols to the coded information
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single 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)
- Signal Processing (AREA)
- Probability & Statistics with Applications (AREA)
- Human Computer Interaction (AREA)
- Signal Processing For Digital Recording And Reproducing (AREA)
- Detection And Correction Of Errors (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
Abstract
め要約のデータは記録されません。
Description
発明は、特に、複数のディスク駆動機構をアレイに配列
し、該アレイに構成上の柔軟性を持たせることに関する
。該アレイの柔軟な特質としては、該ディスク駆動機構
の論理構成、利用可能な冗長性のレベル、及び予備のデ
ィスク駆動機構の配分がある。
の一方は磁気媒体を使用するもの、他方は光ディスクを
使用するものである。記憶装置の性能を改善するために
、ディスク駆動機構の転送速度及び記憶密度を高める試
みがなされてきた。残念なことに、物理学の進歩は、コ
ンピューターシステムの速度に対する要求と歩調を合わ
せることが出来なかった。この様な限界があるので、並
列のチャネルを持っていてアクセス時間の短い太きな記
憶装置を作る試みがなされたが、構成要素の総数が増え
るので信鯨性に間題があった。
。或るディスク駆動機構アレイがミクロポリス(Mic
ropolis of Chatsworth, Co
)により組み立てられた.このアレイにおいては、上位
コンピューターはディスク駆動機構アレイを一つの大き
な記憶装置と看做す。しかし、冗長性技術を利用し、小
直径ディスク駆動機構を使って転送速度と信頼性とを高
めることが出来るので、性能は向上する.該ディスク駆
動機構アレイは、帯域幅の広いデータを記憶装置に書き
込むことを可能にするものであるので、有益である。即
ち、多数のディスク駆動機構があるので記憶装置への経
路が多数あることになり、従って、駆動機構が1個だけ
の場合よりも大量のデータをディスク駆動機構アレイと
の間でやり取りすることが出来る。
ー校からも開示されている。この大学のコンピューター
科学部は、ディスク駆動機構アレイの使用を論ずる論文
を出した。この論文は、ミラー付きディスク(mirr
ored disks)から始まって、性能及び信頬性
の異なる色々なものを通って進む、ディスクアレイの5
種類の編成の分類法を与えている。
する慣習的方法であるミラーディスクを使用する。これ
は、データディスクへの書き込みが全てチェックディス
クへの書き込みでもあるので、高価な方法である。.ミ
ラー付きディスクを使ったタンデム社(Tandem
Corporation)は、読み出しを並列に行な
うことが出来る様にコントローラの数を2倍にした。
ングコードを使用する。このレベルは、チェックディス
クの数を減らそうとするものである。数個のアクセスが
ディスクのグループに対してあるので、第2レベルは、
或るグループのディスクを横断してデータのビット・イ
ンターリービングを行ない、次に充分なチェックディス
クを加えて単一のエラーを検出し訂正する。単一のバリ
ティディスクは単一のエラーを検出することが出来るが
、エラーを訂正するには充分なチェックディスクでエラ
ーのあるディスクを特定する必要がある。10個のデー
タディスクのグループサイズについては4個のチェック
ディスクが必要であり、25個のデータディスクでは5
個のチェックディスクが必要である。
ディスクについての概念的議論が提示されている。ディ
スクインターフェースに設けられた特別の信号を通じて
、又はエラーを検出し訂正するセクターの端部の余分の
チェック情報を通じて、多くのディスクコントローラは
、ディスクが故障したか否かを知らせることが出来る。
ている良好なディスクのパリテイを計算し、次に、元の
完全なグループについて計算されたパリティとビット毎
に比較することにより、再構成される.これら二つのバ
リティが一致する時、故障したビットはOであるか、さ
もなければ1である。
び書き込みが考慮される。当該グループ内の全てのディ
スクを横断する転送を散布する利点は、アレイ全体の転
送帯域幅を活用することが出来るので大きな又はグルー
プ化された転送時間が短縮されることである。次の欠点
も生じる。グループ内のディスクへの読み出し/書き込
みを実行するには、グループ内の全てのディスクへ読み
出し/書き込みを必要とする。また、ディスク同士が同
期化されていなければ、平均回転遅延が観察されない。
、グループへの書き込みはチェックディスクの読み出し
及び書き込みを必要とするので、書き込みはなお1グル
ープ当り1個の書き込みに限定される。
のディスクを横断させてセクター毎にデータ及びチェッ
ク情報を分布させることについて論じている。第5レベ
ルは、グループ毎に複数の個別の書き込みを持つという
考えを支持する。従って、この構成では、第3及び第4
レベルのディスク当りの大転送性能と高使用可能容量率
を維持しながら第1レベルのディスク当り速度に近い速
度で小一読み出し一修正書き込みが行なわれる。
に較べて性能及び信鯨性が高い。
根底にある基本的ではあるが概念的な原理である。ディ
スク駆動機構アレイの5種類の剛直な構成が論じられ、
各々の利点及び欠点が提示された。タンデムとミクロポ
リスの実例も記載された。これらの実例は同様に剛直で
範囲が狭い。
ている。これらの装置及び概念に伴う短所は、色々な顧
客の、或は単一の顧客の多様な必要に答える柔軟性を持
っていないことである。
なる要求を持っている。また、同じ顧客が色々なデータ
を格納しなければならない場合もある。残念ながら、従
来技術は個々の性能及び/又は信頼性方式を提案するも
のに過ぎない。従来技術は、顧客の要求に答えるために
、帯域幅の大きさ、トランザクション速度、或は冗長性
の度合い等を決定する柔軟性を顧客に提供するものでは
ない。ディスク駆動機構アレイの開発コストが与えられ
ると、顧客に柔軟性を提供することが出来ないならば、
一つのアプリケーションについてのその設計は殆ど禁止
的に高価なリスクとなる。
てをアレイ型ディスク駆動機構内に包含する1個の完全
なディスク駆動機構として、或は全ての別々のディスク
駆動機構の集合体として、或はそれの中間のディスク駆
動機構の構成として論理的に構成することの出来る柔軟
性を有するアレイ型ディスク駆動機構システムを提供す
ることである。
クション速度、又はその間の妥協態様を有するアレイ型
ディスク駆動機構システムを提供することである. 本発明の他の目的は、ユーザーの要求に応じてゼロから
複数のレベルの冗長性で作動するアレイ型ディスク駆動
機構システムを提供することである. 本発明の他の目的は、アレイ型ディスク駆動機構へのデ
ータのストライピングがブロックで行なわれるアレイ型
ディスク駆動機構システムを提供することである。
してもアレイ型ディスク駆動機構の動作に影響が及ばな
い様になっているアレイ型ディスク駆動機構システムを
提供することである。
っていて、その予備ディスク駆動機構が、除去されたデ
ィスク駆動機構或は欠陥のあるディスク駆動機構の論理
的地位を引き受ける様になっているアレイ型ディスク駆
動機構システムを提供することである。
蔵したディスクコントローラを有するアレイ型ディスク
駆動機構システムを提供することであるを提供すること
である。
合わせさせることの出来るディスクコントローラを有す
るアレイ型ディスク駆動機構システムを提供することで
ある。
て優先順位を付けることの出来るアレイ型ディスク駆動
機構システムを提供することである。
retargetablc)ディスクコントローラソフ
トウェアを有するアレイ型ディスク駆動機構システムを
提供することである。
ィスク駆動機構の位置を正しく画定することの出来るア
レイ型ディスク駆動機構システムを提供することである
。
続された複数のプロセッサー及びバッファ−の同時作動
に対処し得る様になっているアレイ型ディスク駆動機構
システムを提供することである。
した新規なアレイ型ディスク駆動機構システム及び方法
の使用を通じて達成することが出来る。本発明によるア
レイ型ディスク駆動機構システムは、記憶装置をコンピ
ューターに提供するディスク駆動機構のアレイを有し、
該アレイは複数のディスク駆動機構を有する。このアレ
イに配置されたディスク駆動機構は、複数のチャネルか
らアクセスされ、その各チャネルが複数のディスク駆動
機構にアクセスする。
コンピューターからは該アレイが考えられる随意のディ
スク駆動機構の配列として見える様に制御するディスク
制御手段が設けられ、これにより該アレイ型ディスク駆
動機構はコンピューターからは複数のディスク駆動機構
として見え、或は該アレイ内の全てのディスク駆動機構
から成る一つの大きなディスク駆動機構として見え、或
はその中間の随意の組み合わせとして見える様になる。
に読み出され或は逆に書き込まれるデータの冗長性に複
数のレベルを提供する手段も含まれる。最後に、該アレ
イ型ディスク駆動機構から読み出し又は書き込みされる
データに対してゼロから前記の複数の冗長性レベルで作
用することを可能にする、該ディスク制御手段により制
御される手段もある。
な実施例10が示されている.アレイ型ディスク駆動機
構システム10は、コンピューター32の記憶装置とし
て作用する。その第1の機能は、コンピューター32か
らディスク駆動機構14に対して読み出し及び書き込み
を行なうことである。読み出し及び書き込みの両方を言
い表わすためにデータ転送という用語を使う。トランザ
クションは、上位コンピューター32からアレイ型ディ
スク駆動機構システム10への1個の完全な読み出し又
は書き込み要求である。後述する様に、システム10は
高トランザクション速度で大量のデータを転送させ、或
は少量ずつの他数個のデータを高トランザクション速度
で転送させ或はその中間の実現可能な組み合わせを行な
わせることの出来る柔軟性を提供する。
は、個々のディスク駆動機構14のアレイ12を有する
。該アレイ12は、11個の垂直なチャネル16を有す
る様に配列されている。これらのチャネル16は、各々
、6個のディスク駆動機構14を有する。ディスク駆動
機構14は、磁気型又は光学であり、第2図のSCSI
データバス60を通してチャネルコントローラ18によ
りアクセスされる.しかし、ディスクアレイ12のチャ
ネルやディスクの個数は、前記の個数には服定されない
。22個のチャネルに何個のディスクを配置しても良い
。
ース(SCSI)チャネルコントローラ18により制御
される。scsrコントローラ18について以下に詳し
く説明する。チャネル16は各々scsrコントローラ
18を通して共通のデータバス20にアクセスする。デ
ータバス20上にはエラー訂正及び制御(ECC)エン
ジン22もある。ECCエンジン22は、アレイ型ディ
スク駆動機構システム10ソフトウエアと共同して、デ
ィスク駆動機構14に格納されるデータに1ないし2レ
ベルの冗長性を与える。
駆動機構システム10のための主コントローラである。
なう能力を持っている。このマイクロプロセッサ25は
、そのアーキテクチャがアレイ型ディスク駆動機構シス
テム10の動作に特に適しているので選ばれたものであ
る。ディスクコントローラ24は、更に、命令キャッシ
ュ26と、該命令キャッシュ26に隣接するオペランド
キャッシュ28とを包含する。オペランドキャッシュ2
8は64Kバイトの容量を持っている。書き込みバッフ
ァ−30もディスクコントローラ24内に設けられてい
る。
の見地から、アレイ型ディスク駆動機構及びコンピュー
ター32間のデータ転送を制御する。コンピューター3
2とアレイ型ディスク駆動機構システム10との間の通
信を容易にするために、上位インターフェースカード3
4がコンピューター32の内部に置かれている。上位イ
ンターフェースカード34は、上位VMEバス36と、
コンピューター32をディスクアレイシステム10に接
続するDMAケーブル38との間のインターフェース兼
バッファーとして作用する。
れている。ケーブル駆動機構40は2方向バッファーで
ある。これは、他方の端部においてはデータバス20に
接続されて、ケーブル38からのデータをデータバス2
0に送り、或はその逆に送る。
ッファ−42とも称する)もデータバス20上に配置さ
れている。書き込み要求時にコンピューターからデータ
が書き込まれる時、そのデータはこのバッファーに格納
される。コンピューター読み出し要求に応じてデータが
ディスク駆動機構から読み出される時、そのデータも同
様にこのマイクロプロセッサメモリー42に格納される
.エラー検出及び訂正装置44がマイクロプロセッサメ
モリー42に接続されている。これは、マイクロプロセ
ッサメモリー42に読み書きされる全てのデータに対し
てエラー検出及び訂正の方式を実行する。これは、EC
Cエンジン22の実行する冗長性には無関係である。
ている。これも共通データバス20に接続されている。
する。その巾には、診断ソフトウェアを走らせるための
データバス20への顧客のアクセスを可能にする機能と
、ディスク駆動機構の論理的構成を変更するためのソフ
トウェアの入力を可能にするフロッピー駆動機構を提供
する機能と、保守ソフトウェアを走らせるm能とがある
。顧客エンジニアリング・パネル46は、保守マイクロ
プロセッサの一つを収容する。このプロセッサーは、デ
ィスクコントローラ24と共に、保守プロセス(詳しく
後述する)を走らせる。
て広く知られているものである。
に関して、第1図の左側に注目する。上位インターフェ
ースカード34はコンピューター32内に置かれている
。設計に関しては該カードは単純なカードで、色々なイ
ンターフェースを持った顧客の便宜を計るために色々な
インターフェースに適用することの出来るカードである
。また、このインターフェースを、色々なインターフェ
ースのうちのいずれかを提供するディスクコントローラ
24内に置くことも出来る。好適な実施例では、選択さ
れたインターフェースは標準的国際インターフェースで
あるVMEであった。ケーブル38はDMA (直接メ
モリーアクセス)ケーブルである。それは、インターフ
ェースの保護される無指定32ビットデータラインであ
る。ケーブル38は、実際にはプロセッサーカード48
上にあるケーブル駆動装置40を通って伸びる。ケーブ
ル駆動装置40は、カード48上のいわゆるTTI.(
トランジスタートランジスターロジック)信号を、上位
コンピューター32に送り返されるデータ及び状況のた
めのケーブル38の差分信号に変換する。
ピンがある。この50種類のうち、32種類はデータピ
ットであり、残りは制御信号のいずれかのパリティであ
る。差分信号を使うので、上位コンピューター32とカ
ード48上のアレイ型ディスク駆動機構10との間のグ
ラウンド電位の差に起因する問題を解消することが出来
る。
5ボルトのディジタルロジックであるTTL信号である
。
アレイ型ディスク駆動機構に到来するデータは、最初は
マイクロプロセッサメモリー42に格納される。エラー
検出及び訂正装置44は、マイクロプロセッサメモリー
42に書き込まれ、その後に読み出されるデータについ
てのエラー訂正及び検出を行なう。装置44は、マイク
ロプロセッサメモリーに出入りするデータにのみ作用す
る。装置44は、データの修正型ハミングコード・オペ
レーションを行なう。修正型ハミングコードは当該技術
分野において周知されている.これは全ての2ビット・
エラーを検出する。メモリーパフファ−42に随伴する
ハミングコードは、メモリーに書き込まれる検査ビット
を生成する。読み出し時には、それは、検査ビットを生
成し、データに対して検査を行ない、所要の訂正を行な
う.ハミングコードが生成される時、上位コンピュータ
ー32から来るパリティも検査される,インターフェー
ス・カッド34はそのデータについてのバリティを生成
し、その同じバリティがハミングコードを下って送られ
、ハミングコードはパリティビットを剥取って検査ビッ
トを生成する。逆に、データがマイクロプロセッサメモ
リー42から読み出される時には、検査ビットが検査さ
れ、バイトレベルバリティが再生されるので、内部バス
の全てが32ビットのデータと4ビットのパリティとを
持つことになる。
42は、集積回路(IC)チップとして包装されたRA
Mである。従って、ICチップを所望の大きさのメモリ
ーと置換することにより、マイクロプロセッサメモリー
の大きさを増減することが出来る。マイクロプロセッサ
メモリー42は二つの機能を持っている。その一つは速
度整合である。換言すれば、該メモリーは、上位コンピ
ューター32の取ることの出来る随意の速度で上位コン
ピューター32と転送を行なうことを可能にするもので
ある。また、マイクロプロセッサメモリー42は、スト
ライピング・データの蓄積が行なわれる場所にある。上
位コンピューターから受け取られたデータはマイクロプ
ロセッサメモリー42のセグメントに置かれる。同じく
、ディスク駆動機構アレイl2からのデータは、上位コ
ンピューター32へのバス上に置かれる前にマイクロプ
ロセッサメモリー42にセグメントとして収集される。
グメントをアレイ型ディスク駆動機構の全体に亘って配
置する特別の方法をストライピングと称する。
ンピューターからのデータの完全なトランザクション)
を多数のディスク駆動機構を越えて渡して、信顧性を高
め、トランザクション時間を速める。仮に一つの駆動機
構が悪くなっても、他の駆動機構上のデータには影響が
及ばない。また、チャネルコントローラ18が並列処理
能力を持っているので、データを複数のディスク駆動機
構に書き込むことにより、トランザクション速度を向上
させることが出来る。例えば、1秒当り1メガバイトで
各々機能する2個のディスク駆動機構があり、2キロバ
イトのファイルにストライピングが行なわれる場合、1
キロバイトのデータが各ディスク駆動機構に書き込まれ
、実効転送速度は毎秒2メガバイトとなる。アレイ型デ
ィスク駆動機構システム10は記憶装置であり、殆どの
上位コンピューターはそれ自身の内部キャッシェメモリ
ーを持っているので、マイクロプロセッサメモリー42
はキャッシュメモリーの代わりに使われる。このマイク
ロプロセッサメモリー42は、先読み(read a
heads)その他の性能向上動作を行なう様にも使う
ことの出来るものである。
と、DMAがマイクロプロセッサメモリー42から装置
44のハミングコードを通してデ一タバス20へ、更に
ディスク駆動機構アレイ12へ立てられる.DMAは、
単に、転送がハードウェア制御され、プロセッサーの介
在が無いことを意味する。バスの各サイクルで別々の情
報転送が行なわれる。DMAは一般には開始アドレスを
与え、次に、特別のトランザクションについての全ての
データを転送するのに充分な回数の連続する転送を行な
う。実際には、アドレスは、アドレスと、ディスクと、
到来するデータが格納されることとなるセクターの番号
とを指定する。そこで、開始アドレスが与えられ、次に
、アドレス空間の配分を別に行なうことなく、512バ
イトのデータのバーストが転送される。ワードバースト
の大きさはL Q 2 4,又は1 5 3 6、又は
2048等である。
径方向外方に増大する複数の円筒形区域から成ることに
注意することが大切である。これらの区域は、各々、複
数のセクターから成る。ディスクコントローラ24の視
点から、これらのセクターは、ゼロから始まって、その
ディスク上のセクターの総数に至る番号を順に付される
。セクターの普通の大きさは512バイトである。
ディスク14は同一である。従って、ディスク5上のセ
クタ一番号Oのディスク5に関しての位置は、ディスク
11上のセクタ一番号Oのディスク11に関しての位置
と同じ位置にある、等々である。ディスク14は、番号
Oから始まり、65に至る。
ーラ18に受信される。アレイ12の11個のチャネル
の各々に1個のチャネルコントローラ18が設けられて
いる。例えば右端のチャネル19を予備として指定する
ことが出来る。各チャネルコントローラ18は相当の量
のハードウェアから成る。第2図を参照すると、該ハー
ドウエアは8ビットマイクロプロセッサ50、32キロ
バイトのダイナミックRAM又はスタティックRAM
(ランダムアクセスメモリー)52、2ボ一トRAM
(DRAM)54、DMAエンジン56及び8ビット小
型コンピューターインターフェースシステムインターフ
ェース(SCSI)チャネルプロセッサー58を含む。
ッサー58はデータをディスク駆動機構にDMAする。
リー42から受信されたディスクについてパリティ処理
をする。このパリティはSCS Iコントローラ18を
通じてディスク駆動機構14に渡される。データを通す
SCS Iバス60は9ビット幅(8データピットと1
パリティビット)である。エンベデッドSCS Iコン
トローラが各ディスク駆動機構14に配置されている。
ットを生成し、このバリティビットを、対応するチャネ
ルコントローラ18から送られて来たものと比較する。
われる。上記のパリティ方式のいずれかで検出されたエ
ラーとハミングコードとはディスクコントローラ24で
ログされる。
エラーの検出及び訂正の方式は一般にファイアコードと
称する。ファイアコードは、非常に長いフィールド内で
エラーの短いバーストを検出し訂正する全く別の数学的
コードである。ファイアコードは、ほぼ1955年以来
ディスク駆動機構に使われてきており、当該技術分野で
周知されている。ファイアコード生成器、マイクロプロ
セッサ及びマイクロプロセッサメモリーは全てディスク
駆動機構14自体の中に配置されている。
アレイ型ディスクシステム10の主プロセッサーである
。SCSIチャネルコントローラ18も、各々、マイク
ロプロセッサ50を持っている。これらプロセッサー2
4及び50は各々バス調停能力を持っている。バス調停
及びバス配分を行なうために「グレイコード」生成器が
使われる。グレイコードは当該技術分野で周知されてい
る。バスアクセス能力を持ったプロセッサー及びメモリ
ーは、いずれも、DMA (直接メモリーアクセス)転
送をすることが出来る.グレイコード生成器は、各チャ
ネルに待ち合わせされたものがあって且つ要求があれば
、各チャネルがDMAをおこなうことを可能にする。S
CSIコントローラプロセッサー50の各々は、ダレイ
コード生成器が該コントローラがDMAを行なうことを
許す様に゜なった時に生成することの出来る割り込みを
持っている。従って、複数のデータ転送トランザクショ
ンがコントローラ18で同時に処理され得る。一つのコ
ントローラ18がディスクアレイ12に読み書きしてい
る間に他のコントローラ18がデータバス20にアクセ
スすることが出来る。ディスクコントローラ24は、デ
ータバス20の1回おきのアクセスサイクルを与えられ
るという優先順位を持っている。
)マイクロプロセッサ25と、該マイクロプロセッサの
キャッシュ及びバッファーの上で走らされるソフトウェ
アである。適当なマイクロプロセッサは、カリフォルニ
ア州サニーベールのMIPSの製造しているMIPS
R2000である。マイクロプロセッサ25、命令キ
ャッシュ26、オペランドキャッシュ28、及び書き込
みバッファ−30の組み合わせがディスクコントローラ
24を構成する。保守プロセッサー27もディスクコン
トローラ24内のマイクロプロセッサ25に配置されて
いる。これは保守機能を行なう。
リングパネル46内に配置された第2の保守プロセッサ
ー45とから成る。第2保守プロセッサー45は、スイ
ッチと、装置の状況を示すランプとを制御する。2個以
上のアレイ型ディスク駆動機構システム10がコンピュ
ーターに接続される場合には、追加のシステム10はデ
ィスクコントローラ24を持たなくても良い。最初のシ
ステムのディスクコントローラ24が使用される.しか
し、追加のシステムは、ディスクの状況と割り込みとを
監視/制御する、それ自身の第2保守プロセッサー45
を有する。該保守プロセッサーは、保守装置において作
動する。
ローラ24の命令キャッシュ26は64キロバイトのス
ペースを持っていて、極めて頻繁に要求されるディスク
コントローラ24の命令を格納する。ディスクコントロ
ーラ24に対する命令のセントはマイクロプロセッサメ
モリー42に格納される。命令は、使用される時にディ
スクコントローラ24により呼び出されて命令キャッシ
ュ26に格納される。命令キャッシュ26は約90−9
5%のビット率を有する。即ち、ディスクコントローラ
26は、別の低速マイクロプロセッサメモリー42まで
出て行って命令を得る代わりに、希望する命令を命令キ
ャッシュから90−95%の時間得ることが出来る。命
令キャッシュ26はディスクコントローラがプロセッサ
ー速度を維持することを可能にする。
キャッシュ28とスタティックメモリー書き込みバッフ
ァ−30も取り付けられている。
って、顧客データ用ではない。キャッシュ28は、ディ
スク駆動機構14に書き込まれる顧客データを全く内蔵
していない。例えば、ソフトウェアデータは、未決のト
ランザクションの量はどの程度か?、データはどの様な
コンピューターから到来したか?、それはどんな種類の
データか?、等々である。マイクロプロセッサメモリー
42はディスクコントローラ24より相当遅い速度で作
動する。マイクロプロセッサメモリーは約150ナノ秒
で走る。オペランドキャッシュ及び命令キャッシュは約
25ナノ秒で走る。従って、マイクロプロセッサメモリ
ー42に読み出し又は書き込みを1回行なうのに要する
のと同じ時間でスタティックRAM30に6回の読み出
し又は6回の書き込みを行なうことが出来る。スタティ
ックRAM書き込みバッファ−30は、本質的に、ディ
スクコントローラ24とマイクロプロセッサメモリー
42との間の速度整合装置である。
ンジン22はデータバス20上に置かれている。
らせるソフトウエアと共同して2レベルに及ぶ冗長性を
提供する。この冗長動作は実際には5個の面を持ってい
る。その第1は、scsrコントローラ18であり、こ
れは、エラーについての情報を報告する時にディスク駆
動機構14にエラーについて質問をする。第2は、排他
的OR冗長性情報生成器である。第3は、リードーソロ
モン冗長性情報生成器である。第4は、冗長性シンドロ
ームの生成である。第5は、冗長性プログラムを調整す
るディスクコントローラで走らされるソフトウエアであ
る。
ータ記憶容量又は記憶装置を利用する。
算はエラー訂正及び制御(ECC)エンジン22により
行なわれる。顧客が1レベルの冗長性を希望するならば
、排他的OR冗長性アルゴリズムが作動可能にされる。
両方の冗長性が設けられる。記述を簡潔にするために、
排他的OR冗長性を「p冗長性」と称する。同様に、リ
ードーソロモンを「q冗長性」と称する。
24からチャネルコントローラ18へデータバス20に
沿ってDMAされる時にp冗長性及びq冗長性を計算す
る。例えば、3セクター相当のデータがデータバス20
を介して色々な駆動機構に転送されていて、1レベルの
冗長性が望ましい場合には、p冗長性情報を含む追加の
セクターがECCエンジン22により計算されて4番目
の駆動機構に書き込まれる。同じ3セクターのデータに
ついて、2レベルの冗長性が望ましい場合には、ECC
エンジン22の計算したp冗長性及びq冗長性が第4及
び第5の駆動機構にそれぞれ書き込まれる。
て転送される時に冗長性の計算が「大急ぎで」 (“o
n the.fly”)行なわれる様になっている。即
ち、ハードウェアで行なわれる冗長性計算は、データバ
ス20に沿うデータの各トランザクションについて行な
われる。p冗長性及び冗長性関数はデータバス上のデー
タ信号で単純にクロックされる。これらの関数の結果が
ディスク駆動a構l4に書き込まれるか否かは完全にソ
フトウェアで制御される。若し顧客が冗長性を全く希望
しなければ、ディスクコントローラ24のソフトウェア
は、冗長性関数を計算しない様にアレイ型ディスク駆動
機構システム10を構成する。顧客がたった1レベルの
冗長性を希望するならば、アレイ型ディスク駆動機構シ
ステム10はp冗長性情報のみをディスクに書き込む様
に構成される。
Cエンジン22により計算されたp冗長性及びq冗長性
の両方がディスクに書き込まれる。
されている.p冗長性について最初に説明する。ディス
クに書き込むべき情報セクターを3個持っているとディ
スクコントローラ24が判断すると、該ディスクコント
ローラは情報の各ブロックに同じトランザクションの一
部であるとのタグを付する。実例として、3ブロックの
うちの第1のブロックは、(第1図の)第1チャネルコ
ントローラ18aに送られて該コントローラ18aのデ
ィスク駆動機構14の一つのセクターに書き込まれる(
換言すれば、該セクターにストライピングされる)。一
一方、データバス上で第1ブロックのデータはECCエ
ンジン22によりビックアップされ排他的OR機能ブロ
ック64を通して走らされて、ここで全部ゼロと排他的
OR演算される。従って、機能ブロック64の出力は、
入力されたものと同じである。この出力はDPRAM6
2に格納される。
第2チャネルコントローラ18bに転送され、第2コン
トローラ18bのディスク駆動機構14の一つの適当な
セクターに書き込まれる.情報の第2ブロックはECC
エンジン22によりデータバス20から取り出される。
1情報ブロックと排他的OR演算される。この排他的O
R関数の結果は第1排他的OR演算の結果と同じDPR
AM6 2内の記憶場所に格納される.同様に、情報の
第3ブロックが(ストライピングを行なうために)ディ
スクコントローラ24により第3チャネルコントローラ
18cに送られる時、該第3ブロックはp冗長性関数ブ
ロック64により先の排他的OR関数の結果と排他的O
R演算される。この結果は3セクター相当のデータの全
部の排他的ORである。該関数は1ビットずつ行なわれ
るが、結果は512ブロックのp冗長性として得られる
。この関数は、このトランザクションについての先の結
果と同じDPRAM62内の記憶場所に読み込まれる。
られた3個のデータブロックの各々のタグ又はトランザ
クション番号を監視する。第3データブロックが残りと
排他的OR演算されてあると見ると、ECCエンジンは
同じDPRAM62は、又はチャネル、の記憶場所にあ
るp冗長性関数の結果ブロックを第4セクターに書き込
む。トランザクションはこの時完成し、3セクターのデ
ータとp冗長性の1セクターがディスクに書き込まれて
ある。
ーにエラーが検出されると、p冗長性は、失われたデー
タを再生することが出来る。SCSTコントローラ18
は、どのセクターから読み出しが出来なかったかを書き
留めてある。それは、これについてディスクコントロー
ラに知らせる。すると、ディスクコントローラ24は、
上記の例をたどると、正しいデータを持っている2個の
駆動機構を知る。3個のディスクのうちの2個が知られ
て、3個全部についてのバリティ(p冗長性)も知られ
れば、失われたセクターについて各ビットを再生するの
は節単なプロセスである。他と排他的OR演算された時
、p冗長性セクターを作るのはどちらかの状態でなけれ
ばならない。ECCエンジン22は、この計算を自動的
に行ない、その結果をDPRAM62に置く。
がチャネルと称される。DPRAM6 2内には16個
のチャネルがあり、その各々が512ビットのボリュー
・ム(データ転送ブロックの大きさ)を持っている。も
っと多数のチャネル、例えば128又は256チャネル
、を使用することも出来る。データがデータバス20で
転送され且つ冗長性が行なわれるべき時には、ディスク
コントローラ24は、これらのチャネルの一つを初期化
し、作動可能にするので、冗長性関数を生成して、初期
化されたチャネルにそれを格納することが出来る。動作
が完了すると、即ち、冗長性情報がディスクに書き込ま
れると、同チャネルを再初期化して他のデータ転送冗長
性動作に使用することが出来る。
が行なわれるのに加えて、q冗長性が行なわれる。q冗
長性関数はりードーソロモン・アルゴリズムである。リ
ードーソロモン・アルゴリズムは、基本的に、3個のセ
クター内のデータを特別の多項式に乗じる計算から成り
、この特別の多項式は、データを特定するのに使うこと
の出来る定数である。リードーソロモンは周知のアルゴ
リズムである。前記した様に、p冗長性と関連して、デ
ィスクコントローラ24により第1チャネル18aに転
送されるデータの第1ブロックは、q関数ブロック68
に入力される。これは、共通のECCバス70が両方の
関数ブロック64及び68をデータバス20に接続する
ので、該データがp関数ブロック64に入力されるのと
同時に行なわれる。q関数ブロック68において、第1
ブロックのデータに特別の多項式(明確な定数)が乗じ
られる。
又はチャネル、に格納される。第2セクターのデータが
データバス20で転送される時、第1乗算の結果と組み
合わされて同じq関数がそれに行なわれる。この結果は
、DPRAM66内の、第1の結果が格納されたのと同
じ記憶場所に格納される。第3ブロックのデータは同様
に処理され、それに対するq冗長性演算の結果は、DP
RAM内の、同じトランザクション番号のブロックにつ
いての先の結果が格納されたのと同じ記憶場所に書き込
まれる。計算されると、p冗長性は、本例では、第5セ
クターに書き込まれる。
初期化することが出来る。エラー検出及び訂正の別の方
法を使うことも出来る。
ーラ18はエラーを検出することが出来るだけでなく、
p冗長性及びq冗長性関数はエラーを検出することが出
来る。読み出し時に、両方の冗長性関数が、転送される
データについての冗長性情報を生成する。これは、一方
又は両方のレベルの冗長性が要求されれば、ディスクの
p冗長性セクター又はq冗長性セクターに書き込まれた
のと同じ冗長性情報である。この生成された情報は、次
に、それぞれのp冗長性セクター及びq冗長性セクター
の冗長性情報と排他的OR演算される。読み出されたも
のが読み込まれたものと同じであれば、この排他的OR
の結果はゼロとなるべきである。若しそれがゼロでなけ
れば、それは、書き出されるデータが書き込まれるデー
タと同じではないことを意味し、従って、エラーが生じ
たことを意味する。それ自体とのp冗長性排他的OR演
算の結果はpシンドロームと呼ばれる。同様に、それ自
体とのq冗長性排他的OR演算の結果はqシンドローム
と呼ばれる。シンドロームがゼロでなければ、エラーが
生じている。ディスクコントローラ24のソフトウェア
は、その時、ECCエンジン22を使って失われたデー
タを作り直すことが出来るか否かを調べる。
ェア的方法である。しかし、アレイ型ディスク駆動機構
システム10における冗長性能力の大部分はソフトウェ
アの産物である。これは、エラー訂正及び制御の項目で
序べた冗長性動作の第5の面である。ソフトウェアは、
主としてディスクコントローラ24内にあり、縁が保守
プロセッサー27内にあり、複数の状況信号と、データ
ブロックの転送と、生成された冗長性情報とを整合させ
る。ECCソフトウェアがどの様に機能するか、そして
それがEC−Cエンジン22とどの様に相互作用するか
を一層良く理解するため、発生することのある何種類か
のエラー状態を伴う読み出し及び書き込みを分析する。
ィスクに書き込む時にp冗長性及びq冗長性の両方が計
算することが出来る。冗長読み出し時には、アレイ型デ
ィスク駆動機構システム10はp冗長性シンドローム及
びq冗長性シンドロームを再計算する。シンドロームは
、冗長グループ内の全てのデータセクターの、そのデー
タセクターグループについてのp冗長性セクターとの排
他的OR演算の、p冗長性についての、結果である。p
シンドロームはゼロであるべきである.若し該pシンド
ロームがゼロでなければ、エラーが生じている。qシン
ドロームは、基本的には、一定の割合で増減された(明
確な定数を乗じられた)データの、q冗長性セクターと
の排他的ORである。また、この演算の結果がゼロでな
ければ、エラーが生じている。このECC情報を使って
、多くの場合に、アレイ型ディスク駆動機構システム1
0は誤ったデータを特定して訂正することが出来る。
類の動作、即ち、未知のエラーの識別、エラー訂正、及
びエラーの報告、が行なわれる。
報告しないけれどもECCデータがエラー(ゼロでない
シンドローム)を示していれば、エラーは「未知」であ
ると看做される。一般に、冗長グループ内に一つの余分
な駆動機構があれば、1個の既知のエラーを訂正するこ
とが出来る。余分な駆動機構が2個あれば、既知の2個
のエラーを訂正するか、又は1個の未知の故障(SCS
Iによりフラグが立てられない)を特定し且つ訂正する
ことが出来る。
てエラーを生成すると共に、顧客エンジニアリングパネ
ル46内に収容されている保守プロセッサーに対してエ
ラー報告を生成する。特定不能又は訂正不能の場合の中
には、(1)たった1レベルの冗長性が設けられる未知
の故障の正体、及び(2)余分な駆動機構が2個あれば
、2個以上の未知の故障の特定と訂正、が含まれる。こ
れに留意して、色々な冗長性レベルが発動された場合の
読み出し要求の実行について以下に説明する.単純な読
み出しから始める。アレイ型ディスク駆動機構システム
10はVMEバス36を介して読み出し要求を受け取る
。読み出し要求はnセクターのデータに対する要求であ
り、ここでnは、1から、利用可能なデータセクターの
総数までの数である。ディスクコントローラ24は、論
理セクターを物理的セクターに写像し、これらセクター
が冗長性グループに属すると決定する。冗長性グループ
は、データセクターと、それに対応するp冗長性ブロッ
ク又はq冗長性ブロック及びq冗長性ブロックのグルー
プである。
はECCチャネル(ECCエンジン22には各々冗長性
を行なうことの出来るチャネルが16個ある)を保有し
、データバス20を介して冗長性グループ内の全てのセ
クターを読み出す。
れる時、読み出したデータからpシンドローム及びqシ
ンドロームの両方の値を計算する。
制御されるプロセッサーメモリー42内に保留されてい
る記憶場所に書き込まれる。その読み出しについては要
求されなかったけれども該冗長性グループの一部である
他のセクターのデータは、ECCエンジン22を介して
流された後に捨てられる。ECCエンジン22を介して
データを流すことにより、ECCエンジンはpシンドロ
ームを再計算することが可能となる。
に質問して、p(余分の駆動機構が2個あればqも)シ
ンドロームがゼロでないか否かを確かめる。シンドロー
ムの状況と、SCSIチャネルコントローラ18から報
告された既知のエラーとを使って、ディスクコントロー
ラ24は該当するエラー状況を判定し、該エラーに対処
するのに必要なステップを取る。これらのステップは、
エラーの種類と、ディスクコントローラ24が利用する
ことの出来る冗長性のレベルとに応じて変わる。
し時に発生した場合には、そのディスク駆動機構14の
一つの上の指定されたセクターから読み出しを行なうこ
とが出来ないと言うのは普通はscs rチャネルコン
トローラ18である。その点で、チャネルコントローラ
18は、それを読むことが出来なかったのであるから(
エラー状況を生じさせる引きがねとなった事象)、エラ
ーのあるセクターのデータを伝送することが出来ない。
員であるという理由でアクセスされたに過ぎないセクタ
ーではなくて、読み出し要求されたデータセクターであ
るか否か判定される。エラーが、読み出し要求されたセ
クター内に無ければ、読み出し要求されたデータセクタ
ーは正しいはずであるということが分かる。その場合、
エラーは保守プロセッサーに報告され、冗長性を処理す
るのに使われるECCエンジン22内のチャネルは(再
初期化されるべく)解放され、データ転送が継続して行
なわれる。
ったならば、ディスクコントローラ24は、訂正された
データを求めてECCエンジン22を見る。前述した様
に、p冗長性は、失われたセクター(これは読み出しに
おいて要求されたものである。)からデータを自動的に
再生し、それをpバッファ−62に格納する。その後デ
ィスクコントローラ24は、pバッファ−62からのデ
ータを、要求されているセクターに配分された記憶場所
に複写する。データを再生するために使われる特定のE
CCチャネルは開放され、データ転送が続けて行なわれ
る。1個の当該既知エラーがp冗長性セクターにあれば
、要求されたセクターは正しいに違いない。従って、そ
れは上位コンピューター32に送られ、冗長性セクター
のエラーについて保守プロセスに通知がされる。保守プ
ロセスは、悪いディスクセクターと、その身元とについ
て置換のために上位コンピューターにW戒させる。これ
により、p冗長性で1個の既知エラーがある場合の読み
出しが完了する。p冗長性及びq冗長性で既知エラーが
1個あり、ここでp冗長性が悪くなった場合について以
下に説明する。
行なわれる。若し既知エラーが要求されたセクター内に
あれば、qバッファ−66及び冗長グループのディスク
数(SCSIチャネルコントローラにより提供される)
を使って、ディスクコントローラ24は正しいデータを
計算することが出来る。次に、訂正されたセクターは、
読み出し不能のセクターに配分されたマイクロプロセッ
サメモリー42の記憶場所に書き込まれる。次に、p冗
長性及びq冗長性が設けられていて既知エラーが2個あ
る時に取られるステップについて説明する。
及びqの両方、が設けられている時にSCSIチャネル
コントローラ18により検出された既知データセクター
エラーが2個ある場合と類似している。エラーのあるセ
クターが要求されたセクターであれば、pバンファ−6
2及びqバッファ−66及び冗長グループのディスク数
(SCSIチャネルコントローラ18の表示する)、を
使って、ディスクコントローラ24は読み出し不能のセ
クターの一つについて正しいデータを計算することが出
来る。2レベルのエラー訂正で2個のエラーのうちの1
個を訂正するプロセスは、複雑ではあるが、周知されて
いる.その時ディスクコントローラ24は、エラーのあ
る第1セクターについての訂正されたデータを、データ
バス20を介して、マイクロプロセッサメモリー内の、
そのセクターに配分された記憶場所へ送る。該データが
ECCエンジンを介してデータバスを流れ下った後は、
唯一の既知エラーのある状態が残る。
上記と同様にして解決される。p冗長性関数は、失われ
たセクターのデータを自動的に再生し、それをDPRA
M62内のpバッファーに置く。この時ディスクコント
ローラ24は、2番目の読み出し不能セクターについて
の正しいデータであるpバッファ−62の内容を複写し
、それを、マイクロプロセッサメモリー42の、2番目
の読み出し不能セクターに配分された緩衝記憶場所に書
き込む。その後、ECCチャネルは解放され、転送が続
けて行なわれる。次に、未知のエラーが1個あって、p
冗長性及びq冗長性が設けられている時に取られるテス
ップについて説明をする。
ャネルコントローラ18が悪いセクターを指摘しない(
データセクターからの読み出しミス(又は書き込みミス
)を示すフラグを立てない)が、p冗長性シンドローム
又はq冗長性シンドロームがゼロでなければ、未知のエ
ラーが生じたと看做される.この状態では、悪いセクタ
ーの身元は未知である。若しpシンドローム及びqシン
ドロームが共にゼロでなければ、p冗長性セクター及び
q冗長性セクターの値を使って、ディスクコントローラ
24は悪いセクターの身元を計算することが出来る.特
定が行なわれた後、1既知エラーとp冗長性が存在する
状態となる.ディスクコントローラ24は、pバッファ
−62及びqバッファ−66を再初期化し、今既知とな
った悪いセクターを除いて他の全てのセクターを読み出
し、悪いセクターを除いて他の全てのセクターをECC
エンジン22を介して流す。ECCエンジン22内のp
冗長性関数は、失われたセクターに相当するデータを自
動的に計算し、それをpバッファ−62に格納する。デ
ィスクコントローラ24は、読み出し不能のセクターの
データを、pバフファ−62から、(マイクロプロセッ
サメモリー42内の)このセクターに配分されたバッフ
ァーに複写する。ECCエンジン22を介して該バフフ
ァーを読み出した後、qシンドロームはゼロとなるべき
である。これは、訂正が首尾よく行なわれたことを証明
するものである.この冗長性動作中に使用されたECC
チャネルはその後解放され、データ転送が続けて行なわ
れる。
CCソフトウェアは書き込み動作時に冗長性を行なう。
である。アレイ型ディスク駆動機構システム10はコン
ピューター、32から書き込みの要求を受け取る。この
書き込み要求はn個のセクターについてのものである。
論理セクターを物理的セクターに写像し、これらのセク
ターが冗長性グループの一員であるか否かを判定する.
冗長性グループは、それについてp冗長性データ又はq
冗長性データの単一のセクターが生成される、pセクタ
ー及びqセクターを含むデータセクターの全てを包含す
る。それらが若し冗長性グループの一員であれば、p冗
長性及びq冗長性の計算を、エラーの種類及び使用可能
な冗長性方式に応じて、色々な方法で行なうことが出来
る。それでも、ECCエンジン22は、q冗長性を計算
するために冗長性グループ内のディスクのディスク識別
子を知らなければならない。それは、ディスク識別子が
、データに乗じられる明確な定数を示すからである。こ
れを割って元のデータを作ることが出来る様に、この定
数を知る必要がある.全ての場合に、ECCチャネルの
一つが保留され、冗長性プロセスのために初期化される
。
全てではなくて幾つかのデータセクターの書き込みを必
要とするに過ぎないことがある。
てのセクターがディスク駆動機構14から読み出され、
(冗長性グループを完成させるため)pバフファ−62
及びqバッファ−66に加えられる。上記の例に続いて
、3セクターのうちの最初のものだけが書き込まれるな
らば、他の2個はディスクから読み出されるので、それ
らを、入ってくるセクターと組み合わせて新しいp冗長
性セクター又はq冗長性セクターを作ることが出来る.
続いて、要求されたセクターは、それらの宛先ディスク
駆動機構に書き込まれ、pバンファ−62及びqバッフ
ァ−66に加えられる。p冗長性セクター及びq冗長性
セクターが計算された後、それらは、適切なディスク駆
動機構記憶場所に書き込まれる。これで書き込み動作の
一般的な例が完了する. 他の書き込み動作シナリオは、冗長性グループの全ての
セクターがディスク駆動機構アレイ12に書き込まれる
時に生じる。p冗長性及びq冗長性情報は、scsiチ
ャネルコントローラ18ヘの道程でECCエンジン22
によりデータストリームとして計算される。この時EC
Cエンジンは冗長性グループについてp冗長性セクター
及びq冗長性セクターを作り、結果をそれぞれバッファ
一62及び66に格納する。該冗長性セクターは、それ
らの適切なディスク駆動機構記憶場所に書き込まれる。
なければ、書き込み故障が上位コンピューター32へ送
り返される。
るために、ECCエンジン22は、データが流れるEC
Cチャネルを知らなければならない。従って、各ブロッ
クにヘソ,ダが設けられる。
部であるかを指定する。またq冗長性を計算するために
、ECCエンジン22は、データに付随する冗長性グル
ープ内のディスクを知らなければならない。この知識は
、ECCソフトウェアにより連続的に検査されるアレイ
型ディスク駆動機構システム10の構成ファイルから提
供される。
報を、適切と認めたECCハードウエアに渡す。構成フ
ァイルは、論理メモリーがら物理的メモリーへの写像と
、冗長性グループ写像とを提供する。書き込み時にエラ
ーが全く生じなければ、ディスクコントローラ24内の
主プロセスブロックHTASK (これについては後述
する)は、データ転送が始まって完了する間にECCチ
ャネルを配分し、再配分する。HTASKは、p冗長性
シンドローム及びq冗長性シンドロームの値も検査し、
エラーが生じたか否か判定する。
トローラ18から返送された状況を検査すると共にpシ
ンドローム及びqシンドロームを検査(ゼロでなければ
、それはエラーを意味する)することにより、エラーが
あるが否かを判定し(若し可能ならば)その位置を突き
止める。
ードウェアを行なって、(若し可能ならば)エラーを特
定し訂正する。また、HTASKはエラーを保守プロセ
スに記録する。
駆動機構が使われる。1個の未知エラーを判定し、それ
を訂正するには2個の冗長性駆動機構を必要とする。2
個の既知エラーを訂正するにも2個の冗長性駆動機構を
必要とする。これらの原理は良く知られている。また、
これらは、余分の駆動機構を1個又は2個持っているシ
ステムにおいて可能な動作の全てである。これらの場合
に限ってHTASKは、冗長性を提供するECCソフト
ウエア/ハードウェアを呼び出す。
せるソフトウェアについてのプロセス連結図が示されて
いる。このプロセス連結図は、プロセス及びデータのブ
ロックから成る。ソフトウエアの挙動は、非同期、同時
、相互作用プロセスの集合体として記述することが出来
、ここで、プロセスブロックにより特定されるプロセス
は、相互に関連する動作の特定可能なシーケンスとして
緩やかに定義することの出来るものである。プロセスは
、フロダラムの1回の実行の計算で特定される。プロセ
スは、三つの状態、即ち(1)作動している状態、(2
)遊んでいるが、実行を開始し得る状態、及び(3)遊
んでいて、実行が一時的に停止されている状態、のいず
れかである。
は、システムの資源を共有することから生じる。プロセ
スの実行は、それが必要とする資源が他のプロセスによ
り先取りされていれば、一時停止される。
ので、全体の制御を行ない、システム資源の配分を監督
し、動作の一覧表を作り、異なるプログラム同士の干渉
を防ぐ、等々を行なうエンティティーが必要である。こ
のエンティティーを指す用語はオペレーティング・シス
テムである。
ムであるが、その機能のいつくかをハードウェアで実行
させることが出来る。好適な実施例においては、オペレ
ーティング・システムは主としてソフトウェアである。
マイクロプロセッサ25でオペレーテイング・システム
を使用することである。これにより、ディスクコントロ
ーラ24は、別々のプロセスが独立に機能し得る様にそ
れらを管理するので、処理するのに逼かに大きな柔軟性
を持つことが出来る。よって、トランザクション速度及
び完成されるトランザクションの数の両方が増大する。
32割り込みサービスルーチンプロセスである。HIS
Rプロセス72は、上位コンピューターとの全ての初期
接続手順を行なう。HISRは、或る制御信号と共に入
出力パラメータブロック(IOPB)74を上位コンピ
ューターからHTASKへ送る。HTASKプロセスブ
ロック76は、主プロセスブロックである。これは上位
コンピューター32からの全ての入出力(書き込み/読
み出し)要求を扱う.これは、また、(1)可変冗長性
方式の実行、(2)512、1024等のデータのブロ
ックのストライピング、ブロック分配、(3)論理ディ
スクメモリーの物理的ディスク駆動機構14への写像、
(4)冗長性動作の実行、余分のIOPBの待ち合わせ
、(5)予備ディスク駆動機構15へのアクセス、(6
)物理的セクターが除去され或は欠陥を持っている時に
その物理的セクターに似る様にマイクロプロセッサメモ
リー42を配分すること、等の任務も持っている。
ランザクション記録78(TREC)を作る。このトラ
ンザクション記録は、HTASKプロセスにより作られ
る複数のSREC (SCSI記録)から成る。SRE
Cは、トランザクシッンを形成するデータセクターの各
転送についての記録である。同じトランザクション時に
、512プロック又はセクターのデータの全てが同じト
ランザクション番号を受け取る。例えば、最大運転のた
めにディスク駆動機構8個とストリップとでは、上位コ
ンピューター32がアレイ型ディスク駆動機構システム
10とやり取りすることの出来る最小データ片は4キロ
バイト、即ち512X8=4キロバイトである.この大
きなデータのブロック又は塊は、ディスク駆動機構との
間で転送されるために512個のブロックに分解される
。最小片のデータ転送の大きさは、使用することの出来
る駆動機構の数に基づいて変わる。基本的には、512
個のバイトブロックに、使用することの出来る駆動機構
の数を乗じると、上位コンピューターが送ることの出来
るデータの最小片となる。勿論、これは1チャネル18
当りストリッフ゜1ディスク駆動機構14を仮定してい
る。
データの一部として特定されなければならない.データ
は512のブロックでディスクアレイ12へ転送される
けれども、1024又はその他の512の倍数のブロッ
クを使用することも出来る。HTASKは、特定のトラ
ンザクション番号のブロック転送の数を監視することに
より、書き込み動作が完了したことを知ることが出来る
.同じトランザクシッン番号のブロックが全てディスク
に書き込まれた時、書き込みは完了する。同様に、EC
Cエンジンが特定の書き込みトランザクションの最後の
データブロックを受け取った時、ECCエンジンは冗長
性計算の結果をディスクに書き込むことが出来る。
PB,複数(7)SCS I記録(S R E C)8
0(その各々は、特定のセクターに書き込まれるべきデ
ータブロックはディスクアレイ12である)、及びSR
ECの総数81から成る。各SREC8 0ばSTAS
K82プロセスブロックへ送られる。STASK8 2
は、SCS Iコントローラ18へのデータの書き込み
を監督し、また、SCS Iコントローラ18からのデ
ータの読み出しも監督する。書き込みでは、STASK
はSCS Iコントロールブロック(SCB)84の形
でデータをSCSIコントローラ18へ送る。
の宛先に関連するタグ85を含む。
ルコントローラ(SCSI)86に割り込んでSCB8
4を受け取る。SCS Iチャネルコントローラ86は
、チャネルコントローラ18から個々のディスク14へ
のデータの書き込みと、これからのデータの読み出しに
責任を持つ。一度個々のディスク14で、ディスク駆動
機構14上のエンベデッドSCS Iコントローラは適
当なセクターへデータを書き込み或はそれを読み出す。
の読み出し要求であるか或は冗長性情報を計算する読み
出し要求であるかに拘らず、データはエンベデッドSC
SI(これもブロック88の中の)により個々のディス
ク駆動機構セクターから検索される。要求されたデータ
の各プロックはSCS I状況ブロック(SSB)90
となる.各SSB90は、SCB84のタグ85と類似
したタグ91を持っている。これらのSSB90はSC
SI割り込みサービスルーチンプロセスブロック(S
I SR)9 2へ送られる.各SISR92は、割り
込み時ニSCS I 8 6からSSB90を受け取る
.SrSRはタグ95を持ったSSB94を作る。タグ
95は、タグ91がブロック90に対して行なうのと同
じ機能を持っている。
.データは状況エラーと共にHTASKへ送られ、(若
し書き込みであれば)上位コンピューター32に書き込
まれる。
く示す。ステップ100でHISRはHTASKプロセ
ッサー76への経路を確立する。
る。該経路は、HTASK76を始動させるために使わ
れる。開始されるプロセスは、新しい要求を処理するた
めに使用することができなければならない。随意のHT
ASKである。メッセージは、単にHTASKプロセス
76を開始させるメカニズムとして使われる。HTAS
Kプロセス76が掛かる同期化変数が設けられ、1番目
の使用可能なHTASKが、必要とされた時に始動され
る。
ムである。セマホアのメカニズムは一連の読み出しであ
る。セマホアを「下ろす」という言葉は、特定のプロセ
ス又はその一部を保留することを意味する。逆に、セマ
ホアが「上げられる」時には、それが制御している特定
のプロセス又はプログラムにアクセスすることが出来る
。
は、予め配分されて使用可能なIOPBのチェーンに置
かれる一組の構造である。チェーンは、構造又はデータ
セクターを適当な順に繋ぎ合わせる方法である。ステッ
プ160割り込み可能化は、プロセスを開始した初期化
構造に、上位コンピューターから割り込みを受け入れる
準備が整っていることを知らせる。これは、全てが初期
化される時に主初期化プロセスが割り込みを可能にする
ことを要求する。ステップ108は主ループの始まりで
ある。それは上位コンピューター32からの割り込みを
常に持っている.HISR72は上位コンピューター3
2からの割り込みにより目覚めさせられる。ステフフ゜
110でrOPBが使用可能なリストから選択される。
能ならば一つが配分されるマロックはメモリーを配分す
る方法である。メモリーの量は普通は限られている。
ックが使用される。マロソクが許されず、しかも使用可
能なメモリーがそれ以上無ければ、エラー状況が生成さ
れ、該情報が上位コンピューター32に送り戻される。
から、HISRから送られない。
構造が除去され、データがVME36を介して上位コン
ピューター32から複写される。
構造は、保留されているIOPBのチェーンの終に付加
される。このステップは、このチェーンからの項目のH
TASKプロセス76除去を妨げない。HTASKは割
り込みを行なわないので、HISRプロセス72のみが
保護を行なわなければならない。時間的順序を確実にす
るために、IOPB項目は該チェーン又はキューの柊に
加えられる。
れにより、使用可能なHTASKプロセスが次のIOP
B要求に答え得ることになる。ステップ116において
、ステップ106で作動可能にされた割り込みが再び作
動可能にされ、従って次の要求が処理され得ることとな
る。このステップと、HISRが休眠状態に戻る場所と
の間に生じるウィンドウを考慮に入れる様に注意が払わ
れる。若し保留されている割り込みがあれば、それは発
火し、ステップ108の割り込み処理ポイントに入る.
ステップ116は、その割り込みを再び作動可能にした
後にステップ108に戻る。
は、今、HTASKプロセスブロック76に送られてあ
る. HTASKプロセス 第6図に゜HTASKプロセス76のフローチャートが
示されている.ステップ120で、HTASKはSTA
SKプロセス82への経路を確立する。
れる.ステップ122で、HTASKプロセスにより使
用されるべき構造が確立され、初期化される。各HTA
SK76は同一であり、IOPB要求を始めから柊まで
処理する責任を担う。配分されるHTASKプロセスの
数はl6より多《無くても良いが、その理由は、それが
ECCエンジン22により同時に処理され得る要求の最
大数だからであるCECCエンジン22は16個のチャ
ネルしか持っていないから)。或る要求はI/Oを必要
としないが、大多数はI/O要求である。
配分される.各STASK要求のためにSREC構造が
必要となる。IOPBは普通は複数の装置からの読み出
し又は書き込みを要求する。
場合に対処し得る配分される。例えば、lチャネル当り
1個の保留されている動作があり得るので、1チャネル
当り1個のSRRCを確立させるのが合理的である。必
要なSRECO数は、ディスクアレイ12の論理的構成
にも依存する9冗長性のないディスク駆@機構14が1
0個あり、それらがlO個の論理的(別々の)ディスク
として構成されているならば、必要なSRECは1個だ
けである。
42内のバッファーが、データを読み書きするHTAS
Kプロセスのために確立される。
ばならないが、実際の大きさはプロセッサー25内の使
用可能なスペースの合計と、SCSIコントローラ18
との通信に理想的な大きさとに依存する。次に、ステッ
プ128で、TREC構造が各要求について確立される
。これは局所的配分であり、一つのHTASKプロセス
について一つある。TREC構造は、IOPB,バッフ
ァ一及びSREC構造等の、要求を処理するのに必要な
情報を内蔵している。該構造は、新しい要求が受信され
る毎に初期化されるけれども、この点でも初期化される
。
させる。このステップで、HTASKプロセスは、HI
SRステップ114で上げられてあったHTASKセマ
ホアを「下ろす」。セマホアを下ろすことにより、保留
されているIOPB74へのアクセスがHTASKに与
えられる。ステップ132で、保留されているIOPB
が保留10PBキューの頂部から除去される。ステンプ
134では、ステップ132でスタックから取り去られ
たIOPB要求についてのTREC構造内のフィールド
が初期化される。ステップ136で、要求が読み出し要
求であるか否か判定される。若しそうならば、HTAS
Kプロセスは第6(b)図の読み出しサブルーチンに入
る。若し読み出し要求でなければ、書き込みか否か?と
いう照会がなされる。若し書き込み要求であれば、該プ
ロセスは第6 (b)図の書き込みサブルーチンへ移動
する。それが書き込みでも読み出しでもなければ、エラ
ーが記録されて保守プロセスへ送られる。
読み出し及び書き込みのサブルーチンが示されている。
れるべきSREC要求についての情報が、与えられたセ
クタ一番号と論理装置(ディスク駆動機構の構成)とか
ら計算される。
点で決定されなければならない。適当なSREC構造が
(若し必要ならば)配分され初期化されて、要求された
ECCチャネルに対応するSTASKプロセスへ送られ
る。
るか否か判定される。若しそうならば、どのレベルの冗
長性が要求されているのか調べるための冗長性検査につ
いて考慮する様にECCエンジン22をセットする。ス
テップ142の判定の結果に拘らず、流れはステップ1
46に着《。
しエラーがあれば、可能ならば訂正が行なわれる。如何
なるエラーも正し《報告され、或る場合には保守プロセ
スに通知されるので、該プロセスは更にエラー状態を調
査することが出来る。
ために冗長性が行なわれた後、データはユーザーデータ
領域に複写され、そこから上位コンピューター32へ転
送される。この複写動作はステップ140で行なわれ、
読み出しサブルーチンは完了する。
50から始まる。このステップで、データはマイクロプ
ロセッサメモリー42内のユーザーデータ領域から複写
される。ステップ152で、セクタ一番号と論理装置と
が与えられて、行なわれるべきSRECコマンドについ
て情報が計算される。このステップは、指定された論理
装置(物理的ディスク駆動機構14構成)に使用される
冗長性のレベルが何であるかについての判定も要求する
。適切な塊の大きさ(上位コンピューター32内のユー
ザーデータがプロセスバッファ一42より大きい場合)
を使って、ユーザーデータがバフファーに転送される。
期化され、要求されたチャネルに対応するSTASKへ
送られる。
れか、判定が行なわれる。この判定はステップ154で
行なわれる。冗長性が要求されていればそれはステップ
156で確立される。次に、ステップ158で、ECC
情報に応じて情報が生成される。若しエラーがあれば、
可能ならば訂正が行なわれる。如何なるエラーも正しく
報告され、或る場合には保守プロセスに通知されるので
、該プロセスはエラー状態を更に調査することが出来る
。
両方のサブルーチンがステップ1.60に入る。ステッ
プ160では、プログラムはトランザクションが完了す
るまで待機する。普通、これは、与えられたトランザク
ションの全てのSRECの処理を伴う。トランザクショ
ンの完了時に、ステップ162は状況報告を上位コンピ
ューター32へ送り戻す。次に、配分された資源につい
て検査がなされる。配分される資源の一例は、或る動作
の始めに、その動作を完了させるのに使われるべく取り
のけて置かれるメモリーである。配分された資源がステ
ップ164で検出されれば、それらはステップ166で
解放される。次にプログラムは主HTASKループの出
発点へ巡って行き、資源は次のトランザクションに再配
分され得る。
を参照すると、ステップ168で、STSK82は、対
応するHTASK76からのSREC又は対応するS
I SR9 2からのSSB94を待つ。ステップ17
0で、STASKは、SRECを有するか否か判定を行
なう。若しSRECを見出せば、そのSRECはチェー
ン上に保存され、それについてタブが生成される。この
動作によりSCSIコントロールブロック(SCB)が
作られる。第7 (b)図を参照すると、SCB84は
実際にはコントロールデータブロック(CDB)171
を内蔵しており、このデータブロックは、SREC8
4の一部として転送されたデータである。SCB84の
タグ173は、STASK82により生成され、SCS
I 8 6に情報を提供する(第7 (b)図のタグ
173は、第4図のタグ85と同じである)。SCB8
4が生成されると、それはステップ174により対応す
るSCS I 8 6へ送られる。その後プログラムは
STASKプログラムの始まりへ戻る。
TSKは怠慢によりSSB90を持っていることを知る
。この判定はステップ176でなされる。SSB90が
発見されると、そのタグ95(第4図の)が、チェーン
化されたSRECと照合される。ステップ180で一致
が見出されなければ、「エラー」信号がHTASKと保
守装置とへ送られる。一致が見出されれば、プロセスは
ステップ182へ進む。ここでチェーン内の照合された
SRECがSSBからの状況と共に、呼出しをかけてい
るHTASKへ送られる。次にプロセスはその出発点へ
戻る。
のプロセスはSCSIプロセス86である。SCSIプ
ロセスを作動させるコードのセグメントは完全にディス
クコントローラ24上に存在するのではない。一部はS
CSIコントローラ18上にある。CSIチャネルコン
トローラ18の分解図である第2図を参照すると、sc
srプロセスコードはマイクロプロセッサ50に収容さ
れている。これは2層の通信を提供する。一つはディス
クコントローラ(SCS I DMA5 3によりピ
ックアップされるデータバス20上のデータにより)と
SCS Iマイクロプロセッサ50との間のものである
。他は、マイクロプロセッサ50と、強化されたSCS
Iプロセッサー58との間のものである。2番目の層は
、データ及び制御信号をSCSI言語又はフォーマ,ト
に変換する。第3通信層があり、それは、強化されたS
CSIプロセッサーと、ディスク駆動機構14の各々の
上のエンベデフドscsrコントローラとの間にある。
ルコントローラへデータバス20に添って送られる時、
それは所望のチャネル、駆動機構及びセクターの番号を
送る。
、ディスクコントローラ24上のランに収賽されたソフ
トウェアと、scs rチャネルコントローラ18のソ
フトウェアランとの間の分割を表わす。破線A−A’の
下、破45B−B’の上に、SCSIチャネルコントロ
ーラ(第2図の主題)上のソフトウェアランがある。ブ
ロソク88のSCSIコントローラは、単に各ディスク
駆動機構14上のエンベデフドSCSIである。ディス
ク88上のscsrは、そのディスク駆動機構上のセク
ターに読み書きを行なう。これは強化されたscsrプ
ロセッサー58(第2図の)のSCS Iチャネルコン
トローラ18と通信する。
SCSIの製造者により提供されるものであり、業界で
知られている。
チャートが示されている。ステップ184で、=亥プロ
セスは2ボートRAM54からコマンドを得る。2ボー
トRAMは、データバス2oが出てくるデータが格納さ
れる場所である。受信されるコマンドはSCBも含む。
で、該プロセスは、読み出しが要求されたのか書き込み
が要求されたのかに応じて特定のディスク駆動機構に対
して読み出し又は書き込みを行なう。読み出し又は書き
込みが完了すると、ステップ188で、SCSIプロセ
スは状況をSSB90の形でHTASKへ送る。SSB
90は、読み出しが要求された場合には、データも含む
。これで、絶えず自身を巡るSCSIプロセスブロック
86が完了する。
SI割り込みサービスルーチン(SISR)プロセスブ
ロック92である。このプロセスブロックについてのフ
ローチャートは第9図に示されている。SCSIプロセ
スブロック92のステップ190において、プロセス9
2はSCS Iプロセス86からの割り込みを待つ。割
り込みがあると、scs rプロセスはSSB90をS
CS Iプロセス86から受け取る。これはステップ1
92で行なわれる。ステップ194で、SSB90は、
対応するSTASKプロセス82を通じて、対応するH
TASKプロセス76へ送られる。そこから、実行され
る様に希望され又は構成されたアレイ型ディスク駆動機
構システム10の他の特徴に加えて、データ及び/又は
状況を上位コンピューター32へ戻すことが出来、且つ
/又は冗長性を実行することが出来る。
スク駆動機構システム10のソフトウェアがどの様に働
くかは、以下の、冗長性があったり無かったりする読み
書き動作の実例から一層深く理解することが出来よう。
のフローチャートが示されている。
、論理ディスク名、開始セクタ一番号、及びセクター数
がHTASK内にある。HTASKは、論理ディスク名
と開始アドレスとを物理的ディスク駆動機構及び開始セ
クターに写像する。ディスクコントローラ24は、各プ
ロセスが、必要ならば最善の速度より遅い速度でも走る
ことが出来るべき最小限の数のSREC構造及びバッフ
ァ一を得ることが出来ることを確かめる。第10図は、
上位コンピューター32が冗長性を希望しない時に論理
的ディスク駆動機構からの読み出し要求を処理するのに
使われるプログラムを示す。
第1セットについて処理されるべきディスク及び物理的
セクタ一番号の対のセットを生成する。ディスク及び物
理的番号の対のセントは、上位コンピューター32及び
アレイ型ディスク駆動機構システム10の間の転送を完
了させるのに要する全てのディスク及び物理的番号の対
である。
クについて一つの要求を持つのに要する数の対(ユーザ
ーが請求したセクターの数により限定される)から成る
。読み出しは冗長性検査を伴わないので、読み出しを単
一のセクターに限定する理由はない。従って、ステップ
200において、要求のチェーンである読み出しがSC
S Iから生成される。バフファ−を使用するならば、
即ち上位コンピューターのユーザーデータ領域へ直接転
送する代わりにマイクロプロセッサメモリー42をバッ
ファーとして使用するならば、読み出しの大きさは、使
用可能なバッファーの量により決定されなければならな
い。ステップ202において、画定される対のセットに
対してSREC構造が配分される。構造は、或る方法で
観察される2進数を有する一片のメモリーである。この
場合、SREC構造はバッファ一内のデータのアドレス
を内蔵する。データセクターの全部のために充分なSR
EC構造及び/又はバッファーが無い場合には、成るべ
く多《がなされ、他のSREC構造及びバフファーにつ
いてマークが作られる。
してセットされ、それが使用されないことをそれに知ら
せる。ステップ206で、読み出し要求についてのSR
EC構造及びバッファーが確立される。該SREC構造
は適当なSTASKプロセスへ送られる。SREC構造
を持ったセットの各メンバーについて、ステップ208
で、ディスク及び物理的セクターの次の対が生成される
.ステップ210で、主ループに入る。読み出されるべ
く保留されているセクターがあるか否か判定がなされる
。全部が既に読み出されていれば、プログラムはステッ
プ228で読み出しサブルーチンの終へ移動する。全部
の読み出しが終っていなければ、保留されているエラー
があるか否か判定がなされる。エラーが生じていれば、
保守プログラム及びHTASK76に通知がなされる。
、プログラムは受信で休眠して読み出し要求を待つ。こ
れはステップ214で生じる。
の要求が完了したのか判定される。エラーが起きれば、
要求はそれ以上は生成されない。若し要求が存在すれば
、それを取り消すことが出来なければ、それを完了する
ことが許される。バッファーが使用されるならば、ステ
ップ218はデータを該バッファーから上位コンピュー
ター32へDMAL、他のバッファ一記憶場所が次の要
求のために使われる。要求のセントのために充分なSR
EC構造が無ければ、ステップ218の結果として解放
されたSREC構造が保留セントのメンバーの一つのた
めに使われる。要求は次にステップ220で主張され、
適当なSTASKプロセスへ送られる。しかし、充分な
SREC構造があるか又は該セットが完了すれば、ステ
ップ222は次の要求をSREC構造で生成し、それを
適当なSTASKプロセスへ送る。
いて次のディスク及び物理的セクターの対を生成する。
され、読み出されるべきセクターの数がゼロより大きい
間はサブルーチンは巡回し続ける。次にプログラムはス
テップ228へ進み、ここでSREC及びバッファ一資
源が解放される。ステップ230において、上位コンピ
ューター32へ状況復帰が生成され、これで読み出しが
完了する。この時、上位コンピューター32は、完成し
た読み出しデータを持っており、読み出し処理していた
HTASKプロセスは他の要求を処理するべく解放され
る。
参照すると、冗長性のある読み出しのプログラムが示さ
れている。冗長性の無い読み出しの場合と同様に、論理
ディスク名、開始セクター番号及びセクター数がHTA
SKに受け取られる。
度以下でも走ることが出来るべき最小限の数のSTRE
C構造及びバッファーを各プロセスが得ることが出来る
ことを確実にする。ステップ232から始まり、開始セ
クタ一番号が与えられると、プログラムは、冗長性ブロ
ックを形成するディスク及び物理的セクタ一番号の対を
生成する。
は異なって、冗長性検査のみのためのセットはマークさ
れる。冗長性検査のためのデータはユーザーデータ領域
に読み込まれる。干渉記憶が行なわれるならば、バッフ
ァーを使用してそれを達成することが出来る。
クされるので、ECCブロックが読み出しされている間
に他のブロックがそれを変更しようと試みることはない
。従って、ステップ234は、このロックが解除される
のを待ちながら休眠するプロセス、即ちセマホア、も提
供する。ロックは、他のプロセスのアクセスを妨げるメ
カニズムである。ステップ23Gで、使用可能なECC
チャネルが得られ、或は一つが使用可能になるまでセマ
ホアが掛けられる。適切な識別子がECCエンジンに送
られ、ECCチャネルが初期化される。ステップ238
は、定義された対のセットにSREC構造及びバソファ
ーを配分する。若し充分なSREC構造及び/又はバッ
ファーが無ければ、出来るだけ多くを行なって、他を、
行なわれるべきものとマークする。要求のためのSRE
C構造及びバフファーはステップ240で確立され、S
REC構造は適当なSTASK76プロセスへ送られる
。ステップ242で、SREC構造を持ったセットの各
メンバーについて次のディスク及び物理的セクタ一番号
の対が生成される。
れるべきセクターの数がゼロより多く、エラーが生じて
いなければ(ステップ244及び246)、プログラム
は受信で何らかの読み出しの完了を待ちながら休眠する
(ステップ248)。
される(ステップ252)。要求のセットのために充分
なSREC構造がなかったならば、ステップ254は、
保留されているセットのメンバーの一つのためにステッ
プ252で解放されたSREC構造を使う。この保留さ
れているメンバーはその時主張され適当なSTASKプ
ロセスへ送られる。充分なSREC構造が無く、或は該
セントが完了すると、ステップ256はSREC構造に
ついて次の要求を生成する。ステップ258で、セクタ
ー総数がデクリメントされ、サブルーチンは、読み出さ
れるべく残っているセクターが無くなるまで巡回する。
たデータを読み出している間にエラーが起きたか否か判
定される。エラーが起きていたら、プログラムはステッ
プ260へ流れ、ここで、HTASKにおいて、そのエ
ラーが訂正可能であるか否か判定される。その答えが肯
定であれば、流れはステップ266へ行く。若し上位コ
ンピューター32が要求したセクターにエラーがあれば
、今訂正されたデータはECCエンジン22からユーザ
ーデータ領域に複写される。ECCチャネルは再初期化
される(ステップ268)。すると、立てられた要求は
SSBとして適当なSTASKプロセスへ送られる(ス
テップ270)。上位コンピューターからの読み出し要
求についてディスク駆動機構とセクタ一番号との次の対
が生成される(ステップ272)。セクター総数がステ
ップ274でデクリメントされ、全てのセクターが読み
出されるまで訂正サブルーチンは巡回し続ける。
、プログラムはステップ276へ移動する。ステンプ2
76で、SREC及びバンファ一資源は解放される。そ
の時、上位コンピューター32への状況復帰が生成され
、冗長性のある読み出しは完了する(ステップ278)
. ステップ260において、エラーが訂正不能であると看
做されると、即ち訂正し得る数よりも多い数のセクター
にエラーがあると、エラーに関する情報が生成され、保
守プロセスに通知される。
グラムの流れは主ループから脱落する(ステップ282
)。これで、冗長性のある読み出しについてのプログラ
ムが完了する。
を受け入れる時、ディスクコントローラ24は、上位コ
ンピューター32から、論理ディスク名、開始セクタ一
番号、及び要求されたセクターの数を受け取る。ディス
クコントローラ24は、最適速度以下でも走ることが出
来るべき最小限の数のSREC構造及びバッファーを各
プロセスが確実に得ることが出来る様にする。第12図
を参照すると、冗長性の無い書き込みの初期化階段は、
冗長性の無い読み出しのそれと非常に似ている。プログ
ラムは、開始セクタ一番号が与えられると、処理される
べきディスク及び物理的セクタ一番号の対のセットを生
成する(ステップ284)。冗長性は無いので、要求を
、SCSIコントローラ18に対する要求のチェーンと
して確立することが出来る(ステップ286)。定義さ
れた対のセットに対してSREC構造及びバッファ一(
干渉記憶を行なうならば)を配分する(ステップ288
)。最後に、識別子0をECCエンジン22に送ってそ
れを使用不能にする(ステップ290)。
Cが割り当てられているセクターがロックされる。この
点では読み出しサイクルでは所望のデータがなおディス
ク駆動a構アレイ12上にあるので、これは読み出しと
異なる。ステップ294において、緩衝記憶を行なわな
いならば、上位コンピューターからのデータがユーザー
領域からバフファ−に複写される。SREC構造及びバ
ッファーが確立されて適当なSTASK82へ送られる
(ステップ296)。SREC構造を持ったセットの各
メンバーについて次のディスク及び物理的セクタ一番号
の対が生成される(ステップ298)。緩衝記憶が行な
われる場合、次の部分又は書き込みデータがユーザー領
域からバッファーへ複写される(ステップ300)。
Lよその主ループに入る。ステップ302及び304に
おいて、書き込まなければならないセクターがまだある
か否か、エラーが生じたか否か判定される。セクターが
あり、エラーが無ければ、プログラムは受信で休眠して
、完了されるべき書き込みを持つ(ステップ306)。
08)。完了後、セクターはアンロックされる(ステッ
プ310)。処理される要求のセットのために充分なS
REC構造が無ければ、保留されているセットのメンバ
ーのーっのために、完了しアンロックされたセクターか
らのSRBC構造を使うことが出来る。次に要求が主張
され、SREC構造が適当なSTASKプロセスへ送ら
れる(ステップ312)。充分なSREC構造があり、
或はセントが完了すると、SREC構造について次の要
求が生成され、それは適当なSTASKプロセスへ送ら
れる(ステップ3l4)。
ク及び物理的セクタ一番号の対が生成される(ステップ
316)。緩衝記憶を行なう場合には、次の書き込みか
らのデータがユーザーデータ領域からバフファーへ複写
される(ステップ318)。その後、書き込みを持って
いるセクターの総数がデクリメントされ(ステップ32
o)、特定の書き込み要求についてのセクターの全ての
書き込みが終るまでサブルーチンは巡回を繰り返す。書
き込み要求についての全てのセクターが書き込まれ、ス
テップ320の条件が無くなると、書き込むべきセクタ
ーは最早無く、流れはステンプ322へ移動する。この
ステップで、SREC構造及びバッファーは解放される
。その時状況復帰が生成されて上位コンピューター32
へ送ラレる(ステップ324)。このステップで、冗長
性の無い書き込みの動作は完了する。このプログラムは
、データの流れが逆で、従ってそれに対する対策を講じ
なければならないことを除いて、ディスクコントローラ
のプロセスの見地からは冗長性の無い読み出しに相当似
ている。冗長性の無い書き込みについての説明を終えて
、次に冗長性のある書き込みに焦点を当てる。
冗長性のある書き込みを処理する時には、上記コンピュ
ーター32は、ディスクコントローラに、論理的ディス
ク名、開始セクタ一番号及び書き込みされるべきセクタ
ーの数を送る。また、ディスクコントローラ24は、最
適速度以下でも走ることが出来るべき最小限の数のSR
EC構造及びバッファーを各プロセスが確実に得る様に
する。
られると、HTASKディスク及び物理的セクタ一番号
の対のセントを生成する。ディスク及び物理的セクタ一
番号の対のセットは、全て、冗長性ブロックを形成する
ディスク及び物理的セクタ一番号の対である。ディスク
及びセクターの対のセントが生成された後、ユーザーデ
ータにより変更されるべきセクターがマークされ、使用
される冗長性方式が示される(ステップ328)。
C情報が書き込み要求により変更されている間に他のプ
ロセスがそれを変化させようと試みることは無い。この
保護機能を提供するためにセマホアが使われる(3 0
0)。次に、使用可能なECCチャネルが得られ、該
チャネルを使うために適当な識別子(ID)が生成され
る.その後、該チャネルは妨害データ転送のために初期
化される(ステップ332)。
バッファ一(必要ならば)が、ステップ326で定義さ
れた対のセットのために配分される(ステップ334)
。SREC構造が配分されると、書き込みサブルーチン
が始まる。ステップ336及び338において、書き込
まれるべきセクターがもっとあるか否か、エラーが生じ
たか否か判定される。セクターがもっとあり、エラーが
生じていなければ、引き算/加算方式を使うか否か判定
される(ステップ340)。古いデータを「引き」、新
しいデータを「加える」ことにより、或は冗長性を再生
することにより、冗長性を維持することが出来る。ユー
ザーデータにより変更されるディスクの数が、変更され
ないディスクの数より少ないか或は等しいならば、引き
算/加算方式を使う。そうでなければ、それは使われな
い。
ップ342へ流れる。
化される。その後、冗長性セクターについて読み出し要
求が静止され、それらはECCエンジン22 (或はバ
ッファ一)のスクラッチ領域に読み出されるので、EC
Cエンジンは冗長性グループデータで確立される(ステ
ップ344)。
EC構造は適当なSTASKプロセスへ送られる。これ
らの要求が主張され、全ての要求が行なわれるまでは復
帰は得られない(ステップ346)。次に、プロセス3
48において、プログラムは、要求の完了を待ちながら
ブロックする.保留されている要求があり、エラーが生
じていない時(ステップ354)、ステップ356及び
358は、どの要求が完了したか判定し、若し全ての要
求を行なうのに充分なSRECが無ければ要求を生成す
る。要求処理中にエラーが生じると、保守プロセスに通
知される(ステップ360).この点で、ECCエンジ
ン22に新しい冗長性情報(ディスク上のセクターにつ
いて正しい)がある。次に、データ転送要求のためにS
REC構造及びバフファーが確立され、SRC構造は適
当なSTASKプロセスへ送られる(ステップ362)
。保留されているセクターがあってエラーが生じていな
い時は、完了された要求について判定がなされ、若し全
ての要求を行なうのに充分なSRECがなかったならば
、他の要求が生成される(ステップ364−368)。
(ステップ370)。
性セクターについて書き込み要求が生成される(ステッ
プ372)。要求についてSREC構造及びバッファー
が確立され、SREC構造は適当なSTASK82へ送
られる(ステップ374)。その後、バッファ一内のデ
ータは転送され、プログラムはブロックして、要求の完
了を待つ(ステップ376)。冗長性セクター転送中に
エラーが生じると、保守プロセスに通知される(ステッ
プ378)。この点で、ステップ378でエラーがない
とするとディスク上には良好なデータがある(ステップ
380)。ステップ381では、セクター総数がデクリ
メントされ、セクター数が0になるまでサブルーチンは
巡回する。セクターの数がゼロになった時(ステップ3
36)、プログラムはステップ418ヘジャンプし、そ
こでSREC及びバッファ一資源を解放する。次に、ス
テップ420で、上位コンピューター32への状況復帰
が生成され、これで引き算/加算冗長性方式サブルーチ
ンは完了する。
るディスクの数が、変更されないディスクの数より多け
れば、引き算/加算方式は使われない。その代わりに、
冗長性セクター生成の方式が使われる。冗長性セクター
生成は、第13(a)図のステップ340の判定から始
まる。ステップ340のrnoJは、第13(b)図ノ
ステップ382へ続く。第13(b)図を参照すると、
引き算/加算が使われなければ、第1ステップはECC
チャネルの初期化(ステップ382)である。冗長性セ
クターを含まない、変更されないセクターについて読み
出し要求が生成される(ステップ384)。読み出され
るデータは重要ではないので、それはスクラッチ領域に
読み込まれる。
めに確立され、適当なSTASKプロセスへ送られる(
ステップ386)。
される(ステップ388)。ステップ390で、どの要
求が完了したか判定される。ステップ392において、
全ての要求を行なうのに充分なSRECがなかったなら
ば、他の要求が生成される。読み出し中にエラーが生じ
ると、保守プロセスに通知される(ステップ3 9 4
).この点で、変更されないデータについての冗長性情
報をECCエンジン22で使用することが出来ることに
なる。この時、書き込み要求のためにSREC構造及び
バソファ−が確立される(ステップ396)。SREC
構造は適当なSTASKプロセス82へ送られる(ステ
ップ398)。転送されるべく保留されているセクター
がある間(ステップ400)、ステップ402は、どの
要求が完了したか判定する。全ての要求を行なうのに充
分なSRECがなかったならば、他の要求が生成される
(ステップ404)。何らかのエラーが書き込み中に生
じると、保守プロセスに通知される(ステップ406)
。
りディスクに書き込まれている。対応する冗長性情報を
ECCエンジン22から抽出してディスクに書き込まな
ければならない(ステップ408)。SREC構造及び
バフファーが該要求について確立され、SREC構造は
適当なSTASKプロセスへ送られる。全ての要求が行
なわれるまでは復帰(メッセージ完了)が得られない様
に、要求が主張される(ステップ410)。受信はブロ
ック・オンされる(ステップ412).転送でエラーが
生じると、保守プロセスに通知される(ステップ414
).この点で、ディスク上に良好なデータと冗長性とを
持ったことになる(ステップ416).この時、セクタ
ー総数はステップ417でデクリメントされる。セクタ
ー総数がゼロになるまで生成サブルーチンは巡回する。
資源は解放される(ステップ418).次に、上位コン
ピューターへの状況復帰が生成され(ステップ420)
、これで冗長性のある書き込みは終る。
のnはI{TASKチャネルの数である。
限定される。トランザクション記録はm個までのSRE
Cを保持する。タスクを完了するのに追加のSRECが
必要であれば、それらには異なるトランザクション番号
が割り当てられる. アレイ ー゜イスク シスームの のアレイ型デ
ィスク駆動機構システム10の他の特徴の一つは、ホッ
ト・プラガブル(hot plugg−able)ディ
スク駆動機構である。このホット・プラガブルディスク
駆動機構という用語は、アレイ型ディスク駆動機構の動
作を妨げずにディスク駆動機構14の置換又は再据え付
けをすることの出来る可能性を指す.換言すれば、シス
テム10に電源が投入されて通常の状態で作動している
間にディスク駆動機構14を取り外したり、据え付け直
したり、或は取替えたりすることが出来る。この可能性
は、ディスク駆動機構のビン構成と、ディスクコントロ
ーラ24が走らせるソフトウェアとが提供するものであ
る。
れが挿入される時である。従って、グランドより前に電
圧がかからない様に注意することなどが必要である.従
って、ディスク駆動機構14のピン構成では、最も良い
ピンがグランドとなる。その様にすれば、電圧がかかる
前に共通グランドが確立される。次に長いピンは5及び
12ボルトピンである.最も短いのは信号ビンである。
時には、既に電圧が確立されているので、新しい駆動機
構への差し込みの不確定性が最小にされる. ホット・プラガブル・ディスク駆動機構14の第2の特
徴は、ディスクコントローラ24内のソフトウェアであ
る。このソフトウエアは、ホット・ブラガブル駆動機構
を「スマート」にすることを可能にするものである。例
えば、1レベルの冗長性が設けられていて、ディスクが
悪くなったとすると、該ソフトウェアは代わりのディス
クが据え付けられたことを確かめることが出来、失われ
たデータはECCエンジン22により再生され、新しい
ディスクに書き込まれることが出来る。また、或るレベ
ルの冗長性を使用することが出来るので、ECCエンジ
ン22は、悪いディスク駆動機構の失われたデータを、
それが置換されるまで、連続的に再生することが出来る
。上位コンピューター32は、悪いセクターからのデー
タがその都度再生されたか否かを知る必要はない。しか
し、保守装置は、アレイ型ディスク駆動機構システム上
の表示ランプを点灯させ、どのディスクが悪いかをユー
ザーに表示する。悪いディスクは置換され、再生された
データは新しいディスクに書き込まれるが、上位コンピ
ューター32はディスクが置換されたことに気付かない
。そこで、悪いディスクが取替えられている時に、その
ディスクに論理的に読み書きをすることが出来る(少な
くとも1レベルの冗長性の存在を前提とする)。
再び据え付けられたことを識別することも出来る。その
場合、別の時に同じ場所に据え付けられる別のディスク
駆動機構からデータを読み書きすることが出来る。前述
の場合と同様に、アレイ型ディスク駆動機構システム1
0の電源を切ったり、それと上位コンピューター32と
の間のデータ転送の流れを中断させたリせずに、この手
順を行なうことが出来る。
冷えた待機駆動機構と節約である。冷えた待機駆動機構
と節約は二つの独特の特徴を持っている。第1は、余分
の駆動機構(第1図の15)が物理的に存在することで
ある.第2に、予備の駆動機構を制御し作動可能にする
ソフトウエアである。ディスクアレイ12の他の駆動機
構と共に連続的に電源が投入されていた予備の駆動機構
15が悪いディスクに変って電子的にスイッチングされ
た時に節約が行なわれる。冷えた待機駆動機構は、電子
的にスイッチングされるまでは電源投入されない駆動機
構であり、電気スイッチは、予備をブート・アンプする
責任を持っている。冷えた待機駆動機構の利点は、平均
故障間隔(MTBF)がまだ始まっていないことである
。
構を内蔵させることが出来る。予備15は、システムの
構成の中で構成される。普通に作動しているディスク駆
動機構14が或る程度まで劣化すると、節約又は冷えた
待機ソフトウエアは、悪いディスク駆動機構のアドレス
を予備ディスク駆動機構の一つに自動的に切り替えるこ
とが出来る。前記の劣化の程度は、ユーザーにより定義
される。1個のセクターだけが不良で、1レベルの冗長
性を使用することが出来るならばECCエンジン22が
データをその都度再生することを可能にするのは分別あ
ることかも知れない。しかし、特定のディスク駆動機構
上の或る特別の数のセクター又はトラックが悪くなると
、予備又は冷えた待機駆動機構への切り替えが行なわれ
る.一方、何らの冗長性も要求されない場合には、SC
SIチャネルコントローラ18又はエンベデソドSCS
Iが読み出し又は書き込みを処理することが出来ない時
に初めて予備又は冷えた待機駆動機構に切り替える様に
することも出来る。それでも、予備15に切り替えると
、悪いディスクを取替えて元に切り替えることが出来る
。
る。ディスクコントローラ24は、動作が成功したこと
を示す状況と共に読み出しデータ又は書き込みを送り戻
すことが出来るが、冗長性情報に鎖らなければならない
。その場合、ユーザーは、セクター/トランクを読み出
してそれを同一のディスク14又は同一のチャネル16
上のディスクの他のセクター/トラックに論理的に置く
ことにより、ユーザー自身の節約レベルを行なうことが
出来る。しかし、そのためには、上位コンピューター3
2はそのコードを変えなければならない。
理的位置やその冗長性グループに拘らず、他の任意のデ
ィスク駆動機構の論理的位置を占めることが出来る。ま
た、予備駆動機構及び冷えた待機駆動機構15は、物理
的にはディスク駆動機構内のどの場所にも配置すること
の出来るものであり、全てを同一のチャネルl9又はデ
ィスク駆動機構アレイ12の物理的領域に配置しなくて
も良い。
色々なレベルの冗長性を提供する様に論理的ディスク駆
動機構の各々を構成することが出来る点にある。例えば
、アレイ12を、10個の物理的ディスク駆動機構14
から成る1個の論理的ディスク駆動機構(1レベルの冗
長性を、即ち1個のディスク駆動機構を、持っている)
と、各々20個の物理的ディスク駆動機構を有する2個
の論理的駆動機構(各々2レベルの冗長性を、即ち2個
のディスク駆動機構を持っている)と、各々1個の物理
的駆動機構から成る5個の論理的駆動機構(ゼロレベル
の冗長性を持っている)と、6個の予OI駆動機構(上
記データグループのいずれに対しても予備として働くこ
とが出来る)とに区分することが出来る。この分解は、
単なる例である。論理的ディスク駆動機構、冗長性レベ
ル、予備駆動機構の数の色々な組み合わせを持つ様にア
レイ型ディスク駆動機構システム10を構成することが
出来る。また、ディスク駆動機構アレイは、66個のデ
ィスク駆動機構に限定されるものではない。むしろ、デ
ィスク駆動機構アレイはもっと多数の駆動機構、チャネ
ル、等、を持つことが出来る。同様に、予備の個数も第
1図の場合の6個には限定されない。システムは10個
又は17個を持つことが出来る。しかし、顧客の希望に
応じてたくさん持つことも出来る。
動機構データグループ内のシリンダが高帯域幅データ転
送用と高トランザクション速度データ転送用とに仕切ら
れる様に構成することの出来るものである。シリンダは
、共通のアライメントを共有する複数のディスク上の同
じトラックを指するのに使う用度である。データグルー
プが、各々1000個のトラックを有する4個のディス
クを持っている場合、4ディスク深度のシリンダが10
00個あることになる。これらのシリンダを、例えば、
高帯域幅転送用にO−199を、高トランザクション速
度データ転送用に200−999を配分することが出来
る。
テム10は、同期又は非同期ディスク(又は、換言すれ
ば、同期又は非同期スピンドル)を持つ柔軟性を提供す
るものである。同期ディスク(又はスピンドル)では、
或る読み書きヘッドが或るトランクまで移動するのと同
時に他のヘッドが他のトランクまで移動する。ヘッドの
速度及び角度位置は常に同一である。逆に、非同期ディ
スクは、これらの特徴を持っていない。一般に、アレイ
は同期ディスクを持っているが、その理由は、それが最
大の性能を提供するからであり、また、特に、個別にデ
ィスクにアクセスする能力が利用可能となっていないか
らである。複数のプロセッサーを伴うアレイ型ディスク
駆動機構システム10の独立作動構造は、同期又は非同
期式のディスク駆動機構で作動することを可能にするも
のである。これは、非同期駆動機構の価格が同期駆動機
構より低いので、重要である。
及び相互作用プロセスのセットとして説明することの出
来るものである。ここで、プロセスは、相互に関連する
動作の識別可能なシーケンスとして緩やかに定義するこ
との出来るものである。
る。コンピューターにおけるプロセス同士の相互作用の
多くは、システム資源を共有することの結果である。プ
ロセスの実行は、それが必要とする資源が他のプロセス
により先取りされていた場合には、保留される。
するのはオペレーティング・システムである。オペレー
ティング・システムは、プロセスの全体を制御し、シス
テム資源の配分を監督し、動作の一覧表を作成し、異な
るプログラム同士の干渉を防止する、などの機能を果た
す。オペレーティング・システムの存在は業界では周知
されている。好適な実施例では、オペレーティング・シ
ステムはマイクロプロセッサ25に置かれる。ディスク
コントローラ24上のオペレーティング・システムを使
用すると、データ転送を処理する柔軟性及び速度が温か
に大きくなる。例えば、オペレーティング・システムは
、複数のHTASKを並行して実行することを可能にす
る。また、他のプロセスブロックが同時に機能すること
も許される。
コンピューターがメモリーに話しかける時には、上位コ
ンピューターは一時に1個のコマンドを送り、そのコマ
ンドが完了されるのを待つ。上位コンピューターは、応
答割り込みを送り、次のコマンドを送る前に上位コンピ
ューターからの除去の返送を待つ。アレイ型ディスク駆
動機構システム10は、ディスク駆動機構コントローラ
24にI OPBキューを置くことにより、この問題を
軽減する。このキューは、上位コンピューター32が与
えたいだけの数の要求又はコマンドをアレイ型ディスク
駆動機構システム10に与えることを可能にする。上位
コンピューター32は、それらをディスクコントローラ
24へ送る。それらを処理するHTASKより多くのI
OPBがある時は、余分のI OPBはキュー内に置
かれる。その後、上位コンピューター32は、これから
離れて、状況の返送を待たずに他のタスクを行なうこと
が出来る。
ターに戻される。IOPBは二つの応答を持つことが出
来る。ディスクコントローラはトランザクションを首尾
よく完了した。この応答は、例えば、故障が生じて、デ
ータを再生するために冗長性が使用された時には、非常
に複雑となることがある。他の応答は、要求を引き受け
ることが出来ないという応答である。「出来ない」の定
義は、上位コンピューター又は顧客の必要による。
上位コンピューター32からの他のIOPBが送られる
。
求に優先順位を付ける能力を上位コンピューター32に
与える。ディスクコントローラ24はI OPB内の2
個の優先順位ビットに作用する。オペレーティング・シ
ステムはこの能力をディスクコントローラ24に与え、
プロセスはそれを実行する。優先順位ビットは、IOP
Bバイトの一つの中のフィールド(或る機能を定めるビ
・7トの組み合わせ)に置かれている。優先順位ビット
は、上位コンピューターがその要求同士の相対的優先順
位を付けることを可能にする。
HTASKの受け取ったIOPBと同じ優先順位ビット
を持っている。TREC (トランザクション記録)は
他の全てのプロセスから見られるので、優先順位は他の
全てのプロセスから見られる。優先順位は、データバス
20について調停をする時、指定されたトランザクショ
ンが上位の順位を持つことを可能にする。
エアアレイ型ディスク駆動機構システム10のソフトウ
エアは、リターゲタブルである。リターゲタブルである
ということは、ソフトウェアが色々なプロセッサー上を
走ることが出来ること、即ち、ソフトウェアプログラム
を変更せずにプロセッサーを変更することが出来ること
を、意味する。これにより、2種類の実質的に異なるハ
ードウェア構造であるパーソナルコンピューターやマイ
クロプロセッサ等の色々なプラントホームでプログラム
を走らせることが出来る。プロセッサーに関するこの様
な柔軟性は、プロセッサーを、更に性能の高いプロセッ
サーと逐次交換してゆくことを可能にする。また、コス
トを考慮しなければならない時には、プロセッサーの速
度や大きさを小さくすることも可能にする。アレイ型デ
ィスク駆動機構システムのソフトウエアは、アプリケー
ションソフトウェアであるが、これをリターゲタブルに
するのは、本質的に二つの原理である。
異質ではない高レベル言語で書かれる。
るプロセッサーに指定された任意のコンパイラで該ソフ
トウエアがコンパイルされる。ソースコードで記述され
たプロセッサー依存機能を変更しなければならないかも
知れない。それには幾つかの新しいコードが必要である
。しかし、それは、リターゲタブルでない場合に必要と
なる90ないし100%という割合ではなくて、僅かに
1%程度である。
スク駆動機構システム10は、アレイ型ディスク駆動機
構が作動している間にディスク駆動機構を交換出来ると
いう特徴を提供する。
がある。主な理由は、現場修理サービスを可能にするこ
と、即ち、若し或るディスクが悪くなったらば、それを
新しいのと交換し、該ディスク上にあったデータを冗長
性により置き替えることが出来る。また、数人の人がア
レイ型ディスク駆動機構システム10にアクセスしてい
て、その人たちが各々異なるディスク駆動機構を持って
いて、その人たちがシステム10を使っているか或は使
っていないかによりそのディスク駆動機構を据え付けた
り取り外したりする、という状況もあり得る。この様な
場合などには、ディスクが正しいディスク位置にあるか
否かをディスクコントローラ24が確かめることが重要
である。従って、どのディスクが取り外されたか判定す
ると共に、挿入されたディスクが正しい位置にあるか否
か判定するアルゴリズムがディスクコントローラ24に
設けられている。
を使うことである。該アルゴリズムは日付及び時刻のス
タンプをディスク駆動機構14とその接続部に作り出す
。若し一致しないディスク駆動機構が挿入されれば、「
本当にこのディスクから読み書きしたいのですか?」等
の注意が上位コンピューター32のコンピュータースク
リーン上に現われる。また、連続する数又はコードを使
って同じタスクを達成することが出来る。また、該アル
ゴリズムは、新しいディスクを識別して、それらを論理
的に構成することにも対応する。また、コールドブート
(cold boot)時には、該アルゴリズムは、全
てのディスクが適切に据え付けられていることを確かめ
、何か問題があればオペレーターに対して信号を送る。
クロプロセッサから成る。11個は、scsiチャネル
コントローラ18内に1個ずつある。1個はディスクコ
ントローラマイクロプロセッサ25である。他の2個は
保守処理に指定され、1個は処理に、1個は顧客エンジ
ニアリングバネル46に、他はディスクコントローラ2
4に割り当てられている。相当数のプロセッサーを使え
ば、高帯域幅/高トランザクション速度の兼ね合いに対
処することが出来る。互いに破壊的に干渉させずにこれ
らのプロセッサーを一斉に作動させることを可能にする
には問題がある。ソフトウエアは、プロセッサー同士の
協力を要求しない様に構成されている。それらは全て独
立に作動することが出来る。しかし、ディスクコントロ
ーラマイクロプロセッサ25は、共通データバス20上
の1個置きのスロットを持つことを保証されている。
が出来ることを当業者は良く理解するであろう。それら
は特許請求の範囲の欄で定義された本発明の範囲に属す
るものとする。
ステム10のブロック図である。 第2図は、好適な実施例のSCS Iチャネルコントロ
ーラのブロック図である。 第3図は、好適な実施例のECCエンジンのブロック図
である。 第4図は、好適な実施例のソフトウェアのプロセス連結
図である。 第5図は、好適な実施例のHISKプロセスの動作のフ
ローチャートである。 第6(a)図は、好適な実施例のHTASKプロセスの
動作のフローチャートの一部である。 第6(b)図は、好適な実施例のHTASKの動作のフ
ローチャートの一部である。 第7(a)図は、好適な実施例のSTASKプロセスの
動作のフローチャートである。 第7(b)図は、好適な実施例のSCBの線図である。 第8図は、好適な実施例のSCSIプロセスの動作のフ
ローチャートである。 第9図は、好適な実施例のSISRプロセスの動作のフ
ローチャートである。 第10図は、好適な実施例の冗長性の無い読み出しを実
行するプログラムのフローチャートである。 第11図は、好適な実施例の冗長性のある読み出しを実
行するプログラムのフローチャートである。 第12図は、好適な実施例の冗長性の無い書き込みを実
行するプログラムのフローチャートである。 第13(a)図は、好適な実施例の冗長性のある書き込
みを実行するプログラムのフローチャートの一部である
。 第13(b)図は、好適な実施例の冗長性のある書き込
みを実行するプログラムのフローチャートの一部である
。
Claims (36)
- (1)メモリーをコンピューターに提供するアレイ型デ
ィスク駆動機構システムであって、前記アレイ型システ
ムは、アレイを形成する様に構成された複数のディスク
駆動機構を有し、前記アレイ型ディスク駆動機構は複数
のチャネルからアクセスされ、各チャネルは複数のディ
スク駆動機構にアクセスし、アレイ型ディスク駆動機構
の各々は複数のセクターを有するアレイ型ディスク駆動
機構システムであって、 ディスク駆動機構の想到可能な配列として該コンピュー
ターに見える様にアレイ型ディスク駆動機構の論理的構
成を制御し、これにより該アレイ型ディスク駆動機構が
該コンピューターに対して、複数のディスク駆動機構と
して、又は全てのアレイ型ディスク駆動機構から成る1
個の大きなディスク駆動機構として、又はその中間の構
成として見える様に制御するディスク制御手段と、 該コンピューターにより該アレイ型ディスク駆動機構に
読み書きされるデータに対して複数のレベルの冗長性を
提供する手段と、 該ディスク制御手段により制御されて、該アレイ型ディ
スク駆動機構から読み書きされるデータに対してゼロか
ら前記の複数までのレベルの冗長性を作用させることを
可能にする手段と、から成ることを特徴とするアレイ型
ディスク駆動機構システム。 - (2)バッファーメモリーを有し、更に、 該コンピューターから受信したデータを、各々セクター
に等しい大きさを持った所要の数のブロックに配分する
手段と、 前記ブロックを1チャネルから他のチャネルへと順次に
ストライピングするストライピング手段とを備え、この
ストライピングは、該アレイ型ディスク駆動機構のディ
スク駆動機構を水平に横断し、又は該アレイ型ディスク
駆動機構のディスク駆動機構を斜め下方に横断し、又は
これらの組み合わせとなることを特徴とする請求項1に
記載のアレイ型記憶システム。 - (3)該ストライピング手段は、更に、 水平又は斜めのストライピング又はその組み合わせのス
トライピングを行なう様にストライピング手段を構成す
る手段を備えることを特徴とする請求項2に記載のアレ
イ型ディスク駆動機構。 - (4)複数のチャネルに接続する共通データバスを有し
、冗長性を提供する手段は、更に、 コンピューターの読み出し又は書き込み動作時にデータ
が該データバスに添ってチャネルから又はチャネルへ伝
播する時に冗長性を行なう手段を備え、これにより、冗
長性は、該読み出し又は書き込み動作を完了するのに要
する時間を越える付加的時間を必要としないことを特徴
とする請求項3に記載のアレイ型ディスク駆動機構。 - (5)該制御手段は、更に、 仮想記憶場所をアレイ型ディスク駆動機構に写像する手
段を備え、前記アレイ型ディスク駆動機構は物理的記憶
場所であることを特徴とする請求項4に記載のアレイ型
ディスク駆動機構。 - (6)代わりのディスク駆動機構を据え付けるためにデ
ィスク駆動機構が該アレイ型ディスク駆動機構から取り
外された時に該アレイ型ディスク駆動機構システムの連
続的動作を提供するための手段を更に備え、これにより
、該コンピューターは動作不可能時間を経験しないこと
を特徴とする請求項5に記載のアレイ型ディスク駆動機
構。 - (7)該連続的動作提供手段は、更に、冗長性が前記デ
ィスク制御手段により構成される時に冗長性により前記
の取り外されたディスク駆動機構についてのデータを再
生する手段を備えることを特徴とする請求項6に記載の
アレイ型ディスク駆動機構。 - (8)更に、 複数の予備ディスク駆動機構と、 欠陥のある又は取り外されたディスク駆動機構と論理的
に同一となる様に前記予備を構成する手段とを備え、こ
れにより、その欠陥のある又は取り外されたディスク駆
動機構についてのデータが該予備ディスク駆動機構に書
き込まれると共にその欠陥のある又は取り外されたディ
スク駆動機構から読み出されるべきデータが該予備駆動
機構から読み出されることとなる様に予備が欠陥のある
又は取り外されたディスク駆動機構の論理的位置を占め
ることを特徴とする請求項6に記載のアレイ型記憶シス
テム。 - (9)冗長性が設けられている時には欠陥のある又は取
り外されたディスク駆動機構のデータを再生し、その再
生されたデータを、前記予備構成手段の構成した予備に
格納するための手段を更に備えることを特徴とする請求
項8に記載のアレイ型ディスク駆動機構システム。 - (10)該ディスク制御手段は更に複数のプロセス手段
を備え、前記複数のプロセス手段は、 前記コンピューターからの、又は前記コンピューターへ
の割り込みにサービスして、前記コンピューターと前記
複数のプロセス手段との間でインターフェースとして作
用するコンピューター割り込みプロセス手段と、 該コンピューターから該アレイ型ディスク駆動機構への
及び該アレイ型ディスク駆動機構からの読み出し及び書
き込みの要求を引受ける複数のコンピュータータスクプ
ロセス手段と、該複数のコンピュータータスクプロセス
手段は該コンピューターから該アレイ型ディスク駆動機
構への書き込みと、該アレイ型ディスク駆動機構から該
コンピューターへの読み出しとを制御することと、前記
複数のコンピュータタスクプロセス手段は前記のレベル
の冗長性を使用可能にすることと、 該アレイ型ディスク駆動機構による該複数のコンピュー
タータスクプロセス手段からの書き込みデータの受取り
を開始させると共に、該複数のコンピュータータスクプ
ロセス手段による該アレイ型ディスク駆動機構からの読
み出しデータの受取りを開始させる複数のチャネルタス
クプロセス手段と、 読み出し時の複数のコンピュータータスクプロセス手段
から複数のチャネルの各々へのデータの移動と、書き込
み時の複数のチャネルの各々から複数のコンピューター
タスクプロセス手段へのデータの移動とを制御する複数
のチャネル制御プロセス手段と、 複数のチャネルの各々への割り込み及び複数のチャネル
の各々からの割り込みを処理する複数のチャネル割り込
みプロセス手段とから成ることを特徴とする請求項9に
記載のアレイ型ディスク駆動機構システム。 - (11)更にオペレーティング・システムを備え、前記
複数のプロセス手段は前記オペレーティング・システム
により相互に接続されてこれにより作動し、前記ディス
ク制御手段は前記オペレーティング・システムにより作
動することを特徴とする請求項10に記載のアレイ型デ
ィスク駆動機構システム。 - (12)前記コンピューターからの入出力パラメータブ
ロックを有し、更に、 前記入出力パラメータブロックを待ち合わせさせる手段
を備え、前記待ち合わせ手段は、該コンピュータータス
クプロセス手段の数より多い入出力パラメータブロック
がある時に作動することを特徴とする請求項11に記載
のアレイ型ディスク駆動機構システム。 - (13)該ディスク制御手段は、更に、 該コンピューターからの各要求に優先順位を付ける手段
を備え、前記複数のプロセス手段の各々は前記優先順位
を見ることを特徴とする請求項12に記載のアレイ型デ
ィスク駆動機構システム。 - (14)前記オペレーティング・システムと前記ディス
ク制御手段とがその上で作動するフロセッサーを有し、
前記ディスク制御手段は高レベルコンピューターソフト
ウェアから成り、前記オペレーティング・システム及び
前記高レベルコンピューターソフトウェアは組み合わさ
れて、前記ディスク制御手段を複数のプロセッサーに対
してリターゲタブルにすることを特徴とする請求項13
に記載のアレイ型ディスク駆動機構システム。 - (15)該アレイ型ディスク駆動機構における複数のデ
ィスク駆動機構の各々の位置を定義する手段と、 ディスク駆動機構を、その定義された位置以外の位置に
置こうとする試みを伝達する手段とを更に備えることを
特徴とする請求項14に記載のアレイ型ディスク駆動機
構システム。 - (16)顧客エンジニアリング手段を有し、前記アレイ
型ディスク駆動機構システムは更に複数のプロセッサー
を備え、前記複数のチャネルの各々はプロセッサーを備
え、前記ディスク制御手段はプロセッサーを備え、前記
顧客エンジニアリング手段は複数のプロセッサーを備え
、前記ディスク制御手段は、更に前記複数のプロセッサ
ーの同時動作を提供する手段を備え、これにより、前記
アレイ型ディスク駆動機構システムは並行処理をするこ
とが出来、高帯域幅処理又は高トランザクション速度処
理又はその間の兼ね合いの処理を提供する様に構成され
ることを特徴とする請求項15に記載のアレイ型ディス
ク駆動機構システム。 - (17)複数のディスク駆動機構を有するアレイ型ディ
スク駆動機構システムであって、前記複数のディスク駆
動機構を、随意の論理的メモリー構成に構成するための
手段と、 前記アレイ型ディスクシステムに読み書きされるデータ
に対してゼロから複数までのレベルの冗長性を行なう様
にアレイ型ディスクシステムを構成する手段と、から成
ることを特徴とするアレイ型ディスク駆動機構システム
。 - (18)メモリーをコンピューターに提供するアレイ型
ディスク駆動機構システムであって、前記アレイ型シス
テムは、アレイを形成する様に構成された複数のディス
ク駆動機構を有し、前記アレイ型ディスク駆動機構は複
数のチャネルからアクセスされ、各チャネルは複数のデ
ィスク駆動機構にアクセスし、アレイ型ディスク駆動機
構の各々は複数のセクターを有するアレイ型ディスク駆
動機構システムであって、 論理的ディスク駆動機構の構成として該コンピューター
に見える様に前記複数のディスク駆動機構を構成するデ
ィスク制御手段を備えており、これにより、該複数のデ
ィスク駆動機構を、1個の論理的ディスク駆動機構とし
て、又は複数のディスク駆動機構が複数あるものとして
、又はその中間の兼ね合いの構成として見える様に構成
することが出来、前記の構成の柔軟性により、高帯域幅
処理能力又は高トランザクション速度処理能力又はその
中間の兼ね合いの処理能力が得られることを特徴とする
アレイ型ディスク駆動機構システム。 - (19)該ディスク制御手段は、更に、 該コンピューターにより該アレイ型ディスク駆動機構に
読み書きされるデータに複数のレベルの冗長性を提供す
る手段と、 該ディスク制御手段により制御されて、該アレイ型ディ
スク駆動機構から読み書きされるデータに対してゼロか
ら該複数のレベルまでの冗長性を作用させることを可能
にする手段とを備えることを特徴とする請求項18に記
載のアレイ型ディスク駆動機構システム。 - (20)該ディスク制御手段は更に複数のプロセス手段
を備え、前記複数のプロセス手段は、 前記コンピューターからの、又は前記コンピューターへ
の割り込みにサービスして、前記コンピューターと前記
複数のプロセス手段との間でインターフェースとして作
用するコンピューター割り込みプロセス手段と、 該コンピューターから該アレイ型ディスク駆動機構への
及び該アレイ型ディスク駆動機構からの読み出し及び書
き込みの要求を引受ける複数のコンピュータータスクプ
ロセス手段と、該複数のコンピュータータスクプロセス
手段は該コンピューターから該アレイ型ディスク駆動機
構への読み出しと、該アレイ型ディスク駆動機構から該
コンピューターへの書き込みとを制御することと、前記
複数のコンピュータータスクプロセス手段は前記のレベ
ルの冗長性を使用可能にすることと、 該アレイ型ディスク駆動機構による該複数のコンピュー
タータスクプロセス手段からの読み出しデータの受取り
を開始させると共に、該複数のコンピュータータスクプ
ロセス手段による該アレイ型ディスク駆動機構からの書
き込みデータの受取りを開始させる複数のチャネルタス
クプロセス手段と、 読み出し時の複数のコンピュータータスクプロセス手段
から複数のチャネルの各々へのデータの移動と、書き込
み時の複数のチャネルの各々から複数のコンピューター
タスクプロセス手段へのデータの移動とを制御する複数
のチャネル制御プロセス手段と、 複数のチャネルの各々への割り込み及び複数のチャネル
の各々からの割り込みを処理する複数のチャネル割り込
みプロセス手段とから成ることを特徴とする請求項19
に記載のアレイ型ディスク駆動機構システム。 - (21)メモリーをコンピューターに提供するアレイ型
ディスク駆動機構システムの方法であって、前記アレイ
型システムは、アレイを形成する様に構成された複数の
ディスク駆動機構を有し、前記アレイ型ディスク駆動機
構は複数のチャネルからアクセスされ、各チャネルは複
数のディスク駆動機構にアクセスし、アレイ型ディスク
駆動機構の各々は複数のセクターを有するアレイ型ディ
スク駆動機構システムの方法であって、ディスク駆動機
構の想到可能な配列として該コンピューターに見える様
にアレイ型ディスク駆動機構の論理的構成を制御し、こ
れにより該アレイ型ディスク駆動機構が該コンピュータ
ーに対して、複数のディスク駆動機構として、又は全て
のアレイ型ディスク駆動機構から成る1個の大きなディ
スク駆動機構として、又はその中間の構成として見える
様に制御するディスク制御手段を設け、 該コンピューターにより該アレイ型ディスク駆動機構に
読み書きされるデータに対して複数のレベルの冗長性を
提供し、 該ディスク制御手段により制御されて、該アレイ型ディ
スク駆動機構から読み書きされるデータに対してゼロか
ら前記の複数までのレベルの冗長性を作用させることを
可能にする手段を設けるステップから成ることを特徴と
する方法。 - (22)バッファーメモリーを有し、該ディスク制御手
段は、更に、 該コンピューターから受信したデータを、各々セクター
に等しい大きさを持った所要の数のブロックに配分し、 前記ブロックを1チャネルから他のチャネルへと順次に
ストライピングするステップを有し、このストライピン
グは、該アレイ型ディスク駆動機構のディスク駆動機構
を水平に横断し、又は該アレイ型ディスク駆動機構のデ
ィスク駆動機構を斜め下方に横断し、又はこれらの組み
合わせとなることを特徴とする請求項21に記載のアレ
イ型ディスク駆動機構システムの方法。 - (23)該ストライピングのステップは、更に、水平又
は斜めのストライピング又はその組み合わせのストライ
ピングを行なう様に該ストライピング手段を構成するス
テップを有することを特徴とする請求項22に記載のア
レイ型ディスク駆動機構の方法。 - (24)複数のチャネルに接続する共通データバスを有
し、冗長性を提供するステップは、更に、コンピュータ
ーの読み出し又は書き込み動作時にデータが該データバ
スに添ってチャネルから又はチャネルへ伝播する時に冗
長性を行なうステップを備え、これにより、冗長性は、
該読み出し又は書き込み動作を完了するのに要する時間
を越える付加的時間を必要としないことを特徴とする請
求項23に記載のアレイ型ディスク駆動機構の方法。 - (25)該制御ステップは、更に、 仮想記憶場所をアレイ型ディスク駆動機構に写像するス
テップを備え、前記アレイ型ディスク駆動機構は物理的
記憶場所であることを特徴とする請求項24に記載のア
レイ型ディスク駆動機構の方法。 - (26)代わりのディスク駆動機構を据え付けるために
ディスク駆動機構が該アレイ型ディスク駆動機構から取
り外された時に該アレイ型ディスク駆動機構システムの
連続的動作を提供するためステップを更に備え、これに
より、該コンピューターは動作不可能時間を経験しない
ことを特徴とする請求項25に記載のアレイ型ディスク
駆動機構の方法。 - (27)該連続的動作提供ステップは、更に、冗長性が
前記ディスク制御手段により構成される時に冗長性によ
り前記の取り外されたディスク駆動機構についてのデー
タを再生するステップを備えることを特徴とする請求項
26に記載のアレイ型ディスク駆動機構。 - (28)更に、 複数の予備ディスク駆動機構を設け、 欠陥のある又は取り外されたディスク駆動機構と論理的
に同一となる様に前記予備を構成するステップとを備え
、これにより、その欠陥のある又は取り外されたディス
ク駆動機構についてのデータが該予備ディスク駆動機構
に書き込まれると共にその欠陥のある又は取り外された
ディスク駆動機構から読み出されるべきデータが該予備
駆動機構から読み出されることとなる様に予備が欠陥の
ある又は取り外されたディスク駆動機構の論理的位置を
占めることを特徴とする請求項26に記載のアレイ型記
憶装置の方法。 - (29)冗長性が設けられている時には欠陥のある又は
取り外されたディスク駆動機構のデータを再生し、その
再生されたデータを、前記予備構成手段の構成した予備
に格納するためステップを更に備えることを特徴とする
請求項28に記載のアレイ型ディスク駆動機構の方法。 - (30)該ディスク制御ステップは更に複数のプロセス
手段を設けるステップを有し、前記複数のプロセス手段
は、 前記コンピューターからの、又は前記コンピューターへ
の割り込みにサービスして、前記コンピューターと前記
複数のプロセス手段との間でインターフェースとして作
用するコンピューター割り込みプロセス手段を設け、 該コンピューターから該アレイ型ディスク駆動機構への
及び該アレイ型ディスク駆動機構からの読み出し及び書
き込みの要求を引受ける複数のコンピュータータスクプ
ロセス手段を設け、該複数のコンピュータータスクプロ
セス手段は該コンピューターから該アレイ型ディスク駆
動機構への読み出しと、該アレイ型ディスク駆動機構か
ら該コンピューターへの書き込みとを制御し、前記複数
のコンピュータータスクプロセス手段は前記のレベルの
冗長性を可能にし、該アレイ型ディスク駆動機構による
該複数のコンピュータータスクプロセス手段からの読み
出しデータの受取りを開始させると共に、該複数のコン
ピュータータスクプロセス手段による該アレイ型ディス
ク駆動機構からの書き込みデータの受取りを開始させる
複数のチャネルタスクプロセス手段を設け、 読み出し時の複数のコンピュータータスクプロセス手段
から複数のチャネルの各々へのデータの移動と、書き込
み時の複数のチャネルの各々から複数のコンピューター
タスクプロセス手段へのデータの移動とを制御する複数
のチャネル制御プロセス手段を設け、 複数のチャネルの各々への割り込み及び複数のチャネル
の各々からの割り込みを処理する複数のチャネル割り込
みプロセス手段を設けるステップとから成ることを特徴
とする請求項29に記載のアレイ型ディスク駆動機構の
方法。 - (31)更にオペレーティング・システムを設けるステ
ップを備え、前記複数のプロセス手段は前記オペレーテ
ィング・システムにより相互に接続されてこれにより作
動し、前記ディスク制御手段は前記オペレーティング・
システムにより作動することを特徴とする請求項30に
記載のアレイ型ディスク駆動機構システム。 - (32)前記コンピューターからの入出力パラメータブ
ロックを有し、更に、 前記入出力パラメータブロックを待ち合わせさせる手段
を設け、前記待ち合わせ手段は、該コンピュータータス
クプロセス手段の数より多い入出力パラメータブロック
がある時に作動することを特徴とする請求項31に記載
のアレイ型ディスク駆動機構の方法。 - (33)該ディスク制御ステップは、更に、該コンピュ
ーターからの各要求に優先順位を付けるステップを備え
、前記複数のプロセス手段の各々は前記優先順位を見る
ことを特徴とする請求項32に記載のアレイ型ディスク
駆動機構の方法。 - (34)前記オペレーティング・システムと前記ディス
ク制御手段とがその上で作動するプロセッサーを有し、
前記ディスク制御ステップは高レベルコンピューターソ
フトウェアを設けるステップから成り、前記オペレーテ
ィング・システム及び前記高レベルコンピューターソフ
トウェアは組み合わされて、前記ディスク制御手段を複
数のプロセッサーに対してリターゲタブルにすることを
特徴とする請求項33に記載のアレイ型ディスク駆動機
構の方法。 - (35)該アレイ型ディスク駆動機構における複数のデ
ィスク駆動機構の各々の位置を定義し、ディスク駆動機
構を、その定義された位置以外の位置に置こうとする試
みを伝達するステップを更に備えることを特徴とする請
求項34に記載のアレイ型ディスク駆動機構の方法。 - (36)顧客エンジニアリング手段を有し、前記アレイ
型ディスク駆動機構システムは更に複数のプロセッサー
を設けるステップを備え、前記複数のチャネルの各々は
プロセッサーを備え、前記ディスク制御手段はプロセッ
サーを備え、前記顧客エンジニアリング手段は複数のプ
ロセッサーを備え、前記ディスク制御ステップは、更に
前記複数のプロセッサーの同時動作を提供するステップ
を備え、これにより、前記アレイ型ディスク駆動機構シ
ステムは並行処理をすることが出来、高帯域幅処理又は
高トランザクション速度処理又はその間の兼ね合いの処
理を提供する様に構成されることを特徴とする請求項3
5に記載のアレイ型ディスク駆動機構の方法。
Applications Claiming Priority (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US27071388A | 1988-11-14 | 1988-11-14 | |
| US270713 | 1988-11-14 |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| JPH02236714A true JPH02236714A (ja) | 1990-09-19 |
| JP2981245B2 JP2981245B2 (ja) | 1999-11-22 |
Family
ID=23032479
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP1296004A Expired - Lifetime JP2981245B2 (ja) | 1988-11-14 | 1989-11-14 | アレイ型ディスク駆動機構システム及び方法 |
Country Status (5)
| Country | Link |
|---|---|
| EP (1) | EP0369707B1 (ja) |
| JP (1) | JP2981245B2 (ja) |
| AU (1) | AU630635B2 (ja) |
| CA (1) | CA2002750C (ja) |
| DE (1) | DE68926436T2 (ja) |
Cited By (12)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JPH04205519A (ja) * | 1990-11-30 | 1992-07-27 | Fujitsu Ltd | データ復元中のライト方法 |
| JPH04278641A (ja) * | 1991-02-01 | 1992-10-05 | Internatl Business Mach Corp <Ibm> | データ記憶システム及び方法 |
| JPH05313833A (ja) * | 1992-05-11 | 1993-11-26 | Mitsubishi Electric Corp | アレイ型ディスク駆動機構システム |
| JPH0798635A (ja) * | 1993-05-21 | 1995-04-11 | Mitsubishi Electric Corp | アレイ型記録装置及びデバイス代替方法及びホットスタンバイシステム |
| US5530830A (en) * | 1992-12-08 | 1996-06-25 | Hitachi, Ltd. | Disk array system |
| US5530831A (en) * | 1993-08-02 | 1996-06-25 | Hitachi, Ltd. | Interchangeable extension board disk array system |
| US5542064A (en) * | 1991-11-21 | 1996-07-30 | Hitachi, Ltd. | Data read/write method by suitably selecting storage units in which multiple copies of identical data are stored and apparatus therefor |
| US5550975A (en) * | 1992-01-21 | 1996-08-27 | Hitachi, Ltd. | Disk array controller |
| US5652741A (en) * | 1993-07-16 | 1997-07-29 | Kabushiki Kaisha Toshiba | Data storage apparatus having data and parity media |
| US5832200A (en) * | 1995-03-23 | 1998-11-03 | Kabushiki Kaisha Toshiba | Data storage apparatus including plural removable recording mediums and having data reproducing function |
| US6154854A (en) * | 1990-11-09 | 2000-11-28 | Emc Corporation | Logical partitioning of a redundant array storage system |
| JP2009514056A (ja) * | 2003-07-14 | 2009-04-02 | インターナショナル・ビジネス・マシーンズ・コーポレーション | データ・ストレージ・アレイ |
Families Citing this family (52)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US5077736A (en) * | 1988-06-28 | 1991-12-31 | Storage Technology Corporation | Disk drive memory |
| US5146574A (en) * | 1989-06-27 | 1992-09-08 | Sf2 Corporation | Method and circuit for programmable selecting a variable sequence of element using write-back |
| US5315708A (en) * | 1990-02-28 | 1994-05-24 | Micro Technology, Inc. | Method and apparatus for transferring data through a staging memory |
| US5134619A (en) * | 1990-04-06 | 1992-07-28 | Sf2 Corporation | Failure-tolerant mass storage system |
| US5166939A (en) * | 1990-03-02 | 1992-11-24 | Micro Technology, Inc. | Data storage apparatus and method |
| US5140592A (en) * | 1990-03-02 | 1992-08-18 | Sf2 Corporation | Disk array system |
| US5212785A (en) * | 1990-04-06 | 1993-05-18 | Micro Technology, Inc. | Apparatus and method for controlling data flow between a computer and memory devices |
| US5233618A (en) * | 1990-03-02 | 1993-08-03 | Micro Technology, Inc. | Data correcting applicable to redundant arrays of independent disks |
| US5388243A (en) * | 1990-03-09 | 1995-02-07 | Mti Technology Corporation | Multi-sort mass storage device announcing its active paths without deactivating its ports in a network architecture |
| US5325497A (en) * | 1990-03-29 | 1994-06-28 | Micro Technology, Inc. | Method and apparatus for assigning signatures to identify members of a set of mass of storage devices |
| US5461723A (en) * | 1990-04-05 | 1995-10-24 | Mit Technology Corp. | Dual channel data block transfer bus |
| US5202856A (en) * | 1990-04-05 | 1993-04-13 | Micro Technology, Inc. | Method and apparatus for simultaneous, interleaved access of multiple memories by multiple ports |
| US5956524A (en) * | 1990-04-06 | 1999-09-21 | Micro Technology Inc. | System and method for dynamic alignment of associated portions of a code word from a plurality of asynchronous sources |
| US5214778A (en) * | 1990-04-06 | 1993-05-25 | Micro Technology, Inc. | Resource management in a multiple resource system |
| US5233692A (en) * | 1990-04-06 | 1993-08-03 | Micro Technology, Inc. | Enhanced interface permitting multiple-byte parallel transfers of control information and data on a small computer system interface (SCSI) communication bus and a mass storage system incorporating the enhanced interface |
| US5414818A (en) * | 1990-04-06 | 1995-05-09 | Mti Technology Corporation | Method and apparatus for controlling reselection of a bus by overriding a prioritization protocol |
| US5193184A (en) * | 1990-06-18 | 1993-03-09 | Storage Technology Corporation | Deleted data file space release system for a dynamically mapped virtual data storage subsystem |
| JPH0786811B2 (ja) * | 1990-06-19 | 1995-09-20 | 富士通株式会社 | アレイディスク装置のドライブ位置確認方式 |
| NL9001728A (nl) * | 1990-07-31 | 1992-02-17 | Tulip Computers International | Inrichting voor het verbeteren van de efficientie van de overdracht van data naar en vanuit een geheugeneenheid die is voorzien van tenminste een harde geheugenschijf. |
| GB9019891D0 (en) * | 1990-09-12 | 1990-10-24 | Di Data Ltd | Computer memory array control |
| EP0478337B1 (en) * | 1990-09-28 | 1999-12-22 | Xerox Corporation | Process of storing data on, or retrieving data from a plurality of disks |
| DE4033464A1 (de) * | 1990-10-20 | 1992-04-23 | Fischer Gmbh Gert | Anordnung zur selektiven kopplung mehrerer module mit einem prozessor |
| US5208813A (en) * | 1990-10-23 | 1993-05-04 | Array Technology Corporation | On-line reconstruction of a failed redundant array system |
| JP2752247B2 (ja) * | 1990-11-29 | 1998-05-18 | 富士通株式会社 | 情報記憶装置 |
| US5235601A (en) * | 1990-12-21 | 1993-08-10 | Array Technology Corporation | On-line restoration of redundancy information in a redundant array system |
| JP3409859B2 (ja) | 1991-01-31 | 2003-05-26 | 株式会社日立製作所 | 制御装置の制御方法 |
| US6874101B2 (en) | 1991-01-31 | 2005-03-29 | Hitachi, Ltd. | Storage unit subsystem |
| AU661680B2 (en) * | 1991-02-06 | 1995-08-03 | Storage Technology Corporation | Disk drive array memory system using nonuniform disk drives |
| US5303244A (en) * | 1991-03-01 | 1994-04-12 | Teradata | Fault tolerant disk drive matrix |
| US5257362A (en) * | 1991-03-08 | 1993-10-26 | International Business Machines Corporation | Method and means for ensuring single pass small read/write access to variable length records stored on selected DASDs in a DASD array |
| US5345565A (en) * | 1991-03-13 | 1994-09-06 | Ncr Corporation | Multiple configuration data path architecture for a disk array controller |
| US5179704A (en) * | 1991-03-13 | 1993-01-12 | Ncr Corporation | Method and apparatus for generating disk array interrupt signals |
| JP2743606B2 (ja) * | 1991-04-11 | 1998-04-22 | 三菱電機株式会社 | アレイ型記録装置 |
| JP3187525B2 (ja) * | 1991-05-17 | 2001-07-11 | ヒュンダイ エレクトロニクス アメリカ | バス接続装置 |
| US5301297A (en) * | 1991-07-03 | 1994-04-05 | Ibm Corp. (International Business Machines Corp.) | Method and means for managing RAID 5 DASD arrays having RAID DASD arrays as logical devices thereof |
| JPH0589463A (ja) * | 1991-09-26 | 1993-04-09 | Mitsubishi Electric Corp | データ書込み装置 |
| US5802264A (en) * | 1991-11-15 | 1998-09-01 | Fujitsu Limited | Background data reconstruction in a storage device array system |
| US5333305A (en) * | 1991-12-27 | 1994-07-26 | Compaq Computer Corporation | Method for improving partial stripe write performance in disk array subsystems |
| GB9200207D0 (en) * | 1992-01-06 | 1992-02-26 | Di Data Ltd | Computer memory array control |
| US5442752A (en) * | 1992-01-24 | 1995-08-15 | International Business Machines Corporation | Data storage method for DASD arrays using striping based on file length |
| US5371743A (en) * | 1992-03-06 | 1994-12-06 | Data General Corporation | On-line module replacement in a multiple module data processing system |
| US5408644A (en) * | 1992-06-05 | 1995-04-18 | Compaq Computer Corporation | Method and apparatus for improving the performance of partial stripe operations in a disk array subsystem |
| US5471640A (en) * | 1992-07-06 | 1995-11-28 | Hewlett-Packard | Programmable disk array controller having n counters for n disk drives for stripping data where each counter addresses specific memory location by a count n |
| US5315602A (en) * | 1992-08-12 | 1994-05-24 | Digital Equipment Corporation | Optimized stripe detection for redundant arrays of disk drives |
| JP3183719B2 (ja) * | 1992-08-26 | 2001-07-09 | 三菱電機株式会社 | アレイ型記録装置 |
| JP3181398B2 (ja) * | 1992-10-06 | 2001-07-03 | 三菱電機株式会社 | アレイ型記録装置 |
| US5671349A (en) * | 1994-12-06 | 1997-09-23 | Hitachi Computer Products America, Inc. | Apparatus and method for providing data redundancy and reconstruction for redundant arrays of disk drives |
| US5634033A (en) * | 1994-12-16 | 1997-05-27 | At&T Global Information Solutions Company | Disk array storage system architecture for parity operations simultaneous with other data operations |
| JPH08329021A (ja) * | 1995-03-30 | 1996-12-13 | Mitsubishi Electric Corp | クライアントサーバシステム |
| EP1046981A4 (en) * | 1997-12-17 | 2005-09-07 | Matsushita Electric Industrial Co Ltd | MAGNETIC DISK APPARATUS AND DATA TRANSFER METHOD |
| DE19811035A1 (de) * | 1998-03-13 | 1999-09-16 | Grau Software Gmbh | Verfahren zum Speichern von Daten |
| US7475098B2 (en) | 2002-03-19 | 2009-01-06 | Network Appliance, Inc. | System and method for managing a plurality of snapshots |
Family Cites Families (4)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US4870643A (en) * | 1987-11-06 | 1989-09-26 | Micropolis Corporation | Parallel drive array storage system |
| US4993030A (en) * | 1988-04-22 | 1991-02-12 | Amdahl Corporation | File system for a plurality of storage classes |
| WO1990001737A1 (en) * | 1988-08-02 | 1990-02-22 | Cray Research, Inc. | Single disk emulation for synchronous disk array |
| WO1990006550A1 (en) * | 1988-12-08 | 1990-06-14 | Cray Research, Inc. | Single disk emulation for asynchronous disk array |
-
1989
- 1989-11-09 AU AU44529/89A patent/AU630635B2/en not_active Expired
- 1989-11-10 CA CA002002750A patent/CA2002750C/en not_active Expired - Lifetime
- 1989-11-13 DE DE68926436T patent/DE68926436T2/de not_active Expired - Lifetime
- 1989-11-13 EP EP89311715A patent/EP0369707B1/en not_active Expired - Lifetime
- 1989-11-14 JP JP1296004A patent/JP2981245B2/ja not_active Expired - Lifetime
Cited By (12)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US6154854A (en) * | 1990-11-09 | 2000-11-28 | Emc Corporation | Logical partitioning of a redundant array storage system |
| JPH04205519A (ja) * | 1990-11-30 | 1992-07-27 | Fujitsu Ltd | データ復元中のライト方法 |
| JPH04278641A (ja) * | 1991-02-01 | 1992-10-05 | Internatl Business Mach Corp <Ibm> | データ記憶システム及び方法 |
| US5542064A (en) * | 1991-11-21 | 1996-07-30 | Hitachi, Ltd. | Data read/write method by suitably selecting storage units in which multiple copies of identical data are stored and apparatus therefor |
| US5550975A (en) * | 1992-01-21 | 1996-08-27 | Hitachi, Ltd. | Disk array controller |
| JPH05313833A (ja) * | 1992-05-11 | 1993-11-26 | Mitsubishi Electric Corp | アレイ型ディスク駆動機構システム |
| US5530830A (en) * | 1992-12-08 | 1996-06-25 | Hitachi, Ltd. | Disk array system |
| JPH0798635A (ja) * | 1993-05-21 | 1995-04-11 | Mitsubishi Electric Corp | アレイ型記録装置及びデバイス代替方法及びホットスタンバイシステム |
| US5652741A (en) * | 1993-07-16 | 1997-07-29 | Kabushiki Kaisha Toshiba | Data storage apparatus having data and parity media |
| US5530831A (en) * | 1993-08-02 | 1996-06-25 | Hitachi, Ltd. | Interchangeable extension board disk array system |
| US5832200A (en) * | 1995-03-23 | 1998-11-03 | Kabushiki Kaisha Toshiba | Data storage apparatus including plural removable recording mediums and having data reproducing function |
| JP2009514056A (ja) * | 2003-07-14 | 2009-04-02 | インターナショナル・ビジネス・マシーンズ・コーポレーション | データ・ストレージ・アレイ |
Also Published As
| Publication number | Publication date |
|---|---|
| EP0369707A3 (en) | 1991-09-11 |
| CA2002750C (en) | 1998-07-21 |
| EP0369707B1 (en) | 1996-05-08 |
| JP2981245B2 (ja) | 1999-11-22 |
| DE68926436T2 (de) | 1996-11-14 |
| AU4452989A (en) | 1990-05-17 |
| AU630635B2 (en) | 1992-11-05 |
| DE68926436D1 (de) | 1996-06-13 |
| EP0369707A2 (en) | 1990-05-23 |
| CA2002750A1 (en) | 1990-05-14 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| JPH02236714A (ja) | アレイ型ディスク駆動機構システム及び方法 | |
| US5148432A (en) | Arrayed disk drive system and method | |
| US5101492A (en) | Data redundancy and recovery protection | |
| US7305579B2 (en) | Method, apparatus and program storage device for providing intelligent rebuild order selection | |
| KR100434932B1 (ko) | Raid시스템의결함데이터를관리하는방법및장치 | |
| US5937428A (en) | Method for host-based I/O workload balancing on redundant array controllers | |
| US5598549A (en) | Array storage system for returning an I/O complete signal to a virtual I/O daemon that is separated from software array driver and physical device driver | |
| US7133967B2 (en) | Storage system, controller, control method and program product therefor | |
| US5487160A (en) | Concurrent image backup for disk storage system | |
| JP3151008B2 (ja) | ディスクセクタ解析方法 | |
| JP2769443B2 (ja) | 記憶サブシステム及び関連する装置/方法 | |
| US5504858A (en) | Method and apparatus for preserving data integrity in a multiple disk raid organized storage system | |
| US6609145B1 (en) | User selectable priority for disk array background operations | |
| US5596708A (en) | Method and apparatus for the protection of write data in a disk array | |
| EP0594464B1 (en) | Method of operating a data storage disk array | |
| US8171379B2 (en) | Methods, systems and media for data recovery using global parity for multiple independent RAID levels | |
| US8112679B2 (en) | Data reliability bit storage qualifier and logical unit metadata | |
| US8751862B2 (en) | System and method to support background initialization for controller that supports fast rebuild using in block data | |
| US7093069B2 (en) | Integration of a RAID controller with a disk drive module | |
| US20090210618A1 (en) | Apparatus and method to allocate resources in a data storage library | |
| US7308532B1 (en) | Method for dynamically implementing N+K redundancy in a storage subsystem | |
| JP2000207136A (ja) | 複数ドライブ故障トレラントraidアルゴリズム | |
| US6484269B1 (en) | Data storage system and method with improved data integrity value calculation | |
| US20080250269A1 (en) | System and Method for Improving Rebuild Speed Using Data in Disk Block | |
| US7130973B1 (en) | Method and apparatus to restore data redundancy and utilize spare storage spaces |
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: 20080917 Year of fee payment: 9 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090917 Year of fee payment: 10 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100917 Year of fee payment: 11 |
|
| EXPY | Cancellation because of completion of term | ||
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100917 Year of fee payment: 11 |