JP2010080021A - 記録制御方法及び記録制御部、並びに記憶装置 - Google Patents

記録制御方法及び記録制御部、並びに記憶装置 Download PDF

Info

Publication number
JP2010080021A
JP2010080021A JP2008249619A JP2008249619A JP2010080021A JP 2010080021 A JP2010080021 A JP 2010080021A JP 2008249619 A JP2008249619 A JP 2008249619A JP 2008249619 A JP2008249619 A JP 2008249619A JP 2010080021 A JP2010080021 A JP 2010080021A
Authority
JP
Japan
Prior art keywords
data
command
write
processing
physical sector
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2008249619A
Other languages
English (en)
Inventor
Gayuki Sato
賀之 佐藤
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 Storage Device Corp
Original Assignee
Toshiba Storage Device 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 Storage Device Corp filed Critical Toshiba Storage Device Corp
Priority to JP2008249619A priority Critical patent/JP2010080021A/ja
Priority to US12/501,103 priority patent/US20100079904A1/en
Publication of JP2010080021A publication Critical patent/JP2010080021A/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B5/00Recording by magnetisation or demagnetisation of a record carrier; Reproducing by magnetic means; Record carriers therefor
    • G11B5/48Disposition 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/58Disposition 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 for the purpose of maintaining alignment of the head relative to the record carrier during transducing operation, e.g. to compensate for surface irregularities of the latter or for track following
    • G11B5/596Disposition 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 for the purpose of maintaining alignment of the head relative to the record carrier during transducing operation, e.g. to compensate for surface irregularities of the latter or for track following for track following on disks
    • G11B5/59605Circuits
    • 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/0608Saving storage space on storage 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/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/0674Disk device
    • G06F3/0676Magnetic disk device
    • 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/0656Data buffering arrangements

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Human Computer Interaction (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Signal Processing For Digital Recording And Reproducing (AREA)

Abstract

【課題】RMW処理を効率よく実行し、効率的な記憶処理を実行する。
【解決手段】ホストから入力されるコマンドの書き込みデータのサイズが、磁気ディスクの物理セクタよりも小さいか否かを判断し(ステップS10)、小さい場合にそのコマンドの優先順位を下げておく(ステップS12)。また、優先順位が下げられたコマンドが複数入力され、かつその物理セクタが近い場合(Nセクタ内である場合)に、それらコマンドを結合する(ステップS18)。これにより、リード処理を、優先順位が下げられた各データに対応する物理セクタについて一括して行うことができるので、リード処理におけるトータルのシーク動作(回数)を減らすことができ、RMW処理を効率よく実行することが可能となる。
【選択図】図3

Description

本発明は、記録制御方法、記録制御部及び記憶装置に関し、特に、ホストから入力された書き込みデータの記録制御方法及び記録制御部、並びに当該記録制御部を具備する記憶装置に関する。
近年、磁気ディスク装置においては大容量化が進んでおり、当該大容量を確保するための一手段として、Large Sectorと呼ばれるフォーマット効率の高いディスクフォーマット形式が提案されている。
このLarge Sectorは、磁気ディスク装置の1セクタとして、従来の512バイトより大きなサイズ(例えば1024バイトや4096バイトなどのサイズ)を採用している。このようなLarge Sectorを採用する場合、上位ホスト側が当該セクタサイズに対応していない場合がある。これに対応するためには、512バイト単位でライト要求されたデータに対して、RMW(Read Modify Write)を用いたエミュレーション動作を実行する必要がある(例えば、特許文献1参照)。
特開2002−15507号公報
上記RMWを用いたエミュレーション動作では、データを記録するセクタをバッファにリードし、ホストが要求した512バイト単位のセクタを上書き(モディファイ)し、当該上書きしたデータを媒体に書き戻す処理を行う必要がある。このため、コマンドごとにリード及びモディファイ分の処理時間が必要となるため、磁気ディスク装置の性能低下(書き込み速度の低下)が生じるおそれがある。
そこで本発明は上記の課題に鑑みてなされたものであり、リード処理及びモディファイ・ライト処理を効率よく実行し、効率的な記録制御を行うことが可能な記録制御方法、記録制御装置を提供することを目的とする。また、本発明は、効率的な記録が可能な記憶装置を提供することを目的とする。
本明細書に記載の記録制御方法は、ホストから入力されるコマンドで指定された書き込みデータのサイズが、媒体の物理セクタよりも小さいか否かを判断する判断工程と、前記媒体の物理セクタよりもサイズが小さい書き込みデータのコマンドの優先順位を下げる順位変更工程と、前記優先順位が下げられた書き込みデータのコマンドが複数入力された段階で、当該コマンドで指定された各物理セクタについてのリード処理を一括して行うとともに、当該リード処理結果に基づいて、モディファイ・ライト処理を実行する処理工程と、を含んでいる。
これによれば、ホストから入力されるコマンドで指定された書き込みデータのサイズが、媒体の物理セクタよりも小さい場合にそのコマンドの優先順位を下げておき、優先順位が下げられた書き込みデータのコマンドが複数入力された段階で、当該コマンドで指定された物理セクタについてのリード処理を一括して行うので、リード処理におけるトータルのシーク動作(回数)を減らすことができる。これにより、リード処理及びモディファイ・ライト処理を効率良く行うことができ、ひいては効率的な記録制御を行うことが可能となる。
本明細書に記載の記録制御部は、ホストから入力されるコマンドで指定された書き込みデータのサイズが、媒体の物理セクタよりも小さいか否かを判断する判断部と、前記判断部による判断の結果、前記媒体の物理セクタよりもサイズが小さいと判断された書き込みデータのコマンドの優先順位を下げる順位変更部と、前記優先順位が下げられた書き込みデータのコマンドが複数入力された段階で、当該コマンドで指定された各物理セクタについてのリード処理を一括して行うとともに、当該リード処理結果に基づいて、モディファイ・ライト処理を実行する処理部と、を備えている。
これによれば、ホストから入力されるコマンドで指定された書き込みデータのサイズが、媒体の物理セクタよりも小さい場合にそのコマンドの優先順位を下げておき、優先順位が下げられた書き込みデータのコマンドが複数入力された段階で、処理部が、当該コマンドで指定された物理セクタについてのリード処理を一括して行うので、リード処理におけるトータルのシーク動作(回数)を減らすことができる。これにより、リード処理及びモディファイ・ライト処理を効率良く行うことができ、ひいては効率的な記録制御を行うことが可能となる。
本明細書に記載の記憶装置は、ホストから入力されるデータをリード処理及びモディファイ・ライト処理する上記記録制御部と、前記記録制御部で処理されたデータを媒体に記録する記録部と、を備えている。
これによれば、効率的な記録制御を行うことが可能な記録制御部を備えているので、媒体に対する効率的な記録を行うことが可能となる。
本明細書に記載の記録制御方法及び記録制御装置は、リード処理及びモディファイ・ライト処理を効率よく実行し、効率的な記録制御を行うことができるという効果を奏する。また、本明細書に記載の記憶装置は、効率的な記録ができるという効果を奏する。
≪第1の実施形態≫
以下、本発明の記憶装置の第1の実施形態に係る磁気ディスク装置100について、図1〜図4に基づいて詳細に説明する。
図1は、磁気ディスク装置100を示すブロック図である。図1において、HDD100は、ディスクエンクロージャ80と、制御ボード90と、を有している。
ディスクエンクロージャ80は、スピンドルモータ(SPM)14、ボイスコイルモータ(VCM)50、ヘッド16、ヘッドIC52等を含む。スピンドルモータ14は、磁気ディスク12を、例えば4200〜15000rpmなどの高速度で回転駆動する。なお、磁気ディスク12としては、大容量を確保するため、Large Sectorと呼ばれるフォーマット効率の高いディスクフォーマット形式が採用されている。具体的には、磁気ディスクの物理セクタが、従来の512バイトより大きなサイズ(例えば4096バイト)に設定されている。ボイスコイルモータ50は、ヘッド16を保持する不図示のヘッドスタックアッセンブリ(HSA)を駆動して、ヘッド16と磁気ディスク12との相対位置関係を変更する。ヘッド16は、セラミックなどから成る本体内に、記録コイル及び記録コアを含む記録素子と、記録コアに隣接配置された再生素子と、を有している。再生素子としては、GMR素子(Giant Magneto Resistance素子)やTMR素子(Tunneling Magneto Resistance素子)が用いられる。ヘッドIC52は、上位装置となるホスト82からのライトコマンドまたはリードコマンドに基づくヘッドセレクト信号で1つのヘッドを選択して書き込みまたは読み出しを行う。またヘッドIC52には、ライト系についてはライトアンプが設けられ、リード系についてはプリアンプが設けられている。
制御ボード90は、MPU84と、メモリ86と、サーボ制御部92と、ホストインタフェース制御部94と、バッファメモリ制御部96と、バッファメモリ98と、ハードディスクコントローラ102と、リードチャネル104と、を含む。これら各部は、バス28に接続されている。
メモリ86は、例えば、揮発メモリ及び不揮発メモリを含んで構成され、揮発メモリには各種パラメータを格納するテーブルなどが格納され、不揮発メモリには、初期データなどが格納されている。サーボ制御部92は、ボイスコイルモータ50及びスピンドルモータ14の駆動を制御するものである。
バッファメモリ制御部96は、バッファメモリ98に対するデータの格納等を制御するものである。このバッファメモリ制御部96は、図2に示すように、判断部72と、順位変更部74と、処理部76と、格納部78と、を備えている。
判断部72は、ホストから入力され、バッファメモリ98に格納された書き込みデータのサイズが磁気ディスク12の物理セクタ(4096バイト)よりも小さいか否か等の様々な判断を行う。順位変更部74は、判断部72の判断の結果、磁気ディスク12の物理セクタよりもサイズが小さいと判断されたデータの優先順位を下げる(実際には、コマンドの優先順位を下げる)。処理部76は、リード・モディファイ・ライトを用いたエミュレーション動作(以下、単に「RMW処理」と呼ぶ)を実行する。格納部78は、ホストから入力されたデータをバッファメモリ98に格納したり、バッファメモリ98からデータを読み出したりする。
図1に戻り、リードチャネル104は、ライト変調部及びリード復調部として機能する。
次に、上記のように構成される磁気ディスク装置100の具体的な処理シーケンスについて図3、図4に基づいて説明する。この処理は、主に、バッファメモリ制御部96により実行されるものである。
なお、ホスト82から磁気ディスク装置100に対してライト要求(コマンド)が発行されると、ホストインタフェース制御部94が、受領したライト要求(コマンド)を管理するコマンド管理テーブルを作成し、バッファメモリ98(又はメモリ94)に登録する。また、バッファメモリ制御部96は、コマンド管理テーブルを確認するとともに、バッファメモリ98に空き領域があるかを確認した後、ホストに書き込みデータを要求する。そして、当該書き込みデータをバッファメモリ制御部96(格納部78)が受領してバッファメモリ98に格納する。この段階で、図3の処理が開始される。なお、書き込みデータがバッファメモリ98に格納されたときには、ホストインタフェース制御部94が、バッファメモリ98上のデータに対応するキャッシュ情報をメモリ86又はバッファメモリ98に登録する。なお、上記書き込みデータの格納や情報の登録には、MPU84が介在しても良い。
まず、図3のステップS10では、バッファメモリ制御部96の判断部72が、バッファメモリ98に格納された書き込みデータのサイズと物理セクタのサイズとを比較し、端数があるか否か、すなわち、ホストから入力されるデータのサイズが磁気ディスク12の物理セクタ(4096バイト)よりも小さいか否かを判断する。例えば、図4(a)に示すように、磁気ディスク12の物理セクタPLBA0(4096バイト)よりも、ホストから入力されたデータ(LBA0〜3(2048バイト))が小さい場合に、ここでの判断は肯定される。
上記のようにステップS10の判断が肯定された場合、ステップS12に移行し、順位変更部74が、ホストから入力されたデータ(当該データに対応するコマンド)の優先順位を低く設定(変更)する。
次いで、ステップS14では、判断部78が、バッファメモリ98内に他に優先順位の低いコマンドがあるか否かを判断する。例えば、図4(b)に示すように優先順位の低いデータ(端数があるデータ)(LBA8〜11)のコマンドが存在するような場合には、ここでの判断は肯定される。
上記のようにステップS14における判断が肯定された場合、図3のステップS16に移行する。このステップS16では、判断部72が、優先順位の低い各コマンドにおいて指定された物理セクタ(PLBA0とPLBA1)それぞれが、Nセクタ(Nは予め定められた自然数)の範囲内にあるか否かを、判断する。ここで、Nセクタの範囲内とは、物理セクタ同士がある程度近い範囲にあるかどうかを判断するための指標を意味し、数値Nは、設計段階において予め定められているものである。このステップS16の判断が肯定された場合には、ステップS18に移行し、処理部76が、RMW処理のうちのリード処理を一括して実行するように、両コマンドを結合する。
一方、ステップS16の判断が否定された場合(物理セクタ同士が比較的遠い位置に有る場合)には、コマンドを結合することなくステップS14に戻る。
その後は、優先順位が低く設定されたデータ(コマンド)が存在する間、ステップS16の判断(及びステップS18の処理)を繰り返し、全ての優先順位の低いデータ(コマンド)についての判断・処理が終了した段階で、ステップS14の判断が否定されて、ステップS20に移行する。なお、優先順位が低いデータがNセクタの範囲内に3以上あった場合には、3以上のコマンドが結合されることになる。本第1の実施形態では、図4(b)に示すように、データ(LBA0〜3)と、データ(LBA8〜11)がNセクタ範囲内の物理セクタに記録されるものとし、それら2つのコマンドのみが結合されたものとして説明する。
次いで、ステップS20では、処理部76が、ステップS18を経て結合されたコマンドが存在しているか否かを判断する。ここでの判断が否定された場合には、本シーケンスを終了するが、判断が肯定された場合には、ステップS22に移行する。
ステップS22では、処理部76が、連結されたコマンドで指定された各物理セクタ(図4(b)の下段参照)を、リードチャネル104、ヘッドIC52、ヘッド16等を用いて一括して読み出し、当該読み出したデータをバッファに格納する。この処理が、RMW処理のうちのリード処理である。
次いで、ステップS24では、処理部76が、物理セクタから読み出したデータの一部分を、図4(c)に示すように、バッファに格納されているデータで書き換える。この処理が、RMW処理のうちのモディファイ処理である。
次いで、ステップS26では、処理部76が、モディファイ処理により得られたデータ(4096バイトのデータ)を、図4(d)に示すように、リードチャネル104、ヘッドIC52、ヘッド16等を用いて磁気ディスク12上に書き込む。この処理が、RMW処理のうちのライト処理である。
なお、ステップS10において、データに端数が無い場合、すなわち、ホストから入力されるデータのサイズが磁気ディスク12の物理セクタ(4096バイト)と同一の場合には、ここでの判断は否定され、ステップS28に移行する。この場合、RMW処理を行う必要が無いので、ステップS28では、リードチャネル104、ヘッドIC52、ヘッド16等を用いて磁気ディスク12上にデータが書き込まれる。
以上、詳細に説明したように、本第1の実施形態によると、ホスト82から入力されるコマンドの書き込みデータのサイズが、磁気ディスク12の物理セクタよりも小さい場合にそのコマンドの優先順位を下げておき、優先順位が下げられたコマンドが複数入力され、かつその物理セクタが近い場合(Nセクタ内である場合)に、当該優先順位が下げられた各データを書き込む物理セクタについてのリード処理(RMW処理の一部の処理)を一括して行うのでトータルのシーク動作(回数)を減らすことができる。この作用(効果)について、図5、図6の比較例と比較しつつ更に詳述する。ここで、図5には、比較例としての、従来におけるRMW処理に関するフローチャートが示され、図6には、従来の処理を説明するための図が簡略的に示されている。
これらの図に示すように、従来は、ホストから入力された書き込みデータに端数があった場合には(ステップS1010)、そのデータ(コマンド)ごとに、リード処理(ステップS1012、図6(a)参照)、モディファイ処理(ステップS1014、図6(b)参照)、ライト処理(ステップS1016、図6(c)参照)を実行していた。このため、リード処理は、RMW処理を行うコマンド数と同一回数だけ行う必要があった。しかしながら、本第1の実施形態では、上記のように一括してリード処理を行うので(ステップS22)、RMW処理を効率良く行うことができ、ひいては効率的な記録制御を行うことが可能である。
なお、上記第1の実施形態では、優先順位の低いデータが書き込まれる物理セクタがNセクタの範囲内にある場合にコマンドを結合して、当該結合されたコマンドに基づいてRMW処理のリード処理を一括して行う場合について説明したが、これに限られるものではない。例えば、Nセクタの範囲でなくとも、コマンドを結合してRMW処理のリード処理を一括して行うこととしても良い。
また、セクタ数によって一括処理を行うか否かを判断する場合に限らず、例えば、同一トラックの範囲内の場合や、同一又は隣接トラックの範囲内の場合に一括処理するなど、種々の判断基準を採用することが可能である。
≪第2の実施形態≫
次に、本発明の第2の実施形態について図7〜図9に基づいて説明する。
図7には、本第2の実施形態におけるバッファメモリ制御部96の機能ブロック図が示されている。この図7に示すように、バッファメモリ制御部96は、第1の実施形態の構成に加えて、分割部73を有している。
以下、このバッファメモリ制御部96を中心とする、磁気ディスク12への書き込みデータの記録処理について、図8、図9のフローチャート及び図10に基づいて説明する。
まず、バッファメモリ98に格納された書き込みデータのキューイング方法について図8に基づいて説明する。この図8の処理の前提として、ホスト82からホストインタフェース制御部94に対してライト要求(コマンド)が入力されるとともに、ホスト82から書き込みデータが転送され、当該書き込みデータがバッファメモリ98に格納されているものとする。
まず、図8のステップS102では、バッファメモリ制御部96の判断部72が、バッファメモリ98に格納された書き込みデータのサイズと物理セクタのサイズとを比較し、書き込みデータのサイズが磁気ディスク12の物理セクタ(4096バイト)よりも大きいか否かを判断する。例えば、図10(a)に示すように、書き込みデータW1のサイズ(5120バイト)が、磁気ディスク12の物理セクタPLBAn(4096バイト)よりも大きい場合には、ここでの判断は肯定される。
次いで、ステップS104では、分割部73が書き込みデータW1を、物理セクタのサイズを超過した部分(超過部分(端数部分))W1−eと、物理セクタと同一サイズの部分W1−neとに分割する。このうち、超過部分W1−eは、RMW処理が必要な部分であり、それ以外の部分W1−neは、RMW処理が不要な部分である。また、データ部分W1−ne、及びデータ部分W1−eに対応して、コマンドも2つに分割する。
次いで、ステップS106では、分割部73が、両部分W1−e、W1−neのそれぞれのコマンドをキューイングする。このキューイングにおいては、分割部73は、部分W1−eのコマンドの優先順位を下げる。
一方、ステップS102の判断が否定された場合には、ステップS108において、判断部72が、書き込みデータに端数があるか否か、すなわち、書き込みデータのサイズが、物理セクタのサイズよりも小さいか否かを判断する。ここでの判断が肯定された場合には、ステップS110に移行して、当該書き込みデータ(コマンド)の優先順位を下げ、ステップS112にて、キューイング(キューへの登録)を行う。一方、ステップS108の判断が否定された場合には、ステップS112に直接移行して、優先順位を下げることなく、書き込みデータをキューイングする。
更に、本実施形態では、上記のようにしてキューイングが行われているのと並行して、図9に示す書き込み処理を実行する。この図9の処理では、まず、ステップS120において、判断部72が、キューイングされているコマンドのうちの最初のコマンドを参照し、そのコマンドが、優先順位が低く設定されたコマンドであるか否かを判断する。ここでの判断が肯定された場合には、ステップS14〜ステップS26を、上記第1の実施形態と同様の手順で実行する。この処理では、RMW処理を必要とする部分が複数あった場合(Nセクタ範囲にあった場合)に、物理セクタのリード処理が一括して行われることから、効率的なRMW処理を実現できる。
一方、ステップS120の判断が否定された場合には、ステップS28において、第1実施形態と同様に、物理セクタに対してそのままデータを書き込む処理を実行する。
以上詳細に説明したように、本第2の実施形態によると、第1の実施形態と同様、効率的なRMW処理を実現することができるとともに、物理セクタよりもサイズの大きい連続した書き込みデータがホストから入力された場合にも、RMW処理が必要なデータ部分(これに対応するコマンド)のみ優先順位を下げることで、効率的なデータ記録を実現可能である。
≪第3の実施形態≫
次に、本発明の第3の実施形態について、図11〜図13に基づいて説明する。この第3の実施形態は、バッファメモリ98の領域を有効に活用するための処理を実行する点に特徴を有している。
本実施形態では、バッファメモリ制御部96として、図11に示すように、第1の実施形態で説明した図3の構成に加えて、移動部75が設けられている点に特徴を有している。また、本実施形態では、第1の実施形態と同様の処理又は第2の実施形態と同様の処理を行うとともに、バッファメモリ制御部96(主に移動部74)にて、図12に示す処理を適宜実行する。
図12のフローチャートでは、ステップS202において、格納部78が、RMW処理の必要なデータがバッファメモリ96上に存在しているか否かを調査(スキャン)する。この調査において、図13(a)に示すように、RMW処理が必要なデータ(W1−e、W2−e、W3−e)が存在していた場合には、ステップS204における判断が肯定される。
次いで、ステップS206では、移動部75が、RMW処理が必要なデータ(W1−e、W2−e、W3−e)を、RMW専用領域に移動する。ここで、RMW専用領域とは、図13(b)に示すように、予め、バッファメモリ98の一部に設定された連続した領域である。
次いで、ステップS208では、上記ステップS206においてデータを専用領域に移動したことに関連して、格納部78又は図1のMPU84が、コマンドキューのバッファアドレスを変更する。
一方、ステップS202の調査においてRMW処理が必要なデータが存在していないことが判明し、ステップS204における判断が否定された場合には、そのまま、図12の全処理を終了する。
以上説明したように、本第3の実施形態によると、移動部75が、RMW処理を必要とするデータをバッファの連続した専用領域に移動することから、図13(a)のように、RMW処理を必要とするデータが点々と存在することが無い。このため、後から入力されるデータを格納する領域を、図13(b)に示すように、連続した状態で確保することが可能である。これにより、バッファメモリ98を効率的に使用することが可能である。
≪第4の実施形態≫
次に、本発明の第4の実施形態について、図14に基づいて説明する。本第4の実施形態は、図3、図9の処理のステップS20〜S26に代えて、図14の処理を実行する点に特徴を有している。
図3、図9のステップS14において、他に優先順位の低く設定されたデータが無いと判断されると、ステップS302に移行する。このステップS302では、判断部72が、RMW処理を必要とするデータが複数あるか否かを判断する。ここでの判断が肯定された場合には、ステップS304に移行して、格納部78が、RMW処理を必要とするデータに対応する物理セクタの端数セクタ部分のアドレスを基準に、コマンドキューを並び替える。ここで、端数セクタ部分とは、物理セクタのうち、書き込みデータが書き込まれないセクタ部分のみを意味する。
次いで、ステップS306では、処理部76が、コマンドキューに基づいて、RMW処理のうちのリード処理を実行する。この場合、上記第1〜第3の実施形態と異なり、リード処理では、物理セクタ全体ではなく、物理セクタの端数セクタ部分のみをリードするものとする。
次いで、ステップS308では、処理部76が、モディファイ処理を実行する。また、処理部76は、次のステップS310において、書き込むデータ(書き込みデータと端数セクタ部分とを組み合わせたデータ)の先頭アドレスを基準に、コマンドキューを並び替え、ステップS312において、ステップS310で並び替えたコマンドキューに基づいてライト処理を実行する。
以上のように、本第4の実施形態では、リード処理の前にコマンドキューを端数セクタ部分のアドレスを基準に並び替えるととともに、ライト処理の前には書き込むデータのアドレスを基準にコマンドキューを並び替えることとしている。これにより、端数セクタ部分が物理セクタのうちの先頭部分にあるのか、最後尾部分にあるのかにかかわらず、最短の移動距離(シーク距離)となるように、リード処理及びライト処理を実行することができる。したがって、高効率なRMW処理を実現することが可能である。
なお、上記第4の実施形態では、端数セクタ部分のみリードする場合について説明したが、これに限られるものではなく、対象セクタの前後のセクタをリードしても構わない。この前後のセクタは、キャッシュデータとして使用することができる。
≪第5の実施形態≫
次に、本発明の第5の実施形態について、図15〜図18に基づいて説明する。
本第5の実施形態では、バッファメモリ制御部96が、図15に示すように、上記第1の実施形態の構成(図3参照)に加えて、要求部77を備えている点に特徴を有している。
図16には、本第5の実施形態におけるコマンドキューイングのフローチャートが示されている。この図16のステップS402では、判断部72が、ホストから受領したコマンドがNCQ(Native Command Queuing)コマンドであるか否かを判断する。ここでの判断が肯定された場合には、次のステップS404に移行し、判断部72が、書き込みデータのサイズが物理セクタのサイズを超えているか否かを判断する。ここでの判断が肯定された場合には、ステップS406に移行し、超過部分(端数部分)をWx−e(xは自然数)として、そのコマンドをキューに追加する。また、次のステップS408では、超過部分(端数部分)以外をWx−ne(xは自然数)として、そのコマンドをキューに追加する。
これに対し、ステップS404における判断が否定された場合には、ステップS410に移行し、書き込みデータのサイズが物理セクタのサイズよりも小さいか否かを判断する。ここでの判断が肯定された場合には、ステップS408において書き込みデータをWx−eとして、そのコマンドをキューに追加する。一方、ステップS410の判断が否定された場合には、ステップS412に移行し、書き込みデータをWx−neとして、そのコマンドをキューに追加する。
なお、ステップS402における判断が否定された場合にも、ステップS412において、書き込みデータをWx−neとして、そのコマンドをキューに追加する。このように、NCQコマンド以外のコマンドであったときに、書き込みデータをWx−neとするのは、NCQコマンド以外のコマンドでは、データを分割して受領することができないため、NCQコマンドと同様の扱いをすることができないからである。
このような処理を経ることにより、コマンドキューには、図17に示すように、コマンドが配列されるようになっている。なお、図17におけるW1−ne、W2−neは、ステップS406を経てキューイングされたコマンドであり、W1−e、W2−eは、ステップS408を経てキューイングされたコマンドである。また、W3−neは、ステップS412を経てキューイングされたコマンドである。
次に、バッファメモリ制御部96がホストに対して書き込みデータの要求をする際の処理シーケンスについて、図18に基づいて説明する。
図18のステップS420では、コマンドキューにデータWx−eのコマンドが存在するか否かを判断する。ここでの判断が肯定された場合には、ステップS422に移行し、データWx−neのコマンドが存在するか否かを判断する。このステップS422の判断が肯定された場合には、ステップS424に移行し、データWx−neに関するコマンドをキュー先頭に移動する。すなわち、データWx−e、Wx−neのコマンドのいずれもが存在する場合には、RMW処理を実行しないデータWx−neのコマンドを優先的に処理するように、そのコマンドをキュー先頭に移動させる。そして、ステップS426では、先頭のコマンドに基づいて、ホストに対してデータの転送を要求する。
これに対し、ステップS420、ステップS422のいずれかが否定された場合には、コマンドキューの並べ替えを行わずに、先頭のコマンドに基づいてホストに対してデータの転送を要求する。具体的には、RMW処理の必要が無いデータWx−neのコマンドのみである場合、及びRMW処理の必要があるデータWx−eのコマンドのみである場合に、コマンドキューの並べ替えを行わずに、データの転送を要求する。
以上説明したように、本第5の実施形態によると、RMW処理が不要なデータの転送要求を優先的に行うことにより、RMW処理が不要なデータを優先的に磁気ディスク12に書き込み、かつ、RMW処理が必要なデータの転送要求を後でまとめて行う。これにより、バッファメモリ98に同時に格納されるデータ量を小さくすることができるので、バッファメモリを効率的に使用することが可能である。
上述した各実施形態は、本発明の好適な実施の例である。但し、これに限定されるものではなく、本発明の要旨を逸脱しない範囲内において種々変形実施可能である。
第1の実施形態に係る磁気ディスク装置の構成を示すブロック図である。 図1のバッファメモリ制御部の機能ブロック図である。 第1の実施形態における処理を示すフローチャートである。 RMW処理の具体的内容を示す図である。 比較例を示す図(その1)である。 比較例を示す図(その2)である。 第2の実施形態のバッファメモリ制御部の機能ブロック図である。 第2の実施形態に係るコマンドキューへのキューイング処理を示すフローチャートである。 第2の実施形態に係る書き込み処理を示すフローチャートである。 第2の実施形態の処理を示す概念図である。 第3の実施形態のバッファメモリ制御部の機能ブロック図である。 第3の実施形態の処理を示すフローチャートである。 第3の実施形態の処理を示す概念図である。 第4の実施形態の処理を示すフローチャートである。 第5の実施形態のバッファメモリ制御部の機能ブロック図である。 第5の実施形態に係るコマンドキューへのキューイング処理を示すフローチャートである。 図16の処理の結果得られるコマンドキューを示す図である。 第5の実施形態に係るコマンドキューを用いた書き込みデータの転送要求処理を示すフローチャートである。
符号の説明
72 判断部
73 分割部
74 順位変更部
75 移動部
76 処理部
77 要求部
78 格納部
82 ホスト
96 バッファメモリ制御部(記憶制御部)
98 バッファメモリ

Claims (10)

  1. ホストから入力されるコマンドで指定された書き込みデータのサイズが、媒体の物理セクタよりも小さいか否かを判断する判断工程と、
    前記媒体の物理セクタよりもサイズが小さい書き込みデータのコマンドの優先順位を下げる順位変更工程と、
    前記優先順位が下げられた書き込みデータのコマンドが複数入力された段階で、当該コマンドで指定された各物理セクタについてのリード処理を一括して行うとともに、当該リード処理結果に基づいて、モディファイ・ライト処理を実行する処理工程と、を含む記録制御方法。
  2. 前記ホストから入力されるコマンドで指定された書き込みデータのサイズが、前記媒体の物理セクタよりも大きい場合に、前記書き込みデータを前記物理セクタと同一長の第1データと、それ以外の第2データとに分割するとともに、前記コマンドを前記第1データに対応する第1コマンドと前記第2データに対応する第2コマンドとに分割する分割工程を更に含み、
    前記判断工程では、前記第2データのサイズが前記媒体の物理セクタよりも小さいか否かを判断することを特徴とする請求項1に記載の記録制御方法。
  3. 前記順位変更工程にて優先順位が下げられたデータをバッファの連続した専用領域に移動する移動工程を更に含む請求項1又は2に記載の記録制御方法。
  4. 前記処理工程では、前記リード処理を、前記各物理アドレスのうちデータが書き込まれない部分のみについて一括して実行し、
    前記モディファイ・ライト処理のうちのライト処理を、前記リード処理のときとは実行順を並び替えて一括して実行することを特徴とする請求項1〜3のいずれか一項に記載の記録制御方法。
  5. 前記ホストから入力されるコマンドがNative Command Queuingコマンドである場合に、
    前記リード処理及びモディファイ・ライト処理が不要なデータの、前記ホストに対する転送要求を優先的に行い、前記リード処理及びモディファイ・ライト処理が必要なデータの転送要求をまとめて行う要求工程を更に含む請求項1〜4のいずれか一項に記載の記録制御方法。
  6. ホストから入力されるコマンドで指定された書き込みデータのサイズが、媒体の物理セクタよりも小さいか否かを判断する判断部と、
    前記判断部による判断の結果、前記媒体の物理セクタよりもサイズが小さいと判断された書き込みデータのコマンドの優先順位を下げる順位変更部と、
    前記優先順位が下げられた書き込みデータのコマンドが複数入力された段階で、当該コマンドで指定された各物理セクタについてのリード処理を一括して行うとともに、当該リード処理結果に基づいて、モディファイ・ライト処理を実行する処理部と、を備える記録制御部。
  7. 前記ホストから入力されるコマンドで指定された書き込みデータのサイズが、前記媒体の物理セクタよりも大きい場合に、前記書き込みデータを前記物理セクタと同一長の第1データと、それ以外の第2データとに分割するとともに、前記コマンドを前記第1データに対応する第1コマンドと前記第2データに対応する第2コマンドとに分割する分割部を更に備え、
    前記判断部は、前記第2データの書き込みサイズが、前記媒体の物理セクタよりも小さいか否かを判断することを特徴とする請求項6に記載の記録制御部。
  8. 前記処理部は、前記リード処理を、前記各物理アドレスのうちデータが書き込まれない部分のみについて一括して実行し、
    前記モディファイ・ライト処理のライト処理では、前記リード処理のときとは実行順を並び替えて一括して実行することを特徴とする請求項6又は7に記載の記録制御部。
  9. 前記ホストから入力されるコマンドがNative Command Queuingコマンドである場合に、
    前記リード処理及びモディファイ・ライト処理が不要なデータの、前記ホストに対する転送要求を優先的に行い、前記リード処理及びモディファイ・ライト処理が必要なデータの転送要求をまとめて行う要求部を更に備える請求項6〜8のいずれか一項に記載の記録制御部。
  10. ホストから入力されるデータをリード処理及びモディファイ・ライト処理する請求項6〜9のいずれか一項に記載の記録制御部と、
    前記記録制御部で処理されたデータを媒体に記録する記録部と、を備える記憶装置。
JP2008249619A 2008-09-29 2008-09-29 記録制御方法及び記録制御部、並びに記憶装置 Pending JP2010080021A (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2008249619A JP2010080021A (ja) 2008-09-29 2008-09-29 記録制御方法及び記録制御部、並びに記憶装置
US12/501,103 US20100079904A1 (en) 2008-09-29 2009-07-10 Storage control method, storage control unit and storage apparatus

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2008249619A JP2010080021A (ja) 2008-09-29 2008-09-29 記録制御方法及び記録制御部、並びに記憶装置

Publications (1)

Publication Number Publication Date
JP2010080021A true JP2010080021A (ja) 2010-04-08

Family

ID=42057216

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2008249619A Pending JP2010080021A (ja) 2008-09-29 2008-09-29 記録制御方法及び記録制御部、並びに記憶装置

Country Status (2)

Country Link
US (1) US20100079904A1 (ja)
JP (1) JP2010080021A (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2015082269A (ja) * 2013-10-24 2015-04-27 富士通株式会社 ストレージ制御装置、ストレージ制御プログラム、およびストレージ制御方法
KR20210087864A (ko) * 2020-01-03 2021-07-13 웨스턴 디지털 테크놀로지스, 인코포레이티드 판독-수정-기록 동작들의 감소된 레이턴시를 위한 시스템 및 방법

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
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
US9898402B2 (en) 2011-07-01 2018-02-20 Micron Technology, Inc. Unaligned data coalescing
US8654619B1 (en) 2011-09-29 2014-02-18 Western Digital Technologies, Inc. Method and apparatus for operating a disk drive
US9727278B2 (en) * 2013-06-13 2017-08-08 Netapp, Inc. System and methods for mitigating write emulation on a disk device using cache memory
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
US9304709B2 (en) 2013-09-06 2016-04-05 Western Digital Technologies, Inc. High performance system providing selective merging of dataframe segments in hardware
US9299387B2 (en) 2014-07-25 2016-03-29 Kabushiki Kaisha Toshiba Magnetic disk apparatus, controller and data processing method
US9842622B1 (en) 2014-12-23 2017-12-12 Western Digital Technologies, Inc. Data storage device having improved read failure tolerance
CN107797756B (zh) * 2016-09-05 2021-01-12 上海宝存信息科技有限公司 固态硬盘***的优先写入方法以及使用该方法的装置
KR20220106307A (ko) * 2021-01-22 2022-07-29 삼성전자주식회사 스토리지 장치 및 그 구동 방법

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000305860A (ja) * 1999-04-23 2000-11-02 Toshiba Corp 情報記憶システム及び同システムに於ける記憶制御方法
JP2004164684A (ja) * 2002-11-08 2004-06-10 Sony Corp 情報記録再生装置及び情報記録再生方法
JP2005129168A (ja) * 2003-10-24 2005-05-19 Ricoh Co Ltd 情報記録装置と情報記録方法とプログラム

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006031742A (ja) * 2004-07-12 2006-02-02 Fujitsu Ltd 磁気ディスク装置

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000305860A (ja) * 1999-04-23 2000-11-02 Toshiba Corp 情報記憶システム及び同システムに於ける記憶制御方法
JP2004164684A (ja) * 2002-11-08 2004-06-10 Sony Corp 情報記録再生装置及び情報記録再生方法
JP2005129168A (ja) * 2003-10-24 2005-05-19 Ricoh Co Ltd 情報記録装置と情報記録方法とプログラム

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2015082269A (ja) * 2013-10-24 2015-04-27 富士通株式会社 ストレージ制御装置、ストレージ制御プログラム、およびストレージ制御方法
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
KR20210087864A (ko) * 2020-01-03 2021-07-13 웨스턴 디지털 테크놀로지스, 인코포레이티드 판독-수정-기록 동작들의 감소된 레이턴시를 위한 시스템 및 방법
KR102502318B1 (ko) 2020-01-03 2023-02-21 웨스턴 디지털 테크놀로지스, 인코포레이티드 판독-수정-기록 동작들의 감소된 레이턴시를 위한 시스템 및 방법

Also Published As

Publication number Publication date
US20100079904A1 (en) 2010-04-01

Similar Documents

Publication Publication Date Title
JP2010080021A (ja) 記録制御方法及び記録制御部、並びに記憶装置
US8819375B1 (en) Method for selective defragmentation in a data storage device
JP4675881B2 (ja) 磁気ディスク装置およびその制御方法
EP1610214A2 (en) Storage device circuit with SATA interface and remote buffering
JPH1031560A (ja) Cd−romディスクドライバにおける命令実行方法
JP2008027383A (ja) 情報記録装置及びその制御方法
KR101674015B1 (ko) 데이터 저장 매체 액세스 방법과 그와 같은 기능을 갖는 데이터 저장 장치 및 기록 매체
US20100118434A1 (en) Storage apparatus and control method of storage apparatus
JP2007193448A (ja) 情報記録装置及びその制御方法
JP2009266279A (ja) データを記録媒体に書き込む装置及び方法
JP2005267497A (ja) データ記憶装置、その制御方法及び磁気ディスク記憶装置
JP2007193439A (ja) 不揮発性キャッシュメモリを用いる記憶装置とその制御方法
CN105304095B (zh) 磁盘装置和执行写入指令的方法
US20060129716A1 (en) Data storage device and buffer control method thereof
US8078687B1 (en) System and method for data management
US20100153664A1 (en) Controller and storage device for changing sequential order of executing commands
JP5030387B2 (ja) データ記憶装置
JP4706029B2 (ja) ストレージ装置、データ書き込み方法、及びデータ書き込みプログラム
JP2010152988A (ja) ディスク記憶装置及びエリア管理方法
JPWO2008129616A1 (ja) 記憶装置、記憶装置の制御装置、記憶装置の制御方法
JP2010176766A (ja) ディスクドライブ装置、ディスク制御デバイス、情報処理装置、及びディスク制御方法
JP6178287B2 (ja) 記憶装置、及び制御方法
JP2018159993A (ja) ディスク装置、及びディスク装置の制御方法
US20100046334A1 (en) Recording method, recording medium and storage device
JP2012038330A (ja) ハードディスクドライブ

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20100903

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