[go: up one dir, main page]

JPH06511099A - How to perform disk array operations using a non-uniform stripe size mapping scheme - Google Patents

How to perform disk array operations using a non-uniform stripe size mapping scheme

Info

Publication number
JPH06511099A
JPH06511099A JP5511941A JP51194193A JPH06511099A JP H06511099 A JPH06511099 A JP H06511099A JP 5511941 A JP5511941 A JP 5511941A JP 51194193 A JP51194193 A JP 51194193A JP H06511099 A JPH06511099 A JP H06511099A
Authority
JP
Japan
Prior art keywords
data
stripe
size
disk
disk array
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP5511941A
Other languages
Japanese (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.)
Compaq Computer Corp
Original Assignee
Compaq Computer Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Compaq Computer Corp filed Critical Compaq Computer Corp
Publication of JPH06511099A publication Critical patent/JPH06511099A/en
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1076Parity data used in redundant arrays of independent storages, e.g. in RAID systems
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B20/00Signal processing not specific to the method of recording or reproducing; Circuits therefor
    • G11B20/10Digital recording or reproducing
    • G11B20/18Error detection or correction; Testing, e.g. of drop-outs
    • G11B20/1833Error detection or correction; Testing, e.g. of drop-outs by adding special lists or symbols to the coded information
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2211/00Indexing scheme relating to details of data-processing equipment not covered by groups G06F3/00 - G06F13/00
    • G06F2211/10Indexing scheme relating to G06F11/10
    • G06F2211/1002Indexing scheme relating to G06F11/1076
    • G06F2211/1026Different size groups, i.e. non uniform size of groups in RAID systems with parity
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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)
  • Signal Processing (AREA)
  • Human Computer Interaction (AREA)
  • Signal Processing For Digital Recording And Reproducing (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)

Abstract

(57)【要約】本公報は電子出願前の出願データであるため要約のデータは記録されません。 (57) [Summary] This bulletin contains application data before electronic filing, so abstract data is not recorded.

Description

【発明の詳細な説明】 不均−スドライブサイズマツピングスキームを用いたディスク配列操作を実行す る方法技術分野 本発明は、コンピュータシステムにおける多重ディスク・ドライブのための性能 を改善する方法を指向し、特に、パリティデータ冗長及び回復保護機能を用いて 、ディスク配列における書込操作を実行する方法に関する。[Detailed description of the invention] Performing disk array operations using a non-uniform disk drive size mapping scheme Technological field The present invention provides performance improvements for multiple disk drives in computer systems. In particular, using parity data redundancy and recovery protection features , relates to a method for performing write operations on a disk array.

背景技術 ディスクを利用するマイクロプロセッサ及びコンピュータが近年の間にますます いっそう強力になってきている。現在、利用可能なパソコンは、10年前のメイ ンフレーム及びミニコンピユータを上回る性能を持っている。32ビツト幅のマ イクロプロセッサデータ・バスが広範囲に利用可能となり、一方過去では8ビツ トが従来となり、16ビツトが普通になった。Background technology In recent years, microprocessors and computers that utilize disks have increasingly become It's becoming even more powerful. The computers currently available are from 10 years ago. It has performance that exceeds that of frame and minicomputers. 32-bit width Microprocessor data buses have become widely available, whereas in the past 16 bits became the norm.

パソコンシステムは、長年にわたって発展し、新しい使用が日毎発見されている 。使用法が変化し、この結果、完全なコンピュータシステムを形成する種々のサ ブシステムの異なる要望がある。コンピュータシステムの増大した性能によって 固定ディスクドライブ等の大容量記憶サブシステムがコンピュータシステムのデ ータの転送でますます重要な役割を果たすことが明白になった。過去数年におい てはディスク配列サブシステムとして参照される記憶サブシステムにおける新し い傾向がデータ転送性能、容量及び信頼性を改善するために出現してきた。ディ スク配列サブシステムを確立する1つの理由は非常に高いデータ転送率を持つ論 理的デバイスを創ることである。これは、多重の標準ディスク・ドライブを相互 に「集団化」して、これらのドライブの授受データを並列に転送することによっ て達成できる。従って、データは、各ディスクがデータファイルを備えたデータ の部分を持つように、ディスク配列を備えた各ディスクを横断して記憶される。Personal computer systems have evolved over the years and new uses are discovered every day. . Usage changes and this results in different services forming a complete computer system. There are different requirements for different systems. Due to the increased performance of computer systems A mass storage subsystem, such as a fixed disk drive, is a computer system's It has become clear that they will play an increasingly important role in the transfer of data. past few years smell A new feature in the storage subsystem, referred to as the disk array subsystem. New trends have emerged to improve data transfer performance, capacity and reliability. Di One reason for establishing a disk array subsystem is to have a logic with very high data transfer rates. The goal is to create a logical device. This allows multiple standard disk drives to be interconnected. By "grouping" these drives and transferring the data sent and received from these drives in parallel, can be achieved. Therefore, the data is stored in the data file where each disk has a data file. is stored across each disk in the disk array to have a portion of .

もしn個のドライブが相互に集団化されるならば、有効データ転送率がn倍まで 増加し得る。この技術はストライプとして知られ、2次記憶への大量の往来デー タの転送が頻繁に要求される超計算環境で始めに採用された。If n drives are grouped together, the effective data transfer rate can be increased by a factor of n. It can increase. This technique is known as striping, and is used to remove large amounts of traffic to and from secondary storage. It was first adopted in hyper-computing environments where data transfer is frequently required.

このストライプにおいては、連続データブロックがセクタサイズのような単位長 の区分に分割され、連続区分が単一ディスクドライブの序列位置でなく、複数の ディスクドライブに順次書き込まれる。各ディスクを横断して記憶されたデータ の単位長即ち容量がストライプサイズとして参照される。このストライプサイズ は、データ転送特性及びアクセス時間に影響を及ぼして、一般にディスク配列の 往来データの転送を最適化するように選ばれる。もしデータブロックがn単位長 より長いならば、プロセスは、各ディスク・ドライブ上の次のストライプ位置毎 に繰り返される。この方法によってn物理的ドライブは、単−論理的デバイスに なり、ソフトウェア又はハードウェアのいずれかを通して実行されてもよい。In this stripe, consecutive data blocks have a unit length such as sector size. partitions, where consecutive partitions are not a single disk drive ordinal position, but multiple written sequentially to the disk drive. Data stored across each disk The unit length or capacity of is referred to as the stripe size. This stripe size generally affects the data transfer characteristics and access times of disk arrays. chosen to optimize the transfer of traffic data. If the data block is n units long If longer, the process runs every next stripe position on each disk drive. repeated. This method turns a physical drive into a single logical device. and may be implemented through either software or hardware.

ディスク配列サブシステムにおけるデータ保護及び回復用に形成するために用い た1つの技術がパリティスキームとして参照される。このパリティスキームでは 、配列内の種々のドライブに書き込まれるデータブロックが用いられ、公知の排 他的論理和(XOR)技術が配列内の予約即ちパリティ用ドライブに書き込まれ たパリティ情報を創るために用いられる。パリティスキームの利点は、配列内の データ冗長及び回復目的に専念するデータ記憶の量を最小にするために使われて もよいことである。例えば、図1は、3つのディスク即ちディスクO、ディスク 1及びディスク2がデータ記憶のために使われ、1つのディスク即ちディスク3 がパリティ情報を記憶するために使われる伝統的3+1マツピングスキームを説 明している。図1において、番号又は番号に結合した文字Pを囲む各長方形は、 好ましくは512バイトであるセクタに対応する。図1に示すように、各完全な ストライブは、ディスク毎にデータ記憶の合計12セクタのために各ディスクO 11及び2から4セクタを使う。512バイトの標準セクタサイズを仮定すると 、これらの各ディスクストライブのストライブサイズは、ストライブを備えた複 数のディスクの1つにストライブを割り当てられた記憶量として定義された2キ ロバイトである。このように、ストライブに割りあてられた各ディスクの部分の 合計を含む各完全なストライブが、データの6キロバイトを記憶することができ る。各ストライブのディスク3が、パリティ情報を記憶するために使われる。し かしながら、ディスク配列システムにおけるパリティ欠陥許容技術の使用に多く の不利なことがある。図1で説明された3+1マツピングスキームにとって1つ の不利なことは、データドライブが更新され或は書き込まれる毎に、パリティド ライブが更新されなければならないので、ディスク配列内の性能をロスすること である。データは、データドライブにデータを書込むのみでなく、パリティドラ イブに更新されたパリティ情報を書き込むためにXORプロセスを通過しなけれ ばならない。このプロセスは、分配されたパリティデータを持つことによって、 専念のパリティディスク上の負荷を救済して、部分的に軽減されるかもしれない 。しかしながらこれは全部のデータ書込操作の回数を減少しない。Used to configure for data protection and recovery in disk array subsystems. One technique is referred to as a parity scheme. In this parity scheme , data blocks written to different drives in the array are used, and the known exclusion An alternative or (XOR) technique is written to a reserved or parity drive within the array. It is used to create parity information. The advantage of the parity scheme is that the Used to minimize the amount of data storage dedicated to data redundancy and recovery purposes It's also a good thing. For example, FIG. 1 shows three disks: disk O, disk 1 and disk 2 are used for data storage, one disk namely disk 3 describes the traditional 3+1 mapping scheme used to store parity information. It's clear. In Figure 1, each rectangle surrounding a number or a letter P combined with a number is It corresponds to a sector which is preferably 512 bytes. As shown in Figure 1, each complete A stripe separates each disk O for a total of 12 sectors of data storage per disk. 11 and 2 to 4 sectors are used. Assuming a standard sector size of 512 bytes , the stripe size of each of these disk stripes is A 2-kilometer storage area defined as the amount of storage allocated to a stripe on one of the number of disks. It's Robite. In this way, the portion of each disk allocated to the stripe is Each complete stripe can store 6 kilobytes of data, including a total of Ru. Disk 3 of each stripe is used to store parity information. death However, the use of parity defect tolerance techniques in disk array systems is There may be disadvantages. One for the 3+1 mapping scheme illustrated in Figure 1 The disadvantage of this is that every time the data drive is updated or written to, the parity Loss of performance within the disk array as the live must be updated It is. Data is not only written to the data drive, but also to the parity drive. must go through an XOR process to write updated parity information to Must be. This process, by having distributed parity data, May be partially alleviated by relieving the load on a dedicated parity disk . However, this does not reduce the number of total data write operations.

パリティ欠陥許容技術にとって他の不利なことは、伝統的オペレーティング・シ ステム即ちオーニスが部分的ストライブ書込操作として参照されるディスク配列 のストライブサイズよりしばしば小さいディスクサブシステムに多くの小さい書 込を実行することである。例えば、多くの伝統的ファイルシステムは、ファイル システム内のファイル、ディレクトリ及び自由空間の構造を示すために、小さい データ構造を使う。代表的UN I Xファイルシステムにおいては、この情報 が一般にサイズで2キロバイトであるlN0DE又はiノードと言われた構造で 保持される。lN0DE即ちINDEX MODEは、データが配置される位置 、所有及び使用ユーザ、ファイルが修正又はアクセスされた最新時刻、MODE が修正された最新時刻及びリンク数又はそのlN0DEと協働したファイル名の ファイルのタイプ及びサイズに関する情報を含む。O5/2高性能フアイルシス テムでは、この構造がFNODEと言われる。これらの構造はファイルアクセス 及び修正日付及びファイルサイズ情報を含んでいるので、しばしば更新される。Another disadvantage to parity defect tolerant techniques is that traditional operating systems A disk arrangement where the stem or ornis is referred to as a partial stripe write operation. Many small writes on a disk subsystem that are often smaller than the stripe size of It is to carry out the For example, many traditional file systems use files such as A small display to show the structure of files, directories and free space in the system. Use data structures. In a typical UNIX file system, this information is a structure called lN0DE or inode, which is generally 2 kilobytes in size. Retained. lN0DE or INDEX MODE is the position where the data is placed , the owner and user, the most recent time the file was modified or accessed, the MODE The latest time and number of links that were modified or the file name that collaborated with that IN0DE. Contains information about file type and size. O5/2 high performance file system In systems, this structure is called an FNODE. These structures are file access It is updated frequently as it contains modification date and file size information.

これらの構造は、ディスク配列に使われた代表的データストライブサイズと比較 してかなり小さく、従って、部分的ストライプ書込操作が多くなる原因になる。These structures are compared to typical data stripe sizes used in disk arrays. is fairly small and therefore causes many partial stripe write operations.

