JP4391178B2 - ストレージ制御装置およびストレージ制御プログラム - Google Patents

ストレージ制御装置およびストレージ制御プログラム Download PDF

Info

Publication number
JP4391178B2
JP4391178B2 JP2003324649A JP2003324649A JP4391178B2 JP 4391178 B2 JP4391178 B2 JP 4391178B2 JP 2003324649 A JP2003324649 A JP 2003324649A JP 2003324649 A JP2003324649 A JP 2003324649A JP 4391178 B2 JP4391178 B2 JP 4391178B2
Authority
JP
Japan
Prior art keywords
attribute
packet
fis
received
procedure
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
JP2003324649A
Other languages
English (en)
Other versions
JP2005092497A (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.)
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 JP2003324649A priority Critical patent/JP4391178B2/ja
Priority to US10/779,401 priority patent/US7664042B2/en
Publication of JP2005092497A publication Critical patent/JP2005092497A/ja
Application granted granted Critical
Publication of JP4391178B2 publication Critical patent/JP4391178B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related 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/0793Remedial or corrective actions
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Debugging And Monitoring (AREA)
  • Communication Control (AREA)

Description

この発明は、所定のコマンドを実行するのに必要なデータを含んだパケットを受信して当該コマンドを実行するストレージ制御装置およびストレージ制御プログラムに関し、特に、パケットの受信に係るエラー処理を迅速かつ効率的におこなうことのできるストレージ制御装置およびストレージ制御プログラムに関するものである。
近年、ハードディスク装置などストレージ装置に対するストレージインターフェース規格として、Serial ATA(Serial AT Attachment)が用いられるようになってきている。このSerial ATAでは、ホストコンピュータからのコマンドをハードディスク装置が実行する場合に、ホストコンピュータとハードディスク装置とが、FIS(Frame Information Structure)と呼ばれるパケットを用いてデータの送受信をおこなう。
一般に、ホストコンピュータとハードディスク装置との間で送受信されるパケットにエラーがあった場合には、非特許文献1に示されるように、エラーなくパケットの送受信が完了するまでリトライがおこなわれる。
APT Technologies, Inc., Dell Computer Corporation, Intel Corporation, Maxtor Corporation, Seagate Technology, Serial ATA : High Speed Serialized AT Attachment, Revision 1.0a, 7-January-2003, 11.4 Transport error handling overview, pp.276-279, [online], [平成15年9月2日検索], <URL : http://www.serialata.org/collateral/index.shtml>
しかしながら、上記非特許文献1に代表される従来技術では、エラーの種類に関係なくリトライをおこなっているため、リトライによって処理が滞る待ち時間が発生するという問題があった。
すなわち、コマンドをハードディスク装置が実行する際に、そのコマンドに無関係なFISをハードディスク装置が受信した場合でも、エラー復帰処理がおこなわれるまでパケットの送信を再度要求するため、迅速なエラー処理がおこなえないという問題があった。
この発明は、上述した従来技術による問題点を解消するためになされたものであり、パケットの受信に係るエラー処理を迅速かつ効率的におこなうことのできるストレージ制御装置およびストレージ制御プログラムを提供することを目的とする。
上述した課題を解決し、目的を達成するため、本発明は、所定のコマンドを実行するのに必要なデータを含んだパケットを受信して該コマンドを実行するストレージ制御装置であって、前記コマンドに対応して受信することが予期されるパケットの属性に係る情報を登録する属性登録手段と、受信した前記パケットの属性に係る情報を取得する属性取得手段と、前記属性取得手段により取得されたパケットの属性に係る情報が、前記属性登録手段により登録されたパケットの属性に係る情報と対応しない受信エラーが発生した場合に、発生した受信エラーの種類に応じて所定の受信エラー処理を実行する受信エラー処理実行手段と、を備えたことを特徴とする。
また、本発明は、前記パケットの属性に係る情報は、該パケットのタイプに係る情報を含み、前記受信エラー処理実行手段は、前記属性取得手段により取得されたパケットのタイプに係る情報が、前記属性登録手段に登録されたパケットのタイプに係る情報と対応しない受信エラーが発生した場合に、受信した前記パケットを破棄することを特徴とする。
また、本発明は、前記パケットの属性に係る情報は、該パケットの長さに係る情報を含み、前記受信エラー処理実行手段は、前記属性取得手段により取得されたパケットの長さに係る情報が、前記属性登録手段に登録されたパケットの長さに係る情報と対応しない受信エラーが発生した場合に、受信した前記パケットを破棄することを特徴とする。
また、本発明は、前記パケットの属性に係る情報は、該パケットを受信する順番に係る情報を含み、前記受信エラー処理実行手段は、前記属性取得手段により取得されたパケットを受信する順番に係る情報が、前記属性登録手段に登録されたパケットを受信する順番に係る情報と対応しない受信エラーが発生した場合に、受信したパケットを保持して所定の受信エラー処理を実行することを特徴とする。
また、本発明は、前記受信エラー処理実行手段は、受信エラー処理の一部をマイクロプロセッサによるファームウェア処理としておこなうことを特徴とする。
また、本発明は、所定のコマンドを実行するのに必要なデータを含んだパケットを受信して該コマンドを実行するストレージ装置であって、前記コマンドに対応して受信することが予期されるパケットの属性に係る情報を登録する属性登録手段と、受信した前記パケットの属性に係る情報を取得する属性取得手段と、前記属性取得手段により取得されたパケットの属性に係る情報が、前記属性登録手段により登録されたパケットの属性に係る情報と対応しない受信エラーが発生した場合に、発生した受信エラーの種類に応じて所定の受信エラー処理を実行する受信エラー処理実行手段と、を備えたことを特徴とする。
また、本発明は、所定のコマンドを実行するのに必要なデータを含んだパケットを受信して該コマンドを実行するストレージ制御方法であって、前記コマンドに対応して受信することが予期されるパケットの属性に係る情報を登録する属性登録工程と、受信した前記パケットの属性に係る情報を取得する属性取得工程と、前記属性取得工程により取得されたパケットの属性に係る情報が、前記属性登録工程により登録されたパケットの属性に係る情報と対応しない受信エラーが発生した場合に、発生した受信エラーの種類に応じて所定の受信エラー処理を実行する受信エラー処理実行工程と、を含んだことを特徴とする。
また、本発明は、所定のコマンドを実行するのに必要なデータを含んだパケットを受信して該コマンドを実行するストレージ制御プログラムであって、前記コマンドに対応して受信することが予期されるパケットの属性に係る情報を登録する属性登録手順と、受信した前記パケットの属性に係る情報を取得する属性取得手順と、前記属性取得手順により取得されたパケットの属性に係る情報が、前記属性登録手順により登録されたパケットの属性に係る情報と対応しない受信エラーが発生した場合に、発生した受信エラーの種類に応じて所定の受信エラー処理を実行する受信エラー処理実行手順と、をコンピュータに実行させることを特徴とする。
本発明によれば、コマンドに対応して受信することが予期されるパケットの属性に係る情報を登録し、受信したパケットの属性に係る情報を取得し、取得されたパケットの属性に係る情報が、登録されたパケットの属性に係る情報と対応しない受信エラーが発生した場合に、発生した受信エラーの種類に応じて所定の受信エラー処理を実行することとしたので、パケットの受信に係るエラー処理を迅速かつ効率的におこなうことができるという効果を奏する。
また、本発明によれば、パケットの属性に係る情報は、パケットのタイプに係る情報を含み、取得されたパケットのタイプに係る情報が、登録されたパケットのタイプに係る情報と対応しない受信エラーが発生した場合に、受信したパケットを破棄することとしたので、リトライ処理が不必要である場合を検知して、適切なエラー処理を迅速かつ効率的におこなうことができるという効果を奏する。
また、本発明によれば、パケットの属性に係る情報は、パケットの長さに係る情報を含み、取得されたパケットの長さに係る情報が、登録されたパケットの長さに係る情報と対応しない受信エラーが発生した場合に、受信したパケットを破棄することとしたので、リトライ処理が不必要である場合を検知して、適切なエラー処理を迅速かつ効率的におこなうことができるという効果を奏する。
また、本発明によれば、パケットの属性に係る情報は、パケットを受信する順番に係る情報を含み、取得されたパケットを受信する順番に係る情報が、登録されたパケットを受信する順番に係る情報と対応しない受信エラーが発生した場合に、受信したパケットを保持して所定の受信エラー処理を実行することとしたので、リトライ処理がなされうる可能性がある場合を検知して、適切なエラー処理を迅速かつ効率的におこなうことができるという効果を奏する。
また、本発明によれば、受信エラー処理の一部をマイクロプロセッサによるファームウェア処理としておこなうこととしたので、ハードウェアによる処理とファームウェアによる処理とを分けることにより、ハードウェアによる処理量を低減してハードウェアの製造コストを低下させるとともに、適切なエラー処理を迅速かつ効率的におこなうことができるという効果を奏する。
以下に添付図面を参照して、本発明に係るストレージ制御装置およびストレージ制御プログラムの好適な実施の形態を詳細に説明する。なお、ここでは、ストレージ制御装置の一例として、Serial ATA(Serial AT Attachment)規格に準拠したハードディスク制御装置に本発明を適用した場合について説明することとする。このSerial ATA規格においては、ホストコンピュータとハードディスク制御装置とが、FIS(Frame Information Structure)と呼ばれるパケットを用いてデータの送受信をおこなう。
まず、本実施例に係るハードディスク制御装置の機能的構成について説明する。ホストコンピュータから送信されるコマンドには様々なものがあるが、実行する各コマンドに対応してハードディスク制御装置が受信するFISの属性、すなわち、FISのタイプや長さ、受信するFISの順番はコマンドにより定まっているのでそれらを予測することができる。
そのため、本実施例に係るハードディスク制御装置を制御する制御部は、ホストコンピュータから送信されたコマンドに対応して受信することが予期されるFISの属性に係る情報を登録しておき、受信したFISの属性に係る情報を取得して、取得されたFISの属性に係る情報が、登録されたFISの属性に係る情報と対応するかどうかを判定する処理をおこなう。
そして、この制御部は、取得されたFISの属性に係る情報と、登録されたFISの属性に係る情報とが対応しない受信エラーが発生した場合に、発生した受信エラーの種類に応じて所定の受信エラー処理を実行するよう構成される。
具体的には、FISの再送信を要求するリトライ処理の必要がある受信エラーと、リトライ処理の必要がない受信エラー、すなわち、リトライ処理をおこなっても期待するFISが送信されないと判定される受信エラーとを選別し、リトライ処理が必要な場合にのみそれを実行する。
これにより、受信エラーが発生する度にリトライ処理をおこなうのではなく、発生した受信エラーの種類に基づいてリトライ処理の必要性を判定し、適切な受信エラー処理をおこなうこととしたので、FISのパケットの受信に係るエラー処理を迅速かつ効率的におこなうことができる。
図1は、本実施例に係るハードディスク制御装置の機能的構成を示す機能ブロック図である。図1に示すように、この制御部は、コマンド受信部10、FIS受信部11、FIS属性取得部12、FIS属性登録部13、受信エラー処理実行部14およびコマンド実行部15を有する。
コマンド受信部10は、制御部が実行するコマンドをホストコンピュータから受信し、コマンド受信部10が有するコマンドレジスタ(図示せず)に記憶する受信部である。FIS受信部11は、FISのパケットをホストコンピュータから受信する受信部である。このFIS受信部11は、受信したFISをデコードし、デコードしたFISをFIS受信部11が有するRFIFO(Receive First-in First-out)メモリ(図示せず)に保持する。
FIS属性取得部12は、FIS受信部11が受信したFISのタイプの情報をFISのヘッダから取得し、また、FISの長さの情報をFISの先頭から末尾までのビット数をカウントすることにより取得する取得部である。
FIS属性登録部13は、コマンド受信部10が受信したコマンドに対応して、受信することが予期されるFISの属性に係る情報を登録する登録部である。このFIS属性登録部13は、FISテーブル登録部130および次受信FIS登録部131を有する。
FISテーブル登録部130は、コマンド受信部10が受信したコマンドに対応して受信することが予期されるFISのタイプおよび長さの情報を、FISテーブル登録部130が有するFISテーブルレジスタ(図示せず)に登録する。
図2は、FISテーブルレジスタに登録されるFISのタイプおよび長さの情報の一例を示す図である。このFISテーブルレジスタは、ホストコンピュータからコマンド「PIO WRITE」が送信された際に設定されるものである。コマンド「PIO WRITE」は、PIO(Programmed Input/Output)方式でデータの書き込みをおこなうコマンドであり、ホストコンピュータのメインメモリからハードディスク制御装置へのデータの転送をホストコンピュータのCPUが制御する。
図2に示されるように、このFISテーブルレジスタには、コマンドが実行される場合に送信される可能性のあるFISのタイプとして、「REG_HD」、「REG_DH」、「DMACT」、「DMASU」、「DATA」、「BIST」、「PIOSU」および「SDB」が登録されている。
これらは、非特許文献1に示したSerial ATA規格で定められた「Register - Host to Device FIS」、「Register − Device to Host FIS」、「DMA Activate − Device to Host FIS」、「DMA Setup − Device to Host FIS or Host to Device FIS」、「Data − Host to Device or Device to Host FIS」、「BIST Activate FIS」、「PIO Setup − Device to Host FIS」および「Set Device Bit − Device to Host FIS」にそれぞれ対応する。
登録された各FISには、12ビット(bit0〜bit11)の領域が付与されており、最初の11ビット(bit0〜bit10)にFISの長さの情報が2進数で登録され、最後の1ビット(bit11,enable bit)にコマンド「PIO WRITE」が実行される場合に受信することが予期されるFISであるかどうかの情報が登録される。
たとえば、FIS「REG_HD」は、bit11が「1」となっていることから、コマンド「PIO WRITE」が実行される場合に受信することが予期されるFISであることがわかる。また、FIS「REG_HD」の長さは、bit0とbit2とが「1」となっていることから、1×22+1=5Dword、すなわち、160ビットのデータ長であることがわかる。
図1の説明に戻ると、次受信FIS登録部131は、コマンド実行中に、FIS受信部11がすでに受信したFISの次に受信することが予期されるFISのタイプの情報を、次受信FIS登録部131が有するreceivable FISレジスタ(図示せず)に登録する登録部である。
FISを受信する順番は、コマンドごとに定まっており、たとえば、コマンド「PIO WRITE」を実行する場合に受信するFISの順番は、「REG_HD」、「PIOSU」、「DATA」、「PIOSU」、「DATA」、・・・(連続処理するセクタ数だけ繰り返し。このセクタ数の情報は、FISのヘッダにsector countとして含まれている。)、「REG_DH」の順となる。
図3は、receivable FISレジスタに登録される次に受信するFISのタイプの情報の一例を示す図である。図3に示すように、このreceivable FISレジスタには、8ビット(bit0〜bit7)の領域が付与されており、各ビットには図2で示したFISの各タイプが対応している。
そして、いずれかのビット領域を「1」に設定することにより、次に受信することが予期されるFISのタイプを登録することができる。図3の例では、bit6が「1」となっているので、次に受信することが予期されるFISは、FIS「PIOSU」であることがわかる。
図1の説明に戻ると、受信エラー処理実行部14は、FIS属性取得部12により取得されたパケットの属性に係る情報が、FIS属性登録部13により登録されたパケットの属性に係る情報と対応しない受信エラーが発生した場合に、発生した受信エラーに応じた受信エラー処理を実行する実行部である。
この受信エラー処理実行部14は、FISタイプ比較部140、FIS長比較部141、HD状態制御部142、ログ記録部143、割込み処理部144およびCRCエラー検出部145を有する。
FISタイプ比較部140は、FIS属性取得部12により取得されたFISのタイプの情報と、FISテーブル登録部130によりFISテーブルレジスタに登録された、受信することが予期されるFISのタイプの情報とが一致するかどうかを比較する比較部である。このFISタイプ比較部140は、2つのFISのタイプが一致しない場合に「undefineエラー」の受信エラー信号をHD状態制御部142に送信する。
また、このFISタイプ比較部140は、FIS属性取得部12により取得されたFISのタイプの情報と、次受信FIS登録部131によりreceivable FISレジスタに登録されたFISのタイプの情報とが一致するかどうかを比較する。そして、FISタイプ比較部140は、2つのFISのタイプが一致しない場合に「unexpectedエラー」の受信エラー信号をHD状態制御部142に送信する。
FIS長比較部141は、FIS属性取得部12により取得されたFISの長さの情報と、FISテーブル登録部130によりFISテーブルレジスタに登録された、受信することが予期されるFISの長さの情報とが一致するかどうかを比較する比較部である。そして、比較の結果、2つのFISの長さが一致しない場合に「lengthエラー」の受信エラー信号をHD状態制御部142に送信する。
HD状態制御部142は、ハードディスク装置の状態を動作状態からアイドル状態に、あるいはアイドル状態から動作状態に設定する制御部である。このHD状態制御部142は、「undefineエラー」または「lengthエラー」の受信エラー信号を受信した場合に、ハードディスク装置をアイドル状態に設定する。「unexpectedエラー」の受信エラー信号を受信した場合には、HD状態制御部142は、その時点での状態を維持する。
ログ記録部143は、「undefineエラー」、「lengthエラー」、または「unexpectedエラー」の受信エラーが発生した場合に、発生した受信エラーの情報をログ記録部143が有するLOGレジスタ(図示せず)に記録する記録部である。
図4は、LOGレジスタに登録される受信エラー情報の一例を示す図である。図4に示すように、このLOGレジスタには、22ビット(bit0〜bit21)の領域が付与されており、最初の11ビット(bit0〜bit10)でFIS受信部11により受信されたFISの長さの情報が登録され、次の9ビット(bit11〜bit19)でFIS受信部11により受信されたFISのタイプの情報が登録され、最後の2ビット(bit20およびbit21)で受信エラーの種類の情報が登録される。
たとえば、ログ記録部143は、「undefineエラー」に「01」のビット列、「lengthエラー」に「10」のビット列、「unexpectedエラー」に「11」のビット列を割り当て、発生した受信エラーに該当するビット列をbit20およびbit21に登録する。
たとえば、図4の例では、受信したFISの長さが22=4Dwordであり、受信したFISのタイプは「PIOSU」であり、受信エラーの種類は、「lengthエラー」であることがわかる(FIS「PIOSU」は、5Dwordであるべきである。)。ホストコンピュータは、このLOGレジスタの値を参照することにより受信エラーの詳細情報を確認することができる。
図1の説明に戻ると、割込み処理部144は、ハードディスク制御装置がホストコンピュータに割込み信号を送信する割込み処理部である。この割込み処理部144は、単に割込み信号を送信するだけでなく、発生した受信エラーに応じた受信エラー処理をおこなう。
具体的には、割込み処理部144は、「undefineエラー」または「lengthエラー」が発生した場合には、割込み処理部144が有する割込みレジスタ(図示せず)に、「undefineエラー」または「lengthエラー」の受信エラー情報を記録するとともに、FIS受信部11が有するRFIFOメモリをリセットし、RFIFOメモリに保持されているFISを破棄する処理をおこなう。
また、割込み処理部144は、「unexpectedエラー」が発生した場合には、割込みレジスタに「unexpectedエラー」の受信エラー情報を記録するとともに、FIS受信部11が有するRFIFOメモリに保持されているFISを継続して保持し、ホストコンピュータにFISを再送信するよう要求するリトライ信号を発信する。
図5は、割込みレジスタに登録される受信エラー情報の一例を示す図である。図5に示すように、この割込みレジスタには、3ビット(bit0〜bit2)の領域が付与されており、各ビット領域は「undefineエラー」、「lengthエラー」、および「unexpectedエラー」のそれぞれに対応している。割込み処理部144は、発生した受信エラーに応じて該当する割込みレジスタの値を「1」に設定し、ホストコンピュータに受信エラーの発生を通知する。図5の例は、「lengthエラー」が発生した場合を示している。
CRCエラー検出部145は、「undefineエラー」、「lengthエラー」、または「unexpectedエラー」の受信エラーが発生しなかった場合に、FIS受信部11が有するRFIFOメモリに保持されたFISに対してCRC(cyclic redundancy check)エラーの検出処理をおこなう検出部である。
このCRCエラー検出部145は、CRCエラーが検出された場合には、RFIFOメモリに保持されているFISを破棄するとともに、ホストコンピュータにFISの再送信を要求するリトライ処理を実行する。CRCエラーが検出されなかった場合には、CRCエラー検出部145は、FIS受信部11にRFIFOに保持しているFISをコマンド実行部15に転送するよう要求する。
コマンド実行部15は、FISタイプ比較部140、FIS長比較部141およびCRCエラー検出部145によりFISの受信エラーが発生しなかったと判定された場合に、FIS受信部11が受信したFISの情報を取得して、コマンド受信部10が受信したコマンドを実行する実行部である。
次に、本実施例に係るハードディスク制御装置がおこなうFIS受信処理の処理手順について説明する。図6−1、図6−2および図6−3は、本実施例に係るハードディスク制御装置がおこなうFIS受信処理の処理手順を示すフローチャートである。
図6−1に示すように、まず、コマンド受信部10は、ホストコンピュータから送信されたコマンドを受け付ける(ステップS101)。そして、FISテーブル登録部130は、受け付けたコマンドの実行中に受信することが予期されるFISのタイプおよび長さの情報をFISテーブルレジスタに登録する(ステップS102)。
続いて、コマンド実行部15は、コマンドの実行を開始し(ステップS103)、次受信FIS登録部131は、次に受信することが予期されるFISの情報をreceivable FISレジスタに登録する(ステップS104)。
その後、FIS受信部11は、FISを受信したかどうかを調べ(ステップS105)、FISを受信した場合には(ステップS105,Yes)、FIS属性取得部12は、FISのヘッダからFISのタイプの情報を取得する(ステップS106)。
FISを所定の時間受信しなかった場合には(ステップS105,No)、FIS受信部11は、コマンドの実行を停止するtimeoutエラー割込み処理をおこない(ステップS113)、そのままこのFIS受信処理を終了する。
ステップS106におけるFISのタイプの判定処理終了後、FISタイプ比較部140は、取得されたFISのタイプの情報とFISテーブルレジスタに登録された、受信することが予期されるFISのタイプの情報とが一致しているかどうかを調べる(ステップS107)。
FISのタイプが一致していた場合には(ステップS107,Yes)、図6−2に示すように、FIS属性取得部12は、FISの長さの情報を取得する(ステップS108)。FISのタイプが一致していなかった場合には(ステップS107,No)、図6−1に示すように、HD状態制御部142は、ハードディスク装置の状態をアイドル状態に設定し(ステップS114)、ログ記録部143は、LOGレジスタに受信エラー情報を記録する(ステップS115)。
その後、割込み処理部144は、割込みレジスタに「undefineエラー」の受信エラー情報を記録するundefineエラー割込み処理をおこなう(ステップS116)。そして、FISを破棄させる信号をFIS受信部11に送信して受信したFISを破棄し(ステップS117)、そのままこのFIS受信処理を終了する。
図6−2に示すように、ステップS108におけるFISの長さの検出処理終了後、FIS長比較部141は、取得されたFISの長さの情報と、FISテーブルレジスタに登録された、受信することが予期されるFISの長さの情報とが一致しているかどうかを調べる(ステップS109)。
FISの長さが一致していなかった場合には(ステップS109,No)、HD状態制御部142は、ハードディスク装置の状態をアイドル状態に設定し(ステップS118)、ログ記録部143は、LOGレジスタに受信エラー情報を記録する(ステップS119)。
その後、割込み処理部144は、割込みレジスタに「lengthエラー」の受信エラー情報を記録するlengthエラー割込み処理をおこなう(ステップS120)。そして、FISを破棄させる信号をFIS受信部11に送信して受信したFISを破棄し(ステップS121)、そのままこのFIS受信処理を終了する。
ステップS109において、FISの長さが一致していた場合には(ステップS109,Yes)、続いて、FISタイプ比較部140は、ステップS106において取得されたFISのタイプの情報と、receivable FISレジスタに登録されたFISのタイプの情報とが一致しているかどうかを調べる(ステップS110)。
FISのタイプが一致していなかった場合には(ステップS110,No)、ログ記録部143は、LOGレジスタに受信エラー情報を記録する(ステップS122)。そして、割込み処理部144は、割込みレジスタに「unexpectedエラー」の受信エラー情報を記録するunexpectedエラー割込み処理をおこない(ステップS123)、FISを再送信するようホストコンピュータに要求するリトライ処理をおこなう(ステップS124)。
続いて、FIS受信部11は、リトライ処理によりFISを再度受信したかどうかを調べる(ステップS125)。FISを再度受信した場合には(ステップS125,Yes)、ステップS106に移行して、それ以降の処理を実行する。
FISを所定の時間受信しなかった場合には(ステップS125,No)、FIS受信部11は、コマンドの実行を停止するtimeoutエラー割込み処理をおこない(ステップS126)、そのままこのFIS受信処理を終了する。
ステップS110において、FISのタイプが一致していた場合には(ステップS110,Yes)、図6−3に示すように、CRCエラー検出部145は、CRCエラーがあるかどうかを調べる(ステップS111)。
CRCエラーがあった場合には(ステップS111,Yes)、CRCエラー検出部145は、FISを破棄させる信号をFIS受信部11に送信して受信したFISを破棄し(ステップS127)、FISを再送信するようホストコンピュータに要求するリトライ処理をおこなう(ステップS128)。
そして、FIS受信部11は、リトライ処理によりFISを再度受信したかどうかを調べ(ステップS129)、FISを再度受信した場合には(ステップS129,Yes)、ステップS106に移行して、それ以降の処理を実行する。
FISを所定の時間受信しなかった場合には(ステップS129,No)、FIS受信部11は、コマンドの実行を停止するtimeoutエラー割込み処理をおこない(ステップS130)、そのままこのFIS受信処理を終了する。
ステップS111において、CRCエラーがなかった場合には(ステップS111,No)、コマンド実行部15は、コマンドの実行が終了したかどうかを調べる(ステップS112)。コマンドの実行が、終了していない場合には(ステップS112,No)、ステップS104に移行して、それ以降の処理を実行する。コマンドの実行が終了した場合には(ステップS112,Yes)、このFIS受信処理を終了する。
上述してきたように、本実施例では、FIS属性登録部13が、コマンドに対応して受信することが予期されるFISの属性に係る情報を登録し、FIS属性取得部12が、受信したFISの属性に係る情報を取得し、受信エラー処理実行部14が、FIS属性取得部13により取得されたFISの属性に係る情報が、FIS属性登録部13により登録されたFISの属性に係る情報と対応しない受信エラーが発生した場合に、発生した受信エラーの種類に応じて所定の受信エラー処理を実行することとしたので、FISの受信に係るエラー処理を迅速かつ効率的におこなうことができる。
さて、これまで本発明の実施の形態について説明したが、本発明は上述した実施の形態以外にも、上記特許請求の範囲に記載した技術的思想の範囲内において種々の異なる実施の形態にて実施されてもよいものである。
たとえば、本実施の形態では、Serial ATA規格に準拠したハードディスク制御装置が受信エラー処理をおこなう場合について説明したが、本発明はこれに限定されるものではなく、受信するパケットの属性があらかじめ予期できる他の規格に準拠したハードディスク制御装置にも同様に適用することができる。
また、本実施の形態では、ハードディスク制御装置が受信エラー処理をおこなう場合について説明したが、本発明はこれに限定されるものではなく、フレキシブルディスク装置やMO(Magneto Optical disk)装置、CD-R(Compact Disk Recordable)装置、磁気テープ装置など他のストレージ制御装置にも同様に適用することができる。
また、本実施の形態において説明した各処理のうち、自動的におこなわれるものとして説明した処理の全部または一部を手動的におこなうこともでき、あるいは、手動的におこなわれるものとして説明した処理の全部または一部を公知の方法で自動的におこなうこともできる。この他、上記文書中や図面中で示した処理手順、制御手順、具体的名称、各種のデータやパラメータを含む情報については、特記する場合を除いて任意に変更することができる。
また、図示した各構成要素は機能概念的なものであり、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、各構成要素の分散・統合の具体的形態は図示のものに限られず、その全部または一部を、各種の負荷や使用状況などに応じて、任意の単位で機能的または物理的に分散・統合して構成することができる。
さらに、上述の各処理機能は、その全部または任意の一部が、ワイヤードロジックによるハードウェアとして実現され、あるいは、CPUおよび当該CPUにて解析実行されるプログラムにて実現され得る。
たとえば、「unexpectedエラー」の受信エラーが発生した場合に、unexpectedエラーに対するリトライ処理などの受信エラー処理を、ハードディスク装置に導入されたファームウェアがおこなうこととしてもよい。ここで、ファームウェアがおこなう受信エラー処理は、本実施の形態で述べた受信エラー処理に限定されず、さまざまな処理であってよい。このように、ハードウェアによる処理とファームウェアによる処理とを分けることにより、ハードウェアの処理量を低減してハードウェアの製造コストを低下させることができる。
(付記1)所定のコマンドを実行するのに必要なデータを含んだパケットを受信して該コマンドを実行するストレージ制御装置であって、
前記コマンドに対応して受信することが予期されるパケットの属性に係る情報を登録する属性登録手段と、
受信した前記パケットの属性に係る情報を取得する属性取得手段と、
前記属性取得手段により取得されたパケットの属性に係る情報が、前記属性登録手段により登録されたパケットの属性に係る情報と対応しない受信エラーが発生した場合に、発生した受信エラーの種類に応じて所定の受信エラー処理を実行する受信エラー処理実行手段と、
を備えたことを特徴とするストレージ制御装置。
(付記2)前記パケットの属性に係る情報は、該パケットのタイプに係る情報を含み、前記受信エラー処理実行手段は、前記属性取得手段により取得されたパケットのタイプに係る情報が、前記属性登録手段に登録されたパケットのタイプに係る情報と対応しない受信エラーが発生した場合に、受信した前記パケットを破棄することを特徴とする付記1に記載のストレージ制御装置。
(付記3)前記パケットの属性に係る情報は、該パケットの長さに係る情報を含み、前記受信エラー処理実行手段は、前記属性取得手段により取得されたパケットの長さに係る情報が、前記属性登録手段に登録されたパケットの長さに係る情報と対応しない受信エラーが発生した場合に、受信した前記パケットを破棄することを特徴とする付記1または2に記載のストレージ制御装置。
(付記4)前記パケットの属性に係る情報は、該パケットを受信する順番に係る情報を含み、前記受信エラー処理実行手段は、前記属性取得手段により取得されたパケットを受信する順番に係る情報が、前記属性登録手段に登録されたパケットを受信する順番に係る情報と対応しない受信エラーが発生した場合に、受信したパケットを保持して所定の受信エラー処理を実行することを特徴とする付記1、2または3に記載のストレージ制御装置。
(付記5)前記受信エラー処理実行手段は、受信エラー処理の一部をマイクロプロセッサによるファームウェア処理としておこなうことを特徴とする付記1〜4のいずれか一つに記載のストレージ制御装置。
(付記6)所定のコマンドを実行するのに必要なデータを含んだパケットを受信して該コマンドを実行するストレージ装置であって、
前記コマンドに対応して受信することが予期されるパケットの属性に係る情報を登録する属性登録手段と、
受信した前記パケットの属性に係る情報を取得する属性取得手段と、
前記属性取得手段により取得されたパケットの属性に係る情報が、前記属性登録手段により登録されたパケットの属性に係る情報と対応しない受信エラーが発生した場合に、発生した受信エラーの種類に応じて所定の受信エラー処理を実行する受信エラー処理実行手段と、
を備えたことを特徴とするストレージ装置。
(付記7)所定のコマンドを実行するのに必要なデータを含んだパケットを受信して該コマンドを実行するストレージ制御方法であって、
前記コマンドに対応して受信することが予期されるパケットの属性に係る情報を登録する属性登録工程と、
受信した前記パケットの属性に係る情報を取得する属性取得工程と、
前記属性取得工程により取得されたパケットの属性に係る情報が、前記属性登録工程により登録されたパケットの属性に係る情報と対応しない受信エラーが発生した場合に、発生した受信エラーの種類に応じて所定の受信エラー処理を実行する受信エラー処理実行工程と、
を含んだことを特徴とするストレージ制御方法。
(付記8)所定のコマンドを実行するのに必要なデータを含んだパケットを受信して該コマンドを実行するストレージ制御プログラムであって、
前記コマンドに対応して受信することが予期されるパケットの属性に係る情報を登録する属性登録手順と、
受信した前記パケットの属性に係る情報を取得する属性取得手順と、
前記属性取得手順により取得されたパケットの属性に係る情報が、前記属性登録手順により登録されたパケットの属性に係る情報と対応しない受信エラーが発生した場合に、発生した受信エラーの種類に応じて所定の受信エラー処理を実行する受信エラー処理実行手順と、
をコンピュータに実行させることを特徴とするストレージ制御プログラム。
以上のように、本発明にかかるストレージ制御装置およびストレージ制御プログラムは、パケットの送受信に係るエラー処理を迅速かつ効率的におこなうことのできるストレージシステムに適している。
本実施例に係るハードディスク制御装置の機能的構成を示す機能ブロック図である。 FISテーブルレジスタに登録されるFISのタイプおよび長さの情報の一例を示す図である。 receivable FISレジスタに登録される次に受信するFISのタイプの情報の一例を示す図である。 LOGレジスタに登録される受信エラー情報の一例を示す図である。 割込みレジスタに登録される受信エラー情報の一例を示す図である。 本実施例に係るハードディスク制御装置がおこなうFIS受信処理の処理手順を示すフローチャート(1)である。 本実施例に係るハードディスク制御装置がおこなうFIS受信処理の処理手順を示すフローチャート(2)である。 本実施例に係るハードディスク制御装置がおこなうFIS受信処理の処理手順を示すフローチャート(3)である。
符号の説明
10 コマンド受信部
11 FIS受信部
12 FIS属性取得部
13 FIS属性登録部
130 FISテーブル登録部
131 次受信FIS登録部
14 受信エラー処理実行部
140 FISタイプ比較部
141 FIS長比較部
142 HD状態制御部
143 ログ記録部
144 割込み処理部
145 CRCエラー検出部
15 コマンド実行部

