JP2020035357A - 情報処理装置 - Google Patents

情報処理装置 Download PDF

Info

Publication number
JP2020035357A
JP2020035357A JP2018163450A JP2018163450A JP2020035357A JP 2020035357 A JP2020035357 A JP 2020035357A JP 2018163450 A JP2018163450 A JP 2018163450A JP 2018163450 A JP2018163450 A JP 2018163450A JP 2020035357 A JP2020035357 A JP 2020035357A
Authority
JP
Japan
Prior art keywords
board
code
fpga
information processing
array data
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.)
Pending
Application number
JP2018163450A
Other languages
English (en)
Inventor
勉 前田
Tsutomu Maeda
勉 前田
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.)
Denso Ten Ltd
Original Assignee
Denso Ten 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 Denso Ten Ltd filed Critical Denso Ten Ltd
Priority to JP2018163450A priority Critical patent/JP2020035357A/ja
Publication of JP2020035357A publication Critical patent/JP2020035357A/ja
Pending legal-status Critical Current

Links

Images

Landscapes

  • Test And Diagnosis Of Digital Computers (AREA)

Abstract

【課題】情報処理装置に搭載される一の集積回路が、情報処理装置に搭載された集積回路の数を取得できる技術を提供することを課題とする。【解決手段】情報処理装置1は、第1ボード10〜第3ボード30を備える。各ボードは、2つのFPGAを搭載する。各ボードに搭載されたFPGAは、互いに通信可能である。各FPGAは、使用状況信号取得部111と、搭載数特定部113とを備える。使用状況信号取得部111は、各ボードの使用状況を示す個別使用状況信号を取得する。搭載数特定部113は、取得された個別使用状況信号に基づいて、情報処理装置1が備えるFPGAの数を特定する。【選択図】図2

Description

