JP5029513B2 - 情報処理装置、情報処理装置の制御方法、およびプログラム - Google Patents

情報処理装置、情報処理装置の制御方法、およびプログラム Download PDF

Info

Publication number
JP5029513B2
JP5029513B2 JP2008171766A JP2008171766A JP5029513B2 JP 5029513 B2 JP5029513 B2 JP 5029513B2 JP 2008171766 A JP2008171766 A JP 2008171766A JP 2008171766 A JP2008171766 A JP 2008171766A JP 5029513 B2 JP5029513 B2 JP 5029513B2
Authority
JP
Japan
Prior art keywords
command
write command
write
queue
file
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.)
Expired - Fee Related
Application number
JP2008171766A
Other languages
English (en)
Other versions
JP2010015610A (ja
Inventor
哲也 田村
一也 鈴木
延治 佐々木
章 西村
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.)
Sony Corp
Original Assignee
Sony 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 Sony Corp filed Critical Sony Corp
Priority to JP2008171766A priority Critical patent/JP5029513B2/ja
Priority to US12/493,402 priority patent/US20090327624A1/en
Priority to CN2009101395040A priority patent/CN101620516B/zh
Publication of JP2010015610A publication Critical patent/JP2010015610A/ja
Application granted granted Critical
Publication of JP5029513B2 publication Critical patent/JP5029513B2/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
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1415Saving, restoring, recovering or retrying at system level
    • G06F11/1435Saving, restoring, recovering or retrying at system level using file system or storage system metadata
    • 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
    • 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

Description

