JP2007179085A - ディスク装置、ディスク書込データ選択方法およびディスク書込データ選択プログラム - Google Patents

ディスク装置、ディスク書込データ選択方法およびディスク書込データ選択プログラム Download PDF

Info

Publication number
JP2007179085A
JP2007179085A JP2005373329A JP2005373329A JP2007179085A JP 2007179085 A JP2007179085 A JP 2007179085A JP 2005373329 A JP2005373329 A JP 2005373329A JP 2005373329 A JP2005373329 A JP 2005373329A JP 2007179085 A JP2007179085 A JP 2007179085A
Authority
JP
Japan
Prior art keywords
data
error
buffer memory
received
disk
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
JP2005373329A
Other languages
English (en)
Inventor
Tadashi Yoshida
紀 吉田
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.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
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 Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2005373329A priority Critical patent/JP2007179085A/ja
Priority to US11/377,691 priority patent/US20070174739A1/en
Publication of JP2007179085A publication Critical patent/JP2007179085A/ja
Pending legal-status Critical Current

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/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0751Error or fault detection not based on redundancy
    • 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/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0706Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment
    • G06F11/0727Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment in a storage system, e.g. in a DASD or network based storage system
    • 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
    • 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)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Signal Processing For Digital Recording And Reproducing (AREA)

Abstract

【課題】シリアルインタフェースを備え、バッファメモリを経由してデータの入出力を行うディスク装置で、バッファメモリにおいて正常データがエラーデータで上書きされることによるデータの消失を防ぐことを可能とし、ディスク装置の信頼性を高めること。
【解決手段】ディスク装置100において、ディスク書込データ選択部116が、ホスト200から受領した受領データをバッファメモリ103の未使用領域に格納するとともに、ホストインタフェース制御部101が受領データのエラーをチェックし、受領データからエラー箇所を除いた有効データと書き込み位置が重複するデータがバッファメモリ103に格納されていた場合は、ディスク書込データ選択部116が、バッファメモリ103に先に格納されていたデータの重複箇所を削除するよう構成する。
【選択図】 図1

Description