本発明は、搭載する集積回路の数を動的に変更することができる情報処理装置に関する。
機器を制御するマイクロコンピュータの開発において、開発されたマイクロコンピュータは、シミュレータ(機器の動作を模擬演算する情報処理装置)によって評価される。
例えば、車両のエンジンやブレーキ等を制御するECU(Electronic Control Unit)が、実際の車両に先行して開発される。ECUは、車両の動作を模擬演算する情報処理装置と接続された上で評価される。以下、車両の動作を模擬演算する情報処理装置を、「車両シミュレータ」と記載する。
特許文献1は、複数のロジック・チップを備えるハードウェア・エミュレーション・システムを開示している。ロジック・チップは、例えば、FPGA(field-programmable gate array)等の集積回路である。特許文献1は、このシステムにおいて、複数の設計信号をロジック・チップのピン及び回路基板の配線において時間多重化することを開示している。
特表2002−507294号公報
近年、自動車等に搭載されるモータの数が増加している。このため、ECUを評価する際に、車両シミュレータは、複数のモータの各々の動作を再現する場合がある。この場合、車両シミュレータは、複数のモータに対応する複数の集積回路を搭載し、複数の集積回路の各々を用いて各モータの動作を模擬演算する。
車両シミュレータは、さらに、各モータに電力を供給するコンバータに対応する集積回路を使用する。コンバータに対応する集積回路は、モータに対応する集積回路に電力を仮想的に供給するために、モータに対応する集積回路と通信する。
車両シミュレータは、ECUの仕様に応じて、モータに対応する集積回路の数を変更することが求められる。つまり、車両シミュレータは、使用する集積回路の数を動的に変更することが要求される。コンバータに対応する集積回路は、モータに対応する集積回路との通信を確立するために、車両シミュレータで使用される集積回路の数を取得する必要がある。集積回路の数は、模擬演算を開始する前に取得される。
しかし、特許文献1は、ロジック・チップがハードウェア・エミュレーション・システムで用いられるロジック・チップの数を取得する方法を開示していない。
本発明は、上記問題点に鑑み、情報処理装置に搭載される一の集積回路が、情報処理装置に搭載された集積回路の数を取得できる技術を提供することを課題とする。
上記課題を解決するため、第1の発明は、搭載する集積回路の数を動的に変更できる情報処理装置であり、第1〜第N集積回路と、複数のボードとを備える。Nは2以上の自然数である。第1〜第N集積回路は、互いに通信可能である。複数のボードの各々は、第1〜第N集積回路のうち少なくとも1つを搭載する。第M集積回路は、使用状況信号取得部と、搭載数特定部とを備える。Mは1以上N以下の自然数である。使用状況信号取得部は、複数のボードの各々に搭載された集積回路の数を示す個別使用状況信号を取得する。搭載数特定部は、取得された個別使用状況信号に基づいて、情報処理装置が備える集積回路の数を特定する。
第1の発明によれば、第M集積回路は、複数のボードの各々に搭載された集積回路の数を示す個別使用状況信号を用いて、情報処理装置に搭載された集積回路の数を取得できる。
第2の発明は、第1の発明であって、複数のボードのうち第M集積回路を搭載するボードは、ソケットと、セレクタとを含む。ソケットは、第M集積回路を固定する。セレクタは、第M集積回路が固定されたソケットを特定するセレクト信号を第M集積回路に供給する。第M集積回路は、さらに、ボード特定信号取得部と、識別コード決定部と、を含む。ボード特定信号取得部は、第M集積回路が搭載されたボードを特定するボード特定信号を取得する。識別コード決定部は、ボード特定信号とセレクト信号とに基づいて、第M集積回路の識別コードを決定する。
第2の発明によれば、第M集積回路は、第M集積回路が固定されたソケット及び第M集積回路が搭載されたボードに応じて識別コードを決定する。第M集積回路は、設置場所が変更された場合、変更された設置場所に応じて識別コードを変更できる。従って、情報処理装置が備える集積回路の数を変更した場合や、集積回路の設置場所を変更した場合等に、集積回路の設定を簡略化できる。
第3の発明は、第1又は第2の発明であって、第M集積回路は、さらに、受信部と、識別コード生成部と、送信部と、判断部とを含む。受信部は、第L集積回路の識別コードを含むコード配列データを第L集積回路から受信する。Lは、Mを除く1以上N以下の自然数である。識別コード生成部は、受信部により受信されたコード配列データに第M集積回路の識別コードを付加して送信用のコード配列データを生成する。送信部は、送信用のコード配列データを、第1〜第N集積回路に送信する。判断部は、第1〜第N集積回路が互いに通信可能か否かを、搭載数特定部により特定された集積回路の数と受信部により受信されたコード配列データと送信部により送信されたコード配列データとに基づいて判断する。
第3の発明によれば、コード配列データは、第1〜第N集積回路の識別コードを含む。従って、判断部は、コード配列データを参照することによって、第1〜第N集積回路が互いに通信できるか否かを容易に判断できる。
第4の発明は、第3の発明であって、受信されたコード配列データと送信されたコード配列データとが第1〜第N集積回路の識別コードを含む場合、判断部は、第1〜第N集積回路が互いに通信可能であると判断する。
第4の発明によれば、判断部は、第1〜第N集積回路が互いに通信可能であるか否かを容易に判断できる。
第5の発明は、第4の発明であって、判断部は、受信されたコード配列データ及び送信されたコード配列データの各々からコード長が最長のコード配列データをコード配列データの送信元ごとに特定する。判断部は、特定されたコード配列データのうち少なくとも1つのコード配列データが第M集積回路の識別コードを含まない場合、第M集積回路で受信異常が発生していると判断する。
第5の発明によれば、判断部は、受信異常が発生している集積回路を容易に特定できるため、情報処理装置における不良発生個所を容易に特定できる。
第6の発明は、第4又は第5の発明であって、判断部は、受信されたコード配列データ及び送信されたコード配列データの送信元の数が特定された集積回路の数よりも小さい場合、第1〜第N集積回路の少なくとも1つで送信異常が発生していると判断する。
第6の発明によれば、判断部は、コード配列データに基づいて、送信異常の発生を容易に検出できる。
第7の発明は、第3〜第6発明のいずれかであって、識別コード付加部は、受信されたコード配列データが第M集積回路の識別コードを含む場合、第M集積回路の識別コードを受信されたコード配列データの先頭に移動させる、情報処理装置。
第7の発明によれば、コード配列データ50のデータ長を抑制できるため、集積回路の処理負荷を低減させることができる。
第8の発明は、互いに通信する第1〜第N(Nは2以上の自然数)集積回路と、各々が第1〜第Nの集積回路のうち少なくとも1つを搭載する複数のボードとを備える情報処理装置において、第M(Mは1以上N以下の自然数)集積回路により実行される情報処理方法である。第8の発明は、a)ステップと、b)ステップとを備える。a)ステップは、複数のボードの各々の使用状況を示す個別使用状況信号を取得する。b)ステップは、個別使用状況信号に基づいて、情報処理装置が備える集積回路の数を特定する。
第8の発明は、第1の発明に用いられる。
本発明に係る情報処理装置に搭載される一の集積回路が、情報処理装置に搭載された集積回路の数を取得できる。
本発明の一実施の形態に係るシミュレーションシステム100の構成を示す機能ブロック図である。 図1に示す情報処理装置の構成を示す機能ブロック図である。 図2に示すFPGAの構成を示す機能ブロック図である。 図2に示すFPGAの動作を示すフローチャートである。 図2に示すバックプレーンコネクタの接続の一例を示す図である。 図4に示すコード配列データ送信処理のフローチャートである。 図2に示すFPGAから送信されるコード配列データの変化の一例を示す図である。 図2に示すFPGAから送信されるコード配列データの送信経路を示す図である。 図4に示す動作判断処理のフローチャートである。
以下、図面を参照し、本発明の実施の形態を詳しく説明する。図中同一又は相当部分には同一符号を付してその説明は繰り返さない。
{1.構成}
{1.1.シミュレーションシステム100の構成}
図1は、本発明の一実施の形態に係るシミュレーションシステム100の構成を示す機能ブロック図である。図1を参照して、シミュレーションシステム100は、自動車等の車両に搭載されるECU(Electronic Control Unit)2の評価に用いられる。シミュレーションシステム100は、情報処理装置1と、ECU2と、ユーザ端末3と、中継装置4とを備える。
情報処理装置1は、シミュレータであり、ECU2と接続される。情報処理装置1は、ECU2から出力される制御信号に従って、車両に搭載されるモータ及びコンバータの動作を模擬演算する。
ECU2は、シミュレーションシステム100における評価対象である。ECU2は、中継装置4を介してユーザ端末3から動作指示を取得し、取得した動作指示に応じた制御信号を情報処理装置1に出力する。
ユーザ端末3は、ECU2の評価者が使用するコンピュータである。ユーザ端末3は、中継装置4を介して情報処理装置1及びECU2に動作指示を出力する。ユーザ端末3は、中継装置4を介して情報処理装置1から模擬演算結果を取得し、その取得した模擬演算結果を図示しないモニタに表示する。
中継装置4は、情報処理装置1とユーザ端末3との間の通信を中継し、ECU2とユーザ端末3との間の通信を中継する。
なお、シミュレーションシステム100において、装置間の通信方式は、特に限定されない。例えば、情報処理装置1は、CAN(Controller Area Network)を用いてECU2と通信する。ユーザ端末3は、LAN(Local Area Network)を用いて中継装置4と通信する。中継装置4は、LANを用いて情報処理装置1と通信する。中継装置4は、図示しないプロトコル変換装置を用いて、ECU2と通信する。プロトコル変換装置は、LANに準拠した通信とCANに準拠した通信とを相互に変換する。中継装置4は、LANを用いてプロトコル変換装置と通信する。ECU2は、CANを用いてプロトコル変換装置と通信する。
{1.2.情報処理装置1の構成}
図2は、図1に示す情報処理装置1の構成を示す機能ブロック図である。図2を参照して、情報処理装置1は、第1ボード10と、第2ボード20と、第3ボード30とを備える。
第1ボード10〜第3ボード30は、情報処理装置1の筐体に形成された3つのスロットに収められる。3枚のボードは、情報処理装置1のスロットから着脱可能である。3枚のボードは、後述するように共通の構成であるため、その構成によって区別されない。3枚のボードは、3つのスロットのうちどのスロットに挿入されたかに基づいて、第1ボード10〜第3ボード30として区別される。
以下の説明において、第1ボード10〜第3ボード30を区別しない場合、単に「ボード」と記載することがある。情報処理装置1の筐体に設けられた第1スロットに挿入されたボードを「第1ボード10」として記載する。同様に、情報処理装置1の筐体に設けられた第2スロットに挿入されたボードを「第2ボード20」と記載し、情報処理装置1の筐体に設けられた第3スロットに挿入されたボードを「第3ボード30」と記載する。
第1ボード10〜第3ボード30の各々は、最大で2台のFPGA(field-programmable gate array)を搭載できる。各ボードに搭載されるFPGAは、車両に搭載されるモータ及びコンバータのいずれか一方の動作を模擬演算できるように構成されている。様々なECU2を評価できるように、FPGAは、各ボードから着脱可能である。
{1.3.第1ボード10の構成}
図2を参照して、第1ボード10は、FPGA11A及び11Bと、ソケット12A及び12Bと、セレクタ13と、バックプレーンコネクタ14と、LVDS(Low Voltage Differential Signaling)コネクタ15と、LAN通信部16とを含む。
FPGA11A及び11Bは、車両のコンバータ又はモータの動作を模擬演算する。FPGA11A及び11Bは、LVDSを用いて、第2ボード20及び第3ボード30に搭載されたFPGAと通信する。FPGA11Aは、LVDSを用いてFPGA11Bと通信する。
FPGA11A及び11Bの各々は、他のFPGAと通信を開始する前に、情報処理装置1が備えるFPGAの数を取得する。情報処理装置1が備えるFPGAの数とは、第1ボード10、第2ボード20及び第3ボード30の各々が含むFPGAの合計値である。
ソケット12A及び12Bは、FPGA11A及び11Bを第1ボード10上に固定する。FPGA11A及び11Bは、ソケット12A及び12Bに嵌め込まれることにより、第1ボード10の他の構成要素と通信できる。
セレクタ13は、FPGA11Aが嵌め込まれたソケット12Aを特定するセレクト信号13AをFPGA11Aに供給する。セレクタ13は、FPGA11Bが嵌め込まれたソケット12Bを特定するセレクト信号13BをFPGA11Bに供給する。
バックプレーンコネクタ14は、第1ボード10〜第3ボード30の使用状況を示す各々に搭載された集積回路の数を示す使用状況信号18を取得し、その取得した使用状況信号18をFPGA11A及び11Bに供給する。
バックプレーンコネクタ14は、第1ボード10を特定するボード特定信号19を取得し、その取得したボード特定信号19をFPGA11A及び11Bに供給する。ボード特定信号19は、FPGA11A及び11Bが、自回路を搭載したボードを特定するために用いられる。
LVDSコネクタ15は、第2ボード20が含むLVDSコネクタ25と、第3ボード30が含むLVDSコネクタ35と接続される。これにより、FPGA11A及び11Bは、第2ボード20及び第3ボード30の各々に搭載されたFPGAと通信できる。
LAN通信部16は、FPGA11A及び11Bの各々から出力されたデータを、TCP/IP(Transmission Control Protocol/ Internet Protocol)を用いて中継装置4に送信する。LAN通信部16は、TCP/IPを用いて中継装置4からデータを受信し、その受信したデータをFPGA11A又は11Bに供給する。
{1.4.第2ボード20の構成}
図2を参照して、第2ボード20は、FPGA21A及び21Bと、ソケット22A及び22Bと、セレクタ23と、バックプレーンコネクタ24と、LVDSコネクタ25と、LAN通信部26とを含む。
FPGA21A及び21Bは、第1ボード10が含むFPGA11A及び11Bに対応する。ソケット22A及び22Bは、第1ボード10が含むソケット12A及び12Bに対応する。セレクタ23は、第1ボード10が含むセレクタ13に対応する。セレクト信号23A及び23Bは、セレクタ13が出力するセレクト信号13A及び13Bに対応する。バックプレーンコネクタ24は、第1ボード10が含むバックプレーンコネクタ14に対応する。ボード特定信号29は、バックプレーンコネクタ14が取得するボード特定信号19に対応する。LVDSコネクタ25及びLAN通信部26は、第1ボード10が含むLVDSコネクタ15及びLAN通信部16に対応する。従って、第2ボード20が含む構成要素の各々の説明を省略する。
{1.5.第3ボード30の構成}
図2を参照して、第3ボード30は、FPGA31A及び31Bと、ソケット32A及び32Bと、セレクタ33と、バックプレーンコネクタ34と、LVDSコネクタ35と、LAN通信部36とを含む。第3ボード30において、FPGA31A及び31Bを除く構成要素間の配線は、第3ボード30上に実装されている。
FPGA31A及び31Bは、第1ボード10が含むFPGA11A及び11Bに対応する。ソケット32A及び32Bは、第1ボード10が含むソケット12A及び12Bに対応する。セレクタ33は、第1ボード10が含むセレクタ13に対応する。セレクト信号33A及び33Bは、セレクタ13が出力するセレクト信号13A及び13Bに対応する。バックプレーンコネクタ34は、第1ボード10が含むバックプレーンコネクタ14に対応する。ボード特定信号39は、バックプレーンコネクタ14が取得するボード特定信号19に対応する。LVDSコネクタ35及びLAN通信部36は、第1ボード10が含むLVDSコネクタ15及びLAN通信部16に対応する。従って、第3ボード30が含む構成要素の各々の説明を省略する。
{1.6.FPGA11Aの構成}
図3は、図2に示すFPGA11Aの構成を示す機能ブロック図である。FPGA11Aは、使用状況信号取得部111と、ボード特定信号取得部112と、搭載数特定部113と、識別コード決定部114と、判断部115と、受信部116と、配列データ生成部117と、送信部118とを含む。
使用状況信号取得部111は、使用状況信号18をバックプレーンコネクタ14から取得する。使用状況信号18は、第1ボード10〜第3ボード30の各々の使用状況を示す。使用状況信号取得部111は、取得した使用状況信号18を搭載数特定部113に出力する。
ボード特定信号取得部112は、ボード特定信号19をバックプレーンコネクタ14から取得する。ボード特定信号19は、自回路(FPGA11A)が搭載された第1ボード10を特定する。ボード特定信号取得部112は、取得したボード特定信号19を識別コード決定部114に出力する。
搭載数特定部113は、使用状況信号取得部111から受けた使用状況信号18に基づいて、情報処理装置1が備えるFPGAの数を特定する。搭載数特定部113は、特定したFPGAの数を判断部115に出力する。
識別コード決定部114は、ボード特定信号取得部112から受けたボード特定信号19と、セレクタ13から受けたセレクト信号13Aとに基づいて、自回路(FPGA11A)の識別コードを決定する。識別コード決定部114は、決定したFPGA11Aの識別コードを配列データ生成部117に出力する。FPGAの識別コードを設置場所に応じて変更できるため、情報処理装置1が備えるFPGAの数を変更した場合や、FPGAの設置場所を変更した場合等に、FPGAの設定を簡略化できる。
判断部115は、搭載数特定部113から受けたFPGAの数と、受信部116から受けたコード配列データ52〜56に基づいて、情報処理装置1に搭載されたFPGAが互いに通信可能であるか否かを判断する。判断部115は、その判断結果をLAN通信部16及び中継装置4を介してユーザ端末3に送信する。
コード配列データ51〜56は、FPGA11A、11B、21A、21B、31A及び31Bの各々の識別コードが少なくとも1つを含む。コード配列データ51は、FPGA11Aから送信される。コード配列データ52は、FPGA11Bから送信される。コード配列データ53は、FPGA21Aから送信される。コード配列データ54は、FPGA21Bから送信される。コード配列データ55は、FPGA31Aから送信される。コード配列データ56は、FPGA31Bから送信される。従って、判断部115は、コード配列データを参照することによって、情報処理装置1が備える集積回路が互いに通信できるか否かを容易に判断できる。以下、コード配列データ51〜56を総称して、「コード配列データ50」と記載する場合がある。
受信部116は、コード配列データ53〜56を、LVDSコネクタ15を介してFPGA21A、21B、31A及び31Bから受ける。受信部116は、コード配列データ52をFPGA11Bから受ける。つまり、受信部116は、自回路(FPGA11A)を除くFPGAからコード配列データを受ける。受信部116は、その受けたコード配列データを判断部115及び配列データ生成部117に出力する。
配列データ生成部117は、受信部116から受けたコード配列データ50の各々の先頭に、FPGA11Aの識別コードを付加して、送信用のコード配列データ51を生成する。配列データ生成部117は、生成した送信用のコード配列データ51を送信部118に出力する。
送信部118は、配列データ生成部117から受けた送信用のコード配列データ51を、LVDSコネクタ15を介してFPGA21A、21B、31A及び31Bに送信する。送信部118は、送信用のコード配列データ51をFPGA11Bに送信し、送信用のコード配列データ51を判断部115に出力する。
FPGA11A、21A、21B、31A及び31Bの構成は、FPGA11Aと同じであるため、その詳細な説明を省略する。ただし、FPGA21A及び21Bに含まれる識別コード決定部114は、第2ボード20を示すボード特定信号29を取得する。FPGA31A及び31Bに含まれる識別コード決定部114は、第3ボード30を示すボード特定信号39を取得する。また、FPGA11B、21A、21B、31A及び31Bの各々に搭載される識別コード決定部は、セレクト信号13B、23A、23B、33A及び33B(図2参照)を取得する。
{2.FPGAの動作}
{2.1.動作概略}
図4は、図2に示す各FPGAの動作を示すフローチャートである。FPGA11A、11B、21A、21B、31A及び31Bの各々は、図4に示す処理を実行して、情報処理装置1が備えるFPGAの数を特定し、自回路以外のFPGAと通信できるか否かを判断する。
FPGA11A、11B、21A、21B、31A及び31Bの各々は、電源がオンされた場合、図4に示す処理を開始する。以下、FPGA11Aを例にして、情報処理装置1が備えるFPGAの動作を説明する。
図4を参照して、FPGA11Aは、使用状況信号18に基づいて、第1ボード10〜第3ボード30の使用状況を特定する(ステップS1)。FPGA11Aは、ステップS1で特定されたボードの使用状況に基づいて、情報処理装置1が備えるFPGAの数を特定する(ステップS2)。
FPGA11Aは、自回路(FPGA11A)が搭載されているボードを特定し(ステップS3)、自回路(FPGA11A)が固定されているソケットを特定する(ステップS4)。FPGA11Aは、ステップS3及びS4の結果に基づいて、FPGA11Aの識別コードを決定する(ステップS5)。FPGA11Aは、ステップS5で決定された識別コードを用いてコード配列データ51を生成し、生成したコード配列データ51を自回路以外のFPGAに送信する(ステップS6)。
FPGA11Aは、コード配列データ51の送信を所定時間の経過後に停止し、各FPGAの動作判断を実行する(ステップS7)。ステップS7では、FPGA11Aは、情報処理装置1が備えるFPGAが互いに通信できるか否かが判断される。ステップS7では、FPGA11Aは、自回路が通信可能か否かも判断する。
このように、情報処理装置1が備える各FPGAは、各ボードの使用状況を示す使用状況信号18を用いて、情報処理装置1が備えるFPGAの数を取得できる(ステップS2)。また、各FPGAは、自回路が固定されたソケット及び自回路が搭載されたボードに応じて識別コードを決定する(ステップS5)。各FPGAは、設置場所が変更された場合、変更された設置場所に応じて識別コードを変更できる。従って、情報処理装置1に搭載されるFPGAの数を変更した場合や、FPGAの設置場所を変更した場合等に、FPGAの設定を簡略化できる。
{2.2.ボードの使用状況の特定(ステップS1)}
ステップS1の説明にあたり、第1ボード10〜第3ボード30の各々におけるFPGAの搭載状況を以下のように仮定する。すなわち、第1ボード10〜第3ボード30の各々が情報処理装置1のスロットに挿入される場合、これらのボードの各々は、2つのFPGAを搭載する。例えば、第1ボード10が第1スロットに挿入される場合、空きソケットは第1ボード10に存在せず、第1ボード10は、FPGA11A及び11Bを備える。第2ボード20及び第3ボード30についても同様である。
ステップS1で用いられる使用状況信号18は、各ボードが備えるバックプレーンコネクタに入力される。第1ボード10〜第3ボード30に搭載されたFPGAの各々は、使用状況信号18を取得し、その取得した使用状況信号18に基づいて、各ボードの使用状況を特定する(ステップS1)。以下、バックプレーンコネクタ及び使用状況信号18を詳しく説明する。
(バックプレーンコネクタの接続)
図5は、バックプレーンコネクタ14、24及び34の各々の接続の一例を示す図である。図5において、第1ボード10〜第3ボード30が備えるスロットの表示を省略している。図5を参照して、バックプレーンコネクタ14は、端子141〜146を含む。
端子141は、使用状況信号18の生成に用いられる。端子141は、第1ボード10が第1スロットに挿入された場合に配線611に接続される。
端子142〜144は、使用状況信号18の入力端子である。使用状況信号18は、個別使用状況信号181〜183を含む。端子142は、第1ボード10の使用状況を示す個別使用状況信号181を受ける。端子143は、第2ボード20の使用状況を示す個別使用状況信号182を受ける。端子144は、第3ボード30の使用状況を示す個別使用状況信号183を受ける。
端子145〜146は、ボード特定信号19の入力端子である。
第2ボード20のバックプレーンコネクタ24は、端子241〜246を備える。端子241〜246は、バックプレーンコネクタ14の端子141〜146に対応する。第3ボード30のバックプレーンコネクタ34は、端子341〜346を備える。端子341〜346は、バックプレーンコネクタ14の端子141〜146に対応する。
(個別使用状況信号181)
個別使用状況信号181は、配線611の電圧に応じて変化する。配線611の一端は、プルアップ抵抗621を介して、情報処理装置1の電源に接続される。第1ボード10が使用されている場合、配線611の他端は、バックプレーンコネクタ14の端子141に接続される。第1ボード10が使用されていない場合、配線611の他端は、バックプレーンコネクタ14の端子141に接続しない。この結果、配線611の電圧は、ハイに変化する。第1ボード10が使用されていないとは、第1ボード10が第1スロットに挿入されていない状態を示す。
第1ボード10が使用されていない場合、第2ボード20のFPGA21A及び21Bは、バックプレーンコネクタ24の端子242を介して、電圧がハイである個別使用状況信号181を受ける。端子242が、配線611に接続されているためである。FPGA21A及び21Bは、電圧がハイである個別使用状況信号181に基づいて、第1ボード10が使用されていないと判断する。同様に、第3ボード30のFPGA31A及び31Bは、バックプレーンコネクタ34の端子342を介して、電圧がハイである個別使用状況信号181を受ける。FPGA31A及び31Bは、電圧がハイである個別使用状況信号181に基づいて、第1ボード10が使用されていないと判断する。
第1ボード10が使用中である場合、配線611は、バックプレーンコネクタ14の端子141に接続される。端子141は、第1ボード10が使用中であるか否かに関係なく、第1ボード10の内部において接地されている。従って、第1ボード10が使用されている場合、配線611の電圧は、ローである。この場合、第2ボード20のFPGA21A及び21Bは、バックプレーンコネクタ24の端子242を介して、電圧がローである個別使用状況信号181を受ける。第3ボード30のFPGA31A及び31Bは、バックプレーンコネクタ34の端子342を介して、電圧がローである個別使用状況信号181を受ける。FPGA21A、21B、31A及び31Bは、電圧がローである個別使用状況信号181に基づいて、第1ボード10が使用中であると判断する。
同様に、第1ボード10のFPGA11A及び11Bは、バックプレーンコネクタ14の端子142に入力された個別使用状況信号181の電圧がローであるため、第1ボード10が使用中であると判断する。
(個別使用状況信号182)
個別使用状況信号182は、配線612の電圧に応じて変化する。配線612の一端は、プルアップ抵抗622を介して、情報処理装置1の電源に接続される。
第2ボード20が使用されている場合、配線612の他端は、バックプレーンコネクタ24の端子241に接続される。第2ボード20が使用されていない場合、配線612の他端は、バックプレーンコネクタ24の端子241に接続されない。配線612の電圧は、情報処理装置1の電源からの電圧によりハイに変化する。つまり、第2ボード20が使用されていない場合、個別使用状況信号182は、ハイである。
一方、第2ボード20が使用中である場合、配線612は、バックプレーンコネクタ24の端子241に接続される。端子241が第2ボード20の内部で接地されているため、配線612の電圧がローに変化する。つまり、第2ボード20が使用されている場合、個別使用状況信号182は、ローである。
個別使用状況信号182は、端子143、243及び343に入力される。FPGA11A、11B、21A、21B、31A及び31Bは、入力された個別使用状況信号182の電圧に基づいて、第2ボード20の使用状況を判断する。
(個別使用状況信号183)
個別使用状況信号183は、配線613の電圧に応じて変化する。配線613の一端は、プルアップ抵抗623を介して、情報処理装置1の電源に接続される。
第3ボードが使用されている場合、配線613の他端は、バックプレーンコネクタ34の端子341に接続される。第3ボード30が使用されていない場合、配線613の他端は、バックプレーンコネクタ34の端子341に接続されない。配線613の電圧は、情報処理装置1の電源からの電圧によりハイに変化する。つまり、第3ボード30が使用されていない場合、個別使用状況信号183は、ハイとなる。
一方、第3ボード30が使用中である場合、配線613は、バックプレーンコネクタ34の端子341に接続される。端子341が第3ボード30の内部で接地されているため、配線613の電圧は、ローに変化する。つまり、第3ボード30が使用されている場合、個別使用状況信号183は、ローとなる。
個別使用状況信号183は、端子144、244及び344に入力される。FPGA11A、11B、21A、21B、31A及び31Bは、入力された個別使用状況信号183の電圧に基づいて、第3ボード30の使用状況を判断する。
このように、第1ボード10〜第3ボード30の各々に搭載されたFPGAは、個別使用状況信号181〜183に基づいて、各ボードの使用状況を把握することができる。
{2.3.搭載数の決定(ステップS2))}
上述のように、FPGA11A、11B、21A、21B、31A及び31Bの各々は、使用状況信号18に基づいて情報処理装置1が備えるFPGAの数を判断する(ステップS2)。以下、FPGA11Aを例にして、ステップS2を詳しく説明する。
FPGA11Aにおいて、使用状況信号取得部111が、個別使用状況信号181〜183を取得し、その取得した個別使用状況信号181〜183を搭載数特定部113に出力する。搭載数特定部113は、個別使用状況信号181〜183のうち、電圧がローである信号の数を特定する。搭載数特定部113は、電圧がローである信号の数に基づいて、情報処理装置1が備えるFPGAの数を特定する。
例えば、第1ボード10〜第3ボード30の全てが使用中である場合、個別使用状況信号181〜183の全てがローである。上述のように、使用中のボードが2つのFPGAを搭載するため、搭載数特定部113は、情報処理装置1が備えるFPGAの数が6であると判断する。
本実施の形態では、第1ボード10〜第3ボード30が使用される場合、第1ボード10〜第3ボード30が搭載する集積回路の数は等しい。従って、個別使用状況信号181がローである場合、個別使用状況信号181は、第1ボード10が使用されていることを示す情報と、第1ボード10に搭載されたFPGAの数であることを示す情報とを含む。
個別使用状況信号181〜182がローであり、個別使用状況信号183がハイである場合、使用中であるボードの数は2である。この場合、搭載数特定部113は、情報処理装置1が備えるFPGAの数が4であると判断する。
個別使用状況信号181がローであり、個別使用状況信号182〜183がハイである場合、使用中のボードの数は1である。この場合、搭載数特定部113は、情報処理装置1が備えるFPGAの数が2であると判断する。
{2.4.搭載ボードの特定(ステップS3)}
FPGA11A、11B、21A、21B、31A及び31Bの各々は、自回路が搭載されたボードをボード特定信号に基づいて特定する(図4に示すステップS3)。
(FPGA11A及び11Bによる搭載ボードの特定)
FPGA11A及び11Bは、ボード特定信号19に基づいて、自回路が第1ボード10に搭載されていると判断する。図5を参照して、ボード特定信号19は、端子145及び146の電圧により表される。端子145の電圧が、ボード特定信号19の第1電圧であり、端子146の電圧が、ボード特定信号19の第2電圧である。第1ボード10〜第3ボード30の各々を特定する第1電圧及び第2電圧の組み合わせは、各FPGAに設定されている。
端子145は、第1ボード10の内部で、プルアップ抵抗191を介して、第1ボード10の電源に接続される。端子146は、第1ボード10の内部で、プルアップ抵抗192を介して、第1ボード10の電源に接続される。第1ボード10がスロットに挿入されている場合、端子145及び146は、第1ボード10の外で開放される。この結果、ボード特定信号19の第1電圧(端子145の電圧)と第2電圧(端子146の電圧)は、ハイとなる。
ボード特定信号19の第1電圧及び第2電圧がハイであるため、FPGA11A及び11Bは、第1ボード10に搭載されていると判断する。
(FPGA21A及び21Bによる第2ボード20の特定)
FPGA21A及び21Bは、ボード特定信号29に基づいて、自回路が第2ボード20に搭載されていると判断する。ボード特定信号29は、端子245及び246の電圧により表される。端子245の電圧が、ボード特定信号29の第1電圧であり、端子246の電圧が、ボード特定信号29の第2電圧である。
端子245は、第2ボード20の内部でプルアップ抵抗291を介して、第2ボード20の電源に接続される。端子246は、第2ボード20の内部でプルアップ抵抗292を介して、第2ボード20の電源に接続される。第2ボード20がスロットに挿入されている場合、端子245は、第2ボード20の外で開放され、端子246は、第2ボード20の外で接地される。この結果、ボード特定信号29の第1電圧(端子245の電圧)ハイとなり、ボード特定信号29の第2電圧(端子246の電圧)は、ローとなる。
ボード特定信号29の第1電圧がハイであり第2電圧がローであるため、FPGA21A及び21Bは、第2ボード20に搭載されていると判断する。
(FPGA31A及び31Bによる第3ボード30の特定)
FPGA31A及び31Bは、第3ボード30を特定するボード特定信号39に基づいて、自回路が第3ボード30に搭載されていると判断する。ボード特定信号39は、端子345及び346の電圧により表される。端子345の電圧が、ボード特定信号39の第1電圧であり、端子346の電圧が、ボード特定信号39の第2電圧である。
端子345は、第3ボード30の内部でプルアップ抵抗391を介して、第3ボード30の電源に接続されている。端子346は、第3ボード30の内部でプルアップ抵抗392を介して、第3ボード30の電源に接続される。第3ボード30がスロットに挿入されている場合、端子345は、第3ボード30の外で接地され、端子346は、第3ボード30の外で開放される。ボード特定信号39の第1電圧(端子345の電圧)がローとなり、ボード特定信号39の第2電圧(端子346の電圧)がハイとなる。
ボード特定信号39の第1電圧がローであり第2電圧がハイであるため、FPGA31A及び31Bは、第3ボード30に搭載されていると判断する。
{2.5.ソケットの特定(ステップS4)}
図2を参照して、第1ボード10において、セレクタ13は、FPGA11Aにセレクト信号13Aを出力し、FPGA11Bにセレクト信号13Bを出力する。セレクト信号13Aがローであり、セレクト信号13Bがハイである。FPGA11Aは、セレクタ13から受けたセレクト信号13Aに基づいて、自回路(FPGA11A)がソケット12Aで固定されていると判断する。FPGA11Bは、セレクタ13から受けたセレクト信号13Bに基づいて、自回路(FPGA11B)がソケット12Bで固定されていると判断する。
第2ボード20において、セレクタ23は、FPGA21Aにセレクト信号23Aを出力し、FPGA21Bにセレクト信号23Bを出力する。セレクト信号23Aがローであり、セレクト信号23Bがハイである。FPGA21Aは、セレクタ23から受けたセレクト信号23Aに基づいて、自回路(FPGA21A)がソケット22Aで固定されていると判断する。FPGA21Bは、セレクタ23から出力されたセレクト信号23Bに基づいて、自回路(FPGA21B)がソケット22Bで固定されていると判断する。
第3ボード30において、セレクタ33は、FPGA31Aにセレクト信号33Aを出力し、FPGA31Bにセレクト信号33Bを出力する。セレクト信号33Aがローであり、セレクト信号33Bがハイである。FPGA31Aは、セレクタ33から受けたセレクト信号33Aに基づいて、自回路(FPGA31A)がソケット32Aで固定されていると判断する。FPGA31Bは、セレクタ33から出力されたセレクト信号33Bに基づいて、自回路(FPGA31B)がソケット32Bで固定されていると判断する。
{2.6.識別コードの決定(ステップS5)}
FPGA11A、11B、21A、21B、31A及び31Bの各々は、ステップS3で特定されたボードとステップS4で特定されたソケットとに基づいて、識別コードを決定する(ステップS5)。以下、FPGA11Aを例にして、ステップS5を説明する。
FPGA11Aにおいて、識別コード決定部114は、自回路(FPGA11A)が搭載されたボード及び自回路(FPGA11A)が固定されたソケットを識別コードに対応付けた2次元テーブル(図示省略)を予め保持している。FPGA11Aは、自回路が第1ボード10に搭載されていると判断し(ステップS3)、自回路がソケット12Aに挿入されていると判断している(ステップS4)。識別コード決定部114は、2次元テーブルを参照して、ステップS3及びS4の結果に対応する識別コードを、自回路(FPGA11A)の識別コードに決定する。
FPGA11A以外のFPGAは、FPGA11Aが保持する2次元テーブルと同じテーブルを保持している。このため、FPGA11A以外のFPGAは、FPGA11Aと同様に、自回路の識別コードを決定する(ステップS5)。
以下の説明では、各FPGAの識別コードが下記の場合である例を説明する。識別コードを10進数表記で表現した場合、FPGA11A及び11Bの識別コードが11及び22である。FPGA21A及び21Bの識別コードが33及び44である。FPGA31A及び31Bの識別コードが55及び66である。識別コードのデータ長は、10進数表記の場合、2に固定される。
{2.7.コード配列データの送信(ステップS6)}
図4を参照して、第1ボード10〜第3ボード30に搭載された一のFPGAは、ステップS5の後に、コード配列データ50を他のFPGAに送信する(ステップS6)。以下、FPGA11Aを例にして、ステップS6を説明する。
図6は、図4に示すコード配列データ送信処理(ステップS6)のフローチャートである。図6を参照して、FPGA11Aの配列データ生成部117は、今回のコード配列データ51の送信が1回目の送信であるか否かを判断する(ステップS601)。
コード配列データ51の送信が1回目の送信である場合(ステップS601においてYes)、配列データ生成部117は、自回路(FPGA11A)の識別コード「11」を送信用のコード配列データ51として生成する(ステップS602)。
一方、コード配列データ51の送信が2回目の以降の送信である場合(ステップS601においてNo)、配列データ生成部117は、ステップS603に進む。配列データ生成部117は、前回のコード配列データ51の送信時刻から予め設定された待機時間を経過するまで(ステップS603においてYes)、待機する。
待機時間の経過後(ステップS603においてYes)、配列データ生成部117は、受信部116がコード配列データ50を他のFPGAから受信していたか否かを判断する(ステップS604)。受信部116がコード配列データ50を受信していない場合(ステップS604においてNo)、配列データ生成部117は、ステップS603に戻る。
受信部116がコード配列データ50を受信していた場合(ステップS604においてYes)、配列データ生成部117は、受信したコード配列データ50が自回路(FPGA11A)の識別コードを含むか否かを判断する(ステップS605)。具体的には、配列データ生成部117は、受信したコード配列データ50を識別コードのデータ長で区分し、区分されたデータの中で自回路(FPGA11A)の識別コード「11」に一致するデータがあるか否かを判断する。
受信したコード配列データ50が自回路の識別コードを含まない場合(ステップS605においてNo)、配列データ生成部117は、自回路の識別コードを、受信したコード配列データ50の先頭に付加する(ステップS607)。これにより、送信用のコード配列データ51が生成される。
例えば、受信したコード配列データ50が「332244」である場合、このコード配列データ50は、FPGA11Aの識別コード「11」を含まない。配列データ生成部117は、コード配列データ50「332244」の先頭にFPGA11の識別コード「11」を付加して、送信用のコード配列データ51を生成する。この場合、生成されたコード配列データ51は、「11332244」である。
一方、受信したコード配列データ50が自回路の識別コードを含む場合(ステップS605においてYes)、配列データ生成部117は、受信したコード配列データ50に含まれる自回路の識別コードを先頭に移動させる(ステップS606)。
例えば、受信したコード配列データ50が「441133」である場合、このコード配列データ50は、自回路(FPGA11A)の識別コード「11」を含む。配列データ生成部117は、受信したコード配列データ50に含まれる識別コード「11」を先頭に移動させて、送信用のコード配列データ51を生成する。つまり、配列データ生成部117は、受信したコード配列データ50を、「441133」から「114433」に変化させる。これにより、コード配列データ50のデータ長を抑制できるため、FPGA11Aの処理負荷を低減させることができる。
送信部118は、ステップS602、S606及びS607のいずれかで生成された送信用のコード配列データ51を配列データ生成部117から受ける。送信部118は、その受けたコード配列データ51を、他のFPGAに送信する(ステップS608)。また、送信部118は、ステップS608の実行時に、ステップS602で生成されたコード配列データ51を判断部115に出力する。
ステップS608の後で、配列データ生成部117は、1回目のコード配列データ51の送信から所定時間を経過したか否かを判断する(ステップS609)。所定時間の長さは、全てのFPGAの識別コードを含むコード配列データ50を取得できる時間であれば、特に限定されない。例えば、情報処理装置1が備えるFPGAの数が6である場合、所定時間を、ステップS603に示す待機時間の6倍に設定することができる。また、1回目のコード配列データの1回目の送信時刻が、FPGA間でばらつくことを想定して、所定時間を、ステップS603に示す待機時間の6倍以上に設定してもよい。
1回目のコード配列データ50の送信から所定時間を経過した場合(ステップS609においてYes)、配列データ生成部117は、図6に示す処理を終了する。その後、判断部115が、情報処理装置1が備えるFPGAが正常に動作しているか否かを判断する(図4に示すステップS7)。
一方、1回目のコード配列データ50の送信から所定時間を経過していない場合(ステップS609においてNo)、配列データ生成部117は、全てのFPGAの識別コードを含むコード配列データ50を取得するために、ステップS603に戻る。
{2.8.コード配列データ50の変化}
図7は、情報処理装置1が3台のFPGAを備える場合における、コード配列データ50の変化の一例を示す図である。図7において、3台のFPGAは、具体的には、FPGA11A、21A、31Aである。図7を用いた説明では、第1ボード10〜第3ボード30の各々は、2つのFPGAを搭載しなくてもよく、1つのFPGAを搭載できると仮定する。
説明を簡略化するために、FPGA11A、21A、31Aがコード配列データ50を送信するタイミングが同じであると仮定する。
図7を参照して、FPGA11A、21A、31Aの各々は、1回目のコード配列データ50の送信において、「11」、「33」、「55」を送信する。図7における「1回目の受信」に示すように、FPGA21Aは、コード配列データ50として、「11」及び「55」を受信する。
FPGA21Aは、1回目に受信したコード配列データ50がFPGA21Aの識別コード「33」を含まないと判断する(ステップS605においてNo)。FPGA21Aは、1回目に受信したコード配列データ50の先頭にFPGA21Aの識別コード「33」を付加して、送信用のコード配列データ52を生成する(ステップS607)。この結果、FPGA21Aは、図7における「2回目送信」に示すように、「3311」及び「3355」をコード配列データ53としてFPGA11A及び31Aに送信する。
図7の「2回目送信」に示すように、FPGA11Aは、「1133」及び「1155」をコード配列データ51としてFPGA21A及び31Aに送信する。FPGA31Aは、「5511」及び「5533」をコード配列データ55としてFPGA11A及び21Aに送信する。
この結果、図7の「2回目受信」に示すように、FPGA21Aは、「1133」、「1155」、「5511」及び「5533」をコード配列データ50として受信する。
FPGA21Aは、2回目に受信したコード配列データ50のうち、FPGA21Aの識別コードを含む「1133」及び「5533」を特定する。FPGA21Aは、特定したコード配列データ50(「1133」及び「5533」)に含まれるFPGA21Aの識別コードを先頭に移動させる(ステップS606)。FPGA21Aが2回目に受信したコード配列データ50は、「1133」及び「5533」から「3311」及び「3355」に変化する。
FPGA21Aは、2回目に受信したコード配列データ50のうち、FPGA21Aの識別コードを含まない「1155」及び「5511」を特定する。FPGA21Aは、特定したコード配列データ50(「1155」及び「5511」)の先頭に、FPGA21Aの識別コードを付加する(ステップS607)。FPGA21Aが2回目に受信したコード配列データ50は、「1155」及び「5511」から「331155」及び「335511」に変化する。
この結果、図7の「3回目送信」に示すように、FPGA21Aが3回目に送信するコード配列データ50は、「3311」、「331155」、「3355」及び「335511」である。FPGA11Aが3回目に送信するコード配列データ51は、「1133」、「113355」、「1155」及び「115533」である。FPGA31Aが2回目に送信するコード配列データ55は、「551133」、「5511」、「553311」及び「5533」である。
FPGA11A、21A、31Aは、3回目に受信したコード配列データ50を用いて、4回目のコード配列データ50の送信を行う。FPGA21Aが4回目に送信するコード配列データ50は、FPGA21Aが3回目に送信するコード配列データと同じである。FPGA11A及び31Aも同様である。以上のことから、情報処理装置1が3台のFPGAを備える場合、コード配列データ50の送信を3回以上繰り返すことにより、搭載する全てのFPGAの識別コードを含むコード配列データ50を生成できる。
{2.9.コード配列データの送信経路}
図8は、図2に示すFPGAの各々から出力されるコード配列データ50の送信経路を示す図である。図8に示すように、情報処理装置1が備えるFPGAのうち、任意の2つのFPGAは、他のFPGAを介することなく、コード配列データ50を直接送受信できる。これにより、情報処理装置1が備える一のFPGAは、送信異常又は受信異常が他のFPGAで発生しているか否かを判断できる。
以下、FPGA11A、11B、21A、21B、31A及び31Bの各々から送信されるコード配列データ50の送信経路を説明する。
(コード配列データ51)
コード配列データ51は、FPGAを経由することなく、FPGA11AからFPGA11B、21A、21B、31A及び31Bの各々に送信される。
第1ボード10の分岐部171は、FPGA11Aからコード配列データ51を受け、その受けたコード配列データ51を2つに分岐する。分岐部171は、分岐された一方のコード配列データ51をFPGA11Bに送信する。分岐部171は、分岐された他方のコード配列データ51を、送信コネクタ152と受信コネクタ251を介して、第2ボード20の分岐部275に送信する。
分岐部275は、分岐部171から受けたコード配列データ51を3つに分岐する。分岐部275は、3つに分岐されたコード配列データ51の各々を、FPGA21Aと、FPGA21Bと、第3ボード30の分岐部373に送信する。分岐部373に送信されるコード配列データ51は、送信コネクタ252及び受信コネクタ351を経由する。
分岐部373は、分岐部275から受けたコード配列データ51を2つに分岐する。分岐部373は、分岐された一方のコード配列データ51をFPGA31Aに送信し、分岐された他方のコード配列データ51をFPGA31Bに送信する。
(コード配列データ52)
コード配列データ52は、FPGAを経由することなく、FPGA11Bから、FPGA11A、21A、21B、31A及び31Bの各々に送信される。
第1ボード10の分岐部172は、FPGA11Bからコード配列データ52を受け、その受けたコード配列データ52を2つに分岐する。分岐部172は、分岐された一方のコード配列データ52をFPGA11Aに送信する。分岐部172は、分岐された他方のコード配列データ52を、送信コネクタ152と受信コネクタ251を介して、第2ボード20の分岐部276に送信する。
分岐部276は、分岐部172から受けたコード配列データ52を3つに分岐する。分岐部276は、3つに分岐されたコード配列データ52の各々を、FPGA21Aと、FPGA21Bと、第3ボード30の分岐部374とに送信する。分岐部374に送信されるコード配列データ52は、送信コネクタ252及び受信コネクタ351を経由する。
分岐部374は、分岐部277から受けたコード配列データ52を2つに分岐する。分岐部374は、分岐された一方のコード配列データ52をFPGA31Aに送信し、分岐された他方のコード配列データ52をFPGA31Bに送信する。
(コード配列データ53)
コード配列データ53は、FPGAを経由することなく、FPGA21Aから、FPGA11A、11B、21B、31A及び31Bの各々に送信される。
第2ボード20の分岐部271は、FPGA21Aからコード配列データ53を受け、その受けたコード配列データ53を2つに分岐する。分岐部271は、分岐された一方のコード配列データ53をFPGA21Bに送信する。分岐部271は、分岐された他方のコード配列データ53を、送信コネクタ252と受信コネクタ351を介して、第3ボード30の分岐部375に送信する。
分岐部375は、分岐部271から受けたコード配列データ53を3つに分岐する。分岐部375は、分岐された3つのコード配列データ53の各々を、FPGA31Aと、FPGA31Bと、第1ボード10の分岐部173とに送信する。分岐部173に送信されるコード配列データ53は、送信コネクタ352及び受信コネクタ151を経由する。
分岐部173は、コード配列データ53を分岐部375から受け、その受けたコード配列データ53を2つに分岐する。分岐部173は、分岐された一方のコード配列データ53をFPGA11Aに送信し、分岐された他方のコード配列データ53をFPGA11Bに送信する。
(コード配列データ54)
コード配列データ54は、FPGAを経由することなく、FPGA21Bから、FPGA11A、11B、21A、31A及び31Bの各々に送信される。
第2ボード20の分岐部272は、FPGA21Bからコード配列データ54を受け、その受けたコード配列データ54を2つに分岐する。分岐部272は、分岐された一方のコード配列データ54をFPGA21Aに送信する。分岐部272は、分岐された他方のコード配列データ54を、送信コネクタ252と受信コネクタ351を介して、第3ボード30の分岐部376に送信する。
分岐部376は、分岐部272から受けたコード配列データ54を3つに分岐する。分岐部376は、3つに分岐されたコード配列データ54の各々を、FPGA31Aと、FPGA31Bと、第1ボード10の分岐部174に送信する。分岐部174に送信されるコード配列データ54は、送信コネクタ352及び受信コネクタ151を経由する。
分岐部174は、分岐部376から受けたコード配列データ54を2つに分岐する。分岐部174は、分岐された一方のコード配列データ54をFPGA11Aに送信し、分岐された他方のコード配列データ54をFPGA11Bに送信する。
(コード配列データ55)
コード配列データ55は、FPGAを経由することなく、FPGA31Aから、FPGA11A、11B、21A、21B及び31Bの各々に送信される。
第3ボード30の分岐部371は、FPGA31Aからコード配列データ55を受け、その受けたコード配列データ55を2つに分岐する。分岐部371は、分岐された一方のコード配列データ55をFPGA31Bに送信する。分岐部371は、分岐された他方のコード配列データ55を、送信コネクタ352と受信コネクタ151を介して、第1ボード10の分岐部175に送信する。
分岐部175は、分岐部371から受けたコード配列データ55を3つに分岐する。分岐部175は、3つに分岐されたコード配列データ55の各々を、FPGA11Aと、FPGA11Bと、第2ボード20の分岐部273に送信する。分岐部273に送信されるコード配列データ55は、送信コネクタ152及び受信コネクタ251を経由する。
分岐部273は、分岐部175から受けたコード配列データ55を2つに分岐する。分岐部273は、分岐された一方のコード配列データ55をFPGA21Aに送信し、分岐された他方のコード配列データ55をFPGA21Bに送信する。
(コード配列データ56)
コード配列データ56は、FPGAを経由することなく、FPGA31Bから、FPGA11A、11B、21A、21B及び31Aの各々に送信される。
第3ボード30の分岐部372は、FPGA31Bからコード配列データ56を受け、その受けたコード配列データ56を2つに分岐する。分岐部372は、分岐された一方のコード配列データ56をFPGA31Aに送信する。分岐部372は、分岐された他方のコード配列データ56を、送信コネクタ352と受信コネクタ151を介して、第1ボード10の分岐部176に送信する。
分岐部176は、分岐部372から受けたコード配列データ56を3つに分岐する。分岐部176は、3つに分岐されたコード配列データ56の各々を、FPGA11Aと、FPGA11Bと、第2ボード20の分岐部274とに送信する。分岐部274に送信されるコード配列データは、送信コネクタ152及び受信コネクタ251を経由する。
分岐部274は、分岐部176から受けたコード配列データ56を2つに分岐する。分岐部274は、分岐された一方のコード配列データ56をFPGA21Aに送信し、分岐された他方のコード配列データ56をFPGA21Bに送信する。
{2.10.動作判断(ステップS7)}
情報処理装置1が備える一のFPGAは、他のFPGAから送信されたコード配列データ50を取得する。一のFPGAは、取得したコード配列データ50と、自回路が最後に送信したコード配列データ50とに基づいて、情報処理装置1が備えるFPGAの各々が正常に動作するか否かを判断する(図4に示すステップS7)。
図9は、図4に示す動作判断処理(ステップS7)のフローチャートである。情報処理装置1が備えるFPGAの各々は、図9に示す処理を実行する。以下、FPGA11Aを例にして、動作判断処理(ステップS7)を説明する。
図9を参照して、FPGA11Aの判断部115は、全てのFPGAからコード配列データ50を取得したか否かを判断する(ステップS701)。ステップS701において、全てのFPGAは、自回路を含む。具体的には、判断部115は、取得したコード配列データ50の先頭に位置する識別コードを抽出し、受信したコード配列データ50の送信元を抽出した識別コードに基づいて特定する。判断部115は、特定した送信元の数を、ステップS2で特定された搭載数と比較する。
特定した送信元の数が、ステップS2で特定された搭載数よりも少ない場合、判断部115は、コード配列データ50を全てのFPGAから受信できないと判断する(ステップS701においてNo)。判断部115は、送信異常が発生したFPGAがあると判断する(ステップS707)。すなわち、判断部115は、コード配列データ50を参照することにより、送信異常の発生を速やかに検出できる。
判断部115は、送信異常が発生したFPGAを特定する(ステップS708)。具体的には、判断部115は、使用状況信号18に基づいて、使用状況信号18に基づいて使用中のボードを特定し、特定したボードに搭載されたFPGAの識別コードを取得する。FPGAの識別コードの取得は、自回路(FPGA11A)の識別コードの決定(ステップS5)に用いられた2次元テーブルから取得する。
2次元テーブルから取得した識別コードが受信部116から受けたコード配列データ50の先頭に付加されていない場合、判断部115は、2次元テーブルから取得した識別コードを使用するFPGAで送信異常が発生していると判断する。
例えば、使用されるボードに2つのFPGAが搭載される運用が行われていると仮定する。この仮定において、第2ボード20が使用中である場合、判断部115は、2次元テーブルを参照して、第2ボード20に搭載されたFPGAが使用する2つの識別コード「33」及び「44」を決定する。判断部115は、第2ボード20が使用中であるにも関わらず、識別コード「33」が先頭に付加されたコード配列データ53を取得できていない場合、FPGA21Aで送信異常が発生していると判断する。
ステップS701の説明に戻る。特定した送信元の数が、ステップS2で特定された搭載数に一致する場合、判断部115は、コード配列データ50を全てのFPGAから受信したと判断する(ステップS701においてYes)。この場合、判断部115は、送信異常が発生したFPGAがないと判断し、ステップS702に進む。
判断部115は、受信したコード配列データ50の中から、最長のコード配列データを送信元ごとに特定する(ステップS702)。例えば、情報処理装置1におけるFPGAの搭載数が3である場合、判断部115は、コード長が6であるコード配列データ50を送信元ごとに特定する。
判断部115は、ステップS702で特定されたコード配列データ50に含まれる識別コードが一致するか否かを判断する(ステップS703)。
例えば、図7に示すように、異常がない3つのFPGA11A、21A及び31Aがコード配列データ50を送受信した場合、FPGA11Aの判断部115は、FPGA11Aが送信した最長のコード配列データ51として、「113355」及び「115533」を特定する。同様に、判断部115は、FPGA21Aが送信した最長のコード配列データ53として、「331155」及び「335511」を特定し、FPGA31Aが送信した最長のコード配列データ55として、「553311」及び「551133」を特定する。判断部115により特定された6つのコード配列データ50は、識別コード「11」、「33」及び「55」を含む。つまり、ステップS702で特定されたコード配列データ50に含まれる識別コードが全て一致する。
ステップS702で特定されたコード配列データ50に含まれる識別コードが一致する場合(ステップS703においてYes)、判断部115は、全てのFPGAが正常に動作していると判断する(ステップS704)。
ステップS702において、図7に示す3つのFPGA11A、21A及び31Aのうち、FPGA21Aが、FPGA31Aから送信されたコード配列データ55を受信できないと仮定する。この仮定の下では、FPGA21Aは、識別コード「55」が先頭に付加されたコード配列データ50を受信できない。つまり、FPGA11Aの判断部115は、FPGA21Aが送信した最長のコード配列データ53として、「3311」を特定する。また、判断部115は、FPGA11Aが送信した最長のコード配列データ51として、「113355」及び「115533」を特定し、FPGA31Aが送信した最長のコード配列データ55として、「553311」及び「551133」を特定する。
判断部115により特定された5つのコード配列データ50のうち、FPGA21Aから送信されたコード配列データ50(「3311」)は、FPGA31Aの識別コード「55」を含まない。ステップS702で特定されたコード配列データ50に含まれる識別コードが一致しないため(ステップS703においてNo)、判断部115は、受信異常のFPGAが存在すると判断する(ステップS705)。これにより、判断部115は、受信異常が発生した箇所を容易に特定できる。
判断部115は、ステップS702で特定されたコード配列データ50を用いて、受信異常が発生したFPGAを特定する(ステップS706)。上述のように、図7に示す3つのFPGA11A、21A及び31Aのうち、FPGA21Aが、FPGA31Aからコード配列データ50を受信できないと仮定する。この仮定の下では、FPGA21Aから送信されたコード配列データ50(「3311」)が、FPGA31Aの識別コードを含まない。一方、FPGA11A、31Aから送信されたコード配列データ(「113355」、「115533」、「551133」及び「553311」)は、FPGA31Aの識別コードを含む。
つまり、判断部115は、ステップS702で特定されたコード配列データ50から、最もデータ長の短いコード配列データ50に含まれない識別コードを抽出する。判断部115は、抽出されたコード配列データ50が包含しない識別コードを使用するFPGAで受信異常が発生していると判断する。
ステップS704、S706又はS708の後に、判断部115は、各FPGAについての判断結果をユーザ端末3に通知する(ステップS709)。具体的には、送信異常が検出された場合、判断部115は、送信異常が発生しているFPGAの識別コードをユーザ端末3に送信する。受信異常が検出された場合、判断部115は、受信異常が発生しているFPGAの識別コードをユーザ端末3に送信する。全てのFPGAで異常が発生していない場合、判断部115は、異常が発生していないことを示すメッセージをユーザ端末3に送信する。
FPGA11A、11B、21A、21B、31A及び31Bの各々がステップS7を実行する。従って、ユーザ端末3は、ステップS7の動作判断結果を各FPGAから受信する。ユーザ端末3は、各FPGAから受けた動作判断結果を図示しないモニタに表示する。オペレータは、ユーザ端末3の表示に基づいて、ECUの評価を開始するか、あるいは、情報処理装置1の設定を再確認する。
以上説明したように、本実施の形態に係る情報処理装置1において、FPGA11A、11B、21A、21B、31A、31Bの各々は、使用状況信号18に基づいて情報処理装置1が備えるFPGAの数を特定する。これにより、情報処理装置1が備えるFPGAは、通信すべきFPGAの数を容易に特定できる。また、FPGA11A、11B、21A、21B、31A、31Bの各々は、情報処理装置1が備えるFPGAが互いに通信できるか否かを判断する。これにより、ECU2の評価を開始する前に、情報処理装置1の異常を速やかに検出することができる。
上記実施の形態では、第1ボード10〜第3ボード30が搭載するFPGAの数が等しい例を説明したが、これに限られない。第1ボード10〜第3ボード30が搭載するFPGAの数は、等しくなくてもよい。例えば、第1ボード10が搭載するFPGAの数が1であり、第2ボード20及び第3ボード30が搭載するFPGAの数は、2であってもよい。この場合、各ボードは、各ボードに搭載されるFPGAの数に応じた個別使用状況信号を出力するようにすればよい。FPGAは、一の各ボードに搭載されているFPGAの数が1以上である場合、この一のボードが使用中であると判断できる。
また、情報処理装置1が、第1ボード10〜第3ボード30を備える例を説明したが、これに限られない。情報処理装置1は、少なくとも1つのボードを備えていればよい。また、各ボードは、少なくとも1つのFPGAを搭載可能であればよい。
上記実施の形態では、FPGAが、情報処理装置1が備えるFPGAの数を特定した後に、情報処理装置1が備えるFPGAが正常に動作するか否かを判断する(ステップS7)例を説明した。しかし、FPGAは、ステップS7を実行しなくてもよく、情報処理装置1が備えるFPGAの数を特定できればよい。
上記実施の形態では、FPGAが、送信異常の発生及び受信異常の発生の両者を検出する例を説明したが、これに限られない。FPGAは、図9に示す動作判断処理(ステップS7)において、ステップS702〜S706を実行しなくてもよい。つまり、FPGAは、受信異常が発生しているか否かを判断しなくもよい。あるいは、FPGAは、図9に示す動作判断処理(ステップS7)において、ステップS701、S707〜S708を実行しなくてもよい。つまり、FPGAは、送信異常が発生しているか否かを判断しなくもよい。
あるいは、FPGAは、他のFPGAから受信したコード配列データ50と自回路が送信したコード配列データ50とが、情報処理装置1が備える全てのFPGAの識別コードを含む場合、情報処理装置1が備える全てのFPGAが互いに通信可能であると判断してもよい。これにより、FPGAは、情報処理装置1が備えるFPGAが互いに通信可能であるか否かを容易に判断できる。
また、上記実施の形態では、第1ボード10〜第3ボード30がFPGAを搭載する例を説明したが、これに限られない。第1ボード10〜第3ボード30は、図3に示す各機能ブロックを搭載する集積回路を搭載していればよく、その種類は特に限定されない。
例えば、集積回路は、汎用プロセッサであってもよく、集積回路に搭載される機能ブロックがソフトウェアにより実現されてもよい。また、集積回路は、専用回路やコンフィギャラブル・プロセッサであってもよい。
また、上記実施の形態では、FPGA11A及び11Bが、車両のコンバータ又はモータの動作を模擬演算する例を説明した。しかし、FPGA11A及び11Bが模擬演算する対象は、例えば、航空機に搭載されるモータ及びコンバータなどでもよく、特に限定されない。
以上、本発明の実施の形態を説明したが、上述した実施の形態は本発明を実施するための例示に過ぎない。よって、本発明は上述した実施の形態に限定されることなく、その趣旨を逸脱しない範囲内で上述した実施の形態を適宜変形して実施することが可能である。
100 シミュレーションシステム
1 情報処理装置
2 ECU
3 ユーザ端末
4 中継装置
11A、11B、21A、21B、31A、31B FPGA
12A、12B、22A、22B、32A、32B ソケット
13、23、33 セレクタ
14、24、34 バックプレーンコネクタ
15、25、35 LVDSコネクタ
16、26、36 LAN通信部
111 使用状況信号取得部
112 ボード特定信号取得部
113 搭載数特定部
114 識別コード決定部
115 判断部
116 受信部
117 配列データ生成部
118 送信部
20 第2ボード
30 第3ボード

