JP2010118112A - 記憶装置および記憶装置の制御方法 - Google Patents
記憶装置および記憶装置の制御方法 Download PDFInfo
- Publication number
- JP2010118112A JP2010118112A JP2008290355A JP2008290355A JP2010118112A JP 2010118112 A JP2010118112 A JP 2010118112A JP 2008290355 A JP2008290355 A JP 2008290355A JP 2008290355 A JP2008290355 A JP 2008290355A JP 2010118112 A JP2010118112 A JP 2010118112A
- Authority
- JP
- Japan
- Prior art keywords
- data
- head
- control unit
- track
- write
- 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
Classifications
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11B—INFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
- G11B5/00—Recording by magnetisation or demagnetisation of a record carrier; Reproducing by magnetic means; Record carriers therefor
- G11B5/48—Disposition or mounting of heads or head supports relative to record carriers ; arrangements of heads, e.g. for scanning the record carrier to increase the relative speed
- G11B5/54—Disposition or mounting of heads or head supports relative to record carriers ; arrangements of heads, e.g. for scanning the record carrier to increase the relative speed with provision for moving the head into or out of its operative position or across tracks
- G11B5/55—Track change, selection or acquisition by displacement of the head
- G11B5/5521—Track change, selection or acquisition by displacement of the head across disk tracks
- G11B5/5526—Control therefor; circuits, track configurations or relative disposition of servo-information transducers and servo-information tracks for control thereof
- G11B5/553—Details
- G11B5/5547—"Seek" control and circuits therefor
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11B—INFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
- G11B19/00—Driving, starting, stopping record carriers not specifically of filamentary or web form, or of supports therefor; Control thereof; Control of operating function ; Driving both disc and head
- G11B19/02—Control of operating function, e.g. switching from recording to reproducing
- G11B19/04—Arrangements for preventing, inhibiting, or warning against double recording on the same blank or against other recording or reproducing malfunctions
- G11B19/041—Detection or prevention of read or write errors
- G11B19/044—Detection or prevention of read or write errors by using a data buffer
Landscapes
- Signal Processing For Digital Recording And Reproducing (AREA)
Abstract
【課題】本発明の一実施例では、データの書き込み時にヘッドが書き込み開始予定位置のあるトラック上に移動したらデータを書き込み始める記憶装置を提供することを目的とする。
【解決手段】上記課題を解決するため、記憶装置は、複数のトラックを有する記憶媒体と、該記憶媒体にデータを書き込むヘッドと、データを記憶可能な補助記憶部と、データの書き込み時に、データの書き込み開始予定位置を定め、該データの書き込み対象となるトラックに該ヘッドを移動させ、該ヘッドが該データの書き込み対象となる該トラックに到達したら該トラックに沿ってデータを書き始めると共に、書き込み予定データのうち、該書込み開始予定位置からデータの書き始めの位置の間に書き込みを予定したデータについては、該補助記憶部に記憶する制御部とを有する。
【選択図】図2
【解決手段】上記課題を解決するため、記憶装置は、複数のトラックを有する記憶媒体と、該記憶媒体にデータを書き込むヘッドと、データを記憶可能な補助記憶部と、データの書き込み時に、データの書き込み開始予定位置を定め、該データの書き込み対象となるトラックに該ヘッドを移動させ、該ヘッドが該データの書き込み対象となる該トラックに到達したら該トラックに沿ってデータを書き始めると共に、書き込み予定データのうち、該書込み開始予定位置からデータの書き始めの位置の間に書き込みを予定したデータについては、該補助記憶部に記憶する制御部とを有する。
【選択図】図2
Description
本発明はデータを記憶する記憶装置に関する。
大容量のデータを記憶する記憶装置が多様な用途で利用されている。この種の記憶装置として典型的なものは磁気ディスク装置や光ディスク装置、光磁気ディスク装置などである。これらの記憶装置はデータを記憶する記憶媒体を有する。記憶媒体は複数のトラックを有する。
記憶装置はセントラルプロセッシングユニット(Central Processing Unit:CPU)などの上位装置からの書き込み指令によりデータの書き込みを行う。
記憶装置は書き込み命令に基づいてデータの情報を記憶媒体上のどの位置に書き込むかを計算する。記憶装置は計算した書込み開始予定位置があるトラックにヘッドが移動するようにヘッド駆動部を制御する。ヘッドがデータの書き込み対象となるトラックに移動したとき、記憶媒体上のヘッド位置と記憶媒体上のデータの書込み開始予定位置の先頭が異なる場合がある。記憶装置はデータの先頭から情報を記憶媒体に書き込むため、ヘッドが記憶媒体上のデータの書込み開始予定位置に達するまでデータを記憶媒体に書き込むことが出来なかった。
特許文献1にはハイブリッド記憶装置へのデータの書き込みに関する技術が開示されている。
特開2007−34536号公報
本発明の一実施例では、データの書き込み時にヘッドが書き込み開始予定位置のあるトラック上に移動したらデータを書き込み始める記憶装置を提供することを目的とする。
上記課題を解決するため、記憶装置は、複数のトラックを有する記憶媒体と、該記憶媒体にデータを書き込むヘッドと、データを記憶可能な補助記憶部と、データの書き込み時に、データの書き込み開始予定位置を定め、該データの書き込み対象となるトラックに該ヘッドを移動させ、該ヘッドが該データの書き込み対象となる該トラックに到達したら該トラックに沿ってデータを書き始めると共に、書き込み予定データのうち、該書込み開始予定位置からデータの書き始めの位置の間に書き込みを予定したデータについては、該補助記憶部に記憶する制御部とを有する。
実施形態によれば、記憶装置においてヘッドのトラックの移動位置の関係に係らずデータの記憶を行うことが出来る。すなわちデータの書き込み時にヘッドが書込み開始予定位置のあるトラック上に移動したらデータを記憶装置に書き込み始めることが出来る。
以下、本実施の形態について説明する。本実施の形態は記憶媒体としてハードディスクを用いて説明しているが、本発明はこのハードディスクを備えた実施形態に限定されるものではない。
[ハードディスク装置]
図1は本実施の形態に係る記憶装置100の構成の一例を示すブロック図である。記憶装置100はホストインターフェース(Interface:IF)制御部102、データバッファ制御部103、データバッファ104、フォーマット制御部105、ヘッドインテグレイティッドサーキット(Integrated Circuit:IC)107、制御部108、メモリ制御部109、不揮発メモリ110、ディスク115、ヴォイスコイルモータ(Voice Coil Motor:VCM)112、位置検出部111、ヘッド114、コモンバス116を有する。
図1は本実施の形態に係る記憶装置100の構成の一例を示すブロック図である。記憶装置100はホストインターフェース(Interface:IF)制御部102、データバッファ制御部103、データバッファ104、フォーマット制御部105、ヘッドインテグレイティッドサーキット(Integrated Circuit:IC)107、制御部108、メモリ制御部109、不揮発メモリ110、ディスク115、ヴォイスコイルモータ(Voice Coil Motor:VCM)112、位置検出部111、ヘッド114、コモンバス116を有する。
ホストIF制御部102はパーソナルコンピュータ(Personal Computer:PC)などの上位装置20と記憶装置100とのデータのやり取りを制御する。データバッファ制御部103はデータバッファ104へのデータの書き込みやデータバッファ104からのデータの読み出しを制御する。データバッファ104は上位装置20から送信された書き込み命令や書き込みデータなどを一時的に記憶する。
フォーマット制御部105はデータバッファ104に一時記憶された書き込み命令に基づいてデータをディスク115に書き込む。
ヘッドIC107はフォーマット制御部105から出力される書き込みデータをコード変調しヘッド114を用いてディスク115にデータを書き込む。
制御部108は記憶装置100の動作を統括的に制御する。制御部108は例えばマイクロプロセッシングユニット(Micro Processing Unit:MPU)により実現される。不揮発メモリ110は記憶装置100の電源供給を切っても記憶したデータを保持する補助記憶部である。また、不揮発メモリ110の替わりにスタティックRAM(Static Randam Access Memory:SRAM)などの揮発メモリを用い、電源遮断時に小型のバッテリーでデータを保持するようにしても良い。また不揮発メモリ110はメモリデータ管理テーブル300、空き領域管理テーブル400、制御部108で実行するプログラムなどを記憶している。メモリデータ管理テーブル300および空き領域管理テーブル400についての詳細は後述する。
ディスク115はデータ内の情報を記憶する記憶媒体である。ディスク115は同心円状に複数のトラックを有する。各トラックは複数のセクタを有する。セクタ内にはデータ内の情報が記憶されている。VCM112は制御部108による制御命令に従ってヘッド114を所定の位置に移動させるヘッド駆動部として機能する。ヘッド114はディスク115上のセクタにデータを書き込む。
ディスク115上のセクタ内には、データ内の情報および各セクタに固有の位置情報が記憶されている。ヘッド114はディスク115からデータ内の情報および位置情報を読み取る。位置検出部111はヘッド114が読み取ったデータ内の情報および位置情報からディスク115に対するヘッド114の現在の位置に対応する位置情報を検出し出力する。コモンバス116はホストIF制御部102、データバッファ制御部103、フォーマット制御部105、制御部108、メモリ制御部109、VCM112を接続するバスである。各部はコモンバス116を介してデータをやり取りできる。
上位装置20はデータの書き込み開始アドレス(Logical Block Address:LBA)を記述した書き込み命令、および書き込み命令に対応する書き込みデータを記憶装置100に送信する。上位装置20から受信した書き込み命令および書き込みデータはデータバッファ制御部103によりデータバッファ104に保持される。制御部108は位置検出部111により現在のヘッド114の位置を検出する。制御部108はデータ内の情報に対してディスク115上の書込み開始予定位置を定める。すなわち制御部108は書き込み命令に記述されたLBAから記憶装置100におけるデータの書き込み開始予定セクタ番号、トラック番号、ヘッド番号等を計算する。制御部108は現在のヘッド114の位置情報と計算した書き込み開始予定セクタ番号に基づいてヘッドの移動距離が最小になるように書き込み命令を並べ替える。この並べ替えにより制御部108はデータの書き込み時における時間的損失を小さくすることができる。このような書き込み命令の並べ替えをリオーダリングといい、並べ替えられた書き込み命令の実行順序をシークスケジュールという。
制御部108はシークスケジュールに従って書き込み命令を実行する。制御部108はデータの書き込み対象となるトラックにヘッド114が移動するようにヘッド駆動部であるVCM112を制御する。ヘッド114がデータを書き込むためのトラックに移動した場合のディスク115上のヘッド位置とデータの書き込み開始予定位置である書き込み開始予定セクタが一致する場合、制御部108はデータを書き込み開始予定セクタから書き込む。
ヘッド114がデータを書き込むためのトラックに移動した場合のディスク115上のヘッド位置がデータ内の途中の情報に対応するセクタである場合、制御部108は書き込み開始予定セクタからデータを書き込むことが出来ない。この場合制御部108はヘッド114がデータの書き込み対象となるトラックに到達したらトラックに沿ってデータを書き始める。また制御部108は書込み予定データのうち、書込み開始予定位置からデータの書き始めの位置の間に書き込みを予定したデータについては、補助記憶部である不揮発メモリ110に記憶する。以上の実施形態によれば、データバッファ104においてディスク115に書き込まれなかったデータが残存しない。これにより制御部108は記憶装置の書き込み効率を向上させることが出来る。また、書き込み開始予定セクタに対するヘッドの移動位置が異なる場合の書き込み待ち時間がない。よって制御部108はヘッド114が書き込み開始予定位置を有するトラック上に移動したらデータを記憶装置100に書き込み始めることが出来る。
ヘッド114がデータを書き込むためのトラックに移動した場合のディスク115上のヘッド位置がデータ内の途中の情報に対応するセクタでない場合、制御部108はディスク115へデータを書き込むことが出来ない。この場合制御部108はヘッド114が書き込み開始予定セクタに到達するまで待つ。ヘッド114が書き込み開始予定セクタに到達すると、制御部108はディスク115へのデータの書き込みを開始する。
[ヘッドの移動]
図2はトラック間のヘッドの移動とデータの書き込みとの関係を図示したものである。トラックYはセクタ1から7を有する。トラックXはセクタ8から14を有する。ディスク115は矢印202の方向に回転している。制御部108はシークスケジュールに従ってヘッド114をトラックYからトラックXへ移動し、トラックXのセクタ12から14へデータを書き込む。ヘッド114の移動速度やトラック間の距離から計算される論理値によると、ヘッド114は矢印200の通り時間内にトラックXのセクタ11に到達する。
図2はトラック間のヘッドの移動とデータの書き込みとの関係を図示したものである。トラックYはセクタ1から7を有する。トラックXはセクタ8から14を有する。ディスク115は矢印202の方向に回転している。制御部108はシークスケジュールに従ってヘッド114をトラックYからトラックXへ移動し、トラックXのセクタ12から14へデータを書き込む。ヘッド114の移動速度やトラック間の距離から計算される論理値によると、ヘッド114は矢印200の通り時間内にトラックXのセクタ11に到達する。
しかし実動作において、ヘッド114は矢印201の通りトラックXのセクタ12に到達したとする。この場合、データをセクタ12から書き込むことが出来ないため、制御部108はセクタ13からディスク115にデータを書き込む。また制御部108はディスク115に書き込めなかったセクタ12に対応する書き込み不可データをデータバッファ104から不揮発メモリ110へ移動する。以上の動作により、制御部108はデータバッファに書き込み不可データが残存しないようにし、記憶装置へデータを書き続けることが出来る。また、制御部108はヘッド114が書き込み開始予定位置を有するトラック上に移動したらデータを記憶装置100に書き込み始めることが出来る。
[メモリデータ管理テーブル]
図3は不揮発メモリ110に書き込まれた書き込み不可データを管理するためのメモリデータ管理テーブル300を図示したものである。メモリデータ管理テーブル300は図1の不揮発メモリ110に記憶されている。メモリデータ管理テーブル300は列301、302、303を有する。列301は書き込み不可データをディスク115にデータを書き込んだ場合の開始LBAを示す。列302は書き込み不可データをディスク115に書き込んだ場合の全セクタ数を示す。列303は書き込み不可データを記憶した不揮発メモリ110におけるメモリアドレスを示す。
図3は不揮発メモリ110に書き込まれた書き込み不可データを管理するためのメモリデータ管理テーブル300を図示したものである。メモリデータ管理テーブル300は図1の不揮発メモリ110に記憶されている。メモリデータ管理テーブル300は列301、302、303を有する。列301は書き込み不可データをディスク115にデータを書き込んだ場合の開始LBAを示す。列302は書き込み不可データをディスク115に書き込んだ場合の全セクタ数を示す。列303は書き込み不可データを記憶した不揮発メモリ110におけるメモリアドレスを示す。
メモリデータ管理テーブル300を参照することにより、制御部108はデータを読み込む際にディスク115に書き込まれたデータと不揮発メモリ110に書き込まれたデータとを関連付けることが出来る。例えば制御部108は行304を参照することにより、ディスク115の開始LBA1000hからセクタ数100hのセクタまでに書き込まれるはずであったデータは、不揮発メモリ110のメモリアドレス100000hから始まる領域に書き込まれていることが分かる。
制御部108はメモリデータ管理テーブル300を参照することにより、書き込み命令の空き時間を利用して、不揮発メモリ110に移動したデータをディスク115に移動することも出来る。上述の通り制御部108は行304を参照することによりメモリアドレス100000hのデータはディスク115のLBA1000hに書き込むべきデータであることが分かる。よって制御部108は上位装置20からの書き込み命令がデータバッファ104に無い場合にメモリアドレス100000hのデータをディスク115のLBA1000hに移動することが出来る。制御部108は他の行のデータについても同様にデータを移動することが出来る。上位装置20から書き込み命令がない場合に不揮発メモリ110のデータをディスク115へ移動することにより、制御部108は不揮発メモリ110の書き込み可能領域が無くなるのを防止することが出来る。不揮発メモリ110の書き込み不可領域が無くなるのを防止することにより、制御部108はデータバッファ104の書き込み不可データが不揮発メモリ110に移動できなくなるのを防止することが出来る。これにより記憶装置100の書き込み効率を向上させることが出来る。
[空き領域管理テーブル]
図4は不揮発メモリ110のデータ記憶領域をブロック単位で管理した場合のブロックごとの空き状況を管理するための空き領域管理テーブル400を図示したものである。空き領域管理テーブル400は図1の不揮発メモリ110に記憶されている。空き領域管理テーブル400は列401、402、403を有する。列401は不揮発メモリ110のデータ記憶領域をブロック単位で管理した場合に各ブロックに割り当てたブロック番号である。列402は各ブロック番号に割り当てられた不揮発メモリ110のアドレス空間である。本実施形態において、1つのブロックは0FFFhバイトのアドレス空間を有する。列403は各ブロック番号の空き状況を示すフラグである。列403においてフラグが“1”のときはそのブロックは使用中であることを示し、フラグが“0”のときはそのブロックは空いていることを示す。また行404から410は各ブロック番号に対するアドレス空間と、そのブロックの空き情報を表す。
図4は不揮発メモリ110のデータ記憶領域をブロック単位で管理した場合のブロックごとの空き状況を管理するための空き領域管理テーブル400を図示したものである。空き領域管理テーブル400は図1の不揮発メモリ110に記憶されている。空き領域管理テーブル400は列401、402、403を有する。列401は不揮発メモリ110のデータ記憶領域をブロック単位で管理した場合に各ブロックに割り当てたブロック番号である。列402は各ブロック番号に割り当てられた不揮発メモリ110のアドレス空間である。本実施形態において、1つのブロックは0FFFhバイトのアドレス空間を有する。列403は各ブロック番号の空き状況を示すフラグである。列403においてフラグが“1”のときはそのブロックは使用中であることを示し、フラグが“0”のときはそのブロックは空いていることを示す。また行404から410は各ブロック番号に対するアドレス空間と、そのブロックの空き情報を表す。
例えば3700hバイトの書き込み不可データを不揮発メモリ110に移動する必要が生じたとする。この場合、制御部108は列403を参照し、フラグが4つ連続して“0”になっている行が無いか探す。本実施形態において、行407から410におけるフラグが“0”である。よって制御部108はブロック番号3から6に連続した4000hバイトの空き領域があると認識することが出来る。以上の通り空き領域管理テーブル400を用いることにより制御部108は不揮発メモリ110のメモリ空き領域の検索を少ない処理で行うことが出来る。
[制御部の書き込み制御フロー]
図5は上位装置20から記憶装置100へのデータの書き込み時における制御部108の書き込み制御フロー図である。
図5は上位装置20から記憶装置100へのデータの書き込み時における制御部108の書き込み制御フロー図である。
制御部108はデータバッファ104に一時記憶されリオーダリングされた書き込み命令をデータバッファ104に記憶されている順番に選択し実行する(S10)。制御部108は書き込み命令に記述されているLBAに基づいて、データの書込み開始予定位置である書き込み開始予定セクタ番号、書き込み開始予定セクタのあるシリンダ番号、およびトラック番号を計算する(S11)。
制御部108はヘッドシークを開始し、計算したシリンダ番号およびトラック番号に該当するトラックまでヘッドを移動するようにヘッド駆動部であるVCM112を制御する(S12)。制御部108は位置検出部111から出力されたトラック番号が計算したトラック番号に等しくなるまでヘッドを移動し続ける(S13、NO)、位置検出部111から出力されるトラック番号と計算したトラック番号とが等しくなり、シークが終了すると(S13、YES)、制御部108は位置検出部111により現在ヘッド114があるセクタ番号を取得する(S14)。
制御部108は位置検出部111から出力されたセクタ番号とLBAに基づいて計算した書き込み開始予定セクタ番号とを比較する。ディスク115のセクタ番号は小さい順または大きい順に設定されている。よって位置検出部111から出力されたセクタ番号と計算したセクタ番号との大小関係を比較することにより、ヘッドが書き込み開始予定セクタを通り過ぎたか否かを判別することが出来る。
計算した結果ヘッド114が書き込み開始予定セクタと一致している場合(S15、YES)、制御部108は書き込み命令に対応するデータの先頭からディスク115に書き込む(S16)。
ディスク115の回転方向に対しヘッド114が書き込み開始予定セクタとずれている場合(S15、NO)、制御部108は位置検出部111から出力されたセクタ番号に基づいて書き込み開始予定セクタとヘッド114とのずれに対応するセクタ数を計算する(S17)。制御部108は、ずれたセクタ数に基づいて、現在のヘッド位置に対応するデータ内の情報を計算する。制御部108は計算したデータ内の情報からディスク115に書き込み始める(S18)。ヘッド114の位置がディスク115の回転方向に対してデータの先頭位置である書き込み開始予定セクタより前にある場合であっても、現在のヘッド位置に対応するデータ内の情報がある場合は、現在のヘッド位置に対応するデータ内の情報からディスク115へ書き込む。ヘッド位置に対応するデータ内の情報がない場合、制御部108はヘッド114が書き込み開始予定セクタに到達するのを待つ。
書き込み開始予定セクタからずれたセクタ数に対応するデータ内の情報はディスク115に書き込まれずにデータバッファ104に残る。制御部108はディスク115に書き込まれずにデータバッファ104に残ったデータ内の情報を不揮発メモリ110のデータ記憶可能な領域に移動する(S19)。
以上の動作により、制御部108はディスク115に書き込まれないデータ内の情報がデータバッファ104に残存しないようにし、記憶装置の書き込み効率を向上させることが出来る。また、書き込み開始予定セクタへのヘッドの移動が間に合わない場合の書き込み待ち時間がないため、ヘッドがデータの書き込み対象となるトラックに移動したとき、記憶媒体上のヘッド位置と計算したデータの先頭位置とが異なる場合でもデータを記憶装置に書き込むことが出来る。
[制御部のデータ書き込み動作]
図6は制御部108によるデータの書き込み動作を図示したものである。データバッファ104にはデータ610が一時記憶されている。データ610のアドレスAに対応するセクタはディスク115のトラック600におけるセクタKであり、アドレスCに対応するセクタはセクタMである。制御部108は書き込み命令に記述されたLBAに基づいて、データ610のアドレスAに対応するディスク115の書込み開始予定セクタKを計算する。
図6は制御部108によるデータの書き込み動作を図示したものである。データバッファ104にはデータ610が一時記憶されている。データ610のアドレスAに対応するセクタはディスク115のトラック600におけるセクタKであり、アドレスCに対応するセクタはセクタMである。制御部108は書き込み命令に記述されたLBAに基づいて、データ610のアドレスAに対応するディスク115の書込み開始予定セクタKを計算する。
データバッファ104に記憶されたデータ610をディスク115に書き込むため、制御部108はヘッド駆動部であるVCM112を制御し、ヘッド114をデータ610の書き込み対象となるセクタKのあるトラック600へ移動する。ヘッド114がトラック600に移動したときのデータの書き始めの位置がセクタLであったとする。このときセクタLに対応するデータ610の情報はアドレスBにある。制御部108はデータバッファ104に記憶されたデータ610のアドレスBからCまでの情報602をデータの書き始めの位置であるセクタLからディスク115に書き込む。
書き込み予定データであるデータ610のうち、書込み開始予定セクタKからデータの書き始めの位置であるセクタLまでに書き込まれる予定であった情報601は、ディスク115に書き込まれずにデータバッファ104に残っている。制御部108はデータバッファ104に残っている情報601を補助記憶部である不揮発メモリ110へ書き込む。以上より、ヘッドがトラック上に移動したらデータを記憶装置に書き込み始めることが出来る。
[不揮発メモリへのデータ移動制御フロー]
図7は図5のステップS19における不揮発メモリ110へのデータ移動処理をより詳細に示した制御フローである。制御部108は空き領域管理テーブル400を参照し、ステップS18で計算したセクタ数を記録できる空き領域が不揮発メモリ110にあるか検索する(S30)。不揮発メモリ110に空き領域がある場合(S31、YES)、制御部108は検索した空き領域に対しデータバッファ104にある書き込み不可データを不揮発メモリ110へ移動する(S32)。制御部108はメモリデータ管理テーブル300に不揮発メモリ110へ移動したデータの開始LBA、セクタ数、およびメモリアドレスを書き込むと共に、空き領域管理テーブル400におけるデータを書き込んだブロックのフラグを“1”に書き換える。
図7は図5のステップS19における不揮発メモリ110へのデータ移動処理をより詳細に示した制御フローである。制御部108は空き領域管理テーブル400を参照し、ステップS18で計算したセクタ数を記録できる空き領域が不揮発メモリ110にあるか検索する(S30)。不揮発メモリ110に空き領域がある場合(S31、YES)、制御部108は検索した空き領域に対しデータバッファ104にある書き込み不可データを不揮発メモリ110へ移動する(S32)。制御部108はメモリデータ管理テーブル300に不揮発メモリ110へ移動したデータの開始LBA、セクタ数、およびメモリアドレスを書き込むと共に、空き領域管理テーブル400におけるデータを書き込んだブロックのフラグを“1”に書き換える。
不揮発メモリ110に空き領域が無い場合(S31、NO)、制御部108はディスク115が回転し、書き込み開始予定セクタが再びヘッド114の位置に到達するのを待つ。その後、制御部108はディスク115の書き込み開始予定セクタからデータを書き込む。これにより不揮発メモリ110に空き領域が無くても制御部108はデータの書き込み処理を続けることが出来る。
[制御部の書き込み制御フローの変形例]
図8は制御部108のデータ書き込み制御フローの変形例である。ディスク115への書き込み速度に対し不揮発メモリ110への書き込み速度は非常に遅い。ある書き込み命令に対する書き込みデータに対し、不揮発メモリ110への書き込み不可データのデータ移動量が多い場合、不揮発メモリ110へのデータ移動により記憶装置全体の書き込み速度が遅くなる可能性がある。このような場合、以下の書き込み制御フローが有効となる。
図8は制御部108のデータ書き込み制御フローの変形例である。ディスク115への書き込み速度に対し不揮発メモリ110への書き込み速度は非常に遅い。ある書き込み命令に対する書き込みデータに対し、不揮発メモリ110への書き込み不可データのデータ移動量が多い場合、不揮発メモリ110へのデータ移動により記憶装置全体の書き込み速度が遅くなる可能性がある。このような場合、以下の書き込み制御フローが有効となる。
制御部108はデータバッファ104に一時記憶されリオーダリングされた書き込み命令をデータバッファ104に記憶されている順番に選択し実行する(S50)。制御部108は書き込み命令に記述されているLBAに基づいて、データの書込み開始予定位置である書き込み開始予定セクタ番号、書き込み開始予定セクタのあるシリンダ番号、およびトラック番号を計算する(S51)。制御部108はヘッドシークを開始し、計算したシリンダ番号およびトラック番号に該当するトラックまでヘッドを移動させる(S52)。
制御部108はヘッド114がデータを書き込むためのトラックに移動した場合のデータの書き始めの位置を予測する(S53)。制御部108はデータの書き込み開始予定位置から予測した書き始めの位置の間に書き込みを予定したデータを不揮発メモリ110に書き込む(S54)。データの書き始めの位置の予測方法については後述する。制御部108は位置検出部111から送られてくるトラック番号が計算したトラック番号に等しくなるまでヘッドを移動し続ける(S55、NO)、位置検出部111から送られてくるトラック番号と計算したトラック番号とが等しくなり、シークが終了すると(S55、YES)制御部108は位置検出部111により現在ヘッド114があるセクタ番号を取得する(S56)。制御部108は位置検出部111により取得したセクタ番号と計算した書き込み開始予定セクタ番号とを比較する。取得したセクタ番号が書き込み開始予定セクタ番号と一致する場合(S57、YES)、制御部108は不揮発メモリ110に書き込んだデータを消去する(S58)。同時に制御部108は選択した書き込み命令に対応するデータをディスク115へ書き込む(S59)。
取得したセクタ番号が書き込み開始予定セクタ番号と一致しない場合(S57、NO)、制御部108はヘッド114が到達しているセクタに対応した書き込みデータの情報からディスク115へ書き込む(S60)。同時に制御部108はメモリデータ管理テーブル300に不揮発メモリ110へ書き込んだ情報の開始LBA、セクタ数、およびメモリアドレスを書き込むと共に、空き領域管理テーブル400における情報を書き込んだブロックのフラグを“1”に書き換える(S61)。以上、ヘッド114の到達位置と書き込み開始予定位置がずれると予測されるデータの情報をあらかじめ不揮発メモリ110に書き込んでおくことにより、ある書き込み命令に対する書き込みデータに対し、不揮発メモリ110へのデータの情報の移動量が多い場合であっても、不揮発メモリ110への情報の書き込みによる記憶装置全体の書き込み速度の遅延を防止することが出来る。
[書き込み開始予定位置からずれるセクタ数の予測]
図9はシーク距離とそれに対応するヘッド114のシーク時間との関係を表すグラフ500である。シーク距離とは現在ヘッド114があるトラックから移動先のトラックまでの間のトラック数である。またシーク時間とはシーク距離をヘッドが移動するのに要する時間である。グラフ500において、曲線501はヘッドの移動速度やトラック間の距離から計算される理論値である。点503は実際に記憶装置を動作させて測定した場合の実測値である。点503の通り実際のシーク時間は理論値に対してばらつきを有するため、理論値に基づいてシークスケジュールを立てると、データの書込み開始予定セクタとヘッド114の到達位置がずれる場合がある。
図9はシーク距離とそれに対応するヘッド114のシーク時間との関係を表すグラフ500である。シーク距離とは現在ヘッド114があるトラックから移動先のトラックまでの間のトラック数である。またシーク時間とはシーク距離をヘッドが移動するのに要する時間である。グラフ500において、曲線501はヘッドの移動速度やトラック間の距離から計算される理論値である。点503は実際に記憶装置を動作させて測定した場合の実測値である。点503の通り実際のシーク時間は理論値に対してばらつきを有するため、理論値に基づいてシークスケジュールを立てると、データの書込み開始予定セクタとヘッド114の到達位置がずれる場合がある。
曲線502はシーク時間のばらつきを考慮してシーク距離とシーク時間との関係をグラフ化したものである。あるシーク距離における曲線501と502とのシーク時間の差分値とディスク115の回転速度から、ヘッド114の到達位置と書き込み開始予定セクタとのずれに対応するセクタ数を予測することが出来る。このセクタ数を不揮発メモリ110の空き領域等に記憶しておき、図8の制御フローにおいて読み出すことにより、制御部108はヘッド114のシークがずれる予測されるセクタ数分のデータを不揮発メモリ110に書き込むことが出来る。
[データの読み出し制御フロー]
図10は記憶装置100からデータを読み出す場合の制御部108の読み出し制御フロー図である。かかる制御フローにより、制御部108はディスク115および不揮発メモリ110に分散したデータを読み出すことが出来る。
図10は記憶装置100からデータを読み出す場合の制御部108の読み出し制御フロー図である。かかる制御フローにより、制御部108はディスク115および不揮発メモリ110に分散したデータを読み出すことが出来る。
制御部108はメモリデータ管理テーブル300を参照し、データ読み出し命令に対応するデータが不揮発メモリ110に記憶されていないか検索する(S40)。データが不揮発メモリ110に記憶されていない場合(S41、NO)、制御部108は読み出し命令に記述されたLBAに基づいて、データの記憶位置であるディスク番号、トラック番号、および先頭セクタ番号を計算する(S42)。データタが不揮発メモリ110に記憶されている場合(S41、YES)、制御部108はそのデータを不揮発メモリ110から読み出す(S44)。同時に制御部108は読み出し命令に記述されたLBAに基づいて、データの記憶位置であるディスク番号、トラック番号、および先頭セクタ番号を計算し、不揮発メモリ110に記憶されたデータのセクタ数を加算することにより、残りのデータが記憶されたディスク115の位置を計算する(S42)。制御部108は計算したセクタ番号等にしたがってディスク115からデータを読み出す(S43)。すべてのデータ読み出し命令を実行していない場合(S45、NO)、制御部108は再びステップS40からの処理を繰り返す。すべてのデータ読み出し命令を実行している場合(S45、YES)、制御部108は読み出し処理を終了する。
20 上位装置
100 記憶装置
102 ホストIF制御部
103 データバッファ制御部
104 データバッファ
105 フォーマット制御部
107 ヘッドIC
108 制御部
109 メモリ制御部
110 不揮発メモリ
111 位置検出部
112 VCM
114 ヘッド
115 ディスク
116 コモンバス
300 メモリデータ管理テーブル
400 空き領域管理テーブル
500 グラフ
600 トラック
610 データ
100 記憶装置
102 ホストIF制御部
103 データバッファ制御部
104 データバッファ
105 フォーマット制御部
107 ヘッドIC
108 制御部
109 メモリ制御部
110 不揮発メモリ
111 位置検出部
112 VCM
114 ヘッド
115 ディスク
116 コモンバス
300 メモリデータ管理テーブル
400 空き領域管理テーブル
500 グラフ
600 トラック
610 データ
Claims (4)
- 複数のトラックを有する記憶媒体と、
該記憶媒体にデータを書き込むヘッドと、
データを記憶可能な補助記憶部と、
データの書き込み時に、データの書込み開始予定位置を定め、該データの書き込み対象となるトラックに該ヘッドを移動させ、該ヘッドが該データの書き込み対象となる該トラックに到達したら該トラックに沿ってデータを書き始めると共に、書込み予定データのうち、該書込み開始予定位置からデータの書き始めの位置の間に書き込みを予定したデータについては、該補助記憶部に記憶する制御部と
を有することを特徴とする記憶装置。 - 該制御部は、該補助記憶部に書き込んだ該データを該記憶媒体に移動することを特徴とする、請求項1に記載の記憶装置。
- 該制御部は、該ヘッドがデータを書込むためのトラックに移動した場合の該記憶媒体上の書き始めの位置を予測し、該書き込み開始予定位置から予測した該書き始めの位置の間に書き込みを予定したデータを該補助記憶部に記憶することを特徴とする、請求項1に記載の記憶装置。
- 複数のトラックを有する記憶媒体と、該記憶媒体にデータを書き込むヘッドと、データを記憶可能な補助記憶部とを有する記憶装置の制御方法であって、
データの書き込み時に、データの書込み開始予定位置を定め、
該データの書き込み対象となるトラックに該ヘッドを移動させ、
該ヘッドが該データの書き込み対象となる該トラックに到達したら該トラックに沿ってデータを書き始めると共に、書込み予定データのうち、該書込み開始予定位置からデータの書き始めの位置の間に書き込みを予定したデータについては、該補助記憶部に記憶することを特徴とする制御方法。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2008290355A JP2010118112A (ja) | 2008-11-12 | 2008-11-12 | 記憶装置および記憶装置の制御方法 |
US12/571,151 US20100118434A1 (en) | 2008-11-12 | 2009-09-30 | Storage apparatus and control method of storage apparatus |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2008290355A JP2010118112A (ja) | 2008-11-12 | 2008-11-12 | 記憶装置および記憶装置の制御方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2010118112A true JP2010118112A (ja) | 2010-05-27 |
Family
ID=42164992
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2008290355A Pending JP2010118112A (ja) | 2008-11-12 | 2008-11-12 | 記憶装置および記憶装置の制御方法 |
Country Status (2)
Country | Link |
---|---|
US (1) | US20100118434A1 (ja) |
JP (1) | JP2010118112A (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2012068797A (ja) * | 2010-09-22 | 2012-04-05 | Canon Inc | 起動高速化方法、情報処理装置及びプログラム |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9569352B2 (en) | 2013-03-14 | 2017-02-14 | Sandisk Technologies Llc | Storage module and method for regulating garbage collection operations based on write activity of a host |
US9471254B2 (en) * | 2014-04-16 | 2016-10-18 | Sandisk Technologies Llc | Storage module and method for adaptive burst mode |
US9928169B2 (en) | 2014-05-07 | 2018-03-27 | Sandisk Technologies Llc | Method and system for improving swap performance |
US9710198B2 (en) | 2014-05-07 | 2017-07-18 | Sandisk Technologies Llc | Method and computing device for controlling bandwidth of swap operations |
US9665296B2 (en) | 2014-05-07 | 2017-05-30 | Sandisk Technologies Llc | Method and computing device for using both volatile memory and non-volatile swap memory to pre-load a plurality of applications |
US9633233B2 (en) | 2014-05-07 | 2017-04-25 | Sandisk Technologies Llc | Method and computing device for encrypting data stored in swap memory |
US9990158B2 (en) | 2016-06-22 | 2018-06-05 | Sandisk Technologies Llc | Storage system and method for burst mode management using transfer RAM |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS61139978A (ja) * | 1984-12-12 | 1986-06-27 | Ricoh Co Ltd | 磁気デイスク制御装置 |
JPH0410281A (ja) * | 1990-04-27 | 1992-01-14 | Oki Electric Ind Co Ltd | 磁気ディスク装置 |
JPH0635620A (ja) * | 1992-07-20 | 1994-02-10 | Mitsubishi Electric Corp | 記憶装置の制御方式 |
JP2003168260A (ja) * | 2001-11-28 | 2003-06-13 | Sony Corp | ディスク制御装置及びディスク制御方法 |
JP2005071399A (ja) * | 2003-08-22 | 2005-03-17 | Fujitsu Ltd | 情報記録再生装置におけるアクセス制御装置および方法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP4736593B2 (ja) * | 2005-07-25 | 2011-07-27 | ソニー株式会社 | データ記憶装置、データ記録方法、記録及び/又は再生システム、並びに、電子機器 |
-
2008
- 2008-11-12 JP JP2008290355A patent/JP2010118112A/ja active Pending
-
2009
- 2009-09-30 US US12/571,151 patent/US20100118434A1/en not_active Abandoned
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS61139978A (ja) * | 1984-12-12 | 1986-06-27 | Ricoh Co Ltd | 磁気デイスク制御装置 |
JPH0410281A (ja) * | 1990-04-27 | 1992-01-14 | Oki Electric Ind Co Ltd | 磁気ディスク装置 |
JPH0635620A (ja) * | 1992-07-20 | 1994-02-10 | Mitsubishi Electric Corp | 記憶装置の制御方式 |
JP2003168260A (ja) * | 2001-11-28 | 2003-06-13 | Sony Corp | ディスク制御装置及びディスク制御方法 |
JP2005071399A (ja) * | 2003-08-22 | 2005-03-17 | Fujitsu Ltd | 情報記録再生装置におけるアクセス制御装置および方法 |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2012068797A (ja) * | 2010-09-22 | 2012-04-05 | Canon Inc | 起動高速化方法、情報処理装置及びプログラム |
Also Published As
Publication number | Publication date |
---|---|
US20100118434A1 (en) | 2010-05-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP2010118112A (ja) | 記憶装置および記憶装置の制御方法 | |
JP4675881B2 (ja) | 磁気ディスク装置およびその制御方法 | |
KR101474344B1 (ko) | 캐시 플러시 제어 방법 및 이를 이용한 데이터 저장 시스템 | |
US8429343B1 (en) | Hybrid drive employing non-volatile semiconductor memory to facilitate refreshing disk | |
US8307156B1 (en) | Adaptively modifying pre-read operations within a rotating media storage device | |
US8667248B1 (en) | Data storage device using metadata and mapping table to identify valid user data on non-volatile media | |
JP4469906B2 (ja) | 磁気ディスク装置及び同装置におけるデータリフレッシュ方法 | |
JP4282733B1 (ja) | ディスク記憶装置及びデータ書き込み方法 | |
JP2009020986A (ja) | ディスク・ドライブ装置及びディスク・ドライブ装置において不揮発性半導体メモリ領域上のデータを管理するテーブルを保存する方法 | |
US7606987B2 (en) | Apparatus and method for magnetic head control in storage accesses | |
JP2007200537A (ja) | ハイブリッドディスクドライブおよびハイブリッドディスクドライブのデータ制御方法 | |
US6957311B2 (en) | Data storage apparatus, computer apparatus, data processing apparatus, and data processing method | |
JP2010178140A (ja) | 磁気ディスク装置及び同装置における暗号鍵更新方法 | |
JP4504450B1 (ja) | 磁気ディスク装置及び同装置におけるデータリフレッシュ方法 | |
JP2008204574A (ja) | 記憶装置とその制御方法 | |
JP2012138154A (ja) | 磁気ディスク装置及び同装置におけるディスクアクセス方法 | |
JP2018026187A (ja) | 磁気ディスク装置および磁気ディスク装置のコマンドリオーダリング方法 | |
US20140122793A1 (en) | Magnetic disk device and data writing method | |
CN110289022B (zh) | 盘装置 | |
US8055840B2 (en) | Storage device including a controller for rearranging writing commands | |
JP4869416B2 (ja) | 磁気ディスク装置及び同装置におけるデータリフレッシュ方法 | |
JP4919983B2 (ja) | データ記憶装置及びデータ記憶装置におけるデータ管理方法 | |
JPWO2008129616A1 (ja) | 記憶装置、記憶装置の制御装置、記憶装置の制御方法 | |
JP6178287B2 (ja) | 記憶装置、及び制御方法 | |
JP2010044820A (ja) | 記録装置及び記録方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20100830 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20101224 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20110111 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20110628 |