この発明は、シリアルインタフェースを備え、バッファメモリを経由してデータの入出力を行うディスク装置、ディスク書込データ選択方法およびディスク書込データ選択プログラムに関し、特に、バッファメモリにおいて正常データがエラーデータで上書きされることによるデータの消失を防ぐことによって信頼性を高めたディスク装置、ディスク書込データ選択方法およびディスク書込データ選択プログラムに関するものである。
近年、例えばシリアルATAなどのシリアルインタフェースを備えたディスク装置においては、アクセス性能を高めるために、上位装置から受領した書き込み用のデータを、一旦、ディスク装置内部のバッファメモリに取り込み、その段階で上位装置に対しては書き込み完了通知を発行しておき、その後、所定のタイミングで、バッファメモリに蓄積したデータをディスク媒体へ書き込む、いわゆるライトキャッシュ機能を備えたものが広く用いられている。
このようなライトキャッシュ機能を備えたディスク装置では、書き込み動作において上位装置に対して完了通知を発行した後、バッファメモリに蓄積したデータをディスク媒体へ書き込む際に書き込みエラーが発生した場合は、バッファメモリに残っている、ディスク媒体にまだ書き込まれていないデータを救済する方法について考慮が必要となる。
そこで、特許文献1に記載されたディスク装置では、バッファメモリに蓄積したデータをディスク媒体に書き込む際に書き込みエラーが発生した場合は、当該ディスク媒体に対する以降の書き込み処理を保留し、その後、当該ディスク媒体に対する他の書き込み命令を上位装置から受領したタイミングで、上位装置に対してエラー情報を通知し、そのエラー情報に応じて上位装置から通知されるリスタートコマンドを受けて、保留していた書き込み処理を再開するようにしている。
ところで、前述したライトキャッシュ機能を備えた従来のディスク装置では、上位装置から受領したデータをバッファメモリに取り込む際に、当該データと書き込みアドレスが重複するデータがバッファメモリに既に蓄積されていた場合は、バッファメモリ内に先に格納していたデータの当該重複箇所に対して上位装置から受領したデータを上書きしている。
こうすることにより、当該重複箇所とその前後のデータが書き込みアドレス順に連続して配置されることになり、ディスク装置は、バッファメモリに蓄積されたデータをディスク媒体に書き込みする際に効率良く書き込み処理を行うことができる。
特開平2−64815号公報
しかしながら、上述したライトキャッシュ機能を備えたディスク装置において発生する主なエラーとしては、バッファメモリに蓄積したデータをディスク媒体に書き込む際に発生する書き込みエラーの他に、上位装置からデータを取り込む際にインタフェース上で発生する通信エラーが考えられる。
シリアルインタフェースを備えたディスク装置においては、上位装置から受領するデータは複数のセクタ単位のデータを含んだパケットデータの単位で転送される。このパケットデータには、転送するパケットデータの内容に基づいて生成されたCRC(Cyclic Redundancy Check)データが含まれており、このCRCデータと、転送後のパケットデータの内容に基づいて生成したCRCデータとを比較することによって、インタフェース上で通信エラーが発生しているか否かをチェックすることができる。
このチェックによって通信エラーを検知した場合、ディスク装置は、エラーが検出されたデータの再送を上位装置に対して要求するが、インタフェース上の通信エラーによって正しいデータを再度受領することができない状況も考えられる。
この状況で、バッファメモリにおいて、前述した、書き込みアドレスの重複によるデータの上書きが行われていた場合は、先にバッファメモリに格納していた重複箇所のデータはエラー検出データによって上書きされたまま消失してしまうことになり、これによりディスク装置の信頼性が低下してしまうという問題がある。
この発明は、上述した従来技術による問題点を解消するためになされたものであり、バッファメモリにおいて正常データがエラーデータで上書きされることによるデータの消失を防ぐことによって信頼性を高めたディスク装置、ディスク書込データ選択方法およびディスク書込データ選択プログラムを提供することを目的とする。
上述した課題を解決し、目的を達成するため、請求項1の発明に係るディスク装置は、シリアルインタフェースを備え、バッファメモリを経由してデータの入出力を行うディスク装置であって、前記上位装置から受領した受領データを前記バッファメモリの未使用領域に格納するとともに該受領データにエラーが発生しているか否かをチェックし、エラーが発生していた場合は、前記受領データから該エラー箇所を削除することによって有効データを特定する有効データ特定手段と、前記有効データ特定手段によって特定された有効データと書き込み位置が重複する箇所を含んだデータが前記バッファメモリ内に存在しているか否かを確認し、存在していた場合は、前記バッファメモリに先に格納されていたデータの該重複箇所を削除する重複データ削除手段と、を備えたことを特徴とする。
また、請求項2の発明に係るディスク装置は、請求項1の発明において、前記有効データ特定手段は、前記上位装置から受領した受領データを前記バッファメモリの未使用領域に格納する際に、該受領データを格納可能な未使用領域が前記バッファメモリに存在していなかった場合は、前記バッファメモリに既に格納されているデータをディスク媒体に書き込むことによって未使用領域を確保した上で該受領データを格納することを特徴とする。
また、請求項3の発明に係るディスク装置は、請求項1または2の発明において、前記有効データ特定手段は、前記上位装置から受領した受領データからエラー箇所を削除する際に、セクタ単位でエラーが特定できた場合は、セクタ単位でエラー箇所を削除し、パケット単位でしかエラーが特定できなかった場合は、パケット単位でエラー箇所を削除することを特徴とする。
また、請求項4の発明に係るディスク書込データ選択方法は、シリアルインタフェースを備え、バッファメモリを経由してデータの入出力を行うディスク装置におけるディスク書込データ選択方法であって、前記上位装置から受領した受領データを前記バッファメモリの未使用領域に格納するとともに該受領データにエラーが発生しているか否かをチェックし、エラーが発生していた場合は、前記受領データから該エラー箇所を削除することによって有効データを特定する有効データ特定工程と、前記有効データ特定工程によって特定された有効データと書き込み位置が重複する箇所を含んだデータが前記バッファメモリ内に存在しているか否かを確認し、存在していた場合は、前記バッファメモリに先に格納されていたデータの該重複箇所を削除する重複データ削除工程と、を含んだことを特徴とする。
また、請求項5の発明に係るディスク書込データ選択プログラムは、シリアルインタフェースを備え、バッファメモリを経由してデータの入出力を行うディスク装置に内蔵されたコンピュータで実行されるディスク書込データ選択プログラムであって、前記上位装置から受領した受領データを前記バッファメモリの未使用領域に格納するとともに該受領データにエラーが発生しているか否かをチェックし、エラーが発生していた場合は、前記受領データから該エラー箇所を削除することによって有効データを特定する有効データ特定手順と、前記有効データ特定手順によって特定された有効データと書き込み位置が重複する箇所を含んだデータが前記バッファメモリ内に存在しているか否かを確認し、存在していた場合は、前記バッファメモリに先に格納されていたデータの該重複箇所を削除する重複データ削除手順と、をコンピュータに実行させることを特徴とする。
請求項1、4および5の発明によれば、上位装置から受領した受領データをバッファメモリの未使用領域に格納するとともに、受領データにエラーが発生しているか否かをチェックし、エラーが発生していた場合は、受領データからエラー箇所を削除することによって有効データを特定し、さらに、特定した有効データと書き込み位置が重複する箇所を含んだデータがバッファメモリ内に存在しているか否かを確認し、存在していた場合は、バッファメモリに先に格納されていたデータの重複箇所を削除するよう構成したので、ホストインタフェース上で通信エラーが発生することによって上位装置から受領したデータにエラーデータが含まれていた場合でも、バッファメモリ内に蓄えたディスク媒体への書き込みデータを、エラーデータを除いたデータで再度構成し直すことが可能となり、バッファメモリにおいて正常データがエラーデータで上書きされることによるデータの消失を防ぐことができるという効果を奏する。
また、請求項2の発明によれば、上位装置から受領した受領データをバッファメモリの未使用領域に格納する際に、受領データを格納可能な未使用領域がバッファメモリに存在していなかった場合は、バッファメモリに既に格納されているデータをディスク媒体に書き込むことによって未使用領域を確保した上で受領データを格納するよう構成したので、上位装置から頻繁にデータが転送される場合でも、自動的にバッファメモリに空き領域を確保して受領したデータを格納することが可能となり、バッファメモリにおいて正常データがエラーデータで上書きされることによるデータの消失を防ぐことができるという効果を奏する。
また、請求項3の発明によれば、上位装置から受領した受領データからエラー箇所を削除する際に、セクタ単位でエラーが特定できた場合は、セクタ単位でエラー箇所を削除し、パケット単位でしかエラーが特定できなかった場合は、パケット単位でエラー箇所を削除するよう構成したので、エラー箇所をより細かな単位で削除することが可能となり、上位装置から受領したデータを可能な限り有効なデータをとしてディスク媒体に書き込むことができるという効果を奏する。
以下に添付図面を参照して、この発明に係るディスク装置、ディスク書込データ選択方法およびディスク書込データ選択プログラムの好適な実施例を詳細に説明する。なお、本実施例では、本発明を磁気ディスク装置に適用した場合について説明する。
まず、本実施例に係るディスク装置の構成について説明する。図1は、本実施例に係るディスク装置の構成を示す機能ブロック図である。同図に示すように、このディスク装置100は、ホストインタフェース300を介してパーソナルコンピュータなどのホスト200(上位装置)に接続されている。このホストインタフェース300には、例えば、シリアルATAインタフェースが用いられている。
また、ディスク装置100は、ホストインタフェース制御部101と、バッファ制御部102と、バッファメモリ103と、フォーマット制御部104と、リードチャネル105と、ヘッドIC106と、ヘッド107と、ディスク媒体108と、サーボ制御部109と、VCM(Voice Coil Motor:ボイスコイルモーター)110と、SPM(Spindle Motor:スピンドルモーター)111と、不揮発性メモリ112と、メモリ113と、MPU114とを備えている。
そして、ホストインタフェース制御部101と、バッファ制御部102と、フォーマット制御部104と、リードチャネル105と、ヘッドIC106と、サーボ制御部109と、不揮発性メモリ112と、メモリ113と、MPU114とは、コモンバス115を介して接続されている。
ホストインタフェース制御部101は、ホストインタフェース300を介してホスト200とディスク装置100との間でやり取りされるデータの入出力を制御する制御部である。具体的には、このホストインタフェース制御部101は、書き込み動作においては、ホスト200から受領したパケットデータをバッファ制御部102に転送するとともに、当該パケットデータにエラーが発生しているか否かを判定する。
ここで、ホストインタフェース300を介してホスト200から転送されるデータは、複数のセクタ単位のデータを含んだパケットデータの単位で転送され、各パケットデータには、データのエラーを検出するためのCRC(Cyclic Redundancy Check)データが含まれている。このCRCデータは、転送するパケットデータの内容をもとにCRC方式による計算を行うことによって生成されている。
そして、ホストインタフェース制御部101は、ホスト200から受領したパケットデータをもとにCRCデータを新たに生成し、この新たなCRCデータと、受領したパケットデータに既に含まれていたCRCデータとを比較し、両者が一致しているか否かを確認する。ここで、両者が一致していた場合は、ホストインタフェース制御部101は、受領したパケットデータにはエラーが発生していないと判定する。
一方、両者が一致していなかった場合は、ホストインタフェース制御部101は、受領したデータにエラーが発生していると判定し、ホストインタフェース300を介してホスト200に対してエラーを通知するとともに、エラーを検出したデータ以降のデータの再送を要求する。
また、読み込み動作においては、ホストインタフェース制御部101は、バッファ制御部102から転送された読み込みデータをホスト200に転送する。
このように、ホストインタフェース制御部101が、ホスト200から受領したパケットデータに含まれるCRCデータに基づいてエラーをチェックすることによって、パリティ・チェックやチェックサムに比べて高い精度でエラーを検出することができる。
バッファ制御部102は、バッファメモリ103へのデータの入出力を制御する制御部である。具体的には、このバッファ制御部102は、書き込み動作においては、ホストインタフェース制御部101から転送された書き込みデータをバッファメモリ103に格納するとともに、書き込みの完了通知を発行する。ここで発行された完了通知は、ホストインタフェース制御部101およびホストインタフェース101を経由し、ホスト200に対して送信される。
そして、バッファ制御部102は、バッファメモリ103に蓄積したデータを所定のタイミング(バッファメモリ103が一杯になった場合等)で取り出し、フォーマット制御部104に転送する。ここでフォーマット制御部104に転送されたデータは、その後、リードチャネル105およびヘッドIC106を経由してヘッド107に送られ、ディスク媒体108上の指定された書き込みアドレスに書き込まれる。
一方、読み込み動作においては、バッファ制御部102は、ホスト200から指定された読み込みアドレスに対応するデータをバッファメモリ103から取り出し、ホストインタフェース101を経由してホスト200に転送する。ここで、指定された読み込みアドレスに対応するデータがバッファメモリ103に格納されていなかった場合、バッファ制御部102は、後述するフォーマット制御部104に指示することによってディスク媒体108から当該データを読み込み、一旦バッファメモリ103に格納した上でホスト200に転送する。
バッファメモリ103は、ホスト200から受領した書き込みデータや、ディスク媒体108から読み込んだ読み込みデータを一時的に格納するメモリであり、ホスト200とディスク装置100の間の通信速度(高速)と、ディスクの読み書き速度(低速)との差を吸収するための緩衝用のメモリとして用いられる。
フォーマット制御部104は、ディスク媒体108に対するデータの書き込みおよび読み込みを制御する制御部である。具体的には、このフォーマット制御部104は、バッファメモリ103に格納されているデータとディスク媒体108上のデータとの対応付けを記憶しており、書き込み動作においては、ディスク媒体108上にデータが効率良く配置されるように書き込みを制御する。また、読み込み動作においては、ディスク媒体108から読み込んだデータをバッファ制御部102に転送する。
リードチャネル105は、書き込み動作においては、ディスク媒体108に書き込むデータを符号化してフォーマット制御部104からヘッドIC106に転送し、読み込み動作においては、ディスク媒体108から読み込んだデータを複合化してヘッドIC106からフォーマット制御部104に転送するICである。
ヘッドIC106は、書き込み動作においては、ヘッド107がディスク媒体108に書き込むデータを変調し、読み込み動作においては、ヘッド107がディスク媒体108から読み込んだデータを復調するICである。
ディスク媒体108は、ホスト200とディスク装置100との間で入出力されるデータを記憶する磁気ディスクであり、ヘッド107は、磁気ディスクであるディスク媒体108へのデータの書き込みや、ディスク媒体108からのデータの読み込みを行う磁気ヘッドである。
サーボ制御部109は、VCM110とSPM111の動作を制御する制御部であり、VCM110は、ディスク媒体上の目的の位置までヘッド107を移動するためのモーターであり、SPM111は、ディスク媒体108を回転するためのモーターである。
不揮発性メモリ112は、ディスク装置100を制御する制御プログラムを記憶するROMであり、メモリ113は、制御プログラムの実行途中結果や、制御用のデータを記憶するRAMである。
MPU114は、不揮発性メモリ112から制御プログラムを読み出して実行することによってディスク装置100全体の制御を行う処理装置である。このMPU114では種々の処理が行われるが、その中には、書き込み動作において処理が行われるディスクディスク書込データ選択部116が含まれている。
ディスク書込データ選択部116は、ホスト200から受領した書き込みデータに含まれるエラーデータを削除して有効データを特定し、この有効データと書き込みアドレスが重複するデータがバッファメモリ103内に存在するか否かを確認し、存在していた場合は、バッファメモリ103に先に格納されていたデータの重複箇所を削除することにより、ディスク媒体108に書き込むためのデータを再構成する処理部である。このディスク書込データ選択部116は、書き込み動作において、MPU114内で動作する。
具体的には、ディスク書込データ選択部116は、まず、バッファメモリ103内の未使用領域を検索する。そして、バッファ制御部102を制御し、検索した未使用領域に書き込みデータを格納する。
ここで、前述したホストインタフェース制御部101によって、バッファメモリ103の未使用領域に格納したデータにエラーが検出されていた場合は、ディスク書込データ選択部116は、当該データからエラーデータを除くことによって有効データを特定する。
図2は、有効データを特定する動作を説明するための図である。同図に示すように、バッファメモリ103の未使用領域に格納したデータにエラーが検出されている場合は、ディスク書込データ選択部116は、エラー検出時点でバッファメモリ103に取り込んでいた最終データの取り込み終了位置を示すアドレスから、エラーが検出されたパケットデータのサイズ分だけ戻った位置を算出することによって有効データの終了位置を特定する。一方、受領したデータにエラーが検出されていない場合は、バッファメモリ103の未使用領域に格納したデータ全てが有効データとなる。
なお、図2においては、エラーが検出されたパケットデータのサイズ分だけアドレスを戻す場合を説明したが、さらに、パケットデータに含まれるセクタ単位でエラーデータが特定できた場合は、書込データ選択部415は、エラー検出時点でバッファメモリ103に取り込んでいた最終データの取り込み終了位置を示すアドレスから、エラーが検出されたセクタの開始位置まで戻った位置を算出することによって有効データの終了位置を特定する。
このように、ホスト200から受領したデータからエラー箇所を削除する際に、セクタ単位でエラーが特定できた場合は、セクタ単位でエラー箇所を削除し、パケット単位でしかエラーが特定できなかった場合は、パケット単位でエラー箇所を削除することによって、エラー箇所をより細かな単位で削除することが可能となり、ホスト200から受領したデータを可能な限り有効なデータをとしてディスク媒体108に書き込むことができる。
そして、ディスク書込データ選択部116は、特定した有効データと、バッファメモリ103内に存在する他のデータとを比較し、書き込みアドレスが重複している箇所が存在していた場合は、先にバッファメモリ103に格納されていたデータから当該重複箇所を削除する。
このように、ディスク書込データ選択部116が、ホスト200から受領した書き込みデータに含まれるエラーデータを特定し、そのエラーデータを除くことにより有効データを特定し、特定した有効データを含めたバッファメモリ103内のデータから書き込みアドレスが重複しているデータを削除することによって、バッファメモリ103内に蓄えたディスク媒体108への書き込みデータを、エラーデータを除いたデータで再度構成し直すことが可能となり、バッファメモリ103において正常データがエラーデータで上書きされることによるデータの消失を防ぐことができる。
ところで、ディスク書込データ選択部がバッファメモリ103内の未使用領域を検索した際、バッファメモリ103内に、ホスト200から受領した書き込みデータを格納できる大きさの未使用領域が存在していない場合もある。この場合、ディスク書込データ選択部116は、バッファ制御部102を制御してバッファメモリ103に格納されているデータをフォーマット制御部104に転送し、未使用領域を確保する。そして、ディスク書込データ選択部116は、確保した未使用領域に書き込みデータを格納する。
このように、ホスト200から受領した書き込みデータをバッファメモリ103の未使用領域に格納する際に、書き込みデータを格納可能な未使用領域がバッファメモリ103に存在していなかった場合は、ディスク書込データ選択部116が、既に格納されているデータをディスク媒体108に書き込むことによって未使用領域を確保した上でバッファメモリ103に書き込みデータを格納することとしたので、ディスク装置100は、ホスト200から頻繁にデータが転送される場合でも、自動的にバッファメモリ103に空き領域を確保して受領したデータを格納することが可能となり、バッファメモリ103において正常データがエラーデータで上書きされることによるデータの消失を防ぐことができる。
次に、ディスク書込データ選択部116による書込データ選択処理の処理手順について説明する。図3は、ディスク書込データ選択部116における書込データ選択処理の処理手順を示すフローチャートである。同図に示すように、書込データ選択処理においては、ディスク書込データ選択部116は、ホスト200から受領したデータにエラーが発生していた場合は(ステップS101,Yes)、まず、受領したデータ内のエラーデータの範囲を特定するためのエラーデータ特定処理を行う(ステップS102)。一方、受領したデータにエラーが発生していなかった場合は(ステップS101,No)、エラーデータは無いと判断してエラーデータ特定処理をスキップする。エラーデータ特定処理の詳細については、後述する。
エラーデータ特定処理によってエラーデータの範囲が特定されると、ディスク書込データ選択部116は、受領したデータ内の有効データの範囲を特定するための有効データ特定処理を行う(ステップS103)。有効データ特定処理の詳細については後述する。
有効データ特定処理によって有効データの範囲が特定されると、ディスク書込データ選択部116は、その有効データを含めたバッファメモリ内の全てのデータから書き込みアドレスが重複するデータを削除するための書込データマージ処理を行う。書込データマージ処理の詳細については後述する。
次に、図3に示したエラーデータ特定処理の処理手順について説明する。図4は、図3に示したエラーデータ特定処理の処理手順を示すフローチャートである。同図に示すように、エラーデータ特定処理においては、ディスク書込データ選択部116は、まず、エラー検出時点までに受領したデータのサイズを算出する(ステップS201)。
また、ディスク書込データ選択部116は、エラーが検出されたパケットデータにおいて、セクタ単位でエラー箇所を限定できるか否かを確認し、セクタ単位で限定できた場合は(ステップS202,No)、当該セクタ以降をエラーデータと特定する(ステップS204)。一方、セクタ単位で限定できなかった場合は(ステップS202,Yes)、エラーが検出されたパケットデータ全体をエラーデータと特定する(ステップS203)。そして、ディスク書込データ選択部116は、特定したエラーデータのサイズを算出する。
次に、図3に示した有効データ特定処理の処理手順について説明する。図5は、図3に示した有効データ特定処理の処理手順を示すフローチャートである。同図に示すように、有効データ特定処理においては、ディスク書込データ選択部116は、まず、エラー検出時点でバッファメモリ103に取り込んでいた最終データの取り込み終了位置から、エラーデータ特定処理で算出した、エラー検出時点までに受領したデータのサイズ分だけ位置を戻すことによって、受領したデータの取り込み開始位置を算出する(ステップS301)。
また、ディスク書込データ選択部116は、エラー検出時点でバッファメモリ103に取り込んでいた最終データの取り込み終了位置から、エラーデータ特定処理で算出したエラーデータのサイズ分だけ位置を戻すことによって、受領したデータのエラーデータ開始位置を算出する(ステップS302)。
そして、算出した取り込み開始位置およびエラーデータ開始位置を基に有効データを特定する(ステップS303)。なお、ホストインタフェース制御部101でエラーが検出されなかった場合は、受領したデータ全てを有効データとする。
次に、図3に示した書込データマージ処理の処理手順について説明する。図6は、図3に示した書込データマージ処理の処理手順を示すフローチャートである。同図に示すように、書込データマージ処理においては、ディスク書込データ選択部116は、まず、有効データ特定処理で範囲を特定した有効データと、バッファメモリ103内に存在する他のデータとを比較し、書き込みアドレスが重複している箇所が存在するか否かを確認する(ステップS401)。
そして、重複する箇所が存在していた場合は、古いデータ、すなわち先にバッファメモリ103に格納されていたデータから当該重複箇所を削除する(ステップS402)。
このように、ディスク書込データ選択部116が、ホスト200から受領した書き込みデータから有効データを特定し、この有効データを含めたバッファメモリ103内のデータから書き込みアドレスが重複しているデータを削除することによって、バッファメモリ103内に蓄えたディスク媒体108への書き込みデータを、エラーデータを除いたデータで再度構成し直すことが可能となり、バッファメモリ103において正常データがエラーデータで上書きされることによるデータの消失を防ぐことができる。
上述してきたように、ディスク書込データ選択部116が、ホスト200から受領した受領データをバッファメモリ103の未使用領域に格納するとともに、ホストインタフェース制御部101が受領データのエラーをチェックし、受領データからエラー箇所を除いた有効データと書き込み位置が重複するデータがバッファメモリ103に格納されていた場合は、ディスク書込データ選択部116が、バッファメモリ103に先に格納されていたデータの重複箇所を削除することとしたので、ホストインタフェース300上で通信エラーが発生することによってホスト200から受領したデータにエラーデータが含まれていた場合でも、バッファメモリ103内に蓄えたディスク媒体108への書き込みデータを、エラーデータを除いたデータで再度構成し直すことが可能となり、バッファメモリ103において正常データがエラーデータで上書きされることによるデータの消失を防ぐことができる。
また、本実施例では、磁気ディスク装置について説明したが、本発明はこれに限定されるものではなく、光ディスク装置や、光磁気ディスク装置にも同様に適用することができる。
(付記1)シリアルインタフェースを備え、バッファメモリを経由してデータの入出力を行うディスク装置であって、
前記上位装置から受領した受領データを前記バッファメモリの未使用領域に格納するとともに該受領データにエラーが発生しているか否かをチェックし、エラーが発生していた場合は、前記受領データから該エラー箇所を削除することによって有効データを特定する有効データ特定手段と、
前記有効データ特定手段によって特定された有効データと書き込み位置が重複する箇所を含んだデータが前記バッファメモリ内に存在しているか否かを確認し、存在していた場合は、前記バッファメモリに先に格納されていたデータの該重複箇所を削除する重複データ削除手段と、
を備えたことを特徴とするディスク装置。
(付記2)前記有効データ特定手段は、前記上位装置から受領した受領データを前記バッファメモリの未使用領域に格納する際に、該受領データを格納可能な未使用領域が前記バッファメモリに存在していなかった場合は、前記バッファメモリに既に格納されているデータをディスク媒体に書き込むことによって未使用領域を確保した上で該受領データを格納することを特徴とする付記1に記載のディスク装置。
(付記3)前記有効データ特定手段は、前記上位装置から受領した受領データからエラー箇所を削除する際に、セクタ単位でエラーが特定できた場合は、セクタ単位でエラー箇所を削除し、パケット単位でしかエラーが特定できなかった場合は、パケット単位でエラー箇所を削除することを特徴とする付記1または2に記載のディスク装置。
(付記4)シリアルインタフェースを備え、バッファメモリを経由してデータの入出力を行うディスク装置におけるディスク書込データ選択方法であって、
前記上位装置から受領した受領データを前記バッファメモリの未使用領域に格納するとともに該受領データにエラーが発生しているか否かをチェックし、エラーが発生していた場合は、前記受領データから該エラー箇所を削除することによって有効データを特定する有効データ特定工程と、
前記有効データ特定工程によって特定された有効データと書き込み位置が重複する箇所を含んだデータが前記バッファメモリ内に存在しているか否かを確認し、存在していた場合は、前記バッファメモリに先に格納されていたデータの該重複箇所を削除する重複データ削除工程と、
を含んだことを特徴とするディスク書込データ選択方法。
(付記5)前記有効データ特定工程は、前記上位装置から受領した受領データを前記バッファメモリの未使用領域に格納する際に、該受領データを格納可能な未使用領域が前記バッファメモリに存在していなかった場合は、前記バッファメモリに既に格納されているデータをディスク媒体に書き込むことによって未使用領域を確保した上で該受領データを格納することを特徴とする付記4に記載のディスク書込データ選択方法。
(付記6)前記有効データ特定工程は、前記上位装置から受領した受領データからエラー箇所を削除する際に、セクタ単位でエラーが特定できた場合は、セクタ単位でエラー箇所を削除し、パケット単位でしかエラーが特定できなかった場合は、パケット単位でエラー箇所を削除することを特徴とする付記4または5に記載のディスク書込データ選択方法。
(付記7)シリアルインタフェースを備え、バッファメモリを経由してデータの入出力を行うディスク装置に内蔵されたコンピュータで実行されるディスク書込データ選択プログラムであって、
前記上位装置から受領した受領データを前記バッファメモリの未使用領域に格納するとともに該受領データにエラーが発生しているか否かをチェックし、エラーが発生していた場合は、前記受領データから該エラー箇所を削除することによって有効データを特定する有効データ特定手順と、
前記有効データ特定手順によって特定された有効データと書き込み位置が重複する箇所を含んだデータが前記バッファメモリ内に存在しているか否かを確認し、存在していた場合は、前記バッファメモリに先に格納されていたデータの該重複箇所を削除する重複データ削除手順と、
をコンピュータに実行させることを特徴とするディスク書込データ選択プログラム。
(付記8)前記有効データ特定手順は、前記上位装置から受領した受領データを前記バッファメモリの未使用領域に格納する際に、該受領データを格納可能な未使用領域が前記バッファメモリに存在していなかった場合は、前記バッファメモリに既に格納されているデータをディスク媒体に書き込むことによって未使用領域を確保した上で該受領データを格納することを特徴とする付記7に記載のディスク書込データ選択プログラム。
(付記9)前記有効データ特定手順は、前記上位装置から受領した受領データからエラー箇所を削除する際に、セクタ単位でエラーが特定できた場合は、セクタ単位でエラー箇所を削除し、パケット単位でしかエラーが特定できなかった場合は、パケット単位でエラー箇所を削除することを特徴とする付記7または8に記載のディスク書込データ選択プログラム。
以上のように、本発明に係るディスク装置、ディスク書込データ選択方法およびディスク書込データ選択プログラムは、シリアルインタフェースを備えたディスク装置に有用であり、特に、アクセス頻度が高い等の理由で上位装置との間の通信エラーが懸念される場合に適している。
本実施例に係るディスク装置の構成を示す機能ブロック図である。 有効データを特定する動作を説明するための図である。 ディスク書込データ選択部における書込データ選択処理の処理手順を示すフローチャートである。 図3に示したエラーデータ特定処理の処理手順を示すフローチャートである。 図3に示した有効データ特定処理の処理手順を示すフローチャートである。 図3に示した書込データマージ処理の処理手順を示すフローチャートである。
符号の説明
100 ディスク装置
101 ホストインタフェース制御部
101a ホストデータ振分部
101b ディスクデータ振分部
101c、101d CRCチェック部
101e、101f FIFO
102 バッファ制御部
103 バッファメモリ
104 フォーマット制御部
105 リードチャネル
106 ヘッドIC
107 ヘッド
108 ディスク媒体
109 サーボ制御部
110 VCM(Voice Coil Motor:ボイスコイルモーター)
111 SPM(Spindle Motor:スピンドルモーター)
112 不揮発性メモリ
113 メモリ
114 MPU
115 コモンバス
116 ディスク書込データ選択部
200 ホスト
300 ホストインタフェース

