JP2016189057A - 障害処理装置、その装置を使用する情報処理装置、障害処理方法及び障害処理プログラム - Google Patents

障害処理装置、その装置を使用する情報処理装置、障害処理方法及び障害処理プログラム Download PDF

Info

Publication number
JP2016189057A
JP2016189057A JP2015068011A JP2015068011A JP2016189057A JP 2016189057 A JP2016189057 A JP 2016189057A JP 2015068011 A JP2015068011 A JP 2015068011A JP 2015068011 A JP2015068011 A JP 2015068011A JP 2016189057 A JP2016189057 A JP 2016189057A
Authority
JP
Japan
Prior art keywords
identifier
information
response
pcie
storage area
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.)
Granted
Application number
JP2015068011A
Other languages
English (en)
Other versions
JP6600959B2 (ja
Inventor
妙嶋 慎二郎
Shinjiro Taejima
慎二郎 妙嶋
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.)
NEC Corp
Original Assignee
NEC Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by NEC Corp filed Critical NEC Corp
Priority to JP2015068011A priority Critical patent/JP6600959B2/ja
Publication of JP2016189057A publication Critical patent/JP2016189057A/ja
Application granted granted Critical
Publication of JP6600959B2 publication Critical patent/JP6600959B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Information Transfer Systems (AREA)

Abstract

【課題】 上位装置からの指令に対する下位装置からの応答が遅延する等の障害が原因で発生した誤ったデータが、上位装置および上位装置で稼働するソフトウェアによって読み出されることを防止する技術を提供すること。
【解決手段】 指令とその指令に対する応答を受け取ったことで終了する処理に対して、その処理を一意に区別する為に付与する識別子を、当該処理が未完了の期間中は当該識別子を他の処理に付与せず、当該処理が完了してから当該識別子を他の処理に割り当てることを許可する。
【選択図】 図1

Description

