JPWO2012127692A1 - 情報処理装置、送信装置、および情報処理装置の制御方法 - Google Patents

情報処理装置、送信装置、および情報処理装置の制御方法 Download PDF

Info

Publication number
JPWO2012127692A1
JPWO2012127692A1 JP2013505757A JP2013505757A JPWO2012127692A1 JP WO2012127692 A1 JPWO2012127692 A1 JP WO2012127692A1 JP 2013505757 A JP2013505757 A JP 2013505757A JP 2013505757 A JP2013505757 A JP 2013505757A JP WO2012127692 A1 JPWO2012127692 A1 JP WO2012127692A1
Authority
JP
Japan
Prior art keywords
data
unit
control information
input
information processing
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.)
Withdrawn
Application number
JP2013505757A
Other languages
English (en)
Inventor
正博 三島
正博 三島
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Fujitsu Ltd filed Critical Fujitsu Ltd
Publication of JPWO2012127692A1 publication Critical patent/JPWO2012127692A1/ja
Withdrawn legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/22Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
    • G06F11/26Functional testing
    • G06F11/263Generation of test inputs, e.g. test vectors, patterns or sequences ; with adaptation of the tested hardware for testability with external testers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/22Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
    • G06F11/2205Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing using arrangements specific to the hardware being tested
    • G06F11/2236Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing using arrangements specific to the hardware being tested to test CPU or processors
    • G06F11/2242Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing using arrangements specific to the hardware being tested to test CPU or processors in multi-processor systems, e.g. one processor becoming the test master

Landscapes

  • Engineering & Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Test And Diagnosis Of Digital Computers (AREA)
  • Hardware Redundancy (AREA)

Abstract

送信装置は、データを入力する第1の入力部と、データを入力する第2の入力部と、第1の入力部が入力したデータ又は第2の入力部が入力したデータに対して情報処理を行ったデータを出力する第1の情報処理部とを有する。さらに、この送信装置は、第1の情報処理部が出力したデータを保持する第1の保持部と、第1の情報処理部が出力したデータを保持する第2の保持部と、制御情報を保持する制御情報保持部と、を有する。さらにまた、この送信装置は、制御情報保持部が保持した制御情報に基づき、第1の保持部が保持したデータと第2の保持部が保持したデータのいずれかを選択する第1の選択部と、制御情報保持部が保持した制御情報に基づき、第1の選択部が選択したデータを第1の入力部に折り返す第1の出力部を有する。

Description

