JP2008165881A - 磁気ディスク装置およびその制御方法 - Google Patents

磁気ディスク装置およびその制御方法 Download PDF

Info

Publication number
JP2008165881A
JP2008165881A JP2006353035A JP2006353035A JP2008165881A JP 2008165881 A JP2008165881 A JP 2008165881A JP 2006353035 A JP2006353035 A JP 2006353035A JP 2006353035 A JP2006353035 A JP 2006353035A JP 2008165881 A JP2008165881 A JP 2008165881A
Authority
JP
Japan
Prior art keywords
write
command
magnetic disk
time
commands
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2006353035A
Other languages
English (en)
Other versions
JP4675881B2 (ja
Inventor
Tomonori Masuo
智則 増尾
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.)
Toshiba Corp
Original Assignee
Toshiba 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 Toshiba Corp filed Critical Toshiba Corp
Priority to JP2006353035A priority Critical patent/JP4675881B2/ja
Priority to US11/957,840 priority patent/US7853761B2/en
Priority to CNA2007103001148A priority patent/CN101226505A/zh
Publication of JP2008165881A publication Critical patent/JP2008165881A/ja
Application granted granted Critical
Publication of JP4675881B2 publication Critical patent/JP4675881B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0866Addressing 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
    • G06F12/0868Data transfer between cache memory and other subsystems, e.g. storage devices or host systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR 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/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR 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/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0659Command handling arrangements, e.g. command buffers, queues, command scheduling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR 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
    • G06F3/068Hybrid storage device
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0804Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with main memory updating
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/21Employing a record carrier using a specific recording technology
    • G06F2212/217Hybrid disk, e.g. using both magnetic and solid state storage devices

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Signal Processing For Digital Recording And Reproducing (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

【課題】本発明は短時間にライトフラッシュ処理が可能な磁気ディスク装置の提供。
【解決手段】磁気ディスク(9)と、フラッシュメモリ(30)と、ホストシステムから供給されたライトコマンドとデータを記憶するバッファメモリ(4)と、バッファメモリ(4)に記憶されたライトコマンドを磁気ディスク(9)への書込み処理時間に基づいて第1コマンド群と第2コマンド群とに分類し、第1コマンド群のライトコマンドに係るデータを磁気ディスク(9)に書込み、第2コマンド群のライトコマンドとデータをフラッシュメモリ(30)に書込むフラッシュ手段とを具備する。
【選択図】 図1

Description

本発明はライトコマンドをキャッシュするキャッシュメモリを具備する磁気ディスク装置およびその制御方法に関する。
近年、アクセス速度の高速化のために、キャッシュメモリを備えた磁気ディスク装置が種々開発されている。キャッシュメモリは、ホストコンピュータと磁気ディスク装置間で入出力されるデータを一時的に保持するための高速バッファ記憶であり、磁気ディスク上のデータの写しの一部が格納される。このキャッシュメモリとしては、通常、SRAMやDRAM等の高速半導体メモリが使用される。
キャッシュメモリを備えた磁気ディスク装置においては、ホストコンピュータからディスク装置へのライトアクセス要求が発行されると、キャッシュメモリにライトコマンドとデータが一旦書き込まれる(ライトキャッシュ)。キャッシュメモリには多数のコマンドが登録(キューイング)可能であるが、登録数は有限であるので、キャッシュメモリのライトコマンドを磁気ディスクに書き戻す(ライトフラッシュ)必要がある。一般的には、ホストコンピュータからライトフラッシュ要求が発行されると、データがディスクに書き戻される。あるいは、ライトフラッシュ要求が発行されなくても、磁気ディスク装置側で処理の込み具合を判断して、処理が空いている時間にキャッシュメモリの内容をディスクに書き戻してもよい。
このように、キャッシュメモリを使用した場合には、磁気ディスク装置をアクセスするために必要な機械的な駆動動作の実行回数が少なくなり、磁気ディスク装置のアクセス速度を見掛け上大幅に高速にすることができる。しかしながら、ライトフラッシュのためには機械的な駆動動作が必要であり、磁気ディスク装置のアクセス速度の大幅な短縮は不可能であった。1つのライトコマンドのライトフラッシュには数10ミリ秒単位の時間が係る。
特開平6−309234号公報(段落0002乃至段落0005)
このように従来の磁気ディスク装置には、ライトフラッシュ処理に時間が係るという欠点がある。
本発明の目的は短時間にライトフラッシュ処理が可能な磁気ディスク装置およびその制御方法を提供することである。
本発明の一態様によれば、磁気ディスク装置はデータを記録する磁気ディスクと、データを記憶する不揮発性メモリと、ホストシステムから供給されたライトコマンドとデータを記憶する揮発性メモリと、前記揮発性メモリに記憶されたライトコマンドを前記磁気ディスクへの書込み処理時間に基づいて第1コマンド群と第2コマンド群とに分類し、第1コマンド群のライトコマンドに係るデータを前記磁気ディスクに書込み、第2コマンド群のライトコマンドとデータを前記不揮発性メモリに書込むフラッシュ手段とを具備する。
本発明の他の態様によれば、データを記録する磁気ディスクと、データを記憶する不揮発性メモリと、ホストシステムから供給されたライトコマンドとデータを記憶する揮発性メモリとを具備する磁気ディスクの制御方法は、前記揮発性メモリに記憶されたライトコマンドを前記磁気ディスクへの書込み処理時間に基づいて第1コマンド群と第2コマンド群とに分類するステップと、第1コマンド群のライトコマンドに係るデータを前記磁気ディスクに書込み、第2コマンド群のライトコマンドとデータを前記不揮発性メモリに書込むステップとを具備する。
以上説明したように本発明によれば、揮発性メモリにキャッシュされたライトコマンドを磁気ディスクと不揮発性メモリの両方を用いてフラッシュ処理することにより、短時間にライトフラッシュ処理が可能となる。さらに、短時間にライトフラッシュ処理が行われるので、ライトフラッシュ処理中に衝撃等によりデータが破壊される可能性が低い。
以下、図面を参照して本発明による磁気ディスク装置およびその制御方法の実施の形態を説明する。
第1の実施の形態
図1は本発明の第1の実施の形態に係るハードディスク装置の構成を示すブロック図である。図1において、ハードディスク装置は汎用バス、例えばATA(IDE)バス18を介してホストシステム17に接続される。ハードディスク装置はホストシステム17としてのパーソナルコンピュータの筐体内に配置される内蔵型でもよいし、筐体外に配置される外付け型のいずれでもよい。
CPU1は装置全体の制御およびモータドライバ6の制御を時分割で行う。磁気ディスク9の例えば上側の表面はデータが磁気記録される記録面をなしている。磁気ディスク9の記録面に対応して磁気ヘッド13が配置されている。磁気ヘッド13は、磁気ディスク9へのデータ書き込み(データ記録)及びディスクからのデータ読み出し(データ再生)に用いられる。なお、図示は省略するが、磁気ディスク9の下側の表面も記録面をなし、その記録面に対応してヘッド13と同様のヘッドが配置されているものとする。図1の構成では、単一のディスク9を備えたハードディスク装置を想定している。しかし、ディスク9が複数枚積層配置されたハードディスク装置であっても構わない。
モータドライバ6はCPU1からの制御により磁気ディスク9を定常回転させるためのスピンドルモータ(SPM)8、および磁気ヘッド13を目的のトラック位置に移動させるためのボイスコイルモータ(VCM)7を駆動するための電流をスピンドルモータ8およびボイスコイルモータ7に流す。
CPU1は、図示しないが、フラッシュメモリ、RAMを含む。フラッシュメモリは、CPU1により実行される制御プログラムが予め格納された書き換え可能な不揮発性メモリである。RAMの記憶領域の一部は、CPU1のワーク領域として用いられる。
CPU1に接続されるCPUバス12にはCPU1が実行すべきプログラムが記録されているROM11、変数等の格納に使用するためのRAM10、ディスクコントローラ(HDC)3、制御に必要な諸信号の生成を行うゲートアレイ2、およびフラッシュメモリ30が接続されている。
フラッシュメモリ30は例えば電気的に書き換えが可能なNAND型EEPORMである。フラッシュメモリ30は電源の供給がなくても記憶データを維持できる。このため、フラッシュメモリ30はCPU1のRAM、あるいはRAM10と違いデータを長時間記憶させておくのに適している。本実施形態では、フラッシュメモリ30はディスク9とは別のデータを記憶するのに用いられる。また、フラッシュメモリ30はアクセス速度の向上のために、RAM10と同様にディスク9上に存在するデータの一部を記憶するのにも使用される。
ハードディスクコントローラ(HDC)3およびゲートアレイ2の制御用レジスタはそれぞれCPU1のメモリ空間の一部に割り当てられており、CPU1がこの領域に対して読み出しおよび書き込みを行うことでハードディスクコントローラ3およびゲートアレイ2の制御を行う。
リード・ライトIC5は主として磁気ヘッド13の位置決め処理に必要な信号処理を行うサーボブロック21と、データの読み出し・書き込みのための信号処理を行うリード・ライトブロック22に大別される。
磁気ディスク9には、位置決めのためのサーボデータ信号が記録されている領域(サーボ領域)、およびホストシステムから転送されるデータを記録するための領域(データ領域)が交互にかつ等間隔に配置されている。磁気ヘッド13の位置決め処理の実施時に、磁気ヘッド13から読み出され、ヘッドIC16で増幅されたアナログ信号はリード・ライトIC5に送られ、同IC5のサーボブロック21によりサーボデータが抽出され、サーボデータはゲートアレイ2に供給され、処理される。CPU1はゲートアレイ2の処理結果をもとにモータドライバ6を制御し、磁気ヘッド13の位置決めのための電流をボイスコイルモータ7に流す。
ハードディスクコントローラ3はCPUバス12に接続される以外にも、ゲートアレイ2、バッファRAM4、リード/ライトIC5に接続されている。ハードディスクコントローラ3はさらに機能ごとにホストシステム17とのインタフェース制御を行うホストブロック23、バッファRAM4の制御を行うバッファブロック25、リード・ライトIC5およびゲートアレイ2と接続され、読み出し・書き込み処理を行うリード・ライトブロック24などに分かれる。
次に、このハードディスク装置の動作を説明する。
読み出し時には、磁気ヘッド13によって磁気ディスク9からアナログ信号が読み出され、ヘッドIC16により増幅される。増幅されたアナログ信号はリード/ライトIC5によって復号化される。ハードディスクコントローラ3は復号信号をゲートアレイ2からの制御用の各信号にしたがって処理することによりホストシステム17に転送すべきデータを生成する。このデータは一旦バッファRAM4に格納されてからホストシステム17に転送される。
書き込み時には、ホストシステム17からハードディスクコントローラ3に転送されたデータはバッファRAM4に一旦格納された後、ゲートアレイ2からの制御用の各信号にしたがってハードディスクコントローラ3からリード/ライトIC5へ送られ、リード/ライトIC5によって符号化された書き込みデータはヘッドIC16を経由して磁気ヘッド13によって磁気ディスク9に書き込まれる。
ホストシステム17は、SetFeatureコマンド等により、ライトキャッシュのオン(有効)/オフ(無効)を指定することが出来る。ライトキャッシュが有効な場合、ホストシステム17から発行されたライトコマンドはバッファRAM4内のコマンドキューイングテーブルに登録される。ライトコマンドはアドレス、転送ブロック数、バッファポインタ、物理アドレス等からなる。コマンドに係るデータは同じくバッファRAM4内のデータテーブルに登録される。
バッファRAM4は電源がオフになるとデータが消失してしまうので、電源遮断などが発生する前に、データテーブルに登録されたデータをコマンドキューイングテーブルに登録されたライトコマンドに従って磁気ディスク9へ確実に書き戻す処理(ライトフラッシュ)が必要になる。これらを保障するために、Standbyコマンド、Flush Cacheコマンド等がホストシステム17に用意されている。これらのコマンドが発行されると、以下のようなライトフラッシュ処理が行われる。
キューイングテーブルに登録された複数のライトコマンドを効率良く実行するために、コマンドの並び替え(リオーダリング)を行いつつ、効率良くアクセス可能なコマンドを検索(選択)し、最適なコマンドの順序でデータテーブルに登録されているデータを磁気ディスク9に記録する(ライトフラッシュ)。本発明では、磁気ディスク9のみならずフラッシュメモリ30も用いてライトフラッシュ処理を実施できるので、どのコマンドをいずれのメディア(磁気ディスク9あるいはフラッシュメモリ30)に対してライトフラッシュするかを決める必要がある。この処理をコマンド分散処理と称する。なお、フラッシュメモリ30に書き戻されたライトコマンドに係るデータはいずれは磁気ディスク9に書き戻す必要があるので、フラッシュメモリ30にはコマンドキューイングテーブルに登録されているライトコマンドのみならずデータテーブルに登録されているデータも書込まれる。
図2にコマンドキューイングテーブルの遷移状況を示す。図2(a)に示すように、コマンドキューイングテーブルは多数個のコマンドが登録可能であり、現在、コマンドA、コマンドB、コマンドC、…コマンドJまでの10個のコマンドが登録されていると仮定する。
コマンドキューイングテーブルに登録されている10個のコマンドについて、先ず、磁気ディスク9のみに書き戻すことを想定して、最も短時間に処理可能なコマンドの順番に並び替えを行う。並び替える方法の一例として、例えば、現在のヘッド位置を考慮してヘッドの移動が最も少なく「高速に処理可能なコマンド」を常に検索する。検索条件は種々あるが、ここでは一例としてシーク時間、回転待ち時間、メディアアクセス時間などを合算した総時間に基づいて現在のヘッドの位置から一番早く処理できるコマンドを「高速に処理可能なコマンド」と規定する。
この結果、図2(b)に示すように、コマンドE→コマンドI→…→コマンドC→コマンドDという順番に並び替えられる。この順番が10個のライトコマンドを磁気ディスクに書き戻す際の最も短時間で処理が実行できる順番であり、ディスク処理順番M_indexと称する。すなわち、一番最初に実行されるコマンドEのディスク処理順番M_indexが0で、以下順次M_indexが1つづつ増加する。なお、コマンドの左側の数字は登録時の初期順番である。同時に、それぞれのコマンドの処理時間をシーク時間、回転待ち時間等を考慮して転送ブロックから計算し、登録する。更には、一番最初に処理するコマンド(ここではコマンドE)からの処理の累積時間も登録していく。
本発明では磁気ディスク9以外にフラッシュメモリ30も選択的に用いてライトフラッシュ動作を行うが、磁気ディスク9へのライト動作はシーク時間、回転待ち時間が必要となるためにフラッシュメモリ30へのライト動作よりも低速であると考えられるため、図2(b)のディスク処理順番M_indexが小さいものは磁気ディスク9にライトフラッシュし、大きいものはフラッシュメモリ30にライトフラッシュすることが、処理時間を短縮する上で効率的であると考えられる。
そこで、図2(b)のテーブルのどの処理順番M_indexのコマンドまでを磁気ディスク9にライトフラッシュするかを決めるために、フラッシュメモリ30の処理時間も登録する。コマンドキューイングテーブルに登録されている10個のコマンドについて、フラッシュメモリ30への書込み時間を転送ブロックから計算し、登録する。フラッシュメモリ30への書込みはシーク時間、回転待ち時間が含まれないため、要求データをライトする実行時間のみである。更には、ディスク処理順番M_indexが一番最後(ここでは9)のコマンド(ここではコマンドD)の処理時間からの累積時間も登録していく。これを図2(c)に示す。ここでは、説明の便宜上メモリ処理順番F_indexはディスク処理順番M_indexと同じとする。
次に、磁気ディスク9への書込みの累積時間と、フラッシュメモリ30への書込みの累積時間との大小比較を行う(図2(d)参照)。磁気ディスク9への書込み累積時間は順番M_indexの小さい方から、フラッシュメモリ30への書込み累積時間は順番F_indexの大きい方から検索する。磁気ディスク9への書込み順番M_indexの大きいコマンドは、磁気ディスク9へのライトフラッシュは高速に処理できないコマンド群である。従って、シーク時間、回転待ち時間を必要としないフラッシュメモリ30へのライトフラッシュ処理として割り当てた方が処理時間が短縮できるので検索方法もこの様な手順で実施する。
各コマンドを実施するまでの累積時間の短いメディアを用いてライトフラッシュする。図2(d)の例では、書込み順番M_indexが0から2までのコマンドE、I、Hは磁気ディスク9に、9〜3までのコマンドD、C、F、G、J、A、Bはフラッシュメモリ30にライトフラッシュする。処理時間を最短化するためには、コマンドE、I、Hはこの順番にライトフラッシュする必要があるが、フラッシュメモリへライトフラッシュするコマンドD、C、F、G、J、A、Bはどのような順番でライトフラッシュしても処理時間に違いはない。
磁気ディスク9へのライトフラッシュ、フラッシュメモリ30へのライトフラッシュは同時に並行して処理可能であるので、磁気ディスク9のみにライトフラッシュすると43ミリ秒要するが、ライトフラッシュに要する時間が11ミリ秒で済む。同時並行して処理する2つのメディアへのライトフラッシュ動作が同じ時間であれば、全体のライトフラッシュ処理時間は半分で済む。短時間にライトフラッシュ処理が完了するので、ライトフラッシュ時に衝撃、あるいは電源遮断等によりデータが破壊されることが防止される。
図3は、図2に示したキューイングテーブルの作成方法を示すフローチャートである。
ステップS12で磁気ディスク処理順番M_indexの初期値を0とする。
ステップS14で現在キューイングテーブルに登録されているコマンド(ここでは、10個)の中から、現在のヘッド位置を考慮して最も高速に処理可能なコマンドを1つ選ぶ。
ステップS16でキューイングテーブル(実際には初期のテーブルはコピーしておく)のM_index番目CMD[M_index]にステップS14で選択されたコマンドを登録する。
ステップS18でキューイングテーブルのM_index番目にステップS14で選択されたコマンドの処理時間M_Time[M_index]を登録する。
ステップS20でキューイングテーブルのM_index番目の累積時間M_Total Time[M_index]をステップS14で選択されたコマンドの処理時間を加算して更新する。
ステップS22でキューイングテーブルに登録されている全てのコマンドを検索したか否かを判定する。ノーの場合は、ステップS24でディスク処理順番M_indexをインクリメントして、ステップS14に戻り、次に最速でアクセス可能なコマンドを選択する。
ステップS22で全てのコマンドが検索されたことが確認されると、ステップS26でメモリ処理順番F_indexの初期値を9とする。すなわち、フラッシュメモリへの書込みは磁気ディスクへの書込み順番とは逆方向から処理する。
ステップS28でキューイングテーブルのF_index番目のコマンドの処理時間F_Time[F_index]を計算し、登録する。
ステップS30でキューイングテーブルのF_index番目の累積時間F_Total Time[F_index]を処理時間を加算して更新する。
ステップS32でキューイングテーブルに登録されている全てのコマンドを検索したか否かを判定する。ノーの場合は、ステップS34でメモリ処理順番F_indexをデクリメントして、ステップS28に戻り、次のコマンドの処理時間を登録する。
ステップS32で全てのコマンドが検索されたことが確認されると、終了する。
図4は、図3で決定されたテーブルを用いてコマンドの分散処理を示すフローチャートである。キューイングテーブルに登録されているコマンド数を10個と仮定する。
ステップS42でディスク処理順番M_indexの初期値を0、メモリ処理順番F_indexの初期値を9とする。
ステップS44でM_index番目のディスク処理累積時間M_Total Time[M_index]とF_index番目のメモリ処理累積時間F_Total Time[F_index]との大小関係を判定する。ディスク処理累積時間M_Total Time[M_index]がメモリ処理累積時間F_Total Time[F_index]より大きい場合は、ステップS52でF_index番目のライトコマンドのフラッシュ処理をフラッシュメモリ30に割当て、ステップS54でF_indexが0になったか否かを判定する。F_indexが0になった場合は、全てのコマンドのフラッシュ処理のメディアの割当てが終了したので、処理を終了する。F_indexが0になっていない場合は、ステップS56でF_indexをデクリメントし、ステップS50に進む。
ステップS44でディスク処理累積時間M_Total Time[M_index]がメモリ処理累積時間F_Total Time[F_index]以上ではない場合は、ステップS46でM_index番目のライトコマンドのフラッシュ処理を磁気ディスク9に割当て、ステップS48でM_indexをインクリメントし、ステップS50に進む。
ステップS50でM_indexがF_index以上でない場合はステップS44に戻り、ディスク処理累積時間M_Total Time[M_index]とメモリ処理累積時間F_Total Time[F_index]との比較を行う。
以上により、図2(d)に示すように、ライトコマンドをフラッシュするメディア割当てが終了する。
図5は以上説明したコマンド分散処理を模式的に示す図である。図2(d)に示すように、磁気ディスク9のみに書き戻す前提で最も短時間に処理可能なコマンドの順番に並び替えたコマンドキューイングテーブルにおいて、上位の順番のコマンド群は磁気ディスクに対して高速に処理が可能なコマンド群であり、下位の順番のコマンド群は磁気ディスクに対して高速に処理が不可能なコマンド群であり、フラッシュメモリ30に書き戻すことにより、コマンドキューイングテーブルに登録されたコマンドを短時間にフラッシュ処理することができる。図5に示すように、コマンドキューイングテーブルには、コマンドの論理ブロックアドレスLBA、転送ブロック数BLK等も登録されている。
フラッシュメモリ30に書き戻されたライトコマンドを磁気ディスク9に書き戻す場合は、通常のライトフラッシュ処理と同様にフラッシュメモリ30内のライトコマンドをバッファRAM4内の(ホストシステム17からFlush CacheコマンドあるいはStandbyコマンドを受けたときに通常使用する)キューイングテーブルに登録する。そして、キューイングテーブルに登録されているコマンドに係り、フラッシュメモリ30に記憶されているデータを磁気ディスクに書戻す。なお、この書き戻しの順番は最も短時間に処理可能なコマンドの順番に限られず、ランダムでもよい。このとき、キャッシュコマンドはフラッシュメモリ(不揮発性メモリ)30に記憶されているので、電源遮断が発生してもデータが消滅することはなくなるため、制御プログラム上で書き戻し処理が必要となった場合に実施することが可能である。
以上説明したように、第1の実施の形態によれば、ホストシステム17から発行されたライトコマンドはバッファRAM4内のコマンドキューイングテーブルに登録され、コマンドに係るデータは同じくバッファRAM4内のデータテーブルに登録される。データテーブルに登録されたデータをコマンドキューイングテーブルに登録されたライトコマンドに従って磁気ディスク9あるいはフラッシュメモリ30へ書き戻す処理(ライトフラッシュ)が行われる。現在のヘッド位置を考慮してヘッドの移動が最も少なく「高速に処理可能なコマンド」群は磁気ディスク9にライトフラッシュし、それ以外のコマンドはフラッシュメモリ30にライトフラッシュする。このように、磁気ディスク9へのライトフラッシュとフラッシュメモリ30へのライトフラッシュは同時に並行して処理可能であるので処理時間が短縮できる。もしも、同時並行して処理する2つのメディアへのライトフラッシュ動作が同じ時間であれば、全体のライトフラッシュ処理時間は半分になる。
変形例
本発明は上述した実施の形態に限定されず、種々変形して実施可能である。例えば、上述の説明では、磁気ディスクへライトフラッシュする場合の処理時間の累積時間と、フラッシュメモリへライトフラッシュする場合の処理時間の累積時間との大小関係に基づいて、磁気ディスクを用いるかフラッシュメモリを用いるかを決めたが、この決め方に限らない。高速で処理可能なコマンド群とそれ以外のコマンド群は他のアルゴリズムにより求めても良い。
また、キャッシュされたライトコマンドを2つのコマンド群に分けて、コマンド群毎にライトフラッシュ先のメディアを磁気ディスクとフラッシュメモリとから選択しているが、使用者の使用目的に応じて、(1)従来通りの磁気ディスク9のみへのフラッシュ動作と、(2)フラッシュメモリ30のみへフラッシュ動作の2つのモードもサポートするように、制御プログラム(ファームウェア)を変更する。モードの選択条件としては、フラッシュメモリ30の異常を検知した場合、あるいは書き込み速度は気にせず、確実にデータを保存したい場合は磁気ディスク9のみへのフラッシュ動作が選択され、瞬時に電源がオフされる危険性があり、すばやくデータを保存したい場合、あるいはアクセスするエリアが限られており、常に高速な処理が必要な場合はフラッシュメモリ30のみへのフラッシュ動作が選択される。
なお、この発明は、上記実施形態そのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化できる。また、上記実施形態に開示されている複数の構成要素の適宜な組み合せにより種々の発明を形成できる。例えば、実施形態に示される全構成要素から幾つかの構成要素を削除してもよい。更に、異なる実施形態に亘る構成要素を適宜組み合せてもよい。
本発明の一実施の形態による磁気ディスク装置の構成を示す図。 コマンドキューイングテーブルの作成手順を示す概略図。 コマンドキューイングテーブルの作成手順を示すフローチャート。 コマンドキューイングテーブルを用いてライトフラッシュの書き戻し先のメディアを選択する手順を示すフローチャート。 ライトフラッシュの概略を説明するための図。
符号の説明
3…ハードディスクコントローラ、4…バッファRAM、9…磁気ディスク、17…ホストシステム、30…フラッシュメモリ。

Claims (8)

  1. データを記録する磁気ディスクと、
    データを記憶する不揮発性メモリと、
    ホストシステムから供給されたライトコマンドとデータを記憶する揮発性メモリと、
    前記揮発性メモリに記憶されたライトコマンドを前記磁気ディスクへの書込み処理時間に基づいて第1コマンド群と第2コマンド群とに分類し、第1コマンド群のライトコマンドに係るデータを前記磁気ディスクに書込み、第2コマンド群のライトコマンドとデータを前記不揮発性メモリに書込むフラッシュ手段と、
    を具備する磁気ディスク装置。
  2. 前記フラッシュ手段は前記揮発性メモリに記憶されたライトコマンドを磁気ディスクに最も効率よく書込むことができる順番に並べ替え、1番から所定の順番までのコマンドを第1コマンド群とし、他を第2コマンド群として分類する請求項1記載の磁気ディスク装置。
  3. 前記フラッシュ手段は前記揮発性メモリに各コマンド毎の磁気ディスクへの書込み時間と1番から順番にコマンドを実行した場合の書込み時間の累計時間と、各コマンド毎の不揮発性メモリへの書込み時間と最後から逆順にコマンドを実行した場合の書込み時間の累計時間とを書込み、磁気ディスクへの書込み時間の累計時間が不揮発性メモリへの書込み時間の累計時間より大きいコマンドは第2コマンド群とする請求項2に記載の磁気ディスク装置。
  4. 前記フラッシュ手段により前記不揮発性メモリに記憶された第2コマンド群のライトコマンドを読み出し、読み出したライトコマンドに係るデータを前記磁気ディスクに書込む第2フラッシュ手段をさらに具備する請求項1記載の磁気ディスク装置。
  5. データを記録する磁気ディスクと、
    データを記憶する不揮発性メモリと、
    ホストシステムから供給されたライトコマンドとデータを記憶する揮発性メモリとを具備する磁気ディスクの制御方法において、
    前記揮発性メモリに記憶されたライトコマンドを前記磁気ディスクへの書込み処理時間に基づいて第1コマンド群と第2コマンド群とに分類するステップと、
    第1コマンド群のライトコマンドに係るデータを前記磁気ディスクに書込み、第2コマンド群のライトコマンドとデータを前記不揮発性メモリに書込むステップと、
    を具備する制御方法。
  6. 前記分類ステップは前記揮発性メモリに記憶されたライトコマンドを磁気ディスクに最も効率よく書込むことができる順番に並べ替え、1番から所定の順番までのコマンドを第1コマンド群とし、他を第2コマンド群として分類する請求項5記載の制御方法。
  7. 前記分類ステップは前記揮発性メモリに各コマンド毎の磁気ディスクへの書込み時間と1番から順番にコマンドを実行した場合の書込み時間の累計時間と、各コマンド毎の不揮発性メモリへの書込み時間と最後から逆順にコマンドを実行した場合の書込み時間の累計時間とを書込むステップと、
    磁気ディスクへの書込み時間の累計時間が不揮発性メモリへの書込み時間の累計時間より大きいコマンドは第2コマンド群とするステップとを具備する請求項6に記載の制御方法。
  8. 前記書込みステップにより前記不揮発性メモリに記憶された第2コマンド群のライトコマンドを読み出し、読み出したライトコマンドに係るデータを前記磁気ディスクに書込むステップをさらに具備する請求項5記載の制御方法。
JP2006353035A 2006-12-27 2006-12-27 磁気ディスク装置およびその制御方法 Expired - Fee Related JP4675881B2 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP2006353035A JP4675881B2 (ja) 2006-12-27 2006-12-27 磁気ディスク装置およびその制御方法
US11/957,840 US7853761B2 (en) 2006-12-27 2007-12-17 Classifying write commands into groups based on cumulated flush time
CNA2007103001148A CN101226505A (zh) 2006-12-27 2007-12-17 磁盘装置以及控制该装置的方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2006353035A JP4675881B2 (ja) 2006-12-27 2006-12-27 磁気ディスク装置およびその制御方法

Publications (2)

Publication Number Publication Date
JP2008165881A true JP2008165881A (ja) 2008-07-17
JP4675881B2 JP4675881B2 (ja) 2011-04-27

Family

ID=39585648

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2006353035A Expired - Fee Related JP4675881B2 (ja) 2006-12-27 2006-12-27 磁気ディスク装置およびその制御方法

Country Status (3)

Country Link
US (1) US7853761B2 (ja)
JP (1) JP4675881B2 (ja)
CN (1) CN101226505A (ja)

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010211880A (ja) * 2009-03-11 2010-09-24 Sharp Corp ディスクドライブ装置、その制御方法、プログラム、及び、記録媒体
JP2011134413A (ja) * 2009-12-25 2011-07-07 Internatl Business Mach Corp <Ibm> 読出し及び書込み命令の混在するコマンド列を受け取った場合の最適な書込みを実行するリニア記録方式の装置、その方法、及びプログラム。
JP2012517645A (ja) * 2009-02-11 2012-08-02 インディリンクス カンパニー リミテッド 半導体ディスクシステムのバッファキャッシュプログラミング方法およびバッファキャッシュプログラミング装置
JP2012243353A (ja) * 2011-05-19 2012-12-10 Internatl Business Mach Corp <Ibm> テープ記憶装置、データ書込み方法、及び、プログラム
WO2012176539A1 (ja) * 2011-06-24 2012-12-27 インターナショナル・ビジネス・マシーンズ・コーポレーション 読出し及び書込み命令の混在するコマンド列を受け取った場合の最適な書込みを実行するリニア記録方式の装置、その方法、及びプログラム
JP2013161112A (ja) * 2012-02-01 2013-08-19 Nec Corp 情報処理装置、制御装置、及び情報処理方法
JP2016021133A (ja) * 2014-07-14 2016-02-04 株式会社東芝 磁気ディスク装置、及びライトコマンドを実行する方法

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20100205367A1 (en) * 2009-02-09 2010-08-12 Ehrlich Richard M Method And System For Maintaining Cache Data Integrity With Flush-Cache Commands
CN103678150B (zh) * 2013-12-23 2017-06-09 华为技术有限公司 固态硬盘使用方法及装置
CN104900240B (zh) * 2014-03-04 2018-03-23 株式会社东芝 硬盘装置及数据刷新方法
US9823859B2 (en) * 2014-11-06 2017-11-21 Western Digital Technologies, Inc. Mechanical shock mitigation for data storage
US9665308B2 (en) * 2015-03-10 2017-05-30 International Business Machines Corporation Optimization of the copying of change recorded data by using spare flash capacity
KR102605566B1 (ko) * 2018-11-22 2023-11-24 에스케이하이닉스 주식회사 메모리 컨트롤러 및 그 동작 방법
US11645155B2 (en) * 2021-02-22 2023-05-09 Nxp B.V. Safe-stating a system interconnect within a data processing system

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS6476344A (en) * 1987-09-18 1989-03-22 Fujitsu Ltd Disk cache control system
JPH06348600A (ja) * 1993-06-04 1994-12-22 Hitachi Ltd ディスクキャッシュ装置
JPH1040170A (ja) * 1996-07-26 1998-02-13 Toshiba Corp ディスクキャッシュシステム
JP2001154809A (ja) * 1999-11-30 2001-06-08 Fujitsu Ltd ディスク装置
JP2001222380A (ja) * 2000-02-07 2001-08-17 Hitachi Ltd 外部記憶装置とそれを備えた情報処理システム
JP2001250315A (ja) * 2000-03-03 2001-09-14 Hitachi Ltd 高信頼性記憶装置及び情報記録方法。

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH05250274A (ja) 1992-03-04 1993-09-28 Mitsubishi Electric Corp ディスクキャッシュ装置
JPH06309234A (ja) 1993-02-15 1994-11-04 Toshiba Corp ディスク制御装置
US6571298B1 (en) * 2000-01-11 2003-05-27 International Business Machines Corporation System and method for grouping disk access commands in a queue according to proximate disk positions
JP2003308176A (ja) * 2002-04-03 2003-10-31 Internatl Business Mach Corp <Ibm> データ記憶装置、コマンド・キューのリオーダリング方法、データ処理方法およびプログラム
US7472222B2 (en) 2004-10-12 2008-12-30 Hitachi Global Storage Technologies Netherlands B.V. HDD having both DRAM and flash memory
JP4788528B2 (ja) * 2005-09-22 2011-10-05 富士通株式会社 ディスク制御装置、ディスク制御方法、ディスク制御プログラム
US7411757B2 (en) * 2006-07-27 2008-08-12 Hitachi Global Storage Technologies Netherlands B.V. Disk drive with nonvolatile memory having multiple modes of operation

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS6476344A (en) * 1987-09-18 1989-03-22 Fujitsu Ltd Disk cache control system
JPH06348600A (ja) * 1993-06-04 1994-12-22 Hitachi Ltd ディスクキャッシュ装置
JPH1040170A (ja) * 1996-07-26 1998-02-13 Toshiba Corp ディスクキャッシュシステム
JP2001154809A (ja) * 1999-11-30 2001-06-08 Fujitsu Ltd ディスク装置
JP2001222380A (ja) * 2000-02-07 2001-08-17 Hitachi Ltd 外部記憶装置とそれを備えた情報処理システム
JP2001250315A (ja) * 2000-03-03 2001-09-14 Hitachi Ltd 高信頼性記憶装置及び情報記録方法。

Cited By (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2012517645A (ja) * 2009-02-11 2012-08-02 インディリンクス カンパニー リミテッド 半導体ディスクシステムのバッファキャッシュプログラミング方法およびバッファキャッシュプログラミング装置
JP2010211880A (ja) * 2009-03-11 2010-09-24 Sharp Corp ディスクドライブ装置、その制御方法、プログラム、及び、記録媒体
JP2011134413A (ja) * 2009-12-25 2011-07-07 Internatl Business Mach Corp <Ibm> 読出し及び書込み命令の混在するコマンド列を受け取った場合の最適な書込みを実行するリニア記録方式の装置、その方法、及びプログラム。
US9601141B2 (en) 2009-12-25 2017-03-21 International Business Machines Corporation Linear recording device for executing optimum writing upon receipt of series of commands including mixed read and write commands and a method for executing the same
US8966169B2 (en) 2009-12-25 2015-02-24 International Business Machines Corporation Linear recording device for executing optimum writing upon receipt of series of commands including mixed read and write commands and a method for executing the same
JP2012243353A (ja) * 2011-05-19 2012-12-10 Internatl Business Mach Corp <Ibm> テープ記憶装置、データ書込み方法、及び、プログラム
US8964327B2 (en) 2011-05-19 2015-02-24 International Business Machines Corporation Tape storage device, data writing method, and program
US8929020B2 (en) 2011-06-24 2015-01-06 International Business Machines Corporation Linear recording device for executing optimum writing upon receipt of series of commands including mixed read and write commands and method and program thereof
JP5552195B2 (ja) * 2011-06-24 2014-07-16 インターナショナル・ビジネス・マシーンズ・コーポレーション 読出し及び書込み命令の混在するコマンド列を受け取った場合の最適な書込みを実行するリニア記録方式の装置、その方法、及びプログラム
GB2506555A (en) * 2011-06-24 2014-04-02 Ibm Linear-recording device for performing optimal writing on receipt of command string of combined read and write commands method for same, and program
US9135949B2 (en) 2011-06-24 2015-09-15 International Business Machines Corporation Linear recording executing optimum writing upon receipt of series of commands including mixed read and write commands
US9330713B2 (en) 2011-06-24 2016-05-03 International Business Machines Corporation Linear recording executing optimum writing upon receipt of series of commands including mixed read and write commands
WO2012176539A1 (ja) * 2011-06-24 2012-12-27 インターナショナル・ビジネス・マシーンズ・コーポレーション 読出し及び書込み命令の混在するコマンド列を受け取った場合の最適な書込みを実行するリニア記録方式の装置、その方法、及びプログラム
GB2506555B (en) * 2011-06-24 2019-02-06 Ibm Linear recording for executing optimum writing upon receipt of series of commands including mixed read and write commands
JP2013161112A (ja) * 2012-02-01 2013-08-19 Nec Corp 情報処理装置、制御装置、及び情報処理方法
JP2016021133A (ja) * 2014-07-14 2016-02-04 株式会社東芝 磁気ディスク装置、及びライトコマンドを実行する方法

Also Published As

Publication number Publication date
US7853761B2 (en) 2010-12-14
US20080162803A1 (en) 2008-07-03
CN101226505A (zh) 2008-07-23
JP4675881B2 (ja) 2011-04-27

Similar Documents

Publication Publication Date Title
JP4675881B2 (ja) 磁気ディスク装置およびその制御方法
US6779081B2 (en) Apparatus and method for defragmentation in disk storage system
US8667248B1 (en) Data storage device using metadata and mapping table to identify valid user data on non-volatile media
US8819375B1 (en) Method for selective defragmentation in a data storage device
US8560759B1 (en) Hybrid drive storing redundant copies of data on disk and in non-volatile semiconductor memory based on read frequency
KR101474344B1 (ko) 캐시 플러시 제어 방법 및 이를 이용한 데이터 저장 시스템
US7472219B2 (en) Data-storage apparatus, data-storage method and recording/reproducing system
US8639872B1 (en) Hybrid drive comprising write cache spanning non-volatile semiconductor memory and disk
JP4469906B2 (ja) 磁気ディスク装置及び同装置におけるデータリフレッシュ方法
JP2009020986A (ja) ディスク・ドライブ装置及びディスク・ドライブ装置において不揮発性半導体メモリ領域上のデータを管理するテーブルを保存する方法
JP2008046964A (ja) 情報記録装置及びその制御方法
TW201103016A (en) Systems and methods for tiered non-volatile storage
JP2007200537A (ja) ハイブリッドディスクドライブおよびハイブリッドディスクドライブのデータ制御方法
US10152236B2 (en) Hybrid data storage device with partitioned local memory
US7913029B2 (en) Information recording apparatus and control method thereof
JP2010118112A (ja) 記憶装置および記憶装置の制御方法
US20120162809A1 (en) Magnetic disk drive and method of accessing a disk in the drive
US20040015878A1 (en) Reordering controller, reordering method and storage apparatus
US11275684B1 (en) Media read cache
KR20070060301A (ko) 불휘발성 메모리를 쓰기 캐시로 구비한 하드 디스크드라이버
JP2009146539A (ja) 情報記録装置および情報記録方法
JP4919983B2 (ja) データ記憶装置及びデータ記憶装置におけるデータ管理方法
JP4869416B2 (ja) 磁気ディスク装置及び同装置におけるデータリフレッシュ方法
JP2007164928A (ja) 記憶媒体管理装置、記憶媒体管理プログラム、記憶媒体管理方法
JP2009087460A (ja) ディスク記憶装置のコマンド処理方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20090331

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20100901

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20110104

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20110126

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20140204

Year of fee payment: 3

R151 Written notification of patent or utility model registration

Ref document number: 4675881

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R151

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20140204

Year of fee payment: 3

LAPS Cancellation because of no payment of annual fees