Claims (5)

  1. シリアルインタフェースを備え、バッファメモリを経由してデータの入出力を行うディスク装置であって、
    前記上位装置から受領した受領データを前記バッファメモリの未使用領域に格納するとともに該受領データにエラーが発生しているか否かをチェックし、エラーが発生していた場合は、前記受領データから該エラー箇所を削除することによって有効データを特定する有効データ特定手段と、
    前記有効データ特定手段によって特定された有効データと書き込み位置が重複する箇所を含んだデータが前記バッファメモリ内に存在しているか否かを確認し、存在していた場合は、前記バッファメモリに先に格納されていたデータの該重複箇所を削除する重複データ削除手段と、
    を備えたことを特徴とするディスク装置。
  2. 前記有効データ特定手段は、前記上位装置から受領した受領データを前記バッファメモリの未使用領域に格納する際に、該受領データを格納可能な未使用領域が前記バッファメモリに存在していなかった場合は、前記バッファメモリに既に格納されているデータをディスク媒体に書き込むことによって未使用領域を確保した上で該受領データを格納することを特徴とする請求項1に記載のディスク装置。
  3. 前記有効データ特定手段は、前記上位装置から受領した受領データからエラー箇所を削除する際に、セクタ単位でエラーが特定できた場合は、セクタ単位でエラー箇所を削除し、パケット単位でしかエラーが特定できなかった場合は、パケット単位でエラー箇所を削除することを特徴とする請求項1または2に記載のディスク装置。
  4. シリアルインタフェースを備え、バッファメモリを経由してデータの入出力を行うディスク装置におけるディスク書込データ選択方法であって、
    前記上位装置から受領した受領データを前記バッファメモリの未使用領域に格納するとともに該受領データにエラーが発生しているか否かをチェックし、エラーが発生していた場合は、前記受領データから該エラー箇所を削除することによって有効データを特定する有効データ特定工程と、
    前記有効データ特定工程によって特定された有効データと書き込み位置が重複する箇所を含んだデータが前記バッファメモリ内に存在しているか否かを確認し、存在していた場合は、前記バッファメモリに先に格納されていたデータの該重複箇所を削除する重複データ削除工程と、
    を含んだことを特徴とするディスク書込データ選択方法。
  5. シリアルインタフェースを備え、バッファメモリを経由してデータの入出力を行うディスク装置に内蔵されたコンピュータで実行されるディスク書込データ選択プログラムであって、
    前記上位装置から受領した受領データを前記バッファメモリの未使用領域に格納するとともに該受領データにエラーが発生しているか否かをチェックし、エラーが発生していた場合は、前記受領データから該エラー箇所を削除することによって有効データを特定する有効データ特定手順と、
    前記有効データ特定手順によって特定された有効データと書き込み位置が重複する箇所を含んだデータが前記バッファメモリ内に存在しているか否かを確認し、存在していた場合は、前記バッファメモリに先に格納されていたデータの該重複箇所を削除する重複データ削除手順と、
    をコンピュータに実行させることを特徴とするディスク書込データ選択プログラム。
