(57)【要約】【課題】複数の子局の状態を管理する親局において、ＣＰＵの処理負荷の増大を抑える。【解決手段】本発明に係るステートマシン１１は、複数のイベントデータＥＩ１〜ＥＩｎを所定の優先度に従って一つずつ出力するイベント調停部１１０と、子局毎にその子局に対して実行されている処理の状態に対応する状態アドレスを記憶する状態アドレス記憶部１２１と、処理毎に、その処理の各状態において実行すべきプログラムを記憶するプログラム記憶部１２３と、処理毎のプログラムを特定する先頭アドレスを記憶するベースアドレス記憶部１２２と、状態アドレスと先頭アドレスとに基づいて生成されたプログラムアドレスを順次インクリメントして出力するシーケンサ１２５と、プログラムアドレスによって読み出したプログラムに基づいて処理ブロックを制御するとともに、状態アドレスを更新して子局毎の処理状態を遷移させるプログラム処理部１２６とを備える。【選択図】図５
2018007014.tif 000002
【特許請求の範囲】
【請求項１】
親局と複数の子局とから構成された通信システムの前記親局に設けられ、前記親局において前記子局による通信を実現するための処理を夫々の前記子局に対して実行する処理ブロックを制御するステートマシンであって、
前記子局において発生したイベントに関するイベントデータを所定の優先度に従って一つずつ出力するイベント調停部と、
前記子局毎に、その子局に対して実行されている前記処理の状態に対応する状態アドレスを記憶する状態アドレス記憶部と、
前記処理毎に、その処理の状態において実行すべきプログラムを記憶するプログラム記憶部と、
前記処理毎のプログラムを特定する先頭アドレスを記憶するベースアドレス記憶部と、
前記イベント調停部から出力された前記イベントデータに従って前記状態アドレス記憶部から読み出された前記状態アドレスと、前記イベント調停部から出力された前記イベントデータに従って前記ベースアドレス記憶部から読み出された前記先頭アドレスとに基づいて前記プログラムを特定するプログラムアドレスを生成するアドレス生成部と、
前記アドレス生成部によって生成されたプログラムアドレスを順次インクリメントして出力し、前記プログラムアドレスの出力の完了に応じて、前記イベント調停部に対して次の前記イベントデータの出力を指示するシーケンサと、
前記シーケンサから出力された前記プログラムアドレスに従って前記プログラム記憶部から読み出された前記プログラムに基づいて、前記処理ブロックを制御するとともに、前記状態アドレスを更新して前記子局毎の前記処理の状態を遷移させるプログラム処理部と、を備えることを特徴とするステートマシン。
【請求項２】
請求項１に記載のステートマシンにおいて、
前記プログラム処理部は、
前記プログラムに従って演算を実行する演算部と、
前記演算部による演算結果を含む出力イベントデータを前記処理ブロックに出力する出力部と、を含む
ことを特徴とするステートマシン。
【請求項３】
請求項１または２に記載のステートマシンにおいて、
前記プログラム処理部は、
前記イベント調停部から出力されたイベントデータに含まれる前記イベントの種類を示すイベントコードと前記プログラムで指定された比較対象コードとを比較し、前記イベントコードと前記比較対象コードが一致した場合に、前記状態アドレス記憶部に記憶されている前記状態アドレスを更新し、前記イベントコードと前記比較対象コードが一致しない場合に、前記状態アドレス記憶部に記憶されている前記状態アドレスを更新しない比較部を含む
ことを特徴とするステートマシン。
【請求項４】
請求項３に記載のステートマシンにおいて、
前記プログラム処理部は、
前記比較部による複数の比較結果の論理積を記憶する論理積レジスタを更に有し、
前記比較部は、前記論理積レジスタの値に基づいて、前記状態アドレスを更新するか否かを決定する
ことを特徴とするステートマシン。
【請求項５】
請求項１乃至４の何れか一項に記載のステートマシンにおいて、
前記イベント調停部、前記状態アドレス記憶部、前記プログラム記憶部、前記ベースアドレス記憶部、前記アドレス生成部、前記シーケンサ、および前記プログラム処理部を一組とするステートマシンユニットを複数組有し、
前記処理ブロックから出力された前記イベントデータを何れか一つの前記ステートマシンユニットに出力するイベントデータ振り分け部を更に備える
ことを特徴とするステートマシン。
【請求項６】
請求項５に記載のステートマシンにおいて、
前記イベントデータ振り分け部は、
前記イベントデータの出力先の前記ステートマシンユニットを指定する出力先情報を記憶するための書き換え可能な記憶領域を有する選択レジスタと、
前記処理ブロックから出力された前記イベントデータを、前記出力先で指定された前記ステートマシンユニットへ出力するイベントデータ出力部とを含む
ことを特徴とするステートマシン。
【請求項７】
請求項１乃至６の何れか一項に記載のステートマシンにおいて、
前記状態アドレス記憶部、前記プログラム記憶部、および前記ベースアドレス記憶部は、書き換え可能な記憶領域を夫々有する
ことを特徴とするステートマシン。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、親局と複数の子局とから構成された通信システムの親局に設けられ、親局において子局による通信を実現するための処理を夫々の子局に対して実行する処理ブロックを制御するステートマシンに関する。
【背景技術】
【０００２】
親局と複数の子局とから構成され、親局と複数の子局との間を共有の媒体またはリソースを用いて時分割多重により接続する通信システムとして、無線ＬＡＮやＰＯＮ（光通信網：Ｐａｓｓｉｖｅ  Ｏｐｔｉｃａｌ  Ｎｅｔｗｏｒｋ）等が知られている。
【０００３】
ＰＯＮシステムとは、局舎に設置されるＯＬＴ（局側装置：Ｏｐｔｉｃａｌ  Ｌｉｎｅ  Ｔｅｒｍｉｎａｌ）を親局とし、各ユーザ宅に設置されるＯＮＵ（加入者側装置：Ｏｐｔｉｃａｌ  Ｎｅｔｗｏｒｋ  Ｕｎｉｔ）を子局として、ＯＬＴと各ＯＮＵとの間を光通信網で接続した光伝送システムである。
【０００４】
図１１は、従来のＰＯＮシステムの構成を示す図である。
図１１において、ＰＯＮシステム９００は、外部ネットワーク５と接続されたＯＬＴ９と、複数のＯＮＵ２と、光ファイバ３および光スプリッタ４とから構成されており、ＰＯＮシステム９００を介して、各ＯＮＵ２と外部ネットワーク５との間の通信が可能となる。
【０００５】
ＰＯＮシステム９００において、ＯＬＴ９からＯＮＵ２への下り方向通信では、ＯＬＴ９がＯＮＵ２毎に割り当てられた識別番号（Ｌｏｇｉｃａｌ  Ｌｉｎｋ  ＩＤ、以下、単に「ＩＤ」と称する。）を付加した下りフレームを時分割多重により送信し、その下りフレームが光スプリッタ４で分岐されて全てのＯＮＵ２に転送される。各ＯＮＵ２は、転送された下りフレームに付加されたＩＤが自らのＩＤと一致する場合にのみ、その下りフレームを抽出して受信する。
【０００６】
また、ＯＮＵ２からＯＬＴ９への上り方向通信では、各ＯＮＵ２は自らのＩＤを付加した上りフレームを、ＯＬＴ９から割り当てられた帯域（送信開始時刻とその送信開始時刻からの送信継続時間）において送信し、各ＯＮＵ２からの上りフレームが光スプリッタ４で合流してＯＬＴ９に転送される。ＯＬＴ９は、転送された上りフレームに付加されたＩＤに基づいて、どのＯＮＵ２から送信された上りフレームであるかを判別して受信する。
【０００７】
以上のように、ＰＯＮシステムでは、上り方向通信において、複数のＯＮＵ２から送信される信号が光スプリッタ４で束ねられてＯＬＴ９に転送されるので、各ＯＮＵ２から送信された信号が衝突しないように、ＯＬＴ９において適切な通信帯域の割当を行う必要がある。
【０００８】
一般なＰＯＮシステムでは、一つのＯＬＴに接続するＯＮＵの数を増やすことにより、通信システムのコストを抑えることができる。そのため、近年、ＰＯＮシステムの発展に伴い、一つのＯＬＴに接続されるＯＮＵが増加し、各ＯＮＵに割り当てられるＩＤの最大数が増加傾向にある。
【０００９】
ところで、ＯＬＴに新しいＯＮＵを接続する場合、ＯＬＴは、未接続のＯＮＵを検索するための所定の手順（例えば、ＩＥＥＥ８０２．３に規定されるＥ−ＰＯＮではＤｉｓｃｏｖｅｒｙシーケンス）に従って、ＯＮＵへのＩＤ割当、ＯＬＴ−ＯＮＵ間の距離の測定等のリンク管理処理を実行する。また、ＯＬＴは、一度リンク確立したＯＮＵの死活確認とリンクの維持を行う。例えば、ＯＬＴは、ＯＮＵとの間で定期的に制御信号の送受信を行い、その制御信号の送受信が途絶えた場合には、ＯＮＵのリンク維持が不要と判断し、リンクを切断する操作を行う。
【００１０】
このようなＯＬＴと各ＯＮＵとの間のリンクの確立、リンクの維持、およびリンクの切断等のリンク管理処理等のＯＮＵによる通信を実現するための処理を適切な手順で実行するために、ＯＬＴやＯＮＵの内部に設けられた半導体集積回路（ＬＳＩ）は、監視対象のＩＤが現在どのような状態（ステート）であるかを管理するためのステートマシンと、ステートマシンからの信号に基づいて各種の上記処理を実行する複数の処理ブロック回路を備えている。
【００１１】
ここで、子局による通信を実現するための処理（以下、「通信制御処理」とも称する場合がある。）としては、上述したリンク管理処理の他に、IEEE802.3ahで規定されるPONの運用・保守・管理を行う為のOAM（Operation Administration and Maintenance）処理や、各ＯＮＵに帯域割当を行う帯域割当処理等がある。
【００１２】
ステートマシンは、通信制御処理を実現する為の複数の処理ブロックから、イベント（入力イベント）を受信し、そのイベントの内容に応じた処理や監視（管理）対象機器の状態を遷移させる。入力されたイベントの内容によっては、他の処理ブロックに対してイベント（出力イベントデータ）を発行する場合もある。
【００１３】
ここで、入力イベントの種類としては、例えば、フレーム受信完了、フレーム送信完了、複数種類のタイマ満了等がある。また、出力イベントの種類としては、例えば、フレームの送信指示、フレームの生成指示、各種タイマの起動指示等がある。
【００１４】
一般に、ＯＬＴは、ＰＯＮシステムに接続されている（または、接続可能な）全てのＯＮＵの状態を一元的に管理する必要があることから、接続されているＯＮＵの個数、すなわち管理するＩＤに対応する数のステートマシンを備えている。
【００１５】
従来、ＯＬＴに内蔵されるステートマシンは、ＬＳＩ設計後の手順変更への対応や規格に明記されていない部分への対応の容易性を考慮し、ソフトウェアで実装されることが一般的であった。
例えば、特許文献１には、ステートマシンをプログラム処理によって実現するＣＰＵに対して、上記他の処理ブロック（ハードウェア）で発生する種々のイベントに基づいて生成した割込み信号を入力することにより、イベントを通知する技術が開示されている。特許文献１に開示されたＰＯＮシステムは、割込み要因の優先度やＩＤの優先度に応じた順番で、各割込み信号の出力調停を行う調停回路と、調停回路で出力された割込み信号を順番に格納し、ＣＰＵへ出力する割込み表示レジスタとを設けることにより、ＣＰＵにおける割込み信号の処理順序を決定する手順を不要とし、ＣＰＵの処理効率の向上を図っている。
【先行技術文献】
【特許文献】
【００１６】
【特許文献１】特開２０１１−１５５４４３号公報
【発明の概要】
【発明が解決しようとする課題】
【００１７】
しかしながら、特許文献１に開示された技術では、ＯＬＴの制御フレーム処理回路におけるＣＰＵが、制御フレーム処理回路としての各種処理の統括的な制御に加えて、ステートマシンとしての処理も行っているため、ＩＤ（ＯＮＵ）の数が増えた場合に、ＣＰＵの処理負荷が大きくなる。ＣＰＵの処理負荷が大きくなると、ＯＬＴが所定の時間内に全てのイベントを処理できず、ＯＮＵとＯＬＴとの間でのステートに齟齬が生じ、リンクの確立やリンクの維持ができないおそれがある。
【００１８】
また、特許文献１に開示された回路では、割込み信号を生成する専用の調停回路を用いており、機能が固定されているため、対応可能なＩＤの数とプロトコルが固定されてしまう。そのため、異なる標準で規定されているＰＯＮシステムのプロトコル毎に、別々の調停回路を最大ＩＤ数分用意することが必要となり、回路規模の増大を招く。
【００１９】
本発明は、上記の問題に鑑みてなされたものであり、本発明の目的は、複数の子局の状態を管理する親局において、子局の数が増えた場合であっても、親局側のＣＰＵの処理負荷の増大を抑えることにある。
【課題を解決するための手段】
【００２０】
本発明に係るステートマシンは、親局（１）と複数の子局（２）とから構成された通信システム（１００）の親局に設けられ、親局において子局による通信を実現するための処理を夫々の子局に対して実行する処理ブロック（１０１＿１〜１０１＿ｎ）を制御するステートマシンであって、子局において発生したイベントに関するイベントデータ（ＥＩ１〜ＥＩｎ）を所定の優先度に従って一つずつ出力するイベント調停部（１１０）と、子局毎に、その子局に対して実行されている処理の状態に対応する状態アドレスを記憶する状態アドレス記憶部（１２１）と、処理毎に、その処理の状態において実行すべきプログラムを記憶するプログラム記憶部（１２３）と、処理毎のプログラムを特定する先頭アドレスを記憶するベースアドレス記憶部（１２２）と、イベント調停部から出力されたイベントデータに従って状態アドレス記憶部から読み出された状態アドレスと、イベント調停部から出力されたイベントデータに従ってベースアドレス記憶部から読み出された先頭アドレスとに基づいてプログラムを特定するプログラムアドレスを生成するアドレス生成部（１２４）と、アドレス生成部によって生成されたプログラムアドレスを順次インクリメントして出力し、プログラムアドレスの出力の完了に応じて、イベント調停部に対して次のイベントデータの出力を指示するシーケンサ（１２５）と、シーケンサから出力されたプログラムアドレスに従ってプログラム記憶部から読み出されたプログラムに基づいて、処理ブロックを制御するとともに、状態アドレスを更新して子局毎の処理の状態を遷移させるプログラム処理部（１２６）と、を備えることを特徴とする。
【００２１】
上記ステートマシンにおいて、プログラム処理部は、プログラムに従って演算を実行する演算部（１３３）と、演算部による演算結果を含む出力イベントデータを処理ブロックに出力する出力部（１３４，１３６）とを含んでもよい。
【００２２】
上記ステートマシンにおいて、プログラム処理部は、イベント調停部から出力されたイベントデータに含まれるイベントの種類を示すイベントコードとプログラムで指定された比較対象コードとを比較し、イベントコードと比較対象コードが一致した場合に、状態アドレス記憶部に記憶されている状態アドレスを更新し、イベントコードと比較対象コードが一致しない場合に、状態アドレス記憶部に記憶されている状態アドレスを更新しない比較部（１３５）を含んでもよい。
【００２３】
上記ステートマシンにおいて、プログラム処理部は、比較部による複数の比較結果の論理積を記憶する論理積レジスタ（１３７）を更に有し、比較部は、論理積レジスタの値に基づいて、状態アドレスを更新するか否かを決定してもよい。
【００２４】
上記ステートマシンにおいて、イベント調停部、状態アドレス記憶部、プログラム記憶部、ベースアドレス記憶部、アドレス生成部、シーケンサ、およびプログラム処理部を一組とするステートマシンユニット（２１１＿１〜２１１＿ｍ）を複数組有し、処理ブロックから出力されたイベントデータを何れか一つのステートマシンユニットに出力するイベントデータ振り分け部（２１０）を更に備えてもよい。
【００２５】
上記ステートマシンにおいて、イベントデータ振り分け部は、イベントデータの出力先のステートマシンユニットを指定する出力先情報を記憶するための書き換え可能な記憶領域を有する選択レジスタ（２１４）と、処理ブロックから出力されたイベントデータを、出力先で指定されたステートマシンユニットへ出力するイベントデータ出力部（２１２、２１３＿１〜２１３＿ｍ）とを含んでもよい。
【００２６】
上記ステートマシンにおいて、状態アドレス記憶部、プログラム記憶部、およびベースアドレス記憶部は、書き換え可能な記憶領域を夫々有していてもよい。
【００２７】
なお、上記説明では、一例として、発明の構成要素に対応する図面上の構成要素を、括弧を付した参照符号および図番によって表している。
【発明の効果】
【００２８】
本発明によれば、複数の子局の状態を管理する親局において、子局の数が増えた場合であっても、親局側のＣＰＵの処理負荷の増大を抑えることが可能となる。
【図面の簡単な説明】
【００２９】
【図１】実施の形態１に係るステートマシンを備えた通信システムの構成を示す図である。
【図２】ＰＯＮ制御回路８の構成を示す図である。
【図３】制御フレーム処理回路１０の構成を示す図である。
【図４】実施の形態１に係るステートマシンの内部構成を示す図である。
【図５】イベント調停部の内部構成を示す図である。
【図６】イベント処理部の内部構成を示す図である。
【図７】出力処理部の内部構成を示す図である。
【図８】実施の形態２に係るステートマシンにおける出力処理部の内部構成を示す図である。
【図９】実施の形態３に係るステートマシンの構成を示す図である。
【図１０】イベント振り分け部の内部構成を示す図である。
【図１１】従来のＰＯＮシステムの構成を示す図である。
【発明を実施するための形態】
【００３０】
以下、本発明の実施の形態について図を参照して説明する。なお、以下の説明において、各実施の形態において共通する構成要素には同一の参照符号を付し、繰り返しの説明を省略する。
【００３１】
≪実施の形態１≫
図１は、実施の形態１に係るステートマシンを備えた通信システムの構成を示す図である。
同図に示される通信システム１００は、例えば、ＦＴＴＨ（Ｆｉｂｅｒ  Ｔｏ  Ｔｈｅ  Ｈｏｍｅ）で利用されるＰＯＮシステムであり、光通信網（ＰＯＮ区間）を介してＯＬＴ（親局）１に接続されたｎ（ｎは２以上の整数）個のＯＮＵ（子局）２を、ＯＬＴ１により外部ネットワークと中継接続することにより、各ＯＮＵ２と外部ネットワーク５との間でフレームを相互に転送する。なお、以下の説明では、通信システム１００をＰＯＮシステム１００とも表記する。
【００３２】
ＰＯＮシステム１００としては、ＩＥＥＥ  ８０２．３ａｈで標準化されているＧＥ−ＰＯＮやＩＥＥＥ８０２．３ａｖで標準化されている１０Ｇ−ＥＰＯＮなどのＰＯＮシステムを例示することができる。
【００３３】
子局としてのＯＮＵ２は、ユーザの宅内に設置される光回線終端装置である。各ＯＮＵ２は、光ファイバ（光通信路）３を介して１つの光スプリッタに共通接続されており、更にこの光スプリッタ４は、１つの光ファイバ（光通信路）３を介して、１つのＯＬＴ１と接続されている。
【００３４】
親局としてのＯＬＴ１は、光接続サービスを提供する局側に設置される光回線終端装置であり、ＰＯＮに接続されている子局による通信を管理する。
【００３５】
なお、本実施の形態では、説明便宜上、ＯＬＴ１の管理下にある子局（ＩＤが付与される子局）が全てＯＮＵ２であるものとして説明するが、ＯＬＴ１の管理下にある子局としては、上述したＯＮＵ２の他に、ＯＬＴ１との間で通信が可能にされ、その通信がＯＬＴによって制御されるＯＮＵ以外の機器が含まれていてもよい。
【００３６】
図１に示すように、OLT１は、光トランシーバ６と、フレーム再生回路７と、PON制御回路８とから構成されている。光トランシーバ６は、下りフレームの電気−光変換と上りフレームの光−電気変換を行う。光トランシーバ６の入出力部分のことをPONポートと称する。図１には、一例として、１PONポートより構成されるOLTが図示されている。
【００３７】
フレーム再生回路７は、FECや暗号など、電気信号からフレームを再生するための処理を行う。
【００３８】
図２は、ＰＯＮ制御回路８の構成を示す図である。
図２に示されるように、PON制御回路８は、ユーザー（ユーザ端末）と外部ネットワーク間のデータフレームを処理するためのデータフレーム処理回路９と、ONU−OLT間の制御フレームを処理する為の制御フレーム処理回路１０から構成されている。
【００３９】
データフレーム処理回路９は、バッファリング処理やブリッジ処理等を行う。制御フレーム処理回路１０は、各ONUとのリンク確立・管理の為の処理や上りフレーム送信タイミング制御のための帯域割当を行い、下り制御フレームとして各ONUに送信する。すなわち、データフレームは上位・下位へとそれぞれ転送されるのに対し、制御フレームは制御フレーム処理回路１０内で折り返して各ONUへと送信される。
【００４０】
図３は、制御フレーム処理回路１０の内部構成を示す図である。
図３に示されるように、ＯＬＴ１の制御フレーム処理回路１０は、各種の通信制御処理を夫々の子局に対して実行するための複数の処理ブロック１０１＿１〜１０１＿ｎ（ｎは２以上の整数）と、ＣＰＵ１２と、ステートマシン１１とを有している。
【００４１】
ここで、図３に示される処理ブロック１０１＿１〜１０１＿ｎ（ｎは２以上の整数）は、上述した通信制御処理を実現するための処理ブロックである。
【００４２】
ＣＰＵ１２は、制御フレーム処理回路１０の統括的な制御を行う機能部である。例えば、ＣＰＵ１２は、各処理ブロック１０１＿１〜１０１＿ｎに対する初期設定や、上位レイヤー（アプリケーションレイヤー）での各種データ処理等を行う。また、ＣＰＵ１２は、外部からのデータ入力に応じて、後述するステートマシン１１のプログラムの更新等を行う。
【００４３】
処理ブロック１０１＿１〜１０１＿ｎの夫々は、各ＯＮＵ２に対して必要な処理を実行するとともに、イベントデータＥＩ１〜ＥＩｎを出力する。イベントデータＥＩ１〜ＥＩｎは、後述するステートマシン１１に夫々入力される。
【００４４】
ここで、イベントデータＥＩ１〜ＥＩｎとは、子局に対して特定の処理を行ったこと（イベント）を示すデータである。イベントデータＥＩ１〜ＥＩｎには、処理対象のＯＮＵ２を特定するＩＤ、実行した処理の内容を示すイベント内容情報、その処理ブロックによる処理の状態を表す状態遷移図を特定するステート番号等が含まれる。
【００４５】
ここで、上記イベント内容情報には、実行した処理の識別情報としてのイベントコードと、後述する演算部１３３によって演算すべきデータ等が含まれる。
【００４６】
また、上記状態遷移図とは、処理ブロック１０１＿１〜１０１＿ｎによって実行される一連の処理における処理段階（状態，ステート）と、状態間の遷移条件を定めたものであり、ステートマシン１１では、上述したリンク管理処理、ＯＡＭ処理、帯域割当処理等の通信制御処理毎に識別情報が付与され、その識別情報により、状態遷移図を管理している。
【００４７】
以下、各状態遷移図に付与される識別情報を「ステート番号」と称する。すなわち、ステート番号は、状態遷移図の種類を示している。換言すれば、ステート番号は、各ＯＮＵ２に対してＯＬＴ１が実行する通信制御処理の種類（例えば、リンク管理処理、ＯＡＭ処理、帯域割当処理等）を表している。
【００４８】
例えば、処理ブロック１０１＿１がリンク管理処理を行う処理ブロックである場合に、処理ブロック１０１＿１は、リンク確立のための処理として、新たに接続された“ＯＮＵ＿Ａ”にＩＤを付与するために所定のアルゴリズムに従って一連の処理を実行するとともに、その処理段階に応じて必要なイベントデータＥＩ１を出力する。
【００４９】
この場合のイベントデータＥＩ１には、例えば、ＯＮＵ＿ＡのＩＤ、リンク管理処理の状態遷移図を示すステート番号、実行した処理内容を示すイベント内容情報（例えば、未登録のＯＮＵへ登録（ＬＬＩＤ）の通知を行ったことを示すイベントコードと、そのＬＬＩＤの情報等）が含まれる。
【００５０】
また、処理ブロック１０１＿１〜１０１＿ｎは、ステートマシン１１から、イベントデータＥＯ１〜ＥＯｎを受信する。処理ブロック１０１＿１〜１０１＿ｎは、受信したイベントデータＥＯ１〜ＥＯｎに従って必要な処理を実行する。なお、イベントデータＥＯ１〜ＥＯｎについては、後述する。
【００５１】
ステートマシン１１は、処理ブロック１０１＿１〜１０１＿ｎによって実行される子局（ＯＮＵ２）毎の各処理の状態を管理するとともに、処理ブロック１０１＿１〜１０１＿ｎを制御する装置である。ステートマシン１１は、ハードウェアベースの装置であり、組み合せ回路や順序回路を含むハードウェアロジック回路で構成され、例えば公知の半導体製造プロセス（例えばＣＭＯＳ製造プロセス）によって１つまたは複数の半導体基板に形成された半導体集積回路として実現されている。
【００５２】
図４は、実施の形態１に係るステートマシン１１の内部構成を示す図である。
図４に示されるように、ステートマシン１１は、イベント調停部１１０とイベント処理部１２０とを有する。
【００５３】
イベント調停部１１０は、各処理ブロック１０１＿１〜１０１＿ｎから出力されたイベントデータＥＩ１〜ＥＩｎを入力し、イベントデータＥＩ１〜ＥＩｎを所定の優先度に従って一つずつ出力する機能部である。
【００５４】
イベント処理部１２０は、イベント調停部１１０から出力された１つのイベントデータＥＩ１〜ＥＩｎに基づいて、そのイベントデータＥＩ１〜ＥＩｎによって特定される、ＯＮＵ２毎の処理ブロック１０１＿１〜１０１＿ｎによる処理の状態（ステート）を遷移させるとともに、必要に応じて、処理ブロック１０１＿１〜１０１＿ｎに対してイベントデータＥＯ１〜ＥＯｎを出力する機能部である。
【００５５】
以下の説明では、イベントデータＥＩ１〜ＥＩｎを「入力イベントデータＥＩ１〜ＥＩｎ」と称し、イベントデータＥＯ１〜ＥＯｎを「出力イベントデータＥＯ１〜ＥＯｎ」と称する。
【００５６】
先ず、イベント調停部１１０について詳細に説明する。
上述したように、イベント調停部１１０は、複数の処理ブロック１０１＿１〜１０１＿ｎから出力された入力イベントデータＥＩ１〜ＥＩｎを調停して、イベント処理部１２０へ１つの入力イベントＥＩ１〜ＥＩｎを出力する。
【００５７】
図５は、イベント調停部１１０の内部構成を示す図である。
図５に示すように、イベント調停部１１０は、ｎ個のイベント集約部１１１＿１〜１１１＿ｎと、入力イベント出力制御部１１２とを含む。
【００５８】
イベント集約部１１１＿１〜１１１＿ｎは、処理ブロック１０１＿１〜１０１＿ｎ毎に対応して設けられている。イベント集約部１１１＿１〜１１１＿ｎの夫々は、対応する入力元としての各処理ブロック１０１＿１〜１０１＿ｎから出力された入力イベントＥＩ０〜ＥＩｎを受信し、蓄積する。イベント集約部１１１＿１〜１１１＿ｎの夫々は、例えばＦＩＦＯ（Ｆｉｒｓｔ  Ｉｎ，  Ｆｉｒｓｔ  Ｏｕｔ）によって構成され、対応する入力元から入力された入力イベントデータを順次内部の記憶領域（図示せず）に蓄積し、入力された順に入力イベントデータを出力する。
【００５９】
入力イベント出力制御部１１２は、イベント処理部１２０から入力イベントデータの出力要求（イベントリクエスト）ＲｅｑＩが入力されたとき、入力イベントデータの優先度を定めた所定のアルゴリズムに従って、各イベント集約部１１１＿１〜１１１＿ｎから出力された複数の入力イベントデータＥＩ１〜ＥＩｎの中から一つのイベントデータＥＩｘ（１≦ｘ≦ｎ）を選択し、イベント処理部１２０へ出力する。
【００６０】
上記所定のアルゴリズムとしては、ラウンドロビン等を例示することができるが、これに限定されるものではない。
【００６１】
次に、イベント処理部１２０について説明する。
上述したように、イベント処理部１２０は、入力された入力イベントデータＥＩ１〜ＥＩｎに基づいて、ＯＮＵ２毎の処理ブロック１０１＿１〜１０１＿ｎによる処理の状態を遷移させるとともに、必要に応じて、処理ブロック１０１＿１〜１０１＿ｎに対して出力イベントデータＥＯ１〜ＥＯｎを出力する。
【００６２】
図６は、イベント処理部１２０の内部構成を示す図である。
図６に示すように、イベント処理部１２０は、状態アドレス記憶部１２１、ベースアドレス記憶部１２２、プログラム記憶部１２３、アドレス生成部１２４、シーケンサ１２５、および出力処理部１２６を含む。
【００６３】
状態アドレス記憶部１２１、ベースアドレス記憶部１２２、およびプログラム記憶部１２３は、例えば書き換え可能な記憶領域を有するフラッシュメモリ等の記憶装置によって実現されており、ＬＳＩ設計後でもデータの書き換えが可能となっている。
【００６４】
プログラム記憶部１２３は、各ＯＮＵ２に対して実行される通信制御処理毎に、その処理の各状態において実行すべきプログラムを記憶する機能部である。
【００６５】
例えば、上述したように、通信制御処理として“リンク管理処理”および“ＯＡＭ処理”がある場合を考える。この場合、プログラム記憶部１２３には、“リンク管理処理”の各状態において実行すべきプログラムが、例えば“アドレス１番〜１０番”に記憶され、“ＯＡＭ処理”の各状態において実行すべきプログラムが、例えば“アドレス１１番〜２０番”に記憶されている。
【００６６】
また、夫々の通信制御処理において実行すべきプログラムは、その通信制御処理の状態毎に、指定されたアドレスに書き込まれている。例えば、通信制御処理の一つである“リンク管理処理”の状態遷移図において“状態Ａ”、“状態Ｂ”、および“状態Ｃ”の３つの処理状態がある場合を考える。この場合に、上述の例のように、“リンク管理処理”において実行すべきプログラムに割り当てられたアドレス空間が“アドレス１番〜１０番”であったとすると、そのアドレス空間のうち、“状態Ａ”において実行すべきプログラムは、“１番〜４番”、“状態Ｂ”において実行すべきプログラムは“５番〜７番”、“状態Ｃ”において実行すべきプログラムは“８番〜１０番”というように、“状態”毎に実行すべきプログラムが書き込まれている。
【００６７】
ベースアドレス記憶部１２２は、各ＯＮＵ２に対して実行される通信制御処理毎のプログラムを特定する先頭アドレスを記憶する機能部である。
例えば、リンク管理処理の各状態において実行すべきプログラムがプログラム記憶部１２３のアドレス１番〜１０番に記憶され、ＯＡＭ処理の各状態において実行すべきプログラムがプログラム記憶部１２３のアドレス１１番〜２０番に記憶されている場合を考える。この場合、ベースアドレス記憶部１２２には、リンク管理処理のベースアドレスとして、プログラム記憶部１２３の先頭アドレス“１番”が記憶され、ＯＡＭ処理のベースアドレスとして、プログラム記憶部１２３の先頭アドレス“１１番”が記憶される。
【００６８】
状態アドレス記憶部１２１は、子局毎に、その子局に対して実行されている各通信制御処理の状態（ステート）に対応する状態アドレスを記憶する機能部である。
【００６９】
換言すれば、状態アドレス記憶部１２１は、各子局に対して実行されている各通信制御処理がその状態遷移図のどの状態（ステート）にあるのかを示す情報を、状態アドレスとしてＩＤ毎に記憶している。状態アドレスは、ＯＮＵ２のＩＤと、各ＯＮＵ２に対して実行されている通信制御処理（リンク管理処理、ＯＡＭ処理、帯域割当処理等）の組み合わせ毎に、状態アドレス記憶部１２１に記憶されている。
【００７０】
より具体的には、状態アドレスは、プログラム記憶部１２３に記憶されている各通信制御処理において実行すべきアドレスの通信制御処理毎のベースメモリアドレスとのオフセット値を表している。
例えば、上述の例と同様に、通信制御処理の一つである“リンク管理処理”の状態遷移図において、“状態Ａ”、“状態Ｂ”、および“状態Ｃ”の３つの状態があり、“状態Ａ”において実行すべきプログラムがプログラム記憶部１２３の“１番〜４番”に、“状態Ｂ”において実行すべきプログラムがプログラム記憶部１２３の“５番〜７番”に、“状態Ｃ”において実行すべきプログラムがプログラム記憶部１２３の“８番〜１０番”に書き込まれている場合を考える。
この場合に、“ＯＮＵ２＿Ａ”に対して実行されているリンク管理処理が“状態Ｂ”であったと仮定すると、状態アドレス記憶部１２１には、ＯＮＵ２＿ＡのＩＤとリンク管理処理を示すステート番号とによって特定される状態アドレスとして、“状態Ｂ”を示す情報（例えば、アドレス“４”）が記憶される。
【００７１】
また、別の“ＯＮＵ２＿Ｂ”に対して実行されているリンク管理処理が“状態Ｃ”であったと仮定すると、状態アドレス記憶部１２１には、ＯＮＵ２＿ＢのＩＤとリンク管理処理を示すステート番号とによって特定される状態アドレスとして、“状態Ｃ”を示す情報（例えば、アドレス“７”）が記憶される。
【００７２】
アドレス生成部１２４は、イベント調停部１１０から出力されたイベントデータＥＩｘに従って状態アドレス記憶部１２１から読み出された状態アドレスと、イベントデータＥＩｘに従ってベースアドレス記憶部１２２から読み出された先頭アドレスとに基づいて、プログラム記憶部１２３に記憶されたプログラムを特定するプログラムアドレスを生成する。
【００７３】
例えば、上述の例と同様に、“ＯＮＵ２＿Ａ”に対して実行されているリンク管理処理が“状態Ｂ”であるときに、ＯＮＵ２＿Ａのリンク管理処理に関する入力イベントデータＥＩｘがイベント処理部１２０に入力されたとする。この場合、入力イベントデータＥＩｘに含まれるＯＮＵ２＿ＡのＩＤとリンク管理処理の状態遷移図を示すステート番号とによって特定される状態アドレス（“４”）が状態アドレス記憶部１２１から読み出されるとともに、入力イベントデータＥＩｘに含まれるリンク管理処理の状態遷移図を示すステート番号によって特定される先頭アドレス（“１”）がベースアドレス記憶部１２２から読み出される。アドレス生成部１２４は、読み出された状態アドレス（“４”）と先頭アドレス（“１”）との和をプログラムアドレス（“５”）として出力する。このプログラムアドレス（“５”）は、上記例で述べたように、リンク管理処理の“状態Ｂ”において実行すべきプログラムの開始アドレスを表している。
【００７４】
シーケンサ１２５は、アドレス生成部１２４によって生成されたプログラムアドレスを順次インクリメントして出力し、プログラムアドレスの出力の完了に応じて、イベント調停部１１０に対して次の入力イベントデータＥＩ１〜ＥＮｎの出力を指示する機能部である。
【００７５】
具体的に、シーケンサ１２５は、プログラム記憶部１２３に記憶されているプログラムのうち、現在どのプログラムを実行しているかを管理するためのアドレスカウンタ１２７と、実行すべき残りのプログラム数（ステップ数）を管理するためのダウンカウンタ１２８と、後述する出力処理部１２６に対してリセット信号を出力するとともにイベント調停部１１０に対してイベントリクエストＲｅｑＩを出力する制御部１２９とを含む。
【００７６】
ここで、シーケンサ１２５の動作について説明する。
先ず、イベント処理部１２０に入力イベントデータＥＩｘが入力されると、上述したように、入力イベントデータＥＩｘに従って、状態アドレス記憶部１２１から状態アドレスが読み出されるとともに、ベースアドレス記憶部１２２から先頭アドレスが読み出され、アドレス生成部１２４が、読み出された状態アドレスおよび先頭アドレスに基づいてプログラムアドレスを生成し、シーケンサ１２５に出力する。
【００７７】
シーケンサ１２５は、アドレス生成部１２４から出力されたプログラムアドレスを初期値としてアドレスカウンタ１２７に設定する。アドレスカウンタ１２７は、アドレスカウンタ１２７に設定された値を、プログラム記憶部１２３のアドレスとして出力する。これにより、アドレスカウンタ１２７に設定されたプログラムアドレスで指定されたプログラムがプログラム記憶部１２３から読み出され、後述する出力処理部１２６に入力される。このとき、プログラム記憶部１２３から最初に読み出されたプログラムは、ダウンカウンタ１２８の初期値（ステップ数）として記憶される。
【００７８】
アドレスカウンタ１２７は、外部から入力されるクロック信号ＣＬＫに応じて、１クロック毎にアドレスカウンタ１２７の値を順次インクリメントして出力する。これにより、プログラム記憶部１２３からプログラムが順次読み出され、後段の出力処理部１２６に入力される。
【００７９】
また、ダウンカウンタ１２８は、アドレスカウンタ１２７の値の出力に同期して、ダウンカウンタ１２８の値をディクリメントする。これにより、プログラム記憶部１２３からプログラムが読み出される度に、ダウンカウンタ１２８の値（ステップ数）が減少する。
【００８０】
そして、ダウンカウンタ１２８の値（ステップ数）が“１”以下、または後述する出力処理部１２６から次の状態アドレスの書き込み要求が発生した場合には、制御部１２９が出力処理部１２６に対してリセット信号をアサートし、イベントリクエストＲｅｑＩをイベント調停部１１０へ出力する。
【００８１】
次に、出力処理部１２６について説明する。
出力処理部１２６は、シーケンサ１２５によってプログラム記憶部１２３から読み出されたプログラムに基づいて、条件比較によるＯＮＵ２毎の各通信制御処理の状態の遷移、データ演算、および出力イベントデータＥＯ１〜ＥＯｎの出力等の各種データ処理を行うプログラム処理部である。
【００８２】
図７は、出力処理部１２６の内部構成を示す図である。
図７に示されるように、出力処理部１２６は、デコーダ１３１、入力レジスタ１３２、演算部１３３、出力レジスタ１３４、比較部１３５、および出力部１３６を備える。
【００８３】
デコーダ１３１は、プログラム記憶部１２３から読み出されたプログラム（コマンド）を解釈し、コマンド種別に応じた制御信号を出力する。
【００８４】
ここで、プログラム記憶部１２３から読み出されたプログラムのコマンド種別としては、レジスタ演算モード、レジスタ転送モード、およびイベント比較モードの少なくとも３つのコマンドモードが含まれる。
【００８５】
入力レジスタ１３２は、入力イベントデータＥＩｘおよび外部から入力されたデータを記憶するための機能部である。演算部１３３は、演算を実行する機能部である。出力レジスタ１３４は、演算部１３３による演算結果等の出力イベントデータＥＯ１〜ＥＯｎとして出力すべきデータを記憶するための機能部である。出力部１３６は、演算部１３５による演算結果を含む出力イベントデータＥＯ１〜ＥＯｘを上記プログラムによって指定された処理ブロック１０１＿１〜１０１＿ｎに出力する機能部である。比較部１３５は、イベント調停部１１０から出力された入力イベントデータＥＩｘに含まれるイベントの種類を示すイベントコードと、プログラムに含まれる比較対象コードとを比較する機能部である。
【００８６】
ここで、出力処理部１２６の動作について説明する。
先ず、入力イベントデータＥＩｘがイベント処理部１２０に入力されると、入力イベントデータＥＩｘに含まれるＩＤおよびステート番号がイベント処理部１２０に入力され、入力イベントデータＥＩｘに含まれるイベントコードが出力処理部１２６の入力レジスタ１３２に格納される。
【００８７】
イベント処理部１２０は、上述したように、入力されたＩＤおよびステート番号に基づいてプログラムアドレスを生成し、そのプログラムアドレスに従ってプログラム記憶部１２３から読み出したプログラムを順次、出力処理部１２６に入力する。
【００８８】
出力処理部１２６では、デコーダ１３１が、イベント処理部１２０から入力されたプログラムを解釈し、そのプログラムのコマンド種別を確定する。
例えば、入力されたプログラム（コマンド）のコマンド種別がレジスタ演算モードであった場合には、デコーダ１３１は、演算部１３３に対して、入力レジスタ１３２に格納されているデータを用いて、上記コマンドで指定された演算を行うように指示する。ここで、コマンドで指定される演算の種類としては、例えば加算、減算、論理演算、およびビットシフト等を例示することができる。
【００８９】
また、入力されたプログラムのコマンド種別がレジスタ転送モードであった場合には、デコーダ１３１は、上記プログラムで指定されたＩＤおよびステート番号を出力レジスタ１３４に格納するとともに、演算部１３３に対して演算結果を出力レジスタ１３４に転送するように指示する。
【００９０】
また、入力されたプログラムのコマンド種別がイベント比較モードであった場合には、デコーダ１３１は、上記プログラムで指定された（上記プログラムに含まれる）比較対象コードと、入力レジスタ１３２に格納されているイベントコードとの比較することを比較部１３５に対して指示する。
【００９１】
比較部１３５は、比較対象コードとイベントコードとの比較処理を実行し、比較対象コードとイベントコードとが一致した場合に、状態アドレス記憶部１２１に記憶されている状態アドレスを更新する。具体的に、比較部１３５は、デコーダ１３１によって指定された次の状態アドレスの値を出力するとともに、状態アドレス記憶部１２１に対してライト信号ＷＥを出力する。
【００９２】
また、比較部１３５は、比較対象コードとイベントコードとが一致したとき、出力レジスタ１３４に格納されているデータを出力する指示をデコーダ１３１から受けている場合には、出力レジスタ１３４に記憶されているデータを出力イベントデータＥＯ１〜ＥＯｎとして、デコーダ１３１から指定された処理ブロック１０１＿１〜１０１＿に出力するように、出力部１３６に指示する。
【００９３】
ここで、出力イベントデータＥＯ１〜ＥＯｎとは、次に実行すべき処理の指示や処理の完了通知等を示すデータである。イベントデータＥＯ１〜ＥＯｎには、イベントデータＥＩ１〜ＥＩｎと同様に、処理対象のＯＮＵ２を特定するＩＤ、実行した（または実行すべき）処理内容を示すイベント内容情報、その処理ブロックによる処理の状態を表す状態遷移図を特定するステート番号等が含まれる。
【００９４】
例えば、ＯＮＵ２＿Ａのリンク管理処理の状態が“状態Ｂ（状態アドレス＝４）”であるときに、ＯＮＵ２＿Ａのリンク管理処理に関するイベントデータＥＩｘがイベント処理部１２０に入力された場合を考える。
【００９５】
この場合、ＯＮＵ２＿Ａのリンク管理処理の状態“Ｂ”において実行すべきプログラム（プログラムアドレス＝５（＝先頭アドレス“１”＋状態アドレス“４”））がプログラム記憶部１２３から読み出され、出力処理部１２６が、そのプログラムを実行し、ＯＮＵ２＿Ａのリンク管理処理の状態を更新する。例えば、ＯＮＵ２＿Ａのリンク管理処理の状態が“状態Ｂ”から“状態Ｃ”に遷移する場合には、デコーダ１３１が入力レジスタ１３２に格納されているイベントコードと比較イベントコードとの比較処理を比較部１３５に指示するとともに、“状態Ｃ”を示す状態アドレス“７”を比較部１３５に出力する。比較部１３５は、入力レジスタ１３２に格納されているイベントコードと比較イベントコードとが一致する場合には、状態アドレス“７”を出力するとともに、状態アドレス記憶部１２１に対してライト信号ＷＥを出力する。これにより、状態アドレス記憶部１２１に記憶されている、ＯＮＵ２＿ＡのＩＤとリンク管理処理のステート番号によって特定される状態アドレスが“４”から“７”に書き換わる。これにより、ＯＮＵ２＿Ａのリンク管理処理のステートを、次のステートに遷移することができる。
【００９６】
このとき、比較部１３５は、デコーダ１３１からの指示に応じて、出力部１３６に対して出力レジスタ１３４に記憶されているデータを出力イベントデータＥＯ１〜ＥＯｎとして出力させる。
【００９７】
一方、入力レジスタ１３２に格納されているイベントコードと比較イベントコードとが一致しなかった場合には、比較部１３５は、状態アドレス記憶部１２１の状態アドレスを更新せず、且つ出力イベントデータＥＯ１〜ＥＯｎの出力も行わない。
【００９８】
以上、実施の形態１に係るステートマシン１１によれば、ＯＬＴ１において制御フレーム処理回路１０におけるＣＰＵ１２とは別に設けたハードウェアベース装置によって各子局に対する各通信制御処理の状態を管理するので、制御フレーム処理回路１０におけるＣＰＵ１２の処理負荷を減らすことができる。これにより、ＯＬＴ１によって管理される子局（ＯＮＵ２等）が増えた場合であっても、上記ＣＰＵの処理負荷の増大を防ぐことが可能となり、ＯＬＴの処理の高速化と低消費電力化が可能となる。
【００９９】
また、実施の形態１に係るステートマシン１１はハードウェアベースの構成で実現されているので、ＣＰＵで処理する場合に比べて、高速な処理が可能となる。これにより、ＯＬＴ１によって管理される子局が増えた場合であっても、ＯＬＴが所定の時間内に全てのイベントを処理できなくなるリスクを減らすことが可能となる。
【０１００】
また、実施の形態１に係るステートマシン１１は、子局毎の各通信制御処理の状態遷移図を、“ＩＤ数×状態遷移図数”分の記憶領域を有する１つの記憶装置に記憶するのではなく、状態アドレス記憶部１２１、ベースアドレス記憶部１２２、およびプログラム記憶部１２３の３つの記憶装置において分散して管理しているので、必要最小限のハードウェア構成でステートマシンを実現することが可能となる。
【０１０１】
また、実施の形態１に係るステートマシン１１では、状態アドレス記憶部１２１、ベースアドレス記憶部１２２、およびプログラム記憶部１２３が書き換え可能な記憶装置によって構成されていることから、ＬＳＩ設計後であってもハードウェアの規模を変更せずに、記憶領域が許す限りで、子局の数（ＩＤ数）や各処理の状態遷移図の内容（プログラム）の変更および追加が可能となる。また、ＩＤ数や状態遷移図の内容が変更可能なため、異なる規格のＰＯＮシステムのステートマシンであっても、同一のハードウェア構成で実現することができる。これにより、設計コストの削減とＯＬＴの小型化が可能となる。
【０１０２】
≪実施の形態２≫
図８は、実施の形態２に係るステートマシン１１Ａにおける出力処理部の内部構成を示す図である。
同図に示される出力処理部１２６Ａは、子局毎の各処理における状態遷移を、１つのイベントコードの比較結果だけではなく、その他の条件も考慮することができる点において実施の形態１に係るステートマシン１１の出力処理部１２６と相違し、その他の点においては、実施の形態１に係るステートマシン１１の出力処理部１２６と同様である。
【０１０３】
実施の形態２に係る出力処理部１２６Ａは、図８に示されるように、複数条件の比較結果を蓄積するための論理積レジスタ（以下、「ＡＮＤレジスタ」と称する。）１３７を更に備える。また、プログラム記憶部１２３に記憶されるプログラム（コマンド）の種別として、上述した３つのモードに加えて、レジスタ比較モードが追加されている。
【０１０４】
ＡＮＤレジスタ１３７は、入力された二つのデータの論理積を算出する論理積回路（図示せず）と、その論理積結果を格納する記憶領域（図示せず）とを備えている。
ＡＮＤレジスタ１３７は、比較部１３５から出力されるＡＮＤフラグと、すでに保存してある別のＡＮＤフラグとの論理積を上記論理積回路によって算出し、その算出結果を上記記憶領域に記憶されている前の演算結果に上書きする。
【０１０５】
レジスタ比較モードは、入力レジスタ１３２のデータとコマンドで指定された比較対象データとの比較を指示するコマンドである。レジスタ比較モードが指定された場合、比較部１３５は、入力レジスタ１３２のデータとコマンドで指定された比較対象データとの比較処理を行い、その比較結果が真であった場合にＡＮＤフラグの値を“１”として出力し、その比較結果が偽であった場合にＡＮＤフラグの値を“０”として出力する。
【０１０６】
実施の形態２に係るステートマシンでは、プログラム記憶部１２３に格納されるプログラムとして、レジスタ演算モード、レジスタ転送モード、イベント比較モード、およびレジスタ比較モードの夫々のコマンド領域に、ＡＮＤレジスタ１３７を使用するか否かを指定する「ＡＮＤレジスタ設定」と、ＡＮＤレジスタ１３７の値を参照するか否かを指定する「ＡＮＤレジスタ参照」と、ＡＮＤレジスタ１３７の値をリセットするか否かを指定する「ＡＮＤレジスタ更新」とを設定する領域を設けておく。
【０１０７】
ここで、「ＡＮＤレジスタ設定」は、ある比較条件に対して、それ以降のコマンドでも比較すべき条件がある場合にＯＮとし、比較すべき条件がない場合にＯＦＦとする。この場合、比較部１３５によって比較処理が実行された場合に、その比較処理（“１”または“０”）がＡＮＤフラグとしてＡＮＤレジスタ１３７に入力されて論理積が算出される。
【０１０８】
「ＡＮＤレジスタ参照」は、ＡＮＤレジスタ１３７の出力値（論理積結果）を参照する場合にＯＮとし、参照しない場合にＯＦＦとする。すなわち、「ＡＮＤレジスタ設定」をＯＮとした比較処理が複数回実行された場合において、ＡＮＤレジスタ１３７の出力値を参照したとき、その値が“１”ならば、それまでに比較部１３５で行われた複数回分の比較結果が“真”であったことを表し、その値が“０”ならば、それまでに比較部１３５で行われた複数回分の比較結果の中に少なくとも一つ“偽”があったことを表す。
【０１０９】
「ＡＮＤレジスタ更新」は、ＡＮＤレジスタ１３７をリセットする際にＯＮとし、リセットしない場合にＯＦＦとする。すなわち、それまでの条件比較結果をクリアする操作を実現する。
【０１１０】
次に、実施の形態２に係るステートマシンにおける出力処理部１２６Ａの動作を説明する。
ここでは、コマンドＡとコマンドＢが出力処理部１２６Ａに順次入力され、１つ目のコマンドＡでは、「ＡＮＤレジスタ設定：ＯＮ」、「ＡＮＤレジスタ参照：ＯＦＦ」、「ＡＮＤレジスタ更新：ＯＮ」とプログラムされ、２つ目のコマンドＢでは「ＡＮＤレジスタ設定：ＯＦＦ」、「ＡＮＤレジスタ参照：ＯＮ」、「ＡＮＤレジスタ更新：ＯＦＦ」とプログラムされている場合を考える。
【０１１１】
この場合において、先ず、１つ目のコマンドＡとして“レジスタ比較モード”が指定されると、ＡＮＤレジスタ１３７がリセットされる。同時に、比較部１３５が入力レジスタ１３２に格納されている指定されたデータとコマンドで指定された比較対象データとを比較する（条件１の比較処理）。比較部１３５は、その比較結果が真の場合に、ＡＮＤフラグを“１”としてＡＮＤレジスタ１３７へ出力し、その比較結果が偽の場合に、ＡＮＤフラグを“０”としてＡＮＤレジスタ１３７へ出力する。ＡＮＤレジスタ１３７は、入力されたＡＮＤフラグの値を記憶する。
【０１１２】
続いて２つ目のコマンドＢとして“レジスタ比較モード”が指定されると、条件１の比較処理と同様に、比較部１３５が入力レジスタ１３２に格納されている指定されたデータとコマンドで指定された比較対象データとを比較し（条件２の比較処理）、その比較結果が真の場合に、ＡＮＤフラグを“１”としてＡＮＤレジスタ１３７へ出力し、その比較結果が偽の場合に、ＡＮＤフラグを“０”としてＡＮＤレジスタ１３７へ出力する。
【０１１３】
ＡＮＤレジスタ１３７は、条件１の比較処理で入力されたＡＮＤフラグの値と条件２の比較処理で入力されたＡＮＤフラグの値の論理積を計算し、計算結果を記憶する。ＡＮＤレジスタ１３７は、その論理積結果を比較部１３５へと出力する。比較部１３５ではその結果を判定し、判定結果に応じて次のイベントを出力する。例えば、比較部１３５は、ＡＮＤレジスタ１３７の論理積結果が真（“１”）であった場合には、条件１と条件２の両方が成立していると判定し、デコーダ１３１によって指定された状態に遷移させるために、状態アドレスを出力するとともにライト信号ＷＥを出力する。一方、ＡＮＤレジスタ１３７の論理積結果が偽（“０”）であった場合には、条件１と条件２の何れか一方が成立していないと判定し、状態の遷移は行わない。
【０１１４】
以上、実施の形態２に係るステートマシンによれば、出力処理部１２６ＡにＡＮＤレジスタ１３７を設けたことにより、複数の条件を考慮して、子局毎の各処理の状態を遷移させることが可能となる。また、実施の形態１に係るステートマシン１１と同様に、外部から入力レジスタ１３２に対してデータを設定することができるので、外部からの設定で状態の遷移を行うことが可能となる。
したがって、実施の形態２に係るステートマシンによれば、複数の条件判定結果に従った状態遷移処理を行うことができるので、より柔軟性の高いステートマシンを実現することが可能となる。
【０１１５】
≪実施の形態３≫
図９は、実施の形態３に係るステートマシンの構成を示す図である。
実施の形態３に係るステートマシンは、子局毎の処理の状態を管理し、当該処理を制御するステートマシンユニットを複数備え、入力イベントの種別に応じてステートマシンユニットを使い分ける点において、実施の形態１に係るステートマシン１１と相違し、その他の点においては実施の形態１に係るステートマシン１１と同様である。
【０１１６】
本実施の形態に係るステートマシン１１Ｂは、図９に示されるように、上述したイベント調停部１１０とイベント処理部１２０とを一組とする複数のステートマシンユニット２１１＿１〜２１１＿ｍ（ｍは２以上の整数）と、イベント振り分け部２１０とを備えている。
【０１１７】
イベント振り分け部２１０は、処理ブロック１０１＿１〜１０１＿ｎから出力された入力イベントデータＥＩ１〜ＥＩｎを何れか一つのステートマシンユニット２１１＿１〜２１１＿ｍに出力する機能部である。
【０１１８】
図１０は、イベント振り分け部２１０の内部構成を示す図である。
図１０に示されるように、イベント振り分け部２１０は、処理ブロック１０１＿１〜１０１＿ｎ毎に対応した複数の出力先選択回路２２０＿１〜２２０＿ｎを備えている。換言すれば、ステートマシンとして管理すべき処理毎に出力先選択回路２２０＿１〜２２０＿ｎが設けられている。
【０１１９】
出力先選択回路２２０＿１〜２２０＿ｎの夫々は同一の構成を有している。ここでは、処理ブロック１０１＿１から出力される入力イベントデータＥＩ１の出力先を決定する出力先選択回路２２０＿１の内部構成について代表して説明する。
【０１２０】
出力先選択回路２２０＿１は、選択レジスタ２１４と、イベントデータ出力部としての選択回路２１２および論理積回路（以下、単に「ＡＮＤ」と称する。）２１３＿１〜２１３＿ｍと、を含む。
【０１２１】
選択レジスタ２１４は、ＩＤと処理内容の組合せ毎に、入力イベントデータＥＩ１の出力先のステートマシンユニット２１１＿１〜２１１＿ｍを指定する出力先情報を記憶するための記憶部である。
【０１２２】
例えば、ＯＮＵ２＿Ａのリンク管理処理の入力イベントデータの出力先をステートマシンユニット２１１＿２、ＯＮＵ２＿Ｂのリンク管理処理の入力イベントデータの出力先をステートマシンユニット２１１＿４、というような出力先情報が選択レジスタ２１４に記憶されている。
【０１２３】
ここで、選択レジスタ２１４は、上記出力先情報が固定されたＲＯＭ等の記憶装置によって構成されていてもよいし、上記出力先情報が書き換え可能な記憶領域を有するフラッシュメモリ等の記憶装置によって構成されていてもよい。
【０１２４】
選択回路２１２は、入力された入力イベントデータＥＩ１に含まれるＩＤとステート番号に基づいて、ＡＮＤ２１３＿１〜２１３＿ｍのうち何れか一つの回路に“１”を入力し、それ以外の回路に“０”を入力する。
【０１２５】
例えば、“ＯＮＵ２＿Ａ”の“リンク管理処理”の入力イベントデータの出力先を“ステートマシンユニット２１１＿２”とする出力選択情報が選択レジスタ２１４に記憶されている場合に、出力選択部２２０＿１に入力された入力イベントデータＥＩ１に含まれるＩＤとステート番号が夫々、“ＯＮＵ２＿Ａ”を示す値と“リンク管理処理”を示す値であったとき、選択回路２１２は、ステートマシンユニット２１１＿２に対応するＡＮＤ２１３＿２に“１”を入力し、それ以外のＡＮＤ２１３＿１，２１３＿３〜２１３＿ｍには、“０”を入力する。
【０１２６】
ＡＮＤ２１３＿１〜２１３＿ｍは、ステートマシンユニット２１１＿１〜２１１＿ｍ毎に対応して設けられている。ＡＮＤ２１３＿１〜２１３＿ｍは、選択回路２１２から入力された値と、入力イベントデータＥＩ１に含まれるイベントＶａｌｉｄ信号の値との論理積をＶａｌｉｄ信号Ｖ１〜Ｖｍ出力する回路である。
【０１２７】
ここで、イベントＶａｌｉｄ信号は、入力イベントデータＥＩ１が出力されたときに“１”となり、入力イベントデータＥＩ１が出力されていないときに“０”となる信号である。
【０１２８】
したがって、ＡＮＤ２１３＿１〜２１３＿ｍは、イベントＶａｌｉｄ信号が“１”であるときに、選択回路１２から“１”が入力された場合には、Ｖａｌｉｄ信号Ｖ１〜Ｖｎを“１”として出力し、選択回路１２から“０”が入力された場合には、Ｖａｌｉｄ信号Ｖ１〜Ｖｎを“０”として出力する。一方、イベントＶａｌｉｄ信号が“０”である場合には、選択回路１２から入力される値によらず、Ｖａｌｉｄ信号Ｖ１〜Ｖｎを“０”として出力する。
【０１２９】
このように、出力先選択回路２２０＿１から、入力イベントデータＥＩ１とＶａｌｉｄ信号Ｖ１〜Ｖｎを含む選択結果ＳＯ１が出力される。同様に、出力先選択回路２２０＿２〜２２０＿ｎから選択結果ＳＯ２〜ＳＯｎが夫々出力される。
【０１３０】
各ステートマシンユニット２１１＿１〜２１１＿ｍは、実施の形態１に係るステートマシン１１または実施の形態２に係るステートマシン１１Ａに夫々相当する。
【０１３１】
各ステートマシンユニット２１１＿１〜２１１＿ｍには、出力先選択回路２２０＿１〜２２０＿ｎから出力された選択結果ＳＯ１〜ＳＯｍが夫々入力される。各ステートマシンユニット２１１＿１〜２１１＿ｍは、入力された選択結果ＳＯ１〜ＳＯｍの中から、Ｖａｌｉｄ信号Ｖ１〜Ｖｎが“１”である入力イベントデータＥＩ１〜ＥＩｎを取り込んでイベント調停部１１０に入力する一方、Ｖａｌｉｄ信号Ｖ１〜Ｖｎが“０”である入力イベントデータＥＩ１〜ＥＩｎは取り込まない。これにより、入力イベントに応じてステートマシンユニットを使い分けることが可能となる。
【０１３２】
以上、実施の形態３に係るステートマシンによれば、１つのイベント調停部１１０と１つのイベント処理部１２０から構成されるステートマシンユニットを複数設け、入力イベントに応じてそれらのステートマシンユニットを並列に動作させることができるので、ＯＬＴ１が管理する子局の数（ＩＤ数）が増加した場合であっても、入力イベントを高速に処理することが可能となる。
【０１３３】
また、選択レジスタ２１４を書き換え可能な記憶装置によって実現することにより、ＬＳＩの設計後においても、入力イベントの振り分け方を自由に決めることができるので、より柔軟性の高いステートマシンを実現することが可能となる。
【０１３４】
以上、本発明者らによってなされた発明を実施の形態に基づいて具体的に説明したが、本発明はそれに限定されるものではなく、その要旨を逸脱しない範囲において種々変更可能であることは言うまでもない。
【０１３５】
例えば、上記実施の形態では、本発明に係る帯域割当装置を、ＰＯＮシステムに適用する場合を一例として説明したが、親局と複数の子局とから構成され、親局と複数の子局との間を共有の媒体またはリソースを用いて時分割多重により接続する通信システムであれば、ＰＯＮシステムに限らず適用することができる。例えば、無線ＬＡＮ等の通信システムに適用することも可能である。
【０１３６】
また、上記実施の形態では、入力イベントデータＥＩ１〜ＥＩｎの入力元と出力イベントデータＥＯ１〜ＥＯｎの出力先がともに、処理ブロック１０１＿１〜１０１＿ｎである場合を例示したが、これに限られず、出力イベントデータＥＯ１〜ＥＯｎの出力先は、処理ブロック１０１＿１〜１０１＿ｎ以外の別の回路であってもよい。すなわち、状態遷移図を管理する必要のない他の回路ブロックに対して、出力イベントデータＥＯ１〜ＥＯｎを出力してもよい。
【符号の説明】
【０１３７】
１００…ＰＯＮシステム、１…ＯＬＴ、２…ＯＮＵ、３…光ファイバ、４…光スプリッタ、５…外部ネットワーク、６…光トランシーバ、７…フレーム再生回路、８…ＰＯＮ制御回路、９…データフレーム処理回路、１０…制御フレーム処理回路、１１，１１Ａ，１１Ｂ…ステートマシン、１２…ＣＰＵ、ＥＩ１〜ＥＩｎ，ＥＩｘ…入力イベントデータ、ＥＯ１〜ＥＯｎ…出力イベントデータ、ＲｅｑＩ…イベントリクエスト、１０１＿１〜１０１＿ｎ…処理ブロック，１１０…イベント調停部、１２０…イベント処理部、１１１＿１〜１１１＿ｎ…イベント集約部、１１２…入力イベント出力制御部、１２１…状態アドレス記憶部、１２２…ベースアドレス記憶部、１２３…プログラム記憶部、１２４…アドレス生成部、１２５…シーケンサ、１２６…出力処理部、１２７…アドレスカウンタ、１２８…ダウンカウンタ、１２９…制御部、１２６，１２６Ａ…出力処理部、１３１…デコーダ、１３２…入力レジスタ、１３３…演算部、１３４…出力レジスタ、１３５…比較部、１３６…出力部、１３７…ＡＮＤレジスタ、２１０…イベント振り分け部、２１１＿１〜２１１＿ｍ…ステートマシンユニット、ＳＯ１〜ＳＯｎ…選択結果、２１２…選択回路、２１３＿１〜２１３＿ｍ…ＡＮＤ、２１４…選択レジスタ、２２０＿１〜２２０＿ｎ…出力先選択回路。
【図１】
2018007014.tif 000003
【図２】
2018007014.tif 000004
【図３】
2018007014.tif 000005
【図４】
2018007014.tif 000006
【図５】
2018007014.tif 000007
【図６】
2018007014.tif 000008
【図７】
2018007014.tif 000009
【図８】
2018007014.tif 000010
【図９】
2018007014.tif 000011
【図１０】
2018007014.tif 000012
【図１１】
2018007014.tif 000013