本発明は、障害処理装置、その装置を使用する情報処理装置、障害処理方法及び障害処理プログラムに関する。
高速インターフェース、とりわけシリアル伝送では、情報をパケット化して伝達することが良く用いられている。パケットを用いた伝送方式は周辺装置との接続に用いられ、さらに情報処理の機器内でプロセッサと周辺装置との接続にも用いられる。情報処理装置の機器内の接続方式は、例えばPCI Express(登録商標)(以後PCIeと記述する)のバスアーキテクチャがある。
PCIeは高速動作を実現できることから、一般的な情報処理装置に用いられている。しかしながら何等かの障害により、パケット送信に対する応答の受信が正常に完結しない場合に、障害の処理が正確に行われずに上位の情報処理装置のホスト等が、後から受け取った誤った情報を基に処理を続行する。結果としてシステムが不安定になる欠点が存在する。
このPCIeは、汎用機を始めとして、種々の情報処理装置に広く用いられており、近年ではシステムの安定動作が重要視されるメインフレームにも用いられることが多くなった。システムの安定稼働が必要なメインフレームにPCIeを適用するには、前述のPCIeの欠点を克服してシステムの安定動作を確保することが求められている。
例えば、特許文献1には、PCIeにおいて上位装置からの要求パケットに対して下位装置から規定の時間内に応答がない場合に、下位装置に対するインターフェースを行っているインターフェース装置がタイムアウトであると判断して上位装置に通知する。上位装置は、その通知を受け取ることでタイムアウトした要求パケットに代わる新たなパケットの再送を行う。この時に、上位装置は、再送の為に新たに作成したパケット自体に、最初に要求したパケットとは異なるパケットであることを示すフラグを書き込む。この書き込まれた情報により、再送が実行された後に下位装置から最初の要求パケットに対する応答パケットが送出されたとしても、インターフェース装置は、受け取ったパケットのフラグを見て古いパケットであるか否かを認識する。インターフェース装置が、当該パケットが古い要求に対する下位装置からの応答であると認識した場合、このパケットを無視し、新たに再送したパケットを正規のパケットと認識する。
また、特許文献2に記載されている技術において、上位装置に接続した下位装置の正常性を確認する為に、入出力接続装置は検査専用のパケットを生成して対象となる下位装置に送出する。入出力接続装置は、その応答が検査用パケットの応答である場合に受信パケットを解析して、当該下位装置が異常であるか否かを判定する。また、検査用のパケットと同一のタグを有するパケットに対して当該下位装置の検査が終了するまで、入出力接続装置は、ホストから当該下位装置に対するパケットを抑止する。
特開2007−249646号公報 特開2011−192216号公報
特許文献1の技術は、PCIeの仕様として明確には規定されていないパケットを構成するヘッダーの予備の情報記載領域に、再送した旨の情報(前述のフラグ)を記述し、この情報を基にパケットの識別を行う技術である。しかしながら、ヘッダーの予備の情報記載領域に記載した当該情報は、PCIeの規格には明確には規定されていない。従って、当該情報がこれらの機器に予期しない動作を引き起こす、あるいは不正の情報であるとして動作を停止させる等の不具合を発生させる懸念がある。また、上位装置においても、PCIeの仕様に準拠することを前提に作成された各種のソフトウェアが、予期しない情報を検出したとして異常終了するなど、意図しない動作を引き起こす懸念がある。したがって、安定稼働が必要なメインフレームに特許文献1の技術を適用することはできないという問題がある。
特許文献2には、下位装置からの応答が遅れて、タイムアウトを判断して応答の遅れたパケットを廃棄した後に当該パケットを受け取った場合に発生する障害を回避する技術の記載がない。したがって、下位装置から応答が遅れ、その結果上位装置において下位装置からの応答等の情報入手待ちによる動作の大幅な遅延が生じる場合には、受け取った情報が不正であることから発生する各種の障害を解消することができないという問題がある。
本発明の目的は、上述した問題点を解決する障害処理装置、その装置を使用する情報処理装置、障害処理方法及び障害処理プログラムを提供することにある。
具体的に、本発明は、上位装置が要求した指令に対する下位装置からの応答が遅延する等の障害が原因で発生した誤ったデータが、上位装置および上位装置で稼働するソフトウェアによって読み出されることを防止することを主たる目的とする。
障害処理装置は、情報群の中から当該情報を一意に区別する為に付与する識別子の一覧と前記識別子に関連づけられた第一の記憶領域とを備え、前記第一の記憶領域は、前記識別子を付与した前記当該情報を特徴付ける情報を前記当該情報自体から抽出した第二の情報と、当該識別子が使用中であるか否かを示す情報とを記憶する識別子記憶手段と、前記識別子記憶手段の前記識別子の一覧に記載された各々の識別子と関連づけられた第二の記憶領域を備え、前記第二の記憶領域は、当該前記識別子を付与した時刻を起点として測定した経過時間と、前記経過時間が予め定められた閾値に達したか否かを示す情報と、を記憶する経過時間記憶手段と、前記識別子が未使用の場合には前記当該識別子を他の情報の識別子として割り当てることを許可し、前記識別子が使用中であり且つ当該前記識別子に関連づけられた前記経過時間が前記閾値に達した場合には当該識別子を他の情報の識別子として割り当てることを許可しない制御手段と、を備える。
障害処理方法は、情報群の中から当該情報を一意に区別する為に付与する識別子の一覧と前記識別子に関連づけられた第一の記憶領域とを備え、前記第一の記憶領域に前記識別子を付与した前記当該情報を特徴付ける情報を前記当該情報自体から抽出した第二の情報と、当該識別子が使用中であるか否かを示す情報とを記憶し、前記識別子記憶手段の前記識別子の一覧に記載された各々の識別子と関連づけられた第二の記憶領域を備え、前記第二の記憶領域に当該前記識別子を付与した時刻を起点として測定した経過時間と、前記経過時間が予め定められた閾値に達したか否かを示す情報と、を記憶し、前記識別子が未使用の場合には前記当該識別子を他の情報の識別子として割り当てることを許可し、前記識別子が使用中であり且つ当該前記識別子に関連づけられた前記経過時間が前記閾値に達した場合には当該識別子を他の情報の識別子として割り当てることを許可しない。
障害処理プログラムは、情報群の中から当該情報を一意に区別する為に付与する識別子の一覧と前記識別子に関連づけられた第一の記憶領域とを備え、前記第一の記憶領域に前記識別子を付与した前記当該情報を特徴付ける情報を前記当該情報自体から抽出した第二の情報と、当該識別子が使用中であるか否かを示す情報とを記憶し、前記識別子記憶手段の前記識別子の一覧に記載された各々の識別子と関連づけられた第二の記憶領域を備え、前記第二の記憶領域に当該前記識別子を付与した時刻を起点として測定した経過時間と、前記経過時間が予め定められた閾値に達したか否かを示す情報と、を記憶し、前記識別子が未使用の場合には前記当該識別子を他の情報の識別子として割り当てることを許可し、前記識別子が使用中であり且つ当該前記識別子に関連づけられた前記経過時間が前記閾値に達した場合には当該識別子を他の情報の識別子として割り当てることを許可する処理をコンピュータに実行させる。
本発明は、上位装置が要求した指令に対する下位装置からの応答が遅延する等の障害が原因で発生した誤ったデータが、上位装置および上位装置で稼働するソフトウェアによって読み出されることを防止できる。
本発明の実施の第1の実施の形態における障害処理装置を示すブロック図である。 本発明の実施の第2の実施の形態における障害処理装置を示すブロック図である。 識別子(タグエントリー)記憶部20を示す図である。 経過時間(タイマーエントリー)記憶部30を示す図である。 リード処理を示すフロー図である。 応答処理のフロー図である。 タイムアウト処理のフロー図である。 メモリリードの動作を説明する図である。 応答タイムアウトを検出した時の動作を説明する図である。 応答タイムアウトにより障害が発生した時の動作を説明する図である。 識別子(タグエントリー)記憶部20を示す図である。 応答処理フロー図である。 タイムアウトo処理フロー図である。 タグエントリー解放処理フロー図である。 メモリリードが応答タイムアウトした後に後続のメモリリードを行った場合の動作を説明する図である。 64ビットアドレス形式のメモリアクセスリクエストで使用されるTLPヘッダーの図である。 32ビットアドレス形式のメモリアクセスリクエストで使用されるTLPヘッダーの図である。 応答アクセスリクエストで使用されるTLPヘッダーの図である。 メモリリードリクエストや構成アクセスリクエストに対する応答のTLPヘッダーの図である。 本発明の実施の第3の実施の形態における障害処理システムを示すブロック図である。 本発明の障害処理装置101の機能ブロック図である。 識別子(タグエントリー)記憶部22を示す図である。 経過時間(タイマーエントリー)記憶部32を示す図である。
[第1の実施の形態]
本発明の第1の実施の形態について、図面を参照して詳細に説明する。
図1は本発明の第1の実施の形態の障害処理装置180を示すブロック図である。
障害処理装置180は、制御部6と、識別子記憶部21と、経過時間記憶部31とを備えている。識別子記憶部21と、経過時間記憶部31は、制御部6に接続されている。制御部6は上位装置2から指令情報を受け取り、それを下位装置3へ出力する。制御部6は下位装置3からの応答情報を受け取り、上位装置2へ出力する。本発明は図1の構成に限定されるものではない。
識別子記憶部21は識別子が付された記憶領域を含む。識別子記憶部21の上位装置2が送出した指令(指令情報)に関連付けした識別子の記憶領域は、当該指令情報から抽出した下位装置3を特徴付ける情報と、当該指令情報に関連する識別子が使用中であるか否かを示す識別子使用フラグとを記憶する。
経過時間記憶部31は識別子記憶部21に配置された各々の識別子と関連づけられて、経過時間を記憶するカウンターを含む。すなわち、識別子ごとにカウンターが設定されている。経過時間記憶部31のカウンターは、当該識別子が付与された指令情報が制御部1から下位装置3に送出された時を起点としてカウントされる経過時間を、識別子ごとに記憶する。
制御部6は、上位装置2から下位装置3に向けた指令情報を受け取ると、識別子記憶部21から、使用フラグがOFF、すなわち未使用である識別子を選択する。制御部6は、当該指令情報の一部を、識別子記憶部21の、選択した識別子の記憶領域に書き込む。さらに制御部6は、下位装置3に、選択した識別子が付与された指令情報を出力すると同時に、選択した識別子に関連付けられた経過時間記憶部31のカウンターを、一定時間経過するごとに経過した時間が加算された数値に更新する。
経過時間記憶部31の当該識別子のカウンターが予め定めた閾値と一致した場合に、制御部6が当該識別子のカウンターがタイムアウトしたと判断する。
経過時間記憶部31の当該識別子のカウンターがタイムアウトしていない期間に制御部6が下位装置3から、指令情報に対する応答情報を受け取ると、当該応答情報に付与されている識別子が識別子記憶部21の記憶領域に存在するか否かを検索する。その検索の結果、識別子記憶部21に記憶されている当該識別子使用フラグが有効である場合、制御部6は受け取った応答情報(以降、単に「応答」ともいう)を上位装置2に送信し、識別子記憶装置21の当該識別子の記憶領域をリセットする。この操作で、制御部6は、当該識別子を新たに発生した上位装置2からの次の処理の識別のために割り当てることが可能となる。
次に、経過時間記憶部31の当該識別子に関連づけられた当該経過時間の数値がタイムアウトの閾値を超えた場合を説明する。
制御部6は、当該識別子に関連づけられた当該経過時間の値が別に定める閾値に達すると、当該識別子の指令に対する応答待ちが規定の時間を経過したと認識する。この場合、制御部6は、識別子記憶部21の当該識別子の記憶領域に配置されたタイムアウトフラグをONに設定して、タイムアウトであることを記録する。さらに制御部6は、当該識別子に関連する指令情報に対する応答がなくタイムアウトしたことを上位装置2に通知する。この処理により、当該識別子は、当該指令情報に対する処理が完了するまで保持され、他の指令に割り当てされない。上位装置2は当該識別子の処理が当該タイムアウトの通知を受け取り、タイムアウトしたことを認識する。
さらに、当該識別子のカウンターがタイムアウトした後に、制御部6が下位装置3から当該識別子に対応する応答を受け取った場合に、制御部6が受け取った当該応答の情報を廃棄する。制御部6が、識別子記憶部21経過時間記憶部31の当該識別子に対応する記憶領域を消去して、記憶内容のリセットを行う。この処理により、上位装置2からの新な指令に対して、前述のタイムアウトした識別子が割り当てられることを防止する。
以上説明した様に、本発明の第1の実施の形態によれば、タイムアウトした識別子が別の指令に割り当てられて、先に割り当てた時点の指令の応答が、後に割り当てた同じ識別子の情報であると誤認識されることを防止することが出来る。なぜなら、制御部6は、タイムアウトした識別子に対して、当該識別子の再割り当てを禁止し、前に割り当てられた識別子の応答が完結した後に当該識別子の再割り当てを許可するからである。
[第2の実施の形態]
第2の実施の形態について説明する。第2の実施の形態では、本発明の障害処理装置をPCIeに適用した場合を説明する。
PCIeではパケットベースのプロトコルが採用されている。また互いに関連・依存する複数の処理をまとめ、一体不可分の処理単位として扱うことをトランザクション処理と呼び、そのような処理単位をトランザクションと呼ぶ。PCIeにおけるプロトコル階層においてもトランザクション層があり、その層は、トランザクション層パケットの構築と処理を行っている。トランザクション層のパケットはTransaction_Layer_Packet(以下TLP)と呼ばれ、そのTLPのヘッダーに、接続した周辺機器に対する要求の情報が格納されている。
図2、図22及び図23を参照して本発明の第2の実施の形態について説明する。図2は本発明の第2の実施の形態における障害処理装置150を示すブロック図である。
障害処理装置150は、制御部1と、識別子記憶部22(以後タグエントリー記憶部22と呼ぶ)と、経過時間記憶部32(以後タイマーエントリー記憶部32と呼ぶ)とを備えている。
タグエントリー記憶部22と、タイマーエントリー記憶部32は制御部1に接続されている。制御部1はリクエストバッファー4と応答バッファー5を含む。制御部1は上位装置2から指令情報を受け取り、下位装置3へ出力する。制御部1は下位装置3からの応答情報を受け取り上位装置2へ出力する。本発明は図2の構成に限定されるものではない。
なお、本例では上位装置2はプロセッサあるいはプロセッサを搭載したカードである。下位装置3はPCIeスイッチ等に代表される周辺機器との接続を行うインターフェース装置である。
図22に示すタグエントリー記憶部22は、上位装置2から下位装置3に送出する指令情報の識別子であるタグエントリー番号(0、1、2、3、・・・、n;nは整数)と、その番号が付与された記憶領域22−0から記憶領域22−nを含む記憶装置である。各々の記憶領域22−0から記憶領域22−nは、上位装置2が下位装置3に送出する当該指令情報から抽出した下位装置3を特徴付ける情報、を記憶するデータ領域22−n−mと、当該タグエントリー番号が使用中であるか否かを示す有効フラグ22−n−1と、当該タグエントリー番号が付与された応答待ちでタイムアウトが発生したことを示すタイムアウトフラグ22−n−4を含む。
図23に示すタイマーエントリー記憶部32はタグエントリー記憶部22と関連づけられた当該タグエントリー番号と、当該タグエントリー番号が付与されたタイマー領域32−0からタイマー領域32−nを含む記憶装置である。タイマー領域32−0からタイマー領域32−nは、制御部1が下位装置3に指令を送出した時刻を起点として計る経過時間を記憶するタイマーカウント(タイマーカウント値と呼ぶ)32−n−2と当該タイマーカウント32−n−2が有効か否かを示す有効フラグ32−n−1とを含む。
図2に示すリクエストバッファー4は、下位装置3から上位装置2に対するリクエストTLPを一時記憶する。図2に示す応答バッファー5は、下位装置3から上位装置2に対する応答TLPを一時記憶する。前述のリクエストバッファー4および応答バッファー5に一時記憶された各々の情報は、その後制御部1により順次読み出される。
制御部1は上位装置2から下位装置3に向けた指令情報を受け取ると、タグエントリー記憶部22の記憶領域を検索し、有効フラグ22−n−1が未使用であるタグエントリー番号を選択する。制御部1は、当該指令情報の一部を当該タグエントリー番号が付与された記憶領域に書き込む。制御部1は、タグエントリー番号を付与した指令情報を下位装置3に出力する。更に、制御部1は、前述のタグエントリー番号と関連付けられた当該タイマーエントリー記憶部32にある当該タイマー領域32−nの記憶内容を、一定時間経過するごとに経過した時間を加算した数値に更新する。
制御部1は、当該タグエントリー番号に関連づけられたタイマー領域の当該経過時間を記憶するタイマーカウンターの数値が、予め定めた閾値を超えていない期間中に、制御部1が下位装置3から応答情報を受け取ると、当該応答情報に付与されているタグエントリー番号と同じ番号がタグエントリー記憶部22の記憶領域に存在するか否かを検索する。
制御部1が検索した結果、タグエントリー記憶部22に記憶されている当該タグエントリー番号の記憶領域にある有効フラグ22−n−1が有効である場合は、制御部1が受け取った応答情報を上位装置2に送信する。
さらに、制御部1が、タグエントリー記憶部22の当該タグエントリー番号の記憶領域の情報をリセットする。この操作で、制御部1が当該タグエントリー番号は新たに発生した上位装置2からの次の指令の識別に当該タグエントリー番号を割り当てすることを可能にする。
次に、タイマーエントリー記憶部32の当該タグエントリー番号に関連づけられたタイマー領域のタイマーカウントの値がタイムアウトの閾値を超えた場合を説明する。
制御部1は、当該タグエントリー番号に関連づけられたタイマー領域のタイマーカウントの値が別に定める閾値に達すると、当該タグエントリー番号の指令に対する応答待ちが規定の時間を経過したと認識する。制御部1が、タグエントリー記憶部22の当該タグエントリー番号の記憶領域に配置されたタイムアウトフラグをONに設定して、タイムアウトであることを表示する。制御部1が上位装置2に当該タグエントリー番号の指令に対する応答がタイムアウトしたことを通知する。この処理により、当該タグエントリー番号は、当該指令に対する処理が完了するまで保持され、他の指令に割り当てされない。上位装置2は当該タグエントリー番号の処理が、当該タイムアウトの通知を受け取り、タイムアウトしたことを認識する。
さらに、当該タグエントリー番号に関連づけられたタイマー領域のタイマーカウントがタイムアウトした後に、制御部1が、下位装置3から当該タグエントリー番号に対応する応答を受け取った場合は、制御部1が、下位装置3から受け取った当該応答の情報を廃棄する。制御部1が、タグエントリー記憶部22及びタイマーエントリー記憶部32の当該タグエントリー番号に対応する記憶領域およびタイマー領域の記憶を消去する。この処理により、制御部1が上位装置2からの新な指令に対して、前述のタイムアウトしたタグエントリー番号を割り当てられることを防止できる。なお、本例ではリクエストバッファー4と応答バッファー5が制御部1の内部に配置した例を説明したが、制御部1の外部に配置した構成にしてもよい。
以上説明した様に、本発明の第2の実施形態によれば、パケットの応答が何等かの理由で遅れたことで、当該トランザクション処理がタイムアウトにより完結しない場合に、タグエントリー番号に関連づけられた記憶領域の記憶内容を廃棄し、廃棄前の記憶領域に記憶した応答情報を上位装置が誤って受け取ることによる誤動作を防止することが出来る。なぜなら、タイムアウトしたタグエントリー番号に対して、当該タグエントリー番号の再割り当てを禁止し、前に割り当てられたタグエントリー番号が付与された指令の応答が完結した後に当該タグエントリー番号の再割り当てを許可するからである。
[第3の実施の形態]
本発明の第3の実施の形態について図を参照して説明する。図20は情報処理装置1000の本発明の障害処理装置を適用した情報処理装置のブロック図である。
情報処理装置1000は、中央処理装置300、デバイス(DEV)130、PCIeスイッチ120、PCIeカード140〜PCIeカード143、および外部記憶装置2000、外部記憶装置3000を含む。
中央処理装置300は、演算処理を行うプロセッサ100、障害処理装置101、障害処理装置102及びデータを格納するメモリ(MEM)110を含む。
プログラム200はプロセッサ100の上に展開され、プロセッサ100を制御して各種処理を行う。(プログラム200は図示していない。)
図21は障害処理装置101の機能ブロック図である。障害処理装置(以後PCIeコントローラと呼ぶ)101は、制御部1と、識別子記憶部20(以後、タグエントリー記憶部20と呼ぶ)と、経過時間記憶部30(以後、タイマーエントリー記憶部30と呼ぶ)とを備えている。
タグエントリー記憶部20と、タイマーエントリー記憶部30は、制御部1に接続されている。制御部1はリクエストバッファー4と応答バッファー5を含む。制御部1はプロセッサ100から指令情報を受け取り、PCIeスイッチ120へ出力する。
図3を用いてタグエントリー記憶部20を説明する。タグエントリー記憶部20は、上位装置であるプロセッサ100から下位装置3であるPCIeスイッチ120に送出する指令情報の識別子であるタグエントリー番号と、その番号が付与された複数の記憶領域20−0から記憶領域20−nを含む記憶装置である。前述の記憶領域は、当該記憶領域20−nが使用され有効であることを示す有効フラグ20−n−1と、プロセッサ100から指示された要求情報を格納するリクエスト情報部20−n−2と、プロセッサ100からの指示に従って作成しPCIeスイッチ120に送信したTLPのHeaderを格納するTLPヘッダー部20−n−3を含む。
図4を用いてタイマーエントリー記憶部30を説明する。
タイマーエントリー記憶部30は、制御部1がPCIeスイッチ120へのリクエストに対する応答のタイムアウト監視を行うための情報を記憶する記憶装置である。タイマーエントリー記憶部30は、前述のタグエントリー番号と、そのタグエントリー番号に関連づけられたタイマー領域30−0からタイマー領域30−nを含む。タイマーエントリー記憶部30は、タイマー領域30−nのタイマーが有効化どうかを示す有効フラグ30−n−1と、タイマーカウント(タイマーカウント値と呼ぶ)30−n−2を含む。
制御部1はPCIeスイッチ120からの応答情報を受け取りプロセッサ100へ出力する。
PCIeスイッチ120は、障害処理装置101を経由したプロセッサ100と、ネットワーク(図示していない)、PCIeカード140からPCIeカード143の各々に接続された外部記憶装置2000及び外部記憶装置3000との接続の切り替えを行う。
PCIeコントローラ101は、プロセッサ100とPCIeスイッチとの中間に位置し、プロセッサ100とPCIeカード140からPCIeカード143とのパケット通信で発生する障害の処理を行う。
障害処理装置(PCIeコントローラと呼ぶ)102は、PCIeスイッチ120を経由しない特定の処理を行うデバイス130とプロセッサ100とを接続するとともに、当該装置間のパケット通信で生じる障害の処理を行う。
図20において、外部記憶装置2000及び外部記憶装置3000はPCIeカードと各々に接続した磁気ディスク装置などであり、データを記憶し、プロセッサ100からの指令に基づきデータの書き込み、読出しを行う。
PCIeカード140からPCIeカード143は、パケットベースのシリアルインターフェースの信号を、接続する先の周辺装置等各々のインターフェース信号及びコネクタ形状に変換する。
PCIeコントローラ102とデバイス130はPCIe_I/F131で接続する。PCIeコントローラ101とPCIeスイッチ120はPCIe_I/F121で接続する。PCIeスイッチ120とデバイス130はPCIe_I/F122で接続する。PCIeスイッチ120とPCIeカード140はPCIe_I/F123で接続する。PCIeスイッチ120とPCIeカード141はPCIe_I/F124で接続する。PCIeスイッチ120とPCIeカード142はPCIe_I/F125で接続する。PCIeスイッチ120とPCIeカード143はPCIe_I/F126で接続する。PCIeカード140と外部記憶装置2000はインターフェース2001で接続する。PCIeカード141と外部記憶装置2000はインターフェース2002で接続する。PCIeカード142と外部記憶装置3000はインターフェース3001で接続する。PCIeカード143と外部記憶装置2000はインターフェース3002で接続する。
入出力デバイスとのデータ交換の方法について説明する。
上位装置2から外部記憶装置2000又は外部記憶装置3000に指令を出力する場合、PCIeカード140からPCIeカード143のいずれかを経由して指令が伝達される。
プロセッサ100からPCIeカード140からPCIeカード143に対する指令はプロセッサ100が入出力デバイスにアクセスする為の命令をMEM110にアクセスする為の命令と同じアドレス空間で扱うことで入出力デバイに対する操作を実現する。この方法は、Memory_Mapped_Input_Output(以後MMIOと呼ぶ)と呼ばれる。以後、本発明の動作説明では、このMMIOを前提として説明する。
ここで、PCIeのTLPヘッダーの内容を図16、図17、図18及び図19に示す。
ある装置から他の装置に対して行う指令をリクエストとする。またその指令に対する他の装置からの出力を応答とする。TLPの内容は、要求内容やリクエストか応答かに応じて形式がそれぞれ異なっている。TLPヘッダーの詳細やTLPを受信したときの動作はPCIeスペックに記載されているので、本発明に関係があることについてのみ説明する。
図16、17は主にメモリアクセスリクエストで使用されるTLPヘッダーで、図16が64bitアドレス形式で図17が32bitアドレス形式となっている。図16、17及び18に記載のFmt(フォーマット)とType(タイプ)が要求内容を示し、アドレスが要求先を示している。図18は構成アクセスリクエストで使用されるTLPヘッダーで、要求先がBus_Number(バス番号)とDevice_Number(デバイス番号)、Function_Number(機能番号)、Register_Number(レジスタ番号)によって指定されている。
図17のリクエスターID(IDentifier)41、図18のリクエスターID51及び図19のリクエスターID61は要求元を示す識別子を示す。図17のタグ42、図18のタグ52及び図19のタグ62はパケットに付与されたタグエントリー番号を示す。このリクエスターIDとタグの情報がそれぞれ抽出されて、図17、図18、図19に示すトランザクションID70を形成し、応答がリクエストに対応するものかどうかを制御部1が判断する際に使用される。
なお、本例のトランザクションID70は、前述のリクエスターIDとタグとを組み合わせた情報である。制御部1が、各種のリクエストのTLPや応答のTLPに含まれるリクエスターIDや関連するタグを索引して認識する。しかし、制御部1が、トランザクションID70用に専用に記憶領域を準備して、その領域に前述のリクエストのTLPや応答のTLPから必要な情報を抽出して書き込み、その情報を利用することでもよい。
図19はメモリリードリクエストや構成アクセスリクエストに対する応答のTLPヘッダーの詳細を示す図である。応答のTLPヘッダーは、制御部1が応答に対応するリクエストを参照して、制御部1が識別するためのリクエスターID61とタグ62、応答元を示す応答IDや要求の結果を示す応答ステータスを持っている。リクエスターID61とタグ62は、応答に対応するリクエストのTLPに格納されていたリクエスターID41、リクエスターID51とタグ42、タグ52の情報をコピーして、持ちまわったものである。PCIeコントローラ101が、リクエストと応答のトランザクションID70を比較することでリクエストに対する応答が応答されたかどうかを判断する。
次に、情報処理装置1000における、PCIeのインターフェースの動作について説明する。
まず、図8を用いて、PCIeカード140〜PCIeカード143からのメモリリードの動作を説明する。
プロセッサ100上で動作するソフトウェア200が、PCIeカード140〜PCIeカード143のレジスタなどを読み出す場合、プロセッサ100の読出し命令をPCIeカード140〜PCIeカード143のレジスタを示すアドレスを指定して、読出し指令を実行する(a−1)。
プロセッサ100は、読出し命令を実行されるとPCIeコントローラ101に前記アドレスを指定してメモリリードのTLPコマンドの送信を指示する(a−2)。
PCIeコントローラ101は、メモリリードを指示されるとタグ番号をタグエントリー記憶部20から取得し(a−3)、リードリクエストTLPを作成してPCIe_I/F121にTLPコマンドを送信する(a−4)。この時、リクエスターIDにはPCIeコントローラを識別する値が格納され、リクエストに対する応答を制御部1が識別する。その為、トランザクションIDを含むリクエストTLPが、タグエントリー記憶部20の当該タグエントリー番号の記憶領域に記憶される。また、応答受信時に要求元のプロセッサ100に応答を返すためプロセッサ100の要求情報が、タグエントリー記憶部20の当該タグエントリー番号の記憶領域に保持される。
次に、PCIe_I/F121に送信されたリードリクエストTLPのTLPコマンドがPCIeスイッチ120を介して目的のPCIeカード140〜PCIeカード143のいずれかに送信される(a−5)。
PCIeカード140〜PCIeカード143はリードリクエストTLPを受信すると対応する処理を行い、応答TLPを作成して読み出したデータを付けてPCIeコントローラ101に応答TLPを送信する(a−6)。この時、トランザクションIDはリードリクエストTLPのものが持ちまわされ、応答IDにはPCIeカード140〜PCIeカード143のいずれであるかを識別する値が格納される。
PCIeコントローラ101はPCIeスイッチ120を介してPCIeカード140〜PCIeカード143からの応答TLPを受信すると記憶していたリクエストTLPと応答TLPのトランザクションIDを比較する。前述の比較した結果が、一致した場合はリクエストに対する応答であると判断する。PCIeコントローラ101は、付随していた応答データをプロセッサ100に送信し(a−9)、リクエストで使用していたタグエントリー番号を解放する(a−8)。この解放処理によりタグエントリー記憶部20の当該タグエントリー番号は他の処理に割り当てすることが出来るようになる。また、PCIeコントローラ101が、リクエストTLPの記憶などに使用していた記憶領域の情報を消去する。そして、プロセッサ100はPCIeコントローラ101からの応答情報を受けると、読出し命令を完了してソフトウェア200に読み出したデータを返す(a−10)。
次に、図9を用いて、PCIeカード140〜PCIeカード143が何らかの理由によりリードリクエストTLPに対して応答TLPを返えさない、あるいは応答が遅くなる等の場合の動作を説明する。
ソフトウェア200がPCIeカード140〜PCIeカード143のレジスタなどを読み出すために読出し命令を実行し、PCIeカード140〜PCIeカード143にリードリクエストTLPが送信されるまでは図8に示す動作と同じである(b−1〜b−5)。
ここで、PCIeカード140〜PCIeカード143が一定時間内に応答TLPを送信しないとPCIeコントローラ101がタイムアウトを検出する(b−10)。PCIeコントローラ101が記憶していたプロセッサ100からの要求情報に基づいて、プロセッサ100にエラーデータを送信し(b−8)、確保していたタグエントリー番号及びタグエントリー番号に関連づけられた記憶領域、タイマー領域を解放する(b−11)。この解放処理によりタグエントリー記憶部20の当該タグエントリー番号は他の処理に割り当てすることが出来るようになる。また、同時にリクエストTLP等の記憶に使用していた当該タグエントリー番号に関連づけられた記憶領域の情報が消去される。プロセッサ100はPCIeコントローラ101よりエラーデータを受信するとソフトウェア200にそのエラーデータを通知する(b−9)。
その後、PCIeカード140〜PCIeカード143が遅れて応答TLPを返した場合(b−6、b−7)、PCIeコントローラ101がその応答TLPを受信する。PCIeコントローラ101が、応答TLPに付与されたタグエントリー番号がタグエントリー記憶部20の各々の記憶領域に存在するか検索する。しかし、応答TLPに付与されたタグエントリー番号に対応するトランザクションIDを持つタグエントリー番号が存在しないため、無効なTLPと判断し、予期しない応答として、制御部1が受け取った応答TLPを廃棄する等の処理を行う(b−12)。
以上が、応答が正常に出力され、定常的にデータの授受が行われた場合の動作である。
次に、図5のフローチャートを用いて、プロセッサ100からリードの指令を実行した場合の動作を説明する。
制御部1はプロセッサ100からメモリリードを指示されるとリード処理(ステップ300)を実行する。
リード処理(ステップ300)では、制御部1が、タグエントリー記憶部20より記憶領域20−nの各々を読み出す(ステップ301)。制御部1が、各々のタグエントリー20−nの有効フラグ20−n−1を参照して未使用の記憶領域20−nがあるか否かを判断する(ステップ302)。制御部1が、有効フラグ20−n−1を設定して記憶領域20−nを確保する(ステップ303)。
そして、制御部1が、プロセッサ100からのメモリリードの要求情報に従ってリードリクエストTLPを作成する(ステップ304)。この時、制御部1が、トランザクションIDのタグ番号に記憶領域20−nの番号nを格納する。
その後、プロセッサ100からのメモリリードの要求情報を、制御部1が記憶領域20−nのリクエスト情報部20−n−2に格納する。制御部1が、作成したリードリクエストTLPのTLPヘッダーを記憶領域20−nのTLPヘッダー部20−n−3に格納する(ステップ305)。
また、制御部1が、記憶領域20−nに対応するタイマー領域30−nの有効フラグ30−n−1とタイマーカウント値30−n−2を設定する。制御部1が、タイマーを起動する(ステップ306)。制御部1が、最後に作成したリードリクエストのTLPコマンドをPCIeスイッチ120に送信して処理を終える(ステップ307、ステップ308)。
これにより、PCIeカード140〜PCIeカード143がリードリクエストTLPを受信すると、読み出されたデータを付けて応答TLPをPCIeコントローラ101に対して送信する。
次に、図6のフローチャートを用いて応答処理の動作を説明する。PCIeコントローラ101の制御部1が応答TLPを受信すると応答の処理を実行する。
応答処理(ステップ400)では、制御部1が、応答バッファー5から受信した応答TLPを読み出し(ステップ401)、制御部1が、タグエントリー20−nの各々を読み出す(ステップ401)。制御部1が、応答TLPと同じトランザクションIDを持つ有効な記憶領域20−nがあるか否かを判断(ステップ403)。
ここで同じトランザクションIDを持つ記憶領域20−nが無い場合は、制御部1が、応答TLPを予期しない応答として処理し(ステップ408)、処理を終える(ステップ409)。
応答TLPと同じトランザクションIDを持つ記憶領域20−n(タグエントリーの記憶領域)がある場合(ステップ403:YES)、その記憶領域20−nに格納されたリクエストに対する応答に対する処理になる。この場合、制御部1が、記憶領域20−nに対応するタイマー領域30−nの有効フラグ30−n−1をクリアしてタイマーを停止し(ステップ404)、記憶領域20−nのリクエスト情報部20−n−2に従って応答TLPのデータをプロセッサ100に送信する(ステップ405)。
そして、制御部1が、記憶領域20−nの有効フラグ20−n−1をクリアして記憶領域20−nを解放して(ステップ406)、処理を終える(ステップ407)。
次に、図7のフローチャートを用いて、PCIeカードからの応答が遅延したことによって応答タイムアウトになった場合の動作を説明する。
応答タイムアウトは、制御部1が、有効なタイマー領域30−nのタイマーカウント値30−n−2の数値を減算してその数値が0になった時に、発生させる。
タイムアウト処理(500)では、制御部1が、該当するタイマー領域30−nの有効フラグ30−n−1をクリアしてタイマーの停止と解放を行い(ステップ501)、タイマー領域30−nに対応する記憶領域20−nのリクエスト情報部20−n−2に従ってエラーデータをプロセッサ100に送信する(ステップ502)。その後、制御部1が、記憶領域20−nの有効フラグ20−n−1をクリアすることで当該20−nのタグエントリー番号を解放し(ステップ503)、処理を終える(ステップ504)。
次に、図10を用いて、本発明の障害処理装置の動作を行わない場合に、情報処理装置1000に障害が発生する状況を説明する。図10は、PCIeカード140〜PCIeカード143に対して複数のメモリリードが行われている状態で任意のメモリリードが応答タイムアウトになった場合の動作を示す。
ソフトウェア200が、PCIeカード140〜PCIeカード143のメモリリードを行う為に、プロセッサ100に読出し指令を実行する(c−1)。プロセッサ100がPCIeコントローラにコマンドを送信する(c−2)。PCIeコントローラ101がリードリクエストのTLPコマンドをPCIeスイッチ120に送信する(c−3)。PCIeスイッチ120がTLPコマンドをPCIeカード140〜PCIeカード143にTLPコマンドを送信してPCIeカード140〜PCIeカード143がそれを受信する(c−4)。しかし、PCIeカード140〜PCIeカード143が何らかの理由により応答の送信が遅れると、PCIeコントローラ101は応答タイムアウトを検出して(c−17)タグエントリー番号を解放し(c−18)、プロセッサ100にエラーデータ(c−5)を返す。ソフトウェア200は、エラーデータを受け取り、読み出しが失敗したことが分かる(c−6)。
しかし、この後、ソフトウェア200がPCIeカード140〜PCIeカード143のメモリリードを行うことがある。この場合に、PCIeコントローラ101が応答タイムアウトになったリクエストと同じタグエントリー番号を取得してしまう。そして、PCIeカード140〜PCIeカード143にリードリクエストTLPを発行した後(c−7からc−10)に、前回のリードリクエストTLPに対する応答TLPが遅れてPCIeコントローラ101に到着する現象(c−11、c−12)が発生する。この結果、後続のリードリクエストTLPにおけるトランザクションIDと応答タイムアウトになった応答TLPのトランザクションIDが一致してしまう。従って、この場合には、PCIeコントローラ101は先行のリードリクエストTLPに対する応答TLPを後続のリードリクエストTLPに対する応答TLPとして誤って処理してしまう。そして、制御部1がプロセッサ100に間違った応答データを出力して(c−13)、ソフトウェア200に間違った読み出しデータを渡してしまう(c−14)。これは、制御部1が、ソフトウェア200に間違ったデータを渡すことになり、ソフトウェアが誤動作する原因となる。
次に、図15及び図11を用いて、本発明の障害処理装置を動作させて、ソフトウエア200が誤動作することを回避する動作について説明する。本例は、PCIeカード140〜PCIeカード143のメモリリードが応答タイムアウトした後に後続のメモリリードを行った場合で説明する。
まず、図21のPCIeコントローラ101の制御部1において、記憶領域20−nに応答タイムアウトが発生したことを示すタイムアウトフラグ20−n−4(図11参照)を設ける。
最初にソフトウェア200がPCIeカード140〜PCIeカード143のメモリリードを行ってPCIeカード140〜PCIeカード143の応答が遅れることによって応答タイムアウトが発生する状況である。この状況は、図15において、状態(d−1〜d−4、d−20)である。この状態は、図10の状態(c−1〜c−4、c−17、)による説明と同じである。
ここで、PCIeコントローラ101が応答タイムアウトを検出したとき、制御部1はタイムアウト処理(ステップ700)を実行する。
図13のタイムアウト処理のフローチャートを参照すると、タイムアウト処理(700)では、制御部1が、タイマー領域30−nのタイマーを停止する。制御部1が、有効フラグ30−n−1をクリアしてタイマー領域30−nを解放する(ステップ701)。制御部1が、タイマー領域30−nに対応する記憶領域20−nのリクエスト情報部20−n−2の要求情報に従い、エラーデータをプロセッサ100に送信する(ステップ702)、状態(d−5)。そして、制御部1が、記憶領域20−nのタイムアウトフラグ20−n-4を設定して処理を終える(ステップ703、ステップ704)、状態(d−20)。これにより、応答タイムアウトになったリクエストTLPで使用されていたタグエントリー番号は保持されたままとなり、応答タイムアウトでは、タグエントリー番号は解放されない。
次に、ソフトウェア200が後続のメモリリードを行ってPCIeコントローラ101がその指示を受けたとき、制御部1は図5のリード処理(300)を実行する。これは図15における状態(d−7、d−8)の動作である。
このとき、応答タイムアウトになったリクエストTLPで使用された記憶領域20−nは確保されたままなので、制御部1は、保留したタグエントリー番号以外の記憶領域20−nが選択される。これは、状態(d−21)である。これにより、後続のメモリリードのリードリクエストTLPにおけるトランザクションIDは先行の応答タイムアウトになったリードリクエストTLPとは異なったものになる。これは、状態(d−9、d−10)である。
ここで、先行のリードリクエストTLPに対する応答TLPをPCIeコントローラが受けた場合には、図12のフローチャートに示す応答処理(600)が実行される。制御部1が、応答バッファー5から受信した応答TLPを取り出す(ステップ601)。状態(d−11、d−12)。制御部1が、タグエントリー20−nの各々を読み出す(602)。制御部1が、応答TLPと同じトランザクションIDを持つタグエントリー20−nがあるか判断する(ステップ603)。
このとき、対応する記憶領域20−nは確保されたままなのでトランザクションIDは一致する(ステップ603:Yes)。制御部1が記憶領域20−nのタイムアウトフラグ20−n-4が設定されていることを確認する(ステップ604)。制御部1が、タイムアウトフラグ20−n−4が設定されていることを認識して、応答TLPは予期しない応答であると判断(ステップ605:Yes)。そして予期しない応答に対する処理を行う(ステップ612)。その後、当該処理を終了する(ステップ613)。
これにより、応答タイムアウトになったリードリクエストTLPに対する応答TLPは、予期しない応答として破棄され、プログラムに間違ったデータを送信することが防止される。状態(d−22)。
そして、PCIeカード140〜PCIeカード143から後続のリードリクエストTLPに対する応答TLPが送信される。これは状態(d−13)である。PCIeコントローラ101がその情報を受信すると、状態(d−14)、制御部1は図12の応答処理(600)を実行する。制御部1が、応答バッファー5から応答TLPを取り出し(ステップ601)、タグエントリー記憶部20より同じトランザクションIDを持つタグエントリー20−nがあるか判断する(ステップ603)。
このとき、対応する記憶領域20−nは確保されているので、制御部1が、記憶領域20−nのタイムアウトフラグ20−n−4の内容を確認する(ステップ604)。
制御部1が、タイムアウトフラグ20−n−4が設定されていないことを認識して、応答がタイムアウトになっていないと判断する(ステップ605:No)。そして、制御部1が、記憶領域20−nに対応するタイマー領域30−nのタイマーを停止する。制御部1が、有効フラグ30−n−1をクリアしてタイマー領域30−nを解放し(ステップ606)、記憶領域20−nのリクエスト情報部20−n−3の要求情報に従って応答TLPの応答データをプロセッサ100に送信する(ステップ607)。状態(d−15)
その後、制御部1が、記憶領域20−nの有効フラグ20−n−1をクリアしてタグエントリー20−nを解放して処理を終える(ステップ608、ステップ609)。状態(d−23)。
PCIeコントローラ101から応答データを受信したプロセッサ100は読出し命令を完了させてプログラムに受信した読出しデータを渡す。状態(d−16)。これにより、プログラム200はPCIeカード140〜PCIeカード143のメモリリードに対応したデータを受信することができる。
その後さらに、プログラム200はPCIeカード140〜PCIeカード143をリセットするなどして障害処理を行い、PCIeカード140〜PCIeカード143から応答タイムアウトになったリードリクエストTLPに対応するトランザクションIDが使用されないことを保証する。その後、プログラム200は、PCIeコントローラ101の特定のレジスタに書き込みを行う為に、書き込み指令を発行する。状態(d−17)プロセッサ100は、PCIeコントローラ101に対して、応答タイムアウトで保持したままとなっている記憶領域20−nの解放を指示する解放コマンドを送信する。状態(d−18)。
PCIeコントローラ101は、前述のソフトウェア200からの指示を制御部1にお伝達し、制御部1が、図14のフローに示すタグエントリー解放処理(800)を行う。
タグエントリー解放処理(800)では、記憶領域20のタイムアウトフラグ20−n−4が設定されている全タグエントリー番号の有効フラグ20−n−1とタイムアウトフラグ10−n−4をクリアし、解放を行う(ステップ801)。
この操作により、応答タイムアウトONにさり、確保されたままとなっていたタグエントリーが、以後のパケットを生成する作業に用いるタグエントリーに使用することが可能になる。状態(d−24)。
以上説明した様に、本発明の第3の実施形態によれば、PCIeのデバイスからの応答がタイムアウトしてトランザクション処理が完結しない場合に、情報処理装置のプログラム等が、誤ったデータの影響をうけて動作が不安定になることを防止できる。なぜなら、制御部1が、PCIeのパケット処理で、タイプアウトとなったパケットのタグエントリー番号を使用しない様に無効化して、障害が解消された時に有効化することで、同じタグエントリー番号が別の指令に対して、誤って割り当てられることを防止できるからである。
1 制御部
2 上位装置
3 下位装置
4 リクエストバッファー
5 応答バッファー
6 制御部
20 識別子記憶部
21 識別子記憶部
22 識別子記憶部
30 経過時間記憶部
31 経過時間記憶部
32 経過時間記憶部
100 プロセッサ
101 障害処理装置
102 障害処理装置
120 PCIeスイッチ
121 PCIe_I/F
122 PCIe_I/F
123 PCIe_I/F
124 PCIe_I/F
125 PCIe_I/F
126 PCIe_I/F
130 デバイス
131 PCIe_I/F
140 PCIeカード
141 PCIeカード
142 PCIeカード
143 PCIeカード
150 障害処理装置
180 障害処理装置
200 プログラム
300 中央処理装置
1000 情報処理装置
2000 外部記憶装置
2001 インターフェース
2002 インターフェース
3000 外部記憶装置
3001 インターフェース
3002 インターフェース