部分的ストライプ書込操作が相当頻繁にディスク配列で発生した時には、後述さ れるように、ディスク上の現存のデータ又はパリティ情報が新規パリティ情報を 生成するために、ディスクから読出さなければならないので、ディスクサブシス テムの性能が深刻に縮小される。これは、ディスク・ドライブの余分な回転を生 じさせ、要求を実施する時間の遅れとなる。実操作の実施に要求される時間に加 えて、ディスクの同じセクタへのWRITE操作が追従するREAD操作はハー ド(固定)ディスク・ドライブのある形式で、1ディスク回転即ち約16.5ミ リ秒のロスとなることが認められる。When partial stripe write operations occur fairly frequently on a disk array, The existing data or parity information on disk will be replaced with the new parity information so that The disk subsystem must be read from disk in order to generate system performance is severely reduced. This creates extra spins on the disk drive. This will cause a delay in the time it takes to implement the request. In addition to the time required to perform the actual operation. In addition, a READ operation followed by a WRITE operation to the same sector of the disk is A type of fixed disk drive that rotates one disk revolution or approximately 16.5 millimeters. It is recognized that this will result in a loss of 2 seconds.

データの完全なストライブが配列に書き込まれる限り、パリティ情報は、ドライ ブ配列に書き込まれたデータから直接生成されてもよく、それ故、ディスクスト ライプのどんな余分な読出も必要とされない。しかしながら、問題は、前述され るようにディスク配列の制御器が完全なストライブのためにパリティを計算する ために書き込まれたデータから十分な情報を得られないので、コンピュータがデ ィスク配列に部分的ストライブのみを書き込む時に発生する。このように部分的 ストライプ書込操作は、一般に最初読み出され、ホストシステムで活性なプロセ スによって修正され、データディスク上の同じアドレスに書き戻される、ディス クに記憶されたデータを必要とする。この操作は、データディスクREAD、デ ータの修正及び同じアドレスへのデータディスクWRITEから成る。一般に部 分的ストライブ書込操作毎にパリティ情報を計算するために使われた2つの技術 がある。As long as a complete stripe of data is written to the array, parity information is may be generated directly from data written to disk arrays, and therefore No extra reading of the write is required. However, the problem is The disk array controller calculates parity for a complete stripe so that Because the computer cannot get enough information from the data written to the Occurs when writing only a partial stripe to a disk array. Partially like this A striped write operation is typically read first and is written by an active process on the host system. disk that is modified by the disk and written back to the same address on the data disk. requires data stored on the computer. This operation performs data disk READ, data disk consists of modifying the data and writing the data to the same address. generally Two techniques used to calculate parity information for each fractional stripe write operation There is.

第1の技術では、XORパリティ欠陥許容システムにおけるデータディスクへの 部分的ストライブ書込がパリティ欠陥許容まずコンピュータシステムは、更新さ れるデータディスクセクタ毎にパリティディスクからのパリティ情報及びデータ ディスクから置換される古いデータ値を読み出す。その後XORパリティ情報は 、古いデータセクタ同士を排他的論理和することによって、関連のパリティセク タを置換するホスト又はローカルプロセッサ又は専用ロジックによって再計算さ れる。これはそれらのデータ値なしでパリティ値を回復する。新規データ値は、 新規パリティデータを生成するために、この回復された値に排他的論理和される 。その後WRITEコマンドはデータディスクに更新されたデータを書込み、パ リティディスクに新規パリティ情報を書込んで実行される。このプロセスは、新 規XORパリティ情報の生成前に2つの追加の部分的セクタREAD操作即ちパ リティディスクからの読出と、古いデータの読出とが要求されることが認められ る。追加的にWRITE操作は丁度読出された位置にある。従ってデータ転送性 能に不利を招く。In the first technique, data disks are Partial stripe writes tolerate parity defects first when the computer system is updated parity information and data from the parity disk for each data disk sector Read old data values to be replaced from disk. After that, the XOR parity information is , the related parity sectors are recomputed by the host or local processor or dedicated logic that replaces the data. It will be done. This recovers parity values without their data values. The new data value is XORed with this recovered value to generate new parity data . The WRITE command then writes the updated data to the data disk and It is executed by writing new parity information to the parity disk. This process Two additional partial sector READ operations or parity operations are performed before generating the standard XOR parity information. It is recognized that reading from the security disk and reading old data is required. Ru. Additionally, a WRITE operation is at the position just read. Therefore data transferability This brings disadvantage to Noh.

第2の方法は、WRITE操作で置換されないという事実にもかかわらずストラ イブのために拒否できないデータの残りを読むことを必要とする。新規パリティ 情報は、回復された古い(旧)データ及び新規データを使って、更新している全 ストライプのために決定されてもよい。このプロセスは、置換すべきでないデー タのREAD操作と、パリティ情報をセーブするフル(全)ストライプWRIT E操作とを必要とする。The second method uses the strut despite the fact that it is not replaced in the WRITE operation. Eve needs to read the rest of the data which cannot be denied. new parity All information is updated using recovered old (old) data and new data. May be determined for stripes. This process identifies data that should not be replaced. Data READ operation and full stripe WRIT to save parity information E operation is required.

先行技術によると、ディスク配列を利用しているパリティ欠陥許容法は、部分的 ストライプWRITE操作を管理するために、上記技術の1つを実行しなければ ならなかった。それ故、部分的ストライブ書込は、書込まれなかったストライブ の残りがフェッチされなければならず、或は、ストライブのための現存のパリテ ィ情報がその情報の実害込より前に読出されなければならないので、システム効 率に害させた。従って、部分的ストライブ書込操作の回数を減少させるためには 、パリティ欠陥許容ディスク配列におけるディスクWRITE操作を実行する改 善された方法の必要性がある。According to the prior art, parity defect tolerance methods that utilize disk arrays are partially To manage striped WRITE operations, one of the techniques listed above must be performed. did not become. Therefore, a partial stripe write is a stripe write that was not written. must be fetched, or the existing parity for the stripe must be fetched. The system efficiency is reduced because the system information must be read before the information is actually corrupted. caused harm to the rate. Therefore, to reduce the number of partial stripe write operations, , a modification that performs a disk WRITE operation in a parity defect-tolerant disk array. There is a need for improved methods.

