(57)【特許請求の範囲】
【請求項１】
相互に複数の信号線により接続されるプログラマブルデバイスを搭載した電子機器であって、
前記プログラマブルデバイスは、
前記複数の信号線を検査して、前記複数の信号線のうち正常な信号線の数を検出する検出部と、
前記正常な信号線の数に応じて、前記プログラマブルデバイス間でビット毎に前記複数の信号線の各々を介して伝送される通信データの誤りを検出する方式を、ビット数が１である冗長ビットを用いる第１方式、ビット数が１よりも大きい所定数である冗長ビットを用いる第２方式、及び、前記第１方式と前記第２方式との両者を行う第３方式のうちから選択する選択部と、
前記選択部により選択された方式を用いて前記通信データの各ビットに対する誤り検出処理を行う誤り処理部と、
を備え、
前記正常な信号線のうちから前記通信データのビット毎の伝送に用いる信号線を除いた本数の信号線の一部を、冗長ビットのビット毎の伝送に用いる制御信号線とし、
前記選択部は、
前記制御信号線の本数が前記所定数よりも少ない場合、前記第１方式を選択し、
前記制御信号線の本数が前記所定数の倍数である場合、前記第２方式を選択し、
その他の場合、前記第３方式を選択し、
前記第３方式を選択した場合には、
前記第２方式に用いる冗長ビットの伝送に、前記所定数の倍数の値のうちで前記制御信号線の本数を超えない範囲で最大の値に相当する本数の前記制御信号線を割り当てて、前記通信データの各ビットのうちの一部のビットに対する前記第２の方式での誤り検出処理を前記誤り処理部に行わせると共に、
前記第２方式についての伝送に使用しない残りの前記制御信号線の本数に相当するグループ数のグループの各々についての冗長ビットであって前記通信データの各ビットのうちの残りのビットがグループ化された該グループに属する各ビットに対する前記第１の方式での誤りの検出に用いる該冗長ビットの伝送に、前記残りの前記制御信号線を割り当てて、該グループの各々についての前記第１の方式での誤り検出処理を前記誤り処理部に行わせる、
ことを特徴とする電子機器。
【請求項２】
前記グループ化では、属するビットの数がグループ間で均等になるようにグループ化される、
ことを特徴とする請求項１記載の電子機器。
【請求項３】
前記プログラマブルデバイスは、
送信された前記通信データを記憶する記憶部と、
前記通信データに誤りが検出され、且つ該誤りの訂正が行われない場合、前記通信データの送信元に対して、前記記憶部に記憶された通信データの再送要求を行う再送要求部と、
を備えることを特徴とする請求項１又は２に記載の電子機器。
【請求項４】
相互に複数の信号線により接続されるプログラマブルデバイス間で通信される通信データの誤りを検出するプログラマブルデバイス間の通信誤り検出方法であって、
前記複数の信号線を検査して、前記複数の信号線のうち正常な信号線の数を検出し、
前記正常な信号線の数に応じて、前記プログラマブルデバイス間でビット毎に前記複数の信号線の各々を介して伝送される通信データの誤りを検出する方式を、ビット数が１である冗長ビットを用いる第１方式、ビット数が１よりも大きい所定数である冗長ビットを用いる第２方式、及び、前記第１方式と前記第２方式との両者を行う第３方式のうちから選択し、
選択された方式を用いて前記通信データの各ビットに対する誤り検出処理を行い、
前記正常な信号線のうちから前記通信データのビット毎の伝送に用いる信号線を除いた本数の信号線の一部を、冗長ビットのビット毎の伝送に用いる制御信号線とし、
前記選択では、
前記制御信号線の本数が前記所定数よりも少ない場合、前記第１方式を選択し、
前記制御信号線の本数が前記所定数の倍数である場合、前記第２方式を選択し、
その他の場合、前記第３方式を選択し、
前記第３方式を選択した場合には、
前記第２方式に用いる冗長ビットの伝送に、前記所定数の倍数の値のうちで前記制御信号線の本数を超えない範囲で最大の値に相当する本数の前記制御信号線を割り当てて、前記通信データの各ビットのうちの一部のビットに対する前記第２の方式での前記誤り検出処理を行い、
前記第２方式についての伝送に使用しない残りの前記制御信号線の本数に相当するグループ数のグループの各々についての冗長ビットであって前記通信データの各ビットのうちの残りのビットがグループ化された該グループに属する各ビットに対する前記第１の方式での誤りの検出に用いる該冗長ビットの伝送に、前記残りの前記制御信号線を割り当てて、該グループの各々についての前記第１の方式での前記誤り検出処理を行う、
ことを特徴とするプログラマブルデバイス間の通信誤り検出方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、電子機器および誤り検出方法に関する。
【背景技術】
【０００２】
Field Programmable Gate Array(FPGA)は、論理回路の機能を変更可能なプログラマブルデバイスであり、例えば、通信機器や映像機器等の電子機器に搭載される。近年では、複数のＦＰＧＡを搭載した電子機器が用いられている。ＦＰＧＡ同士はバスにより相互に接続され、バスを介して、ＦＰＧＡ間で通信が行われる。
【０００３】
関連する技術として、主制御ボードと周辺制御ボートとの間の接続状況を監視する２つのプログラマブルデバイスを接続監視装置が提案されている（例えば、特許文献１を参照）。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００９−１８７２８４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
バスを介してＦＰＧＡ間でデータが通信される際に、データが正常に通信されない場合がある。例えば、バスに含まれる信号線自体に定常的な障害が生じている場合や、通信時におけるソフトウェアエラー等の一過性の障害が生じている場合、データのうち１以上のビットに誤りを生じることがある。
【０００６】
このため、データの各ビットについて誤り検出が行われる。データの誤りは、該データの受信側のＦＰＧＡにおいて検出される。この場合、データには誤り検出用のビットが付加され、受信側のＦＰＧＡにおいて、該誤り検出用のビットを用いて、誤り検出が行われる。
【０００７】
誤り検出には幾つかの方式があり、誤り検出の方式によって、誤り検出に使用されるビット数が異なる。バスで使用可能なビット数は、障害の状況等により変化するため、誤り検出のために割り当てられるビット数も、障害の状況等により変化する。
【０００８】
誤り検出のために割り当てられるビット数によって、どのようにして誤り検出が行われるかも変化する。この場合、適切な誤り検出方式が選択されないことがあり、プログラマブルデバイス間の通信の信頼性が低下する。
【０００９】
１つの側面として、本発明は、プログラマブルデバイス間の通信の信頼性を向上させることを目的とする。
【課題を解決するための手段】
【００１０】
１つの態様では、電子機器は、相互に複数の信号線により接続されるプログラマブルデバイスを搭載した電子機器であって、前記プログラマブルデバイスは、前記複数の信号線を検査して、前記複数の信号線のうち正常な信号線の数を検出する検出部と、前記正常な信号線の数に応じて、前記プログラマブルデバイス間でビット毎に前記複数の信号線の各々を介して伝送される通信データの誤りを検出する方式を、ビット数が１である冗長ビットを用いる第１方式、ビット数が１よりも大きい所定数である冗長ビットを用いる第２方式、及び、前記第１方式と前記第２方式との両者を行う第３方式のうちから選択する選択部と、を備え、前記正常な信号線のうちから前記通信データのビット毎の伝送に用いる信号線を除いた本数の信号線の一部を、冗長ビットのビット毎の伝送に用いる制御信号線とし、前記選択部は、前記制御信号線の本数が前記所定数よりも少ない場合、前記第１方式を選択し、前記制御信号線の本数が前記所定数の倍数である場合、前記第２方式を選択し、その他の場合、前記第３方式を選択し、前記第３方式を選択した場合には、前記第２方式に用いる冗長ビットの伝送に、前記所定数の倍数の値のうちで前記制御信号線の本数を超えない範囲で最大の値に相当する本数の前記制御信号線を割り当てて、前記通信データの各ビットのうちの一部のビットに対する前記第２の方式での誤り検出処理を前記誤り処理部に行わせると共に、前記第２方式についての伝送に使用しない残りの前記制御信号線の本数に相当するグループ数のグループの各々についての冗長ビットであって前記通信データの各ビットのうちの残りのビットがグループ化された該グループに属する各ビットに対する前記第１の方式での誤りの検出に用いる該冗長ビットの伝送に、前記残りの前記制御信号線を割り当てて、該グループの各々についての前記第１の方式での誤り検出処理を前記誤り処理部に行わせる。
【発明の効果】
【００１１】
１つの側面によれば、プログラマブルデバイス間の通信の信頼性を向上させることができる。
【図面の簡単な説明】
【００１２】
【図１】電子機器の一例を示す図（その１）である。
【図２】バスを信号線で表した場合の一例を示す図である。
【図３】電子機器の一例を示す図（その２）である。
【図４】電子機器の一例を示す図（その３）である。
【図５】割り当てテーブルの一例を示す図（その１）である。
【図６】割り当てテーブルの一例を示す図（その２）である。
【図７】電子機器の一例を示す図（その４）である。
【図８】割り当てテーブルの適用例を示す図（その１）である。
【図９】割り当てテーブルの一例を示す図（その２）である。
【図１０】割り当てテーブルの一例を示す図（その３）である。
【図１１】電子機器の一例を示す図（その５）である。
【図１２】電子機器の一例を示す図（その６）である。
【図１３】電子機器の一例を示す図（その７）である。
【図１４】実施形態の処理の流れの一例を示すシーケンスチャートである。
【発明を実施するための形態】
【００１３】
以下、図面を参照して、実施形態について説明する。図１は、電子機器１の一例を示す。電子機器１には、通信機器や映像機器等の任意の機器が適用されてよい。電子機器１には、複数のＦＰＧＡが搭載される。
【００１４】
ＦＰＧＡは、論理回路の機能を変更可能なプログラマブルデバイスの一例である。例えば、ＦＰＧＡのLook Up Table(LUT)が変更されることにより、論理回路をＡＮＤ回路やＯＲ回路等、任意の論理回路として機能させることができる。
【００１５】
図１以降の例において、電子機器１には、第１ＦＰＧＡ１１および第２ＦＰＧＡ１２の２つのＦＰＧＡが搭載されるものとする。ただし、電子機器１に搭載されるＦＰＧＡの数は３つ以上であってもよい。
【００１６】
第１ＦＰＧＡ１１は、データを送信する側のＦＰＧＡである。第２ＦＰＧＡ１２は、データを受信する側のＦＰＧＡである。ただし、第１ＦＰＧＡ１１がデータ受信側のＦＰＧＡであってもよいし、第２ＦＰＧＡ１２がデータ送信側のＦＰＧＡであってもよい。
【００１７】
従って、第１ＦＰＧＡ１１と第２ＦＰＧＡ１２とは同様の機能を有する。ただし、第１ＦＰＧＡ１１および第２ＦＰＧＡ１２は、図１の例に示す機能以外の機能を有していてもよい。
【００１８】
第１ＦＰＧＡ１１と第２ＦＰＧＡ１２との間はバス１３により接続される。第１ＦＰＧＡ１１は第２ＦＰＧＡ１２に対して、バス１３を介してデータを送信する。バス１３には、複数の信号線が含まれる。
【００１９】
次に、第１ＦＰＧＡ１１および第２ＦＰＧＡ１２について説明する。上述したように、第１ＦＰＧＡ１１および第２ＦＰＧＡ１２は同等の機能を有する。従って、図１以降、第１ＦＰＧＡ１１の各部には「Ａ」を付し、第２ＦＰＧＡ１２の各部には「Ｂ」を付して、説明する。
【００２０】
以下、第１ＦＰＧＡ１１と第２ＦＰＧＡ１２とを総称して、単にＦＰＧＡと称することがある。ＦＰＧＡは、Identification(ID)付与部２１と試験データ生成部２２とリングバッファ２３とマルチプレクサ２４と選択部２５と検出部２６と正常ビット情報生成部２７と正常ビット情報保持部２８と誤り処理部２９と再送要求部３０とを含む。
【００２１】
実施形態では、ＦＰＧＡの上記の各部は所定の回路により実現される。ＦＰＧＡは、上記の各部以外の機能を有してもよい。ＩＤ付与部２１は、送信元のＦＰＧＡ（第１ＦＰＧＡ１１）から送信先のＦＰＧＡ（第２ＦＰＧＡ１２）に送信されるデータ（送信データ）に対してＩＤを付与する。
【００２２】
ＩＤは、送信データを特定する情報である。実施形態では、送信データは６４ビットのデータであるものとする。ただし、送信データのビット数は６４ビットには限定されない。
【００２３】
実施形態では、電子機器１に電源が投入された際（電源がＯＮになった際）に、試験データ生成部２２は、試験データを生成する。ただし、試験データは任意のタイミングで生成されてもよい。試験データは、バス１３を介した通信に障害があるか否かを検査するためのデータである。
【００２４】
バス１３の１本の信号線に１ビットが割り当てられる。実施形態では、バス１３の信号線の本数は８２本であるものとする。ただし、バス１３の信号線の本数は８２本には限定されない。
【００２５】
試験データはバス１３の通信の検査を行うためのデータであるため、試験データのビット数は、バス１３の信号線の本数と同じである。実施形態の場合、バス１３の信号線の本数は８２本であるため、試験データは８２ビットである。
【００２６】
また、バス１３の信号線の本数（＝８２本）は、第１ＦＰＧＡ１１から第２ＦＰＧＡ１２に送信される送信データのビット数より多い。実施形態の場合、送信データは６４ビットであるものとする。
【００２７】
リングバッファ２３は、ＩＤが付与された送信データを記憶する。リングバッファ２３は記憶部の一例である。ＩＤが付与された送信データはリングバッファ以外の記憶部に記憶されてもよい。例えば、該送信データは、リングバッファ以外のバッファに記憶されてもよい。
【００２８】
マルチプレクサ２４は、送信データおよび試験データを入力する。マルチプレクサ２４は、選択部２５の制御に基づいて、バス１３に含まれる各信号線に、該バス１３を介して通信されるデータの各ビットを割り当てる。
【００２９】
検出部２６は、バス１３を介して、相手方のＦＰＧＡから受信した試験データと自身が保持する試験データとを１ビットずつ比較して、バス１３の各信号線による通信が正常であるかを検出する。
【００３０】
このため、検出部２６は、相手方のＦＰＧＡが送信する試験データと同じ試験データを保持する。検出部２６は、相手方のＦＰＧＡから受信した試験データと自身が保持する試験データとを１ビットずつ比較し、同じ値であれば、そのビットは正常であり、異なる値であれば、そのビットは正常でないことを検出する。
【００３１】
正常ビット情報生成部２７は、検出結果に基づいて、正常ビット情報を生成する。生成された正常ビット情報には、正常ビット情報生成部２７により、正常であることが検出された各ビットに対して所定の割り当てが行われる。
【００３２】
正常ビット情報保持部２８は、相手方のＦＰＧＡの正常ビット情報生成部２７が生成した正常ビット情報を入力し、保持する。正常ビット情報保持部２８が保持する正常ビット情報は、選択部２５に入力される。
【００３３】
誤り処理部２９は、受信した送信データに対して誤り処理を行う。誤り処理部２９は、誤り検出を行う場合もあり、誤り訂正を行う場合もあり、誤り検出および誤り訂正の両方を行う場合もある。
【００３４】
実施形態では、誤り検出を行う方式は、パリティ方式またはError Checking and Correcting(ECC)方式の何れかであるものとする。パリティ方式は、１ビットを用いて、複数ビットの誤り検出を行う方式である。パリティ方式は、第１方式の一例である。
【００３５】
ＥＣＣ方式は、複数ビットを用いて、複数ビットの誤り検出を行う方式である。また、ＥＣＣ方式は、検出された誤りを訂正できる方式でもある。ＥＣＣ方式は、第２方式の一例である。誤り検出を行う方式は、パリティ方式およびＥＣＣ方式以外の任意の方式であってもよい。
【００３６】
再送要求部３０は、誤り処理部２９Ａにより誤り訂正が行われない場合、相手方のＦＰＧＡのリングバッファ２３に記憶されている送信データの再送を要求するための再送要求を相手方のＦＰＧＡに送信する。
【００３７】
例えば、誤り処理部２９Ａが、ＥＣＣ方式による誤り検出を行った結果、２ビットの誤りを検出したとする。この場合、誤り訂正を行うことができないため、誤り処理部２９Ａは、誤り訂正を行わない。
【００３８】
図２は、バス１３を信号線で表した場合の一例を示す。図２の例の場合、第１ＦＰＧＡ１１と第２ＦＰＧＡ１２とは、８２本の信号線により接続される。上述したように、送信データのビット数は６４ビットであるため、バス１３の信号線の本数は、送信データの通信に使用される信号線の本数より１８本多い。
【００３９】
図３以降、実施形態の動作について説明する。上述したように、第１ＦＰＧＡ１１は送信側であり、第２ＦＰＧＡ１２は受信側であるものとする。図３以降、一点鎖線は、データや情報の流れを示す。
【００４０】
電子機器１の電源が投入されると、試験データ生成部２２Ａは、８２ビットの試験データを生成する。生成された試験データは、マルチプレクサ２４Ａに入力される。実施形態では、バス１３に含まれる各信号線のそれぞれに試験データの８２ビットが割り当てられるものとする。
【００４１】
マルチプレクサ２４Ａは、試験データの各ビットを、対応するバス１３の信号線に送信する。これにより、第２ＦＰＧＡ１２は試験データを受信する。第２ＦＰＧＡ１２が受信した試験データは、検出部２６Ｂに入力される。
【００４２】
検出部２６Ｂは、試験データ生成部２２Ａが生成した試験データと同じ試験データを保持する。そして、検出部２６Ｂは、入力した試験データと保持している試験データとを１ビットずつ比較する。
【００４３】
例えば、入力した試験データと検出部２６Ｂが保持している試験データとの全てのビットの値が同じであれば、検出部２６Ｂは、バス１３に含まれる全ての信号線による通信は正常であることを検出する。
【００４４】
例えば、入力した試験データのうち７５ビット目の値が「１」であり、保持している試験データの値が「０」である場合、検出部２６Ｂは、バス１３の７５ビット目の信号線による通信が正常でなく、それ以外は正常であることを検出する。
【００４５】
検出部２６Ｂによる比較の結果、入力した試験データと検出部２６Ｂが保持している試験データとで値が異なるビットが複数存在する場合もある。この場合、検出部２６Ｂは、バス１３の各信号線のうち複数の信号線による通信が正常でないことを検出する。
【００４６】
正常ビット情報生成部２７Ｂは、検出部２６Ｂによる検出の結果、８２ビットのバス１３の各ビットについて、正常なビットを示す正常ビット情報を生成する。正常ビット情報は、正常でないことが検出されたビットが除外された情報である。
【００４７】
例えば、上述したように、バス１３の７５ビット目の信号線が正常でないことが検出された場合、正常ビット情報生成部２７Ｂは、該７５ビット目の信号線を除外した正常ビット情報を生成する。
【００４８】
この場合、正常ビット情報は、８１ビットについての情報を示す。正常ビット情報生成部２７Ｂは、正常であることを示す８１ビットの信号線のうち、それぞれ所定のビットを送信データと再送要求と制御信号とに割り当てる。
【００４９】
正常ビット情報生成部２７Ｂは、正常であることを示す信号線に対して、送信データ用のビットを優先的に割り当てる。上述の場合、正常ビット情報生成部２７Ｂは、正常であることを示す８１ビットの信号線のうち、６４ビット分の信号線を送信データのために優先的に割り当てる。
【００５０】
正常ビット情報生成部２７Ｂは、残りの１７ビット分の信号線のうち、再送要求を行うための信号線を割り当てる。実施形態では、再送要求を行うために２ビットが使用されるものとする。従って、正常ビット情報生成部２７Ｂは、２本の信号線を再送要求用のビットに割り当てる。
【００５１】
正常ビット情報生成部２７Ｂは、残りの１５ビット分の信号線を制御信号用のビットに割り当てる。制御信号は、誤り検出を行うための信号であり、誤り訂正が行われる場合には、該制御信号は、誤り訂正を行うためにも使用される。
【００５２】
この場合、実施形態では、１５ビットを用いて、送信データの誤り検出（および誤り訂正）を行う。上述したように、正常ビット情報生成部２７Ｂは、正常であることを示す各信号線に対して、送信データ、再送要求、制御信号の優先順で信号線の割り当てを行う。
【００５３】
このため、バス１３のうち正常でない信号線の数が増えると、制御信号に割り当てられる信号線の数は少なくなる。つまり、誤り検出や誤り訂正のために割り当てられる信号線（ビット）の数が少なくなる。
【００５４】
図４の例に示されるように、正常ビット情報生成部２７Ｂは、生成された正常ビット情報を、バス１３を介して、第１ＦＰＧＡ１１に送信する。第１ＦＰＧＡ１１が受信した正常ビット情報は、正常ビット情報保持部２８Ａに入力される。これにより、正常ビット情報保持部２８Ａは、正常ビット情報生成部２７Ａが生成した正常ビット情報を保持する。
【００５５】
次に、選択部２５Ａが保持する割り当てテーブルについて、図５および図６の例を参照して説明する。割り当てテーブルは、送信データ、再送要求および制御信号の各ビットをバス１３の各信号線に割り当てるためのテーブルである。なお、図５以降、「ビット」は「bit」と表記される場合がある。
【００５６】
割り当てテーブルは、接続パターンと正常ビット数と送信データビット数と再送要求のビット数と制御信号ビット数と誤り処理方式とビット割り当てとの項目を含む。接続パターンは、正常ビット数に応じたパターンを示す番号である。正常ビット数は、正常ビット情報保持部２８Ａが保持する正常ビット情報が示す正常ビットの数である。
【００５７】
送信データビット数は、送信データのビット数を示す。上述したように、バス１３の各信号線のうち、送信データのビット数分の信号線は、優先的に送信データに割り当てられる。
【００５８】
送信データが６４ビットである場合、バス１３の各信号線のうち、６４ビット分の信号線は、送信データに割り当てられる。従って、図５の例に示されるように、送信データビット数は、何れのパターンであっても６４ビットで一定である。
【００５９】
再送要求のビット数は、相手方のＦＰＧＡのリングバッファ２３に記憶されている送信データの再送を要求するために、再送要求の対象となる送信データのＩＤを特定するために使用される。
【００６０】
上述したように、バス１３の各信号線のうち、再送要求のビット数分の信号線は、送信データの次に優先的に割り当てられる。再送要求が２ビットである場合、２ビット分の信号線は再送要求に割り当てられる。よって、再送要求のビット数は、何れのパターンであっても２ビットである。
【００６１】
制御信号ビット数は、誤り処理を行うために使用されるビットの数である。制御信号には、バス１３の各信号線のうち、送信データおよび再送要求以外の信号線が割り当てられる。バス１３の各信号線のうち１以上の信号線による通信に障害が生じると、正常ビット数は少なくなる。正常ビット数が１つ減ると、制御信号ビット数も１つ減る。
【００６２】
誤り処理方式は、方式と誤り訂正ビット数と誤り検出ビット数との項目を含む。方式は、再送要求を行うか否か、および適用される誤り検出方式を示す。実施形態では、誤り検出方式には、パリティ方式とＥＣＣ方式との何れか一方または両方が適用される。
【００６３】
誤り訂正ビット数は、誤り訂正が行われるビット数を示す。例えば、接続パターン２の場合、６４ビットの送信データに対して１ビットの誤り訂正が行われることを示す（「1bit/64bit」と表記）。
【００６４】
また、接続パターン１の場合、６４ビットの送信データのうち３２ビットに対して１ビットの誤り訂正が行われ、残りの３２ビットに対して１ビットの誤り訂正が行われることを示す（「1bit/32bit」と表記）。
【００６５】
誤り検出ビット数は、誤り検出が行われるビット数を示す。例えば、接続パターン１の場合、ＥＣＣ方式のみが選択される。この場合、６４ビットの送信データのうち３２ビットに対して２ビットの誤り検出が行われることを示す（「2bit/32bit」と表記）。
【００６６】
また、接続パターン２の場合、ＥＣＣ方式およびパリティ方式が選択される。この場合、６４ビットの送信データに対して、ＥＣＣ方式による誤り検出とパリティ方式による誤り検出とが適用される。つまり、６４ビットの送信データに対して二重の誤り検出が適用される。
【００６７】
この場合、ＥＣＣ方式のために、６４ビットの送信データに対して１ビットの誤り検出が行われることを示す（「1bit/64bit」と表記）。また、パリティ方式のために、６４ビットの送信データのうち１０ビットを１グループとして、グループごとに１ビットの誤り検出が行われることを示す（「1bit/10bit」と表記）。
【００６８】
ビット割り当ては、方式と制御信号ビットと送信データ担当ビットとの項目を含む。方式は、ＥＣＣ方式またはパリティ方式を示す。制御信号ビットは、送信データのうち所定ビットの誤り処理を行うビットを示す。
【００６９】
例えば、接続パターン１の場合、送信データのうち、ビット０からビット３１までの合計３２ビットを、制御信号ビットのうち、ビット０からビット７までの合計８ビットが担当する。
【００７０】
同様に、送信データのうち、ビット３２からビット６３までの合計３２ビットを、制御ビットのうち、ビット８からビット１５までの合計８ビットが担当する。
【００７１】
制御信号は誤り処理を行うための信号であり、送信データのうち３２ビットは制御信号の８ビットにより、ＥＣＣ方式の誤り処理がされ、残りの３２ビットは制御信号の８ビットにより、ＥＣＣ方式の誤り処理がされる。
【００７２】
パリティ方式よりもＥＣＣ方式の方が、誤り検出精度が高く、且つＥＣＣ方式は誤り訂正が可能である。制御信号ビットが１６ビットある接続パターン１の場合、上述したように、送信データのうち３２ビットに対してＥＣＣ方式を適用し、残りの３２ビットに対してもＥＣＣ方式を適用することが好ましい。これにより、高い信頼性の適切な誤り検出が行われる。
【００７３】
接続パターン２の場合、制御信号ビット数は１５である。これは、バス１３の各信号線のうち１本の信号線に通信の障害が生じているためである。上述の接続パターン１の場合、制御信号が１６ビットであったため、送信データのうち３２ビットずつ、８ビットの制御信号を割り当てることができる。
【００７４】
しかし、接続パターン２の場合、制御信号ビットは１５であり、接続パターン１で使用される制御信号ビット（＝１６ビット）には１ビット満たない。このため、接続パターン２の場合、６４ビットの送信データに対して、ビット０からビット７までの合計８ビットが割り当てられる。
【００７５】
これにより、６４ビットの送信データに対して８ビットの制御信号を用いたＥＣＣ方式が適用される。制御信号ビットには、残り７ビットが存在する。実施形態では、６４ビットの送信データを均等化したグループに１ビットの制御信号が割り当てられる。
【００７６】
接続パターン２の場合、制御信号ビットの残りは７ビットであるため、１グループに属する送信データのビット数は１０ビットである。従って、送信データのうち１０ビットごとに制御信号の１ビットが割り当てられる。
【００７７】
これにより、誤り検出の対象となる１０ビットに対して、誤り検出を行う１ビットが割り当てられたパリティ方式が適用される。パリティ方式は、ＥＣＣ方式よりも誤り検出の精度は低いが、誤り検出の対象となるビット数が少なければ、高い精度で誤り検出が行われる。
【００７８】
そこで、制御信号ビットのうち未使用のビットの数に応じて、担当する送信データの各ビットが均等になるようにグループ化される。これにより、１グループに属するビット数が少なくなる。１グループに属するビット数が少なければ、パリティ方式でも高い精度で誤り検出が行われる。
【００７９】
接続パターン２の場合、送信データに対して、ＥＣＣ方式とパリティ方式との２つの誤り検出が行われることになる。従って、同じ送信データに対して二重に誤り検出が行われるため、誤り検出の精度が向上する。
【００８０】
接続パターン１の場合、６４ビットの送信データのうち３２ビットずつに８ビットが割り当てられたＥＣＣ方式が適用される。従って、接続パターン２のＥＣＣ方式よりも、接続パターン１のＥＣＣ方式の方が、誤り検出の精度は高い。ただし、同じ送信データに対して二重に誤り検出は行われない。
【００８１】
接続パターン８の場合、制御信号ビット数は９であり、ＥＣＣ方式のために８ビットが使用されるため、パリティ方式に割り当てられる制御信号は１ビットである。従って、接続パターン８の場合、グループ数は１つである。このため、６４ビットの送信データに対して１ビットの誤り検出ビットを用いて、誤り検出が行われる。
【００８２】
図６は、接続パターン９以降の割り当てテーブルの一例を示す。接続パターン９の場合、正常ビット数は７４であるため、制御信号ビット数は８である。ＥＣＣ方式では、誤り検出の対象が６４ビットの場合、誤り検出ビットは８ビット使用される。
【００８３】
従って、接続パターン９の場合、６４ビットの送信データに対して、８ビットの制御信号を用いたＥＣＣ方式の誤り検出が行われることになる。接続パターン９の場合、ＥＣＣ方式が適用されるため、送信データの誤り訂正が可能である。
【００８４】
接続パターン１０の場合、正常ビット数が７３であるため、制御信号ビット数は７である。上述したように、ＥＣＣ方式では、誤り検出の対象が６４ビットの場合、誤り検出ビットは８ビット使用されるため、接続パターン１０の場合、制御信号ビット数が１つ不足する。
【００８５】
従って、接続パターン１０の場合、ＥＣＣ方式は適用されない。接続パターン１０の場合、６４ビットの送信データは７つのグループにグループ化される。１つのグループに属するビット数は１０ビットである。
【００８６】
そして、１つのグループに１ビットの制御信号が割り当てられる。これにより、誤り検出の対象である１０ビットに対して、１ビットの誤り検出ビットを用いた誤り検出が行われる。
【００８７】
接続パターン１７の場合、制御信号ビット数はゼロである。従って、誤り検出は行われない。接続パターン１８の場合、正常ビット数から送信データビット数を減算したビット数（＝１ビット）は、再送要求に使用される２ビットに満たない。
【００８８】
この場合、再送要求は行われない。一方、制御信号には１ビットを割り当てることができるため、６４ビットの送信データに１ビットの制御信号が割り当てられる。接続パターン１９の場合、正常ビット数から送信データビット数を減じるとゼロになる。この場合、再送要求および誤り検出は行われない。
【００８９】
次に、図７の例を参照して、第１ＦＰＧＡ１１が第２ＦＰＧＡ１２に送信データを送信する例について説明する。送信データは、ＩＤ付与部２１Ａにより、ＩＤが付与される。ＩＤが付与された送信データはリングバッファ２３Ａに記憶される。
【００９０】
ＩＤが付与された送信データは、マルチプレクサ２４Ａに入力される。選択部２５Ａは、正常ビット情報保持部２８Ａが保持する正常ビット情報と上述した割り当てテーブルとに基づいて、バス１３の各信号線に対して、送信データのビット割り当てを行う。
【００９１】
例えば、バス１３の８２本の信号線のうち１本の信号線に通信の障害を生じている場合、正常ビット情報が示す正常ビット数は８１である。この場合、選択部２５Ａは、割り当てテーブルのうち、接続パターン２を選択する。
【００９２】
次に、バス１３の各信号線のうち１本の信号線に通信の障害を生じている場合について説明する。この場合、正常ビット数は８１であるため、図８の例に示されるように、選択部２５Ａは、割り当てテーブルから接続パターン２を選択する。
【００９３】
接続パターン２では、ＥＣＣ方式とパリティ方式とが併用される。選択部２５Ａは、バス１３の８２本の信号線のうち正常な８１本の信号線にそれぞれ１ビットを割り当てるように、マルチプレクサ２４Ａを制御する。
【００９４】
また、選択部２５Ａは、マルチプレクサ２４Ａに入力された送信データの各ビットをバス１３の各信号線に割り当てる。接続パターン２の場合、８１本の信号線のうち６４本の信号線にビット０からビット６３の合計６４ビットが割り当てられる。
【００９５】
また、残りの１７本の信号線のうち２本の信号線に２ビットの再送要求が割り当てられる。そして、残りの１５本の信号線に制御信号ビットが割り当てられる。選択部２５Ａは、接続パターン２のビット割り当てに基づいて、残りの１５本の信号線に対する制御信号ビットの割り当てを行うように、マルチプレクサ２４Ａを制御する。
【００９６】
従って、６４ビットの送信データに対して１５ビットの制御信号が割り当てられる。これにより、６４ビットの送信データに対して８ビットの制御信号を用いたＥＣＣ方式による誤り検出が行われる。ＥＣＣ方式の場合、送信データに対して、誤り訂正を行うことができる。
【００９７】
選択部２５Ａは、残りの７本の信号線を用いて、送信データに対してパリティ方式による誤り検出が行われるように、マルチプレクサ２４Ａを制御する。接続パターン２の場合、６４ビットの送信データは残りの信号線の数に応じてグループ化される。
【００９８】
接続パターン２の場合、残りの信号線の数は７本であるため、６４ビットの送信データは、７つのグループにグループ化される。各グループに属するビット数は均等になるようにグループ化される。これにより、１つのグループに属するビット数が少なくなる。
【００９９】
ただし、各グループのうち１つのグループに属するビット数は、他のグループに属するビット数と異なる。図８の例の接続パターン２の場合、７つのグループのうち６つのグループに属するビット数は１０である。この場合、６つのグループに属するそれぞれのビット数の合計は６０である。
【０１００】
従って、この場合、ビット６０からビット６３までの４ビットが余剰となる。図８の例の割り当てテーブルの接続パターン２が示すように、この場合、余剰の４ビットに１ビットの制御信号が割り当てられる。
【０１０１】
以上のように、選択部２５Ａは、正常ビット数に応じた接続パターンを割り当てテーブルの中から選択し、選択された接続パターンに基づく制御信号のビット割り当てを行うように、マルチプレクサ２４Ａを制御する。
【０１０２】
接続パターン２の場合、選択部２５Ａは、ＥＣＣ方式とパリティ方式とを選択する。これにより、バス１３の６４本の信号線のうち６３本の信号線が正常である場合、ＥＣＣ方式とパリティ方式とが併用され、送信データの誤り検出の精度を向上させることができる。
【０１０３】
また、接続パターン２の場合、正常な信号線の数が多いため、パリティ方式の１つのグループに属するビット数が少なくなる。このため、パリティ方式による誤り検出の精度も向上する。
【０１０４】
これにより、バス１３の各信号線のうち正常な信号線の数に応じた適切な方式の誤り検出が行われる。このため、誤り検出の信頼性が向上する。接続パターン２の場合、ＥＣＣ方式が選択されるため、送信データの誤り訂正も行われる。
【０１０５】
次に、バス１３の各信号線のうち８本の信号線に通信の障害を生じている場合について説明する。この場合、正常ビット数は７４であるため、図９の例に示されるように、選択部２５Ａは、割り当てテーブルから接続パターン９を選択する。
【０１０６】
選択部２５Ａは、送信データの各ビットを、通信の障害を生じている８本の信号線を除外したバス１３の７４本の信号線に割り当てる。再送要求のために、２本の信号線が割り当てられるため、残りの信号線の数は８である。
【０１０７】
６４ビットの送信データにＥＣＣ方式の誤り検出が適用される場合、８ビットの誤り検出ビットが使用される。従って、接続パターン９の場合、残りの８本の信号線が全てＥＣＣ方式に使用される制御信号ビットとして割り当てられる。
【０１０８】
この場合、パリティ方式に割り当てる信号線がない。このため、選択部２５Ａは、割り当てテーブルの接続パターン９に基づいて、ＥＣＣ方式のみを選択し、ＥＣＣ方式の誤り検出および誤り訂正が行われるように、マルチプレクサ２４Ａを制御する。
【０１０９】
従って、接続パターン９の場合、ＥＣＣ方式の誤り検出が行われるため、誤り検出の精度が向上する。これにより、バス１３の各信号線のうち正常な信号線の数に応じた適切な誤り検出が行われる。このため、誤り検出の信頼性が向上する。接続パターン９の場合、ＥＣＣ方式が選択されるため、送信データの誤り訂正も行われる。
【０１１０】
次に、バス１３の各信号線のうち９本の信号線に通信の障害を生じている場合について説明する。この場合、正常ビット数は７３であるため、図１０の例に示されるように、選択部２５Ａは、割り当てテーブルから接続パターン１０を選択する。
【０１１１】
選択部２５Ａは、送信データの各ビットを、通信に障害を生じている９本の信号線を除外したバス１３の７３本の信号線に割り当てる。再送要求のために、２本の信号線が割り当てられるため、残りの信号線の数は７である。
【０１１２】
上述したように、６４ビットの送信データにＥＣＣ方式の誤り検出が適用される場合、８ビットの誤り検出ビットが使用される。接続パターン１０の場合、残りの信号線は７本（７ビット）であり、ＥＣＣ方式の誤り検出を行うために使用されるビット数に満たない。
【０１１３】
このため、選択部２５Ａは、割り当てテーブルの接続パターン１０に基づいて、パリティ方式のみを選択する。そして、選択部２５Ａは、６４ビットの信号線のグループ化を行い、グループごとに１ビットの制御信号が割り当てられるように、マルチプレクサ２４Ａを制御する。
【０１１４】
上述したように、７つのグループのうち６つのグループに属するビット数は９である。残りの１つのグループに属するビット数は１０である。これにより、パリティ方式による誤り検出を行うための１ビットが担当する送信データのビット数が少なくなる。
【０１１５】
このため、データの誤り検出の精度が高くなる。従って、バス１３の各信号線のうち正常な信号線の数に応じた適切な誤り検出が行われる。このため、誤り検出の信頼性が向上する。
【０１１６】
以上のように、バス１３の各信号線のうち正常な信号線の数に応じた適切な誤り検出の方式が選択部２５Ａにより選択され、選択された方式に応じた送信データのビットの割り当てが行われるようにマルチプレクサ２４Ａが制御される。
【０１１７】
マルチプレクサ２４Ａによりビットの割り当てがされた送信データは、図１１の例に示されるように、バス１３を介して、第２ＦＰＧＡ１２に送信される。この際、送信データと共に、送信データに付されたＩＤおよび制御信号も第２ＦＰＧＡ１２に送信される。
【０１１８】
第２ＦＰＧＡ１２が受信した送信データ、ＩＤおよび制御信号は、誤り処理部２９Ｂにも出力される。誤り処理部２９Ｂは、入力した制御信号を用いて、送信データの誤り検出を行う。
【０１１９】
バス１３のうち、正常な各信号線には、それぞれ送信データおよび制御信号の１ビットが割り当てられている。例えば、接続パターン２の場合、制御信号ビットのうち、ビット０からビット７までの合計８ビットが、６４ビットの送信データに対する、ＥＣＣ方式による誤り検出ビットとして割り当てられる。
【０１２０】
誤り処理部２９Ｂは、８ビットの誤り検出ビット（制御信号ビット）を用いて、６４ビットの送信データに対してＥＣＣ方式による誤り検出を行う。また、誤り処理部２９Ｂは、１ビットを用いて、送信データの誤り訂正を行う。
【０１２１】
実施形態の接続パターン２では、誤り処理部２９Ｂは、７ビットの誤り検出ビット（制御信号）を用いて、６４ビットの送信データに対してパリティ方式による誤り検出を行う。
【０１２２】
上述したように、６４ビットの送信データはグループ化され、グループごとに１ビットずつの誤り検出ビットを用いて、誤り処理部２９Ｂは、６４ビットの送信データに対してパリティ方式による誤り検出を行う。
【０１２３】
また、例えば、接続パターン１０の場合、制御信号ビットは７ビットであるため、該ビット数は、６４ビットの送信データに対してＥＣＣ方式による誤り検出を行う８ビットに満たない。
【０１２４】
従って、誤り処理部２９Ｂは、入力した制御信号を用いて、パリティ方式による送信データの誤り検出を行う。送信データに対する誤り処理にＥＣＣ方式は適用されないため、誤り処理部２９Ｂは、誤り訂正を行わない。
【０１２５】
上述したように、例えば、誤り処理部２９Ｂが、ＥＣＣ方式により２ビットの誤りを検出したとする。この場合、ＥＣＣ方式による送信データの誤り訂正を行うことはできない。このように、送信データに対する誤りの訂正が行われない場合、図１２の例に示されるように、再送要求部３０Ｂは、バス１３を介して、送信データの再送要求を行う。
【０１２６】
上述したように、誤り処理部２９Ｂには、第１ＦＰＧＡ１１から送信された送信データ、ＩＤおよび制御信号が入力される。再送要求部３０Ｂは、再送を要求する送信データを特定するためのＩＤを出力する。このＩＤは、バス１３のうち、再送要求用に割り当てられた２本の信号線を介して、第１ＦＰＧＡ１１に送信される。
【０１２７】
第１ＦＰＧＡ１１のリングバッファ２３Ａは、受信したＩＤを入力し、該リングバッファ２３Ａから、受信したＩＤに対応する送信データが取り出される。この際、取り出された送信データは、再びリングバッファ２３Ａに記憶されてもよい。
【０１２８】
図１３の例に示されるように、リングバッファ２３Ａから取り出された送信データは、マルチプレクサ２４Ａに入力される。そして、該送信データは、選択部２５Ａの制御に基づいて、マルチプレクサ２４Ａによりビット割り当てがされる。そして、該送信データは、第１ＦＰＧＡ１１から第２ＦＰＧＡ１２に送信される。
【０１２９】
誤り処理部２９Ｂは、第２ＦＰＧＡ１２が受信した送信データを入力し、誤り検出を行う。例えば、１回目の誤り検出では、ソフトウェアエラー等が要因となって、ＥＣＣ方式により２ビットの誤りが検出されたとしても、状況が改善等されることにより、２回目のＥＣＣ方式による誤り検出では１ビットの誤りが検出されることがある。
【０１３０】
この場合、誤り処理部２９Ｂは、ＥＣＣ方式により誤り訂正を行う。なお、上述した接続パターン１０乃至２０の場合、ＥＣＣ方式は適用されず、パリティ方式のみが適用されるため、誤り訂正は行われない。
【０１３１】
また、誤り処理部２９Ｂが２回目の誤り検出でも、２ビットの誤りを検出したとする。この場合、再送要求部３０Ｂは、再度、第１ＦＰＧＡ１１に対して再送要求を行ってもよい。
【０１３２】
次に、図１４の例のシーケンスチャートを参照して、実施形態の処理の流れの一例を説明する。第１ＦＰＧＡ１１の試験データ生成部２２Ａは、試験データを生成する。生成された送信データは、バス１３を介して、第２ＦＰＧＡ１２に送信される（ステップＳ１）。
【０１３３】
第２ＦＰＧＡ１２の検出部２６Ｂは、試験データを比較して、通信に障害を生じていない正常なビットを検出する（ステップＳ２）。そして、正常ビット情報生成部２７Ｂは、正常ビットを示す正常ビット情報を生成し、生成された正常ビット情報を第１ＦＰＧＡ１１に送信する（ステップＳ３）。
【０１３４】
第１ＦＰＧＡ１１の正常ビット情報保持部２８Ａは、受信した正常ビット情報を保持する（ステップＳ４）。これにより、第１ＦＰＧＡ１１と第２ＦＰＧＡ１２とで、同じ正常ビット情報が共有される。
【０１３５】
マルチプレクサ２４Ａに対して、ＩＤが付与された送信データが入力する。選択部２５Ａは、正常ビット情報と割り当てテーブルとに基づいて、誤り検出の方式を選択する（ステップＳ５）。
【０１３６】
正常ビットの数に応じて、選択される誤り検出の方式は異なる。正常ビットの数が多ければ、パリティ方式とＥＣＣ方式との２つの方式が選択される。正常ビットの数によっては、パリティ方式またはＥＣＣ方式の何れかが選択される。
【０１３７】
マルチプレクサ２４Ａは、選択部２５Ａの制御により、バス１３のうち正常な信号線に対して、送信データ、ＩＤおよび制御信号の各ビットが割り当てられる（ステップＳ６）。そして、バス１３を介して、送信データ、ＩＤおよび制御信号の各ビットが第２ＦＰＧＡ１２に送信される。
【０１３８】
誤り処理部２９Ｂは、送信データと制御信号とに基づいて、誤り検出を行う（ステップＳ７）。そして、誤り処理部２９Ｂは、誤り訂正が可能かを判定する（ステップＳ８）。誤り訂正が可能な場合（ステップＳ８でＹＥＳ）、処理はステップＳ１１に進む。一方、誤り訂正が可能でない場合（ステップＳ８でＮＯ）、処理はステップＳ９に進む。
【０１３９】
例えば、ＥＣＣ方式により誤り検出を行った結果、２ビットの誤りが検出された場合、再送要求部３０Ｂは、上記のＩＤにより特定される送信データの再送要求を第１ＦＰＧＡ１１に対して行う（ステップＳ９）。
【０１４０】
第１ＦＰＧＡ１１は、再送要求が示すＩＤにより特定される送信データをリングバッファ２３Ａから取り出して、マルチプレクサ２４から送信データを再送する（ステップＳ１０）。
【０１４１】
第２ＦＰＧＡ１２の誤り処理部２９Ｂは、受信した送信データと制御信号とに基づいて、誤り訂正が可能であれば、誤り訂正を行う（ステップＳ１１）。例えば、誤り処理部２９Ｂが検出した誤りが１ビットである場合、誤り処理部２９Ｂは、ＥＣＣ方式による誤り訂正を行う。
【０１４２】
実施形態では、バス１３のうち正常な信号線の数に応じて、第１ＦＰＧＡ１１から第２ＦＰＧＡ１２に送信される送信データの誤りを検出する方式を選択するため、適切な誤り検出方式が選択される。これにより、第１ＦＰＧＡ１１と第２ＦＰＧＡ１２との間の通信の信頼性が向上する。
【０１４３】
＜その他＞
本実施形態は、以上に述べた実施の形態に限定されるものではなく、本実施形態の要旨を逸脱しない範囲内で種々の構成または実施形態を取ることができる。
【符号の説明】
【０１４４】
１    電子機器
１１    第１ＦＰＧＡ
１２    第２ＦＰＧＡ
１３    バス
２１    ＩＤ付与部
２２    試験データ生成部
２３    リングバッファ
２４    マルチプレクサ
２５    選択部
２６    検出部
２７    正常ビット情報生成部
２８    正常ビット情報保持部
２９    誤り処理部
３０    再送要求部
【図１】
0006662122.tif 000002
【図２】
0006662122.tif 000003
【図３】
0006662122.tif 000004
【図４】
0006662122.tif 000005
【図５】
0006662122.tif 000006
【図６】
0006662122.tif 000007
【図７】
0006662122.tif 000008
【図８】
0006662122.tif 000009
【図９】
0006662122.tif 000010
【図１０】
0006662122.tif 000011
【図１１】
0006662122.tif 000012
【図１２】
0006662122.tif 000013
【図１３】
0006662122.tif 000014
【図１４】
0006662122.tif 000015