JP5515896B2 - 入出力接続装置、情報処理装置及び入出力デバイス検査方法 - Google Patents

入出力接続装置、情報処理装置及び入出力デバイス検査方法 Download PDF

Info

Publication number
JP5515896B2
JP5515896B2 JP2010059979A JP2010059979A JP5515896B2 JP 5515896 B2 JP5515896 B2 JP 5515896B2 JP 2010059979 A JP2010059979 A JP 2010059979A JP 2010059979 A JP2010059979 A JP 2010059979A JP 5515896 B2 JP5515896 B2 JP 5515896B2
Authority
JP
Japan
Prior art keywords
packet
tag
input
received
unit
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.)
Active
Application number
JP2010059979A
Other languages
English (en)
Other versions
JP2011192216A (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 JP2010059979A priority Critical patent/JP5515896B2/ja
Priority to US13/047,137 priority patent/US8867369B2/en
Publication of JP2011192216A publication Critical patent/JP2011192216A/ja
Application granted granted Critical
Publication of JP5515896B2 publication Critical patent/JP5515896B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/42Bus transfer protocol, e.g. handshake; Synchronisation
    • G06F13/4282Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus
    • G06F13/4295Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus using an embedded synchronisation

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Debugging And Monitoring (AREA)
  • Information Transfer Systems (AREA)

Description

本発明は、入出力接続装置、情報処理装置及び入出力デバイス検査方法に関する。
従来、計算機システムは、CPU(Central Processing Unit)、主記憶装置、入出力装置、入出力装置を制御する入出力デバイス(以下、I/Oデバイス)、及び、CPUとI/Oデバイスとを接続する入出力接続装置(以下、I/O接続装置)を有する。入出力装置とは、例えば、キーボード、マウスなどの入力デバイスやディスプレイ、ハードディスクドライブ(HDD)等の記憶装置、スピーカなどの出力デバイスである。本明細書では、それら入出力装置を制御するインタフェース、例えば、ネットワークインタフェースやハードディスクコントローラをI/Oデバイスと呼ぶ。
例えば、計算機システムは、CPUなどの指示操作によって、I/O接続装置とI/Oデバイスを介して記憶装置からデータを読み出したり、I/O接続装置とI/Oデバイスを介して記憶装置にデータを書き込んだりする。また、計算機システムは、CPUなどによる処理結果をI/O接続装置とI/Oデバイスを介してディスプレイに表示したり、I/O接続装置とI/Oデバイスを介して文字入力や指示操作、コマンド等を受け付けたりする。I/O接続装置とI/Oデバイスの間のデータ転送では、パラレルバスを用いてデータを転送するPCIバスが利用されてきたが、近年、PCIバスに代わる通信規格として、PCI Expressが利用されている。
PCI Expressは、PCIバスとは異なり、データをパケット化し、シリアル接続で転送する。そのためPCIバスのようにひとつのバスに複数のI/Oデバイスを接続することはできず、I/O接続装置とI/Oデバイスの間は一対一の接続となる。したがって、PCI Express規格のI/O接続装置に複数のI/Oデバイスを接続する場合には、スイッチ機能を備え、スター型の構成を取る必要がある。
また、計算機システムの信頼性を高めるためには、CPUや主記憶装置に限らず、I/Oデバイスに対しても、データが変化する誤りや半導体の故障などの異常を少なくし、異常が生じた場合には、早期に異常を検出して異常対策を実行する必要がある。
そこで、最近では、I/Oデバイスに発生する異常を検出する様々な手法が開示されている。例えば、データ転送などの際に、CPUからI/Oデバイスへのアクセスが正常に実施されたか否かを確認する受動的に検出する手法が開示されている。また、I/Oデバイスから定期的に信号を受信するビーコン方式を用いることで、能動的に検出する手法が開示されている。
また、ソフトウェアで制御することで能動的にI/Oデバイスの異常を検出する手法が開示されている。具体的には、計算機システムは、CPUがソフトウェアで規定された一定の時間間隔でI/Oデバイスにアクセスし、アクセスして得られた応答からI/Oデバイスが異常であるか否かを判定する。
また、ハードウェアで制御することで能動的にI/Oデバイスを検出する手法が開示されている。具体的には、計算機システムは、I/Oデバイスにハードウェアを接続し、接続したハードウェアに監視機能を設け、この監視機能を用いてI/Oデバイスの異常を検出する。
特開2009−9481号公報 特表2003−518356号公報 特開昭58−203533号公報
しかしながら、従来の技術では、入出力デバイス内部に生じる異常を早期に検出することはできないという課題があった。
例えば、受動的な異常検出手法の場合、計算機システムは、CPUが入出力装置(あるいはI/Oデバイス)へアクセスしたタイミングでしか異常を検出できないので、異常発生と検出とのタイミングにタイムラグが発生する。すなわち、I/Oデバイスに生じる異常を早期に検出することはできない。また、ビーコン方式による能動的な異常検出手法の場合、計算機システムは、応答の有無を確認することで異常を検出するので、I/Oデバイス内部の異常まで検出することはできない。
また、ソフトウェアによる異常検出手法の場合、CPUは、I/Oデバイスへのアクセスが正常に終了しないと、動作が停止する場合がある。例えば、異常なI/Oデバイスへアクセスした場合には、CPUは停止し、システムダウンが引き起こされる。かかる場合には、計算機システムは、I/Oデバイスに生じる異常を早期に検出することができない。
ハードウェアによる異常検出手法の場合、計算機システムは、個々のI/Oデバイスに対応した専用の監視機能を設ける必要がある。また、I/O接続装置は複数のI/Oデバイスを接続するので、接続するI/Oデバイス数の増加に応じて個々のI/Oデバイスに専用のハードウェアが必要になる。かかる場合には、計算機システムは、接続する全てのI/Oデバイスに専用のハードウェアを設けることが困難な場合があり、複数のI/Oデバイス各々に生じる異常を早期に検出することができるとは言い難い。
開示の技術は、上記に鑑みてなされたものであって、入出力デバイス内部に生じる異常を早期に検出することができる入出力接続装置、情報処理装置及び入出力デバイス検査方法を提供することを目的とする。
本願の開示する入出力接続装置、情報処理装置及び入出力デバイス検査方法は、一つの態様において、パケットを一意に識別するタグを付与した検査用パケットを生成し、検査用パケットを入出力デバイスへ送信する。また、入出力接続装置、情報処理装置及び入出力デバイス検査方法は、パケットを受信し、受信パケットのタグに基づいて、該受信パケットが検査用パケットに対する応答パケットであるか否かを判定する。そして、入出力接続装置、情報処理装置及び入出力デバイス検査方法は、受信パケットが応答パケットであると判定された場合に、受信パケットを解析して入出力デバイスが異常であるか否かを判定する。
本願の開示する入出力接続装置、情報処理装置及び入出力デバイス検査方法の一つの態様によれば、入出力デバイス内部に生じる異常を早期に検出することができるという効果を奏する。
図1は、実施例1に係るI/O接続装置の構成を示す機能ブロック図である。 図2は、実施例2に係る情報処理装置の構成を示す機能ブロック図である。 図3は、I/Oデバイスが有するタイプIコンフィグレーションスペースヘッダの一例を示す図である。 図4は、実施例2に係るタグテーブルが記憶するデータの一例を示す図である。 図5は、生成部が生成する検査用パケットに付与されるヘッダ領域の一例を示す図である。 図6は、応答パケットに付与されるヘッダ領域の一例を示す図である。 図7は、異常処理部による処理の一例を示す図である。 図8は、実施例2に係る情報処理装置による処理の処理手順を説明するフローチャートである。 図9は、実施例2に係るレジスタアクセス処理の処理手順を説明するフローチャートである。 図10は、実施例2に係る送信部による処理の処理手順を説明するフローチャートである。 図11は、実施例3に係る情報処理装置の構成を示す機能ブロック図である。 図12は、実施例3に係るタグテーブルが記憶するデータの一例を示す図である。 図13は、実施例3に係る送信部による処理の処理手順を説明するフローチャートである。 図14は、実施例3に係る情報処理装置によるCPUを宛先とするパケットを受信した場合の処理の処理手順を説明するフローチャートである。 図15は、実施例4に係る情報処理装置の構成を示す機能ブロック図である。 図16は、実施例4に係るタグテーブルが記憶するデータの一例を示す図である。 図17は、AERレジスタの一例を示す図である。 図18は、実施例4に係る情報処理装置による処理の処理手順を説明するフローチャートである。 図19は、本願で利用可能なコンフィグレーションレジスタのタイプの一例を示す図である。 図20は、異なるタイプが混在するBase Addressレジスタの一例を示す図である。 図21は、I/Oデバイスとの接続が二重化されている場合の異常処理部による処理の一例を示す図である。
以下に、本願の開示する入出力接続装置、情報処理装置及び入出力デバイス検査方法の実施例を図面に基づいて詳細に説明する。なお、この実施例によりこの発明が限定されるものではない。
図1は、実施例1に係るI/O接続装置の構成を示す機能ブロック図である。図1に示すように、I/O接続装置10は、生成部11と、送信部12と、受信部13と、第1判定部14と、第2判定部15とを有し、CPUとI/Oデバイスとを接続する。
生成部11は、パケットを一意に識別するタグを付与した検査用パケットを生成し、送信部12は、生成部11が生成した検査用パケットを入出力デバイスへ送信する。受信部13は、パケットを受信し、第1判定部14は、受信部13によって受信された受信パケットのタグに基づいて、該受信パケットが、送信部12から送信された検査用パケットに対する応答パケットであるか否かを判定する。第2判定部15は、第1判定部14によって受信パケットが応答パケットであると判定された場合に、受信パケットを解析して、I/Oデバイスが異常であるか否かを判定する。
上述してきたように、本実施例1では、I/O接続装置10の送信部12が、I/Oデバイスへ定期的にアクセスし、第2判定部15が、検査用パケットに対する応答内容を判定することで、I/Oデバイス内部に生じる異常を早期に検出することができる。
[実施例2に係る情報処理装置の構成]
次に、図2を用いて、実施例2に係る情報処理装置100の構成を説明する。図2は、実施例2に係る情報処理装置の構成を示す機能ブロック図である。実施例2に係る情報処理装置100は、CPU200と、I/Oデバイス300と、I/Oデバイス400と、I/O接続装置500とを有する。
CPU200は、情報処理装置100が有する各装置の制御やデータの演算、加工などを行う電子回路である。I/Oデバイス300やI/Oデバイス400は、PCI Expressで接続される入出力装置のためのインタフェースである。I/Oデバイス300やI/Oデバイス400は、例えば、ネットワークカードやストレージコントローラカードなどのハードウェアである。
また、I/Oデバイス300やI/Oデバイス400は、PCI Expressを用いて情報処理装置100に接続されるI/Oデバイスで共通に有するレジスタであって、自デバイスの情報や状態を記憶するレジスタを有する。例えば、I/Oデバイス300は、図3に示すような32ビットのタイプIコンフィグレーションスペースヘッダにReadOnly(RO)レジスタやReadWrite(RW)レジスタを有する。I/Oデバイス300が有するレジスタとしては、例えば、自デバイスの製造元を特定する一意な識別子であり、書き換えられることがないROレジスタである「Vender ID」を有する。また、Vender IDで指定される製造元が製造したデバイス同士を識別するために使用する16ビットの識別子を記憶するROレジスタである「Device ID」を有する。また、Vender IDとDevice IDで指定される特定のデバイスに対してそのレビジョンを表すのに使用される8ビットの識別子を記憶するROレジスタである「Revision ID」を有する。
また、I/Oデバイスの種類や機能を示す情報を記憶するROレジスタである「Class Code」を有する。また、これら以外にも、I/Oデバイスが採用しているコンフィグレーションスペースヘッダが単一機能であるか多機能であるかを示す情報を記憶するROレジスタである「Header Type」を有する。なお、図3は、I/Oデバイスが有するタイプIコンフィグレーションスペースヘッダの一例を示す図である。
I/O接続装置500は、スイッチ制御部510とスイッチ520とスイッチ530と異常処理部540とを有し、CPU200とI/Oデバイス300及び400とを相互接続する。なお、スイッチ520とスイッチ530とは同様の構成を有するので、ここではスイッチ520についてのみ説明する。
スイッチ制御部510は、CPU200、スイッチ520、スイッチ530それぞれの間のデータ転送を制御する。例えば、スイッチ制御部510は、CPU200から出力されたパケットから宛先のI/Oデバイスを特定する情報を抽出し、抽出したI/Oデバイスが接続されるスイッチに当該パケットを転送する。
スイッチ520は、スイッチ制御部510と異常処理部540とI/Oデバイス300とを相互接続するスイッチであり、記憶部521と制御部522とを有する。記憶部521は、制御部522による各種処理に必要なデータおよびプログラムを格納するとともに、タグテーブル521aとレジスタテーブル521bとデバイステーブル521cとを有する半導体メモリ素子、または、ハードディスクなどの記憶装置である。
タグテーブル521aは、パケットに付与されたタグ情報を記憶する。タグテーブル521aが記憶する情報について図4を用いて説明する。図4は、実施例2に係るタグテーブルが記憶するデータの一例を示す図である。例えば、実施例2に係るタグテーブル521aは、「有効/無効」と「正常/異常」と「タグ値」と「タイプ」と「元タグ値」に関する情報を記憶する。ここで、「有効/無効」は、テーブルの内容が有効であるか無効であるかを示す。「正常/異常」は、後述する第2判定部522eによる検査結果に関する情報を示す。また、「タグ値」は、後述する生成部522aによって付与されたタグ情報を示す。「タイプ」は、パケットがCPU200から送信されたパケットであるか検査用パケットであるかを特定する。例えば、パケットがCPU200から送信されたパケットであった場合には、「タイプ」は「CPU」となる。また、パケットが検査用パケットであった場合には、例えば、「タイプ」は、アクセスするレジスタのタイプを特定し、「RO」となる。「元タグ値」は、タグが書き換えられた場合に、書き換えられる前のタグ値を示す。
アドレス「2」の項目は、「有効/無効」が「有効」、「正常/異常」が「異常」、「タグ値」が「0x11」、「タイプ」が「RO」である。すなわち、タグテーブル521aは、検査用パケットのタグ値が「0x11」であり、ROレジスタへアクセスした結果、I/Oデバイスが異常であることを示す。また、アドレス「3」の項目は、「タグ値」が「0x12」、「タイプ」が「RO」である。すなわち、タグテーブル521aは、検査用パケットのタグ値が「0x12」であり、ROレジスタへアクセスしていることを示す。
レジスタテーブル521bは、PCI Expressデバイスが有する各レジスタの正常値を記憶する。例えば、レジスタテーブル521bは、図3に示した「Vender ID」の正常値や「Device ID」の正常値等を記憶する。また、デバイステーブル521cは、情報処理装置100に接続されたI/Oデバイスが有する固有の識別子を記憶し、これによってスイッチ制御部510はI/Oデバイスを一意に特定することができる。
制御部522は、制御プログラム、各種の処理手順などを規定したプログラムおよび所要データを格納するための内部メモリを有する。さらに、制御部522は、生成部522aと、送信部522bと、受信部522cと、第1判定部522dと、第2判定部522eとを有する。例えば、制御部522は、ASIC(Application Specific Integrated Circuit)やFPGA(Field Programmable Gate Array)などの集積回路、又は、CPU(Central Processing Unit)やMPU(Micro Processing Unit)などの電子回路である。
生成部522aは、タグを付与した検査用パケットを生成する制御部である。生成部522aは、I/Oデバイス300の検査契機に達すると、ヘッダ領域にタグを付与した検査用パケットを生成して、後述する送信部522bへ転送する。さらに、生成部522aは、後述する第2判定部522eから検査終了を示す通知を受付けた場合には、この通知を送信部522bへ転送する。なお、I/Oデバイス300の検査契機は、前回の検査から一定時間後や予め指定された時間間隔ごとなど任意に設定することができる。
ここで、図5を用いて検査用パケットに付与されるヘッダ領域を説明する。図5は、生成部が生成する検査用パケットに付与されるヘッダ領域の一例を示す図である。
図5に示すように、生成部522aによって生成される検査用パケットのヘッダ領域は、生成部522aによって生成される検査用パケットが共通に有するヘッダ領域21を有する。さらに、検査を実行するI/O接続装置及び検査対象であるI/Oデバイスに応じて付与される固有のヘッダ領域22を有する。固有のヘッダ領域22は、例えば、「Requester ID」と、「タグ」と、「Device Number」と、「Register Number」などに関する情報を有する。
「Requester ID」は、どの装置からリクエストが出力されたかを示す番号であるが、ここではCPUのID、すなわちRoot ComplexのIDを使用する。「タグ」は、リクエストと応答の対応付けをとるために付与される。「Device Number」は、送信先I/Oデバイスに付与された識別子である。例えば、記憶部521のデバイステーブル521cを参照することで、情報処理装置100は、ヘッダ領域からI/Oデバイスを特定することができる。また、「Register Number」は、検査に利用するレジスタを示す。
例えば、生成部522aは、一意な「タグ」を付与するとともに、固有のヘッダ領域22に「Device Number」と「Register Number」を指定した検査用パケットを生成する。そして、生成部522aは、生成した検査用パケットを送信部522bに転送する。例えば、生成部522aは、「Register Number」に、「Device ID」や「Vender ID」などのROレジスタを指定する情報を格納する。
また、生成部522aは、検査用パケットを生成すると、タグテーブル521aに生成したタグ値やタイプに関する情報を書き込んでもよい。例えば、生成部522aは、タグテーブル521aの「タグ値」に、検査用パケットに付与されたタグを書き込み、「タイプ」に「RO」を書き込む。
図2に戻り、送信部522bは、生成部522aによって生成された検査用パケットをI/Oデバイス300へ送信する制御部である。例えば、送信部522bは、生成部522aから受信した検査用パケットに含まれる「Device Number」が割り振られたI/Oデバイスを、デバイステーブル521cを参照して特定する。そして、送信部522bは、特定したI/Oデバイスに対して検査用パケットを送信する。すると、検査用パケットは、送信先のI/Oデバイスにおいて、検査用パケットに含まれる「Register Number」で指定されたレジスタへアクセスして、当該レジスタの値を取得する。
また、送信部522bは、CPU200から受信したパケットに付与されたタグと同一のタグを有した検査用パケットが存在するか否かを判定する。例えば、送信部522bは、CPU200からパケットを受信した場合に、当該パケットに含まれるタグをキーにしてタグテーブル521aを検索する。そして、送信部522bは、当該パケットに付与されたタグと同一のタグが付与された検査用パケットが存在するか否かを判定する。同一タグが付与されたパケットが存在しなかった場合には、送信部522bは、当該パケットを宛先のI/Oデバイス300へ送信する。
一方、送信部522bは、付与したタグと同一のタグを有するパケットをCPU200から受信した場合には、CPU200から受信したパケットをI/Oデバイス300へ送信しないように抑止制御する。例えば、同一タグが付与されたパケットが存在した場合には、送信部522bは、生成部522aから検査終了を示す通知を受付けるまで、CPU200から受信したパケットを送信せずに保持する。すなわち、送信部522bは、検査用パケットと同一のタグを有するパケットについて、I/Oデバイス検査が終了するまで抑止する。
また、送信部522bは、CPU200からのパケットに付与されているタグに関する情報をタグテーブル521aに書き込んでもよい。例えば、送信部522bは、タグテーブル521aの「タグ値」に、パケットに付与されたタグを書き込み、「タイプ」に「CPU」を書き込む。
受信部522cは、I/Oデバイス300からパケットを受信する。第1判定部522dは、I/Oデバイス300から受信したパケットが、CPU200からのアクセスに対する応答か検査用パケットに対する応答であるかを判定する。具体的には、第1判定部522dは、受信パケットのヘッダ領域に付与されたタグに基づいて、タグテーブル521aを参照することで判定する。
ここで、図6を用いて、第1判定部522dが受信する応答パケットに付与されるヘッダ領域について説明する。図6は、応答パケットに付与されるヘッダ領域の一例を示す図である。
図6に示すように、第1判定部522dが受信する応答パケットに付与されるヘッダ領域は、応答パケットが共通に有するヘッダ領域31とパケットの宛先に応じて付与される固有のヘッダ領域32とを有する。固有のヘッダ領域32は、例えば、「Requester ID」と、「タグ」と、「Completer ID」などに関する情報を有する。
「Requester ID」は、どの装置からリクエストが出力されたかを示す番号である。例えば、「Requester ID」は、CPU200を識別する識別子が付与される。「タグ」は、リクエストと応答の対応付けをとるために付与される。「Completer ID」は、送信元I/Oデバイスに付与された識別子である。例えば、記憶部521のデバイステーブル521cを参照することで、情報処理装置100は、ヘッダ領域からI/Oデバイスを特定することができる。
例えば、第1判定部522dは、I/Oデバイス300から受信したパケットに含まれるタグをキーにしてタグテーブル521aを検索し、受信したパケットに付与されたタグと同一のタグをもつパケットを特定する。具体的には、第1判定部522dは、タグテーブル521aに受信したパケットに付与されたタグと同一のタグが存在するかどうかを判定する。そして、第1判定部522dは、同一のタグを持つパケットがタグテーブル521aに存在する場合には、当該パケットを第2判定部522eへ転送する。
一方、第1判定部522dが、タグテーブル521aに受信したパケットに付与されたタグと同一のタグが記録されていないことを検出した場合には、CPUから送信されたパケットに対する応答パケットであると特定するする。第1判定部522dは、当該パケットがCPU200から送信されたパケットに対する応答パケットであると特定した場合には、当該パケットをCPU200へ転送する。また、第1判定部522dは、応答パケットを所定時間連続して受信していない場合には、タイムアウトしたか否かを判定させるための通知を第2判定部522eへ送信する。
第2判定部522eは、第1判定部522dから検査用パケットに対する応答パケットを受信し、応答パケットに示される内容が正常であるか否かを判定する制御部である。例えば、第2判定部522eは、受信したパケットから「Completer ID」を読み出し、レジスタテーブル521bに記憶されている「Device ID」と一致するか否かを判定する。そして、第2判定部522eは、一致したと判定した場合には、I/Oデバイス300が正常であると判定する。そして、第2判定部522eは、タグテーブル521aの「有効/無効」の項目を「無効」とし、タグテーブル521aからタグ情報を消去する。続いて、第2判定部522eは、生成部522aへ検査の終了を通知する。
一方、第2判定部522eは、一致しないと判定した場合には、I/Oデバイス300が異常であると判定する。そして、第2判定部522eは、タグテーブル521aの「有効/無効」の項目を「有効」とし、「正常/異常」の項目にI/Oデバイス300が「異常」であることを示す検査結果を書き込む。続いて、第2判定部522eは、後述する異常処理部540にI/Oデバイス300が異常であることを通知する。
また、第2判定部522eは、第1判定部522dからタイムアウトの検査を受付けた場合には、生成部522aが計測した経過時間に基づいて、所定の時間を経過したか否かを判定する。第2判定部522eは、所定の時間を経過したことを示すタイムアウトと判定した場合には、I/Oデバイス300から応答がないのでリンクレベルの異常であると判定する。そして、第2判定部522eは、タグテーブル521aの「正常/異常」の項目にI/Oデバイス300が「異常」であることを示す検査結果を書き込む。続いて、第2判定部522eは、後述する異常処理部540にI/Oデバイス300が異常であることを通知する。なお、所定の経過時間は利用者によって任意に設定可能である。
異常処理部540は、I/Oデバイス300に対して異常が検出された場合に、異常処理を実行する制御部である。図7を用いて、異常処理部540による処理の一例を説明する。図7は、異常処理部による処理の一例を示す図である。例えば、異常処理部540は、I/Oデバイス300に異常が検出された場合には、故障デバイスの切り離しを実施する。
具体的には、異常処理部540は、I/Oデバイス300に異常が検出された場合には、送信部522bと、受信部522cとへ通知する。この結果、送信部522bと、受信部522cとは、I/Oデバイス300との接続を解除する。なお、異常処理部540は、I/Oデバイス400において異常が発生した場合も同様に、故障デバイスの切り離しを実施する。
[実施例2に係る情報処理装置による処理の処理手順]
次に、図8を用いて、実施例2に係る情報処理装置100による処理の処理手順を説明する。図8は、実施例2に係る情報処理装置による処理の処理手順を説明するフローチャートである。
スイッチ520は、生成部522aが前回のアクセスから一定の時間が経過したと判定した場合には(ステップS101、Yes)、Read Onlyレジスタ読み出し処理を実施する(ステップS102)。
スイッチ520の第2判定部522eは、Read Onlyレジスタ読み出し処理を実施した結果、異常が検出されたか否かを判定する(ステップS103)。ここで、異常が検出された場合には(ステップS103、Yes)、第2判定部522eは、異常処理部540へ通知し、異常処理部540が異常処理を実施する(ステップS104)。一方、異常が検出されなかった場合には(ステップS103、No)、第2判定部522eは、タグテーブル521aからタグ情報を消去する(ステップS105)。
[レジスタアクセス処理の処理手順]
図9を用いて、実施例2に係るレジスタアクセス処理の処理手順を説明する。図9は、実施例2に係るレジスタアクセス処理の処理手順を説明するフローチャートである。なお、ここで説明する処理は、図8のステップS102に対応する。
スイッチ520の生成部522aは、タグを生成し(ステップS201)、生成したタグをタグテーブルに登録する(ステップS202)。続いて、生成部522aは、生成したタグを付与した検査用パケットを生成し、検査用パケットをI/Oデバイス300へ送信してレジスタへアクセスを要求する(ステップS203)。
第1判定部522dは、I/Oデバイス300から検査用パケットに対する応答パケットを受信したか否かを判定する(ステップS204)。ここで、検査用パケットに対する応答パケットを受信したと判定した場合には(ステップS204、Yes)、第2判定部522eは、応答パケットのデータ内容を解析して、I/Oデバイス300が正常か否かを判定する(ステップS205)。
第2判定部522eは、応答パケットのデータ内容に異常が含まれていないと判定した場合には(ステップS205、Yes)、応答パケット送信元のI/Oデバイス300が正常であると判定する(ステップS206)。一方、第2判定部522eは、応答パケットのデータ内容に異常が含まれていると判定した場合には(ステップS205、No)、応答パケット送信元のI/Oデバイス300が異常であると判定する(ステップS208)。
第1判定部522dは、受信したパケットが検査用パケットに対する応答パケットでないと判定した場合には(ステップS204、No)、タイムアウトしたか否かを判定する(ステップS207)。第2判定部522eは、タイムアウトしたと判定した場合には(ステップS207、Yes)、I/Oデバイス300が異常であると判定する(ステップS208)。
一方、第2判定部522eがタイムアウトしていないと判定した場合には(ステップS207、No)、第1判定部522dは、I/Oデバイス300からCPU200を宛先とする応答パケットを受信したかを判定する(ステップS209)。ここで、第1判定部522dは、CPU200を宛先と応答パケットを受信した場合には(ステップS209、Yes)、当該パケットをCPU200へ転送する(ステップS210)。CPU200を宛先とする応答パケットを受信していない場合には(ステップS209、No)、第1判定部522dは、引き続き、I/Oデバイス300からの検査用パケットに対する応答パケットを受信したか否かを判定する(ステップS204)。
[CPUからパケットを受信した場合の送信部522bによる処理の処理手順]
図10を用いて、実施例2に係る送信部522bによる処理の処理手順を説明する。図10は、実施例2に係る送信部による処理の処理手順を説明するフローチャートである。
送信部522bは、CPU200からパケットを受信した場合には(ステップS301、Yes)、受信パケットのタグと同一のタグが付与された検査用パケットが存在するか否かを判定する(ステップS302)。送信部522bは、同一タグが付与された検査用パケットが存在しないと判定した場合には(ステップS302、No)、受信パケットを宛先のI/Oデバイス300へ送信する(ステップS304)。
一方、送信部522bは、同一タグが付与された検査用パケットが存在すると判定した場合には(ステップS302、Yes)、検査用パケットによるI/Oデバイス300の検査終了通知を受付けたか否かを判定する(ステップS303)。ここで、送信部522bは、検査終了通知を受付けたと判定した場合には(ステップS303、Yes)、受信パケットをI/Oデバイス300へ送信する(ステップS304)。また、送信部522bは、検査終了通知を受付けていないと判定した場合には(ステップS303、No)、検査終了通知を受付けるまで受信パケットをI/Oデバイス300へ送信しない。
[実施例2の効果]
上述してきたように、実施例2に係る情報処理装置100の生成部522aは、タグを付与した検査用パケットを生成する。送信部522bは、生成した検査用パケットをI/Oデバイス300の共通レジスタへ定期的に送信する。受信部522cは、I/Oデバイス300からパケットを受信する。第1判定部522は、受信部522cがI/Oデバイス300から受信したパケットのタグに基づいて当該パケットが送信部522bによって送信された検査用パケットに対する応答パケットであるか否かを判定する。
そして、第2判定部522eは、第1判定部522dによって応答パケットであると判定された応答パケットの内容からI/Oデバイス300が異常であるか否かを判定する。また、第2判定部522eは、応答パケットの内容からI/Oデバイス300が異常であると判定した場合には、異常処理部540へ通知する。異常処理部540は、異常と判定されたI/Oデバイス300とCPU200との接続を切り離す異常処理を実行する。また、送信部522bは、付与したタグと同一のタグを有するパケットをCPU200が発生した場合には、CPU200が発生したパケットをI/Oデバイス300へ送信しない。第2判定部522eは、判定終了後に判定結果を送信部522bに通知する。送信部522bは、第2判定部522eによって通知を受け付けた場合に、CPU200が発生したパケットをI/Oデバイス300へ送信する。
すなわち、本実施例2に係る情報処理装置100は、I/Oデバイス300内部に生じた異常を早期に検出できる。さらに、異常が生じたI/Oデバイス300を切り離すことでCPU200が停止することを防ぐことができる。CPU200がシステムダウンすることを防止できるため、故障デバイスを検査することができる。
また、本実施例2に係る情報処理装置100は、個々のI/Oデバイス300に対して専用の監視機能を設けなくてもよく、全てのPCI Expressデバイスに対して同一手段で検査をすることができる。また、本実施例2に係る情報処理装置100は、レジスタにアクセスを行っても、I/Oデバイス300に悪影響を与えない。
実施例2では、送信部522bは、CPU200から受信したパケットがI/O接続装置500が生成したタグと同じタグを持っていた場合には、当該パケットを送信しない。そして、送信部522bは、検査終了を待ってI/Oデバイス300が正常であることを確認してから、CPU200から受信したパケット送信する例について説明した。ところが、情報処理装置において、CPUからのパケットを遅延なく送信した方が好ましい場合がある。そこで、実施例3では、情報処理装置において、CPUからのパケットと同一のタグを有する検査用パケットが存在した場合に、CPUパケットの送信を遅延させずI/Oデバイスを検査する方法について説明する。
[実施例3に係る情報処理装置の構成]
次に、図11を用いて、実施例3に係る情報処理装置600の構成を説明する。図11は、実施例3に係る情報処理装置の構成を示す機能ブロック図である。実施例3に係る情報処理装置600は、CPU200と、I/Oデバイス300と、I/Oデバイス400と、I/O接続装置700とを有する。なお、ここでは、図2に示した各部と同様の役割を果たす機能部については、同一符号を付すことにしてその詳細な説明を省略する。
I/O接続装置700は、スイッチ制御部510と、スイッチ720と、スイッチ730と、異常処理部540とを有し、CPU200とI/Oデバイス300及び400とを相互接続する。なお、スイッチ720とスイッチ730とは同様の構成を有するので、ここではスイッチ720についてのみ説明する。
スイッチ720は、スイッチ制御部510と異常処理部540とI/Oデバイス300とを相互接続するスイッチであり、記憶部721と制御部722とを有する。記憶部721は、制御部722による各種処理に必要なデータおよびプログラムを格納するとともに、タグテーブル721aとレジスタテーブル521bとデバイステーブル521cとを有する半導体メモリ素子、または、ハードディスクなどの記憶装置である。
タグテーブル721aは、パケットに付与されたタグ情報を記憶する。タグテーブル721aが記憶する情報について図12を用いて説明する。図12は、実施例3に係るタグテーブルが記憶するデータの一例を示す図である。例えば、実施例3に係るタグテーブル721aは、「有効/無効」と「正常/異常」と「タグ値」と「タイプ」と「元タグ値」に関する情報を記憶する。ここで、「有効/無効」は、テーブルの内容が有効であるか無効であるかを示す。「正常/異常」は、第2判定部522eによる検査結果に関する情報を示す。また、「タグ値」は、生成部522aによって付与されたタグ情報を示す。もしくは、送信部722bが、CPU200からのパケットに付与されたタグを書き換えたタグ情報を示す。「タイプ」は、レジスタのタイプをし、「元タグ値」は、タグが書き換えられた場合に、書き換えられる前のタグ値を示す。
例えば、アドレス1の項目は、「有効/無効」が「有効」、「正常/異常」が「異常」、「タグ値」が「0x10」、「タイプ」が「RO」である。すなわち、検査用パケットのタグ値が「0x10」であり、ROレジスタへアクセスした結果、I/Oデバイスが異常であることを示す。また、アドレス2の項目は、「タグ値」が「0x11」、「タイプ」が「RO」である。すなわち、検査用パケットのタグ値が「0x11」であり、ROレジスタへアクセスしていることを示す。また、アドレス3の項目は、「タグ値」が「0x12」、「タイプ」が「CPU」、「元タグ値」が「0x11」である。すなわち、CPU200から送信されたパケットに付与されたタグが「0x11」であり、検査用パケットのタグ値と同一のため、「0x12」に変更されたことを示す。
制御部722は、制御プログラム、各種の処理手順などを規定したプログラムおよび所要データを格納するための内部メモリを有する。さらに、制御部722は、生成部522aと、送信部722bと、受信部522cと、第1判定部722dと、第2判定部522eとを有する。例えば、制御部722は、ASIC(Application Specific Integrated Circuit)やFPGA(Field Programmable Gate Array)などの集積回路、又は、CPU(Central Processing Unit)やMPU(Micro Processing Unit)などの電子回路である。
送信部722bは、実施例2で説明した送信部522bが有する機能に加え、以下の機能をさらに有する。送信部722bは、付与したタグと同一のタグを有するパケットをCPU200から受信した場合には、CPU200から受信したパケットのタグを書き換えてI/Oデバイス300に送信する。
例えば、送信部722bは、タグテーブル721aを検索し、CPU200から受信したパケットに付与されたタグと同一のタグが存在するか否かを判定する。送信部722bは、CPU200から受信したパケットに付与されたタグと同一のタグが付与された検査用パケットが存在する場合には、CPU200からのパケットに付与されたタグを書き換え、タグテーブル721aを更新する。続いて、送信部722bは、タグを書き換えたCPU200からのパケットをI/Oデバイス300へ転送する。
例えば、送信部722bは、検査用パケットに付与されたタグ「0x11」と同一のタグ「0x11」が付与されたパケットをCPU200から受信した場合には、当該タグを「0x12」へ書き換える。そして、送信部722bは、タグを書き換えた情報をタグテーブル721aに格納する。
第1判定部722dは、実施例2で説明した第1判定部522dが有する機能に加え、以下の機能をさらに有する。例えば、第1判定部722dは、受信したパケットがCPU200のアクセスに対する応答パケットであった場合には、当該パケットに付与されたタグ情報を抽出し、タグテーブル721aを検索してタグが書き換えられたか否かを判定する。タグが書き換えられていた場合には、第1判定部722dは、パケットに付与されたタグを書き換え前のタグ値に書き戻す。第1判定部722dは、タグを書き戻したパケットをCPU200へ転送する。
第1判定部722dは、タグテーブル721aを検索して、CPU200を宛先とするパケットのタグ「0x12」の「元タグ値」を検索し、タグを「0x11」に書き戻す。そして、第1判定部722dは、当該パケットの情報をタグテーブル721aから削除したりする。
[CPUからパケットを受信した場合の送信部722bによる処理の処理手順]
図13を用いて、実施例3に係る送信部722bによる処理の処理手順を説明する。図13は、実施例3に係る送信部による処理の処理手順を説明するフローチャートである。
送信部722bは、CPU200からのパケットを受信したと判定した場合には(ステップS401、Yes)、受信パケットのタグと同一のタグが付与された検査用パケットが存在するか否かを判定する(ステップS402)。送信部722bは、同一タグが付与された検査用パケットが存在しないと判定した場合には(ステップS402、No)、受信パケットを宛先のI/Oデバイス300へ送信する(ステップS405)。
一方、送信部722bは、同一タグが付与された検査用パケットが存在すると判定した場合には(ステップS402、Yes)、CPU200から受信したパケットのタグを書き換え(ステップS403)、タグを書き換えたことを示す情報を書き込むことでタグテーブル721aを更新する(ステップS404)。続いて、送信部722bは、タグを書き換えたパケットを宛先のI/Oデバイス300へ送信する(ステップS405)。
[CPUからパケットを受信した場合の処理の処理手順]
図14を用いて、実施例3に係る情報処理装置600によるCPU200を宛先とするパケットを受信した場合の処理の処理手順を説明する。図14は、実施例3に係る情報処理装置によるCPUを宛先とするパケットを受信した場合の処理の処理手順を説明するフローチャートである。
第1判定部522dは、CPU200に対するパケットを受信したと判定した場合には(ステップS501、Yes)、タグテーブル731aを参照し、タグが書き換えられているか否かを判定する(ステップS502)。ここで、第1判定部522dは、受信したパケットのタグが書き換えられていると判定した場合には(ステップS502、Yes)、タグを元に書き戻し(ステップS503)、CPU200にパケットを転送する(ステップS504)。
一方、第1判定部522dは、受信したパケットのタグが書き換えられていないと判定した場合には(ステップS502、No)、受信したパケットのタグを書き換えることなくCPU200に転送する(ステップS504)。
[実施例3の効果]
上述してきたように、本実施例3では、送信部722bは、生成部522aが付与したタグと同一のタグを有するパケットをCPU200から受信した場合には、CPU200から受信したパケットのタグを書き換え、I/Oデバイス300へ送信する。したがって、情報処理装置600は、遅延なくCPU200から受信したパケットを転送し、I/Oデバイス300を検査することができる。
実施例2及び3では、PCI Expressデバイスの共通レジスタにアクセスすることで、デバイスに干渉せずI/Oデバイス内部に生じた異常の有無を検査することができる。また、かかる場合、情報処理装置は、内部に生じた異常の詳細情報を取得できた方が好ましい。そこで、実施例4として、AER(Advance Error Reporting)機能を有するPCI Expressデバイスに対して、検査用パケットを送信し、応答パケットを解析することで発生した異常を検査し、検査した異常の詳細情報を取得する場合について説明する。
[実施例4に係る情報処理装置の構成]
次に、図15を用いて、実施例4に係る情報処理装置800の構成を説明する。図15は、実施例4に係る情報処理装置の構成を示す機能ブロック図である。実施例4に係る情報処理装置800は、CPU200と、I/Oデバイス300と、I/Oデバイス400と、I/O接続装置900とを有する。なお、ここでは、図2に示した各部と同様の役割を果たす機能部については、同一符号を付すことにしてその詳細な説明を省略する。
I/O接続装置900は、スイッチ制御部510と、スイッチ920と、スイッチ930と、異常処理部540とを有し、CPU200とI/Oデバイス300及び400とを相互接続する。なお、スイッチ920とスイッチ930とは同様の構成を有するので、ここではスイッチ920についてのみ説明する。
スイッチ920は、スイッチ制御部510と異常処理部540とI/Oデバイス300とを相互接続するスイッチであり、記憶部921と制御部922とを有する。記憶部921は、制御部922による各種処理に必要なデータおよびプログラムを格納するとともに、タグテーブル921aとレジスタテーブル521bとデバイステーブル521cとを有する半導体メモリ素子、または、ハードディスクなどの記憶装置である。
タグテーブル921aは、パケットに付与されたタグ情報を記憶する。タグテーブル921aが記憶する情報について図16を用いて説明する。図16は、実施例4に係るタグテーブルが記憶するデータの一例を示す図である。例えば、実施例4に係るタグテーブル921aは、「有効/無効」と「正常/異常」と「タグ値」と「タイプ」と「元タグ値」に関する情報を記憶する。ここで、「有効/無効」はテーブルの内容が有効であるか無効であるかを示す。「正常/異常」は、第2判定部922eによる検査結果に関する情報を示す。また、「タグ値」は、生成部922aによって付与されたタグ情報を示す。「タイプ」は、パケットがCPU200から送信されたパケットであるか検査用パケットであるかを特定する。例えば、パケットがCPU200から送信されたパケットであった場合には、「タイプ」は「CPU」となる。また、パケットが検査用パケットであった場合には、例えば、「タイプ」は、アクセスするレジスタのタイプを特定する。具体的には、「タイプ」が「AER」である場合には、検査用パケットは、AERレジスタへアクセスすることを示す。「元タグ値」は、タグが書き換えられた場合に、書き換えられる前のタグ値を示す。
アドレス1の項目は、「有効/無効」が「有効」、「正常/異常」が「異常」、「タグ値」が「0x10」、「タイプ」が「RO」である。すなわち、検査用パケットのタグが「0x10」であり、ROレジスタへアクセスした結果、I/Oデバイスが異常であることを示す。また、アドレス2の項目は、「タグ値」が「0x11」、「タイプ」が「CPU」、「元タグ値」が「0x10」である。すなわち、CPU200から送信されたパケットに付与されたタグが「0x10」であり、検査用パケットのタグ値と同一のため、「0x11」に変更されたことを示す。また、アドレス3の項目は、「タグ値」が「0x12」であり、「タイプ」が「AER」である。すなわち、検査用パケットのタグが「0x12」であり、AERレジスタへアクセスしたことを示す。
制御部922は、制御プログラム、各種の処理手順などを規定したプログラムおよび所要データを格納するための内部メモリを有する。さらに、制御部922は、生成部922aと、送信部922bと、受信部522cと、第1判定部922dと、第2判定部922eとを有する。例えば、制御部922は、ASIC(Application Specific Integrated Circuit)やFPGA(Field Programmable Gate Array)などの集積回路、又は、CPU(Central Processing Unit)やMPU(Micro Processing Unit)などの電子回路である。
生成部922aは、実施例2で説明した生成部522aが有する機能に加え、以下の機能をさらに有する。生成部922aは、後述する第2判定部922eから共通レジスタへの検査が終了した通知を受付けると、I/Oデバイス300がAERを有しているか否かを判定する。生成部922aは、I/Oデバイス300がAERを有していると判定した場合には、AERレジスタ検査用パケットを生成する。生成部922aは、I/Oデバイス300がAERを有していないと判定した場合には、検査を終了する。図17を用いて、AERレジスタの一例を説明する。図17は、AERレジスタの一例を示す図である。
図17に示した各種レジスタは、PCI Expressのオプションとして規格化される32ビットのレジスタであり、I/Oデバイス300内部の詳細状態を記憶する。したがって、AERレジスタを有するI/Oデバイス300に対して、実施例1等で説明したアクセス手法と同様の手法で異常を検査することができる。例えば、スイッチ920は図5に示したフォーマットのヘッダを持つパケットを生成し、Requester IDにCPU200のID、Bus Number、Device Number、Function NumberにI/OデバイスのIDをセットする。さらにRegister NumberにAERレジスタが配置されているアドレスを指定し、I/Oデバイスに送信することによって、図17に示した、Uncorrectable Error Status Registerにアクセスすることができる。その結果、Read Onlyレジスタをアクセスした場合と同様に図6に示すヘッダを持つ応答パケットを受信し、受信したパケットのデータ部を参照することでI/Oデバイス300内部の詳細な異常状態を検出できる。図15に戻って、生成部922aは、AERレジスタ検査用パケットを生成すると、タグテーブル921aに生成したタグ値やタイプに関する情報を書き込む。
送信部922bは、実施例2で説明した送信部522b又は実施例3で説明した送信部722bが有する機能に加え、以下の機能をさらに有する。例えば、送信部922bは、I/Oデバイス300がPCI Expressで規格化されているAERレジスタを有している場合には、AERレジスタへ検査用パケットを送信する。
第1判定部922dは、実施例2で説明した第1判定部522d又は実施例3で説明した第1判定部722dが有する機能に加え、以下の機能をさらに有する。例えば、第1判定部922dは、検査用パケットに対する応答パケットを受信した場合には、「タグ値」と「タイプ」を判定し、第2判定部922eへパケットを転送する。
第2判定部922eは、実施例2で説明した第2判定部522eが有する機能に加え、以下の機能をさらに有する。第2判定部922eは、第1判定部922dからAERレジスタへのアクセスの応答パケットを受信した場合には、応答パケットに有効なエラービットが付与されているか否かを判定する。第2判定部922eは、例えば、有効なエラービットであることを示す「1」が付与されている場合には、I/Oデバイスが異常であると判定し、判定結果を異常処理部540へ通知する。一方、第2判定部922eは、例えば、有効なエラービットでないことを示す「0」が付与されている場合には、I/Oデバイスが正常であると判定し、タグテーブル921aから該当情報を消去する。
[実施例4に係る情報処理装置による処理の処理手順]
次に、図18を用いて、実施例4に係る情報処理装置800による処理の処理手順を説明する。図18は、実施例4に係る情報処理装置による処理の処理手順を説明するフローチャートである。
生成部922aが前回のアクセスから一定の時間が経過したと判定した場合には(ステップS601、Yes)、スイッチ920は、Read Onlyレジスタ読み出し処理を実施する(ステップS602)。なお、Read Onlyレジスタ読み出し処理は、図8のステップS102等と同様であるので、ここでは省略する。
第2判定部922eは、Read Onlyレジスタ読み出し処理を実施した結果、異常が検出されたか否かを判定する(ステップS603)。ここで、異常が検出された場合には(ステップS603、Yes)、第2判定部922eは、異常処理部540へ通知し、異常処理部540が異常処理を実施する(ステップS607)。一方、異常が検出されなかった場合には(ステップS603、No)、生成部922aは、I/Oデバイス300がAERを有しているか否かを判定する(ステップS604)。
I/Oデバイス300がAERを有していると判定した場合には(ステップS604、Yes)、スイッチ920は、AERレジスタに対してAERレジスタ検査用パケットを送信する(ステップS605)。一方、I/OデバイスがAERを有していないと判定した場合には(ステップS604、No)、スイッチ920は、処理を終了する。
第2判定部922eによってAERレジスタアクセスに対して異常が検出された場合には(ステップ606、Yes)、異常処理部540は、異常処理を実施する(ステップS607)。すなわち、第2判定部922eは、AERレジスタアクセスに対する応答パケットに有効なエラービットが含まれている場合に、異常と判定する。一方、第2判定部922eは、AERレジスタアクセスに対する応答パケットに有効なエラービットが含まれていない場合には正常と判定し(ステップ606、No)、タグテーブル921aから情報を消去する(ステップS608)。
[実施例4の効果]
上述してきたように、本実施例4では、I/Oデバイス300がPCI Expressで規格化されているAER機能を有している場合には、送信部922bは、生成部922aが生成した検査用パケットをAERレジスタへ送信する。第2判定部922eは、応答パケットに有効なエラービットが付与されているか判定することによって、I/Oデバイス300内部に生じた異常を検査し、検査した異常の詳細情報を取得することができる。
ところで、本願の開示する情報処理装置は、上述した実施例以外にも、種々の異なる形態にて実施されてよい。そこで、実施例5では、本願の開示する情報処理装置の他の実施例について説明する。
(レジスタアクセス処理)
例えば、実施例2、実施例3、及び実施例4では、I/O接続装置が共通レジスタのROレジスタへアクセスしてI/Oデバイスの異常を検出する例について説明したが、本願はこれに限定されるものではない。例えば、I/O接続装置は、I/Oデバイスに干渉しなければ、ROレジスタ以外のレジスタにもアクセス可能である。例えば、ROレジスタ以外に使用できるレジスタについて図19を用いて説明する。
図19は、本願で利用可能なコンフィグレーションレジスタのタイプの一例を示す図である。図19に示す「タイプ」は、利用可能なレジスタの略称を示し、「名称」は、利用可能なレジスタの正式名称を示す。例えば、「Hwlinit」は、正式名称が「Hardware Initialized」であり、ファームウェアで初期化されるレジスタであることを示す。また、「RO」は、正式名称が「Read―Only」であり、読み出し専用のレジスタであることを示す。また、「RW」は、正式名称が「Read―Write」であり、読み書き可能なレジスタであることを示す。また、「RW1C」は、正式名称が「Write−1−to−clear status」であり、1を書くとクリアされるレジスタであることを示す。また、「ROS」は、正式名称が「Sticky−Read−only」であり、リセットで初期化されない、読み出し専用レジスタであることを示す。また、「RWS」は、正式名称が「Sticky−Read−Write」であり、リセットで初期化されない、読み書き可能レジスタであることを示す。また、「RW1CS」は、正式名称が「Sticky−Write−1−to−clear status」であり、リセットで初期化されない、1を書くとクリアされるレジスタであることを示す。また、「RsvdP」は、正式名称が「Reserved and Preserved」であり、予約済みレジスタであることを示す。また、「RsvdZ」は、正式名称が「Reserved and Zero」であり、予約済みで書き込みは0でなければならないレジスタであることを示す。具体的には、情報処理装置は、PCI Expressデバイスが有するBase Addressレジスタにアクセス可能である。
また、図20を用いて、ROとRWの異なるタイプが混在するBase Addressレジスタについて説明する。図20は、異なるタイプが混在するBase Addressレジスタの一例を示す図である。Base Addressレジスタは、32bit有し、0ビットから3ビット目までの4bitはROレジスタである。
0ビット目は、「Memory Space Indicator」であり、値は常に0で、このベースアドレスレジスタがメモリ空間用のものであることを示す。また、1ビット目と2ビット目は、「Type」であり、ビットの組み合わせによってこのメモリブロックを配置可能なアドレス範囲を表示する。3ビット目は、「Prefetchable」であり、プリフェッチを行うとデータの転送効率が良くなる。
また、4ビットから31ビット目までの28bitは、RWレジスタである。したがって、I/O接続装置は、Base Addressレジスタの0ビットから3ビット目までのROレジスタ領域にアクセスすることで、I/Oデバイス内部の異常を早期に検査することができる。
また、I/Oデバイスの検査にどのAERレジスタにアクセスするかは、利用者によって任意に設定可能である。
また、実施例2に係る情報処理装置100において、送信部522bは、生成部522aから検査終了通知を受付けた場合に、CPU200からのパケットを送信するとして説明したが、これに限定されるものではない。例えば、CPU200からのパケットと同一タグを有する検査用パケットを第1判定部522dが受信した場合には、第1判定部522dがタグテーブル521aにある検査用パケットの情報を消去する。続いて、送信部522bが、検査用パケットの情報が消去されたことを受付けた場合に、CPU200からのパケットを送信してもよい。
(システム構成等)
本実施例において説明した各処理のうち自動的に行われるものとして説明した処理の全部または一部を手動的に行うこともできる。あるいは、手動的に行われるものとして説明した処理の全部又は一部を公知の方法で自動的に行うこともできる。この他、上記文章中や図面中で示した処理手順、制御手順、具体的名称については、特記する場合を除いて任意に変更することができる。
また、図示した各構成部は、機能概念的なものであり、必ずしも物理的に図示のごとく構成されていることを要しない。例えば、情報処理装置100は、第2判定部522eと異常処理部540とは統合されてもよい。また、生成部522aと送信部522bとは統合されてもよい。さらに、各装置にて行われる各処理機能は、その全部または任意の一部が、CPUおよび当該CPUにて解析実行されるプログラムにて実現され、あるいは、ワイヤードロジックによるハードウェアとして実現され得る。
また、情報処理装置100は、スイッチ2つを有し、I/Oデバイス300と400とを接続するとして説明したが、情報処理装置100が有するスイッチは2つに限定されない。例えば、情報処理装置100は、2台以上のI/Oデバイスを接続してもよい。また、情報処理装置は、接続するI/Oデバイスを二重化するように設計、構築されてもよい。
(異常処理)
異常処理部による異常処理は切り離すこととして説明したが、これに限定されない。異常処理部による異常処理の他の一例について図21を用いて説明する。図21は、I/Oデバイスとの接続が二重化されている場合の異常処理部による処理の一例を示す図である。図21に示すように、I/Oデバイスが多重化されている場合には、異常が生じたI/Oデバイスの接続を切断して多重化を解除し、正常なI/Oデバイスとのみ接続してもよい。また、第2判定部は、図示していないモニタへ検査結果を表示させてもよい。
以上の各実施例を含む実施形態に関し、さらに以下の付記を開示する。
(付記1)パケットを一意に識別するタグを付与した検査用パケットを生成する生成部と、
前記検査用パケットを入出力デバイスへ送信する送信部と、
パケットを受信する受信部と、
前記受信部によって受信された受信パケットのタグに基づいて、該受信パケットが、前記送信部から送信された前記検査用パケットに対する応答パケットであるか否かを判定する第1判定部と、
前記第1判定部によって前記受信パケットが応答パケットであると判定された場合に、前記受信パケットを解析して、入出力デバイスが異常であるか否かを判定する第2判定部と、
を有することを特徴とする入出力接続装置。
(付記2)前記送信部は、前記入出力デバイスがPCI Expressで規格化されているAERレジスタを有している場合には、該AERレジスタへ前記検査用パケットを送信することを特徴とする付記1に記載の入出力接続装置。
(付記3)前記送信部は、付与したタグと同一のタグを有する第2のパケットをCPUから受信した場合には、前記CPUから受信した前記第2のパケットを前記入出力デバイスへ送信しないように抑止制御することを特徴とする付記1または2に記載の入出力接続装置。
(付記4)前記送信部は、前記抑止制御されるCPUから受信したパケットと同一の検査パケットによる検査結果が正常である場合に、前記抑止制御されるパケットを入出力デバイスへ送信する抑止解除を実施することを特徴とする付記3に記載の入出力接続装置。
(付記5)前記送信部は、付与したタグと同一のタグを有する第3のパケットをCPUから受信した場合には、前記CPUから受信した前記第3のパケットのタグを書き換えて前記入出力デバイスに送信することを特徴とする付記1または2に記載の入出力接続装置。
(付記6)前記第2判定部によって異常と判定された入出力デバイスを当該装置から切り離す異常処理部をさらに有することを特徴とする付記1〜5のいずれか一つに記載の入出力接続装置。
(付記7)前記異常処理部は、前記第2判定部によって異常と判定された入出力デバイスが二重化されている場合には、当該入出力デバイスの二重化を解除し、異常が発見された入出力デバイスを切り離して正常な入出力デバイスのみで動作を継続することを特徴とする付記6に記載の入出力接続装置。
(付記8)パケットを一意に識別するタグを付与した検査用パケットを生成する生成部と、
前記検査用パケットを入出力デバイスへ送信する送信部と、
パケットを受信する受信部と、
前記受信部によって受信された受信パケットのタグに基づいて、該受信パケットが、前記送信部から送信された前記検査用パケットに対する応答パケットであるか否かを判定する第1判定部と、
前記第1判定部によって前記受信パケットが応答パケットであると判定された場合に、前記受信パケットを解析して、入出力デバイスが異常であるか否かを判定する第2判定部と、
を有することを特徴とする情報処理装置。
(付記9)パケットを一意に識別するタグを付与した検査用パケットを生成する生成ステップと、
前記検査用パケットを入出力デバイスへ送信する送信ステップと、
パケットを受信する受信ステップと、
前記受信ステップによって受信された受信パケットのタグに基づいて、該受信パケットが、前記送信ステップから送信された前記検査用パケットに対する応答パケットであるか否かを判定する第1判定ステップと、
前記第1判定ステップによって前記受信パケットが応答パケットであると判定された場合に、前記受信パケットを解析して、入出力デバイスが異常であるか否かを判定する第2判定ステップと、
を含んだことを特徴とする入出力デバイス検査方法。
10 I/O接続装置
11 生成部
12 送信部
13 受信部
14 第1判定部
15 第2判定部

Claims (6)

  1. パケットを一意に識別するタグを付与した検査用パケットを所定の時間間隔で生成する生成部と、
    前記検査用パケットが生成されると前記検査用パケットを入出力デバイスに送信し、CPUからパケットを受信すると、受信したパケットを前記入出力デバイスへ送信する送信部と、
    パケットを前記入出力デバイスから受信する受信部と、
    前記受信部によって受信された受信パケットのタグに基づいて、該受信パケットが、前記送信部から送信されて前記入出力デバイスにアクセスした前記検査用パケットに対する応答パケットであるか否かを判定する第1判定部と、
    前記第1判定部によって前記受信パケットが前記応答パケットであると判定された場合に、前記受信パケットを解析して、前記入出力デバイスが異常であるか否かを判定する第2判定部と、
    を有することを特徴とする入出力接続装置。
  2. 前記送信部は、前記入出力デバイスがPCI Expressで規格化されているAERレジスタを有している場合には、該AERレジスタへ前記検査用パケットを送信することを特徴とする請求項1に記載の入出力接続装置。
  3. 前記送信部は、付与したタグと同一のタグを有する第2のパケットをCPUから受信した場合には、前記CPUから受信した前記第2のパケットを前記入出力デバイスへ送信しないように抑止制御することを特徴とする請求項1または2に記載の入出力接続装置。
  4. 前記送信部は、付与したタグと同一のタグを有する第3のパケットをCPUから受信した場合には、前記CPUから受信した前記第3のパケットのタグを書き換えて前記入出力デバイスに送信することを特徴とする請求項1または2に記載の入出力接続装置。
  5. パケットを一意に識別するタグを付与した検査用パケットを所定の時間間隔で生成する生成部と、
    前記検査用パケットが生成されると前記検査用パケットを入出力デバイスに送信し、CPUからパケットを受信すると、受信したパケットを前記入出力デバイスへ送信する送信部と、
    パケットを前記入出力デバイスから受信する受信部と、
    前記受信部によって受信された受信パケットのタグに基づいて、該受信パケットが、前記送信部から送信されて前記入出力デバイスにアクセスした前記検査用パケットに対する応答パケットであるか否かを判定する第1判定部と、
    前記第1判定部によって前記受信パケットが前記応答パケットであると判定された場合に、前記受信パケットを解析して、前記入出力デバイスが異常であるか否かを判定する第2判定部と、
    を有することを特徴とする情報処理装置。
  6. パケットを一意に識別するタグを付与した検査用パケットを所定の時間間隔で生成する生成ステップと、
    前記検査用パケットが生成されると前記検査用パケットを入出力デバイスに送信し、CPUからパケットを受信すると、受信したパケットを前記入出力デバイスへ送信する送信ステップと、
    パケットを前記入出力デバイスから受信する受信ステップと、
    前記受信ステップによって受信された受信パケットのタグに基づいて、該受信パケットが、前記送信ステップから送信されて前記入出力デバイスにアクセスした前記検査用パケットに対する応答パケットであるか否かを判定する第1判定ステップと、
    前記第1判定ステップによって前記受信パケットが前記応答パケットであると判定された場合に、前記受信パケットを解析して、前記入出力デバイスが異常であるか否かを判定する第2判定ステップと、
    を含んだことを特徴とする入出力デバイス検査方法。
JP2010059979A 2010-03-16 2010-03-16 入出力接続装置、情報処理装置及び入出力デバイス検査方法 Active JP5515896B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2010059979A JP5515896B2 (ja) 2010-03-16 2010-03-16 入出力接続装置、情報処理装置及び入出力デバイス検査方法
US13/047,137 US8867369B2 (en) 2010-03-16 2011-03-14 Input/output connection device, information processing device, and method for inspecting input/output device

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2010059979A JP5515896B2 (ja) 2010-03-16 2010-03-16 入出力接続装置、情報処理装置及び入出力デバイス検査方法

Publications (2)

Publication Number Publication Date
JP2011192216A JP2011192216A (ja) 2011-09-29
JP5515896B2 true JP5515896B2 (ja) 2014-06-11

Family

ID=44647187

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2010059979A Active JP5515896B2 (ja) 2010-03-16 2010-03-16 入出力接続装置、情報処理装置及び入出力デバイス検査方法

Country Status (2)

Country Link
US (1) US8867369B2 (ja)
JP (1) JP5515896B2 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6241323B2 (ja) * 2014-03-06 2017-12-06 富士通株式会社 スイッチ装置、情報処理装置、情報処理装置の制御方法および情報処理装置の制御プログラム

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS58203533A (ja) 1982-05-24 1983-11-28 Meidensha Electric Mfg Co Ltd デ−タ処理装置
US4654846A (en) * 1983-12-20 1987-03-31 Rca Corporation Spacecraft autonomous redundancy control
JPH08227406A (ja) * 1995-02-22 1996-09-03 Hitachi Ltd 並列計算機
JP2000267950A (ja) * 1999-03-18 2000-09-29 Nec Corp デバイス試験診断システム及びそのデバイス試験診断方法並びにその制御プログラムを記録した記録媒体
US6721900B1 (en) 1999-12-22 2004-04-13 Rockwell Automation Technologies, Inc. Safety network for industrial controller having reduced bandwidth requirements
US6909923B2 (en) 1999-12-22 2005-06-21 Rockwell Automation Technologies, Inc. Safety communication on a single backplane
JP4804680B2 (ja) * 2001-09-21 2011-11-02 株式会社リコー データ転送用集積回路の評価装置
JP2003198550A (ja) * 2001-12-25 2003-07-11 Matsushita Electric Ind Co Ltd 通信装置及び通信方法
JP2006190150A (ja) * 2005-01-07 2006-07-20 Yaskawa Information Systems Co Ltd フィールドバスプロトコル検査装置
JP2007081938A (ja) * 2005-09-15 2007-03-29 Matsushita Electric Ind Co Ltd 装置診断システム
JP2009009481A (ja) 2007-06-29 2009-01-15 Ricoh Co Ltd テスト装置、高速シリアルコントローラ及び画像処理装置
JP5116497B2 (ja) 2008-01-31 2013-01-09 株式会社日立製作所 情報処理システム、i/oスイッチ及びi/oパスの交替処理方法
JP5163180B2 (ja) * 2008-02-26 2013-03-13 日本電気株式会社 デバイス制御装置
US7676617B2 (en) * 2008-03-31 2010-03-09 Lsi Corporation Posted memory write verification
JP4582180B2 (ja) * 2008-04-03 2010-11-17 パナソニック株式会社 データ伝送装置
US8412860B2 (en) * 2009-04-01 2013-04-02 Fusion-Io, Inc. Input/output (I/O) virtualization system
US20100306442A1 (en) * 2009-06-02 2010-12-02 International Business Machines Corporation Detecting lost and out of order posted write packets in a peripheral component interconnect (pci) express network

Also Published As

Publication number Publication date
US20110228681A1 (en) 2011-09-22
JP2011192216A (ja) 2011-09-29
US8867369B2 (en) 2014-10-21

Similar Documents

Publication Publication Date Title
US7715450B2 (en) Sideband bus setting system and method thereof
US7917664B2 (en) Storage apparatus, storage apparatus control method, and recording medium of storage apparatus control program
US8904055B2 (en) Switching control device and switching control method
JP4408126B2 (ja) 監視装置、半導体集積回路、および監視方法
CN102446146A (zh) 服务器及其避免总线冲突的方法
US9672127B2 (en) Bus interface system for interfacing to different buses
JP5191934B2 (ja) 状態監視システムおよび状態監視方法
JP2013161210A (ja) 情報処理装置、情報取得方法、及びプログラム
JP5515896B2 (ja) 入出力接続装置、情報処理装置及び入出力デバイス検査方法
CN113961478A (zh) 一种内存故障记录方法以及装置
JP5651962B2 (ja) Raid装置、異常デバイス検出装置および異常デバイス検出方法
CN107526677A (zh) 一种软件错误现场定位及处理的方法及装置
JP2008176477A (ja) 計算機システム
US10581555B2 (en) Information processing device and burst error reproducing method
JP4299634B2 (ja) 情報処理装置及び情報処理装置の時計異常検出プログラム
US8151176B2 (en) CPU instruction RAM parity error procedure
US7409605B2 (en) Storage system
US11733689B2 (en) Control system, programmable logic controller, and information processing method
US8489927B2 (en) Device for use in inspecting a CPU and method thereof
CN110928814A (zh) 串口硬盘传输异常检测方法、装置及电子设备
JP2006146839A (ja) 装置を管理するシステム及び方法
US20220050139A1 (en) System, apparatus and method for communicating debug messages on a sideband of a serial link according to a debug type messaging protocol
JP2013196410A (ja) サーバ装置及び障害管理方法及び障害管理プログラム
JP5510679B2 (ja) ディスクアレイ装置、ディスクアレイシステム、障害経路特定方法、及びプログラム
CN111309529B (zh) 依处理器信息完整测试处理器内通信链路的系统及方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20130108

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20131128

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20131210

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20140210

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20140317

R150 Certificate of patent or registration of utility model

Ref document number: 5515896

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150