ディスク・ドライブ゛のバックグラウンドでフォーマット化が適切であると思わ れる。また製造業者は、ディスク・ドライブが生産又は製作される時に、ディス クを低レベルにフォーマット化している。低レベルフォーマット操作は、セクタ の形成と共に、フォーマット化の完了後にセクタを同定するために使われるそれ らのアドレスのマーク化を伴う。セクタのデータ部分が確立されて、ダミーのデ ータが満たされる。ディスク・ドライブユニットがコンピュータシステムと協働 した時には、ディスク制御器及びコンピュータシステムを管理する各オーニスが ディスク・ドライブの高レベル即ち論理的フォーマットを形成して、ディスクに 「ファイルシステム」を位置させて、ディスク・ドライブを標準のオーニスに合 わせるようにしなければならない。この高レベルのフォーマット化は、[メイク ファイルシステム」プログラムとして参照されるオーニスサービスと関連して各 ディスク制御器によって実行される。UNIXオーニスでは、メイクファイルシ ステムプログラムは、ディスク配列上のファイルシステムを創るために、ディス ク制御器と関連して働く。伝統的システムでは、オーニスがブロック又はセクタ の連続リストとしてディスクを考察し、メイクファイルシステムプログラムがこ れらブロックのトポロジーに関して意識しない。It seems appropriate to format the disk drive in the background. It will be done. Manufacturers also require that the disk drive be is formatted to a low level. Low-level formatting operations are performed on sectors It is used to identify sectors after formatting is complete, along with the formation of with marking of their addresses. The data part of the sector is established and the dummy data data is filled. Disk drive unit collaborates with computer system When each ornis that manages the disk controller and computer system Forms the high-level or logical format of a disk drive and stores it on a disk. Position the “File System” and fit the disk drive into a standard ornis. We have to make sure that we let them do it. This high-level formatting is Each file system is associated with an ornis service referred to as a "file system" program. Executed by the disk controller. On UNIX ornis, the make file system The system program uses the disk array to create a file system on the disk array. It works in conjunction with the controller. In traditional systems, ornis is a block or sector. The makefile system program considers the disk as a contiguous list of They are not aware of the topology of these blocks.

発明の開示 本発明は、ディスク配列サブシステムを持つコンピュータシステムにおけるディ スク性能を改善する方法及び装置を指向する。本発明に従った方法においては、 ディスク配列がデータストライブの可変サイズを持つある指定領域を含む不均一 マツピングスキームが使われる。このディスク配列は、ファイルシステムで頻繁 に用いられる内部データ構造のサイズと殆ど同じであるストライブサイズを持つ 複数のデータストライブからなる領域と、一般のデータ記憶のために使われるよ り大きいストライブサイズを持つ複数のデータストライブを含む領域とを含む。Disclosure of invention The present invention provides disk storage in a computer system having a disk array subsystem. The present invention is directed to methods and apparatus for improving disk performance. In the method according to the invention, A non-uniform disk array containing some designated area with variable size of data stripes A mapping scheme is used. This disk array is frequently used in file systems. has a stripe size that is almost the same as the size of the internal data structures used in A region consisting of multiple data stripes and a region used for general data storage. A region containing multiple data stripes with a larger stripe size.

小さいデータ構造の1つを伴って書込操作が発生する時には、好ましくはそのデ ータ構造は、完全なストライブサイズがデータ構造のサイズと一致したディスク 配列における小さいストライブ領域にマツプされる。この様にファイルシステム データ構造が更新する時にはいつでも、操作がフルなストライブ書込である。こ れは部分的ストライブ書込操作の回数を減少させ、かくして、これらの操作と関 連する性能不利益も減少させる。When a write operation occurs involving one of the small data structures, preferably The data structure is a disk whose complete stripe size matches the size of the data structure. Maps to a small stripe region in the array. File system like this Whenever a data structure is updated, the operation is a full stripe write. child This reduces the number of partial stripe write operations and thus reduces the number of The associated performance penalty is also reduced.

本発明のより良い理解は、以下の好ましい実施例の詳細な記述が添付図面ととも に熟慮される時に得ることができる。A better understanding of the invention may be obtained from the following detailed description of the preferred embodiments, taken together with the accompanying drawings. It can be obtained when you think about it.

図面の簡単な説明 図1は、均一 ストライプサイズを持つ伝統的3+1デイスク配列マツピングス キームの先行技術図である。Brief description of the drawing Figure 1 shows a traditional 3+1 disk array mapping with uniform stripe size. It is a prior art diagram of Keim.

図2及び3は、本発明の方法が実施されてもよい記述的コンピュータシステムの ブロック図である。2 and 3 illustrate a descriptive computer system in which the method of the invention may be implemented. It is a block diagram.

図4は、好ましい実施例のディスクサブシステムのブロック図である。FIG. 4 is a block diagram of the disk subsystem of the preferred embodiment.

図5は好ましい実施例による図4の転送制御器の機能的ブロック図である。FIG. 5 is a functional block diagram of the transfer controller of FIG. 4 in accordance with a preferred embodiment.

図6は、第1の実施例による可変サイズのストライブを持つ3+1ディスク配列 マツピングスキームの図である。FIG. 6 shows a 3+1 disk array with variable size stripes according to the first embodiment. FIG. 2 is a diagram of a mapping scheme.

図7は、本発明の第2の実施例による可変ストライブサイズを持つRAID5  3+1ディスク配列マツピングスキームの図である。FIG. 7 shows RAID5 with variable stripe size according to the second embodiment of the present invention. FIG. 3 is a diagram of a 3+1 disk array mapping scheme.

図8は発明の好ましい実施例による4+1ディスク配列マツピングスキームの図 である。FIG. 8 is a diagram of a 4+1 disk array mapping scheme according to a preferred embodiment of the invention. It is.

図9は本発明の方法によるWRITE操作のフローチャート図である。FIG. 9 is a flowchart diagram of a WRITE operation according to the method of the present invention.

図10は、本発明の方法によるREAD操作のフローチャート図である。FIG. 10 is a flowchart diagram of a READ operation according to the method of the present invention.

発明を実施するための最良の形態 以下に記述されたコンピュータシステム及びディスク配列サブシステムは本発明 の好ましい実施例を代表している。勿論、以下に記述されたシステムの能力を持 たない他のコンピュータシステムが本発明を実施するために用いることが予想さ れる。BEST MODE FOR CARRYING OUT THE INVENTION The computer system and disk array subsystem described below are of the invention. represents a preferred embodiment. Of course, if you have the capabilities of the system described below, It is anticipated that other computer systems may be used to implement the invention. It will be done.

合図2及び3を参照して、文字Cは、一般に本発明が実施されてもよいコンピュ ータシステムを明示している。明確化のためにシステムCは、丸数字1から8で 参照される相互接続部を有する図2及び3の2つの部分で示される。システムC は4つのバスを経て相互接続される多くのブロック要素を含む。With reference to signals 2 and 3, the letter C generally refers to a computer on which the invention may be implemented. The data system is clearly specified. For clarity, System C is designated by circled numbers 1 through 8. It is shown in two parts in FIGS. 2 and 3 with referenced interconnects. System C contains a number of block elements interconnected via four buses.

中央処理ユニッ1−CPUは、システムプロセッサバス26に接続されたシステ ムプロセッサ20と、数値コプロセッサ22と、キャッシュメモリ制御器24と 、関連のロジック回路とを備える。キャッシュ制御器24には、高速キャッシュ データランダムアクセスメモリ (RAM)28、非キャッシュ化メモリアドレ ス(NCA)マツププログラミングロジック回路30、非キャッシュ化アドレス 又はNCAメモリマツプ32、アドレス交換ラッチ回路34、データ交換トラン シーバ36及びページヒツト検知ロジック43が協働する。またCPUには、シ ステムプロセッサ用意ロジック回路38、次のアドレス(NA)イネーブルロジ ック回路40及びバス要求ロジック回路42が協働する。Central processing unit 1 - CPU is a system processor connected to system processor bus 26. a system processor 20, a numerical coprocessor 22, and a cache memory controller 24. , and associated logic circuits. The cache controller 24 includes a high-speed cache. Data random access memory (RAM) 28, non-cached memory address (NCA) map programming logic circuit 30, non-cached address Or NCA memory map 32, address exchange latch circuit 34, data exchange transformer Seaver 36 and page hit detection logic 43 cooperate. Also, the CPU has System processor preparation logic circuit 38, next address (NA) enable logic The bus request logic circuit 40 and the bus request logic circuit 42 cooperate.

システムプロセッサは、好ましくはインテル社80386マイクロプロセツサで ある。システムプロセッサ2oは、システムプロセッサバス26にインタフェー スされた制御、アドレス及びデータラインを持っている。コプロセッサ22は、 好ましくはローカルプロセッサバス26及びシステムプロセッサ2゜に公知方法 でインタフェースしているインテル80387又はウェイチック社のWTL31 67数値プロセッサである。キャッシュRAM28は、好ましくは必要とされた キャッシュメモリ操作を実行するために、キャッシュ制御器24の制御下でバス 26のアドレス及びデータ要素とインタフェースする好適に高速の静的ランダム アクセスメモリである。キャッシュ制御器24は、好ましくは2ウエイセツト・ アソシアチブ・マスタモードで動作するようにコンフィギユレーションされたイ ンテル82385キヤツシユ制御器である。好ましい実施例では、構成要素が各 ユニットの33MHzバージョンである。所望ならば、インテル80486マイ クロプロセツサ及び外部のキャッシュメモリシステムが80386、数値コプロ セッサ、82385及びキャッシュRAMを置換してもよい。アドレスラッチ回 路34及びデータトランシーバ36は、プロセッサ2oと共にキャッシュ制御器 24にインタフェースして、プロセッサバス26及びホスト又はメモリバス44 間をインターフェイスするローカルバスを形成する。回路38は、バス26への アクセスを制御し、次のサイクルを始める時を指示するバス用意信号を供給する ロジック回路である。イネーブル回路40は、パイプラインアドレスモードにお けるサブシステム要素によって利用されるべきデータ又はコードの次のアドレス がローカルバス26に置かれてもよいことを指示するために利用される。The system processor is preferably an Intel 80386 microprocessor. be. System processor 2o interfaces to system processor bus 26. It has controlled control, address and data lines. The coprocessor 22 is Preferably, the local processor bus 26 and the system processor 2 are connected in a known manner. Intel 80387 or Waychik WTL31 interfaced with 67 numerical processor. Cache RAM 28 is preferably required bus under the control of cache controller 24 to perform cache memory operations. Preferably fast static random interface with 26 address and data elements It is access memory. Cache controller 24 preferably has a two-way set An instance configured to operate in associative master mode. Intel 82385 cache controller. In a preferred embodiment, each component This is the 33MHz version of the unit. Intel 80486 my 80386, numerical coprocessor and external cache memory system The processor, 82385 and cache RAM may be replaced. address latch times A cache controller 34 and a data transceiver 36 together with the processor 2o 24, a processor bus 26 and a host or memory bus 44. form a local bus that interfaces between Circuit 38 connects bus 26 to Controls access and provides bus ready signals to indicate when to start the next cycle It is a logic circuit. Enable circuit 40 is in pipeline address mode. the next address of data or code to be used by the subsystem element is used to indicate that the local bus 26 may be placed on the local bus 26.

非キャッシュ化メモリアドレス(NCA)マツププログラマ30は、プロセッサ 20及び非キャッシュ化アドレスメモリ32と協働して、非キャッシュ化メモリ 位置をマツプする。非キャッシュ化アドレスメモリ32は、種々の型のキャッシ ュコヒーレンジ問題を回避するために非キャッシュ化されるシステムメモリの領 域を指定するために利用される。バス要求ロジック回路42は、要求されたデー タがキャッシュメモリ28に位置せず、システムメモリへのアクセスが必要とさ れる時のような状況でホストバス44へのアクセスを要求するために、プロセッ サ20及び関連の要素によって利用される。A non-cached memory address (NCA) map programmer 30 is a processor 20 and non-cached address memory 32, the non-cached memory Map your location. Uncached address memory 32 includes various types of caches. areas of system memory that are uncached to avoid cache coherence problems. Used to specify the area. The bus request logic circuit 42 receives the requested data. is not located in cache memory 28 and requires access to system memory. To request access to host bus 44 in situations such as when 20 and related elements.

主メモリ配列即ちシステムメモリ58はホストバス44に結合される。主メモリ 配列58は、好ましくはダイナミック・ランダムアクセスメモリである。メモリ 58はEISAパスバッファ(EBB)データバッファ回路60、メモリ制御回 路62及びメモリマツパ68を経てホストバス44にインタフェースする。この バッファ60は、データを転送しパリティを生成及び検査する機能を実行する。A main memory array or system memory 58 is coupled to host bus 44 . main memory Array 58 is preferably a dynamic random access memory. memory 58 is an EISA pass buffer (EBB) data buffer circuit 60 and a memory control circuit. 62 and memory mapper 68 to host bus 44 . this Buffer 60 performs the functions of transferring data and generating and checking parity.

メモリ制御器62及びメモリマツパ68はアドレスマルチプレクサ及びコラムア ドレスストローブ(ADDR/CAS)バッファ66及び7リアドレスストロー ブ(RAS)イネーブルロジック回路64を経由してメモリ58にインタフェー スする。The memory controller 62 and memory mapper 68 include an address multiplexer and a column addressr. Address strobe (ADDR/CAS) buffer 66 and 7 rear address strobe Interfaces to memory 58 via RAS enable logic circuit 64. To do so.

図面において、システムCは、プロセッサバス26又はホストバス44、拡張型 産業標準アーキテクチャ(EISA)バス46 (図3)及びXバス90(図3 )を持つものとして形成される。図3に示され以下に詳述されないシステムの部 分の詳細は、充分にコンフィグされたコンピュータシステムの例を説明したもの より本発明にとって重要でない。図3に示されたシステムCの部分は、必要なE ISAバス46、EISAバス制御器48EBBデータバッファ50及びアドレ スラッチ及びバッファ52として参照するEISAバス46及びホストバス44 間をインタフェースするデータラッチ及びトランシーバを含む必須的に形成され たEISAシステムである。また、図2には、EISA基準のコンピュータシス テムで使われた数々の要素と協働する集積されたシステム周辺機器(ISP)5 4が示される。In the drawings, system C includes processor bus 26 or host bus 44, an extended Industrial Standard Architecture (EISA) bus 46 (Figure 3) and X bus 90 (Figure 3) ). Parts of the system shown in Figure 3 and not detailed below The details describe an example of a fully configured computer system. less important to the invention. The part of system C shown in FIG. ISA bus 46, EISA bus controller 48 EBB data buffer 50 and address EISA bus 46 and host bus 44 referred to as slatch and buffer 52 The data latches and transceivers that interface between It is an EISA system. Figure 2 also shows the EISA standard computer system. An integrated system peripheral (ISP) that works with a number of elements used in the system5 4 is shown.

集積されたl5P54は、プロセッサ20へのアクセスを必要としないで、主メ モリ58 (図1)又はEISAスロットに差し込まれるメモリ及び入力/出力 (Ilo)位置間のアクセスを制御するために直接メモリアクセス制御器56を 含む。また、l5P54は、割込み制御器70、マスクされない割込みロジック 72及び割込み信号の制御を許容し、EISA仕様書及び従来の慣習に従った方 法で必要なタイミング信号及びウェイト状態を発生するシステムタイマ74を含 む。好ましい実施例では、割込み要求を発生したプロセッサが、従来のインテル 8259割込み制御器をエミュレートし、拡張した2つの割り込み制御回路を経 由して制御される。また、l5P54はバス制御器48と協力して、EISAバ ス46に配置されるキャッシュ制御器24、DMA制御器56及びバスマスクデ バイスによるEISAバス46用の種々の要求間で制御し仲介するバス仲介ロジ ック75を含む。The integrated I5P54 provides access to the main system without requiring access to the processor 20. Memory and input/output inserted into memory 58 (Figure 1) or EISA slot (Ilo) direct memory access controller 56 to control access between locations; include. Also, l5P54 is the interrupt controller 70, unmasked interrupt logic. 72 and interrupt signals and comply with EISA specifications and conventional practices. The system includes a system timer 74 that generates the timing signals and wait states required by the method. nothing. In the preferred embodiment, the processor that generated the interrupt request is a traditional Intel It emulates the 8259 interrupt controller and goes through two extended interrupt control circuits. controlled by The l5P54 also cooperates with the bus controller 48 to The cache controller 24, DMA controller 56 and bus mask device located in the bus 46 A bus mediation logic that controls and mediates between the various requests for the EISA bus 46 by devices. 75.

78と、ISA及びEISAデータ・バス80及び82とを含み、EISAバス 46からISA制御制御バス上6力してXバス90を経てインタフェースされる 。Xバス90のための制御及びデータ/アドレス転送は、Xバス制御ロジック9 2、データバッファ94及びアドレスバッファ96によって容易にされる。78 and ISA and EISA data buses 80 and 82; 46 on the ISA control bus and interfaced via the X bus 90. . Control and data/address transfers for the XBus 90 are provided by the XBus control logic 9. 2, facilitated by data buffer 94 and address buffer 96.

Xバスには好適なキーボード及びマウスをコネクタ100及び102を経由して Xバス90に各々インタフェースするキーボード/マウス制御器98のような種 々の周辺デバイスが取付けられる。またXバスには、システムCおよびシステム ビデオ操作のために基本操作ソフトウェアを含む読出専用メモリ即ちROM回路 106が取付られる。また、直列通信ボート108は、Xバス90を経てシステ ムCに接続している。ブロック回路110には、フロッピ・ディスクサポート、 並列ポート、第2の直列ポート及びビデオサポート回路がある。A suitable keyboard and mouse are connected to the X-bus via connectors 100 and 102. Species, such as keyboard/mouse controllers 98, each interface to an X bus 90. Various peripheral devices are attached. The X bus also includes system C and system Read-only memory or ROM circuit containing basic operating software for video operation 106 is attached. Further, the serial communication boat 108 connects to the system via the X bus 90. connected to system C. The block circuit 110 includes a floppy disk support, There is a parallel port, a second serial port and video support circuitry.

コンピュータシステムCは、ディスク配列制御器112、固定ディスクコネクタ 114及び固定ディスク配列116を含むディスクサブシステム111を含む。Computer system C includes a disk array controller 112 and a fixed disk connector. 114 and a fixed disk array 116 .

ディスク配列制御器112はEISAバス46に好ましくはスロットによって接 続されて、EISAバス46を通してデータ及びアドレス情報を通信する。固定 ディスクコネクタ114はディスク配列制御器112に接続し、順に固定ディス ク配列116に接続している。Disk array controller 112 is connected to EISA bus 46, preferably by a slot. are connected to communicate data and address information through the EISA bus 46. fixed Disk connector 114 connects to disk array controller 112, which in turn connects to fixed disks. is connected to the network array 116.

