JP2018007014A - ステートマシン - Google Patents
ステートマシン Download PDFInfo
- Publication number
- JP2018007014A JP2018007014A JP2016131453A JP2016131453A JP2018007014A JP 2018007014 A JP2018007014 A JP 2018007014A JP 2016131453 A JP2016131453 A JP 2016131453A JP 2016131453 A JP2016131453 A JP 2016131453A JP 2018007014 A JP2018007014 A JP 2018007014A
- Authority
- JP
- Japan
- Prior art keywords
- unit
- address
- state
- program
- event
- 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.)
- Pending
Links
Images
Landscapes
- Small-Scale Networks (AREA)
Abstract
【課題】複数の子局の状態を管理する親局において、CPUの処理負荷の増大を抑える。【解決手段】本発明に係るステートマシン11は、複数のイベントデータEI1〜EInを所定の優先度に従って一つずつ出力するイベント調停部110と、子局毎にその子局に対して実行されている処理の状態に対応する状態アドレスを記憶する状態アドレス記憶部121と、処理毎に、その処理の各状態において実行すべきプログラムを記憶するプログラム記憶部123と、処理毎のプログラムを特定する先頭アドレスを記憶するベースアドレス記憶部122と、状態アドレスと先頭アドレスとに基づいて生成されたプログラムアドレスを順次インクリメントして出力するシーケンサ125と、プログラムアドレスによって読み出したプログラムに基づいて処理ブロックを制御するとともに、状態アドレスを更新して子局毎の処理状態を遷移させるプログラム処理部126とを備える。【選択図】図5
Description
本発明は、親局と複数の子局とから構成された通信システムの親局に設けられ、親局において子局による通信を実現するための処理を夫々の子局に対して実行する処理ブロックを制御するステートマシンに関する。
親局と複数の子局とから構成され、親局と複数の子局との間を共有の媒体またはリソースを用いて時分割多重により接続する通信システムとして、無線LANやPON(光通信網:Passive Optical Network)等が知られている。
PONシステムとは、局舎に設置されるOLT(局側装置:Optical Line Terminal)を親局とし、各ユーザ宅に設置されるONU(加入者側装置:Optical Network Unit)を子局として、OLTと各ONUとの間を光通信網で接続した光伝送システムである。
図11は、従来のPONシステムの構成を示す図である。
図11において、PONシステム900は、外部ネットワーク5と接続されたOLT9と、複数のONU2と、光ファイバ3および光スプリッタ4とから構成されており、PONシステム900を介して、各ONU2と外部ネットワーク5との間の通信が可能となる。
図11において、PONシステム900は、外部ネットワーク5と接続されたOLT9と、複数のONU2と、光ファイバ3および光スプリッタ4とから構成されており、PONシステム900を介して、各ONU2と外部ネットワーク5との間の通信が可能となる。
PONシステム900において、OLT9からONU2への下り方向通信では、OLT9がONU2毎に割り当てられた識別番号(Logical Link ID、以下、単に「ID」と称する。)を付加した下りフレームを時分割多重により送信し、その下りフレームが光スプリッタ4で分岐されて全てのONU2に転送される。各ONU2は、転送された下りフレームに付加されたIDが自らのIDと一致する場合にのみ、その下りフレームを抽出して受信する。
また、ONU2からOLT9への上り方向通信では、各ONU2は自らのIDを付加した上りフレームを、OLT9から割り当てられた帯域(送信開始時刻とその送信開始時刻からの送信継続時間)において送信し、各ONU2からの上りフレームが光スプリッタ4で合流してOLT9に転送される。OLT9は、転送された上りフレームに付加されたIDに基づいて、どのONU2から送信された上りフレームであるかを判別して受信する。
以上のように、PONシステムでは、上り方向通信において、複数のONU2から送信される信号が光スプリッタ4で束ねられてOLT9に転送されるので、各ONU2から送信された信号が衝突しないように、OLT9において適切な通信帯域の割当を行う必要がある。
一般なPONシステムでは、一つのOLTに接続するONUの数を増やすことにより、通信システムのコストを抑えることができる。そのため、近年、PONシステムの発展に伴い、一つのOLTに接続されるONUが増加し、各ONUに割り当てられるIDの最大数が増加傾向にある。
ところで、OLTに新しいONUを接続する場合、OLTは、未接続のONUを検索するための所定の手順(例えば、IEEE802.3に規定されるE−PONではDiscoveryシーケンス)に従って、ONUへのID割当、OLT−ONU間の距離の測定等のリンク管理処理を実行する。また、OLTは、一度リンク確立したONUの死活確認とリンクの維持を行う。例えば、OLTは、ONUとの間で定期的に制御信号の送受信を行い、その制御信号の送受信が途絶えた場合には、ONUのリンク維持が不要と判断し、リンクを切断する操作を行う。
このようなOLTと各ONUとの間のリンクの確立、リンクの維持、およびリンクの切断等のリンク管理処理等のONUによる通信を実現するための処理を適切な手順で実行するために、OLTやONUの内部に設けられた半導体集積回路(LSI)は、監視対象のIDが現在どのような状態(ステート)であるかを管理するためのステートマシンと、ステートマシンからの信号に基づいて各種の上記処理を実行する複数の処理ブロック回路を備えている。
ここで、子局による通信を実現するための処理(以下、「通信制御処理」とも称する場合がある。)としては、上述したリンク管理処理の他に、IEEE802.3ahで規定されるPONの運用・保守・管理を行う為のOAM(Operation Administration and Maintenance)処理や、各ONUに帯域割当を行う帯域割当処理等がある。
ステートマシンは、通信制御処理を実現する為の複数の処理ブロックから、イベント(入力イベント)を受信し、そのイベントの内容に応じた処理や監視(管理)対象機器の状態を遷移させる。入力されたイベントの内容によっては、他の処理ブロックに対してイベント(出力イベントデータ)を発行する場合もある。
ここで、入力イベントの種類としては、例えば、フレーム受信完了、フレーム送信完了、複数種類のタイマ満了等がある。また、出力イベントの種類としては、例えば、フレームの送信指示、フレームの生成指示、各種タイマの起動指示等がある。
一般に、OLTは、PONシステムに接続されている(または、接続可能な)全てのONUの状態を一元的に管理する必要があることから、接続されているONUの個数、すなわち管理するIDに対応する数のステートマシンを備えている。
従来、OLTに内蔵されるステートマシンは、LSI設計後の手順変更への対応や規格に明記されていない部分への対応の容易性を考慮し、ソフトウェアで実装されることが一般的であった。
例えば、特許文献1には、ステートマシンをプログラム処理によって実現するCPUに対して、上記他の処理ブロック(ハードウェア)で発生する種々のイベントに基づいて生成した割込み信号を入力することにより、イベントを通知する技術が開示されている。特許文献1に開示されたPONシステムは、割込み要因の優先度やIDの優先度に応じた順番で、各割込み信号の出力調停を行う調停回路と、調停回路で出力された割込み信号を順番に格納し、CPUへ出力する割込み表示レジスタとを設けることにより、CPUにおける割込み信号の処理順序を決定する手順を不要とし、CPUの処理効率の向上を図っている。
例えば、特許文献1には、ステートマシンをプログラム処理によって実現するCPUに対して、上記他の処理ブロック(ハードウェア)で発生する種々のイベントに基づいて生成した割込み信号を入力することにより、イベントを通知する技術が開示されている。特許文献1に開示されたPONシステムは、割込み要因の優先度やIDの優先度に応じた順番で、各割込み信号の出力調停を行う調停回路と、調停回路で出力された割込み信号を順番に格納し、CPUへ出力する割込み表示レジスタとを設けることにより、CPUにおける割込み信号の処理順序を決定する手順を不要とし、CPUの処理効率の向上を図っている。
しかしながら、特許文献1に開示された技術では、OLTの制御フレーム処理回路におけるCPUが、制御フレーム処理回路としての各種処理の統括的な制御に加えて、ステートマシンとしての処理も行っているため、ID(ONU)の数が増えた場合に、CPUの処理負荷が大きくなる。CPUの処理負荷が大きくなると、OLTが所定の時間内に全てのイベントを処理できず、ONUとOLTとの間でのステートに齟齬が生じ、リンクの確立やリンクの維持ができないおそれがある。
また、特許文献1に開示された回路では、割込み信号を生成する専用の調停回路を用いており、機能が固定されているため、対応可能なIDの数とプロトコルが固定されてしまう。そのため、異なる標準で規定されているPONシステムのプロトコル毎に、別々の調停回路を最大ID数分用意することが必要となり、回路規模の増大を招く。
本発明は、上記の問題に鑑みてなされたものであり、本発明の目的は、複数の子局の状態を管理する親局において、子局の数が増えた場合であっても、親局側のCPUの処理負荷の増大を抑えることにある。
本発明に係るステートマシンは、親局(1)と複数の子局(2)とから構成された通信システム(100)の親局に設けられ、親局において子局による通信を実現するための処理を夫々の子局に対して実行する処理ブロック(101_1〜101_n)を制御するステートマシンであって、子局において発生したイベントに関するイベントデータ(EI1〜EIn)を所定の優先度に従って一つずつ出力するイベント調停部(110)と、子局毎に、その子局に対して実行されている処理の状態に対応する状態アドレスを記憶する状態アドレス記憶部(121)と、処理毎に、その処理の状態において実行すべきプログラムを記憶するプログラム記憶部(123)と、処理毎のプログラムを特定する先頭アドレスを記憶するベースアドレス記憶部(122)と、イベント調停部から出力されたイベントデータに従って状態アドレス記憶部から読み出された状態アドレスと、イベント調停部から出力されたイベントデータに従ってベースアドレス記憶部から読み出された先頭アドレスとに基づいてプログラムを特定するプログラムアドレスを生成するアドレス生成部(124)と、アドレス生成部によって生成されたプログラムアドレスを順次インクリメントして出力し、プログラムアドレスの出力の完了に応じて、イベント調停部に対して次のイベントデータの出力を指示するシーケンサ(125)と、シーケンサから出力されたプログラムアドレスに従ってプログラム記憶部から読み出されたプログラムに基づいて、処理ブロックを制御するとともに、状態アドレスを更新して子局毎の処理の状態を遷移させるプログラム処理部(126)と、を備えることを特徴とする。
上記ステートマシンにおいて、プログラム処理部は、プログラムに従って演算を実行する演算部(133)と、演算部による演算結果を含む出力イベントデータを処理ブロックに出力する出力部(134,136)とを含んでもよい。
上記ステートマシンにおいて、プログラム処理部は、イベント調停部から出力されたイベントデータに含まれるイベントの種類を示すイベントコードとプログラムで指定された比較対象コードとを比較し、イベントコードと比較対象コードが一致した場合に、状態アドレス記憶部に記憶されている状態アドレスを更新し、イベントコードと比較対象コードが一致しない場合に、状態アドレス記憶部に記憶されている状態アドレスを更新しない比較部(135)を含んでもよい。
上記ステートマシンにおいて、プログラム処理部は、比較部による複数の比較結果の論理積を記憶する論理積レジスタ(137)を更に有し、比較部は、論理積レジスタの値に基づいて、状態アドレスを更新するか否かを決定してもよい。
上記ステートマシンにおいて、イベント調停部、状態アドレス記憶部、プログラム記憶部、ベースアドレス記憶部、アドレス生成部、シーケンサ、およびプログラム処理部を一組とするステートマシンユニット(211_1〜211_m)を複数組有し、処理ブロックから出力されたイベントデータを何れか一つのステートマシンユニットに出力するイベントデータ振り分け部(210)を更に備えてもよい。
上記ステートマシンにおいて、イベントデータ振り分け部は、イベントデータの出力先のステートマシンユニットを指定する出力先情報を記憶するための書き換え可能な記憶領域を有する選択レジスタ(214)と、処理ブロックから出力されたイベントデータを、出力先で指定されたステートマシンユニットへ出力するイベントデータ出力部(212、213_1〜213_m)とを含んでもよい。
上記ステートマシンにおいて、状態アドレス記憶部、プログラム記憶部、およびベースアドレス記憶部は、書き換え可能な記憶領域を夫々有していてもよい。
なお、上記説明では、一例として、発明の構成要素に対応する図面上の構成要素を、括弧を付した参照符号および図番によって表している。
本発明によれば、複数の子局の状態を管理する親局において、子局の数が増えた場合であっても、親局側のCPUの処理負荷の増大を抑えることが可能となる。
以下、本発明の実施の形態について図を参照して説明する。なお、以下の説明において、各実施の形態において共通する構成要素には同一の参照符号を付し、繰り返しの説明を省略する。
≪実施の形態1≫
図1は、実施の形態1に係るステートマシンを備えた通信システムの構成を示す図である。
同図に示される通信システム100は、例えば、FTTH(Fiber To The Home)で利用されるPONシステムであり、光通信網(PON区間)を介してOLT(親局)1に接続されたn(nは2以上の整数)個のONU(子局)2を、OLT1により外部ネットワークと中継接続することにより、各ONU2と外部ネットワーク5との間でフレームを相互に転送する。なお、以下の説明では、通信システム100をPONシステム100とも表記する。
図1は、実施の形態1に係るステートマシンを備えた通信システムの構成を示す図である。
同図に示される通信システム100は、例えば、FTTH(Fiber To The Home)で利用されるPONシステムであり、光通信網(PON区間)を介してOLT(親局)1に接続されたn(nは2以上の整数)個のONU(子局)2を、OLT1により外部ネットワークと中継接続することにより、各ONU2と外部ネットワーク5との間でフレームを相互に転送する。なお、以下の説明では、通信システム100をPONシステム100とも表記する。
PONシステム100としては、IEEE 802.3ahで標準化されているGE−PONやIEEE802.3avで標準化されている10G−EPONなどのPONシステムを例示することができる。
子局としてのONU2は、ユーザの宅内に設置される光回線終端装置である。各ONU2は、光ファイバ(光通信路)3を介して1つの光スプリッタに共通接続されており、更にこの光スプリッタ4は、1つの光ファイバ(光通信路)3を介して、1つのOLT1と接続されている。
親局としてのOLT1は、光接続サービスを提供する局側に設置される光回線終端装置であり、PONに接続されている子局による通信を管理する。
なお、本実施の形態では、説明便宜上、OLT1の管理下にある子局(IDが付与される子局)が全てONU2であるものとして説明するが、OLT1の管理下にある子局としては、上述したONU2の他に、OLT1との間で通信が可能にされ、その通信がOLTによって制御されるONU以外の機器が含まれていてもよい。
図1に示すように、OLT1は、光トランシーバ6と、フレーム再生回路7と、PON制御回路8とから構成されている。光トランシーバ6は、下りフレームの電気−光変換と上りフレームの光−電気変換を行う。光トランシーバ6の入出力部分のことをPONポートと称する。図1には、一例として、1PONポートより構成されるOLTが図示されている。
フレーム再生回路7は、FECや暗号など、電気信号からフレームを再生するための処理を行う。
図2は、PON制御回路8の構成を示す図である。
図2に示されるように、PON制御回路8は、ユーザー(ユーザ端末)と外部ネットワーク間のデータフレームを処理するためのデータフレーム処理回路9と、ONU−OLT間の制御フレームを処理する為の制御フレーム処理回路10から構成されている。
図2に示されるように、PON制御回路8は、ユーザー(ユーザ端末)と外部ネットワーク間のデータフレームを処理するためのデータフレーム処理回路9と、ONU−OLT間の制御フレームを処理する為の制御フレーム処理回路10から構成されている。
データフレーム処理回路9は、バッファリング処理やブリッジ処理等を行う。制御フレーム処理回路10は、各ONUとのリンク確立・管理の為の処理や上りフレーム送信タイミング制御のための帯域割当を行い、下り制御フレームとして各ONUに送信する。すなわち、データフレームは上位・下位へとそれぞれ転送されるのに対し、制御フレームは制御フレーム処理回路10内で折り返して各ONUへと送信される。
図3は、制御フレーム処理回路10の内部構成を示す図である。
図3に示されるように、OLT1の制御フレーム処理回路10は、各種の通信制御処理を夫々の子局に対して実行するための複数の処理ブロック101_1〜101_n(nは2以上の整数)と、CPU12と、ステートマシン11とを有している。
図3に示されるように、OLT1の制御フレーム処理回路10は、各種の通信制御処理を夫々の子局に対して実行するための複数の処理ブロック101_1〜101_n(nは2以上の整数)と、CPU12と、ステートマシン11とを有している。
ここで、図3に示される処理ブロック101_1〜101_n(nは2以上の整数)は、上述した通信制御処理を実現するための処理ブロックである。
CPU12は、制御フレーム処理回路10の統括的な制御を行う機能部である。例えば、CPU12は、各処理ブロック101_1〜101_nに対する初期設定や、上位レイヤー(アプリケーションレイヤー)での各種データ処理等を行う。また、CPU12は、外部からのデータ入力に応じて、後述するステートマシン11のプログラムの更新等を行う。
処理ブロック101_1〜101_nの夫々は、各ONU2に対して必要な処理を実行するとともに、イベントデータEI1〜EInを出力する。イベントデータEI1〜EInは、後述するステートマシン11に夫々入力される。
ここで、イベントデータEI1〜EInとは、子局に対して特定の処理を行ったこと(イベント)を示すデータである。イベントデータEI1〜EInには、処理対象のONU2を特定するID、実行した処理の内容を示すイベント内容情報、その処理ブロックによる処理の状態を表す状態遷移図を特定するステート番号等が含まれる。
ここで、上記イベント内容情報には、実行した処理の識別情報としてのイベントコードと、後述する演算部133によって演算すべきデータ等が含まれる。
また、上記状態遷移図とは、処理ブロック101_1〜101_nによって実行される一連の処理における処理段階(状態,ステート)と、状態間の遷移条件を定めたものであり、ステートマシン11では、上述したリンク管理処理、OAM処理、帯域割当処理等の通信制御処理毎に識別情報が付与され、その識別情報により、状態遷移図を管理している。
以下、各状態遷移図に付与される識別情報を「ステート番号」と称する。すなわち、ステート番号は、状態遷移図の種類を示している。換言すれば、ステート番号は、各ONU2に対してOLT1が実行する通信制御処理の種類(例えば、リンク管理処理、OAM処理、帯域割当処理等)を表している。
例えば、処理ブロック101_1がリンク管理処理を行う処理ブロックである場合に、処理ブロック101_1は、リンク確立のための処理として、新たに接続された“ONU_A”にIDを付与するために所定のアルゴリズムに従って一連の処理を実行するとともに、その処理段階に応じて必要なイベントデータEI1を出力する。
この場合のイベントデータEI1には、例えば、ONU_AのID、リンク管理処理の状態遷移図を示すステート番号、実行した処理内容を示すイベント内容情報(例えば、未登録のONUへ登録(LLID)の通知を行ったことを示すイベントコードと、そのLLIDの情報等)が含まれる。
また、処理ブロック101_1〜101_nは、ステートマシン11から、イベントデータEO1〜EOnを受信する。処理ブロック101_1〜101_nは、受信したイベントデータEO1〜EOnに従って必要な処理を実行する。なお、イベントデータEO1〜EOnについては、後述する。
ステートマシン11は、処理ブロック101_1〜101_nによって実行される子局(ONU2)毎の各処理の状態を管理するとともに、処理ブロック101_1〜101_nを制御する装置である。ステートマシン11は、ハードウェアベースの装置であり、組み合せ回路や順序回路を含むハードウェアロジック回路で構成され、例えば公知の半導体製造プロセス(例えばCMOS製造プロセス)によって1つまたは複数の半導体基板に形成された半導体集積回路として実現されている。
図4は、実施の形態1に係るステートマシン11の内部構成を示す図である。
図4に示されるように、ステートマシン11は、イベント調停部110とイベント処理部120とを有する。
図4に示されるように、ステートマシン11は、イベント調停部110とイベント処理部120とを有する。
イベント調停部110は、各処理ブロック101_1〜101_nから出力されたイベントデータEI1〜EInを入力し、イベントデータEI1〜EInを所定の優先度に従って一つずつ出力する機能部である。
イベント処理部120は、イベント調停部110から出力された1つのイベントデータEI1〜EInに基づいて、そのイベントデータEI1〜EInによって特定される、ONU2毎の処理ブロック101_1〜101_nによる処理の状態(ステート)を遷移させるとともに、必要に応じて、処理ブロック101_1〜101_nに対してイベントデータEO1〜EOnを出力する機能部である。
以下の説明では、イベントデータEI1〜EInを「入力イベントデータEI1〜EIn」と称し、イベントデータEO1〜EOnを「出力イベントデータEO1〜EOn」と称する。
先ず、イベント調停部110について詳細に説明する。
上述したように、イベント調停部110は、複数の処理ブロック101_1〜101_nから出力された入力イベントデータEI1〜EInを調停して、イベント処理部120へ1つの入力イベントEI1〜EInを出力する。
上述したように、イベント調停部110は、複数の処理ブロック101_1〜101_nから出力された入力イベントデータEI1〜EInを調停して、イベント処理部120へ1つの入力イベントEI1〜EInを出力する。
図5は、イベント調停部110の内部構成を示す図である。
図5に示すように、イベント調停部110は、n個のイベント集約部111_1〜111_nと、入力イベント出力制御部112とを含む。
図5に示すように、イベント調停部110は、n個のイベント集約部111_1〜111_nと、入力イベント出力制御部112とを含む。
イベント集約部111_1〜111_nは、処理ブロック101_1〜101_n毎に対応して設けられている。イベント集約部111_1〜111_nの夫々は、対応する入力元としての各処理ブロック101_1〜101_nから出力された入力イベントEI0〜EInを受信し、蓄積する。イベント集約部111_1〜111_nの夫々は、例えばFIFO(First In, First Out)によって構成され、対応する入力元から入力された入力イベントデータを順次内部の記憶領域(図示せず)に蓄積し、入力された順に入力イベントデータを出力する。
入力イベント出力制御部112は、イベント処理部120から入力イベントデータの出力要求(イベントリクエスト)ReqIが入力されたとき、入力イベントデータの優先度を定めた所定のアルゴリズムに従って、各イベント集約部111_1〜111_nから出力された複数の入力イベントデータEI1〜EInの中から一つのイベントデータEIx(1≦x≦n)を選択し、イベント処理部120へ出力する。
上記所定のアルゴリズムとしては、ラウンドロビン等を例示することができるが、これに限定されるものではない。
次に、イベント処理部120について説明する。
上述したように、イベント処理部120は、入力された入力イベントデータEI1〜EInに基づいて、ONU2毎の処理ブロック101_1〜101_nによる処理の状態を遷移させるとともに、必要に応じて、処理ブロック101_1〜101_nに対して出力イベントデータEO1〜EOnを出力する。
上述したように、イベント処理部120は、入力された入力イベントデータEI1〜EInに基づいて、ONU2毎の処理ブロック101_1〜101_nによる処理の状態を遷移させるとともに、必要に応じて、処理ブロック101_1〜101_nに対して出力イベントデータEO1〜EOnを出力する。
図6は、イベント処理部120の内部構成を示す図である。
図6に示すように、イベント処理部120は、状態アドレス記憶部121、ベースアドレス記憶部122、プログラム記憶部123、アドレス生成部124、シーケンサ125、および出力処理部126を含む。
図6に示すように、イベント処理部120は、状態アドレス記憶部121、ベースアドレス記憶部122、プログラム記憶部123、アドレス生成部124、シーケンサ125、および出力処理部126を含む。
状態アドレス記憶部121、ベースアドレス記憶部122、およびプログラム記憶部123は、例えば書き換え可能な記憶領域を有するフラッシュメモリ等の記憶装置によって実現されており、LSI設計後でもデータの書き換えが可能となっている。
プログラム記憶部123は、各ONU2に対して実行される通信制御処理毎に、その処理の各状態において実行すべきプログラムを記憶する機能部である。
例えば、上述したように、通信制御処理として“リンク管理処理”および“OAM処理”がある場合を考える。この場合、プログラム記憶部123には、“リンク管理処理”の各状態において実行すべきプログラムが、例えば“アドレス1番〜10番”に記憶され、“OAM処理”の各状態において実行すべきプログラムが、例えば“アドレス11番〜20番”に記憶されている。
また、夫々の通信制御処理において実行すべきプログラムは、その通信制御処理の状態毎に、指定されたアドレスに書き込まれている。例えば、通信制御処理の一つである“リンク管理処理”の状態遷移図において“状態A”、“状態B”、および“状態C”の3つの処理状態がある場合を考える。この場合に、上述の例のように、“リンク管理処理”において実行すべきプログラムに割り当てられたアドレス空間が“アドレス1番〜10番”であったとすると、そのアドレス空間のうち、“状態A”において実行すべきプログラムは、“1番〜4番”、“状態B”において実行すべきプログラムは“5番〜7番”、“状態C”において実行すべきプログラムは“8番〜10番”というように、“状態”毎に実行すべきプログラムが書き込まれている。
ベースアドレス記憶部122は、各ONU2に対して実行される通信制御処理毎のプログラムを特定する先頭アドレスを記憶する機能部である。
例えば、リンク管理処理の各状態において実行すべきプログラムがプログラム記憶部123のアドレス1番〜10番に記憶され、OAM処理の各状態において実行すべきプログラムがプログラム記憶部123のアドレス11番〜20番に記憶されている場合を考える。この場合、ベースアドレス記憶部122には、リンク管理処理のベースアドレスとして、プログラム記憶部123の先頭アドレス“1番”が記憶され、OAM処理のベースアドレスとして、プログラム記憶部123の先頭アドレス“11番”が記憶される。
例えば、リンク管理処理の各状態において実行すべきプログラムがプログラム記憶部123のアドレス1番〜10番に記憶され、OAM処理の各状態において実行すべきプログラムがプログラム記憶部123のアドレス11番〜20番に記憶されている場合を考える。この場合、ベースアドレス記憶部122には、リンク管理処理のベースアドレスとして、プログラム記憶部123の先頭アドレス“1番”が記憶され、OAM処理のベースアドレスとして、プログラム記憶部123の先頭アドレス“11番”が記憶される。
状態アドレス記憶部121は、子局毎に、その子局に対して実行されている各通信制御処理の状態(ステート)に対応する状態アドレスを記憶する機能部である。
換言すれば、状態アドレス記憶部121は、各子局に対して実行されている各通信制御処理がその状態遷移図のどの状態(ステート)にあるのかを示す情報を、状態アドレスとしてID毎に記憶している。状態アドレスは、ONU2のIDと、各ONU2に対して実行されている通信制御処理(リンク管理処理、OAM処理、帯域割当処理等)の組み合わせ毎に、状態アドレス記憶部121に記憶されている。
より具体的には、状態アドレスは、プログラム記憶部123に記憶されている各通信制御処理において実行すべきアドレスの通信制御処理毎のベースメモリアドレスとのオフセット値を表している。
例えば、上述の例と同様に、通信制御処理の一つである“リンク管理処理”の状態遷移図において、“状態A”、“状態B”、および“状態C”の3つの状態があり、“状態A”において実行すべきプログラムがプログラム記憶部123の“1番〜4番”に、“状態B”において実行すべきプログラムがプログラム記憶部123の“5番〜7番”に、“状態C”において実行すべきプログラムがプログラム記憶部123の“8番〜10番”に書き込まれている場合を考える。
この場合に、“ONU2_A”に対して実行されているリンク管理処理が“状態B”であったと仮定すると、状態アドレス記憶部121には、ONU2_AのIDとリンク管理処理を示すステート番号とによって特定される状態アドレスとして、“状態B”を示す情報(例えば、アドレス“4”)が記憶される。
例えば、上述の例と同様に、通信制御処理の一つである“リンク管理処理”の状態遷移図において、“状態A”、“状態B”、および“状態C”の3つの状態があり、“状態A”において実行すべきプログラムがプログラム記憶部123の“1番〜4番”に、“状態B”において実行すべきプログラムがプログラム記憶部123の“5番〜7番”に、“状態C”において実行すべきプログラムがプログラム記憶部123の“8番〜10番”に書き込まれている場合を考える。
この場合に、“ONU2_A”に対して実行されているリンク管理処理が“状態B”であったと仮定すると、状態アドレス記憶部121には、ONU2_AのIDとリンク管理処理を示すステート番号とによって特定される状態アドレスとして、“状態B”を示す情報(例えば、アドレス“4”)が記憶される。
また、別の“ONU2_B”に対して実行されているリンク管理処理が“状態C”であったと仮定すると、状態アドレス記憶部121には、ONU2_BのIDとリンク管理処理を示すステート番号とによって特定される状態アドレスとして、“状態C”を示す情報(例えば、アドレス“7”)が記憶される。
アドレス生成部124は、イベント調停部110から出力されたイベントデータEIxに従って状態アドレス記憶部121から読み出された状態アドレスと、イベントデータEIxに従ってベースアドレス記憶部122から読み出された先頭アドレスとに基づいて、プログラム記憶部123に記憶されたプログラムを特定するプログラムアドレスを生成する。
例えば、上述の例と同様に、“ONU2_A”に対して実行されているリンク管理処理が“状態B”であるときに、ONU2_Aのリンク管理処理に関する入力イベントデータEIxがイベント処理部120に入力されたとする。この場合、入力イベントデータEIxに含まれるONU2_AのIDとリンク管理処理の状態遷移図を示すステート番号とによって特定される状態アドレス(“4”)が状態アドレス記憶部121から読み出されるとともに、入力イベントデータEIxに含まれるリンク管理処理の状態遷移図を示すステート番号によって特定される先頭アドレス(“1”)がベースアドレス記憶部122から読み出される。アドレス生成部124は、読み出された状態アドレス(“4”)と先頭アドレス(“1”)との和をプログラムアドレス(“5”)として出力する。このプログラムアドレス(“5”)は、上記例で述べたように、リンク管理処理の“状態B”において実行すべきプログラムの開始アドレスを表している。
シーケンサ125は、アドレス生成部124によって生成されたプログラムアドレスを順次インクリメントして出力し、プログラムアドレスの出力の完了に応じて、イベント調停部110に対して次の入力イベントデータEI1〜ENnの出力を指示する機能部である。
具体的に、シーケンサ125は、プログラム記憶部123に記憶されているプログラムのうち、現在どのプログラムを実行しているかを管理するためのアドレスカウンタ127と、実行すべき残りのプログラム数(ステップ数)を管理するためのダウンカウンタ128と、後述する出力処理部126に対してリセット信号を出力するとともにイベント調停部110に対してイベントリクエストReqIを出力する制御部129とを含む。
ここで、シーケンサ125の動作について説明する。
先ず、イベント処理部120に入力イベントデータEIxが入力されると、上述したように、入力イベントデータEIxに従って、状態アドレス記憶部121から状態アドレスが読み出されるとともに、ベースアドレス記憶部122から先頭アドレスが読み出され、アドレス生成部124が、読み出された状態アドレスおよび先頭アドレスに基づいてプログラムアドレスを生成し、シーケンサ125に出力する。
先ず、イベント処理部120に入力イベントデータEIxが入力されると、上述したように、入力イベントデータEIxに従って、状態アドレス記憶部121から状態アドレスが読み出されるとともに、ベースアドレス記憶部122から先頭アドレスが読み出され、アドレス生成部124が、読み出された状態アドレスおよび先頭アドレスに基づいてプログラムアドレスを生成し、シーケンサ125に出力する。
シーケンサ125は、アドレス生成部124から出力されたプログラムアドレスを初期値としてアドレスカウンタ127に設定する。アドレスカウンタ127は、アドレスカウンタ127に設定された値を、プログラム記憶部123のアドレスとして出力する。これにより、アドレスカウンタ127に設定されたプログラムアドレスで指定されたプログラムがプログラム記憶部123から読み出され、後述する出力処理部126に入力される。このとき、プログラム記憶部123から最初に読み出されたプログラムは、ダウンカウンタ128の初期値(ステップ数)として記憶される。
アドレスカウンタ127は、外部から入力されるクロック信号CLKに応じて、1クロック毎にアドレスカウンタ127の値を順次インクリメントして出力する。これにより、プログラム記憶部123からプログラムが順次読み出され、後段の出力処理部126に入力される。
また、ダウンカウンタ128は、アドレスカウンタ127の値の出力に同期して、ダウンカウンタ128の値をディクリメントする。これにより、プログラム記憶部123からプログラムが読み出される度に、ダウンカウンタ128の値(ステップ数)が減少する。
そして、ダウンカウンタ128の値(ステップ数)が“1”以下、または後述する出力処理部126から次の状態アドレスの書き込み要求が発生した場合には、制御部129が出力処理部126に対してリセット信号をアサートし、イベントリクエストReqIをイベント調停部110へ出力する。
次に、出力処理部126について説明する。
出力処理部126は、シーケンサ125によってプログラム記憶部123から読み出されたプログラムに基づいて、条件比較によるONU2毎の各通信制御処理の状態の遷移、データ演算、および出力イベントデータEO1〜EOnの出力等の各種データ処理を行うプログラム処理部である。
出力処理部126は、シーケンサ125によってプログラム記憶部123から読み出されたプログラムに基づいて、条件比較によるONU2毎の各通信制御処理の状態の遷移、データ演算、および出力イベントデータEO1〜EOnの出力等の各種データ処理を行うプログラム処理部である。
図7は、出力処理部126の内部構成を示す図である。
図7に示されるように、出力処理部126は、デコーダ131、入力レジスタ132、演算部133、出力レジスタ134、比較部135、および出力部136を備える。
図7に示されるように、出力処理部126は、デコーダ131、入力レジスタ132、演算部133、出力レジスタ134、比較部135、および出力部136を備える。
デコーダ131は、プログラム記憶部123から読み出されたプログラム(コマンド)を解釈し、コマンド種別に応じた制御信号を出力する。
ここで、プログラム記憶部123から読み出されたプログラムのコマンド種別としては、レジスタ演算モード、レジスタ転送モード、およびイベント比較モードの少なくとも3つのコマンドモードが含まれる。
入力レジスタ132は、入力イベントデータEIxおよび外部から入力されたデータを記憶するための機能部である。演算部133は、演算を実行する機能部である。出力レジスタ134は、演算部133による演算結果等の出力イベントデータEO1〜EOnとして出力すべきデータを記憶するための機能部である。出力部136は、演算部135による演算結果を含む出力イベントデータEO1〜EOxを上記プログラムによって指定された処理ブロック101_1〜101_nに出力する機能部である。比較部135は、イベント調停部110から出力された入力イベントデータEIxに含まれるイベントの種類を示すイベントコードと、プログラムに含まれる比較対象コードとを比較する機能部である。
ここで、出力処理部126の動作について説明する。
先ず、入力イベントデータEIxがイベント処理部120に入力されると、入力イベントデータEIxに含まれるIDおよびステート番号がイベント処理部120に入力され、入力イベントデータEIxに含まれるイベントコードが出力処理部126の入力レジスタ132に格納される。
先ず、入力イベントデータEIxがイベント処理部120に入力されると、入力イベントデータEIxに含まれるIDおよびステート番号がイベント処理部120に入力され、入力イベントデータEIxに含まれるイベントコードが出力処理部126の入力レジスタ132に格納される。
イベント処理部120は、上述したように、入力されたIDおよびステート番号に基づいてプログラムアドレスを生成し、そのプログラムアドレスに従ってプログラム記憶部123から読み出したプログラムを順次、出力処理部126に入力する。
出力処理部126では、デコーダ131が、イベント処理部120から入力されたプログラムを解釈し、そのプログラムのコマンド種別を確定する。
例えば、入力されたプログラム(コマンド)のコマンド種別がレジスタ演算モードであった場合には、デコーダ131は、演算部133に対して、入力レジスタ132に格納されているデータを用いて、上記コマンドで指定された演算を行うように指示する。ここで、コマンドで指定される演算の種類としては、例えば加算、減算、論理演算、およびビットシフト等を例示することができる。
例えば、入力されたプログラム(コマンド)のコマンド種別がレジスタ演算モードであった場合には、デコーダ131は、演算部133に対して、入力レジスタ132に格納されているデータを用いて、上記コマンドで指定された演算を行うように指示する。ここで、コマンドで指定される演算の種類としては、例えば加算、減算、論理演算、およびビットシフト等を例示することができる。
また、入力されたプログラムのコマンド種別がレジスタ転送モードであった場合には、デコーダ131は、上記プログラムで指定されたIDおよびステート番号を出力レジスタ134に格納するとともに、演算部133に対して演算結果を出力レジスタ134に転送するように指示する。
また、入力されたプログラムのコマンド種別がイベント比較モードであった場合には、デコーダ131は、上記プログラムで指定された(上記プログラムに含まれる)比較対象コードと、入力レジスタ132に格納されているイベントコードとの比較することを比較部135に対して指示する。
比較部135は、比較対象コードとイベントコードとの比較処理を実行し、比較対象コードとイベントコードとが一致した場合に、状態アドレス記憶部121に記憶されている状態アドレスを更新する。具体的に、比較部135は、デコーダ131によって指定された次の状態アドレスの値を出力するとともに、状態アドレス記憶部121に対してライト信号WEを出力する。
また、比較部135は、比較対象コードとイベントコードとが一致したとき、出力レジスタ134に格納されているデータを出力する指示をデコーダ131から受けている場合には、出力レジスタ134に記憶されているデータを出力イベントデータEO1〜EOnとして、デコーダ131から指定された処理ブロック101_1〜101_に出力するように、出力部136に指示する。
ここで、出力イベントデータEO1〜EOnとは、次に実行すべき処理の指示や処理の完了通知等を示すデータである。イベントデータEO1〜EOnには、イベントデータEI1〜EInと同様に、処理対象のONU2を特定するID、実行した(または実行すべき)処理内容を示すイベント内容情報、その処理ブロックによる処理の状態を表す状態遷移図を特定するステート番号等が含まれる。
例えば、ONU2_Aのリンク管理処理の状態が“状態B(状態アドレス=4)”であるときに、ONU2_Aのリンク管理処理に関するイベントデータEIxがイベント処理部120に入力された場合を考える。
この場合、ONU2_Aのリンク管理処理の状態“B”において実行すべきプログラム(プログラムアドレス=5(=先頭アドレス“1”+状態アドレス“4”))がプログラム記憶部123から読み出され、出力処理部126が、そのプログラムを実行し、ONU2_Aのリンク管理処理の状態を更新する。例えば、ONU2_Aのリンク管理処理の状態が“状態B”から“状態C”に遷移する場合には、デコーダ131が入力レジスタ132に格納されているイベントコードと比較イベントコードとの比較処理を比較部135に指示するとともに、“状態C”を示す状態アドレス“7”を比較部135に出力する。比較部135は、入力レジスタ132に格納されているイベントコードと比較イベントコードとが一致する場合には、状態アドレス“7”を出力するとともに、状態アドレス記憶部121に対してライト信号WEを出力する。これにより、状態アドレス記憶部121に記憶されている、ONU2_AのIDとリンク管理処理のステート番号によって特定される状態アドレスが“4”から“7”に書き換わる。これにより、ONU2_Aのリンク管理処理のステートを、次のステートに遷移することができる。
このとき、比較部135は、デコーダ131からの指示に応じて、出力部136に対して出力レジスタ134に記憶されているデータを出力イベントデータEO1〜EOnとして出力させる。
一方、入力レジスタ132に格納されているイベントコードと比較イベントコードとが一致しなかった場合には、比較部135は、状態アドレス記憶部121の状態アドレスを更新せず、且つ出力イベントデータEO1〜EOnの出力も行わない。
以上、実施の形態1に係るステートマシン11によれば、OLT1において制御フレーム処理回路10におけるCPU12とは別に設けたハードウェアベース装置によって各子局に対する各通信制御処理の状態を管理するので、制御フレーム処理回路10におけるCPU12の処理負荷を減らすことができる。これにより、OLT1によって管理される子局(ONU2等)が増えた場合であっても、上記CPUの処理負荷の増大を防ぐことが可能となり、OLTの処理の高速化と低消費電力化が可能となる。
また、実施の形態1に係るステートマシン11はハードウェアベースの構成で実現されているので、CPUで処理する場合に比べて、高速な処理が可能となる。これにより、OLT1によって管理される子局が増えた場合であっても、OLTが所定の時間内に全てのイベントを処理できなくなるリスクを減らすことが可能となる。
また、実施の形態1に係るステートマシン11は、子局毎の各通信制御処理の状態遷移図を、“ID数×状態遷移図数”分の記憶領域を有する1つの記憶装置に記憶するのではなく、状態アドレス記憶部121、ベースアドレス記憶部122、およびプログラム記憶部123の3つの記憶装置において分散して管理しているので、必要最小限のハードウェア構成でステートマシンを実現することが可能となる。
また、実施の形態1に係るステートマシン11では、状態アドレス記憶部121、ベースアドレス記憶部122、およびプログラム記憶部123が書き換え可能な記憶装置によって構成されていることから、LSI設計後であってもハードウェアの規模を変更せずに、記憶領域が許す限りで、子局の数(ID数)や各処理の状態遷移図の内容(プログラム)の変更および追加が可能となる。また、ID数や状態遷移図の内容が変更可能なため、異なる規格のPONシステムのステートマシンであっても、同一のハードウェア構成で実現することができる。これにより、設計コストの削減とOLTの小型化が可能となる。
≪実施の形態2≫
図8は、実施の形態2に係るステートマシン11Aにおける出力処理部の内部構成を示す図である。
同図に示される出力処理部126Aは、子局毎の各処理における状態遷移を、1つのイベントコードの比較結果だけではなく、その他の条件も考慮することができる点において実施の形態1に係るステートマシン11の出力処理部126と相違し、その他の点においては、実施の形態1に係るステートマシン11の出力処理部126と同様である。
図8は、実施の形態2に係るステートマシン11Aにおける出力処理部の内部構成を示す図である。
同図に示される出力処理部126Aは、子局毎の各処理における状態遷移を、1つのイベントコードの比較結果だけではなく、その他の条件も考慮することができる点において実施の形態1に係るステートマシン11の出力処理部126と相違し、その他の点においては、実施の形態1に係るステートマシン11の出力処理部126と同様である。
実施の形態2に係る出力処理部126Aは、図8に示されるように、複数条件の比較結果を蓄積するための論理積レジスタ(以下、「ANDレジスタ」と称する。)137を更に備える。また、プログラム記憶部123に記憶されるプログラム(コマンド)の種別として、上述した3つのモードに加えて、レジスタ比較モードが追加されている。
ANDレジスタ137は、入力された二つのデータの論理積を算出する論理積回路(図示せず)と、その論理積結果を格納する記憶領域(図示せず)とを備えている。
ANDレジスタ137は、比較部135から出力されるANDフラグと、すでに保存してある別のANDフラグとの論理積を上記論理積回路によって算出し、その算出結果を上記記憶領域に記憶されている前の演算結果に上書きする。
ANDレジスタ137は、比較部135から出力されるANDフラグと、すでに保存してある別のANDフラグとの論理積を上記論理積回路によって算出し、その算出結果を上記記憶領域に記憶されている前の演算結果に上書きする。
レジスタ比較モードは、入力レジスタ132のデータとコマンドで指定された比較対象データとの比較を指示するコマンドである。レジスタ比較モードが指定された場合、比較部135は、入力レジスタ132のデータとコマンドで指定された比較対象データとの比較処理を行い、その比較結果が真であった場合にANDフラグの値を“1”として出力し、その比較結果が偽であった場合にANDフラグの値を“0”として出力する。
実施の形態2に係るステートマシンでは、プログラム記憶部123に格納されるプログラムとして、レジスタ演算モード、レジスタ転送モード、イベント比較モード、およびレジスタ比較モードの夫々のコマンド領域に、ANDレジスタ137を使用するか否かを指定する「ANDレジスタ設定」と、ANDレジスタ137の値を参照するか否かを指定する「ANDレジスタ参照」と、ANDレジスタ137の値をリセットするか否かを指定する「ANDレジスタ更新」とを設定する領域を設けておく。
ここで、「ANDレジスタ設定」は、ある比較条件に対して、それ以降のコマンドでも比較すべき条件がある場合にONとし、比較すべき条件がない場合にOFFとする。この場合、比較部135によって比較処理が実行された場合に、その比較処理(“1”または“0”)がANDフラグとしてANDレジスタ137に入力されて論理積が算出される。
「ANDレジスタ参照」は、ANDレジスタ137の出力値(論理積結果)を参照する場合にONとし、参照しない場合にOFFとする。すなわち、「ANDレジスタ設定」をONとした比較処理が複数回実行された場合において、ANDレジスタ137の出力値を参照したとき、その値が“1”ならば、それまでに比較部135で行われた複数回分の比較結果が“真”であったことを表し、その値が“0”ならば、それまでに比較部135で行われた複数回分の比較結果の中に少なくとも一つ“偽”があったことを表す。
「ANDレジスタ更新」は、ANDレジスタ137をリセットする際にONとし、リセットしない場合にOFFとする。すなわち、それまでの条件比較結果をクリアする操作を実現する。
次に、実施の形態2に係るステートマシンにおける出力処理部126Aの動作を説明する。
ここでは、コマンドAとコマンドBが出力処理部126Aに順次入力され、1つ目のコマンドAでは、「ANDレジスタ設定:ON」、「ANDレジスタ参照:OFF」、「ANDレジスタ更新:ON」とプログラムされ、2つ目のコマンドBでは「ANDレジスタ設定:OFF」、「ANDレジスタ参照:ON」、「ANDレジスタ更新:OFF」とプログラムされている場合を考える。
ここでは、コマンドAとコマンドBが出力処理部126Aに順次入力され、1つ目のコマンドAでは、「ANDレジスタ設定:ON」、「ANDレジスタ参照:OFF」、「ANDレジスタ更新:ON」とプログラムされ、2つ目のコマンドBでは「ANDレジスタ設定:OFF」、「ANDレジスタ参照:ON」、「ANDレジスタ更新:OFF」とプログラムされている場合を考える。
この場合において、先ず、1つ目のコマンドAとして“レジスタ比較モード”が指定されると、ANDレジスタ137がリセットされる。同時に、比較部135が入力レジスタ132に格納されている指定されたデータとコマンドで指定された比較対象データとを比較する(条件1の比較処理)。比較部135は、その比較結果が真の場合に、ANDフラグを“1”としてANDレジスタ137へ出力し、その比較結果が偽の場合に、ANDフラグを“0”としてANDレジスタ137へ出力する。ANDレジスタ137は、入力されたANDフラグの値を記憶する。
続いて2つ目のコマンドBとして“レジスタ比較モード”が指定されると、条件1の比較処理と同様に、比較部135が入力レジスタ132に格納されている指定されたデータとコマンドで指定された比較対象データとを比較し(条件2の比較処理)、その比較結果が真の場合に、ANDフラグを“1”としてANDレジスタ137へ出力し、その比較結果が偽の場合に、ANDフラグを“0”としてANDレジスタ137へ出力する。
ANDレジスタ137は、条件1の比較処理で入力されたANDフラグの値と条件2の比較処理で入力されたANDフラグの値の論理積を計算し、計算結果を記憶する。ANDレジスタ137は、その論理積結果を比較部135へと出力する。比較部135ではその結果を判定し、判定結果に応じて次のイベントを出力する。例えば、比較部135は、ANDレジスタ137の論理積結果が真(“1”)であった場合には、条件1と条件2の両方が成立していると判定し、デコーダ131によって指定された状態に遷移させるために、状態アドレスを出力するとともにライト信号WEを出力する。一方、ANDレジスタ137の論理積結果が偽(“0”)であった場合には、条件1と条件2の何れか一方が成立していないと判定し、状態の遷移は行わない。
以上、実施の形態2に係るステートマシンによれば、出力処理部126AにANDレジスタ137を設けたことにより、複数の条件を考慮して、子局毎の各処理の状態を遷移させることが可能となる。また、実施の形態1に係るステートマシン11と同様に、外部から入力レジスタ132に対してデータを設定することができるので、外部からの設定で状態の遷移を行うことが可能となる。
したがって、実施の形態2に係るステートマシンによれば、複数の条件判定結果に従った状態遷移処理を行うことができるので、より柔軟性の高いステートマシンを実現することが可能となる。
したがって、実施の形態2に係るステートマシンによれば、複数の条件判定結果に従った状態遷移処理を行うことができるので、より柔軟性の高いステートマシンを実現することが可能となる。
≪実施の形態3≫
図9は、実施の形態3に係るステートマシンの構成を示す図である。
実施の形態3に係るステートマシンは、子局毎の処理の状態を管理し、当該処理を制御するステートマシンユニットを複数備え、入力イベントの種別に応じてステートマシンユニットを使い分ける点において、実施の形態1に係るステートマシン11と相違し、その他の点においては実施の形態1に係るステートマシン11と同様である。
図9は、実施の形態3に係るステートマシンの構成を示す図である。
実施の形態3に係るステートマシンは、子局毎の処理の状態を管理し、当該処理を制御するステートマシンユニットを複数備え、入力イベントの種別に応じてステートマシンユニットを使い分ける点において、実施の形態1に係るステートマシン11と相違し、その他の点においては実施の形態1に係るステートマシン11と同様である。
本実施の形態に係るステートマシン11Bは、図9に示されるように、上述したイベント調停部110とイベント処理部120とを一組とする複数のステートマシンユニット211_1〜211_m(mは2以上の整数)と、イベント振り分け部210とを備えている。
イベント振り分け部210は、処理ブロック101_1〜101_nから出力された入力イベントデータEI1〜EInを何れか一つのステートマシンユニット211_1〜211_mに出力する機能部である。
図10は、イベント振り分け部210の内部構成を示す図である。
図10に示されるように、イベント振り分け部210は、処理ブロック101_1〜101_n毎に対応した複数の出力先選択回路220_1〜220_nを備えている。換言すれば、ステートマシンとして管理すべき処理毎に出力先選択回路220_1〜220_nが設けられている。
図10に示されるように、イベント振り分け部210は、処理ブロック101_1〜101_n毎に対応した複数の出力先選択回路220_1〜220_nを備えている。換言すれば、ステートマシンとして管理すべき処理毎に出力先選択回路220_1〜220_nが設けられている。
出力先選択回路220_1〜220_nの夫々は同一の構成を有している。ここでは、処理ブロック101_1から出力される入力イベントデータEI1の出力先を決定する出力先選択回路220_1の内部構成について代表して説明する。
出力先選択回路220_1は、選択レジスタ214と、イベントデータ出力部としての選択回路212および論理積回路(以下、単に「AND」と称する。)213_1〜213_mと、を含む。
選択レジスタ214は、IDと処理内容の組合せ毎に、入力イベントデータEI1の出力先のステートマシンユニット211_1〜211_mを指定する出力先情報を記憶するための記憶部である。
例えば、ONU2_Aのリンク管理処理の入力イベントデータの出力先をステートマシンユニット211_2、ONU2_Bのリンク管理処理の入力イベントデータの出力先をステートマシンユニット211_4、というような出力先情報が選択レジスタ214に記憶されている。
ここで、選択レジスタ214は、上記出力先情報が固定されたROM等の記憶装置によって構成されていてもよいし、上記出力先情報が書き換え可能な記憶領域を有するフラッシュメモリ等の記憶装置によって構成されていてもよい。
選択回路212は、入力された入力イベントデータEI1に含まれるIDとステート番号に基づいて、AND213_1〜213_mのうち何れか一つの回路に“1”を入力し、それ以外の回路に“0”を入力する。
例えば、“ONU2_A”の“リンク管理処理”の入力イベントデータの出力先を“ステートマシンユニット211_2”とする出力選択情報が選択レジスタ214に記憶されている場合に、出力選択部220_1に入力された入力イベントデータEI1に含まれるIDとステート番号が夫々、“ONU2_A”を示す値と“リンク管理処理”を示す値であったとき、選択回路212は、ステートマシンユニット211_2に対応するAND213_2に“1”を入力し、それ以外のAND213_1,213_3〜213_mには、“0”を入力する。
AND213_1〜213_mは、ステートマシンユニット211_1〜211_m毎に対応して設けられている。AND213_1〜213_mは、選択回路212から入力された値と、入力イベントデータEI1に含まれるイベントValid信号の値との論理積をValid信号V1〜Vm出力する回路である。
ここで、イベントValid信号は、入力イベントデータEI1が出力されたときに“1”となり、入力イベントデータEI1が出力されていないときに“0”となる信号である。
したがって、AND213_1〜213_mは、イベントValid信号が“1”であるときに、選択回路12から“1”が入力された場合には、Valid信号V1〜Vnを“1”として出力し、選択回路12から“0”が入力された場合には、Valid信号V1〜Vnを“0”として出力する。一方、イベントValid信号が“0”である場合には、選択回路12から入力される値によらず、Valid信号V1〜Vnを“0”として出力する。
このように、出力先選択回路220_1から、入力イベントデータEI1とValid信号V1〜Vnを含む選択結果SO1が出力される。同様に、出力先選択回路220_2〜220_nから選択結果SO2〜SOnが夫々出力される。
各ステートマシンユニット211_1〜211_mは、実施の形態1に係るステートマシン11または実施の形態2に係るステートマシン11Aに夫々相当する。
各ステートマシンユニット211_1〜211_mには、出力先選択回路220_1〜220_nから出力された選択結果SO1〜SOmが夫々入力される。各ステートマシンユニット211_1〜211_mは、入力された選択結果SO1〜SOmの中から、Valid信号V1〜Vnが“1”である入力イベントデータEI1〜EInを取り込んでイベント調停部110に入力する一方、Valid信号V1〜Vnが“0”である入力イベントデータEI1〜EInは取り込まない。これにより、入力イベントに応じてステートマシンユニットを使い分けることが可能となる。
以上、実施の形態3に係るステートマシンによれば、1つのイベント調停部110と1つのイベント処理部120から構成されるステートマシンユニットを複数設け、入力イベントに応じてそれらのステートマシンユニットを並列に動作させることができるので、OLT1が管理する子局の数(ID数)が増加した場合であっても、入力イベントを高速に処理することが可能となる。
また、選択レジスタ214を書き換え可能な記憶装置によって実現することにより、LSIの設計後においても、入力イベントの振り分け方を自由に決めることができるので、より柔軟性の高いステートマシンを実現することが可能となる。
以上、本発明者らによってなされた発明を実施の形態に基づいて具体的に説明したが、本発明はそれに限定されるものではなく、その要旨を逸脱しない範囲において種々変更可能であることは言うまでもない。
例えば、上記実施の形態では、本発明に係る帯域割当装置を、PONシステムに適用する場合を一例として説明したが、親局と複数の子局とから構成され、親局と複数の子局との間を共有の媒体またはリソースを用いて時分割多重により接続する通信システムであれば、PONシステムに限らず適用することができる。例えば、無線LAN等の通信システムに適用することも可能である。
また、上記実施の形態では、入力イベントデータEI1〜EInの入力元と出力イベントデータEO1〜EOnの出力先がともに、処理ブロック101_1〜101_nである場合を例示したが、これに限られず、出力イベントデータEO1〜EOnの出力先は、処理ブロック101_1〜101_n以外の別の回路であってもよい。すなわち、状態遷移図を管理する必要のない他の回路ブロックに対して、出力イベントデータEO1〜EOnを出力してもよい。
100…PONシステム、1…OLT、2…ONU、3…光ファイバ、4…光スプリッタ、5…外部ネットワーク、6…光トランシーバ、7…フレーム再生回路、8…PON制御回路、9…データフレーム処理回路、10…制御フレーム処理回路、11,11A,11B…ステートマシン、12…CPU、EI1〜EIn,EIx…入力イベントデータ、EO1〜EOn…出力イベントデータ、ReqI…イベントリクエスト、101_1〜101_n…処理ブロック,110…イベント調停部、120…イベント処理部、111_1〜111_n…イベント集約部、112…入力イベント出力制御部、121…状態アドレス記憶部、122…ベースアドレス記憶部、123…プログラム記憶部、124…アドレス生成部、125…シーケンサ、126…出力処理部、127…アドレスカウンタ、128…ダウンカウンタ、129…制御部、126,126A…出力処理部、131…デコーダ、132…入力レジスタ、133…演算部、134…出力レジスタ、135…比較部、136…出力部、137…ANDレジスタ、210…イベント振り分け部、211_1〜211_m…ステートマシンユニット、SO1〜SOn…選択結果、212…選択回路、213_1〜213_m…AND、214…選択レジスタ、220_1〜220_n…出力先選択回路。
Claims (7)
- 親局と複数の子局とから構成された通信システムの前記親局に設けられ、前記親局において前記子局による通信を実現するための処理を夫々の前記子局に対して実行する処理ブロックを制御するステートマシンであって、
前記子局において発生したイベントに関するイベントデータを所定の優先度に従って一つずつ出力するイベント調停部と、
前記子局毎に、その子局に対して実行されている前記処理の状態に対応する状態アドレスを記憶する状態アドレス記憶部と、
前記処理毎に、その処理の状態において実行すべきプログラムを記憶するプログラム記憶部と、
前記処理毎のプログラムを特定する先頭アドレスを記憶するベースアドレス記憶部と、
前記イベント調停部から出力された前記イベントデータに従って前記状態アドレス記憶部から読み出された前記状態アドレスと、前記イベント調停部から出力された前記イベントデータに従って前記ベースアドレス記憶部から読み出された前記先頭アドレスとに基づいて前記プログラムを特定するプログラムアドレスを生成するアドレス生成部と、
前記アドレス生成部によって生成されたプログラムアドレスを順次インクリメントして出力し、前記プログラムアドレスの出力の完了に応じて、前記イベント調停部に対して次の前記イベントデータの出力を指示するシーケンサと、
前記シーケンサから出力された前記プログラムアドレスに従って前記プログラム記憶部から読み出された前記プログラムに基づいて、前記処理ブロックを制御するとともに、前記状態アドレスを更新して前記子局毎の前記処理の状態を遷移させるプログラム処理部と、を備えることを特徴とするステートマシン。 - 請求項1に記載のステートマシンにおいて、
前記プログラム処理部は、
前記プログラムに従って演算を実行する演算部と、
前記演算部による演算結果を含む出力イベントデータを前記処理ブロックに出力する出力部と、を含む
ことを特徴とするステートマシン。 - 請求項1または2に記載のステートマシンにおいて、
前記プログラム処理部は、
前記イベント調停部から出力されたイベントデータに含まれる前記イベントの種類を示すイベントコードと前記プログラムで指定された比較対象コードとを比較し、前記イベントコードと前記比較対象コードが一致した場合に、前記状態アドレス記憶部に記憶されている前記状態アドレスを更新し、前記イベントコードと前記比較対象コードが一致しない場合に、前記状態アドレス記憶部に記憶されている前記状態アドレスを更新しない比較部を含む
ことを特徴とするステートマシン。 - 請求項3に記載のステートマシンにおいて、
前記プログラム処理部は、
前記比較部による複数の比較結果の論理積を記憶する論理積レジスタを更に有し、
前記比較部は、前記論理積レジスタの値に基づいて、前記状態アドレスを更新するか否かを決定する
ことを特徴とするステートマシン。 - 請求項1乃至4の何れか一項に記載のステートマシンにおいて、
前記イベント調停部、前記状態アドレス記憶部、前記プログラム記憶部、前記ベースアドレス記憶部、前記アドレス生成部、前記シーケンサ、および前記プログラム処理部を一組とするステートマシンユニットを複数組有し、
前記処理ブロックから出力された前記イベントデータを何れか一つの前記ステートマシンユニットに出力するイベントデータ振り分け部を更に備える
ことを特徴とするステートマシン。 - 請求項5に記載のステートマシンにおいて、
前記イベントデータ振り分け部は、
前記イベントデータの出力先の前記ステートマシンユニットを指定する出力先情報を記憶するための書き換え可能な記憶領域を有する選択レジスタと、
前記処理ブロックから出力された前記イベントデータを、前記出力先で指定された前記ステートマシンユニットへ出力するイベントデータ出力部とを含む
ことを特徴とするステートマシン。 - 請求項1乃至6の何れか一項に記載のステートマシンにおいて、
前記状態アドレス記憶部、前記プログラム記憶部、および前記ベースアドレス記憶部は、書き換え可能な記憶領域を夫々有する
ことを特徴とするステートマシン。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2016131453A JP2018007014A (ja) | 2016-07-01 | 2016-07-01 | ステートマシン |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2016131453A JP2018007014A (ja) | 2016-07-01 | 2016-07-01 | ステートマシン |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2018007014A true JP2018007014A (ja) | 2018-01-11 |
Family
ID=60946472
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2016131453A Pending JP2018007014A (ja) | 2016-07-01 | 2016-07-01 | ステートマシン |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2018007014A (ja) |
-
2016
- 2016-07-01 JP JP2016131453A patent/JP2018007014A/ja active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP2453613B1 (en) | Method and apparatus for allocating and prioritizing data transmission | |
US11388089B2 (en) | Downstream packet sending and forwarding method and apparatus | |
JP2006262129A (ja) | Ponシステムにおける論理リンク確立方法及び光終端装置 | |
US11088934B2 (en) | Dynamic discovery of service nodes in a network | |
US9332567B1 (en) | System for recovering unresponsive common public radio interface (CPRI) nodes | |
KR20130102133A (ko) | 데이터 통신 시스템 및 데이터 통신 장치 | |
CN111988345B (zh) | 一种信息同步的方法及设备 | |
JP2015169987A (ja) | 経路データ生成装置、経路データ生成方法及び経路データ生成プログラム | |
CN110324265B (zh) | 流量分发方法、路由方法、设备及网络系统 | |
CN105681229B (zh) | 扩展端口编号的方法及交换机 | |
JP2018007014A (ja) | ステートマシン | |
JP6581310B2 (ja) | リンク制御回路 | |
WO2023104054A1 (zh) | 网络处理模块、数据处理方法、网络节点和存储介质 | |
US20190013926A1 (en) | Time synchronous slave device and communication control method | |
US11294335B2 (en) | Method, device and computer-readable medium of managing a clock circuit | |
KR101576518B1 (ko) | 소프트웨어 정의 네트워크에서 오픈플로우 프로토콜을 확장하여 활용하는 방법 및 장치 | |
JP6585546B2 (ja) | 帯域割当装置 | |
Hatta et al. | Programmable Hardware Accelerator for Finite-State-Machine Processing in Flexible Access Network Systems | |
US20160197817A1 (en) | Network system, control device, control method, and non-transitory computer-readable medium | |
US10063420B2 (en) | Network control apparatus, network system, network control method, and program | |
JP2018125671A (ja) | 通信装置およびデータ伝送プログラム | |
JP4932024B2 (ja) | マルチポイント制御処理回路および方法 | |
WO2019003322A1 (ja) | 管理装置、通信システム、管理方法及び管理プログラム | |
US11388056B2 (en) | Information management system and information management method | |
WO2024002275A1 (zh) | 主干光路保护方法和系统、光矩阵设备、电子设备、介质 |