本発明は、情報処理装置、情報処理装置の制御方法、およびプログラムに関する。
カムコーダのような民生機器で映像ストリームをハードディスク装置やメモリカードのようなブロックI/Oを持つデバイスに記録する時、最初に複数のファイルがオープンされ、これらのファイルにデータが追記される。これらのファイルは全体としてストリームを構成するので、一部のファイルが破壊された場合でも、長時間のストリームを失うことがある。
これに対して、ハードディスク装置は、転送性能を上げるためにライト用のバッファ(ライトキャッシュ)を持つ。また、ハードディスク装置は振動や衝撃に対して弱いので、安定した記録を行う目的でできるだけ大きな容量のライトキャッシュを持つ傾向にある。そのため、もしライト中に電源断が起こり、ライトキャッシュの中にあるデータが失われた場合の損害の規模は大きくなる。
そこで、ライトキャッシュにあるデータを全てハードディスク装置に書き込むことを命令するシンクロナイズ・キャッシュ・コマンドが用意されている(例えば、特許文献1参照。)。ホスト装置は、転送するデータの種類やデータの重要度などに応じてシンクロナイズ・キャッシュ・コマンドを発行する頻度を最適に選定する。例えば、映像ストリームなどの場合には、1フレームのデータのライトコマンドが発行された後にシンクロナイズ・キャッシュ・コマンドを発行してフレームデータのハードディスク装置への書き込みを保証するようにしている。
本発明は待ち行列上でライトコマンドのHDDへの書き込み順番をグループの単位で、ファイルのライトコマンドとメタデータのライトコマンドとに分けて最適化するものであるが、特許文献1には、ホスト装置より受領したライトコマンドと連続してアクセスを行うことができるライトコマンドを待ち行列全体の中から検索する技術が記載されている。
特開平6−259188号公報
ホスト装置から発行されてディスク記憶装置にて受領されたライトコマンドの情報は待ち行列に登録される。ディスク記憶装置は、シンクロナイズ・キャッシュ・コマンドに応じて、待ち行列から受領順にライトコマンドに関する情報を読み込んで、HDDへの書き込み処理を行う。ホスト装置からはライトコマンドとして、ファイルのライトコマンドと、当該ファイルの実データの配置情報等を与えるメタデータのライトコマンドとが発行されるが、メタデータのライトコマンドが必ずしもファイルのライトコマンドの後にホスト装置より発行される保証はなく、HDDへの書込みが必ずしも発行された順番に行われる保障もない。このため、シンクロナイズ・キャッシュ・コマンドの実行中の電源断によって、メタデータのみがHDDに書き込まれ、ファイルの実データがHDDに正しく書き込まれない場合がありえた。この場合には、メタデータにより記録されていることが確定されているファイルが実際には正しく記録されていないという不整合が起こり、複数のファイルでストリームが構成される場合に長時間分のストリームを失うおそれがあった。
以上のような事情に鑑み、本発明の目的は、ディスクへの書き込み時の電源断により失われるデータを最小限にすることのできる情報処理装置、情報処理装置の制御方法、およびプログラムを提供することにある。
上記の課題を解決するために、本発明の第1の観点に基づく情報処理装置は、ディスクに対する書き込みを制御するディスク記憶装置であって、ホスト装置よりライトコマンド、および前記ライトコマンドに関するキャッシュを制御する制御コマンドを受領するコマンド受領部と、前記コマンド受領部にて受領された前記コマンドの待ち行列を記憶する待ち行列記憶部と、前記待ち行列上の前記ライトコマンドをファイルのデータに対する第1のライトコマンドと前記ファイルに対応するメタデータに対する第2のライトコマンドとに判別し、前記コマンド受領部にて前記制御コマンドが受領されたとき、それ以前に受領された前記待ち行列上の1以上の前記第1のライトコマンドおよび1以上の前記第2のライトコマンドをグループ化し、当該グループ内で前記第1のライトコマンドを前記第2のライトコマンドよりも前記ディスクに優先して書き込まれるように前記各ライトコマンドに対して実行の順番を付与し、この順番に従って前記各ライトコマンドを実行するように制御を行う制御部とを具備する。
本発明によれば、待ち行列上のグループ内で、ファイルのデータを書き込むための第1のライトコマンドを、メタデータを書き込むための第2のライトコマンドに比較してディスクに優先して書き込まれるように、書き込みの実行の順番を決めることによって、制御コマンドの実行中の電源断によってメタデータだけがディスクに書き込まれることを防止でき、メタデータにより記録されていることが確定されているファイルが実際には正しく記録されていないという不整合が起こるのを防止でき、長時間分のストリームを失う危険を軽減できる。
前記第1のライトコマンドは連続性を有するデータに対するものを含み、前記制御部は、前記ディスクの記憶領域上で連続する位置に前記ファイルのデータを書き込むための複数の前記第1のライトコマンドを判断し、これら第1のライトコマンドに対して前記待ち行列上での連結情報を付与するものとしてもよい。これにより、複数の第1のライトコマンドをこれと等価な1つのライトコマンドにまとめてディスクへの書き込み処理を行うことができる。
また、前記待ち行列上の前記第1のライトコマンドのファイルのデータを保持するバッファ部をさらに有し、前記制御部は、前記バッファ部に保持された前記ファイルのデータに対する更新データを書き込むための新たな前記第1のライトコマンドが前記コマンド受領部にて受領されたとき、前記ホスト装置からの当該ファイルのデータに対するリードコマンドに対する応答を禁止するための情報を前記待ち行列上の前記第1のライトコマンドに付与することとしてもよい。これにより、バッファ部に保持された、ファイルの更新前の古いデータが、ホスト装置へ応答される不具合を回避することができる。
前記ディスクにおいて前記ファイルのデータが書き込まれる第1の記憶領域と前記メタデータが書き込まれる第2の記憶領域とが空間的に分けられ、前記制御部は、前記ディスクの記憶領域上で連続する位置に前記ファイルのデータを書き込むための複数の前記第1のライトコマンドの実行の順番を、前記記憶領域上の前記第2の領域に近い方から前記ディスクに優先して書き込まれるように前記複数の第1のライトコマンドに対して実行の順番を付与し、この順番に従って前記複数の第1のライトコマンドを実行するように制御を行うことにしてもよい。これにより、ヘッドのトータル的なシーク距離を小さくすることができる。
本発明の第2の観点に基づく情報処理装置の制御方法は、ディスクに対する書き込みを行う情報処理装置の制御方法であって、ホスト装置よりライトコマンド、および前記ライトコマンドに関するキャッシュを制御する制御コマンドを受領して待ち行列を入れ、前記待ち行列上の前記ライトコマンドをファイルのデータに対する第1のライトコマンドと前記ファイルに対応するメタデータに対する第2のライトコマンドとに判別し、前記コマンド受領部にて前記制御コマンドが受領されたとき、それ以前に受領された前記待ち行列上の1以上の前記第1のライトコマンドおよび1以上の前記第2のライトコマンドをグループ化し、当該グループ内で前記第1のライトコマンドを前記第2のライトコマンドよりも前記ディスクに優先して書き込まれるように前記各ライトコマンドに対して実行の順番を付与し、前記付与された順番に従って前記各ライトコマンドを実行する。
本発明の第3の観点に基づくプログラムは、ディスクに対する書き込みを制御するプログラムであって、ホスト装置よりライトコマンド、および前記ライトコマンドに関するキャッシュを制御する制御コマンドを受領するコマンド受領部と、前記コマンド受領部にて受領された前記コマンドの待ち行列を記憶する待ち行列記憶部と、前記待ち行列上の前記ライトコマンドをファイルのデータに対する第1のライトコマンドと前記ファイルに対応するメタデータに対する第2のライトコマンドとに判別し、前記コマンド受領部にて前記制御コマンドが受領されたとき、それ以前に受領された前記待ち行列上の1以上の前記第1のライトコマンドおよび1以上の前記第2のライトコマンドをグループ化し、当該グループ内で前記第1のライトコマンドを前記第2のライトコマンドよりも前記ディスクに優先して書き込まれるように前記各ライトコマンドに対して実行の順番を付与し、この順番に従って前記各ライトコマンドを実行するように制御を行う制御部として、ディスク記憶装置が内蔵するコンピュータに対して機能させるものである。
以上のように、本発明によれば、ディスクへの書き込み時の電源断により失われるデータを最小限にすることができる。
以下、本発明の実施の形態を図面に基づき説明する。
図1は本発明の一実施形態に係る情報処理装置としてのディスク記憶装置の構成を示すブロック図である。
同図に示すように、本実施形態のディスク記憶装置10は、USB(Universal Serial Bus)インタフェース制御部11、内部バス12、インタフェース制御部13、制御部14、メモリ制御部15、バッファメモリ16、HDD17(ハードディスクドライブ)17、メモリ18、およびCPU(Central Processing Unit)19を有する。
USBインタフェース制御部11は、ホスト装置20のUSBインタフェース制御部21との間でのインタフェースを制御するモジュールである。ホスト装置20は、例えばビデオカメラ、カムコーダ等の電子機器であり、CPU22、メモリ23、撮像部24、録画部25などを備える。USBインタフェース制御部11は、ホスト装置20のUSBインタフェース制御部21より送られてきたライトコマンドを内部バス12を通じて制御部14に供給したり、ホスト装置20より転送された書き込み用のデータを、USBインタフェース制御部11内のEP(End point FIFO)111に一杯になるまで保存し、一杯になったところで内部バス12を通じてメモリ制御部15に転送する。なお、ディスク記憶装置10とホスト装置20との間のインタフェースはUSB方式に限らず、その他、IEEE 1394など、USBと同等もしくはそれ以上の転送速度のインタフェースに変更してもよい。
内部バス12は、ディスク記憶装置10内の各モジュール間でコマンドおよびデータを伝送する伝送路である。
メモリ制御部15は、内部バス12を通じてUSBインタフェース制御部11より取得
バッファメモリ16は、HDD17に転送される書き込み用データが一時的に保持されるライトバッファのほかに、HDD17から転送された読み出しデータがホスト装置20へ転送される前に一時的に保持するリードバッファを有する。
インタフェース制御部13は、HDD17との間のインタフェースを制御するモジュールである。
制御部14は、ホスト装置20より受領したライトコマンド(例えばSCSI Write(10)コマンドなど)およびシンクロナイズ・キャッシュ・コマンドに関する情報をメモリに設けられた待ち行列に登録して所定の処理を行う一方、登録に対して非同期に待ち行列の情報を読み出して、HDD17で解釈可能な形式のライトコマンド(例えばATAコマンドなど)に変換してインタフェース制御部13を通じてHDD17に与える。
CPU19は、上記内部バス12を通じた各モジュール間でのコマンドやデータのやりとりなど、ディスク記憶装置10全体の総括的な制御を行う。メモリ18は、制御部15、CPU19の作業領域などとして利用される。
ホスト装置20は、HDD17にデータを書き込みたい場合にライトコマンドを発行する。
図2はライトコマンドの構成を示す図である。このライトコマンドには、CDB(Command Descriptor Block)データであるコマンドの種類を示す操作コード(Operation Code)、LBA、長さなどを含む。操作コードはライトコマンドの種類に対応したコードである。LBAは、HDD17に書き込むデータの先頭のLBAである。長さは書き込むデータの長さである。ディスク記憶装置は、ホスト装置20より当該ライトコマンドを受領したとき、待ち行列に当該ライトコマンドに関する情報を格納する。待ち行列に格納されるライトコマンドに関する情報については後で説明する。
また、ホスト装置20は、ライトキャッシュ上のデータを全てHDD17に記録させるために、待ち行列に蓄えられた全てのライトコマンドを実行するシンクロナイズ・キャッシュ・コマンドと呼ばれるライトキャッシュ制御コマンドを発行する。
図3はこのシンクロナイズ・キャッシュ・コマンドの構成を示す図である。このシンクロナイズ・キャッシュ・コマンドには、CDB(Command Descriptor Block)データであるコマンドの種類を示す操作コード(Operation Code)、IMMED、LBA、ブロック数などを含む。操作コードはシンクロナイズ・キャッシュ・コマンドの種類に対応したコードである。IMMEDは、HDD17へのデータの書き込み完了の通知をホスト装置20が受けるかどうかを指定する情報であり、通知を受ける場合には"0"、受けない場合には"1"が指定される。すなわち、IMMED=0の場合にはHDD17へのデータの書き込み完了の通知をホスト装置20が受けるまで次のライトコマンドを発行できず、IMMED=1の場合にはHDD17へのデータの書き込み完了の通知を待たずにホスト装置20は次のライトコマンドを発行することができる。より具体的には、IMMED=1の場合、ディスク記憶装置は、ライトバッファのデータをHDD17へ吐き出すために、既に受領済みの各ライトコマンドが指定する開始LBAおよび長さなどが正当であることを確認した時点でこの旨を示すGood Statusなどのステータスをホスト装置20に返し、ホスト装置20はこれを確認して次のライトコマンドを発行する。LBAはHDD17に吐き出すデータの先頭のLBA、HDD17に吐き出すデータのブロック数である。但し、ブロック数として"00h"が指定された場合には、ライトキャッシュ上の全てのデータがHDD17に吐き出される。以下、ブロック数として"00h"が指定された場合について説明を行うこととする。
データをHDD17へより確実に書き込むためには、IMMED=0として、HDD17へのデータの書き込み完了を確認してから次のライトコマンドを発行する必要がある。しかし、この場合、ライトキャッシュの利用効率が落ち、データ転送性能が低下する、あるいは振動等で一時的に書き込みができない場合に、すぐにエラーとなってしまうなどの問題がある。そこで、本実施形態ではホスト装置20はIMMED=1とすることに定められている。
次に、図4を参照してFAT32ファイルシステムについて説明する。FAT32ファイルシステムでは、HDD17のディスク記憶領域におけるアクセス最小単位であるセクタを複数個(2のべき乗個)まとめて1クラスタとし、ファイルデータを管理する最小単位とする。クラスタにはLBAの値の小さい方から順にクラスタ番号が割り振られる。以下の説明ではオフセット(クラスタ番号0のクラスタをLBA空間のどこに配置するか)を無視して、クラスタ番号を、LBAを単に16で割ったものとする。この場合、1クラスタは8Kバイトである。
図4において、FAT(File Allocation Table) 31はファイルのデータが、どのクラスタにどのような順番で格納されているかを示す連結情報が記録されるテーブルである。そのためFAT31内ではLBAではなくクラスタ番号が用いられる。FATファイルシステムで管理される記憶領域は、MBR/PBR領域32、FAT領域33、ファイルとディレクトリデータ領域34から構成される。
MBR/PBR領域32は、MBR (Master Boot Record)とPBR(Partition Boot Record)のための記録領域であり、そのLBA空間内での位置は固定である。FAT領域33は、ファイルの実データが格納されたクラスタ番号の連結情報が記録される領域である。FAT領域33の位置もLBA空間内で固定である。ファイルとディレクトリデータ領域34は、ファイルの実データと、ファイルを整理・管理するためのディレクトリデータ(ディレクトリ項目)が記録される領域である。ディレクトリ項目は、ファイル毎に、ファイル名と、このファイル名に対応するファイルのデータが先頭が記録されているクラスタの番号(開始クラスタ番号)とを含む。
ファイルシステムは、ファイルを読み込み場合、ディレクトリ項目から、読み込みの対象として指定されたファイル名を検索し、このファイル名に対応する開始クラスタ番号を読み込む。ファイルシステムは、読み込んだ開始クラスタ番号が指しているクラスタからデータを読み込み、続いて、FAT領域33を参照して当該開始クラスタ番号のクラスタの次のクラスタを確認し、そのクラスタからデータを読み込む。以降、同様にファイルシステムは、FAT領域33を参照しながら次々に連結されるクラスタからデータを読み込む。最後に、ファイルシステムは、FAT領域33からファイルのデータの終わりを示すEOF(End of File)を確認したところで、ファイルのデータの読み込みを終了する。
なお、ディレクトリ項目には親ディレクトリや子ディレクトリへのポインタ、アクセス時間等のメタ情報も格納されている。また、カムコーダ等の民生機器では、アプリケーションソフトが特定のデータやディレクトリを、定められたLBAの範囲(アプリケーション予約領域35)におくこともある。
次に、本実施形態のディスク記憶装置において、ホスト装置20より受領したライトコマンドおよびシンクロナイズ・キャッシュ・コマンドに基づく待ち行列の処理について説明する。
図7はホスト装置20より受領したライトコマンドおよびシンクロナイズ・キャッシュ・コマンドに関する情報を格納する待ち行列の例を示す図である。
まず、この図を用いて、待ち行列に格納される情報の構成について説明する。待ち行列には、ライトコマンドおよびシンクロナイズ・キャッシュ・コマンドを受領する毎に、それぞれのコマンドに関する情報が格納される。待ち行列に格納されるコマンドに関する情報には、順番、コマンドの種類、アドレスタイプ、開始LBA、HDD17への書き込み順番、連結フラグ、連結先のポインタ、ノーリターンフラグ等がある。
順番は、待ち行列に情報が格納された順番、言い換えればホスト装置20より受領したライトコマンドおよびシンクロナイズ・キャッシュ・コマンドの順番である。コマンドの種類はそのコマンドがライトコマンド(Write)であるか、シンクロナイズ・キャッシュ・コマンド(Synchronize)であるかを示す情報である。アドレスタイプは、ライトコマンドに含まれる開始LBAと長さによって判定され、当該ライトコマンドが予約領域(FAT領域33)への書き込みを指示するコマンドであるか、ファイルとディレクトリデータ領域34への書き込みを指示するコマンドであるかを識別する情報である。HDD17への書き込み順番は、ライトコマンドによるHDD17への実際の書き込み処理を実行する順番である。連結フラグは、ライトコマンドで指定されるLBAの範囲が他のライトコマンドで指定されるLBAの範囲と連続しているか否かを示すフラグであり、連続している場合は"1"がセットされ、連続していない場合には"0"がセットされる。連結先のポインタは、連結フラグが"1"であるエントリに対する連結先であるエントリとその連結の前後関係を示す情報である。ノーリターンフラグは、当該ライトコマンドに関連付けてバッファメモリ16に格納されているライト用のデータを、ホスト装置20からのリードコマンドに対して応答しないようにするためのフラグであり、これが"1"のとき応答しないこととする。
ホスト装置20は、シンクロナイズ・キャッシュ・コマンドを発行した後、ディスク記憶装置からのHDD17へのデータの書き込み完了の通知を要することなく次のライトコマンドを発行するモード(IMMED=1)で動作するので、待ち行列には、例えば図7に示すように、シンクロナイズ・キャッシュ・コマンドのエントリの後に次のライトコマンドのエントリが追加して格納される状況が発生する。
例えば、図7は、6つのライトコマンド(受領順番1−6)、シンクロナイズ・キャッシュ・コマンド(受領順番7)、5つのライトコマンド(受領順番8−12)、シンクロナイズ・キャッシュ・コマンド(受領順番13)、2つのライトコマンド(受領順番14−15)、シンクロナイズ・キャッシュ・コマンド(受領順番16)、1つのライトコマンド(受領順番17)を順に受領した場合の待ち行列を示している。
ここで、シンクロナイズ・キャッシュ・コマンドをもとに連続して処理される1つ以上のライトコマンドのエントリを「グループ」と呼ぶことにする。すなわち、図7の待ち行列には、受領順番1−6のライトコマンドのエントリがグループ1、受領順番8−12のライトコマンドのエントリがグループ2、受領順番14−15のライトコマンドのエントリがグループ3、受領順番17のライトコマンドのエントリがグループ4となる。グループ4のエントリのライトコマンドの実行を要求するシンクロナイズ・キャッシュ・コマンドはまだ受領していない。したがって、この後、ホスト装置20より新たなライトコマンドが発行された場合には受領順番18のエントリが待ち行列に追加され、そこに新たなライトコマンドに関する情報が登録される。
図5はホスト装置20より発行されたコマンドに対する待ち行列の処理手順を示すフローチャートである。
簡単のため、ライトコマンドによって指定されるデータの長さは全て1つのアドレスブロック以下とする。
まず、制御部14は、ホスト装置20より発行されたコマンドをUSBインタフェース制御部11を介して受領する(ステップS101)。ここで、ホスト装置20より発行されるコマンドは、ライトコマンド、リードコマンド、シンクロナイズ・キャッシュ・コマンドのいずれかとする。
制御部14は、受領したコマンドの種類を、そのコマンドに含まれる操作コードにより判定する。制御部14は受領したコマンドがライトコマンドであることを判定した場合(ステップS102のNO→ステップS103のNO)、待ち行列に新たなエントリを追加し、ここに受領順番、コマンドの種類、開始LBAを登録する。
続いて、制御部14は、そのライトコマンドで指定されるLBA範囲が、待ち行列でHDD17への書き込み順番が固定されたエントリのライトコマンドにより指定されるLBA範囲と同一であるかどうかを判定する(ステップS104)。言い換えれば、制御部14は、今回受領したライトコマンドによるライト用のデータが既に書き込み順番が固定されて待ち行列に登録されている他のライトコマンドのライト用のデータに対して上書きされるデータであるかどうかを判定する。なお、「待ち行列でHDD17への書き込み順番が固定されたエントリ」については後で説明する。
今回受領したライトコマンドで指定されるLBA範囲が、待ち行列でHDD17への書き込み順番が固定されたエントリのライトコマンドにより指定されるLBA範囲のどれとも同一でない場合を説明する(ステップS104のNO)。
この場合、制御部14は、今回受領したライトコマンドにより指定されるLBA範囲がLBA空間上の予約領域(FAT領域33)内であるかどうかを判定する(ステップS105)。今回受領したライトコマンドにより指定されるLBA範囲が予約領域内であるということは、そのライトコマンドによるライト用のデータは、例えばファイルの実データの配置情報、録音時間、ファイルサイズなどのメタデータであることを意味し、逆に予約領域内であるということは、そのライトコマンドによるライト用のデータはファイルの実データであることを意味する。この例では、開始LBAの"0"から"10"までを予約領域とし、"11"以降をファイルとディレクトリデータ領域34とする。
(ファイルを書き込むライトコマンドを受領した場合)
まず、ライトコマンドによるライト用のデータがファイルの実データである場合(ステップS105のNO)の動作を説明する。
この場合、制御部14は、待ち行列に追加した新たなエントリにアドレスタイプとして"Data"を登録する。続いて、制御部14は、待ち行列上の最後のグループ内で、今回受領したライトコマンドと連続してHDD17に対してアクセス可能な他のライトコマンドを検索する(ステップS106)。今回受領したライトコマンドと連続してHDD17に対してアクセス可能な他のライトコマンドとは、今回受領したライトコマンドで指定されるLBA範囲に対して連続するLBA範囲を指定する他のライトコマンドである。この検索で、該当する他のライトコマンドが発見されなかった場合(ステップS107のNO)、制御部14は、今回受領したライトコマンドによるHDD17への書き込み順番を、待ち行列上の同一グループ内で、ファイルを書き込むためのライトコマンド同士の間での最下位とし、その書き込み順番を当該新たなエントリに登録する(ステップS108)。
この後、制御部14は待ち行列に追加されたエントリの数が予め決められた上限値に達しているかどうかを判定し(ステップS113)、達していなければ、ホスト装置20から次のコマンドが発行され次第これを受領して以後の処理を同様に行う。また、達している場合には、待ち行列に空きが発生するまで、ホスト装置20からの次のコマンドの受領を停止する。
なお、制御部14は、ホスト装置20からのコマンドの受領に対して非同期に、待ち行列に格納された最古のグループの各エントリの情報をもとにHDD17へのデータの書き込みが実行されるように制御を行う。HDD17へのデータの書き込みが完了したグループの各エントリは待ち行列から消去される。これにより、ホスト装置20からの次のコマンドを受領して待ち行列への登録を行うことが可能になる。
ステップS107で、今回受領したライトコマンドと連続してHDD17に対してアクセス可能な他のライトコマンドが発見された場合(ステップS107のYES)、制御部14は、今回受領したライトコマンドによるHDD17への書き込み順番を、待ち行列上の同一グループ内で、ファイルを書き込むためのライトコマンド同士の間での最下位とし、その書き込み順番を当該新たなエントリに登録するとともに、その新たなエントリと、連続してHDD17に対してアクセス可能な他のライトコマンドのエントリのそれぞれに連結フラグと連結先のポインタを登録する(ステップS109)。これでファイルをライト用のデータとするライトコマンドを受領した場合の待ち行列への追加処理が完了する。
この後、上記と同様に、制御部14は待ち行列に追加されたエントリの数が予め決められた上限に達しているかどうかを判定し(ステップS113)、達していなければ、ホスト装置20から次のコマンドが発行され次第これを受領して以後の処理を同様に行う。また、達している場合には、待ち行列に空きが発生するまで、ホスト装置20からの次のコマンドの受領を停止する。
図6は、今回受領したライトコマンドと連続してHDD17に対してアクセス可能な他のライトコマンドが発見された場合の待ち行列の更新の例を示す図である。ここで受領順番5のライトコマンドのエントリが今回新しく追加されたエントリである。今回受領したライトコマンドは"Data"をアドレスタイプとし、開始LBAが"12"である。一方、待ち行列上の同一グループ1に属する受領順番3のエントリの開始LBAは"11"であるから、今回受領したライトコマンドのエントリは受領順番3のエントリの次に連続するものであることが判定され、この結果、受領順番3と受領順番5の各エントリにそれぞれ連結フラグがセットされると共に連結先のポインタがセットされる。また、受領順番4のライトコマンドのエントリはアドレスタイプが"Mete"であり、すなわちメタデータを書き込むためのライトコマンドのエントリであるから、今回受領したライトコマンドのエントリのHDD17への書き込み順番は受領順番4より上となる。図の例では、ファイルの実データを書き込むためのライトコマンドのエントリが既に3つ登録されているので、今回受領したライトコマンドのエントリのHDD17への書き込み順番は"4"となり、受領順番4のライトコマンドのエントリのHDD17への書き込み順番は"4"から"5"に下げられる。
(メタデータを書き込むライトコマンドを受領した場合)
次に、ステップ105の判定で、ライトコマンドにより指定されるLBA範囲が予約領域である場合の動作を説明する(ステップS105のYES)。
この場合、制御部14は、待ち行列に追加した新たなエントリにアドレスタイプとして"Meta"を登録する。続いて制御部14は、HDD17への書き込み順番を、待ち行列上の当該グループ内で最下位とするよう、その順位を当該新たなエントリに登録する(ステップS110)。このように、メタデータのHDD17への書き込み順番はグループ内で最後に設定される。
(シンクロナイズ・キャッシュ・コマンドを受領した場合)
次に、ステップ103の判定で、今回受領したコマンドがシンクロナイズ・キャッシュ・コマンドである場合の動作を説明する。
制御部14は、待ち行列に追加した新たなエントリにシンクロナイズ・キャッシュ・コマンドに関する情報を格納する。すなわち、制御部14は、そのエントリにコマンドの種類として"シンクロナイズ・キャッシュ・コマンド"を格納する。そして制御部14は、当該シンクロナイズ・キャッシュ・コマンドの受領前に待ち行列に追加された連続するライトコマンドの各エントリについてHDD17への書き込み順番を固定する(ステップS111)。これにより、上記の「待ち行列でHDD17への書き込み順番が固定されたエントリ」が設定される。以後、これらのエントリのHDD17への書き込み順番の変更は禁止される。
次に、上記と同様に、制御部14は待ち行列に追加されたエントリの数が予め決められた上限に達しているかどうかを判定し(ステップS113)、達していなければ、ホスト装置20から次のコマンドが発行され次第これを受領して以後の処理を同様に行う。また、達している場合には、待ち行列に空きが発生するまで、ホスト装置20からの次のコマンドの受領を停止する。
次に、ステップ104の判定で、今回受領したライトコマンドにより指定されるLBA範囲が、待ち行列でHDD17への書き込み順番が固定されたいずれかのエントリのLBA範囲と同一である場合を説明する(ステップS104のYES)。
この場合、制御部14は、今回受領したライトコマンドにより指定されるLBA範囲と同一のLBA範囲を指定する他のライトコマンドのエントリにノーリターンフラグをセットする(ステップS112)。以後、このノーリターンフラグがセットされたエントリが待ち行列に格納されている間に、このエントリのLBA範囲を指定するリードコマンドをホスト装置20から受領しても(ステップS102のYES)、制御部14は、そのエントリのライトコマンドに対応する書き込み用のデータをホスト装置20へ応答せず、新しいライトコマンドに対応する書き込み用のデータをホスト装置20へ応答する(ステップS114)。これにより、バッファメモリ16に保持された、ファイルの更新前の古いライトデータがホスト装置20へ応答される不具合を回避することができる。
次に、図8を参照して、ノーリターンフラグをセットする場合の処理の例を説明する。図7に示す待ち行列が存在するなかで、図8に示すように、開始LBAを"30"とする新たなライトコマンド(受領順番18)が受領された場合を説明する。この場合、制御部14は、今回受領したライトコマンドにより指定されるLBA範囲が、待ち行列に既にHDD17への書き込み順番が固定されたいずれかのエントリのLBA範囲と同一であるかどうかを調べる。この結果、受領順番14のライトコマンドのエントリが該当することが判定される。ちなみに、受領順番14のライトコマンドのエントリのHDD17への書き込み順番は受領順番16のシンクロナイズ・キャッシュ・コマンドにより既に固定されている。この判定結果により、図8に示すように、制御部14は受領順番14のエントリにノーリターンフラグをセットして、当該ライトコマンドと関連付けてバッファメモリ16に保持されているライト用のデータがホスト装置20からのリードコマンドに対して読み出されてホスト装置20に応答されることを禁止にする。
なお、ステップ102において、受領したコマンドがリードコマンドであることが制御部14にて判断された場合には、そのリードコマンドに基づくリード処理を即時に実行するように制御を行う(ステップS114)。
(待ち行列の情報に基づくHDDへの書き込み動作)
前述したように、ディスク記憶装置10では、制御部14にて、ホスト装置20より受領したライトコマンドおよびシンクロナイズ・キャッシュ・コマンドに関する情報をメモリ18に設けられた待ち行列に登録して所定の処理を行う一方、その動作に対して非同期に待ち行列の情報を読み出し、HDD17で解釈可能な形式のライトコマンドに変換してインタフェース制御部13を通じてHDD17に与える。この際、制御部17は、待ち行列上の最古のグループ(グループ1)から、そのグループ内の各エントリのライトコマンドに関する情報を読み込んで、そのライトコマンドに基づくHDD17への書き込み処理が実行されるように制御を行い、グループ1のライトコマンドによる書き込みが終了した後、次にグループ2の各エントリのライトコマンドに関する情報を読み込んで、同様にHDD17への書き込み処理が実行されるように制御を行う。グループ内の各エントリのライトコマンドの実行は、待ち行列上のHDD17への書き込み順番に従って連続的に行われる。このとき、制御部14は、グループ内の複数のライコマンドのエントリに設定された連結フラグおよび連結先のポインタをもとに、複数のライトコマンドの連結関係を判断し、連結する各ライトコマンドを、これと等価な1つのライトコマンドに置き換えてHDD17に与えるように制御を行う。
ところで、同一のグループ内での、ファイルを書き込むためのライトコマンド間でのHDD17への書き込み順番の決め方については、次の2つの方法が考えられる。
第1の方法は、図7の待ち行列に示されるように、ライトコマンドの受領順番に従って書き込み順番を設定する方法である。
第2の方法は、シーク距離をより短くように書き込み順番をグループ内でソートする方法である。図9はこの方法を説明する図である。制御部14は、新たなライトコマンドを受領したとき、この新たなライトコマンドの開始LBAと同一グループ内の他のライトコマンドの開始LBAとを比較し、開始LBAの値が小さい、つまり開始LBAが先頭LBAに近いライトコマンドの書き込み順番を上にする。図9の例では、新たなライトコマンド(受領順番18)の開始LBAは"30"、同一のグループ内の他のライトコマンド(受領順番17)の開始LBAは"31"であることから、新たなライトコマンド(受領順番18)のHDD17への書き込み順番を他のライトコマンド(受領順番17)より上に設定する。これにより、他のライトコマンド(受領順番17)のHDD17への書き込み順番は"14"から"15"に下がり、新たなライトコマンド(受領順番18)のHDD17への書き込み順番が"14"に設定される。
このように、開始LBAの値が小さいライトコマンドのHDD17への書き込み順番を上にすることによって、ヘッドのトータル的なシーク距離を小さくすることができる。その理由は、前のグループの書き込み処理において先頭LBAに近い予約領域へのメタデータの書き込みが最後に行われることが多いからである。
本実施形態によれば、次のような効果が生じる。
一般に、待ち行列には、ホスト装置から受領した順番にライトコマンドの情報が追加され、シンクロナイズ・キャッシュ・コマンドに応じて待ち行列から受領順にライトコマンドに関する情報から読み込まれてHDDへの書き込み処理が実行される。その際、ホスト装置からは、ファイルのライトコマンドと、当該ファイルの実データの配置情報、録音時間、ファイルサイズ、フレーム数等を与えるメタデータのライトコマンドとが発行されるが、メタデータのライトコマンドが必ずしもファイルのライトコマンドの後にホスト装置より発行される保証はなく、HDDへの書込みが必ずしも発行された順番に行われる保障もない。例えば、図7の受領順番12のライトコマンドによるライト用のメタデータは、受領順番8−11のライトコマンドによるライト用のファイルの実データの配置情報、録音時間、ファイルサイズ等のメタデータであるが、一般にはこのメタデータのライトコマンドがファイルの実データのライトコマンドの後にホスト装置より発行されるとは限らない。このため、書き込み中の電源断によって、メタデータのみがHDDに書き込まれ、ファイルの実データがHDDに正しく書き込まれない場合がありえた。この場合には、メタデータにより記録されていることが確定されているファイルが実際には正しく記録されていないという不整合が起こり、長時間分のストリームを失うおそれがあった。
逆にメタデータを欠いてファイルの実データのみがHDDに書き込まれている場合には、その書き込まれた実データがHDDに書き込まれていないことと等しく、失われるストリームは、メタデータのみがHDDに書き込まれてファイルの実データとの間で不整合が生じている場合に比べ少なくて済む。
本実施形態によれば、待ち行列上のグループ内で、ファイルのライトコマンドをメタデータのライトコマンドに比較してHDDへの書き込み順番を上げることによって、シンクロナイズ・キャッシュ・コマンドの実行中の電源断によってメタデータだけがHDDに書き込まれることを防止でき、メタデータにより記録されていることが確定されているファイルが実際には正しく記録されていないという不整合が起こるのを防止でき、長時間分のストリームを失う危険を軽減できる。また、FAT領域33と、ファイルとディレクトリデータ領域34との間での移動のためのシークの回数が減り、データ転送速度を向上させることができる。
また、本実施形態によれば、HDDの記憶領域上で連続するLBA範囲にファイルの実データを書き込むための複数のライトコマンドを判断し、これらのライトコマンドの待ち行列上の各エントリに連結フラグと連結先のポインタを登録するようにしたことで、複数のライトコマンドをこれと等価な1つのライトコマンドにまとめてHDD17への書き込み処理を行うことができる。
なお、上記の実施形態では、IMMED=1とした場合について説明したが、本発明はIMMED=0、つまりHDD17へのデータの書き込み完了を確認してからホスト装置20が次のライトコマンドを発行する場合においても有効である。
本発明は、上述の実施形態にのみ限定されるものではなく、本発明の要旨を逸脱しない範囲内において種々更新を加え得ることは勿論である。
本発明の一実施形態に係るディスク記憶装置の構成を示すブロック図である。 ライトコマンドの構成を示す図である。 シンクロナイズ・キャッシュ・コマンドの構成を示す図である。 FAT32ファイルシステムについて説明する図である。 待ち行列の処理手順を示すフローチャートである。 受領したライトコマンドと連続してHDDに対してアクセス可能な他のライトコマンドが発見された場合の待ち行列の例を示す図である。 待ち行列の構成を説明する図である。 ノーリターンフラグをセットする場合の処理の例を説明する図である。 ライトコマンド間でのHDDへの書き込み順番を決定する方法を説明する図である。
符号の説明
10…ディスク記憶装置
11…USBインタフェース制御部
12…内部バス
13…インタフェース制御部
14…制御部
15…メモリ制御部
16…バッファメモリ
17…HDD
18…メモリ
19…CPU
20…ホスト装置