今図4を参照して、本発明の詳細な説明するために使われたディスクサブシステ ム111が示される。ディスク配列制御器112は、好ましくはインテル801 86のローカルプロセッサ130を持っている。このローカルプロセッサ130 は多重化されたアドレス/データバスUAD及び制御出力UCを持っている。多 重化されたアドレス/データバスUADは、出力がローカルプロセッサデータ・ バスUDであるトランシーバ132に接続している。また、多重化されたアドレ ス/データバスUADは、Q出力がローカルプロセッサアドレス・バスUAを形 成するラッチ134のD入力にも接続している。ローカルプロセッサ130は、 多重化されたアドレス/データバスUAD及びアドレスデータ・バスUAを経て 結合されるランダムアクセスメモリ (RAM)136と協働する。RAM13 6は適切なタイミング信号を展開するために、プロセッサ制御バスUCに接続し ている。同様に読出専用メモリ (ROM)138は、多重化されたアドレス/ データバスUAD、プロセッサアドレス・バスUA及びプロセッサ制御バスUC に接続している。このように、ローカルプロセッサ130は、そのデータ記憶用 及び操作を制御するために自前の局所メモリを持っている。プログラムできる配 列ロジック(PAL)デバイス140は、ディスク配列制御器112で利用され た追加の制御信号を展開するために、ローカルプロセッサ制御バスUCに接続し ている。Referring now to FIG. 4, the disk subsystem used to provide a detailed description of the present invention. 111 is shown. Disk array controller 112 is preferably an Intel 801 It has 86 local processors 130. This local processor 130 has a multiplexed address/data bus UAD and control outputs UC. Many The duplicated address/data bus UAD provides outputs for local processor data and It is connected to transceiver 132, which is bus UD. Also, multiplexed addresses address/data bus UAD whose Q output forms the local processor address bus UA. It is also connected to the D input of the latch 134. The local processor 130 is Via multiplexed address/data bus UAD and address data bus UA It cooperates with an associated random access memory (RAM) 136. RAM13 6 connects to the processor control bus UC to develop the appropriate timing signals. ing. Similarly, read-only memory (ROM) 138 stores multiplexed addresses/ Data bus UAD, processor address bus UA and processor control bus UC is connected to. In this way, local processor 130 has a and has its own local memory to control operations. Programmable arrangement A column logic (PAL) device 140 is utilized in the disk array controller 112. connected to the local processor control bus UC to deploy additional control signals. ing.

また、ローカルプロセッサアドレス・バスUA、ローカルプロセッサデータ・バ スUD及びローカルプロセッサ制御バスUCは、バスマスクインターフェイス制 御器(BMIC)142に接続している。8MIC142はEISA又はMCA バスのような標準バスにディスク配列制御器112をインタフェースする機能を 提供し、バスマスタとして作用する。好ましい実施例では、8MIC142がE ISAバス46にインタフェースされるインテル82355である。このように 8MIC142は、ローカルプロセッサバスUA、UD及びUCとの接続によっ てローカルプロセッサ130にインタフェースして、データ及び制御情報がホス トシステムC及びローカルプロセッサ130間で通過することができる。Also, local processor address bus UA, local processor data bus bus UD and local processor control bus UC are bus mask interface based. It is connected to the controller (BMIC) 142. 8MIC142 is EISA or MCA The ability to interface the disk array controller 112 to a standard bus such as and act as a bus master. In the preferred embodiment, 8 MIC142 An Intel 82355 interfaced to ISA bus 46. in this way 8MIC142 is connected to local processor buses UA, UD and UC. interfaces to the local processor 130 so that data and control information can be can be passed between host system C and local processor 130.

更に、ローカルプロセッサデータ・バスUD及びローカルプロセッサ制御バスU Cは好ましくは転送制御器144に接続されている。一般に転送制御器144は 、ディスク配列制御器112にある種々の他のデバイス及び転送バッファRAM 146間でデータを転送するために用いられた特殊化されたマルチチャンネル直 接メモリアクセス(DMA)制御器である。例えば転送制御器144はBMIC データラインBD及びBMIC制御ラインうCによって8MIC142に接続さ れる。このように、このインターフェイス上でREAD操作が要求されるならば 、転送制御器144は、転送バッファRAM146から8MIC142にデータ を転送することができる。WRITE操作が要求されるならば、データは、8M IC142から転送バッファRAM146に転送することができる。その後転送 制御器144は、転送バッファRAM146からディスク配列116にこの情報 を渡すことができる。転送制御器144は、米国出願第431,735号及び欧 州対応の1991年4月4日に公開された欧州特許出願公開番号0427119 でより詳細に記述され、これらをここに参照する。Additionally, a local processor data bus UD and a local processor control bus U C is preferably connected to transfer controller 144. Generally, the transfer controller 144 , various other devices in disk array controller 112 and transfer buffer RAM. A specialized multi-channel direct link used to transfer data between It is a direct memory access (DMA) controller. For example, the transfer controller 144 is a BMIC Connected to 8MIC142 by data line BD and BMIC control line C It will be done. Thus, if a READ operation is requested on this interface , the transfer controller 144 transfers data from the transfer buffer RAM 146 to the 8MIC 142. can be transferred. If a WRITE operation is requested, the data is 8M It can be transferred from the IC 142 to the transfer buffer RAM 146. then transfer Controller 144 transfers this information from transfer buffer RAM 146 to disk array 116. can be passed. Transfer controller 144 is described in U.S. Application No. 431,735 and European patent application publication number 0427119 published on April 4, 1991 corresponding to the state These are described in more detail in , and are referred to here.

転送制御器144は、ディスクデータ・バスDD及びディスクアドレス・バス及 び制御バスDACを含む。ディスクアドレス及び制御バスDACは、固定ディス クコネクタ114の部分である2つのバッファ165及び166に接続して、転 送制御器144及びディスク配列116間で制御信号を授受するために用いる。The transfer controller 144 includes a disk data bus DD and a disk address bus. and control bus DAC. The disk address and control bus DAC is a fixed disk Connector 114 is connected to two buffers 165 and 166 for transfer. It is used to exchange control signals between the transmission controller 144 and the disk array 116.