Claims (4)

  1. 所定のコマンドを実行するのに必要なデータを含んだパケットを受信して該コマンドを実行し、ハードウェアとファームウェアとを有するストレージ制御装置であって、
    前記ハードウェアは、
    前記コマンドに対応して受信することが予期されるパケットの属性を示す属性リストと、既に受信したパケットの次に受信することが予期されるパケットの属性を示す次受信属性とを登録する属性登録手段と、
    パケットを受信すると、受信したパケットの属性を示す受信属性を取得する属性取得手段と、
    前記属性取得手段によって取得された受信属性について、前記属性登録手段によって登録された属性リストに含まれる属性と一致するかを判定する属性リスト判定手段と、
    前記属性取得手段によって取得された受信属性について、前記属性登録手段によって登録された次受信属性と一致するかを判定する次属性判定手段と、
    前記属性リスト判定部によって一致しないと判定された場合に、受信したパケットについてリトライ処理を実行せずに破棄する破棄手段と、
    前記属性リスト判定手段によって一致すると判定され、前記次属性判定手段によって一致しないと判定されると、受信したパケットを所定の記憶部に保持する保持手段と、
    前記属性リスト判定手段によって一致すると判定され、前記次属性判定手段によって一致すると判定されると、コマンドを実行するコマンド実行手段と
    を備え、
    前記ファームウェアは、
    前記属性リスト判定手段によって一致すると判定され、前記次属性判定手段によって一致しないと判定されると、前記保持手段によって前記所定の記憶部に保持されたパケットに関する所定のエラー処理を実行するエラー処理手段を備えたことを特徴とするストレージ制御装置。
  2. 前記パケットの属性とは、パケットのタイプを示す情報であることを特徴とする請求項1に記載のストレージ制御装置。
  3. 前記パケットの属性とは、パケットの長さを示す情報であることを特徴とする請求項1または2に記載のストレージ制御装置。
  4. 所定のコマンドを実行するのに必要なデータを含んだパケットを受信して該コマンドを実行し、ハードウェアとファームウェアとを有するストレージ制御装置を制御するトレージ制御方法であって、
    前記ハードウェアが、
    前記コマンドに対応して受信することが予期されるパケットの属性を示す属性リストと、既に受信したパケットの次に受信することが予期されるパケットの属性を示す次受信属性とを登録する属性登録手順と、
    パケットを受信すると、受信したパケットの属性を示す受信属性を取得する属性取得手順と、
    前記属性取得手順によって取得された受信属性について、前記属性登録手順によって登録された属性リストに含まれる属性と一致するかを判定する属性リスト判定手順と、
    前記属性取得手順によって取得された受信属性について、前記属性登録手順によって登録された次受信属性と一致するかを判定する次属性判定手順と、
    前記属性リスト判定部によって一致しないと判定された場合に、受信したパケットについてリトライ処理を実行せずに破棄する破棄手順と、
    前記属性リスト判定手順によって一致すると判定され、前記次属性判定手順によって一致しないと判定されると、受信したパケットを所定の記憶部に保持する保持手順と、
    前記属性リスト判定手順によって一致すると判定され、前記次属性判定手順によって一致すると判定されると、コマンドを実行するコマンド実行手順と
    を実行し、
    前記ファームウェアが、
    前記属性リスト判定手順によって一致すると判定され、前記次属性判定手順によって一致しないと判定されると、前記保持手順によって前記所定の記憶部に保持されたパケットに関する所定のエラー処理を実行するエラー処理手順を実行することを特徴とするストレージ制御方法。
