JP2010267164A - 記憶装置、データ転送制御装置、データ転送方法およびデータ転送プログラム - Google Patents
記憶装置、データ転送制御装置、データ転送方法およびデータ転送プログラム Download PDFInfo
- Publication number
- JP2010267164A JP2010267164A JP2009119302A JP2009119302A JP2010267164A JP 2010267164 A JP2010267164 A JP 2010267164A JP 2009119302 A JP2009119302 A JP 2009119302A JP 2009119302 A JP2009119302 A JP 2009119302A JP 2010267164 A JP2010267164 A JP 2010267164A
- Authority
- JP
- Japan
- Prior art keywords
- data
- sector
- sub
- unit
- inspection
- 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
- G11—INFORMATION STORAGE
- G11B—INFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
- G11B20/00—Signal processing not specific to the method of recording or reproducing; Circuits therefor
- G11B20/10—Digital recording or reproducing
- G11B20/18—Error detection or correction; Testing, e.g. of drop-outs
- G11B20/1833—Error detection or correction; Testing, e.g. of drop-outs by adding special lists or symbols to the coded information
-
- 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/1816—Testing
-
- 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/10527—Audio or video recording; Data buffering arrangements
- G11B2020/1062—Data buffering arrangements, e.g. recording or playback buffers
- G11B2020/1075—Data buffering arrangements, e.g. recording or playback buffers the usage of the buffer being restricted to a specific kind of data
- G11B2020/10759—Data buffering arrangements, e.g. recording or playback buffers the usage of the buffer being restricted to a specific kind of data content data
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11B—INFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
- G11B20/00—Signal processing not specific to the method of recording or reproducing; Circuits therefor
- G11B20/10—Digital recording or reproducing
- G11B20/18—Error detection or correction; Testing, e.g. of drop-outs
- G11B20/1833—Error detection or correction; Testing, e.g. of drop-outs by adding special lists or symbols to the coded information
- G11B2020/1843—Error detection or correction; Testing, e.g. of drop-outs by adding special lists or symbols to the coded information using a cyclic redundancy check [CRC]
-
- 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
- G11B2220/25—Disc-shaped record carriers characterised in that the disc is based on a specific recording technology
- G11B2220/2508—Magnetic discs
- G11B2220/2516—Hard disks
Landscapes
- Engineering & Computer Science (AREA)
- Signal Processing (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
Abstract
【課題】セクタサイズが大きい場合であっても、少ないメモリ容量でデータの送受を行うことができる記憶装置、データ転送制御装置、データ転送方法およびデータ転送プログラムを提供すること。
【解決手段】リード処理を行う場合に、ドライブ部から読み出したセクタデータをサブセクタデータに分割し、サブセクタデータごとに誤り検査用の符号を付与してバッファに格納し、バッファから読み出したサブセクタデータをメモリに格納して検査処理を行った後に、サブセクタデータが転送サイズに達した場合に、メモリ内のデータをホスト装置へ送信する。
【選択図】図1
【解決手段】リード処理を行う場合に、ドライブ部から読み出したセクタデータをサブセクタデータに分割し、サブセクタデータごとに誤り検査用の符号を付与してバッファに格納し、バッファから読み出したサブセクタデータをメモリに格納して検査処理を行った後に、サブセクタデータが転送サイズに達した場合に、メモリ内のデータをホスト装置へ送信する。
【選択図】図1
Description
本発明は、記憶装置、データ転送制御装置、データ転送方法およびデータ転送プログラムに関する。
従来、大規模なコンピュータシステムなどでは、複数のディスクを搭載するストレージ装置が用いられている。ストレージ装置は、一般に、セクタ単位にデータの読み出しや書き込みを行う。具体的には、ストレージ装置は、ライト処理を行う場合に、ホスト装置から受け付けたデータをセクタサイズに分割して、分割したデータごとに誤り検出用の符号などを付与してディスクに書き込む。また、ストレージ装置は、リード処理を行う場合に、ディスクからセクタ単位でデータを読み出し、読み出したデータに対して誤り検出用の符号を用いた検査を行い、検査後のデータをホスト装置へ送信する。
図10を用いて、従来のストレージ装置によるデータの送受処理について説明する。図10は、従来のストレージ装置によるデータの送受処理の一例を示す図である。図10に示した例において、従来のストレージ装置900は、ドライブ部901と、メモリ902とを有する。ドライブ部901は、例えば、磁気ディスク等の記憶デバイスであり、各種データを記憶する。メモリ902は、例えば、FIFO(First In First Out)方式によりデータ管理を行う記憶デバイスである。
図10に示した例において、ホスト装置1とストレージ装置900との間で送受されるデータの転送サイズは、1024[Byte]に決められているものとする。また、1個のセクタのサイズは、512[Byte]であるものとする。
このような条件の下、ストレージ装置900は、ライト処理を行う場合に、ホスト装置1から受け付けたデータをメモリ902に格納する。ここでは、データの転送サイズが1024[Byte]であるので、ストレージ装置900は、メモリ902に1024[Byte]のデータを格納することになる。そして、ストレージ装置900は、メモリ902に記憶されているデータをセクタサイズごとに分割し、分割したセクタデータごとに誤り検出用の符号などを付与して、所定のバッファに格納する。そして、ストレージ装置900は、バッファに格納したセクタデータに対して検査処理等を行った後に、検査後のセクタデータをドライブ部901に格納する。ここでは、セクタサイズが512[Byte]であるので、ストレージ装置900は、メモリ902に記憶されているデータを2個のセクタデータに分割してドライブ部901に格納する。
また、ストレージ装置900は、リード処理を行う場合に、ドライブ部901からセクタ単位でデータを読み出す。そして、ストレージ装置900は、読み出したセクタデータを所定のバッファに格納した後にメモリ902に格納し、かかるデータに対して検査処理等を行う。そして、ストレージ装置900は、メモリ902に格納したデータが転送サイズに達した場合に、メモリ902内のデータをホスト装置へ送信する。ここでは、セクタサイズが512[Byte]であり、データの転送サイズが1024[Byte]であるので、ストレージ装置900は、検査後のセクタデータをメモリ902に2個格納した場合に、メモリ902内のデータをホスト装置へ送信する。
このように、ストレージ装置900は、検査処理後のデータをホスト装置1へ送信することにより、誤りが存在するデータをホスト装置1へ送信してしまうことを防止している。
ところで、近年では、データ訂正能力の向上や、記録容量の増大を目的として、セクタサイズを拡大する傾向にある。しかしながら、上述した従来技術には、セクタサイズを拡大すると、多くのメモリ容量を用いるという問題があった。
かかる問題点について、図10に示した例を用いて説明する。なお、ここでは、上記例と同様に、セクタサイズが512[Byte]であり、データの転送サイズが1024[Byte]であるものとする。上述したように、従来のストレージ装置900は、リード処理を行う場合に、セクタデータをメモリ902に格納して検査処理を行い、メモリ902に格納したデータが転送サイズに達した場合にデータを送信する。すなわち、上記例において、メモリ902のサイズは、少なくとも1024[Byte]以上であることが求められる。
なお、システムにもよるが、一般に、セクタサイズが512[Byte]であり、転送サイズが1024[Byte]である場合、メモリ902のサイズは、マージンを持たせるために、512[Byte]に3を乗算した1536[Byte]などに設計される。
ここで、例えば、セクタのサイズを4[KB](4096[Byte])に拡大した場合、従来のストレージ装置900は、リード処理時に、4[KB]のセクタデータをメモリ902に格納して検査処理を行うことになる。すなわち、メモリ902のサイズは、少なくとも4[KB]以上であることが求められる。上述したように、メモリ902のサイズは、一般にマージンを持たせるので、4[KB]に2を乗算した8[KB]などに設計されることが考えられる。
このように、従来のストレージ装置を用いた場合、セクタサイズの拡大に伴って、メモリ容量も増大することになる。このことは、メモリを増設することになるので、ストレージ装置の価格が上昇してしまうという問題を招く。
開示の技術は、上記に鑑みてなされたものであって、セクタサイズが大きい場合であっても、少ないメモリ容量でデータの送受を行うことができる記憶装置、データ転送制御装置、データ転送方法およびデータ転送プログラムを提供することを目的とする。
本願の開示する記憶装置は、一つの態様において、ホストとの間で所定の転送サイズごとにデータを送受する記憶装置であって、データをセクタ単位に記憶するドライブ部と、リード処理を行う場合に、前記ドライブ部からセクタ単位に読み出したデータであるセクタデータを検査する第一の検査部と、前記第一の検査部によって検査されたセクタデータを前記セクタよりも小さいサイズであるサブセクタ単位に分割する分割部と、前記分割部によって分割されたサブセクタデータごとに誤り検査用の符号を付与する付与部と、前記付与部によって誤り検査用の符号が付与されたサブセクタデータを記憶するバッファから読み出されたサブセクタデータを、所定のメモリに格納し、前記付与部によって付与された誤り検査用の符号を用いて検査する第二の検査部と、前記メモリから、前記第二の検査部によって検査されたサブセクタデータを読み出して前記転送サイズごとに前記ホストへ送信する送信部とを備える。
本願の開示する記憶装置の一つの態様によれば、セクタサイズが大きい場合であっても、少ないメモリ容量でデータの送受を行うことができるという効果を奏する。
以下に、本願の開示する記憶装置、データ転送制御装置、データ転送方法およびデータ転送プログラムの実施例を図面に基づいて詳細に説明する。なお、この実施例により本願の開示する記憶装置、データ転送制御装置、データ転送方法およびデータ転送プログラムが限定されるものではない。
[実施例1に係る記憶装置の構成]
まず、図1を用いて、実施例1に係る記憶装置の構成について説明する。図1は、実施例1に係る記憶装置の構成例を示す図である。図1に示した例において、実施例1に係る記憶装置10は、ホスト装置1と接続されており、ホスト装置1との間で所定の転送サイズごとにデータを送受する。かかる記憶装置10は、図1に示した例のように、ドライブ部11と、第一検査部12と、分割部13と、付与部14と、バッファ15と、第二検査部16と、メモリ17と、送信部18とを有する。
まず、図1を用いて、実施例1に係る記憶装置の構成について説明する。図1は、実施例1に係る記憶装置の構成例を示す図である。図1に示した例において、実施例1に係る記憶装置10は、ホスト装置1と接続されており、ホスト装置1との間で所定の転送サイズごとにデータを送受する。かかる記憶装置10は、図1に示した例のように、ドライブ部11と、第一検査部12と、分割部13と、付与部14と、バッファ15と、第二検査部16と、メモリ17と、送信部18とを有する。
以下に、リード処理時における各部の処理について説明する。ドライブ部11は、誤り検出用の符号が付与されたデータをセクタ単位に記憶する。第一検査部12は、リード処理を行う場合に、ドライブ部11からセクタ単位にデータを読み出し、読み出したデータに対して、誤り検出用の符号を用いた検査を行う。
分割部13は、第一検査部12によって検査されたセクタデータをセクタのサイズよりも小さいサイズに分割する。なお、以下では、分割されたセクタのそれぞれを「サブセクタ」と表記するものとする。また、分割されたセクタデータのそれぞれを「サブセクタデータ」と表記するものとする。
付与部14は、分割部13によって分割されたサブセクタデータごとに誤り検査用の符号を付与する。バッファ15は、付与部14によって誤り検査用の符号が付与されたサブセクタデータを記憶する。
第二検査部16は、バッファ15からサブセクタデータを読み出してメモリ17に格納し、付与部14によって付与された誤り検査用の符号を用いて検査を行う。メモリ17は、各種データを一時的に記憶する記憶デバイスである。送信部18は、メモリ17から、第二検査部16によって検査されたサブセクタデータを読み出して、転送サイズごとにホスト装置1へ送信する。
[実施例1の効果]
上述してきたように、実施例1に係る記憶装置10は、リード処理を行う場合に、ドライブ部11から読み出したセクタデータをサブセクタデータに分割し、サブセクタデータごとに誤り検査用の符号を付与してバッファ15に格納する。そして、記憶装置10は、バッファ15から読み出したサブセクタデータをメモリ17に格納して検査処理を行う。そして、記憶装置10は、検査後のサブセクタデータが転送サイズに達した場合に、メモリ17内のデータをホスト装置1へ送信する。
上述してきたように、実施例1に係る記憶装置10は、リード処理を行う場合に、ドライブ部11から読み出したセクタデータをサブセクタデータに分割し、サブセクタデータごとに誤り検査用の符号を付与してバッファ15に格納する。そして、記憶装置10は、バッファ15から読み出したサブセクタデータをメモリ17に格納して検査処理を行う。そして、記憶装置10は、検査後のサブセクタデータが転送サイズに達した場合に、メモリ17内のデータをホスト装置1へ送信する。
このように、実施例1に係る記憶装置10は、ドライブ部11のセクタサイズが大きい場合であっても、分割したサブセクタデータをメモリ17に格納するので、メモリ17の容量を多く用いることはない。
例えば、図10に示したストレージ装置900と比較して説明する。上述したように、図10に示したストレージ装置900は、セクタサイズが4[KB]である場合、リード処理時に、4[KB]のセクタデータをメモリ902に格納して検査処理を行うことになる。すなわち、メモリ902のサイズは、少なくとも4[KB]以上であることが求められる。
一方、図1に示した記憶装置10は、セクタサイズが4[KB]であっても、分割したサブセクタデータをメモリ17に格納して検査処理を行うことになる。例えば、記憶装置10は、セクタデータを512[Byte]のサブセクタデータに分割する場合、512[Byte]のサブセクタデータをメモリ17に格納して検査処理を行うことになる。したがって、この例の場合、図1に示したメモリ17のサイズは、転送サイズの1024[Byte]以上であればよい。すなわち、記憶装置10がセクタデータを512[Byte]のサブセクタデータに分割する場合、メモリ17に求められるサイズは、セクタサイズが512[Byte]の場合と同様である。このように、実施例1に係る記憶装置10は、セクタサイズが大きい場合であっても、少ないメモリ容量でデータの送受を行うことができる。
以上のことから、実施例1に係る記憶装置10を用いると、メモリ17の容量を増大させずにセクタサイズを拡大することができる。このため、実施例1に係る記憶装置10を用いると、セクタサイズが大きい場合であっても、メモリを増設することがないので、記憶装置の価格が上昇することを防止することができる。
次に、上記実施例1において説明した記憶装置10について具体例を用いて説明する。実施例2では、実施例1において説明した記憶装置10を、ストレージ装置に適用する例について説明する。
なお、実施例2では、データに付与される誤り検査用の符号として、CRC(Cyclic Redundancy Check)符号を用い、データに付与される誤り訂正用の符号として、ECC(Error Correcting Code)を用いる例を示す。また、実施例2では、ストレージ装置内部で付与されるCRC符号を「BCRC」と表記し、ストレージ装置内部で付与されるECCを「BECC」と表記するものとする。また、実施例2では、1個のセクタのサイズが4[KB]であり、1個のサブセクタのサイズが512[Byte]であり、ホスト装置との間で送受されるデータの転送サイズが1024[Byte]である場合を例に挙げて説明する。
[実施例2に係るストレージ装置の構成]
まず、図2を用いて、実施例2に係るストレージ装置の構成について説明する。図2は、実施例2に係るストレージ装置の構成例を示す図である。図2に示した例において、実施例2に係るストレージ装置100は、ホスト装置1と接続されており、ホスト装置1との間で所定の転送サイズごとにデータを送受する。また、ストレージ装置100は、図2に示した例のように、ドライブ部110と、ドライブ制御部120と、第一検査部130と、バッファマネージャ140と、バッファ150と、第二検査部160と、インタフェース制御部170とを有する。
まず、図2を用いて、実施例2に係るストレージ装置の構成について説明する。図2は、実施例2に係るストレージ装置の構成例を示す図である。図2に示した例において、実施例2に係るストレージ装置100は、ホスト装置1と接続されており、ホスト装置1との間で所定の転送サイズごとにデータを送受する。また、ストレージ装置100は、図2に示した例のように、ドライブ部110と、ドライブ制御部120と、第一検査部130と、バッファマネージャ140と、バッファ150と、第二検査部160と、インタフェース制御部170とを有する。
以下に、ストレージ装置100が有する各部について、(1)ストレージ装置100によってリード処理が行われる場合と、(2)ストレージ装置100によってライト処理が行われる場合とに分けて説明する。
(1)リード時における各部の処理
まず、ストレージ装置100によってリード処理が行われる場合における各部の処理について説明する。ドライブ部110は、例えば、磁気ディスク等の記憶デバイスであり、セクタ単位に各種データを記憶する。なお、実施例2では、1個のセクタのサイズが4[KB]であるので、ドライブ部110は、4[KB]のセクタごとにデータを記憶する。
まず、ストレージ装置100によってリード処理が行われる場合における各部の処理について説明する。ドライブ部110は、例えば、磁気ディスク等の記憶デバイスであり、セクタ単位に各種データを記憶する。なお、実施例2では、1個のセクタのサイズが4[KB]であるので、ドライブ部110は、4[KB]のセクタごとにデータを記憶する。
ドライブ制御部120は、ストレージ装置100によってリード処理が行われる場合に、ドライブ部110から、セクタ単位にデータを読み出して、読み出したセクタデータを第一検査部130へ出力する。
第一検査部130は、ストレージ装置100によってリード処理が行われる場合に、ドライブ制御部120から入力されたセクタデータに付与されているBCRCを用いて、かかるセクタデータに誤りがあるか否かを検査する。そして、第一検査部130は、誤りを検出した場合に、セクタデータに付与されているBECCを用いて、かかるセクタデータの誤りを訂正する。
そして、第一検査部130は、検査後のセクタデータからBCRCおよびBECCを除去した後に、セクタサイズよりも小さいサブセクタデータに分割する。そして、第一検査部130は、分割したサブセクタデータごとにBCRCおよびBECCを算出して、算出したBCRCおよびBECCを付与する。実施例2では、セクタサイズが4[KB]であり、サブセクタのサイズが512[Byte]であるので、第一検査部130は、4[KB]のセクタデータを、512[Byte]のサブセクタデータに分割する。なお、第一検査部130は、図1に示した第一検査部12と、分割部13と、付与部14とに相当する。
バッファマネージャ140は、バッファ150を制御する。具体的には、バッファマネージャ140は、ストレージ装置100によってリード処理が行われる場合に、第一検査部130によってBCRCおよびBECCが付与されたサブセクタデータをバッファ150に格納する。バッファ150は、ホスト装置1とストレージ装置100との間で送受されるデータを一時的に記憶するキャッシュである。
ここで、図3を用いて、第一検査部130およびバッファマネージャ140による処理について説明する。図3は、リード処理時における第一検査部130およびバッファマネージャ140による処理の一例を示す図である。
図3に示した例において、ドライブ部110は、4[KB]のセクタデータSD10を記憶している。図3に示すように、セクタデータSD10は、データD10と、BCRCと、BECCとを含む。第一検査部130は、ドライブ制御部120から、図3に例示したセクタデータSD10が入力された場合、セクタデータSD10に付与されているBCRCを用いて、セクタデータSD10に誤りがあるか否かを検査する。そして、第一検査部130は、誤りを検出した場合に、セクタデータSD10に付与されているBECCを用いて、セクタデータSD10の誤りを訂正する。
続いて、第一検査部130は、検査後のデータD10を、図3の下段に示した例のように、8個のデータD11〜D18に分割する。なお、データD11〜D18のサイズは、それぞれ512[Byte]である。そして、第一検査部130は、分割したデータD11〜D18に、それぞれBCRCおよびBECCを付与する。図3に示した例では、第一検査部130は、データD11にBCRC11とBECC11とを付与し、データD12にBCRC12とBECC12とを付与している。同様に、第一検査部130は、データD13〜D18についても、それぞれBCRC13〜18と、BECC13〜18とを付与している。
そして、バッファマネージャ140は、図3の下段に示した例のように、第一検査部130によってBCRCおよびBECCが付与されたサブセクタデータSB11〜SB18をバッファ150に格納する。
図2の説明に戻って、第二検査部160は、ストレージ装置100によってリード処理が行われる場合に、バッファマネージャ140を介して、バッファ150からサブセクタデータを読み出す。そして、第二検査部160は、読み出したサブセクタデータを後述するメモリ171に格納し、格納したサブセクタデータに付与されているBCRCを用いて、かかるサブセクタデータに誤りがあるか否かを検査する。そして、第二検査部160は、誤りを検出した場合に、サブセクタデータに付与されているBECCを用いて、かかるサブセクタデータの誤りを訂正する。
インタフェース制御部170は、ホスト装置1との間でデータを送受するインタフェースを制御する。具体的には、インタフェース制御部170は、メモリ171にデータを一時的に格納しながら、ホスト装置1との間でデータを送受する。メモリ171は、例えば、FIFO方式によりデータ管理を行う記憶デバイスである。なお、インタフェース制御部170は、図1に示したメモリ17と送信部18とに対応する。
ここで、図4を用いて、第二検査部160およびインタフェース制御部170による処理について説明する。図4は、リード処理時における第二検査部160およびインタフェース制御部170による処理の一例を示す図である。なお、図4に示した例において、バッファ150には、図3において説明したサブセクタデータSB11〜SB18が記憶されているものとする。
図4に示した例において、第二検査部160は、バッファマネージャ140を介して、バッファ150からサブセクタデータSB11を読み出す。そして、第二検査部160は、読み出したサブセクタデータSB11をメモリ171に格納して、サブセクタデータSB11に付与されているBCRC11を用いて、サブセクタデータSB11に誤りがあるか否かを検査する。そして、第二検査部160は、誤りを検出した場合に、サブセクタデータSB11に付与されているBECC11を用いて、サブセクタデータSB11の誤りを訂正する。同様にして、第二検査部160は、バッファ150からサブセクタデータSB12を読み出してメモリ171に格納し、サブセクタデータSB12の検査および訂正を行う。
そして、インタフェース制御部170は、メモリ171に格納されているサブセクタデータが、転送サイズの1024[Byte]に達した場合に、データをホスト装置1へ送信する。図4に示した例では、インタフェース制御部170は、データD11と、データD12とがメモリ171に格納されて、第二検査部160による検査処理および訂正処理が終了した後に、データD11およびD12をホスト装置1へ送信する。
同様にして、インタフェース制御部170は、データD13およびD14がメモリ171に格納されて、第二検査部160による検査処理および訂正処理が終了した後に、データD13およびD14をホスト装置1へ送信する。同様にして、インタフェース制御部170は、データD15およびD16をホスト装置1へ送信し、データD17およびD18をホスト装置1へ送信する。
なお、第二検査部160またはインタフェース制御部170は、ホスト装置1へ送信するデータに、CRCおよびECCを付与する。例えば、図4に示した例において、第二検査部160またはインタフェース制御部170は、データD11およびD12の後尾に、CRCおよびECCを付与する。
(2)ライト時における各部の処理
次に、ライト処理時におけるストレージ装置100の処理について説明する。実施例2に係るストレージ装置100は、ライト処理を行う場合、ホスト装置1から受け付けたデータを、リード処理時と同様のサイズのサブセクタデータに分割して、バッファ150に格納する。そして、ストレージ装置100は、バッファ150に格納したサブセクタデータを結合することにより、セクタ単位にデータをドライブ部110に格納する。このように、ストレージ装置100は、リード処理時と同様のサブセクタデータをバッファ150に格納することで、リード処理時にキャッシュヒットを実現可能にする。
次に、ライト処理時におけるストレージ装置100の処理について説明する。実施例2に係るストレージ装置100は、ライト処理を行う場合、ホスト装置1から受け付けたデータを、リード処理時と同様のサイズのサブセクタデータに分割して、バッファ150に格納する。そして、ストレージ装置100は、バッファ150に格納したサブセクタデータを結合することにより、セクタ単位にデータをドライブ部110に格納する。このように、ストレージ装置100は、リード処理時と同様のサブセクタデータをバッファ150に格納することで、リード処理時にキャッシュヒットを実現可能にする。
以下に、ライト処理時における図2に示した各部の処理について説明する。なお、ドライブ部110と、バッファ150については、リード時と同様の機能であるため、説明を省略する。
インタフェース制御部170は、ストレージ装置100によってライト処理が行われる場合、ホスト装置1からデータを受信し、受信したデータをメモリ171に格納する。なお、ホスト装置1から受信したデータには、CRCとECCとが付与されている。
第二検査部160は、メモリ171に格納されているデータに対して検査処理および訂正処理を行う。そして、第二検査部160は、検査後のデータをサブセクタデータ単位に分割して、サブセクタデータごとにBCRCおよびBECCを付与する。
バッファマネージャ140は、ストレージ装置100によってライト処理が行われる場合に、第二検査部160によってBCRCおよびBECCが付与されたサブセクタデータをバッファ150に格納する。
ここで、図5を用いて、ライト処理時における第二検査部160およびバッファマネージャ140による処理について説明する。図5は、ライト処理時における第二検査部160およびバッファマネージャ140による処理の一例を示す図である。
図5に示した例において、インタフェース制御部170は、1024[Byte]のデータD20を受信して、受信したデータD20をメモリ171に格納している。図5に示すように、データD20にはCRCおよびECCが付与されている。第二検査部160は、データD20に付与されているCRC符号を用いて、データD20に誤りがあるか否かを検査する。そして、第二検査部160は、誤りを検出した場合に、データD20に付与されているECCを用いて、データD20の誤りを訂正する。
続いて、第二検査部160は、検査後のデータD20を、図5の下段に示した例のように、512[Byte]のデータD21と、データD22とに分割する。そして、第二検査部160は、分割したデータD21およびD22に、それぞれBCRCおよびBECCを付与する。図5に示した例では、第二検査部160は、データD21にBCRC21およびとBECC21を付与し、データD22にBCRC22およびBECC22を付与している。
そして、バッファマネージャ140は、図5の下段に示した例のように、第二検査部160によってBCRCおよびBECCが付与されたサブセクタデータSB21およびSB22をバッファ150に格納する。
第二検査部160は、ホスト装置1からデータを受信するたびに、メモリ171に格納されているデータに対して、検査処理および訂正処理を行い、検査後のデータを分割してBCRCおよびBECCを付与する。そして、バッファマネージャ140は、第二検査部160によって、サブセクタデータが生成されるたびに、生成されたサブセクタデータをバッファ150に格納する。
図2の説明に戻って、第一検査部130は、ストレージ装置100によってライト処理が行われる場合に、バッファマネージャ140を介して、バッファ150からサブセクタデータを読み出す。そして、第一検査部130は、読み出したサブセクタデータに付与されているBCRCを用いて、かかるサブセクタデータに誤りがあるか否かを検査する。そして、第一検査部130は、誤りを検出した場合に、サブセクタデータに付与されているBECCを用いて、かかるサブセクタデータの誤りを訂正する。
そして、第一検査部130は、検査後のサブセクタデータからBCRCおよびBECCを除去した後に、サブセクタデータを結合して、4[KB]のセクタデータを生成する。そして、第一検査部130は、生成したセクタデータにBCRCおよびBECCを付与する。このようにして、第一検査部130は、サブセクタデータを結合することにより、セクタデータを生成する。
ドライブ制御部120は、ストレージ装置100によってライト処理が行われる場合に、第一検査部130によって生成されたセクタデータをドライブ部110に格納する。
ここで、図6を用いて、ライト処理時における第一検査部130およびドライブ制御部120による処理について説明する。図6は、ライト処理時における第一検査部130およびドライブ制御部120による処理の一例を示す図である。なお、図6に示した例において、バッファ150には、図5において説明したサブセクタデータSB21およびSB22に加えて、サブセクタデータSB23〜SB28が記憶されているものとする。
図6に示した例において、第一検査部130は、バッファマネージャ140を介して、バッファ150からサブセクタデータSB21を読み出す。そして、第一検査部130は、読み出したサブセクタデータSB21に付与されているBCRC21を用いて、サブセクタデータSB21に誤りがあるか否かを検査する。そして、第一検査部130は、誤りを検出した場合に、サブセクタデータSB21に付与されているBECC21を用いて、サブセクタデータSB21の誤りを訂正する。同様に、第一検査部130は、サブセクタデータSB22〜B28について、検査処理および訂正処理を行う。
そして、第一検査部130は、検査後のサブセクタデータSB21〜SB28からBCRC21〜BCRC28およびBECC21〜BECC28を除去した後に、データD21〜D28を結合して、4[KB]のデータD30を生成する。そして、第一検査部130は、生成したデータD30にBCRCおよびBECCを付与する。このようにして、第一検査部130は、サブセクタデータを結合することにより、セクタデータSD30を生成する。そして、ドライブ制御部120は、第一検査部130によって生成されたセクタデータSD30をドライブ部110に格納する。
このように、実施例1に係るストレージ装置100は、ライト処理を行う場合、サブセクタ単位でデータをバッファ150に格納し、セクタ単位でデータをドライブ部110に格納する。
[リード処理手順]
次に、図7を用いて、実施例2に係るストレージ装置100によるリード処理の手順について説明する。図7は、実施例2に係るストレージ装置100によるリード処理手順を示すフローチャートである。
次に、図7を用いて、実施例2に係るストレージ装置100によるリード処理の手順について説明する。図7は、実施例2に係るストレージ装置100によるリード処理手順を示すフローチャートである。
図7に示すように、ストレージ装置100のドライブ制御部120は、リード命令を受け付けた場合に(ステップS101肯定)、ドライブ部110から、セクタ単位にデータを読み出す(ステップS102)。
続いて、第一検査部130は、ドライブ制御部120によって読み出されたセクタデータごとに、かかるセクタデータに付与されているBCRCを用いて誤りがあるか否かを検査する(ステップS103)。続いて、第一検査部130は、誤りを検出した場合に、セクタデータに付与されているBECCを用いて、かかるセクタデータの誤りを訂正する。
そして、第一検査部130は、セクタデータの誤り訂正処理にエラーが発生した場合(ステップS104肯定)、セクタデータをドライブ部110から再度読み出すリトライ処理を行うか、または、ホスト装置1へエラー通知を行う(ステップS105)。
一方、セクタデータに誤りが検出されなかった場合や、訂正処理にエラーが発生しなかった場合に(ステップS104否定)、第一検査部130は、検査後のセクタデータからBCRCおよびBECCを除去した後に、セクタサイズよりも小さいサブセクタデータに分割する(ステップS106)。
続いて、第一検査部130は、分割したサブセクタデータごとにBCRCおよびBECCを付与してバッファ150へ転送する(ステップS107)。具体的には、バッファマネージャ140は、第一検査部130によってBCRCおよびBECCが付与されたサブセクタデータをバッファ150に格納する。
続いて、第二検査部160は、バッファマネージャ140を介して、バッファ150からサブセクタデータを読み出し、読み出したサブセクタデータごとに誤りがあるか否かを検査する(ステップS108)。具体的には、第二検査部160は、バッファ150から読み出したサブセクタデータをメモリ171に格納し、サブセクタデータに付与されているBCRCを用いて誤りがあるか否かを検査する。
そして、第二検査部160によって誤りが検出されなかった場合に(ステップS109否定)、インタフェース制御部170は、メモリ171に格納されているサブセクタデータを転送サイズ単位でホスト装置1へ送信する(ステップS110)。
一方、第二検査部160は、誤りを検出した場合に(ステップS109肯定)、サブセクタデータに付与されているBECCを用いて訂正可能であるか否かを判定する。そして、第二検査部160は、BECCを用いて訂正可能である場合に(ステップS111肯定)、かかるサブセクタデータの誤りを訂正する(ステップS112)。一方、第二検査部160は、BECCを用いて訂正可能でない場合に(ステップS111否定)、サブセクタデータをバッファ150から再度読み出すリトライ処理を行うか、または、ホスト装置1へエラー通知を行う(ステップS105)。
[ライト処理手順]
次に、図8を用いて、実施例2に係るストレージ装置100によるライト処理の手順について説明する。図8は、実施例2に係るストレージ装置100によるライト処理手順を示すフローチャートである。
次に、図8を用いて、実施例2に係るストレージ装置100によるライト処理の手順について説明する。図8は、実施例2に係るストレージ装置100によるライト処理手順を示すフローチャートである。
図8に示すように、ストレージ装置100のインタフェース制御部170は、ホスト装置1からライト対象のデータを受け付けた場合に(ステップS201肯定)、受信したデータをメモリ171に格納する。
続いて、第二検査部160は、メモリ171に格納されているデータに対して検査処理および訂正処理を行い、検査後のデータをサブセクタデータ単位に分割する(ステップS202)。続いて、第二検査部160は、分割したサブセクタデータごとにBCRCおよびBECCを付与してバッファ150へ転送する(ステップS203)。
続いて、ストレージ装置100は、ライト処理用のレジスタ設定を行う(ステップS204)。なお、ここで言うライト処理用のレジスタ設定とは、例えば、磁気ヘッドのシーク制御や、データの書き込み先のLBA(Logical Block Addressing)などを決定するための処理を示す。
続いて、第一検査部130は、バッファマネージャ140を介して、バッファ150からサブセクタデータを読み出し、読み出したサブセクタデータごとに誤りがあるか否かを検査する(ステップS205)。具体的には、第一検査部130は、バッファ150から読み出したサブセクタデータに付与されているBCRCを用いて誤りがあるか否かを検査する。
そして、第一検査部130は、誤りを検出した場合に(ステップS206肯定)、サブセクタデータに付与されているBECCを用いて訂正可能であるか否かを判定する。そして、第一検査部130は、BECCを用いて訂正可能である場合に(ステップS207肯定)、かかるサブセクタデータの誤りを訂正する(ステップS208)。一方、第一検査部130は、BECCを用いて訂正可能でない場合に(ステップS207否定)、ホスト装置1へエラー通知を行う(ステップS209)。
そして、第一検査部130は、検査後および訂正後のサブセクタデータからBCRCおよびBECCを除去した後に、サブセクタデータを結合して、セクタデータを生成し、生成したセクタデータにBCRCおよびBECCを付与する(ステップS210)。続いて、ドライブ制御部120は、第一検査部130によって生成されたセクタデータをドライブ部110に書き込む(ステップS211)。
また、第一検査部130は、誤りを検出しなかった場合に(ステップS206否定)、サブセクタデータからBCRCおよびBECCを除去した後に、サブセクタデータを結合して、セクタデータを生成し、生成したセクタデータにBCRCおよびBECCを付与する(ステップS210)。続いて、ドライブ制御部120は、第一検査部130によって生成されたセクタデータをドライブ部110に書き込む(ステップS211)。
[実施例2の効果]
上述してきたように、実施例2に係るストレージ装置100は、リード処理を行う場合に、ドライブ部110からセクタ単位に読み出したセクタデータをサブセクタデータに分割する。そして、ストレージ装置100は、分割したサブセクタデータごとにBCRCおよびBECCを付与して、バッファ150に格納する。そして、ストレージ装置100は、バッファ150から読み出したサブセクタデータをメモリ171に格納して検査し、メモリ171内のサブセクタデータを転送サイズごとにホスト装置1へ送信する。これにより、実施例2に係るストレージ装置100は、ドライブ部11のセクタサイズが大きい場合であっても、分割したサブセクタデータをメモリ171に格納するので、メモリ171の容量を多く用いることはない。このため、実施例2に係るストレージ装置100を用いると、メモリ171の容量を増大させずにセクタサイズを拡大することができる。
上述してきたように、実施例2に係るストレージ装置100は、リード処理を行う場合に、ドライブ部110からセクタ単位に読み出したセクタデータをサブセクタデータに分割する。そして、ストレージ装置100は、分割したサブセクタデータごとにBCRCおよびBECCを付与して、バッファ150に格納する。そして、ストレージ装置100は、バッファ150から読み出したサブセクタデータをメモリ171に格納して検査し、メモリ171内のサブセクタデータを転送サイズごとにホスト装置1へ送信する。これにより、実施例2に係るストレージ装置100は、ドライブ部11のセクタサイズが大きい場合であっても、分割したサブセクタデータをメモリ171に格納するので、メモリ171の容量を多く用いることはない。このため、実施例2に係るストレージ装置100を用いると、メモリ171の容量を増大させずにセクタサイズを拡大することができる。
また、実施例2に係るストレージ装置100は、ライト処理を行う場合に、ホスト装置1から受け付けたデータをサブセクタ単位に分割し、分割したサブセクタデータごとにBCRCおよびBECCを付与してバッファ150に格納する。そして、ストレージ装置100は、バッファ150から読み出したサブセクタデータを検査して、ドライブ部110に格納する。これにより、実施例2に係るストレージ装置100は、ライト処理時に、リード処理時と同様のサブセクタデータをバッファ150に格納するので、リード処理時にキャッシュヒットを実現することができる。
また、実施例2に係るストレージ装置100は、ライト処理を行う場合に、バッファ150から読み出したサブセクタデータからBCRCおよびBECCを除去した後に、サブセクタデータを結合してセクタデータを生成する。そして、ストレージ装置100は、生成したセクタデータをドライブ部110に格納する。これにより、実施例2に係るストレージ装置100は、ドライブ部110の容量が圧迫されることを防止することができる。
具体的には、例えば、ストレージ装置100は、サブセクタ単位でデータをドライブ部110に格納することも考えられる。しかし、かかる場合では、サブセクタデータごとにBCRCおよびBECCが付与されるので、ドライブ部110の容量を圧迫してしまう。そこで、実施例2に係るストレージ装置100は、セクタ単位でデータをドライブ部110に格納することにより、ドライブ部110の容量が圧迫されることを防止する。
なお、上記実施例2では、セクタのサイズが4[KB]であり、サブセクタのサイズが512[Byte]であり、ホスト装置との間で送受されるデータの転送サイズが1024[Byte]である場合を例に挙げて説明した。しかし、各サイズは、上記例に限られない。例えば、セクタのサイズは、1[KB]や8[KB]などであってもよい。また、サブセクタのサイズは、1[KB]などであってもよい。また、転送サイズは、512[Byte]などであってもよい。
ところで、本願の開示する記憶装置等は、上述した実施例以外にも、種々の異なる形態にて実施されてよい。そこで、実施例3では、本願の開示する記憶装置等の他の実施例について説明する。
[システム構成等]
上記実施例1および2において説明した各処理のうち、自動的に行われるものとして説明した処理の全部または一部を手動的に行うこともでき、あるいは、手動的に行われるものとして説明した処理の全部または一部を公知の方法で自動的に行うこともできる。この他、上記文書中や図面中で示した処理手順、制御手順、具体的名称、各種のデータやパラメータを含む情報については、特記する場合を除いて任意に変更することができる。
上記実施例1および2において説明した各処理のうち、自動的に行われるものとして説明した処理の全部または一部を手動的に行うこともでき、あるいは、手動的に行われるものとして説明した処理の全部または一部を公知の方法で自動的に行うこともできる。この他、上記文書中や図面中で示した処理手順、制御手順、具体的名称、各種のデータやパラメータを含む情報については、特記する場合を除いて任意に変更することができる。
また、図示した各装置の各構成要素は機能概念的なものであり、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、各装置の分散・統合の具体的形態は図示のものに限られず、その全部または一部を、各種の負荷や使用状況などに応じて、任意の単位で機能的または物理的に分散・統合して構成することができる。さらに、各装置にて行なわれる各処理機能は、その全部または任意の一部が、CPU及び当該CPUにて解析実行されるプログラムにて実現され、あるいは、ワイヤードロジックによるハードウェアとして実現され得る。
[プログラム]
また、上記実施例1および2で説明した各種の処理は、あらかじめ用意されたプログラムをパーソナルコンピュータやワークステーションなどのコンピュータで実行することによって実現することができる。そこで、以下では、図9を用いて、上記の実施例1における記憶装置10と同様の機能を有するデータ転送プログラムを実行するコンピュータの一例を説明する。
また、上記実施例1および2で説明した各種の処理は、あらかじめ用意されたプログラムをパーソナルコンピュータやワークステーションなどのコンピュータで実行することによって実現することができる。そこで、以下では、図9を用いて、上記の実施例1における記憶装置10と同様の機能を有するデータ転送プログラムを実行するコンピュータの一例を説明する。
図9は、データ転送プログラムを実行するコンピュータを示す図である。図9に示すように、コンピュータ1000は、ドライブ部11と、バッファ15と、メモリ17と、ROM(Read Only Memory)1040と、CPU(Central Processing Unit)1050とを有する。ドライブ部11、バッファ15、メモリ17、ROM1040、CPU1050は、バス1060によって接続されている。
ROM1040には、上記の実施例1における記憶装置10と同様の機能を発揮するデータ転送プログラムが予め記憶されている。具体的には、ROM1040には、第一検査プログラム1041と、分割プログラム1042と、付与プログラム1043と、第二検査プログラム1044と、送信プログラム1045とが記憶されている。
そして、CPU1050は、これらの第一検査プログラム1041と、分割プログラム1042と、付与プログラム1043と、第二検査プログラム1044と、送信プログラム1045とを読み出して実行する。これにより、図9に示すように、第一検査プログラム1041は、第一検査プロセス1051になり、分割プログラム1042は、分割プロセス1052になり、付与プログラム1043は、付与プロセス1053になる。また、第二検査プログラム1044は、第二検査プロセス1054になり、送信プログラム1045は、送信プロセス1055になる。
なお、第一検査プロセス1051は、図1に示した第一検査部12に対応し、分割プロセス1052は、図1に示した分割部13に対応し、付与プロセス1053は、図1に示した付与部14に対応する。また、第二検査プロセス1054は、図1に示した第二検査部16に対応し、送信プロセス1055は、図1に示した送信部18に対応する。
なお、上記した各プログラム1041〜1045については、必ずしもROM1040に記憶させなくてもよい。例えば、コンピュータ1000に挿入されるフレキシブルディスク(FD)、CD−ROM、MOディスク、DVDディスク、光磁気ディスク、ICカードなどの「可搬用の物理媒体」にプログラム1041〜1045を記憶させてもよい。または、コンピュータ1000の内外に備えられるハードディスクドライブ(HDD)などの「固定用の物理媒体」にプログラム1041〜1045を記憶させてもよい。または、公衆回線、インターネット、LAN、WANなどを介してコンピュータ1000に接続される「他のコンピュータ(またはサーバ)」にプログラム1041〜1045を記憶させてもよい。そして、コンピュータ1000は、上述したフレキシブルディスク等から各プログラムを読み出して実行するようにしてもよい。
1 ホスト装置
10 記憶装置
11 ドライブ部
12 第一検査部
13 分割部
14 付与部
15 バッファ
16 第二検査部
17 メモリ
18 送信部
100 ストレージ装置
110 ドライブ部
120 ドライブ制御部
130 第一検査部
140 バッファマネージャ
150 バッファ
160 第二検査部
170 インタフェース制御部
171 メモリ
900 ストレージ装置
901 ドライブ部
902 メモリ
1000 コンピュータ
1040 ROM
1041 第一検査プログラム
1042 分割プログラム
1043 付与プログラム
1044 第二検査プログラム
1045 送信プログラム
1050 CPU
1051 第一検査プロセス
1052 分割プロセス
1053 付与プロセス
1054 第二検査プロセス
1055 送信プロセス
1060 バス
10 記憶装置
11 ドライブ部
12 第一検査部
13 分割部
14 付与部
15 バッファ
16 第二検査部
17 メモリ
18 送信部
100 ストレージ装置
110 ドライブ部
120 ドライブ制御部
130 第一検査部
140 バッファマネージャ
150 バッファ
160 第二検査部
170 インタフェース制御部
171 メモリ
900 ストレージ装置
901 ドライブ部
902 メモリ
1000 コンピュータ
1040 ROM
1041 第一検査プログラム
1042 分割プログラム
1043 付与プログラム
1044 第二検査プログラム
1045 送信プログラム
1050 CPU
1051 第一検査プロセス
1052 分割プロセス
1053 付与プロセス
1054 第二検査プロセス
1055 送信プロセス
1060 バス
Claims (8)
- ホストとの間で所定の転送サイズごとにデータを送受する記憶装置であって、
データをセクタ単位に記憶するドライブ部と、
リード処理を行う場合に、前記ドライブ部からセクタ単位に読み出したデータであるセクタデータを検査する第一の検査部と、
前記第一の検査部によって検査されたセクタデータを前記セクタよりも小さいサイズであるサブセクタ単位に分割する分割部と、
前記分割部によって分割されたサブセクタデータごとに誤り検査用の符号を付与する付与部と、
前記付与部によって誤り検査用の符号が付与されたサブセクタデータを記憶するバッファから読み出されたサブセクタデータを、所定のメモリに格納し、前記付与部によって付与された誤り検査用の符号を用いて検査する第二の検査部と、
前記メモリから、前記第二の検査部によって検査されたサブセクタデータを読み出して前記転送サイズごとに前記ホストへ送信する送信部と
を備えたことを特徴とする記憶装置。 - 前記付与部は、サブセクタデータごとに誤り訂正用の符号を付与し、
前記第二の検査部は、前記誤り検査用の符号を用いた検査の結果がエラーである場合に、前記付与部によって付与された誤り訂正用の符号を用いて、前記サブセクタデータを訂正することを特徴とする請求項1に記載の記憶装置。 - 前記第二の検査部は、ライト処理を行う場合に、前記ホストから受け付けたデータをサブセクタ単位に分割し、分割したサブセクタデータごとに誤り検査用の符号を付与し、
前記第一の検査部は、前記第二の検査部によって誤り検査用の符号が付与されたサブセクタデータを記憶するバッファから読み出されたサブセクタデータを、前記第二の検査部によって付与された誤り検査用の符号を用いて検査した後に前記ドライブ部に格納することを特徴とする請求項1または2に記載の記憶装置。 - 前記第二の検査部は、分割したサブセクタデータごとに誤り訂正用の符号を付与し、
前記第一の検査部は、前記誤り検査用の符号を用いた検査の結果がエラーである場合に、前記第二の検査部によって付与された誤り訂正用の符号を用いて、前記サブセクタデータを訂正することを特徴とする請求項3に記載の記憶装置。 - 前記第一の検査部は、データのライト処理を行う場合に、検査後のサブセクタデータから前記第二の検査部によって付与された誤り検査用の符号および誤り訂正用の符号を除去した後に、サブセクタデータを結合してセクタ単位にデータを前記ドライブ部に格納することを特徴とする請求項4に記載の記憶装置。
- ホストとの間で所定の転送サイズごとにデータを送受する記憶装置を制御するデータ転送制御装置であって、
リード処理を行う場合に、データをセクタ単位に記憶するドライブ部からセクタ単位に読み出したデータであるセクタデータを検査する第一の検査部と、
前記第一の検査部によって検査されたセクタデータを前記セクタよりも小さいサイズであるサブセクタ単位に分割する分割部と、
前記分割部によって分割されたサブセクタデータごとに誤り検査用の符号を付与する付与部と、
前記付与部によって誤り検査用の符号が付与されたサブセクタデータを記憶するバッファから読み出されたサブセクタデータを、所定のメモリに格納し、前記付与部によって付与された誤り検査用の符号を用いて検査する第二の検査部と、
前記メモリから、前記第二の検査部によって検査されたサブセクタデータを読み出して前記転送サイズごとに前記ホストへ送信する送信部と
を備えたことを特徴とするデータ転送制御装置。 - ホストとの間で所定の転送サイズごとにデータを送受する記憶装置によるデータ転送方法であって、
前記記憶装置が、
リード処理を行う場合に、データをセクタ単位に記憶するドライブ部からセクタ単位に読み出したデータであるセクタデータを検査する第一の検査ステップと、
前記第一の検査ステップによって検査されたセクタデータを前記セクタよりも小さいサイズであるサブセクタ単位に分割する分割ステップと、
前記分割ステップによって分割されたサブセクタデータごとに誤り検査用の符号を付与する付与ステップと、
前記付与ステップによって誤り検査用の符号が付与されたサブセクタデータを記憶するバッファから読み出されたサブセクタデータを、所定のメモリに格納し、前記付与ステップによって付与された誤り検査用の符号を用いて検査する第二の検査ステップと、
前記メモリから、前記第二の検査ステップによって検査されたサブセクタデータを読み出して前記転送サイズごとに前記ホストへ送信する送信ステップと
を含んだことを特徴とするデータ転送方法。 - ホストとの間で所定の転送サイズごとにデータを送受するデータ転送プログラムであって、
リード処理を行う場合に、データをセクタ単位に記憶するドライブ部からセクタ単位に読み出したデータであるセクタデータを検査する第一の検査手順と、
前記第一の検査手順によって検査されたセクタデータを前記セクタよりも小さいサイズであるサブセクタ単位に分割する分割手順と、
前記分割手順によって分割されたサブセクタデータごとに誤り検査用の符号を付与する付与手順と、
前記付与手順によって誤り検査用の符号が付与されたサブセクタデータを記憶するバッファから読み出されたサブセクタデータを、所定のメモリに格納し、前記付与手順によって付与された誤り検査用の符号を用いて検査する第二の検査手順と、
前記メモリから、前記第二の検査手順によって検査されたサブセクタデータを読み出して前記転送サイズごとに前記ホストへ送信する送信手順と
をコンピュータに実行させることを特徴とするデータ転送プログラム。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2009119302A JP2010267164A (ja) | 2009-05-15 | 2009-05-15 | 記憶装置、データ転送制御装置、データ転送方法およびデータ転送プログラム |
US12/781,634 US20100293418A1 (en) | 2009-05-15 | 2010-05-17 | Memory device, data transfer control device, data transfer method, and computer program product |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2009119302A JP2010267164A (ja) | 2009-05-15 | 2009-05-15 | 記憶装置、データ転送制御装置、データ転送方法およびデータ転送プログラム |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2010267164A true JP2010267164A (ja) | 2010-11-25 |
Family
ID=43069482
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2009119302A Pending JP2010267164A (ja) | 2009-05-15 | 2009-05-15 | 記憶装置、データ転送制御装置、データ転送方法およびデータ転送プログラム |
Country Status (2)
Country | Link |
---|---|
US (1) | US20100293418A1 (ja) |
JP (1) | JP2010267164A (ja) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2013205913A (ja) * | 2012-03-27 | 2013-10-07 | Nec Corp | 記憶デバイスの制御装置及びその制御方法、並びにコンピュータ・プログラム |
JP2014526735A (ja) * | 2011-09-11 | 2014-10-06 | マイクロソフト コーポレーション | 検証されたデータセットの不揮発性媒体ジャーナリング |
CN106547491A (zh) * | 2016-11-22 | 2017-03-29 | 郑州云海信息技术有限公司 | 一种固态硬盘中数据搬移的方法及系统 |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP5668279B2 (ja) * | 2009-08-06 | 2015-02-12 | ソニー株式会社 | 不揮発性ランダムアクセスメモリおよび不揮発性メモリシステム |
US8879195B2 (en) | 2013-03-15 | 2014-11-04 | Silicon Graphics International Corp. | Logical block protection for tape interchange |
US20160321118A1 (en) * | 2013-12-12 | 2016-11-03 | Freescale Semiconductor, Inc. | Communication system, methods and apparatus for inter-partition communication |
CN108255793A (zh) * | 2017-11-22 | 2018-07-06 | 中国平安财产保险股份有限公司 | 一种信息核查方法及终端设备 |
CN110018784B (zh) | 2018-01-09 | 2023-01-10 | 阿里巴巴集团控股有限公司 | 数据处理方法、装置及计算设备 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH1078853A (ja) * | 1996-09-05 | 1998-03-24 | Hitachi Ltd | 記憶装置 |
-
2009
- 2009-05-15 JP JP2009119302A patent/JP2010267164A/ja active Pending
-
2010
- 2010-05-17 US US12/781,634 patent/US20100293418A1/en not_active Abandoned
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH1078853A (ja) * | 1996-09-05 | 1998-03-24 | Hitachi Ltd | 記憶装置 |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2014526735A (ja) * | 2011-09-11 | 2014-10-06 | マイクロソフト コーポレーション | 検証されたデータセットの不揮発性媒体ジャーナリング |
JP2013205913A (ja) * | 2012-03-27 | 2013-10-07 | Nec Corp | 記憶デバイスの制御装置及びその制御方法、並びにコンピュータ・プログラム |
CN106547491A (zh) * | 2016-11-22 | 2017-03-29 | 郑州云海信息技术有限公司 | 一种固态硬盘中数据搬移的方法及系统 |
Also Published As
Publication number | Publication date |
---|---|
US20100293418A1 (en) | 2010-11-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP2010267164A (ja) | 記憶装置、データ転送制御装置、データ転送方法およびデータ転送プログラム | |
US10620846B2 (en) | Enhancing flash translation layer to improve performance of databases and filesystems | |
US10423508B2 (en) | Method and system for a high-priority read based on an in-place suspend/resume write | |
JP6300132B2 (ja) | ガベージデータを収集するための方法及び記憶装置 | |
US9817711B2 (en) | Memory controller | |
US9195541B2 (en) | Controlling nonvolatile memory device and nonvolatile memory system | |
US20140068208A1 (en) | Separately stored redundancy | |
JP4355012B2 (ja) | 隣接トラック干渉可能性の予備検出を介してハード・ドライブ・データを保護する方法、システム、及びプログラム記憶装置(隣接トラック干渉可能性の予備検出を介したハード・ドライブ・データの保護) | |
US20170097773A1 (en) | Expanding effective storage capacity of a data storage system while providing support for address mapping recovery | |
JP2015082269A (ja) | ストレージ制御装置、ストレージ制御プログラム、およびストレージ制御方法 | |
KR101730151B1 (ko) | 플래시 메모리 장치에 데이터를 기록하는 방법, 플래시 메모리 장치, 및 저장 시스템 | |
US8639993B2 (en) | Encoding data to enable it to be stored in a storage block that includes at least one storage failure | |
JP2007133986A (ja) | 半導体記憶装置 | |
US9620227B1 (en) | Characterizing and operating a non-volatile memory device | |
US20150254287A1 (en) | Non-transitory computer-readable recording medium having stored therein data dividing program, data dividing apparatus, and data dividing method | |
JP6568012B2 (ja) | メモリ管理システム、方法、およびコンピュータ・プログラム | |
JPH086862A (ja) | 記憶媒体に記憶されたデータの保全を向上させるための方法及び関連するシステム | |
JP5401903B2 (ja) | 故障情報監視装置及び故障情報監視方法 | |
US9658922B2 (en) | Computer-readable recording medium having stored therein program for write inspection, information processing device, and method for write inspection | |
US20100332914A1 (en) | Dump output control apparatus and dump output control method | |
US8533560B2 (en) | Controller, data storage device and program product | |
US7836243B2 (en) | Nonvolatile semiconductor memory apparatus and memory system | |
WO2013124753A1 (en) | Writing new data of first block size to second block size using write-write mode | |
US11016689B2 (en) | Data storage system | |
US20060074960A1 (en) | Providing data integrity for data streams |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20100910 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20110208 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20110705 |