JP6600959B2 - Fault processing apparatus, information processing apparatus using the apparatus, fault processing method, and fault processing program - Google Patents
Fault processing apparatus, information processing apparatus using the apparatus, fault processing method, and fault processing program Download PDFInfo
- Publication number
- JP6600959B2 JP6600959B2 JP2015068011A JP2015068011A JP6600959B2 JP 6600959 B2 JP6600959 B2 JP 6600959B2 JP 2015068011 A JP2015068011 A JP 2015068011A JP 2015068011 A JP2015068011 A JP 2015068011A JP 6600959 B2 JP6600959 B2 JP 6600959B2
- Authority
- JP
- Japan
- Prior art keywords
- identifier
- response
- information
- storage area
- pcie
- 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
Links
Images
Landscapes
- Information Transfer Systems (AREA)
Description
本発明は、障害処理装置、その装置を使用する情報処理装置、障害処理方法及び障害処理プログラムに関する。 The present invention relates to a failure processing device, an information processing device using the device, a failure processing method, and a failure processing program.
高速インターフェース、とりわけシリアル伝送では、情報をパケット化して伝達することが良く用いられている。パケットを用いた伝送方式は周辺装置との接続に用いられ、さらに情報処理の機器内でプロセッサと周辺装置との接続にも用いられる。情報処理装置の機器内の接続方式は、例えばPCI Express(登録商標)(以後PCIeと記述する)のバスアーキテクチャがある。 In high-speed interfaces, especially serial transmission, it is often used to transmit information in packets. A transmission method using a packet is used for connection with a peripheral device, and is also used for connection between a processor and a peripheral device in an information processing device. As a connection method in the apparatus of the information processing apparatus, for example, there is a bus architecture of PCI Express (registered trademark) (hereinafter referred to as PCIe).
PCIeは高速動作を実現できることから、一般的な情報処理装置に用いられている。しかしながら何等かの障害により、パケット送信に対する応答の受信が正常に完結しない場合に、障害の処理が正確に行われずに上位の情報処理装置のホスト等が、後から受け取った誤った情報を基に処理を続行する。結果としてシステムが不安定になる欠点が存在する。 PCIe is used in a general information processing apparatus because it can realize high-speed operation. However, if reception of a response to packet transmission is not completed normally due to some failure, the host of the host information processing device does not correctly handle the failure and the wrong information is received later. continue processing. There is a drawback that the system becomes unstable as a result.
このPCIeは、汎用機を始めとして、種々の情報処理装置に広く用いられており、近年ではシステムの安定動作が重要視されるメインフレームにも用いられることが多くなった。システムの安定稼働が必要なメインフレームにPCIeを適用するには、前述のPCIeの欠点を克服してシステムの安定動作を確保することが求められている。 This PCIe is widely used in various information processing apparatuses including general-purpose machines, and in recent years, it has been used more often in mainframes where stable operation of the system is regarded as important. In order to apply PCIe to a mainframe that requires stable operation of the system, it is required to secure the stable operation of the system by overcoming the above-described drawbacks of PCIe.
例えば、特許文献1には、PCIeにおいて上位装置からの要求パケットに対して下位装置から規定の時間内に応答がない場合に、下位装置に対するインターフェースを行っているインターフェース装置がタイムアウトであると判断して上位装置に通知する。上位装置は、その通知を受け取ることでタイムアウトした要求パケットに代わる新たなパケットの再送を行う。この時に、上位装置は、再送の為に新たに作成したパケット自体に、最初に要求したパケットとは異なるパケットであることを示すフラグを書き込む。この書き込まれた情報により、再送が実行された後に下位装置から最初の要求パケットに対する応答パケットが送出されたとしても、インターフェース装置は、受け取ったパケットのフラグを見て古いパケットであるか否かを認識する。インターフェース装置が、当該パケットが古い要求に対する下位装置からの応答であると認識した場合、このパケットを無視し、新たに再送したパケットを正規のパケットと認識する。
For example, in
また、特許文献2に記載されている技術において、上位装置に接続した下位装置の正常性を確認する為に、入出力接続装置は検査専用のパケットを生成して対象となる下位装置に送出する。入出力接続装置は、その応答が検査用パケットの応答である場合に受信パケットを解析して、当該下位装置が異常であるか否かを判定する。また、検査用のパケットと同一のタグを有するパケットに対して当該下位装置の検査が終了するまで、入出力接続装置は、ホストから当該下位装置に対するパケットを抑止する。
In the technique described in
特許文献1の技術は、PCIeの仕様として明確には規定されていないパケットを構成するヘッダーの予備の情報記載領域に、再送した旨の情報(前述のフラグ)を記述し、この情報を基にパケットの識別を行う技術である。しかしながら、ヘッダーの予備の情報記載領域に記載した当該情報は、PCIeの規格には明確には規定されていない。従って、当該情報がこれらの機器に予期しない動作を引き起こす、あるいは不正の情報であるとして動作を停止させる等の不具合を発生させる懸念がある。また、上位装置においても、PCIeの仕様に準拠することを前提に作成された各種のソフトウェアが、予期しない情報を検出したとして異常終了するなど、意図しない動作を引き起こす懸念がある。したがって、安定稼働が必要なメインフレームに特許文献1の技術を適用することはできないという問題がある。
The technology of
特許文献2には、下位装置からの応答が遅れて、タイムアウトを判断して応答の遅れたパケットを廃棄した後に当該パケットを受け取った場合に発生する障害を回避する技術の記載がない。したがって、下位装置から応答が遅れ、その結果上位装置において下位装置からの応答等の情報入手待ちによる動作の大幅な遅延が生じる場合には、受け取った情報が不正であることから発生する各種の障害を解消することができないという問題がある。
本発明の目的は、上述した問題点を解決する障害処理装置、その装置を使用する情報処理装置、障害処理方法及び障害処理プログラムを提供することにある。 An object of the present invention is to provide a failure processing device that solves the above-described problems, an information processing device that uses the device, a failure processing method, and a failure processing program.
具体的に、本発明は、上位装置が要求した指令に対する下位装置からの応答が遅延する等の障害が原因で発生した誤ったデータが、上位装置および上位装置で稼働するソフトウェアによって読み出されることを防止することを主たる目的とする。 Specifically, according to the present invention, erroneous data generated due to a failure such as a delay in a response from a lower-level device to a command requested by the higher-level device is read by software operating on the higher-level device and the higher-level device. The main purpose is to prevent.
障害処理装置は、情報群の中から当該情報を一意に区別する為に付与する識別子の一覧と前記識別子に関連づけられた第一の記憶領域とを備え、前記第一の記憶領域は、前記識別子を付与した前記当該情報を特徴付ける情報を前記当該情報自体から抽出した第二の情報と、当該識別子が使用中であるか否かを示す情報とを記憶する識別子記憶手段と、前記識別子記憶手段の前記識別子の一覧に記載された各々の識別子と関連づけられた第二の記憶領域を備え、前記第二の記憶領域は、当該前記識別子を付与した時刻を起点として測定した経過時間と、前記経過時間が予め定められた閾値に達したか否かを示す情報と、を記憶する経過時間記憶手段と、前記識別子が未使用の場合には前記当該識別子を他の情報の識別子として割り当てることを許可し、前記識別子が使用中であり且つ当該前記識別子に関連づけられた前記経過時間が前記閾値に達した場合には当該識別子を他の情報の識別子として割り当てることを許可しない制御手段と、を備える。 The failure processing apparatus includes a list of identifiers assigned to uniquely distinguish the information from the information group, and a first storage area associated with the identifier, and the first storage area includes the identifier Identifier storage means for storing second information extracted from the information itself and information indicating whether or not the identifier is in use; and A second storage area associated with each identifier listed in the list of identifiers, wherein the second storage area is an elapsed time measured starting from the time at which the identifier was assigned; and the elapsed time Information indicating whether or not a predetermined threshold has been reached, and an elapsed time storage means for storing, and when the identifier is unused, assigning the identifier as an identifier of other information And a control unit that does not allow the identifier to be assigned as an identifier of other information when the identifier is in use and the elapsed time associated with the identifier reaches the threshold. .
障害処理方法は、情報群の中から当該情報を一意に区別する為に付与する識別子の一覧と前記識別子に関連づけられた第一の記憶領域とを備え、前記第一の記憶領域に前記識別子を付与した前記当該情報を特徴付ける情報を前記当該情報自体から抽出した第二の情報と、当該識別子が使用中であるか否かを示す情報とを記憶し、前記識別子記憶手段の前記識別子の一覧に記載された各々の識別子と関連づけられた第二の記憶領域を備え、前記第二の記憶領域に当該前記識別子を付与した時刻を起点として測定した経過時間と、前記経過時間が予め定められた閾値に達したか否かを示す情報と、を記憶し、前記識別子が未使用の場合には前記当該識別子を他の情報の識別子として割り当てることを許可し、前記識別子が使用中であり且つ当該前記識別子に関連づけられた前記経過時間が前記閾値に達した場合には当該識別子を他の情報の識別子として割り当てることを許可しない。 The failure processing method includes a list of identifiers assigned to uniquely distinguish the information from the information group and a first storage area associated with the identifiers, and the identifier is stored in the first storage area. Second information extracted from the information itself and information indicating whether or not the identifier is in use are stored in the list of identifiers in the identifier storage unit. A second storage area associated with each of the identifiers described, an elapsed time measured starting from the time when the identifier was assigned to the second storage area, and a predetermined threshold value Information indicating whether or not the identifier has been reached, and if the identifier is not used, the identifier is allowed to be assigned as an identifier of other information. When the elapsed time associated with the identifier it reaches the threshold does not allow to assign the identifier as an identifier of the other information.
障害処理プログラムは、情報群の中から当該情報を一意に区別する為に付与する識別子の一覧と前記識別子に関連づけられた第一の記憶領域とを備え、前記第一の記憶領域に前記識別子を付与した前記当該情報を特徴付ける情報を前記当該情報自体から抽出した第二の情報と、当該識別子が使用中であるか否かを示す情報とを記憶し、前記識別子記憶手段の前記識別子の一覧に記載された各々の識別子と関連づけられた第二の記憶領域を備え、前記第二の記憶領域に当該前記識別子を付与した時刻を起点として測定した経過時間と、前記経過時間が予め定められた閾値に達したか否かを示す情報と、を記憶し、前記識別子が未使用の場合には前記当該識別子を他の情報の識別子として割り当てることを許可し、前記識別子が使用中であり且つ当該前記識別子に関連づけられた前記経過時間が前記閾値に達した場合には当該識別子を他の情報の識別子として割り当てることを許可する処理をコンピュータに実行させる。 The failure processing program includes a list of identifiers assigned to uniquely distinguish the information from the information group and a first storage area associated with the identifier, and the identifier is stored in the first storage area. Second information extracted from the information itself and information indicating whether or not the identifier is in use are stored in the list of identifiers in the identifier storage unit. A second storage area associated with each of the identifiers described, an elapsed time measured starting from the time when the identifier was assigned to the second storage area, and a predetermined threshold value Information indicating whether or not the identifier has been reached, and when the identifier is unused, permits the identifier to be assigned as an identifier of other information, and the identifier is in use and When the elapsed time associated with the front Symbol identifier reaches the threshold value to execute processing that permits to assign the identifier as an identifier of the other information into the computer.
本発明は、上位装置が要求した指令に対する下位装置からの応答が遅延する等の障害が原因で発生した誤ったデータが、上位装置および上位装置で稼働するソフトウェアによって読み出されることを防止できる。 The present invention can prevent erroneous data generated due to a failure such as a delay in a response from a lower-level device to a command requested by the higher-level device from being read by software operating on the higher-level device and the higher-level device.
[第1の実施の形態]
本発明の第1の実施の形態について、図面を参照して詳細に説明する。
[First embodiment]
A first embodiment of the present invention will be described in detail with reference to the drawings.
図1は本発明の第1の実施の形態の障害処理装置180を示すブロック図である。
FIG. 1 is a block diagram showing a
障害処理装置180は、制御部6と、識別子記憶部21と、経過時間記憶部31とを備えている。識別子記憶部21と、経過時間記憶部31は、制御部6に接続されている。制御部6は上位装置2から指令情報を受け取り、それを下位装置3へ出力する。制御部6は下位装置3からの応答情報を受け取り、上位装置2へ出力する。本発明は図1の構成に限定されるものではない。
The
識別子記憶部21は識別子が付された記憶領域を含む。識別子記憶部21の上位装置2が送出した指令(指令情報)に関連付けした識別子の記憶領域は、当該指令情報から抽出した下位装置3を特徴付ける情報と、当該指令情報に関連する識別子が使用中であるか否かを示す識別子使用フラグとを記憶する。
The
経過時間記憶部31は識別子記憶部21に配置された各々の識別子と関連づけられて、経過時間を記憶するカウンターを含む。すなわち、識別子ごとにカウンターが設定されている。経過時間記憶部31のカウンターは、当該識別子が付与された指令情報が制御部1から下位装置3に送出された時を起点としてカウントされる経過時間を、識別子ごとに記憶する。
The elapsed
制御部6は、上位装置2から下位装置3に向けた指令情報を受け取ると、識別子記憶部21から、使用フラグがOFF、すなわち未使用である識別子を選択する。制御部6は、当該指令情報の一部を、識別子記憶部21の、選択した識別子の記憶領域に書き込む。さらに制御部6は、下位装置3に、選択した識別子が付与された指令情報を出力すると同時に、選択した識別子に関連付けられた経過時間記憶部31のカウンターを、一定時間経過するごとに経過した時間が加算された数値に更新する。
When the
経過時間記憶部31の当該識別子のカウンターが予め定めた閾値と一致した場合に、制御部6が当該識別子のカウンターがタイムアウトしたと判断する。
When the counter of the identifier in the elapsed
経過時間記憶部31の当該識別子のカウンターがタイムアウトしていない期間に制御部6が下位装置3から、指令情報に対する応答情報を受け取ると、当該応答情報に付与されている識別子が識別子記憶部21の記憶領域に存在するか否かを検索する。その検索の結果、識別子記憶部21に記憶されている当該識別子使用フラグが有効である場合、制御部6は受け取った応答情報(以降、単に「応答」ともいう)を上位装置2に送信し、識別子記憶装置21の当該識別子の記憶領域をリセットする。この操作で、制御部6は、当該識別子を新たに発生した上位装置2からの次の処理の識別のために割り当てることが可能となる。
When the
次に、経過時間記憶部31の当該識別子に関連づけられた当該経過時間の数値がタイムアウトの閾値を超えた場合を説明する。
Next, a case where the numerical value of the elapsed time associated with the identifier of the elapsed
制御部6は、当該識別子に関連づけられた当該経過時間の値が別に定める閾値に達すると、当該識別子の指令に対する応答待ちが規定の時間を経過したと認識する。この場合、制御部6は、識別子記憶部21の当該識別子の記憶領域に配置されたタイムアウトフラグをONに設定して、タイムアウトであることを記録する。さらに制御部6は、当該識別子に関連する指令情報に対する応答がなくタイムアウトしたことを上位装置2に通知する。この処理により、当該識別子は、当該指令情報に対する処理が完了するまで保持され、他の指令に割り当てされない。上位装置2は当該識別子の処理が当該タイムアウトの通知を受け取り、タイムアウトしたことを認識する。
When the value of the elapsed time associated with the identifier reaches a separately determined threshold value, the
さらに、当該識別子のカウンターがタイムアウトした後に、制御部6が下位装置3から当該識別子に対応する応答を受け取った場合に、制御部6が受け取った当該応答の情報を廃棄する。制御部6が、識別子記憶部21経過時間記憶部31の当該識別子に対応する記憶領域を消去して、記憶内容のリセットを行う。この処理により、上位装置2からの新な指令に対して、前述のタイムアウトした識別子が割り当てられることを防止する。
Furthermore, when the
以上説明した様に、本発明の第1の実施の形態によれば、タイムアウトした識別子が別の指令に割り当てられて、先に割り当てた時点の指令の応答が、後に割り当てた同じ識別子の情報であると誤認識されることを防止することが出来る。なぜなら、制御部6は、タイムアウトした識別子に対して、当該識別子の再割り当てを禁止し、前に割り当てられた識別子の応答が完結した後に当該識別子の再割り当てを許可するからである。
As described above, according to the first embodiment of the present invention, a timed-out identifier is assigned to another command, and the response of the command at the time of the previous assignment is the information of the same identifier assigned later. It is possible to prevent being mistakenly recognized as being. This is because the
[第2の実施の形態]
第2の実施の形態について説明する。第2の実施の形態では、本発明の障害処理装置をPCIeに適用した場合を説明する。
[Second Embodiment]
A second embodiment will be described. In the second embodiment, a case where the failure handling apparatus of the present invention is applied to PCIe will be described.
PCIeではパケットベースのプロトコルが採用されている。また互いに関連・依存する複数の処理をまとめ、一体不可分の処理単位として扱うことをトランザクション処理と呼び、そのような処理単位をトランザクションと呼ぶ。PCIeにおけるプロトコル階層においてもトランザクション層があり、その層は、トランザクション層パケットの構築と処理を行っている。トランザクション層のパケットはTransaction_Layer_Packet(以下TLP)と呼ばれ、そのTLPのヘッダーに、接続した周辺機器に対する要求の情報が格納されている。 PCIe employs a packet-based protocol. A plurality of processes that are related and dependent on each other are grouped together and handled as an integral indivisible processing unit is called transaction processing, and such a processing unit is called a transaction. There is also a transaction layer in the protocol layer in PCIe, and that layer constructs and processes transaction layer packets. The packet in the transaction layer is called Transaction_Layer_Packet (hereinafter TLP), and information on the request for the connected peripheral device is stored in the header of the TLP.
図2、図22及び図23を参照して本発明の第2の実施の形態について説明する。図2は本発明の第2の実施の形態における障害処理装置150を示すブロック図である。
A second embodiment of the present invention will be described with reference to FIGS. FIG. 2 is a block diagram showing a
障害処理装置150は、制御部1と、識別子記憶部22(以後タグエントリー記憶部22と呼ぶ)と、経過時間記憶部32(以後タイマーエントリー記憶部32と呼ぶ)とを備えている。
The
タグエントリー記憶部22と、タイマーエントリー記憶部32は制御部1に接続されている。制御部1はリクエストバッファー4と応答バッファー5を含む。制御部1は上位装置2から指令情報を受け取り、下位装置3へ出力する。制御部1は下位装置3からの応答情報を受け取り上位装置2へ出力する。本発明は図2の構成に限定されるものではない。
The tag
なお、本例では上位装置2はプロセッサあるいはプロセッサを搭載したカードである。下位装置3はPCIeスイッチ等に代表される周辺機器との接続を行うインターフェース装置である。
In this example, the
図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を含む。
The tag
図23に示すタイマーエントリー記憶部32はタグエントリー記憶部22と関連づけられた当該タグエントリー番号と、当該タグエントリー番号が付与されたタイマー領域32−0からタイマー領域32−nを含む記憶装置である。タイマー領域32−0からタイマー領域32−nは、制御部1が下位装置3に指令を送出した時刻を起点として計る経過時間を記憶するタイマーカウント(タイマーカウント値と呼ぶ)32−n−2と当該タイマーカウント32−n−2が有効か否かを示す有効フラグ32−n−1とを含む。
The timer
図2に示すリクエストバッファー4は、下位装置3から上位装置2に対するリクエストTLPを一時記憶する。図2に示す応答バッファー5は、下位装置3から上位装置2に対する応答TLPを一時記憶する。前述のリクエストバッファー4および応答バッファー5に一時記憶された各々の情報は、その後制御部1により順次読み出される。
The
制御部1は上位装置2から下位装置3に向けた指令情報を受け取ると、タグエントリー記憶部22の記憶領域を検索し、有効フラグ22−n−1が未使用であるタグエントリー番号を選択する。制御部1は、当該指令情報の一部を当該タグエントリー番号が付与された記憶領域に書き込む。制御部1は、タグエントリー番号を付与した指令情報を下位装置3に出力する。更に、制御部1は、前述のタグエントリー番号と関連付けられた当該タイマーエントリー記憶部32にある当該タイマー領域32−nの記憶内容を、一定時間経過するごとに経過した時間を加算した数値に更新する。
When the
制御部1は、当該タグエントリー番号に関連づけられたタイマー領域の当該経過時間を記憶するタイマーカウンターの数値が、予め定めた閾値を超えていない期間中に、制御部1が下位装置3から応答情報を受け取ると、当該応答情報に付与されているタグエントリー番号と同じ番号がタグエントリー記憶部22の記憶領域に存在するか否かを検索する。
The
制御部1が検索した結果、タグエントリー記憶部22に記憶されている当該タグエントリー番号の記憶領域にある有効フラグ22−n−1が有効である場合は、制御部1が受け取った応答情報を上位装置2に送信する。
When the valid flag 22-n-1 in the storage area of the tag entry number stored in the tag
さらに、制御部1が、タグエントリー記憶部22の当該タグエントリー番号の記憶領域の情報をリセットする。この操作で、制御部1が当該タグエントリー番号は新たに発生した上位装置2からの次の指令の識別に当該タグエントリー番号を割り当てすることを可能にする。
Further, the
次に、タイマーエントリー記憶部32の当該タグエントリー番号に関連づけられたタイマー領域のタイマーカウントの値がタイムアウトの閾値を超えた場合を説明する。
Next, a case where the timer count value of the timer area associated with the tag entry number in the timer
制御部1は、当該タグエントリー番号に関連づけられたタイマー領域のタイマーカウントの値が別に定める閾値に達すると、当該タグエントリー番号の指令に対する応答待ちが規定の時間を経過したと認識する。制御部1が、タグエントリー記憶部22の当該タグエントリー番号の記憶領域に配置されたタイムアウトフラグをONに設定して、タイムアウトであることを表示する。制御部1が上位装置2に当該タグエントリー番号の指令に対する応答がタイムアウトしたことを通知する。この処理により、当該タグエントリー番号は、当該指令に対する処理が完了するまで保持され、他の指令に割り当てされない。上位装置2は当該タグエントリー番号の処理が、当該タイムアウトの通知を受け取り、タイムアウトしたことを認識する。
When the value of the timer count in the timer area associated with the tag entry number reaches a separately determined threshold value, the
さらに、当該タグエントリー番号に関連づけられたタイマー領域のタイマーカウントがタイムアウトした後に、制御部1が、下位装置3から当該タグエントリー番号に対応する応答を受け取った場合は、制御部1が、下位装置3から受け取った当該応答の情報を廃棄する。制御部1が、タグエントリー記憶部22及びタイマーエントリー記憶部32の当該タグエントリー番号に対応する記憶領域およびタイマー領域の記憶を消去する。この処理により、制御部1が上位装置2からの新な指令に対して、前述のタイムアウトしたタグエントリー番号を割り当てられることを防止できる。なお、本例ではリクエストバッファー4と応答バッファー5が制御部1の内部に配置した例を説明したが、制御部1の外部に配置した構成にしてもよい。
Further, when the
以上説明した様に、本発明の第2の実施形態によれば、パケットの応答が何等かの理由で遅れたことで、当該トランザクション処理がタイムアウトにより完結しない場合に、タグエントリー番号に関連づけられた記憶領域の記憶内容を廃棄し、廃棄前の記憶領域に記憶した応答情報を上位装置が誤って受け取ることによる誤動作を防止することが出来る。なぜなら、タイムアウトしたタグエントリー番号に対して、当該タグエントリー番号の再割り当てを禁止し、前に割り当てられたタグエントリー番号が付与された指令の応答が完結した後に当該タグエントリー番号の再割り当てを許可するからである。 As described above, according to the second embodiment of the present invention, when the response of a packet is delayed for some reason, the transaction process is not completed due to a timeout, and is associated with the tag entry number. It is possible to prevent malfunction caused by discarding the storage contents of the storage area and erroneously receiving the response information stored in the storage area before the discard. Because it is prohibited to reassign the tag entry number for the timed out tag entry number, and the reassignment of the tag entry number is permitted after the response of the command with the previously assigned tag entry number is completed Because it does.
[第3の実施の形態]
本発明の第3の実施の形態について図を参照して説明する。図20は情報処理装置1000の本発明の障害処理装置を適用した情報処理装置のブロック図である。
[Third embodiment]
A third embodiment of the present invention will be described with reference to the drawings. FIG. 20 is a block diagram of an information processing apparatus to which the failure processing apparatus of the present invention of the
情報処理装置1000は、中央処理装置300、デバイス(DEV)130、PCIeスイッチ120、PCIeカード140〜PCIeカード143、および外部記憶装置2000、外部記憶装置3000を含む。
The
中央処理装置300は、演算処理を行うプロセッサ100、障害処理装置101、障害処理装置102及びデータを格納するメモリ(MEM)110を含む。
The
プログラム200はプロセッサ100の上に展開され、プロセッサ100を制御して各種処理を行う。(プログラム200は図示していない。)
図21は障害処理装置101の機能ブロック図である。障害処理装置(以後PCIeコントローラと呼ぶ)101は、制御部1と、識別子記憶部20(以後、タグエントリー記憶部20と呼ぶ)と、経過時間記憶部30(以後、タイマーエントリー記憶部30と呼ぶ)とを備えている。
The
FIG. 21 is a functional block diagram of the
タグエントリー記憶部20と、タイマーエントリー記憶部30は、制御部1に接続されている。制御部1はリクエストバッファー4と応答バッファー5を含む。制御部1はプロセッサ100から指令情報を受け取り、PCIeスイッチ120へ出力する。
The tag
図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を含む。
The tag
図4を用いてタイマーエントリー記憶部30を説明する。
タイマーエントリー記憶部30は、制御部1がPCIeスイッチ120へのリクエストに対する応答のタイムアウト監視を行うための情報を記憶する記憶装置である。タイマーエントリー記憶部30は、前述のタグエントリー番号と、そのタグエントリー番号に関連づけられたタイマー領域30−0からタイマー領域30−nを含む。タイマーエントリー記憶部30は、タイマー領域30−nのタイマーが有効化どうかを示す有効フラグ30−n−1と、タイマーカウント(タイマーカウント値と呼ぶ)30−n−2を含む。
The timer
The timer
制御部1はPCIeスイッチ120からの応答情報を受け取りプロセッサ100へ出力する。
The
PCIeスイッチ120は、障害処理装置101を経由したプロセッサ100と、ネットワーク(図示していない)、PCIeカード140からPCIeカード143の各々に接続された外部記憶装置2000及び外部記憶装置3000との接続の切り替えを行う。
The
PCIeコントローラ101は、プロセッサ100とPCIeスイッチとの中間に位置し、プロセッサ100とPCIeカード140からPCIeカード143とのパケット通信で発生する障害の処理を行う。
The
障害処理装置(PCIeコントローラと呼ぶ)102は、PCIeスイッチ120を経由しない特定の処理を行うデバイス130とプロセッサ100とを接続するとともに、当該装置間のパケット通信で生じる障害の処理を行う。
A failure processing apparatus (referred to as a PCIe controller) 102 connects a
図20において、外部記憶装置2000及び外部記憶装置3000はPCIeカードと各々に接続した磁気ディスク装置などであり、データを記憶し、プロセッサ100からの指令に基づきデータの書き込み、読出しを行う。
In FIG. 20, an
PCIeカード140からPCIeカード143は、パケットベースのシリアルインターフェースの信号を、接続する先の周辺装置等各々のインターフェース信号及びコネクタ形状に変換する。
The
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で接続する。
The PCIe controller 102 and the
入出力デバイスとのデータ交換の方法について説明する。 A method of exchanging data with the input / output device will be described.
上位装置2から外部記憶装置2000又は外部記憶装置3000に指令を出力する場合、PCIeカード140からPCIeカード143のいずれかを経由して指令が伝達される。
When a command is output from the
プロセッサ100からPCIeカード140からPCIeカード143に対する指令はプロセッサ100が入出力デバイスにアクセスする為の命令をMEM110にアクセスする為の命令と同じアドレス空間で扱うことで入出力デバイに対する操作を実現する。この方法は、Memory_Mapped_Input_Output(以後MMIOと呼ぶ)と呼ばれる。以後、本発明の動作説明では、このMMIOを前提として説明する。
The instruction from the
ここで、PCIeのTLPヘッダーの内容を図16、図17、図18及び図19に示す。 Here, the contents of the PCIe TLP header are shown in FIG. 16, FIG. 17, FIG. 18, and FIG.
ある装置から他の装置に対して行う指令をリクエストとする。またその指令に対する他の装置からの出力を応答とする。TLPの内容は、要求内容やリクエストか応答かに応じて形式がそれぞれ異なっている。TLPヘッダーの詳細やTLPを受信したときの動作はPCIeスペックに記載されているので、本発明に関係があることについてのみ説明する。 A command issued from one device to another device is a request. An output from another device in response to the command is used as a response. The format of the TLP differs depending on the request content and whether it is a request or a response. The details of the TLP header and the operation when the TLP is received are described in the PCIe specification, so only the relationship with the present invention will be described.
図16、17は主にメモリアクセスリクエストで使用されるTLPヘッダーで、図16が64bitアドレス形式で図17が32bitアドレス形式となっている。図16、17及び18に記載のFmt(フォーマット)とType(タイプ)が要求内容を示し、アドレスが要求先を示している。図18は構成アクセスリクエストで使用されるTLPヘッダーで、要求先がBus_Number(バス番号)とDevice_Number(デバイス番号)、Function_Number(機能番号)、Register_Number(レジスタ番号)によって指定されている。 16 and 17 are TLP headers mainly used for memory access requests. FIG. 16 shows a 64-bit address format and FIG. 17 shows a 32-bit address format. Fmt (format) and Type (type) shown in FIGS. 16, 17 and 18 indicate the request contents, and the address indicates the request destination. FIG. 18 shows a TLP header used in a configuration access request, and the request destination is specified by Bus_Number (bus number), Device_Number (device number), Function_Number (function number), and Register_Number (register number).
図17のリクエスターID(IDentifier)41、図18のリクエスターID51及び図19のリクエスターID61は要求元を示す識別子を示す。図17のタグ42、図18のタグ52及び図19のタグ62はパケットに付与されたタグエントリー番号を示す。このリクエスターIDとタグの情報がそれぞれ抽出されて、図17、図18、図19に示すトランザクションID70を形成し、応答がリクエストに対応するものかどうかを制御部1が判断する際に使用される。
A requester ID (IDentifier) 41 in FIG. 17, a
なお、本例のトランザクションID70は、前述のリクエスターIDとタグとを組み合わせた情報である。制御部1が、各種のリクエストのTLPや応答のTLPに含まれるリクエスターIDや関連するタグを索引して認識する。しかし、制御部1が、トランザクションID70用に専用に記憶領域を準備して、その領域に前述のリクエストのTLPや応答のTLPから必要な情報を抽出して書き込み、その情報を利用することでもよい。
The
図19はメモリリードリクエストや構成アクセスリクエストに対する応答のTLPヘッダーの詳細を示す図である。応答のTLPヘッダーは、制御部1が応答に対応するリクエストを参照して、制御部1が識別するためのリクエスターID61とタグ62、応答元を示す応答IDや要求の結果を示す応答ステータスを持っている。リクエスターID61とタグ62は、応答に対応するリクエストのTLPに格納されていたリクエスターID41、リクエスターID51とタグ42、タグ52の情報をコピーして、持ちまわったものである。PCIeコントローラ101が、リクエストと応答のトランザクションID70を比較することでリクエストに対する応答が応答されたかどうかを判断する。
FIG. 19 is a diagram showing details of a TLP header in response to a memory read request or a configuration access request. The response TLP header refers to the request corresponding to the response by the
次に、情報処理装置1000における、PCIeのインターフェースの動作について説明する。
Next, the operation of the PCIe interface in the
まず、図8を用いて、PCIeカード140〜PCIeカード143からのメモリリードの動作を説明する。
First, the memory read operation from the
プロセッサ100上で動作するソフトウェア200が、PCIeカード140〜PCIeカード143のレジスタなどを読み出す場合、プロセッサ100の読出し命令をPCIeカード140〜PCIeカード143のレジスタを示すアドレスを指定して、読出し指令を実行する(a−1)。
When the
プロセッサ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の当該タグエントリー番号の記憶領域に保持される。
When the read instruction is executed, the
When the
次に、PCIe_I/F121に送信されたリードリクエストTLPのTLPコマンドがPCIeスイッチ120を介して目的のPCIeカード140〜PCIeカード143のいずれかに送信される(a−5)。
Next, the TLP command of the read request TLP transmitted to the PCIe_I /
PCIeカード140〜PCIeカード143はリードリクエストTLPを受信すると対応する処理を行い、応答TLPを作成して読み出したデータを付けてPCIeコントローラ101に応答TLPを送信する(a−6)。この時、トランザクションIDはリードリクエストTLPのものが持ちまわされ、応答IDにはPCIeカード140〜PCIeカード143のいずれであるかを識別する値が格納される。
Upon receiving the read request TLP, the
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)。
When the
次に、図9を用いて、PCIeカード140〜PCIeカード143が何らかの理由によりリードリクエストTLPに対して応答TLPを返えさない、あるいは応答が遅くなる等の場合の動作を説明する。
Next, the operation when the
ソフトウェア200がPCIeカード140〜PCIeカード143のレジスタなどを読み出すために読出し命令を実行し、PCIeカード140〜PCIeカード143にリードリクエストTLPが送信されるまでは図8に示す動作と同じである(b−1〜b−5)。
The operation is the same as that shown in FIG. 8 until the
ここで、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)。
Here, if the
その後、PCIeカード140〜PCIeカード143が遅れて応答TLPを返した場合(b−6、b−7)、PCIeコントローラ101がその応答TLPを受信する。PCIeコントローラ101が、応答TLPに付与されたタグエントリー番号がタグエントリー記憶部20の各々の記憶領域に存在するか検索する。しかし、応答TLPに付与されたタグエントリー番号に対応するトランザクションIDを持つタグエントリー番号が存在しないため、無効なTLPと判断し、予期しない応答として、制御部1が受け取った応答TLPを廃棄する等の処理を行う(b−12)。
Thereafter, when the
以上が、応答が正常に出力され、定常的にデータの授受が行われた場合の動作である。 The above is the operation when the response is output normally and data is exchanged regularly.
次に、図5のフローチャートを用いて、プロセッサ100からリードの指令を実行した場合の動作を説明する。
Next, the operation when a read command is executed from the
制御部1はプロセッサ100からメモリリードを指示されるとリード処理(ステップ300)を実行する。
When the
リード処理(ステップ300)では、制御部1が、タグエントリー記憶部20より記憶領域20−nの各々を読み出す(ステップ301)。制御部1が、各々のタグエントリー20−nの有効フラグ20−n−1を参照して未使用の記憶領域20−nがあるか否かを判断する(ステップ302)。制御部1が、有効フラグ20−n−1を設定して記憶領域20−nを確保する(ステップ303)。
In the read process (step 300), the
そして、制御部1が、プロセッサ100からのメモリリードの要求情報に従ってリードリクエストTLPを作成する(ステップ304)。この時、制御部1が、トランザクションIDのタグ番号に記憶領域20−nの番号nを格納する。
Then, the
その後、プロセッサ100からのメモリリードの要求情報を、制御部1が記憶領域20−nのリクエスト情報部20−n−2に格納する。制御部1が、作成したリードリクエストTLPのTLPヘッダーを記憶領域20−nのTLPヘッダー部20−n−3に格納する(ステップ305)。
After that, the
また、制御部1が、記憶領域20−nに対応するタイマー領域30−nの有効フラグ30−n−1とタイマーカウント値30−n−2を設定する。制御部1が、タイマーを起動する(ステップ306)。制御部1が、最後に作成したリードリクエストのTLPコマンドをPCIeスイッチ120に送信して処理を終える(ステップ307、ステップ308)。
Further, the
これにより、PCIeカード140〜PCIeカード143がリードリクエストTLPを受信すると、読み出されたデータを付けて応答TLPをPCIeコントローラ101に対して送信する。
Thus, when the
次に、図6のフローチャートを用いて応答処理の動作を説明する。PCIeコントローラ101の制御部1が応答TLPを受信すると応答の処理を実行する。
Next, the response processing operation will be described with reference to the flowchart of FIG. When the
応答処理(ステップ400)では、制御部1が、応答バッファー5から受信した応答TLPを読み出し(ステップ401)、制御部1が、タグエントリー20−nの各々を読み出す(ステップ401)。制御部1が、応答TLPと同じトランザクションIDを持つ有効な記憶領域20−nがあるか否かを判断(ステップ403)。
In the response process (step 400), the
ここで同じトランザクションIDを持つ記憶領域20−nが無い場合は、制御部1が、応答TLPを予期しない応答として処理し(ステップ408)、処理を終える(ステップ409)。
Here, if there is no storage area 20-n having the same transaction ID, the
応答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)。
When there is a storage area 20-n (tag entry storage area) having the same transaction ID as that of the response TLP (step 403: YES), the processing is a response to the response to the request stored in the storage area 20-n. In this case, the
そして、制御部1が、記憶領域20−nの有効フラグ20−n−1をクリアして記憶領域20−nを解放して(ステップ406)、処理を終える(ステップ407)。
Then, the
次に、図7のフローチャートを用いて、PCIeカードからの応答が遅延したことによって応答タイムアウトになった場合の動作を説明する。 Next, an operation when a response time-out occurs due to a delay in the response from the PCIe card will be described using the flowchart of FIG.
応答タイムアウトは、制御部1が、有効なタイマー領域30−nのタイマーカウント値30−n−2の数値を減算してその数値が0になった時に、発生させる。
The response time-out is generated when the
タイムアウト処理(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)。
In the timeout process (500), the
次に、図10を用いて、本発明の障害処理装置の動作を行わない場合に、情報処理装置1000に障害が発生する状況を説明する。図10は、PCIeカード140〜PCIeカード143に対して複数のメモリリードが行われている状態で任意のメモリリードが応答タイムアウトになった場合の動作を示す。
Next, a situation where a failure occurs in the
ソフトウェア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)。
The
しかし、この後、ソフトウェア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に間違ったデータを渡すことになり、ソフトウェアが誤動作する原因となる。
However, after that, the
次に、図15及び図11を用いて、本発明の障害処理装置を動作させて、ソフトウエア200が誤動作することを回避する動作について説明する。本例は、PCIeカード140〜PCIeカード143のメモリリードが応答タイムアウトした後に後続のメモリリードを行った場合で説明する。
Next, with reference to FIGS. 15 and 11, an operation for operating the failure processing apparatus according to the present invention to prevent the
まず、図21のPCIeコントローラ101の制御部1において、記憶領域20−nに応答タイムアウトが発生したことを示すタイムアウトフラグ20−n−4(図11参照)を設ける。
First, in the
最初にソフトウェア200がPCIeカード140〜PCIeカード143のメモリリードを行ってPCIeカード140〜PCIeカード143の応答が遅れることによって応答タイムアウトが発生する状況である。この状況は、図15において、状態(d−1〜d−4、d−20)である。この状態は、図10の状態(c−1〜c−4、c−17、)による説明と同じである。
First, the
ここで、PCIeコントローラ101が応答タイムアウトを検出したとき、制御部1はタイムアウト処理(ステップ700)を実行する。
Here, when the
図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で使用されていたタグエントリー番号は保持されたままとなり、応答タイムアウトでは、タグエントリー番号は解放されない。
Referring to the flowchart of the timeout process in FIG. 13, in the timeout process (700), the
次に、ソフトウェア200が後続のメモリリードを行ってPCIeコントローラ101がその指示を受けたとき、制御部1は図5のリード処理(300)を実行する。これは図15における状態(d−7、d−8)の動作である。
Next, when the
このとき、応答タイムアウトになったリクエストTLPで使用された記憶領域20−nは確保されたままなので、制御部1は、保留したタグエントリー番号以外の記憶領域20−nが選択される。これは、状態(d−21)である。これにより、後続のメモリリードのリードリクエストTLPにおけるトランザクションIDは先行の応答タイムアウトになったリードリクエストTLPとは異なったものになる。これは、状態(d−9、d−10)である。
At this time, since the storage area 20-n used in the request TLP whose response has timed out remains secured, the
ここで、先行のリードリクエストTLPに対する応答TLPをPCIeコントローラが受けた場合には、図12のフローチャートに示す応答処理(600)が実行される。制御部1が、応答バッファー5から受信した応答TLPを取り出す(ステップ601)。状態(d−11、d−12)。制御部1が、タグエントリー20−nの各々を読み出す(602)。制御部1が、応答TLPと同じトランザクションIDを持つタグエントリー20−nがあるか判断する(ステップ603)。
Here, when the PCIe controller receives a response TLP to the preceding read request TLP, a response process (600) shown in the flowchart of FIG. 12 is executed. The
このとき、対応する記憶領域20−nは確保されたままなのでトランザクションIDは一致する(ステップ603:Yes)。制御部1が記憶領域20−nのタイムアウトフラグ20−n-4が設定されていることを確認する(ステップ604)。制御部1が、タイムアウトフラグ20−n−4が設定されていることを認識して、応答TLPは予期しない応答であると判断(ステップ605:Yes)。そして予期しない応答に対する処理を行う(ステップ612)。その後、当該処理を終了する(ステップ613)。
At this time, since the corresponding storage area 20-n remains secured, the transaction IDs match (step 603: Yes). The
これにより、応答タイムアウトになったリードリクエストTLPに対する応答TLPは、予期しない応答として破棄され、プログラムに間違ったデータを送信することが防止される。状態(d−22)。 As a result, the response TLP to the read request TLP whose response timed out is discarded as an unexpected response, and incorrect data is prevented from being transmitted to the program. State (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)。
Then, a response TLP to the subsequent read request TLP is transmitted from the
このとき、対応する記憶領域20−nは確保されているので、制御部1が、記憶領域20−nのタイムアウトフラグ20−n−4の内容を確認する(ステップ604)。
At this time, since the corresponding storage area 20-n is secured, the
制御部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)。
The
Thereafter, the
PCIeコントローラ101から応答データを受信したプロセッサ100は読出し命令を完了させてプログラムに受信した読出しデータを渡す。状態(d−16)。これにより、プログラム200はPCIeカード140〜PCIeカード143のメモリリードに対応したデータを受信することができる。
The
その後さらに、プログラム200はPCIeカード140〜PCIeカード143をリセットするなどして障害処理を行い、PCIeカード140〜PCIeカード143から応答タイムアウトになったリードリクエストTLPに対応するトランザクションIDが使用されないことを保証する。その後、プログラム200は、PCIeコントローラ101の特定のレジスタに書き込みを行う為に、書き込み指令を発行する。状態(d−17)プロセッサ100は、PCIeコントローラ101に対して、応答タイムアウトで保持したままとなっている記憶領域20−nの解放を指示する解放コマンドを送信する。状態(d−18)。
Thereafter, the
PCIeコントローラ101は、前述のソフトウェア200からの指示を制御部1にお伝達し、制御部1が、図14のフローに示すタグエントリー解放処理(800)を行う。
The
タグエントリー解放処理(800)では、記憶領域20のタイムアウトフラグ20−n−4が設定されている全タグエントリー番号の有効フラグ20−n−1とタイムアウトフラグ10−n−4をクリアし、解放を行う(ステップ801)。
In the tag entry release process (800), the valid flag 20-n-1 and timeout flag 10-n-4 of all tag entry numbers for which the timeout flag 20-n-4 of the
この操作により、応答タイムアウトONにさり、確保されたままとなっていたタグエントリーが、以後のパケットを生成する作業に用いるタグエントリーに使用することが可能になる。状態(d−24)。 By this operation, the tag entry that has been secured when the response timeout is turned ON can be used for the tag entry used for the subsequent packet generation work. State (d-24).
以上説明した様に、本発明の第3の実施形態によれば、PCIeのデバイスからの応答がタイムアウトしてトランザクション処理が完結しない場合に、情報処理装置のプログラム等が、誤ったデータの影響をうけて動作が不安定になることを防止できる。なぜなら、制御部1が、PCIeのパケット処理で、タイプアウトとなったパケットのタグエントリー番号を使用しない様に無効化して、障害が解消された時に有効化することで、同じタグエントリー番号が別の指令に対して、誤って割り当てられることを防止できるからである。
As described above, according to the third embodiment of the present invention, when the response from the PCIe device times out and the transaction processing is not completed, the program of the information processing apparatus or the like affects the influence of erroneous data. It is possible to prevent the operation from becoming unstable. This is because the
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 インターフェース
DESCRIPTION OF
122 PCIe_I / F
123 PCIe_I / F
124 PCIe_I / F
125 PCIe_I / F
126 PCIe_I / F
130
140
Claims (7)
前記第一の記憶領域に記憶された各前記識別子に関連づけられた第二の記憶領域に、前記識別子が割り当てられた前記指令情報が下位装置へ送信された時刻を起点とする経過時間を記憶する経過時間記憶手段と、
前記識別子が使用中でない場合には、当該識別子を前記指令情報に割り当てることを許可し、
前記識別子が使用中である場合には、当該識別子を前記指令情報に割り当てることを禁止し、
前記識別子が使用中であり、且つ当該識別子に関連づけられた前記経過時間が予め定めた閾値に達していない場合には、当該識別子を割り当てられた前記指令情報の前記下位装置への送信に対する応答を受信したときに、当該応答の前記上位装置への送信、及び当該識別子に関連づけられた前記第一の記憶領域のリセットを行い、
前記識別子が使用中であり、且つ当該識別子に関連づけられた前記経過時間が前記閾値に達している場合には、当該識別子を割り当てられた前記指令情報の前記下位装置への送信に対する応答を受信したときに、当該応答の破棄、及び当該識別子に関連づけられた前記第一の記憶領域のリセットを行う
制御手段と
を備える障害処理装置。 Identifier storage means for storing information indicating whether or not the identifier is in use in a first storage area associated with the identifier assigned to each command information in the command information group received from the host device; ,
In a second storage area associated with each identifier stored in the first storage area, an elapsed time starting from the time when the command information to which the identifier is assigned is transmitted to a lower-level device is stored. An elapsed time storage means;
If the identifier is not in use, permit the identifier to be assigned to the command information;
If the identifier is in use, it is prohibited to assign the identifier to the command information;
When the identifier is in use and the elapsed time associated with the identifier has not reached a predetermined threshold, a response to the transmission of the command information to which the identifier is assigned to the lower-level device is given. When received, the response is transmitted to the host device, and the first storage area associated with the identifier is reset,
When the identifier is in use and the elapsed time associated with the identifier has reached the threshold, a response to the transmission of the command information to which the identifier is assigned to the lower-level device is received A failure processing apparatus comprising: a control unit that discards the response and resets the first storage area associated with the identifier.
PCIeの規格を採用して情報の伝達を行う情報処理手段と
PCIe規格の信号を各々の周辺機器のインターフェースに変換して接続するPCIeカードと、
前記情報処理手段から前記PCIeカードとの接続先を切り替えるPCIe切り替え手段と、
各々のPCIeカードに接続された周辺機器と
を包含する障害処理システム。 The failure processing apparatus according to claim 1,
Information processing means for transmitting information using the PCIe standard, and a PCIe card for converting and connecting a PCIe standard signal to the interface of each peripheral device,
PCIe switching means for switching the connection destination with the PCIe card from the information processing means;
A fault processing system including peripheral devices connected to each PCIe card.
前記第一の記憶領域に記憶された各前記識別子に関連づけられた第二の記憶領域に、前記識別子が割り当てられた前記指令情報が下位装置へ送信された時刻を起点とする経過時間を記憶する経過時間記憶手段と
を有する障害処理装置における障害処理方法であって、
前記識別子が使用中でない場合には、当該識別子を前記指令情報に割り当てることを許可し、
前記識別子が使用中である場合には、当該識別子を前記指令情報に割り当てることを禁止し、
前記識別子が使用中であり、且つ当該識別子に関連づけられた前記経過時間が予め定めた閾値に達していない場合には、当該識別子を割り当てられた前記指令情報の前記下位装置への送信に対する応答を受信したときに、当該応答の前記上位装置への送信、及び当該識別子に関連づけられた前記第一の記憶領域のリセットを行い、
前記識別子が使用中であり、且つ当該識別子に関連づけられた前記経過時間が前記閾値に達している場合には、当該識別子を割り当てられた前記指令情報の前記下位装置への送信に対する応答を受信したときに、当該応答の破棄、及び当該識別子に関連づけられた前記第一の記憶領域のリセットを行う
障害処理方法。 Identifier storage means for storing information indicating whether or not the identifier is in use in a first storage area associated with the identifier assigned to each command information in the command information group received from the host device; ,
In a second storage area associated with each identifier stored in the first storage area, an elapsed time starting from the time when the command information to which the identifier is assigned is transmitted to a lower-level device is stored. A failure processing method in a failure processing apparatus having elapsed time storage means,
If the identifier is not in use, permit the identifier to be assigned to the command information;
If the identifier is in use, it is prohibited to assign the identifier to the command information;
If the identifier is in use and the elapsed time associated with the identifier has not reached a predetermined threshold, a response to the transmission of the command information to which the identifier is assigned to the lower-level device is given. When received, the response is transmitted to the host device, and the first storage area associated with the identifier is reset,
If the identifier is in use and the elapsed time associated with the identifier has reached the threshold, a response to the transmission of the command information assigned the identifier to the lower-level device has been received. Sometimes, a failure processing method for discarding the response and resetting the first storage area associated with the identifier.
前記第一の記憶領域に記憶された各前記識別子に関連づけられた第二の記憶領域に、前記識別子が割り当てられた前記指令情報が下位装置へ送信された時刻を起点とする経過時間を記憶する経過時間記憶手段と
を有する障害処理装置が備えるコンピュータに、
前記識別子が使用中でない場合には、当該識別子を前記指令情報に割り当てることを許可し、
前記識別子が使用中である場合には、当該識別子を前記指令情報に割り当てることを禁止し、
前記識別子が使用中であり、且つ当該識別子に関連づけられた前記経過時間が予め定めた閾値に達していない場合には、当該識別子を割り当てられた前記指令情報の前記下位装置への送信に対する応答を受信したときに、当該応答の前記上位装置への送信、及び当該識別子に関連づけられた前記第一の記憶領域のリセットを行い、
前記識別子が使用中であり、且つ当該識別子に関連づけられた前記経過時間が前記閾値に達している場合には、当該識別子を割り当てられた前記指令情報の前記下位装置への送信に対する応答を受信したときに、当該応答の破棄、及び当該識別子に関連づけられた前記第一の記憶領域のリセットを行う
処理を実行させる障害処理プログラム。 Identifier storage means for storing information indicating whether or not the identifier is in use in a first storage area associated with the identifier assigned to each command information in the command information group received from the host device; ,
In a second storage area associated with each identifier stored in the first storage area, an elapsed time starting from the time when the command information to which the identifier is assigned is transmitted to a lower-level device is stored. A computer provided in a failure processing apparatus having elapsed time storage means,
If the identifier is not in use, permit the identifier to be assigned to the command information;
If the identifier is in use, it is prohibited to assign the identifier to the command information;
When the identifier is in use and the elapsed time associated with the identifier has not reached a predetermined threshold, a response to the transmission of the command information to which the identifier is assigned to the lower-level device is given. When received, the response is transmitted to the host device, and the first storage area associated with the identifier is reset,
When the identifier is in use and the elapsed time associated with the identifier has reached the threshold, a response to the transmission of the command information to which the identifier is assigned to the lower-level device is received when the discard of the response, and the first fault processing program to perform processing for resetting the storage region associated with the identifier.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2015068011A JP6600959B2 (en) | 2015-03-30 | 2015-03-30 | Fault processing apparatus, information processing apparatus using the apparatus, fault processing method, and fault processing program |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2015068011A JP6600959B2 (en) | 2015-03-30 | 2015-03-30 | Fault processing apparatus, information processing apparatus using the apparatus, fault processing method, and fault processing program |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2016189057A JP2016189057A (en) | 2016-11-04 |
JP6600959B2 true JP6600959B2 (en) | 2019-11-06 |
Family
ID=57240297
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2015068011A Active JP6600959B2 (en) | 2015-03-30 | 2015-03-30 | Fault processing apparatus, information processing apparatus using the apparatus, fault processing method, and fault processing program |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP6600959B2 (en) |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5357608A (en) * | 1992-02-20 | 1994-10-18 | International Business Machines Corporation | Configurable, recoverable parallel bus |
US8839268B2 (en) * | 2008-02-07 | 2014-09-16 | Oracle America, Inc. | Method and system of preventing silent data corruption |
JP5229747B2 (en) * | 2010-05-28 | 2013-07-03 | エヌイーシーコンピュータテクノ株式会社 | Information processing apparatus and execution control method for information processing apparatus |
JP5682829B2 (en) * | 2011-09-01 | 2015-03-11 | 日本電気株式会社 | Information processing device |
-
2015
- 2015-03-30 JP JP2015068011A patent/JP6600959B2/en active Active
Also Published As
Publication number | Publication date |
---|---|
JP2016189057A (en) | 2016-11-04 |
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 | |
US9244829B2 (en) | Method and system for efficient memory region deallocation | |
EP3042298B1 (en) | Universal pci express port | |
US7676617B2 (en) | Posted memory write verification | |
US8898665B2 (en) | System, method and computer program product for inviting other virtual machine to access a memory space allocated to a virtual machine | |
CA2743111C (en) | Detecting lost and out of order posted write packets in a peripheral component interconnect (pci) express network | |
US8804752B2 (en) | Method and system for temporary data unit storage on infiniband host channel adaptor | |
US20110320675A1 (en) | SYSTEM AND METHOD FOR DOWNBOUND I/O EXPANSION REQUEST AND RESPONSE PROCESSING IN A PCIe ARCHITECTURE | |
US20140286350A1 (en) | Switching Method | |
US20110320666A1 (en) | Input/output (i/o) expansion response processing in a peripheral component interconnect express (pcie) environment | |
US9298658B2 (en) | Using PCI-E extended configuration space to send IOCTLS to a PCI-E adapter | |
US9069485B2 (en) | Doorbell backpressure avoidance mechanism on a host channel adapter | |
US20180321964A1 (en) | Computer, device allocation management method, and program recording medium | |
US11726666B2 (en) | Network adapter with efficient storage-protocol emulation | |
WO2012114211A1 (en) | Low latency precedence ordering in a pci express multiple root i/o virtualization environment | |
CN106506302B (en) | Communication device supporting dynamic MODBUS protocol mapping | |
TW201921244A (en) | Centralized error handling in application specific integrated circuits | |
JP2015197874A (en) | virtual communication path construction system, virtual communication path construction method, and virtual communication path construction program | |
KR20160106496A (en) | Memory management | |
US20120311208A1 (en) | Method and system for processing commands on an infiniband host channel adaptor | |
JP5112246B2 (en) | Storage system and communication method | |
JP6600959B2 (en) | Fault processing apparatus, information processing apparatus using the apparatus, fault processing method, and fault processing program | |
CN103516705B (en) | Communication method of virtual machine and server end system | |
CN115454896A (en) | SMBUS-based SSD MCTP control message verification method and device, computer equipment and storage medium |
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 | Written amendment |
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 | Written amendment |
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 |