(57)【要約】【課題】ＬＳＩ間やモジュール間で信頼性の高いデータ伝送を行うこと。【解決手段】送信側モジュール１００において、ＥＣＣ生成部１３０が送信データを分割したデータ1〜データ4に対してＥＣＣ1〜ＥＣＣ4を生成し、時間方向データ分割部１４０が送信データを分割して４つの３２ビットデータを生成し、データ出力制御部１５０が４クロックのデータサイクルで４つの３２ビットデータを順に送信し、次のサイクルでＥＣＣ1〜ＥＣＣ4をまとめて送信し、受信側モジュール２００において、データ入力制御部２２０がデータおよびＥＣＣ1〜ＥＣＣ4を受信し、ＥＣＣ訂正部２３０が受信データに対してＥＣＣ1〜ＥＣＣ4を用いて該当するデータ1〜データ4それぞれの誤り訂正を行うことで、送信データの複数ビットエラーを訂正することができ、高い信頼性を持ったデータ転送を行うことができる。【選択図】        図２
2005354310.tif 000002
【特許請求の範囲】
【請求項１】
クロックに同期して複数のビットを並列に送信するデータ送信装置であって、
送信データを複数の部分データに分割し、該複数の部分データそれぞれに対して誤り訂正コードを生成する誤り訂正コード生成手段と、
前記送信データを並列に送信される複数のビットから構成される複数の１クロックデータに分割するデータ分割手段と、
前記データ分割手段により送信データから分割された複数の１クロックデータのそれぞれをクロックサイクルに同期して順次送信し、前記誤り訂正コード生成手段により生成された複数の誤り訂正コードをまとめて１クロックサイクルで送信するデータ送信制御手段と、
を備えたことを特徴とするデータ送信装置。
【請求項２】
前記誤り訂正コード生成手段は、複数のクロックサイクルで送信される送信データが各クロックサイクルで並列に送信されるビット位置に基づいて該送信データを分割することを特徴とする請求項１に記載のデータ送信装置。
【請求項３】
前記誤り訂正コード生成手段は、前記複数の１クロックデータのそれぞれに対して誤り訂正コードを生成することを特徴とする請求項１に記載のデータ送信装置。
【請求項４】
前記誤り訂正コード生成手段は、前記複数の１クロックデータのそれぞれを複数の部分１クロックデータに分割し、１クロックデータが並列に送信される際のビット位置が異なる部分１クロックデータを各１クロックデータから選択することによって前記送信データを複数の部分データに分割し、
前記データ送信制御手段は、前記誤り訂正コードの生成に用いられた部分１クロックデータとは異なるビット位置で該誤り訂正コードを送信することを特徴とする請求項１に記載のデータ送信装置。
【請求項５】
前記データ送信制御手段は、前記複数の１クロックデータの送信クロックサイクルの次のクロックサイクルで前記複数の誤り訂正コードをまとめて送信することを特徴とする請求項１〜４のいずれか一つに記載のデータ送信装置。
【請求項６】
前記データ送信制御手段は、前記複数の１クロックデータの送信クロックサイクルの前のクロックサイクルで前記複数の誤り訂正コードをまとめて送信することを特徴とする請求項１〜４のいずれか一つに記載のデータ送信装置。
【請求項７】
前記データ送信制御手段は、前記複数の１クロックデータの送信クロックサイクルと連続する１クロックサイクルで前記複数の誤り訂正コードを送信するか否かを判定する判定手段と、
前記判定手段が前記複数の誤り訂正コードを送信すると判定した場合に、該複数の誤り訂正コードをまとめて送信する誤り訂正コード送信手段と、
を備えたことを特徴とする請求項１〜４のいずれか一つに記載のデータ送信装置。
【請求項８】
クロックに同期してデータ送信装置から並列に送信される複数のビットを１クロックデータとして受信するデータ受信装置であって、
データ送信装置により複数のクロックサイクルを用いて送信された送信データを複数の１クロックデータとして受信し、該送信データを分割して生成された複数の部分データそれぞれから生成された複数の誤り訂正コードを１クロックサイクルでまとめて受信するデータ受信制御手段と、
前記データ受信制御手段により受信された複数の１クロックデータから全体データを組み立てる受信データ組み立て手段と、
前記受信データ組み立て手段により組み立てられた全体データを前記データ受信制御手段により受信された複数の誤り訂正コードを用いて訂正して受信データとする誤り訂正手段と、
を備えたことを特徴とするデータ受信装置。
【請求項９】
クロックに同期して複数のビットを並列に送信するデータ送信方法であって、
送信データを複数の部分データに分割し、該複数の部分データそれぞれに対して誤り訂正コードを生成する誤り訂正コード生成工程と、
前記送信データを並列に送信される複数のビットから構成される複数の１クロックデータに分割するデータ分割工程と、
前記データ分割工程により送信データから分割された複数の１クロックデータのそれぞれをクロックサイクルに同期して順次送信し、前記誤り訂正コード生成工程により生成された複数の誤り訂正コードをまとめて１クロックサイクルで送信するデータ送信制御工程と、
を含んだことを特徴とするデータ送信方法。
【請求項１０】
クロックに同期してデータ送信装置から並列に送信される複数のビットを１クロックデータとして受信するデータ受信方法であって、
データ送信装置により複数のクロックサイクルを用いて送信された送信データを複数の１クロックデータとして受信し、該送信データを分割して生成された複数の部分データそれぞれから生成された複数の誤り訂正コードを１クロックサイクルでまとめて受信するデータ受信制御工程と、
前記データ受信制御工程により受信された複数の１クロックデータから全体データを組み立てる受信データ組み立て工程と、
前記受信データ組み立て工程により組み立てられた全体データを前記データ受信制御工程により受信された複数の誤り訂正コードを用いて訂正して受信データとする誤り訂正工程と、
を含んだことを特徴とするデータ受信方法。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、クロックに同期して複数のビットを並列に送信するデータ送信装置およびデータ送信方法、ならびにクロックに同期して複数のビットを並列に受信するデータ受信装置およびデータ受信方法に関し、特に、信号線の増加や伝送遅延の発生なしにデータ伝送における誤り訂正能力を向上し、もってデータ伝送の信頼性を向上することができるデータ送信装置、データ受信装置、データ送信方法およびデータ受信方法に関するものである。
【背景技術】
【０００２】
ＣＰＵとクロスバーＬＳＩ間などのＬＳＩ間や、ＬＳＩ内のモジュール間でＮビットのデータをバスを用いて伝送する場合には、データをＮ／ｍビットごとに分割してｍクロックで伝送する。例えば、１２８ビットのデータを３２ビットのバスを用いて伝送する場合には、１２８ビットデータを３２ビットごとに分割して４クロックで伝送する。
【０００３】
従来、このようなＬＳＩ間やモジュール間のデータ伝送では、伝送誤りに対処するために、パリティビットが用いられてきた。図１５は、モジュール間データ伝送における従来の誤り訂正方式を説明するための説明図である。
【０００４】
同図は、１２８ビットデータを３２ビットごとに分割して４クロックで送信する場合を示している。同図に示すように、３２ビットの１クロックデータに対してビット方向にパリティビットを１ビット付加して３３ビットで送信し、３２ビットの各ビット位置に対してクロック方向にパリティビットを付加して４クロックのデータサイクルの次の追加サイクルで送信している。
【０００５】
このような垂直水平パリティ符号方式では、Ｎビット中の１ビットエラーを訂正することができ、２ビットのエラーを検出することができる。例えば、図１５において、最初のクロックで伝送されるデータのビット位置「３２」にエラー「Ｘ」が発生した場合には、そのデータに付加したパリティビットとビット位置「３２」に対してクロック方向に付加したパリティビットを用いてエラーを訂正することができる（例えば、特許文献１および非特許文献１参照。）。
【０００６】
【特許文献１】特開平６−１２５３３１号公報
【非特許文献１】三谷政明著  「やり直しのための工業数学」ＣＱ出版社、２００１年１月１日、Ｐ．４８
【発明の開示】
【発明が解決しようとする課題】
【０００７】
しかしながら、従来の垂直水平パリティ符号方式では、２ビット以上のエラー訂正が行えないという問題があった。また、同一クロックのデータまたは同一ビット位置に偶数個のエラーが発生した場合に、エラーを検出することができないという問題があった。
【０００８】
この発明は、上述した従来技術による問題点を解消するためになされたものであり、信号線の増加や伝送遅延の発生なしにデータ伝送における誤り訂正能力を向上し、もってデータ伝送の信頼性を向上することができるデータ送信装置、データ受信装置、データ送信方法およびデータ受信方法を提供することを目的とする。
【課題を解決するための手段】
【０００９】
上述した課題を解決し、目的を達成するため、本発明は、クロックに同期して複数のビットを並列に送信するデータ送信装置であって、送信データを複数の部分データに分割し、該複数の部分データそれぞれに対して誤り訂正コードを生成する誤り訂正コード生成手段と、前記送信データを並列に送信される複数のビットから構成される複数の１クロックデータに分割するデータ分割手段と、前記データ分割手段により送信データから分割された複数の１クロックデータのそれぞれをクロックサイクルに同期して順次送信し、前記誤り訂正コード生成手段により生成された複数の誤り訂正コードをまとめて１クロックサイクルで送信するデータ送信制御手段と、を備えたことを特徴とする。
【００１０】
また、本発明は、クロックに同期して複数のビットを並列に送信するデータ送信方法であって、送信データを複数の部分データに分割し、該複数の部分データそれぞれに対して誤り訂正コードを生成する誤り訂正コード生成工程と、前記送信データを並列に送信される複数のビットから構成される複数の１クロックデータに分割するデータ分割工程と、前記データ分割工程により送信データから分割された複数の１クロックデータのそれぞれをクロックサイクルに同期して順次送信し、前記誤り訂正コード生成工程により生成された複数の誤り訂正コードをまとめて１クロックサイクルで送信するデータ送信制御工程と、を含んだことを特徴とする。
【００１１】
かかる発明によれば、送信データを複数の部分データに分割し、複数の部分データそれぞれに対して誤り訂正コードを生成し、送信データを並列に送信される複数のビットから構成される複数の１クロックデータに分割し、分割した複数の１クロックデータのそれぞれをクロックサイクルに同期して順次送信し、生成した複数の誤り訂正コードをまとめて１クロックサイクルで送信するよう構成したので、信号線の増加や伝送遅延の発生なしにデータ伝送における誤り訂正能力を向上することができる。
【００１２】
また、本発明は、クロックに同期してデータ送信装置から並列に送信される複数のビットを１クロックデータとして受信するデータ受信装置であって、データ送信装置により複数のクロックサイクルを用いて送信された送信データを複数の１クロックデータとして受信し、該送信データを分割して生成された複数の部分データそれぞれから生成された複数の誤り訂正コードを１クロックサイクルでまとめて受信するデータ受信制御手段と、前記データ受信制御手段により受信された複数の１クロックデータから全体データを組み立てる受信データ組み立て手段と、前記受信データ組み立て手段により組み立てられた全体データを前記データ受信制御手段により受信された複数の誤り訂正コードを用いて訂正して受信データとする誤り訂正手段と、を備えたことを特徴とする。
【００１３】
また、本発明は、クロックに同期してデータ送信装置から並列に送信される複数のビットを１クロックデータとして受信するデータ受信方法であって、データ送信装置により複数のクロックサイクルを用いて送信された送信データを複数の１クロックデータとして受信し、該送信データを分割して生成された複数の部分データそれぞれから生成された複数の誤り訂正コードを１クロックサイクルでまとめて受信するデータ受信制御工程と、前記データ受信制御工程により受信された複数の１クロックデータから全体データを組み立てる受信データ組み立て工程と、前記受信データ組み立て工程により組み立てられた全体データを前記データ受信制御工程により受信された複数の誤り訂正コードを用いて訂正して受信データとする誤り訂正工程と、を含んだことを特徴とする。
【００１４】
かかる発明によれば、データ送信装置により複数のクロックサイクルを用いて送信された送信データを複数の１クロックデータとして受信し、送信データを分割して生成された複数の部分データそれぞれから生成された複数の誤り訂正コードを１クロックサイクルでまとめて受信し、受信した複数の１クロックデータから全体データを組み立て、組み立てた全体データを受信した複数の誤り訂正コードを用いて訂正して受信データとするよう構成したので、信号線の増加や伝送遅延の発生なしにデータ伝送における誤り訂正能力を向上することができる。
【発明の効果】
【００１５】
本発明によれば、データ伝送における誤り訂正能力を向上するので、データ伝送の信頼性を向上することができるという効果を奏する。
【発明を実施するための最良の形態】
【００１６】
以下に添付図面を参照して、この発明に係るデータ送信装置、データ受信装置、データ送信方法およびデータ受信方法の好適な実施例を詳細に説明する。なお、本実施例では、本発明をモジュール間のデータ伝送に適用した場合を中心に説明する。
【実施例】
【００１７】
まず、本実施例に係る誤り訂正方式について説明する。図１は、本実施例に係る誤り訂正方式を説明するための説明図である。同図に示すように、本実施例に係る誤り訂正方式では、４クロックで送信される１２８ビットの送信データのうち、バスのビット位置１〜８で送信される３２ビットの部分データ、すなわちデータ1に対して１ビットのエラーを訂正するＥＣＣ1を生成し、バスのビット位置９〜１６で送信される３２ビットの部分データ、すなわちデータ2に対して１ビットのエラーを訂正するＥＣＣ2を生成する。
【００１８】
ここで、Ｎビットのデータについて１ビットのエラーを訂正するＥＣＣのビット長はｌｏｇ2Ｎ＋２であるので、３２ビットのデータに対して１ビットのエラーを訂正するＥＣＣのビット長は、ｌｏｇ2３２＋２＝７となる。また、ＥＣＣビットは冗長化して８ビットとしても良い。
【００１９】
同様に、バスのビット位置１７〜２４で送信される３２ビットの部分データ、すなわちデータ3に対して１ビットのエラーを訂正するＥＣＣ3を生成し、バスのビット位置２５〜３２で送信される３２ビットの部分データ、すなわちデータ4に対して１ビットのエラーを訂正するＥＣＣ4を生成する。そして、ＥＣＣ1〜ＥＣＣ4を４クロックのデータサイクルに続く次のサイクルでまとめて送信する。
【００２０】
このように、本実施例に係る誤り訂正方式では、送信データをバスのビット位置に基づいて分割したデータ1〜データ4に対してそれぞれＥＣＣ1〜ＥＣＣ4を生成して送信することによって、各データi（ｉ＝１，４）において１ビットのエラー訂正が可能となる。したがって、１２８ビットデータ全体としては４ビットのエラーを訂正することができ、垂直水平パリティ符号方式における１ビットのエラー訂正と比較して、エラー訂正能力を向上することができる。
【００２１】
また、本実施例に係る誤り訂正方式では、各クロックサイクルで送信される３２ビットの１クロックデータに対してビット方向のパリティビットを付加する必要がないので、バス幅を増やすことなく誤り訂正を行うことができる。
【００２２】
次に、本実施例に係る送信側モジュールおよび受信側モジュールの構成について説明する。図２は、本実施例に係る送信側モジュールおよび受信側モジュールの構成を示す機能ブロック図である。
【００２３】
同図に示すように、本実施例に係る送信側モジュール１００は、データ出力要求部１１０と、出力データ格納バッファ１２０と、ＥＣＣ生成部１３０と、時間方向データ分割部１４０と、データ出力制御部１５０とを有し、受信側モジュール２００は、データ入力要求部２１０と、データ入力制御部２２０と、ＥＣＣ訂正部２３０と、入力データ格納バッファ２４０とを有する。
【００２４】
データ出力要求部１１０は、受信側モジュール２００への１２８ビットデータの送信を要求する処理部である。このデータ出力要求部１１０は、出力データ格納バッファ１２０に送信データを格納するとともに、受信側モジュール２００に同期をとるためのｖａｌｉｄ信号を送信する。
【００２５】
図３は、データ伝送のタイムチャートを示す図である。同図に示すように、ｖａｌｉｄ信号は、複数のクロックサイクルで送信されるデータの先頭を示す。したがって、図３では、ｖａｌｉｄ＝ＯＮから４番目のクロックまでが１つのデータとなる。
【００２６】
出力データ格納バッファ１２０は、データ出力要求部１１０の要求に基づいて送信側モジュール１００から受信側モジュール２００に送信される１２８ビットデータを格納するバッファである。
【００２７】
ＥＣＣ生成部１３０は、出力データ格納バッファ１２０から送信データを読み出してＥＣＣを生成する処理部である。具体的には、このＥＣＣ生成部１３０は、図１に示したように、１２８ビットの送信データを３２ビットバスのビット位置に基づいて４つのデータ1〜データ4に分割し、データ1〜データ4に対してそれぞれＥＣＣ1〜ＥＣＣ4を生成する。
【００２８】
このＥＣＣ生成部１３０がデータ1〜データ4に対してそれぞれＥＣＣ1〜ＥＣＣ4を生成することによって、各データ1〜データ4において１ビットの誤りを訂正することができる。
【００２９】
時間方向データ分割部１４０は、出力データ格納バッファ１２０から送信データを読み出し、読み出した送信データを図１に示した４クロックのデータサイクルで送信される４つの３２ビットデータに分割する処理部である。
【００３０】
データ出力制御部１５０は、時間方向データ分割部１４０により生成された４つの３２ビットデータを連続した４クロックのデータサイクルで送信し、次のサイクルでＥＣＣ生成部１３０により生成されたＥＣＣ1〜ＥＣＣ4をまとめて送信する処理部である。なお、このデータ出力制御部１５０は、データ出力要求部１１０からｖａｌｉｄ信号を受け取り、ｖａｌｉｄ信号に同期して先頭の３２ビットデータを送信する。
【００３１】
データ入力要求部２１０は、送信側モジュール１００からｖａｌｉｄ信号を受け取り、ｖａｌｉｄ信号に同期してデータ入力制御部２２０に対してデータの受信要求を行う処理部である。
【００３２】
データ入力制御部２２０は、データ入力要求部２１０からの要求に基づいて送信側モジュール１００から分割されて送信されたデータおよびＥＣＣを受け取り、分割前の１２８ビットデータを組み立てる処理部である。
【００３３】
ＥＣＣ訂正部２３０は、データ入力制御部２２０から１２８ビットデータとＥＣＣを受け取り誤り訂正を行う処理部である。すなわち、このＥＣＣ訂正部２３０は、データ1〜データ4に対してそれぞれＥＣＣ1〜ＥＣＣ4を用いて誤り訂正を行う。
【００３４】
このＥＣＣ訂正部２３０が、データ1〜データ4に対してそれぞれＥＣＣ1〜ＥＣＣ4を用いて誤り訂正を行うことによって、データ伝送中に各データ1〜データ4において１ビットの誤りが発生した場合に、それらの誤りを訂正することができる。
【００３５】
入力データ格納バッファ２４０は、ＥＣＣ訂正部２３０によって誤り訂正が行われた１２８ビットデータを格納するバッファであり、この入力データ格納バッファ２４０に１２８ビットデータが格納されることによってデータの受信が完了する。
【００３６】
次に、送信側モジュール１００および受信側モジュール２００の実装例について説明する。図４は、送信側モジュール１００および受信側モジュール２００の実装例を示す図である。
【００３７】
同図に示すように、送信側モジュール１００は、データ出力部１１と、ＥＣＣ生成部１２と、カウンタ１３とを有し、受信側モジュール２００は、ＥＣＣ格納バッファ２１と、誤り訂正回路２２と、データ入力部２３とを有する。なお、同図において、「Ｄ」は１クロック分の遅延を示す。
【００３８】
データ出力部１１は、１２８ビットの送信データを４つの３２ビットの信号線を用いて出力する。また、ＥＣＣ生成部１２は、データ出力部１１が出力する４つの３２ビットデータを用いて図１に示したデータ1〜データ4に対するＥＣＣ1〜ＥＣＣ4を生成する。
【００３９】
すなわち、ＥＣＣ生成部１２は、３２ビットの信号線を用いて受け取った４つの３２ビットデータに対してそれぞれＥＣＣを生成するのではなく、３２ビットバスのビット位置に基づくデータ1〜データ4に対してＥＣＣ1〜ＥＣＣ4を生成する。
【００４０】
カウンタ１３は、ｖａｌｉｄ信号を受け取ってクロックのカウントを行う。このカウンタ１３がカウントしたクロック数に基づいて、ＥＣＣ生成部１２が生成したＥＣＣまたはデータ出力部１１が出力した４つの３２ビットデータのうちの一つが選択されて受信側モジュール２００に送信される。
【００４１】
送信側モジュール１００により送信された３２ビットデータおよびＥＣＣは、受信側モジュール２００でＥＣＣ格納バッファ２１にいったん格納され、誤り訂正回路２２に渡される。そして、誤り訂正回路２２が受け取ったデータに対して誤り訂正を行ってデータ入力部２３にデータを格納する。
【００４２】
次に、図２に示した送信側モジュール１００による送信処理の処理手順について説明する。図５は、図２に示した送信側モジュール１００による送信処理の処理手順を示すフローチャートである。
【００４３】
同図に示すように、この送信側モジュール１００は、データ出力要求部１１０が出力データ格納バッファ１２０に要求し、送信データを出力させる（ステップＳ１０１）。そして、ＥＣＣ生成部１３０が出力データ格納バッファ１２０から送信データを読み出して図１に示したデータ1〜データ4に対するＥＣＣ1〜ＥＣＣ4を生成する（ステップＳ１０２）。
【００４４】
また、時間方向データ分割部１４０が出力データ格納バッファ１２０から送信データを読み出し、４クロックのデータサイクルで送信する４つの３２ビットデータに分割する（ステップＳ１０３）。
【００４５】
そして、データ出力制御部１５０が時間方向データ分割部１４０により生成された４つの３２ビットデータをデータ出力要求部１１０からのｖａｌｉｄ信号に同期する４クロックで順に出力し（ステップＳ１０４）、次のクロックでＥＣＣ1〜ＥＣＣ4をまとめて出力する（ステップＳ１０５）。
【００４６】
このように、データ出力制御部１５０が４つの３２ビットデータを順に出力した次のクロックでＥＣＣ1〜ＥＣＣ4を出力することによって、受信側モジュール２００は、ＥＣＣ1〜ＥＣＣ4を受け取って伝送中に発生した誤りを訂正することができる。
【００４７】
次に、図２に示した受信側モジュール２００による受信処理の処理手順について説明する。図６は、図２に示した受信側モジュール２００による受信処理の処理手順を示すフローチャートである。
【００４８】
同図に示すように、この受信側モジュール２００は、データ入力要求部２１０の要求に基づいてデータ入力制御部２２０が４分割されたデータをｖａｌｉｄ信号に同期して順に入力し（ステップＳ２０１）、１２８ビットデータの組み立てを行う（ステップＳ２０２）。
【００４９】
そして、４分割されたデータに続いてＥＣＣ1〜ＥＣＣ4を入力し（ステップＳ２０３）、組み立てた１２８ビットデータとともにＥＣＣ訂正部２３０に渡す。そして、１２８ビットデータとＥＣＣ1〜ＥＣＣ4を受け取ったＥＣＣ訂正部２３０が誤り訂正を行い（ステップＳ２０４）、訂正したデータを入力データ格納バッファ２４０に格納する（ステップＳ２０５）。
【００５０】
このように、受信側モジュール２００のＥＣＣ訂正部２３０がＥＣＣ1〜ＥＣＣ4を用いて誤り訂正を行うことによって、送信側モジュール１００との間で信頼性の高いデータ伝送を行うことができる。
【００５１】
上述してきたように、本実施例では、送信側モジュール１００において、ＥＣＣ生成部１３０が送信データを分割したデータ1〜データ4に対してＥＣＣ1〜ＥＣＣ4を生成し、時間方向データ分割部１４０が送信データを分割して４つの３２ビットデータを生成し、データ出力制御部１５０が４クロックのデータサイクルで４つの３２ビットデータを順に送信し、次のサイクルでＥＣＣ1〜ＥＣＣ4をまとめて送信し、受信側モジュール２００において、データ入力制御部２２０がデータおよびＥＣＣ1〜ＥＣＣ4を受信し、ＥＣＣ訂正部２３０が受信データに対してＥＣＣ1〜ＥＣＣ4を用いて誤り訂正を行うこととしたので、バス幅を増やすことなくモジュール間で信頼性の高いデータ伝送を行うことができる。
【００５２】
また、本実施例では、ＥＣＣ1〜ＥＣＣ4を１つの追加サイクルでまとめて伝送することとしたので、垂直水平パリティ符号方式と比較して余分な追加サイクルを必要とせず、伝送遅延の発生を防ぐことができる。
【００５３】
なお、本実施例では、ＥＣＣ1〜ＥＣＣ4を１つの追加サイクルでまとめて伝送する場合について説明したが、バス幅を増やすことができる場合には、各クロックのデータにＥＣＣを加えて送信し、追加サイクルを不要とすることもできる。
【００５４】
また、本実施例では、４つの３２ビットデータおよびＥＣＣ1〜ＥＣＣ4を連続するクロックサイクルで送信する場合について説明したが、これらのデータを連続したクロックサイクルで送信する必要はなく、間に空クロックサイクルをはさんで送信することもできる。
【００５５】
また、本実施例では、１クロックサイクルで１つのデータを送信するＳＤＲ(Single Data Rate)の場合について説明したが、１クロックサイクルで２つのデータを送信するＤＤＲ(Double Data Rate)、１クロックサイクルで４つのデータを送信するＱＤＲ(Quad Data Rate)の場合にも同様に適用することができる。
【００５６】
ところで、上記実施例では、送信データがバス上を送信される際のビット位置に基づいて送信データを４つに分割してＥＣＣ1〜ＥＣＣ4を生成する方式について説明したが、送信データに対して別の分割を行ってＥＣＣを生成することもできる。そこで、送信データに対して別の分割を行ってＥＣＣを生成する方式について説明する。
【００５７】
図７は、各クロックで送信されるデータそれぞれに対してＥＣＣを生成する方式を説明するための説明図である。同図に示すように、この方式では、各クロックで送信される３２ビットデータであるデータ5〜データ8に対してそれぞれＥＣＣ5〜ＥＣＣ8を生成し、データサイクルに続く追加サイクルでＥＣＣ5〜ＥＣＣ8をまとめて送信する。
【００５８】
具体的には、図２に示した送信側モジュール１００において、ＥＣＣ生成部１３０がデータ5〜データ8に対してそれぞれＥＣＣ5〜ＥＣＣ8を生成し、データ出力制御部１５０がデータ5〜データ8を送信した次のサイクルでＥＣＣ5〜ＥＣＣ8をまとめて送信する。
【００５９】
また、受信側モジュール２００において、データ入力制御部２２０がデータ5〜データ8に続いてＥＣＣ5〜ＥＣＣ8をまとめて受信し、ＥＣＣ訂正部２３０が受信データに対してＥＣＣ5〜ＥＣＣ8を用いて誤り訂正を行う。
【００６０】
このように、図７に示す方式では、データ5〜データ8に対してそれぞれＥＣＣ5〜ＥＣＣ8を生成して送信することによって、データを分割して送信するクロック数と同じ数のビットのエラー訂正を行うことができる。
【００６１】
また、図８は、バスの特定ビットに常に発生するエラーを訂正可能な方式を説明するための説明図である。同図では、９６ビットデータを３２ビット毎に分割し、３クロックで送信する場合を示している。同図に示すように、この方式では、各クロックで送信される３２ビットの１クロックデータを４つの８ビットの部分１クロックデータに分割して各１クロックデータから１つずつビット位置が重複しないように８ビットの部分１クロックデータを選択してグループＡ〜Ｄを作成し、グループＡ〜Ｄのデータに対してそれぞれＥＣＣA〜ＥＣＣDを生成する。
【００６２】
具体的には、図２に示した送信側モジュール１００において、ＥＣＣ生成部１３０がグループＡ〜Ｄのデータに対してそれぞれＥＣＣA〜ＥＣＣDを生成し、データ出力制御部１５０がデータサイクルの次のサイクルでＥＣＣA〜ＥＣＣDをまとめて送信する。
【００６３】
また、受信側モジュール２００において、データ入力制御部２２０がデータサイクルに続いてＥＣＣA〜ＥＣＣDをまとめて受信し、ＥＣＣ訂正部２３０が受信データに対してＥＣＣA〜ＥＣＣDを用いて誤り訂正を行う。
【００６４】
この図８に示す方式では、バスの特定位置のビットは、ＥＣＣを送るサイクルも含めて全サイクルを通して異なるグループに割り当てられる。例えば、図８において、バス上のビット位置が「１」であるビットは、先頭のサイクルではグループＤに属し、２番目のサイクルではグループＣに属し、３番目のサイクルではグループＢに属し、４番目のサイクルではグループＡに属する。
【００６５】
したがって、バス上の特定位置のビットが常にエラーとなる場合にも、１ビットであれば、エラーを訂正することができる。また、１つのサイクルで４グループに各１ビットのエラーが発生した場合にも、それらのエラー全てを訂正することができる。
【００６６】
なお、図８では、送信データをグループＡ〜Ｄから構成されるＥＣＣグループに分割する場合を示したが、送信データをさらに多くのＥＣＣグループに分割することで、バス上の特定位置ビットエラーの訂正できるビット数を増やすことができる。図９は、送信データを複数個のＥＣＣグループに分割する方式を説明するための説明図である。
【００６７】
同図に示すように、この方式では、例えば、３つのグループＡ〜Ｃと、３つのグループＤ〜Ｆの２つのＥＣＣグループに送信データを分割する。この方式は、クロック方向に比べてビット方向にデータが長くなる伝送の場合、複数の信号線が壊れた場合でも別のＥＣＣグループに属する信号線であれば、エラーを訂正することができる。
【００６８】
また、上記実施例では、データサイクルに続く追加サイクルでＥＣＣを送信する場合について説明したが、ＥＣＣの送信は別のサイクルなどで行うこともできる。そこで、ＥＣＣの送信を別のサイクルなどで行う方式について説明する。
【００６９】
図１０は、ＥＣＣをデータサイクルの前のサイクルで送信する方式を説明するための説明図である。同図に示すように、この方式では、データサイクルの前のサイクルでＥＣＣ5〜ＥＣＣ8を送信する。
【００７０】
具体的には、図５に示した送信処理手順において、ステップＳ１０４のデータの出力の前にステップＳ１０５のＥＣＣの出力を行う。また、図６に示した受信処理手順において、ステップＳ２０１のデータの入力の前にステップＳ２０３のＥＣＣの入力を行う。
【００７１】
この図１０に示す方式では、受信側モジュール２００はデータより先にＥＣＣを受信するため、ＥＣＣの受信を待つ必要がなく、データが届いた順にエラー訂正を行うことができる。例えば、図１０において、データ5については、データ6を受信するタイミングでエラー訂正処理を開始することができ、エラー訂正処理を高速化することができる。
【００７２】
図１１は、ＥＣＣを送信するか否かを選択可能な方式を説明するための説明図である。この方式では、最初のデータについては、データサイクルの前のサイクルでＥＣＣを送信し、２番目以降のデータについてはＥＣＣを送信しない。
【００７３】
具体的には、図２に示した送信側モジュール１００において、データ出力要求部１１０がＥＣＣを送信するか否かを指定し、データ出力制御部１５０がデータ出力要求部１１０によってＥＣＣの送信が指定された場合にＥＣＣを出力する。
【００７４】
また、受信側モジュール２００において、データ入力要求部２１０がＥＣＣの有無を指定し、データ入力制御部２２０がデータ入力要求部２１０による指定に基づいてＥＣＣを入力する。
【００７５】
このように、データごとにＥＣＣを送信するか否かを選択可能とすることによって、伝送速度が重要な場合にはＥＣＣを送信しない選択を行い、エラー訂正能力が重要な場合にはＥＣＣを送信する選択を行うことができる。
【００７６】
図１２は、２つのデータを連続して送る場合のＥＣＣ送信方式を説明するための説明図である。同図に示すように、この方式では、最初のデータを送信する前のサイクルで最初のデータに対するＥＣＣを送信し、２番目のデータを送信した次のサイクルで２番目のデータに対するＥＣＣを送信する。
【００７７】
このように、２つのデータを連続して送る場合に、２つのデータの前後にＥＣＣを送信することによって、送信データの伝送に影響を与えることなくＥＣＣを送信することができる。
【００７８】
図１３は、制御信号を用いたＥＣＣの送信方式を説明するための説明図である。同図に示すように、制御信号（Ctl-In）が使用される条件下では、制御信号を使用しない空サイクルを利用してＥＣＣを送信することができる。
【００７９】
具体的には、図２に示した送信側モジュール１００において、データ出力制御部１５０がデータバスの代わりに制御信号線を用いて、制御信号の空を見つけてＥＣＣを出力する。また、受信側モジュール２００において、データ入力制御部２２０がデータバスの代わりに制御信号線を用いてＥＣＣを入力する。
【００８０】
このように、制御信号の空を利用してＥＣＣを送信することによって、データの送信に影響を与えることなくＥＣＣを送信し、データ伝送の信頼性を向上させることができる。
【００８１】
図１４は、バスの空を利用したＥＣＣの送信方式を説明するための説明図である。同図は、最初のデータの送信前に最初のデータに対するＥＣＣを送信し、２番目以降のデータについてはＥＣＣを送信しない場合を示すが、ここでは、３番目のデータ送信後にバスに空があるため、この空を利用して２番目および３番目のデータに対するＥＣＣを送信する。ただし、この方式では、バスの空がデータの送信から所定の期間以内でなければＥＣＣは送信しない。
【００８２】
ここで、所定の期間としては、最初のＥＣＣ送信中止から平均的なバス混雑時間の間、ＥＣＣ送信中止が一定の回数連続する間などとすることができる。また、次のパケットが来るまでの間をＥＣＣ送信期間とすることもできる。
【００８３】
具体的には、図２に示した送信側モジュール１００において、データ出力制御部１５０が２番目以降のデータに対するＥＣＣを保持し、所定の期間内にデータバスの空が見つかった場合に、保持したＥＣＣを出力する。また、受信側モジュール２００において、データ入力制御部２２０が受信データを所定の期間保持するとともに、所定の期間に送信されるＥＣＣを受信する。
【００８４】
また、データとＥＣＣとの対応付けについては、ＥＣＣを前のデータから順番に対応付ける、伝送経路を数ビット分増やしてデータとＥＣＣにインデックスをつける、ＥＣＣの送信前に識別パケットを送信する、直近のデータに対するＥＣＣだけを送信するなどによって行うことができる。
【００８５】
このように、バスの空を利用してＥＣＣを送信することによって、データの送信に影響を与えることなくＥＣＣを送信し、データ伝送の信頼性を向上させることができる。
【００８６】
なお、本実施例では、モジュール間でデータを伝送する場合について説明したが、本発明はこれに限定されるものではなく、他の装置間で複数のビットを並列に送信するクロックサイクルを複数用いてデータを送信する場合にも同様に適用することができる。
【００８７】
（付記１）クロックに同期して複数のビットを並列に送信するデータ送信装置であって、
送信データを複数の部分データに分割し、該複数の部分データそれぞれに対して誤り訂正コードを生成する誤り訂正コード生成手段と、
前記送信データを並列に送信される複数のビットから構成される複数の１クロックデータに分割するデータ分割手段と、
前記データ分割手段により送信データから分割された複数の１クロックデータのそれぞれをクロックサイクルに同期して順次送信し、前記誤り訂正コード生成手段により生成された複数の誤り訂正コードをまとめて１クロックサイクルで送信するデータ送信制御手段と、
を備えたことを特徴とするデータ送信装置。
【００８８】
（付記２）前記誤り訂正コード生成手段は、複数のクロックサイクルで送信される送信データが各クロックサイクルで並列に送信されるビット位置に基づいて該送信データを分割することを特徴とする付記１に記載のデータ送信装置。
【００８９】
（付記３）前記誤り訂正コード生成手段は、前記複数の１クロックデータのそれぞれに対して誤り訂正コードを生成することを特徴とする付記１に記載のデータ送信装置。
【００９０】
（付記４）前記誤り訂正コード生成手段は、前記複数の１クロックデータのそれぞれを複数の部分１クロックデータに分割し、１クロックデータが並列に送信される際のビット位置が異なる部分１クロックデータを各１クロックデータから選択することによって前記送信データを複数の部分データに分割し、
前記データ送信制御手段は、前記誤り訂正コードの生成に用いられた部分１クロックデータとは異なるビット位置で該誤り訂正コードを送信することを特徴とする付記１に記載のデータ送信装置。
【００９１】
（付記５）前記データ送信制御手段は、前記複数の１クロックデータの送信クロックサイクルの次のクロックサイクルで前記複数の誤り訂正コードをまとめて送信することを特徴とする付記１〜４のいずれか一つに記載のデータ送信装置。
【００９２】
（付記６）前記データ送信制御手段は、前記複数の１クロックデータの送信クロックサイクルの前のクロックサイクルで前記複数の誤り訂正コードをまとめて送信することを特徴とする付記１〜４のいずれか一つに記載のデータ送信装置。
【００９３】
（付記７）前記データ送信制御手段は、前記複数の１クロックデータの送信クロックサイクルと連続する１クロックサイクルで前記複数の誤り訂正コードを送信するか否かを判定する判定手段と、
前記判定手段が前記複数の誤り訂正コードを送信すると判定した場合に、該複数の誤り訂正コードをまとめて送信する誤り訂正コード送信手段と、
を備えたことを特徴とする付記１〜４のいずれか一つに記載のデータ送信装置。
【００９４】
（付記８）前記誤り訂正コード送信手段は、前記判定手段が前記複数の誤り訂正コードを送信しないと判定した場合に、データ伝送路の空を監視して前記送信データの送信から所定の時間内にデータ伝送路の空があるときに該複数の誤り訂正コードをまとめて送信することを特徴とする付記７に記載のデータ送信装置。
【００９５】
（付記９）クロックに同期して複数のビットを並列に送信するデータ送信装置であって、
送信データを複数の部分データに分割し、該複数の部分データそれぞれに対して誤り訂正コードを生成する誤り訂正コード生成手段と、
前記送信データを並列に送信される複数のビットから構成される複数の１クロックデータに分割するデータ分割手段と、
前記データ分割手段により送信データから分割された複数の１クロックデータのそれぞれをクロックサイクルに同期して順次送信し、前記誤り訂正コード生成手段により生成された複数の誤り訂正コードをまとめて制御信号の空を利用して送信するデータ送信制御手段と、
を備えたことを特徴とするデータ送信装置。
【００９６】
（付記１０）クロックに同期してデータ送信装置から並列に送信される複数のビットを１クロックデータとして受信するデータ受信装置であって、
データ送信装置により複数のクロックサイクルを用いて送信された送信データを複数の１クロックデータとして受信し、該送信データを分割して生成された複数の部分データそれぞれから生成された複数の誤り訂正コードを１クロックサイクルでまとめて受信するデータ受信制御手段と、
前記データ受信制御手段により受信された複数の１クロックデータから全体データを組み立てる受信データ組み立て手段と、
前記受信データ組み立て手段により組み立てられた全体データを前記データ受信制御手段により受信された複数の誤り訂正コードを用いて訂正して受信データとする誤り訂正手段と、
を備えたことを特徴とするデータ受信装置。
【００９７】
（付記１１）前記複数の部分データは、複数のクロックサイクルで送信される送信データが各クロックサイクルで並列に送信されるビット位置に基づいて生成されることを特徴とする付記１０に記載のデータ受信装置。
【００９８】
（付記１２）前記複数の部分データは、前記複数の１クロックデータであることを特徴とする付記１０に記載のデータ受信装置。
【００９９】
（付記１３）前記複数の部分データは、前記複数の１クロックデータのそれぞれを複数の部分クロックデータに分割し、１クロックデータが並列に送信される際のビット位置が異なる部分１クロックデータを各１クロックデータから選択することによって生成されることを特徴とする付記１０に記載のデータ受信装置。
【０１００】
（付記１４）前記データ受信制御手段は、前記複数の１クロックデータの受信クロックサイクルの次のクロックサイクルで前記複数の誤り訂正コードをまとめて受信することを特徴とする付記１０〜１３のいずれか一つに記載のデータ受信装置。
【０１０１】
（付記１５）前記データ受信制御手段は、前記複数の１クロックデータの受信クロックサイクルの前のクロックサイクルで前記複数の誤り訂正コードをまとめて受信することを特徴とする付記１０〜１３のいずれか一つに記載のデータ受信装置。
【０１０２】
（付記１６）前記データ受信制御手段は、前記複数の１クロックデータの受信クロックサイクルと連続する１クロックサイクルで前記複数の誤り訂正コードを受信するか否かを判定する判定手段と、
前記判定手段が前記複数の誤り訂正コードを受信すると判定した場合に、該複数の誤り訂正コードをまとめて受信する誤り訂正コード受信手段と、
を備えたことを特徴とする付記１０〜１３のいずれか一つに記載のデータ受信装置。
【０１０３】
（付記１７）前記誤り訂正コード受信手段は、前記判定手段が前記複数の誤り訂正コードを受信しないと判定した場合に、データ伝送路の空を利用して前記送信データの受信から所定の時間内にデータ伝送路の空があるときに該複数の誤り訂正コードをまとめて受信することを特徴とする付記１６に記載のデータ受信装置。
【０１０４】
（付記１８）クロックに同期してデータ送信装置から並列に送信される複数のビットを１クロックデータとして受信するデータ受信装置であって、
データ送信装置により複数のクロックサイクルを用いて送信された送信データを複数の１クロックデータとして受信し、該送信データを分割して生成された複数の部分データそれぞれから生成された複数の誤り訂正コードを制御信号の空を利用して受信するデータ受信制御手段と、
前記データ受信制御手段により受信された複数の１クロックデータから全体データを組み立てる受信データ組み立て手段と、
前記受信データ組み立て手段により組み立てられた全体データを前記データ受信制御手段により受信された複数の誤り訂正コードを用いて訂正して受信データとする誤り訂正手段と、
を備えたことを特徴とするデータ受信装置。
【０１０５】
（付記１９）クロックに同期して複数のビットを並列に送信するデータ送信方法であって、
送信データを複数の部分データに分割し、該複数の部分データそれぞれに対して誤り訂正コードを生成する誤り訂正コード生成工程と、
前記送信データを並列に送信される複数のビットから構成される複数の１クロックデータに分割するデータ分割工程と、
前記データ分割工程により送信データから分割された複数の１クロックデータのそれぞれをクロックサイクルに同期して順次送信し、前記誤り訂正コード生成工程により生成された複数の誤り訂正コードをまとめて１クロックサイクルで送信するデータ送信制御工程と、
を含んだことを特徴とするデータ送信方法。
【０１０６】
（付記２０）クロックに同期してデータ送信装置から並列に送信される複数のビットを１クロックデータとして受信するデータ受信方法であって、
データ送信装置により複数のクロックサイクルを用いて送信された送信データを複数の１クロックデータとして受信し、該送信データを分割して生成された複数の部分データそれぞれから生成された複数の誤り訂正コードを１クロックサイクルでまとめて受信するデータ受信制御工程と、
前記データ受信制御工程により受信された複数の１クロックデータから全体データを組み立てる受信データ組み立て工程と、
前記受信データ組み立て工程により組み立てられた全体データを前記データ受信制御工程により受信された複数の誤り訂正コードを用いて訂正して受信データとする誤り訂正工程と、
を含んだことを特徴とするデータ受信方法。
【産業上の利用可能性】
【０１０７】
以上のように、本発明に係るデータ送信装置、データ受信装置、データ送信方法およびデータ受信方法は、ＬＳＩ間やモジュール間のデータ伝送に有用であり、特に、信頼性の高いデータ伝送が必要な場合に適している。
【図面の簡単な説明】
【０１０８】
【図１】本実施例に係る誤り訂正方式を説明するための説明図である。
【図２】本実施例に係る送信側モジュールおよび受信側モジュールの構成を示す機能ブロック図である。
【図３】データ伝送のタイムチャートを示す図である。
【図４】送信側モジュールおよび受信側モジュールの実装例を示す図である。
【図５】図２に示した送信側モジュールによる送信処理の処理手順を示すフローチャートである。
【図６】図２に示した受信側モジュールによる受信処理の処理手順を示すフローチャートである。
【図７】各クロックで送信されるデータそれぞれに対してＥＣＣを生成する方式を説明するための説明図である。
【図８】バスの特定ビットに常に発生するエラーを訂正可能な方式を説明するための説明図である。
【図９】送信データを複数個のＥＣＣグループに分割する方式を説明するための説明図である。
【図１０】ＥＣＣをデータサイクルの前のサイクルで送信する方式を説明するための説明図である。
【図１１】ＥＣＣを送信するか否かを選択可能な方式を説明するための説明図である。
【図１２】２つのデータを連続して送る場合のＥＣＣ送信方式を説明するための説明図である。
【図１３】制御信号を用いたＥＣＣの送信方式を説明するための説明図である。
【図１４】バスの空を利用したＥＣＣの送信方式を説明するための説明図である。
【図１５】モジュール間データ伝送における従来の誤り訂正方式を説明するための説明図である。
【符号の説明】
【０１０９】
１１    データ出力部
１２    ＥＣＣ生成部
１３    カウンタ
２１    ＥＣＣ格納バッファ
２２    誤り訂正回路
２３    データ入力部
１００    送信側モジュール
１１０    データ出力要求部
１２０    出力データ格納バッファ
１３０    ＥＣＣ生成部
１４０    時間方向データ分割部
１５０    データ出力制御部
２００    受信側モジュール
２１０    データ入力要求部
２２０    データ入力制御部
２３０    ＥＣＣ訂正部
２４０    入力データ格納バッファ
【図１】
2005354310.tif 000003
【図２】
2005354310.tif 000004
【図３】
2005354310.tif 000005
【図４】
2005354310.tif 000006
【図５】
2005354310.tif 000007
【図６】
2005354310.tif 000008
【図７】
2005354310.tif 000009
【図８】
2005354310.tif 000010
【図９】
2005354310.tif 000011
【図１０】
2005354310.tif 000012
【図１１】
2005354310.tif 000013
【図１２】
2005354310.tif 000014
【図１３】
2005354310.tif 000015
【図１４】
2005354310.tif 000016
【図１５】
2005354310.tif 000017