JP2003324649A 2003-09-17 2003-09-17 ストレージ制御装置およびストレージ制御プログラム Expired - Fee Related JP4391178B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2003324649A JP4391178B2 (ja) 2003-09-17 2003-09-17 ストレージ制御装置およびストレージ制御プログラム
US10/779,401 US7664042B2 (en) 2003-09-17 2004-02-13 Storage control apparatus, storage apparatus, storage control method, and computer-readable recording medium for executing a command based on data in received packet

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2003324649A JP4391178B2 (ja) 2003-09-17 2003-09-17 ストレージ制御装置およびストレージ制御プログラム

Publications (2)

Publication Number Publication Date
JP2005092497A JP2005092497A (ja) 2005-04-07
JP4391178B2 true JP4391178B2 (ja) 2009-12-24

Family

ID=34270074

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2003324649A Expired - Fee Related JP4391178B2 (ja) 2003-09-17 2003-09-17 ストレージ制御装置およびストレージ制御プログラム

Country Status (2)

Country Link
US (1) US7664042B2 (ja)
JP (1) JP4391178B2 (ja)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI269968B (en) * 2004-04-22 2007-01-01 Mediatek Inc Method for processing the noise in the SATA
TWI242716B (en) * 2004-04-30 2005-11-01 Mediatek Inc Method for processing interference of noise
US8037377B1 (en) * 2008-05-27 2011-10-11 Altera Corporation Techniques for performing built-in self-test of receiver channel having a serializer
US7818483B2 (en) * 2008-12-10 2010-10-19 Lsi Corporation Methods and apparatuses for improving SATA target device detection
JP5169802B2 (ja) * 2008-12-24 2013-03-27 富士通株式会社 ネットワーク装置
JP5800847B2 (ja) * 2013-03-26 2015-10-28 京セラドキュメントソリューションズ株式会社 情報処理装置、エラー処理方法
CN109445696B (zh) * 2018-10-21 2021-10-08 山西达鑫核科技有限公司 网络聚合存储的信息存储装备
KR20210128240A (ko) * 2020-04-16 2021-10-26 에스케이하이닉스 주식회사 컨트롤러 및 이의 동작 방법

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2501791B2 (ja) 1986-04-28 1996-05-29 日新電機株式会社 フイルムキヤリヤ形基板とその製造方法
JP2501792B2 (ja) 1986-05-02 1996-05-29 恵和商工株式会社 金属蒸着層を有する薄膜コ−テイングフイルムの製造方法
US4845722A (en) 1987-10-16 1989-07-04 Digital Equipment Corporation Computer interconnect coupler employing crossbar switching
US4887076A (en) 1987-10-16 1989-12-12 Digital Equipment Corporation Computer interconnect coupler for clusters of data processing devices
US5255268A (en) 1992-02-04 1993-10-19 International Business Data distribution network with improved broadcast feature
US5530703A (en) * 1994-09-23 1996-06-25 3Com Corporation Remote communication server with automatic filtering
US5802320A (en) 1995-05-18 1998-09-01 Sun Microsystems, Inc. System for packet filtering of data packets at a computer network interface
JPH11275149A (ja) 1998-03-26 1999-10-08 Kawasaki Steel Corp ネットワークインタフェース装置
JP2001203752A (ja) 2000-01-19 2001-07-27 Sony Corp データ通信システムならびにそれに用いる送信装置および受信装置
US6898204B2 (en) * 2000-04-07 2005-05-24 Broadcom Corporation Method of determining a collision between a plurality of transmitting stations in a frame-based communications network
US7027394B2 (en) * 2000-09-22 2006-04-11 Narad Networks, Inc. Broadband system with traffic policing and transmission scheduling
AU2001296331A1 (en) 2000-09-29 2002-04-08 Alacritech, Inc. Intelligent network storage interface system and devices
JP3512755B2 (ja) * 2000-10-13 2004-03-31 シャープ株式会社 通信方式、通信装置、およびこの通信装置を用いた通信システム
JP4217386B2 (ja) 2001-05-15 2009-01-28 株式会社リコー Fifo装置
US6961787B2 (en) * 2002-01-07 2005-11-01 Intel Corporation Method and apparatus for updating task files
US7644188B2 (en) * 2002-02-25 2010-01-05 Intel Corporation Distributing tasks in data communications
US7392333B2 (en) * 2004-11-30 2008-06-24 Xyratex Technology Limited Fibre channel environment supporting serial ATA devices

