(57)【要約】【課題】情報処理装置に搭載される一の集積回路が、情報処理装置に搭載された集積回路の数を取得できる技術を提供することを課題とする。【解決手段】情報処理装置１は、第１ボード１０〜第３ボード３０を備える。各ボードは、２つのＦＰＧＡを搭載する。各ボードに搭載されたＦＰＧＡは、互いに通信可能である。各ＦＰＧＡは、使用状況信号取得部１１１と、搭載数特定部１１３とを備える。使用状況信号取得部１１１は、各ボードの使用状況を示す個別使用状況信号を取得する。搭載数特定部１１３は、取得された個別使用状況信号に基づいて、情報処理装置１が備えるＦＰＧＡの数を特定する。【選択図】図２
2020035357.tif 000002
【特許請求の範囲】
【請求項１】
搭載する集積回路の数を動的に変更できる情報処理装置であって、
互いに通信する第１〜第Ｎ（Ｎは２以上の自然数）集積回路と、
各々が前記第１〜第Ｎ集積回路のうち少なくとも１つを搭載する複数のボードと、を備え、
第Ｍ（Ｍは１以上Ｎ以下の自然数）集積回路は、
前記複数のボードの各々に搭載された集積回路の数を示す個別使用状況信号を前記複数のボードの各々から取得する使用状況信号取得部と、
前記取得された個別使用状況信号に基づいて、前記情報処理装置が備える集積回路の数を特定する搭載数特定部と、を含む情報処理装置。
【請求項２】
請求項１に記載の情報処理装置であって、
前記複数のボードのうち前記第Ｍ集積回路を搭載するボードは、
前記第Ｍ集積回路を固定するソケットと、
前記第Ｍ集積回路が固定されたソケットを特定するセレクト信号を前記第Ｍ集積回路に供給するセレクタと、を含み、
前記第Ｍ集積回路は、さらに、
前記第Ｍ集積回路が搭載されたボードを特定するボード特定信号を取得するボード特定信号取得部と、
前記ボード特定信号と、前記セレクト信号とに基づいて、前記第Ｍ集積回路の識別コードを決定する識別コード決定部と、を含む情報処理装置。
【請求項３】
請求項１又は２に記載の情報処理装置であって、
第Ｍ集積回路は、さらに、
第Ｌ（ＬはＭを除く１以上Ｎ以下の自然数）集積回路の識別コードを含むコード配列データを前記第Ｌ集積回路から受信する受信部と、
前記受信部により受信されたコード配列データに前記第Ｍ集積回路の識別コードを付加して送信用のコード配列データを生成する識別コード生成部と、
前記送信用のコード配列データを、第１〜第Ｎ集積回路に送信する送信部と、
前記第１〜第Ｎ集積回路が互いに通信可能か否かを、前記搭載数特定部により特定された集積回路の数と前記受信部により受信されたコード配列データと前記送信部により送信されたコード配列データとに基づいて判断する判断部と、を含む情報処理装置。
【請求項４】
請求項３に記載の情報処理装置であって、
前記受信されたコード配列データと前記送信されたコード配列データとが第１〜第Ｎ集積回路の識別コードを含む場合、前記判断部は、前記第１〜第Ｎ集積回路が互いに通信可能であると判断する、情報処理装置。
【請求項５】
請求項４に記載の情報処理装置であって、
前記判断部は、前記受信されたコード配列データ及び前記送信されたコード配列データの各々からコード長が最長のコード配列データをコード配列データの送信元ごとに特定し、前記特定されたコード配列データのうち少なくとも１つのコード配列データが第Ｍ集積回路の識別コードを含まない場合、前記第Ｍ集積回路で受信異常が発生していると判断する、情報処理装置。
【請求項６】
請求項４又は５に記載の情報処理装置であって、
前記判断部は、前記受信されたコード配列データ及び前記送信されたコード配列データの送信元の数が前記特定された集積回路の数よりも小さい場合、前記第１〜第Ｎ集積回路の少なくとも１つで送信異常が発生していると判断する、情報処理装置。
【請求項７】
請求項３〜６のいずれか１項に記載の情報処理装置であって、
前記識別コード付加部は、前記受信されたコード配列データが前記第Ｍ集積回路の識別コードを含む場合、前記第Ｍ集積回路の識別コードを前記受信されたコード配列データの先頭に移動させる、情報処理装置。
【請求項８】
互いに通信する第１〜第Ｎ（Ｎは２以上の自然数）集積回路と、各々が前記第１〜第Ｎの集積回路のうち少なくとも１つを搭載する複数のボードとを備える情報処理装置において、第Ｍ（Ｍは１以上Ｎ以下の自然数）集積回路により実行される情報処理方法であって、
前記複数のボードの各々の使用状況を示す個別使用状況信号を取得するステップと、
前記取得された個別使用状況信号に基づいて、前記情報処理装置が備える集積回路の数を特定するステップと、を備える情報処理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、搭載する集積回路の数を動的に変更することができる情報処理装置に関する。
【背景技術】
【０００２】
機器を制御するマイクロコンピュータの開発において、開発されたマイクロコンピュータは、シミュレータ（機器の動作を模擬演算する情報処理装置）によって評価される。
【０００３】
例えば、車両のエンジンやブレーキ等を制御するＥＣＵ（Electronic Control Unit）が、実際の車両に先行して開発される。ＥＣＵは、車両の動作を模擬演算する情報処理装置と接続された上で評価される。以下、車両の動作を模擬演算する情報処理装置を、「車両シミュレータ」と記載する。
【０００４】
特許文献１は、複数のロジック・チップを備えるハードウェア・エミュレーション・システムを開示している。ロジック・チップは、例えば、ＦＰＧＡ（field-programmable gate array）等の集積回路である。特許文献１は、このシステムにおいて、複数の設計信号をロジック・チップのピン及び回路基板の配線において時間多重化することを開示している。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特表２００２−５０７２９４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
近年、自動車等に搭載されるモータの数が増加している。このため、ＥＣＵを評価する際に、車両シミュレータは、複数のモータの各々の動作を再現する場合がある。この場合、車両シミュレータは、複数のモータに対応する複数の集積回路を搭載し、複数の集積回路の各々を用いて各モータの動作を模擬演算する。
【０００７】
車両シミュレータは、さらに、各モータに電力を供給するコンバータに対応する集積回路を使用する。コンバータに対応する集積回路は、モータに対応する集積回路に電力を仮想的に供給するために、モータに対応する集積回路と通信する。
【０００８】
車両シミュレータは、ＥＣＵの仕様に応じて、モータに対応する集積回路の数を変更することが求められる。つまり、車両シミュレータは、使用する集積回路の数を動的に変更することが要求される。コンバータに対応する集積回路は、モータに対応する集積回路との通信を確立するために、車両シミュレータで使用される集積回路の数を取得する必要がある。集積回路の数は、模擬演算を開始する前に取得される。
【０００９】
しかし、特許文献１は、ロジック・チップがハードウェア・エミュレーション・システムで用いられるロジック・チップの数を取得する方法を開示していない。
【００１０】
本発明は、上記問題点に鑑み、情報処理装置に搭載される一の集積回路が、情報処理装置に搭載された集積回路の数を取得できる技術を提供することを課題とする。
【課題を解決するための手段】
【００１１】
上記課題を解決するため、第１の発明は、搭載する集積回路の数を動的に変更できる情報処理装置であり、第１〜第Ｎ集積回路と、複数のボードとを備える。Ｎは２以上の自然数である。第１〜第Ｎ集積回路は、互いに通信可能である。複数のボードの各々は、第１〜第Ｎ集積回路のうち少なくとも１つを搭載する。第Ｍ集積回路は、使用状況信号取得部と、搭載数特定部とを備える。Ｍは１以上Ｎ以下の自然数である。使用状況信号取得部は、複数のボードの各々に搭載された集積回路の数を示す個別使用状況信号を取得する。搭載数特定部は、取得された個別使用状況信号に基づいて、情報処理装置が備える集積回路の数を特定する。
【００１２】
第１の発明によれば、第Ｍ集積回路は、複数のボードの各々に搭載された集積回路の数を示す個別使用状況信号を用いて、情報処理装置に搭載された集積回路の数を取得できる。
【００１３】
第２の発明は、第１の発明であって、複数のボードのうち第Ｍ集積回路を搭載するボードは、ソケットと、セレクタとを含む。ソケットは、第Ｍ集積回路を固定する。セレクタは、第Ｍ集積回路が固定されたソケットを特定するセレクト信号を第Ｍ集積回路に供給する。第Ｍ集積回路は、さらに、ボード特定信号取得部と、識別コード決定部と、を含む。ボード特定信号取得部は、第Ｍ集積回路が搭載されたボードを特定するボード特定信号を取得する。識別コード決定部は、ボード特定信号とセレクト信号とに基づいて、第Ｍ集積回路の識別コードを決定する。
【００１４】
第２の発明によれば、第Ｍ集積回路は、第Ｍ集積回路が固定されたソケット及び第Ｍ集積回路が搭載されたボードに応じて識別コードを決定する。第Ｍ集積回路は、設置場所が変更された場合、変更された設置場所に応じて識別コードを変更できる。従って、情報処理装置が備える集積回路の数を変更した場合や、集積回路の設置場所を変更した場合等に、集積回路の設定を簡略化できる。
【００１５】
第３の発明は、第１又は第２の発明であって、第Ｍ集積回路は、さらに、受信部と、識別コード生成部と、送信部と、判断部とを含む。受信部は、第Ｌ集積回路の識別コードを含むコード配列データを第Ｌ集積回路から受信する。Ｌは、Ｍを除く１以上Ｎ以下の自然数である。識別コード生成部は、受信部により受信されたコード配列データに第Ｍ集積回路の識別コードを付加して送信用のコード配列データを生成する。送信部は、送信用のコード配列データを、第１〜第Ｎ集積回路に送信する。判断部は、第１〜第Ｎ集積回路が互いに通信可能か否かを、搭載数特定部により特定された集積回路の数と受信部により受信されたコード配列データと送信部により送信されたコード配列データとに基づいて判断する。
【００１６】
第３の発明によれば、コード配列データは、第１〜第Ｎ集積回路の識別コードを含む。従って、判断部は、コード配列データを参照することによって、第１〜第Ｎ集積回路が互いに通信できるか否かを容易に判断できる。
【００１７】
第４の発明は、第３の発明であって、受信されたコード配列データと送信されたコード配列データとが第１〜第Ｎ集積回路の識別コードを含む場合、判断部は、第１〜第Ｎ集積回路が互いに通信可能であると判断する。
【００１８】
第４の発明によれば、判断部は、第１〜第Ｎ集積回路が互いに通信可能であるか否かを容易に判断できる。
【００１９】
第５の発明は、第４の発明であって、判断部は、受信されたコード配列データ及び送信されたコード配列データの各々からコード長が最長のコード配列データをコード配列データの送信元ごとに特定する。判断部は、特定されたコード配列データのうち少なくとも１つのコード配列データが第Ｍ集積回路の識別コードを含まない場合、第Ｍ集積回路で受信異常が発生していると判断する。
【００２０】
第５の発明によれば、判断部は、受信異常が発生している集積回路を容易に特定できるため、情報処理装置における不良発生個所を容易に特定できる。
【００２１】
第６の発明は、第４又は第５の発明であって、判断部は、受信されたコード配列データ及び送信されたコード配列データの送信元の数が特定された集積回路の数よりも小さい場合、第１〜第Ｎ集積回路の少なくとも１つで送信異常が発生していると判断する。
【００２２】
第６の発明によれば、判断部は、コード配列データに基づいて、送信異常の発生を容易に検出できる。
【００２３】
第７の発明は、第３〜第６発明のいずれかであって、識別コード付加部は、受信されたコード配列データが第Ｍ集積回路の識別コードを含む場合、第Ｍ集積回路の識別コードを受信されたコード配列データの先頭に移動させる、情報処理装置。
【００２４】
第７の発明によれば、コード配列データ５０のデータ長を抑制できるため、集積回路の処理負荷を低減させることができる。
【００２５】
第８の発明は、互いに通信する第１〜第Ｎ（Ｎは２以上の自然数）集積回路と、各々が第１〜第Ｎの集積回路のうち少なくとも１つを搭載する複数のボードとを備える情報処理装置において、第Ｍ（Ｍは１以上Ｎ以下の自然数）集積回路により実行される情報処理方法である。第８の発明は、ａ）ステップと、ｂ）ステップとを備える。ａ）ステップは、複数のボードの各々の使用状況を示す個別使用状況信号を取得する。ｂ）ステップは、個別使用状況信号に基づいて、情報処理装置が備える集積回路の数を特定する。
【００２６】
第８の発明は、第１の発明に用いられる。
【発明の効果】
【００２７】
本発明に係る情報処理装置に搭載される一の集積回路が、情報処理装置に搭載された集積回路の数を取得できる。
【図面の簡単な説明】
【００２８】
【図１】本発明の一実施の形態に係るシミュレーションシステム１００の構成を示す機能ブロック図である。
【図２】図１に示す情報処理装置の構成を示す機能ブロック図である。
【図３】図２に示すＦＰＧＡの構成を示す機能ブロック図である。
【図４】図２に示すＦＰＧＡの動作を示すフローチャートである。
【図５】図２に示すバックプレーンコネクタの接続の一例を示す図である。
【図６】図４に示すコード配列データ送信処理のフローチャートである。
【図７】図２に示すＦＰＧＡから送信されるコード配列データの変化の一例を示す図である。
【図８】図２に示すＦＰＧＡから送信されるコード配列データの送信経路を示す図である。
【図９】図４に示す動作判断処理のフローチャートである。
【発明を実施するための形態】
【００２９】
以下、図面を参照し、本発明の実施の形態を詳しく説明する。図中同一又は相当部分には同一符号を付してその説明は繰り返さない。
【００３０】
｛１．構成｝
｛１．１．シミュレーションシステム１００の構成｝
図１は、本発明の一実施の形態に係るシミュレーションシステム１００の構成を示す機能ブロック図である。図１を参照して、シミュレーションシステム１００は、自動車等の車両に搭載されるＥＣＵ（Electronic Control Unit）２の評価に用いられる。シミュレーションシステム１００は、情報処理装置１と、ＥＣＵ２と、ユーザ端末３と、中継装置４とを備える。
【００３１】
情報処理装置１は、シミュレータであり、ＥＣＵ２と接続される。情報処理装置１は、ＥＣＵ２から出力される制御信号に従って、車両に搭載されるモータ及びコンバータの動作を模擬演算する。
【００３２】
ＥＣＵ２は、シミュレーションシステム１００における評価対象である。ＥＣＵ２は、中継装置４を介してユーザ端末３から動作指示を取得し、取得した動作指示に応じた制御信号を情報処理装置１に出力する。
【００３３】
ユーザ端末３は、ＥＣＵ２の評価者が使用するコンピュータである。ユーザ端末３は、中継装置４を介して情報処理装置１及びＥＣＵ２に動作指示を出力する。ユーザ端末３は、中継装置４を介して情報処理装置１から模擬演算結果を取得し、その取得した模擬演算結果を図示しないモニタに表示する。
【００３４】
中継装置４は、情報処理装置１とユーザ端末３との間の通信を中継し、ＥＣＵ２とユーザ端末３との間の通信を中継する。
【００３５】
なお、シミュレーションシステム１００において、装置間の通信方式は、特に限定されない。例えば、情報処理装置１は、ＣＡＮ（Controller Area Network）を用いてＥＣＵ２と通信する。ユーザ端末３は、ＬＡＮ（Local Area Network）を用いて中継装置４と通信する。中継装置４は、ＬＡＮを用いて情報処理装置１と通信する。中継装置４は、図示しないプロトコル変換装置を用いて、ＥＣＵ２と通信する。プロトコル変換装置は、ＬＡＮに準拠した通信とＣＡＮに準拠した通信とを相互に変換する。中継装置４は、ＬＡＮを用いてプロトコル変換装置と通信する。ＥＣＵ２は、ＣＡＮを用いてプロトコル変換装置と通信する。
【００３６】
｛１．２．情報処理装置１の構成｝
図２は、図１に示す情報処理装置１の構成を示す機能ブロック図である。図２を参照して、情報処理装置１は、第１ボード１０と、第２ボード２０と、第３ボード３０とを備える。
【００３７】
第１ボード１０〜第３ボード３０は、情報処理装置１の筐体に形成された３つのスロットに収められる。３枚のボードは、情報処理装置１のスロットから着脱可能である。３枚のボードは、後述するように共通の構成であるため、その構成によって区別されない。３枚のボードは、３つのスロットのうちどのスロットに挿入されたかに基づいて、第１ボード１０〜第３ボード３０として区別される。
【００３８】
以下の説明において、第１ボード１０〜第３ボード３０を区別しない場合、単に「ボード」と記載することがある。情報処理装置１の筐体に設けられた第１スロットに挿入されたボードを「第１ボード１０」として記載する。同様に、情報処理装置１の筐体に設けられた第２スロットに挿入されたボードを「第２ボード２０」と記載し、情報処理装置１の筐体に設けられた第３スロットに挿入されたボードを「第３ボード３０」と記載する。
【００３９】
第１ボード１０〜第３ボード３０の各々は、最大で２台のＦＰＧＡ（field-programmable gate array）を搭載できる。各ボードに搭載されるＦＰＧＡは、車両に搭載されるモータ及びコンバータのいずれか一方の動作を模擬演算できるように構成されている。様々なＥＣＵ２を評価できるように、ＦＰＧＡは、各ボードから着脱可能である。
【００４０】
｛１．３．第１ボード１０の構成｝
図２を参照して、第１ボード１０は、ＦＰＧＡ１１Ａ及び１１Ｂと、ソケット１２Ａ及び１２Ｂと、セレクタ１３と、バックプレーンコネクタ１４と、ＬＶＤＳ（Low Voltage Differential Signaling）コネクタ１５と、ＬＡＮ通信部１６とを含む。
【００４１】
ＦＰＧＡ１１Ａ及び１１Ｂは、車両のコンバータ又はモータの動作を模擬演算する。ＦＰＧＡ１１Ａ及び１１Ｂは、ＬＶＤＳを用いて、第２ボード２０及び第３ボード３０に搭載されたＦＰＧＡと通信する。ＦＰＧＡ１１Ａは、ＬＶＤＳを用いてＦＰＧＡ１１Ｂと通信する。
【００４２】
ＦＰＧＡ１１Ａ及び１１Ｂの各々は、他のＦＰＧＡと通信を開始する前に、情報処理装置１が備えるＦＰＧＡの数を取得する。情報処理装置１が備えるＦＰＧＡの数とは、第１ボード１０、第２ボード２０及び第３ボード３０の各々が含むＦＰＧＡの合計値である。
【００４３】
ソケット１２Ａ及び１２Ｂは、ＦＰＧＡ１１Ａ及び１１Ｂを第１ボード１０上に固定する。ＦＰＧＡ１１Ａ及び１１Ｂは、ソケット１２Ａ及び１２Ｂに嵌め込まれることにより、第１ボード１０の他の構成要素と通信できる。
【００４４】
セレクタ１３は、ＦＰＧＡ１１Ａが嵌め込まれたソケット１２Ａを特定するセレクト信号１３ＡをＦＰＧＡ１１Ａに供給する。セレクタ１３は、ＦＰＧＡ１１Ｂが嵌め込まれたソケット１２Ｂを特定するセレクト信号１３ＢをＦＰＧＡ１１Ｂに供給する。
【００４５】
バックプレーンコネクタ１４は、第１ボード１０〜第３ボード３０の使用状況を示す各々に搭載された集積回路の数を示す使用状況信号１８を取得し、その取得した使用状況信号１８をＦＰＧＡ１１Ａ及び１１Ｂに供給する。
【００４６】
バックプレーンコネクタ１４は、第１ボード１０を特定するボード特定信号１９を取得し、その取得したボード特定信号１９をＦＰＧＡ１１Ａ及び１１Ｂに供給する。ボード特定信号１９は、ＦＰＧＡ１１Ａ及び１１Ｂが、自回路を搭載したボードを特定するために用いられる。
【００４７】
ＬＶＤＳコネクタ１５は、第２ボード２０が含むＬＶＤＳコネクタ２５と、第３ボード３０が含むＬＶＤＳコネクタ３５と接続される。これにより、ＦＰＧＡ１１Ａ及び１１Ｂは、第２ボード２０及び第３ボード３０の各々に搭載されたＦＰＧＡと通信できる。
【００４８】
ＬＡＮ通信部１６は、ＦＰＧＡ１１Ａ及び１１Ｂの各々から出力されたデータを、ＴＣＰ／ＩＰ（Transmission Control Protocol/ Internet Protocol）を用いて中継装置４に送信する。ＬＡＮ通信部１６は、ＴＣＰ／ＩＰを用いて中継装置４からデータを受信し、その受信したデータをＦＰＧＡ１１Ａ又は１１Ｂに供給する。
【００４９】
｛１．４．第２ボード２０の構成｝
図２を参照して、第２ボード２０は、ＦＰＧＡ２１Ａ及び２１Ｂと、ソケット２２Ａ及び２２Ｂと、セレクタ２３と、バックプレーンコネクタ２４と、ＬＶＤＳコネクタ２５と、ＬＡＮ通信部２６とを含む。
【００５０】
ＦＰＧＡ２１Ａ及び２１Ｂは、第１ボード１０が含むＦＰＧＡ１１Ａ及び１１Ｂに対応する。ソケット２２Ａ及び２２Ｂは、第１ボード１０が含むソケット１２Ａ及び１２Ｂに対応する。セレクタ２３は、第１ボード１０が含むセレクタ１３に対応する。セレクト信号２３Ａ及び２３Ｂは、セレクタ１３が出力するセレクト信号１３Ａ及び１３Ｂに対応する。バックプレーンコネクタ２４は、第１ボード１０が含むバックプレーンコネクタ１４に対応する。ボード特定信号２９は、バックプレーンコネクタ１４が取得するボード特定信号１９に対応する。ＬＶＤＳコネクタ２５及びＬＡＮ通信部２６は、第１ボード１０が含むＬＶＤＳコネクタ１５及びＬＡＮ通信部１６に対応する。従って、第２ボード２０が含む構成要素の各々の説明を省略する。
【００５１】
｛１．５．第３ボード３０の構成｝
図２を参照して、第３ボード３０は、ＦＰＧＡ３１Ａ及び３１Ｂと、ソケット３２Ａ及び３２Ｂと、セレクタ３３と、バックプレーンコネクタ３４と、ＬＶＤＳコネクタ３５と、ＬＡＮ通信部３６とを含む。第３ボード３０において、ＦＰＧＡ３１Ａ及び３１Ｂを除く構成要素間の配線は、第３ボード３０上に実装されている。
【００５２】
ＦＰＧＡ３１Ａ及び３１Ｂは、第１ボード１０が含むＦＰＧＡ１１Ａ及び１１Ｂに対応する。ソケット３２Ａ及び３２Ｂは、第１ボード１０が含むソケット１２Ａ及び１２Ｂに対応する。セレクタ３３は、第１ボード１０が含むセレクタ１３に対応する。セレクト信号３３Ａ及び３３Ｂは、セレクタ１３が出力するセレクト信号１３Ａ及び１３Ｂに対応する。バックプレーンコネクタ３４は、第１ボード１０が含むバックプレーンコネクタ１４に対応する。ボード特定信号３９は、バックプレーンコネクタ１４が取得するボード特定信号１９に対応する。ＬＶＤＳコネクタ３５及びＬＡＮ通信部３６は、第１ボード１０が含むＬＶＤＳコネクタ１５及びＬＡＮ通信部１６に対応する。従って、第３ボード３０が含む構成要素の各々の説明を省略する。
【００５３】
｛１．６．ＦＰＧＡ１１Ａの構成｝
図３は、図２に示すＦＰＧＡ１１Ａの構成を示す機能ブロック図である。ＦＰＧＡ１１Ａは、使用状況信号取得部１１１と、ボード特定信号取得部１１２と、搭載数特定部１１３と、識別コード決定部１１４と、判断部１１５と、受信部１１６と、配列データ生成部１１７と、送信部１１８とを含む。
【００５４】
使用状況信号取得部１１１は、使用状況信号１８をバックプレーンコネクタ１４から取得する。使用状況信号１８は、第１ボード１０〜第３ボード３０の各々の使用状況を示す。使用状況信号取得部１１１は、取得した使用状況信号１８を搭載数特定部１１３に出力する。
【００５５】
ボード特定信号取得部１１２は、ボード特定信号１９をバックプレーンコネクタ１４から取得する。ボード特定信号１９は、自回路（ＦＰＧＡ１１Ａ）が搭載された第１ボード１０を特定する。ボード特定信号取得部１１２は、取得したボード特定信号１９を識別コード決定部１１４に出力する。
【００５６】
搭載数特定部１１３は、使用状況信号取得部１１１から受けた使用状況信号１８に基づいて、情報処理装置１が備えるＦＰＧＡの数を特定する。搭載数特定部１１３は、特定したＦＰＧＡの数を判断部１１５に出力する。
【００５７】
識別コード決定部１１４は、ボード特定信号取得部１１２から受けたボード特定信号１９と、セレクタ１３から受けたセレクト信号１３Ａとに基づいて、自回路（ＦＰＧＡ１１Ａ）の識別コードを決定する。識別コード決定部１１４は、決定したＦＰＧＡ１１Ａの識別コードを配列データ生成部１１７に出力する。ＦＰＧＡの識別コードを設置場所に応じて変更できるため、情報処理装置１が備えるＦＰＧＡの数を変更した場合や、ＦＰＧＡの設置場所を変更した場合等に、ＦＰＧＡの設定を簡略化できる。
【００５８】
判断部１１５は、搭載数特定部１１３から受けたＦＰＧＡの数と、受信部１１６から受けたコード配列データ５２〜５６に基づいて、情報処理装置１に搭載されたＦＰＧＡが互いに通信可能であるか否かを判断する。判断部１１５は、その判断結果をＬＡＮ通信部１６及び中継装置４を介してユーザ端末３に送信する。
【００５９】
コード配列データ５１〜５６は、ＦＰＧＡ１１Ａ、１１Ｂ、２１Ａ、２１Ｂ、３１Ａ及び３１Ｂの各々の識別コードが少なくとも１つを含む。コード配列データ５１は、ＦＰＧＡ１１Ａから送信される。コード配列データ５２は、ＦＰＧＡ１１Ｂから送信される。コード配列データ５３は、ＦＰＧＡ２１Ａから送信される。コード配列データ５４は、ＦＰＧＡ２１Ｂから送信される。コード配列データ５５は、ＦＰＧＡ３１Ａから送信される。コード配列データ５６は、ＦＰＧＡ３１Ｂから送信される。従って、判断部１１５は、コード配列データを参照することによって、情報処理装置１が備える集積回路が互いに通信できるか否かを容易に判断できる。以下、コード配列データ５１〜５６を総称して、「コード配列データ５０」と記載する場合がある。
【００６０】
受信部１１６は、コード配列データ５３〜５６を、ＬＶＤＳコネクタ１５を介してＦＰＧＡ２１Ａ、２１Ｂ、３１Ａ及び３１Ｂから受ける。受信部１１６は、コード配列データ５２をＦＰＧＡ１１Ｂから受ける。つまり、受信部１１６は、自回路（ＦＰＧＡ１１Ａ）を除くＦＰＧＡからコード配列データを受ける。受信部１１６は、その受けたコード配列データを判断部１１５及び配列データ生成部１１７に出力する。
【００６１】
配列データ生成部１１７は、受信部１１６から受けたコード配列データ５０の各々の先頭に、ＦＰＧＡ１１Ａの識別コードを付加して、送信用のコード配列データ５１を生成する。配列データ生成部１１７は、生成した送信用のコード配列データ５１を送信部１１８に出力する。
【００６２】
送信部１１８は、配列データ生成部１１７から受けた送信用のコード配列データ５１を、ＬＶＤＳコネクタ１５を介してＦＰＧＡ２１Ａ、２１Ｂ、３１Ａ及び３１Ｂに送信する。送信部１１８は、送信用のコード配列データ５１をＦＰＧＡ１１Ｂに送信し、送信用のコード配列データ５１を判断部１１５に出力する。
【００６３】
ＦＰＧＡ１１Ａ、２１Ａ、２１Ｂ、３１Ａ及び３１Ｂの構成は、ＦＰＧＡ１１Ａと同じであるため、その詳細な説明を省略する。ただし、ＦＰＧＡ２１Ａ及び２１Ｂに含まれる識別コード決定部１１４は、第２ボード２０を示すボード特定信号２９を取得する。ＦＰＧＡ３１Ａ及び３１Ｂに含まれる識別コード決定部１１４は、第３ボード３０を示すボード特定信号３９を取得する。また、ＦＰＧＡ１１Ｂ、２１Ａ、２１Ｂ、３１Ａ及び３１Ｂの各々に搭載される識別コード決定部は、セレクト信号１３Ｂ、２３Ａ、２３Ｂ、３３Ａ及び３３Ｂ（図２参照）を取得する。
【００６４】
｛２．ＦＰＧＡの動作｝
｛２．１．動作概略｝
図４は、図２に示す各ＦＰＧＡの動作を示すフローチャートである。ＦＰＧＡ１１Ａ、１１Ｂ、２１Ａ、２１Ｂ、３１Ａ及び３１Ｂの各々は、図４に示す処理を実行して、情報処理装置１が備えるＦＰＧＡの数を特定し、自回路以外のＦＰＧＡと通信できるか否かを判断する。
【００６５】
ＦＰＧＡ１１Ａ、１１Ｂ、２１Ａ、２１Ｂ、３１Ａ及び３１Ｂの各々は、電源がオンされた場合、図４に示す処理を開始する。以下、ＦＰＧＡ１１Ａを例にして、情報処理装置１が備えるＦＰＧＡの動作を説明する。
【００６６】
図４を参照して、ＦＰＧＡ１１Ａは、使用状況信号１８に基づいて、第１ボード１０〜第３ボード３０の使用状況を特定する（ステップＳ１）。ＦＰＧＡ１１Ａは、ステップＳ１で特定されたボードの使用状況に基づいて、情報処理装置１が備えるＦＰＧＡの数を特定する（ステップＳ２）。
【００６７】
ＦＰＧＡ１１Ａは、自回路（ＦＰＧＡ１１Ａ）が搭載されているボードを特定し（ステップＳ３）、自回路（ＦＰＧＡ１１Ａ）が固定されているソケットを特定する（ステップＳ４）。ＦＰＧＡ１１Ａは、ステップＳ３及びＳ４の結果に基づいて、ＦＰＧＡ１１Ａの識別コードを決定する（ステップＳ５）。ＦＰＧＡ１１Ａは、ステップＳ５で決定された識別コードを用いてコード配列データ５１を生成し、生成したコード配列データ５１を自回路以外のＦＰＧＡに送信する（ステップＳ６）。
【００６８】
ＦＰＧＡ１１Ａは、コード配列データ５１の送信を所定時間の経過後に停止し、各ＦＰＧＡの動作判断を実行する（ステップＳ７）。ステップＳ７では、ＦＰＧＡ１１Ａは、情報処理装置１が備えるＦＰＧＡが互いに通信できるか否かが判断される。ステップＳ７では、ＦＰＧＡ１１Ａは、自回路が通信可能か否かも判断する。
【００６９】
このように、情報処理装置１が備える各ＦＰＧＡは、各ボードの使用状況を示す使用状況信号１８を用いて、情報処理装置１が備えるＦＰＧＡの数を取得できる（ステップＳ２）。また、各ＦＰＧＡは、自回路が固定されたソケット及び自回路が搭載されたボードに応じて識別コードを決定する（ステップＳ５）。各ＦＰＧＡは、設置場所が変更された場合、変更された設置場所に応じて識別コードを変更できる。従って、情報処理装置１に搭載されるＦＰＧＡの数を変更した場合や、ＦＰＧＡの設置場所を変更した場合等に、ＦＰＧＡの設定を簡略化できる。
【００７０】
｛２．２．ボードの使用状況の特定（ステップＳ１）｝
ステップＳ１の説明にあたり、第１ボード１０〜第３ボード３０の各々におけるＦＰＧＡの搭載状況を以下のように仮定する。すなわち、第１ボード１０〜第３ボード３０の各々が情報処理装置１のスロットに挿入される場合、これらのボードの各々は、２つのＦＰＧＡを搭載する。例えば、第１ボード１０が第１スロットに挿入される場合、空きソケットは第１ボード１０に存在せず、第１ボード１０は、ＦＰＧＡ１１Ａ及び１１Ｂを備える。第２ボード２０及び第３ボード３０についても同様である。
【００７１】
ステップＳ１で用いられる使用状況信号１８は、各ボードが備えるバックプレーンコネクタに入力される。第１ボード１０〜第３ボード３０に搭載されたＦＰＧＡの各々は、使用状況信号１８を取得し、その取得した使用状況信号１８に基づいて、各ボードの使用状況を特定する（ステップＳ１）。以下、バックプレーンコネクタ及び使用状況信号１８を詳しく説明する。
【００７２】
（バックプレーンコネクタの接続）
図５は、バックプレーンコネクタ１４、２４及び３４の各々の接続の一例を示す図である。図５において、第１ボード１０〜第３ボード３０が備えるスロットの表示を省略している。図５を参照して、バックプレーンコネクタ１４は、端子１４１〜１４６を含む。
【００７３】
端子１４１は、使用状況信号１８の生成に用いられる。端子１４１は、第１ボード１０が第１スロットに挿入された場合に配線６１１に接続される。
【００７４】
端子１４２〜１４４は、使用状況信号１８の入力端子である。使用状況信号１８は、個別使用状況信号１８１〜１８３を含む。端子１４２は、第１ボード１０の使用状況を示す個別使用状況信号１８１を受ける。端子１４３は、第２ボード２０の使用状況を示す個別使用状況信号１８２を受ける。端子１４４は、第３ボード３０の使用状況を示す個別使用状況信号１８３を受ける。
【００７５】
端子１４５〜１４６は、ボード特定信号１９の入力端子である。
【００７６】
第２ボード２０のバックプレーンコネクタ２４は、端子２４１〜２４６を備える。端子２４１〜２４６は、バックプレーンコネクタ１４の端子１４１〜１４６に対応する。第３ボード３０のバックプレーンコネクタ３４は、端子３４１〜３４６を備える。端子３４１〜３４６は、バックプレーンコネクタ１４の端子１４１〜１４６に対応する。
【００７７】
（個別使用状況信号１８１）
個別使用状況信号１８１は、配線６１１の電圧に応じて変化する。配線６１１の一端は、プルアップ抵抗６２１を介して、情報処理装置１の電源に接続される。第１ボード１０が使用されている場合、配線６１１の他端は、バックプレーンコネクタ１４の端子１４１に接続される。第１ボード１０が使用されていない場合、配線６１１の他端は、バックプレーンコネクタ１４の端子１４１に接続しない。この結果、配線６１１の電圧は、ハイに変化する。第１ボード１０が使用されていないとは、第１ボード１０が第１スロットに挿入されていない状態を示す。
【００７８】
第１ボード１０が使用されていない場合、第２ボード２０のＦＰＧＡ２１Ａ及び２１Ｂは、バックプレーンコネクタ２４の端子２４２を介して、電圧がハイである個別使用状況信号１８１を受ける。端子２４２が、配線６１１に接続されているためである。ＦＰＧＡ２１Ａ及び２１Ｂは、電圧がハイである個別使用状況信号１８１に基づいて、第１ボード１０が使用されていないと判断する。同様に、第３ボード３０のＦＰＧＡ３１Ａ及び３１Ｂは、バックプレーンコネクタ３４の端子３４２を介して、電圧がハイである個別使用状況信号１８１を受ける。ＦＰＧＡ３１Ａ及び３１Ｂは、電圧がハイである個別使用状況信号１８１に基づいて、第１ボード１０が使用されていないと判断する。
【００７９】
第１ボード１０が使用中である場合、配線６１１は、バックプレーンコネクタ１４の端子１４１に接続される。端子１４１は、第１ボード１０が使用中であるか否かに関係なく、第１ボード１０の内部において接地されている。従って、第１ボード１０が使用されている場合、配線６１１の電圧は、ローである。この場合、第２ボード２０のＦＰＧＡ２１Ａ及び２１Ｂは、バックプレーンコネクタ２４の端子２４２を介して、電圧がローである個別使用状況信号１８１を受ける。第３ボード３０のＦＰＧＡ３１Ａ及び３１Ｂは、バックプレーンコネクタ３４の端子３４２を介して、電圧がローである個別使用状況信号１８１を受ける。ＦＰＧＡ２１Ａ、２１Ｂ、３１Ａ及び３１Ｂは、電圧がローである個別使用状況信号１８１に基づいて、第１ボード１０が使用中であると判断する。
【００８０】
同様に、第１ボード１０のＦＰＧＡ１１Ａ及び１１Ｂは、バックプレーンコネクタ１４の端子１４２に入力された個別使用状況信号１８１の電圧がローであるため、第１ボード１０が使用中であると判断する。
【００８１】
（個別使用状況信号１８２）
個別使用状況信号１８２は、配線６１２の電圧に応じて変化する。配線６１２の一端は、プルアップ抵抗６２２を介して、情報処理装置１の電源に接続される。
【００８２】
第２ボード２０が使用されている場合、配線６１２の他端は、バックプレーンコネクタ２４の端子２４１に接続される。第２ボード２０が使用されていない場合、配線６１２の他端は、バックプレーンコネクタ２４の端子２４１に接続されない。配線６１２の電圧は、情報処理装置１の電源からの電圧によりハイに変化する。つまり、第２ボード２０が使用されていない場合、個別使用状況信号１８２は、ハイである。
【００８３】
一方、第２ボード２０が使用中である場合、配線６１２は、バックプレーンコネクタ２４の端子２４１に接続される。端子２４１が第２ボード２０の内部で接地されているため、配線６１２の電圧がローに変化する。つまり、第２ボード２０が使用されている場合、個別使用状況信号１８２は、ローである。
【００８４】
個別使用状況信号１８２は、端子１４３、２４３及び３４３に入力される。ＦＰＧＡ１１Ａ、１１Ｂ、２１Ａ、２１Ｂ、３１Ａ及び３１Ｂは、入力された個別使用状況信号１８２の電圧に基づいて、第２ボード２０の使用状況を判断する。
【００８５】
（個別使用状況信号１８３）
個別使用状況信号１８３は、配線６１３の電圧に応じて変化する。配線６１３の一端は、プルアップ抵抗６２３を介して、情報処理装置１の電源に接続される。
【００８６】
第３ボードが使用されている場合、配線６１３の他端は、バックプレーンコネクタ３４の端子３４１に接続される。第３ボード３０が使用されていない場合、配線６１３の他端は、バックプレーンコネクタ３４の端子３４１に接続されない。配線６１３の電圧は、情報処理装置１の電源からの電圧によりハイに変化する。つまり、第３ボード３０が使用されていない場合、個別使用状況信号１８３は、ハイとなる。
【００８７】
一方、第３ボード３０が使用中である場合、配線６１３は、バックプレーンコネクタ３４の端子３４１に接続される。端子３４１が第３ボード３０の内部で接地されているため、配線６１３の電圧は、ローに変化する。つまり、第３ボード３０が使用されている場合、個別使用状況信号１８３は、ローとなる。
【００８８】
個別使用状況信号１８３は、端子１４４、２４４及び３４４に入力される。ＦＰＧＡ１１Ａ、１１Ｂ、２１Ａ、２１Ｂ、３１Ａ及び３１Ｂは、入力された個別使用状況信号１８３の電圧に基づいて、第３ボード３０の使用状況を判断する。
【００８９】
このように、第１ボード１０〜第３ボード３０の各々に搭載されたＦＰＧＡは、個別使用状況信号１８１〜１８３に基づいて、各ボードの使用状況を把握することができる。
【００９０】
｛２．３．搭載数の決定（ステップＳ２））｝
上述のように、ＦＰＧＡ１１Ａ、１１Ｂ、２１Ａ、２１Ｂ、３１Ａ及び３１Ｂの各々は、使用状況信号１８に基づいて情報処理装置１が備えるＦＰＧＡの数を判断する（ステップＳ２）。以下、ＦＰＧＡ１１Ａを例にして、ステップＳ２を詳しく説明する。
【００９１】
ＦＰＧＡ１１Ａにおいて、使用状況信号取得部１１１が、個別使用状況信号１８１〜１８３を取得し、その取得した個別使用状況信号１８１〜１８３を搭載数特定部１１３に出力する。搭載数特定部１１３は、個別使用状況信号１８１〜１８３のうち、電圧がローである信号の数を特定する。搭載数特定部１１３は、電圧がローである信号の数に基づいて、情報処理装置１が備えるＦＰＧＡの数を特定する。
【００９２】
例えば、第１ボード１０〜第３ボード３０の全てが使用中である場合、個別使用状況信号１８１〜１８３の全てがローである。上述のように、使用中のボードが２つのＦＰＧＡを搭載するため、搭載数特定部１１３は、情報処理装置１が備えるＦＰＧＡの数が６であると判断する。
【００９３】
本実施の形態では、第１ボード１０〜第３ボード３０が使用される場合、第１ボード１０〜第３ボード３０が搭載する集積回路の数は等しい。従って、個別使用状況信号１８１がローである場合、個別使用状況信号１８１は、第１ボード１０が使用されていることを示す情報と、第１ボード１０に搭載されたＦＰＧＡの数であることを示す情報とを含む。
【００９４】
個別使用状況信号１８１〜１８２がローであり、個別使用状況信号１８３がハイである場合、使用中であるボードの数は２である。この場合、搭載数特定部１１３は、情報処理装置１が備えるＦＰＧＡの数が４であると判断する。
【００９５】
個別使用状況信号１８１がローであり、個別使用状況信号１８２〜１８３がハイである場合、使用中のボードの数は１である。この場合、搭載数特定部１１３は、情報処理装置１が備えるＦＰＧＡの数が２であると判断する。
【００９６】
｛２．４．搭載ボードの特定（ステップＳ３）｝
ＦＰＧＡ１１Ａ、１１Ｂ、２１Ａ、２１Ｂ、３１Ａ及び３１Ｂの各々は、自回路が搭載されたボードをボード特定信号に基づいて特定する（図４に示すステップＳ３）。
【００９７】
（ＦＰＧＡ１１Ａ及び１１Ｂによる搭載ボードの特定）
ＦＰＧＡ１１Ａ及び１１Ｂは、ボード特定信号１９に基づいて、自回路が第１ボード１０に搭載されていると判断する。図５を参照して、ボード特定信号１９は、端子１４５及び１４６の電圧により表される。端子１４５の電圧が、ボード特定信号１９の第１電圧であり、端子１４６の電圧が、ボード特定信号１９の第２電圧である。第１ボード１０〜第３ボード３０の各々を特定する第１電圧及び第２電圧の組み合わせは、各ＦＰＧＡに設定されている。
【００９８】
端子１４５は、第１ボード１０の内部で、プルアップ抵抗１９１を介して、第１ボード１０の電源に接続される。端子１４６は、第１ボード１０の内部で、プルアップ抵抗１９２を介して、第１ボード１０の電源に接続される。第１ボード１０がスロットに挿入されている場合、端子１４５及び１４６は、第１ボード１０の外で開放される。この結果、ボード特定信号１９の第１電圧（端子１４５の電圧）と第２電圧（端子１４６の電圧）は、ハイとなる。
【００９９】
ボード特定信号１９の第１電圧及び第２電圧がハイであるため、ＦＰＧＡ１１Ａ及び１１Ｂは、第１ボード１０に搭載されていると判断する。
【０１００】
（ＦＰＧＡ２１Ａ及び２１Ｂによる第２ボード２０の特定）
ＦＰＧＡ２１Ａ及び２１Ｂは、ボード特定信号２９に基づいて、自回路が第２ボード２０に搭載されていると判断する。ボード特定信号２９は、端子２４５及び２４６の電圧により表される。端子２４５の電圧が、ボード特定信号２９の第１電圧であり、端子２４６の電圧が、ボード特定信号２９の第２電圧である。
【０１０１】
端子２４５は、第２ボード２０の内部でプルアップ抵抗２９１を介して、第２ボード２０の電源に接続される。端子２４６は、第２ボード２０の内部でプルアップ抵抗２９２を介して、第２ボード２０の電源に接続される。第２ボード２０がスロットに挿入されている場合、端子２４５は、第２ボード２０の外で開放され、端子２４６は、第２ボード２０の外で接地される。この結果、ボード特定信号２９の第１電圧（端子２４５の電圧）ハイとなり、ボード特定信号２９の第２電圧（端子２４６の電圧）は、ローとなる。
【０１０２】
ボード特定信号２９の第１電圧がハイであり第２電圧がローであるため、ＦＰＧＡ２１Ａ及び２１Ｂは、第２ボード２０に搭載されていると判断する。
【０１０３】
（ＦＰＧＡ３１Ａ及び３１Ｂによる第３ボード３０の特定）
ＦＰＧＡ３１Ａ及び３１Ｂは、第３ボード３０を特定するボード特定信号３９に基づいて、自回路が第３ボード３０に搭載されていると判断する。ボード特定信号３９は、端子３４５及び３４６の電圧により表される。端子３４５の電圧が、ボード特定信号３９の第１電圧であり、端子３４６の電圧が、ボード特定信号３９の第２電圧である。
【０１０４】
端子３４５は、第３ボード３０の内部でプルアップ抵抗３９１を介して、第３ボード３０の電源に接続されている。端子３４６は、第３ボード３０の内部でプルアップ抵抗３９２を介して、第３ボード３０の電源に接続される。第３ボード３０がスロットに挿入されている場合、端子３４５は、第３ボード３０の外で接地され、端子３４６は、第３ボード３０の外で開放される。ボード特定信号３９の第１電圧（端子３４５の電圧）がローとなり、ボード特定信号３９の第２電圧（端子３４６の電圧）がハイとなる。
【０１０５】
ボード特定信号３９の第１電圧がローであり第２電圧がハイであるため、ＦＰＧＡ３１Ａ及び３１Ｂは、第３ボード３０に搭載されていると判断する。
【０１０６】
｛２．５．ソケットの特定（ステップＳ４）｝
図２を参照して、第１ボード１０において、セレクタ１３は、ＦＰＧＡ１１Ａにセレクト信号１３Ａを出力し、ＦＰＧＡ１１Ｂにセレクト信号１３Ｂを出力する。セレクト信号１３Ａがローであり、セレクト信号１３Ｂがハイである。ＦＰＧＡ１１Ａは、セレクタ１３から受けたセレクト信号１３Ａに基づいて、自回路（ＦＰＧＡ１１Ａ）がソケット１２Ａで固定されていると判断する。ＦＰＧＡ１１Ｂは、セレクタ１３から受けたセレクト信号１３Ｂに基づいて、自回路（ＦＰＧＡ１１Ｂ）がソケット１２Ｂで固定されていると判断する。
【０１０７】
第２ボード２０において、セレクタ２３は、ＦＰＧＡ２１Ａにセレクト信号２３Ａを出力し、ＦＰＧＡ２１Ｂにセレクト信号２３Ｂを出力する。セレクト信号２３Ａがローであり、セレクト信号２３Ｂがハイである。ＦＰＧＡ２１Ａは、セレクタ２３から受けたセレクト信号２３Ａに基づいて、自回路（ＦＰＧＡ２１Ａ）がソケット２２Ａで固定されていると判断する。ＦＰＧＡ２１Ｂは、セレクタ２３から出力されたセレクト信号２３Ｂに基づいて、自回路（ＦＰＧＡ２１Ｂ）がソケット２２Ｂで固定されていると判断する。
【０１０８】
第３ボード３０において、セレクタ３３は、ＦＰＧＡ３１Ａにセレクト信号３３Ａを出力し、ＦＰＧＡ３１Ｂにセレクト信号３３Ｂを出力する。セレクト信号３３Ａがローであり、セレクト信号３３Ｂがハイである。ＦＰＧＡ３１Ａは、セレクタ３３から受けたセレクト信号３３Ａに基づいて、自回路（ＦＰＧＡ３１Ａ）がソケット３２Ａで固定されていると判断する。ＦＰＧＡ３１Ｂは、セレクタ３３から出力されたセレクト信号３３Ｂに基づいて、自回路（ＦＰＧＡ３１Ｂ）がソケット３２Ｂで固定されていると判断する。
【０１０９】
｛２．６．識別コードの決定（ステップＳ５）｝
ＦＰＧＡ１１Ａ、１１Ｂ、２１Ａ、２１Ｂ、３１Ａ及び３１Ｂの各々は、ステップＳ３で特定されたボードとステップＳ４で特定されたソケットとに基づいて、識別コードを決定する（ステップＳ５）。以下、ＦＰＧＡ１１Ａを例にして、ステップＳ５を説明する。
【０１１０】
ＦＰＧＡ１１Ａにおいて、識別コード決定部１１４は、自回路（ＦＰＧＡ１１Ａ）が搭載されたボード及び自回路（ＦＰＧＡ１１Ａ）が固定されたソケットを識別コードに対応付けた２次元テーブル（図示省略）を予め保持している。ＦＰＧＡ１１Ａは、自回路が第１ボード１０に搭載されていると判断し（ステップＳ３）、自回路がソケット１２Ａに挿入されていると判断している（ステップＳ４）。識別コード決定部１１４は、２次元テーブルを参照して、ステップＳ３及びＳ４の結果に対応する識別コードを、自回路（ＦＰＧＡ１１Ａ）の識別コードに決定する。
【０１１１】
ＦＰＧＡ１１Ａ以外のＦＰＧＡは、ＦＰＧＡ１１Ａが保持する２次元テーブルと同じテーブルを保持している。このため、ＦＰＧＡ１１Ａ以外のＦＰＧＡは、ＦＰＧＡ１１Ａと同様に、自回路の識別コードを決定する（ステップＳ５）。
【０１１２】
以下の説明では、各ＦＰＧＡの識別コードが下記の場合である例を説明する。識別コードを１０進数表記で表現した場合、ＦＰＧＡ１１Ａ及び１１Ｂの識別コードが１１及び２２である。ＦＰＧＡ２１Ａ及び２１Ｂの識別コードが３３及び４４である。ＦＰＧＡ３１Ａ及び３１Ｂの識別コードが５５及び６６である。識別コードのデータ長は、１０進数表記の場合、２に固定される。
【０１１３】
｛２．７．コード配列データの送信（ステップＳ６）｝
図４を参照して、第１ボード１０〜第３ボード３０に搭載された一のＦＰＧＡは、ステップＳ５の後に、コード配列データ５０を他のＦＰＧＡに送信する（ステップＳ６）。以下、ＦＰＧＡ１１Ａを例にして、ステップＳ６を説明する。
【０１１４】
図６は、図４に示すコード配列データ送信処理（ステップＳ６）のフローチャートである。図６を参照して、ＦＰＧＡ１１Ａの配列データ生成部１１７は、今回のコード配列データ５１の送信が１回目の送信であるか否かを判断する（ステップＳ６０１）。
【０１１５】
コード配列データ５１の送信が１回目の送信である場合（ステップＳ６０１においてＹｅｓ）、配列データ生成部１１７は、自回路（ＦＰＧＡ１１Ａ）の識別コード「１１」を送信用のコード配列データ５１として生成する（ステップＳ６０２）。
【０１１６】
一方、コード配列データ５１の送信が２回目の以降の送信である場合（ステップＳ６０１においてＮｏ）、配列データ生成部１１７は、ステップＳ６０３に進む。配列データ生成部１１７は、前回のコード配列データ５１の送信時刻から予め設定された待機時間を経過するまで（ステップＳ６０３においてＹｅｓ）、待機する。
【０１１７】
待機時間の経過後（ステップＳ６０３においてＹｅｓ）、配列データ生成部１１７は、受信部１１６がコード配列データ５０を他のＦＰＧＡから受信していたか否かを判断する（ステップＳ６０４）。受信部１１６がコード配列データ５０を受信していない場合（ステップＳ６０４においてＮｏ）、配列データ生成部１１７は、ステップＳ６０３に戻る。
【０１１８】
受信部１１６がコード配列データ５０を受信していた場合（ステップＳ６０４においてＹｅｓ）、配列データ生成部１１７は、受信したコード配列データ５０が自回路（ＦＰＧＡ１１Ａ）の識別コードを含むか否かを判断する（ステップＳ６０５）。具体的には、配列データ生成部１１７は、受信したコード配列データ５０を識別コードのデータ長で区分し、区分されたデータの中で自回路（ＦＰＧＡ１１Ａ）の識別コード「１１」に一致するデータがあるか否かを判断する。
【０１１９】
受信したコード配列データ５０が自回路の識別コードを含まない場合（ステップＳ６０５においてＮｏ）、配列データ生成部１１７は、自回路の識別コードを、受信したコード配列データ５０の先頭に付加する（ステップＳ６０７）。これにより、送信用のコード配列データ５１が生成される。
【０１２０】
例えば、受信したコード配列データ５０が「３３２２４４」である場合、このコード配列データ５０は、ＦＰＧＡ１１Ａの識別コード「１１」を含まない。配列データ生成部１１７は、コード配列データ５０「３３２２４４」の先頭にＦＰＧＡ１１の識別コード「１１」を付加して、送信用のコード配列データ５１を生成する。この場合、生成されたコード配列データ５１は、「１１３３２２４４」である。
【０１２１】
一方、受信したコード配列データ５０が自回路の識別コードを含む場合（ステップＳ６０５においてＹｅｓ）、配列データ生成部１１７は、受信したコード配列データ５０に含まれる自回路の識別コードを先頭に移動させる（ステップＳ６０６）。
【０１２２】
例えば、受信したコード配列データ５０が「４４１１３３」である場合、このコード配列データ５０は、自回路（ＦＰＧＡ１１Ａ）の識別コード「１１」を含む。配列データ生成部１１７は、受信したコード配列データ５０に含まれる識別コード「１１」を先頭に移動させて、送信用のコード配列データ５１を生成する。つまり、配列データ生成部１１７は、受信したコード配列データ５０を、「４４１１３３」から「１１４４３３」に変化させる。これにより、コード配列データ５０のデータ長を抑制できるため、ＦＰＧＡ１１Ａの処理負荷を低減させることができる。
【０１２３】
送信部１１８は、ステップＳ６０２、Ｓ６０６及びＳ６０７のいずれかで生成された送信用のコード配列データ５１を配列データ生成部１１７から受ける。送信部１１８は、その受けたコード配列データ５１を、他のＦＰＧＡに送信する（ステップＳ６０８）。また、送信部１１８は、ステップＳ６０８の実行時に、ステップＳ６０２で生成されたコード配列データ５１を判断部１１５に出力する。
【０１２４】
ステップＳ６０８の後で、配列データ生成部１１７は、１回目のコード配列データ５１の送信から所定時間を経過したか否かを判断する（ステップＳ６０９）。所定時間の長さは、全てのＦＰＧＡの識別コードを含むコード配列データ５０を取得できる時間であれば、特に限定されない。例えば、情報処理装置１が備えるＦＰＧＡの数が６である場合、所定時間を、ステップＳ６０３に示す待機時間の６倍に設定することができる。また、１回目のコード配列データの１回目の送信時刻が、ＦＰＧＡ間でばらつくことを想定して、所定時間を、ステップＳ６０３に示す待機時間の６倍以上に設定してもよい。
【０１２５】
１回目のコード配列データ５０の送信から所定時間を経過した場合（ステップＳ６０９においてＹｅｓ）、配列データ生成部１１７は、図６に示す処理を終了する。その後、判断部１１５が、情報処理装置１が備えるＦＰＧＡが正常に動作しているか否かを判断する（図４に示すステップＳ７）。
【０１２６】
一方、１回目のコード配列データ５０の送信から所定時間を経過していない場合（ステップＳ６０９においてＮｏ）、配列データ生成部１１７は、全てのＦＰＧＡの識別コードを含むコード配列データ５０を取得するために、ステップＳ６０３に戻る。
【０１２７】
｛２．８．コード配列データ５０の変化｝
図７は、情報処理装置１が３台のＦＰＧＡを備える場合における、コード配列データ５０の変化の一例を示す図である。図７において、３台のＦＰＧＡは、具体的には、ＦＰＧＡ１１Ａ、２１Ａ、３１Ａである。図７を用いた説明では、第１ボード１０〜第３ボード３０の各々は、２つのＦＰＧＡを搭載しなくてもよく、１つのＦＰＧＡを搭載できると仮定する。
【０１２８】
説明を簡略化するために、ＦＰＧＡ１１Ａ、２１Ａ、３１Ａがコード配列データ５０を送信するタイミングが同じであると仮定する。
【０１２９】
図７を参照して、ＦＰＧＡ１１Ａ、２１Ａ、３１Ａの各々は、１回目のコード配列データ５０の送信において、「１１」、「３３」、「５５」を送信する。図７における「１回目の受信」に示すように、ＦＰＧＡ２１Ａは、コード配列データ５０として、「１１」及び「５５」を受信する。
【０１３０】
ＦＰＧＡ２１Ａは、１回目に受信したコード配列データ５０がＦＰＧＡ２１Ａの識別コード「３３」を含まないと判断する（ステップＳ６０５においてＮｏ）。ＦＰＧＡ２１Ａは、１回目に受信したコード配列データ５０の先頭にＦＰＧＡ２１Ａの識別コード「３３」を付加して、送信用のコード配列データ５２を生成する（ステップＳ６０７）。この結果、ＦＰＧＡ２１Ａは、図７における「２回目送信」に示すように、「３３１１」及び「３３５５」をコード配列データ５３としてＦＰＧＡ１１Ａ及び３１Ａに送信する。
【０１３１】
図７の「２回目送信」に示すように、ＦＰＧＡ１１Ａは、「１１３３」及び「１１５５」をコード配列データ５１としてＦＰＧＡ２１Ａ及び３１Ａに送信する。ＦＰＧＡ３１Ａは、「５５１１」及び「５５３３」をコード配列データ５５としてＦＰＧＡ１１Ａ及び２１Ａに送信する。
【０１３２】
この結果、図７の「２回目受信」に示すように、ＦＰＧＡ２１Ａは、「１１３３」、「１１５５」、「５５１１」及び「５５３３」をコード配列データ５０として受信する。
【０１３３】
ＦＰＧＡ２１Ａは、２回目に受信したコード配列データ５０のうち、ＦＰＧＡ２１Ａの識別コードを含む「１１３３」及び「５５３３」を特定する。ＦＰＧＡ２１Ａは、特定したコード配列データ５０（「１１３３」及び「５５３３」）に含まれるＦＰＧＡ２１Ａの識別コードを先頭に移動させる（ステップＳ６０６）。ＦＰＧＡ２１Ａが２回目に受信したコード配列データ５０は、「１１３３」及び「５５３３」から「３３１１」及び「３３５５」に変化する。
【０１３４】
ＦＰＧＡ２１Ａは、２回目に受信したコード配列データ５０のうち、ＦＰＧＡ２１Ａの識別コードを含まない「１１５５」及び「５５１１」を特定する。ＦＰＧＡ２１Ａは、特定したコード配列データ５０（「１１５５」及び「５５１１」）の先頭に、ＦＰＧＡ２１Ａの識別コードを付加する（ステップＳ６０７）。ＦＰＧＡ２１Ａが２回目に受信したコード配列データ５０は、「１１５５」及び「５５１１」から「３３１１５５」及び「３３５５１１」に変化する。
【０１３５】
この結果、図７の「３回目送信」に示すように、ＦＰＧＡ２１Ａが３回目に送信するコード配列データ５０は、「３３１１」、「３３１１５５」、「３３５５」及び「３３５５１１」である。ＦＰＧＡ１１Ａが３回目に送信するコード配列データ５１は、「１１３３」、「１１３３５５」、「１１５５」及び「１１５５３３」である。ＦＰＧＡ３１Ａが２回目に送信するコード配列データ５５は、「５５１１３３」、「５５１１」、「５５３３１１」及び「５５３３」である。
【０１３６】
ＦＰＧＡ１１Ａ、２１Ａ、３１Ａは、３回目に受信したコード配列データ５０を用いて、４回目のコード配列データ５０の送信を行う。ＦＰＧＡ２１Ａが４回目に送信するコード配列データ５０は、ＦＰＧＡ２１Ａが３回目に送信するコード配列データと同じである。ＦＰＧＡ１１Ａ及び３１Ａも同様である。以上のことから、情報処理装置１が３台のＦＰＧＡを備える場合、コード配列データ５０の送信を３回以上繰り返すことにより、搭載する全てのＦＰＧＡの識別コードを含むコード配列データ５０を生成できる。
【０１３７】
｛２．９．コード配列データの送信経路｝
図８は、図２に示すＦＰＧＡの各々から出力されるコード配列データ５０の送信経路を示す図である。図８に示すように、情報処理装置１が備えるＦＰＧＡのうち、任意の２つのＦＰＧＡは、他のＦＰＧＡを介することなく、コード配列データ５０を直接送受信できる。これにより、情報処理装置１が備える一のＦＰＧＡは、送信異常又は受信異常が他のＦＰＧＡで発生しているか否かを判断できる。
【０１３８】
以下、ＦＰＧＡ１１Ａ、１１Ｂ、２１Ａ、２１Ｂ、３１Ａ及び３１Ｂの各々から送信されるコード配列データ５０の送信経路を説明する。
【０１３９】
（コード配列データ５１）
コード配列データ５１は、ＦＰＧＡを経由することなく、ＦＰＧＡ１１ＡからＦＰＧＡ１１Ｂ、２１Ａ、２１Ｂ、３１Ａ及び３１Ｂの各々に送信される。
【０１４０】
第１ボード１０の分岐部１７１は、ＦＰＧＡ１１Ａからコード配列データ５１を受け、その受けたコード配列データ５１を２つに分岐する。分岐部１７１は、分岐された一方のコード配列データ５１をＦＰＧＡ１１Ｂに送信する。分岐部１７１は、分岐された他方のコード配列データ５１を、送信コネクタ１５２と受信コネクタ２５１を介して、第２ボード２０の分岐部２７５に送信する。
【０１４１】
分岐部２７５は、分岐部１７１から受けたコード配列データ５１を３つに分岐する。分岐部２７５は、３つに分岐されたコード配列データ５１の各々を、ＦＰＧＡ２１Ａと、ＦＰＧＡ２１Ｂと、第３ボード３０の分岐部３７３に送信する。分岐部３７３に送信されるコード配列データ５１は、送信コネクタ２５２及び受信コネクタ３５１を経由する。
【０１４２】
分岐部３７３は、分岐部２７５から受けたコード配列データ５１を２つに分岐する。分岐部３７３は、分岐された一方のコード配列データ５１をＦＰＧＡ３１Ａに送信し、分岐された他方のコード配列データ５１をＦＰＧＡ３１Ｂに送信する。
【０１４３】
（コード配列データ５２）
コード配列データ５２は、ＦＰＧＡを経由することなく、ＦＰＧＡ１１Ｂから、ＦＰＧＡ１１Ａ、２１Ａ、２１Ｂ、３１Ａ及び３１Ｂの各々に送信される。
【０１４４】
第１ボード１０の分岐部１７２は、ＦＰＧＡ１１Ｂからコード配列データ５２を受け、その受けたコード配列データ５２を２つに分岐する。分岐部１７２は、分岐された一方のコード配列データ５２をＦＰＧＡ１１Ａに送信する。分岐部１７２は、分岐された他方のコード配列データ５２を、送信コネクタ１５２と受信コネクタ２５１を介して、第２ボード２０の分岐部２７６に送信する。
【０１４５】
分岐部２７６は、分岐部１７２から受けたコード配列データ５２を３つに分岐する。分岐部２７６は、３つに分岐されたコード配列データ５２の各々を、ＦＰＧＡ２１Ａと、ＦＰＧＡ２１Ｂと、第３ボード３０の分岐部３７４とに送信する。分岐部３７４に送信されるコード配列データ５２は、送信コネクタ２５２及び受信コネクタ３５１を経由する。
【０１４６】
分岐部３７４は、分岐部２７７から受けたコード配列データ５２を２つに分岐する。分岐部３７４は、分岐された一方のコード配列データ５２をＦＰＧＡ３１Ａに送信し、分岐された他方のコード配列データ５２をＦＰＧＡ３１Ｂに送信する。
【０１４７】
（コード配列データ５３）
コード配列データ５３は、ＦＰＧＡを経由することなく、ＦＰＧＡ２１Ａから、ＦＰＧＡ１１Ａ、１１Ｂ、２１Ｂ、３１Ａ及び３１Ｂの各々に送信される。
【０１４８】
第２ボード２０の分岐部２７１は、ＦＰＧＡ２１Ａからコード配列データ５３を受け、その受けたコード配列データ５３を２つに分岐する。分岐部２７１は、分岐された一方のコード配列データ５３をＦＰＧＡ２１Ｂに送信する。分岐部２７１は、分岐された他方のコード配列データ５３を、送信コネクタ２５２と受信コネクタ３５１を介して、第３ボード３０の分岐部３７５に送信する。
【０１４９】
分岐部３７５は、分岐部２７１から受けたコード配列データ５３を３つに分岐する。分岐部３７５は、分岐された３つのコード配列データ５３の各々を、ＦＰＧＡ３１Ａと、ＦＰＧＡ３１Ｂと、第１ボード１０の分岐部１７３とに送信する。分岐部１７３に送信されるコード配列データ５３は、送信コネクタ３５２及び受信コネクタ１５１を経由する。
【０１５０】
分岐部１７３は、コード配列データ５３を分岐部３７５から受け、その受けたコード配列データ５３を２つに分岐する。分岐部１７３は、分岐された一方のコード配列データ５３をＦＰＧＡ１１Ａに送信し、分岐された他方のコード配列データ５３をＦＰＧＡ１１Ｂに送信する。
【０１５１】
（コード配列データ５４）
コード配列データ５４は、ＦＰＧＡを経由することなく、ＦＰＧＡ２１Ｂから、ＦＰＧＡ１１Ａ、１１Ｂ、２１Ａ、３１Ａ及び３１Ｂの各々に送信される。
【０１５２】
第２ボード２０の分岐部２７２は、ＦＰＧＡ２１Ｂからコード配列データ５４を受け、その受けたコード配列データ５４を２つに分岐する。分岐部２７２は、分岐された一方のコード配列データ５４をＦＰＧＡ２１Ａに送信する。分岐部２７２は、分岐された他方のコード配列データ５４を、送信コネクタ２５２と受信コネクタ３５１を介して、第３ボード３０の分岐部３７６に送信する。
【０１５３】
分岐部３７６は、分岐部２７２から受けたコード配列データ５４を３つに分岐する。分岐部３７６は、３つに分岐されたコード配列データ５４の各々を、ＦＰＧＡ３１Ａと、ＦＰＧＡ３１Ｂと、第１ボード１０の分岐部１７４に送信する。分岐部１７４に送信されるコード配列データ５４は、送信コネクタ３５２及び受信コネクタ１５１を経由する。
【０１５４】
分岐部１７４は、分岐部３７６から受けたコード配列データ５４を２つに分岐する。分岐部１７４は、分岐された一方のコード配列データ５４をＦＰＧＡ１１Ａに送信し、分岐された他方のコード配列データ５４をＦＰＧＡ１１Ｂに送信する。
【０１５５】
（コード配列データ５５）
コード配列データ５５は、ＦＰＧＡを経由することなく、ＦＰＧＡ３１Ａから、ＦＰＧＡ１１Ａ、１１Ｂ、２１Ａ、２１Ｂ及び３１Ｂの各々に送信される。
【０１５６】
第３ボード３０の分岐部３７１は、ＦＰＧＡ３１Ａからコード配列データ５５を受け、その受けたコード配列データ５５を２つに分岐する。分岐部３７１は、分岐された一方のコード配列データ５５をＦＰＧＡ３１Ｂに送信する。分岐部３７１は、分岐された他方のコード配列データ５５を、送信コネクタ３５２と受信コネクタ１５１を介して、第１ボード１０の分岐部１７５に送信する。
【０１５７】
分岐部１７５は、分岐部３７１から受けたコード配列データ５５を３つに分岐する。分岐部１７５は、３つに分岐されたコード配列データ５５の各々を、ＦＰＧＡ１１Ａと、ＦＰＧＡ１１Ｂと、第２ボード２０の分岐部２７３に送信する。分岐部２７３に送信されるコード配列データ５５は、送信コネクタ１５２及び受信コネクタ２５１を経由する。
【０１５８】
分岐部２７３は、分岐部１７５から受けたコード配列データ５５を２つに分岐する。分岐部２７３は、分岐された一方のコード配列データ５５をＦＰＧＡ２１Ａに送信し、分岐された他方のコード配列データ５５をＦＰＧＡ２１Ｂに送信する。
【０１５９】
（コード配列データ５６）
コード配列データ５６は、ＦＰＧＡを経由することなく、ＦＰＧＡ３１Ｂから、ＦＰＧＡ１１Ａ、１１Ｂ、２１Ａ、２１Ｂ及び３１Ａの各々に送信される。
【０１６０】
第３ボード３０の分岐部３７２は、ＦＰＧＡ３１Ｂからコード配列データ５６を受け、その受けたコード配列データ５６を２つに分岐する。分岐部３７２は、分岐された一方のコード配列データ５６をＦＰＧＡ３１Ａに送信する。分岐部３７２は、分岐された他方のコード配列データ５６を、送信コネクタ３５２と受信コネクタ１５１を介して、第１ボード１０の分岐部１７６に送信する。
【０１６１】
分岐部１７６は、分岐部３７２から受けたコード配列データ５６を３つに分岐する。分岐部１７６は、３つに分岐されたコード配列データ５６の各々を、ＦＰＧＡ１１Ａと、ＦＰＧＡ１１Ｂと、第２ボード２０の分岐部２７４とに送信する。分岐部２７４に送信されるコード配列データは、送信コネクタ１５２及び受信コネクタ２５１を経由する。
【０１６２】
分岐部２７４は、分岐部１７６から受けたコード配列データ５６を２つに分岐する。分岐部２７４は、分岐された一方のコード配列データ５６をＦＰＧＡ２１Ａに送信し、分岐された他方のコード配列データ５６をＦＰＧＡ２１Ｂに送信する。
【０１６３】
｛２．１０．動作判断（ステップＳ７）｝
情報処理装置１が備える一のＦＰＧＡは、他のＦＰＧＡから送信されたコード配列データ５０を取得する。一のＦＰＧＡは、取得したコード配列データ５０と、自回路が最後に送信したコード配列データ５０とに基づいて、情報処理装置１が備えるＦＰＧＡの各々が正常に動作するか否かを判断する（図４に示すステップＳ７）。
【０１６４】
図９は、図４に示す動作判断処理（ステップＳ７）のフローチャートである。情報処理装置１が備えるＦＰＧＡの各々は、図９に示す処理を実行する。以下、ＦＰＧＡ１１Ａを例にして、動作判断処理（ステップＳ７）を説明する。
【０１６５】
図９を参照して、ＦＰＧＡ１１Ａの判断部１１５は、全てのＦＰＧＡからコード配列データ５０を取得したか否かを判断する（ステップＳ７０１）。ステップＳ７０１において、全てのＦＰＧＡは、自回路を含む。具体的には、判断部１１５は、取得したコード配列データ５０の先頭に位置する識別コードを抽出し、受信したコード配列データ５０の送信元を抽出した識別コードに基づいて特定する。判断部１１５は、特定した送信元の数を、ステップＳ２で特定された搭載数と比較する。
【０１６６】
特定した送信元の数が、ステップＳ２で特定された搭載数よりも少ない場合、判断部１１５は、コード配列データ５０を全てのＦＰＧＡから受信できないと判断する(ステップＳ７０１においてＮｏ)。判断部１１５は、送信異常が発生したＦＰＧＡがあると判断する（ステップＳ７０７）。すなわち、判断部１１５は、コード配列データ５０を参照することにより、送信異常の発生を速やかに検出できる。
【０１６７】
判断部１１５は、送信異常が発生したＦＰＧＡを特定する（ステップＳ７０８）。具体的には、判断部１１５は、使用状況信号１８に基づいて、使用状況信号１８に基づいて使用中のボードを特定し、特定したボードに搭載されたＦＰＧＡの識別コードを取得する。ＦＰＧＡの識別コードの取得は、自回路（ＦＰＧＡ１１Ａ）の識別コードの決定（ステップＳ５）に用いられた２次元テーブルから取得する。
【０１６８】
２次元テーブルから取得した識別コードが受信部１１６から受けたコード配列データ５０の先頭に付加されていない場合、判断部１１５は、２次元テーブルから取得した識別コードを使用するＦＰＧＡで送信異常が発生していると判断する。
【０１６９】
例えば、使用されるボードに２つのＦＰＧＡが搭載される運用が行われていると仮定する。この仮定において、第２ボード２０が使用中である場合、判断部１１５は、２次元テーブルを参照して、第２ボード２０に搭載されたＦＰＧＡが使用する２つの識別コード「３３」及び「４４」を決定する。判断部１１５は、第２ボード２０が使用中であるにも関わらず、識別コード「３３」が先頭に付加されたコード配列データ５３を取得できていない場合、ＦＰＧＡ２１Ａで送信異常が発生していると判断する。
【０１７０】
ステップＳ７０１の説明に戻る。特定した送信元の数が、ステップＳ２で特定された搭載数に一致する場合、判断部１１５は、コード配列データ５０を全てのＦＰＧＡから受信したと判断する(ステップＳ７０１においてＹｅｓ)。この場合、判断部１１５は、送信異常が発生したＦＰＧＡがないと判断し、ステップＳ７０２に進む。
【０１７１】
判断部１１５は、受信したコード配列データ５０の中から、最長のコード配列データを送信元ごとに特定する（ステップＳ７０２）。例えば、情報処理装置１におけるＦＰＧＡの搭載数が３である場合、判断部１１５は、コード長が６であるコード配列データ５０を送信元ごとに特定する。
【０１７２】
判断部１１５は、ステップＳ７０２で特定されたコード配列データ５０に含まれる識別コードが一致するか否かを判断する（ステップＳ７０３）。
【０１７３】
例えば、図７に示すように、異常がない３つのＦＰＧＡ１１Ａ、２１Ａ及び３１Ａがコード配列データ５０を送受信した場合、ＦＰＧＡ１１Ａの判断部１１５は、ＦＰＧＡ１１Ａが送信した最長のコード配列データ５１として、「１１３３５５」及び「１１５５３３」を特定する。同様に、判断部１１５は、ＦＰＧＡ２１Ａが送信した最長のコード配列データ５３として、「３３１１５５」及び「３３５５１１」を特定し、ＦＰＧＡ３１Ａが送信した最長のコード配列データ５５として、「５５３３１１」及び「５５１１３３」を特定する。判断部１１５により特定された６つのコード配列データ５０は、識別コード「１１」、「３３」及び「５５」を含む。つまり、ステップＳ７０２で特定されたコード配列データ５０に含まれる識別コードが全て一致する。
【０１７４】
ステップＳ７０２で特定されたコード配列データ５０に含まれる識別コードが一致する場合（ステップＳ７０３においてＹｅｓ）、判断部１１５は、全てのＦＰＧＡが正常に動作していると判断する（ステップＳ７０４）。
【０１７５】
ステップＳ７０２において、図７に示す３つのＦＰＧＡ１１Ａ、２１Ａ及び３１Ａのうち、ＦＰＧＡ２１Ａが、ＦＰＧＡ３１Ａから送信されたコード配列データ５５を受信できないと仮定する。この仮定の下では、ＦＰＧＡ２１Ａは、識別コード「５５」が先頭に付加されたコード配列データ５０を受信できない。つまり、ＦＰＧＡ１１Ａの判断部１１５は、ＦＰＧＡ２１Ａが送信した最長のコード配列データ５３として、「３３１１」を特定する。また、判断部１１５は、ＦＰＧＡ１１Ａが送信した最長のコード配列データ５１として、「１１３３５５」及び「１１５５３３」を特定し、ＦＰＧＡ３１Ａが送信した最長のコード配列データ５５として、「５５３３１１」及び「５５１１３３」を特定する。
【０１７６】
判断部１１５により特定された５つのコード配列データ５０のうち、ＦＰＧＡ２１Ａから送信されたコード配列データ５０（「３３１１」）は、ＦＰＧＡ３１Ａの識別コード「５５」を含まない。ステップＳ７０２で特定されたコード配列データ５０に含まれる識別コードが一致しないため（ステップＳ７０３においてＮｏ）、判断部１１５は、受信異常のＦＰＧＡが存在すると判断する（ステップＳ７０５）。これにより、判断部１１５は、受信異常が発生した箇所を容易に特定できる。
【０１７７】
判断部１１５は、ステップＳ７０２で特定されたコード配列データ５０を用いて、受信異常が発生したＦＰＧＡを特定する（ステップＳ７０６）。上述のように、図７に示す３つのＦＰＧＡ１１Ａ、２１Ａ及び３１Ａのうち、ＦＰＧＡ２１Ａが、ＦＰＧＡ３１Ａからコード配列データ５０を受信できないと仮定する。この仮定の下では、ＦＰＧＡ２１Ａから送信されたコード配列データ５０（「３３１１」）が、ＦＰＧＡ３１Ａの識別コードを含まない。一方、ＦＰＧＡ１１Ａ、３１Ａから送信されたコード配列データ（「１１３３５５」、「１１５５３３」、「５５１１３３」及び「５５３３１１」）は、ＦＰＧＡ３１Ａの識別コードを含む。
つまり、判断部１１５は、ステップＳ７０２で特定されたコード配列データ５０から、最もデータ長の短いコード配列データ５０に含まれない識別コードを抽出する。判断部１１５は、抽出されたコード配列データ５０が包含しない識別コードを使用するＦＰＧＡで受信異常が発生していると判断する。
【０１７８】
ステップＳ７０４、Ｓ７０６又はＳ７０８の後に、判断部１１５は、各ＦＰＧＡについての判断結果をユーザ端末３に通知する（ステップＳ７０９）。具体的には、送信異常が検出された場合、判断部１１５は、送信異常が発生しているＦＰＧＡの識別コードをユーザ端末３に送信する。受信異常が検出された場合、判断部１１５は、受信異常が発生しているＦＰＧＡの識別コードをユーザ端末３に送信する。全てのＦＰＧＡで異常が発生していない場合、判断部１１５は、異常が発生していないことを示すメッセージをユーザ端末３に送信する。
【０１７９】
ＦＰＧＡ１１Ａ、１１Ｂ、２１Ａ、２１Ｂ、３１Ａ及び３１Ｂの各々がステップＳ７を実行する。従って、ユーザ端末３は、ステップＳ７の動作判断結果を各ＦＰＧＡから受信する。ユーザ端末３は、各ＦＰＧＡから受けた動作判断結果を図示しないモニタに表示する。オペレータは、ユーザ端末３の表示に基づいて、ＥＣＵの評価を開始するか、あるいは、情報処理装置１の設定を再確認する。
【０１８０】
以上説明したように、本実施の形態に係る情報処理装置１において、ＦＰＧＡ１１Ａ、１１Ｂ、２１Ａ、２１Ｂ、３１Ａ、３１Ｂの各々は、使用状況信号１８に基づいて情報処理装置１が備えるＦＰＧＡの数を特定する。これにより、情報処理装置１が備えるＦＰＧＡは、通信すべきＦＰＧＡの数を容易に特定できる。また、ＦＰＧＡ１１Ａ、１１Ｂ、２１Ａ、２１Ｂ、３１Ａ、３１Ｂの各々は、情報処理装置１が備えるＦＰＧＡが互いに通信できるか否かを判断する。これにより、ＥＣＵ２の評価を開始する前に、情報処理装置１の異常を速やかに検出することができる。
【０１８１】
上記実施の形態では、第１ボード１０〜第３ボード３０が搭載するＦＰＧＡの数が等しい例を説明したが、これに限られない。第１ボード１０〜第３ボード３０が搭載するＦＰＧＡの数は、等しくなくてもよい。例えば、第１ボード１０が搭載するＦＰＧＡの数が１であり、第２ボード２０及び第３ボード３０が搭載するＦＰＧＡの数は、２であってもよい。この場合、各ボードは、各ボードに搭載されるＦＰＧＡの数に応じた個別使用状況信号を出力するようにすればよい。ＦＰＧＡは、一の各ボードに搭載されているＦＰＧＡの数が１以上である場合、この一のボードが使用中であると判断できる。
【０１８２】
また、情報処理装置１が、第１ボード１０〜第３ボード３０を備える例を説明したが、これに限られない。情報処理装置１は、少なくとも１つのボードを備えていればよい。また、各ボードは、少なくとも１つのＦＰＧＡを搭載可能であればよい。
【０１８３】
上記実施の形態では、ＦＰＧＡが、情報処理装置１が備えるＦＰＧＡの数を特定した後に、情報処理装置１が備えるＦＰＧＡが正常に動作するか否かを判断する（ステップＳ７）例を説明した。しかし、ＦＰＧＡは、ステップＳ７を実行しなくてもよく、情報処理装置１が備えるＦＰＧＡの数を特定できればよい。
【０１８４】
上記実施の形態では、ＦＰＧＡが、送信異常の発生及び受信異常の発生の両者を検出する例を説明したが、これに限られない。ＦＰＧＡは、図９に示す動作判断処理（ステップＳ７）において、ステップＳ７０２〜Ｓ７０６を実行しなくてもよい。つまり、ＦＰＧＡは、受信異常が発生しているか否かを判断しなくもよい。あるいは、ＦＰＧＡは、図９に示す動作判断処理（ステップＳ７）において、ステップＳ７０１、Ｓ７０７〜Ｓ７０８を実行しなくてもよい。つまり、ＦＰＧＡは、送信異常が発生しているか否かを判断しなくもよい。
【０１８５】
あるいは、ＦＰＧＡは、他のＦＰＧＡから受信したコード配列データ５０と自回路が送信したコード配列データ５０とが、情報処理装置１が備える全てのＦＰＧＡの識別コードを含む場合、情報処理装置１が備える全てのＦＰＧＡが互いに通信可能であると判断してもよい。これにより、ＦＰＧＡは、情報処理装置１が備えるＦＰＧＡが互いに通信可能であるか否かを容易に判断できる。
【０１８６】
また、上記実施の形態では、第１ボード１０〜第３ボード３０がＦＰＧＡを搭載する例を説明したが、これに限られない。第１ボード１０〜第３ボード３０は、図３に示す各機能ブロックを搭載する集積回路を搭載していればよく、その種類は特に限定されない。
例えば、集積回路は、汎用プロセッサであってもよく、集積回路に搭載される機能ブロックがソフトウェアにより実現されてもよい。また、集積回路は、専用回路やコンフィギャラブル・プロセッサであってもよい。
【０１８７】
また、上記実施の形態では、ＦＰＧＡ１１Ａ及び１１Ｂが、車両のコンバータ又はモータの動作を模擬演算する例を説明した。しかし、ＦＰＧＡ１１Ａ及び１１Ｂが模擬演算する対象は、例えば、航空機に搭載されるモータ及びコンバータなどでもよく、特に限定されない。
【０１８８】
以上、本発明の実施の形態を説明したが、上述した実施の形態は本発明を実施するための例示に過ぎない。よって、本発明は上述した実施の形態に限定されることなく、その趣旨を逸脱しない範囲内で上述した実施の形態を適宜変形して実施することが可能である。
【符号の説明】
【０１８９】
１００  シミュレーションシステム
１  情報処理装置
２  ＥＣＵ
３  ユーザ端末
４  中継装置
１１Ａ、１１Ｂ、２１Ａ、２１Ｂ、３１Ａ、３１Ｂ  ＦＰＧＡ
１２Ａ、１２Ｂ、２２Ａ、２２Ｂ、３２Ａ、３２Ｂ  ソケット
１３、２３、３３  セレクタ
１４、２４、３４  バックプレーンコネクタ
１５、２５、３５  ＬＶＤＳコネクタ
１６、２６、３６  ＬＡＮ通信部
１１１  使用状況信号取得部
１１２  ボード特定信号取得部
１１３  搭載数特定部
１１４  識別コード決定部
１１５  判断部
１１６  受信部
１１７  配列データ生成部
１１８  送信部
２０  第２ボード
３０  第３ボード
【図１】
2020035357.tif 000003
【図２】
2020035357.tif 000004
【図３】
2020035357.tif 000005
【図４】
2020035357.tif 000006
【図５】
2020035357.tif 000007
【図６】
2020035357.tif 000008
【図７】
2020035357.tif 000009
【図８】
2020035357.tif 000010
【図９】
2020035357.tif 000011