本発明は、情報処理装置、送信装置、および情報処理装置の制御方法に関する。
情報処理装置には、種々のニーズに応じて、搭載する演算処理装置であるCPU(Central Processing Unit)の種類、個数、あるいは基板の種類、枚数等で規定されるシステム構成を変えて製品出荷されるものがある。このようなシステム構成が多様な情報処理装置の試験、例えば、製品出荷のため試験、あるいは、量産試験においては、構成部品、例えば、CPU等のチップの不良、あるいは、基板の不良を摘出するために、システム構成に含まれる回路を活性化させた上で動作確認することが求められる。
図1から図3に情報処理装置のシステム構成を例示する。図1から図3に示す情報処理装置は、CPUの増設、あるいは、基板の増設によりシステム構成を変えることができる製品の例である。図1では、基板(board0)上に、CPU00と、CPU01という2つのCPUが搭載されている。CPU00と、CPU01とは、例えば、複数のインターフェースを持ち、相互に接続されている。
図2では、基板(board0)上に、CPU00からCPU03という4つのCPUが搭載されている。CPU00からCPU03のそれぞれは、例えば、複数のインターフェースを持ち、他のCPUと接続されている。
図3の情報処理装置は、複数の基板(board0、board1)を有する。基板(board0)上には、CPU00からCPU03という4つのCPUが搭載されている。CPU00からCPU03のそれぞれは、例えば、複数のインターフェースを持ち、他のCPUと接続されている。また、基板(board1)上にも、CPU10からCPU13という4つのCPUが搭載されている。CPU10からCPU13のそれぞれは、例えば、複数のインターフェースを持ち、他のCPUと接続されている。さらに、基板(board0)上のCPU00からCPU03と、基板(board1)上のCPU10からCPU13とは、クロスバースイッチ(XB0、XB1)を介して、相互に接続される。例えば、クロスバースイッチ(XB0)は、CPU00およびCPU02の組みとCPU10およびCPU12の組みとの間で、接続を切り替えることによりデータ転送を行なう。また、クロスバースイッチ(XB1)は、CPU01およびCPU03の組みとCPU11およびCPU13の組みとの間で、接続を切り替えることによりデータ転送を行なう。
したがって、図3の例では、8個のCPUが、相互に接続可能となっている。図1、図2の情報処理装置は、図3の情報処理装置の部分的な構成を有する。ここでは、例えば、図3の構成が最大構成であると仮定する。
図1から3のようなシステム構成の情報処理装置を試験する場合、それぞれのCPUに含まれるインターフェースの回路を活性化させた上で、情報処理装置の動作確認をすることが求められる。ところで、図1、図2のような最大構成ではない情報処理装置では、使用されない回路が含まれることがある。例えば、図1の情報処理装置が図2の構成を採ることが可能な場合に、図1の構成のCPU00、あるいは、CPU01は、CPU02、CPU03等と通信するための未使用のインターフェースを有している。また、例えば、図2の構成では、CPU00からCPU03はそれぞれ、クロスバースイッチ(XB0、XB1)と通信するための未使用のインターフェースを有している。
情報処理装置の出荷時の構成が最大構成でない場合であっても、出荷後にCPUあるいは基板が増設される場合がある。例えば、図1の情報処理装置が図2のように拡張される場合がある。また、図1、図2の情報処理装置が図3のように拡張される場合もある。増設の結果、増設前に使用されていなかったインターフェース回路が使用されるようになる。このような場合に、未使用であったインターフェース回路の使用開始に伴って、情報処理装置の不良が顕在化する可能性がある。
そのような増設時の不良低減のため、量産試験では一般的に、極力最大構成に近い状態で試験が実行される。ただし、最大構成での量産試験等で不良を検出した場合には、解析、修理等の手間とコストが増加する。そのため、CPU等の部品は、極力、部品単体に近い検査によって可能な限り多くの不良品を摘出することが望ましい。この場合の検査では、短期間で効率的に検査を行う必要があるため、極力簡易な構成で検査を実施することが望まれる。一方、極力簡易な構成での情報処理装置の検査であっても、増設後の複雑な構成での情報処理装置と同等に近い動作確認が実施できることが望まれる。
特開2002−222921号公報 特開平10−132902号公報 特開平9−128349号公報
開示の技術の課題は、増設可能な情報処理装置において、極力簡易な構成での検査を可能にするとともに、実際に使用するインターフェース以外のインタ−フェースに対しても動作確認が実施できるようにすることである。
上記課題を解決するために、開示の技術の一態様は、情報処理装置が有する第1の受信装置に接続される送信装置として例示できる。この送信装置は、データを入力する第1の入力部と、データを入力する第2の入力部と、第1の入力部が入力したデータ又は第2の入力部が入力したデータに対して情報処理を行なったデータを出力する第1の情報処理部とを有する。さらに、この送信装置は、第1の情報処理部が出力したデータを保持する第1の保持部と、第1の情報処理部が出力したデータを保持する第2の保持部と、制御情報を保持する制御情報保持部と、を有する。さらにまた、この送信装置は、制御情報保持部が保持した制御情報に基づき、第1の保持部が保持したデータと第2の保持部が保持したデータのいずれかを選択する第1の選択部と、制御情報保持部が保持した制御情報に基づき、第1の選択部が選択したデータを第1の入力部に折り返す第1の出力部を有する。
本情報処理装置によれば、極力簡易な構成での検査を可能にするとともに、実際に使用されるインターフェース以外のインタ−フェースの部分に対しても動作確認が実施できる。
情報処理装置のシステム構成を例示する図である。 情報処理装置のシステム構成を例示する図である。 情報処理装置のシステム構成を例示する図である。 第1実施例に係る情報処理装置の構成を例示する図である。 データ転送部の詳細を例示する図である。 信号を無効化する構成を例示する図である。 第2実施例に係る情報処理装置の構成を例示する図である。 CPU内のルータの詳細構成を周辺回路とともに例示する図である。 TEST_MODE[0:3]の設定に対応する論理的な接続関係を例示する図である。 送信制御部の処理シーケンスを例示する図である。 受信制御部の処理シーケンスを例示する図である。 バスセレクタのバス選択論理を例示する図である。 バスセレクタのバス選択論理を例示する図である。 バスセレクタのバス選択論理を例示する図である。 バスセレクタのバス選択論理を例示する図である。 パケット伝送時のタイムチャートを例示する図である。
以下、図面を参照して、一実施形態に係る情報処理装置について説明する。本実施形態の構成は例示であり、本情報処理装置は実施形態の構成には限定されない。
<第1実施例>
図4に、第1実施例に係る情報処理装置1の構成を例示する。情報処理装置1は、例えば、コンピュータ、サーバ等の様々な装置として例示できる。図4の例では、情報処理装置1は、処理部10−1と処理部10−2を有している。処理部10−1、10−2を総称する場合には、処理部10という。処理部10は、コンピュータ、サーバに含まれるプロセッサ、プロセッサを含むシステムボード等の基板等として例示できる。ただし、処理部10は、コンピュータ、サーバ等の装置であってもよい。処理部10がコンピュータ、サーバ等のである場合には、情報処理装置1は、複数のコンピュータ、サーバを含むシステムとなる。
また、処理部10−1は、データ処理部11−1、データ転送部12A−1、12B−1、制御情報保持部13−1を有している。処理部10−2の構成も、処理部10−1と同様である。処理部10−2は、データ処理部11−2、データ転送部12A−2、12B−2、制御情報保持部13−2を有している。データ処理部11−1、11−2を総称する場合には、データ処理部11という。また、データ転送部12A−1、12B−1、12A−2、12B−2等を総称する場合には、データ転送部12という。制御情報保持部13−1、13−2を総称する場合には、制御情報保持部13という。
処理部10−1が送信装置の一例である。また、処理部10−2が受信装置の一例である。また、データ転送部12A−1が第1の出力部の一例である。また、データ転送部12B−1が第2の出力部の一例である。さらに、データ処理部11−1が第1の情報処理部の一例である。さらにまた、データ処理部11−2が第2の情報処理部の一例である。
データ処理部11は、例えば、演算処理装置としてのプロセッサ、あるいはプロセッサを含む基板等におけるデータ処理を実行する回路部分、あるいは部品として例示できる。データ処理部11は、例えば、CPU(Central Processing Unit)、主記憶装置等の部品を含む。
また、データ転送部12は、例えば、データ転送装置としてのクロスバースイッチ、プロセッサ、あるいはプロセッサを含む基板等におけるデータ転送を実行する回路部分、あるいは部品として例示できる。データ転送部12は、例えば、転送されるデータを一時的に保持するバッファ、レジスタ等を含む。また、データ転送部12は、バッファあるいはレジスタ上のデータを、伝送路を通じて送信するための駆動回路を含む。また、データ転送部12は、データを一時的に保持するバッファ、レジスタ、あるいはデータを転送する駆動回路等を制御する制御回路を含む。制御回路は、例えば、スイッチのようなデータの切り替え回路を含む。
図4の構成では、処理部10−1と処理部10−2とは、データ転送部12A−1とデータ転送部12A−2とを通じて伝送路L1で接続される。なお、伝送路L1は、有線の伝送路でも、無線の伝送路でもよい。また、伝送路L1は、パラレルの伝送路でもよいし、シリアルの伝送路でもよい。また、図14の構成では、データ転送部12B−1は、処理部10−1の外部の装置と接続されていない。同様に、データ転送部12B−2は、処理部10−2の外部の装置と接続されていない。すなわち、図4で、データ転送部12B−1、12B−2は、例えば、予備のために備えられている。データ転送部12B−1、12B−2は、いずれも情報処理装置1にさらなる処理部10が増設されるときに使用されることなる。
制御情報保持部13は、データ転送部12を制御するための制御情報を記憶する。制御情報保持部13は、ラッチ、レジスタ等と呼ばれる記憶回路を含む。データ転送部12は、制御情報保持部12が記憶する情報にしたがって、データ転送を実行する。
なお、図4では、2つの処理部10−1、10−2が例示されているが、処理部の数に限定がある訳ではない。また、図4では、処理部10−1に、2つのデータ転送部12A−1、12B−1が設けられている。また、処理部10−2に、2つのデータ転送部12A−2、12B−2が設けられている。しかし、処理部10内のデータ転送部12の数に限定がある訳ではない。すなわち、処理部10内に、3以上のデータ転送部12を設けてもよい。
図5に、データ転送部12A−1の詳細を例示する。ここでは、処理部10−1に含まれるデータ転送部12A−1の構成を例にして説明するが、他のデータ転送部12の構成も、データ転送部12A−1と同様である。
データ転送部12A−1は、他の処理部(10−2等)から受信したデータを保持するデータバッファDB1、DB3を有する。ここで、他の処理部とは、図4に示した処理部10−2の他、さらに1以上の処理部を含めてもよい。すなわち、データ転送部12A−1には、図5の他の処理部が複数接続されてもよい。例えば、データバッファDB1は、処理部10−2からの受信データを受信し、一方、データバッファDB3は、製品出荷後の将来の増設のために用意されている。ただし、図5では、データバッファDB1、DB3は、スイッチSW2、SW3を介して他の処理部10−2等と接続される。
さらに、データ転送部12A−1は、データバッファDB1、DB3のデータをデータ処理部11−1に入力するためにデータを一時保持するデータバッファDB2、DB4を有する。ただし、データバッファDB2は、データバッファDB1と兼用されてもよい。また、データバッファDB4は、データバッファDB3と兼用されてもよい。
また、データ転送部12A−1は、データ処理部11−1で処理されたデータを一時的に保持するデータバッファDB5、DB7を有する。また、データ転送部12A−1は、データバッファDB5、DB7のデータを他の処理部10−2等に転送するためにデータを一時保持するデータバッファDB6、DB8を有する。ただし、図5では、データバッファDB6、DB8は、スイッチSW1を介してデータバッファDB5、DB7と接続される。
スイッチSW1は、データバッファDB5、DB7のいずれか一方をデータバッファDB6に接続する。また、スイッチSW1は、データバッファDB5、DB7のうちの一方をデータバッファDB8にも接続する。例えば、第1の接続として、スイッチSW1は、データバッファDB5をデータバッファDB6に接続するとともに、データバッファDB7をデータバッファDB8に接続する。データ処理部11−1がデータバッファDB5、DB7のそれぞれに、他の処理部10−2等へ転送されるデータを出力する構成では、第1の接続が適用される。
また、第2の接続として、スイッチSW1は、データバッファDB5をデータバッファDB6、DB8の両方に接続する。データ処理部11−1が他の処理部10−2等へ転送されるデータをデータバッファDB5に出力し、データ処理部11−1がデータバッファDB7にデータを出力しない構成では、情報処理装置1の試験時に第2の接続が適用される。すなわち、第2の接続の場合には、データバッファDB5のデータがデータバッファDB6に転送されるとともに、複製されて、データバッファDB8にも転送される。すなわち、図5では、スイッチSW1は、信号の複製機能を提供する。スイッチSW1が第1の選択部の一例である。また、データバッファDB5が第1の保持部の一例である。さらに、データバッファDB7が第2の保持部の一例である。
なお、図示しないが、データ転送部12B−1の構成は、データ転送部12A−1の構成と同様である。例えば、データ転送部12B−1も、スイッチSW1、データバッファDB5、およびデータバッファDB7と同様の構成を有する。そして、データ転送部12B−1のスイッチSW1に相当するスイッチが第2の選択部の一例である。
また、第3の接続として、スイッチSW1は、データバッファDB7をデータバッファDB6、DB8の両方に接続する。データ処理部11−1が他の処理部10−2等へ転送されるデータをデータバッファDB7に出力し、データ処理部11−1がデータバッファDB5にデータを出力しない構成では、情報処理装置1の試験時に第3の接続が適用される。すなわち、第2の接続の場合には、データバッファDB7のデータがデータバッファDB8に転送されるとともに、複製されて、データバッファDB6にも転送される。すなわち、スイッチSW1は、信号の複製機能を提供する。
さらに、データ転送部12A−1において、データバッファDB6、DB7から出力されるデータは、他の処理部10−2等に転送されるとともに、折り返しラインL2、L3で分岐されて、それぞれスイッチSW2、SW3に入力される。スイッチSW2は、他の処理部10−2等からのデータと折り返しラインL2(データバッファDB6)からのデータのうち、いずれか一方をデータバッファDB1に出力する。また、スイッチSW2は、他の処理部10−2等からのデータと折り返しラインL3(データバッファDB8)からのデータのうち、いずれか一方をデータバッファDB3に出力する。
制御情報処理部13−1は、スイッチSW1、SW2、SW3の切り替えを制御する指示ビットを保持する。図5の例では、制御情報処理部13−1は、指示ビットとして4ビットのビットパターンを保持すればよい。例えば、第1の指示ビットは、スイッチSW1に対して、データバッファDB6への出力信号を制御するビットである。第1のビットに応じて、スイッチSW1は、データバッファ5およびデータバッファ7のいずれか一方からのデータをデータバッファDB6に出力する。
また、第2の指示ビットは、スイッチSW1に対して、データバッファDB8への出力信号を制御するビットである。第2のビットに応じて、スイッチSW1は、データバッファ5およびデータバッファ7のいずれか一方からのデータをデータバッファDB8に出力する。
また、第3の指示ビットは、スイッチSW2に対して、データバッファDB1への出力信号を制御するビットである。第3のビットに応じて、スイッチSW2は、他の処理部10−2等およびデータバッファ6のいずれか一方からのデータをデータバッファDB1に出力する。
また、第4の指示ビットは、スイッチSW3に対して、データバッファDB3への出力信号を制御するビットである。第4のビットに応じて、スイッチSW3は、他の処理部10−2等およびデータバッファ8のいずれか一方からのデータをデータバッファDB3に出力する。
このような構成によって、処理部10−1は、制御情報保持部13−1の指示ビットの設定により、データ転送部12A−1は次のように動作する。
(1)処理部が最大構成の場合;
最大構成の場合とは、データバッファDB1、DB3のいずれもが、他の処理部からデータを入力され、データバッファDB6、DB8のいずれもが、他の処理部にデータを出力する場合である。図5では、データ入力用に、2つのデータバッファDB1、DB3を設けているが、もちろん、データ入力用に、3以上のデータバッファを設けてもよい。また、図5では、データ出力用に、2つのデータバッファDB6、DB8を設けているが、もちろん、データ出力用に、3以上のデータバッファを設けてもよい。ただし、基本的には、データ入力用のデータバッファの数とデータ出力用のデータバッファの数は同数である。
最大構成の場合には、データ入力用のデータバッファとデータ出力用のデータバッファは、いずれも他の処理部10−2等と接続されることになる。この場合には、スイッチSW1は、データバッファDB5をデータバッファDB6に接続すればよい。また、スイッチSW1は、データバッファDB7をデータバッファDB8に接続すればよい。また、スイッチSW2は、他の処理部10−2からのデータをデータバッファDB1に入力すればよい。また、スイッチSW3は、他の処理部10−2からのデータをデータバッファDB3に入力すればよい。したがって、この場合には、折り返しラインL2、L3で分岐されたデータはスイッチSW2、SW3で廃棄され、使用されない。
(2)処理部の数が最大構成の数よりも少ない場合;
処理部の数が最大構成の数よりも少ない場合には、データ入力用のデータバッファDB1、DB3の少なくとも1つが他の処理部10−2等と接続されないことなる。図5では、データ入力用に、2つのデータバッファDB1、DB3を設けているが、もちろん、データ入力用に、3以上のデータバッファを設けている場合も同様である。さらに、処理部の数が最大構成の数よりも少ない場合には、データ出力用のデータバッファDB6、DB8の少なくとも1つが他の処理部10−2と接続されないことなる。図5では、データ出力用に、2つのデータバッファDB6、DB8を設けているが、もちろん、データ入力用に、3以上のデータバッファを設けている場合も同様である。
ここでは、一例として、データ入力用のデータバッファDB3およびデータ出力用のデータバッファDB8が他の処理部10−2等と接続されない場合について説明する。この場合には、データバッファDB3、DB4を含むデータ入力用の経路が使用されないことになる。また、例えば、データバッファDB5、スイッチSW1、データバッファDB6を含む経路がデータ出力用として使用されるとする。この場合には、データバッファDB7、スイッチSW1、データバッファDB8を含む経路が使用されないことになる。
この場合に、情報処理装置1を試験する際に、制御情報保持部13−1の第1の指示ビットは、データバッファDB5をデータバッファDB7に接続するように設定される。さらに、第2の指示ビットは、データバッファDB5をデータバッファDB8に接続するように設定される。すなわち、データバッファDB5のデータが複製されてデータバッファDB8に出力される。
また、第3の指示ビットは、他の処理部10−2からのデータをデータバッファDB1に入力するように設定される。また、第4の指示ビットは、データバッファDB8からのデータをデータバッファDB3に入力するように設定される。したがって、データバッファDB5に保持されたデータは、データバッファDB6を通じて他の処理部10−2に転送されるとともに、スイッチSW1によって複製され、SW3を通じてデータバッファDB3に折り返される。データバッファDB8およびスイッチSW3が第1の出力部の一例である。
すでに述べたように、データ転送部12B−1の構成は、データ転送部12A−1の構成と同様である。したがって、例えば、データ転送部12B−1も、データバッファDB8およびスイッチSW3と同様の構成を有する。そして、データ転送部12B−1のデータバッファDB8およびスイッチSW3に相当するスイッチが第2の出力部の一例である。
したがって、データバッファDB3、DB4を含む経路は、他の処理部10−2等に接続されない場合であっても、データ処理部11−1で処理され、データバッファDB5に出力されるデータを用いて、模擬的又は擬似的にデータを入力することができる。データバッファDB3、DB4を含む経路に入力されたデータは、既存のデータ検証部、例えば、CRC(Cyclic Redundancy Check:巡回冗長検査)用チェッカ、パリティチェッカ、プロトコルチェッカ等によって、検証される。
また、データ出力用のデータバッファDB8に保持されるデータも、上記データバッファDB3、DB4を含む経路の既存のデータ検証部によって検証される。さらに、データバッファDB7については、データバッファDB5の代わりに、他の処理部10−2等に接続するように、制御情報保持部13−1の設定を変更することにより、上記データバッファDB5の場合と同様に、他の処理部10−2等との間で試験できる。
以上は、データ入力用のデータバッファDB3およびデータ出力用のデータバッファDB8が他の処理部10−2等と接続されない場合について説明した。しかし、データ入力用のデータバッファDB1およびデータ出力用のデータバッファDB6が他の処理部10−2等と接続されない場合についても、上記と同様の試験を実行できる。
また、以上は、主として、データ転送部12A−1を例に説明した。しかし、第2の出力部としてのデータ転送部12B−1の処理、機能、作用もデータ転送部12A−1と同様である。また、以上は、主として、送信装置として処理部10−1を例に説明した。しかし、受信装置としての処理部10−2の処理、機能、作用も処理部10−1と同様である。例えば、処理部10−2は、第2の情報処理部として、データ処理部11−2を有し、処理部10−1と同様の機能を提供する。
図6は、信号を無効化する構成を例示する図である。第1実施例では、図5のように、処理部10の数が最大構成時の処理部10の数よりも少ない場合に、データバッファDB5等の他の処理部10−2等に出力されるデータを折り返して、データバッファDB3を含む経路に入力する。しかし、このような処理を行うと、データ処理部11−1は、データバッファDB3を含む経路から本来受け取らないデータを入力されることなる。その結果、試験実行時に、データ処理部11−1の処理が矛盾を生じる可能性がある。そこで、折り返した経路から受信したデータをデータ処理部11−1の手前で無効化する機構を用いる。
図6の例では、制御情報保持部13−1の信号がデータバッファDB2、データバッファDB4にも入力される。制御情報保持部13−1には、上記第1の指示ビットから第4の指示ビットに加えて、さらに、第5、第6の指示ビットを設ける。
第5の指示ビットは、例えば、データバッファDB2の出力をイネーブルまたはディスエーブルに制御する。例えば、第5の指示ビットは、データバッファDB2の入出力間を高インピーダンス状態で遮断するトライステートバッファやANDゲート等の遮断回路を制御するようにすればよい。あるいは、第5の指示ビットは、例えば、データバッファDB2の出力の有効/無効を指示するバリッドフラッグとして機能させてもよい。
同様に、第6の指示ビットは、例えば、データバッファDB4の出力をイネーブルまたはディスエーブルに制御する。また、第6の指示ビットは、例えば、データバッファDB4の出力の有効/無効を指示するバリッドフラッグとして機能させてもよい。
このような構成によって、例えば、データバッファDB5、DB7等のデータを折り返して、データバッファDB3を含む経路に入力した場合に、第6の指示ビットによってデータバッファDB4のデータを無効化すればよい。同様に、例えば、データバッファDB5、DB7等のデータを折り返して、データバッファDB1を含む経路に入力した場合に、第5の指示ビットによってデータバッファDB3のデータを無効化すればよい。
データバッファDB2あるいはDB4等の入出力間を高インピーダンス状態で遮断する遮断回路、あるいは、データバッファDB2、DB4等の出力の有効/無効を指示するバリッドフラッグ等が無効化部の例である。
以上述べたように、第1実施例に係る情報処理装置1は、処理部10の数が最大構成の数ではない構成で、未使用のインターフェース回路、例えば、図5のデータバッファDB3、DB7、DB8等を含む場合であっても、処理部の増設なしに処理部が増設した場合に近い状態の試験を行うことができる。例えば、データ入力用として、データバッファDB1、DB2が使用され、データ出力用としてデータバッファDB5、DB6が使用される場合には、データバッファDB5のデータを複製する。そして、複製されたデータは、未使用のデータバッファDB8に出力され、さらに、転送先となる処理部10−2への経路から分岐した折り返し経路L2を通じて、未使用のデータバッファDB3に入力される。その結果、データバッファDB3、DB4を含む未使用の経路を通じて転送されたデータを既存のデータ検証部によって、検証すればよい。さらに、折り返されたデータは、例えば、データ処理部11−1に入力前に、データバッファDB4において無効化することによって、データ処理部11−1内での矛盾の発生を抑制できる。
このような構成は、図4に示したそれぞれの処理部10−1、10−2のそれぞれのデータ転送部12A−1、12B−1、12A−2、12B−2等に備えられている。したがって、情報処理装置1、送信装置としての処理部10−1、受信装置としての処理部10−2は、最大構成ではない将来の増設可能な構成、あるいは、極力単体に近い構成で、極力多数の部分を活性化した試験を実行することが可能となる。
さらに、以上のような試験は、制御情報保持部13−1の指示ビットの設定によって、スイッチSW1からSW3の切り替え、およびデータバッファDB2、DB4等の無効化等を通じて簡易に制御できる。
(変形例)
上記第1実施例では、図5、図6において、スイッチの接続を示す第1の指示ビット〜第6の指示ビットによってスイッチSW1〜3の切り替え、およびデータバッファDB2、DB4等の無効化の有無を制御情報保持部13が指示する例を示した。第1実施例の構成では、いわば、スイッチSW1〜3等、あるいは、データバッファDB2等のような指示対象ごとに制御情報が設定された。このような構成に代えて、接続先の他の処理部10−2等に応じて制御情報保持部13に指示ビットを保持するようにしてもよい。例えば、処理部10−1に対して、他の処理部10が合計4個接続可能である場合に、4個の他の処理部10と接続されているか否かを4個の指示ビットとして、IEEE1149.1のJTAG(Joint Test Architecture Group)規格に規定される試験状態を表す制御信号であるTEST_MODE[0:3]に設定してもよい。例えば、TEST_MODE[i]=0は、処理部10−1が他の処理部10−iと接続されていることを示し、TEST_MODE[i]=1は、処理部10−1が他の処理部10−iと接続されていないことを示す。図4、図5、図6では、処理部10−1と10−2とが例示されているが、以下の説明では、処理部10の数は2以上として説明する。また、データバッファDB5とDB6とを含む出力信号のライン、データバッファDB7とDB8とを含む出力信号のライン以外に、さらに出力信号のラインがあるとして説明する。また、スイッチSW2、データバッファDB1、DB2を含む入力信号のライン、スイッチSW3、データバッファDB3、DB4を含む入力信号のライン以外にさらに入力信号のラインがあるとして説明する。さらに、出力信号のライン、および入力信号のラインに対応して、折り返しラインL2、L3以外にも、折り返しラインがあるとして説明する。
このような制御情報保持部13の指示ビットにしたがって、スイッチSW1〜3の切り替え、およびデータバッファDB2、DB4等の無効化の有無を制御情報保持部13が予め定められた試験を実行するようにすればよい。例えば、TEST_MODE[0:3]のすべてが0の場合、処理部10−1は、他の処理部10−i(i=2,3、4、5)すべてと接続されていることを示す。この場合には、スイッチSW1は、信号の複製を行わず、データDB5をそのままデータバッファB6に、そしてデータバッファDB7をそのままデータバッファDB8に接続すればよい。
また、スイッチSW2、SW3等は、折り返しラインL2、L3等からの信号ではなく、他のデータ処理部10からの信号をそのままデータバッファDB1、DB3等に接続すればよい。また、データバッファDB2、DB4等では、信号の無効化を行わないようにすればよい。
一方、例えば、TEST_MODE[0:3]のいずれか1以上のビットが1の場合、データ処理部10−1は、いずれか1以上の他のデータ処理部10と接続されないことになる。その場合、データ出力側のデータバッファDB6、DB8等のいずれかは、他のデータ処理部10とは接続されない。また、データ入力側のデータバッファDB1、DB3等のいずれかは、他のデータ処理部10とは接続されない。この場合には、スイッチSW1は、TEST_MODE[0]からTEST_MODE[3]までの間で、ビット0が設定されているビット位置に対応するデータバッファの信号を複製して、ビット0が設定されているビット位置に対応するデータバッファに複製すればよい。例えば、TEST_MODE[0]=0で、TEST_MODE[1:3]がいずれも1の場合には、TEST_MODE[0]のビットに対応するデータバッファDB5の信号をデータバッファDB6に入力する他、さらに他のデータバッファDB8等にも複製するようにすればよい。
一方、TEST_MODE[1:3]等に対応するスイッチSW3等は、折り返しラインL2等の信号を選択すればよい。また、TEST_MODE[1:3]等に対応するデータバッファDB4等は、信号の無効化を行えばよい。以上のように、他のデータ処理部10と接続されているかいないかを示すTEST_MODE[i]によって、(1)他のデータ処理部10からの信号を受信するか(2)信号の複製、折り返し、無効化という一連の経路からの信号を用いるかを切り替えるようにすればよい。
<第2実施例>
図7から図16を参照して第2実施例に係る情報処理装置1について説明する。第2実施例においても、情報処理装置1の構成は、基本的には、第1実施例と同様である。そこで、第2実施例において、第1実施例と同一の構成要素には同一の符号を付してその説明を省略する。
図7は、第2実施例に係る情報処理装置1の構成を例示する図である。第2実施例に係る情報処理装置1は、最大構成では、例えば、図3に示したように、CPU00からCPU03、CPU10からCPU13、クロスバースイッチXB0、XB1を含む。図7では、最大構成の情報処理装置1のうち、CPU00からCPU03、およびクロスバースイッチXB0が例示されている。また、CPU00に対して、DIMM(Dual Inline Memory Module)30が接続されている。DIMM30は、例えば、SDRAM(Synchronous Dynamic Random Access Memory)である。DIMM30は、CPU00内のDIMM コントローラ23を介して、MC(Memory Controller)22に接続されている。DIMM30は、CPU00内の主記憶装置の容量をさらに増設するためのメモリとして用いられる。
図7のように、CPU00は、例えば、2つのコア、すなわちCPU CORE0、CPU CORE1を有する。ただし、CPU00の有するコアが2つに限定される訳ではない。以下、複数のコアを単にCPU CORE0等という。
また、図7に示すように、CPU00等は、MC22、ルータ21、DIMMコントローラ23を有する。
CPU CORE0等は、主記憶装置あるいはDIMM30に実行可能に展開されたコンピュータプログラムによりCPU00におけるデータ処理を実行する。データ処理において、CPU CORE0等は、MC22を通じて主記憶装置にアクセスする。例えば、CPU CORE0等は、図示しないキャッシュ上に処理対象のデータが存在しない場合に、MC22にデータの取得を要求する。
MC22は、取得要求されたデータの格納先を保持している。そこで、MC22は、取得要求されたデータの格納先をデータ取得要求先としてデータの読み出し処理を実行する。例えば、MC22は、CPU CORE0等のからのデータ取得要求先が、CPU00内の主記憶装置あるいはDIMM30である場合には、取得要求されたアドレスからデータを読み出し、要求元のCPU CORE0等に引き渡す。また、MC22は、CPU CORE0等のからのデータ取得要求先が、他のCPU01からCPU03あるいはXB0を介して接続される他のCPUである場合には、データ所得要求をルータ21に引き渡す。
ルータ21は、MCからのデータ取得要求中でデータ所得先として指定されたCPUの論理情報を基に、指定されたCPUに接続される入出力インターフェースを特定する。例えば、データ取得先としてCPU1が指定されている場合には、ルータ21は、出力インターフェースDLOUT0に、CPU1宛のデータ取得要求を出力する。データ取得要求されるデータは、例えば、CPU01から入力インターフェースDLIN0に入力されるので、ルータ21は、入力インターフェースDLIN0に入力されたデータをMC22に引き渡す。
また、例えば、CPU CORE0等は、処理したデータの主記憶装置あるいは他のCPUの主記憶装置への保存をMC22に要求する。MC22は、保存を要求されたデータの格納先を保持している。そこで、MC22は、保存を要求されたデータの格納先をデータ書き込み要求先としてデータの書き込み処理を実行する。例えば、MC22は、CPU CORE0等のからのデータ書き込み要求先が、CPU00内の主記憶装置あるいはDIMM30である場合には、書き込み要求されたアドレスにデータを書き込む。また、MC22は、CPU CORE0等のからのデータ書き込み要求先が、他のCPU01からCPU03あるいはXB0を介して接続される他のCPUである場合には、データ書き込み要求をルータ21に引き渡す。
ルータ21は、MCからのデータ書き込み要求中で指定されたCPUの論理情報を基に、指定されたCPUに接続される入出力インターフェースを特定する。例えば、データ書き込み要求先としてCPU1が指定されている場合には、ルータ21は、出力インターフェースDLOUT0に、CPU1宛のデータ書き込み対象のデータを出力する。
他の入力インターフェースDLIN1からDLIN3、出力インターフェースDLOUT1からDLOUT3についても、処理は、DLIN0、DLOUT0と同様である。出力インターフェースDLOUT0からDLOUT3、入力インターフェースDLIN0からDLIN3は、例えば、通信プロトコル階層のデータリンク層の機能に相当する。
図7では、出力インターフェースDLOUT0からDLOUT3、入力インターフェースDLIN0からDLIN3には、それぞれパラレル/シリアル変換部(以下、単に変換部という)SerDes0からSerDes3が接続されている。変換部SerDes0等は、出力インターフェースDLOUT0等からパラレル信号を受けて、シリアル信号に変換し、他のCPU01等に転送する。また、変換部SerDes0等は、他のCPU01等からシリアル信号を受信し、パラレル信号に変換し、入力インターフェースDLIN0等に入力する。変換部SerDes0等は、例えば、2分の1の周波数にクロックを分周して1:2の周波数比の2種類のクロックを生成する回路と、2:1にデータを多重化するマルチプレクサとを複数段組み合わせた構成を有する。ただし、変換部SerDes0等の構成については省略する。
図8に、CPU00内のルータ21の詳細構成をルータ21の周辺回路とともに例示する。以下、第2実施例では、CPU00からCPU03、CPU10からCPU13等の間で授受されるデータをパケットと呼ぶ。以下、CPU00からCPU03をCPU00〜03のように記述する。CPU10からCPU13も同様に、CPU10〜13のように記述する。SerDes、DLIN、DLOUT等も同様である。
すでに、図7で説明したように、例えば、CPU00は、変換部SerDes0〜3、入力インターフェースDLIN0〜3、および出力インターフェースDLOUT0〜3を有する。なお、入力インターフェースDLIN0〜3、および出力インターフェースDLOUT0〜3は、変換部SerDes0〜3とルータ21とのインターフェース制御を担当する。
図8では、入力インターフェースDLIN0、出力インターフェースDLOUT0、および変換部SerDes0の詳細が例示されている。入力インターフェースDLIN0は、例えば、入力バッファDI0およびCRCチェッカ(CRC Checker)を有する。したがって、入力バッファDLIN0は、入力バッファDI0に格納された入力データにCRCチェックを実行する。入力バッファDLIN0は、ハードウェア回路であってもよいし、あるいは、DSPがコンピュータプログラムを実行して提供する処理部であってもよい。
出力インターフェースDLOUT0〜3は、バッファを含むハードウェア回路であってもよいし、DSPがコンピュータプログラムを実行することによって提供する機能であってもよい。図8では、例えば、出力インターフェースDLOUT0は、リトライバッファDO0を有する。リトライバッファDo0のパケットは、変換部SerDes0に引き渡される。
変換部SerDes0は、スイッチSW20と、他のCPUに転送される出力データODをスイッチSW20に分岐して折り返す折り返しラインL20を有する。すなわち、変換部SerDes0は、図7ですでに説明したパラレルシリアル変換を実行する他、折り返し線L20を介して、出力データODを折り返す。
また、スイッチSW20は、他のCPUから入力される入力データIDおよび折り返しラインL20からの折り返しデータODのいずれかを選択し、入力インターフェースDLIN0に引き渡す。変換部SerDes0が第1の出力部の一例である。同様に、変換部SerDes1が第2の出力部の一例である。
他の入力インターフェースDLIN1〜3、出力インターフェースDLOUT1〜3、変換部SerDes1〜3の処理は、入力インターフェースDLIN0、出力インターフェースDLOUT0、変換部SerDes0と同様である。
図8のように、ルータ21はパケットの発行を制御するMC22から外部、例えば、他のCPUに発行するパケットを受信するための出力バッファOB0〜3、出力バッファOB0〜3のそれぞれからパケットを読み出し、出力インターフェースDLOUT0〜3に対してパケットを送信するための送信制御部SEND−CTRL0〜3を有する。また、ルータ21は、出力バッファOB0〜3のそれぞれから読み出したパケットを格納するレジスタR0〜3、テストモード時にバスを選択するためのバスセレクタS0〜3を含む。バスセレクタS0が、第1の選択部の一例である。また、バスセレクタS1が、第2の選択部の一例である。
さらにまた、ルータ21は、入力インターフェースDLIN0〜3からのパケットを受信するレジスタR4〜7、受信したパケットを書き込む為のバッファIBUF0〜3、IBUFへのパケット書き込み、およびMC22へのパケット送信を制御するための受信制御部RCV−CTRL0〜3、IBUF0〜3からのパケットの読み出しの競合を処理する調停回路ARを有する。さらに、ルータ21は、テストモードか否かを設定するための制御情報保持部13を有する。制御情報保持部13は、テストモードビットTEST_MODE[0:3]を格納したラッチを含む。
レジスタR4〜7は、入力インターフェースDLIN0〜3に対してそれぞれ設けられ、入力インターフェースDLIN0〜3からのデータをそれぞれ保持する。レジスタR4〜7は、いずれも例えば、1パケット分のデータを保持するラッチである。
さらに、例えば、レジスタR4に対して次段にバッファIBUF0が接続される。レジスタR4が1パケット分のデータを保持し、一方、バッファIBUF0は、複数パケットのデータを保持するようにすればよい。ここで、1パケットは、所定のビット数例えば、8ビット、16ビット、32ビット、64ビット等のデータ部(ペイロード)を含む。
さらに、バッファIBUF0の次段には、データ検証部PCC(Parity & Protocol checker)が設けられている。データ検証部PCCは、バッファIBUF0からMC22に引き渡されるデータのCRC、パリティ、所定のプロトコルにしたがったデータ形式及びデータ送信手順であるか否か等のチェック等を実行する。データ検証部PCCは、CRC、パリティ、プロトコルチェック等の演算を実行するハードウェア回路として例示できる。ただし、DSP(Data Signal Processor)等がコンピュータプログラムを実行し、データ検証部PCCとして機能してもよい。
さらに、図8のように、レジスタR4、バッファIBUF0、およびデータ検証部PCCの経路と並んで受信制御部RCV−CTRL0が設けられている。受信制御部RCV−CTRL0は、バッファIBUF0にデータが1パケット以上存在する場合に、アービタARを通じて、MC22にデータ入力を要求する。受信制御部RCV−CTRL0の処理は、例えば、ラッチ、カウンタ等のハードウェア回路で実現されてもよいし、DSPがコンピュータプログラムを実行して提供してもよい。なお、受信制御部RCV−CTRL0、レジスタR4、バッファIBUF0、データ検証部PCCを含む回路部分は入力部と呼ばれ、第1の入力部の一例である。同様に、受信制御部RCV−CTRL1、レジスタR5、バッファIBUF1、データ検証部PCCを含む回路部分も入力部と呼ばれ、第2の入力部の一例である。なお、受信制御部RCV−CTRL2等を含む回路部分、受信制御部RCV−CTRL3等を含む回路部分も入力部と呼ばれる。
図8のアービタARは、MC22と、複数の入力部との間で、データの入力処理を調停する調停部である。すなわち、アービタARは、受信制御部RCV−CTRL0〜3のうちの複数からデータの入力要求があった場合に、どの入力要求を優先するかを所定の基準で決定する。入力要求の優先順の基準に特に限定はない。例えば、ラウンドロビンで入力要求を決定してもよい。また、例えば、それぞれの入力部がアービタARに、保持するパケット数を通知するようにしてもよい。例えば、受信制御部RCV−CTRL0〜3が、入力要求とともに、バッファIBUF0〜3に保持するパケット数を通知すればよい。そして、アービタARが、保持するパケット数の多い入力部を優先して、データの入力を調停すればよい。
また、図8のように、データ検証部PCCと受信制御部RCV−CTRL0等からアービタARに入力される伝送路には、ANDゲート列A0〜7が設けられている。これらのANDゲート列A0〜7は、受信制御部RCV−CTRL0等からアービタARへのデータ入力要求をイネーブルまたはディスエーブルにする。また、これらのANDゲート列A0〜7は、データ検証部PCCから入力される検証済みデータのアービタARへのデータの入力をイネーブルまたはディスエーブルにする。例えば、入力インターフェースDLIN0のデータを有効にしてMC22に引き渡す場合には、受信制御部RCV−CTRL0に接続されるANDゲートA0、および、レジスタR4、バッファIBUF0、およびデータ検証部PCCに接続されるANDゲートA1に対して、制御情報保持部13から、イネーブル信号、すなわち、ANDゲートA0、A1に論理値0が供給される。また、入力インターフェースDLIN0のデータを無効化してMC22に引き渡さない場合には、これらのANDゲートA0、A1に対して、ディスエーブル信号、すなわち、ANDゲートA0、A1に論理値1が供給される。
他のANDゲート、例えば、受信制御部RCV−CTRL1に接続されるANDゲート2、およびレジスタR5、IBF1、PCCを含む経路に接続されるANDゲート3についても同様である。また、受信制御部RCV−CTRL2に接続されるANDゲート4、およびレジスタR6、IBF2、PCCを含む経路に接続されるANDゲート5についても同様である。また、受信制御部RCV−CTRL3を含むANDゲート6、およびレジスタR7、IBF3、PCCを含む経路に接続されるANDゲート7についても同様である。図8においては、ANDゲートA0〜7が無効化部の一例である。ただし、ANDゲートに代えて、アービタARへの入力を遮断可能なトランジスタを用いてもよい。
出力バッファOB0〜3は、レジスタR0〜3に供給されるデータを保持する。そして、例えば、送信制御部SEND−CTRL0は、出力バッファOB0に出力データが存在する場合に、レジスタR0に1パケット分のデータを読み出す制御を実行する。送信制御部SEND−CTRL0の処理は、ハードウェア回路で実行されてもよいし、DSPがコンピュータプログラムによって実行してもよい。
バスセレクタS0からS3は、レジスタR0からR3のいずれかからのデータを選択し、それぞれ、出力インターフェースDLOUT0〜3に出力する。レジスタR0が第1の保持部の一例である。また、レジスタR1が第2の保持部の一例である。
次に、図8に示したCPU00の通常動作時におけるパケット伝送の処理を以下説明する。通常動作とは、試験時ではない、通常の運用時をいう。CPU00からCPU01に対してパケットを伝送する場合、CPU01のMC22から出力バッファOB0にパケットが書き込まれる。次にCPU00のパケット送信制御部SEND−CTRL0は、図10に示されるフローにしたがい、パケットをDLOUT0に送出する。DLOUT0に転送されたパケットはバッファDO0、CPU00のSerDes0を通してCPU01のSerDes0に転送される。
CPU1のSerDes0で受け取ったパケットはCPU1のDLIN0に転送され、CRCチェック等によりパケットが正常であることが確認されるとCPU1のR4に送信される。CPU1のR4に送信されたパケットは図11に示されるフローにしたがってIBUF0に書き込まれ、MC22に送信される。CPU00からCPU02、CPU03、XB0に対するパケット伝送も同様にして実行される。
次に、CPU00の試験動作時におけるパケット伝送の処理を以下説明する。CPU00の試験動作は、制御情報保持部13のテストモードビット TEST_MODE[0:3]に値を設定することによって有効となる。TEST_MODE[0:3]の値はバスセレクタS0〜S3,SerDes0〜3,RECV−CTRL0〜3に通知され、各機能ブロックはTEST_MODE[0:3]の値にしたがって動作を変更する。制御情報保持部13に対する値の設定はJTAGやI2C(Inter-Integrated Circuit)等LSIに備わっている試験用機能のインターフェースを利用して外部から実施する。ただし、制御情報保持部13に対する値の設定が、JTAGやI2Cに限定される訳ではない。
JTAGは、LSIチップの内部回路とLSIチップ外の装置とが通信する規格である。JTAG規格にしたがったLSIチップ内には、クロック、データ入力、データ出力、状態制御を指示する信号端子が用意され、この信号端子を通じてLSIチップに対してバウンダリスキャンテスト(Boundary Scan Test)と呼ばれるテストが実行される。I2Cは、LSI内部等とLSIチップ外の装置等とがシリアル通信を行う規格である。なお、第2実施例では、制御情報保持部13が保持するビット数として4ビットが例示される。しかし、制御情報保持部13が保持するビット数が4ビットに限定される訳ではない。すなわち、CPUが接続される相手先CPUの数に応じて、TEST_MODEのビット数を定めればよい。
TEST_MODE[0:3]はインターフェースごとの設定値であり、接続先に実際にチップ(相手CPU)が存在するインターフェースに対しては'0'、それ以外のインターフェースに対しては'1'を設定する。
通常動作時はTEST_MODE[0:3]=0000に設定する。今、例えば、DLIN0とDLOUT0を含むCPU0−CPU1経路をインターフェース0と呼ぶ。また、一般的に、DLINiとDLOUTiを含むCPU0−CPUi間の経路をインターフェースiと呼ぶ。ここで、iは、1、2または3である。インターフェース0を通常動作にして残りのインターフェース1、2、3をテストモードに設定する場合TEST_MODE[0:3]=0111にする。ただし、インターフェースの数は、接続可能な相手CPUの数に依存するので、インターフェースの数が4に限定される訳ではない。
以下、TEST_MODE[0:3]=0111時の動作を例示する。TEST_MODE[0:3]=0111は、図1の構成で例示される。図1では、CPU0、CPU1を接続した状態で、他のCPU、および中継チップ(クロスバースイッチXB0、XB1等)は接続されていない。したがって、情報処理装置1がCPU0、CPU1を有し、他のCPUとの通信を含めて試験を実行することを想定している。
図9に、TEST_MODE[0:3]=0111設定時の論理的な接続関係を例示する。TEST_MODE[0]=0であるので、CPU00とCPU01の両方において、レジスタR0の信号は、バスセレクタS0において、そのまま出力インターフェースDLOUT0に伝送される。また、CPU00とCPU01の間で、インターフェース0、すなわち、入力インターフェースDLIN0、出力インターフェースDLOUT0の信号は、変換部SerDes0でパラレルシリアル変換され、相互に接続される。すなわち、CPU00の出力インターフェースDLOUT0の信号がCPU01の入力インターフェースDLIN0に接続される。また、CPU01の出力インターフェースDLOUT0の信号がCPU00の入力インターフェースDLIN0に接続される。
一方、TEST_MODE[1:3]=111であるので、バスセレクタS1、S2、およびS3では、レジスタR0の信号が複写され、出力インターフェースDLOUT1、DLOUT2、DLOUT3に引き渡される。さらに、出力インターフェースDLOUT1の信号は、変換部SerDes1において折り返されて入力インターフェースDLIN1に戻される。同様に、出力インターフェースDLOUT2の信号は、変換部SerDes2において折り返されて入力インターフェースDLIN2に戻される。同様に、出力インターフェースDLOUT3の信号は、変換部SerDes3において折り返されて入力インターフェースDLIN3に戻される。
CPU00からCPU01に対してパケットを転送する場合、最初にCPU00のMC22から出力バッファOB0にパケットが書き込まれる。次にCPU0のパケット送信制御部SEND−CTRL0は図10に示されるフローにしたがい、レジスタR0を通してパケットをDLOUT0に送出する。ここで、バスセレクタS0〜S3は、図12−15に示されるバス選択論理にしたがう。通常動作(TEST_MODE=0000)のときには、バスセレクタS0はレジスタR0を選択し、バスセレクタS1はレジスタR1を選択し、バスセレクタS2はレジスタR2を選択し、バスセレクタS3はレジスタR3を選択する。しかし、TEST_MODE[0:3]=0111のときには、上述のように、バスセレクタS0からS3のすべてがR0からの信号を選択する。結果として、DLOUT0にCPU00からのパケットが転送されるとともに複製されたパケットがDLOUT1、DLOUT2、DLOUT3に転送される。
DLOUT0〜3のそれぞれに転送されたパケットは、変換部SerDes0〜3に伝送される。上述のように、変換部SerDes0〜3は、TEST_MODE[0:3]の自身のインターフェース番号に対応するビットが'1'であるときは自身の送出信号を折り返すモードとなる。折り返し機能は一般的に備わっている変換部の回路を使用すればよい。ただし、折り返し機能の回路がない場合はテストモード時にDLOUTからDLINに折り返すための分岐と折り返し線を含む回路を組み込めばよい。結果として、CPU00のSerDes0に伝送されたパケットはCPU01の変換部SerDes0に伝送される。一方、CPU00の変換部SerDes1〜3に伝送されたパケットはCPU01のDLIN1〜3に伝送される。
CPU01の変換部SerDes0に伝送されたパケットは通常動作時と同様にCPU01の入力インターフェースDLIN0,バッファIBUF0を通じてMC22に伝送される。CPU00の入力インターフェースDLIN1〜3に伝送されたパケットはCPU00のレジスタR5〜R7に伝送され、図11のフローチャートにしたがいバッファIBUF1〜3へ書き込まれる。
このときバッファIBUF1〜3に書き込まれたパケットは本来CPU00がCPU01に送信したパケットであるため、CPU00からすれば受け取ることのないパケットである。そのままCPU00で処理しようとすれば動作異常と判定される可能性がある。そこで、TEST_MODE[1:3]=111にしたがい、図7のMC22の入り口側のANDゲートA2からA7がディスエーブルとされ、MC22へのパケット送信は行われず処理が完了する。すなわち、制御情報保持部13が保持するTEST_MODEの指定にしたがったANDゲートA0からA7の動作によって、不要なパケットのMC22への入力を抑止できる。なお、ANDゲートをイネーブル/ディスエーブルにする処理は、図11によって後述する。
(処理フロー)
以下、図7および図8で例示した試験実行時のハードウェア回路の動作シーケンスをフローチャートにしたがって説明する。図10は、送信制御部SEND−CTRL0の処理シーケンスを例示する図である。なお、他の送信制御部SEND−CTRL1〜3についても、処理は、図10と同様である。以下の送信制御部SEND−CTRL0の処理シーケンスは、ハードウェア回路で実現してもよい。また、FPGA(Field Programmable Gate Array)等のプログラマブルロジック回路のシーケンサで実現してもよい。また、DSPがコンピュータプログラムを実行することで実現してもよい。
この処理では、送信制御部SEND−CTRL0は、出力バッファ(OB1等)に送信待ちパケットが存在するか否かを判定する(S11)。出力バッファ(OB1等)に送信待ちパケットが存在する場合、リトライバッファおよび送信先のバッファIBUFの容量が十分か否かを判定する(S12)。ここで、送信先のバッファIBUFは、例えば、CPU00からCPU01にデータを送信する場合に、図9に示したCPU01のバッファIBUF0の容量である。ここで、送信先のバッファIBUFの容量についての情報はクレジットと呼ばれ、図示しない信号線を通じて、接続されたCPU間(CPU00〜03、CPU10〜13等の間)で授受される。
S11およびS12の判定結果がいずれも真(YES)であった場合、送信制御部SEND−CTRL0は、レジスタR0にパケットを読み出し、出力インターフェースDLOUT0および変換部SerDes0を通じて、CPU01にパケットを送信する(S13)。
一方、S11およびS12の判定結果のいずれか一方が偽(NO)であった場合、送信制御部SEND−CTRL0は、S13の処理を実行せずに終了する。
図11は、受信制御部RCV−CTRL0の処理シーケンスを例示する図である。なお、他の受信制御部RCV−CTRL1〜3についても、処理は、同様である。以下の受信制御部RCV−CTRL0の処理シーケンスは、ハードウェア回路で実現してもよい。また、プログラマブルロジックコントローラ等のシーケンサで実現してもよい。また、DSPがコンピュータプログラムを実行することで実現してもよい。
この処理では、受信制御部RCV−CTRL0は、レジスタR4にパケットが到着したか否かを判定する(S21)。なお、受信制御部RCV−CTRL1〜3においては、レジスタR5〜7が判定対象となる。
レジスタR4にパケットが到着すると、受信制御部RCV−CTRL0は、R4で受信したパケットをバッファIBUF0に書き込む(S22)。なお、受信制御部RCV−CTRL1〜3においては、バッファIBUF1〜3が書き込み先となる。
そして、受信制御部RCV−CTRL0は、バッファIBUF0にパケットが存在するか否かを判定する(S23)。なお、受信制御部RCV−CTRL1〜3においては、バッファIBUF1〜3が判定対象となる。
バッファIBUF0にパケットが存在する場合、受信制御部RCV−CTRL0は、制御情報保持部13のテストモードTEST_MODE[0]が1か否かを判定する(S24)。なお、受信制御部RCV−CTRL1〜3においては、TEST_MODE[1:3]が判定対象となる。
S24の判定でTEST_MODE[0]が1の場合、受信制御部RCV−CTRL0は、データ検証部PCCによってパケットを取り出し、正常かどうかをチェックする(S26)。パケットが正常でない場合(S27でN)、情報処理装置1での通常のエラー処理が実行される(S28)。エラー処理では、例えば、受信制御部RCV−CTRL0がCPU00のJTAGコマンドへの戻り値等を通じて、図示しないシステム制御用のコンピュータ等にエラーを通知する。また、正常な場合には、そのまま処理が終了する。この場合に、図8に示したように、受信制御部RCV−CTRL0の出力側のANDゲートA0およびバッファIBUF0からデータ検証部PCCを通ってアービタARに至る経路のANDゲートA1に、TEST_MODE[0]=1が入力されている。したがって、受信制御部RCV−CTRL0の出力は、ANDゲートA0で遮断される。また、バッファIBUF0からの出力はANDゲートA1で遮断される。したがって、IBUF0のパケットがデータ検証部で検証された後に、アービタARおよびMC22に入力されない。
また、S24の判定でTEST_MODE[0]が0の場合、図8のANDゲートA0およびA1に、TEST_MODE[0]=0が入力される。この場合、受信制御部RCV−CTRL0からアービタARへのアクセスが許容される。そこで、受信制御部RCV−CTRL0は、アービタARにデータ入力(パケット送信権)を要求する。そして、受信制御部RCV−CTRL0は、アービタARにおいてパケット送信権が獲得できたか否かを判定する(S25)。
そして、パケット送信権が獲得できた場合、受信制御部RCV−CTRL0は、通常の手順にしたがって、IBUF0からパケットを取り出す。そして、受信制御部RCV−CTRL0は、データ検証部PCCによって、取り出したパケットが正常かどうかをチェックする(S29)。そして、パケットが正常であった場合には(S2AでY)、受信制御部RCV−CTRL0は、アービタARを通じてMC22にパケットを送信する(S2B)。パケットが正常でない場合(S2AでN)、情報処理装置1での通常のエラー処理が実行される(S28)。
図12に、バスセレクタS0のバス選択論理を例示する。図12は、例えば、CPU00のバスセレクタS0内の論理回路のテストモードTEST_MODE[0:3]に応じた論理をフローチャートの形式で示したものである。
バスセレクタS0は、TEST_MODE[0]=0か否かを優先して判定する(S31)。そして、TEST_MODE[0]=0の場合に(S31でY)、バスセレクタS0は、レジスタR0からの経路を選択する(S32)。この場合は、インターフェース0、すなわち、DLIN0およびDLOUT0を通じて、相手CPU01と接続されている場合である。
一方、S31の判定でTEST_MODE[0]=0でない場合に、次に、バスセレクタS0は、TEST_MODE[1]=0か否かを判定する(S33)。そして、TEST_MODE[1]=0の場合に(S33でY)、バスセレクタS0は、レジスタR1からの経路を選択する(S34)。この場合は、インターフェース1、すなわち、DLIN1およびDLOUT1を通じて、相手CPU01と接続されている場合である。
さらに、S33の判定でTEST_MODE[1]=0でない場合に、次に、バスセレクタS0は、TEST_MODE[2]=0か否かを判定する(S35)。そして、TEST_MODE[2]=0の場合に(S35でY)、バスセレクタS0は、レジスタR2からの経路を選択する(S36)。この場合は、インターフェース2、すなわち、DLIN2およびDLOUT2を通じて、相手CPU02と接続されている場合である。
さらに、S35の判定でTEST_MODE[2]=0でない場合に、バスセレクタS0は、レジスタR3からの経路を選択する(S37)。この場合は、インターフェース3、すなわち、DLIN3およびDLOUT3を通じて、相手CPU03と接続されている場合である。
なお、図12では、TEST_MODE[0]=0、TEST_MODE[1]=0、TEST_MODE[2]=0、TEST_MODE[3]=0の順で判定した。しかし、バスセレクタS0の選択論理は、TEST_MODE[0]=0の判定を優先すればよく、TEST_MODE[1]=0、TEST_MODE[2]=0、TEST_MODE[3]=0の3つの判定に関しては、図12の通りでなくてもよい。
図13に、バスセレクタS1のバス選択論理を例示する。図13は、例えば、CPU00のバスセレクタS1内の論理回路のテストモードTEST_MODE[0:3]に応じた論理をフローチャートの形式で示したものである。図13に示すバスセレクタS1の論理は、TEST_MODE[1]=0か否かの判定を優先する点を除いて、図12でのバスセレクタS0の論理と同様である。
すなわち、バスセレクタS1は、TEST_MODE[1]=0か否かを優先して判定する(S41)。そして、TEST_MODE[1]=0の場合に(S41でY)、バスセレクタS1は、レジスタR1からの経路を選択する(S42)。
一方、S41の判定でTEST_MODE[1]=0でない場合に、次に、バスセレクタS1は、TEST_MODE[0]=0か否かを判定する(S43)。そして、TEST_MODE[0]=0の場合に(S43でY)、バスセレクタS1は、レジスタR0からの経路を選択する(S44)。
さらに、S43の判定でTEST_MODE[0]=0でない場合に、次に、バスセレクタS1は、TEST_MODE[2]=0か否かを判定する(S45)。そして、TEST_MODE[2]=0の場合に(S45でY)、バスセレクタS1は、レジスタR2からの経路を選択する(S46)。さらに、S45の判定でTEST_MODE[2]=0でない場合に、バスセレクタS1は、レジスタR3からの経路を選択する(S47)。
図14に、バスセレクタS2のバス選択論理を示す。図14は、例えば、CPU00のバスセレクタS2内の論理回路のテストモードTEST_MODE[0:3]に応じた論理をフローチャートの形式で示したものである。図14に示すバスセレクタS2の論理は、TEST_MODE[2]=0か否かの判定を優先する点を除いて、図12でのバスセレクタS0の論理と同様である。
すなわち、バスセレクタS2は、TEST_MODE[2]=0か否かを優先して判定する(S51)。そして、TEST_MODE[2]=0の場合に(S51でY)、バスセレクタS2は、レジスタR2からの経路を選択する(S52)。
一方、S51の判定でTEST_MODE[2]=0でない場合に、次に、バスセレクタS2は、TEST_MODE[0]=0か否かを判定する(S53)。そして、TEST_MODE[0]=0の場合に(S53でY)、バスセレクタS2は、レジスタR0からの経路を選択する(S54)。
さらに、S53の判定でTEST_MODE[0]=0でない場合に、次に、バスセレクタS2は、TEST_MODE[1]=0か否かを判定する(S55)。そして、TEST_MODE[1]=0の場合に(S55でY)、バスセレクタS2は、レジスタR1からの経路を選択する(S56)。さらに、S55の判定でTEST_MODE[1]=0でない場合に、バスセレクタS2は、レジスタR3からの経路を選択する(S57)。
図15に、バスセレクタS3のバス選択論理を示す。図15は、例えば、CPU00のバスセレクタS3内の論理回路のテストモードTEST_MODE[0:3]に応じた論理をフローチャートの形式で示したものである。図15に示すバスセレクタS3の論理は、TEST_MODE[3]=0か否かの判定を優先する点を除いて、図12でのバスセレクタS0の論理と同様である。
すなわち、バスセレクタS2は、TEST_MODE[3]=0か否かを優先して判定する(S61)。そして、TEST_MODE[3]=0の場合に(S61でY)、バスセレクタS3は、レジスタR3からの経路を選択する(S62)。
一方、S61の判定でTEST_MODE[3]=0でない場合に、次に、バスセレクタS3は、TEST_MODE[0]=0か否かを判定する(S63)。そして、TEST_MODE[0]=0の場合に(S63でY)、バスセレクタS3は、レジスタR0からの経路を選択する(S64)。
さらに、S63の判定でTEST_MODE[0]=0でない場合に、次に、バスセレクタS3は、TEST_MODE[1]=0か否かを判定する(S65)。そして、TEST_MODE[1]=0の場合に(S65でY)、バスセレクタS3は、レジスタR1からの経路を選択する(S66)。さらに、S65の判定でTEST_MODE[1]=0でない場合に、バスセレクタS2は、レジスタR2からの経路を選択する(S67)。
(動作シーケンス)
図16に、TEST_MODE[0:3]=0111設定時におけるCPU00からCPU01へのパケット伝送時のタイムチャートを例示する。ここで、図16の横軸は、例えば、CPU00−CPU03等を駆動するクロックのサイクルである。また、図16の縦軸は、CPU00の出力バッファOB1、レジスタR0、リトライバッファOD0、CPU01の入力バッファDI0、レジスタR4、バッファIBUF0、MC22等である。さらに、図16では、CPU00のインターフェース1〜3の構成要素が列挙されている。すなわち、CPU00のリトライバッファDO1〜3、入力バッファDI1〜3、レジスタR5〜7、バッファIBUF1〜3が図16の縦軸に示されている。
図16においては3サイクル目でパケットAがレジスタR0からリトライバッファDO0に伝送されるとともにリトライバッファDO1,DO2,DO3に複製されていることが示されている。4サイクル目にはDO1,DO2,DO3にあるパケットは折り返しによりCPU00のDI1,DI2,DI3に転送される。CPU1に転送されたパケットは11サイクル目でMCに伝送されるがCPU0で折り返されたパケットは6サイクル目にて処理が完了する。
折り返されたパケットや各機能ブロックの動作の正当性は(1)DLIN1〜3のもつCRCチェッカ(2)IBUF1〜3や受信制御部RCV−CTRL0〜3が持つパリティチェッカ、プロトコルチェッカ等によって実施される。これらのチェッカは通常動作時であってもハードが故障していないかのチェックをするため動作する。結果、CPU00とCPU01を接続して試験を実行した状態であってもCPU02、CPU03、XB0、XB1等のインターフェース回路部を同時に試験することが可能となる。試験は、例えば、CPU00とCPU01間のデータ転送を実行するテストプログラムを用いて行えばよい。
<効果>
以上の構成により、情報処理装置1が採り得る構成中で、簡易な構成であっても、実際に使用されるインターフェース以外のインタ−フェースの部分に対しても動作確認が実施できる。例えば、図9に示したように、CPU00とCPU01とが、インターフェース0を通じて接続され、CPU00がCPU01、CPU02に接続するためのインターフェースが未接続であっても、CPU00からCPU01への伝送される信号を用いて、未接続のインターフェースの試験が可能となる。
例えば、図8に示したように、バスセレクタS1からS3が、CPU00からCPU01に伝送されるレジスタR0のパケットを複製し、変換部SerDes1〜3で折り返して、DLIN1〜3に入力すればよい。折り返された信号について、例えば、DLIN1〜3においてCRCチェック等を実行すればよい。また、受信制御部RCV−CTRL1〜3がデータ検証部PCCを用いて、折り返された信号のパリティチェック、プロトコルチェック等を実行すればよい。また、折り返された信号は、アービタAR等への入力をディスエーブルにすることで、信号が折り返されるCPU00内での矛盾を回避すればよい。
また、上記第2の実施例では、バスセレクタS0〜3の選択、変換部SErDes0〜3の折り返しの有無、およびアービタARへの入力に対するイネーブル/ディスエーブルの設定等が、制御情報保持部13のテストモードTEST_MODE[0:3]で指定した。したがって、情報処理装置1の試験を行うオペレータ等は、情報処理装置1を制御するシステム管理用のコンピュータから、例えば、JTAGコマンド等によって、制御情報保持部13のテストモードTEST_MODE[0:3]に制御情報を設定し、簡易に試験を実行できる。また、試験の結果をJTAGコマンド等で読み出し確認すればよい。
第2実施例で説明した情報処理装置1で伝送されるパケットはCPU上でテストプロラムを流した際にCPU間の実通信で使用されるパケットとなる。又、パケット発行タイミングはCPU上のキャッシュの状態、バッファのBUSY、資源の競合といった各種ハードウェアの状態に影響される。そのため、実運用の環境に近いタイミングやデータパタンで試験を実施することができる。
以上のような構成は、図7に示したCPU00〜03、XB0を通じて接続される他のCPU、あるいは、図1の構成で例示されるXB1等を通じて接続されるCPU10〜13等、情報処理装置1に含まれるそれぞれのCPUに備えられる。したがって、情報処理装置1、送信装置としてのCPU00、受信装置としての他のCPUは、最大構成ではない将来の増設可能な構成、あるいは、極力単体に近い構成で、極力多数の部分を活性化した試験を実行することが可能となる。
1 情報処理装置
10 処理部
11 データ処理部
12A、12B データ転送部
13 制御情報保持部
21 ルータ
22 メモリコントローラ
30 DIMM
DB1、DB2、DB3、DB4DB5、DB6、DB7、DB8 データバッファ
S0、S1、S2、S3 バスセレクタ
SW1、SW2、SW3 スイッチ
本発明は、情報処理装置、送信装置、および情報処理装置の制御方法に関する。
情報処理装置には、種々のニーズに応じて、搭載する演算処理装置であるCPU(Central Processing Unit)の種類、個数、あるいは基板の種類、枚数等で規定されるシステ
ム構成を変えて製品出荷されるものがある。このようなシステム構成が多様な情報処理装置の試験、例えば、製品出荷のため試験、あるいは、量産試験においては、構成部品、例えば、CPU等のチップの不良、あるいは、基板の不良を摘出するために、システム構成に含まれる回路を活性化させた上で動作確認することが求められる。
図1から図3に情報処理装置のシステム構成を例示する。図1から図3に示す情報処理装置は、CPUの増設、あるいは、基板の増設によりシステム構成を変えることができる製品の例である。図1では、基板(board0)上に、CPU00と、CPU01という2つのCPUが搭載されている。CPU00と、CPU01とは、例えば、複数のインターフェースを持ち、相互に接続されている。
図2では、基板(board0)上に、CPU00からCPU03という4つのCPUが搭載されている。CPU00からCPU03のそれぞれは、例えば、複数のインターフェースを持ち、他のCPUと接続されている。
図3の情報処理装置は、複数の基板(board0、board1)を有する。基板(board0)上には、CPU00からCPU03という4つのCPUが搭載されている。CPU00からCPU03のそれぞれは、例えば、複数のインターフェースを持ち、他のCPUと接続されている。また、基板(board1)上にも、CPU10からCPU13という4つのCPUが搭載されている。CPU10からCPU13のそれぞれは、例えば、複数のインターフェースを持ち、他のCPUと接続されている。さらに、基板(board0)上のCPU00からCPU03と、基板(board1)上のCPU10からCPU13とは、クロスバースイッチ(XB0、XB1)を介して、相互に接続される
。例えば、クロスバースイッチ(XB0)は、CPU00およびCPU02の組みとCPU10およびCPU12の組みとの間で、接続を切り替えることによりデータ転送を行なう。また、クロスバースイッチ(XB1)は、CPU01およびCPU03の組みとCPU11およびCPU13の組みとの間で、接続を切り替えることによりデータ転送を行なう。
したがって、図3の例では、8個のCPUが、相互に接続可能となっている。図1、図2の情報処理装置は、図3の情報処理装置の部分的な構成を有する。ここでは、例えば、図3の構成が最大構成であると仮定する。
図1から3のようなシステム構成の情報処理装置を試験する場合、それぞれのCPUに含まれるインターフェースの回路を活性化させた上で、情報処理装置の動作確認をすることが求められる。ところで、図1、図2のような最大構成ではない情報処理装置では、使用されない回路が含まれることがある。例えば、図1の情報処理装置が図2の構成を採ることが可能な場合に、図1の構成のCPU00、あるいは、CPU01は、CPU02、CPU03等と通信するための未使用のインターフェースを有している。また、例えば、図2の構成では、CPU00からCPU03はそれぞれ、クロスバースイッチ(XB0、XB1)と通信するための未使用のインターフェースを有している。
情報処理装置の出荷時の構成が最大構成でない場合であっても、出荷後にCPUあるいは基板が増設される場合がある。例えば、図1の情報処理装置が図2のように拡張される場合がある。また、図1、図2の情報処理装置が図3のように拡張される場合もある。増設の結果、増設前に使用されていなかったインターフェース回路が使用されるようになる。このような場合に、未使用であったインターフェース回路の使用開始に伴って、情報処理装置の不良が顕在化する可能性がある。
そのような増設時の不良低減のため、量産試験では一般的に、極力最大構成に近い状態で試験が実行される。ただし、最大構成での量産試験等で不良を検出した場合には、解析、修理等の手間とコストが増加する。そのため、CPU等の部品は、極力、部品単体に近い検査によって可能な限り多くの不良品を摘出することが望ましい。この場合の検査では、短期間で効率的に検査を行う必要があるため、極力簡易な構成で検査を実施することが望まれる。一方、極力簡易な構成での情報処理装置の検査であっても、増設後の複雑な構成での情報処理装置と同等に近い動作確認が実施できることが望まれる。
特開2002−222921号公報 特開平10−132902号公報 特開平9−128349号公報
開示の技術の課題は、増設可能な情報処理装置において、極力簡易な構成での検査を可能にするとともに、実際に使用するインターフェース以外のインタ−フェースに対しても動作確認が実施できるようにすることである。
上記課題を解決するために、開示の技術の一態様は、情報処理装置が有する第1の受信装置に接続される送信装置として例示できる。この送信装置は、データを入力する第1の入力部と、データを入力する第2の入力部と、第1の入力部が入力したデータ又は第2の
入力部が入力したデータに対して情報処理を行なったデータを出力する第1の情報処理部とを有する。さらに、この送信装置は、第1の情報処理部が出力したデータを保持する第1の保持部と、第1の情報処理部が出力したデータを保持する第2の保持部と、制御情報を保持する制御情報保持部と、を有する。さらにまた、この送信装置は、制御情報保持部が保持した制御情報に基づき、第1の保持部が保持したデータと第2の保持部が保持したデータのいずれかを選択する第1の選択部と、制御情報保持部が保持した制御情報に基づき、第1の選択部が選択したデータを第1の入力部に折り返す第1の出力部を有する。
本情報処理装置によれば、極力簡易な構成での検査を可能にするとともに、実際に使用されるインターフェース以外のインタ−フェースの部分に対しても動作確認が実施できる。
情報処理装置のシステム構成を例示する図である。 情報処理装置のシステム構成を例示する図である。 情報処理装置のシステム構成を例示する図である。 第1実施例に係る情報処理装置の構成を例示する図である。 データ転送部の詳細を例示する図である。 信号を無効化する構成を例示する図である。 第2実施例に係る情報処理装置の構成を例示する図である。 CPU内のルータの詳細構成を周辺回路とともに例示する図である。 TEST_MODE[0:3]の設定に対応する論理的な接続関係を例示する図である。 送信制御部の処理シーケンスを例示する図である。 受信制御部の処理シーケンスを例示する図である。 バスセレクタのバス選択論理を例示する図である。 バスセレクタのバス選択論理を例示する図である。 バスセレクタのバス選択論理を例示する図である。 バスセレクタのバス選択論理を例示する図である。 パケット伝送時のタイムチャートを例示する図である。
以下、図面を参照して、一実施形態に係る情報処理装置について説明する。本実施形態の構成は例示であり、本情報処理装置は実施形態の構成には限定されない。
<第1実施例>
図4に、第1実施例に係る情報処理装置1の構成を例示する。情報処理装置1は、例えば、コンピュータ、サーバ等の様々な装置として例示できる。図4の例では、情報処理装置1は、処理部10−1と処理部10−2を有している。処理部10−1、10−2を総称する場合には、処理部10という。処理部10は、コンピュータ、サーバに含まれるプロセッサ、プロセッサを含むシステムボード等の基板等として例示できる。ただし、処理部10は、コンピュータ、サーバ等の装置であってもよい。処理部10がコンピュータ、サーバ等である場合には、情報処理装置1は、複数のコンピュータ、サーバを含むシステムとなる。
また、処理部10−1は、データ処理部11−1、データ転送部12A−1、12B−1、制御情報保持部13−1を有している。処理部10−2の構成も、処理部10−1と同様である。処理部10−2は、データ処理部11−2、データ転送部12A−2、12B−2、制御情報保持部13−2を有している。データ処理部11−1、11−2を総称する場合には、データ処理部11という。また、データ転送部12A−1、12B−1、
12A−2、12B−2等を総称する場合には、データ転送部12という。制御情報保持部13−1、13−2を総称する場合には、制御情報保持部13という。
処理部10−1が送信装置の一例である。また、処理部10−2が受信装置の一例である。また、データ転送部12A−1が第1の出力部の一例である。さらに、データ処理部11−1が第1の情報処理部の一例である。さらにまた、データ処理部11−2が第2の情報処理部の一例である。
データ処理部11は、例えば、演算処理装置としてのプロセッサ、あるいはプロセッサを含む基板等におけるデータ処理を実行する回路部分、あるいは部品として例示できる。データ処理部11は、例えば、CPU(Central Processing Unit)、主記憶装置等の部
品を含む。
また、データ転送部12は、例えば、データ転送装置としてのクロスバースイッチ、プロセッサ、あるいはプロセッサを含む基板等におけるデータ転送を実行する回路部分、あるいは部品として例示できる。データ転送部12は、例えば、転送されるデータを一時的に保持するバッファ、レジスタ等を含む。また、データ転送部12は、バッファあるいはレジスタ上のデータを、伝送路を通じて送信するための駆動回路を含む。また、データ転送部12は、データを一時的に保持するバッファ、レジスタ、あるいはデータを転送する駆動回路等を制御する制御回路を含む。制御回路は、例えば、スイッチのようなデータの切り替え回路を含む。
図4の構成では、処理部10−1と処理部10−2とは、データ転送部12A−1とデータ転送部12A−2とを通じて伝送路L1で接続される。なお、伝送路L1は、有線の伝送路でも、無線の伝送路でもよい。また、伝送路L1は、パラレルの伝送路でもよいし、シリアルの伝送路でもよい。また、図の構成では、データ転送部12B−1は、処理部10−1の外部の装置と接続されていない。同様に、データ転送部12B−2は、処理部10−2の外部の装置と接続されていない。すなわち、図4で、データ転送部12B−1、12B−2は、例えば、予備のために備えられている。データ転送部12B−1、12B−2は、いずれも情報処理装置1にさらなる処理部10が増設されるときに使用されることなる。
制御情報保持部13は、データ転送部12を制御するための制御情報を記憶する。制御情報保持部13は、ラッチ、レジスタ等と呼ばれる記憶回路を含む。データ転送部12は、制御情報保持部13が記憶する情報にしたがって、データ転送を実行する。
なお、図4では、2つの処理部10−1、10−2が例示されているが、処理部の数に限定がある訳ではない。また、図4では、処理部10−1に、2つのデータ転送部12A−1、12B−1が設けられている。また、処理部10−2に、2つのデータ転送部12A−2、12B−2が設けられている。しかし、処理部10内のデータ転送部12の数に限定がある訳ではない。すなわち、処理部10内に、3以上のデータ転送部12を設けてもよい。
図5に、データ転送部12A−1の詳細を例示する。ここでは、処理部10−1に含まれるデータ転送部12A−1の構成を例にして説明するが、他のデータ転送部12の構成も、データ転送部12A−1と同様である。
データ転送部12A−1は、他の処理部(10−2等)から受信したデータを保持するデータバッファDB1、DB3を有する。ここで、他の処理部とは、図4に示した処理部10−2の他、さらに1以上の処理部を含めてもよい。すなわち、データ転送部12A−
1には、図5の他の処理部が複数接続されてもよい。例えば、データバッファDB1は、処理部10−2からの受信データを受信し、一方、データバッファDB3は、製品出荷後の将来の増設のために用意されている。ただし、図5では、データバッファDB1、DB3は、スイッチSW2、SW3を介して他の処理部10−2等と接続される。
さらに、データ転送部12A−1は、データバッファDB1、DB3のデータをデータ処理部11−1に入力するためにデータを一時保持するデータバッファDB2、DB4を有する。ただし、データバッファDB2は、データバッファDB1と兼用されてもよい。また、データバッファDB4は、データバッファDB3と兼用されてもよい。
また、データ転送部12A−1は、データ処理部11−1で処理されたデータを一時的に保持するデータバッファDB5、DB7を有する。また、データ転送部12A−1は、データバッファDB5、DB7のデータを他の処理部10−2等に転送するためにデータを一時保持するデータバッファDB6、DB8を有する。ただし、図5では、データバッファDB6、DB8は、スイッチSW1を介してデータバッファDB5、DB7と接続される。
スイッチSW1は、データバッファDB5、DB7のいずれか一方をデータバッファDB6に接続する。また、スイッチSW1は、データバッファDB5、DB7のうちの一方をデータバッファDB8にも接続する。例えば、第1の接続として、スイッチSW1は、データバッファDB5をデータバッファDB6に接続するとともに、データバッファDB7をデータバッファDB8に接続する。データ処理部11−1がデータバッファDB5、DB7のそれぞれに、他の処理部10−2等へ転送されるデータを出力する構成では、第1の接続が適用される。
また、第2の接続として、スイッチSW1は、データバッファDB5をデータバッファDB6、DB8の両方に接続する。データ処理部11−1が他の処理部10−2等へ転送されるデータをデータバッファDB5に出力し、データ処理部11−1がデータバッファDB7にデータを出力しない構成では、情報処理装置1の試験時に第2の接続が適用される。すなわち、第2の接続の場合には、データバッファDB5のデータがデータバッファDB6に転送されるとともに、複製されて、データバッファDB8にも転送される。すなわち、図5では、スイッチSW1は、信号の複製機能を提供する。また、データバッファDB5が第1の保持部の一例である。さらに、データバッファDB7が第2の保持部の一例である。
なお、図示しないが、データ転送部12B−1の構成は、データ転送部12A−1の構成と同様である。例えば、データ転送部12B−1も、スイッチSW1、データバッファDB5、およびデータバッファDB7と同様の構成を有する。
また、第3の接続として、スイッチSW1は、データバッファDB7をデータバッファDB6、DB8の両方に接続する。データ処理部11−1が他の処理部10−2等へ転送されるデータをデータバッファDB7に出力し、データ処理部11−1がデータバッファDB5にデータを出力しない構成では、情報処理装置1の試験時に第3の接続が適用される。すなわち、第の接続の場合には、データバッファDB7のデータがデータバッファDB8に転送されるとともに、複製されて、データバッファDB6にも転送される。すなわち、スイッチSW1は、信号の複製機能を提供する。
さらに、データ転送部12A−1において、データバッファDB6、DBから出力されるデータは、他の処理部10−2等に転送されるとともに、折り返しラインL2、L3で分岐されて、それぞれスイッチSW2、SW3に入力される。スイッチSW2は、他の
処理部10−2等からのデータと折り返しラインL2(データバッファDB6)からのデータのうち、いずれか一方をデータバッファDB1に出力する。また、スイッチSWは、他の処理部10−2等からのデータと折り返しラインL3(データバッファDB8)からのデータのうち、いずれか一方をデータバッファDB3に出力する。
制御情報処理部13−1は、スイッチSW1、SW2、SW3の切り替えを制御する指示ビットを保持する。図5の例では、制御情報処理部13−1は、指示ビットとして4ビットのビットパターンを保持すればよい。例えば、第1の指示ビットは、スイッチSW1に対して、データバッファDB6への出力信号を制御するビットである。第1のビットに応じて、スイッチSW1は、データバッファDB5およびデータバッファDB7のいずれか一方からのデータをデータバッファDB6に出力する。
また、第2の指示ビットは、スイッチSW1に対して、データバッファDB8への出力信号を制御するビットである。第2のビットに応じて、スイッチSW1は、データバッファ5およびデータバッファDB7のいずれか一方からのデータをデータバッファDB8に出力する。
また、第3の指示ビットは、スイッチSW2に対して、データバッファDB1への出力信号を制御するビットである。第3のビットに応じて、スイッチSW2は、他の処理部10−2等およびデータバッファDB6のいずれか一方からのデータをデータバッファDB1に出力する。
また、第4の指示ビットは、スイッチSW3に対して、データバッファDB3への出力信号を制御するビットである。第4のビットに応じて、スイッチSW3は、他の処理部10−2等およびデータバッファDB8のいずれか一方からのデータをデータバッファDB3に出力する。
このような構成によって、処理部10−1においては、制御情報保持部13−1の指示ビットの設定により、データ転送部12A−1は次のように動作する。
(1)処理部が最大構成の場合;
最大構成の場合とは、データバッファDB1、DB3のいずれもが、他の処理部からデータを入力され、データバッファDB6、DB8のいずれもが、他の処理部にデータを出力する場合である。図5では、データ入力用に、2つのデータバッファDB1、DB3を設けているが、もちろん、データ入力用に、3以上のデータバッファを設けてもよい。また、図5では、データ出力用に、2つのデータバッファDB6、DB8を設けているが、もちろん、データ出力用に、3以上のデータバッファを設けてもよい。ただし、基本的には、データ入力用のデータバッファの数とデータ出力用のデータバッファの数は同数である。
最大構成の場合には、データ入力用のデータバッファとデータ出力用のデータバッファは、いずれも他の処理部10−2等と接続されることになる。この場合には、スイッチSW1は、データバッファDB5をデータバッファDB6に接続すればよい。また、スイッチSW1は、データバッファDB7をデータバッファDB8に接続すればよい。また、スイッチSW2は、他の処理部10−2からのデータをデータバッファDB1に入力すればよい。また、スイッチSW3は、他の処理部10−2からのデータをデータバッファDB3に入力すればよい。したがって、この場合には、折り返しラインL2、L3で分岐されたデータはスイッチSW2、SW3で廃棄され、使用されない。
(2)処理部の数が最大構成の数よりも少ない場合;
処理部の数が最大構成の数よりも少ない場合には、データ入力用のデータバッファDB1、DB3の少なくとも1つが他の処理部10−2等と接続されないことなる。図5では
、データ入力用に、2つのデータバッファDB1、DB3を設けているが、もちろん、データ入力用に、3以上のデータバッファを設けている場合も同様である。さらに、処理部の数が最大構成の数よりも少ない場合には、データ出力用のデータバッファDB6、DB8の少なくとも1つが他の処理部10−2と接続されないことなる。図5では、データ出力用に、2つのデータバッファDB6、DB8を設けているが、もちろん、データ入力用に、3以上のデータバッファを設けている場合も同様である。
ここでは、一例として、データ入力用のデータバッファDB3およびデータ出力用のデータバッファDB8が他の処理部10−2等と接続されない場合について説明する。この場合には、データバッファDB3、DB4を含むデータ入力用の経路が使用されないことになる。また、例えば、データバッファDB5、スイッチSW1、データバッファDB6を含む経路がデータ出力用として使用されるとする。この場合には、データバッファDB7、スイッチSW1、データバッファDB8を含む経路が使用されないことになる。
この場合に、情報処理装置1を試験する際に、制御情報保持部13−1の第1の指示ビットは、データバッファDB5をデータバッファDBに接続するように設定される。さらに、第2の指示ビットは、データバッファDB5をデータバッファDB8に接続するように設定される。すなわち、データバッファDB5のデータが複製されてデータバッファDB8に出力される。
また、第3の指示ビットは、他の処理部10−2からのデータをデータバッファDB1に入力するように設定される。また、第4の指示ビットは、データバッファDB8からのデータをデータバッファDB3に入力するように設定される。したがって、データバッファDB5に保持されたデータは、データバッファDB6を通じて他の処理部10−2に転送されるとともに、スイッチSW1によって複製され、SW3を通じてデータバッファDB3に折り返される。データバッファDB8およびスイッチSW3が第1の出力部の一例である。
すでに述べたように、データ転送部12B−1の構成は、データ転送部12A−1の構成と同様である。したがって、例えば、データ転送部12B−1も、データバッファDB8およびスイッチSW3と同様の構成を有する。
したがって、データバッファDB3、DB4を含む経路は、他の処理部10−2等に接続されない場合であっても、データ処理部11−1で処理され、データバッファDB5に出力されるデータを用いて、模擬的又は擬似的にデータを入力することができる。データバッファDB3、DB4を含む経路に入力されたデータは、既存のデータ検証部、例えば、CRC(Cyclic Redundancy Check:巡回冗長検査)用チェッカ、パリティチェッカ、
プロトコルチェッカ等によって、検証される。
また、データ出力用のデータバッファDB8に保持されるデータも、上記データバッファDB3、DB4を含む経路の既存のデータ検証部によって検証される。さらに、データバッファDB7については、データバッファDB5の代わりに、他の処理部10−2等に接続するように、制御情報保持部13−1の設定を変更することにより、上記データバッファDB5の場合と同様に、他の処理部10−2等との間で試験できる。
以上は、データ入力用のデータバッファDB3およびデータ出力用のデータバッファDB8が他の処理部10−2等と接続されない場合について説明した。しかし、データ入力用のデータバッファDB1およびデータ出力用のデータバッファDB6が他の処理部10−2等と接続されない場合についても、上記と同様の試験を実行できる。
また、以上は、主として、データ転送部12A−1を例に説明した。しかし、第2の出力部としてのデータ転送部12B−1の処理、機能、作用もデータ転送部12A−1と同様である。また、以上は、主として、送信装置として処理部10−1を例に説明した。しかし、受信装置としての処理部10−2の処理、機能、作用も処理部10−1と同様である。例えば、処理部10−2は、第2の情報処理部として、データ処理部11−2を有し、処理部10−1と同様の機能を提供する。
図6は、信号を無効化する構成を例示する図である。第1実施例では、図5のように、処理部10の数が最大構成時の処理部10の数よりも少ない場合に、データバッファDB5等の他の処理部10−2等に出力されるデータを折り返して、データバッファDB3を含む経路に入力する。しかし、このような処理を行うと、データ処理部11−1は、データバッファDB3を含む経路から本来受け取らないデータを入力されることなる。その結果、試験実行時に、データ処理部11−1の処理が矛盾を生じる可能性がある。そこで、折り返した経路から受信したデータをデータ処理部11−1の手前で無効化する機構を用いる。
図6の例では、制御情報保持部13−1の信号がデータバッファDB2、データバッファDB4にも入力される。制御情報保持部13−1には、上記第1の指示ビットから第4の指示ビットに加えて、さらに、第5、第6の指示ビットを設ける。
第5の指示ビットは、例えば、データバッファDB2の出力をイネーブルまたはディスエーブルに制御する。例えば、第5の指示ビットは、データバッファDB2の入出力間を高インピーダンス状態で遮断するトライステートバッファやANDゲート等の遮断回路を制御するようにすればよい。あるいは、第5の指示ビットは、例えば、データバッファDB2の出力の有効/無効を指示するバリッドフラッグとして機能させてもよい。
同様に、第6の指示ビットは、例えば、データバッファDB4の出力をイネーブルまたはディスエーブルに制御する。また、第6の指示ビットは、例えば、データバッファDB4の出力の有効/無効を指示するバリッドフラッグとして機能させてもよい。
このような構成によって、例えば、データバッファDB5、DB7等のデータを折り返して、データバッファDB3を含む経路に入力した場合に、第6の指示ビットによってデータバッファDB4のデータを無効化すればよい。同様に、例えば、データバッファDB5、DB7等のデータを折り返して、データバッファDB1を含む経路に入力した場合に、第5の指示ビットによってデータバッファDBのデータを無効化すればよい。
データバッファDB2あるいはDB4等の入出力間を高インピーダンス状態で遮断する遮断回路、あるいは、データバッファDB2、DB4等の出力の有効/無効を指示するバリッドフラッグ等が無効化部の例である。
以上述べたように、第1実施例に係る情報処理装置1は、処理部10の数が最大構成の数ではない構成で、未使用のインターフェース回路、例えば、図5のデータバッファDB3、DB7、DB8等を含む場合であっても、処理部の増設なしに処理部が増設した場合に近い状態の試験を行うことができる。例えば、データ入力用として、データバッファDB1、DB2が使用され、データ出力用としてデータバッファDB5、DB6が使用される場合には、データバッファDB5のデータを複製する。そして、複製されたデータは、未使用のデータバッファDB8に出力され、さらに、転送先となる処理部10−2への経路から分岐した折り返し経路Lを通じて、未使用のデータバッファDB3に入力される。その結果、データバッファDB3、DB4を含む未使用の経路を通じて転送されたデータを既存のデータ検証部によって、検証すればよい。さらに、折り返されたデータは、例
えば、データ処理部11−1に入力前に、データバッファDB4において無効化することによって、データ処理部11−1内での矛盾の発生を抑制できる。
このような構成は、図4に示したそれぞれの処理部10−1、10−2のそれぞれのデータ転送部12A−1、12B−1、12A−2、12B−2等に備えられている。したがって、情報処理装置1、送信装置としての処理部10−1、受信装置としての処理部10−2は、最大構成ではない将来の増設可能な構成、あるいは、極力単体に近い構成で、極力多数の部分を活性化した試験を実行することが可能となる。
さらに、以上のような試験は、制御情報保持部13−1の指示ビットの設定によって、スイッチSW1からSW3の切り替え、およびデータバッファDB2、DB4等の無効化等を通じて簡易に制御できる。
(変形例)
上記第1実施例では、図5、図6において、スイッチの接続を示す第1の指示ビット〜第6の指示ビットによってスイッチSW1〜3の切り替え、およびデータバッファDB2、DB4等の無効化の有無を制御情報保持部13が指示する例を示した。第1実施例の構成では、いわば、スイッチSW1〜3等、あるいは、データバッファDB2等のような指示対象ごとに制御情報が設定された。このような構成に代えて、接続先の他の処理部10−2等に応じて制御情報保持部13に指示ビットを保持するようにしてもよい。例えば、処理部10−1に対して、他の処理部10が合計4個接続可能である場合に、4個の他の処理部10と接続されているか否かを4個の指示ビットとして、IEEE1149.1のJTAG(Joint Test Architecture Group)規格に規定される試験状態を表す制御信号であるTEST_MODE[0:3]に設定してもよい。例えば、TEST_MODE[i]=0は、処理部10−1が他の処理部1
0−iと接続されていることを示し、TEST_MODE[i]=1は、処理部10−1が他の処理部10−iと接続されていないことを示す。図4、図5、図6では、処理部10−1と10−2とが例示されているが、以下の説明では、処理部10の数は2以上として説明する。また、データバッファDB5とDB6とを含む出力信号のライン、データバッファDB7とDB8とを含む出力信号のライン以外に、さらに出力信号のラインがあるとして説明する。また、スイッチSW2、データバッファDB1、DB2を含む入力信号のライン、スイッチSW3、データバッファDB3、DB4を含む入力信号のライン以外にさらに入力信号のラインがあるとして説明する。さらに、出力信号のライン、および入力信号のラインに対応して、折り返しラインL2、L3以外にも、折り返しラインがあるとして説明する。
このような制御情報保持部13の指示ビットにしたがって、スイッチSW1〜3の切り替え、およびデータバッファDB2、DB4等の無効化の有無を制御情報保持部13が予め定められた試験を実行するようにすればよい。例えば、TEST_MODE[0:3]のすべてが0の場合、処理部10−1は、他の処理部10−i(i=2,3、4、5)すべてと接続されていることを示す。この場合には、スイッチSW1は、信号の複製を行わず、データDB5をそのままデータバッファB6に、そしてデータバッファDB7をそのままデータバッファDB8に接続すればよい。
また、スイッチSW2、SW3等は、折り返しラインL2、L3等からの信号ではなく、他のデータ処理部10からの信号をそのままデータバッファDB1、DB3等に接続すればよい。また、データバッファDB2、DB4等では、信号の無効化を行わないようにすればよい。
一方、例えば、TEST_MODE[0:3]のいずれか1以上のビットが1の場合、データ処理部10−1は、いずれか1以上の他のデータ処理部10と接続されないことになる。その場合
、データ出力側のデータバッファDB6、DB8等のいずれかは、他のデータ処理部10とは接続されない。また、データ入力側のデータバッファDB1、DB3等のいずれかは、他のデータ処理部10とは接続されない。この場合には、スイッチSW1は、TEST_MODE[0]からTEST_MODE[3]までの間で、ビット0が設定されているビット位置に対応するデータバッファの信号を複製して、ビットが設定されているビット位置に対応するデータバッファに複製すればよい。例えば、TEST_MODE[0]=0で、TEST_MODE[1:3]がいずれも1の場合には、TEST_MODE[0]のビットに対応するデータバッファDB5の信号をデータバッファDB6に入力する他、さらに他のデータバッファDB8等にも複製するようにすればよい。
一方、TEST_MODE[1:3]等に対応するスイッチSW3等は、折り返しラインL2等の信号を選択すればよい。また、TEST_MODE[1:3]等に対応するデータバッファDB4等は、信号の無効化を行えばよい。以上のように、他のデータ処理部10と接続されているかいないかを示すTEST_MODE[i]によって、(1)他のデータ処理部10からの信号を受信するか(2)信号の複製、折り返し、無効化という一連の経路からの信号を用いるかを切り替えるようにすればよい。
<第2実施例>
図7から図16を参照して第2実施例に係る情報処理装置1について説明する。第2実施例においても、情報処理装置1の構成は、基本的には、第1実施例と同様である。そこで、第2実施例において、第1実施例と同一の構成要素には同一の符号を付してその説明を省略する。
図7は、第2実施例に係る情報処理装置1の構成を例示する図である。第2実施例に係る情報処理装置1は、最大構成では、例えば、図3に示したように、CPU00からCPU03、CPU10からCPU13、クロスバースイッチXB0、XB1を含む。図7では、最大構成の情報処理装置1のうち、CPU00からCPU03、およびクロスバースイッチXB0が例示されている。また、CPU00に対して、DIMM(Dual Inline Memory Module)30が接続されている。DIMM30は、例えば、SDRAM(Synchronous Dynamic Random Access Memory)である。DIMM30は、CPU00内のDIMM
コントローラ23を介して、MC(Memory Controller)22に接続されている。DI
MM30は、CPU00内の主記憶装置の容量をさらに増設するためのメモリとして用いられる。
図7のように、CPU00は、例えば、2つのコア、すなわちCPU CORE0、CPU CORE1を有する。ただし、CPU00の有するコアが2つに限定される訳ではない。以下、複数のコアを単にCPU CORE0等という。
また、図7に示すように、CPU00等は、MC22、ルータ21、DIMMコントローラ23を有する。
CPU CORE0等は、主記憶装置あるいはDIMM30に実行可能に展開されたコンピュータプログラムによりCPU00におけるデータ処理を実行する。データ処理において、CPU CORE0等は、MC22を通じて主記憶装置にアクセスする。例えば、CPU CORE0等は、図示しないキャッシュ上に処理対象のデータが存在しない場合に、MC22にデータの取得を要求する。
MC22は、取得要求されたデータの格納先を保持している。そこで、MC22は、取得要求されたデータの格納先をデータ取得要求先としてデータの読み出し処理を実行する。例えば、MC22は、CPU CORE0等からのデータ取得要求先が、CPU00内の主記憶装置あるいはDIMM30である場合には、取得要求されたアドレスからデータ
を読み出し、要求元のCPU CORE0等に引き渡す。また、MC22は、CPU CORE0等からのデータ取得要求先が、他のCPU01からCPU03あるいはXB0を介して接続される他のCPUである場合には、データ得要求をルータ21に引き渡す。
ルータ21は、MCからのデータ取得要求中でデータ得先として指定されたCPUの論理情報を基に、指定されたCPUに接続される入出力インターフェースを特定する。例えば、データ取得先としてCPU1が指定されている場合には、ルータ21は、出力インターフェースDLOUT0に、CPU1宛のデータ取得要求を出力する。データ取得要求されるデータは、例えば、CPU01から入力インターフェースDLIN0に入力されるので、ルータ21は、入力インターフェースDLIN0に入力されたデータをMC22に引き渡す。
また、例えば、CPU CORE0等は、処理したデータの主記憶装置あるいは他のCPUの主記憶装置への保存をMC22に要求する。MC22は、保存を要求されたデータの格納先を保持している。そこで、MC22は、保存を要求されたデータの格納先をデータ書き込み要求先としてデータの書き込み処理を実行する。例えば、MC22は、CPU
CORE0等からのデータ書き込み要求先が、CPU00内の主記憶装置あるいはDIMM30である場合には、書き込み要求されたアドレスにデータを書き込む。また、MC22は、CPU CORE0等からのデータ書き込み要求先が、他のCPU01からCPU03あるいはXB0を介して接続される他のCPUである場合には、データ書き込み要求をルータ21に引き渡す。
ルータ21は、MCからのデータ書き込み要求中で指定されたCPUの論理情報を基に、指定されたCPUに接続される入出力インターフェースを特定する。例えば、データ書き込み要求先としてCPU1が指定されている場合には、ルータ21は、出力インターフェースDLOUT0に、CPU1宛のデータ書き込み対象のデータを出力する。
他の入力インターフェースDLIN1からDLIN3、出力インターフェースDLOUT1からDLOUT3についても、処理は、DLIN0、DLOUT0と同様である。出力インターフェースDLOUT0からDLOUT3、入力インターフェースDLIN0からDLIN3は、例えば、通信プロトコル階層のデータリンク層の機能に相当する。
図7では、出力インターフェースDLOUT0からDLOUT3、入力インターフェースDLIN0からDLIN3には、それぞれパラレル/シリアル変換部(以下、単に変換部という)SerDes0からSerDes3が接続されている。変換部SerDes0等は、出力インターフェースDLOUT0等からパラレル信号を受けて、シリアル信号に変換し、他のCPU01等に転送する。また、変換部SerDes0等は、他のCPU01等からシリアル信号を受信し、パラレル信号に変換し、入力インターフェースDLIN0等に入力する。変換部SerDes0等は、例えば、2分の1の周波数にクロックを分周して1:2の周波数比の2種類のクロックを生成する回路と、2:1にデータを多重化するマルチプレクサとを複数段組み合わせた構成を有する。ただし、変換部SerDes0等の構成については省略する。
図8に、CPU00内のルータ21の詳細構成をルータ21の周辺回路とともに例示する。以下、第2実施例では、CPU00からCPU03、CPU10からCPU13等の間で授受されるデータをパケットと呼ぶ。以下、CPU00からCPU03をCPU00〜03のように記述する。CPU10からCPU13も同様に、CPU10〜13のように記述する。SerDes、DLIN、DLOUT等も同様である。
すでに、図7で説明したように、例えば、CPU00は、変換部SerDes0〜3、
入力インターフェースDLIN0〜3、および出力インターフェースDLOUT0〜3を有する。なお、入力インターフェースDLIN0〜3、および出力インターフェースDLOUT0〜3は、変換部SerDes0〜3とルータ21とのインターフェース制御を担当する。
図8では、入力インターフェースDLIN0、出力インターフェースDLOUT0、および変換部SerDes0の詳細が例示されている。入力インターフェースDLIN0は、例えば、入力バッファDI0およびCRCチェッカ(CRC Checker)を有する。したが
って、入力インターフェースDLIN0は、入力バッファDI0に格納された入力データにCRCチェックを実行する。入力インターフェースDLIN0は、ハードウェア回路であってもよいし、あるいは、DSP(Digital Signal Processor)がコンピュータプログラムを実行して提供する処理部であってもよい。
出力インターフェースDLOUT0〜3は、バッファを含むハードウェア回路であってもよいし、DSPがコンピュータプログラムを実行することによって提供する機能であってもよい。図8では、例えば、出力インターフェースDLOUT0は、リトライバッファDO0を有する。リトライバッファDo0のパケットは、変換部SerDes0に引き渡される。
変換部SerDes0は、スイッチSW20と、他のCPUに転送される出力データODをスイッチSW20に分岐して折り返す折り返しラインL20を有する。すなわち、変換部SerDes0は、図7ですでに説明したパラレルシリアル変換を実行する他、折り返し線L20を介して、出力データODを折り返す。
また、スイッチSW20は、他のCPUから入力される入力データIDおよび折り返しラインL20からの折り返しデータODのいずれかを選択し、入力インターフェースDLIN0に引き渡す。変換部SerDes0が第1の出力部の一例である。同様に、変換部SerDes1が第2の出力部の一例である。
他の入力インターフェースDLIN1〜3、出力インターフェースDLOUT1〜3、変換部SerDes1〜3の処理は、入力インターフェースDLIN0、出力インターフェースDLOUT0、変換部SerDes0と同様である。
図8のように、ルータ21はパケットの発行を制御するMC22から外部、例えば、他のCPUに発行するパケットを受信するための出力バッファOB0〜3、出力バッファOB0〜3のそれぞれからパケットを読み出し、出力インターフェースDLOUT0〜3に対してパケットを送信するための送信制御部SEND−CTRL0〜3を有する。また、ルータ21は、出力バッファOB0〜3のそれぞれから読み出したパケットを格納するレジスタR0〜3、テストモード時にバスを選択するためのバスセレクタS0〜3を含む。バスセレクタS0が、第1の選択部の一例である。また、バスセレクタS1が、第2の選択部の一例である。
さらにまた、ルータ21は、入力インターフェースDLIN0〜3からのパケットを受信するレジスタR4〜7、受信したパケットを書き込む為のバッファIBUF0〜3、IBUFへのパケット書き込み、およびMC22へのパケット送信を制御するための受信制御部RCV−CTRL0〜3、IBUF0〜3からのパケットの読み出しの競合を処理するアービタARを有する。さらに、ルータ21は、テストモードか否かを設定するための制御情報保持部13を有する。制御情報保持部13は、テストモードビットTEST_MODE[0:3]を格納したラッチを含む。
レジスタR4〜7は、入力インターフェースDLIN0〜3に対してそれぞれ設けられ、入力インターフェースDLIN0〜3からのデータをそれぞれ保持する。レジスタR4〜7は、いずれも例えば、1パケット分のデータを保持するラッチである。
さらに、例えば、レジスタR4に対して次段にバッファIBUF0が接続される。レジスタR4が1パケット分のデータを保持し、一方、バッファIBUF0は、複数パケットのデータを保持するようにすればよい。ここで、1パケットは、所定のビット数例えば、8ビット、16ビット、32ビット、64ビット等のデータ部(ペイロード)を含む。
さらに、バッファIBUF0の次段には、データ検証部PCC(Parity & Protocol checker)が設けられている。データ検証部PCCは、バッファIBUF0からMC22に
引き渡されるデータのCRC、パリティ、所定のプロトコルにしたがったデータ形式及びデータ送信手順であるか否か等のチェック等を実行する。データ検証部PCCは、CRC、パリティ、プロトコルチェック等の演算を実行するハードウェア回路として例示できる。ただし、DSP等がコンピュータプログラムを実行し、データ検証部PCCとして機能してもよい。
さらに、図8のように、レジスタR4、バッファIBUF0、およびデータ検証部PCCの経路と並んで受信制御部RCV−CTRL0が設けられている。受信制御部RCV−CTRL0は、バッファIBUF0にデータが1パケット以上存在する場合に、アービタARを通じて、MC22にデータ入力を要求する。受信制御部RCV−CTRL0の処理は、例えば、ラッチ、カウンタ等のハードウェア回路で実現されてもよいし、DSPがコンピュータプログラムを実行して提供してもよい。なお、受信制御部RCV−CTRL0、レジスタR4、バッファIBUF0、データ検証部PCCを含む回路部分は入力部と呼ばれ、第1の入力部の一例である。同様に、受信制御部RCV−CTRL1、レジスタR5、バッファIBUF1、データ検証部PCCを含む回路部分も入力部と呼ばれ、第2の入力部の一例である。なお、受信制御部RCV−CTRL2等を含む回路部分、受信制御部RCV−CTRL3等を含む回路部分も入力部と呼ばれる。
図8のアービタARは、MC22と、複数の入力部との間で、データの入力処理を調停する調停部である。すなわち、アービタARは、受信制御部RCV−CTRL0〜3のうちの複数からデータの入力要求があった場合に、どの入力要求を優先するかを所定の基準で決定する。入力要求の優先順の基準に特に限定はない。例えば、ラウンドロビンで入力要求を決定してもよい。また、例えば、それぞれの入力部がアービタARに、保持するパケット数を通知するようにしてもよい。例えば、受信制御部RCV−CTRL0〜3が、入力要求とともに、バッファIBUF0〜3に保持するパケット数を通知すればよい。そして、アービタARが、保持するパケット数の多い入力部を優先して、データの入力を調停すればよい。
また、図8のように、データ検証部PCCと受信制御部RCV−CTRL0等からアービタARに入力される伝送路には、ANDゲート列A0〜7が設けられている。これらのANDゲート列A0〜7は、受信制御部RCV−CTRL0等からアービタARへのデータ入力要求をイネーブルまたはディスエーブルにする。また、これらのANDゲート列A0〜7は、データ検証部PCCから入力される検証済みデータのアービタARへのデータの入力をイネーブルまたはディスエーブルにする。例えば、入力インターフェースDLIN0のデータを有効にしてMC22に引き渡す場合には、受信制御部RCV−CTRL0に接続されるANDゲートA0、および、レジスタR4、バッファIBUF0、およびデータ検証部PCCに接続されるANDゲートA1に対して、制御情報保持部13から、イネーブル信号、すなわち、ANDゲートA0、A1に論理値0が供給される。また、入力インターフェースDLIN0のデータを無効化してMC22に引き渡さない場合には、こ
れらのANDゲートA0、A1に対して、ディスエーブル信号、すなわち、ANDゲートA0、A1に論理値1が供給される。
他のANDゲート、例えば、受信制御部RCV−CTRL1に接続されるANDゲート2、およびレジスタR5、IBF1、PCCを含む経路に接続されるANDゲート3についても同様である。また、受信制御部RCV−CTRL2に接続されるANDゲート4、およびレジスタR6、IBF2、PCCを含む経路に接続されるANDゲート5についても同様である。また、受信制御部RCV−CTRL3を含むANDゲート6、およびレジスタR7、IBF3、PCCを含む経路に接続されるANDゲート7についても同様である。図8においては、ANDゲートA0〜7が無効化部の一例である。ただし、ANDゲートに代えて、アービタARへの入力を遮断可能なトランジスタを用いてもよい。
出力バッファOB0〜3は、レジスタR0〜3に供給されるデータを保持する。そして、例えば、送信制御部SEND−CTRL0は、出力バッファOB0に出力データが存在する場合に、レジスタR0に1パケット分のデータを読み出す制御を実行する。送信制御部SEND−CTRL0の処理は、ハードウェア回路で実行されてもよいし、DSPがコンピュータプログラムによって実行してもよい。
バスセレクタS0からS3は、レジスタR0からR3のいずれかからのデータを選択し、それぞれ、出力インターフェースDLOUT0〜3に出力する。レジスタR0が第1の保持部の一例である。また、レジスタR1が第2の保持部の一例である。
次に、図8に示したCPU00の通常動作時におけるパケット伝送の処理を以下説明する。通常動作とは、試験時ではない、通常の運用時をいう。CPU00からCPU01に対してパケットを伝送する場合、CPU0のMC22から出力バッファOB0にパケットが書き込まれる。次にCPU00のパケット送信制御部SEND−CTRL0は、図10に示されるフローにしたがい、パケットをDLOUT0に送出する。DLOUT0に転送されたパケットはバッファDO0、CPU00のSerDes0を通してCPU01のSerDes0に転送される。
CPU1のSerDes0で受け取ったパケットはCPU1のDLIN0に転送され、CRCチェック等によりパケットが正常であることが確認されるとCPU1のR4に送信される。CPU1のR4に送信されたパケットは図11に示されるフローにしたがってIBUF0に書き込まれ、MC22に送信される。CPU00からCPU02、CPU03、XB0に対するパケット伝送も同様にして実行される。
次に、CPU00の試験動作時におけるパケット伝送の処理を以下説明する。CPU00の試験動作は、制御情報保持部13のテストモードビットTEST_MODE[0:3]に値を設定することによって有効となる。TEST_MODE[0:3]の値はバスセレクタS0〜S3,SerDes0〜3,RCV−CTRL0〜3に通知され、各機能ブロックはTEST_MODE[0:3]の値にしたがって動作を変更する。制御情報保持部13に対する値の設定はJTAGやI2C(Inter-Integrated Circuit)等LSIに備わっている試験用機能のインターフェースを利用して外部から実施する。ただし、制御情報保持部13に対する値の設定が、JTAGやI2Cに限定される訳ではない。
JTAGは、LSIチップの内部回路とLSIチップ外の装置とが通信する規格である。JTAG規格にしたがったLSIチップ内には、クロック、データ入力、データ出力、状態制御を指示する信号端子が用意され、この信号端子を通じてLSIチップに対してバウンダリスキャンテスト(Boundary Scan Test)と呼ばれるテストが実行される。I2C
は、LSI内部等とLSIチップ外の装置等とがシリアル通信を行う規格である。なお、第2実施例では、制御情報保持部13が保持するビット数として4ビットが例示される。しかし、制御情報保持部13が保持するビット数が4ビットに限定される訳ではない。すなわち、CPUが接続される相手先CPUの数に応じて、TEST_MODEのビット数を定めれ
ばよい。
TEST_MODE[0:3]はインターフェースごとの設定値であり、接続先に実際にチップ(相手CPU)が存在するインターフェースに対しては'0'、それ以外のインターフェースに対
しては'1'を設定する。
通常動作時はTEST_MODE[0:3]=0000に設定する。今、例えば、DLIN0とDLOUT
0を含むCPU0−CPU1経路をインターフェース0と呼ぶ。また、一般的に、DLINiとDLOUTiを含むCPU0−CPUi間の経路をインターフェースiと呼ぶ。ここで、iは、1、2または3である。インターフェース0を通常動作にして残りのインターフェース1、2、3をテストモードに設定する場合TEST_MODE[0:3]=0111にす
る。ただし、インターフェースの数は、接続可能な相手CPUの数に依存するので、インターフェースの数が4に限定される訳ではない。
以下、TEST_MODE[0:3]=0111時の動作を例示する。TEST_MODE[0:3]=0111は、図1の構成で例示される。図1では、CPU0、CPU1を接続した状態で、他のCPU、および中継チップ(クロスバースイッチXB0、XB1等)は接続されていない。したがって、情報処理装置1がCPU0、CPU1を有し、他のCPUとの通信を含めて試験を実行することを想定している。
図9に、TEST_MODE[0:3]=0111設定時の論理的な接続関係を例示する。TEST_MODE[0]=0
であるので、CPU00とCPU01の両方において、レジスタR0の信号は、バスセレクタS0において、そのまま出力インターフェースDLOUT0に伝送される。また、CPU00とCPU01の間で、インターフェース0、すなわち、入力インターフェースDLIN0、出力インターフェースDLOUT0の信号は、変換部SerDes0でパラレルシリアル変換され、相互に接続される。すなわち、CPU00の出力インターフェースDLOUT0の信号がCPU01の入力インターフェースDLIN0に接続される。また、CPU01の出力インターフェースDLOUT0の信号がCPU00の入力インターフェースDLIN0に接続される。
一方、TEST_MODE[1:3]=111であるので、バスセレクタS1、S2、およびS3では、レジスタR0の信号が複写され、出力インターフェースDLOUT1、DLOUT2、DLOUT3に引き渡される。さらに、出力インターフェースDLOUT1の信号は、変換部SerDes1において折り返されて入力インターフェースDLIN1に戻される。同様に、出力インターフェースDLOUT2の信号は、変換部SerDes2において折り返されて入力インターフェースDLIN2に戻される。同様に、出力インターフェースDLOUT3の信号は、変換部SerDes3において折り返されて入力インターフェースDLIN3に戻される。
CPU00からCPU01に対してパケットを転送する場合、最初にCPU00のMC22から出力バッファOB0にパケットが書き込まれる。次にCPU0のパケット送信制御部SEND−CTRL0は図10に示されるフローにしたがい、レジスタR0を通してパケットをDLOUT0に送出する。ここで、バスセレクタS0〜S3は、図12−15に示されるバス選択論理にしたがう。通常動作(TEST_MODE=0000)のときには、バスセレクタS0はレジスタR0を選択し、バスセレクタS1はレジスタR1を選択し、バスセレクタS2はレジスタR2を選択し、バスセレクタS3はレジスタR3を選択する。しかし
、TEST_MODE[0:3]=0111のときには、上述のように、バスセレクタS0からS3のすべて
がR0からの信号を選択する。結果として、DLOUT0にCPU00からのパケットが転送されるとともに複製されたパケットがDLOUT1、DLOUT2、DLOUT3に転送される。
DLOUT0〜3のそれぞれに転送されたパケットは、変換部SerDes0〜3に伝送される。上述のように、変換部SerDes0〜3は、TEST_MODE[0:3]の自身のインターフェース番号に対応するビットが'1'であるときは自身の送出信号を折り返すモードと
なる。折り返し機能は一般的に備わっている変換部の回路を使用すればよい。ただし、折り返し機能の回路がない場合はテストモード時にDLOUTからDLINに折り返すための分岐と折り返し線を含む回路を組み込めばよい。結果として、CPU00のSerDes0に伝送されたパケットはCPU01の変換部SerDes0に伝送される。一方、CPU00の変換部SerDes1〜3に伝送されたパケットはCPU0のDLIN1〜3に伝送される。
CPU01の変換部SerDes0に伝送されたパケットは通常動作時と同様にCPU01の入力インターフェースDLIN0,バッファIBUF0を通じてMC22に伝送される。CPU00の入力インターフェースDLIN1〜3に伝送されたパケットはCPU00のレジスタR5〜R7に伝送され、図11のフローチャートにしたがいバッファIBUF1〜3へ書き込まれる。
このときバッファIBUF1〜3に書き込まれたパケットは本来CPU00がCPU01に送信したパケットであるため、CPU00からすれば受け取ることのないパケットである。そのままCPU00で処理しようとすれば動作異常と判定される可能性がある。そこで、TEST_MODE[1:3]=111にしたがい、図のMC22の入り口側のANDゲートA2からA7がディスエーブルとされ、MC22へのパケット送信は行われず処理が完了する。すなわち、制御情報保持部13が保持するTEST_MODEの指定にしたがったANDゲートA
0からA7の動作によって、不要なパケットのMC22への入力を抑止できる。なお、ANDゲートをイネーブル/ディスエーブルにする処理は、図11によって後述する。
(処理フロー)
以下、図7および図8で例示した試験実行時のハードウェア回路の動作シーケンスをフローチャートにしたがって説明する。図10は、送信制御部SEND−CTRL0の処理シーケンスを例示する図である。なお、他の送信制御部SEND−CTRL1〜3についても、処理は、図10と同様である。以下の送信制御部SEND−CTRL0の処理シーケンスは、ハードウェア回路で実現してもよい。また、FPGA(Field Programmable Gate Array)等のプログラマブルロジック回路のシーケンサで実現してもよい。また、D
SPがコンピュータプログラムを実行することで実現してもよい。
この処理では、送信制御部SEND−CTRL0は、出力バッファ(OB1等)に送信待ちパケットが存在するか否かを判定する(S11)。出力バッファ(OB1等)に送信待ちパケットが存在する場合、リトライバッファおよび送信先のバッファIBUFの容量が十分か否かを判定する(S12)。ここで、送信先のバッファIBUFは、例えば、CPU00からCPU01にデータを送信する場合に、図9に示したCPU01のバッファIBUF0の容量である。ここで、送信先のバッファIBUFの容量についての情報はクレジットと呼ばれ、図示しない信号線を通じて、接続されたCPU間(CPU00〜03、CPU10〜13等の間)で授受される。
S11およびS12の判定結果がいずれも真(YES)であった場合、送信制御部SEND−CTRL0は、レジスタR0にパケットを読み出し、出力インターフェースDLO
UT0および変換部SerDes0を通じて、CPU01にパケットを送信する(S13)。
一方、S11およびS12の判定結果のいずれか一方が偽(NO)であった場合、送信制御部SEND−CTRL0は、S13の処理を実行せずに終了する。
図11は、受信制御部RCV−CTRL0の処理シーケンスを例示する図である。なお、他の受信制御部RCV−CTRL1〜3についても、処理は、同様である。以下の受信制御部RCV−CTRL0の処理シーケンスは、ハードウェア回路で実現してもよい。また、プログラマブルロジックコントローラ等のシーケンサで実現してもよい。また、DSPがコンピュータプログラムを実行することで実現してもよい。
この処理では、受信制御部RCV−CTRL0は、レジスタR4にパケットが到着したか否かを判定する(S21)。なお、受信制御部RCV−CTRL1〜3においては、レジスタR5〜7が判定対象となる。
レジスタR4にパケットが到着すると、受信制御部RCV−CTRL0は、R4で受信したパケットをバッファIBUF0に書き込む(S22)。なお、受信制御部RCV−CTRL1〜3においては、バッファIBUF1〜3が書き込み先となる。
そして、受信制御部RCV−CTRL0は、バッファIBUF0にパケットが存在するか否かを判定する(S23)。なお、受信制御部RCV−CTRL1〜3においては、バッファIBUF1〜3が判定対象となる。
バッファIBUF0にパケットが存在する場合、受信制御部RCV−CTRL0は、制御情報保持部13のテストモードTEST_MODE[0]が1か否かを判定する(S24)。なお、受信制御部RCV−CTRL1〜3においては、TEST_MODE[1:3]が判定対象となる。
S24の判定でTEST_MODE[0]が1の場合、受信制御部RCV−CTRL0は、データ検証部PCCによってパケットを取り出し、正常かどうかをチェックする(S26)。パケットが正常でない場合(S27でN)、情報処理装置1での通常のエラー処理が実行される(S28)。エラー処理では、例えば、受信制御部RCV−CTRL0がCPU00のJTAGコマンドへの戻り値等を通じて、図示しないシステム制御用のコンピュータ等にエラーを通知する。また、正常な場合には、そのまま処理が終了する。この場合に、図8に示したように、受信制御部RCV−CTRL0の出力側のANDゲートA0およびバッファIBUF0からデータ検証部PCCを通ってアービタARに至る経路のANDゲートA1に、TEST_MODE[0]=1が入力されている。したがって、受信制御部RCV−CTRL0の出力は、ANDゲートA0で遮断される。また、バッファIBUF0からの出力はANDゲートA1で遮断される。したがって、IBUF0のパケットがデータ検証部で検証された後に、アービタARおよびMC22に入力されない。
また、S24の判定でTEST_MODE[0]が0の場合、図8のANDゲートA0およびA1に
、TEST_MODE[0]=0が入力される。この場合、受信制御部RCV−CTRL0からアービタARへのアクセスが許容される。そこで、受信制御部RCV−CTRL0は、アービタARにデータ入力(パケット送信権)を要求する。そして、受信制御部RCV−CTRL0は、アービタARにおいてパケット送信権が獲得できたか否かを判定する(S25)。
そして、パケット送信権が獲得できた場合、受信制御部RCV−CTRL0は、通常の手順にしたがって、IBUF0からパケットを取り出す。そして、受信制御部RCV−CTRL0は、データ検証部PCCによって、取り出したパケットが正常かどうかをチェッ
クする(S29)。そして、パケットが正常であった場合には(S2AでY)、受信制御部RCV−CTRL0は、アービタARを通じてMC22にパケットを送信する(S2B)。パケットが正常でない場合(S2AでN)、情報処理装置1での通常のエラー処理が実行される(S28)。
図12に、バスセレクタS0のバス選択論理を例示する。図12は、例えば、CPU00のバスセレクタS0内の論理回路のテストモードTEST_MODE[0:3]に応じた論理をフローチャートの形式で示したものである。
バスセレクタS0は、TEST_MODE[0]=0か否かを優先して判定する(S31)。そして、TEST_MODE[0]=0の場合に(S31でY)、バスセレクタS0は、レジスタR0からの経路を選択する(S32)。この場合は、インターフェース0、すなわち、DLIN0およびDLOUT0を通じて、相手CPU01と接続されている場合である。
一方、S31の判定でTEST_MODE[0]=0でない場合に、次に、バスセレクタS0は、TEST_MODE[1]=0か否かを判定する(S33)。そして、TEST_MODE[1]=0の場合に(S33でY)、バスセレクタS0は、レジスタR1からの経路を選択する(S34)。この場合は、インターフェース1、すなわち、DLIN1およびDLOUT1を通じて、相手CPU01と接続されている場合である。
さらに、S33の判定でTEST_MODE[1]=0でない場合に、次に、バスセレクタS0は、TEST_MODE[2]=0か否かを判定する(S35)。そして、TEST_MODE[2]=0の場合に(S35でY)、バスセレクタS0は、レジスタR2からの経路を選択する(S36)。この場合は、インターフェース2、すなわち、DLIN2およびDLOUT2を通じて、相手CPU02と接続されている場合である。
さらに、S35の判定でTEST_MODE[2]=0でない場合に、バスセレクタS0は、レジスタR3からの経路を選択する(S37)。この場合は、インターフェース3、すなわち、DLIN3およびDLOUT3を通じて、相手CPU03と接続されている場合である。
なお、図12では、TEST_MODE[0]=0、TEST_MODE[1]=0、TEST_MODE[2]=0、TEST_MODE[3]=0の順で判定した。しかし、バスセレクタS0の選択論理は、TEST_MODE[0]=0の判定を優先すればよく、TEST_MODE[1]=0、TEST_MODE[2]=0、TEST_MODE[3]=0の3つの判定に関しては、図12の通りでなくてもよい。
図13に、バスセレクタS1のバス選択論理を例示する。図13は、例えば、CPU00のバスセレクタS1内の論理回路のテストモードTEST_MODE[0:3]に応じた論理をフローチャートの形式で示したものである。図13に示すバスセレクタS1の論理は、TEST_MODE[1]=0か否かの判定を優先する点を除いて、図12でのバスセレクタS0の論理と同様である。
すなわち、バスセレクタS1は、TEST_MODE[1]=0か否かを優先して判定する(S41)。そして、TEST_MODE[1]=0の場合に(S41でY)、バスセレクタS1は、レジスタR1からの経路を選択する(S42)。
一方、S41の判定でTEST_MODE[1]=0でない場合に、次に、バスセレクタS1は、TEST_MODE[0]=0か否かを判定する(S43)。そして、TEST_MODE[0]=0の場合に(S43でY)、バスセレクタS1は、レジスタR0からの経路を選択する(S44)。
さらに、S43の判定でTEST_MODE[0]=0でない場合に、次に、バスセレクタS1は、TE
ST_MODE[2]=0か否かを判定する(S45)。そして、TEST_MODE[2]=0の場合に(S45でY)、バスセレクタS1は、レジスタR2からの経路を選択する(S46)。さらに、S45の判定でTEST_MODE[2]=0でない場合に、バスセレクタS1は、レジスタR3からの経路を選択する(S47)。
図14に、バスセレクタS2のバス選択論理を示す。図14は、例えば、CPU00のバスセレクタS2内の論理回路のテストモードTEST_MODE[0:3]に応じた論理をフローチャートの形式で示したものである。図14に示すバスセレクタS2の論理は、TEST_MODE[2]=0か否かの判定を優先する点を除いて、図12でのバスセレクタS0の論理と同様である。
すなわち、バスセレクタS2は、TEST_MODE[2]=0か否かを優先して判定する(S51)。そして、TEST_MODE[2]=0の場合に(S51でY)、バスセレクタS2は、レジスタR2からの経路を選択する(S52)。
一方、S51の判定でTEST_MODE[2]=0でない場合に、次に、バスセレクタS2は、TEST_MODE[0]=0か否かを判定する(S53)。そして、TEST_MODE[0]=0の場合に(S53でY)、バスセレクタS2は、レジスタR0からの経路を選択する(S54)。
さらに、S53の判定でTEST_MODE[0]=0でない場合に、次に、バスセレクタS2は、TEST_MODE[1]=0か否かを判定する(S55)。そして、TEST_MODE[1]=0の場合に(S55でY)、バスセレクタS2は、レジスタR1からの経路を選択する(S56)。さらに、S55の判定でTEST_MODE[1]=0でない場合に、バスセレクタS2は、レジスタR3からの経路を選択する(S57)。
図15に、バスセレクタS3のバス選択論理を示す。図15は、例えば、CPU00のバスセレクタS3内の論理回路のテストモードTEST_MODE[0:3]に応じた論理をフローチャートの形式で示したものである。図15に示すバスセレクタS3の論理は、TEST_MODE[3]=0か否かの判定を優先する点を除いて、図12でのバスセレクタS0の論理と同様である。
すなわち、バスセレクタSは、TEST_MODE[3]=0か否かを優先して判定する(S61)。そして、TEST_MODE[3]=0の場合に(S61でY)、バスセレクタS3は、レジスタR3からの経路を選択する(S62)。
一方、S61の判定でTEST_MODE[3]=0でない場合に、次に、バスセレクタS3は、TEST_MODE[0]=0か否かを判定する(S63)。そして、TEST_MODE[0]=0の場合に(S63でY
)、バスセレクタS3は、レジスタR0からの経路を選択する(S64)。
さらに、S63の判定でTEST_MODE[0]=0でない場合に、次に、バスセレクタS3は、TEST_MODE[1]=0か否かを判定する(S65)。そして、TEST_MODE[1]=0の場合に(S65でY)、バスセレクタS3は、レジスタR1からの経路を選択する(S66)。さらに、S65の判定でTEST_MODE[1]=0でない場合に、バスセレクタS2は、レジスタR2からの経路を選択する(S67)。
(動作シーケンス)
図16に、TEST_MODE[0:3]=0111設定時におけるCPU00からCPU01へのパケッ
ト伝送時のタイムチャートを例示する。ここで、図16の横軸は、例えば、CPU00−CPU03等を駆動するクロックのサイクルである。また、図16の縦軸は、CPU00の出力バッファOB、レジスタR0、リトライバッファDO0、CPU01の入力バッ
ファDI0、レジスタR4、バッファIBUF0、MC22等である。さらに、図16では、CPU00のインターフェース1〜3の構成要素が列挙されている。すなわち、CPU00のリトライバッファDO1〜3、入力バッファDI1〜3、レジスタR5〜7、バッファIBUF1〜3が図16の縦軸に示されている。
図16においては3サイクル目でパケットAがレジスタR0からリトライバッファDO0に伝送されるとともにリトライバッファDO1,DO2,DO3に複製されていることが示されている。4サイクル目にはDO1,DO2,DO3にあるパケットは折り返しによりCPU00のDI1,DI2,DI3に転送される。CPU1に転送されたパケットは11サイクル目でMCに伝送されるがCPU0で折り返されたパケットは6サイクル目にて処理が完了する。
折り返されたパケットや各機能ブロックの動作の正当性は(1)DLIN1〜3のもつCRCチェッカ(2)IBUF1〜3や受信制御部RCV−CTRL0〜3が持つパリティチェッカ、プロトコルチェッカ等によって実施される。これらのチェッカは通常動作時であってもハードが故障していないかのチェックをするため動作する。結果、CPU00とCPU01を接続して試験を実行した状態であってもCPU02、CPU03、XB0、XB1等のインターフェース回路部を同時に試験することが可能となる。試験は、例えば、CPU00とCPU01間のデータ転送を実行するテストプログラムを用いて行えばよい。
<効果>
以上の構成により、情報処理装置1が採り得る構成中で、簡易な構成であっても、実際に使用されるインターフェース以外のインタ−フェースの部分に対しても動作確認が実施できる。例えば、図9に示したように、CPU00とCPU01とが、インターフェース0を通じて接続され、CPU00がCPU01、CPU02に接続するためのインターフェースが未接続であっても、CPU00からCPU01への伝送される信号を用いて、未接続のインターフェースの試験が可能となる。
例えば、図8に示したように、バスセレクタS1からS3が、CPU00からCPU01に伝送されるレジスタR0のパケットを複製し、変換部SerDes1〜3で折り返して、DLIN1〜3に入力すればよい。折り返された信号について、例えば、DLIN1〜3においてCRCチェック等を実行すればよい。また、受信制御部RCV−CTRL1〜3がデータ検証部PCCを用いて、折り返された信号のパリティチェック、プロトコルチェック等を実行すればよい。また、折り返された信号は、アービタAR等への入力をディスエーブルにすることで、信号が折り返されるCPU00内での矛盾を回避すればよい。
また、上記第2の実施例では、バスセレクタS0〜3の選択、変換部SrDes0〜3の折り返しの有無、およびアービタARへの入力に対するイネーブル/ディスエーブルの設定等が、制御情報保持部13のテストモードTEST_MODE[0:3]で指定した。したがって、情報処理装置1の試験を行うオペレータ等は、情報処理装置1を制御するシステム管理用のコンピュータから、例えば、JTAGコマンド等によって、制御情報保持部13のテストモードTEST_MODE[0:3]に制御情報を設定し、簡易に試験を実行できる。また、試験の結果をJTAGコマンド等で読み出し確認すればよい。
第2実施例で説明した情報処理装置1で伝送されるパケットはCPU上でテストプロラムを流した際にCPU間の実通信で使用されるパケットとなる。又、パケット発行タイミングはCPU上のキャッシュの状態、バッファのBUSY、資源の競合といった各種ハードウェアの状態に影響される。そのため、実運用の環境に近いタイミングやデータパタン
で試験を実施することができる。
以上のような構成は、図7に示したCPU00〜03、XB0を通じて接続される他のCPU、あるいは、図1の構成で例示されるXB1等を通じて接続されるCPU10〜13等、情報処理装置1に含まれるそれぞれのCPUに備えられる。したがって、情報処理装置1、送信装置としてのCPU00、受信装置としての他のCPUは、最大構成ではない将来の増設可能な構成、あるいは、極力単体に近い構成で、極力多数の部分を活性化した試験を実行することが可能となる。
1 情報処理装置
10 処理部
11 データ処理部
12A、12B データ転送部
13 制御情報保持部
21 ルータ
22 メモリコントローラ
23 DIMMコントローラ
30 DIMM
DB1、DB2、DB3、DB4DB5、DB6、DB7、DB8 データバッファ
S0、S1、S2、S3 バスセレクタ
SW1、SW2、SW3 スイッチ