Claims (7)

  1. 情報群の中から当該情報を一意に区別する為に付与する識別子の一覧と前記識別子に関連づけられた第一の記憶領域とを備え、前記第一の記憶領域は、前記識別子を付与した前記当該情報を特徴付ける情報を前記当該情報自体から抽出した第二の情報と、当該識別子が使用中であるか否かを示す情報とを記憶する識別子記憶手段と、
    前記識別子記憶手段の前記識別子の一覧に記載された各々の識別子と関連づけられた第二の記憶領域を備え、前記第二の記憶領域は、当該前記識別子を付与した時刻を起点として測定した経過時間と、前記経過時間が予め定められた閾値に達したか否かを示す情報と、
    を記憶する経過時間記憶手段と、
    前記識別子が未使用の場合には前記当該識別子を他の情報の識別子として割り当てることを許可し、前記識別子が使用中であり且つ当該前記識別子に関連づけられた前記経過時間が前記閾値に達した場合には当該識別子を他の情報の識別子として割り当てることを許可しない制御手段と、
    を備える障害処理装置。
  2. 上位装置が出力した指令に対する下位装置からの応答情報を一時記憶する応答情報緩衝記憶装置と前記下位装置が出力する前記上位装置に対する要求情報を一時記憶する要求情報緩衝記憶装置とを更に備え、前記制御手段が前記応答情報緩衝記憶装置及び前記要求情報緩衝記憶装置から前記応答情報及び前記要求情報を順次読み出す請求項1の障害処理装置。
  3. 請求項1乃至2のいずれかに記載の障害処理装置と、
    PCIeの規格を採用して情報の伝達を行う情報処理手段と
    PCIe規格の信号を各々の周辺機器のインターフェースに変換して接続するPCIeカードと、
    前記情報処理手段から前記PCIeカードとの接続先を切り替えるPCIe切り替え手段と、
    各々のPCIeカードに接続された周辺機器と
    を包含する障害処理システム。
  4. 情報群の中から当該情報を一意に区別する為に付与する識別子の一覧と前記識別子に関連づけられた第一の記憶領域とを備え、前記第一の記憶領域に前記識別子を付与した前記当該情報を特徴付ける情報を前記当該情報自体から抽出した第二の情報と、当該識別子が使用中であるか否かを示す情報とを記憶し、
    前記識別子記憶手段の前記識別子の一覧に記載された各々の識別子と関連づけられた第二の記憶領域を備え、前記第二の記憶領域に当該前記識別子を付与した時刻を起点として測定した経過時間と、前記経過時間が予め定められた閾値に達したか否かを示す情報と、
    を記憶し、
    前記識別子が未使用の場合には前記当該識別子を他の情報の識別子として割り当てることを許可し、前記識別子が使用中であり且つ当該前記識別子に関連づけられた前記経過時間が前記閾値に達した場合には当該識別子を他の情報の識別子として割り当てることを許可しない障害処理方法。
  5. 上位装置が出力した指令に対する下位装置からの応答情報を一時記憶し、前記下位装置が出力する前記上位装置に対する要求情報を一時記憶し、記憶した前記応答情報と前記要求情報とを順次読み出す請求項4の障害処理方法。
  6. 情報群の中から当該情報を一意に区別する為に付与する識別子の一覧と前記識別子に関連づけられた第一の記憶領域とを備え、前記第一の記憶領域に前記識別子を付与した前記当該情報を特徴付ける情報を前記当該情報自体から抽出した第二の情報と、当該識別子が使用中であるか否かを示す情報とを記憶し、
    前記識別子記憶手段の前記識別子の一覧に記載された各々の識別子と関連づけられた第二の記憶領域を備え、前記第二の記憶領域に当該前記識別子を付与した時刻を起点として測定した経過時間と、前記経過時間が予め定められた閾値に達したか否かを示す情報と、
    を記憶し、
    前記識別子が未使用の場合には前記当該識別子を他の情報の識別子として割り当てることを許可し、前記識別子が使用中であり且つ当該前記識別子に関連づけられた前記経過時間が前記閾値に達した場合には当該識別子を他の情報の識別子として割り当てることを許可する処理をコンピュータに実行させる障害処理プログラム。
  7. 上位装置が出力した指令に対する下位装置からの応答情報を一時記憶し、前記下位装置が出力する前記上位装置に対する要求情報を一時記憶し、記憶した前記応答情報と前記要求情報とを順次読み出す処理をコンピュータに事項させる請求項6の障害処理プログラム。
