(57)【特許請求の範囲】
【請求項１】
外部から入力したフレームを第１遅延時間だけ遅延させて出力する第１データ遅延回路と、
該第１データ遅延回路から入力したフレームを第２遅延時間だけ遅延させて出力する第２データ遅延回路と、
前記フレームからパリティデータを抽出するとともに、誤り訂正開始タイミング信号と、フレーム出力タイミング信号と、該フレームの受信が正常に終了したか否かを示す判定信号とを生成・出力する第１入力位相制御回路と、
該第１入力位相制御回路が抽出した前記パリティデータを保存するパリティ蓄積回路と、
前記誤り訂正開始タイミング信号を受信した後で、前記第１データ遅延回路が出力した前記フレームから被訂正データを所定データ長ずつ読み出して出力し、さらに前記パリティ蓄積回路から読み出された前記パリティデータから該被訂正データに対応するものを出力する入力制御部を、複数個有する第２入力位相制御回路と、
対応する前記入力制御部から出力された前記被訂正データおよび前記パリティデータを用いて誤り訂正復号処理を行う誤り訂正デコーダを複数個有する演算回路と、
前記フレーム出力タイミング信号を受信したタイミングで、前記第２データ遅延回路から前記フレームを入力するとともに前記演算回路から訂正済データを入力し、前記判定信号が‘正常’を示すときは該訂正済データを出力し且つ該判定信号が‘異常’を示すときは前記フレームの被訂正データをそのまま出力する出力位相制御回路と、
を有することを特徴とする誤り訂正復号回路。
【請求項２】
前記誤り訂正デコーダが、それぞれ、前記誤り訂正復号処理が正常実施されたことを示す復号実施表示信号と、該誤り訂正復号処理が失敗したことを示す復号失敗表示信号とを生成し、且つ、
前記出力位相制御回路が、前記判定信号が‘正常’を示した場合にのみ、前記復号実施表示信号および前記復号失敗表示信号を外部に出力する、
ことを特徴とする請求項１に記載の誤り訂正復号回路。
【請求項３】
前記第１入力位相制御回路が、
前記フレームからの前記パリティデータの抽出が開始されたことを示す第１ロードタイミング信号を入力すると、第１アドレスポインタ値をロードし、前記パリティ蓄積回路に所定データ長のパリティデータが書き込まれるたびに該第１アドレスポインタ値に‘１’ずつ加算していく第１アドレスカウンタと、
‘正常’を示す前記判定信号が入力されたときにのみ、前記第１アドレスカウンタの計数値を前記第１アドレスポインタ値として保存する第１アドレスポインタと、
を備えることを特徴とする請求項１または２に記載の誤り訂正復号回路。
【請求項４】
前記第２入力位相制御回路が、
前記パリティ蓄積回路からの前記パリティデータの読み出しが開始されたことを示す第２ロードタイミング信号を入力すると、第２アドレスポインタ値をロードし、所定データ長のパリティデータが読み出されるたびに該第２アドレスポインタ値に‘１’ずつ加算していく第２アドレスカウンタと、
‘正常’を示す前記判定信号が入力されたときにのみ、前記第２アドレスカウンタの計数値を前記第２アドレスポインタ値として保存する第２アドレスポインタと、
を備えることを特徴とする請求項３に記載の誤り訂正復号回路。
【請求項５】
前記誤り訂正デコーダの個数を、それぞれの当該訂正デコーダが前記被訂正データの出力を終えてから次の被訂正データの先頭バイトを入力するまでの時間間隔が前記フレームの最小フレーム長を超えるような個数の最小値としたことを特徴とする請求項１〜４のいずれかに記載の誤り訂正復号回路。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、ブロック符号を用いて誤り訂正符号化されたデータを復号化する回路に関する。この発明は、例えば、リードソロモン符号化されたデータをIEEE802.3 勧告に準拠したフレームに格納して転送するシステムに採用することができる。
【背景技術】
【０００２】
デジタルデータの通信や記録を行う場合には、ノイズ等に起因してビット誤りが発生する場合がある。このような誤りを検出・訂正するための技術の一つとして、前方誤り訂正（Forwarded Error Correction:FEC）が知られている。前方誤り訂正は、冗長ビットを用いて、伝送データに発生する誤りビットを訂正する技術である。以下、ＦＥＣを採用した通信フレームを、ＦＥＣ(Forwarded Error Correction)フレームと記す。
【０００３】
また、ＦＥＣを行う技術の一つとして、ブロック符号を用いる技術が知られている。この技術では、通信或いは記録するデータをブロックに分割して、符号化処理を行う。ブロック符号を用いた誤り訂正技術は、例えばデータ通信等で採用されている。
【０００４】
さらに、ブロック符号の一つとして、リードソロモン符号が知られている。リードソロモン符号を用いた誤り訂正技術には、高度な誤り訂正能力を有する反面、演算処理が複雑で処理時間が長くなるという欠点がある。
【０００５】
リードソロモン符号等のブロック符号誤り訂正技術をデータ通信に用いた規格としては、例えば、IEEE(Institute of Electrical and Electronic Engineers)の802.3ah 勧告が知られている。IEEE802.3ah 勧告は、ＥＦＭ(Ethernet(登録商標） in the First Mile)とも称され、例えばＧＥ−ＰＯＮ(Gigabit Ethernet（登録商標）-Passive Optical Network)で採用されている。
【０００６】
図９は、IEEE802.3ah 勧告に準拠したＦＥＣフレームの構造を示す概念図である。図９において、S＿FECは、ＦＥＣフレームの開始を示す特殊符号である。PREAMBLE/SLDは、ＦＥＣフレームの伝搬速度と受信側ノードの処理速度とを同期させるために使用するフィールドであり、‘０’と‘１’との繰り返しからなる部分と、‘１’が２ビット連続した部分とを有する。FRAME/FCS は、ＦＥＣフレームが送信するユーザデータとＣＲＣ(Cyclic Redundancy Check) ビットとを格納するフィールドである。１番目のT＿FECは、FRAME/FCS フィールドの終了を示す特殊符号である。PARITYは、誤り訂正符号（すなわちパリティ）を格納するフィールドである。そして、２番目のT＿FECは、ＦＥＣフレームの終了を示す特殊符号である。
【０００７】
ブロック符号を用いて誤り訂正符号化されたデータを復号する回路は、例えば下記特許文献１、２に開示されている。しかし、これらの文献１、２に開示された誤り訂正復号回路は、処理時間が遅いという欠点がある。特に、ブロック符号としてリードソロモン符号を使用する場合、上述のように処理が複雑であるため、転送のレイテンシ（ノードがフレームを入力してから出力するまでの時間）が非常に長くなり、ネットワーク輻輳等の原因になっていた。
【特許文献１】特開２００２−７６９０９号公報
【特許文献２】特開２００４−１２０４１９号公報
【発明の開示】
【発明が解決しようとする課題】
【０００８】
転送時のレイテンシを短縮する方法として、例えば、S＿FECから１番目のT＿FECまでを受信した直後に誤り訂正復号処理を開始する方法が考えられる。
【０００９】
しかしながら、この方法には、以下のような欠点がある。
【００１０】
冗長フレームでは、１番目のT＿FECに伝送ビット誤りが発生した場合に、２番目のT＿FECを１番目のT＿FECであると誤認してしまう場合がある。このような場合、当該T＿FECが２番目のT＿FECであることは、フレーム受信完了後でなければ、認識できない。したがって、１番目のT＿FECまでを受信した直後に誤り訂正復号処理を開始する場合、誤り訂正復号処理を正常に行えないことになる。
【００１１】
また、フレームの伝送時に、２番目のT＿FECに伝送ビット誤りが発生する場合もある。このような場合には、正常な誤り訂正復号処理を行える場合もある反面、該処理を正常に行えない場合もあり、処理の信頼性を確保できない。
【００１２】
この発明の課題は、処理の信頼性が高く且つ処理時間が短い誤り訂正復号回路を提供する点にある。
【課題を解決するための手段】
【００１３】
この発明に係る誤り訂正復号回路は、外部から入力したフレームを第１遅延時間だけ遅延させて出力する第１データ遅延回路と、第１データ遅延回路から入力したフレームを第２遅延時間だけ遅延させて出力する第２データ遅延回路と、フレームからパリティデータを抽出するとともに誤り訂正開始タイミング信号とフレーム出力タイミング信号とフレームの受信が正常に終了したか否かを示す判定信号とを生成・出力する第１入力位相制御回路と、第１入力位相制御回路が抽出したパリティデータを保存するパリティ蓄積回路と、誤り訂正開始タイミング信号を受信した後で第１データ遅延回路が出力したフレームから被訂正データを所定データ長ずつ読み出して出力し、さらにパリティ蓄積回路から読み出されたパリティデータから被訂正データに対応するものを出力する入力制御部を複数個有する第２入力位相制御回路と、対応する入力制御部から出力された被訂正データおよびパリティデータを用いて誤り訂正復号処理を行う誤り訂正デコーダを複数個有する演算回路と、フレーム出力タイミング信号を受信したタイミングで第２データ遅延回路からフレームを入力するとともに演算回路から訂正済データを入力し、判定信号が‘正常’を示すときは訂正済データを出力し且つ判定信号が‘異常’を示すときはフレームの被訂正データをそのまま出力する出力位相制御回路とを有する。
【発明の効果】
【００１４】
この発明によれば、被訂正データの読み出し開始直後から誤り訂正復号処理を開始するとともに、この誤り訂正復号処理と並行してフレームが正常に受信されたか否かを判定して、誤り訂正されたフレームの出力が開始される前に正常／異常を判断することができる。したがって、この発明によれば、処理の信頼性を向上させることができる。
【００１５】
また、この発明によれば、被訂正データの読み出し開始直後から誤り訂正復号処理を開始することおよび複数の誤り訂正復号処理を並行して行うことにより、レイテンシを短縮することができる。
【００１６】
したがって、この発明によれば、処理の信頼性が高く且つ処理時間が短い誤り訂正復号回路を実現することが可能になる。
【発明を実施するための最良の形態】
【００１７】
以下、この発明の実施の形態について、図面を用いて説明する。なお、図中、各構成成分の大きさ、形状および配置関係は、この発明が理解できる程度に概略的に示してあるにすぎず、また、以下に説明する数値的条件は単なる例示にすぎない。
【００１８】
第１の実施形態
この発明の第１の実施形態に係る誤り訂正復号回路について、図１〜図３を用いて説明する。この実施形態は、ブロック符号としてリードソロモン符号を採用した場合の例である。
【００１９】
図１は、この実施形態に係る誤り訂正復号回路１００の構成を概略的に示すブロック図である。図１に示したように、この実施形態の誤り訂正復号回路１００は、第１データ遅延回路１１０と、第２データ遅延回路１２０と、ＦＥＣ入力位相制御回路１３０と、パリティ蓄積回路１４０と、ＲＳ（リードソロモン、以下同じ）入力位相制御回路１５０と、ＦＥＣ復号回路１６０と、ＦＥＣ出力位相制御回路１７０とを備える。
【００２０】
第１データ遅延回路１１０は、外部から受信されたＦＥＣフレームを、所定時間τ１だけ遅延させて、第２データ遅延回路１２０およびＲＳ入力位相制御回路１５０に送る。遅延時間τ１については、後述する。
【００２１】
第２データ遅延回路１２０は、第１データ遅延回路１１０から受信したＦＥＣフレームを、所定時間τ２だけ遅延させて、ＦＥＣ出力位相制御回路１７０に送る。遅延時間τ２は、回路１５０，１６０のレイテンシと一致するように設定される。
【００２２】
ＦＥＣ入力位相制御回路１３０は、外部から受信されたＦＥＣフレームからパリティデータを抽出・転送するとともに、ＲＳ入力位相制御回路１５０およびＦＥＣ出力位相制御回路１７０を制御するための信号Ｔin，Ｔout ，Ｓ０を生成・出力する。ＦＥＣ入力位相制御回路１３０は、パリティライト制御部１３１、タイミング生成部１３２および正常受信判定部１３３を有する。
【００２３】
パリティライト制御部１３１は、ＦＥＣフレームからパリティデータを所定バイトずつ読み出して、パリティ蓄積回路１４０に送る。一回の読み出し動作で読み出されるパリティデータ・バイト数は、ＦＥＣ演算回路１６０内の各ＲＳデコーダ１６１−０〜１６１−２（後述）が１回の誤り訂正復号処理で復号化するブロックのデータ長に応じて決定される。
【００２４】
タイミング生成部１３２は、ＦＥＣフレームに含まれるS＿FEC、１番目のT＿FECおよび２番目のT＿FECの受信タイミングに基づいて、ＲＳ入力タイミング信号ＴinおよびＦＥＣ出力タイミング信号Ｔout を生成・出力する。ＲＳ入力タイミング信号Ｔinは、ＲＳ入力位相制御回路１５０がＦＥＣ演算回路１６０に誤り訂正復号処理を開始させるタイミングを規定する（後述）。一方、ＦＥＣ出力タイミング信号Ｔout は、ＦＥＣ出力位相制御回路１７０内に設けられた出力データ選択部１７１のデータ出力タイミングを規定する（後述）。
【００２５】
正常受信判定部１３３は、１番目のT＿FECおよび２番目のT＿FECが正常に受信されたか否かを判定し、判定結果を示す信号（以下、判定信号）Ｓ０をＦＥＣ出力位相制御回路１７０に送る。
【００２６】
パリティ蓄積回路１４０は、パリティライト制御部１３１から受信したパリティデータを一時的に保存するＦＩＦＯ(First In First Out)メモリである。
【００２７】
ＲＳ入力位相制御回路１５０は、リードソロモン符号を用いた誤り訂正復号処理を行うためのデータ（後述）を、ＦＥＣ演算回路１６０に供給する。ＲＳ入力位相制御回路１５０は、パリティリード制御部１５１と、ＲＳ入力制御部１５２−０〜１５２−２とを有する。
【００２８】
パリティリード制御部１５１は、パリティ蓄積回路１４０に格納されたパリティデータを読み出して、ＲＳ入力制御部１５２−０〜１５２−２に順次供給する。
【００２９】
ＲＳ入力制御部１５２−０〜１５２−２は、それぞれ、第１データ遅延回路１１０から入力されたＦＥＣフレームの被訂正データ（PREAMBLE/SLDフィールドの格納データおよびFRAME/FCS フィールドの格納データ）から誤り訂正復号処理１回分のデータを読み出し、パリティリード制御部１５１から供給されたパリティデータと結合することにより、誤り訂正復号処理用のデータを生成する。生成されたデータは、対応するＲＳデコーダ１６１−０〜１６１−２に送信される。
【００３０】
ＦＥＣ演算回路１６０は、リードソロモン符号を用いた復号処理すなわちＦＥＣ演算を行う。ＦＥＣ演算回路１６０は、第１〜第３ＲＳデコーダ１６１−０〜１６１−２を有する。ＲＳデコーダ１６１−０〜１６１−２は、それぞれ、受信した復号処理用データを用いてＦＥＣ演算を行い、誤り訂正復号処理後のデータを出力する。
【００３１】
ＦＥＣ出力位相制御回路１７０は、ＦＥＣ演算回路１６０で誤り訂正復号処理されたデータまたは第２データ遅延回路１２０から受信した非処理ＦＥＣフレームを出力する。ＦＥＣ出力位相制御回路１７０は、出力データ選択部１７１を有する。出力データ選択部１７１は、ＦＥＣ演算回路１６０から受信したデータまたは第２データ遅延回路１２０から受信したデータの一方を、選択的に出力する。この再生処理の手順は、判定信号Ｓ０の値に応じて切り換えられる（後述）。出力データ選択部１７１の信号出力タイミングは、ＦＥＣ出力タイミング信号Ｔout に基づいて決定される。
【００３２】
次に、訂正復号回路１００の全体的な動作について説明する。図２は、誤り訂正復号回路１００が正常なＦＥＣフレームを受信した場合の動作を示す概念図である。また、図３は、誤り訂正復号回路１００が異常なＦＥＣフレームを受信した場合の動作を示す概念図である。
【００３３】
ここでは、ＦＥＣフレームの長さを、IEEE802.3ah 勧告で規定された最大フレーム長とする。この場合、PREAMBLE/SLDフィールド（図１参照）は７バイト、FRAME/FCS フィールドは１５３６バイトである。また、PARITYフィールドは、１１２バイトである。
【００３４】
この実施形態では、被訂正データ（７＋１５３６バイト）を７ブロックに分けて、誤り訂正復号処理が行われる。最初の６ブロックＤ１〜Ｄ６のデータ長は２３９バイトであり、最後のブロックＤ７のデータ長は１０９バイトである。各ブロックの誤り訂正復号処理には、１６バイトのパリティデータＰ１〜Ｐ７が使用される。
【００３５】
まず、誤り訂正復号回路１００に、ＦＥＣフレームが受信される。このＦＥＣフレームは、第１データ遅延回路１１０と、ＦＥＣ入力位相制御回路１３０とに入力される。
【００３６】
パリティライト制御部１３１は、ＦＥＣフレームを入力すると、パリティデータを１６バイトずつ読み出して、パリティ蓄積回路１４０に送る。これにより、１６バイト・パリティデータＰ１，Ｐ２，・・・，Ｐ７が、パリティ蓄積回路１４０内のＦＩＦＯに蓄積される。
【００３７】
これと並行して、第１データ遅延回路１１０が、受信したＦＥＣフレームを、遅延時間τ１（後述）だけ遅らせて、ＲＳ入力位相制御回路１５０に供給する。
【００３８】
タイミング生成部１３２は、第１データ遅延回路１１０からＲＳ入力位相制御回路１５０にデータＤ１の先頭ビットが供給されるタイミングで、ＲＳ入力タイミング信号Ｔinを出力する。これにより、ＲＳ入力制御部１５２−０が、データＤ１の取り込みを開始する。ＲＳ入力制御部１５２−０は、取り込んだデータＤ１を、ＲＳデコーダ１６１−０に、順次送る。そして、データＤ１の送信終了タイミングに合わせて、パリティリード制御部１５１が、パリティ蓄積回路１４０のＦＩＦＯからパリティデータＰ１を読み出す。このパリティデータＰ１も、データＤ１の最終ビットに続いて、ＲＳデコーダ１６１−０に送られる。ＲＳデコーダ１６１−０は、これらのデータＤ１，Ｐ１を用いて、誤り訂正復号処理を行う。
【００３９】
また、データＤ１の送信終了タイミングに合わせて、ＲＳ入力制御部１５２−１が、データＤ２の取り込みを開始する。ＲＳ入力制御部１５２−１は、取り込んだデータＤ２を、ＲＳデコーダ１６１−１に、順次送る。そして、データＤ２の送信終了タイミングに合わせて、パリティリード制御部１５１が、パリティ蓄積回路１４０のＦＩＦＯからパリティデータＰ２を読み出す。このパリティデータＰ２も、データＤ２の最終ビットに続いて、ＲＳデコーダ１６１−１に送られる。ＲＳデコーダ１６１−１は、これらのデータＤ２，Ｐ２を用いて、誤り訂正復号処理を行う。
【００４０】
さらに、データＤ２の送信終了タイミングに合わせて、ＲＳ入力制御部１５２−２が、データＤ３の取り込みを開始する。ＲＳ入力制御部１５２−２は、取り込んだデータＤ３を、ＲＳデコーダ１６１−２に、順次送る。そして、データＤ３の送信終了タイミングに合わせて、パリティリード制御部１５１が、パリティ蓄積回路１４０のＦＩＦＯからパリティデータＰ３を読み出す。このパリティデータＰ３も、データＤ３の最終ビットに続いて、ＲＳデコーダ１６１−２に送られる。ＲＳデコーダ１６１−２は、これらのデータＤ３，Ｐ３を用いて、誤り訂正復号処理を行う。
【００４１】
データＤ３の送信終了後に、ＲＳ入力制御部１５２−０が、データＤ４の取り込み・送信を開始する。さらに、データＤ４の送信終了タイミングに合わせて、パリティデータＰ４の読み出し・送信が開始される。以下、同様にして、データＤ５〜Ｄ７およびパリティデータＰ５〜Ｐ７が、対応するＲＳデコーダ１６１−０〜１６１−２に送られ、誤り訂正復号処理が実行される。なお、データＤ７を送信するときには、データ長を調整するためのパディングデータが付加される（図示せず）。
【００４２】
ＲＳデコーダ１６１−０〜１６１−２は、データＤ１〜Ｄ７を誤り訂正することによって得られたデータｄ１〜ｄ７を、順次出力する。
【００４３】
出力データ選択部１７１は、ＲＳデコーダ１６１−０〜１６１−２からデータｄ１〜ｄ７を順次受信するとともに、第２データ遅延回路１２０から、ＦＥＣフレームを受信する。この実施形態では、第２データ遅延回路１２０を有しているので、出力データ選択部１７１において、データｄ１がＲＳデコーダ１６１−０から受信されるタイミングと、ＦＥＣフレーム内のデータＤ１が受信されるタイミングとが、一致する。同様に、データｄ２〜ｄ７が受信されるタイミングと、ＦＥＣフレーム内のデータＤ２〜Ｄ７が受信されるタイミングとは、それぞれ一致する。
【００４４】
出力データ選択部１７１は、ＦＥＣ出力タイミング信号Ｔout が与えるタイミングにしたがって、以下のような信号を出力する。
【００４５】
出力データ選択部１７１は、判定信号Ｓ０が２番目のT＿FECが正常に受信されたことを示しているときは（図２参照）、特殊符号であるS＿FEC、１番目のT＿FEC、２番目のT＿FECおよびPARITYフィールドのデータ（すなわちパリティデータ）に代えて、IEEE802.3 に規定されたアイドルパターン（すなわち、/I/ ）を出力する。そして、出力データ選択部１７１は、PREAMBLE/SLDフィールドおよびFRAME/FCS フィールドの格納データを出力するタイミングで、ＲＳデコーダ１６１−０〜１６１−２から受信したデータｄ１〜ｄ７を順次出力する。一方、判定信号Ｓ０が２番目のT＿FECが正常に受信されなかったことを示しているとき（図３参照）、出力データ選択部１７１は、第２データ遅延回路１２０から受信したＦＥＣフレームを、そのまま出力する。
【００４６】
上述のように、第２データ遅延回路１２０の遅延時間τ２は、回路１５０，１６０のレイテンシと一致するように設定される。また、第１、第２データ遅延回路１１０，１２０の総遅延時間τ１＋τ２は、正常受信判定部１３３の判定結果が確定するタイミングと第２データ遅延回路１２０がS＿FECを出力するタイミングとが一致するように設定される。したがって、第１データ遅延回路１１０の遅延時間τ１は、下式（１）のように設定される。下式（１）において、Ｌmax は受信フレームの最大長（PREAMBLE/SLDフィールドおよびFRAME/FCS フィールドの最大データ長）、Ｌ１は１番目のT＿FECの長さ、ＬｐはPARITYフィールドの長さ、Ｌ２は２番目のT＿FECの長さである。この実施形態では、１バイトの受信時間を１サイクルとして、Ｌmax ＝１５３６＋７サイクル、Ｌ１＝７サイクル、Ｌｐ＝１６×７サイクル、Ｌ２＝６サイクルであり、τ２は例えば３３１サイクルである。
【００４７】
τ１＝（Ｌmax＋Ｌ１＋Ｌｐ＋Ｌ２）−τ２      ・・・（１）
以上説明したように、この実施形態に係る誤り訂正復号回路１００によれば、PARITYフィールドの読み出し開始直後から誤り訂正復号処理を開始するとともに、この誤り訂正復号処理と並行して１番目および２番目のT＿FECが正常に受信されたか否かを判定し、誤り訂正されたフレームの出力が開始される前に正常／異常を判断することができる。したがって、この実施形態によれば、処理の信頼性を向上させることができる。
【００４８】
また、この実施形態によれば、PARITYフィールドの読み出し開始直後から誤り訂正復号処理を開始することと、複数の誤り訂正復号処理を並行して行うこととにより、レイテンシを短縮することができる。さらに、レイテンシが短いことにより、データ遅延回路の遅延時間を全体として短縮することができるので、遅延素子の削減等により回路規模の縮小や消費電力の低減を図ることもできる。
【００４９】
したがって、この実施形態によれば、処理の信頼性が高く且つ処理時間が短い誤り訂正復号回路を、小規模且つ低消費電力の回路で実現することが可能になる。
【００５０】
第２の実施形態
次に、この発明の第２の実施形態に係る誤り訂正復号回路について、図４〜図６を用いて説明する。
【００５１】
この実施形態は、この発明に係る誤り訂正復号回路に、ＦＥＣ復号処理の実施／失敗を示す信号の出力機能を付加した例である。
【００５２】
図４は、この実施形態に係る誤り訂正復号回路４００の構成を概略的に示すブロック図である。図４において、図１と同じ符号を付した構成要素は、それぞれ図１の場合と同じ物を示している。
【００５３】
図４に示したように、この実施形態に係る誤り訂正復号回路４００は、ＦＥＣ演算回路４１０およびＦＥＣ出力位相制御回路４２０の構成が、上述の第１の実施形態に係るＦＥＣ演算回路１６０およびＦＥＣ出力位相制御回路１７０と異なる。
【００５４】
ＦＥＣ演算回路４１０は、第１〜第３ＲＳデコーダ４１１−０〜４１１−２を有する。ＲＳデコーダ４１１−０〜４１１−２は、ＦＥＣ復号実施表示信号Ｓｅ０〜Ｓｅ２およびＦＥＣ復号失敗表示信号Ｓｆ０〜Ｓｆ２を出力するように構成されている点で、第１の実施形態に係るＲＳデコーダ１６１−０〜１６１−２と異なる。ＲＳデコーダ４１１−０〜４１１−２は、誤り訂正復号処理が正常実施されたときハイレベルのＦＥＣ復号実施表示信号Ｓｅ０〜Ｓｅ２を１回出力し、誤り訂正復号処理が正常実施されなかったときＦＥＣ復号失敗表示信号Ｓｆ０〜Ｓｆ２を１回出力する（後述の図５、図６参照）。
【００５５】
ＦＥＣ出力位相制御回路４２０は、復号実施表示信号生成部４２２および復号失敗信号生成部４２３を有している。
【００５６】
復号実施表示信号生成部４２２は、判定信号Ｓ０がハイレベルのとき（すなわち、１番目のT＿FECおよび２番目のT＿FECが正常に受信されたとき）はＦＥＣ演算回路４１０から入力したＦＥＣ復号実施表示信号Ｓｅ０〜Ｓｅ２をＦＥＣ復号実施表示信号Ｓｅ３として出力し、且つ、判定信号Ｓ０がローレベルのとき（すなわち、１番目のT＿FECまたは２番目のT＿FECが正常に受信されなかったとき）は出力をローレベルに固定する。
【００５７】
復号失敗表示信号生成部４２３は、判定信号Ｓ０がハイレベルのときは、ＦＥＣ演算回路４１０から入力したＦＥＣ復号失敗表示信号Ｓｆ０〜Ｓｆ２をＦＥＣ復号失敗表示信号Ｓｆ３として出力し、且つ、判定信号Ｓ０がローレベルのときは出力をローレベルに固定する。
【００５８】
次に、誤り訂正復号回路４００の全体的な動作について説明する。図５は、誤り訂正復号回路４００が正常なＦＥＣフレームを受信した場合の動作を示す概念図である。また、図６は、誤り訂正復号回路４００が異常なＦＥＣフレームを受信した場合の動作を示す概念図である。ＦＥＣフレームの各フィールドの長さや、誤り符号訂正処理のブロック長等は、第１の実施形態と同じとする。
【００５９】
まず、第１の実施形態と同様、ＦＥＣフレームが受信されると、パリティライト制御部１３１がパリティデータを１６バイトずつ読み出してパリティ蓄積回路１４０に送り、また、第１データ遅延回路１１０が、ＦＥＣフレームを、遅延時間τ１だけ遅らせてＲＳ入力位相制御回路１５０に供給する。さらに、タイミング生成部１３２が、データＤ１の先頭ビットがＲＳ入力位相制御回路１５０に供給されるタイミングで、ＲＳ入力タイミング信号Ｔinを出力する。ＲＳ入力制御部１５２−０〜１５２−２は、第１の実施形態と同様にして、データを取り込み、取り込んだデータおよびパリティデータを、ＲＳデコーダ４１１−０〜４１１−２に順次送る。なお、データＤ７を送信するときには、データ長を調整するためのパディングデータＰＡＤが付加される（後述の図５、図６参照）。
【００６０】
ＲＳデコーダ４１１−０〜４１１−２は、受信したデータおよびパリティデータを用いて、誤り訂正復号処理を行う。このとき、ＲＳデコーダ４１１−０〜４１１−２は、周知の方法を用いて、誤り訂正復号処理が正常に実施されたか或いは失敗したかを判断する。そして、ＲＳデコーダ４１１−０〜４１１−２は、正常実施された場合には、ＦＥＣ復号実施表示信号Ｓｅ０〜Ｓｅ２を出力する（図５、図６参照）。一方、誤り訂正復号処理に失敗した場合、ＲＳデコーダ４１１−０〜４１１−２は、ＦＥＣ復号失敗表示信号Ｓｆ０〜Ｓｆ２を出力する（図示せず）。
【００６１】
出力データ選択部１７１は、第１の実施形態と同様、ＦＥＣ出力タイミング信号Ｔout が与えるタイミングにしたがって、誤り訂正復号処理されたデータを出力し、或いは、第２データ遅延回路１２０から入力したＦＥＣフレームをそのまま出力する。
【００６２】
復号実施表示信号生成部４２２および復号失敗表示信号生成部４２３は、判定信号Ｓ０がハイレベルのときにのみ、ＦＥＣ復号実施表示信号Ｓｅ０〜Ｓｅ２またはＦＥＣ復号失敗表示信号Ｓｆ０〜Ｓｆ２を、信号Ｓｅ３，Ｓｆ３として出力する。
【００６３】
復号実施表示信号Ｓｅ３および復号失敗表示信号Ｓｆ３は、例えば通信システムの管理制御装置が、通信状態を統計的に監視するために使用される。したがって、ＦＥＣフレームが正常に受信されなかったとき（すなわち、１番目のT＿FECまたは２番目のT＿FECが正常に受信されなかったとき）に、これらの信号Ｓｅ３，Ｓｆ３が出力されるのは好ましくない。
【００６４】
これに対して、この実施形態では、誤り訂正されたフレームの出力が開始される前に正常／異常を判断することができるので、この判断結果Ｓ０に応じて信号Ｓｅ３，Ｓｆ３の出力／非出力を切り換えることができる。したがって、この実施形態によれば、システム監視等の信頼性を向上させることができる。
【００６５】
加えて、この実施形態によれば、第１の実施形態と同様の理由により、処理の信頼性が高く且つ処理時間が短い誤り訂正復号回路を、小規模且つ低消費電力の回路で実現することが可能になる。
【００６６】
第３の実施形態
次に、この発明の第３の実施形態に係る誤り訂正復号回路について、図７および図８を用いて説明する。
【００６７】
この実施形態は、パリティライト制御部およびパリティリード制御部に、アドレスカウンタを設けた例である。
【００６８】
図７は、この実施形態に係る誤り訂正復号回路７００の構成を概略的に示すブロック図である。図７において、図１と同じ符号を付した構成要素は、それぞれ図１の場合と同じ物を示している。
【００６９】
図７に示したように、この実施形態に係る誤り訂正復号回路７００は、ＦＥＣ入力位相制御回路１３０内のパリティライト制御部７１１と、ＲＳ入力位相制御回路１５０内のパリティリード制御部７１２とに、判定信号Ｓ０が入力される。
【００７０】
図８（Ａ）は、パリティライト制御部７１１内に設けられたライトアドレスカウンタ回路８１０を示す回路図である。図８（Ａ）に示したように、このライトアドレスカウンタ回路８１０は、アドレスカウンタ８１１と、アドレスポインタ８１２とを備えている。
【００７１】
アドレスカウンタ８１１は、ロードタイミング信号ＬＯＡＤ１を入力すると、アドレスポインタ８１２の出力値をロードする。さらに、アドレスカウンタ８１１は、クロックＣＬＫ１を入力するたびに、このロード値に‘１’を加算していく。また、アドレスカウンタ８１１の計数値は、リセット信号ＲＳＴの入力によりリセットされる。
【００７２】
アドレスポインタ８１２は、‘正常’を示す判定信号Ｓ０が入力されたときに、アドレスカウンタ８１１の出力値をロードする。アドレスポインタ８１２のロード値は、リセット信号ＲＳＴの入力によりリセットされる。
【００７３】
図８（Ｂ）は、パリティリード制御部７１２内に設けられたリードアドレスカウンタ回路８２０を示す回路図である。図８（Ｂ）に示したように、このリードアドレスカウンタ回路８２０は、アドレスカウンタ８２１と、アドレスポインタ８２２とを備えている。
【００７４】
アドレスカウンタ８２１は、アドレスカウンタ８１１と同様、ロードタイミング信号ＬＯＡＤ２を入力するとアドレスポインタ８２２の出力値をロードし、且つ、クロックＣＬＫ２を入力するたびにロード値に‘１’を加算していく。また、アドレスカウンタ８２１の計数値は、リセット信号ＲＳＴの入力によりリセットされる。
【００７５】
アドレスポインタ８２２は、アドレスポインタ８１２と同様、‘正常’を示す判定信号Ｓ０が入力されたときに、アドレスカウンタ８２１の出力値をロードする。アドレスポインタ８２２のロード値は、リセット信号ＲＳＴの入力によりリセットされる。
【００７６】
次に、誤り訂正復号回路７００の全体的な動作について説明する。
【００７７】
まず、誤り訂正復号回路７００に、１個目のＦＥＣフレームが受信されると、パリティライト制御部７１１は、PARITYフィールドの先頭をチェックする。そして、ＦＥＣフレームが、PARITYフィールドの先頭に達すると、ロード信号ＬＯＡＤ１がアクティブになる。これにより、ライトアドレスカウンタ回路８１０内のアドレスカウンタ８１１が、アドレスポインタ８１２の格納値をロードする。その後、パリティライト制御部７１１は、クロックＣＬＫ１のタイミングで、パリティ蓄積回路１４０にパリティデータを１バイトずつ書き込む。これと並行して、アドレスカウンタ８１１は、クロックＣＬＫ１を入力するたびに、ロード値に‘１’を加算していく。したがって、パリティデータが１バイト書き込まれるたびに、アドレスカウンタの値に‘１’が加算されることになる。
【００７８】
１個目のＦＥＣフレームのPARITYフィールドに格納されたパリティデータがすべてパリティ蓄積回路１４０に書き込まれた後、ロード信号ＬＯＡＤ１はノンアクティブになる。これにより、アドレスカウンタ８１１の計数動作は停止する。正常受信判定部１３３は、１番目のT＿FECおよび２番目のT＿FECが正常に受信されたか否かを判定し、判定信号Ｓ０を出力する。上述のように、この実施形態では、判定信号Ｓ０は、パリティライト制御部７１１に入力される。アドレスポインタ８１２は、‘正常’を示す判定信号Ｓ０を入力すると、このときのアドレスカウンタ８１１の計数値をロードする。このロード値は、パリティライト制御部７１１が２個目のＦＥＣフレームからのパリティデータの読み込みを開始するときに、計数の初期値として、アドレスカウンタ８１１にロードされる。
【００７９】
一方、１個目のＦＥＣフレームのPARITYフィールドに格納されたパリティデータがすべてパリティ蓄積回路１４０に書き込まれた後、‘正常’を示す判定信号Ｓ０が入力されなかったとき（すなわち、当１個目のＦＥＣフレームが‘異常’であったとき）、アドレスポインタ８１２は、アドレスカウンタの計数値をロードしない。したがって、パリティライト制御部７１１が２個目のＦＥＣフレームからのパリティデータの読み込みを開始したとき、計数の初期値として、アドレスポインタ８１２から前回ロードした値と同じ値が、アドレスカウンタ８１１にロードされる。したがって、パリティ蓄積回路１４０では、１個目のＦＥＣフレームのパリティデータを格納したアドレスに、２個目のＦＥＣフレームのパリティデータが上書きされる。
【００８０】
また、第１の実施形態と同様、タイミング生成部１３２は、データＤ１の先頭ビットがＲＳ入力位相制御回路１５０に供給されるタイミングで、ＲＳ入力タイミング信号Ｔinを出力する。これにより、ＲＳ入力制御部１５２−０が、データＤ１を取り込んで、ＲＳデコーダ１６１−０に、順次送る。さらに、データＤ１の送信終了タイミングに合わせて、パリティリード制御部７１２が、パリティ蓄積回路１４０のＦＩＦＯからパリティデータＰ１を読み出す。このとき、ロード信号ＬＯＡＤ２がアクティブになる。これにより、リードアドレスカウンタ回路８２０内のアドレスカウンタ８２１が、アドレスポインタ８２２の格納値をロードする。その後、パリティリード制御部７１２は、クロックＣＬＫ２のタイミングで、パリティ蓄積回路１４０からパリティデータを順次読み出す。これと並行して、アドレスカウンタ８２１は、クロックＣＬＫ２を入力するたびに、ロード値に‘１’を加算していく。したがって、パリティデータが１バイト書き込まれるたびに、アドレスカウンタの値に‘１’が加算されることになる。
【００８１】
パリティリード制御部７１２は、正常受信判定部１３３から‘正常’を示す判定信号Ｓ０を入力した場合、パリティデータの読み出し終了後に、アドレスカウンタ８２１の計数値をアドレスポインタ８２２にロードさせる。このロード値は、パリティリード制御部７１２が２個目のＦＥＣフレームからパリティデータの読み込みを開始するときに、計数の初期値として、アドレスカウンタ８２１にロードされる。
【００８２】
一方、パリティリード制御部７１２が‘正常’を示す判定信号Ｓ０を入力しなかったとき、アドレスポインタ８２２は、アドレスカウンタ８２１の計数値をロードしない。したがって、パリティリード制御部７１２が２個目のＦＥＣフレームからのパリティデータの読み込みを開始したときに、計数の初期値として、アドレスポインタ８２２から前回ロードした値と同じ値が、アドレスカウンタ８２１にロードされる。したがって、パリティリード制御部７１２は、パリティライト制御部７１１が上書きしたパリティデータを、パリティ蓄積回路１４０から読み出すことになる。
【００８３】
他の動作は、上述の第１の実施形態と同様であるので、説明を省略する。
【００８４】
以上説明したように、この実施形態によれば、正常受信判定部１３３がＦＥＣフレームを‘異常’と判断した場合には、次のＦＥＣフレームから取り出されたパリティデータをパリティ蓄積回路１４０に上書きすることとしたので、異常なＦＥＣフレームが受信された場合でもその後の誤り訂正復号回路７００の動作に異常をきたすおそれがない。したがって、この実施形態によれば、誤り訂正復号回路の動作を安定化させることができる。
【００８５】
加えて、この実施形態によれば、第１の実施形態と同様の理由により、処理の信頼性が高く且つ処理時間が短い誤り訂正復号回路を、小規模且つ低消費電力の回路で実現することが可能になる。
【００８６】
最後に、上述の各実施形態においてＲＳ入力制御部およびＲＳデコーダをそれぞれ３個とした理由を説明する。
【００８７】
上述の各実施形態では、ＦＥＣフレームの長さがIEEE802.3ah 勧告の最大フレーム長である場合を例に採って説明した。しかしながら、誤り訂正復号回路の処理速度が最も遅くなるのは、最小フレーム長のＦＥＣフレームが連続的に受信された場合である。ここで、IEEE802.3ah で勧告されたＦＥＣフレームの最小長は、全体で１１２バイト、そのうち被訂正データが６４バイトである。
【００８８】
上述の各実施形態に係る誤り訂正復号回路では、第１データ遅延回路から入力された被訂正データ・ブロックのデータ長が２３９バイトに満たない場合は、先頭にパディングデータを挿入することにより該ブロックの長さを２３９バイトに調整する。したがって、最小フレーム長のＦＥＣフレームでは、１７５（＝２３９−６４）バイトのパディングデータが、該ブロックの先頭に挿入される。
【００８９】
誤り訂正復号化の処理時間を短くするためには、ＲＳ入力制御部は、該ブロックが第１データ遅延回路１１０から入力される前にパディングデータの挿入（すなわち、ＲＳデコーダへの出力）を開始し、該ブロックの先頭バイトが入力されたタイミングでパディングデータの挿入を終了することが望ましい（図５のブロックＤ７参照）。したがって、ＲＳ入力制御部は、最小フレーム長ＦＥＣフレームに係るブロックの出力を終えてから、該ＲＳ入力制御部にその次に割り当てられたＦＥＣフレームに係るブロックの先頭バイトを入力するまで、１７５サイクル以上の時間間隔を空ける必要がある。
【００９０】
ここで、ＲＳ入力制御部およびＲＳデコーダをそれぞれ２個とした場合を考える。この場合、各ＲＳ入力制御部に、最小フレーム長ＦＥＣフレームが、交互に割り当てられる。したがって、各ＲＳ入力制御部は、ブロックの出力を終えてから次のブロックの先頭バイトを入力するまでの時間間隔が、最小で、最小フレーム長ＦＥＣフレームの１個分（すなわち１１２バイト）になる。
【００９１】
一方、ＲＳ入力制御部およびＲＳデコーダをそれぞれ３個とした場合、各ＲＳ入力制御部には、３個に１個の割合で最小フレーム長ＦＥＣフレームが割り当てられる。したがって、各ＲＳ入力制御部は、ブロックの出力を終えてから次のブロックの先頭バイトを入力するまでの時間間隔が、最小で、最小フレーム長ＦＥＣフレーム２個分（すなわち２２４バイト）になる。
【００９２】
したがって、ブロックの入力前にパディングデータの出力を終えるためには、ＲＳ入力制御部およびＲＳデコーダを３個以上とすればよい。
【００９３】
その一方で、誤り訂正復号回路の回路規模や消費電力を小さくするためには、ＲＳ入力制御部およびＲＳデコーダの個数は少ないほどよい。
【００９４】
以上の理由から、ＲＳ入力制御部およびＲＳデコーダをそれぞれ３個とすることが望ましい。
【００９５】
なお、ここでは、IEEE802.3ah で勧告されたＦＥＣフレームの場合（非訂正データの最小長が６４バイトの場合）を例に採って説明したが、他の規約に基づくフレームでも、入力制御部およびデコーダの個数を、被訂正データ・ブロックの出力を終えてから次の被訂正データ・ブロックの先頭バイトを入力するまでの時間間隔が最小フレーム長を超えるような個数の最小値とすることにより、同様の効果を得ることができる。
【図面の簡単な説明】
【００９６】
【図１】第１の実施形態に係る誤り訂正復号回路の構成を概略的に示すブロック図である。
【図２】第１の実施形態に係る誤り訂正復号回路が正常なＦＥＣフレームを受信した場合の動作を示す概念図である。
【図３】第１の実施形態に係る誤り訂正復号回路が異常なＦＥＣフレームを受信した場合の動作を示す概念図である。
【図４】第２の実施形態に係る誤り訂正復号回路の構成を概略的に示すブロック図である。
【図５】第２の実施形態に係る誤り訂正復号回路が正常なＦＥＣフレームを受信した場合の動作を示す概念図である。
【図６】第２の実施形態に係る誤り訂正復号回路が異常なＦＥＣフレームを受信した場合の動作を示す概念図である。
【図７】第３の実施形態に係る誤り訂正復号回路の構成を概略的に示すブロック図である。
【図８】第３の実施形態に係る誤り訂正復号回路の構成を概略的に示すブロック図である。
【図９】ＦＥＣフレームの構造例を示す概念図である。
【符号の説明】
【００９７】
１００  誤り訂正復号回路
１１０  第１データ遅延回路
１２０  第２データ遅延回路
１３０  ＦＥＣ入力位相制御回路
１３１  パリティライト制御部
１３２  タイミング生成部
１３３  正常受信判定部
１４０  パリティ蓄積回路
１５０  ＲＳ入力位相制御回路
１５１  パリティリード制御部
１５２−０〜１５２−２  ＲＳ入力制御部
１６０  ＦＥＣ演算回路
１６１−０〜１６１−２  ＲＳデコーダ
１７０  ＦＥＣ出力位相制御回路
１７１  出力データ選択部
【図１】
0004677638.tif 000002
【図２】
0004677638.tif 000003
【図３】
0004677638.tif 000004
【図４】
0004677638.tif 000005
【図５】
0004677638.tif 000006
【図６】
0004677638.tif 000007
【図７】
0004677638.tif 000008
【図８】
0004677638.tif 000009
【図９】
0004677638.tif 000010