Also Published As

Publication number Publication date
US7664042B2 (en) 2010-02-16
US20050058079A1 (en) 2005-03-17
JP2005092497A (ja) 2005-04-07

Similar Documents

Publication Publication Date Title
US7069350B2 (en) Data transfer control system, electronic instrument, and data transfer control method
US7849259B1 (en) Disk controller response handler for write commands
JP4801669B2 (ja) データを転送するためにアドバンスドホストコントローラインタフェースを使用する方法及び装置
US20070260756A1 (en) Method for Processing Command via SATA Interface
JP4391178B2 (ja) ストレージ制御装置およびストレージ制御プログラム
EP2672483B1 (en) Data processing system with retained sector reprocessing
US11500707B2 (en) Controller, memory controller, storage device, and method of operating the controller
KR101287353B1 (ko) 직렬 연결 scsi 확장자 및 이를 통한 데이터 전송 방법
JP4582023B2 (ja) 通信装置,受信方法,およびコンピュータプログラム
US8412895B1 (en) Hard disk controller which coordinates transmission of buffered data with a host
US20040095929A1 (en) Data processor, packet recognition method, and error correction method
US20130013840A1 (en) Single pipe non-blocking architecture
JP3252810B2 (ja) 磁気ディスク装置及び磁気ディスク装置のリトライ方法
US20120254521A1 (en) Backup Memory Administration
JP2010244611A (ja) 光ディスク装置
US8687301B1 (en) Parallel no-sync-mark retry
KR101109600B1 (ko) 직접 메모리 접근 제어를 이용한 데이터 전송 방법 및 그장치
US7228454B2 (en) Method and apparatus of processing data according to data types
US8381067B2 (en) Apparatus, system, and method for specifying intermediate CRC locations in a data stream
JP2008129885A (ja) ディスク装置、データ転送システム及びそれに用いるデータ転送方法
EP1562194A2 (en) Recording/reproducing apparatus
US20190163407A1 (en) Storage device and storage system
KR100672031B1 (ko) Bist를 이용한 하드 디스크 드라이브와 호스트 간인터페이스 파라미터 조정 방법 및 상기 방법을 수행하는하드 디스크 드라이브
JP2008065771A (ja) スルーレート制御装置、記憶装置およびスルーレート制御方法
US9443114B1 (en) Auto-logging of read/write commands in a storage network

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20060627

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20090407

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20090608

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

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

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

Free format text: PAYMENT UNTIL: 20121016

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313111

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

Free format text: PAYMENT UNTIL: 20121016

Year of fee payment: 3

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

LAPS Cancellation because of no payment of annual fees