(57)【要約】【課題】光アクセスシステムにおける誤り訂正符号化処理の演算量を削減する。【解決手段】現在までの一定期間内に受信した固定長のビット列において検出された誤り数である第１誤り数と、過去に検出された誤り数のうち最大誤り数である第２誤り数と、のうち大きい方の数を新しい第２誤り数とする誤り数比較部と、ビット列の誤りの有無を示すシンドローム行列の大きさを決定するパラメータを第２誤り数に基づいて更新するパラメータ更新部と、シンドローム行列を用いてビット列の誤り訂正復号を行う誤り訂正部と、を備える加入者線端局装置。【選択図】図１
2018207311.tif 000002
【特許請求の範囲】
【請求項１】
現在までの一定期間内に受信した固定長のビット列において検出された誤り数である第１誤り数と、過去に検出された誤り数のうち最大誤り数である第２誤り数と、のうち大きい方の数を新しい第２誤り数とする誤り数比較部と、
前記ビット列の誤りの有無を示すシンドローム行列の大きさを決定するパラメータを前記第２誤り数に基づいて更新するパラメータ更新部と、
前記シンドローム行列を用いて前記ビット列の誤り訂正復号を行う誤り訂正部と、
を備える加入者線端局装置。
【請求項２】
前記ビット列に対する検査行列から得られるシンドローム係数行列において、１列目の値に２列目以降の値を加算し、前記加算の結果に対して前記ビット列を乗算する処理を各行に対して行うことで前記シンドローム行列を算出するシンドローム算出部をさらに備える、
請求項１に記載の加入者線端局装置。
【請求項３】
前記第１誤り数が１又は２である場合、前記シンドローム行列を用いて得られる多項式を解くことで誤り位置を算出し、前記第１誤り数が３以上である場合、前記シンドローム行列を用いて得られる多項式に対して探索手法を用いて誤り位置を算出する誤り位置・数算出部をさらに備える、
請求項２に記載の加入者線端局装置。
【請求項４】
前記誤り位置・数算出部は、前記パラメータが閾値より大きい場合、探索手法によって誤り位置を算出し、前記パラメータが閾値以下の場合、前記第１誤り数に基づいて、誤り位置を算出する、
請求項３に記載の加入者線端局装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、加入者線端局装置に関する。
【背景技術】
【０００２】
通信処理において誤り訂正符号化が広く用いられている。そのうち、誤り訂正アルゴリズムの分類としてブロック符号化が多く用いられている。ブロック符号化においてはリードソロモン符号化（ＲＳ：Reed Solomon Coding）が高い誤り訂正率から、光アクセスシステムにおけるＰＯＮ（Passive Optical Network）、ＤＶＤ（Digital Versatile Disc）リーダー等に用いられている。ＰＯＮにおいては１０Ｇ−ＥＰＯＮでＲＳ（２５５、２２３）、ＧＥ−ＰＯＮでＲＳ（２５５、２３９）、ＮＧ−ＰＯＮ２でＲＳ（２４８、２１６）＠９．０５３２８Ｇｂｐｓ、ＲＳ（２４８、２３２）＠２．４８８３２Ｇｂｐｓが標準化されている。図１０は、誤り訂正復号化の処理フローを示す図である。リードソロモン符号化はシンドローム算出、誤り位置・数算出、誤り値算出の３つの機能から構成される。
【０００３】
次に、リードソロモン復号化（ｎ、ｋ）に関する演算処理を説明する。演算の詳細は非特許文献１等でも述べられている。数式は、有限体Ｆｑ（ｑは素数のベキ乗）で定義される。シンドローム算出では、シンドロームＳは、以下の式１及び式２で定義される。図１１は、シンドローム算出の流れを表すフローチャートである。
【０００４】
【数１】
2018207311.tif 000003
【０００５】
【数２】
2018207311.tif 000004
【０００６】
ここで、Ｙｉは入力された符号語で、Ｘｉはリードソロモン符号を定義する検査行列の係数である。αは有限体Ｆｑにおける原始元である。この行列式をＳ＝ＨＹとおくと、シンドロームＳはｎＢｙｔｅの１ブロック中の誤りの有無を示す。Ｓ＝０の場合、誤りがなく、Ｓ≠０の場合、誤りがある。また、シンドロームＳは多項式表現で以下の式３で表される。
【０００７】
【数３】
2018207311.tif 000005
【０００８】
次に、誤り位置・数算出の方法を説明する。これまで、様々な手法が提案されてきているが、ここでは、演算量が低いＯ（ｔ）であるユークリッド復号法を説明する。Ω(x)を誤り強度多項式、Λ(x)を誤り位置多項式とすると、以下の式４が成り立つ。
【０００９】
【数４】
2018207311.tif 000006
【００１０】
ここで誤り位置多項式Λ(x)を求めることによって、誤り位置・数を算出する。この式を変形すると、以下の式５が成り立つ。
【００１１】
【数５】
2018207311.tif 000007
【００１２】
ここで、ユークリッド互除法を用いることによって、Λ(x)を算出する。同時に、係数から誤り数ａが求められる。Λ(x)から誤り位置を算出するためには以下の式６で表されるＣｈｉｅｎ探索法が多く用いられている。ｘ=α^0, α^1, …, α^(ν-1)を代入し、式６を満たすαの乗数が誤り位置となる。
【００１３】
【数６】
2018207311.tif 000008
【００１４】
次に、誤り値の算出方法を説明する。シンドローム算出で得られた値から、エラー行列Ｅは以下の式７を満たす。
【００１５】
【数７】
2018207311.tif 000009
【００１６】
そのため、戻り値は、シンドロームＳと検査行列Ｈの逆行列とから算出される。適応的に誤り訂正の冗長度を変化させる手法はいくつか提案されている。多くの手法は冗長度最適化方法として、最大誤り数ではなく、誤り数をカウントアップしビットエラーレート（ＢＥＲ）を算出する方法を取るが、並列処理する際は複数のスレッドで処理している誤り数を統合して足し合わせる場合、スレッド間でのデータの受け渡しがオーバーヘッドになりやすい。したがって、並列処理に適する手法が必要である。
【００１７】
一般的に、誤り訂正符号は専用チップやＦＰＧＡ（field  Programmable Gate Array）等のハードウェアで実装される。しかし近年、汎用デバイスでネットワーク機器を構成するネットワーク仮想化の取り組みが増え、ソフトウェアで装置を構成する研究が進みつつある。これらの取り組みの中では、誤り訂正符号等のネットワーク機能の物理処理までは仮想化されていない。光アクセスシステムにおける取組としては、装置のソフト領域を拡大することで、装置の機能入れ替えによる装置共通化や、保守性向上を狙う取組が進んでいる。ＣＰＵ（Central Processing Unit）やＧＰＵ（Graphics Processing Unit）等のプロセッサで光アクセス装置を実装した場合、専用チップと比較して性能が劣る。したがって、Ｇｂｐｓ級の所望の要求処理速度を達成することが課題となる。
【００１８】
また、光アクセスシステムにおいては伝送路の特性の時間的な変化が少ない。光アクセスシステムの規格である１０Ｇ−ＥＰＯＮでは、誤り訂正機能としてＲＳ（２５５、２２３）が用いられる。ＲＳ（２５５、２２３）は２５５Ｂｙｔｅ１ブロックのデータに対して１６Ｂｙｔｅまでの誤りを訂正可能である。ＲＳ（２５５、２２３）は、局舎に置かれるＯＬＴ（Optical Line Terminal：加入者線端局装置）から近い距離にＯＮＵ（Optical Network Unit）が設置される場合はＯＬＴが受信するＯＮＵからの上り信号の伝送によるデータの誤り数が少なくなることが予想される。したがって、ＲＳ（２５５、２２３）はオーバースペックとなる。この誤り訂正機能をＣＰＵやＧＰＵ等汎用プロセッサで実装する場合は、常にフルスペックを利用することとなる。誤り訂正処理を伝送状態に応じて負荷軽減することができれば余剰リソースを他のアプリに割り当てることが可能になり、リソース利用効率化に繋がる。
【００１９】
ＯＬＴはマージンを取って設計されているため、ＯＬＴ設置後、最初からＲＳ（２５５、２２３）がフルスペックで稼働して誤りを訂正することは少ない。しかし、レーザや伝送路の経年劣化により徐々にＯＬＴ側が受信する受信光のパワーが低くなることがある。したがって、リソースの利用を効率化しつつ、それらの劣化に対応する必要がある。例えば、非特許文献２には、誤り訂正に用いられるパラメータを変更する方法が開示されている。このように、ビットエラーレートを算出し、その値に応じて符号語の冗長度を変更することでスループットを向上させる方法が多く用いられる。
【００２０】
誤り訂正処理の中でも特に演算量が大きい処理が、シンドローム算出である。シンドローム算出の方法の１つにＨｏｒｎｅｒ法がある。これは以下の式８で表すことができる。Ｈｏｒｎｅｒ法は、ハードウェア実装に向いた演算方法である。演算の構成として同一の演算を繰り返し実行する再帰演算となっており、メモリアクセスがない構成を取っており、構成した演算器の中に繰り返しデータを入力することで演算可能なため、低ハードウェアリソース実装に適する。
【００２１】
【数８】
2018207311.tif 000010
【００２２】
誤り位置検出方法として用いられるＣｈｉｅｎ探索法は式６を代入法で解く。式６のΛは定数であり、変数ｘに１から２５５までの値を代入し、等式を満たす場合のｘを解とする。
【先行技術文献】
【非特許文献】
【００２３】
【非特許文献１】C.K.P Clarke, R&D White Paper, “Reed-Solomon error correction,”WHP 031, July 2002.
【非特許文献２】Sugawa, Jun, Koji Wakayama, and Hidehiro Toyoda. "Adaptive FEC control in downstream collaborating with traffic control in OLT for WDM/TDM-PON." Optical Communication (ECOC), 2015 European Conference on. IEEE, 2015.
【発明の概要】
【発明が解決しようとする課題】
【００２４】
しかしながら、適応的に誤り訂正機能のパラメータを変更する方法では、ソフトウェアで、誤り訂正機能を実装する場合に問題が生じる。ＯＬＴがビットエラーレートを算出する場合、誤り訂正アルゴリズムの各ブロックから算出された誤り数を畳み込み、合計の誤り数を算出する。誤り訂正を高速に動作させる場合、ＯＬＴは、データ並列化により各スレッドで同時に誤り数を算出する。そのため、ＯＬＴは、各スレッドで算出された誤り数を全て集約し、合計の誤り数を算出する場合、スレッド間で誤り数のデータの受け渡しが必要になる。したがって、演算完了までの時間が大きくなる場合があった。
【００２５】
また、Ｈｏｒｎｅｒ法は、ソフトウェアで実装する場合、再帰による関数呼び出しコストが大きい、演算数が増える、という問題があった。
【００２６】
また、Ｃｈｉｅｎ探索法の演算は、Ｏ（ｎ・ａ）の計算複雑度となる。したがって、ａ＝１、２の場合もＯ（ｎ）、Ｏ（２ｎ）の演算量になり、より効率的に演算する方法が求められていた。なお、Ｏ（ｎ）は、問題を解くために必要なステップ数を示すオーダー記法である。
【００２７】
上記事情に鑑み、本発明は、光アクセスシステムにおける誤り訂正符号化処理の演算量を削減する技術を提供することを目的としている。
【課題を解決するための手段】
【００２８】
本発明の一態様は、現在までの一定期間内に受信した固定長のビット列において検出された誤り数である第１誤り数と、過去に検出された誤り数のうち最大誤り数である第２誤り数と、のうち大きい方の数を新しい第２誤り数とする誤り数比較部と、前記ビット列の誤りの有無を示すシンドローム行列の大きさを決定するパラメータを前記第２誤り数に基づいて更新するパラメータ更新部と、前記シンドローム行列を用いて前記ビット列の誤り訂正復号を行う誤り訂正部と、を備える加入者線端局装置である。
【００２９】
本発明の一態様は、上記の加入者線端局装置であって、前記ビット列に対する検査行列から得られるシンドローム係数行列において、１列目の値に２列目以降の値を加算し、前記加算の結果に対して前記ビット列を乗算する処理を各行に対して行うことで前記シンドローム行列を算出するシンドローム算出部をさらに備える。
【００３０】
本発明の一態様は、上記の加入者線端局装置であって、前記第１誤り数が１又は２である場合、前記シンドローム行列を用いて得られる多項式を解くことで誤り位置を算出し、前記第１誤り数が３以上である場合、前記シンドローム行列を用いて得られる多項式に対して探索手法を用いて誤り位置を算出する誤り位置・数算出部をさらに備える。
【００３１】
本発明の一態様は、前記誤り位置・数算出部は、前記パラメータが閾値より大きい場合、探索手法によって誤り位置を算出し、前記パラメータが閾値以下の場合、前記第１誤り数に基づいて、誤り位置を算出する。
【発明の効果】
【００３２】
本発明により、光アクセスシステムにおける誤り訂正符号化処理の演算量を削減することが可能となる。
【図面の簡単な説明】
【００３３】
【図１】Ｐ２Ｐ構成及びＰＯＮ構成の光アクセスシステム１の構成図である。
【図２】ＯＬＴ１００全体の機能を表す機能ブロック図である。
【図３】アプリ管理部１２１が保持するパラメータテーブルの一具体例である。
【図４】初回起動時にｔを変更することで演算量を削減する処理フローを示す図である。
【図５】ＯＬＴ１００ａ全体の機能を表す機能ブロック図である。
【図６】一定期間毎にｔを更新することで演算量を削減する処理フローを示す図である。
【図７】シンドローム算出処理をソフトウェアで実行した場合の処理の流れを示すフローチャートである。
【図８】Ｃｈｉｅｎ探索法の演算量を低減化する処理の流れを示すフローチャートである。
【図９】ｔ値変更及び変数Ｉを用いたシンドローム算出とＣｈｉｅｎ探索法の低演算量化とを組合せた処理の流れを示すフローチャートである。
【図１０】誤り訂正復号化の処理フローを示す図である。
【図１１】シンドローム算出の流れを表すフローチャートである。
【発明を実施するための形態】
【００３４】
（第１の実施例）
図１は、Ｐ２Ｐ（point to point）構成及びＰＯＮ構成の光アクセスシステム１の構成図である。図１（ａ）は、Ｐ２Ｐ構成の光アクセスシステム１の構成図である。Ｐ２Ｐ構成の光アクセスシステム１は、ＯＬＴ１００及びＯＮＵ２００を備える。ＯＬＴ１００及びＯＮＵ２００は、一対一で接続される。
【００３５】
図１（ｂ）は、ＰＯＮ構成の光アクセスシステム１の構成図である。ＰＯＮ構成の光アクセスシステム１は、ＯＬＴ１００、複数のＯＮＵ２００及び光スプリッタ３００を備える。ＯＬＴ１００及び各ＯＮＵ２００は、光スプリッタ３００を介して互いに通信可能に接続される。
【００３６】
ＯＬＴ１００は、加入者線端局装置である。ＯＬＴ１００は、光アクセスネットワークを経由する光信号によって他の通信装置（例えば、ＯＮＵ）との通信を実現する装置である。ＯＬＴ１００が接続される光アクセスネットワークは、例えばＰＯＮ等の受動光ネットワークである。
【００３７】
ＯＮＵ２００は、加入者線終端装置である。ＯＮＵ２００は、光アクセスネットワークを経由する光信号によって他の通信装置（例えば、ＯＬＴ）との通信を実現する装置である。ＯＮＵ２００が接続される光アクセスネットワークは、例えばＰＯＮ等の受動光ネットワークである。ＯＮＵ２００は、複数の機器を用いて構成されてもよい。ＯＮＵ２００は、例えば通信サービスの提供を受けるユーザの宅内に設置される。
【００３８】
光スプリッタ３００は、ＯＮＵ２００から送信された信号を集約してＯＬＴ１００に送信する。光スプリッタ３００は、ＯＬＴ１００から送信された信号を分配してＯＮＵ２００に送信する。
【００３９】
図２は、ＯＬＴ１００全体の機能を表す機能ブロック図である。ＯＬＴ１００は、ＩＦ回路１１０、プロセッサ１２０、上位ＩＦ回路１３０及びＩＦ１４０から構成される。
【００４０】
ＩＦ回路１１０は、ＯＮＵ２００からの上り信号やＯＮＵ２００への下り信号を送受信するインタフェース回路である。ＩＦ回路１１０は、光・電気変換部１１１及びプロセッサ転送処理部１１２を備える。
【００４１】
光・電気変換部１１１は、例えば光部品である。光・電気変換部１１１は、ＯＮＵ２００からの上り信号を、光部品にて光から電気に変換する。光・電気変換部１１１は、ＯＮＵ２００への下り信号を、電気から光に変換する。プロセッサ転送処理部１１２は、例えば転送インタフェースである。プロセッサ転送処理部１１２は、プロセッサ１２０及び光・電気変換部１１１間の信号の受け渡しを行う。
【００４２】
プロセッサ１２０は、例えばＣＰＵである。プロセッサ１２０は、入力信号に対して、所定の処理を行う。所定の処理は、ＯＬＴ１００の場合、誤り訂正、暗号化、ＰＯＮ ＭＡＣ処理等である。プロセッサ１２０は、アプリ管理部１２１、ＭＡＣ部１２２、暗号化部１２３、誤り訂正部１２４、誤り数比較部１２５及びｔ値変更部１２６を備える。
【００４３】
アプリ管理部１２１は、ＭＡＣ（Media Access Control）、暗号化、誤り訂正の機能を管理する。誤り訂正の機能では、アプリ管理部１２１は、誤り訂正の機能のＯＮ／ＯＦＦの設定、符号語の長さ、冗長度の設定、符号化方式の設定、を行う。アプリ管理部１２１は、ユーザ毎のパラメータを記憶するパラメータテーブルを保持する。
【００４４】
ＭＡＣ部１２２は、上位装置から受信した主信号に含まれる平文を暗号化部１２３に出力する。平文は、例えば、通信サービスを利用するユーザを識別する識別情報等である。なお、平文は、どのような情報であってもよい。
【００４５】
暗号化部１２３は、ＭＡＣ部１２２から出力された平文に対して暗号化処理を実行する。暗号化処理には、ブロック暗号化方式が用いられてもよい。ブロック暗号化方式とは、平文を固定長のビット列のブロックに分割し、それぞれのブロックに対して暗号化処理を実行する方式である。ブロック暗号化には、例えばＡＥＳ、ＤＥＳ又はＣａｍｅｌｌｉａ等が用いられる。暗号化処理には、他のブロック暗号化方式を用いてもよい。
【００４６】
誤り訂正部１２４は、変数ｔの値によって与えられた大きさのシンドローム行列を用いて、主信号から受信した平文の誤り訂正を行う。誤り訂正部１２４は、シンドローム算出部（不図示）、誤り位置・数算出部（不図示）及び誤り値算出部（不図示）から構成される。シンドローム算出部は、受信したビット列の誤りの有無を示すシンドロームを算出する。誤り位置・数算出部は、平文の誤り位置及び数を算出する。誤り値算出部は、平文の誤りを検出し、訂正する。
【００４７】
誤り数比較部１２５は、現在までの一定期間内に受信した１ブロックにおいて検出された最大誤り数（以下「最大誤り数」という。）と、過去から現在までに検出された最大誤り数Ｅｒｒｏｒ＿Ｍａｘと、を比較する。誤り数比較部１２５は、比較の結果、大きい方の数値をＥｒｒｏｒ＿Ｍａｘとし、共有メモリに記憶する。最大誤り数は、第１誤り数の一態様である。Ｅｒｒｏｒ＿Ｍａｘは、第２誤り数の一態様である。なお、１ブロックは、固定長のビット列である。
【００４８】
ｔ値変更部１２６は、ＯＬＴ１００が起動してから所定時間経過した場合、シンドローム行列サイズ２ｔのパラメータｔに対して、Ｅｒｒｏｒ＿Ｍａｘの値を設定する。ｔ値変更部１２６は、パラメータ更新部の一態様である。
【００４９】
所定時間は定数Ｃで表される。定数Ｃの値は、エラーレートが１０−１２以下となる時間になるように設定される。具体的には、１０１２ビットをチェック可能な回数が適しており、符号長が２５５Ｂｙｔｅの場合、４９０１９６０７９回である。
【００５０】
上位ＩＦ回路１３０は、上位装置（不図示）及びＯＬＴ１００間の主信号を送受信するインタフェース回路である。上位ＩＦ回路１３０は、上位ＩＦ部１３１及びプロセッサ転送処理部１３２を備える。上位ＩＦ部１３１は、例えば転送インタフェースである。上位ＩＦ部１３１は、上位装置からの主信号を受信する。上位ＩＦ部１３１は、上位装置への信号を送信する。プロセッサ転送処理部１３２は、プロセッサ１２０及び上位ＩＦ部１３１間の信号の受け渡しを行う。
【００５１】
ＩＦ１４０は、アプリ管理部１２１に対する設定項目を外部から入力する。ＩＦ１４０は、例えばマウスやキーボード等の入力装置をＯＬＴ１００に接続させるインタフェースである。
【００５２】
図３は、アプリ管理部１２１が保持するパラメータテーブルの一具体例である。パラメータテーブルは、ＰＯＮ構成の場合に、それぞれのユーザに対応するパラメータレコードを記憶する。パラメータレコードは、ユーザ１〜ｎ（ｎは自然数）毎に変数ｔ、ｖ、ｃｎｔを記憶する。各ユーザの変数は、ｔ＝ｔ０、ｖ＝ｖ０、ｃｎｔ＝０が初期値として初期化される。ｔ０は、通常時に検出される誤り数よりも大きな値である。初期化後、アプリ管理部１２１によってユーザ毎に、ｔ及びｃｎｔの値が更新される。
【００５３】
図４は、初回起動時にｔを変更することで演算量を削減する処理フローを示す図である。まず、ユーザ数が１であるＰ２Ｐ構成の場合について説明する。誤り訂正部１２４は、アプリ管理部１２１に記憶される変数の値を取得し、設定する（ステップＳ１０１）。具体的には、初回起動時には、初期値としてｔ＝ｔ０、ｖ＝ｖ０、ｃｎｔ＝０が設定される。ここで、ｖが符号語の長さ、２ｔがシンドローム行列のサイズ、ｃｎｔがカウンタ変数である。
【００５４】
誤り訂正部１２４は、順次入力される上り信号のバーストフレームに対して誤り訂正復号処理を行う。具体的には、誤り訂正部１２４のシンドローム算出部は、シンドローム算出を行う（ステップＳ１０２）。誤り訂正部１２４の誤り位置・数算出部は、誤り位置・数算出を行う（ステップＳ１０３）。誤り訂正部１２４の誤り値算出部は、誤り値算出を行うことで、誤り訂正を行う（ステップＳ１０４）。
【００５５】
誤り数比較部１２５は、最大誤り数が、現在時刻までに保持されているＥｒｒｏｒ＿Ｍａｘより大きいか否か判定する（ステップＳ１０５）。最大誤り数がＥｒｒｏｒ＿Ｍａｘよりも大きい場合（ステップＳ１０５：ＹＥＳ）、誤り数比較部１２５は、Ｅｒｒｏｒ＿Ｍａｘに最大誤り数の値を代入する（ステップＳ１０６）。最大誤り数がＥｒｒｏｒ＿Ｍａｘ以下の場合（ステップＳ１０５：ＮＯ）、ステップＳ１０７に遷移する。
【００５６】
ｔ値変更部１２６は、変数ｃｎｔ及び定数Ｃの値が一致しているか否か判定する（ステップＳ１０７）。変数ｃｎｔ及び定数Ｃの値が一致している場合（ステップＳ１０７：ＹＥＳ）、ｔ値変更部１２６は、変数ｔにＥｒｒｏｒ＿Ｍａｘを代入する（ステップＳ１０８）。変数ｃｎｔ及び定数Ｃの値が一致していない場合（ステップＳ１０７：ＮＯ）、ステップＳ１０９に遷移する。ｔ値変更部１２６は、変数ｃｎｔをインクリメントする（ステップＳ１０９）。
【００５７】
アプリ管理部１２１は、変数ｃｎｔ及びｔの値を記憶し、ステップＳ１０１に遷移する（ステップＳ１１０）。
【００５８】
複数ユーザが同じチャネルを共有するＰＯＮ構成の場合、それぞれのユーザに応じて変数が設定される。具体的には、アプリ管理部１２１に保持されるパラメータテーブルに基づいて、変数が設定される。
【００５９】
このように構成されたＯＬＴ１００では、初期値として通常時に検出される誤り数よりも大きな値ｔ＝ｔ０が設定され、運用が開始される。ｔ値変更部１２６は、初回起動後から一定時間の間、１ブロック当りの最大誤り数を測定し、最大誤り数をｔに代入する。具体的には、ｔ値変更部１２６は、シンドローム行列サイズ２ｔの変数ｔの値を、伝送路の状態に応じて、より小さい値であるＥｒｒｏｒ＿Ｍａｘとする。最大誤り数は、誤り数の実測値であり、ｔよりも小さいことが通常である。したがって、シンドローム行列サイズは縮小し、演算量は削減される。さらに、誤り数比較部１２５が、最大誤り数を共有メモリに保持し、誤り訂正処理中に最大誤り数を逐次更新する。このように構成されることで、スレッド間で非同期に最大誤り数を取得できる。したがって、従来のＢＥＲ算出方法に伴う、データの受け渡しのオーバーヘッドが抑制される。
【００６０】
（第２の実施例）
次に、第２の実施例におけるＯＬＴ１００ａについて説明する。図５は、ＯＬＴ１００ａ全体の機能を表す機能ブロック図である。第２の実施例におけるＯＬＴ１００ａは、プロセッサ１２０の代わりにプロセッサ１２０ａを備える点で第１の実施例とは異なるが、それ以外の構成は同じである。以下、第１の実施形態と異なる点について説明する。
【００６１】
プロセッサ１２０ａは、例えばＣＰＵである。プロセッサ１２０ａは、更新判定部１２７をさらに備える点で第１の実施例とは異なるが、それ以外の構成は同じである。更新判定部１２７は、変数ｃｎｔが定数Ｄとなる場合、アプリ管理部１２１に対してパラメータ入力により初期値を設定させ、最大誤り数の算出を開始させる。なお、初期値は、ｔ＝ｔ０、ｖ＝ｖ０、ｃｎｔ＝０である。定数Ｄの値は、変数ｃｎｔがインクリメントされ、１日から数日単位程度でＤと一致するように設定される。
【００６２】
図６は、一定期間毎にｔを更新することで演算量を削減する処理フローを示す図である。ステップＳ１０１からステップＳ１０９までは、第１の実施例と同じであるため、説明を省略する。
【００６３】
ステップＳ１０９が終了すると、更新判定部１２７は、変数ｃｎｔが定数Ｄと一致しているか否かを判定する（ステップＳ２０１）。変数ｃｎｔ及び定数Ｄが一致している場合（ステップＳ２０１：ＹＥＳ）、更新判定部１２７は、アプリ管理部１２１に対して、パラメータテーブルの該当ユーザのレコードに初期値を設定させる（ステップＳ２０２）。変数ｃｎｔ及び定数Ｄが一致していない場合（ステップＳ２０１：ＮＯ）、更新判定部１２７は、何らの処理も実行しない。
【００６４】
第１の実施例では、初回起動時にｔの更新が行われていた。第１の実施例の場合、ＯＬＴ１００は、レーザや伝送路の経年劣化に伴う伝送品質の劣化への対応が難しかった。しかし、第２の実施例のように構成されたＯＬＴ１００ａでは、更新判定部１２７は、数時間又は一日単位の時間が経過する度にｔを初期化させる。具体的にはｔ０が設定される。したがって、定期的に誤り数が測定され、最大誤り数が更新されるため、ＯＬＴ１００ａは、伝送路やレーザの経年劣化に対応できる。
【００６５】
（第３の実施例）
第３の実施例は、シンドローム算出処理をソフトウェアで実行した場合の高速演算方法である。式１は、以下の式９、式１０及び式１１によって置き換えられる。式９は、リードソロモン符号を定義する検査行列の係数を式２を用いて置き換えて求められる。式２を用いて置き換えられた係数は、シンドローム係数行列である。シンドローム係数行列は、１列目の値に２列目以降の値を加算する加算処理を行い、加算結果に対してビット列を乗算する乗算処理を行い、各行に対しても加算処理及び乗算処理を行うことでシンドローム行列を算出する。また、積分変数Ｉを用いて、式１１に示されるように、誤り訂正部１２４のシンドローム算出部は、以前に計算した値を用いて乗算を行うことで演算の簡易化を行う。積分変数Ｉは入力ブロックのシンボルにより初期化される。Ｔａｂｌｅは、ビット列とガロア体上のシンボルの対応表である。
【００６６】
【数９】
2018207311.tif 000011
【００６７】
【数１０】
2018207311.tif 000012
【００６８】
【数１１】
2018207311.tif 000013
【００６９】
図７は、シンドローム算出処理をソフトウェアで実行した場合の処理の流れを示すフローチャートである。誤り訂正部１２４のシンドローム算出部は、ｉに０を代入する（ステップＳ３０１）。シンドローム算出部は、ｉをインクリメントする（ステップＳ３０２）。シンドローム算出部は、ｊに０を代入する（ステップＳ３０３）。シンドローム算出部は、Ｉ（ｉ、０）を初期化する（ステップＳ３０４）。具体的には、シンドローム算出部は、入力ビット列をシンボルに変換し、Ｉ（ｉ、０）に格納する。シンドローム算出部は、ｊをインクリメントする（ステップＳ３０５）。
【００７０】
シンドローム算出部は、式１の行列の行数ｉとガロア体加算を行う（ステップＳ３０６）。シンドローム算出部は、Ｘｉのガロア体乗算を行う（ステップＳ３０７）。シンドローム算出部は、Ｉ（ｉ、ｊ）に結果を保持させる（ステップＳ３０８）。シンドローム算出部は、ｊがｔ−１と一致しているか否か判定する（ステップＳ３０９）。ｊがｔ−１と一致していない場合（ステップＳ３０９：ＮＯ）、処理はステップＳ３０５へ遷移する。ｊがｔ−１と一致している場合（ステップＳ３０９：ＹＥＳ）、シンドローム算出部は、ｉがｎ−１と一致しているか否か判定する（ステップＳ３１０）。ｉがｎ−１と一致していない場合（ステップＳ３１０：ＮＯ）、処理はステップＳ３０２へ遷移する。ｉがｎ−１と一致している場合（ステップＳ３１０：ＹＥＳ）、処理を終了する。
【００７１】
フローチャートによると、Ｉは、ループ内で逐次、式１の行列の行数ｉと加算が行われ、値が更新される。ここで、Ｉを加算される場合、繰り上がり値は、９ｂｉｔ目の１のみとなる。したがって、アルゴリズム中の（Ｉ←（Ｉ＋ｉ）ｍｏｄ  ｎ）における剰余演算が簡易化される。
【００７２】
例えば、ｍ＝８、ｎ＝２５５の場合、剰余演算は、式１２のようにビットシフト、加算及び論理和で計算される。また、比較演算を用いて計算されてもよい。具体的には、（Ｉ＋ｉ）＜２５５の場合、Ｉ←（Ｉ＋ｉ）とし、それ以外の場合、Ｉ←（Ｉ＋ｉ−２５５）として計算されてもよい。なお、Ｉにｉ＊ｊを都度代入する場合、２５５＊２以上の値も取りえるため、繰り上がり値の種類が増える。
【００７３】
【数１２】
2018207311.tif 000014
【００７４】
このように構成されたＯＬＴ１００では、シンドローム係数行列のｉ行目１列目の値で変数が初期化される。そして、シンドローム算出部は、逐次２列目以降の係数を変数に加算し、乗算する。したがって、シンドローム算出部は、ＣＰＵのキャッシュメモリを活用しながらシンドローム算出するため、ソフトウェアの計算量を削減できる。
【００７５】
（第４の実施例）
第４の実施例は、式６で示されるＣｈｉｅｎ探索法の演算量を低減化する方法である。誤り率が１０＾−３以下の場合、１ブロック当りの誤り数が１又は２である確率が高い。したがって、誤り訂正部１２４の誤り位置・数算出部は、１ブロック当たりの誤り数が１又は２である場合において、解の公式を用いて演算を簡易化することで、誤り位置検出処理全体の処理時間を削減する。
【００７６】
１ブロック当たりの誤り数が１の場合の解の公式は、以下の式１３で表される。式１３は、一次方程式の解の公式に基づいて求められる。誤り訂正部１２４の誤り位置・数算出部は、式１３を計算することで、誤り位置を算出できる。従来の手法では、多項式の変数ｘに１から２５５までの値を随時代入するため、２５５回の乗算が必要であった。しかし、第４の実施例では、式１３を計算することで、誤り位置を算出でき、演算量を削減できる。
【００７７】
【数１３】
2018207311.tif 000015
【００７８】
１ブロック当たりの誤り数が２の場合の解の公式は、以下の式１４で表される。式１４は、二次方程式の解の公式に基づいて求められる。誤り訂正部１２４の誤り位置・数算出部は、式１４を計算することで、誤り位置を算出できる。従来の手法では、多項式の変数ｘに２×２５５の乗算と２５５回の加算とが必要であった。しかし、第４の実施例では、式１４を計算することで、誤り位置を算出でき、演算量を削減できる。
【００７９】
【数１４】
2018207311.tif 000016
【００８０】
図８は、Ｃｈｉｅｎ探索法の演算量を低減化する処理の流れを示すフローチャートである。図８によると、誤り数が１又は２の場合、誤り位置多項式に解の公式を適用する。誤り訂正部１２４の誤り位置・数算出部は、誤り数が１であるか、２であるか、２より大きいか否かを判定する（ステップＳ４０１）。誤り数が１である場合（ステップＳ４０１：ｖ＝１）、誤り位置・数算出部は、式１３を用いて誤り位置を算出する（ステップＳ４０２）。誤り数が２である場合（ステップＳ４０１：ｖ＝２）、誤り位置・数算出部は、式１４を用いて誤り位置を算出する（ステップＳ４０３）。誤り数が２より大きい場合（ステップＳ４０１：ｖ＞２）、誤り位置・数算出部は、式６を用いて誤り位置を算出する（ステップＳ４０４）。
【００８１】
このように構成されたＯＬＴ１００では、誤り位置・数算出部は、１ブロック当りの誤り数１又は２である場合、誤り位置多項式に対して解の公式を利用して誤り位置を算出し、計算量を削減する。誤り位置・数算出部は、誤り数が２より大きい場合、誤り位置多項式に対してガロア体上の全ての根を代入して誤り位置を算出する。したがって、１ブロック当たりの誤り数が１又は２の場合、演算量がＯ（１）のオーダーで計算でき、演算量を削減できる。
【００８２】
なお、第４の実施例では、誤り数が１又は２の場合に解の公式を用いて誤り位置を算出している。しかし、誤り数が３又は４の場合のように、解の公式がある方程式の場合には、誤り位置・数算出部は、解の公式を用いて誤り位置を算出してもよい。
【００８３】
（第５の実施例）
第５の実施例は、第１の実施例又は第２の実施例と第３の実施例と第４の実施例とを組合せた方法である。アプリ管理部１２１は、t値を誤り訂正部１２４のシンドローム算出部に入力する。シンドローム算出部は、ｔ値を変数ｊと比較する。具体的にはｊがｔ−１と同じ値となるまで反復処理を行う。したがって、反復処理の繰り返し回数をｎ以下にすることができる。
【００８４】
アプリ管理部１２１は、ｔ値を誤り位置・数算出部に入力する。誤り位置・数算出部は、t値が閾値より小さいか否か判定する。ｔ値が閾値以下の場合、第４の実施例で示した方法を用いて演算を行う。誤り位置・数算出部は、ｔ値が閾値より大きい場合、式６を用いて演算を行う。閾値は、例えば、受信した１ブロック当りの誤り数が０、１又は２である場合が少なくなる値である。ｔ値が大きくなると、算出される誤り数が大きくなる場合が多い。したがって、ｔ値と閾値とを比較することで、誤り数の比較に伴う演算量が大きくなることを抑制できる。
【００８５】
図９は、ｔ値変更及び変数Ｉを用いたシンドローム算出とＣｈｉｅｎ探索法の低演算量化とを組合せた処理の流れを示すフローチャートである。なお、ステップＳ３０１からステップＳ３１０、ステップＳ４０１からステップＳ４０４は説明済みのため省略する。アプリ管理部１２１は、シンドローム算出部に変数ｔ、ｖ、ｃｎｔを設定する（ステップＳ５０１）。次にステップＳ３０１からステップＳ３１０までが実行される。
【００８６】
誤り位置・数算出部は、ｔが閾値より大きいか否か判定する（ステップＳ５０２）。ｔが閾値より大きい場合（ステップＳ５０２：ＹＥＳ）、誤り位置・数算出部は、式６を用いて誤り位置を算出する（ステップＳ５０３）。ｔが閾値大きくない場合（ステップＳ５０２：ＮＯ）、ステップＳ４０１からステップＳ４０４までが実行される。
【００８７】
このように構成されたＯＬＴ１００では、ｔ値をシンドローム算出部と誤り位置・数算出部とに入力することで、シンドロームをより早く算出したり、誤り位置・数算出に伴う演算量を削減できる。
【００８８】
第１から第５の実施例のように構成されたＯＬＴ１００では、ＣＰＵ負荷が削減され、リソース利用が効率化される。したがって、余剰リソースを他のアプリケーション実行に使用できる。さらに、電力効率を向上させることができる。また、ｔ値変更部１２６はtの値を変更する。したがって、誤り訂正復号化処理における、シンドローム算出部、誤り数・位置検出部の演算量削減ができ、シンドローム算出及び誤り位置検出の処理時間が削減される。このように、ソフトウェアで誤り訂正復号化の実装を行う必要がある装置のＣＰＵ負荷を削減できる。
【００８９】
以上、この発明の実施形態について図面を参照して詳述してきたが、具体的な構成はこの実施形態に限られるものではなく、この発明の要旨を逸脱しない範囲の設計等も含まれる。
【産業上の利用可能性】
【００９０】
本発明は、ユーザに光通信環境を提供する光アクセスサービスに適用可能である。
【符号の説明】
【００９１】
１…光アクセスシステム，１００…ＯＬＴ，  １１０…ＩＦ回路，  １１１…光・電気変換部，  １１２…プロセッサ転送処理部，  １２０…プロセッサ，  １２１…アプリ管理部，  １２２…ＭＡＣ部，  １２３…暗号化部，  １２４…誤り訂正部，  １２５…誤り数比較部，  １２６…ｔ値変更部，  １３０…上位ＩＦ回路，  １３１…上位ＩＦ部，  １３２…プロセッサ転送処理部，  １４０…ＩＦ，  ２００…ＯＮＵ，  ３００…光スプリッタ，  １２７…更新判定部
【図１】
2018207311.tif 000017
【図２】
2018207311.tif 000018
【図３】
2018207311.tif 000019
【図４】
2018207311.tif 000020
【図５】
2018207311.tif 000021
【図６】
2018207311.tif 000022
【図７】
2018207311.tif 000023
【図８】
2018207311.tif 000024
【図９】
2018207311.tif 000025
【図１０】
2018207311.tif 000026
【図１１】
2018207311.tif 000027