JP2005063441A - 4kブロックサイズを用いてハードディスクドライブへの書き込みを行うハードディスクドライブコントローラおよびそれを用いたハードディスクドライブ - Google Patents
4kブロックサイズを用いてハードディスクドライブへの書き込みを行うハードディスクドライブコントローラおよびそれを用いたハードディスクドライブ Download PDFInfo
- Publication number
- JP2005063441A JP2005063441A JP2004234375A JP2004234375A JP2005063441A JP 2005063441 A JP2005063441 A JP 2005063441A JP 2004234375 A JP2004234375 A JP 2004234375A JP 2004234375 A JP2004234375 A JP 2004234375A JP 2005063441 A JP2005063441 A JP 2005063441A
- Authority
- JP
- Japan
- Prior art keywords
- block
- cache
- data
- blocks
- ecc
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR 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
- 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/1883—Methods for assignment of alternate areas for defective areas
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0866—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches for peripheral storage systems, e.g. disk cache
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2211/00—Indexing scheme relating to details of data-processing equipment not covered by groups G06F3/00 - G06F13/00
- G06F2211/10—Indexing scheme relating to G06F11/10
- G06F2211/1002—Indexing scheme relating to G06F11/1076
- G06F2211/1009—Cache, i.e. caches used in RAID system with parity
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2211/00—Indexing scheme relating to details of data-processing equipment not covered by groups G06F3/00 - G06F13/00
- G06F2211/10—Indexing scheme relating to G06F11/10
- G06F2211/1002—Indexing scheme relating to G06F11/1076
- G06F2211/109—Sector level checksum or ECC, i.e. sector or stripe level checksum or ECC in addition to the RAID parity calculation
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11B—INFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
- G11B2220/00—Record carriers by type
- G11B2220/20—Disc-shaped record carriers
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Signal Processing (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Memory System Of A Hierarchy Structure (AREA)
- Signal Processing For Digital Recording And Reproducing (AREA)
Abstract
【課題】 データフォーマット効率の減少を避け、高密度記録再生を実現する。
【解決手段】 データ保存に大ブロックサイズ(例えば、4KB)を用い、小ブロックサイズ(例えば512バイト)を用いるクライアントからの読見出し書き込み要請に応ずるディスクドライブにおいて、少なくとも読み出しデータの開始・終了の4K ブロックはキャッシュされる。書き込み要求の対象のディスク・データの多くは先ず読まれるので、次の書き込み要請のときドライブコントローラは、キャッシュに開始・終了ブロックが存在するか判定し、もしそうであれば、それらのブロックに新データを書き込み、それらについて全ECCを計算し、ついで、中間のブロックについてECC を計算し、該中間ブロックに新データを書き込む。もし、開始・終了両ブロックともキャッシュに無い場合は、ドライブコントローラは、高データ保全性ルーティンか高パフォーマンスルーチンのいずれかユーザが選んだ方を実行する。
【選択図】 図3
【解決手段】 データ保存に大ブロックサイズ(例えば、4KB)を用い、小ブロックサイズ(例えば512バイト)を用いるクライアントからの読見出し書き込み要請に応ずるディスクドライブにおいて、少なくとも読み出しデータの開始・終了の4K ブロックはキャッシュされる。書き込み要求の対象のディスク・データの多くは先ず読まれるので、次の書き込み要請のときドライブコントローラは、キャッシュに開始・終了ブロックが存在するか判定し、もしそうであれば、それらのブロックに新データを書き込み、それらについて全ECCを計算し、ついで、中間のブロックについてECC を計算し、該中間ブロックに新データを書き込む。もし、開始・終了両ブロックともキャッシュに無い場合は、ドライブコントローラは、高データ保全性ルーティンか高パフォーマンスルーチンのいずれかユーザが選んだ方を実行する。
【選択図】 図3
Description
本発明は、ハードディスクドライブ(HDDと略記)一般に関し、特に、但し限定するものではないが、独立ディスクの冗長配列(RAID)におけるHDDおよびハードディスクドライブコントローラに関する。
20年以上前の固定ブロックハードディスクアーキテクチャーの導入以来、ディスクブロックつまりデータセクタの標準サイズは、典型的には512バイト、いくつかの特殊用途ドライブでは520と528バイト、のまま変わらなかった。ディスクドライブの記録密度の持続的増加に伴い、一セクタが占める物理的スペースは当然ますます縮小した。しかし、本発明が理解するところ、磁気媒体におけるスクラッチや異物混入のような問題となる物理的欠陥の大きさは、小さくなるとしても、同様な比率では縮小しない。その結果、一セクター内で欠陥が生ずると、集積度のより小さい古いドライブと比べて、より大きな部分のデータが破壊されることになると本発明は理解する。
このことに対抗するためには、より強力なエラー訂正コード(エラーコレクションコード、以下“ECC”)が必要になる。しかし、より強力なECCはより冗長性を要求する、すなわち、ディスクにおいてユーザデータよりECCのために必要とされる蓄積スペースの割合が増加することになる。本発明の理解するところ、このデータフォーマット効率の減少を避けるため、より強力なECC は、より大きなブロックサイズにおいて適用し、冗長性の増大をより大きなバイト数によってカバーすることになる。さらに、ECCの強さに係わらず、修正作業のためには、データブロックの相当部分はエラーフリーでなければならない。一欠陥のわたるバイト数が大きければ大きいほど、データブロックは大きくなければならない。これらの理由により、本発明では、標準的ブロックサイズは、例えば、4キロバイト(4KB)に増やすべきだと考える。本明細書における説明では4KBを用いるが、本発明はそのようなブロックサイズに限るものではない。
この変更を実現する一つの方法は、現在の業界標準インターフェースである512バイトを4KBに変更することであろう。残念ながら、これは、オペレーションシステムソフトウエアやBIOSファームウエアの広範囲の変更を必要とする。
この変更を実現するもう一つの方法は、4KBのECCブロックサイズを内部的に実施するディスクドライブを作ることである。外部的には、インターフェイスは現在の512バイトのブロックサイズのままでよく、ドライブが512バイトブロックサイズインターフェイスをエミュレートする。本発明は、そのようなエミュレーションが直接的で簡単であると認識する。より具体的には、読み取り命令で、ドライブは、ただ単に要求された512バイトを含む原4KBブロックを読み、要求されたデータをホストに返す。書き込み命令では、もし、書き込むべきデータが4KB倍数で、そのデータが原4KBブロック領域に配置される場合は、単にその新データの為にECCを生成しディスクに書き込むことができる。しかしながら、本発明の理解するところ、この両条件のいずれかでも満たされなければ、該新データの初め及び又は終わりが部分的にHDDの原4KBブロックの内部にかかることになり、その場合は、ドライブは最初に先の4KBブロック及び又は続く4KBブロックを読み、該新データを一つ又は複数のブロックに入れ、変更された一又は複数のブロックのためのECCを生成し、すべての新ブロックをディスクに書かなければならない。このような読み−変更−書く手順は、現在もそうであるように、余分のドライブの回転を必要とし、ドライヴの性能を下げる。
より詳細にいうならば、HDDにおいて4KBECCブロックを実施する方法は2つの方法がある。第一の方法は、原セクター・サイズを512バイトから4KBに増やすことであり、セクターECCを512バイト・セクターのそれから4KBセクター用にエンハンスする。512バイトセクターインターフェイスを依然として用いるホストに対して、そのような4KBセクターは論理的には8ヶの512バイト論理セクターである。この方法による4KBブロックをここでは「原4KBブロック」とよぶ。第2の方法は、原セクターサイズ512バイトを維持し、そのようなセクターの数を増やした集合に対して高位レベルのECCを適用する。一例は、各原512バイトセクタについてのセクタECCを第1レベルECCと呼び、4つの連続したセクタ1グループについて第2レベルのより強力なECCを計算し付加する。さらに8つの連続したセクタ1グループについて第3レベルのさらに強力なECCを計算し付加する。このような複数レベルECC方法は、何レベルでも、またレベルあたり何セクタでも使用でき、Integrated Sector Format(ISF)と呼ばれる。8連続512バイトのISFセクターが4KBECCブロック(例示の第3レベルECCに対応)を構成する。このような4KBブロックを以下「ISF4KBブロック」と呼ぶ。
本発明の認識するところ、原512バイトセクタに個々にアクセスすることは可能ではあるが、多重レベルのECCをすべて適切に維持する為には、ISFブロック全体をアップデートしなければならい。茲に開示する本発明は、上記の両方のタイプの4KB ECC ブロックに適用でき、いくかの特徴はISF4KBブロックにのみ適用できる。以下において、「ブロック」は、特記しない限り原4KBブロックかISF4KBブロックを意味する。
ディスクドライブの記録密度の持続的増加に伴い、一セクタが占める物理的スペースは当然ますます縮小した。しかし、磁気媒体におけるスクラッチや異物混入のような問題となる物理的欠陥の大きさは、小さくなるとしても、同様な比率では縮小しない。その結果、一セクター内で欠陥が生ずると、集積度のより小さい古いドライブと比べて、より大きな部分のデータが破壊されることになる。
このことに対抗するためには、より強力なエラー訂正コード(エラーコレクションコード、以下“ECC”)が必要になる。しかし、より強力なECCはより冗長性を要求する、すなわち、ディスクにおいてユーザ・データよりECCのために必要とされる蓄積スペースの割合が増加することになる。本発明が解決しようとする課題は、かかるデータフォーマット効率の減少を避け、高密度記録再生を実現することにある。
本発明は、上記課題を解決するために、データは、書かれる前に先ず読まれることが多いことに注目した。これは、あるレコードが更新されたり、ユーザーファイル(テキスト、図、プレゼンテーション、写真、ビデオクリップ等)を編集するときに起きる。また、複数のドライブ(例えば、RAID4,5、6)にわたって冗長性が計算されるRAIDアプリケーションでは、あるドライブへの書き込みは、必ず、RAIDコントローラによる新データと新パリティの書き込み前に、そのドライブからの旧データ及びパリティドライブからの旧パリティの読み出しが行われる。
この認識に基づき、HDDは少なくとも1ストレージディスク、1データキャッシュとそのディスクとキャッシュにアクセスする1ドライブコントローラーを有する。ドライブコントロ−ラー、第1のサイズより小さい第2のサイズ(例えば、512バイト)を使用するシステムからの少なくとも1つの書き込み要求に応じて、第1サイズ(例えば4KB)のブロックにすくなくともなにがしのデータを蓄積する論理を実行する。このドライブの論理は、データの書き込み要求の受領と、少なくとも書き込みデータの開始アドレスと終了アドレスに係わる開始ブロックと終了ブロックをディスク上に確認することを含む。その開始・終了ブロックは、第1ブロックサイズである。書き込みデータは、開始ブロックと終了ブロックを部分的に占めるだけである。
次に、論理は、少なくとも開始ブロックと終了ブロックがキャッシュに存在するか否かを判定する。もし、これらがキャッシュに存在する場合は、論理には、キャッシュの開始ブロック・終了ブロックの少なくとも一つに要求されたデータを書き込み、少なくとも1ブロックを変更し、この変更されたブロックについてエラー訂正コード(ECC)を生成することが含まれる。要求された新データは開始ブロックと終了ブロックの間のブロックに書き込まれる。
好ましい実施例では、開始ブロックと終了ブロックがキャッシュに存在する場合は、ドライブコントローラが実行する論理は、さらに、開始ブロックと終了ブロックの間のブロック一つ一つに対してECCコードを生成することを含む。開始ブロック及び終了ブロックは、ディスク上にあったデータを読むのにしたがって、キャッシュに保存されることが望ましい。
ISFを用いるドライブの場合、開始及び又は終了ISFブロックがキャッシュに存在しなければ、ドライブコントローラーは、書き込み要求を実行するのに、高データ保全性ルーティン又は高パフォーマンスルーティンを実行することができる。原4KBブロックを用いるHDDの場合は、もし、開始及び又は終了ブロックがキャッシュに存在しない場合は、高データ保全性ルーチンがいつも実行され、高パフォーマンスルーチンが実行されることはない。ドライブコントローラーによって実行される高データ保全性ルーチンは開始ブロックと終了ブロックをディスクからキャッシュにコピーすることを含み得、要求に係わる新データをキャッシュにある少なくとも一つの開始ブロック又は終了ブロックに書き込み、少なくとも一つの変更されたブロックを生成し、続いて当該変更されたブロックのエラー修正コード(ECC)を生成する。開始ブロックと終了ブロックの中間にある個々のブロックのECC も生成される。要請された新データ及び新ECCは開始ブロックから終了ブロックまでディスクに書かれる。
対照的に、ISF HDDの場合のドライブコントローラによって実行される高パフォーマンスルーチンは開始ISF ブロック又は終了ISFブロックがキャッシュに存在するか否かを判定することを含み得、いずれかがキャッシュに存在する場合は、新データはそのキャッシュ内ISFブロックに書き込まれ、当該ISFブロックのについて全多重レベルECCが生成される。キャッシュに存在しない開始・終了ISFブロック各々については、そのブロックの新セクタについて第1レベルECCのみが生成される。
もう一つの態様では、ハードディスクドライブコントローラは、キャッシュと第1サイズのブロックにデータを蓄積している少なくとも一つのストレージディスクにアクセスしており、第1サイズより小さい第2サイズのブロックを用いる要求者からのインプット・アウトプット要求を受ける。コントローラは、ディスク上のデータへの読み取り要求を受ける手段を有している。要求されたデータは、開始ブロックを部分的に占め、終了ブロックも部分的に占める。開始ブロックと終了ブロックの全体をキャッシュにコピーする手段を有している。コントローラは、さらに、ディスクへの新データ書き込み要求をも受ける手段を有す、が、ここで新データは(読み取り)要求されたデータに係わるものである。開始ブロックと終了ブロックがキャッシュに存在することが確認された場合に、新データを開始ブロックと終了ブロックに書き込み、少なくとも1ブロックを更新する手段を有する。コントローラは、さらに更新されたブロックについてエラー訂正コード(ECC)を生成する手段も有しており、開始ブロックと終了ブロックの間のブロックに要求に係わる新データを書き込む手段も有している。
さらにもう一つの態様では、ハードディスクドライブコントローラは、キャッシュと第1サイズのブロックにデータを有している少なくとも一つのディスクにアクセスしており、コントローラは、第1サイズより小さい第2サイズのブロックを用いているクライアントからの読み取り要求と書き込み要求に応ずる。ディスクドライブコントローラは、開始ブロック、終了ブロックを部分的にのみ占めるデータの読み取り要求に従って、開始ブロックと終了ブロックの全体をキャッシュに蓄積することを含む論理を実行する。続くそのデータについての書き込み要求に対して、コントローラは、開始ブロックと終了ブロックがキャッシュに存在するか否かを判断し、もしそうなら、コントローラーは書き込み要求に係わる新データを開始・終了ブロックに書き込み、更新されたブロックを作成し、それに対して全エラー訂正コード(ECC)を生成する。
本発明の詳細は、その構造及び動きに関し、添付図面を参照することによりもっともよく理解されるものであり、図面において参照番号はしかるべき部分を指す:
以上説明したように、本発明によれば、データフォーマット効率の減少を避け、高密度記録再生を実現できる効果を奏する
先ず図1について説明すると、10は一般的なRAIDシステムを示しており、RAIDコントローラ 12を有し、これが1つ以上のクライアントプロセッサ 14と交信し、比較的小さいブロックサイズ、例えば512バイト、を用いる複数のハードディスクドライブ16に対しデータの蓄積・引出しをおこなう。図2は、本発明のハードディスクドライブ16がドライブコントローラ18を有し、比較的大きいブロックサイズ、例えば4000バイト(4KB)、を用いるRAIDコントローラ12からの要請に応じ1つ以上のデータストレージディスク20に対しデータの読み出し・書き込みを行う。各HDD16は既に知られたHDD技術原理に従い半導体データキャッシュ20を有することができる。限定条件ではないが望ましい実施例として、本発明の論理を実行するドライブコントローラ18は、内部ドライブコントロール電子機器であり、外部ホスト−バス−アダプター式コントロール電子機器ではない。
図3は、開始及び終了4KBブロック24、26と、開始及び終了ブロック24、26の間に存在する要求された連続セクタ28を示す。ほとんどの場合、読み取り要求あるいは書き込み要求の対象であるデータ(512バイトのいわゆる論理ブロックアドレス(「LBA」)が付せられている)は、図3のハッチングした部分に示すように、開始及び終了ブロック24、26を部分的に占めるのみであり、要求された開始セクタのアドレスは、「開始LBA」30とラベルを付け、要求された終了セクタのアドレスは「終了LBA」32とラベルが付されており、このような場合において本発明が特に有効である。512バイトのセクタが1乃至2のような小さな要請の場合、開始ブロック24と終了ブロック26は同じブロックであることもありえる。
いずれにしろ、図1に示すRAIDコントローラ12のようなクライアントあるいはユーザが用いるHDD―ホストのインターフェースブロック(例えば512バイト)と比べて、HDD内部のブロック24、26のサイズは比較的大きく、例えば図3の34に示すように4KBである。図3に示すように、開始ブロック24は開始アドレス36を有し、図3に「開始LBA」と表示、一方終了ブロック26は、終了アドレス38を有し、図3では「終了LBA」と表示している。すなわち、望ましい実施例では、開始LBA30は、例えば開始LBA'36と記した512バイトセクタ8ヶの4KB ブロックの中にあり、終了LBA32は、終了LBA'38と記した8セクタからなる4KBブロックの中にあることが望ましい。
図4は、ドライブコントローラ18が読み取り要求を実行する論理を示しており、本発明では、書き込み要求の対象であるデータは、上に開示したように、しばしば先ず読み取られると認識している。40状態で読み取り要求がHDDに来ることから始まり、ブロック42でドライブコントローラ18は読み取り要求の開始LBA30と終了LBA32を確認する。次に、ブロック44において、開始LBA30を含む開始ブロック24の開始LBA'36を確認し、次のブロック46で終了LBA32を含む終了ブロック26の終了LBA'38を確認する。論理は次にブロック48に進み、ドライブコントローラ18は、開始IBA'36と終了LBA'36をそれぞれ含む両者間の全512バイトセクタから読み出しを行う。ブロック50では、ドライブコントローラ18は、キャッシュ22に、最低、開始ブロック24の全体と終了ブロック24の全体を蓄積する。もし望むなら、ドライブコントローラ18は開始ブロック24と終了ブロックの間のブロックもキャッシュ22に保存しても良い、
ISFドライブの場合は、個々の512バイトブロックを読み取り可能であるので、コントロ−ラ18は、上記論理を意図的にとらなければならない。原ブロックサイズが真に4KBである他のECCスキームを用いるドライブの場合は、ドライブ16は4KBより小さいものは読めないので、自然に上記論理になる。もし要求されたデータのサイズが小さければ、コントローラは通常読み取り要求データをキャッシュし、読み取り要求全体が開始ブロック及び終了ブロックを含めまとめてキャッシュに蓄積することができる。対照的に、要求データのサイズが大きいときは、コントローラ18は通常読み取り要求データをキャッシュせず、開始及び終了ブロック24,26のみがキャッシュされる必要がある。
ISFドライブの場合は、個々の512バイトブロックを読み取り可能であるので、コントロ−ラ18は、上記論理を意図的にとらなければならない。原ブロックサイズが真に4KBである他のECCスキームを用いるドライブの場合は、ドライブ16は4KBより小さいものは読めないので、自然に上記論理になる。もし要求されたデータのサイズが小さければ、コントローラは通常読み取り要求データをキャッシュし、読み取り要求全体が開始ブロック及び終了ブロックを含めまとめてキャッシュに蓄積することができる。対照的に、要求データのサイズが大きいときは、コントローラ18は通常読み取り要求データをキャッシュせず、開始及び終了ブロック24,26のみがキャッシュされる必要がある。
図5は、ドライブコントローラ18が書き込み要求を実行する論理を示す。52状態でドライブコントロ−ラ18に書き込み要求が来るところから始まる。ドライブコントローラ18は、ブロック54で、書き込み要求の対象のデータの開始LBA30と終了LBA32を確認する。次にブロック56で、論理は、開始ブロック24の開始LBA'36と終了ブロック26の終了LBA'38を確認する。選択決定を示す菱形58に進み、開始ブロック24全体がキャッシュ22に存在するか確認される。もし存在しなければ、論理は、探すブロックがキャッシュ22に無いことを示す60状態で終わり、図6で説明する次の処理に進む。そうでない場合は、論理は、ブロック62に進み、書き込み要請の開始セクタをキャッシュ22にある開始ブロック24に挿入し、対応する原セクターを置き換える。そこで、新、望ましくは全、ECCが、更新された開始ブロックについて従来のECC技術原理に従って生成される。
決定菱形枠64に進み、ドライブコントローラ18は、キャッシュ22に終了ブロック26の全体が存在するかを確認する。もしなければ、論理は状態60で終了するが、そうでなければ、論理はブロック66に進み、書き込み要求の終了セクターをキャッシュ22にある終了ブロック26に挿入し、対応する原セクターを置き換える。新、望ましくは全、ECCが、更新された終了ブロックについて生成される。
ブロック66からブロック68に進み、ドライブコントローラ18の論理は、開始ブロック24と終了ブロック26の間の新データの入った全ブロックについて全ECCを生成する。望ましくは、ブロック68のステップ後、ブロック70で、開始LBA'36から終了LBA'38まで、両端を含む、の全セクタが、全新ECCとともに、ディスク20に書き出される。
上に説明した書き込み方法は、オーバーヘッドをほとんど負わないで、書き込み要求に先だって同じアドレスについて読み出し要求が有る場合に−RAIDS と多くのユーザアプリケーションの場合そうであるが−ドライブが(ディスクから)読みだし−修正−書き込みをしなくてすむようにするものである。
次に図6であるが、図5の60状態になったとき(開始ブロック又は終了ブロック24,26のいずれか又は両方ともキャッシュ22に存在せず、書き込みデータについて全ECCを生成できないとき)、論理は72状態から始まり、決定菱形74に移りユーザによるデータの高保全性又は高パフォーマンスの選択が決められる。高パフォーマンスのオプションはISF ドライブの場合にのみ選択可能であり、原4KBブロックドライブの場合は選択できない。この選択は、最初にユーザによりドライブコントローラ18がインストールされるときになされるか、あるいは、ドライブコントローラ18にデフォールト設定しておいてもよい。高データ保全性が選択された場合、ドライブコントロ−ラ18は、状態76に進み図7の論理を実行する。そうではなく、高パフォーマンスが選ばれた場合は、コントローラ18は、状態78に進み図8及び9の論理を実行する。
図7の高データ保全性論理は状態80から始まり、82に進んでキャッシュに無かった開始及び又は終了ブロックをディスクから読んでキャッシュ22に入れる。ブロック84に進み、ドライブコントローラ18は、キャッシュの開始ブロックに書き込み要求の開始セクタを挿入して開始ブロックを変更して、対応する元セクタを置き換え、変更した開始ブロックの新ECCを生成する。ブロック86では、ドライブコントローラ18は、キャッシュの終了ブロックに書き込み要求の終了セクタを挿入して終了ブロックを変更して、対応する元セクタを置き換え、変更した終了ブロックの新ECCを生成する。ドライブコントローラ18は、次にブロック88に進み、開始ブロックと終了ブロックの間の新データの全ブロックについてECCを生成する。最後に、ブロック90で、開始LBA'から終了LBA'までの全セクタが、全新ECCと併せ、ディスクに書き出される。
図7の高データ保全性論理は状態80から始まり、82に進んでキャッシュに無かった開始及び又は終了ブロックをディスクから読んでキャッシュ22に入れる。ブロック84に進み、ドライブコントローラ18は、キャッシュの開始ブロックに書き込み要求の開始セクタを挿入して開始ブロックを変更して、対応する元セクタを置き換え、変更した開始ブロックの新ECCを生成する。ブロック86では、ドライブコントローラ18は、キャッシュの終了ブロックに書き込み要求の終了セクタを挿入して終了ブロックを変更して、対応する元セクタを置き換え、変更した終了ブロックの新ECCを生成する。ドライブコントローラ18は、次にブロック88に進み、開始ブロックと終了ブロックの間の新データの全ブロックについてECCを生成する。最後に、ブロック90で、開始LBA'から終了LBA'までの全セクタが、全新ECCと併せ、ディスクに書き出される。
上記高データ保全性論理では、読み取り−変更―書き込みが行われるので、パフォーマンスを犠牲にされるが、4KBECCのデータ信頼性の特徴が維持される。
対照的に、図8の高パフォーマンス論理は、ISFドライブヴの場合にのみ利用でき、状態92に始まり、決定菱形94に進んで書き込むべきデータの開始ISF ブロック24全体がキャッシュ22に存在するかを判定する。もし、noであれば、論理はブロック96に進み既存技術のECC原理に従って開始ISFブロックの新セクターについて第1レベルのECC のみを生成する。キャッシュ22にすべての必要なセクタが存在しないため開始ISF ブロックについて全ECC は生成されない。加えて、ブロック96では、ホルダー変数「SLBA」は開始LBA30とセットされる。
キャッシュ22に書き込みデータの開始ISF ブロック24の全体が存在する場合は、論理は、決定菱形94からブロック98に移り、そこで、書き込み要求の開始セクタがキャッシュ22にある開始ISFブロック24に挿入され、対応する元セクタを置き換える。変更された開始ISF ブロックについて全(全レベルの)新ECCが生成される。加えて、ブロック98ではSLBAは開始LBA'36にセットされる。
ブロック96又は98から論理は決定菱形100に移り、キャッシュ22に書き込みデータの終了ISF ブロック26全体が入っているか否かを判定する。もし入っていなければ、論理はブロック102に移り終了ISFブロックの新セクタについて第1レベルのECCのみを生成する。加えて、ブロック102において、ホルダー変数「ELBA」は終了LBA32とセットされる。
キャッシュ22に終了ISF ブロック26の全体が存在する場合は、論理は、決定菱形100からブロック104に移り、そこで、書き込み要求の終了セクタがキャッシュ22にある終了ISFブロック26に挿入され、対応する元セクタを置き換える。変更された終了ISF ブロックについて全(全レベルの)新ECCが生成される。加えて、ブロック104ではELBAは終了LBA'38にセットされる。
ブロック106に進み、ドライブコントローラ18は、開始ブロックと終了ブロックの間の新データの全ISFブロックについて全多重レベルECCを生成する。最後に、ブロック108で、SLBAからELBAまで、両端を含む、の全セクタが、ディスクに書き出される。
図8の高パフォーマンスのオプションが選択された場合、全部のブロックについて全多重レベルECCが生成されるわけではないので、ドライブコントロ−ラのアイドル時間に自律的なバックグラウンドプロセスを用いてそのようなブロックを探してディスクをスクラブしECCを更新することが望ましい。ドライヴ16の全蓄積空間は論理的に数多くのデータスクラブ単位に区切られている。これらの単位は固定サイズも可変サイズもよい。効率のためには、1スクラブ単位は少なくとも512セクタ有ることが望ましい。望ましい実施例では、物理的なトラックをデータスクラブの単位として使用している。このようにして、待ち時間ゼロの(すなわち、ヘッドがトラックに来ると同時に読み始める)の読み取り技術が読み取りスクラブに際し容易に適用でき、回転による遅延オーバーヘッドは無くなる。これらスクラブデータ単位に対応するビットマップを用いてスクラブした単位を管理することができるが、他のどんな方法を用いてもよい。スクラブサイクルの開始ごとにビットマップをリセットする。
図8の高パフォーマンスのオプションが選択された場合、全部のブロックについて全多重レベルECCが生成されるわけではないので、ドライブコントロ−ラのアイドル時間に自律的なバックグラウンドプロセスを用いてそのようなブロックを探してディスクをスクラブしECCを更新することが望ましい。ドライヴ16の全蓄積空間は論理的に数多くのデータスクラブ単位に区切られている。これらの単位は固定サイズも可変サイズもよい。効率のためには、1スクラブ単位は少なくとも512セクタ有ることが望ましい。望ましい実施例では、物理的なトラックをデータスクラブの単位として使用している。このようにして、待ち時間ゼロの(すなわち、ヘッドがトラックに来ると同時に読み始める)の読み取り技術が読み取りスクラブに際し容易に適用でき、回転による遅延オーバーヘッドは無くなる。これらスクラブデータ単位に対応するビットマップを用いてスクラブした単位を管理することができるが、他のどんな方法を用いてもよい。スクラブサイクルの開始ごとにビットマップをリセットする。
図9に基本的なスクラブループを示す。状態110に始まり、論理はブロック112に進み、次にスクラブされるべきデータ単位が選ばれ、次にブロック114でドライブコントローラー18によって読まれる。決定菱形116において、ISFブロックで古いECCを持っているものがないか判定され、もしそうであれば、ブロック118において、これらのセクタについて新多重レベルECCが生成される。これら新多重レベルECC付きブロックはディスクに書き込まれる。ブロック120において、ドライブコントローラ18は、どのデータ単位がスクラブされたかのリスト(又はビットマップ)を更新する。ブロック122において、ドライブコントローラ18はディスク20全体がスクラブ済みであるかを判定し、もしそうでなければ、論理はブロック112にループバックする。もしディスク全体がスクラブ済みであれば、論理はブロック110にループバックし新しいスクラブサイクルを始める。
図8に示す高パフォーマンス論理のためのISFドライブの場合では、個々の512バイトセクタが読みだし書き込みされ得るので、ドライブは更新されたセクタのみについて書き込みに進むことができ、第1レベルECCを生成するが、第2第3レベルECCは更新しなくてよい。このようなECCの部分的な更新では、読み出し−更新―書き込みを行わない分、パフォーマンスの損失を受けない。その代り、これらのブロックについては4KBECC のデータ信頼性の特徴は一時的に失われることになる。部分的に更新したECC/CRCチェックによる訂正誤り探知が保証されている。後に、背景スクラブ処理でディスクをスキャンし、ECCが適切に更新されなかったブロックについて完全に更新することができ、それらのブロックについてデータ信頼性を完全に回復することができる。
以上により本発明がHDDに実施される場合の価値が理解されよう。HDD が接続されるホストはHDDが大ブロックECCを採用していることを知らず、従って、何ら変更の必要はない。すなわち、ホストはいまの標準的なインターフェイスを用いて運営されていてよいのである
此処に示し詳細に説明した「4Kブロックサイズを用いてハードディスクドライブへの書き込みを行うハードディスクドライブコントローラおよびそれを用いたハードディスクドライブ」は、上記に説明した本発明の目的を完全に達成できるものであるが、次のことを理解すべきである。すなわち、これは本発明の現時点での望ましい実施形態であり、本発明が広く考えるところのものを代表的に表すものであり、本発明の範囲は、当該技術に長けた者にとってすぐに分かるような実施例は包含するものであり、かつ、本発明の範囲は従って、添付の請求項以外によっては限定されるものではなく、その請求項において単数形で言及している要素は明確にそう言及していない限り「唯一の」を意図的に意味しているのではなくむしろ「一つ以上の」を意味している。本発明の範囲に入るために、ある機器あるいは方法が本発明が解決しようとする問題をすべて解決するものである必要はない。さらには、本開示におけるいかなる要素、部品、方法のステップも、それが請求項に明示に言及されているか否かにかかわらず、公に提供することを意図していない。本開示におけるいかなる要素も、「の手段」の語句を用いて、又は、方法クレームの場合は、当該要素が「作用」ではなく「ステップ」として使用されているのでなければ、35U.S.C.112条、第6パラグラフに従って解釈してはならない。明確な定義がない場合は、請求項の語句は本明細書とファイル経歴と矛盾しない普通のいつもの意味に解釈されねばならない。
此処に示し詳細に説明した「4Kブロックサイズを用いてハードディスクドライブへの書き込みを行うハードディスクドライブコントローラおよびそれを用いたハードディスクドライブ」は、上記に説明した本発明の目的を完全に達成できるものであるが、次のことを理解すべきである。すなわち、これは本発明の現時点での望ましい実施形態であり、本発明が広く考えるところのものを代表的に表すものであり、本発明の範囲は、当該技術に長けた者にとってすぐに分かるような実施例は包含するものであり、かつ、本発明の範囲は従って、添付の請求項以外によっては限定されるものではなく、その請求項において単数形で言及している要素は明確にそう言及していない限り「唯一の」を意図的に意味しているのではなくむしろ「一つ以上の」を意味している。本発明の範囲に入るために、ある機器あるいは方法が本発明が解決しようとする問題をすべて解決するものである必要はない。さらには、本開示におけるいかなる要素、部品、方法のステップも、それが請求項に明示に言及されているか否かにかかわらず、公に提供することを意図していない。本開示におけるいかなる要素も、「の手段」の語句を用いて、又は、方法クレームの場合は、当該要素が「作用」ではなく「ステップ」として使用されているのでなければ、35U.S.C.112条、第6パラグラフに従って解釈してはならない。明確な定義がない場合は、請求項の語句は本明細書とファイル経歴と矛盾しない普通のいつもの意味に解釈されねばならない。
10…RAIDシステム、12…RAIDコントローラ、14…クライアントプロセッサ、16…ハードディスクドライブ(HDD)、18…ハードディスクドライブコントローラ(ドライブコントローラ)、20…データストレージディスク、20…半導体データキャッシュ(キャッシュ)、24…開始4KBブロック、26…終了4KBブロック、28…連続セクタ、30…開始LBA、32…終了LBA、34…4KBブロックECCブロック、36…開始アドレス(開始LBA’)、38…終了アドレス(終了LBA’)、40…読出し要求着、42…ブロック、44…ブロック、46…ブロック、48…ブロック、50…ブロック、52…書込み要求着、54…ブロック、56…ブロック、58…選択決定を示す菱形、62…ブロック、64…選択決定を示す菱形、66…ブロック、68…ブロック、70…ブロック、74…選択決定を示す菱形、82…ブロック、84…ブロック、86…ブロック、88…ブロック、90…ブロック、94…選択決定を示す菱形、96…ブロック、96…ブロック、98…ブロック、100…選択決定を示す菱形、102…ブロック、104…ブロック、106…ブロック、108…ブロック、112…ブロック、114…ブロック、116…選択決定を示す菱形、118…ブロック、120…ブロック、122…ブロック。
Claims (16)
- 少なくとも1つのストレージディスクと、少なくとも1つのデータキャッシュ、及び、該ディスクとキャッシュにアクセスするドライブコントローラを備えたハードディスクドライブ(HDD)において、該ドライブコントローラは、少なくとも何らかのデータを、該ディスク上の第1サイズのブロックに、第1サイズよりは小さい第2サイズのブロックを用いるシステムからの少なくとも1つの書き込み要求に応じて蓄積する論理を実行し、その論理は、少なくとも1つの書き込み要求を受けること、該ディスク上にあるデータの少なくとも開始ブロックと終了ブロックを確認すること−ここで、該開始ブロックと終了ブロックは第1サイズであり、該ディスク上の該データは該開始ブロックと終了ブロックを部分的に占めるのみである−、少なくとも該開始ブロックと終了ブロックが該キャッシュに存在するか否かを判定すること、もし該開始ブロックと終了ブロックが該キャッシュに存在する場合は、該要求に係わる新データを少なくとも該キャッシュ上の該開始・終了ブロックの少なくとも1つに書き込み、少なくとも1つのブロックを更新すること、その更新されたブロックにエラー訂正コード(error correction code: ECC)を生成すること、および、少なくとも該開始ブロックと終了ブロックの間のブロックに要求に係わる新データを書き込むこととを含む論理であることを特徴とするハードディスクドライブ(HDD)。
- 前記開始ブロックと終了ブロックが前記キャッシュに存在する場合に、前記ドライブコントローラが実行する論理に、さらに、該開始ブロックと終了ブロックの間の全ブロックについてECCを生成することが含まれることを特徴とする請求項1に記載のHDD。
- 前記ディスク上にあるデータの読み出しに従って、前記開始ブロックと終了ブロックを前記キャッシュに保存することを特徴とする請求項1に記載のHDD。
- 前記開始ブロックと終了ブロックが前記キャッシュに存在しない場合に、前記ドライブコントローラは、高データ保全性ルーチンと高パフォーマンスルーチンの少なくとも1つを実行し、前記データ書き込み要求を実行することを特徴とする請求項1に記載のHDD。
- 前記ドライブコントローラが実行する前記高データ保全性ルーチンには、前記開始ブロックと終了ブロックを前記ディスクから前記キャッシュへコピーすること、要求された新データを前記キャッシュの中の該開始・終了ブロックの少なくとも1つに書き込み、少なくとも1つのブロックを更新すること、該更新されたブロックについてエラー訂正コード(error correction code: ECC)を生成すること、該開始ブロックと終了ブロックの間の全ブロックについてECCを生成すること、及び、要求された新データを少なくとも該開始・終了ブロックの間のブロックに書き込むこととを含むことを特徴とする請求項4に記載のHDD。
- 前記ドライブコントローラはISF ドライブコントローラであり、該ISFコントローラが実行する前記高パフォーマンスルーチンは、前記開始ブロックと終了ブロックの少なくとも1つが、前記キャッシュに存在するか否かを判定すること、該キャッシュに存在する開始・終了ISFブロック各々について新データを書き込み、そして当該ブロックについて全多重レベルECCを生成すること、及び、該キャッシュに存在しない開始・終了ブロック各々について、第1レベルECC のみを生成することとを含むことを特徴とする請求項4に記載のHDD。
- 少なくとも1つのキャッシュと第1サイズのブロックにデータが蓄積されている少なくとも1つのストレージディスクにアクセスするハードディスクコントローラであって、該ディスクコントローラは、第1サイズよりは小さい第2サイズのブロックを使用する要求者からのインプット/アウトプット要求を受けるものであり、かつ、該ディスク上の、開始ブロックを部分的に占め又終了ブロックを部分的に占める要求されたデータの、少なくとも1つの読み取り要求を受ける手段、少なくとも該開始ブロック及び終了ブロックの全体を該キャッシュにコピーする手段、該ディスクに要求されたデータと関連した新データを書き込む書き込み要求を受ける手段、該開始ブロックと終了ブロックが該キャッシュに存在することが確認されたら、該開始・終了ブロックの少なくとも1つに少なくとも何らかの新データを書き込み少なくとも1つのブロックを更新する手段、その更新されたブロックにエラー訂正コード(error correction code: ECC)を生成する手段、及び、少なくとも該開始・終了ブロックの間のブロックに要請された新データを書き込む手段とを備えるハードディスクドライブコントローラ。
- さらに、前記キャッシュに前記開始・終了ブロックが存在する場合に、該開始ブロックと終了ブロックの間の全ブロックについてECCを生成する手段を備えることを特徴とする請求項7に記載のハードディスクドライブコントローラ。
- さらに、前記キャッシュに前記開始・終了ブロックが存在しない場合に、高データ保全性ルーチンと高パフォーマンスルーチンの少なくとも1つを実行し、前記書き込み要求を遂行する手段を備えることを特徴とする請求項7に記載のハードディスクドライブコントローラ。
- 前記高データ保全性ルーチンが、前記開始ブロック及び終了ブロックの少なくとも1つをディスクから前記キャッシュにコピーする手段、キャッシュの中の該開始・終了ブロックの少なくとも1つに要求された新データを書き込み、少なくとも1つのブロックを更新する手段、その更新されたブロックにエラー訂正コード(error correction code: ECC)を生成する手段、該開始ブロックと終了ブロックの間の全ブロックにECCを生成する手段、及び、少なくとも該開始・終了ブロックの間のブロックに要求された新データを書き込む手段とを有することを特徴とする請求項9に記載のハードディスクドライブコントローラ。
- 前記高パフォーマンスルーチンが、開始ISF ブロックである前記開始ブロックと終了ISF ブロックである前記終了ブロックの少なくとも1つが、前記キャッシュに存在するか否か判定する手段、該キャッシュに存在する各開始・終了ISF ブロックについて、該ブロックに新データを書き込み、続いて該ISFブロックについて全多重レベルECC を生成する手段、及び、該キャッシュに存在しない開始・終了ISFブロック各々について、第1レベルECC のみを生成する手段とを有することを特徴とする請求項9に記載のハードディスクドライブコントローラ。
- 少なくとも1つのデータキャッシュと第1サイズのブロックにデータを有する少なくとも1つのディスクにアクセスするハードディスクコントローラであって、該ディスク・コントローラは、第1サイズよりは小さい第2サイズのブロックを使用するクライアントからの読みだし要求及び書き込み要求を受けるものであり、かつ、開始・終了ブロックを部分的にのみ占めるデータの読み出し要求に従って、少なくとも該開始ブロックと終了ブロックの全体をキャッシュに保存し、続く少なくとも該データのいくらかを必要とする書き込み要求について、該キャッシュに該開始ブロックと終了ブロックがキャッシュされているかを確認し、もしそうであれば、書き込み要求のあった新データを少なくとも該開始・終了ブロックの1つに書き込み、少なくとも1つのブロックを更新し、その更新されたブロックにつちえ全エラー訂正コード(error correction code: ECC)を生成する論理を実行するハードディスクドライブコントローラ。
- さらに、書き込み要求のあった新データを少なくとも前記開始・終了ブロックの間のブロックに書き込み、該開始ブロックと終了ブロックの間の全ブロックについてECC を生成することを特徴とする請求項12に記載のハードディスクドライブコントローラ。
- 前記キャッシュに前記開始・終了ブロックが存在しない場合に、該コントローラは、高データ保全性ルーチンと高パフォーマンス・ルーチンの少なくとも1つを実行し、前記データ書き込み要求を遂行することを特徴とする請求項12に記載のハードディスクドライブコントローラ。
- 前記ドライブコントローラによって実行される高データ保全性ルーチンは、前記開始ブロック及び終了ブロックをディスクから前記キャッシュにコピーし、キャッシュの中の該開始・終了ブロックの少なくとも1つに要求された新データを書き込み、少なくとも1つのブロックを更新し、その更新されたブロックにエラー訂正コード(error correction code: ECC)を生成し、該開始ブロックと終了ブロックの間の全ブロックにECCを生成し、そして、少なくとも該開始・終了ブロックの間のブロックに要求請された新データを書き込むことを含むことを特徴とする請求項14に記載のハードディスクドライブコントローラ。
- 前記ドライブコントローラによって実行される前記高パフォーマンスルーチンは、開始ISF ブロックと終了ISF ブロックの少なくとも1つが前記キャッシュに存在するか否か判定し、該キャッシュに存在する開始・終了ISF ブロック各々について、該ブロックに新データを書き込み、続いて該ISFブロックについて全多重レベルECC を生成し、そして、該キャッシュに存在しない開始・終了ISFブロック各々について、該ISF ブロックの第1レベルECC のみを生成することを含むことを特徴とする請求項9に記載のハードディスクドライブコントローラ。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US10/640,915 US7080200B2 (en) | 2003-08-14 | 2003-08-14 | System and method for handling writes in HDD using 4K block sizes |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2005063441A true JP2005063441A (ja) | 2005-03-10 |
Family
ID=34136213
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2004234375A Pending JP2005063441A (ja) | 2003-08-14 | 2004-08-11 | 4kブロックサイズを用いてハードディスクドライブへの書き込みを行うハードディスクドライブコントローラおよびそれを用いたハードディスクドライブ |
Country Status (3)
Country | Link |
---|---|
US (1) | US7080200B2 (ja) |
JP (1) | JP2005063441A (ja) |
CN (1) | CN1299193C (ja) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103748568A (zh) * | 2011-08-18 | 2014-04-23 | 国际商业机器公司 | 经由来自在第二块尺寸的块内仿真第一块尺寸的块的盘驱动器的通知对破坏性写入的指示 |
EP2866137A1 (en) | 2013-10-24 | 2015-04-29 | Fujitsu Limited | Apparatus, program, and method for controlling storage devices |
JP2022508694A (ja) * | 2018-10-12 | 2022-01-19 | スーパーメム,アイエヌシー. | 誤り訂正及びデータスクラビング回路を備えたメモリシステム |
Families Citing this family (37)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7277986B2 (en) * | 2005-03-30 | 2007-10-02 | Emc Corporation | Sector-edge cache |
US7539924B1 (en) | 2005-11-15 | 2009-05-26 | Western Digital Technologies, Inc. | Disk drive implementing data path protection by encoding large host blocks into sub blocks |
JP4842719B2 (ja) * | 2006-06-28 | 2011-12-21 | 株式会社日立製作所 | ストレージシステム及びそのデータ保護方法 |
KR101332645B1 (ko) * | 2007-07-18 | 2013-11-25 | 삼성전자주식회사 | 하드 디스크 드라이브 컨트롤러 및 그를 구비하는 하드디스크 드라이브 |
US8024515B2 (en) * | 2007-12-07 | 2011-09-20 | Hitachi Global Storage Technologies Netherlands B.V. | Non-volatile cache in disk drive emulation |
US8014095B2 (en) * | 2007-12-28 | 2011-09-06 | Hitachi Global Storage Technologies, Netherlands, B.V. | Mixed format disk drive |
US7757113B2 (en) * | 2008-02-19 | 2010-07-13 | Lsi Corporation | Enhanced RAID level 3 |
JP5339817B2 (ja) | 2008-08-23 | 2013-11-13 | エイチジーエスティーネザーランドビーブイ | 異なるサイズのデータ・セクタによるインターフェースをサポートするディスク・ドライブ装置及びそのデータ・ライト方法 |
US8006027B1 (en) | 2008-09-11 | 2011-08-23 | Western Digital Technologies, Inc. | Method of staging small writes on a large sector disk drive |
US8255661B2 (en) * | 2009-11-13 | 2012-08-28 | Western Digital Technologies, Inc. | Data storage system comprising a mapping bridge for aligning host block size with physical block size of a data storage device |
US8285965B2 (en) * | 2009-11-20 | 2012-10-09 | Western Digital Technologies, Inc. | Aligning data storage device partition to boundary of physical data sector |
US8397107B1 (en) | 2009-12-11 | 2013-03-12 | Western Digital Technologies, Inc. | Data storage device employing data path protection using both LBA and PBA |
US8661193B1 (en) | 2010-10-29 | 2014-02-25 | Western Digital Technologies, Inc. | Disk drive with partial sector management |
US8578100B1 (en) | 2010-11-08 | 2013-11-05 | Western Digital Technologies, Inc. | Disk drive flushing write data in response to computed flush time |
JP2012113789A (ja) * | 2010-11-26 | 2012-06-14 | Buffalo Inc | ハードディスクドライブ装置およびその処理装置 |
US8539303B2 (en) * | 2010-12-20 | 2013-09-17 | Intel Corporation | Low overhead error correcting code protection for stored information |
WO2012137256A1 (en) * | 2011-04-06 | 2012-10-11 | Hitachi, Ltd. | Disk array apparatus and control method thereof |
US9043543B2 (en) | 2011-05-23 | 2015-05-26 | International Business Machines Corporation | Writing of new data of a first block size in a raid array that stores both parity and data in a second block size |
US8954668B2 (en) | 2011-05-23 | 2015-02-10 | International Business Machines Corporation | Writing of data of a first block size in a raid array that stores and mirrors data in a second block size |
US9116788B2 (en) * | 2011-06-10 | 2015-08-25 | International Business Machines Corporation | Using extended asynchronous data mover indirect data address words |
US8990493B1 (en) | 2011-06-30 | 2015-03-24 | Western Digital Technologies, Inc. | Method and apparatus for performing force unit access writes on a disk |
US8654619B1 (en) | 2011-09-29 | 2014-02-18 | Western Digital Technologies, Inc. | Method and apparatus for operating a disk drive |
US8671250B2 (en) | 2011-12-15 | 2014-03-11 | Western Digital Technologies, Inc. | Data storage device generating redundancy for data path protection of a parity sector |
US9063838B1 (en) | 2012-01-23 | 2015-06-23 | Western Digital Technologies, Inc. | Data storage device shifting data chunks of alignment zone relative to sector boundaries |
US8996839B1 (en) | 2012-01-23 | 2015-03-31 | Western Digital Technologies, Inc. | Data storage device aligning partition to boundary of sector when partition offset correlates with offset of write commands |
US20130198843A1 (en) | 2012-01-26 | 2013-08-01 | International Business Machines Corporation | Antivirus scan during a data scrub operation |
US9213486B2 (en) * | 2012-02-22 | 2015-12-15 | International Business Machines Corporation | Writing new data of a first block size to a second block size using a write-write mode |
CN102866862A (zh) * | 2012-07-26 | 2013-01-09 | 浪潮电子信息产业股份有限公司 | 一种基于4k扇区硬盘性能优化的方法 |
JP2014211800A (ja) * | 2013-04-19 | 2014-11-13 | 株式会社東芝 | データ記憶装置、ストレージコントローラおよびデータ記憶制御方法 |
US9727278B2 (en) * | 2013-06-13 | 2017-08-08 | Netapp, Inc. | System and methods for mitigating write emulation on a disk device using cache memory |
US8767327B1 (en) | 2013-06-20 | 2014-07-01 | HGST Netherlands B.V. | Heat-assisted magnetic recording (HAMR) disk drive and method for writing |
US8797669B1 (en) | 2013-08-30 | 2014-08-05 | Western Digital Technologies, Inc. | Disk drive executing rotational position optimization (RPO) algorithm to facilitate a read-modify-write operation |
US10664479B2 (en) * | 2014-06-27 | 2020-05-26 | Sap Se | Accommodating concurrent changes in underlying data during reporting |
CN104461642A (zh) * | 2014-12-16 | 2015-03-25 | 浪潮电子信息产业股份有限公司 | 基于Linux系统下4K技术硬盘性能提升设定及性能检测的方法 |
US9842622B1 (en) | 2014-12-23 | 2017-12-12 | Western Digital Technologies, Inc. | Data storage device having improved read failure tolerance |
US11182358B2 (en) | 2019-07-18 | 2021-11-23 | International Business Machines Corporation | Performance enhanced data scrubbing |
JP2023140541A (ja) | 2022-03-23 | 2023-10-05 | 株式会社東芝 | 磁気ディスク装置 |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5394534A (en) * | 1992-09-11 | 1995-02-28 | International Business Machines Corporation | Data compression/decompression and storage of compressed and uncompressed data on a same removable data storage medium |
US5428630A (en) * | 1993-07-01 | 1995-06-27 | Quantum Corp. | System and method for verifying the integrity of data written to a memory |
US5813025A (en) * | 1994-08-10 | 1998-09-22 | Unisys Corporation | System and method for providing variable sector-format operation to a disk access system |
US5946328A (en) * | 1997-11-17 | 1999-08-31 | International Business Machines Corporation | Method and means for efficient error detection and correction in long byte strings using integrated interleaved Reed-Solomon codewords |
DE10009924B4 (de) * | 2000-03-01 | 2005-11-17 | Sauer-Danfoss Holding Aps | Einrichtung zur Dämpfung von Nickschwingungen eines motorgetriebenen Fahrzeugs |
EP1280063A3 (en) | 2001-07-27 | 2005-03-30 | Fujitsu Limited | Cache control methods and apparatus for hard disk drives |
US6944717B2 (en) * | 2001-07-27 | 2005-09-13 | Fujitsu Limited | Cache buffer control apparatus and method using counters to determine status of cache buffer memory cells for writing and reading data therefrom |
US6903887B2 (en) * | 2002-01-03 | 2005-06-07 | International Business Machines Corporation | Multiple level (ML), integrated sector format (ISF), error correction code (ECC) encoding and decoding processes for data storage or communication devices and systems |
-
2003
- 2003-08-14 US US10/640,915 patent/US7080200B2/en not_active Expired - Fee Related
-
2004
- 2004-08-11 JP JP2004234375A patent/JP2005063441A/ja active Pending
- 2004-08-13 CN CNB2004100575005A patent/CN1299193C/zh not_active Expired - Fee Related
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103748568A (zh) * | 2011-08-18 | 2014-04-23 | 国际商业机器公司 | 经由来自在第二块尺寸的块内仿真第一块尺寸的块的盘驱动器的通知对破坏性写入的指示 |
US8812798B2 (en) | 2011-08-18 | 2014-08-19 | International Business Machines Corporation | Indication of a destructive write via a notification from a disk drive that emulates blocks of a first block size within blocks of a second block size |
JP2014523043A (ja) * | 2011-08-18 | 2014-09-08 | インターナショナル・ビジネス・マシーンズ・コーポレーション | 第2のブロック・サイズのブロック内の第1のブロック・サイズのブロックをエミュレートするディスク・ドライブからの通知を介した破壊的書き込みのインジケーションのための方法、システム、およびコンピュータ・プログラム(第2のブロック・サイズのブロック内の第1のブロック・サイズのブロックをエミュレートするディスク・ドライブからの通知を介した破壊的書き込みのインジケーション) |
US9207883B2 (en) | 2011-08-18 | 2015-12-08 | International Business Machines Corporation | Indication of a destructive write via a notification from a disk drive that emulates blocks of a first block size within blocks of a second block size |
US9372633B2 (en) | 2011-08-18 | 2016-06-21 | International Business Machines Corporation | Indication of a destructive write via a notification from a disk drive that emulates blocks of a first block size within blocks of a second block size |
EP2866137A1 (en) | 2013-10-24 | 2015-04-29 | Fujitsu Limited | Apparatus, program, and method for controlling storage devices |
US9529707B2 (en) | 2013-10-24 | 2016-12-27 | Fujitsu Limited | Apparatus and method for reducing read-modify-write cycles by combining unaligned write commands |
JP2022508694A (ja) * | 2018-10-12 | 2022-01-19 | スーパーメム,アイエヌシー. | 誤り訂正及びデータスクラビング回路を備えたメモリシステム |
JP7224689B2 (ja) | 2018-10-12 | 2023-02-20 | スーパーメム,アイエヌシー. | 誤り訂正及びデータスクラビング回路を備えたメモリシステム |
Also Published As
Publication number | Publication date |
---|---|
US20050036381A1 (en) | 2005-02-17 |
US7080200B2 (en) | 2006-07-18 |
CN1581055A (zh) | 2005-02-16 |
CN1299193C (zh) | 2007-02-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP2005063441A (ja) | 4kブロックサイズを用いてハードディスクドライブへの書き込みを行うハードディスクドライブコントローラおよびそれを用いたハードディスクドライブ | |
JP4372134B2 (ja) | データ比較機能を有するストレージシステム | |
US7318121B2 (en) | Synchronized mirrored data in a data storage device | |
US7861035B2 (en) | Method of improving input and output performance of raid system using matrix stripe cache | |
US7472219B2 (en) | Data-storage apparatus, data-storage method and recording/reproducing system | |
US7774540B2 (en) | Storage system and method for opportunistic write-verify | |
US20190243679A1 (en) | Information processing device system capable of preventing loss of user data | |
US9298393B2 (en) | Buffer management for increased write speed in large sector data storage device | |
JP2004213647A (ja) | データ記憶装置およびシステム用のログ構造の書込みキャッシュ | |
US10346051B2 (en) | Storage media performance management | |
US8862856B2 (en) | Implementing remapping command with indirection update for indirected storage | |
JPH08321138A (ja) | デジタル・データを格納する方法 | |
JP4922442B2 (ja) | バッファ管理装置、同装置を備えた記憶装置、及びバッファ管理方法 | |
JP4405421B2 (ja) | ストレージ装置およびプログラム。 | |
JP2006072435A (ja) | ストレージシステムおよびデータ記録方法 | |
JP2006099802A (ja) | 記憶制御装置およびキャッシュメモリの制御方法 | |
JP2001092600A (ja) | 大容量記憶装置を持つコンピュータシステムおよびその動作方法 | |
JP2005284816A (ja) | ディスクアレイシステム | |
US9081505B1 (en) | Method and system for improving disk drive performance | |
JP2007323377A (ja) | 記録装置、管理データの書き込み方法および管理データの修復方法 | |
JP2005516304A (ja) | データを処理する方法、データ記憶システム、ファイルシステム及びコンピュータプログラム | |
JP7288191B2 (ja) | ストレージ制御装置およびストレージ制御プログラム | |
JP2005115983A (ja) | 記録再生装置及び記録方法 | |
JP2005004733A (ja) | ストレージ・システムにおいて書込みエラーを検出するための配置構成および方法 | |
US11307774B2 (en) | Storage control device, non-transitory computer-readable storage medium, and storage control method |