Claims (8)

  1. 搭載する集積回路の数を動的に変更できる情報処理装置であって、
    互いに通信する第1〜第N(Nは2以上の自然数)集積回路と、
    各々が前記第1〜第N集積回路のうち少なくとも1つを搭載する複数のボードと、を備え、
    第M(Mは1以上N以下の自然数)集積回路は、
    前記複数のボードの各々に搭載された集積回路の数を示す個別使用状況信号を前記複数のボードの各々から取得する使用状況信号取得部と、
    前記取得された個別使用状況信号に基づいて、前記情報処理装置が備える集積回路の数を特定する搭載数特定部と、を含む情報処理装置。
  2. 請求項1に記載の情報処理装置であって、
    前記複数のボードのうち前記第M集積回路を搭載するボードは、
    前記第M集積回路を固定するソケットと、
    前記第M集積回路が固定されたソケットを特定するセレクト信号を前記第M集積回路に供給するセレクタと、を含み、
    前記第M集積回路は、さらに、
    前記第M集積回路が搭載されたボードを特定するボード特定信号を取得するボード特定信号取得部と、
    前記ボード特定信号と、前記セレクト信号とに基づいて、前記第M集積回路の識別コードを決定する識別コード決定部と、を含む情報処理装置。
  3. 請求項1又は2に記載の情報処理装置であって、
    第M集積回路は、さらに、
    第L(LはMを除く1以上N以下の自然数)集積回路の識別コードを含むコード配列データを前記第L集積回路から受信する受信部と、
    前記受信部により受信されたコード配列データに前記第M集積回路の識別コードを付加して送信用のコード配列データを生成する識別コード生成部と、
    前記送信用のコード配列データを、第1〜第N集積回路に送信する送信部と、
    前記第1〜第N集積回路が互いに通信可能か否かを、前記搭載数特定部により特定された集積回路の数と前記受信部により受信されたコード配列データと前記送信部により送信されたコード配列データとに基づいて判断する判断部と、を含む情報処理装置。
  4. 請求項3に記載の情報処理装置であって、
    前記受信されたコード配列データと前記送信されたコード配列データとが第1〜第N集積回路の識別コードを含む場合、前記判断部は、前記第1〜第N集積回路が互いに通信可能であると判断する、情報処理装置。
  5. 請求項4に記載の情報処理装置であって、
    前記判断部は、前記受信されたコード配列データ及び前記送信されたコード配列データの各々からコード長が最長のコード配列データをコード配列データの送信元ごとに特定し、前記特定されたコード配列データのうち少なくとも1つのコード配列データが第M集積回路の識別コードを含まない場合、前記第M集積回路で受信異常が発生していると判断する、情報処理装置。
  6. 請求項4又は5に記載の情報処理装置であって、
    前記判断部は、前記受信されたコード配列データ及び前記送信されたコード配列データの送信元の数が前記特定された集積回路の数よりも小さい場合、前記第1〜第N集積回路の少なくとも1つで送信異常が発生していると判断する、情報処理装置。
  7. 請求項3〜6のいずれか1項に記載の情報処理装置であって、
    前記識別コード付加部は、前記受信されたコード配列データが前記第M集積回路の識別コードを含む場合、前記第M集積回路の識別コードを前記受信されたコード配列データの先頭に移動させる、情報処理装置。
  8. 互いに通信する第1〜第N(Nは2以上の自然数)集積回路と、各々が前記第1〜第Nの集積回路のうち少なくとも1つを搭載する複数のボードとを備える情報処理装置において、第M(Mは1以上N以下の自然数)集積回路により実行される情報処理方法であって、
    前記複数のボードの各々の使用状況を示す個別使用状況信号を取得するステップと、
    前記取得された個別使用状況信号に基づいて、前記情報処理装置が備える集積回路の数を特定するステップと、を備える情報処理方法。