Claims (14)

  1. 送信装置と、前記送信装置に接続された第1の受信装置を有する情報処理装置において、
    前記送信装置は、
    データを入力する第1の入力部と、
    データを入力する第2の入力部と、
    前記第1の入力部が入力したデータ又は前記第2の入力部が入力したデータに対して情報処理を行ったデータを出力する第1の情報処理部と、
    前記第1の情報処理部が出力したデータを保持する第1の保持部と、
    前記第1の情報処理部が出力したデータを保持する第2の保持部と、
    制御情報を保持する制御情報保持部と、
    前記制御情報保持部が保持した制御情報に基づき、前記第1の保持部が保持したデータと前記第2の保持部が保持したデータのいずれかを選択する第1の選択部と、
    前記制御情報保持部が保持した制御情報に基づき、前記第1の選択部が選択したデータを前記第1の入力部に折り返す第1の出力部を有することを特徴とする情報処理装置。
  2. 前記送信装置はさらに、
    前記制御情報保持部が保持した制御情報に基づき、前記第1の保持部が保持したデータと前記第2の保持部が保持したデータのいずれかを選択する第2の選択部と、
    前記第2の選択部が選択したデータを第2の受信装置に出力する第2の出力部を有し、
    前記第2の受信装置は、
    前記送信装置の前記第1の出力部から入力されるデータに対して情報処理を行う第2の情報処理部を有することを特徴とする請求項1記載の情報処理装置。
  3. 前記送信装置において、
    前記第1の選択部は、前記制御情報保持部が保持した制御情報に基づき、前記第2の保持部が保持したデータを選択し、
    前記第2の選択部は、前記制御情報保持部が保持した制御情報に基づき、前記第2の保持部が保持したデータを選択し、
    前記第1の出力部は、前記制御情報保持部が保持した制御情報に基づき、前記第1の選択部が選択したデータを前記第1の入力部に折り返す折り返し部を有することを特徴とする請求項2記載の情報処理装置。
  4. 前記送信装置において、
    前記第2の出力部は、
    前記制御情報保持部が保持した制御情報に基づき、前記第2の選択部が選択したデータを前記第2の入力部に折り返すことを特徴とする請求項2記載の情報処理装置。
  5. 前記情報処理装置において、
    前記制御情報保持部が保持した制御情報に基づき、前記送信装置の前記第1の出力部から入力されるデータを無効化する無効化部を有することを特徴とする請求項2〜4のいずれか1項に記載の情報処理装置。
  6. 情報処理装置が有する第1の受信装置に接続される送信装置において、
    データを入力する第1の入力部と、
    データを入力する第2の入力部と、
    前記第1の入力部が入力したデータ又は前記第2の入力部が入力したデータに対して情報処理を行ったデータを出力する第1の情報処理部と、
    前記第1の情報処理部が出力したデータを保持する第1の保持部と、
    前記第1の情報処理部が出力したデータを保持する第2の保持部と、
    制御情報を保持する制御情報保持部と、
    前記制御情報保持部が保持した制御情報に基づき、前記第1の保持部が保持したデータと前記第2の保持部が保持したデータのいずれかを選択する第1の選択部と、
    前記制御情報保持部が保持した制御情報に基づき、前記第1の選択部が選択したデータを前記第1の入力部に折り返す第1の出力部を有することを特徴とする送信装置。
  7. 前記送信装置はさらに、
    前記制御情報保持部が保持した制御情報に基づき、前記第1の保持部が保持したデータと前記第2の保持部が保持したデータのいずれかを選択する第2の選択部と、
    前記第2の選択部が選択したデータを第2の受信装置に出力する第2の出力部を有することを特徴とする請求項6記載の送信装置。
  8. 前記送信装置において、
    前記第1の選択部は、前記制御情報保持部が保持した制御情報に基づき、前記第2の保持部が保持したデータを選択し、
    前記第2の選択部は、前記制御情報保持部が保持した制御情報に基づき、前記第2の保持部が保持したデータを選択し、
    前記第1の出力部は、前記制御情報保持部が保持した制御情報に基づき、前記第1の選択部が選択したデータを前記第1の入力部に折り返す折り返し部を有することを特徴とする請求項7記載の送信装置。
  9. 前記送信装置において、
    前記第2の出力部は、
    前記制御情報保持部が保持した制御情報に基づき、前記第2の選択部が選択したデータを前記第2の入力部に折り返すことを特徴とする請求項7記載の送信装置。
  10. 送信装置と、前記送信装置に接続された第1の受信装置を有する情報処理装置の制御方法において、
    前記送信装置が有する第1の入力部が、データを入力するステップと、
    前記送信装置が有する第2の入力部が、データを入力するステップと、
    前記送信装置が有する第1の情報処理部が、前記第1の入力部が入力したデータ又は前記第2の入力部が入力したデータに対して情報処理を行ったデータを出力するステップと、
    前記送信装置が有する第1の保持部に、前記第1の情報処理部が出力したデータを保持するステップと、
    前記送信装置が有する第2の保持部に、前記第1の情報処理部が出力したデータを保持するステップと、
    前記送信装置が有する制御情報保持部が、制御情報を保持するステップと、
    前記送信装置が有する第1の選択部が、前記制御情報保持部が保持した制御情報に基づき、前記第1の保持部が保持したデータと前記第2の保持部が保持したデータのいずれかを選択するステップと、
    前記送信装置が有する第1の出力部が、前記制御情報保持部が保持した制御情報に基づき、前記第1の選択部が選択したデータを前記第1の入力部に折り返すステップを有することを特徴とする情報処理装置の制御方法。
  11. 前記情報処理装置の制御方法はさらに、
    前記送信装置が有する第2の選択部が、前記制御情報保持部が保持した制御情報に基づき、前記第1の保持部が保持したデータと前記第2の保持部が保持したデータのいずれかを選択するステップと、
    前記送信装置が有する第2の出力部が、前記第2の選択部が選択したデータを第2の受信装置に出力するステップを有する
    ことを特徴とする請求項10記載の情報処理装置の制御方法。
  12. 前記情報処理装置の制御方法において、
    前記第1の選択部は、前記制御情報保持部が保持した制御情報に基づき、前記第2の保持部が保持したデータを選択し、
    前記第2の選択部は、前記制御情報保持部が保持した制御情報に基づき、前記第2の保持部が保持したデータを選択し、
    前記第1の出力部は、前記制御情報保持部が保持した制御情報に基づき、前記第1の選択部が選択したデータを前記第1の入力部に折り返すことを特徴とする請求項11記載の情報処理装置の制御方法。
  13. 前記情報処理装置の制御方法において、
    前記第2の出力部は、
    前記制御情報保持部が保持した制御情報に基づき、前記第2の選択部が選択したデータを前記第2の入力部に折り返すことを特徴とする請求項11記載の制御方法。
  14. 前記情報処理装置の制御方法において、
    前記制御情報保持部が保持した制御情報に基づき、前記送信装置が有する無効化部が前記送信装置の前記第1の出力部から入力されるデータを無効化するステップを有することを特徴とする請求項10〜13のいずれか1項に記載の情報処理装置の制御方法。