ディスクデータ・バスDDは、固定ディスクコネクタ114の部分である2つの データトランシーバ148及び150に接続している。トランシーバ148及び 転送ノ<・ノファ146の出力が、2つのディスク・ドライブポートコネクタ1 52及び154に接続している。同様のファッションにおいて2つのコネクタ1 60及び162はトランシーバ150及びノ(・ノファ166の出力に接続して いる。2つのハードディスクは、各コネクタ152.154.160及び162 に接続することができる。このように、8つまでのディスク・ドライブは転送制 御器144に接続及び結合することができる。後述するように、好ましい実施例 では、5つのディスク・ドライブは、転送制御器144に結合されて、4+1マ ツピングスキームが使われる。Disk data bus DD includes two Connected to data transceivers 148 and 150. Transceiver 148 and The output of the transfer port 146 is connected to the two disk drive port connectors 1. 52 and 154. Two connectors 1 in similar fashion 60 and 162 are connected to the outputs of transceiver 150 and 166. There is. Two hard disks are connected to each connector 152.154.160 and 162 can be connected to. In this way, up to eight disk drives can be transferred The controller 144 can be connected and coupled to the controller 144 . As discussed below, preferred embodiments In this case, five disk drives are coupled to transfer controller 144 to form a 4+1 disk drive. A tuping scheme is used.

記述的ディスク配列システム112においては、互換性ポート制御器CPC16 4がEISAバス46にも接続している。In descriptive disk array system 112, compatibility port controller CPC16 4 is also connected to the EISA bus 46.

CPC164は、互換性データラインCD及び互換性制御ラインCCに亙って転 送制御器144に接続している。そこでCPC164は、EISA特定の空間上 にアドレスされて、非常に高いスルーブツトを許容するディスク配列制御器11 2及びその8MIC142を持たない従来のコンピュータシステムのために書か れたソフトウェアがソフトウェアの書き直しを要求しないで操作できるように形 成される。このように、CPC164は、ハードディスクとのインタフェースに 既に利用した種々の制御ポートをエミュレートする。The CPC 164 transfers across the compatibility data line CD and the compatibility control line CC. It is connected to the transmission controller 144. Therefore, CPC164 is a disk array controller 11 that is addressed to allow very high throughput. 2 and its 8 written for legacy computer systems that do not have MIC142. formatted software so that it can operate without requiring software rewrites. will be accomplished. In this way, the CPC 164 interfaces with the hard disk. Emulate the various control ports you have already used.

今図5を参照して、転送制御器144は、それ自身一連の分離回路ブロックを含 む。転送制御器144は、RAM制御器170及びディスク制御器172として 参照される2つのメイン・ユニットを含む。RAM制御器170は、転送バッフ ァRAM146へのアクセスを持つ種々のインターフェイスデバイスを制御する ためのアービタと、データが転送バッファRAM146を行き来できるようにす るマルチプレクサとを持っている。Referring now to FIG. 5, transfer controller 144 itself includes a series of separate circuit blocks. nothing. The transfer controller 144 functions as a RAM controller 170 and a disk controller 172. Contains two main units referenced. The RAM controller 170 has a transfer buffer. control various interface devices that have access to the RAM 146 and an arbiter for data transfer to and from the transfer buffer RAM 146. It has a multiplexer.

同様に、ディスク制御器172は、種々のデバイスのどれが集積ディスクインタ ーフェイス174へのアクセスを持つかを決定するアービタを含み、データが集 積ディスクインターフェイス174を通して前後に適切に転送できる能力を多重 化することを含む。Similarly, disk controller 172 determines which of the various devices are integrated disk interfaces. - Contains an arbiter to determine who has access to the face 174, and where the data is collected. multiplexing capabilities for proper forward and backward transfer through the product disk interface 174. including becoming

転送制御器144は、好ましくは7つのDMAチャンネルを含む。1つのDMA チャンネル176は、BMIC142と協力するために割り当てされる。第2の DMAチャンネル178は、CPC164と協働するために設計される。これら の2つのデバイス即ちBMIC142及びバス互換性ポート制御器164は、そ れらの適切なりMAチャンネル176及び178及びRAM制御器170を通し て転送バッファRAM146にのみ結合される。BMIC142及び互換性ポー ト制御器164は集積ディスクインターフェイス174及びディスク配列116 への直接アクセスを持っていない。ローカルプロセッサ130(図3)は、ロー カルプロセッサDMAチャンネル180を通してRAM制御器170に接続され 、ローカルプロセッサディスクチャンネル182を通してディスク制御器172 に接続されている。このように、要望されるように、ローカルプロセッサ130 は、転送バッファRAM146及びディスク配列116に接続している。Transfer controller 144 preferably includes seven DMA channels. 1 DMA Channel 176 is assigned to cooperate with BMIC 142. second DMA channel 178 is designed to work with CPC 164. these The two devices, BMIC 142 and bus compatibility port controller 164, through their appropriate MA channels 176 and 178 and RAM controller 170. and is coupled only to the transfer buffer RAM 146. BMIC142 and compatible port The controller 164 has integrated disk interface 174 and disk array 116. do not have direct access to. Local processor 130 (FIG. 3) is connected to the RAM controller 170 through a processor DMA channel 180. , the disk controller 172 through the local processor disk channel 182. It is connected to the. Thus, as desired, the local processor 130 is connected to transfer buffer RAM 146 and disk array 116.

更に、転送制御器144は、情報が個々に同時にディスク配列A及びRAM14 6の間で通過できる4つのDMA/ディスクチャンネル184.186.188 及び190を含む。また、第4のDMA/ディスクチャンネル190は、パリテ ィ操作がローカルプロセッサ130での計算を必要としないで、転送制御器14 4で容易に実行することができるように、排他的論理和能力を含むことが注目さ れる。上記コンピュータシステムC及びディスク配列サブシステム111は、本 発明の方法の実施のために好ましいコンピュータシステムを代表する。Further, the transfer controller 144 may individually and simultaneously transfer information to the disk array A and the RAM 14. 6 DMA/disk channels that can pass between 184.186.188 and 190. Additionally, the fourth DMA/disk channel 190 has a parity transfer controller 14 without requiring calculations on local processor 130. It is noted that it includes an exclusive-or capability so that it can be easily implemented in It will be done. The computer system C and the disk array subsystem 111 are 2 represents a preferred computer system for implementing the method of the invention.

コンピュータシステムCは、他のオーニスが使われてもよいが、好ましくは、U NIXオーニスを利用する。背景に記述されたように、UNIXオーニスは、メ イクファイルシステムプログラムとして参照されたサービスを含む。好ましい実 施例では、メイクファイルシステムプログラムは、lN0DEが創られた数及び lN0DEのサイズに関する情報をディスク制御器112に供給する。選択的に メイクファイルシステムは、小さいストライプ及び大きいストライプ領域におけ る所望のストライプサイズと、これらの領域を分割する境界とに関する情報をデ ィスク制御器112に知らせるに十分な知能を含む。既に述べたように、lN0 DEの数は、システムに許されるべきファイルの数に略等しい。ディスク配列制 御器112は、この情報を配列116を備えた各ディスク上にファイルシステム を展開するために用いる。Computer system C is preferably U, although other ornis may be used. Use NIX ornis. As mentioned in the background, UNIX ornis Includes services referred to as file system programs. favorable fruit In the example, the makefile system program determines the number and number of lN0DEs created. Information regarding the size of the IN0DE is provided to the disk controller 112. selectively The makefile system supports small stripe and large stripe areas. information about the desired stripe size and the boundaries dividing these areas. Contains sufficient intelligence to inform disk controller 112. As already mentioned, lN0 The number of DEs is approximately equal to the number of files that should be allowed in the system. Disk arrangement system Controller 112 stores this information in a file system on each disk with array 116. Used to expand.

ディスク配列制御器112は、ディスク配列116を小さいストライプ及び大き いストライブ領域に区画する本発明に従う多重マツピングスキームを用いる。小 さいストライブ領域は、好ましくは各ディスクの第1のNセクタを占有して、l N0DEデータ構造のために予約され、配列における残りのストライプが、デー タ記憶用に用いられる自由空間を備えた大きいストライブ領域を形成する。それ 故、好ましい実施例では、ディスク制御器112は、小さいストライプ領域用に 、配列における各ディスクの第1のNセクタを割りあてる。各ディスクの残りの セクタが、大きいストライブ領域にフォーマット化される。ディスク配列制御器 112は、RAM136における小さいストライプ及び大きいストライブ領域を 分割する境界を記憶する。その後lN0DEデータ構造が各ディスクに書き込ま れる時には、ディスク配列制御器112はこの境界を利用して、配列116の小 さいストライプ部分にlN0DEを書き込む。Disk array controller 112 divides disk array 116 into small stripes and large stripes. We use a multiple mapping scheme according to the invention that partitions into striped regions. small The small stripe area preferably occupies the first N sectors of each disk and Reserved for the N0DE data structure, the remaining stripes in the array Creates a large stripe area with free space used for data storage. that Therefore, in the preferred embodiment, the disk controller 112 is configured for small stripe areas. , allocate the first N sectors of each disk in the array. the rest of each disk Sectors are formatted into large striped areas. disk array controller 112 represents the small stripe and large stripe areas in RAM 136. Remember the dividing boundary. The lN0DE data structure is then written to each disk. disk array controller 112 uses this boundary to limit the size of array 116. Write lN0DE to the small stripe portion.

この様に、lN0DEが更新する時はいつでも、結果の操作がフルなストライプ 書込である。これは、既に述べたように、部分的ストライプ書込操作は一般に先 行する読出操作を必要とし、性能を減少するので、システム性能を増大させる。In this way, whenever lN0DE updates, the resulting operation is a full stripe. This is writing. This is because, as already mentioned, partial stripe write operations are generally This increases system performance because it requires additional read operations and reduces performance.

本発明の代わりの実施例では、小さいストライブ領域が各ディスクの第1のNセ クタを占有しないが、むしろ小さいストライブ領域が、大きいストライプ領域間 に散在させられた複数の領域を含む。In an alternative embodiment of the invention, a small stripe area is located in the first N sections of each disk. Rather, small stripe regions occupy space between large stripe regions. Contains multiple areas scattered throughout.

この実施例では、小さいストライプ及び大きいストライブ領域を分割する複数の 境界は、ディスク制御器112が小さいストライブ領域にlN0DEデータ構造 を書き込むことができるように、RAM136に記憶される。In this example, there are multiple stripes dividing the small stripe and large stripe area. The boundary is that the disk controller 112 places the lN0DE data structure in the small stripe area. is stored in the RAM 136 so that it can be written.

本発明の代わりの実施例でO5/2オーニスは使われる。この実施例では、上述 されたメイクファイルシステムプログラムに類似したO5/2サービスは、FN ODEが創られた数及びFNODEのサイズに関する情報をディスク制御器11 2に供給する。その後ディスク制御器は、上述されたものに類似した多重マツピ ングスキームを用いて、ディスク配列116を小さいストライプ及び大きいスト ライブ領域に分割し、小さいストライブ領域がFNODEデータ構造のための予 約である。本発明がどの種類のオーニスまたはファイルシステムとともに操作で きることは注目される。In an alternative embodiment of the invention, an O5/2 ornis is used. In this example, the above The O5/2 service, which is similar to the makefile system program created by FN Information regarding the number of ODEs created and the size of the FNODE is sent to the disk controller 11. Supply to 2. The disk controller then uses multiple map pins similar to those described above. The disk array 116 is divided into small stripes and large strips using a Split into live regions, with a small stripe region reserved for the FNODE data structure. It is about. What kind of ornis or file system can the invention operate with? What you can do will get noticed.

図1を再び参照して2キロバイトのサイズを持つlN0DEデータ構造が先行技 術による2キロバイトの均一ディスクストライプサイズを持つディスク配列の例 えばストライプ0に書き込まれる時には、全lN0DEがディスク0のセクタ0 .1.2及び3に書き込まれ、ディスク1及び2が未使用される。効果的にこの 操作は、1つのディスクのみがアクセスされるので、ディスク配列システムとい う長所を否定する。また、未使用空間の量がかなりになって、ディスク・ドライ ブの非効率的な使用になる。もし、データが順次ストライプの残り即ちディスク 1及び2にあるストライプの部分に書込みできるならば、このストライプにおけ る結果の操作が、上述されるように性能不利益を持つ部分的ストライプ書込操作 から成る。Referring again to Figure 1, the lN0DE data structure with a size of 2 kilobytes is the prior art. Example of a disk array with a uniform disk stripe size of 2 KB using the technique For example, when writing to stripe 0, all lN0DEs are written to sector 0 of disk 0. .. 1.2 and 3, leaving disks 1 and 2 unused. effectively this The operation is called a disk array system because only one disk is accessed. deny the advantages of Also, the amount of unused space can become significant and the disk drive This results in inefficient use of space. If the data is sequential stripe remaining i.e. disk If it is possible to write to the part of the stripe in 1 and 2, then in this stripe The resulting operation is a partial stripe write operation with a performance penalty as described above. Consists of.

合図6を参照して、本発明の一実施例に従う多重ストライプサイズを利用してい る3+1マツピングスキームを説明している図が示される。図6は、実施例のみ であり、ディスク配列1l6が非常に多い数の各サイズのストライプを用いるこ とが注目される。好ましい実施例で使われたディスク・ドライブは、各々が51 2バイトの記憶を持つ多くのセクタを含む。図6で示された実施例では、ディス ク配列は、2つのストライプサイズ即ち、1キロバイトのディスクストライプサ イズおよび2キロバイトのディスクストライプサイズを利用する。図6に示され るように、ストライプO11及び2は、完全なストライプ毎に合計6セクタ又は 3キロバイトのデータ記憶のために、ディスク0.1及び2におけるディスク毎 に2つのセクタを用いた1キロバイトのディスクストライプサイズを利用する。Referring to Figure 6, utilizing multiple stripe sizes according to an embodiment of the present invention. A diagram illustrating a 3+1 mapping scheme is shown. Figure 6 is only an example. , and the disk array 1l6 uses a very large number of stripes of each size. is attracting attention. The disk drives used in the preferred embodiment each have 51 Contains many sectors with 2 bytes of storage. In the embodiment shown in FIG. The disk array has two stripe sizes: 1 kilobyte disk stripe size. and a disk stripe size of 2KB. Shown in Figure 6 Stripes O11 and 2 have a total of 6 sectors per complete stripe or per disk on disks 0.1 and 2 for 3 kilobytes of data storage. A disk stripe size of 1 kilobyte with two sectors is used.

更に、ストライプ0,1及び2は、各ストライプ用にパリティ情報を記憶するた めにディスク3の2つのセクタを利用する。ストライプ3〜6は、2キロバイト のディスクストライプサイズを利用し、ディスク0,1及び2上のディスク毎に 4セクタが各ストライプ毎にデータ記憶に割りあてられ、ディスク3上の4セク タが各ストライプのためにパリティ情報として予約される。Additionally, stripes 0, 1 and 2 are used to store parity information for each stripe. Two sectors of disk 3 are used for this purpose. Stripes 3-6 are 2KB for each disk on disks 0, 1, and 2 using a disk stripe size of Four sectors are allocated for data storage for each stripe, and four sectors are allocated for data storage on disk 3. is reserved as parity information for each stripe.

この実施例ではlN0DEデータ構造は、小さいストライプサイズ即ちストライ プ0.1又は2を持つディスク配列の部分に書き込まれる。既に述べたように、 lN0DE構造は、好ましい実施例ではサイズで2キロバイトであると仮定され る。In this example, the lN0DE data structure has a small stripe size, i.e. 0.1 or 2 of the disk array. As already mentioned, The lN0DE structure is assumed to be 2 kilobytes in size in the preferred embodiment. Ru.

それ故国6に示されるように、ストライプO11又は2に書き込まれたlN0D E構造はディスクO及び1の領域を一杯にし、ディスク2が一般に未使用され、 ディスク3が各パリティ情報を記憶するために使われる。この実施例においては データはlN0DEがそこで書き込まれた後に、各ストライプのディスク2への 書込が許可されない。このように、部分的ストライプ書込操作は、発生が防止さ れる。それ故、ディスク配列116の部分のより小さいストライプサイズを用い て、lN0DEが書き込まれた後にデータが未使用空間に書き込まれることを防 止することによって、これらの構造の書込操作がフルなストライプ書込をエミュ レートする。しかしながら、このフルなストライプ書込中には、ディスク2が未 使用或は書込まれず、かくしてディスクエリアの非効率的な使用に結果すること は注目される。更に、ディスク2がlN0DE構造が書き込まれる限り各小さい ストライプ毎に一般に未使用されるので、ディスク配列システムからのデータ転 送帯域幅が減少され、配列がこれらの例で2+1マツピングスキームとして必須 的に動作する。Therefore lN0D written in stripe O11 or 2 as shown in country 6 The E structure fills up space on disks O and 1, leaving disk 2 generally unused and Disk 3 is used to store each parity information. In this example Data is written to disk 2 of each stripe after lN0DE is written there. Writing is not allowed. In this way, partial stripe write operations are prevented from occurring. It will be done. Therefore, using a smaller stripe size for portions of disk array 116 to prevent data from being written to unused space after lN0DE is written. By stopping, write operations on these structures emulate full striped writes. Rate. However, during this full stripe write, disk 2 remains unused. not being used or written, thus resulting in inefficient use of disk area. attracts attention. Furthermore, each small disk 2 has a lN0DE structure written to it. Because each stripe is generally unused, data transfer from disk array systems is The transmission bandwidth is reduced and the array is required as a 2+1 mapping scheme in these examples. It works properly.

この問題の1つの解は、図7で示されるように、各ストライプの異なるディスク を横断して未使用空間を分配することである。この様に、データ転送帯域幅の減 少は、各ディスクが略均等に使われるので重要でない。しかしながら、各ディス クアクセスが未使用されたディスクを伴うので、データ転送帯域幅は準最適であ る。さらにこの方法は、未使用ディスク空間の望ましくない量を生成する。One solution to this problem is to use different disks in each stripe, as shown in Figure 7. The goal is to distribute unused space across the In this way, data transfer bandwidth is reduced. The smaller number is not important since each disk is used approximately equally. However, each disk Data transfer bandwidth is sub-optimal since the disk accesses involve unused disks. Ru. Furthermore, this method generates an undesirable amount of unused disk space.

本発明の好ましい実施例ではメ8で示されるように、4+1マツピングスキーム は使われる。図8が例示のみであり、好ましい実施例のディスク配列116が各 小さいストライプ及び大きいストライプ領域における相当多数のストライプを利 用することは、再び注目される。小さいストライプ領域におけるストライプ即ち ストライプO〜4のディスクストライプサイズは512バイトであり、ストライ プサイズは、ストライプに割りあてられた各ディスクの量として定義される。こ の様に、小さいストライプ領域における各完全なストライプは、lN0DE構造 のサイズに略等価である2キロバイトのデータを正確に保持する。従って、lN 0DE構造がディスク配列116における小さいストライプに書き込まれる時に は、フルなストライプ書込操作が実行され、lN0DEがどの未使用空間なしで も全ストライプを占有する。この様にディスク配列116の帯域幅はどのディス クも各アクセスを共にし、どんな未使用空間も生じないので、最適に使われる。In a preferred embodiment of the present invention, a 4+1 mapping scheme is used, as shown in M8. is used. FIG. 8 is illustrative only; the preferred embodiment disk array 116 is Utilizing a significant number of stripes in small stripes and large stripe areas Once again, the use of Stripes in small stripe areas i.e. The disk stripe size for stripes O to 4 is 512 bytes; stripe size is defined as the amount of each disk allocated to a stripe. child As in, each complete stripe in a small stripe region has an lN0DE structure It holds exactly 2 kilobytes of data, which is roughly equivalent to the size of . Therefore, lN When a 0DE structure is written to a small stripe in disk array 116 If a full stripe write operation is performed and the lN0DE is empty without any unused space, also occupies the entire stripe. In this way, the bandwidth of the disk array 116 is The blocks also share each access and are optimally used since no unused space is created.

図4を再び参照して、好ましい実施例においては、ディスク要求は、好ましくは EISAバス46及び8MIC142を通してディスク配列制御器112にシス テムプロセッサ20によって提出される。8MIC142を通してこの要求を受 信したローカルプロセッサ130は、ローカルプロセッサRAMメモリ136に データ構造を確立する。このデータ構造はコマンドリストとして知られ、ディス ク配列116に向けた単純なREAD或いはWRITE要求であってもよく、或 いは多重READ/WRITE又は診断及びコンフィギユレーション要求を含む より精巧な要求セットであってもよい。その後コマンドリストが処理用のローカ ルプロセッサ130に提出される。その後ローカルプロセッサ130がデータの 転送を含むコマンドリストの実行を監督する。コマンドリストの実行が完了した 時にはローカルプロセッサ130は、システムマイクロプロセッサ20で動作し ているオーニスデバイスドライバに通知する。コマンドリストの提出及びコマン ドリスト完了の通知は、8MIC142に配lされたI10レジスタを用いるプ ロトコルによって達成される。Referring again to FIG. 4, in the preferred embodiment, disk requests are preferably The system is connected to the disk array controller 112 through the EISA bus 46 and 8 MICs 142. system processor 20. This request is received through 8MIC142. The local processor 130 that received the information stores the information in the local processor RAM memory 136. Establish data structures. This data structure is known as a command list and is It may be a simple READ or WRITE request to the array 116; or multiple READ/WRITE or diagnostic and configuration requests. It may also be a more elaborate set of requirements. The command list then becomes the locale for processing. file processor 130. Local processor 130 then processes the data. Supervise the execution of command lists, including transfers. Command list execution completed Sometimes local processor 130 operates on system microprocessor 20. ornis device driver. Submission of command list and commands The notification of the completion of the list is sent by a program using the I10 register allocated to the 8MIC142. Achieved by rotocol.

ディスク配列制御器112によって実行されたREAD及びWRITE操作は、 ローカルプロセッサ130で動作している多くのアプリケーションタスクとして 実行される。相互作用的なI10100性質の為に、例示的コンピュータシステ ムCがローカルプロセッサ130上の単一バッチタスクとしてディスクコマンド を処理することが非実用的である。従ってローカルプロセッサ130は、本発明 の方法を含む多重タスクがローカルプロセッサ130によってアドレスできる実 時間マルチタスク使用システムを利用する。好ましくはローカルプロセッサ13 0上のオーニスは、コダック社によるAMX86マルチタスク管理プログラムで ある。AMXオーニスのカーネルは、本発明の方法でセットされたアプリケーシ ョンに加えて多くのシステムサービスを供給する。READ and WRITE operations performed by disk array controller 112 are As many application tasks running on local processor 130 executed. Due to the interactive nature of the I10100, an exemplary computer system System C executes disk commands as a single batch task on local processor 130. It is impractical to process. Therefore, the local processor 130 An implementation that allows multiple tasks to be addressed by local processor 130, including methods of Utilize time multitasking system. Preferably local processor 13 Ornis on 0 is an AMX86 multitasking management program by Kodak. be. The AMX Ornis kernel is an application configured using the method of the present invention. in addition to providing many system services.

合図9を参照して、知的ディスク配列制御器112を含むコンピュータシステム Cで実行されるWRITE操作のフローチャート図が示される。WRITE操作 は、アクティブなプロセス又はアプリケーションがディスクデバイスドライバに 渡されたWRITE要求をシステムプロセッサ20に発生させるステップ200 から始める。このディスクデバイスドライバは、コンピュータシステムC好まし くはディスクユニットと実インターフェイス操作を実行するシステムメモリ58 内に含まれたソフトウェアの部分である。ディスクデバイスドライバソフトウェ アは、必要とされたI10操作を実行するために、特定のタスクを形成するシス テムプロセッサ20の制御を仮定する。Referring to signal 9, a computer system including an intelligent disk array controller 112 A flowchart diagram of a WRITE operation performed in C is shown. WRITE operation is an active process or application that has access to a disk device driver. Step 200 of issuing the passed WRITE request to the system processor 20 Start with This disk device driver is installed on computer system C. system memory 58 that performs disk unit and actual interface operations; It is a part of the software contained within. Disk device driver software The system administrator configures the specific task to perform the required I10 operation. Assume that the system processor 20 is under control.

制御は、ディスクデバイスドライバがシステムプロセッサ20の制御を仮定し、 WRITEコマンドリストを生成するステップ202に遷移する。The control assumes that the disk device driver is under control of the system processor 20, The process moves to step 202 where a WRITE command list is generated.

ステップ204では、デバイスドライバがBMIC142又はCPC164を経 てディスク制御器112にWRITEコマンドリストを提出する。その後デバイ スドライバは、ディスク配列制御器112から完了信号を待つために、待ち状態 を入る。In step 204, the device driver passes through the BMIC 142 or CPC 164. and submits the WRITE command list to the disk controller 112. then device The driver enters a wait state to wait for a completion signal from the disk array controller 112. enter.

操作の論理的流れは、ローカルプロセッサ130がWRITEコマンドリストを 受信して、lN0DEデータ構造がディスク配列116に書き込まれているか否 かを決めるステップ206に進行する。この決定の実行において、ローカルプロ セッサは好ましくは小さいストライプ及び大きいストライプ領域間の境界を利用 する。本発明の代わりの実施例では、デバイスドライバは、小さいストライプ及 び大きいストライプ領域間の境界を利用して、WRITEコマンドリストにこの 情報を協働する知性がデバイスドライバと協働する。もしlN0DEデータ構造 がディスク配列116に書き込まれているならば、ステップ208においてロー カルプロセッサ130は、小さいストライブ領域へのフルなストライプWRIT E操作のために、ディスク特定WRITE命令を確立する。その後制御は転送制 御器チップ(TCC)144がディスク配列116に書き込まれていたlN0D Eからパリティデータを生成するステップ210に遷移する。小さいストライプ 領域にlN0DEを書き込む操作がフルなストライプ書込操作として扱われ、か くして部分的ストライプ書込操作と関連するどの先行READ操作も遭遇しない ことは注目される。その後操作の制御は、TCCl 44がディスク配列116 内のディスクにデータ及び最近生成されたパリティ情報を書き込むステップ21 2に遷移する。その後制御は、ローカルプロセッサ130は追加のデータがディ スク配列116に書き込まれるか否かを決めるステップ214に遷移する。The logical flow of operations is that local processor 130 executes a WRITE command list. received and whether the lN0DE data structure has been written to disk array 116. The process proceeds to step 206 in which it is determined whether In implementing this decision, local The processor preferably utilizes the boundaries between the small stripe and large stripe areas. do. In an alternative embodiment of the invention, the device driver This can be added to the WRITE command list, taking advantage of the boundaries between large stripe areas. Intelligence that collaborates with information collaborates with device drivers. If lN0DE data structure has been written to disk array 116, the load is performed in step 208. The processor 130 writes a full stripe WRIT to a small stripe area. Establish a disk-specific WRITE command for the E operation. After that, control is transferred The control chip (TCC) 144 was written to the disk array 116. The process moves to step 210 in which parity data is generated from E. small stripes An operation that writes lN0DE to an area is treated as a full stripe write operation, and Thus, any preceding READ operations associated with the partial stripe write operation are not encountered. This is noteworthy. After that, the operation is controlled by the TCCl 44 from the disk array 116. step 21 of writing data and recently generated parity information to the disk in the Transition to 2. Control then determines that the local processor 130 has access to additional data. The process moves to step 214 in which it is determined whether or not the data will be written to the disk array 116.

追加のデータがディスク配列116に書き込まれるならば、制御は、ローカルプ ロセッサ130がメモリアドレスをインクリメントして、転送されるべきバイト 数デクリメントするステップ216に遷移する。その後制御はステップ206に 戻る。もしどの追加のデータもディスク配列116に書き込まれないならば、制 御はローカルプロセッサ130がWRITE完了を信号するステップ214から ステップ224に遷移する。もし、ローカルプロセッサ130がWRITEコマ ンドリストを受信して、lN0DE構造がディスク配列116に書込まれていな いことを決定するならば、ステップ218でローカルプロセッサ130は、大き いストライブ領域に書込まれるべきデータのためにディスク特定WRITE命令 を確立する。この操作は、RAM136に記憶された小さいストライプ及び大き いストライプ領域間の境界を利用することをローカルプロセッサ130に要求し て、適切な物理的ディスクアドレスが展開されるように、異なったサイズストラ イプ用に修正する適切なバイアス又はオフセットを展開することが注目される。If additional data is written to disk array 116, control is transferred to the local Processor 130 increments the memory address and the byte to be transferred. The process moves to step 216 where the number is decremented. Control then passes to step 206. return. If no additional data is written to disk array 116, the Control begins at step 214 where local processor 130 signals WRITE completion. The process moves to step 224. If the local processor 130 If the lN0DE structure has not been written to disk array 116, If the local processor 130 determines that the large Disk specific WRITE command for data to be written to a new stripe area Establish. This operation includes the small and large stripes stored in RAM 136. requests the local processor 130 to utilize boundaries between different stripe areas. different size struc- tures to ensure that the appropriate physical disk addresses are deployed. It is noted that the appropriate bias or offset is developed to modify for the type.

選択的に、この知性は、デバイスドライバに確立することができ、デバイスドラ イバは、小さいストライプ及び大きいストライプ領域間の境界にアクセス及び用 い、このオフセット情報をWRITEコマンドリストに協働させる。この実施例 でローカルプロセッサ130は、この知性がデバイスドライバに協働されるので 、小さいストライプ及び大きいストライブ領域の間の境界を利用することが要求 されない。Optionally, this intelligence can be established in the device driver and access and use the boundaries between small stripe and large stripe areas. Then, use this offset information in the WRITE command list. This example In the local processor 130, this intelligence is cooperated with the device driver. , it is required to exploit the boundaries between small stripes and large stripe regions. Not done.

ステップ220で転送制御器チップ144は、書き込まれたデータ用にのみパリ ティ情報を生成する。ここで、もし書込操作がフルなストライプ書込であるなら ば、ディスク制御器112が書き込まれたデータのみからパリティ情報を生成す ることができることが注目される。しかしながら、書込操作が部分的ストライプ 書込操作であるならば、先行続出操作は、ディスク上の現行データ又はパリティ 情報を読むために実行される必要があってもよい。既に述べたように、部分的ス トライプ書込操作の結果で生じるこれらの追加の読出操作はディスクシステム1 11の性能を減少させる。部分的ストライプ書込操作の性能向上に用いた技術に は、1991年8月30日に出願された米国特許出願シリアル番号752,77 3の名称[METHoDFoRPERFORMING WRITE 0PERA TIONS IN A PARITY FAULT TOLERANTDISK  ARRAYJ及び1991年12月27日に出願された、米国特許出願シリア ル番号815,118の名称「佃THOD FORIMPROVING PAR Tl、AL 5TRIPE WRITE PERFORMANCE IN DI SK ARRAYSUBSYSTEMSJが参照され、これら両者がこの発明と 同じ譲受人に譲渡され、ここに参照物として協働する。ステップ222では、デ ィスク制御器112がデータ及びパリティ情報を大きいストライブ領域に書き込 む。その後制御は追加のデータがディスク配列116に書き込まれるべきか否か をローカルプロセッサ130が決めるステップ214に遷移する。ステップ21 4において、どの追加データも転送しないことを決定するならば、制御は、ディ スク配列制御器112がディスクデバイスドライバにWRITE完了を信号する ステップ224に遷移する。その後制御は、デバイスドライバがアプリケーショ ン・プログラムの実行を続けるためにシステムプロセッサ20の制御を解放する ステップ226に進行する。これはWRITE序列の操作を完了する。In step 220, the transfer controller chip 144 sends a parity only for written data. Generate tea information. Here, if the write operation is a full striped write For example, the disk controller 112 generates parity information only from written data. It is noteworthy that it is possible to However, if the write operation is partially striped If it is a write operation, the look-ahead operation uses the current data or parity on disk. May need to be executed to read the information. As already mentioned, partial These additional read operations that result from the tripe write operation are performed by disk system 1. 11 performance is reduced. Technology used to improve performance of partial stripe write operations is a U.S. patent application serial number 752,77 filed on August 30, 1991. Name of 3 [METHoDFoRPERFORMING WRITE 0PERA TIONS IN A PARITY FAULT TOLERANT DISK ARRAYJ and US Patent Application Syria filed on December 27, 1991 Name of file number 815,118 “THOD FORIMPROVING PAR Tl, AL 5TRIPE WRITE PERFORMANCE IN DI Reference is made to SK ARRAYSUBSYSTEMSJ, both of which are associated with this invention. Assigned to the same assignee and incorporated herein by reference. In step 222, the The disk controller 112 writes data and parity information to the large stripe area. nothing. Control then determines whether additional data is to be written to disk array 116. The process moves to step 214, where the local processor 130 determines. Step 21 4, if it is decided not to transfer any additional data, control disk array controller 112 signals WRITE completion to disk device driver The process moves to step 224. Control is then given to the device driver by the application. release control of the system processor 20 to continue execution of the program Proceed to step 226. This completes the operation of the WRITE sequence.

合図10を参照して、知的ディスク配列制御器112を用いたディスク配列サブ システム111で実行されるREAD操作が示される。READ操作は、アクテ ィブなプロセス又はアプリケーション・プログラムがシステムプロセッサ20に ディスクデバイスドライバに渡されたREADコマンドを生成させるステップ2 50から始まる。制御はディスクデバイスドライバがシステムプロセッサ20の 制御を仮定し、システムプロセッサ20に、米国特許出願連番431,737に 記載され、本発明の譲受人のコンパツクコンピュータ株式会社に譲渡されたもの に類似したREADコマンドリストを生成させるステップ252に遷移する。こ のREADコマンドリストは、ステップ254でディスクサブシステム111に 送られ、その操作後デバイスドライバは、READ完了信号を受信するまで待機 する。Referring to signal 10, the disk array sub using intelligent disk array controller 112 A READ operation performed on system 111 is shown. READ operation is An active process or application program runs on system processor 20. Step 2 Generating the READ command passed to the disk device driver Starting from 50. The disk device driver controls the system processor 20. Assuming control, the system processor 20 is and assigned to Compact Computer Co., Ltd., the assignee of this invention. The process moves to step 252 where a READ command list similar to is generated. child The READ command list is sent to the disk subsystem 111 in step 254. After the operation, the device driver waits until it receives the READ completion signal. do.

ステップ256でディスク制御器112は、BMIC142又はCPC146及 び転送制御器144を経てREADコマンドリストを受信し、読出操作が小さい ストライプ領域のデータ即ちlN0DE又は大きいストライプ領域のデータのア クセスを意図しているか否かを決める。この決定の実行においてディスク制御器 112は、好ましくは要求されたデータのディスクアドレスを、RAM136に 記憶された小さいストライプ及び大きいストライプ領域間の境界と比較して、ど の領域がアクセスされているかを決定する。選択的に、更なる知性は、デバイス ドライバはどの領域がREADコマンドリストにアクセスされた情報と協働する ように、デバイスドライバに確立することができる。この実施例によれば、ディ スク制御器112は、小さい余分な知性を必要として、単にディスク特定REA D要求を生成することでREADコマンドリストにこの情報を利用するのみであ る。In step 256, the disk controller 112 connects the BMIC 142 or CPC 146 to The READ command list is received via the transfer controller 144 and the read operation is small. Accessing stripe area data, i.e. lN0DE or large stripe area data. determine whether access is intended. In performing this decision the disk controller 112 preferably stores the disk address of the requested data in RAM 136. Compared to the boundaries between the stored small stripe and large stripe areas, Determine which area is being accessed. Optionally, further intelligence can be added to the device The driver works with the information which areas are accessed in the READ command list. so that it can be established in the device driver. According to this embodiment, the di The disk controller 112 requires little extra intelligence and simply controls the disk specific REA. It only uses this information in the READ command list by generating a D request. Ru.

もし小さいストライプ領域がアクセスされるならば、ローカルプロセッサ130 は、ステップ260において、要求されたlN0DE及び小さいストライプ領域 におけるその関連のパリティ情報のためのディスク特定READ要求を生成し、 ローカルRAM136における要求を列に並ばせる。制御は、要求が実行され、 要求されたデータがディスク配列112から転送制御器144及びBMIC14 2又はCPCl34を経由して、要求されたタスクによって指示されたアドレス のシステムメモリ58に転送されるステップ264に遷移する。読出操作が大き いストライプ領域におけるデータのアクセスを意図することをディスク制御器1 12が決めたならば、ローカルプロセッサ130は、ステップ262で、要求さ れたデータ及び大きいストライプ領域におけるその関連のパリティ情報のための ディスク特定READ要求を生成し、ローカルRAM136におけるリクエスト 即ち要求を列に並ばせる。これらの要求は実行され、データがステップ264で 転送される。ステップ264におけるデータ転送の完了時にはディスク配列制御 器112がステップ266でディスクデバイスドライバにREAD完了を信号し 、システムプロセッサ20の制御を解放する。If a small stripe area is accessed, the local processor 130 In step 260, the requested lN0DE and small stripe area generate a disk-specific READ request for its associated parity information at; Queuing requests in local RAM 136. Control is when the request is executed and The requested data is transferred from the disk array 112 to the transfer controller 144 and the BMIC 14. 2 or the address indicated by the requested task via CPCl34. The process moves to step 264 where the data is transferred to the system memory 58 of the system. Large read operation Disk controller 1 intends to access data in a striped area. 12, the local processor 130, in step 262, data and its associated parity information in large stripe areas. Generates a disk specific READ request and executes the request in local RAM 136 That is, requests are queued. These requests are executed and the data is retrieved in step 264. be transferred. Upon completion of the data transfer in step 264, the disk array control device 112 signals READ completion to the disk device driver in step 266. , releases control of the system processor 20.

それ故、ディスク配列の可変ストライブサイズを形成し、特に、ディスク配列に 頻繁に書き込まれる小さいデータ構造のサイズに等しい完全なストライプサイズ を有する領域を形成することによって、部分的ストライプ書込操作の回数が減少 される。Therefore, forming a variable stripe size of the disk array, in particular Full stripe size equal to the size of frequently written small data structures The number of partial stripe write operations is reduced by forming regions with be done.

データストライブが正確にデータ構造のサイズに一致した小さいストライプ領域 にこれらの小さいデータ構造を配置することによって、結果の操作はフルなスト ライブ書込である。これは、部分的ストライプ書込操作と関連する性能不利益が 除去されるので、ディスク性能を増加させる。A small stripe area where the data stripe exactly matches the size of the data structure By placing these smaller data structures in This is a live write. This eliminates the performance penalty associated with partial stripe write operations. Since it is removed, it increases disk performance.

発明の前述の開示及び記述が記述的及び説明用であり、記述的ロジック及びフロ ーチャートの詳細と同様に構成要素、方法及び操作における種々の変更も、発明 の精神を逸脱しないで作られてもよい。The foregoing disclosure and description of the invention is descriptive and illustrative, and does not include the descriptive logic and flow. - Various changes in components, methods and operations, as well as details of the charts, are subject to invention. may be made without departing from the spirit of

イ反t、ff1i3+1 叉ッヒ・シク゛ス★−4:T身スクOテ゛≧スク1  子)スフ2 テ盲ス?3図1 %rの喫λ包仔弓の3+1 マツ巳°じり゛スキーへ図6 図7 女誉まし\\旬λ包イブリの4+1 マ・・ノと0レク゛′Z牛−乙1図8 国際調査報告 。rT/I+。。5/I+29’1フロントページの続き (81)指定国 EP(AT、BE、CH,DE。I anti-t, ff1i3+1 Cross six ★-4: T body sk O text ≧ sk 1 Child) Sufu 2 Te blind Sufu? 3 figure 1 %r's signature 3+1 skiing to Matsumi°jiriji Figure 6 Figure 7 Woman's honor \\ Shun λ package Iburi's 4 + 1 Ma...no and 0 Reku゛'Z cow - Otsu 1 Figure 8 International search report. rT/I+. . 5/I+29’1 Continuation of front page (81) Designated countries EP (AT, BE, CH, DE.

DK、ES、FR,GB、GR,IE、IT、LU、MC,NL、PT、SE) 、0A(BF、BJ、CF、CG、 CI、 CM、 GA、 GN、 ML、  MR,SN、 TD。DK, ES, FR, GB, GR, IE, IT, LU, MC, NL, PT, SE) , 0A (BF, BJ, CF, CG, CI, CM, GA, GN, ML, MR, SN, TD.

TG)、 AT、 AU、 BG、 BR,CA、 CH,C3゜DE、DK、 ES、FI、GB、HU、JP、KR,NL、 No、 PL、 RO,RU、 SETG), AT, AU, BG, BR, CA, CH, C3゜DE, DK, ES, FI, GB, HU, JP, KR, NL, No, PL, RO, RU, S.E.

Claims (1)

【特許請求の範囲】 1、第1のストライプサイズを持つ複数のデータストライプからなる第1の領域 と、この第1のストライプサイズより大きいストライプサイズを持つ複数のデー タストライプからなる第2の領域とを含み、前記第1のストライプサイズがディ スク配列に使われるデータ構造のサイズに対応するディスク配列の性能改善方法 において、 ディスク配列へのデータ書込操作を生成し、前記データがデータ構造の1つを備 えるか否かを決め、もし前記データがデータ構造の1つを備えるならば、前記第 1のストライプサイズを持つ第1の領域におけるデータストライプに前記データ を書き込み、 もし前記データがデータ構造の1つを備えないならば、第2の領域におけるデー タストライプに前記データを書き込むステップを備えた、コンピュータシステム ディスク配列におけるディスク配列性能を改善する方法。 2、前記第1の領域へのデータ構造の書込は、フルなストライプ書込操作である 請求項1に記載の方法。 3、前記データ書込の決定ステップがディスク配列に結合されたディスク制御器 によって実行される請求項1に記載の方法。 4、前記データ書込の決定ステップが、コンピュータシステムにおけるシステム プロセッサによって実行される請求項1に記載の方法。 5、ディスク配列からデータを要求する読出操作を生成し、前記読出操作が前記 第1のストライプサイズ領域又は前記第2のストライプサイズ領域をアクセスす るつもりか否かを決定し、 前記読出操作の決定ステップに依存した前記第1又は第2のストライプサイズ領 域から前記要求されたデータを供給するステップを更に備えた請求項1に記載の 方法。 6、前記ディスク配列がパリテイ欠陥許容技術を利用し、前記データ用のパリテ ィ情報を生成し、もし前記データがデータ構造の1つを備えるならば、第1の領 域に前記パリティ情報を書き込み、 もし前記データがデータ構造の1つを備えないならば、第2の領域に前記パリテ ィ情報を書き込むステップを更に備えた請求項1に記載の方法。 7、システムバスと、 このシステムバスに結合されて、第1のストライプサイズを持つ複数のデータス トライプからなる第1の領域と、この第1のストライプサイズより大きいストラ イプサイズを持つ複数のデータストライプからなる第2の領域とを含み、前記第 1のストライプサイズが、ディスク配列に使われたデータ構造のサイズに対応す るディスク配列と、 前記システムバスに結合されて、ディスク配列へのデータ書込操作を生成する手 段と、 この生成手段及び前記システムバスに結合されて、前記データがデータ構造の1 つを含むか否かを決定する手段と、この決定手段及び前記システムバスに結合さ れて、前記データがデータ構造の1つを備えるならば、前記第1のストライプサ イズ領域におけるデータストライプに前記データを書き込む手段と、 前記決定手段及び前記システムバスに結合されて、前記データがデータ構造の1 つを備えないならば、前記第2のストライプサイズ領域におけるデータストライ プに前記データを書き込む手段とを備えたディスク配列書込操作を実行するコン ピュータシステム装置。 8、前記第1のストライプサイズ領域への前記データ構造書込操作は、フルなス トライプ書込操作である請求項7に記載の装置。 9、データを記憶するために複数の可変サイズのデータストライプを持ち、第1 のストライプサイズがディスク配列で使われたデータ構造のサイズに対応するコ ンピュータシステムディスク配列におけるディスク配列性能を改善する方法にお いて、ディスク配列へのデータ書込操作を生成し、前記データがデータ構造の1 つを含むか否かを決め、もし前記データがデータ構造の1つを備えるならば、デ ータ構造のサイズに対応している第1のサイズを持つデータストライプに前記デ ータを書き込み、 もし前記データがデータ構造の1つを備えないならば、第1のサイズを持たない データストライプに前記データを書き込むステップを備えた方法。 10、第1のサイズを持つ前記データストライプヘの前記データ構造書込は、フ ルなストライプ書込操作である請求項9に記載の方法。 11、前記ディスク配列はデータ構造を記憶するために第1のストライプサイズ を持つ領域と、第2のストライプサイズを持つ領域を含み、 ディスク配列からデータを要求する読出操作を生成し、前記読出操作が前記第1 のストライプサイズ領域又は前記第2のストライプサイズ領域をアクセスするつ もりか否かを決定し、 前記読出操作決定に依存している前記第1又は第2のストライプ領域から前記要 求されたデータを供給するステップを更に備えた請求項9に記載の方法。 12、システムバスと、 このシステムバスに結合されて、データを記憶するために複数の可変サイズのデ ータストライプを持ち、第1のストライプサイズがディスク配列に使われたデー タ構造のサイズに対応するディスク配列と、 前記システムバスに結合されて、ディスク配列へのデータ書込操作を生成する手 段と、 この生成手段及び前記システムバスに結合されて、前記データがデータ構造の1 つを含むか否かを決定する手段と、この決定手段及び前記システムバスに結合さ れて、前記データがデータ構造の1つを含むならば、前記データ構造のサイズに 対応している前記第1のサイズを持つデータストライプに前記データ構造を書き 込む手段と、 前記決定手段及び前記システムバスに結合されて、前記データがデータ構造の1 つを含まないならば、前記第1のサイズを持つていないデータストライプに前記 データを書き込む手段とを備えた、ディスク配列書込操作を実行するコンピュー タシステム。 13、ディスク配列上にファイルシステムを形成し、前記ディスク配列を区画し て、第1のストライプサイズを持つ複数のデータストライプからなる第1の領域 と、前記第1のストライプより大きいストライプサイズを持つ複数のデータスト ライプからなる第2の領域とを形成し、前記第1のストライプサイズがディスク 配列に使われたデータ構造のサイズに対応し、 ディスク配列へのデータ書込操作を生成し、前記データがデータ構造の1つを含 むか否かを決め、前記データがデータ構造の1つを含むならば、前記第1のスト ライプサイズを持つ第1の領域におけるデータストライプに前記データを書き込 み、 前記データがデータ構造の1つを含まないならば、第2の領域におけるデータス トライプに前記データを書き込むステップを備えた、パリティ欠陥許容技術を利 用するコンピュータシステムディスク配列におけるディスク配列性能を改善する 方法。 14、前記第1の領域への前記データ構造書込は、フルなストライプ書込操作で ある請求項13に記載の方法。 15、ディスク配列からデータを要求する読出操作を生成し、前記読出操作が前 記第1のストライプサイズ領域又は前記第2のストライプサイズ領域をアクセス するつもりか否かを決定し、 前記読出操作の決定ステップに依存した前記第1又は第2のストライプサイズ領 域から前記要求されたデータを供給するステップを更に備えた請求項13に記載 の方法。[Claims] 1. A first area consisting of a plurality of data stripes having a first stripe size and multiple data with a stripe size larger than this first stripe size. a second area consisting of data stripes, the first stripe size being diagonal; How to improve the performance of disk arrays depending on the size of the data structures used in disk arrays In, Generates a data write operation to a disk array, and the data comprises one of the data structures. If the data comprises one of the data structures, The data is placed in a data stripe in a first area with a stripe size of 1. write, If the data does not include one of the data structures, the data in the second area A computer system comprising the step of writing said data to a data stripe. How to improve disk array performance in disk arrays. 2. Writing the data structure to the first area is a full stripe write operation. The method according to claim 1. 3. A disk controller in which the data writing determining step is coupled to a disk array. 2. The method of claim 1, carried out by. 4. The step of determining data writing is performed in a computer system. 2. The method of claim 1, executed by a processor. 5. Generate a read operation that requests data from the disk array, and the read operation When accessing the first stripe size area or the second stripe size area decide whether or not you intend to the first or second stripe size area depending on the determining step of the read operation; 2. The method of claim 1, further comprising the step of providing the requested data from an area. Method. 6. The disk array utilizes parity defect tolerance technology to improve parity for the data. and if said data comprises one of the data structures, write the parity information in the area, If the data does not include one of the data structures, the parity is stored in a second area. 2. The method of claim 1, further comprising the step of: writing personal information. 7. System bus and A plurality of data streams coupled to this system bus have a first stripe size. A first region consisting of tripes and a strut larger than this first stripe size. a second area consisting of a plurality of data stripes having a size of A stripe size of 1 corresponds to the size of the data structures used in the disk array. disk array, A means coupled to the system bus for generating data write operations to the disk array. step by step, coupled to the generating means and the system bus so that the data is one of the data structures. means for determining whether or not a system bus is included; and if the data comprises one of the data structures, the first stripe sensor means for writing the data to a data stripe in the size area; coupled to said determining means and said system bus, said data being one of the data structures; If the data stripe in the second stripe size area does not have one a computer for performing a disk array write operation, comprising means for writing said data to a disk array; computer system equipment. 8. The data structure write operation to the first stripe size area 8. The apparatus of claim 7, which is a tripe write operation. 9. Having multiple variable-sized data stripes to store data, the first The stripe size corresponds to the size of the data structures used in the disk array. How to improve disk array performance in computer system disk arrays generates a data write operation to a disk array, and the data is one of the data structures. If the data comprises one of the data structures, then The data stripe has a first size corresponding to the size of the data structure. write the data, If said data does not include one of the data structures, it does not have a first size. A method comprising writing said data to a data stripe. 10. The data structure write to the data stripe having a first size 10. The method of claim 9, wherein the method is a regular stripe write operation. 11. The disk array has a first stripe size for storing data structures. and a region with a second stripe size, generating a read operation requesting data from a disk array, said read operation requesting data from said first disk array; when accessing the stripe size area or the second stripe size area. Decide whether to use Mori or not. from the first or second stripe area depending on the read operation decision; 10. The method of claim 9, further comprising the step of providing the requested data. 12. System bus, Multiple variable-sized devices are coupled to this system bus to store data. data stripe, and the first stripe size is the data used for the disk array. a disk array corresponding to the size of the data structure; A means coupled to the system bus for generating data write operations to the disk array. step by step, coupled to the generating means and the system bus so that the data is one of the data structures. means for determining whether or not a system bus is included; and if said data includes one of the data structures, then the size of said data structure writing the data structure to a data stripe having the corresponding first size; a means of entering, coupled to said determining means and said system bus, said data being one of the data structures; If the data stripe does not have the first size, then the data stripe does not have the first size. a computer that performs disk array write operations, having a means for writing data; ta system. 13. Forming a file system on the disk array and partitioning the disk array. a first area consisting of a plurality of data stripes having a first stripe size; and a plurality of data streams having a stripe size larger than the first stripe. a second area consisting of stripes, and the first stripe size is corresponding to the size of the data structure used for the array, Generates a data write operation to a disk array, and the data contains one of the data structures. and if the data includes one of the data structures, the first Write the data to a data stripe in a first area with a write size. fruit, If the data does not include one of the data structures, the data structure in the second area is Utilizes a parity defect tolerant technique with the step of writing said data in a tripe. Improve disk array performance on computer system disk arrays used Method. 14. The data structure write to the first area is a full stripe write operation. 14. The method of claim 13. 15. Generate a read operation that requests data from the disk array, and if the read operation Accessing the first stripe size area or the second stripe size area decide whether you intend to the first or second stripe size area depending on the determining step of the read operation; 14. The method of claim 13, further comprising the step of providing the requested data from an area. the method of.
JP5511941A 1991-12-27 1992-12-18 How to perform disk array operations using a non-uniform stripe size mapping scheme Pending JPH06511099A (en)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US81400091A 1991-12-27 1991-12-27
US814,000 1991-12-27
PCT/US1992/011283 WO1993013475A1 (en) 1991-12-27 1992-12-18 Method for performing disk array operations using a nonuniform stripe size mapping scheme

Publications (1)

Publication Number Publication Date
JPH06511099A true JPH06511099A (en) 1994-12-08

Family

ID=25213949

Family Applications (1)

Application Number Title Priority Date Filing Date
JP5511941A Pending JPH06511099A (en) 1991-12-27 1992-12-18 How to perform disk array operations using a non-uniform stripe size mapping scheme

Country Status (5)

Country Link
EP (1) EP0619896A1 (en)
JP (1) JPH06511099A (en)
AU (1) AU3424993A (en)
CA (1) CA2126754A1 (en)
WO (1) WO1993013475A1 (en)

Families Citing this family (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3183719B2 (en) * 1992-08-26 2001-07-09 三菱電機株式会社 Array type recording device
FR2695227B1 (en) * 1992-09-02 1994-10-14 Aton Systemes Method for the interleaved transfer of data between the memory of a computer and peripheral equipment consisting of a management system and several storage units.
US6138126A (en) 1995-05-31 2000-10-24 Network Appliance, Inc. Method for allocating files in a file system integrated with a raid disk sub-system
DE69431186T2 (en) * 1993-06-03 2003-05-08 Network Appliance, Inc. Method and file system for assigning file blocks to storage space in a RAID disk system
US7174352B2 (en) 1993-06-03 2007-02-06 Network Appliance, Inc. File system image transfer
US5963962A (en) * 1995-05-31 1999-10-05 Network Appliance, Inc. Write anywhere file-system layout
EP1031928B1 (en) * 1993-06-04 2005-05-18 Network Appliance, Inc. A method for providing parity in a raid sub-system using non-volatile memory
GB9818633D0 (en) * 1998-08-26 1998-10-21 Clifton Bligh Gervase Internet navigation
US7072916B1 (en) 2000-08-18 2006-07-04 Network Appliance, Inc. Instant snapshot
US6636879B1 (en) 2000-08-18 2003-10-21 Network Appliance, Inc. Space allocation in a write anywhere file system
US6728922B1 (en) 2000-08-18 2004-04-27 Network Appliance, Inc. Dynamic data space
US6745284B1 (en) 2000-10-02 2004-06-01 Sun Microsystems, Inc. Data storage subsystem including a storage disk array employing dynamic data striping
US6658528B2 (en) * 2001-07-30 2003-12-02 International Business Machines Corporation System and method for improving file system transfer through the use of an intelligent geometry engine

Family Cites Families (1)

* 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

Also Published As

Publication number Publication date
EP0619896A1 (en) 1994-10-19
WO1993013475A1 (en) 1993-07-08
AU3424993A (en) 1993-07-28
CA2126754A1 (en) 1993-07-08

Similar Documents

Publication Publication Date Title
US5333305A (en) Method for improving partial stripe write performance in disk array subsystems
JP3606881B2 (en) High-performance data path that performs Xor operations during operation
US5522065A (en) Method for performing write operations in a parity fault tolerant disk array
US5737744A (en) Disk array controller for performing exclusive or operations
JP5272019B2 (en) A flash memory storage controller that includes a crossbar switch that connects the processor to internal memory
JP2784440B2 (en) Data page transfer control method
EP0427119B1 (en) Disk array controller with parity capabilities
US7743191B1 (en) On-chip shared memory based device architecture
US5572660A (en) System and method for selective write-back caching within a disk array subsystem
US5325499A (en) Computer system including a write protection circuit for preventing illegal write operations and a write poster with improved memory
US6018778A (en) Disk array controller for reading/writing striped data using a single address counter for synchronously transferring data between data ports and buffer memory
US6058489A (en) On-line disk array reconfiguration
US7219169B2 (en) Composite DMA disk controller for efficient hardware-assisted data transfer operations
JPS5873085A (en) Control of memory hierarchy
JP2013025795A (en) Flash controller hardware architecture for flash devices
JP2013025793A (en) Meta data handling within flash media controller
JPH0345407B2 (en)
JP3247075B2 (en) Parity block generator
JPH06511099A (en) How to perform disk array operations using a non-uniform stripe size mapping scheme
JPH0526217B2 (en)
US5283880A (en) Method of fast buffer copying by utilizing a cache memory to accept a page of source buffer contents and then supplying these contents to a target buffer without causing unnecessary wait states
US5420994A (en) Method for reading a multiple byte data element in a memory system with at least one cache and a main memory
US5557622A (en) Method and apparatus for parity generation
EP1125191A1 (en) Controlling access to a primary memory
Luo et al. CDB: Critical data backup design for consumer devices with high-density flash based hybrid storage