JP2018163450A 2018-08-31 2018-08-31 情報処理装置 Pending JP2020035357A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2018163450A JP2020035357A (ja) 2018-08-31 2018-08-31 情報処理装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2018163450A JP2020035357A (ja) 2018-08-31 2018-08-31 情報処理装置

Publications (1)

Publication Number Publication Date
JP2020035357A true JP2020035357A (ja) 2020-03-05

Family

ID=69668397

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2018163450A Pending JP2020035357A (ja) 2018-08-31 2018-08-31 情報処理装置

Country Status (1)

Country Link
JP (1) JP2020035357A (ja)

Similar Documents

Publication Publication Date Title
US9716612B2 (en) Evaluation of field replaceable unit dependencies and connections
US8683451B1 (en) System and method for translating software code
CN108802511B (zh) 一种电池管理单元的测试方法及***
Sukhanya et al. Functional verification environment for I2C master controller using system verilog
KR101542802B1 (ko) 보드기반시스템테스트장치
JP2020035357A (ja) 情報処理装置
KR20160020777A (ko) 항공기의 임베디드 컴퓨터 검증을 위한 외부장치 모의기 시스템
KR20150100050A (ko) 휴대형 장거리 발사체계 점검장치
CN114020669B (zh) 一种基于cpld的i2c链路***及服务器
CN110687363A (zh) Sfp埠测试治具
US20180059179A1 (en) Automatic control system and automatic instrument searching method for the same
CN110596576A (zh) 一种模块化集成测量***
KR20210100474A (ko) 차량용 전자 제어기의 테스트 장치 및 그 테스트 방법
JP7371260B2 (ja) 電子機器、及び接続検査方法
JP4828871B2 (ja) バックワイヤリングボードの診断方式
KR102085731B1 (ko) 배전반 결선 시험 장치
CN113407470B (zh) 少针脚型接口和通用异步收发器接口复用方法、装置、设备
KR101649824B1 (ko) Emc 시험 시스템
CN111306087A (zh) 串行的传输风扇控制装置、串行的风扇控制***及其方法
CN211123145U (zh) 一种模块化集成测量***
CN112463677B (zh) 一种有源光缆的连接装置、方法及计算机可读存储介质
JP2002298276A (ja) 計測制御装置
CN109586810B (zh) 一种分布式动态射频测试接口装置和测试方法
KR102129466B1 (ko) Plc장치
CN117647722A (zh) 服务器主板测试方法、装置以及治具