JP2005373329A 2005-12-26 2005-12-26 ディスク装置、ディスク書込データ選択方法およびディスク書込データ選択プログラム Pending JP2007179085A (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2005373329A JP2007179085A (ja) 2005-12-26 2005-12-26 ディスク装置、ディスク書込データ選択方法およびディスク書込データ選択プログラム
US11/377,691 US20070174739A1 (en) 2005-12-26 2006-03-16 Disk device, method of writing data in disk device, and computer product

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2005373329A JP2007179085A (ja) 2005-12-26 2005-12-26 ディスク装置、ディスク書込データ選択方法およびディスク書込データ選択プログラム

Publications (1)

Publication Number Publication Date
JP2007179085A true JP2007179085A (ja) 2007-07-12

Family

ID=38287049

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2005373329A Pending JP2007179085A (ja) 2005-12-26 2005-12-26 ディスク装置、ディスク書込データ選択方法およびディスク書込データ選択プログラム

Country Status (2)

Country Link
US (1) US20070174739A1 (ja)
JP (1) JP2007179085A (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2012198704A (ja) * 2011-03-18 2012-10-18 Fujitsu Ltd ストレージ装置、制御装置およびストレージ装置制御方法
JP5969145B1 (ja) * 2013-05-31 2016-08-17 クゥアルコム・インコーポレイテッドQualcomm Incorporated コマンド命令管理

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20230367667A1 (en) * 2022-05-10 2023-11-16 Western Digital Technologies, Inc. Machine Learning Supplemented Storage Device Inspections

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH06131123A (ja) * 1992-10-22 1994-05-13 Fujitsu Ltd 計算機の外部記憶装置
JP2000047941A (ja) * 1998-07-28 2000-02-18 Nec Ibaraki Ltd ディスクキャッシュ制御装置
JP2002023966A (ja) * 2000-06-30 2002-01-25 Toshiba Corp 転送データを冗長化したディスクシステム

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6715004B1 (en) * 2000-03-29 2004-03-30 Intel Corporation Method and apparatus for intermediate validation of data transferred between a host and a device
US6731947B2 (en) * 2001-10-23 2004-05-04 Qualcomm Incorporated Method and apparatus for controlling data rate on a forward channel in a wireless communication system
WO2004107180A1 (ja) * 2003-05-30 2004-12-09 Fujitsu Limited マルチプロセッサシステム
EP1596280A1 (en) * 2004-05-12 2005-11-16 STMicroelectronics Limited Pseudo register file write ports
US8719779B2 (en) * 2004-12-28 2014-05-06 Sap Ag Data object association based on graph theory techniques

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH06131123A (ja) * 1992-10-22 1994-05-13 Fujitsu Ltd 計算機の外部記憶装置
JP2000047941A (ja) * 1998-07-28 2000-02-18 Nec Ibaraki Ltd ディスクキャッシュ制御装置
JP2002023966A (ja) * 2000-06-30 2002-01-25 Toshiba Corp 転送データを冗長化したディスクシステム

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2012198704A (ja) * 2011-03-18 2012-10-18 Fujitsu Ltd ストレージ装置、制御装置およびストレージ装置制御方法
US9146803B2 (en) 2011-03-18 2015-09-29 Fujitsu Limited Storage apparatus, control apparatus, and storage apparatus control method
JP5969145B1 (ja) * 2013-05-31 2016-08-17 クゥアルコム・インコーポレイテッドQualcomm Incorporated コマンド命令管理

Also Published As

Publication number Publication date
US20070174739A1 (en) 2007-07-26

Similar Documents

Publication Publication Date Title
US8285923B2 (en) Disk drive and method using native command queuing tags to identify logical block size and implement protection information
US7681071B2 (en) Storage apparatus, control method therefor and program
US8612798B1 (en) Hybrid drive storing write data in non-volatile semiconductor memory if write verify of disk fails
US20070255898A1 (en) Storage device using nonvolatile flash memory and control method thereof
US7859784B2 (en) Data storage device and adjacent track rewrite processing method
JP2007200182A (ja) ストレージ装置、及びストレージシステム
JP2008077783A (ja) 記憶データ処理装置、記憶装置、記憶データ処理プログラム
JP4922433B2 (ja) 磁気ディスク装置及びデータブロックの書き換え方法
US7941601B2 (en) Storage device using nonvolatile cache memory and control method thereof
US7627725B2 (en) Stored data processing apparatus, storage apparatus, and stored data processing program
US8327043B2 (en) Buffer management device which manages buffer transfer, storage apparatus comprising the same device, and buffer management method
JP2007179085A (ja) ディスク装置、ディスク書込データ選択方法およびディスク書込データ選択プログラム
US20070189137A1 (en) Rotating disk storage device and recording method
JP2006072435A (ja) ストレージシステムおよびデータ記録方法
JP2008159152A (ja) 記憶装置
US7257030B2 (en) Operating a storage component
US20080091971A1 (en) Stored data processing apparatus, storage apparatus, and stored data processing program
JP5193822B2 (ja) 追記型メモリデバイス
JP2009223996A (ja) 記録装置
US9299387B2 (en) Magnetic disk apparatus, controller and data processing method
JP2010536112A (ja) 中断された書込みの回復のためのデータ記憶方法、機器およびシステム
JP2010061756A (ja) 記憶データ処理装置、記憶装置、記憶データ処理プログラム及び方法
US7389378B2 (en) Write processing method for stream type commands and medium storage apparatus
US20070101189A1 (en) Storage apparatus, and control method and program
JP2007179084A (ja) ディスク装置およびディスク書込データ転送方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20080723

A711 Notification of change in applicant

Free format text: JAPANESE INTERMEDIATE CODE: A712

Effective date: 20091022

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20101118

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20101207

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20110405