JP2015068011A 2015-03-30 2015-03-30 障害処理装置、その装置を使用する情報処理装置、障害処理方法及び障害処理プログラム Active JP6600959B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2015068011A JP6600959B2 (ja) 2015-03-30 2015-03-30 障害処理装置、その装置を使用する情報処理装置、障害処理方法及び障害処理プログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2015068011A JP6600959B2 (ja) 2015-03-30 2015-03-30 障害処理装置、その装置を使用する情報処理装置、障害処理方法及び障害処理プログラム

Publications (2)

Publication Number Publication Date
JP2016189057A true JP2016189057A (ja) 2016-11-04
JP6600959B2 JP6600959B2 (ja) 2019-11-06

Family

ID=57240297

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2015068011A Active JP6600959B2 (ja) 2015-03-30 2015-03-30 障害処理装置、その装置を使用する情報処理装置、障害処理方法及び障害処理プログラム

Country Status (1)

Country Link
JP (1) JP6600959B2 (ja)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0683742A (ja) * 1992-02-20 1994-03-25 Internatl Business Mach Corp <Ibm> リンク確立方法及び相互接続装置
US20090204974A1 (en) * 2008-02-07 2009-08-13 Sun Microsystems, Inc. Method and system of preventing silent data corruption
JP2011248759A (ja) * 2010-05-28 2011-12-08 Nec Computertechno Ltd 情報処理装置及び情報処理装置の実行制御方法
JP2013054414A (ja) * 2011-09-01 2013-03-21 Nec Corp 情報処理装置

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0683742A (ja) * 1992-02-20 1994-03-25 Internatl Business Mach Corp <Ibm> リンク確立方法及び相互接続装置
US20090204974A1 (en) * 2008-02-07 2009-08-13 Sun Microsystems, Inc. Method and system of preventing silent data corruption
JP2011248759A (ja) * 2010-05-28 2011-12-08 Nec Computertechno Ltd 情報処理装置及び情報処理装置の実行制御方法
JP2013054414A (ja) * 2011-09-01 2013-03-21 Nec Corp 情報処理装置

