JP2013009191A - 誤り訂正処理回路および誤り訂正処理方法 - Google Patents

誤り訂正処理回路および誤り訂正処理方法 Download PDF

Info

Publication number
JP2013009191A
JP2013009191A JP2011140977A JP2011140977A JP2013009191A JP 2013009191 A JP2013009191 A JP 2013009191A JP 2011140977 A JP2011140977 A JP 2011140977A JP 2011140977 A JP2011140977 A JP 2011140977A JP 2013009191 A JP2013009191 A JP 2013009191A
Authority
JP
Japan
Prior art keywords
data
unit
error correction
input
output
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.)
Granted
Application number
JP2011140977A
Other languages
English (en)
Other versions
JP5810670B2 (ja
Inventor
Toshiharu Sakai
敏晴 酒井
Ryoji Azumi
良二 安積
Kiyomasa Nishisaka
清正 西坂
Daisuke Hirata
大介 平田
Hiroyuki Kitajima
広之 北島
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 Ltd
Original Assignee
Fujitsu 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 Ltd filed Critical Fujitsu Ltd
Priority to JP2011140977A priority Critical patent/JP5810670B2/ja
Priority to US13/488,741 priority patent/US9166739B2/en
Publication of JP2013009191A publication Critical patent/JP2013009191A/ja
Application granted granted Critical
Publication of JP5810670B2 publication Critical patent/JP5810670B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/004Arrangements for detecting or preventing errors in the information received by using forward error control
    • H04L1/0045Arrangements at the receiver end
    • H04L1/0052Realisations of complexity reduction techniques, e.g. pipelining or use of look-up tables
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
    • H03M13/13Linear codes
    • H03M13/15Cyclic codes, i.e. cyclic shifts of codewords produce other codewords, e.g. codes defined by a generator polynomial, Bose-Chaudhuri-Hocquenghem [BCH] codes
    • H03M13/151Cyclic codes, i.e. cyclic shifts of codewords produce other codewords, e.g. codes defined by a generator polynomial, Bose-Chaudhuri-Hocquenghem [BCH] codes using error location or error correction polynomials
    • H03M13/1515Reed-Solomon codes
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/65Purpose and implementation aspects
    • H03M13/6561Parallelized implementations

Landscapes

  • Physics & Mathematics (AREA)
  • Engineering & Computer Science (AREA)
  • Probability & Statistics with Applications (AREA)
  • Theoretical Computer Science (AREA)
  • Mathematical Physics (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Algebra (AREA)
  • General Physics & Mathematics (AREA)
  • Pure & Applied Mathematics (AREA)
  • Detection And Prevention Of Errors In Transmission (AREA)
  • Error Detection And Correction (AREA)

Abstract

【課題】通信の大容量化を図ること。
【解決手段】誤り訂正処理回路は、入力データ蓄積バッファと、演算器と、出力データ蓄積バッファと、を備えている。入力データ蓄積バッファは、入力されたデータを所定のデータ長ごとに分割する。演算器は、並列に設けられ、入力データ蓄積バッファによって分割された複数のデータに対してそれぞれ誤り訂正の演算を行う。出力データ蓄積バッファは、演算器によって演算が行われた複数のデータを多重する。
【選択図】図1

Description

本発明は、誤り訂正処理回路および誤り訂正処理方法に関する。
光技術の発展に伴い、DWDM(Dense Wavelength Division Multiplexing:高密度波長分割多重方式)通信に適した光パスなどを採用したOTN(Optical Transport Network:ITU−T G.709)が標準化された。OTNにおいては、光転送ネットワークにおける伝送路品質の確保のために、FEC(Forward Error Correction:前方誤り訂正)による誤り訂正が用いられる。
また、伝送容量の増加により、OTNのレートは、OTU1(2.5[G]),OTU2(10[G]),OTU3(40[G]),OTU4(100[G])と、通信の大容量化が要求されている(たとえば、下記特許文献1参照。)。このため、たとえばFECにおいても通信の大容量化に対応した処理が求められている。
国際公開第2008/035469号
しかしながら、上述した従来技術では、エンコードやデコードなどのFECの演算におけるクロック速度には限界があり、通信の大容量化が困難であるという問題がある。
本発明は、上述した従来技術による問題点を解消するため、通信の大容量化を図ることができる誤り訂正処理回路および誤り訂正処理方法を提供することを目的とする。
上述した課題を解決し、目的を達成するため、本発明の一側面によれば、入力されたデータを所定のデータ長ごとに分割し、並列に設けられた複数の演算部により、分割した複数のデータに対してそれぞれ誤り訂正の演算を行い、演算を行った前記複数のデータを多重し、多重したデータを出力する誤り訂正処理回路および誤り訂正処理方法が提案される。
本発明の一側面によれば、通信の大容量化を図ることができるという効果を奏する。
図1は、実施の形態1にかかる誤り訂正処理回路の構成例を示す図である。 図2は、誤り訂正処理回路を適用した通信装置および通信システムの一例を示す図である。 図3−1は、フレームフォーマットの一例を示す図である。 図3−2は、FECの演算単位の一例を示す図である。 図4は、誤り訂正処理回路の具体的な構成例を示す図である。 図5−1は、演算器の構成例を示す図である。 図5−2は、各乗算回路における係数の一例を示す図(その1)である。 図5−3は、各乗算回路における係数の一例を示す図(その2)である。 図5−4は、各乗算回路における係数の一例を示す図(その3)である。 図6−1は、制御部による入力データ蓄積バッファの制御の一例を示す図である。 図6−2は、制御部による出力データ蓄積バッファの制御および出力データの一例を示す図である。 図7−1は、入力データの一例を示す図である。 図7−2は、入力データ蓄積バッファに対する入力データの書き込みの一例を示す図である。 図8は、実施の形態2にかかる誤り訂正処理回路の構成例を示す図である。 図9−1は、入力データの一例を示す図である。 図9−2は、入力データ蓄積バッファに対する入力データの書き込みの一例を示す図である。 図10は、誤り訂正処理回路の具体的な構成例を示す図である。 図11は、入力データ蓄積バッファに対する入力データの書き込みの一例を示す図である。 図12は、FECデコーダの演算器の構成例を示す図である。
以下に添付図面を参照して、本発明にかかる誤り訂正処理回路および誤り訂正処理方法の実施の形態を詳細に説明する。
(実施の形態1)
(実施の形態1にかかる誤り訂正処理回路の構成)
図1は、実施の形態1にかかる誤り訂正処理回路の構成例を示す図である。図1に示す誤り訂正処理回路100は、FECのエンコード処理またはデコード処理を行う誤り訂正処理回路である。FECとしては、たとえばRS(255,239)などのリードソロモン符号(RS:Reed−Solomon Coding)を挙げることができる。
実施の形態1においては、誤り訂正処理回路100がFECのエンコードを行う場合について説明する。誤り訂正処理回路100は、入力データ蓄積バッファ110と、入力分割処理部120と、演算処理部130と、出力分割処理部140と、出力データ蓄積バッファ150と、制御部160と、を備えている。
入力データ蓄積バッファ110は、入力されたデータを所定のデータ長ごとに分割する分割部である。具体的には、入力データ蓄積バッファ110は、入力されたデータをサブフレーム(SubFrame:Row)単位で蓄積するバッファである。サブフレームは、FECの符号化のブロックの単位である。
入力データ蓄積バッファ110は、入力されるデータのビット幅に応じた個数のバッファを有し、入力されたデータを順次蓄積する。ここでは、入力データ蓄積バッファ110は3個のバッファを有し、入力されたデータを分割して各バッファに記憶する。入力データ蓄積バッファ110へのデータの書き込みや入力データ蓄積バッファ110からのデータの読み出しは、制御部160によって制御される。
入力分割処理部120は、入力データ蓄積バッファ110の各バッファから読み出された各データを、演算処理部130での演算単位に変換する。たとえば、誤り訂正処理回路100へ入力されるデータが3×16[byte]幅の場合は、入力分割処理部120はデータを3:1に多重する。入力分割処理部120は、多重したデータを演算処理部130へ出力する。このように、入力分割処理部120は、入力データ蓄積バッファ110によって分割された複数のデータを演算器131〜133のそれぞれのバス幅となるようにシリアル変換するシリアル変換部として機能する。
演算処理部130は、並列に設けられた演算器131〜133を備えている。演算器131〜133のそれぞれは、データの最小単位(たとえば8[bit])に対してFECのエンコードを行うエンコーダである。演算器131〜133は、入力分割処理部120から出力された3系列のデータに対してそれぞれFECのエンコード(誤り訂正の演算)を行う。演算器131〜133のそれぞれは、エンコードしたデータを出力分割処理部140へ出力する。なお、演算器131〜133のそれぞれの最小単位の回路での演算単位は8[bit]であり、処理すべきデータの単位は255[byte]とする。
出力分割処理部140は、入力分割処理部120から出力された3系列のデータを出力データ蓄積バッファ150に対する並びに変換する。たとえば、誤り訂正処理回路100へ入力されるデータが3×16[byte]幅の場合は、出力分割処理部140は、データを1:3に並列化する。出力分割処理部140は、並列化したデータを出力データ蓄積バッファ150へ出力する。このように、出力分割処理部140は、演算器131〜133によって演算が行われた複数のデータを入力分割処理部120によるシリアル変換前のバス幅となるようにパラレル変換するパラレル変換部として機能する。
出力データ蓄積バッファ150は、演算器131〜133によって演算が行われた複数のデータを多重する多重部である。また、出力データ蓄積バッファ150は、多重したデータを出力する出力部である。具体的には、出力データ蓄積バッファ150は、出力分割処理部140から出力されたデータをサブフレーム単位で蓄積し、入力時と同じビット幅(フォーマット)に変換する。
出力データ蓄積バッファ150へのデータの書き込みや出力データ蓄積バッファ150からのデータの読み出しは、制御部160によって制御される。出力データ蓄積バッファ150から読み出されたデータは誤り訂正処理回路100の後段へ出力される。これにより、誤り訂正処理回路100へ入力されたデータがFECによりエンコードされて誤り訂正処理回路100から出力される。
制御部160には、誤り訂正処理回路100へ入力されるデータのフレームの先頭を示すフレームパルスが入力される。制御部160は、フレームパルスに基づいて、入力データ蓄積バッファ110におけるデータの書き込みおよび読み出しを制御する。また、制御部160は、フレームパルスに基づいて、出力データ蓄積バッファ150におけるデータの書き込みおよび読み出しを制御する。また、制御部160は、フレームパルスに基づいて、入力分割処理部120、演算処理部130および出力分割処理部140における処理を制御してもよい。
このように、誤り訂正処理回路100は、複数の演算処理が多重されているデータに対する演算処理において、入力データ蓄積バッファ110に一旦入力データを蓄積し、入力分割処理部120においてデータを並び替え、後段で処理可能な単位に分割する。そして、誤り訂正処理回路100は、演算処理部130において入力演算データごとに時分割処理を行い、出力分割処理部140において元の並びに戻しながら出力データ蓄積バッファ150にデータを蓄積し、蓄積したデータを出力する。これにより、並列度や多重度に関わらずデータを処理可能な演算処理回路を実現することができる。
(通信システム)
図2は、誤り訂正処理回路を適用した通信装置および通信システムの一例を示す図である。図2に示す通信システム200は、光信号を送受信する通信システムである。ここではOTN(Optical Transport Network:光伝達網)に基づく通信システム200を例示する。通信システム200は、送信側のOTN終端装置210と、受信側のOTN終端装置220と、光伝送路201を含んでいる。
OTN終端装置210は、OTU処理部211と、FECエンコーダ212と、スクランブラ213と、E/O変換部214と、を備えている。OTU処理部211は、OTU(Optical−channel Transport Unit)の処理によって送信すべきデータを生成し、生成したデータをFECエンコーダ212へ出力する。
FECエンコーダ212は、OTU処理部211から出力されたデータに対してFECのエンコードを行う。FECエンコーダ212には、たとえば図1に示した誤り訂正処理回路100を適用することができる。FECエンコーダ212は、エンコードしたデータをスクランブラ213へ出力する。
スクランブラ213は、FECエンコーダ212から出力されたデータにスクランブルをかける。スクランブラ213は、スクランブルをかけたデータをE/O変換部214へ出力する。E/O変換部214は、スクランブラ213から出力されたデータを光信号に変換する。E/O変換部214は、変換した光信号を光伝送路201へ出力する。
光伝送路201は、E/O変換部214から出力された光信号をOTN終端装置220へ伝送する。光伝送路201はたとえば光ファイバである。OTN終端装置220は、O/E変換部221と、フレーム同期部222と、デスクランブラ223と、FECデコーダ224と、OTU処理部225と、を備えている。
O/E変換部221は、OTN終端装置210から光伝送路201によって伝送された光信号を電気信号に変換する。O/E変換部221は、電気信号に変換したデータをフレーム同期部222へ出力する。フレーム同期部222(Frame Aligner)は、O/E変換部221から出力されたデータのフレームの同期をとる。フレーム同期部222は、フレームの同期を取ったデータをデスクランブラ223へ出力する。
デスクランブラ223は、フレーム同期部222から出力されたデータのスクランブルを解除する。デスクランブラ223は、スクランブルを解除したデータをFECデコーダ224へ出力する。FECデコーダ224は、デスクランブラ223から出力されたデータに対して、FECのデコードを行うことによって誤り訂正する。FECデコーダ224は、誤り訂正したデータをOTU処理部225へ出力する。OTU処理部225は、FECデコーダ224から出力されたデータに対してOTUの終端処理を行う。
このように、図1に示した誤り訂正処理回路100は、FECを用いて光信号を伝送する通信システム200の通信装置(たとえばOTN終端装置210)に適用することができる。ただし、通信システム200は、光信号により通信を行う通信システムに限らず、電気信号や無線信号により通信を行う通信システムであってもよい。
(フレームフォーマット)
図3−1は、フレームフォーマットの一例を示す図である。図3−1に示すフレームフォーマット310は、図2に示した通信システム200において伝送されるデータのフレームフォーマット(OTUk)の一例である。フレームフォーマット310に示すように、通信システム200において伝送されるデータは、4080[byte]×4rowのデータであり、オーバーヘッド311(Mgmnt.OH)と、OPUkペイロード313と、FEC冗長部314と、を含んでいる。
オーバーヘッド311は、4×16[byte]のオーバーヘッドである。オーバーヘッド311には、フレームの先頭を示すフレームアライメント信号312(FAS:Frame Alignment Signal)が含まれている。OPUkペイロード313は、4×3808[byte]のペイロードである。FEC冗長部314は、4×256[byte]のFECパリティである。
図3−2は、FECの演算単位の一例を示す図である。図3−2に示すサブフレーム320は、図2に示したFECエンコーダ212またはFECデコーダ224の演算単位のサブフレームを示している。サブフレーム320は255[byte]のデータ長であり、サブフレーム320の16個分が図3−1に示したフレームフォーマット310の1rowに相当する。
サブフレーム320は、オーバーヘッド321(OH)と、ペイロード322と、FECバイト323と、を含んでいる。オーバーヘッド321は、1[byte]のオーバーヘッドであり、データの光チャネルを示す情報である。ペイロード322は、238[byte]のペイロードである。FECバイト323は、16[byte]のFECパリティである。
(誤り訂正処理回路の具体的な構成例)
図4は、誤り訂正処理回路の具体的な構成例を示す図である。図4において、図1に示した部分と同様の部分については同一の符号を付して説明を省略する。図4に示すように、誤り訂正処理回路100には3×16=48[byte]幅のデータが入力されるとする。入力データ蓄積バッファ110は、メモリ411〜413をバッファとして備えている。入力分割処理部120は、パラレルシリアル変換部421〜423を備えている。
演算処理部130は、演算器431〜433を備えている。出力分割処理部140は、シリアルパラレル変換部441〜443を備えている。出力データ蓄積バッファ150は、バッファとしてのメモリ451〜453と、パラレルシリアル変換部470と、を備えている。制御部160は、メモリ制御部461とメモリ制御部462とを備えている。
メモリ411〜413のそれぞれには、誤り訂正処理回路100へ入力された48[byte]幅のデータが入力される。メモリ411〜413のそれぞれは、メモリ制御部461によって指示される期間において、入力されたデータを記憶する。また、メモリ411〜413は、メモリ制御部461から指示される期間において、記憶したデータをそれぞれパラレルシリアル変換部421〜423へ出力する。
制御部160のメモリ制御部461は、入力されるフレームパルスに基づいてメモリ411〜413の制御を行う。具体的には、メモリ制御部461は、メモリ411〜413へそれぞれ書き込み指示信号を出力し、メモリ411〜413に対してそれぞれ異なる期間のデータを書き込む。これにより、誤り訂正処理回路100へ入力されたデータを時間により分割(3分割)してメモリ411〜413に記憶させることができる。また、メモリ制御部461は、メモリ411〜413へそれぞれ読み出し指示信号を出力し、メモリ411〜413に書き込んだデータをそれぞれパラレルシリアル変換部421〜423へ出力させる。
また、メモリ制御部461は、リード用フレームパルスおよびメモリ番号情報をメモリ制御部462へ出力する。リード用フレームパルスは、メモリ411〜413のデータを読み出したタイミングに基づくフレームパルスであり、メモリ制御部462におけるデータの読み出しのタイミングを示す情報である。メモリ番号情報は、メモリ411〜413に対するデータの書き込み状態を示す情報である。
パラレルシリアル変換部421〜423は、それぞれメモリ411〜413から出力された48[byte]幅のデータを3:1に多重し、16[byte]幅のデータに変換する。パラレルシリアル変換部421〜423は、変換した16[byte]幅のデータをそれぞれ演算器431〜433へ出力する。
演算器431〜433は、それぞれ図1に示した演算器131〜133に対応する構成である。演算器431〜433は、それぞれパラレルシリアル変換部421〜423から出力された16[byte]幅のデータを16並列の処理によりエンコードする。演算器431〜433は、エンコードした16[byte]幅のデータをそれぞれシリアルパラレル変換部441〜443へ出力する。
シリアルパラレル変換部441〜443は、それぞれ演算器431〜433から出力された16[byte]幅のデータを1:3に並列化し、48[byte]幅のデータに変換する。シリアルパラレル変換部441〜443は、変換した48[byte]幅のデータをそれぞれメモリ451〜453へ出力する。
メモリ451〜453のそれぞれは、メモリ制御部462から指示される期間において、それぞれシリアルパラレル変換部441〜443から出力されたデータを記憶する。また、メモリ451〜453のそれぞれは、メモリ制御部462から指示される期間において、記憶したデータをパラレルシリアル変換部470へ出力する。
制御部160のメモリ制御部462は、メモリ制御部461から出力されたリード用フレームパルスおよびメモリ番号情報に基づいてメモリ451〜453の制御を行う。具体的には、メモリ制御部462は、メモリ451〜453へそれぞれ書き込み指示信号を出力し、シリアルパラレル変換部441〜443から出力されるデータをそれぞれメモリ451〜453に書き込む。また、メモリ制御部462は、メモリ451〜453へそれぞれ読み出し指示信号を出力し、メモリ451〜453に書き込んだデータをパラレルシリアル変換部470へ出力させる。
パラレルシリアル変換部470は、メモリ451〜453から出力された3×48[byte]幅のデータを3:1に多重し、48[byte]幅のデータに変換する。パラレルシリアル変換部470は、変換した48[byte]幅のデータを誤り訂正処理回路100の後段へ出力する。
このように、誤り訂正処理回路100は、16×N[byte]幅の(図4ではN=3)データを、入力分割処理部120において16[byte]の演算器431〜433のフォーマットに変換する。この場合において、演算器431〜433はN個使用される。また、誤り訂正処理回路100は、16[byte]の演算器431〜433の出力を、出力分割処理部140において16×N[byte]幅に変換する。誤り訂正処理回路100によれば、入力されるデータのビットレートが高く(たとえば40[G]や100[G])なってもパラレル数Nを増やすことで処理することができる。
(演算器の構成例)
図5−1は、演算器の構成例を示す図である。図5−1に示す演算器500は、OTN G709 Standard FEC RS(255,239)におけるFECエンコーダの構成例である。演算器500は、1[byte]幅(8[bit]幅)のデータをエンコードする最小単位の基本回路である。たとえば図4に示した演算器431〜433のそれぞれは、演算器500を16個並列に設けることによって実現することができる。
図5−1に示すように、演算器500は、入力部511〜513と、アンド回路520と、16個の乗算回路53#1〜53#16と、16個のフリップフロップ回路54#1〜54#16と、16個の加算回路55#1〜55#16と、セレクタ560と、フリップフロップ回路570と、出力部580と、を備えている。
入力部511には、演算対象の8ビット([7:0])幅のデータ(I_DT)が入力される。入力部511は、入力されたデータを加算回路55#16およびセレクタ560へ出力する。入力部512には、データの識別信号(I_EN)が入力される。識別信号は、入力部511から入力されるデータのFECエリアとデータエリアの区切りを示す信号である。データのFECエリアは、たとえば図3−2に示したペイロード322である。データのデータエリアは、たとえば図3−2に示したFECバイト323である。
入力部511にデータのFECエリアが入力されている期間は、入力部512には識別信号「0」が入力される。また、入力部511にデータのデータエリアが入力されている期間は、入力部512には識別信号「1」が入力される。識別信号は、たとえば図2に示したOTU処理部211から出力される。入力部512は、入力された識別信号をアンド回路520およびセレクタ560へ出力する。
入力部513には、クロック信号(I_CLK)が入力される。クロック信号は、演算器500の動作タイミングを示す信号である。クロック信号は、たとえば図2に示したOTU処理部211から出力される。入力部513は、入力されたクロック信号をフリップフロップ回路54#1〜54#16,570へ出力する。
アンド回路520は、加算回路55#16から出力されたデータと、入力部512から出力された識別信号と、の論理積を出力する。したがって、アンド回路520からは、加算回路55#16から出力されたデータのうちのデータエリアの部分のみが出力される。アンド回路520から出力されたデータは乗算回路53#1〜53#16へ出力される。
乗算回路53#1〜53#16は、アンド回路520から出力されたデータに対してそれぞれ所定の係数を乗算する。乗算回路53#1〜53#16が乗算する係数は、たとえばそれぞれα120,α225,α194,α182,α169,α147,α191,α91,α3,α76,α161,α102,α109,α107,α104,α120である(図5−2参照)。乗算回路53#1〜53#16は、係数を乗算したデータをそれぞれフリップフロップ回路54#1〜54#16へ出力する。
フリップフロップ回路54#1(FF:Flip Flop)は、乗算回路53#1から出力されたデータを一時保持し、保持したデータを入力部513からのクロック信号が示すタイミングで加算回路55#1へ出力する。加算回路55#1は、フリップフロップ回路54#1から出力されたデータと、乗算回路53#2から出力されたデータと、を加算し、加算したデータをフリップフロップ回路54#2へ出力する。
フリップフロップ回路54#2は、加算回路55#1から出力されたデータを一時保持し、保持したデータを入力部513からのクロック信号が示すタイミングで加算回路55#2へ出力する。加算回路55#2は、フリップフロップ回路54#2から出力されたデータと、乗算回路53#3から出力されたデータと、を加算し、加算したデータをフリップフロップ回路54#3へ出力する。
同様に、フリップフロップ回路54#M(M=3〜15)は、加算回路55#M−1から出力されたデータを一時保持し、保持したデータを入力部513からのクロック信号が示すタイミングで加算回路55#Mへ出力する。加算回路55#Mは、フリップフロップ回路54#Mから出力されたデータと、乗算回路53#M+1から出力されたデータと、を加算し、加算したデータをフリップフロップ回路54#M+1へ出力する。
フリップフロップ回路54#16は、加算回路55#15から出力されたデータを一時保持し、保持したデータを入力部513からのクロック信号が示すタイミングで加算回路55#16およびセレクタ560へ出力する。加算回路55#16は、フリップフロップ回路54#16から出力されたデータと、入力部511から出力されたデータと、を加算し、加算したデータをアンド回路520へ出力する。
セレクタ560は、入力部511から出力されたデータと、フリップフロップ回路54#16から出力されたデータと、のいずれかを入力部512からの識別信号に基づいて選択し、選択したデータをフリップフロップ回路570へ出力する。具体的には、セレクタ560は、識別信号「0」が入力されている場合はフリップフロップ回路54#16から出力されたデータを選択し、識別信号「1」が入力されている場合は入力部511から出力されたデータを選択する。これにより、入力部511から出力されたデータのデータエリアに対して、フリップフロップ回路54#16から出力されたデータをFECエリアとして付加してフリップフロップ回路570へ出力することができる。これにより、データをFECによりエンコードすることができる。
フリップフロップ回路570は、セレクタ560から出力されたデータを一時保持し、保持したデータを入力部513からのクロック信号が示すタイミングで出力部580へ出力する。出力部580はフリップフロップ回路570から出力されたデータを演算器500の後段へ出力する。なお、演算器500には、フリップフロップ回路54#1〜54#16をリセットするリセット信号が入力される入力部などが設けられていてもよい。また、演算器500は、フリップフロップ回路570を省いた構成としてもよい。
図5に示した演算器500において、たとえば、クロック信号を83.6665823[MHz]とした場合は、8[bit]×16の演算処理とすることで、10[G]のOTU2などに対応することができる。
図5−2〜図5−4は、各乗算回路における係数の一例を示す図である。乗算回路53#1〜53#16が乗算する係数α120,α225,α194,α182,α169,α147,α191,α91,α3,α76,α161,α102,α109,α107,α104,α120には、たとえば、図5−2,図5−3に示す各係数を用いることができる。
(制御部による各バッファの制御)
図6−1は、制御部による入力データ蓄積バッファの制御の一例を示す図である。図6−1において、横軸は時間を示している。また、図6−1において、メモリ411〜413をそれぞれ#0〜#2として図示する。フレームパルス601は、誤り訂正処理回路100へ入力されるフレームパルスである。フレームパルス601は、誤り訂正処理回路100へ入力されるデータのフレームの先頭を示すパルスである。
入力データ602は、誤り訂正処理回路100へ入力されるデータである。入力データ602は、フレームパルス601が示すフレームごとに4つのサブフレームを含む。たとえば、入力データ602は、1フレーム目として「A−1」〜「A−4」の4つのサブフレームを含む。また、入力データ602は、2フレーム目として「B−1」〜「B−4」の4つのサブフレームを含む。また、入力データ602は、3フレーム目として「C−1」,「C−2」,…の4つのサブフレームを含む。
書き込みバッファ切替信号603は、制御部160のメモリ制御部461から出力され、メモリ411〜413(#0〜#2)のうちの入力データ602を書き込むメモリの切り替えを指示する信号である。書き込みバッファ切替信号603に示すように、メモリ制御部461は、入力データ602のサブフレームの区切りごとに、入力データ602を書き込むメモリを#0,#1,#2,#0,#1,#2,…と切り替える。これにより、入力データ602の書き込み先がサブフレームごとにメモリ411〜413に分散する。
書き込み状態604〜606は、それぞれメモリ411〜413(#0〜#2)へのデータの書き込みの状態である。書き込み状態604に示すように、メモリ411は、入力データ602が「A−1」,「A−4」,「B−3」,「C−2」であるタイミングで書き込みが指示される。このため、メモリ411には、「A−1」,「A−4」,「B−3」,「C−2」が書き込まれる。
書き込み状態605に示すように、メモリ412は、入力データ602が「A−2」,「B−1」,「B−4」であるタイミングで書き込みが指示される。このため、メモリ412には、「A−2」,「B−1」,「B−4」が書き込まれる。書き込み状態606に示すように、メモリ413は、入力データ602が「A−3」,「B−2」,「C−1」であるタイミングで書き込みが指示される。このため、メモリ413には、「A−3」,「B−2」,「C−1」が書き込まれる。
読み出し開始指示信号607は、制御部160のメモリ制御部461から出力され、メモリ411〜413(#0〜#2)に対して、書き込まれたデータの読み出しの開始を指示する信号である。読み出し開始指示信号607に示すように、メモリ制御部461は、メモリ411〜413に対してデータが書き込まれるごとに、書き込まれたデータの読み出しの開始をメモリ411〜413に指示する。
読み出し状態608〜610は、それぞれメモリ411〜413(#0〜#2)からのデータの読み出しの状態である。読み出し状態608〜610に示すように、入力データ602の各サブフレームが3つの系統に分散し、それぞれメモリ411〜413からそれぞれパラレルシリアル変換部421〜423へ出力される。
図6−2は、制御部による出力データ蓄積バッファの制御および出力データの一例を示す図である。図6−2において、図6−1に示した部分と同様の部分については説明を省略する。また、図6−1においては、メモリ451〜453をそれぞれ#0〜#2として図示する。
書き込み開始指示信号611は、メモリ制御部462から出力され、メモリ451〜453(#0〜#2)に対してデータの書き込みの開始を指示する信号である。メモリ制御部462は、演算器431〜433によるFECのエンコードに同期して、演算器431〜433から出力されるデータの書き込みをそれぞれメモリ451〜453に指示する。具体的には、メモリ制御部462は、メモリ制御部461から出力されるリード用フレームパルスおよびメモリ番号情報に基づいて書き込み開始指示信号611を出力する。
書き込み状態612〜614は、それぞれメモリ451〜453(#0〜#2)へのデータの書き込みの状態である。書き込み状態612〜614に示すように、演算器431〜433によってエンコードされたデータがそれぞれメモリ451〜453に書き込まれる。
読み出し開始指示信号615は、メモリ制御部462から出力され、メモリ451〜453(#0〜#2)に対して、書き込まれたデータの読み出しの開始を指示する信号である。読み出し開始指示信号615に示すように、メモリ制御部462は、メモリ451〜453に対してデータが書き込まれるごとに、書き込まれたデータの読み出しの開始をメモリ451〜453に指示する。
読み出し状態616〜618は、それぞれメモリ451〜453(#0〜#2)からのデータの読み出しの状態である。読み出し状態616〜618に示すように、メモリ451〜453へ書き込まれたデータが順次、メモリ451〜453から読み出されてパラレルシリアル変換部470へ出力される。
フレームパルス619は、メモリ451〜453からパラレルシリアル変換部470へ出力されるデータのフレームの先頭を示すパルスである。フレームパルス619は、たとえば制御部160からパラレルシリアル変換部470へ出力される。
出力データ620は、パラレルシリアル変換部470から出力されるデータを示している。パラレルシリアル変換部470は、メモリ451〜453から出力されたデータを、フレームパルス619に同期して切り替えながら出力する。これにより、メモリ451〜453から出力されたデータがシリアル信号となって出力される。
(入力データ蓄積バッファに対する入力データの書き込み)
図7−1は、入力データの一例を示す図である。図7−1に示すフレームパルス701および入力データ702は、それぞれ図6−1に示したフレームパルス601および入力データ602の一例である。入力データ702のデータ幅は48[byte]幅である。入力データ702の各マスは16[byte]のデータを示している。図7−1に示すように、入力データ702の1フレームは、演算器131〜133に対応して3つのサブフレームに分割される。
たとえば、入力データ702は、図7−1に示す1フレーム目においてサブフレーム711〜713を含んでいる。サブフレーム711〜713のそれぞれは、1rowで4080[byte]のサブフレームである。図7−1に示すように、入力データ702のデータ幅がN×16[byte](Nは255の約数)となる場合は、サブフレーム単位の境界の列において、サブフレーム間の重なりが発生しない。
図7−2は、入力データ蓄積バッファに対する入力データの書き込みの一例を示す図である。図7−2に示すライトアドレス721およびライトイネーブル731は、メモリ411(#0)に対する書き込みアドレスおよび書き込み指示信号である。メモリ制御部461は、メモリ411にサブフレーム711が書き込まれるようにライトアドレス721およびライトイネーブル731を設定する。
ライトアドレス722およびライトイネーブル732は、メモリ412(#1)に対する書き込みアドレスおよび書き込み信号である。メモリ制御部461は、メモリ412にサブフレーム712が書き込まれるようにライトアドレス722およびライトイネーブル732を設定する。ライトアドレス723およびライトイネーブル733は、メモリ413(#2)に対する書き込みアドレスおよび書き込み信号である。メモリ制御部461は、メモリ413にサブフレーム713が書き込まれるようにライトアドレス723およびライトイネーブル733を設定する。
図7−1,図7−2に示した例では、サブフレーム単位の境界の列においてサブフレーム間の重なりが発生しないため、入力データ702を時間的な重なりなしに各サブフレームに分割してメモリ411〜413に書き込むことができる。このため、各サブフレームの先頭のrowやメモリ411〜413に対する書き込み周期(ライトイネーブル731〜733)が揃う。このため、たとえばメモリ411〜413に対してそれぞれ制御部を設けなくても、メモリ411〜413の制御を制御部160のメモリ制御部461によって簡単に行うことができる。
このように、実施の形態1にかかる誤り訂正処理回路100によれば、FECの演算単位で対象データを分割し、分割した各データのFECの符号化(エンコード)を複数の演算部により並列で行うことができる。これにより、たとえば演算部のクロック速度を向上させなくても、通信の大容量化を図ることができる。
なお、たとえばOTU4 RSのFECのエンコーダを実現するために、ガロア演算の多段処理演算を行うことによって並列演算処理を実現することも考えられる。しかしながら、ガロア演算の多段処理演算では論理処理を複数段繰り返すことになるため、フリップフロップ回路間のクロックに対するタイミングの確保が困難である。
これに対して、誤り訂正処理回路100によれば、たとえば図5−1に示した演算器500のように、ガロア演算の多段処理演算を行わなくても並列演算処理を実現することができる。このため、フリップフロップ回路54#1〜54#16の間のクロックに対するタイミングの確保が容易であり、より高いレートにおいてもFECの演算が可能になる。
また、誤り訂正処理回路100によれば、FECの符号化のブロック単位でデータを分割することによって、たとえば図5−1に示した演算器500のように、FECの符号化のブロック単位の基本的な回路によって複数の演算部を実現することができる。これにより、たとえばレートの変更を行う場合に、演算器500などの基本的な回路を追加または削減して並列数を変更することによって簡単に対応することができる。また、複数の演算部には、レートに依存しない演算器500などの共通の回路を用いることができるため、回路の共通化を図ることができる。このため、回路の設計や検証が容易になる。
(実施の形態2)
(実施の形態2にかかる誤り訂正処理回路の構成)
図8は、実施の形態2にかかる誤り訂正処理回路の構成例を示す図である。図8において、図1に示した部分と同様の部分については同一の符号を付して説明を省略する。実施の形態2にかかる誤り訂正処理回路100には、4×16=64[byte]幅のデータが入力されるとする。入力データ蓄積バッファ110は、入力されたデータを4個のバッファに分割して記憶し、各バッファのデータを入力分割処理部120へ出力する。
入力分割処理部120は、データを4:1に多重する。入力分割処理部120は、多重したデータを演算処理部130へ出力する。演算処理部130は、並列に設けられた演算器131〜134を備えている。演算器134は、演算器131〜133と同様の演算器である。出力分割処理部140は、演算処理部130から出力されたデータを1:4に並列化する。出力分割処理部140は、並列化したデータを出力データ蓄積バッファ150へ出力する。
(入力データ蓄積バッファに対する入力データの書き込み)
図9−1は、入力データの一例を示す図である。図9−1に示すフレームパルス901および入力データ902は、それぞれ図8に示した誤り訂正処理回路100へ入力されるフレームパルスおよび入力データの一例である。入力データ902のデータ幅は64[byte]幅である。入力データ902の各マスは16[byte]のデータを示している。図9−1に示すように、入力データ902の1フレームは演算器131〜134に対応して4つのサブフレームに分割される。
たとえば、入力データ902は、図9−1に示す1フレーム目においてサブフレーム911〜914を含んでいる。サブフレーム911〜914のそれぞれは、1rowで4080[byte]のサブフレームである。図9−1に示すように、入力されるデータの幅がたとえば16×(2のべき乗)[byte]の場合は、サブフレーム単位での境界が重複する場合が発生する。
図9−2は、入力データ蓄積バッファに対する入力データの書き込みの一例を示す図である。図9−2において、入力データ蓄積バッファ110の4つのメモリ(バッファ)を#0〜#3として図示する。図9−2に示すライトアドレス921およびライトイネーブル931は、メモリ#0に対する書き込みアドレスおよび書き込み指示信号である。メモリ制御部461は、メモリ#0にサブフレーム911が書き込まれるようにライトアドレス921およびライトイネーブル931を設定する。
ライトアドレス922およびライトイネーブル932は、メモリ#1に対する書き込みアドレスおよび書き込み信号である。メモリ制御部461は、メモリ#1にサブフレーム912が書き込まれるようにライトアドレス922およびライトイネーブル932を設定する。ライトアドレス923およびライトイネーブル933は、メモリ#2に対する書き込みアドレスおよび書き込み信号である。メモリ制御部461は、メモリ#2にサブフレーム913が書き込まれるようにライトアドレス923およびライトイネーブル933を設定する。ライトアドレス924およびライトイネーブル934は、メモリ#3に対する書き込みアドレスおよび書き込み信号である。メモリ制御部461は、メモリ#3にサブフレーム914が書き込まれるようにライトアドレス924およびライトイネーブル934を設定する。
図9−1,図9−2に示した例では、サブフレーム単位での境界の列においてサブフレーム間の重なりが発生する。このため、各サブフレームの先頭のrowやメモリ411〜413に対する書き込み周期(ライトイネーブル931〜933)が揃わない。たとえば、サブフレーム911〜914の先頭のrowはそれぞれ1〜4である。また、ライトイネーブル931とライトイネーブル932、ライトイネーブル932とライトイネーブル933およびライトイネーブル933とライトイネーブル934が時間的に重なる。
入力データ902を各サブフレームに分割してメモリ#0〜#3に書き込む場合は、たとえばメモリ411〜413に対してそれぞれ制御部を設けることになる。このため、回路が複雑化する。これに対して、入力データ蓄積バッファ110において符号境界を調整する機能(たとえば図10参照)を設け、符号の先頭を揃えてデータをメモリ#0〜#3に書き込むようにしてもよい。これにより、回路の簡略化を図ることができる。
(誤り訂正処理回路の具体的な構成例)
図10は、誤り訂正処理回路の具体的な構成例を示す図である。図10において、図4に示した部分と同様の部分については同一の符号を付して説明を省略する。図10に示すように、誤り訂正処理回路100には4×16=64[byte]幅のデータが入力されるとする。入力データ蓄積バッファ110は、シフトレジスタ1012〜1014と、バッファとしてのメモリ411〜414と、を備えている。入力分割処理部120は、パラレルシリアル変換部421〜424を備えている。
演算処理部130は、演算器431〜434を備えている。出力分割処理部140は、シリアルパラレル変換部441〜444を備えている。出力データ蓄積バッファ150は、バッファとしてのメモリ451〜454と、シフトレジスタ1052〜1054と、パラレルシリアル変換部470と、を備えている。制御部160は、メモリ制御部461とメモリ制御部462とを備えている。
シフトレジスタ1012〜1014は、分割した複数のデータの境界の整列(アライメント)を行う整列部である。シフトレジスタ1012には、誤り訂正処理回路100へ入力された64[byte]幅のデータのうちの下位16[byte]幅のデータが入力される。シフトレジスタ1012は、入力された下位16[byte]幅のデータを1段シフトさせてメモリ412へ出力する。メモリ412には、誤り訂正処理回路100へ入力された64[byte]幅のデータのうちの上位48[byte]幅のデータと、シフトレジスタ1012から出力された16[byte]幅のデータと、が入力される。
シフトレジスタ1013には、誤り訂正処理回路100へ入力された64[byte]幅のデータのうちの下位32[byte]幅のデータが入力される。シフトレジスタ1013は、入力された下位32[byte]幅のデータを1段シフトさせてメモリ413へ出力する。メモリ413には、誤り訂正処理回路100へ入力された64[byte]幅のデータのうちの上位32[byte]幅のデータと、シフトレジスタ1013から出力された32[byte]幅のデータと、が入力される。
シフトレジスタ1014には、誤り訂正処理回路100へ入力された64[byte]幅のデータのうちの下位48[byte]幅のデータが入力される。シフトレジスタ1014は、入力された下位48[byte]幅のデータを1段シフトさせてメモリ414へ出力する。メモリ414には、誤り訂正処理回路100へ入力された64[byte]幅のデータのうちの上位16[byte]幅のデータと、シフトレジスタ1014から出力された48[byte]幅のデータと、が入力される。
制御部160のメモリ制御部461は、入力されるフレームパルスに基づいてメモリ411〜414の制御を行う。また、メモリ制御部461は、メモリ411〜414へそれぞれ読み出し指示信号を出力し、メモリ411〜414に書き込んだデータをそれぞれパラレルシリアル変換部421〜424へ出力させる。
パラレルシリアル変換部421〜424は、それぞれメモリ411〜414から出力された64[byte]幅のデータを4:1に多重し、16[byte]幅のデータに変換する。パラレルシリアル変換部421〜424は、変換した16[byte]幅のデータをそれぞれ演算器431〜434へ出力する。
演算器431〜434は、それぞれ図8に示した演算器131〜134に対応する構成である。演算器431〜434は、それぞれパラレルシリアル変換部421〜424から出力された16[byte]幅のデータを16並列の処理によりエンコードする。演算器431〜434は、エンコードした16[byte]幅のデータをそれぞれシリアルパラレル変換部441〜444へ出力する。
シリアルパラレル変換部441〜444は、それぞれ演算器431〜434から出力された16[byte]幅のデータを1:4に並列化し、64[byte]幅のデータに変換する。シリアルパラレル変換部441〜444は、変換した64[byte]幅のデータをそれぞれメモリ451〜454へ出力する。
メモリ451〜454のそれぞれは、メモリ制御部462から指示される期間において、それぞれシリアルパラレル変換部441〜444から出力されたデータを記憶する。また、メモリ451〜454のそれぞれは、メモリ制御部462から指示される期間において記憶した64[byte]幅のデータを出力する。メモリ451から出力された64[byte]幅のデータはパラレルシリアル変換部470へ出力される。
メモリ452から出力された64[byte]幅のデータのうちの下位16[byte]幅のデータはシフトレジスタ1052へ出力される。シフトレジスタ1052は、メモリ452から出力された下位16[byte]幅のデータを1段シフトさせて出力する。メモリ452から出力された64[byte]幅のデータのうちの上位48[byte]幅のデータと、シフトレジスタ1052から出力された16[byte]幅のデータと、は64[byte]幅のデータとしてパラレルシリアル変換部470へ出力される。
メモリ453から出力された64[byte]幅のデータのうちの下位32[byte]幅のデータはシフトレジスタ1053へ出力される。シフトレジスタ1053は、メモリ453から出力された下位32[byte]幅のデータを1段シフトさせて出力する。メモリ453から出力された64[byte]幅のデータのうちの上位32[byte]幅のデータと、シフトレジスタ1053から出力された32[byte]幅のデータと、は64[byte]幅のデータとしてパラレルシリアル変換部470へ出力される。
メモリ454から出力された64[byte]幅のデータのうちの下位48[byte]幅のデータはシフトレジスタ1054へ出力される。シフトレジスタ1054は、メモリ454から出力された下位48[byte]幅のデータを1段シフトさせて出力する。メモリ454から出力された64[byte]幅のデータのうちの上位16[byte]幅のデータと、シフトレジスタ1053から出力された48[byte]幅のデータと、は64[byte]幅のデータとしてパラレルシリアル変換部470へ出力される。
このように、シフトレジスタ1052〜1054は、演算器431〜434によって演算が行われた複数のデータの並びを、シフトレジスタ1012〜1014による整列前の並びに変換する変換部として機能する。
パラレルシリアル変換部470は、メモリ451〜454から出力された4×64[byte]幅のデータを4:1に多重し、64[byte]幅のデータに変換する。パラレルシリアル変換部470は、変換した64[byte]幅のデータを誤り訂正処理回路100の後段へ出力する。
このように、誤り訂正処理回路100は、16×N[byte]幅の(図10ではN=4)データを、入力分割処理部120において16[byte]の演算器431〜434のフォーマットに変換する。この場合において、演算器431〜434はN個使用される。また、誤り訂正処理回路100は、16[byte]の演算器431〜434の出力を、出力分割処理部140において16×N[byte]幅に変換する。誤り訂正処理回路100によれば、入力されるデータのビットレートが高く(たとえば40[G]や100[G])なってもパラレル数Nを増やすことで処理することができる。
図10に示したように、誤り訂正処理回路100は、シフトレジスタ1012〜1014によって先頭の整列が行われた複数のデータをメモリ411〜414に書き込む。そして、誤り訂正処理回路100は、メモリ411〜414から読み出された複数のデータに対してそれぞれ演算器431〜434によるFECのエンコードを行う。これにより、演算器431〜434において先頭の整列が行われたデータを処理することができる。
ただし、誤り訂正処理回路100はこのような構成に限らず、たとえば、シフトレジスタ1012〜1014をメモリ412〜414の後段に設け、分割した複数のデータをメモリ411〜414に書き込んでもよい。そして、誤り訂正処理回路100は、メモリ411〜414から読み出された複数のデータの境界の整列をシフトレジスタ1012〜1014によって行う。これにより、演算器431〜434において先頭の整列が行われたデータを処理することができる。
(入力データ蓄積バッファに対する入力データの書き込み)
図11は、入力データ蓄積バッファに対する入力データの書き込みの一例を示す図である。図11において、図9−2に示した部分と同様の部分については同一の符号を付して説明を省略する。メモリ412(#1)に書き込まれるサブフレーム912は、シフトレジスタ1012によって下位16[byte]が1段シフトしている。メモリ413(#2)に書き込まれるサブフレーム913は、シフトレジスタ1013によって下位32[byte]が1段シフトしている。メモリ414(#3)に書き込まれるサブフレーム914は、シフトレジスタ1014によって下位48[byte]が1段シフトしている。
図11に示した例では、サブフレーム単位での境界の列においてサブフレーム間の重なりが発生しない。このため、各サブフレームの先頭のrowやメモリ411〜414に対する書き込み周期(ライトイネーブル931〜934)が揃う。たとえば、サブフレーム911〜914の先頭のrowはともに1である。また、サブフレーム911〜914は時間的に重なっていない。
これにより、たとえばメモリ411〜414に対してそれぞれ制御部を設けなくても、入力データ902を各サブフレームに分割してメモリ411〜414に書き込むことができる。これにより、回路の簡略化を図ることができる。また、演算器431〜434において処理するデータの先頭が揃っているため、データの先頭のばらつきを吸収する構成を演算器431〜434に設けなくてもよいことになる。このため、回路の簡略化を図ることができる。
このように、実施の形態2にかかる誤り訂正処理回路100によれば、分割した複数のデータの境界の整列を行い、整列を行った複数のデータに対してそれぞれFECのエンコード(誤り訂正の演算)を行うことができる。これにより、実施の形態1にかかる誤り訂正処理回路100と同様の効果を得ることができるとともに、分割したサブフレーム間の重なりが発生しても簡単な構成によってFECのエンコードを行うことができる。
(実施の形態3)
実施の形態1,2においては、誤り訂正処理回路100をFECエンコーダ212に適用する場合について説明したが、誤り訂正処理回路100をFECデコーダ224に適用してもよい。誤り訂正処理回路100をFECデコーダ224に適用する場合は、誤り訂正処理回路100の演算器131〜134(演算器431〜434)をFECデコーダの演算器とする。
図12は、FECデコーダの演算器の構成例を示す図である。図12に示す演算器1200は、誤り訂正処理回路100の演算器131〜134(演算器431〜434)に適用可能なFECデコーダの演算器である。演算器1200は、図12に示すように、データ遅延バッファ1201と、シンドローム生成部1202と、誤り多項式算出部1203と、誤り算出部1204と、誤り訂正部1205と、を備えている。
FECデコーダ224には、たとえば8[byte]幅のデータが入力される。FECデコーダ224へ入力されたデータは、データ遅延バッファ1201およびシンドローム生成部1202へ入力される。
データ遅延バッファ1201は、入力されたデータを、シンドローム生成部1202、誤り多項式算出部1203および誤り算出部1204による誤り訂正演算にかかる時間だけ遅延させる。データ遅延バッファ1201は、遅延させたデータを誤り訂正部1205へ出力する。
シンドローム生成部1202は、データ遅延バッファ1201から出力されたデータのシンドローム演算を行い、シンドローム値を生成する。シンドローム生成部1202によるシンドローム演算は、たとえばRS(255,239)に基づくシンドローム演算である。シンドローム生成部1202は、生成したシンドローム値を誤り多項式算出部1203へ出力する。
誤り多項式算出部1203は、シンドローム生成部1202から出力されたシンドローム値に基づいて、誤り位置多項式および誤り数値多項式を導出する。誤り位置多項式および誤り数値多項式の導出には、たとえばEuclid法などを用いることができる。誤り多項式算出部1203は、導出した誤り位置多項式および誤り数値多項式を誤り算出部1204へ出力する。
誤り算出部1204は、誤り多項式算出部1203から出力された誤り位置多項式および誤り数値多項式に基づいて、FECデコーダ224へ入力されたデータの誤り位置および誤り数値を導出する。誤り位置および誤り数値には、たとえばchien探索法などを用いることができる。誤り算出部1204は、導出した誤り位置および誤り数値を誤り訂正部1205へ出力する。
誤り訂正部1205は、データ遅延バッファ1201から出力されたデータを、誤り算出部1204から出力された誤り位置および誤り数値に基づいて訂正する。誤り訂正部1205は、訂正したデータをFECデコーダ224の後段へ出力する。
このように、実施の形態3にかかる誤り訂正処理回路100によれば、誤り訂正の演算単位で対象データを分割し、分割した各データの誤り訂正の復号(デコード)を複数の演算部により並列で行うことができる。これにより、実施の形態1にかかる誤り訂正処理回路100と同様に、通信の大容量化を図ることができる。
以上説明したように、誤り訂正処理回路および誤り訂正処理方法によれば、通信の大容量化を図ることができる。
上述した各実施の形態に関し、さらに以下の付記を開示する。
(付記1)入力されたデータを所定のデータ長ごとに分割する分割部と、
並列に設けられ、前記分割部によって分割された複数のデータに対してそれぞれ誤り訂正の演算を行う複数の演算部と、
前記複数の演算部によって演算が行われた複数のデータを多重する多重部と、
前記多重部によって多重されたデータを出力する出力部と、
を備えることを特徴とする誤り訂正処理回路。
(付記2)前記複数のデータの境界の整列を行う整列部を備え、
前記複数の演算部は、前記整列部によって整列が行われた複数のデータに対してそれぞれ前記誤り訂正の演算を行うことを特徴とする付記1に記載の誤り訂正処理回路。
(付記3)前記整列部によって整列が行われた複数のデータがそれぞれ書き込まれる複数のメモリを備え、
前記複数の演算部は、前記複数のメモリから読み出された複数のデータに対してそれぞれ前記誤り訂正の演算を行うことを特徴とする付記2に記載の誤り訂正処理回路。
(付記4)前記分割部によって分割された複数のデータがそれぞれ書き込まれる複数のメモリを備え、
前記整列部は、前記複数のメモリから読み出された複数のデータの境界の整列を行うことを特徴とする付記2に記載の誤り訂正処理回路。
(付記5)前記複数の演算部によって演算が行われた複数のデータの並びを、前記整列部による整列前の並びに変換する変換部を備え、
前記多重部は、前記変換部によって並びが変換された複数のデータを多重することを特徴とする付記2〜4のいずれか一つに記載の誤り訂正処理回路。
(付記6)前記分割部によって分割された複数のデータを前記複数の演算部のそれぞれのバス幅となるようにシリアル変換するシリアル変換部を備え、
前記複数の演算部は、前記シリアル変換部によってシリアル変換された複数のデータに対してそれぞれ前記誤り訂正の演算を行うことを特徴とする付記1〜5のいずれか一つに記載の誤り訂正処理回路。
(付記7)前記複数の演算部によって演算が行われた複数のデータを前記シリアル変換部によるシリアル変換前のバス幅となるようにパラレル変換するパラレル変換部を備え、
前記多重部は、前記パラレル変換部によってパラレル変換された複数のデータを多重することを特徴とする付記6に記載の誤り訂正処理回路。
(付記8)前記分割部は、前記入力されたデータを前記誤り訂正の符号化のブロック単位で分割することを特徴とする付記1〜7のいずれか一つに記載の誤り訂正処理回路。
(付記9)前記複数の演算部は、前記複数のデータに対してそれぞれ前記誤り訂正の符号化の演算を行うことを特徴とする付記1〜8のいずれか一つに記載の誤り訂正処理回路。
(付記10)前記複数の演算部は、前記複数のデータに対してそれぞれ前記誤り訂正の復号の演算を行うことを特徴とする付記1〜8のいずれか一つに記載の誤り訂正処理回路。
(付記11)入力されたデータを所定のデータ長ごとに分割し、
並列に設けられた複数の演算部により、分割した複数のデータに対してそれぞれ誤り訂正の演算を行い、
演算を行った前記複数のデータを多重し、
多重したデータを出力することを特徴とする誤り訂正処理方法。
200 通信システム
201 光伝送路
421〜424,470 パラレルシリアル変換部
441〜444 シリアルパラレル変換部
511〜513 入力部
520 アンド回路
54#1〜54#16 フリップフロップ回路
560 セレクタ
580 出力部
601,619,701,901 フレームパルス

Claims (6)

  1. 入力されたデータを所定のデータ長ごとに分割する分割部と、
    並列に設けられ、前記分割部によって分割された複数のデータに対してそれぞれ誤り訂正の演算を行う複数の演算部と、
    前記複数の演算部によって演算が行われた複数のデータを多重する多重部と、
    前記多重部によって多重されたデータを出力する出力部と、
    を備えることを特徴とする誤り訂正処理回路。
  2. 前記複数のデータの境界の整列を行う整列部を備え、
    前記複数の演算部は、前記整列部によって整列が行われた複数のデータに対してそれぞれ前記誤り訂正の演算を行うことを特徴とする請求項1に記載の誤り訂正処理回路。
  3. 前記複数の演算部によって演算が行われた複数のデータの並びを、前記整列部による整列前の並びに変換する変換部を備え、
    前記多重部は、前記変換部によって並びが変換された複数のデータを多重することを特徴とする請求項2に記載の誤り訂正処理回路。
  4. 前記分割部によって分割された複数のデータを前記複数の演算部のそれぞれのバス幅となるようにシリアル変換するシリアル変換部を備え、
    前記複数の演算部は、前記シリアル変換部によってシリアル変換された複数のデータに対してそれぞれ前記誤り訂正の演算を行うことを特徴とする請求項1〜3のいずれか一つに記載の誤り訂正処理回路。
  5. 前記分割部は、前記入力されたデータを前記誤り訂正の符号化のブロック単位で分割することを特徴とする請求項1〜4のいずれか一つに記載の誤り訂正処理回路。
  6. 入力されたデータを所定のデータ長ごとに分割し、
    並列に設けられた複数の演算部により、分割した複数のデータに対してそれぞれ誤り訂正の演算を行い、
    演算を行った前記複数のデータを多重し、
    多重したデータを出力することを特徴とする誤り訂正処理方法。
JP2011140977A 2011-06-24 2011-06-24 誤り訂正処理回路および誤り訂正処理方法 Expired - Fee Related JP5810670B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2011140977A JP5810670B2 (ja) 2011-06-24 2011-06-24 誤り訂正処理回路および誤り訂正処理方法
US13/488,741 US9166739B2 (en) 2011-06-24 2012-06-05 Error correction processing circuit and error correction processing method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2011140977A JP5810670B2 (ja) 2011-06-24 2011-06-24 誤り訂正処理回路および誤り訂正処理方法

Publications (2)

Publication Number Publication Date
JP2013009191A true JP2013009191A (ja) 2013-01-10
JP5810670B2 JP5810670B2 (ja) 2015-11-11

Family

ID=47363021

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2011140977A Expired - Fee Related JP5810670B2 (ja) 2011-06-24 2011-06-24 誤り訂正処理回路および誤り訂正処理方法

Country Status (2)

Country Link
US (1) US9166739B2 (ja)
JP (1) JP5810670B2 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5968577B2 (ja) * 2014-04-23 2016-08-10 三菱電機株式会社 通信装置、通信システムおよび誤り訂正フレーム生成方法

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6036089B2 (ja) * 2012-09-25 2016-11-30 日本電気株式会社 データ遷移トレース装置、データ遷移トレース方法、及び、データ遷移トレースプログラム
US11342938B1 (en) * 2020-04-23 2022-05-24 Xilinx, Inc. Method and apparatus for codeword alignment

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3133960B2 (ja) * 1997-05-28 2001-02-13 日本放送協会 Ofdm波伝送装置
JP2003069535A (ja) * 2001-06-15 2003-03-07 Mitsubishi Electric Corp 誤り訂正多重化装置、誤り訂正多重分離装置、これらを用いた光伝送システムおよび誤り訂正多重化伝送方法
EP1545011A1 (en) * 2003-12-17 2005-06-22 Alcatel Optimized interleaving of digital signals
JP2006295510A (ja) * 2005-04-08 2006-10-26 Mitsubishi Electric Corp Fecフレーム符号化装置、fec多重化装置、fec多重分離装置、および光通信装置
JP2008148245A (ja) * 2006-12-13 2008-06-26 Hitachi Communication Technologies Ltd 光集線装置および光加入者装置
JP2009055407A (ja) * 2007-08-28 2009-03-12 Nec Corp 並列巡回符号生成装置および並列巡回符号検査装置
JP2010034976A (ja) * 2008-07-30 2010-02-12 Mitsubishi Electric Corp 誤り訂正符号化装置、誤り訂正復号装置及び誤り訂正符号化方法

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR2485237B1 (fr) * 1980-06-19 1987-08-07 Thomson Csf Dispositif de correction, en temps reel, d'erreurs sur des donnees enregistrees sur un support magnetique, et systeme de traitement de donnees comportant un tel dispositif
JP3356442B2 (ja) * 1991-06-04 2002-12-16 株式会社東芝 データ記録再生装置
JPH08116534A (ja) * 1994-10-18 1996-05-07 Seiko Epson Corp 画像データ符号化装置およびその方法並びに画像データ復号化装置およびその方法
JP2846860B2 (ja) * 1996-10-01 1999-01-13 ユニデン株式会社 スペクトル拡散通信方式を用いた送信機、受信機、通信システム及び通信方法
US20020116679A1 (en) * 2000-12-15 2002-08-22 Mike Lei In-band FEC decoder for sonet
US6990624B2 (en) * 2001-10-12 2006-01-24 Agere Systems Inc. High speed syndrome-based FEC encoder and decoder and system using same
CN1288658C (zh) * 2002-04-25 2006-12-06 三洋电机株式会社 数据处理装置
US7570671B2 (en) * 2002-11-20 2009-08-04 Infinera Corporation Method and apparatus for deploying forward error correction in optical transmission networks and the deployment of photonic integrated circuit (PIC) chips with the same
WO2008035428A1 (fr) 2006-09-21 2008-03-27 Fujitsu Limited Terminal de communication, et procédé de réception du signal
US8705741B2 (en) * 2010-02-22 2014-04-22 Vello Systems, Inc. Subchannel security at the optical layer
US9141473B2 (en) * 2011-03-25 2015-09-22 Samsung Electronics Co., Ltd. Parallel memory error detection and correction

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3133960B2 (ja) * 1997-05-28 2001-02-13 日本放送協会 Ofdm波伝送装置
JP2003069535A (ja) * 2001-06-15 2003-03-07 Mitsubishi Electric Corp 誤り訂正多重化装置、誤り訂正多重分離装置、これらを用いた光伝送システムおよび誤り訂正多重化伝送方法
EP1545011A1 (en) * 2003-12-17 2005-06-22 Alcatel Optimized interleaving of digital signals
JP2006295510A (ja) * 2005-04-08 2006-10-26 Mitsubishi Electric Corp Fecフレーム符号化装置、fec多重化装置、fec多重分離装置、および光通信装置
JP2008148245A (ja) * 2006-12-13 2008-06-26 Hitachi Communication Technologies Ltd 光集線装置および光加入者装置
JP2009055407A (ja) * 2007-08-28 2009-03-12 Nec Corp 並列巡回符号生成装置および並列巡回符号検査装置
JP2010034976A (ja) * 2008-07-30 2010-02-12 Mitsubishi Electric Corp 誤り訂正符号化装置、誤り訂正復号装置及び誤り訂正符号化方法

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5968577B2 (ja) * 2014-04-23 2016-08-10 三菱電機株式会社 通信装置、通信システムおよび誤り訂正フレーム生成方法
JPWO2015162738A1 (ja) * 2014-04-23 2017-04-13 三菱電機株式会社 通信装置、通信システムおよび誤り訂正フレーム生成方法

Also Published As

Publication number Publication date
US9166739B2 (en) 2015-10-20
JP5810670B2 (ja) 2015-11-11
US20120331364A1 (en) 2012-12-27

Similar Documents

Publication Publication Date Title
US8495475B2 (en) FEC frame structuring device and FEC frame structuring method
JP4382124B2 (ja) 誤り訂正符号化装置及び誤り訂正復号装置
US8621316B2 (en) Method and device for encoding of error correcting codes, and method and device for decoding of error correcting codes
US9148175B2 (en) Error correction coding device, error correction decoding device and method therefor
US8667377B1 (en) Circuit and method for parallel decoding
US9240907B2 (en) Transcoding scheme techniques
CN101667887A (zh) 编码方法及其装置、解码方法及其装置
JP5810670B2 (ja) 誤り訂正処理回路および誤り訂正処理方法
JP3922819B2 (ja) 誤り訂正方法及び装置
WO2014048351A1 (zh) 时分复用的前向纠错编码方法及装置
JPWO2006027838A1 (ja) 誤り訂正符号化装置および誤り訂正復号装置
CN101977092A (zh) 前向纠错映射和去映射技术
US8875001B1 (en) Circuitry for parallel decoding of data blocks
EP3579424B1 (en) Error correction device and error correction method
US7447982B1 (en) BCH forward error correction decoder
CN100461662C (zh) 用于同步数字系列/同步光纤网系统的带内前向纠错解码器
CN110741562B (zh) 向量信令码信道的流水线式前向纠错
JP2013070289A (ja) 誤り訂正方法、誤り訂正装置、送信機、受信機及び誤り訂正プログラム
CN104184544B (zh) 一种解码方法及装置
US20170005751A1 (en) Transfer device and data processing method
KR101233825B1 (ko) 오류 정정 부호화 및 복호화가 수행되는 광 전송장치 및 그 방법
EP4425793A1 (en) Transmission device, reception device, encoding method, control circuit, and storage medium
Bernardo et al. Design and FPGA implementation of a 100 Gbit/s optical transport network processor
Sinha et al. Design and implementation of high speed digital multi-programme system based on ITU-T J. 83 annexures A and C
KR101257069B1 (ko) 광 전달 망에서 데이터 송신 방법 및 장치

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20140304

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20141126

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20150106

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20150305

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: 20150818

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20150831

R150 Certificate of patent or registration of utility model

Ref document number: 5810670

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees