(57)【要約】  ＴＡＧビット３１、データビット３２およびエラー検出／訂正用のＥＣＣビット３３からなるバス３０を介して接続された送信側装置１０および受信側装置２０において、送信側装置１０は、冗長ビット反転回路１４を用いて、トリガ信号４１、トリガ信号４２に対応したＥＣＣビット３３の異なるビットを反転させる。受信側装置２０では、エラー検出・訂正回路２２からエラー報告信号２６を受けた判定回路２４が、ＥＣＣビット３３のエラービットの位置からトリガ信号４１、トリガ信号４２のいずれが送信側装置１０から送信されたかを判別する。
2007097040.tif 000002
【特許請求の範囲】
【請求項１】
エラー検出およびエラー訂正のための冗長ビットを付加することで保護された情報伝送路を介して第１装置と第２装置を接続する第１ステップと、
前記冗長ビットを意図的に操作することで、第１装置から第２装置への情報伝達を行う第２ステップと、
を含むことを特徴とする情報処理装置の制御方法。
【請求項２】
請求項１記載の情報処理装置の制御方法において、
前記第２ステップでは、前記第１および第２装置に対して、通常稼働時とは異なる特定動作モードを設定した後に、前記冗長ビットの操作を行うことを特徴とする情報処理装置の制御方法。
【請求項３】
請求項１記載の情報処理装置の制御方法において、
前記第２ステップでは、
送信側の前記第１装置は、前記エラー訂正が可能な範囲で前記冗長ビットを操作し、
受信側の前記第２装置は、前記冗長ビットに前記エラー検出が検出された時、当該エラー検出を前記情報伝達と認識するとともに、前記エラー訂正を実行することを特徴とする情報処理装置の制御方法。
【請求項４】
請求項１記載の情報処理装置の制御方法において、
前記第２ステップでは、複数の前記冗長ビットの各々に異なる情報を割り当てて擬似的な訂正可能エラーを発生させ、前記冗長ビットにおけるエラービットの位置認識結果に基づいて前記情報伝達を実現することを特徴とする情報処理装置の制御方法。
【請求項５】
請求項１記載の情報処理装置の制御方法において、
前記第２ステップでは、デバッグまたは性能測定用の情報伝達を行うことを特徴とする情報処理装置の制御方法。
【請求項６】
エラー検出およびエラー訂正のための冗長ビットを付加することで保護された情報伝送路を介して第１装置と第２装置を接続した構成の情報処理装置であって、
前記冗長ビットを意図的に操作することで、第１装置から第２装置への特定情報の伝達を行う情報伝達手段を含むことを特徴とする情報処理装置。
【請求項７】
請求項６記載の情報処理装置において、
前記情報伝達手段は、
送信側の前記第１または第２装置において複数の前記冗長ビットの各々に異なる前記特定情報を割り当てて擬似的な訂正可能エラーを発生させ、
受信側の前記第２または第１装置において前記冗長ビットにおけるエラービットの位置認識結果に基づいて前記特定情報を実現することを特徴とする情報処理装置。
【請求項８】
請求項６記載の情報処理装置において、
前記情報伝達手段は、前記情報処理装置における通常稼働時とは異なる特定動作モードを認識する機能を備え、前記特定動作モードにおいて、前記冗長ビットの操作による前記特定情報の伝達が行われることを特徴とする情報処理装置。
【請求項９】
請求項６記載の情報処理装置において、
前記情報伝達手段は、
送信側の前記第１および／または第２装置に配置され、前記特定情報に応じて前記冗長ビットを操作する冗長ビット操作手段と、
受信側の前記第２および／または第１装置に配置され、前記冗長ビットを参照して得られた前記エラー検出の報告に基づいて前記特定情報を受信する判定手段と、
を含むことを特徴とする情報処理装置。
【請求項１０】
請求項６記載の情報処理装置において、
前記情報伝達手段の送信側では前記エラー訂正が可能な範囲で前記冗長ビットを操作し、
前記情報伝達手段の受信側では、前記冗長ビットに前記エラー検出が検出された時、当該エラー検出を前記特定情報と認識するとともに、前記エラー訂正を実行することを特徴とする情報処理装置。
【請求項１１】
請求項６記載の情報処理装置において、
前記特定情報は、デバッグまたは性能測定用のコマンドであることを特徴とする情報処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理技術に関し、たとえば、情報処理装置の開発工程や保守工程等におけるデバッグや性能測定等に適用して有効な技術に関する。
【背景技術】
【０００２】
たとえば、情報処理装置の開発や保守工程では、異常動作や障害の原因究明、あるいは性能向上等のためのデバッグを行う必要がある。
このため、システムを構成する複数のデバイス内に動作履歴を記録する履歴メモリを設け、外部から個々のデバイスに対して一斉に動作履歴の記録開始、記録停止を指示することで、障害が発生した前後の特定期間内の動作履歴を個々のデバイス内に記録させ、外部に読み出して原因解析に利用することが考えられる。【０００３】
また、動作履歴として、個々のデバイス内における特定期間内のデータ転送量や特定の命令の実行回数を履歴メモリに記録させることで、性能測定を行うことも考えられる。
このように、デバッグ等において、外部から個々のデバイスに対して各種動作タイミング等の指示を与える方法として、従来においては、専用信号線（ワイア）を設けることが行われていた。【０００４】
その理由は、通常稼働時の動作に擾乱を加えることなく、履歴メモリ等のハードウェアのデバッグ機能を用いることができ、実際の稼働状態を反映した正確な障害解析が可能になるためである。【０００５】
しかし、デバイスを構成する半導体装置の集積密度が向上し、デバイス間の信号線の実装コストが相対的に大きくなり、かつ、増大しつづけている今日においては、通常運用では全く用いられないデバッグ専用の信号線をデバイス間に設置するコストは無視できなくなっている。【０００６】
この対策として、デバッグ専用の信号線を設ける代わりに、デバッグ機能を制御するための制御コマンドを追加することも考えられるが、この制御コマンドの実行のために、システムの通常の運用動作に擾乱が加わり、高度に動作タイミングに依存するようなシステム挙動を解析したい場合には、不利になる。
【発明の開示】
【０００７】
本発明の目的は、コスト増大を生じることなく、ハードウェアのデバッグ機能を用いた的確なデバッグを実現することが可能な技術を提供することにある。
本発明の他の目的は、余分な専用信号線等のハードウェアを必要とすることなく、高度に動作タイミングに依存するようなシステム挙動のデバッグを実現することが可能な技術を提供することにある。
【０００８】
本発明の第１の観点は、エラー検出およびエラー訂正のための冗長ビットを付加することで保護された情報伝送路を介して第１装置と第２装置を接続する第１ステップと、
前記冗長ビットを意図的に操作することで、第１装置から第２装置への情報伝達を行う第２ステップと、
を含む情報処理装置の制御方法を提供する。
【０００９】
本発明の第２の観点は、第１の観点に記載の情報処理装置の制御方法において、
前記第２ステップでは、前記第１および第２装置に対して、通常稼働時とは異なる特定動作モードを設定した後に、前記冗長ビットの操作を行う情報処理装置の制御方法を提供する。
【００１０】
本発明の第３の観点は、第１の観点に記載の情報処理装置の制御方法において、
前記第２ステップでは、
送信側の前記第１装置は、前記エラー訂正が可能な範囲で前記冗長ビットを操作し、
受信側の前記第２装置は、前記冗長ビットに前記エラー検出が検出された時、当該エラー検出を前記情報伝達と認識するとともに、前記エラー訂正を実行する情報処理装置の制御方法を提供する。
【００１１】
本発明の第４の観点は、第１の観点に記載の情報処理装置の制御方法において、
前記第２ステップでは、複数の前記冗長ビットの各々に異なる情報を割り当てて擬似的な訂正可能エラーを発生させ、前記冗長ビットにおけるエラービットの位置認識結果に基づいて前記情報伝達を実現する情報処理装置の制御方法を提供する。
【００１２】
本発明の第５の観点は、第１の観点に記載の情報処理装置の制御方法において、
前記第２ステップでは、デバッグまたは性能測定用の情報伝達を行う情報処理装置の制御方法を提供する。
【００１３】
本発明の第６の観点は、エラー検出およびエラー訂正のための冗長ビットを付加することで保護された情報伝送路を介して第１装置と第２装置を接続した構成の情報処理装置であって、
前記冗長ビットを意図的に操作することで、第１装置から第２装置への特定情報の伝達を行う情報伝達手段を含む情報処理装置を提供する。
【００１４】
本発明の第７の観点は、第６の観点に記載の情報処理装置において、
前記情報伝達手段は、
送信側の前記第１または第２装置において複数の前記冗長ビットの各々に異なる前記特定情報を割り当てて擬似的な訂正可能エラーを発生させ、
受信側の前記第２または第１装置において前記冗長ビットにおけるエラービットの位置認識結果に基づいて前記特定情報を実現する情報処理装置を提供する。
【００１５】
本発明の第８の観点は、第６の観点に記載の情報処理装置において、
前記情報伝達手段は、前記情報処理装置における通常稼働時とは異なる特定動作モードを認識する機能を備え、前記特定動作モードにおいて、前記冗長ビットの操作による前記特定情報の伝達が行われる情報処理装置を提供する。
【００１６】
本発明の第９の観点は、第６の観点に記載の情報処理装置において、
前記情報伝達手段は、
送信側の前記第１および／または第２装置に配置され、前記特定情報に応じて前記冗長ビットを操作する冗長ビット操作手段と、
受信側の前記第２および／または第１装置に配置され、前記冗長ビットを参照して得られた前記エラー検出の報告に基づいて前記特定情報を受信する判定手段と、
を含む情報処理装置を提供する。
【００１７】
本発明の第１０の観点は、第６の観点に記載の情報処理装置において、
前記情報伝達手段の送信側では前記エラー訂正が可能な範囲で前記冗長ビットを操作し、
前記情報伝達手段の受信側では、前記冗長ビットに前記エラー検出が検出された時、当該エラー検出を前記特定情報と認識するとともに、前記エラー訂正を実行する情報処理装置を提供する。
【００１８】
本発明の第１１の観点は、第６の観点に記載の情報処理装置において、
前記特定情報は、デバッグまたは性能測定用のコマンドである情報処理装置を提供する。
【００１９】
一般に、情報処理装置では、複数のデバイス間を接続するバス等の情報伝送路は、ＥＣＣ等の冗長ビットを設けることで伝送データの信頼性の向上が図られている。
本発明では、このＥＣＣ等の冗長ビットの信号線を利用してデバイス間の情報の伝達を実現する。この冗長ビットの信号線は通常のバスに備わっているので、デバッグ専用の信号線を設ける必要がなくなり、デバッグ関係の機能の製造コストを削減することが可能になる。
【００２０】
たとえば、データの送信側において、このＥＣＣ（Error Correction Code）用の冗長ビットを操作して疑似的な訂正可能エラー（CE: Correctable Error）を発生させる。データの受信側では、この冗長ビットにおける訂正可能エラーの検出と、エラービットの位置情報に基づいて受信情報を認識する。
【００２１】
冗長ビットを操作して訂正可能エラーを発生させるだけなので、本来の伝送データや伝送タイミング等には全く影響しない。すなわち、システムの通常の稼働状態に擾乱を加えることなく、冗長ビットの操作によって、個々のデバイスに備えられたデバッグ機能を制御することが可能になる。
【００２２】
特に、高度にタイミングに依存するシステム挙動の解析においても正確な解析を行うことが可能になる。
近年のバスの信頼性は高く、デバッグ等の短期間では、実際のデータエラーは発生しにくい、と考えられるので、ＥＣＣ等の冗長ビットを操作することによる情報伝達は可能である。
【００２３】
また、必要に応じて、デバッグ中であることを示す特定動作モードを設定し、この動作モードと、冗長ビットの操作とを併用して、当該冗長ビットを用いた上述の情報伝達を行うようにしてもよい。
【図面の簡単な説明】
【００２４】
【図１】本発明の一実施の形態である情報処理装置の制御方法を実施する情報処理装置の構成例を示すブロック図である。
【図２】本発明の一実施の形態である情報処理装置の一部を取り出して例示した概念図である。
【図３】本発明の一実施の形態である情報処理装置の制御方法を実施する情報処理システムの構成の一例を示す概念図である。
【図４】本発明の一実施の形態である情報処理装置の制御方法を実施する情報処理システムにおけるＥＣＣビットと伝達信号の割り当て例を示す説明図である。
【図５】本発明の一実施の形態である情報処理装置の制御方法を実施する情報処理システムにおけるデバッグリクエスト用のパケットの一例を示す概念図である。
【図６】本発明の一実施の形態である情報処理装置の制御方法を実施する情報処理システムにおけるデバッグオーダ用のパケットの一例を示す概念図である。
【図７】本発明の一実施の形態である情報処理装置の制御方法を実施する情報処理システムの動作の一例を示すシーケンス図である。
【図８】本発明の一実施の形態である情報処理装置の制御方法を実施する情報処理システムの動作の一例を示す概念図である。
【図９】本発明の一実施の形態である情報処理装置の制御方法を実施する情報処理システムの動作の一例を示すシーケンス図である。
【図１０】本発明の一実施の形態である情報処理装置の制御方法を実施する情報処理システムの動作の一例を示すシーケンス図である。
【発明を実施するための最良の形態】
【００２５】
以下、図面を参照しながら、本発明の実施の形態について詳細に説明する。
図１は、本発明の一実施の形態である情報処理装置の制御方法を実施する情報処理装置の構成例を示すブロック図であり、図２は、本実施の形態の情報処理装置の一部を取り出して例示した概念図である。【００２６】
図１に例示されるように、本実施の形態の情報処理装置は、送信側装置１０と受信側装置２０で構成されている。
送信側装置１０と受信側装置２０との間にはバス３０が設けられており、このバス３０を用いて送信側装置１０から受信側装置２０へとデータ転送が行われる。【００２７】
バス３０は、ＴＡＧビット３１、データビット３２の他に、これらをエラーから保護するための冗長なＥＣＣビット３３を含んでいる。
たとえば、ＴＡＧビット３１が３ビット、データビット３２が２４ビットの場合、ＥＣＣビット３３として７ビットが設けられる。【００２８】
また、ＴＡＧビット３１が３ビット、データビット３２が４０ビットの場合、ＥＣＣビット３３として７ビットが設けられる。
このいずれの場合も、バス３０（この場合、３４ビットまたは５０ビット）の１ビットエラーはエラー位置を特定できる。従ってエラー訂正が可能である。【００２９】
２ビットエラーは、検出は可能であるが訂正はできない。
送信側装置１０には、パケット生成器１２が設けられている。このパケット生成器１２は、データビット３２に対応した所定のビットパターンと、ＴＡＧビット３１に対応したビットからなるパケットを生成する機能を備えている。また、送信側装置１０は、このＴＡＧビット３１およびデータビット３２からなるパケットデータを保護するためのＥＣＣビット３３の値を計算して設定する機能を備えている。【００３０】
受信側装置２０には、エラー検出・訂正回路２２が設けられている。このエラー検出・訂正回路２２は、ＴＡＧビット３１およびデータビット３２と、冗長なＥＣＣビット３３を用いて、バス３０の各ビットにおけるエラーの有無を検出する機能、および当該エラーを訂正する機能を備えている。【００３１】
すなわち、バス３０のＴＡＧビット３１、データビット３２、ＥＣＣビット３３の各々が上述のようなビット構成の場合、これらのいずれか１ビットにエラー（ビット反転）が発生した場合には、当該エラービットの位置を特定できるとともに、エラー訂正が可能である。【００３２】
本実施の形態の場合には、このバス３０におけるエラー検出、訂正機能を利用して、冗長なＥＣＣビット３３のいずれか１ビットを意図的に反転させることで、送信側装置１０と受信側装置２０との間における情報伝達を実現する。【００３３】
すなわち、本実施の形態の場合、送信側装置１０の側には、情報を送信するための冗長ビット反転回路１４が設けられている。また、受信側装置２０には、情報を受信（認識）するための判定回路２４が設けられている。【００３４】
本実施の形態の場合、この冗長ビット反転回路１４は、たとえば、ＥＣＣビット３３のうち、２ビットの各々を操作する機能を備えている。
すなわち、本実施の形態では、ＥＣＣビット３３の２ビットを用いて、２種類の信号（この場合、トリガ信号４１、またはトリガ信号４２）を、送信側装置１０から受信側装置２０の側に伝達する。【００３５】
なお、このＥＣＣビット３３のエラーが、情報伝達のための疑似エラーであることを識別するための、Ｆａｃｔｏｒｙ＿ｍｏｄｅ信号４３が、送信側装置１０の冗長ビット反転回路１４と、受信側装置２０の判定回路２４に入力される。【００３６】
なお、Ｆａｃｔｏｒｙ＿ｍｏｄｅ信号４３は、必ずしも必要ではない。すなわち、近年のバス３０の信頼性は高いので、デバッグ時等の比較的短い期間では、バス３０にほとんどエラーが発生しないと考えられるので、ＥＣＣビット３３のビットエラーの有無のみの判定でも、ＥＣＣビット３３を利用した情報伝達は可能である。【００３７】
本実施の形態では、ＥＣＣビット３３を用いた情報伝達をより確実にするために、Ｆａｃｔｏｒｙ＿ｍｏｄｅ信号４３を設けている。
図２は、この冗長ビット反転回路１４の構成例を示している。冗長ビット反転回路１４は、複数のＸＯＲ回路１４ａ、ＸＯＲ回路１４ｂと、各々に対応した複数の論理積回路１４ｃ、論理積回路１４ｄを含んでいる。【００３８】
この場合、ＸＯＲ回路１４ａは、ＥＣＣビット３３のＥＣＣ［０］〜［６］のビット線のうち、ＥＣＣ［０］に配置されている。
そして、対応する論理積回路１４ｃからの入力と、ＥＣＣ［０］の論理状態の排他的論理和を演算することで、論理積回路１４ｃからの入力が真（“１”）の場合に、ＥＣＣ［０］の論理状態を、“０”から“１”、または“１”から“０”に反転させる。【００３９】
同様に、ＸＯＲ回路１４ｂは、ＥＣＣ［１］のビット線に配置され、対応する論理積回路１４ｄから入力が真（“１”）の場合に、ＥＣＣ［１］の論理状態を反転させる。
論理積回路１４ｃは、Ｆａｃｔｏｒｙ＿ｍｏｄｅ信号４３と、伝達情報であるトリガ信号４１との論理積をＸＯＲ回路１４ａに入力する。【００４０】
同様に、論理積回路１４ｄは、Ｆａｃｔｏｒｙ＿ｍｏｄｅ信号４３と、トリガ信号４２との論理積をＸＯＲ回路１４ｂに入力する。
一方、受信側装置２０には、冗長ビット反転回路１４を介してＥＣＣビット３３に送信された情報を認識するための判定回路２４が設けられている。【００４１】
この判定回路２４は、エラー検出・訂正回路２２から入力されるエラー報告信号２６に基づいて、冗長ビット反転回路１４（送信側装置１０）の側から送信された情報を認識する。【００４２】
すなわち、エラー報告信号２６に含まれる、ＥＣＣビット３３におけるエラービットの検出位置と、Ｆａｃｔｏｒｙ＿ｍｏｄｅ信号４３とに基づいて、Ｆａｃｔｏｒｙ＿ｍｏｄｅ信号４３が真（“１”）の期間中における、トリガ信号４１、トリガ信号４２の各々の送信側装置１０からの送信の有無を判別する。【００４３】
ただし、上述のようにＦａｃｔｏｒｙ＿ｍｏｄｅ信号４３は、必須ではない。バス３０の信頼性が高い場合は、比較的短期間ではほとんどバス３０にエラーは発生しないので、ＥＣＣビット３３における特定ビットのエラーの有無の監視のみでも、トリガ信号４１やトリガ信号４２を受信することは可能である。【００４４】
以下、図１の本実施の形態の作用の一例を説明する。
送信側装置１０では、受信側装置２０に伝達するための情報を、ＴＡＧビット３１およびデータビット３２を用いるパケットにて、エラー検出・訂正回路２２の側に送信する。この時、ＴＡＧビット３１とデータビット３２のビット状態に応じて、エラー検出／訂正のためのＥＣＣビット３３のビットも適切に設定される。【００４５】
このパケットを受信する受信側装置２０の側では、エラー検出・訂正回路２２において、エラー検出、訂正を行うことで、バス３０（パケット）の信頼性を確保する。
ここで、ＥＣＣビット３３を用いた情報伝達を行う場合、まず、送信側装置１０の冗長ビット反転回路１４、および受信側装置２０の判定回路２４の各々に、真（“１”）のＦａｃｔｏｒｙ＿ｍｏｄｅ信号４３を入力する。【００４６】
そして、送信側装置１０の側では、必要に応じて、トリガ信号４１またはトリガ信号４２を“１”にすることで、ＥＣＣビット３３の対応するビットを反転させ、疑似訂正可能エラーとして、当該トリガ信号４１またはトリガ信号４２を受信側装置２０の側に送信する。【００４７】
受信側装置２０の側では、冗長ビット反転回路１４による疑似訂正可能エラーがエラー検出・訂正回路２２によって検出されて訂正されるとともに、ＥＣＣビット３３のエラービット位置がエラー報告信号２６として判定回路２４に入力される。【００４８】
このエラー報告信号２６が入力された判定回路２４は、ＥＣＣビット３３における報告されたビット位置から、トリガ信号４１またはトリガ信号４２の受信を認識し、図示しない他の回路に伝達する。【００４９】
このように、本実施の形態の場合には、バス３０におけるＴＡＧビット３１、データビット３２等の伝送情報の保護のために設けられているＥＣＣビット３３を利用することで、専用の信号線等を設けることなく、送信側装置１０と受信側装置２０との間でトリガ信号４１、トリガ信号４２の情報伝達が可能である。【００５０】
また、エラー検出・訂正回路２２におけるＥＣＣビット３３の、冗長ビット反転回路１４による疑似訂正可能エラーの検出および訂正動作は、通常のエラー検出、訂正と同様のプロセスで行われるため、バス３０におけるＴＡＧビット３１、データビット３２のデータ送信状態には、全く影響しない。【００５１】
従って、たとえば、ＴＡＧビット３１、データビット３２の伝送タイミングに高度に依存するような処理においても、ＴＡＧビット３１、データビット３２に擾乱を与えることなく、送信側装置１０から受信側装置２０へのトリガ信号４１またはトリガ信号４２の伝達が可能である。【００５２】
このようなＥＣＣビット３３を利用した本実施の形態の情報伝達技術を、情報処理システムのデバッグに適用する場合について、さらに詳細に説明する。
図３は、本実施の形態の情報処理装置の制御方法を実施する情報処理システムの構成の一例を示す概念図である。【００５３】
図３に例示される情報処理システム１００は、複数のＣＰＵノード１１０、複数のシステムコントローラ１２０、主記憶１３０、入出力機器１４０を含んでいる。
個々のＣＰＵノード１１０とシステムコントローラ１２０の間には、ＣＰＵノード１１０からシステムコントローラ１２０への情報転送を行うバス３０（ＳＣＲＥＱ＿ＢＵＳ３０−１）と、システムコントローラ１２０からＣＰＵノード１１０への情報転送を行うバス３０（ＳＣＯＤＲ＿ＢＵＳ３０−２）が設けられている。【００５４】
互いに情報の転送方向が逆なＳＣＲＥＱ＿ＢＵＳ３０−１とＳＣＯＤＲ＿ＢＵＳ３０−２の各々に対応して、ＣＰＵノード１１０とシステムコントローラ１２０の各々には送信側装置１０および受信側装置２０が設けられている。【００５５】
この送信側装置１０、受信側装置２０、バス３０は、上述の図１に例示した構成を有する。
個々のＣＰＵノード１１０は、一つまたは複数のＣＰＵコア１１２、キャッシュメモリ１１４、システムバス制御部１１６、履歴メモリ１１８を含んでいる。【００５６】
ＣＰＵコア１１２は、レジスタ記憶や演算器、制御器を備え、演算処理や制御を行う。
キャッシュメモリ１１４は、ＣＰＵコア１１２とシステムバス制御部１１６との間で授受される情報を一時的に記憶する。【００５７】
システムバス制御部１１６は、上述のように、送信側装置１０、受信側装置２０をそなえており、ＳＣＲＥＱ＿ＢＵＳ３０−１、ＳＣＯＤＲ＿ＢＵＳ３０−２、システムコントローラ１２０を介して、主記憶１３０、入出力機器１４０との間における情報の授受を行う。【００５８】
履歴メモリ１１８は、ＣＰＵノード１１０における各部の動作履歴をエンドレスに記憶する。すなわち、履歴メモリ１１８には、当該履歴メモリ１１８の記憶容量に応じた時間分だけ、ＣＰＵノード１１０内の各部の動作履歴を記憶する。【００５９】
一方、個々のシステムコントローラ１２０は、システム制御論理１２２、システムバス制御部１２４、履歴メモリ１２６を含んでいる。
システム制御論理１２２は、システムコントローラ１２０の全体を制御し、ＣＰＵノード１１０から主記憶１３０や入出力機器１４０に対するアクセス要求を処理する。【００６０】
システムバス制御部１２４は、上述のように、送信側装置１０、受信側装置２０を備えており、ＳＣＲＥＱ＿ＢＵＳ３０−１、ＳＣＯＤＲ＿ＢＵＳ３０−２を介して、ＣＰＵノード１１０との間における情報の授受を制御する。【００６１】
図４は、この情報処理システム１００において、ＥＣＣビット３３の操作によって伝達されるトリガ信号４１、トリガ信号４２の割り当て例を示す概念図である。
ＣＰＵノード１１０からシステムコントローラ１２０への情報転送を行うＳＣＲＥＱ＿ＢＵＳ３０−１においては、トリガ信号４１、トリガ信号４２として、ＴＲＡＰ１、ＴＲＡＰ２が割り当てられている。【００６２】
システムコントローラ１２０からＣＰＵノード１１０への情報転送を行うＳＣＯＤＲ＿ＢＵＳ３０−２では、トリガ信号４１、トリガ信号４２として、ＨＩＳ＿ＦＲＺ、ＨＩＳ＿ＲＬＳ、およびＳＴＡＲＴ、ＳＴＯＰが割り当てられている。【００６３】
本実施の形態の情報処理システム１００では、通常運用時には、デバッグ機能の制御のために図５および図６に例示されるような、デバッグパケットを用いることができる。
Ｆａｃｔｏｒｙ＿ｍｏｄｅ信号４３が有効（“１”）の時のみ、ＥＣＣビット３３のビット反転によって、ＣＰＵノード１１０とシステムコントローラ１２０との間の通信を行う。ＥＣＣビット３３を用いて同時に発生する通信事象はひとつである。これは、疑似的な訂正可能エラー（ＣＥ）を用いるためである。【００６４】
上述のように、個々のＣＰＵノード１１０は、ひとつ以上のシステムコントローラ１２０とＥＣＣ保護されたバス３０で接続されている。
本実施の形態においては、ＣＰＵノード１１０からシステムコントローラ１２０への転送方向のバス３０（ＳＣＲＥＱ＿ＢＵＳ３０−１）では、ＴＡＧビット３１が３ｂｉｔ、データビット３２が２４ｂｉｔ、ＥＣＣビット３３が７ｂｉｔからなる。【００６５】
システムコントローラ１２０からＣＰＵノード１１０への転送方向のバス３０（ＳＣＯＤＲ＿ＢＵＳ３０−２）では、ＴＡＧビット３１が３ｂｉｔ、データビット３２が４０ｂｉｔ、ＥＣＣビット３３が７ｂｉｔからなる。【００６６】
ＳＣＲＥＱ＿ＢＵＳ３０−１、ＳＣＯＤＲ＿ＢＵＳ３０−２のいずれもＥＣＣビット３３で保護されており、任意の１ｂｉｔエラーは、エラー位置を特定できる。したがって、エラーの訂正が可能である。２ｂｉｔエラーは検出が可能であるが、訂正はできない。【００６７】
通常モード（通常運用時）における、デバッグ機能の起動信号として、本実施の形態では、図５に例示されるデバッグリクエストパケット２０１、および図６に例示されるデバッグオーダパケット２０２を有する。【００６８】
図５のデバッグリクエストパケット２０１は、ＣＰＵノード１１０からシステムコントローラ１２０へのデバッグ機能起動に用いられる。
ＳＣＲＥＱ＿ＢＵＳ３０−１における２４ビット幅のＳＣＲＥＱ＿ＢＵＳ［２３：０］において、ＳＣＲＥＱ＿ＢＵＳ［２２］〜［１６］に７ビット幅のデバッグリクエストの命令コードが設定され、ＳＣＲＥＱ＿ＢＵＳ［６］、［７］の各ビットに、ＴＲＡＰ２、ＴＲＡＰ１の起動信号が割り当てられている。【００６９】
図６のデバッグオーダパケット２０２は、システムコントローラ１２０からＣＰＵノード１１０へのデバッグ機能起動に用いられる。
ＳＣＯＤＲ＿ＢＵＳ３０−２における０〜３９の４０ビット幅のＳＣＯＤＲ＿ＢＵＳ［３９：０］において、ＳＣＲＥＱ＿ＢＵＳ［３８］〜［３２］に７ビット幅のデバッグオーダの命令コードが設定され、ＳＣＲＥＱ＿ＢＵＳ［２１］、［２０］、［１９］、［１８］、の各ビットに、ＨＩＳ＿ＦＲＺ、ＨＩＳ＿ＲＬＳ、ＳＴＡＲＴ、ＳＴＯＰ、の各起動信号が割り当てられている。【００７０】
ここで、ＨＩＳ＿ＦＲＺは、履歴メモリ１１８、履歴メモリ１２６等のハードウェアにおける履歴データのフリーズ指示である。このフリーズ指示により、履歴メモリ１１８、履歴メモリ１２６への書き込みが停止され、その時点までの履歴データが上書きされて失われることなく、保存される。【００７１】
ＨＩＳ＿ＲＬＳは、履歴メモリ１１８、履歴メモリ１２６等に対するリリース指示であり、このリリース指示により、履歴メモリ１１８、履歴メモリ１２６への履歴データの書き込みが再開される。【００７２】
ＳＴＡＲＴは、性能測定用制御信号であり、たとえば特定の命令等の実行回数の測定開始契機をデバッグ用の図示しないハードウェアに指示する。
ＳＴＯＰは、同じく性能測定用制御信号であり、測定停止契機をデバッグ用の図示しないハードウェアに指示する。【００７３】
いずれも、ソフトウェアを変更することなく、ＣＰＵノード１１０やシステムコントローラ１２０のハードウェアに設けられた調査用のデバッグ装置を制御するための信号である。【００７４】
ところで、上述のように、これらの信号の送出のために、専用のデバッグリクエストパケット２０１、デバッグオーダパケット２０２等を用いる場合には、当該パケットによって情報処理システム１００の動作に擾乱が加わる懸念がある。【００７５】
これは、高度にタイミングに依存するような情報処理システム１００の挙動を調査したい場合には問題となる。
そこで、本実施の形態では、上述のように、ＴＲＡＰ１、ＴＲＡＰ２、ＨＩＳ＿ＦＲＺ、ＨＩＳ＿ＲＬＳ、ＳＴＡＲＴ、ＳＴＯＰ等のデバッグ信号を、既存のＥＣＣビット３３を操作することによって実現する。【００７６】
すなわち、本実施の形態では、たとえば、工場での情報処理システム１００の開発工程や保守における調査専用モード（Ｆａｃｔｏｒｙ＿ｍｏｄｅ信号４３）を設け、このモード時に限り、デバッグ信号の授受にＥＣＣビット３３を用いる。【００７７】
これにより、ＳＣＲＥＱ＿ＢＵＳ３０−１、ＳＣＯＤＲ＿ＢＵＳ３０−２におけるデータビット３２を用いた通常運用系のパケット転送に干渉することなく、ＣＰＵノード１１０とシステムコントローラ１２０との間で、デバッグ機能のトリガ信号を授受することが可能となる。【００７８】
Ｆａｃｔｏｒｙ＿ｍｏｄｅ信号４３の設定時において、ＥＣＣビット３３を用いて転送される信号と、用いられるチェックビットは、上述の図４に例示した通りである。
転送元のＣＰＵノード１１０またはシステムコントローラ１２０は、上記のトリガ信号を送出する際には、送信側装置１０の冗長ビット反転回路１４においてＥＣＣビット３３の該当するビットを反転させる。【００７９】
すなわち、バス３０上で故意に訂正可能エラーを発生させることにより、トリガの発生を通知する。
バス３０上のＥＣＣビット３３は転送状況に関わらず（アイドル時も含めて）有効であるため、任意のタイミングでトリガ信号の転送が可能である。ただし、２つのトリガを同時に転送することは原理的に出来ない。【００８０】
受信側のシステムコントローラ１２０またはＣＰＵノード１１０における受信側装置２０においては、エラー検出・訂正回路２２によって訂正可能エラーを検出し、かつ、誤りビット位置がトリガ転送用のビットであった場合には、判定回路２４において、トリガ信号を受信したものと解釈する。このとき、上位のシステム制御論理１２２等に対する訂正可能エラー検出の報告は抑止される必要がある。【００８１】
ＥＣＣビット３３において、トリガ信号の転送に用いられないビットの誤りは、通常通り訂正されるとともに、システム制御論理１２２等に対してエラー報告が行われる。
図７のシーケンス図を参照して、ＥＣＣビット３３の操作によって伝達されるデバッグ用のトリガ信号を用いた処理の一例を説明する。【００８２】
まず、履歴情報読み出し処理３００について説明する。情報処理システム１００に、内部的な要因でなんらかの障害が発生する場合、ＣＰＵノード１１０、システムコントローラ１２０等の各ハードウェアにおける障害発生時およびその前後における動作履歴を、履歴メモリ１１８、履歴メモリ１２６等から読み出して原因を解析したい場合がある。【００８３】
ただし、上述のように、履歴メモリ１１８、履歴メモリ１２６では、限られた記憶領域を上書きしながらエンドレスで履歴情報を記録するため、適宜、書き込み（上書き）を停止させる必要がある。また、用済み後は、履歴メモリ１１８、履歴メモリ１２６等における記録動作を再開させる必要がある。【００８４】
本実施の形態では、このような、履歴メモリ１１８、履歴メモリ１２６の制御を以下のようにして実現する。
Ｆａｃｔｏｒｙ＿ｍｏｄｅ信号４３が真の状態で、たとえば、一つのＣＰＵノード１１０（ＣＰＵ０）でエラーが検出されると（ステップ３０１）、当該ＣＰＵノード１１０は、ＳＣＲＥＱ＿ＢＵＳ３０−１のＥＣＣビット３３（ＥＣＣ［０］）を反転操作して、システムコントローラ１２０に対して、ＴＲＡＰ１を通知する（ステップ３０２）。【００８５】
このＴＲＡＰ１を、受信側装置２０の判定回路２４で認識したシステムコントローラ１２０は、全てのＣＰＵノード１１０（ＣＰＵ０、ＣＰＵｎ）に対して、ＳＣＯＤＲ＿ＢＵＳ３０−２のＥＣＣビット３３のＥＣＣ［０］を反転させることで、ＨＩＳＴ＿ＦＲＺを通知するとともに、自装置の履歴メモリ１２６への書き込みを停止し、過去の所定期間の履歴情報が上書きされないように保存する。【００８６】
同様に、ＳＣＯＤＲ＿ＢＵＳ３０−２を介して、システムコントローラ１２０からＨＩＳＴ＿ＦＲＺを通知された全てのＣＰＵノード１１０は、履歴メモリ１１８の更新を停止する（ステップ３０３）。【００８７】
その後、たとえば、ＣＰＵノード１１０、システムコントローラ１２０に設けられた、図示しないデバッグ情報の読み出しピン等を通じて、履歴メモリ１１８、履歴メモリ１２６の内容をシリアルに外部に読み出して解析に供する（ステップ３０４）。【００８８】
この履歴情報の読み出しが完了したら、図示しないデバッグ専用ピン等を通じて、システムコントローラ１２０にヒストリのリリースを指示する（ステップ３０５）。
これを契機に、システムコントローラ１２０は、自装置の履歴メモリ１２６に対する履歴情報の書き込みを再開するとともに、ＳＣＯＤＲ＿ＢＵＳ３０−２のＥＣＣビット３３を介して、全てのＣＰＵノード１１０に対して、ＨＩＳ＿ＲＬＳを通知する。これを受けた個々のＣＰＵノード１１０は、履歴メモリ１１８に対する履歴情報の書き込みを再開する（ステップ３０６）。【００８９】
上述の図７の例では、エラー検出を契機にＨＩＳ＿ＦＲＺをＣＰＵが発行する場合を例示したが、以下のように、任意の命令の実行開始後にＨＩＳ＿ＦＲＺをＣＰＵが発行することもできる。【００９０】
たとえば、エラー検出機構のひとつとして、本実施の形態の情報処理システムに、タイマーを利用したハングアップ検出機能を設けることもできる。
しかし、図８に例示されるように、ハングアップ検出時点（時刻５０１）でヒストリフリーズしたのでは、ハングアップ検出時点の近辺の履歴しか得られず、また、この期間に得たい情報（エラーの原因）が含まれる可能性は小さい。【００９１】
そこで、ハングアップする可能性のある命令（たとえば、応答待ち・処理待ち状態になるような命令）の開始時（時刻５００）に、仮にＨＩＳ＿ＦＲＺを発行させ、その命令がただしく完了したらＨＩＳ＿ＲＬＳを発行させるような制御を行う。【００９２】
これにより、当該命令の開始直後から、エラーの原因が含まれる可能性の高い期間５０２の履歴情報を確実に収集することができる。
この処理を、履歴情報読み出し処理３５０として、図９を参照して説明する。【００９３】
ＣＰＵ０は、ハングする危険のある特定の命令の発行時（時刻５００）に、システムコントローラ１２０（ＳＣ）に対してＴＲＡＰ１を発行し（ステップ３５１）、これを受けたＳＣは、自装置および全てのＣＰＵノード１１０に対してＨＩＳ＿ＦＲＺを発行し（ステップ３５２）、履歴メモリ１１８、履歴メモリ１２６の更新を停止させる。【００９４】
これにより、履歴メモリ１１８、履歴メモリ１２６には、上述の期間５０２の履歴情報が保存され、当該履歴情報を採取することが可能になる。
なお、上述の図７では、外部から図示しないデバッグ専用ピンを介してシステムコントローラ１２０に指令を与えることにより、ＨＩＳ＿ＲＬＳの同報送信を行わせていたが、以下のように、ＴＲＡＰ２を利用して、ＣＰＵ０（ＣＰＵノード１１０）からＨＩＳ＿ＲＬＳの同報送信を行わせることもできる。【００９５】
ＴＲＡＰ２を用いてＣＰＵノード１１０がシステムコントローラ１２０にＨＩＳ＿ＲＬＳの発行を行わせる例を、図９の下側に例示する。
ＣＰＵは、キャッシュミスにともなうシステム応答待ち等の、ハングアップに陥る危険のある処理（命令）の実行を開始したら（時刻５００）、しばらくの時間（ほぼ履歴メモリ１１８、履歴メモリ１２６の記憶容量できまる）待ったのちにＴＲＡＰ１を発行する（ステップ３５１）。【００９６】
これによりＨＩＳ＿ＦＲＺ（ステップ３５２）が行われるのは、上述のとおりである。
もし、「ハングアップに陥る危険のある処理」が本当にハングアップにいたった場合には、この処理開始からしばらくの履歴が手に入ることになる。【００９７】
なお、図９では、ハングアップにいたらなかった場合を図示している。ハングアップにならず、処理が正常に完了した際には、履歴メモリ１１８、履歴メモリ１２６での履歴情報の記録を再開する必要がある。【００９８】
そこで、ＣＰＵ０は、ＴＲＡＰ２をＳＣに発行し（ステップ３５３）、ＳＣは、ＴＲＡＰ２を契機に、ＨＩＳ＿ＲＬＳを自装置および全てのＣＰＵノード１１０に同報送信する（ステップ３５４）。【００９９】
このように、個々のＣＰＵノード１１０、システムコントローラ１２０における履歴メモリ１１８、履歴メモリ１２６の更新停止をＨＩＳＴ＿ＦＲＺによって同期して制御することで、ステップ３０１で検出されたシステムエラーに関するシステム各部の履歴情報を的確に収集することができる。【０１００】
また、ＳＣＲＥＱ＿ＢＵＳ３０−１、ＳＣＯＤＲ＿ＢＵＳ３０−２の各々に本来備わっているＥＣＣビット３３を操作するだけなので、ＴＡＧビット３１やデータビット３２におけるデータ転送等に擾乱が加わることがない。【０１０１】
このため、履歴メモリ１１８、履歴メモリ１２６等から収集された履歴情報は、システムエラーを、有りのままに反映した状態となっており、短期間に正確なエラー解析を行うことができる。【０１０２】
さらに、ＳＣＲＥＱ＿ＢＵＳ３０−１、ＳＣＯＤＲ＿ＢＵＳ３０−２の各々に本来備わっているＥＣＣビット３３の操作によって、図４に示したような各種のデバッグ信号等の伝達が行われるので、これらのデバッグ信号等の伝達のために余分なデバッグ専用の信号線を設ける必要がなく、情報処理システム１００の製造コストを削減することができる。【０１０３】
次に、図１０を参照して、性能測定処理４００について説明する。情報処理システム１００のハードウェアやソフトウェアの最適化等のために、情報処理システム１００の稼働状態において、特定の命令の実行回数等を計測した場合がある。【０１０４】
本実施の形態では、以下のようにしてこの性能測定処理４００を行う。
まず、図示されないデバッグ専用ピン等をもちいて、システムコントローラ１２０に対して性能測定処理の開始を指示する（ステップ４０１）。【０１０５】
これを受けたシステムコントローラ１２０は、ＳＣＯＤＲ＿ＢＵＳ３０−２のＥＣＣビット３３を介して、ＳＴＡＲＴを全てのＣＰＵノード１１０に通知するとともに、自装置内でも性能測定を開始する。また、ＳＴＡＲＴを通知された個々のＣＰＵノード１１０でも、性能測定を開始する（ステップ４０２）。【０１０６】
この性能測定の開始とは、たとえば、図示しないレジスタ等を用いて特定の命令の実行回数のカウントを開始することである。
所定の時間後、ふたたび図示されないデバッグ専用ピン等をもちいて、システムコントローラ１２０に対して性能測定処理の停止を指示する（ステップ４０３）。【０１０７】
これを受けたシステムコントローラ１２０は、自装置内における性能測定を停止するとともに、ＳＣＯＤＲ＿ＢＵＳ３０−２のＥＣＣビット３３を用いて、全てのＣＰＵノード１１０にＳＴＯＰを通知する（ステップ４０４）。【０１０８】
このＳＴＯＰの通知を受けた個々のＣＰＵノード１１０も、同時に性能測定を停止する。
その後、上述と同様の方法で、個々のＣＰＵノード１１０、システムコントローラ１２０から、性能測定結果を読み出す（ステップ４０５）。【０１０９】
このように、ＳＴＡＲＴ、ＳＴＯＰの起動信号を用いて、複数のＣＰＵノード１１０、システムコントローラ１２０の特定の動作状態に同期して性能測定結果を収集することができる。【０１１０】
この性能測定処理４００の場合も、上述した履歴情報読み出し処理３００の場合と同様の効果を得ることができる。
【産業上の利用可能性】
【０１１１】
本発明によれば、コスト増大を生じることなく、ハードウェアのデバッグ機能を用いた的確なデバッグを実現することが可能となる。
また、余分な専用信号線等のハードウェアを必要とすることなく、高度に動作タイミングに依存するようなシステム挙動のデバッグを実現することが可能となる。【０１１２】
なお、本発明は、上述の実施の形態に例示した構成に限らず、その趣旨を逸脱しない範囲で種々変更可能であることは言うまでもない。
すなわち、バスの冗長ビットの意図的な操作による情報伝達としては、デバッグ、性能測定等に限らず、一般の情報伝達にも用いることができる。
【図１】
2007097040.tif 000003
【図２】
2007097040.tif 000004
【図３】
2007097040.tif 000005
【図４】
2007097040.tif 000006
【図５】
2007097040.tif 000007
【図６】
2007097040.tif 000008
【図７】
2007097040.tif 000009
【図１０】
2007097040.tif 000010
【図８】
2007097040.tif 000011
【図９】
2007097040.tif 000012
【手続補正書】
【提出日】平成20年4月30日(2008.4.30)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
エラー検出およびエラー訂正のための冗長ビットを付加することで保護された情報伝送路を介して第１装置と第２装置を接続する第１ステップと、
前記冗長ビットを意図的に操作することで、第１装置から第２装置への情報伝達を行う第２ステップと、
を含むことを特徴とする情報処理装置の制御方法。
【請求項２】
エラー検出およびエラー訂正のための冗長ビットを付加することで保護された情報伝送路を介して第１装置と第２装置を接続した構成の情報処理装置であって、
前記冗長ビットを意図的に操作することで、第１装置から第２装置への特定情報の伝達を行う情報伝達手段を含むことを特徴とする情報処理装置。
【請求項３】
請求項２記載の情報処理装置において、
前記情報伝達手段は、
送信側の前記第１または第２装置において複数の前記冗長ビットの各々に異なる前記特定情報を割り当てて擬似的な訂正可能エラーを発生させ、
受信側の前記第２または第１装置において前記冗長ビットにおけるエラービットの位置認識結果に基づいて前記特定情報を実現することを特徴とする情報処理装置。
【請求項４】
請求項２記載の情報処理装置において、
前記情報伝達手段は、前記情報処理装置における通常稼働時とは異なる特定動作モードを認識する機能を備え、前記特定動作モードにおいて、前記冗長ビットの操作による前記特定情報の伝達が行われることを特徴とする情報処理装置。
【請求項５】
請求項２記載の情報処理装置において、
前記情報伝達手段は、
送信側の前記第１および／または第２装置に配置され、前記特定情報に応じて前記冗長ビットを操作する冗長ビット操作手段と、
受信側の前記第２および／または第１装置に配置され、前記冗長ビットを参照して得られた前記エラー検出の報告に基づいて前記特定情報を受信する判定手段と、
を含むことを特徴とする情報処理装置。
【国際調査報告】
2007097040.tif 000013
2007097040.tif 000014
2007097040.tif 000015