JP4852315B2 - データ信頼性向上方法及びその方法を用いた情報処理装置 - Google Patents

データ信頼性向上方法及びその方法を用いた情報処理装置 Download PDF

Info

Publication number
JP4852315B2
JP4852315B2 JP2006026670A JP2006026670A JP4852315B2 JP 4852315 B2 JP4852315 B2 JP 4852315B2 JP 2006026670 A JP2006026670 A JP 2006026670A JP 2006026670 A JP2006026670 A JP 2006026670A JP 4852315 B2 JP4852315 B2 JP 4852315B2
Authority
JP
Japan
Prior art keywords
data
address
control unit
memory
interface control
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
JP2006026670A
Other languages
English (en)
Other versions
JP2007207062A (ja
JP2007207062A5 (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.)
Hitachi Ltd
Original Assignee
Hitachi 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 Hitachi Ltd filed Critical Hitachi Ltd
Priority to JP2006026670A priority Critical patent/JP4852315B2/ja
Priority to US11/386,939 priority patent/US7725805B2/en
Publication of JP2007207062A publication Critical patent/JP2007207062A/ja
Publication of JP2007207062A5 publication Critical patent/JP2007207062A5/ja
Application granted granted Critical
Publication of JP4852315B2 publication Critical patent/JP4852315B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/004Arrangements for detecting or preventing errors in the information received by using forward error control
    • H04L1/0056Systems characterized by the type of code used
    • H04L1/0061Error detection codes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L2001/0092Error control systems characterised by the topology of the transmission link
    • H04L2001/0094Bus

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Detection And Correction Of Errors (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)

Description

本願明細書で開示される技術は、情報処理装置が処理するデータの信頼性向上に関し、特に、データを保護するための誤り検出符号の付加及び検査の制御に関する。
近年の半導体プロセスの微細化及び高速化に伴い、半導体製品におけるデータの破壊の確率が高まっている。このため、データの信頼性を高める技術の重要性が増している。
このような状況の下、種々の方法によってデータが保護されている。例えば、計算機システム間でLAN経由の通信する場合,LAN上のデータはTCPチェックサム及びイーサネット(登録商標、以下同じ)CRC等によって保護される。計算機システム内部のバス上のデータは、システムバスのパリティによって保護される。情報処理装置内部のメモリ及びハードディスクドライブ(HDD)に格納されたデータは、誤り訂正符号(ECC)によって保護される(例えば、特許文献1及び特許文献2参照)。
特表2004−530964号公報 特開2005−84799号公報
上記の従来の情報処理装置では、情報処理装置のメモリ(主記憶)からHDDにデータが書き込まれる際に、まず、メモリから、HDDを制御するホストバスアダプタにシステムバス経由で当該データが転送される。ホストバスアダプタは当該データを受信したときに、ホストバスアダプタがデータからシステムバスのパリティを取り除き、HDDインタフェース規格の誤り検出符号を付加して、HDDインタフェース経由でHDDに転送する。HDDは、受信した当該データからHDDインタフェース規格の誤り検出符号を取り除き、HDD内誤り検出符号を付加してHDD内の記録媒体上に記録する。
ここで、ホストバスアダプタ内で一旦誤り検出符号を取り除くため、仮にホストバスアダプタがデータ保護機構を持っていない場合、データが誤りから保護されない区間が存在する。このため、前記ホストバスアダプタ内でデータに誤りが発生した場合、その誤りが検出されることなく、HDDに書き込まれる。
したがって、メモリ内のデータに誤り検出符号を付加し、当該データをHDDにそのまま格納すれば、仮にアダプタ内でデータの誤りが発生しても、情報処理装置は誤りを検出することができる。この課題の解決方法はいくつか考えられる。例えば、プロセッサがメモリ内のデータにチェックサムなどの誤り検出符号を付加する方法が考えられる。この方法では、プロセッサの計算量が増大するため,情報処理装置の性能が見かけ上低下する欠点がある。一方、情報処理装置内のメモリの制御、データの転送を制御するシステムコントローラにDMAエンジンを搭載し、そのDMAエンジンがデータ転送中に誤り検出符号を生成及び検査することもできる。しかし、この方法は、LANに接続されるLANコントローラ及びHDDに接続されるホストバスアダプタがデータの転送を実行する従来のシステムとの親和性が低い。また、メモリに格納されるデータには、誤り検出符号によって保護する必要があるユーザデータの他に、保護する必要がないプログラムや、プログラムが使用する制御データも含まれる。このため、データの種類に従って誤り検出符号の生成及び検査をするか否かを選択する必要がある。
本願で開示する代表的な発明は、情報処理装置であって、プロセッサと、前記プロセッサが接続されるプロセッサバスと、メモリと、前記メモリが接続されるメモリバスと、少なくとも1つのインタフェース制御部と、前記インタフェース制御部が接続されるシステムバスと、前記プロセッサバス、前記メモリバス及び前記システムバスに接続され、前記プロセッサ、前記メモリ及び前記インタフェース制御部の間の通信を制御するシステム制御部と、を備え、前記メモリの各アドレスは、前記システム制御部が管理する複数のアドレス空間に属する一つ以上のアドレスに対応し、前記複数のアドレス空間は、少なくとも、第1アドレス空間、第2アドレス空間及び第3アドレス空間を含み、前記プロセッサは、前記インタフェース制御部が前記情報処理装置の外部からデータを受信したとき、前記第1アドレス空間に属するアドレスを選択して、当該選択されたアドレスを前記インタフェース制御部に送信し、当該選択されたアドレスに格納されたデータを解析して当該データの種類を判定し、当該判定の結果に基づいて、当該データのコピー先のアドレスを選択し、当該選択されたデータのコピー先のアドレスに当該データを書き込むことを前記システム制御部に指示し、前記インタフェース制御部は、前記プロセッサから受信したアドレスを対象として前記受信したデータの書き込み要求を前記システム制御部に送信し、前記システム制御部は、前記第1アドレス空間に属するアドレスを対象とするデータの書き込み要求を受信した場合、当該データを前記メモリに書き込み、前記第2アドレス空間に属するアドレスを対象とするデータの書き込み要求を受信した場合、当該データの誤り検出符号を生成し、生成された誤り検出符号を当該データに付加して前記メモリに書き込み、前記第3アドレス空間に属するアドレスを対象とするデータの書き込み要求を受信した場合、当該データに付加された誤り検出符号を検査し、当該データを前記メモリに書き込むことを特徴とする。
本発明によれば、情報処理装置内におけるデータ転送経路において、誤り検出符号が付加されない区間がなく、データが保護される。
以下、本発明の実施の形態を、図面を参照して説明する。
図1は、本発明の実施の形態の情報処理装置の構成を示すブロック図である。
本発明は、種々の通信ネットワークに接続される種々の情報処理装置に適用することができる。以下、通信ネットワークがローカルエリアネットワーク(LAN)であり、情報処理装置がストレージシステム(いわゆるネットワーク接続ストレージシステム)である場合を例として説明する。しかし、本実施の形態の通信ネットワークは、例えば、ストレージエリアネットワーク(SAN)、Infiniband(登録商標)ネットワーク、WAN(Wide Area Network)、インターネット、又はその他のコンピュータ間の通信ネットワークであってもよい。また、本実施の形態の情報処理装置は、例えば、汎用コンピュータ又はパーソナルコンピュータ等であってもよい。
本実施の形態の情報処理装置100は、LAN105に接続され、プロセッサ101、メモリ102、ハードディスクドライブ(HDD)103、ホストバスアダプタ(HBA)104、LANコントローラ106、フラッシュメモリ108、システムコントローラ109、メモリバス110、プロセッサバス111、システムバス112、システムバス113及びフラッシュメモリバス114を備える。ここで、上記HBA104とLANコントローラ106とはひとつの制御部として構成可能である。また、システムバス112及びシステムバス113もひとつのシステムバスとして構成可能である。
プロセッサ101は、メモリ102及びフラッシュメモリ108に格納されたプログラムを実行する。プロセッサ101は、プロセッサバス111を介してシステムコントローラ109と接続される。図1には二つのプロセッサ101を示すが、本実施の形態の情報処理装置100は、一つ又は三つ以上のプロセッサ101を備えてもよい。
メモリ102には、プロセッサ101によって実行されるプログラムが格納される。具体的には、少なくとも、オペレーティングシステム(OS)115が格納される。
メモリ102には、さらに、HDD103に書き込まれるデータ及びHDD103から読み出されたデータが格納される。メモリ102は、メモリバス110を介してシステムコントローラ109と接続される。
HDD103は、LAN105に接続されたホスト計算機(図示省略)によって書き込まれたデータを格納する不揮発記憶媒体である。左記不揮発性記憶媒体としては、例えば、HDDが用いられる。本実施の形態の情報処理装置100は、複数のHDD103を備えてもよい。これらの複数のHDD103は、RAID(Redundant Arrays of Inexpensive Disks)を構成してもよい。各HDD103は、HBA104と接続される。
HBA104は、HDD103を制御する。HBA104は、システムバス113を介してシステムコントローラ109と接続される。
LAN105は、本実施の形態の情報処理装置100及び一つ以上のホスト計算機(図示省略)に接続されるネットワークである。
LANコントローラ106は、LAN105に接続され、情報処理装置100とホスト計算機との間の通信を制御する。LANコントローラ106は、システムバス112を介してシステムコントローラ109と接続される。
フラッシュメモリ108は、プロセッサ101によって実行される起動プログラム107を格納する不揮発メモリである。フラッシュメモリ108は、フラッシュメモリバス114を介してシステムコントローラ109と接続される。
起動プログラム107は、情報処理装置100に対する電源投入直後にプロセッサ100によって最初に実行されるプログラムである。
システムコントローラ109は、情報処理装置100内の各部の間で実行されるデータの通信を制御する。
図2は、本発明の実施の形態のシステムコントローラ109の構成を示すブロック図である。
本実施の形態のシステムコントローラ109は、プロセッサバスインタフェースユニット201、メモリ制御ユニット202、二つのシステムバス制御ユニット203、フラッシュメモリバス制御ユニット204及びデータルーティング制御ユニット205を備える。
プロセッサバスインタフェースユニット201は、プロセッサバス111に接続され、プロセッサ101とシステムコントローラ109との間の通信を制御する。
メモリ制御ユニット202は、メモリバス110に接続され、メモリ102へのデータの書き込み及び読み出しを制御する。
各システムバス制御ユニット203は、それぞれ、システムバス112及びシステムバス113に接続され、LANコントローラ106及びHBA104とシステムコントローラ109との間の通信を制御する。ここで、システムバス制御ユニット203は、システムバス112とシステムバス113がひとつのバスとして構成されるときは、単一のユニットして構成可能である。
フラッシュメモリバス制御ユニット204は、フラッシュメモリバス114に接続され、フラッシュメモリ108からの起動プログラム107の読み出しを制御する。
データルーティング制御ユニット205は、システムコントローラ109内の各ユニット間のデータの転送を制御する。データルーティング制御ユニット205は、アドレス空間属性テーブル206を保持する。図2の例では、アドレス空間属性テーブル206はデータルーティング制御ユニット205に保持されるが、実際には、アドレス空間属性テーブル206はシステムコントローラ109内のどのユニットに保持されてもよい。アドレス空間属性テーブル206については、後で詳細に説明する(図3及び図4参照)。
図3は、本発明の実施の形態のアドレス空間属性テーブル206の説明図である。本実施の形態のアドレス空間属性テーブル206は、メモリ102内の空間に付与された属性を管理するテーブルである。属性については、後述する。
先頭アドレス301は、メモリ102のアドレス空間に対して定義された各領域の先頭のアドレスである。メモリ102のアドレス空間については、後で詳細に説明する(図4参照)。本実施の形態のメモリ102のアドレス空間は四つの領域に分割され、各領域の先頭アドレス301は、それぞれ、「0x00000000」(行307)、「0x20000000」(行308)、「0x40000000」(行309)及び「0x60000000」(行310)である。言い換えると、各行307から310が、各先頭アドレス301から始まる各領域に対応する。
範囲302は、各領域の範囲(バイト数)である。本実施の形態の各領域の範囲302は、いずれも、512メガバイト(MB)である。
属性(303から306)は、各領域に対して付与される情報であり、メモリ102に対するデータの書き込み又は読み出しが実行される際に、誤り検出符号が生成されるか否か、及び、誤り検出符号が検査されるか否かを示す。本実施例では、誤り検出符号の例として、ブロックチェック符号を例にして説明する(後に、図6を用いて説明する)。いうまでもないが、本発明は、誤り検出符号の種類に依存しない。また、誤り訂正符号を用いてもよい。
各属性の値の意味について、アドレス空間属性テーブル206が管理するいずれかの領域を指定してデータの書き込み又は読み出しが実行される場合を仮定して説明する。
指定された領域に対応する行において、メモリライトに関するブロックチェック符号生成欄303の値が「1」である場合、データがメモリ102に書き込まれるときにブロックチェック符号が生成され、そのデータに付加される。
指定された領域に対応する行において、メモリリードに関するブロックチェック符号生成欄305の値が「1」である場合、データがメモリ102から読み出されるときにブロックチェック符号が生成され、そのデータに付加される。
ブロックチェック符号生成欄304、306には2ビットの数値が格納される。上位ビット(図3内の304と306に記入されている数字の左の数値)は、ブロックチェック符号を検査するか否かを意味する。本実施の形態では、上位ビットの数値の「1」はブロックチェック符号を検査することを意味する。逆に上位ビットの数値の「0」はブロックチェック符号を検査しないことを意味する。下位ビット(図3内の304と306に記入されている数字の右の数値)は、ブロックチェック符号の検査後にブロックチェック符号を削除するか否かを意味する。本実施例では、下位ビットの数値の「1」はブロックチェック符号を削除しないことを意味する。逆に、下位ビットの数値の「0」はブロックチェック符号を削除することを意味する。当然、ブロックチェック符号を検査しない場合、システムコントローラ109はブロックチェック符号を削除、削除しないを判断する必要はない。従って、上位ビットの数値が「0」だった場合、下位ビットの数値はシステムコントローラ109の動作に影響を与えない。すなわち、下位ビットの数値が「0」でも「1」でもシステムコントローラ109の動作は変わらない。
指定された領域に対応する行において、メモリライトに関するブロックチェック符号検査欄304の値が「10」である場合、データがメモリ102に書き込まれるときにブロックチェック符号が検査され、かつ、そのブロックチェック符号がデータから削除される。
指定された領域に対応する行において、メモリライトに関するブロックチェック符号検査欄304の値が「11」である場合、データがメモリ102に書き込まれるときにブロックチェック符号が検査されるが、そのブロックチェック符号はデータから削除されない。
指定された領域に対応する行において、メモリリードに関するブロックチェック符号検査欄306の値が「10」である場合、データがメモリ102から読み出されるときにブロックチェック符号が検査され、かつ、そのブロックチェック符号がデータから削除される。
指定された領域に対応する行において、メモリリードに関するブロックチェック符号検査欄306の値が「11」である場合、データがメモリ102から読み出されるときにブロックチェック符号が検査されるが、そのブロックチェック符号はデータから削除されない。
図3には、例として四つの行307から310のみを示すが、アドレス空間属性テーブル206は、さらに多くの行を含んでもよい。例えば、メモリリードに関するブロックチェック符号生成305の値が「1」である行、及び、メモリリードに関するブロックチェック符号検査306の値が「10」である行等が含まれてもよい。
以上の属性は、アドレスとコマンドを受信したシステムコントローラ109によって参照される。システムコントローラ109が実行する処理については、後で詳細に説明する(図10等参照)。
図4は、本発明の実施の形態のメモリ102のアドレス空間の説明図である。
図4は、アドレス空間401と実アドレス空間402との対応を示す。
実アドレス空間402は、メモリ102上の実際のアドレス空間である。図4の例では、実アドレス空間402として、アドレス「0x00000000」から「0x20000000」までの512MBが確保されている。
アドレス空間401に属する各アドレスは、実アドレス空間402のいずれかのアドレスと対応する。アドレス空間401は、さらに複数のアドレス空間に分割され、それぞれの空間に属する各アドレスが実アドレス空間402のアドレスに対応する。
図4の例では、アドレス空間401は四つの空間に分割され、分割された各空間が重畳して実アドレス空間402にマッピングされる。具体的には、アドレス空間401のアドレス「0x00000000」以上「0x20000000」未満の512MBのチェックなし空間403が、実アドレス空間402のアドレス「0x00000000」以上「0x20000000」未満の512MBの空間にマッピングされる。このチェックなし空間403は、図3の行307に対応する。
同様にして、アドレス空間401のアドレス「0x20000000」以上「0x40000000」未満のブロックチェック符号生成空間404、「0x40000000」以上「0x60000000」未満のブロックチェック符号検査空間(符号削除)405、及び、「0x60000000」以上「0x80000000」未満のブロックチェック符号検査空間(符号削除しない)406も、実アドレス空間402のアドレス「0x00000000」以上「0x20000000」未満の空間にマッピングされる。これらの各空間404から406は、それぞれ、図3の行308から310に対応する。
例えば、アドレス空間401上のアドレス「0x30000000」は、実アドレス空間402のアドレス「0x10000000」にマッピングされる。すなわち、アドレス空間401上のアドレス「0x30000000」にデータが書き込まれた場合、そのデータは、実際にはメモリ102上の実アドレス空間402のアドレス「0x10000000」に格納される。アドレス空間401上のアドレス「0x30000000」がブロックチェック符号生成空間404に属しているため、そのデータについてブロックチェック符号が生成され、データ及び生成されたブロックチェック符号がメモリ102に書き込まれる(図3の行308参照)。
図4には、図3の行307から行310までの四つの行に対応する四つのアドレス空間403から406を示すが、図3がさらに多くの行を含む場合、それらの行に対応するアドレス空間が追加されてもよい。
なお、図4には、アドレス空間401上の各空間403から406が重畳して実アドレス空間402にマッピングされる例を示したが、アドレス空間401と1対1に対応する実アドレス空間402が用意されてもよい。
次に、データを保護するためにデータに付加されるパリティ及びブロックチェック符号について、図5及び図6を参照して説明する。
図5は、データに付加されるパリティの説明図である。
図5は、単一のクロック505によって駆動されるデータ信号501等とパリティ信号504との関係を、横軸を時間軸とするタイミングチャートである。データ信号0からデータ信号2(501から503)は、それぞれ、1ビットのデータである。データ幅がMビット(Mは任意の自然数)である場合、データ信号は、図示しないデータ信号3からデータ信号M−1までを含む。
パリティ信号504は、各タイミングにおける全データ幅のデータ信号501等(図5の点線によって囲まれた一つの範囲)に所定の演算を実行することによって生成されるビットである。所定の演算とは、例えば、排他的論理和である。
あるクロックサイクルにおけるデータ信号501等から生成されたパリティ信号504は、その次のクロックサイクルに同期して送信される。
パリティが付加された後でいずれかのデータ信号501等のビットに誤りが発生した場合、それらのデータ信号501等と、それらに対応するパリティ信号504との間に矛盾が生じる。例えば、上記所定の演算が排他的論理和である場合、本来、各データ信号501等とパリティ信号504との排他的論理和が「0」となるべきであるが、いずれかのビットに誤りがあると、その値が「1」となる。このようにして、データ信号501等に発生した誤りが検出される。
図6は、本発明の実施の形態のブロックチェック符号の説明図である。
ブロックチェック符号は、データビットを二次元に配列し、各行(又は列)について、所定の演算を実行することによって生成される。図6の例では、Mビット×Nビットのデータビット601等が二次元に配列され、各行のビットについて排他的論理和を実行することによってブロックチェック符号613等が生成される。すなわち、ブロックチェック符号とは、M×Nビットのデータブロックに対して付加される誤り検出符号なのである。
図5に示したパリティと同様、データビット601等に誤りが発生すると、データビット601等とブロックチェック符号613等との間に矛盾が生じるため、データビット601等に発生した誤りが検出される。
次に、データの保護について、図7及び図8を参照して説明する。
図7は、図1に示す情報処理装置に従来の技術を適用した場合の各部分におけるデータ保護を説明する図である。
LAN105に接続されたホスト計算機(図示省略)がLAN105を経由してユーザデータを情報処理装置に書き込む場合を例として説明する。
ホスト計算機のアプリケーション層のユーザデータ701には、TCP(Transmission Control Protocol)層において、TCPヘッダ702及びTCPチェックサム703が付加されることによって、TCPセグメントが生成される。TCPチェックサムは、ユーザデータ701に発生した誤りを検出するための誤り検出符号である。すなわち、この時点で、ユーザデータ701はTCPチェックサムによって保護される。
次に、IP(Internet Protocol)層において、TCPセグメントにIPヘッダ704及びIPチェックサム705が付加されることによって、IPパケットが生成される。IPチェックサム705は、IPヘッダ704を保護するための誤り検出符号である。
次に、IPパケットにイーサネット(登録商標、以下同じ)ヘッダ706及びイーサネットCRC(巡回冗長検査符号)707が付加されることによって、イーサネットパケットが生成される。このイーサネットパケットが、ホスト計算機からLANを構成するケーブル(図示省略)に送出される。イーサネットCRCは、イーサネットパケットに発生した誤りを検出するための誤り検出符号である。
イーサネットパケットを受信した情報処理装置100のLANコントローラ106は、イーサネットパケットからIPパケットを取り出し、そのデータにシステムバスパリティ708を付加して、システムバス112に送出する。システムバスパリティ708は、システムバスにおいてデータに発生した誤りを検出するためのパリティである。
LANコントローラ106からIPパケットを受信したシステムコントローラ109は、システムバスパリティ708を削除して、新たにシステムコントローラパリティ709を付加する。システムコントローラパリティ709も、データに発生した誤りを検出するためのパリティである。
システムコントローラ109が受信したデータは、メモリバス110を介してメモリ102に転送され、格納される。このとき、IPパケットのデータには、新たにメモリECC(誤り訂正符号)710が付加される。さらに、OS115は、TCP及びIPの処理を実行して、IPパケットからIPヘッダ704、IPチェックサム705、TCPヘッダ702及びTCPチェックサム703を検査し、取り除く。その結果、メモリ102には、ユーザデータ701及びそれに付加されたメモリECC710が格納される。
その後、メモリ102に格納されたユーザデータ701は、メモリバス110、システムコントローラ109及びシステムバス113を介してHBA104に転送される。システムバス113において、ユーザデータ701にはシステムバスパリティ708が付加される。
HBA104は、ユーザデータ701からシステムバスパリティ708を取り除く。その結果、当該データが誤り検出符号によって全く保護されない状態となる。
HDD103は、ユーザデータ701にHDD_ECC711を付加して、ディスク(図示省略)に格納する。
このように、従来の技術によれば、HBA104からHDD103に送信されるデータが誤り検出符号によって保護されない。すなわち、HBA104とHDD103の間で発生したデータの誤りは検出されない。
図8は、本発明の実施の形態のデータの保護の説明図である。
図8において、LAN105に接続されたホスト計算機から送信されたデータがメモリ102に格納されるまでについては図7と同様であるため、説明を省略する。さらに、以下の説明においても、図7と同様の部分については詳細な説明を省略する。
OS115がメモリ102に格納されたIPパケットから各ヘッダ及びチェックサムを取り除いた後、ユーザデータにはブロックチェック符号801が付加される。このブロックチェック符号801は、図6のブロックチェック符号613から616に相当する。
システムバス113において、ユーザデータ701及びブロックチェック符号801に対してシステムバスパリティ708が付加される。
HBA104は、システムバスパリティ708を取り除く。このとき、ブロックチェック符号801はユーザデータ701に付加されたまま残る。HBA104は、ブロックチェック符号801と共にユーザデータ701をHDD103に送信する。
HDD103は、ユーザデータ701及びブロックチェック符号801にHDD_ECC711を付加して、ディスクに格納する。
このように、本実施の形態によれば、ホスト計算機からLAN105を経由してHDD103に書き込まれるユーザデータ701は、経路上のどの地点においても、チェックサム、CRC、パリティ、ECC及びブロックチェック符号801のうち少なくとも一つの誤り検出符号によって保護される。
ただし、メモリ102には、HDD103に書き込まれるべきユーザデータのほかに、プログラムのデータも格納される。そして、プログラムのデータは、ブロックチェック符号801を付加して保護する必要がない。本実施の形態によれば、後で詳細に説明するように、保護する必要があるデータにのみブロックチェック符号801が付加される。
次に、本実施の形態の情報処理装置100が実行する処理について、フローチャートを参照して説明する。
図9は、本発明の実施の形態のLANコントローラ106がデータを受信したときに実行する処理を示すフローチャートである。
処理が開始されて(901)、LANコントローラ106がイーサネットパケットを受信すると(902)、LANコントローラ106は、プロセッサ101にイーサネットパケット受信の報告を送信する(903)。
この報告を受信したプロセッサ103は、LANコントローラ106に、受信したイーサネットパケットの転送先となるメモリ102のアドレスを指示する(904)。具体的には、プロセッサ101は、アドレス空間401に属するいずれかのアドレスを選択して、そのアドレスをLANコントローラ106に送信する。
例えば、受信したイーサネットパケットがプログラムのデータからなる場合、そのデータにブロックチェック符号801を付加する必要がない。この場合、プロセッサ101は、チェックなし空間403内のいずれかのアドレスを選択して送信する。一方、受信したイーサネットパケットがプログラム以外のユーザデータからなる場合、そのデータにブロックチェック符号801を付加する必要がある。この場合、プロセッサ101は、ブロックチェック符号生成空間404内のアドレスを選択して送信する。
同様にして、データに付加されたブロックチェック符号801を検査して、その後そのブロックチェック符号801を削除する必要がある場合、プロセッサ101は、ブロックチェック符号検査空間(符号削除)405内のアドレスを選択して送信する。また、データに付加されたブロックチェック符号801を検査して、その後そのブロックチェック符号801を残す場合、プロセッサ101は、ブロックチェック符号検査空間(符号削除しない)406内のアドレスを選択して送信する。
プロセッサ101は、ステップ904におけるアドレスの選択をするために、受信したイーサネットパケットに含まれるデータの種類を判定する必要がある。
例えば、LANコントローラ106がパケットを解析して、そのパケットに含まれるデータの種類に関する情報をプロセッサ101に送信し、プロセッサ101がその情報に基づいてデータの種類を判定してもよい。
あるいは、プロセッサ101は、全てのデータを一旦チェックなし空間403に転送するように指示してもよい。この場合、プロセッサ101は、パケット解析を実行してデータの種類を判定し、その判定の結果に従ってデータをいずれかの空間に移動してもよい。
あるいは、プロセッサ101は、データが転送される前にパケット解析を実行してデータの種類を判定し、その判定の結果に従って、転送先のアドレスを指示してもよい。
あるいは、LANコントローラ106において使用される通信プロトコルが、データの種類を区別する属性情報を含み、プロセッサ101はその属性情報に従って転送先のアドレスを指示してもよい。
次に、LANコントローラ106は、ステップ904において指示されたアドレス空間に属するアドレスへパケットを送信する(905)。このパケットを受信したシステムコントローラ109は、メモリ102における指示されたアドレスに当該パケットを書き込む。このとき、図3及び図4に示すように、指示されたアドレスが属するアドレス空間の属性に従って、システムコントローラ109は、ブロックチェック符号の生成又は検査を実行する。
次に、LANコントローラ106は、データ転送完了の報告をプロセッサ101に送信する(906)。
以上で、処理が終了する(907)。
図10は、本発明の実施の形態のシステムコントローラ109がデータを転送する時に実行する処理を示すフローチャートである。
処理が開始されて(1001)、LANコントローラ106又はHBA104からアドレス及びコマンドを受信すると(1002)、システムコントローラ109は、コマンドの種類を判定する(1003)。ここで、アドレスとは、プロセッサ101がLANコントローラ106又はHBA104に指示したメモリ102のアドレス空間401内のアドレスである。コマンドとは、メモリ102からデータを読み出すためのリードコマンド、又は、メモリ102にデータを書き込むためのライトコマンドである。
ステップ1003において、システムコントローラ109が、コマンドがメモリ102へのリードコマンドであると判定した場合、システムコントローラ109は、受信したアドレスとアドレス空間属性テーブル206のアドレスとを比較する(1004)。
次に、システムコントローラ109は、受信したアドレスを、そのアドレスにマッピングされた実アドレス空間402のアドレスに変換する(1005)。
次に、システムコントローラ109は、アドレス空間401の属性を判定する(1006)。具体的には、システムコントローラ109は、ステップ1004で実行された比較に基づいて、LANコントローラ106等から受信したアドレスがどの属性を付与されたアドレス空間401に属するかを判定する。システムコントローラ109は、この判定の結果に基づいて、ブロックチェック符号801の生成又は検査を実行するか否かを判定する。
ステップ1006において、システムコントローラ109が、受信したアドレスがチェックなし空間403に属すると判定した場合、ブロックチェック符号801を生成又は検査する必要がない。この場合、システムコントローラ109は、ステップ1005において変換された実アドレス空間402のアドレスに格納されたメモリ102内のデータをそのままシステムバス112又は113に送出する(1007)。
ステップ1006において、システムコントローラ109が、受信したアドレスがブロックチェック符号生成空間404に属すると判定された場合、ブロックチェック符号801を生成する必要がある。この場合、システムコントローラ109は、ステップ1005において変換された実アドレス空間402のアドレスに格納されたメモリ102内のデータを読み出す。そして、システムコントローラ109は、当該データを保護するためのブロックチェック符号801を生成し、当該データ及び生成されたブロックチェック符号801をシステムバス112又は113に送出する(1008)。
ステップ1006において、システムコントローラ109が、受信したアドレスがブロックチェック符号検査空間(符号削除)405又はブロックチェック符号検査空間(符号削除しない)406に属すると判定した場合、ブロックチェック符号801を検査する必要がある。この場合、システムコントローラ109は、ステップ1005において変換された実アドレス空間402のアドレスに格納されたメモリ102内のデータを読み出す。そして、システムコントローラ109は、当該データに付加されたブロックチェック符号801を検査し、当該データをシステムバス112又は113に送出する(1009)。
なお、システムコントローラ109が受信したアドレスが、ブロックチェック符号検査空間(符号削除)405に属する場合、システムコントローラ109は、ステップ1009において、検査が終了したブロックチェック符号801をデータから削除し、データのみをシステムバス112又は113に送出する。一方、システムコントローラ109が受信したアドレスがブロックチェック符号検査空間(符号削除しない)406に属する場合、システムコントローラ109は、ステップ1009において、検査が終了したブロックチェック符号801をデータから削除せず、データ及びブロックチェック符号801をシステムバス112又は113に送出する。
ステップ1003において、システムコントローラ109が、コマンドがメモリ102へのライトコマンドであると判定した場合、システムコントローラ109は、受信したアドレスとアドレス空間属性テーブル206のアドレスとを比較する(1010)。
次に、システムコントローラ109は、受信したアドレスを、そのアドレスにマッピングされた実アドレス空間402のアドレスに変換する(1011)。
次に、システムコントローラ109は、ステップ1006と同様、ステップ1010の比較に基づいて、アドレス空間401の属性を判定する(1012)。システムコントローラ109は、この判定の結果に基づいて、ブロックチェック符号801の生成又は検査を実行するか否かを判定する。
ステップ1012において、システムコントローラ109が、受信したアドレスがチェックなし空間403に属すると判定した場合、ブロックチェック符号801を生成又は検査する必要がない。この場合、システムコントローラ109は、メモリ102に、データをそのまま書き込む(1013)。
ステップ1006において、システムコントローラ109が、受信したアドレスがブロックチェック符号生成空間404に属すると判定した場合、ブロックチェック符号801を生成する必要がある。この場合、システムコントローラ109は、データを保護するためのブロックチェック符号801を生成し、そのデータ及び生成されたブロックチェック符号801をメモリ102に書き込む(1014)。
ステップ1006において、システムコントローラ109が、受信したアドレスがブロックチェック符号検査空間(符号削除)405又はブロックチェック符号検査空間(符号削除しない)406に属すると判定した場合、ブロックチェック符号801を検査する必要がある。この場合、システムコントローラ109は、データに付加されたブロックチェック符号801を検査し、そのデータをメモリ102に書き込む(1015)。
なお、受信したアドレスがブロックチェック符号検査空間(符号削除)405に属する場合、システムコントローラ109は、ステップ1015において、検査が終了したブロックチェック符号801をデータから削除し、データのみをメモリ102に書き込む。一方、受信したアドレスがブロックチェック符号検査空間(符号削除しない)406に属する場合、システムコントローラ109は、ステップ1015において、検査が終了したブロックチェック符号801をデータから削除せず、データ及びブロックチェック符号801をメモリ102に書き込む。
ステップ1013、1014及び1015において、データ等は、ステップ1005において変換された実アドレス空間402のアドレスに対応するメモリ102上のアドレスに書き込まれる。
ステップ1007、1008、1009、1013、1014又は1015が終了すると、システムコントローラ109は、処理を終了する(1016)。
図11は、本発明の実施の形態の情報処理装置100が図9に続いてOS115がホスト計算機から受信したデータをHDDに転送する際に実行する処理を示すフローチャートである。
OS115は、メモリ102に格納され、プロセッサ101によって実行されるプログラムである。このため、以下の説明においてOS115が実行する処理は、実際にはプロセッサ101によって実行される。
処理が開始されて(1101)、LANコントローラ106からパケット受信の報告(図9のステップ903参照)を受信すると(1102)、OS115は、受信したパケットをメモリ102のチェックなし空間403に転送することをLANコントローラ106に指示する(1103)。このとき、OS115は、チェックなし空間403内のアドレスをLANコントローラ106に送信する。LANコントローラ106は、受信したパケットをメモリ102のチェックなし空間403に転送する。このとき、システムコントローラ109は、受信したパケットをそのままメモリ102に書き込む(図10のステップ1013参照)。一般に、OS115は、受信データがユーザデータであるかどうかを判断できないので、本ステップではチェックなし空間403への転送を指示するよう構成されているものとする。
次に、OS115は、受信したパケットのメモリ102への転送が完了したことを確認する(1104)。本ステップは、OS115がLANコントローラ106の報告を確認することで実現される。
次に、OS115は、IPチェックサム705及びTCPチェックサム703を検査する(1105)。
次に、OS115は、ファイルシステム処理を実行する(1106)。ファイルシステム処理によって、パケットが、ファイルのデータとしてHDD103に保存できる状態に変換される。図11は、変換されたデータがプログラム以外のユーザデータである場合、言い換えると、当該データを誤り検出符号によって保護する必要がある場合の処理を示す。
次に、OS115は、変換されたデータをチェックなし空間403からブロックチェック符号生成空間404にコピーする(1107)。このコピー動作を具体的に説明する。プロセッサ101は、当該データのアドレス(チェックなし空間403に属する)とリードコマンドをシステムコントローラ109に発行する。前記アドレスを受信したシステムコントローラ109は、当該データをプロセッサ101へ転送する。プロセッサ101は、当該データをブロックチェック符号生成空間404に書き込むため、ライトコマンドとアドレス(ブロックチェック符号生成空間404に属する)をシステムコントローラ109に発行する。プロセッサ101はさらに当該データをシステムコントローラ109に送信する。前記アドレスと前記ライトコマンドを受信したシステムコントローラ109は、当該データをプロセッサから受信し、当該データを保護するためのブロックチェック符号を生成し、生成したブロックチェック符号801をそのデータと共にメモリ102に書き込む(図10のステップ1014参照)。
次に、OS115は、HBA104に、コピーされたデータをチェックなし空間から読み出してHDD103に転送することを指示する(1108)。ステップ1108において、チェックなし空間とは、図3におけるブロックチェック符号生成305の値が「0」であり、かつ、ブロックチェック符号検査306の値が「00」である行に対応するアドレス空間である。この指示を受信したHBA104は、メモリ102のチェックなし空間からデータ及びそのデータに付加されたブロックチェック符号801を読み出し、それらをHDD103に転送する。これらのデータ及びブロックチェック符号801は、チェックなし空間から読み出されるため、そのブロックチェック符号801が検査されることも、さらにブロックチェック符号が生成されることもなく、HDD103に転送される(図10のステップ1007参照)。転送されたデータ及びブロックチェック符号は、共に、HDD103に格納される。転送が完了すると、HBA104は、転送完了報告をOS115に送信する(図12参照)。
OS115は、データの転送完了報告をHBA104から受信すると(1109)、処理を終了する(1110)。
ここで、受信したパケットのデータがステップ1103においてチェックなし空間403のアドレス「0x00000000」に書き込まれ、そのデータがステップ1107においてブロックチェック符号生成空間404のアドレス「0x30000000」にコピーされ、そのコピーされたデータがステップ1108においてチェックなし空間のアドレス「0x10000000」からHDD103に転送される場合を例として説明する。
この場合、実際には、受信したパケットのデータがステップ1103において実アドレス空間402のアドレス「0x00000000」に格納される。そして、ステップ1107において、実アドレス空間402のアドレス「0x00000000」からデータが読み出され、ブロックチェック符号801が生成され、そのデータ及びブロックチェック符号801が実アドレス空間402のアドレス「0x10000000」に格納される。そして、ステップ1108において、実アドレス空間402のアドレス「0x10000000」からデータ及びブロックチェック符号801が読み出され、それらがHDD103に転送される。
図12は、本発明の実施の形態の情報処理装置100において、HBA104がHDD103にデータを転送する処理を示すフローチャートである。
処理が開始されて(1201)、OS115からデータ転送コマンドを受信すると(1202)、HBA104は、受信したデータ転送コマンドに含まれるメモリアドレスからデータを読み出す(1203)。ステップ1202において受信したコマンドは、図11のステップ1108において送信されたものである。このとき、システムコントローラ109は、指示されたアドレスが属するアドレス空間401内の空間に応じて、ブロックチェック符号の生成又は検査を実行するか否かを判定する(図10のステップ1006から1009参照)。
次に、HBA104は、読み出したデータをHDD103に転送する(1204)。
次に、HBA104は、データ転送の完了をOS115に報告して(1205)、処理を終了する(1206)。
図13は、本発明の実施の形態の情報処理装置100がHDD103からデータを読み出し、LAN105を介してホスト計算機にデータを送信するときにOS115が実行する処理を示すフローチャートである。
処理が開始すると(1301)、OS115は、データをメモリ102のブロックチェック符号検査空間(符号削除)405に転送することをHBA104に指示する(1302)。
ステップ1302の指示を受信したHBA104は、ブロックチェック符号検査空間(符号削除)405へ指示されたデータを書き込む(1303)。このとき、システムコントローラ109は、データに付加されたブロックチェック符号801を検査し、そのブロックチェック符号801をデータから削除した後、データのみをメモリ102に書き込む(図10のステップ1014参照)。
OS115は、HBA104からデータ転送の完了報告を受信する(1304)。
次に、OS115は、ステップ1303におけるブロックチェック符号801の検査の結果、誤りがあるか否かを判定する(1305)。
ステップ1305において誤りがあると判定された場合、HBA104から転送されたデータが誤りを含んでいる。この場合、OS115は、障害処理を実行して(1310)、処理を終了する(1311)。障害処理については、後で詳細に説明する(図17参照)。
ステップ1305において誤りがないと判定された場合、HBA104から転送されたデータは誤りを含んでいない。この場合、OS115は、ファイルシステム処理を実行する(1306)。このファイルシステム処理は、図11のステップ1106において実行される処理の逆の処理である。
次に、OS115は、ファイルシステム処理されたデータにTCPチェックサム703及びIPチェックサム705を付加する(1307)。
次に、OS115は、LANコントローラ105に、チェックサムが付加されたデータをチェックなし空間から読み出すことを指示する(1308)。ステップ1308において、チェックなし空間とは、図3におけるブロックチェック符号生成305の値が「0」であり、かつ、ブロックチェック符号検査306の値が「00」である行に対応するアドレス空間である。この指示を受信したLANコントローラ105は、指示されたデータをチェックなし空間から読み出して、LAN106を介してホスト計算機に転送する。
OS115は、LANコントローラ105からデータ転送完了報告を受信すると(1309)、処理を終了する(1311)。
図14は、本発明の実施の形態の情報処理装置100がLAN105を介してホスト計算機にデータを送信するときにHBA104が実行する処理を示すフローチャートである。
処理が開始して(1401)、OS115からデータ転送コマンドを受信すると(1402)、HBA104は、コマンドによって指示されたデータをHDD103から読み出す(1403)。
次に、HBA104は、読み出したデータを、コマンドによって指示されたメモリ102のアドレスに転送する(1404)。このとき、システムコントローラ109は、指示されたアドレスが属するアドレス空間401内の空間に応じて、ブロックチェック符号の生成又は検査を実行するか否かを判定する(図10のステップ1012から1015参照)。
次に、HBA104は、データ転送完了をOS115に送信して(1405)、処理を終了する(1406)。
以上の説明において、ブロックチェック符号801は、HBA104がメモリ102とHDD103との間で転送するデータにのみ付加され、LAN105を介して情報処理装置100とホスト計算機との間で転送されるデータ(パケット)には付加されない。しかし、ホスト計算機が本実施の形態のブロックチェック符号801の生成及び検査をする機能を備える場合、LAN上で実行されるデータ転送にも本実施の形態を適用することができる。
図15は、本発明の実施の形態の情報処理装置100が、ブロックチェック符号801が付加されたデータを、LAN105を介してホスト計算機に送信するときにOS115が実行する処理を示すフローチャートである。
処理が開始されると(1501)、OS115は、メモリ102に格納されたデータにTCPチェックサム703及びIPチェックサム705を付加する(1502)。
次に、OS115は、チェックサムが付加されたデータをブロックチェック符号生成空間から読み出すことをLANコントローラ106に指示する(1503)。ステップ1503において、ブロックチェック符号生成空間とは、図3におけるブロックチェック符号生成305の値が「1」であり、かつ、ブロックチェック符号検査306の値が「00」である行(図示省略)に対応するアドレス空間である。LANコントローラ106は、指示されたデータをブロックチェック符号生成空間から読み出す。このとき、システムコントローラ109は、読み出されたデータを保護するためのブロックチェック符号801を生成し、そのデータ及びブロックチェック符号801をシステムバス112に送出する(図10のステップ1008参照)。LANコントローラ106は、読み出されたデータ及びブロックチェック符号801を、LAN105を介してホスト計算機に転送し、その転送が完了すると、転送完了報告をOS115に送信する。
OS115は、LANコントローラ106から転送完了報告を受信すると(1504)、処理を終了する(1505)。
図16は、本発明の実施の形態の情報処理装置100が、ブロックチェック符号801が付加されたデータを、LAN105を介してホスト計算機から受信したときにOS115が実行する処理を示すフローチャートである。
処理が開始され(1601)、LANコントローラ106からパケット受信報告を受信すると(1602)、OS115は、受信したパケットをメモリ102のブロックチェック符号検査空間(符号削除)405に転送することをLANコントローラ106に指示する(1603)。LANコントローラ106は、メモリ102のブロックチェック符号検査空間(符号削除)405を対象として、受信したパケットを書き込む。このとき、システムコントローラ109は、受信したパケットに付加されたブロックチェック符号801を検査し、そのパケットからブロックチェック符号を削除して、パケットのみをメモリ102に書き込む(図10のステップ1015参照)。
次に、OS115は、受信したパケットのメモリ102への転送が完了したことを確認する(1604)。
次に、OS115は、ステップ1603におけるブロックチェック符号801の検査の結果、異常があったか否かを判定する(1605)。
ステップ1605において異常があったと判定された場合、受信したパケットは誤りを含んでいる。この場合、OS115は、障害処理を実行して(1607)、処理を終了する(1608)。
一方、ステップ1605において異常がなかったと判定された場合、受信したパケットは誤りを含んでいない。この場合、OS115は、IPチェックサム705及びTCPチェックサム703を検査して(1606)、処理を終了する(1608)。
図17は、本発明の実施の形態のOS115が実行する障害処理を示すフローチャートである。
図17の障害処理は、ブロックチェック符号801の検査の結果、誤りが検出された場合に実行される(図13のステップ1310及び図16のステップ1607参照)。
誤りが検出されて障害処理が開始されると(1701)、OS115は、コンソール(図示省略)に障害情報を出力する(1702)。コンソールは、情報処理装置100が備え、システム管理者に対して情報処理装置100のハードウェア構成や障害の有無等の状態を表示したり、システム管理者が情報処理装置100に命令を入力するための入出力装置である。
次に、OS115は、誤りが検出された転送処理(例えば、図13又は図16に示す処理)を再度実行することをLANコントローラ106又はHBA104に指示する(1703)。例えば、雑音等の一時的な外乱によって誤りが発生した場合、再度実行することによって誤りが解消する場合があるためである。
次に、OS115は、ステップ1703において再度実行された転送処理の結果、誤りが検出されたか否かを判定する(1704)。
ステップ1704において誤りが検出されなかったと判定された場合、OS115は、コンソールに障害情報を出力して(1705)、障害処理を終了する(1710)。
一方、ステップ1704において誤りが検出されたと判定された場合、OS115は、リトライ回数が所定のリトライ閾値を超えたか否かを判定する(1706)。リトライ閾値とは、ステップ1703が実行された回数である。OS115は、例えば、メモリ102内の所定の領域にリトライ回数を格納してもよい。リトライ閾値とは、リトライ回数の閾値、言い換えると、許容されるリトライ回数である。システム管理者が予めリトライ閾値を定めてもよい。OS115は、メモリ102内の所定の領域にリトライ閾値を格納してもよい。
ステップ1706において、リトライ回数がリトライ閾値を超えていないと判定された場合、OS115は、リトライ回数を1増加させて(1707)、ステップ1702に戻る。なお、処理を再度実行するたびにコンソールに障害情報を表示する(1702)必要がない場合、ステップ1707の後、ステップ1703に戻ってもよい。
一方、ステップ1706において、リトライ回数がリトライ閾値を超えたと判定された場合、恒久的な障害が発生している可能性が高い。この場合、誤り発生の原因と考えられる部位をそれ以上使用しないことが望ましい。このため、OS115は、誤りが発生した処理に関連する部位を障害部位として閉塞する(1708)。そして、OS115は、コンソールに障害情報を出力して(1709)、障害処理を終了する(1710)。情報処理装置100が障害部位を特定できなかった場合には、情報処理装置100はコンソール(図示せず)に表示して運転を停止する。
以上の本発明の実施の形態によれば、システムコントローラ109は、LANコントローラ106又はHBA104は、OS115によって指示されたメモリ102上のアドレスを対象としてデータの転送(すなわち、書き込み又は読み出し)を実行する。システムコントローラ109は、そのアドレスに従って、データを保護するためのブロックチェック符号の生成又は検査を実行する。その結果、データは、HBA104からHDD103に至る経路においてもブロックチェック符号によって保護される。このブロックチェック符号の生成及び検査は、システムコントローラ109によって実行されるため、本実施の形態を実現することによってプロセッサ101の負荷が増大させず情報処理装置の性能を低下させることはない。また、従来と同様に、データの転送はLANコントローラ106及びHBA104によって制御されるため、本実施の形態は従来のシステムとの親和性が高い。また、メモリに対する書き込み又は読み出しのアドレスを選択することによって、ブロックチェック符号の生成又は検査をするか否かを選択することができる。
本発明の実施の形態の情報処理装置の構成を示すブロック図である。 本発明の実施の形態のシステムコントローラの構成を示すブロック図である。 本発明の実施の形態のアドレス空間属性テーブルの説明図である。 本発明の実施の形態のメモリのアドレス空間の説明図である。 データに付加されるパリティの説明図である。 本発明の実施の形態のブロックチェック符号の説明図である。 従来の技術によるデータの保護の説明図である。 本発明の実施の形態のデータの保護の説明図である。 本発明の実施の形態のLANコントローラがデータを受信したときに実行する処理を示すフローチャートである。 本発明の実施の形態のシステムコントローラがデータを転送するときに実行する処理を示すフローチャートである。 本発明の実施の形態の情報処理装置がLANを介してホスト計算機からデータを受信したときにOSが実行する処理を示すフローチャートである。 本発明の実施の形態の情報処理装置がLANを介してホスト計算機からデータを受信したときにHBAが実行する処理を示すフローチャートである。 本発明の実施の形態の情報処理装置がLANを介してホスト計算機にデータを送信するときにOSが実行する処理を示すフローチャートである。 本発明の実施の形態の情報処理装置がLANを介してホスト計算機にデータを送信するときにHBAが実行する処理を示すフローチャートである。 本発明の実施の形態の情報処理装置が、ブロックチェック符号が付加されたデータを、LANを介してホスト計算機に送信するときにOSが実行する処理を示すフローチャートである。 本発明の実施の形態の情報処理装置が、ブロックチェック符号が付加されたデータを、LANを介してホスト計算機から受信したときにOSが実行する処理を示すフローチャートである。 本発明の実施の形態のOSが実行する障害処理を示すフローチャートである。
符号の説明
100 情報処理装置
101 プロセッサ
102 メモリ
103 ハードディスクドライブ(HDD)
104 ホストバスアダプタ(HBA)
105 ローカルエリアネットワーク(LAN)
106 LANコントローラ
107 起動プログラム
108 フラッシュメモリ
109 システムコントローラ
110 メモリバス
111 プロセッサバス
112、113 システムバス
114 フラッシュメモリバス
115 オペレーティングシステム(OS)
201 プロセッサバスインタフェースユニット
202 メモリ制御ユニット
203 システムバス制御ユニット
204 フラッシュメモリバス制御ユニット
205 データルーティング制御ユニット
206 アドレス空間属性テーブル
401 アドレス空間
402 実アドレス空間
403 チェックなし空間
404 ブロックチェック符号生成空間
405 ブロックチェック符号検査空間(符号削除)
406 ブロックチェック符号検査空間(符号削除しない)
801 ブロックチェック符号

Claims (12)

  1. 情報処理装置であって、
    プロセッサと、
    前記プロセッサが接続されるプロセッサバスと、
    メモリと、
    前記メモリが接続されるメモリバスと、
    少なくとも1つのインタフェース制御部と、
    前記インタフェース制御部が接続されるシステムバスと、
    前記プロセッサバス、前記メモリバス及び前記システムバスに接続され、前記プロセッサ、前記メモリ及び前記インタフェース制御部の間の通信を制御するシステム制御部と、を備え、
    前記メモリの各アドレスは、前記システム制御部が管理する複数のアドレス空間に属する一つ以上のアドレスに対応し、
    前記複数のアドレス空間は、少なくとも、第1アドレス空間、第2アドレス空間及び第3アドレス空間を含み、
    前記プロセッサは、
    前記インタフェース制御部が前記情報処理装置の外部からデータを受信したとき、前記第1アドレス空間に属するアドレスを選択して、当該選択されたアドレスを前記インタフェース制御部に送信し、
    当該選択されたアドレスに格納されたデータを解析して当該データの種類を判定し、
    当該判定の結果に基づいて、当該データのコピー先のアドレスを選択し、
    当該選択されたデータのコピー先のアドレスに当該データを書き込むことを前記システム制御部に指示し、
    前記インタフェース制御部は、前記プロセッサから受信したアドレスを対象として前記受信したデータの書き込み要求を前記システム制御部に送信し、
    前記システム制御部は、
    前記第1アドレス空間に属するアドレスを対象とするデータの書き込み要求を受信した場合、当該データを前記メモリに書き込み、
    前記第2アドレス空間に属するアドレスを対象とするデータの書き込み要求を受信した場合、当該データの誤り検出符号を生成し、生成された誤り検出符号を当該データに付加して前記メモリに書き込み、
    前記第3アドレス空間に属するアドレスを対象とするデータの書き込み要求を受信した場合、当該データに付加された誤り検出符号を検査し、当該データを前記メモリに書き込むことを特徴とする情報処理装置。
  2. 前記プロセッサは、前記インタフェース制御部が前記情報処理装置の外部から受信した前記データの種類に基づいて、前記アドレスを選択することを特徴とする請求項1に記載の情報処理装置。
  3. 前記情報処理装置は、一つ以上のディスクドライブを備え、
    前記複数のアドレス空間は、さらに、第4アドレス空間を含み、
    前記一つ以上のインタフェース制御部は、前記一つ以上のディスクドライブと接続された第1のインタフェース制御部を含み、
    前記システム制御部は、前記第4アドレス空間に属するアドレスを対象とするデータの読み出し要求を受信した場合、当該データを前記メモリから読み出し、
    前記プロセッサは、
    前記選択されたアドレスに格納されたデータを保護する必要がある場合、当該選択されたアドレスに格納されたデータを前記第2アドレス空間に属するアドレスに書き込むことを前記システム制御部に指示し、
    当該第2アドレス空間に属するアドレスに書き込まれたデータを前記第4アドレス空間から読み出して前記ディスクドライブに転送することを前記第1のインタフェース制御部に指示することを特徴とする請求項1に記載の情報処理装置。
  4. 前記一つ以上のインタフェース制御部は、ディスクドライブと接続された第1のインタフェース制御部を含み、
    前記プロセッサは、
    前記第1のインタフェース制御部に、前記ディスクドライブから読み出されたデータを前記メモリの前記第3アドレス空間に属するアドレスに書き込むことを指示し、
    当該書き込まれたデータに付加された誤り検出符号の検査の結果を判定し、
    当該書き込まれたデータに誤りがあると判定された場合、障害情報を出力し、再度前記書き込みを実行することを前記第1のインタフェース制御部に指示することを特徴とする請求項1に記載の情報処理装置。
  5. 前記一つ以上のインタフェース制御部は、ネットワーク通信を行う第2のインタフェース制御部を含み、
    前記第2のインタフェース制御部は、前記システム制御部によって前記誤り検出符号を付加されたデータを前記第2のインタフェース制御部に接続されたネットワークに送信することを特徴とする請求項1に記載の情報処理装置。
  6. 前記情報処理装置は、一つ以上のディスクドライブを備え、
    前記一つ以上のインタフェース制御部は、前記一つ以上のディスクドライブに接続された第1のインタフェース制御部と、ネットワーク通信を行う第2のインタフェース制御部と、を含み、
    前記システム制御部は、
    前記第2のインタフェース制御部が受信したデータ、及び、前記ネットワークにおいて使用される通信プロトコルによって当該データに付加された第2の誤り検出符号又は誤り訂正符号を前記メモリに格納し、
    前記メモリに格納されたデータから前記第2の誤り検出符号又は誤り訂正符号を削除し、当該データに前記誤り検出符号を付加し、
    前記第1のインタフェース制御部は、前記データ及び前記誤り検出符号を前記メモリから前記ディスクドライブに転送することを特徴とする請求項1に記載の情報処理装置。
  7. 前記情報処理装置は、前記インタフェース制御部として、
    記憶媒体に接続される第1のインタフェース制御部と、
    前記情報処理装置の外部の通信ネットワークに接続される第2のインタフェース制御部と、を備えることを特徴とする請求項1に記載の情報処理装置。
  8. 情報処理装置におけるデータ転送方法であって、
    前記情報処理装置は、
    プロセッサと、
    メモリと、
    前記情報処理装置の外部との通信を行う少なくとも1つのインタフェース制御部と、
    前記プロセッサ、前記メモリ及び前記インタフェース制御部を結合し、前記プロセッサ、前記メモリ及び前記インタフェース制御部の間の通信を制御するシステム制御部と、を備え、
    前記メモリの各アドレスは、前記システム制御部が管理する複数のアドレス空間に属する一つ以上のアドレスに対応し、
    前記複数のアドレス空間は、第1アドレス空間、第2アドレス空間及び第3アドレス空間を含み、
    前記プロセッサは、
    前記インタフェース制御部がデータを受信したとき、前記第1アドレス空間に属するアドレスを選択して、当該選択されたアドレスを前記インタフェース制御部に送信し、
    当該選択されたアドレスに格納されたデータを解析して当該データの種類を判定し、
    当該判定の結果に基づいて、当該データのコピー先のアドレスを選択し、
    当該選択されたデータのコピー先のアドレスに当該データを書き込むことを前記システム制御部に指示し、
    前記インタフェース制御部は、前記プロセッサから受信したアドレスを対象として前記受信したデータの書き込み要求を送信し、
    前記システム制御部は、
    前記第1アドレス空間に属するアドレスを対象とするデータの書き込み要求を受信した場合、当該データを前記メモリに書き込み、
    前記第2アドレス空間に属するアドレスを対象とするデータの書き込み要求を受信した場合、当該データを保護するための誤り検出符号を生成し、生成された誤り検出符号を当該データに付加して前記メモリに書き込み、
    前記第3アドレス空間に属するアドレスを対象とするデータの書き込み要求を受信した場合、当該データに付加された誤り検出符号を検査し、当該データを前記メモリに書き込むことを特徴とする方法。
  9. 前記プロセッサは、前記インタフェース制御部が受信した前記データの種類に基づいて、前記アドレスを選択することを特徴とする請求項8に記載の方法。
  10. 前記プロセッサは、
    ディスクドライブに接続された第1のインタフェース制御部に、前記ディスクドライブから読み出されたデータを前記メモリの前記第3アドレス空間に属するアドレスに書き込むことを指示し、
    書き込まれたデータに付加された誤り検出符号の検査の結果を判定し、
    当該書き込まれたデータに誤りがあると判定された場合、障害情報を出力し、再度前記書き込みを実行することを前記第1のインタフェースに指示することを特徴とする請求項8に記載の方法。
  11. ネットワークと接続された第2のインタフェース制御部は、前記システム制御部によって前記誤り検出符号を付加されたデータを前記ネットワークに送信することを特徴とする請求項8に記載の方法。
  12. 前記情報処理装置は、一つ以上のディスクドライブを備え、
    前記一つ以上のインタフェース制御部は、前記一つ以上のディスクドライブに接続された第1のインタフェース制御部と、ネットワーク通信を行う第2のインタフェース制御部と、を含み、
    前記システム制御部は、
    前記第2のインタフェース制御部が受信したデータと、前記通信ネットワークにおいて使用される通信プロトコルによって当該データに付加された第2の誤り検出符号又は誤り訂正符号とを前記メモリに格納し、
    前記メモリに格納されたデータから前記第2の誤り検出符号又は誤り訂正符号を削除し、当該データに前記誤り検出符号を付加し、
    前記第1のインタフェース制御部は、前記データ及び前記誤り検出符号を前記メモリから前記ディスクドライブに転送することを特徴とする請求項8に記載の方法。
JP2006026670A 2006-02-03 2006-02-03 データ信頼性向上方法及びその方法を用いた情報処理装置 Expired - Fee Related JP4852315B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2006026670A JP4852315B2 (ja) 2006-02-03 2006-02-03 データ信頼性向上方法及びその方法を用いた情報処理装置
US11/386,939 US7725805B2 (en) 2006-02-03 2006-03-23 Method and information apparatus for improving data reliability

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2006026670A JP4852315B2 (ja) 2006-02-03 2006-02-03 データ信頼性向上方法及びその方法を用いた情報処理装置

Publications (3)

Publication Number Publication Date
JP2007207062A JP2007207062A (ja) 2007-08-16
JP2007207062A5 JP2007207062A5 (ja) 2008-10-16
JP4852315B2 true JP4852315B2 (ja) 2012-01-11

Family

ID=38335391

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2006026670A Expired - Fee Related JP4852315B2 (ja) 2006-02-03 2006-02-03 データ信頼性向上方法及びその方法を用いた情報処理装置

Country Status (2)

Country Link
US (1) US7725805B2 (ja)
JP (1) JP4852315B2 (ja)

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7539924B1 (en) 2005-11-15 2009-05-26 Western Digital Technologies, Inc. Disk drive implementing data path protection by encoding large host blocks into sub blocks
US7702881B2 (en) * 2007-01-31 2010-04-20 Freescale Semiconductor, Inc. Method and system for data transfers across different address spaces
JP5143601B2 (ja) * 2008-03-24 2013-02-13 株式会社日立製作所 情報処理装置と情報処理方法およびストレージシステム
JP2010079686A (ja) * 2008-09-26 2010-04-08 Nec Electronics Corp データ処理装置、メモリ制御回路およびメモリ制御方法
KR20100041313A (ko) * 2008-10-14 2010-04-22 삼성전자주식회사 데이터 저장 방법, 데이터 저장 장치 및 그 시스템
JP2010262715A (ja) * 2009-05-11 2010-11-18 Renesas Electronics Corp メモリ検査システム及びメモリ検査方法
US20110040924A1 (en) * 2009-08-11 2011-02-17 Selinger Robert D Controller and Method for Detecting a Transmission Error Over a NAND Interface Using Error Detection Code
US8397107B1 (en) 2009-12-11 2013-03-12 Western Digital Technologies, Inc. Data storage device employing data path protection using both LBA and PBA
JP2011210277A (ja) * 2011-06-20 2011-10-20 Toshiba Corp 情報処理装置および情報処理方法
US8671250B2 (en) 2011-12-15 2014-03-11 Western Digital Technologies, Inc. Data storage device generating redundancy for data path protection of a parity sector
JP2019101446A (ja) * 2017-11-28 2019-06-24 ルネサスエレクトロニクス株式会社 半導体装置及びそれを備えた半導体システム
CN116703651B (zh) * 2023-08-08 2023-11-14 成都秦川物联网科技股份有限公司 一种智慧燃气数据中心运行管理方法、物联网系统和介质

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH04127250A (ja) * 1990-09-19 1992-04-28 Hitachi Ltd バスパリティ制御機構をもつマイクロプロセサ
JPH06348516A (ja) * 1993-06-08 1994-12-22 Hitachi Ltd 情報処理装置
US5581715A (en) * 1994-06-22 1996-12-03 Oak Technologies, Inc. IDE/ATA CD drive controller having a digital signal processor interface, dynamic random access memory, data error detection and correction, and a host interface
JPH10289164A (ja) * 1997-04-16 1998-10-27 Mitsubishi Electric Corp メモリ制御方法およびメモリ制御装置
JP2001306411A (ja) * 2000-04-26 2001-11-02 Nidec Copal Corp 情報処理装置及び情報処理方法
US6609181B2 (en) * 2000-05-11 2003-08-19 Goodrich Corporation Memory management unit with programmable EDAC descriptors
US6928607B2 (en) 2000-10-19 2005-08-09 Oracle International Corporation Data integrity verification mechanism
US6785077B2 (en) * 2001-04-02 2004-08-31 Seagate Technology Llc Disc drive pattern zero verification test
JP3892832B2 (ja) * 2003-08-11 2007-03-14 株式会社東芝 半導体記憶装置
JP4239754B2 (ja) * 2003-08-26 2009-03-18 パナソニック株式会社 不揮発メモリシステム
JP4391170B2 (ja) 2003-09-05 2009-12-24 株式会社日立製作所 データ転送装置の制御方法、データ転送回路、及びディスクアレイ装置

Also Published As

Publication number Publication date
JP2007207062A (ja) 2007-08-16
US7725805B2 (en) 2010-05-25
US20070186141A1 (en) 2007-08-09

Similar Documents

Publication Publication Date Title
JP4852315B2 (ja) データ信頼性向上方法及びその方法を用いた情報処理装置
US7590884B2 (en) Storage system, storage control device, and storage control method detecting read error response and performing retry read access to determine whether response includes an error or is valid
JP4916033B2 (ja) データ格納方法、データ・ストレージ・システムおよびプログラム(ストレージ・システムにおけるデータ完全性の検証)(著作権および商標登録表示本特許文書の開示の一部は、著作権保護を受ける内容を含む。本所有権者は、特許文書または特許開示書のいずれか一つによるファクシミリ複写物には、複写物が特許商標庁の特許ファイルまたは記録として世に出現している限り異論はないが、他の場合に全ての著作権は完全に留保する。)(本明細書で参照するある種のマークについては、出願人またはその譲受人と提携しまたは提携しない第三者の、慣習法上の、または登録された商標である可能性がある。これらのマークを使用するのは、例示によって実施可能な開示を提供するためであり、そのようなマークに関連するもののみに本発明の範囲を制限するように解釈されるべきではない。)
CN100583066C (zh) 存储控制系统及其控制方法,端口选择器,以及控制器
US7062704B2 (en) Storage array employing scrubbing operations using multiple levels of checksums
US6931576B2 (en) Data integrity device providing heightened error protection in a data processing system
US6687791B2 (en) Shared cache for data integrity operations
US7647526B1 (en) Reducing reconstruct input/output operations in storage systems
US8095753B1 (en) System and method for adding a disk to a cluster as a shared resource
JP2001228980A (ja) ディスクアレイ用コントローラ
US9009569B2 (en) Detection and correction of silent data corruption
US20140026013A1 (en) Storage control apparatus and error correction method
JP2008539474A (ja) パワーセーフディスクストレージ装置、システム及び方法
JP2007265409A (ja) コンピュータ実施方法、データ処理システム、およびコンピュータ・プログラム(アモルファスraid)
JP2010033287A (ja) ストレージサブシステム及びこれを用いたデータ検証方法
JP2006139478A (ja) ディスクアレイシステム
US7308601B2 (en) Program, method and apparatus for disk array control
JP2005004753A (ja) データのバージョンチェックを行う方法及び装置
JP2006072435A (ja) ストレージシステムおよびデータ記録方法
JP4394533B2 (ja) ディスクアレイシステム
US10095867B2 (en) Antivirus scan during a data scrub operation
US20100325519A1 (en) CRC For Error Correction
US10014983B2 (en) System, receiving device, and method
JP2008041080A (ja) 記憶制御システム、記憶制御システムの制御方法、ポートセレクタ、及びコントローラ
JP5874175B2 (ja) ディスクアレイ装置及びその制御方法

Legal Events

Date Code Title Description
A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20080903

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20080903

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20110707

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20110712

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110909

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

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

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

Free format text: PAYMENT UNTIL: 20141028

Year of fee payment: 3

LAPS Cancellation because of no payment of annual fees