Claims (4)

  1. ディスクに対する書き込みを制御する情報処理装置であって、
    ホスト装置よりライトコマンド、および前記ライトコマンドに関するキャッシュを制御する制御コマンドを受領するコマンド受領部と、
    前記コマンド受領部にて受領された前記コマンドの待ち行列を記憶する待ち行列記憶部と、
    前記待ち行列上の前記ライトコマンドをファイルのデータに対する第1のライトコマンドと前記ファイルに対応するメタデータに対する第2のライトコマンドとに判別し、前記コマンド受領部にて前記制御コマンドが受領されたとき、それ以前に受領された前記待ち行列上の1以上の前記第1のライトコマンドおよび1以上の前記第2のライトコマンドをグループ化し、当該グループ内で前記第1のライトコマンドを前記第2のライトコマンドよりも前記ディスクに優先して書き込まれるように前記各ライトコマンドに対して実行の順番を付与し、この順番に従って前記各ライトコマンドを実行するように制御を行う制御部と
    前記待ち行列上の前記第1のライトコマンドのファイルのデータを保持するバッファ部と、を具備し、
    前記制御部は、前記バッファ部に保持された前記ファイルのデータに対する更新データを書き込むための新たな前記第1のライトコマンドが前記コマンド受領部にて受領されたとき、前記ホスト装置からの当該ファイルのデータに対するリードコマンドに対する応答を禁止するための情報を前記待ち行列上の前記第1のライトコマンドに付与する
    情報処理装置。
  2. 請求項1に記載の情報処理装置であって、
    前記ディスクにおいて前記ファイルのデータが書き込まれる第1の記憶領域と前記メタデータが書き込まれる第2の記憶領域とが空間的に分けられ、
    前記制御部は、前記ディスクの記憶領域上で連続する位置に前記ファイルのデータを書き込むための複数の前記第1のライトコマンドの実行の順番を、前記記憶領域上の前記第2の領域に近い方から前記ディスクに優先して書き込まれるように前記複数の第1のライトコマンドに対して実行の順番を付与し、この順番に従って前記複数の第1のライトコマンドを実行するように制御を行う
    情報処理装置。
  3. ディスクに対する書き込みを行う情報処理装置の制御方法であって、
    ホスト装置よりライトコマンド、および前記ライトコマンドに関するキャッシュを制御する制御コマンドを受領して待ち行列を入れ、
    前記待ち行列上の前記ライトコマンドをファイルのデータに対する第1のライトコマンドと前記ファイルに対応するメタデータに対する第2のライトコマンドとに判別し、
    記制御コマンドが受領されたとき、それ以前に受領された前記待ち行列上の1以上の前記第1のライトコマンドおよび1以上の前記第2のライトコマンドをグループ化し、
    当該グループ内で前記第1のライトコマンドを前記第2のライトコマンドよりも前記ディスクに優先して書き込まれるように前記各ライトコマンドに対して実行の順番を付与し、
    前記付与された順番に従って前記各ライトコマンドを実行し、
    前記待ち行列上の前記第1のライトコマンドのファイルのデータを保持するバッファ部に保持された前記ファイルのデータに対する更新データを書き込むための新たな前記第1のライトコマンドが前記コマンド受領部にて受領されたとき、前記ホスト装置からの当該ファイルのデータに対するリードコマンドに対する応答を禁止するための情報を前記待ち行列上の前記第1のライトコマンドに付与するように制御を行う
    情報処理装置の制御方法。
  4. ディスクに対する書き込みを制御するプログラムであって、
    ホスト装置よりライトコマンド、および前記ライトコマンドに関するキャッシュを制御する制御コマンドを受領するコマンド受領部と、
    前記コマンド受領部にて受領された前記コマンドの待ち行列を記憶する待ち行列記憶部と、
    前記待ち行列上の前記ライトコマンドをファイルのデータに対する第1のライトコマンドと前記ファイルに対応するメタデータに対する第2のライトコマンドとに判別し、前記コマンド受領部にて前記制御コマンドが受領されたとき、それ以前に受領された前記待ち行列上の1以上の前記第1のライトコマンドおよび1以上の前記第2のライトコマンドをグループ化し、当該グループ内で前記第1のライトコマンドを前記第2のライトコマンドよりも前記ディスクに優先して書き込まれるように前記各ライトコマンドに対して実行の順番を付与し、この順番に従って前記各ライトコマンドを実行し、前記待ち行列上の前記第1のライトコマンドのファイルのデータを保持するバッファ部に保持された前記ファイルのデータに対する更新データを書き込むための新たな前記第1のライトコマンドが前記コマンド受領部にて受領されたとき、前記ホスト装置からの当該ファイルのデータに対するリードコマンドに対する応答を禁止するための情報を前記待ち行列上の前記第1のライトコマンドに付与するように制御を行う制御部
    として、情報処理装置が内蔵するコンピュータに対して機能させるプログラム。