JP2013505757A 2011-03-24 2011-03-24 情報処理装置、送信装置、および情報処理装置の制御方法 Withdrawn JPWO2012127692A1 (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2011/057253 WO2012127692A1 (ja) 2011-03-24 2011-03-24 情報処理装置、送信装置、および情報処理装置の制御方法

Publications (1)

Publication Number Publication Date
JPWO2012127692A1 true JPWO2012127692A1 (ja) 2014-07-24

Family

ID=46878884

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2013505757A Withdrawn JPWO2012127692A1 (ja) 2011-03-24 2011-03-24 情報処理装置、送信装置、および情報処理装置の制御方法

Country Status (3)

Country Link
US (1) US20140013162A1 (ja)
JP (1) JPWO2012127692A1 (ja)
WO (1) WO2012127692A1 (ja)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104182309A (zh) * 2013-05-23 2014-12-03 英业达科技有限公司 除错装置与除错方法
DE102013017140B4 (de) * 2013-10-16 2019-05-02 Rose Plastic Ag Flexible Schutzkappe zur Aufnahme von Schäften mit unterschiedlichem Durchmesser
US11136107B2 (en) 2018-10-05 2021-10-05 The Boeing Company Method and apparatus for attaching a fuselage frame to a wing box

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4660194A (en) * 1984-04-05 1987-04-21 New York Telephone Company Method and apparatus for testing a subscriber's line circuit in a packet switched multiplexed data/voice communication system
CA1320276C (en) * 1987-09-04 1993-07-13 William F. Bruckert Dual rail processors with error checking on i/o reads
JP2710777B2 (ja) * 1988-01-20 1998-02-10 富士通株式会社 中間制御装置のテスト回路
FR2648916B1 (fr) * 1989-06-27 1991-09-06 Cit Alcatel Agencement de test de cartes a circuit imprime et son application au test de cartes a circuit imprime formant un equipement de multiplexage-demultiplexage de signaux numeriques
JPH03267775A (ja) * 1990-03-19 1991-11-28 Fujitsu Ltd 集積回路におけるループ試験方式
JP2671817B2 (ja) * 1994-08-26 1997-11-05 日本電気株式会社 半導体集積回路の検査方法
JPH08227406A (ja) * 1995-02-22 1996-09-03 Hitachi Ltd 並列計算機
JPH08249202A (ja) * 1995-03-09 1996-09-27 Hitachi Ltd 情報処理装置の自己診断方式
US6262594B1 (en) * 1999-11-05 2001-07-17 Ati International, Srl Apparatus and method for configurable use of groups of pads of a system on chip
JP2002016664A (ja) * 2000-06-27 2002-01-18 Hitachi Ltd ループバックテスト方法および装置
US7346819B2 (en) * 2004-10-29 2008-03-18 Rambus Inc. Through-core self-test with multiple loopbacks
US8108549B2 (en) * 2006-04-04 2012-01-31 International Business Machines Corporation Method for using the loopback interface in a computer system having multiple workload partitions
JP5396726B2 (ja) * 2008-03-24 2014-01-22 富士通株式会社 試験装置、情報処理システムおよび試験方法

Also Published As

Publication number Publication date
WO2012127692A1 (ja) 2012-09-27
US20140013162A1 (en) 2014-01-09

Similar Documents

Publication Publication Date Title
US20210055940A1 (en) Efficient Configuration Of A Reconfigurable Data Processor
US11983140B2 (en) Efficient deconfiguration of a reconfigurable data processor
JP3645281B2 (ja) 共用メモリを有するマルチプロセッサ・システム
US8301941B2 (en) Memory controller with loopback test interface
EP0848327A2 (en) Multiprocessor computer having configurable hardware system domains
JPH0223891B2 (ja)
US7624312B2 (en) System, apparatus, computer program product for performing operational validation with limited CPU use of a communications network
JPH02208771A (ja) マルチプロセッサシステム用のシステム制御装置をシステム主メモリとインタフェースする手段で用いられるメモリ構成
JPH0548494B2 (ja)
US20230205726A1 (en) Device with data processing engine array that enables partial reconfiguration
JPH03182947A (ja) メモリデバイス
US7568138B2 (en) Method to prevent firmware defects from disturbing logic clocks to improve system reliability
WO2012127692A1 (ja) 情報処理装置、送信装置、および情報処理装置の制御方法
JPH03184109A (ja) データ処理装置における目標指定リセット法
Neishaburi et al. A distributed AXI-based platform for post-silicon validation
Jone et al. An efficient BIST method for distributed small buffers
JPH02207368A (ja) マルチプロセッサシステムのシステム制御ユニットをシステム主メモリとインターフェイスする方法及び手段
TWI825853B (zh) 可重組態資料處理器的缺陷修復電路
US20080052473A1 (en) Information processing apparatus
TW202032383A (zh) 可重組態資料處理器的組態加載和卸載
JP2001102457A (ja) 複数コントローラ内蔵のlsi及び同lsiを備えたlsi組み合わせシステム
TW202324434A (zh) 具有組合式記憶體、邏輯及內建自我測試之處理器單元
JP2020077451A (ja) 非順次的ページ連続リード
Sosnowski Testing crossbar switch interconnection networks
JP2004062738A (ja) 電子基板、電子基板の信号制御方法、および、それを使用したディスクアレイ装置

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20130926

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20130926

A761 Written withdrawal of application

Free format text: JAPANESE INTERMEDIATE CODE: A761

Effective date: 20141110