Also Published As

Publication number Publication date
JP6600959B2 (ja) 2019-11-06

Similar Documents

Publication Publication Date Title
US8745292B2 (en) System and method for routing I/O expansion requests and responses in a PCIE architecture
US8631181B2 (en) Validating message-signaled interrupts by tracking interrupt vectors assigned to devices
US8898665B2 (en) System, method and computer program product for inviting other virtual machine to access a memory space allocated to a virtual machine
US9244829B2 (en) Method and system for efficient memory region deallocation
US8774055B2 (en) Switching method
US8615622B2 (en) Non-standard I/O adapters in a standardized I/O architecture
CA2743111C (en) Detecting lost and out of order posted write packets in a peripheral component interconnect (pci) express network
US7676617B2 (en) Posted memory write verification
US20180321964A1 (en) Computer, device allocation management method, and program recording medium
CN107025203B (zh) 第一板卡、第二板卡及一种设备
WO2012114211A1 (en) Low latency precedence ordering in a pci express multiple root i/o virtualization environment
US20140181323A1 (en) Doorbell backpressure avoidance mechanism on a host channel adapter
JP2015197874A (ja) 仮想通信路構築システム、仮想通信路構築方法、及び仮想通信路構築プログラム
US20140244888A1 (en) Using pci-e extended configuration space to send ioctls to a pci-e adapter
TW201921244A (zh) 特定應用積體電路中之中央錯誤處理
US20120311208A1 (en) Method and system for processing commands on an infiniband host channel adaptor
JP5112246B2 (ja) ストレージシステム及び通信方法
US20120324078A1 (en) Apparatus and method for sharing i/o device
JP6600959B2 (ja) 障害処理装置、その装置を使用する情報処理装置、障害処理方法及び障害処理プログラム
US9769093B2 (en) Apparatus and method for performing InfiniBand communication between user programs in different apparatuses
US11726666B2 (en) Network adapter with efficient storage-protocol emulation
CN115454896A (zh) 基于smbus的ssd mctp控制消息验证方法、装置、计算机设备及存储介质
JP7192367B2 (ja) 通信障害解析装置、通信障害解析システム、通信障害解析方法および通信障害解析プログラム
JP4555791B2 (ja) データ読出方法及びデータ読出装置
US9678779B2 (en) Method and an apparatus for co-processor data plane virtualization

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20180215

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20181128

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20181211

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20190207

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20190702

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20190823

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20190923

R150 Certificate of patent or registration of utility model

Ref document number: 6600959

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150