JP2008171766A 2008-06-30 2008-06-30 情報処理装置、情報処理装置の制御方法、およびプログラム Expired - Fee Related JP5029513B2 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP2008171766A JP5029513B2 (ja) 2008-06-30 2008-06-30 情報処理装置、情報処理装置の制御方法、およびプログラム
US12/493,402 US20090327624A1 (en) 2008-06-30 2009-06-29 Information processing apparatus, controlling method thereof, and program
CN2009101395040A CN101620516B (zh) 2008-06-30 2009-06-30 信息处理装置、其控制方法,以及程序

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2008171766A JP5029513B2 (ja) 2008-06-30 2008-06-30 情報処理装置、情報処理装置の制御方法、およびプログラム

Publications (2)

Publication Number Publication Date
JP2010015610A JP2010015610A (ja) 2010-01-21
JP5029513B2 true JP5029513B2 (ja) 2012-09-19

Family

ID=41448958

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2008171766A Expired - Fee Related JP5029513B2 (ja) 2008-06-30 2008-06-30 情報処理装置、情報処理装置の制御方法、およびプログラム

Country Status (3)

Country Link
US (1) US20090327624A1 (ja)
JP (1) JP5029513B2 (ja)
CN (1) CN101620516B (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP7226112B2 (ja) 2019-05-31 2023-02-21 富士通株式会社 液浸システム

Families Citing this family (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8429318B1 (en) * 2007-08-30 2013-04-23 Virident Systems, Inc. Methods for early write termination into non-volatile memory with metadata write operations
US8516172B1 (en) 2007-08-30 2013-08-20 Virident Systems, Inc. Methods for early write termination and power failure with non-volatile memory
TWI433157B (zh) * 2009-09-04 2014-04-01 Silicon Motion Inc 存取快閃記憶體的方法以及相關之記憶裝置
US9229809B2 (en) * 2011-09-11 2016-01-05 Microsoft Technology Licensing Llc Nonvolatile media journaling of verified data sets
US9122401B2 (en) * 2012-08-23 2015-09-01 Apple Inc. Efficient enforcement of command execution order in solid state drives
CN103336671B (zh) * 2013-06-17 2016-07-13 北京奇虎科技有限公司 从网络中获取数据的方法和设备
CN105988719B (zh) * 2015-02-07 2019-03-01 深圳市硅格半导体有限公司 存储装置及其处理数据的方法
US11055806B2 (en) * 2015-02-27 2021-07-06 Advanced Micro Devices, Inc. Method and apparatus for directing application requests for rendering
US10380069B2 (en) * 2016-05-04 2019-08-13 Western Digital Technologies, Inc. Generalized write operations verification method
CN106202367B (zh) 2016-07-07 2019-03-05 腾讯科技(深圳)有限公司 一种对象信息的处理方法及装置
US10846223B2 (en) * 2017-10-19 2020-11-24 Lenovo Enterprise Solutions (Singapore) Pte. Ltd Cache coherency between a device and a processor
CN110908591B (zh) * 2018-09-17 2023-05-30 群联电子股份有限公司 存储器管理方法、存储器储存装置及存储器控制电路单元
CN109471596B (zh) * 2018-10-31 2022-03-18 北京小米移动软件有限公司 数据写入方法、装置、设备及存储介质
AU2020215766A1 (en) * 2019-02-01 2021-09-02 Transitions Optical, Ltd. Method, system, and computer program product for generating a customized photochromic optical article recommendation

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000039968A (ja) * 1998-05-19 2000-02-08 Matsushita Electric Ind Co Ltd デ―タ記憶装置及びその制御方法
JP2003044227A (ja) * 2001-08-02 2003-02-14 Matsushita Electric Ind Co Ltd 情報記録装置
US7533214B2 (en) * 2002-02-27 2009-05-12 Microsoft Corporation Open architecture flash driver
JP4186509B2 (ja) * 2002-05-10 2008-11-26 株式会社日立製作所 ディスクシステムとそのキャッシュ制御方法
US7010645B2 (en) * 2002-12-27 2006-03-07 International Business Machines Corporation System and method for sequentially staging received data to a write cache in advance of storing the received data
JP4111852B2 (ja) * 2003-03-20 2008-07-02 株式会社リコー データ転送装置、ドライブ装置、光情報記録装置、データ転送装置用プログラム、ドライブ装置用プログラム、データ転送装置用プログラムを記憶する記憶媒体、ドライブ装置用プログラムを記憶する記憶媒体、データ転送方法、及びドライブ方法
JP2004334459A (ja) * 2003-05-07 2004-11-25 Nec Corp 記録再生装置、記録再生方法、および記録再生プログラム
CN100447755C (zh) * 2003-12-19 2008-12-31 松下电器产业株式会社 记录设备控制装置
US7447810B2 (en) * 2004-10-28 2008-11-04 Intel Corporation Implementing bufferless Direct Memory Access (DMA) controllers using split transactions
US7310711B2 (en) * 2004-10-29 2007-12-18 Hitachi Global Storage Technologies Netherlands B.V. Hard disk drive with support for atomic transactions
CN1329809C (zh) * 2005-10-25 2007-08-01 威盛电子股份有限公司 磁盘阵列的控制器及其工作方法
CN100389383C (zh) * 2006-06-02 2008-05-21 杭州华三通信技术有限公司 一种解决磁盘冗余阵列中写空洞的方法
KR101354152B1 (ko) * 2006-12-18 2014-01-27 삼성전자주식회사 비휘발성 데이터 저장장치에 구비된 가상 파일 시스템의작업 스케줄링 방법 및 장치

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP7226112B2 (ja) 2019-05-31 2023-02-21 富士通株式会社 液浸システム

Also Published As

Publication number Publication date
CN101620516B (zh) 2012-04-25
US20090327624A1 (en) 2009-12-31
CN101620516A (zh) 2010-01-06
JP2010015610A (ja) 2010-01-21

Similar Documents

Publication Publication Date Title
JP5029513B2 (ja) 情報処理装置、情報処理装置の制御方法、およびプログラム
US10019196B2 (en) Efficient enforcement of command execution order in solid state drives
US7228399B2 (en) Control method for storage device controller system, and storage device controller system
US8996791B2 (en) Flash memory device, memory control device, memory control method, and storage system
JP4740763B2 (ja) ストレージシステム及びストレージコントローラ
US20160342545A1 (en) Data memory device
US20050091455A1 (en) Automated on-line capacity expansion method for storage device
US20110131375A1 (en) Command Tag Checking in a Multi-Initiator Media Controller Architecture
JP4464378B2 (ja) 同一データを纏める事で格納領域を節約する計算機システム、ストレージシステム及びそれらの制御方法
EP2393009A1 (en) Storage system
WO2008134165A1 (en) Hints model for optimization of storage devices connected to host and write optimization schema for storage devices
JP2009181148A (ja) ストレージサブシステム
JP4992835B2 (ja) ディスク記憶装置およびプログラム
US20120159050A1 (en) Memory system and data transfer method
US7376786B2 (en) Command stack management in a disk drive
US20160011792A1 (en) Media control device and control method
EP2393010A1 (en) Storage system
JP2019028954A (ja) ストレージ制御装置、プログラム、及び重複排除方法
JP2007501473A (ja) メインメモリとストレージ装置との間のデータ転送を行うための方法及び装置
SE534142C2 (sv) Förfarande och system för lagring av data
US10346070B2 (en) Storage control apparatus and storage control method
EP3293625B1 (en) Method and device for accessing file, and storage system
US6487632B1 (en) Emulation technique for variable-length disk system to access data in a fixed-length disk system
JP2014211801A (ja) インターフェース制御装置、データ記憶装置及びインターフェース制御方法
US7421536B2 (en) Access control method, disk control unit and storage apparatus

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20110620

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20120315

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20120321

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120511

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: 20120529

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: 20120611

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

Free format text: PAYMENT UNTIL: 20150706

Year of fee payment: 3

LAPS Cancellation because of no payment of annual fees