JP6662122B2 - 電子機器およびプログラマブルデバイス間の通信誤り検出方法 - Google Patents

電子機器およびプログラマブルデバイス間の通信誤り検出方法 Download PDF

Info

Publication number
JP6662122B2
JP6662122B2 JP2016049092A JP2016049092A JP6662122B2 JP 6662122 B2 JP6662122 B2 JP 6662122B2 JP 2016049092 A JP2016049092 A JP 2016049092A JP 2016049092 A JP2016049092 A JP 2016049092A JP 6662122 B2 JP6662122 B2 JP 6662122B2
Authority
JP
Japan
Prior art keywords
signal lines
bit
bits
error
control signal
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.)
Active
Application number
JP2016049092A
Other languages
English (en)
Other versions
JP2017168875A (ja
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 Advanced Engineering Ltd
Original Assignee
Fujitsu Advanced Engineering 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 Advanced Engineering Ltd filed Critical Fujitsu Advanced Engineering Ltd
Priority to JP2016049092A priority Critical patent/JP6662122B2/ja
Publication of JP2017168875A publication Critical patent/JP2017168875A/ja
Application granted granted Critical
Publication of JP6662122B2 publication Critical patent/JP6662122B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Test And Diagnosis Of Digital Computers (AREA)
  • Logic Circuits (AREA)
  • Detection And Prevention Of Errors In Transmission (AREA)

Description

本発明は、電子機器および誤り検出方法に関する。
Field Programmable Gate Array(FPGA)は、論理回路の機能を変更可能なプログラマブルデバイスであり、例えば、通信機器や映像機器等の電子機器に搭載される。近年では、複数のFPGAを搭載した電子機器が用いられている。FPGA同士はバスにより相互に接続され、バスを介して、FPGA間で通信が行われる。
関連する技術として、主制御ボードと周辺制御ボートとの間の接続状況を監視する2つのプログラマブルデバイスを接続監視装置が提案されている(例えば、特許文献1を参照)。
特開2009−187284号公報
バスを介してFPGA間でデータが通信される際に、データが正常に通信されない場合がある。例えば、バスに含まれる信号線自体に定常的な障害が生じている場合や、通信時におけるソフトウェアエラー等の一過性の障害が生じている場合、データのうち1以上のビットに誤りを生じることがある。
このため、データの各ビットについて誤り検出が行われる。データの誤りは、該データの受信側のFPGAにおいて検出される。この場合、データには誤り検出用のビットが付加され、受信側のFPGAにおいて、該誤り検出用のビットを用いて、誤り検出が行われる。
誤り検出には幾つかの方式があり、誤り検出の方式によって、誤り検出に使用されるビット数が異なる。バスで使用可能なビット数は、障害の状況等により変化するため、誤り検出のために割り当てられるビット数も、障害の状況等により変化する。
誤り検出のために割り当てられるビット数によって、どのようにして誤り検出が行われるかも変化する。この場合、適切な誤り検出方式が選択されないことがあり、プログラマブルデバイス間の通信の信頼性が低下する。
1つの側面として、本発明は、プログラマブルデバイス間の通信の信頼性を向上させることを目的とする。
1つの態様では、電子機器は、相互に複数の信号線により接続されるプログラマブルデバイスを搭載した電子機器であって、前記プログラマブルデバイスは、前記複数の信号線を検査して、前記複数の信号線のうち正常な信号線の数を検出する検出部と、前記正常な信号線の数に応じて、前記プログラマブルデバイス間でビット毎に前記複数の信号線の各々を介して伝送される通信データの誤りを検出する方式を、ビット数が1である冗長ビットを用いる第1方式、ビット数が1よりも大きい所定数である冗長ビットを用いる第2方式、及び、前記第1方式と前記第2方式との両者を行う第3方式のうちから選択する選択部と、を備え、前記正常な信号線のうちから前記通信データのビット毎の伝送に用いる信号線を除いた本数の信号線の一部を、冗長ビットのビット毎の伝送に用いる制御信号線とし、前記選択部は、前記制御信号線の本数が前記所定数よりも少ない場合、前記第1方式を選択し、前記制御信号線の本数が前記所定数の倍数である場合、前記第2方式を選択し、その他の場合、前記第3方式を選択し、前記第3方式を選択した場合には、前記第2方式に用いる冗長ビットの伝送に、前記所定数の倍数の値のうちで前記制御信号線の本数を超えない範囲で最大の値に相当する本数の前記制御信号線を割り当てて、前記通信データの各ビットのうちの一部のビットに対する前記第2の方式での誤り検出処理を前記誤り処理部に行わせると共に、前記第2方式についての伝送に使用しない残りの前記制御信号線の本数に相当するグループ数のグループの各々についての冗長ビットであって前記通信データの各ビットのうちの残りのビットがグループ化された該グループに属する各ビットに対する前記第1の方式での誤りの検出に用いる該冗長ビットの伝送に、前記残りの前記制御信号線を割り当てて、該グループの各々についての前記第1の方式での誤り検出処理を前記誤り処理部に行わせる
1つの側面によれば、プログラマブルデバイス間の通信の信頼性を向上させることができる。
電子機器の一例を示す図(その1)である。 バスを信号線で表した場合の一例を示す図である。 電子機器の一例を示す図(その2)である。 電子機器の一例を示す図(その3)である。 割り当てテーブルの一例を示す図(その1)である。 割り当てテーブルの一例を示す図(その2)である。 電子機器の一例を示す図(その4)である。 割り当てテーブルの適用例を示す図(その1)である。 割り当てテーブルの一例を示す図(その2)である。 割り当てテーブルの一例を示す図(その3)である。 電子機器の一例を示す図(その5)である。 電子機器の一例を示す図(その6)である。 電子機器の一例を示す図(その7)である。 実施形態の処理の流れの一例を示すシーケンスチャートである。
以下、図面を参照して、実施形態について説明する。図1は、電子機器1の一例を示す。電子機器1には、通信機器や映像機器等の任意の機器が適用されてよい。電子機器1には、複数のFPGAが搭載される。
FPGAは、論理回路の機能を変更可能なプログラマブルデバイスの一例である。例えば、FPGAのLook Up Table(LUT)が変更されることにより、論理回路をAND回路やOR回路等、任意の論理回路として機能させることができる。
図1以降の例において、電子機器1には、第1FPGA11および第2FPGA12の2つのFPGAが搭載されるものとする。ただし、電子機器1に搭載されるFPGAの数は3つ以上であってもよい。
第1FPGA11は、データを送信する側のFPGAである。第2FPGA12は、データを受信する側のFPGAである。ただし、第1FPGA11がデータ受信側のFPGAであってもよいし、第2FPGA12がデータ送信側のFPGAであってもよい。
従って、第1FPGA11と第2FPGA12とは同様の機能を有する。ただし、第1FPGA11および第2FPGA12は、図1の例に示す機能以外の機能を有していてもよい。
第1FPGA11と第2FPGA12との間はバス13により接続される。第1FPGA11は第2FPGA12に対して、バス13を介してデータを送信する。バス13には、複数の信号線が含まれる。
次に、第1FPGA11および第2FPGA12について説明する。上述したように、第1FPGA11および第2FPGA12は同等の機能を有する。従って、図1以降、第1FPGA11の各部には「A」を付し、第2FPGA12の各部には「B」を付して、説明する。
以下、第1FPGA11と第2FPGA12とを総称して、単にFPGAと称することがある。FPGAは、Identification(ID)付与部21と試験データ生成部22とリングバッファ23とマルチプレクサ24と選択部25と検出部26と正常ビット情報生成部27と正常ビット情報保持部28と誤り処理部29と再送要求部30とを含む。
実施形態では、FPGAの上記の各部は所定の回路により実現される。FPGAは、上記の各部以外の機能を有してもよい。ID付与部21は、送信元のFPGA(第1FPGA11)から送信先のFPGA(第2FPGA12)に送信されるデータ(送信データ)に対してIDを付与する。
IDは、送信データを特定する情報である。実施形態では、送信データは64ビットのデータであるものとする。ただし、送信データのビット数は64ビットには限定されない。
実施形態では、電子機器1に電源が投入された際(電源がONになった際)に、試験データ生成部22は、試験データを生成する。ただし、試験データは任意のタイミングで生成されてもよい。試験データは、バス13を介した通信に障害があるか否かを検査するためのデータである。
バス13の1本の信号線に1ビットが割り当てられる。実施形態では、バス13の信号線の本数は82本であるものとする。ただし、バス13の信号線の本数は82本には限定されない。
試験データはバス13の通信の検査を行うためのデータであるため、試験データのビット数は、バス13の信号線の本数と同じである。実施形態の場合、バス13の信号線の本数は82本であるため、試験データは82ビットである。
また、バス13の信号線の本数(=82本)は、第1FPGA11から第2FPGA12に送信される送信データのビット数より多い。実施形態の場合、送信データは64ビットであるものとする。
リングバッファ23は、IDが付与された送信データを記憶する。リングバッファ23は記憶部の一例である。IDが付与された送信データはリングバッファ以外の記憶部に記憶されてもよい。例えば、該送信データは、リングバッファ以外のバッファに記憶されてもよい。
マルチプレクサ24は、送信データおよび試験データを入力する。マルチプレクサ24は、選択部25の制御に基づいて、バス13に含まれる各信号線に、該バス13を介して通信されるデータの各ビットを割り当てる。
検出部26は、バス13を介して、相手方のFPGAから受信した試験データと自身が保持する試験データとを1ビットずつ比較して、バス13の各信号線による通信が正常であるかを検出する。
このため、検出部26は、相手方のFPGAが送信する試験データと同じ試験データを保持する。検出部26は、相手方のFPGAから受信した試験データと自身が保持する試験データとを1ビットずつ比較し、同じ値であれば、そのビットは正常であり、異なる値であれば、そのビットは正常でないことを検出する。
正常ビット情報生成部27は、検出結果に基づいて、正常ビット情報を生成する。生成された正常ビット情報には、正常ビット情報生成部27により、正常であることが検出された各ビットに対して所定の割り当てが行われる。
正常ビット情報保持部28は、相手方のFPGAの正常ビット情報生成部27が生成した正常ビット情報を入力し、保持する。正常ビット情報保持部28が保持する正常ビット情報は、選択部25に入力される。
誤り処理部29は、受信した送信データに対して誤り処理を行う。誤り処理部29は、誤り検出を行う場合もあり、誤り訂正を行う場合もあり、誤り検出および誤り訂正の両方を行う場合もある。
実施形態では、誤り検出を行う方式は、パリティ方式またはError Checking and Correcting(ECC)方式の何れかであるものとする。パリティ方式は、1ビットを用いて、複数ビットの誤り検出を行う方式である。パリティ方式は、第1方式の一例である。
ECC方式は、複数ビットを用いて、複数ビットの誤り検出を行う方式である。また、ECC方式は、検出された誤りを訂正できる方式でもある。ECC方式は、第2方式の一例である。誤り検出を行う方式は、パリティ方式およびECC方式以外の任意の方式であってもよい。
再送要求部30は、誤り処理部29Aにより誤り訂正が行われない場合、相手方のFPGAのリングバッファ23に記憶されている送信データの再送を要求するための再送要求を相手方のFPGAに送信する。
例えば、誤り処理部29Aが、ECC方式による誤り検出を行った結果、2ビットの誤りを検出したとする。この場合、誤り訂正を行うことができないため、誤り処理部29Aは、誤り訂正を行わない。
図2は、バス13を信号線で表した場合の一例を示す。図2の例の場合、第1FPGA11と第2FPGA12とは、82本の信号線により接続される。上述したように、送信データのビット数は64ビットであるため、バス13の信号線の本数は、送信データの通信に使用される信号線の本数より18本多い。
図3以降、実施形態の動作について説明する。上述したように、第1FPGA11は送信側であり、第2FPGA12は受信側であるものとする。図3以降、一点鎖線は、データや情報の流れを示す。
電子機器1の電源が投入されると、試験データ生成部22Aは、82ビットの試験データを生成する。生成された試験データは、マルチプレクサ24Aに入力される。実施形態では、バス13に含まれる各信号線のそれぞれに試験データの82ビットが割り当てられるものとする。
マルチプレクサ24Aは、試験データの各ビットを、対応するバス13の信号線に送信する。これにより、第2FPGA12は試験データを受信する。第2FPGA12が受信した試験データは、検出部26Bに入力される。
検出部26Bは、試験データ生成部22Aが生成した試験データと同じ試験データを保持する。そして、検出部26Bは、入力した試験データと保持している試験データとを1ビットずつ比較する。
例えば、入力した試験データと検出部26Bが保持している試験データとの全てのビットの値が同じであれば、検出部26Bは、バス13に含まれる全ての信号線による通信は正常であることを検出する。
例えば、入力した試験データのうち75ビット目の値が「1」であり、保持している試験データの値が「0」である場合、検出部26Bは、バス13の75ビット目の信号線による通信が正常でなく、それ以外は正常であることを検出する。
検出部26Bによる比較の結果、入力した試験データと検出部26Bが保持している試験データとで値が異なるビットが複数存在する場合もある。この場合、検出部26Bは、バス13の各信号線のうち複数の信号線による通信が正常でないことを検出する。
正常ビット情報生成部27Bは、検出部26Bによる検出の結果、82ビットのバス13の各ビットについて、正常なビットを示す正常ビット情報を生成する。正常ビット情報は、正常でないことが検出されたビットが除外された情報である。
例えば、上述したように、バス13の75ビット目の信号線が正常でないことが検出された場合、正常ビット情報生成部27Bは、該75ビット目の信号線を除外した正常ビット情報を生成する。
この場合、正常ビット情報は、81ビットについての情報を示す。正常ビット情報生成部27Bは、正常であることを示す81ビットの信号線のうち、それぞれ所定のビットを送信データと再送要求と制御信号とに割り当てる。
正常ビット情報生成部27Bは、正常であることを示す信号線に対して、送信データ用のビットを優先的に割り当てる。上述の場合、正常ビット情報生成部27Bは、正常であることを示す81ビットの信号線のうち、64ビット分の信号線を送信データのために優先的に割り当てる。
正常ビット情報生成部27Bは、残りの17ビット分の信号線のうち、再送要求を行うための信号線を割り当てる。実施形態では、再送要求を行うために2ビットが使用されるものとする。従って、正常ビット情報生成部27Bは、2本の信号線を再送要求用のビットに割り当てる。
正常ビット情報生成部27Bは、残りの15ビット分の信号線を制御信号用のビットに割り当てる。制御信号は、誤り検出を行うための信号であり、誤り訂正が行われる場合には、該制御信号は、誤り訂正を行うためにも使用される。
この場合、実施形態では、15ビットを用いて、送信データの誤り検出(および誤り訂正)を行う。上述したように、正常ビット情報生成部27Bは、正常であることを示す各信号線に対して、送信データ、再送要求、制御信号の優先順で信号線の割り当てを行う。
このため、バス13のうち正常でない信号線の数が増えると、制御信号に割り当てられる信号線の数は少なくなる。つまり、誤り検出や誤り訂正のために割り当てられる信号線(ビット)の数が少なくなる。
図4の例に示されるように、正常ビット情報生成部27Bは、生成された正常ビット情報を、バス13を介して、第1FPGA11に送信する。第1FPGA11が受信した正常ビット情報は、正常ビット情報保持部28Aに入力される。これにより、正常ビット情報保持部28Aは、正常ビット情報生成部27Aが生成した正常ビット情報を保持する。
次に、選択部25Aが保持する割り当てテーブルについて、図5および図6の例を参照して説明する。割り当てテーブルは、送信データ、再送要求および制御信号の各ビットをバス13の各信号線に割り当てるためのテーブルである。なお、図5以降、「ビット」は「bit」と表記される場合がある。
割り当てテーブルは、接続パターンと正常ビット数と送信データビット数と再送要求のビット数と制御信号ビット数と誤り処理方式とビット割り当てとの項目を含む。接続パターンは、正常ビット数に応じたパターンを示す番号である。正常ビット数は、正常ビット情報保持部28Aが保持する正常ビット情報が示す正常ビットの数である。
送信データビット数は、送信データのビット数を示す。上述したように、バス13の各信号線のうち、送信データのビット数分の信号線は、優先的に送信データに割り当てられる。
送信データが64ビットである場合、バス13の各信号線のうち、64ビット分の信号線は、送信データに割り当てられる。従って、図5の例に示されるように、送信データビット数は、何れのパターンであっても64ビットで一定である。
再送要求のビット数は、相手方のFPGAのリングバッファ23に記憶されている送信データの再送を要求するために、再送要求の対象となる送信データのIDを特定するために使用される。
上述したように、バス13の各信号線のうち、再送要求のビット数分の信号線は、送信データの次に優先的に割り当てられる。再送要求が2ビットである場合、2ビット分の信号線は再送要求に割り当てられる。よって、再送要求のビット数は、何れのパターンであっても2ビットである。
制御信号ビット数は、誤り処理を行うために使用されるビットの数である。制御信号には、バス13の各信号線のうち、送信データおよび再送要求以外の信号線が割り当てられる。バス13の各信号線のうち1以上の信号線による通信に障害が生じると、正常ビット数は少なくなる。正常ビット数が1つ減ると、制御信号ビット数も1つ減る。
誤り処理方式は、方式と誤り訂正ビット数と誤り検出ビット数との項目を含む。方式は、再送要求を行うか否か、および適用される誤り検出方式を示す。実施形態では、誤り検出方式には、パリティ方式とECC方式との何れか一方または両方が適用される。
誤り訂正ビット数は、誤り訂正が行われるビット数を示す。例えば、接続パターン2の場合、64ビットの送信データに対して1ビットの誤り訂正が行われることを示す(「1bit/64bit」と表記)。
また、接続パターン1の場合、64ビットの送信データのうち32ビットに対して1ビットの誤り訂正が行われ、残りの32ビットに対して1ビットの誤り訂正が行われることを示す(「1bit/32bit」と表記)。
誤り検出ビット数は、誤り検出が行われるビット数を示す。例えば、接続パターン1の場合、ECC方式のみが選択される。この場合、64ビットの送信データのうち32ビットに対して2ビットの誤り検出が行われることを示す(「2bit/32bit」と表記)。
また、接続パターン2の場合、ECC方式およびパリティ方式が選択される。この場合、64ビットの送信データに対して、ECC方式による誤り検出とパリティ方式による誤り検出とが適用される。つまり、64ビットの送信データに対して二重の誤り検出が適用される。
この場合、ECC方式のために、64ビットの送信データに対して1ビットの誤り検出が行われることを示す(「1bit/64bit」と表記)。また、パリティ方式のために、64ビットの送信データのうち10ビットを1グループとして、グループごとに1ビットの誤り検出が行われることを示す(「1bit/10bit」と表記)。
ビット割り当ては、方式と制御信号ビットと送信データ担当ビットとの項目を含む。方式は、ECC方式またはパリティ方式を示す。制御信号ビットは、送信データのうち所定ビットの誤り処理を行うビットを示す。
例えば、接続パターン1の場合、送信データのうち、ビット0からビット31までの合計32ビットを、制御信号ビットのうち、ビット0からビット7までの合計8ビットが担当する。
同様に、送信データのうち、ビット32からビット63までの合計32ビットを、制御ビットのうち、ビット8からビット15までの合計8ビットが担当する。
制御信号は誤り処理を行うための信号であり、送信データのうち32ビットは制御信号の8ビットにより、ECC方式の誤り処理がされ、残りの32ビットは制御信号の8ビットにより、ECC方式の誤り処理がされる。
パリティ方式よりもECC方式の方が、誤り検出精度が高く、且つECC方式は誤り訂正が可能である。制御信号ビットが16ビットある接続パターン1の場合、上述したように、送信データのうち32ビットに対してECC方式を適用し、残りの32ビットに対してもECC方式を適用することが好ましい。これにより、高い信頼性の適切な誤り検出が行われる。
接続パターン2の場合、制御信号ビット数は15である。これは、バス13の各信号線のうち1本の信号線に通信の障害が生じているためである。上述の接続パターン1の場合、制御信号が16ビットであったため、送信データのうち32ビットずつ、8ビットの制御信号を割り当てることができる。
しかし、接続パターン2の場合、制御信号ビットは15であり、接続パターン1で使用される制御信号ビット(=16ビット)には1ビット満たない。このため、接続パターン2の場合、64ビットの送信データに対して、ビット0からビット7までの合計8ビットが割り当てられる。
これにより、64ビットの送信データに対して8ビットの制御信号を用いたECC方式が適用される。制御信号ビットには、残り7ビットが存在する。実施形態では、64ビットの送信データを均等化したグループに1ビットの制御信号が割り当てられる。
接続パターン2の場合、制御信号ビットの残りは7ビットであるため、1グループに属する送信データのビット数は10ビットである。従って、送信データのうち10ビットごとに制御信号の1ビットが割り当てられる。
これにより、誤り検出の対象となる10ビットに対して、誤り検出を行う1ビットが割り当てられたパリティ方式が適用される。パリティ方式は、ECC方式よりも誤り検出の精度は低いが、誤り検出の対象となるビット数が少なければ、高い精度で誤り検出が行われる。
そこで、制御信号ビットのうち未使用のビットの数に応じて、担当する送信データの各ビットが均等になるようにグループ化される。これにより、1グループに属するビット数が少なくなる。1グループに属するビット数が少なければ、パリティ方式でも高い精度で誤り検出が行われる。
接続パターン2の場合、送信データに対して、ECC方式とパリティ方式との2つの誤り検出が行われることになる。従って、同じ送信データに対して二重に誤り検出が行われるため、誤り検出の精度が向上する。
接続パターン1の場合、64ビットの送信データのうち32ビットずつに8ビットが割り当てられたECC方式が適用される。従って、接続パターン2のECC方式よりも、接続パターン1のECC方式の方が、誤り検出の精度は高い。ただし、同じ送信データに対して二重に誤り検出は行われない。
接続パターン8の場合、制御信号ビット数は9であり、ECC方式のために8ビットが使用されるため、パリティ方式に割り当てられる制御信号は1ビットである。従って、接続パターン8の場合、グループ数は1つである。このため、64ビットの送信データに対して1ビットの誤り検出ビットを用いて、誤り検出が行われる。
図6は、接続パターン9以降の割り当てテーブルの一例を示す。接続パターン9の場合、正常ビット数は74であるため、制御信号ビット数は8である。ECC方式では、誤り検出の対象が64ビットの場合、誤り検出ビットは8ビット使用される。
従って、接続パターン9の場合、64ビットの送信データに対して、8ビットの制御信号を用いたECC方式の誤り検出が行われることになる。接続パターン9の場合、ECC方式が適用されるため、送信データの誤り訂正が可能である。
接続パターン10の場合、正常ビット数が73であるため、制御信号ビット数は7である。上述したように、ECC方式では、誤り検出の対象が64ビットの場合、誤り検出ビットは8ビット使用されるため、接続パターン10の場合、制御信号ビット数が1つ不足する。
従って、接続パターン10の場合、ECC方式は適用されない。接続パターン10の場合、64ビットの送信データは7つのグループにグループ化される。1つのグループに属するビット数は10ビットである。
そして、1つのグループに1ビットの制御信号が割り当てられる。これにより、誤り検出の対象である10ビットに対して、1ビットの誤り検出ビットを用いた誤り検出が行われる。
接続パターン17の場合、制御信号ビット数はゼロである。従って、誤り検出は行われない。接続パターン18の場合、正常ビット数から送信データビット数を減算したビット数(=1ビット)は、再送要求に使用される2ビットに満たない。
この場合、再送要求は行われない。一方、制御信号には1ビットを割り当てることができるため、64ビットの送信データに1ビットの制御信号が割り当てられる。接続パターン19の場合、正常ビット数から送信データビット数を減じるとゼロになる。この場合、再送要求および誤り検出は行われない。
次に、図7の例を参照して、第1FPGA11が第2FPGA12に送信データを送信する例について説明する。送信データは、ID付与部21Aにより、IDが付与される。IDが付与された送信データはリングバッファ23Aに記憶される。
IDが付与された送信データは、マルチプレクサ24Aに入力される。選択部25Aは、正常ビット情報保持部28Aが保持する正常ビット情報と上述した割り当てテーブルとに基づいて、バス13の各信号線に対して、送信データのビット割り当てを行う。
例えば、バス13の82本の信号線のうち1本の信号線に通信の障害を生じている場合、正常ビット情報が示す正常ビット数は81である。この場合、選択部25Aは、割り当てテーブルのうち、接続パターン2を選択する。
次に、バス13の各信号線のうち1本の信号線に通信の障害を生じている場合について説明する。この場合、正常ビット数は81であるため、図8の例に示されるように、選択部25Aは、割り当てテーブルから接続パターン2を選択する。
接続パターン2では、ECC方式とパリティ方式とが併用される。選択部25Aは、バス13の82本の信号線のうち正常な81本の信号線にそれぞれ1ビットを割り当てるように、マルチプレクサ24Aを制御する。
また、選択部25Aは、マルチプレクサ24Aに入力された送信データの各ビットをバス13の各信号線に割り当てる。接続パターン2の場合、81本の信号線のうち64本の信号線にビット0からビット63の合計64ビットが割り当てられる。
また、残りの17本の信号線のうち2本の信号線に2ビットの再送要求が割り当てられる。そして、残りの15本の信号線に制御信号ビットが割り当てられる。選択部25Aは、接続パターン2のビット割り当てに基づいて、残りの15本の信号線に対する制御信号ビットの割り当てを行うように、マルチプレクサ24Aを制御する。
従って、64ビットの送信データに対して15ビットの制御信号が割り当てられる。これにより、64ビットの送信データに対して8ビットの制御信号を用いたECC方式による誤り検出が行われる。ECC方式の場合、送信データに対して、誤り訂正を行うことができる。
選択部25Aは、残りの7本の信号線を用いて、送信データに対してパリティ方式による誤り検出が行われるように、マルチプレクサ24Aを制御する。接続パターン2の場合、64ビットの送信データは残りの信号線の数に応じてグループ化される。
接続パターン2の場合、残りの信号線の数は7本であるため、64ビットの送信データは、7つのグループにグループ化される。各グループに属するビット数は均等になるようにグループ化される。これにより、1つのグループに属するビット数が少なくなる。
ただし、各グループのうち1つのグループに属するビット数は、他のグループに属するビット数と異なる。図8の例の接続パターン2の場合、7つのグループのうち6つのグループに属するビット数は10である。この場合、6つのグループに属するそれぞれのビット数の合計は60である。
従って、この場合、ビット60からビット63までの4ビットが余剰となる。図8の例の割り当てテーブルの接続パターン2が示すように、この場合、余剰の4ビットに1ビットの制御信号が割り当てられる。
以上のように、選択部25Aは、正常ビット数に応じた接続パターンを割り当てテーブルの中から選択し、選択された接続パターンに基づく制御信号のビット割り当てを行うように、マルチプレクサ24Aを制御する。
接続パターン2の場合、選択部25Aは、ECC方式とパリティ方式とを選択する。これにより、バス13の64本の信号線のうち63本の信号線が正常である場合、ECC方式とパリティ方式とが併用され、送信データの誤り検出の精度を向上させることができる。
また、接続パターン2の場合、正常な信号線の数が多いため、パリティ方式の1つのグループに属するビット数が少なくなる。このため、パリティ方式による誤り検出の精度も向上する。
これにより、バス13の各信号線のうち正常な信号線の数に応じた適切な方式の誤り検出が行われる。このため、誤り検出の信頼性が向上する。接続パターン2の場合、ECC方式が選択されるため、送信データの誤り訂正も行われる。
次に、バス13の各信号線のうち8本の信号線に通信の障害を生じている場合について説明する。この場合、正常ビット数は74であるため、図9の例に示されるように、選択部25Aは、割り当てテーブルから接続パターン9を選択する。
選択部25Aは、送信データの各ビットを、通信の障害を生じている8本の信号線を除外したバス13の74本の信号線に割り当てる。再送要求のために、2本の信号線が割り当てられるため、残りの信号線の数は8である。
64ビットの送信データにECC方式の誤り検出が適用される場合、8ビットの誤り検出ビットが使用される。従って、接続パターン9の場合、残りの8本の信号線が全てECC方式に使用される制御信号ビットとして割り当てられる。
この場合、パリティ方式に割り当てる信号線がない。このため、選択部25Aは、割り当てテーブルの接続パターン9に基づいて、ECC方式のみを選択し、ECC方式の誤り検出および誤り訂正が行われるように、マルチプレクサ24Aを制御する。
従って、接続パターン9の場合、ECC方式の誤り検出が行われるため、誤り検出の精度が向上する。これにより、バス13の各信号線のうち正常な信号線の数に応じた適切な誤り検出が行われる。このため、誤り検出の信頼性が向上する。接続パターン9の場合、ECC方式が選択されるため、送信データの誤り訂正も行われる。
次に、バス13の各信号線のうち9本の信号線に通信の障害を生じている場合について説明する。この場合、正常ビット数は73であるため、図10の例に示されるように、選択部25Aは、割り当てテーブルから接続パターン10を選択する。
選択部25Aは、送信データの各ビットを、通信に障害を生じている9本の信号線を除外したバス13の73本の信号線に割り当てる。再送要求のために、2本の信号線が割り当てられるため、残りの信号線の数は7である。
上述したように、64ビットの送信データにECC方式の誤り検出が適用される場合、8ビットの誤り検出ビットが使用される。接続パターン10の場合、残りの信号線は7本(7ビット)であり、ECC方式の誤り検出を行うために使用されるビット数に満たない。
このため、選択部25Aは、割り当てテーブルの接続パターン10に基づいて、パリティ方式のみを選択する。そして、選択部25Aは、64ビットの信号線のグループ化を行い、グループごとに1ビットの制御信号が割り当てられるように、マルチプレクサ24Aを制御する。
上述したように、7つのグループのうち6つのグループに属するビット数は9である。残りの1つのグループに属するビット数は10である。これにより、パリティ方式による誤り検出を行うための1ビットが担当する送信データのビット数が少なくなる。
このため、データの誤り検出の精度が高くなる。従って、バス13の各信号線のうち正常な信号線の数に応じた適切な誤り検出が行われる。このため、誤り検出の信頼性が向上する。
以上のように、バス13の各信号線のうち正常な信号線の数に応じた適切な誤り検出の方式が選択部25Aにより選択され、選択された方式に応じた送信データのビットの割り当てが行われるようにマルチプレクサ24Aが制御される。
マルチプレクサ24Aによりビットの割り当てがされた送信データは、図11の例に示されるように、バス13を介して、第2FPGA12に送信される。この際、送信データと共に、送信データに付されたIDおよび制御信号も第2FPGA12に送信される。
第2FPGA12が受信した送信データ、IDおよび制御信号は、誤り処理部29Bにも出力される。誤り処理部29Bは、入力した制御信号を用いて、送信データの誤り検出を行う。
バス13のうち、正常な各信号線には、それぞれ送信データおよび制御信号の1ビットが割り当てられている。例えば、接続パターン2の場合、制御信号ビットのうち、ビット0からビット7までの合計8ビットが、64ビットの送信データに対する、ECC方式による誤り検出ビットとして割り当てられる。
誤り処理部29Bは、8ビットの誤り検出ビット(制御信号ビット)を用いて、64ビットの送信データに対してECC方式による誤り検出を行う。また、誤り処理部29Bは、1ビットを用いて、送信データの誤り訂正を行う。
実施形態の接続パターン2では、誤り処理部29Bは、7ビットの誤り検出ビット(制御信号)を用いて、64ビットの送信データに対してパリティ方式による誤り検出を行う。
上述したように、64ビットの送信データはグループ化され、グループごとに1ビットずつの誤り検出ビットを用いて、誤り処理部29Bは、64ビットの送信データに対してパリティ方式による誤り検出を行う。
また、例えば、接続パターン10の場合、制御信号ビットは7ビットであるため、該ビット数は、64ビットの送信データに対してECC方式による誤り検出を行う8ビットに満たない。
従って、誤り処理部29Bは、入力した制御信号を用いて、パリティ方式による送信データの誤り検出を行う。送信データに対する誤り処理にECC方式は適用されないため、誤り処理部29Bは、誤り訂正を行わない。
上述したように、例えば、誤り処理部29Bが、ECC方式により2ビットの誤りを検出したとする。この場合、ECC方式による送信データの誤り訂正を行うことはできない。このように、送信データに対する誤りの訂正が行われない場合、図12の例に示されるように、再送要求部30Bは、バス13を介して、送信データの再送要求を行う。
上述したように、誤り処理部29Bには、第1FPGA11から送信された送信データ、IDおよび制御信号が入力される。再送要求部30Bは、再送を要求する送信データを特定するためのIDを出力する。このIDは、バス13のうち、再送要求用に割り当てられた2本の信号線を介して、第1FPGA11に送信される。
第1FPGA11のリングバッファ23Aは、受信したIDを入力し、該リングバッファ23Aから、受信したIDに対応する送信データが取り出される。この際、取り出された送信データは、再びリングバッファ23Aに記憶されてもよい。
図13の例に示されるように、リングバッファ23Aから取り出された送信データは、マルチプレクサ24Aに入力される。そして、該送信データは、選択部25Aの制御に基づいて、マルチプレクサ24Aによりビット割り当てがされる。そして、該送信データは、第1FPGA11から第2FPGA12に送信される。
誤り処理部29Bは、第2FPGA12が受信した送信データを入力し、誤り検出を行う。例えば、1回目の誤り検出では、ソフトウェアエラー等が要因となって、ECC方式により2ビットの誤りが検出されたとしても、状況が改善等されることにより、2回目のECC方式による誤り検出では1ビットの誤りが検出されることがある。
この場合、誤り処理部29Bは、ECC方式により誤り訂正を行う。なお、上述した接続パターン10乃至20の場合、ECC方式は適用されず、パリティ方式のみが適用されるため、誤り訂正は行われない。
また、誤り処理部29Bが2回目の誤り検出でも、2ビットの誤りを検出したとする。この場合、再送要求部30Bは、再度、第1FPGA11に対して再送要求を行ってもよい。
次に、図14の例のシーケンスチャートを参照して、実施形態の処理の流れの一例を説明する。第1FPGA11の試験データ生成部22Aは、試験データを生成する。生成された送信データは、バス13を介して、第2FPGA12に送信される(ステップS1)。
第2FPGA12の検出部26Bは、試験データを比較して、通信に障害を生じていない正常なビットを検出する(ステップS2)。そして、正常ビット情報生成部27Bは、正常ビットを示す正常ビット情報を生成し、生成された正常ビット情報を第1FPGA11に送信する(ステップS3)。
第1FPGA11の正常ビット情報保持部28Aは、受信した正常ビット情報を保持する(ステップS4)。これにより、第1FPGA11と第2FPGA12とで、同じ正常ビット情報が共有される。
マルチプレクサ24Aに対して、IDが付与された送信データが入力する。選択部25Aは、正常ビット情報と割り当てテーブルとに基づいて、誤り検出の方式を選択する(ステップS5)。
正常ビットの数に応じて、選択される誤り検出の方式は異なる。正常ビットの数が多ければ、パリティ方式とECC方式との2つの方式が選択される。正常ビットの数によっては、パリティ方式またはECC方式の何れかが選択される。
マルチプレクサ24Aは、選択部25Aの制御により、バス13のうち正常な信号線に対して、送信データ、IDおよび制御信号の各ビットが割り当てられる(ステップS6)。そして、バス13を介して、送信データ、IDおよび制御信号の各ビットが第2FPGA12に送信される。
誤り処理部29Bは、送信データと制御信号とに基づいて、誤り検出を行う(ステップS7)。そして、誤り処理部29Bは、誤り訂正が可能かを判定する(ステップS8)。誤り訂正が可能な場合(ステップS8でYES)、処理はステップS11に進む。一方、誤り訂正が可能でない場合(ステップS8でNO)、処理はステップS9に進む。
例えば、ECC方式により誤り検出を行った結果、2ビットの誤りが検出された場合、再送要求部30Bは、上記のIDにより特定される送信データの再送要求を第1FPGA11に対して行う(ステップS9)。
第1FPGA11は、再送要求が示すIDにより特定される送信データをリングバッファ23Aから取り出して、マルチプレクサ24から送信データを再送する(ステップS10)。
第2FPGA12の誤り処理部29Bは、受信した送信データと制御信号とに基づいて、誤り訂正が可能であれば、誤り訂正を行う(ステップS11)。例えば、誤り処理部29Bが検出した誤りが1ビットである場合、誤り処理部29Bは、ECC方式による誤り訂正を行う。
実施形態では、バス13のうち正常な信号線の数に応じて、第1FPGA11から第2FPGA12に送信される送信データの誤りを検出する方式を選択するため、適切な誤り検出方式が選択される。これにより、第1FPGA11と第2FPGA12との間の通信の信頼性が向上する。
<その他>
本実施形態は、以上に述べた実施の形態に限定されるものではなく、本実施形態の要旨を逸脱しない範囲内で種々の構成または実施形態を取ることができる。
1 電子機器
11 第1FPGA
12 第2FPGA
13 バス
21 ID付与部
22 試験データ生成部
23 リングバッファ
24 マルチプレクサ
25 選択部
26 検出部
27 正常ビット情報生成部
28 正常ビット情報保持部
29 誤り処理部
30 再送要求部

Claims (4)

  1. 相互に複数の信号線により接続されるプログラマブルデバイスを搭載した電子機器であって、
    前記プログラマブルデバイスは、
    前記複数の信号線を検査して、前記複数の信号線のうち正常な信号線の数を検出する検出部と、
    前記正常な信号線の数に応じて、前記プログラマブルデバイス間でビット毎に前記複数の信号線の各々を介して伝送される通信データの誤りを検出する方式を、ビット数が1である冗長ビットを用いる第1方式、ビット数が1よりも大きい所定数である冗長ビットを用いる第2方式、及び、前記第1方式と前記第2方式との両者を行う第3方式のうちから選択する選択部と、
    前記選択部により選択された方式を用いて前記通信データの各ビットに対する誤り検出処理を行う誤り処理部と、
    を備え、
    前記正常な信号線のうちから前記通信データのビット毎の伝送に用いる信号線を除いた本数の信号線の一部を、冗長ビットのビット毎の伝送に用いる制御信号線とし、
    前記選択部は、
    前記制御信号線の本数が前記所定数よりも少ない場合、前記第1方式を選択し、
    前記制御信号線の本数が前記所定数の倍数である場合、前記第2方式を選択し、
    その他の場合、前記第3方式を選択し、
    前記第3方式を選択した場合には、
    前記第2方式に用いる冗長ビットの伝送に、前記所定数の倍数の値のうちで前記制御信号線の本数を超えない範囲で最大の値に相当する本数の前記制御信号線を割り当てて、前記通信データの各ビットのうちの一部のビットに対する前記第2の方式での誤り検出処理を前記誤り処理部に行わせると共に、
    前記第2方式についての伝送に使用しない残りの前記制御信号線の本数に相当するグループ数のグループの各々についての冗長ビットであって前記通信データの各ビットのうちの残りのビットがグループ化された該グループに属する各ビットに対する前記第1の方式での誤りの検出に用いる該冗長ビットの伝送に、前記残りの前記制御信号線を割り当てて、該グループの各々についての前記第1の方式での誤り検出処理を前記誤り処理部に行わせる、
    ことを特徴とする電子機器。
  2. 前記グループ化では、属するビットの数がグループ間で均等になるようにグループ化される、
    ことを特徴とする請求項記載の電子機器。
  3. 前記プログラマブルデバイスは、
    送信された前記通信データを記憶する記憶部と、
    前記通信データに誤りが検出され、且つ該誤りの訂正が行われない場合、前記通信データの送信元に対して、前記記憶部に記憶された通信データの再送要求を行う再送要求部と、
    を備えることを特徴とする請求項1又は2に記載の電子機器。
  4. 相互に複数の信号線により接続されるプログラマブルデバイス間で通信される通信データの誤りを検出するプログラマブルデバイス間の通信誤り検出方法であって、
    前記複数の信号線を検査して、前記複数の信号線のうち正常な信号線の数を検出し、
    前記正常な信号線の数に応じて、前記プログラマブルデバイス間でビット毎に前記複数の信号線の各々を介して伝送される通信データの誤りを検出する方式を、ビット数が1である冗長ビットを用いる第1方式、ビット数が1よりも大きい所定数である冗長ビットを用いる第2方式、及び、前記第1方式と前記第2方式との両者を行う第3方式のうちから選択し、
    選択された方式を用いて前記通信データの各ビットに対する誤り検出処理を行い、
    前記正常な信号線のうちから前記通信データのビット毎の伝送に用いる信号線を除いた本数の信号線の一部を、冗長ビットのビット毎の伝送に用いる制御信号線とし、
    前記選択では、
    前記制御信号線の本数が前記所定数よりも少ない場合、前記第1方式を選択し、
    前記制御信号線の本数が前記所定数の倍数である場合、前記第2方式を選択し、
    その他の場合、前記第3方式を選択し、
    前記第3方式を選択した場合には、
    前記第2方式に用いる冗長ビットの伝送に、前記所定数の倍数の値のうちで前記制御信号線の本数を超えない範囲で最大の値に相当する本数の前記制御信号線を割り当てて、前記通信データの各ビットのうちの一部のビットに対する前記第2の方式での前記誤り検出処理を行い、
    前記第2方式についての伝送に使用しない残りの前記制御信号線の本数に相当するグループ数のグループの各々についての冗長ビットであって前記通信データの各ビットのうちの残りのビットがグループ化された該グループに属する各ビットに対する前記第1の方式での誤りの検出に用いる該冗長ビットの伝送に、前記残りの前記制御信号線を割り当てて、該グループの各々についての前記第1の方式での前記誤り検出処理を行う、
    ことを特徴とするプログラマブルデバイス間の通信誤り検出方法。
JP2016049092A 2016-03-14 2016-03-14 電子機器およびプログラマブルデバイス間の通信誤り検出方法 Active JP6662122B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2016049092A JP6662122B2 (ja) 2016-03-14 2016-03-14 電子機器およびプログラマブルデバイス間の通信誤り検出方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2016049092A JP6662122B2 (ja) 2016-03-14 2016-03-14 電子機器およびプログラマブルデバイス間の通信誤り検出方法

Publications (2)

Publication Number Publication Date
JP2017168875A JP2017168875A (ja) 2017-09-21
JP6662122B2 true JP6662122B2 (ja) 2020-03-11

Family

ID=59914152

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2016049092A Active JP6662122B2 (ja) 2016-03-14 2016-03-14 電子機器およびプログラマブルデバイス間の通信誤り検出方法

Country Status (1)

Country Link
JP (1) JP6662122B2 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP7048776B1 (ja) * 2021-01-22 2022-04-05 Necプラットフォームズ株式会社 プログラマブルデバイス、システム、検証支援方法、およびプログラム

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4079940B2 (ja) * 2004-12-27 2008-04-23 エヌイーシーコンピュータテクノ株式会社 データ伝送方式及び方法
JP2009187284A (ja) * 2008-02-06 2009-08-20 Nec Computertechno Ltd ボード間接続監視装置
JP6041976B2 (ja) * 2013-03-06 2016-12-14 株式会社日立製作所 データ伝送システム

Also Published As

Publication number Publication date
JP2017168875A (ja) 2017-09-21

Similar Documents

Publication Publication Date Title
KR101573566B1 (ko) 확장 단일-비트 오류 정정 및 다중-비트 오류 검출
US8990657B2 (en) Selective masking for error correction
JP5252074B2 (ja) 送受信装置、データの送受信方法
US8209594B2 (en) Sending device, receiving device, communication control device, communication system, and communication control method
US9880898B2 (en) Transmission control checking for interconnect circuitry
US20130326286A1 (en) Data transfer apparatus and data transfer method
US7808917B2 (en) Method and system for transmitting telegrams
US9151800B2 (en) Chip testing with exclusive OR
JP6662122B2 (ja) 電子機器およびプログラマブルデバイス間の通信誤り検出方法
KR101945426B1 (ko) 배터리 통신진단방법
CN109995548B (zh) 设备管理方法、系统和数据传输方法、系统及终端设备
CN104601411A (zh) 链路故障检测的方法及装置
CN104270287A (zh) 一种报文乱序检测方法及装置
JP2005354310A (ja) データ送信装置、データ受信装置、データ送信方法およびデータ受信方法
JP4079940B2 (ja) データ伝送方式及び方法
US20140068108A1 (en) Electrical device and method of setting address
CN114128180B (zh) 具有crc生成器的电子设备和用于将数据从电子设备传输至控制单元的方法
CN111698016B (zh) 用于数据传输的设备和方法
WO2018010084A1 (zh) 应用于数字集成电路的esd检测装置、集成电路及方法
US9319314B2 (en) Apparatus and method for using link-tail of link list to store data pattern which is indicative of end of link list and auxiliary information
US11012090B2 (en) Embedded cyclical redundancy check values
US10313095B2 (en) Control system
US20220021555A1 (en) Decentralised communication system and corresponding control method
CN110659240A (zh) 一种串口通信方法、装置、存储介质及电子设备
JP7082084B2 (ja) 情報送受信システム、情報送受信方法、および、プログラム、ならびに、連動論理処理装置、および、電子端末

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20181203

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20190830

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20191001

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20191028

RD03 Notification of appointment of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7423

Effective date: 20191028

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20191028

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20191210

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20200107

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20200114

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20200127

R150 Certificate of patent or registration of utility model

Ref document number: 6662122

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313111

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350