(57)【特許請求の範囲】
【請求項１】
入力要因を設定する外部回路および状態遷移表に接続されると共に、該状態遷移表に現状態番号を与え、前記状態遷移表から次状態番号を受け、前記外部回路に確定状態番号を出力する状態番号保持部を含むステートマシン回路において、
遷移要因番号を格納する遷移要因変換テーブルを備え、前記外部回路から与えられる前記入力要因を、前記状態遷移表に適合した遷移要因番号に変換するとともに、前記外部回路からの起動要求および最大処理回数を受け、状態遷移処理回数を計数する状態遷移管理回路を備えることを特徴とするステートマシン回路。
【請求項２】
前記状態遷移管理回路からの前記状態遷移処理回数および前記外部回路からの状態遷移処理順序情報を受け、状態遷移処理順序情報を出力する状態遷移処理順序情報格納部を備えることを特徴とする請求項１に記載のステートマシン回路。
【請求項３】
前記外部回路により設定される複数の入力要因を内部に保持し、前記状態遷移処理順序情報格納部からの前記状態遷移処理順序情報に従って特定の１つを選択してビットパターンを出力する入力要因選択回路を備えることを特徴とする請求項１又は２に記載のステートマシン回路。
【請求項４】
前記入力要因選択回路の出力するビットパターンを２進整数に変換して前記遷移要因変換テーブルに入力するエンコード回路を備えることを特徴とする請求項３に記載のステートマシン回路。
【請求項５】
前記入力要因選択回路の出力ビットパターンを検査し、全てのビットが０の場合に遷移要因マスク信号を出力する入力要因有無検出回路を備えることを特徴とする請求項３又は４に記載のステートマシン回路。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明はステートマシン回路、特に複数の入力要因によって状態を決定するステートマシン回路に関する。
【０００２】
【従来の技術】
複数の入力要因によって状態を決定するステートマシンにおいては、状態遷移表の遷移要因番号数が、入力要因数の指数関数として表される。そのため、入力要因の数が増加すると、状態遷移表の遷移要因番号数が非常に増加し、状態遷移表の規模が増大する。
【０００３】
斯かる技術分野における又は関連する従来技術は、例えば特開平２―２０１９２号公報の「加入者回路の状態制御回路」、特開平３−２０８１３０号公報の「状態遷移実行装置」、特開平８−８７４６２号公報の「ステートマシンおよび通信制御方式」、特開平１０−３３３８８１号公報の「ステートマシン」および特開平１１−１８４６８４号公報の「状態遷移表自動生成方法および記録媒体」等に開示されている。
【０００４】
図４は、複数の入力要因によって状態を決定する従来のステートマシン回路の１例のブロック図を示す。このステートマシン回路４０は、外部回路４１および状態遷移表４４間に設けられ、デコード回路４２および状態番号保持部４３を含んでいる。デコード回路４２には、外部回路４１から入力要因が入力され、遷移要因番号を状態遷移表４４に出力する。また、状態番号保持部４３は、状態遷移表４４に現状態番号を出力し、状態遷移表４４から次状態番号が入力される。
【０００５】
即ち、外部回路４１から入力要因が設定されるステートマシン回路４０は、内部のデコード回路４２で状態遷移表４４参照用の遷移要因番号を生成する。図４において、入力要因をＮビットパターンで表す。個々の遷移要因の有無は、各ビットの「０」（＝該当遷移要因なし）又は「１」（＝該当遷移要因あり）に割り当てたとする。このとき、デコード回路４２は、Ｎビット幅のパターンを何れか１ビットのみが「１」であるような２のＮ乗ビットのパターンに変換しなくてはならない。そのために、複数の入力要因によって状態を決定するステートマシンにおいては、デコード回路４２の回路規模が非常に大きくなる。
【０００６】
【発明が解決しようとする課題】
この課題を解決するためには、入力要因から遷移要因番号への変換において、論理圧縮を行うことが考えられる。しかし、この場合には、状態遷移表のフォーマットが入力要因から遷移要因番号への変換方式に依存することになる。その結果、状態遷移の処理条件の変更や状態遷移表の形式の変更が生じた場合に、回路変更が必要になるという課題を有する。
【０００７】
【発明の目的】
本発明は、従来技術の上述した課題に鑑みなされたものであり、上述した課題をハードウエアにより解決するステートマシン回路を提供することを目的とする。
【０００８】
【課題を解決するための手段】
本発明のステートマシン回路は、入力要因を設定する外部回路および状態遷移表に現状態番号を与え、この状態遷移表から次状態番号を受け、外部回路に確定状態番号を出力する状態番号保持部を含むものであって、遷移要因番号を格納する遷移要因変換テーブルを備え、外部回路から与えられる入力要因を、状態遷移表に適合した遷移要因番号に変換するとともに、外部回路からの起動要求および最大処理回数を受け、状態遷移処理回数を計数する状態遷移管理回路を備える。
【０００９】
また、本発明によるステートマシン回路の好適実施形態によると、状態遷移管理回路からの状態遷移処理回数および外部回路からの状態遷移処理順序情報を受け、状態遷移処理順序情報を出力する状態遷移処理順序情報格納部を備える。外部回路により設定される複数の入力要因を内部に保持し、状態遷移処理順序情報格納部からの状態遷移処理順序情報に従って特定の１つを選択してビットパターンを出力する入力要因選択回路を備える。入力要因選択回路の出力するビットパターンを２進整数に変換して遷移要因変換テーブルに入力するエンコード回路を備える。入力要因選択回路の出力ビットパターンを検査し、全てのビットが０の場合に遷移要因マスク信号を出力する入力要因有無検査回路を備える。
【００１０】
【発明の実施の形態】
以下、本発明によるステートマシン回路の好適実施形態の構成および動作を、添付図面を参照して詳細に説明する。
【００１１】
先ず、図１は、本発明によるステートマシン回路の好適実施形態の構成を示すブロック図である。このステートマシン回路１は、外部回路３０および状態遷移表２０間に設けられる。このステートマシン回路１は、状態遷移管理回路２、状態遷移処理順序情報格納部３、入力要因選択回路４、エンコード回路５、遷移要因変換テーブル６、入力要因有無検出回路７、遷移要因番号マスク回路８および状態番号保持部９により構成される。
【００１２】
外部回路３０は、状態遷移管理回路２、状態遷移処理順序情報格納部３、入力要因選択回路４、遷移要因変換テーブル６および状態番号保持部９に接続されている。状態遷移管理回路２は、状態遷移処理順序情報格納部３および状態番号保持部９に接続されている。状態遷移処理順序情報格納部３は、入力要因選択回路４を介してエンコード回路５および入力要因有無検出回路７に接続されている。エンコード回路５は、遷移要因変換テーブル６を介して、また入力要因有無検出回路７の出力と共に変換要因番号マスク回路８に接続される。また、状態遷移表２０には、状態要因番号マスク回路８から遷移要因番号が入力され、状態番号保持部９から現状態番号が入力される。状態遷移表２０は、状態番号保持部９へ次状態番号を入力する。
【００１３】
上述の如く、本発明によるステートマシン回路１は、状態間の遷移規則が状態遷移表として与えられるステートマシンをハードウェアで実現するものであり、次の第１乃至第５の特徴を有する。第１に、遷移要因変換テーブル６を使用して、外部回路３０より与えられる入力要因を状態遷移表２０に適合した遷移要因番号に変換する。第２に、入力として複数の要因がセットされたとき、状態遷移処理順序情報格納部３に格納された情報に従って１入力要因を選択し、選択した入力要因に基づいて状態遷移表２０を参照する。第３に、入力要因の有無を検出する回路(入力要因有無検出回路７)により、入力要因が存在しない場合には、遷移要因マスク回路８で状態遷移表２０に出力する状態要因番号を０に置き換える。第４に、状態遷移表２０内の遷移要因番号０の位置に現状態番号を配置することで、入力要因がない場合においても状態遷移表を参照して状態番号変化なし時の動作を実現する。最後に、上述した第１乃至第４の処理を、任意に設定した処理回数分連続して行う。
【００１４】
次に、図１に示す本発明によるステートマシン回路１を詳細に説明する。状態遷移管理回路２は、外部回路３０からの起動要求を受け付け、状態遷移処理の回数を計数して状態遷移処理順序情報格納部３に伝える。また、状態遷移処理回数が最大処理回数に達すると、状態番号格納部９に確定状態番号読出要求を出力する。尚、最大処理回数は、外部回路３０により設定可能である。
【００１５】
状態遷移処理順序情報格納部３は、状態遷移処理回数に対応する状態遷移処理順序情報を格納し、状態遷移管理回路２からの状態遷移処理回数に従って入力要因選択回路４に対して状態遷移処理順序情報を出力する。この状態遷移処理順序情報格納部３は、外部回路３０からの設定により変更可能なレジスタとしての実現を想定する。本発明において、状態遷移処理順序情報はビットパターンとし、各ビットは特定の入力要因を状態遷移処理に使用するか否かの判定に使用する(「0」は状態遷移処理非対象、「1」は状態遷移処理対象)。また、状態遷移処理順序情報格納部３には、入力要因の種別数分の状態遷移処理順序情報を格納する必要は必ずしもなく、本発明によるステートマシン回路１の性質に応じて任意に定めて良い。
【００１６】
入力要因選択回路４は、外部回路３０により設定される複数の入力要因を内部に保持し、その中から特定の１入力要因を選択して後段のエンコード回路５に出力する。選択する入力要因は、状態遷移処理順序情報格納部３の出力に従う。本発明においては、入力要因をビットパターンで表し、個々の入力要因の有無は各ビットに割り当てる (「0」は該当遷移要因なし、「1」は該当遷移要因あり)。エンコード回路５は、入力要因選択回路４の出力するビットパターンを２進整数に変換する。また、遷移要因変換テーブル６は、遷移要因番号を格納し、エンコード回路５の出力する２進整数が与えられると、対応する遷移要因番号を出力する。本発明によるステートマシン回路１において、遷移要因変換テーブル６を変更可能なレジスタとして実現することを想定する。
【００１７】
入力要因有無検出回路７は、入力要因選択回路４の出力ビットパターンを検査し、全てのビットが「０」の場合に、遷移要因マスク信号を出力する。遷移要因マスク回路８は、入力要因有無検出回路７からの要因マスク信号がある場合に、要因変換テーブル６から出力される遷移要因番号を０に置き換える。状態遷移表２０は、２次元配列で表され、ステートマシン回路がとるべき次状態番号を格納する。次状態番号は、ステートマシン回路１から状態番号および要因番号が与えられると出力される。
【００１８】
次に、図２は、状態遷移表２０の構成を示す。図２において、縦方向に現在の状態番号を、横方向に遷移要因番号をとっている。図２において、網掛けされた個所に格納された状態番号は、
−  現在の状態番号  =  「1」
−  遷移要因番号  =  「1」
の場合にとるべき次状態番号を示している。本発明のステートマシン回路１では、遷移要因番号「０」の列には、現在の状態番号を格納する。状態番号保持部９は、状態遷移表２０の出力する次状態番号を保持すると共に、状態遷移処理において保持している状態番号を現状態番号として出力する。また、状態遷移管理回路２から確定状態番号読出要求を受け取ると、外部回路３０に対し保持している状態番号を、与えられた入力要因に対する確定状態番号として出力する。
【００１９】
外部回路３０は、ステートマシン回路１に対して以下の機能を提供する。
−入力要因の設定
−状態遷移処理順序情報の設定
−要因変換テーブル６に格納する遷移要因番号の設定
−起動制御
尚、外部回路３０の詳細は、本発明によるステートマシン回路の要旨に直接関係しないので、説明を省略する。
【００２０】
次に、本発明によるステートマシン回路１の処理動作を図３のフローチャートを参照して説明する。以下、図３のステップＳ１〜Ｓ７の処理を順次説明する。ステップＳ１において、状態遷移管理回路２は、外部回路３０から起動要求を受け付けると、外部回路３０から入力される最大処理回数を内部レジスタに設定する。次に、内部カウンタを初期化し、カウンタ値を状態遷移処理回数として状態遷移処理順序情報格納部３に出力する。尚、ステートマシン回路１は、外部回路３０より起動要求を受けるまでは状態遷移処理を実行しない。
【００２１】
ステップＳ２において、状態遷移処理順序情報格納部３は、状態遷移処理番号に対応する状態遷移処理順序情報を入力要因選択回路４に出力する。入力要因選択回路４は、入力要因に指示された複数の要因から状態遷移処理順序情報に従って入力要因1つを選択して出力する。本発明によるステートマシン回路１において、入力要因をビットパターンで表し、個々の遷移要因の有無は各ビットの「0」(該当  遷移要因なし)又は「１」(該当遷移要因あり)に割り当てる。また、状態遷移処理順序情報は、ビットパターンである。各ビットは、特定の入力要因を状態遷移処理に使用するか否かの判定に使用する(「0」は状態遷移要因非対象、「1」は状態遷移処理対象)。これにより、入力要因選択回路４の出力は、何れか１ビットのみ「1」であるようなビットパターンとなる。
【００２２】
ステップＳ３において、選択された１入力要因を遷移要因番号に変換する。入力要因選択回路４の出力する、何れか1ビットのみ「1」であるようなビットパターンをエンコード回路５で２進整数に変換し、遷移要因変換テーブル６に与える。遷移要因変換テーブル６は、上述した２進整数をキーとして遷移要因番号を読み出す。一方、入力要因選択回路４の出力は、入力要因有無検出回路７において、入力要因の有無が判定される。入力要因が存在しない場合には、遷移要因番号マスク回路８において入力要因有無検出回路７からの要因マスク信号をにより「０」に置き換える仕組みを備える。
【００２３】
ステップＳ４において、状態遷移表２０に状態番号保持部９からの現状態番号および遷移要因番号を与えることにより、次状態番号を読み出し、状態番号保持部９に格納する。ステップＳ５において、状態遷移処理回数を加算する。ステップＳ６において、現在の状態遷移処理回数および最大処理回数を比較し、状態遷移処理回数が最大処理回数未満の場合（ステップＳ６：Ｎ）には、上述したステップＳ２〜ステップＳ５の処理を繰り返す。最後に、ステップＳ７において、状態遷移処理回数が最大処理回数と等しくなったとき（ステップＳ６：Ｙ）、状態遷移処理を停止し、状態番号保持部９に確定状態番号読出要求を出力する。状態番号保持部９の内部に保持した状態番号を確定状態番号として外部回路３０に出力する。
【００２４】
以上、本発明によるステートマシン回路の好適実施形態の構成および動作を詳述した。しかし、斯かる実施形態は、本発明の単なる例示に過ぎず、何ら本発明を限定するものではない。本発明の要旨を逸脱することなく、特定用途に応じて種々の変形変更が可能であること、当業者には容易に理解できよう。例えば、図１において、入力要因が幾つかのカテゴリにグループ化されており、状態遷移処理起動時には各グループのうち１要因にのみ「１」がセットされるような場合を考える。この場合において、状態遷移処理順序情報格納部３に格納する状態遷移処理順序情報は、特定のビットのみ「１」であるようなパターンである必要はない。これにより、ステートマシン回路における状態遷移処理回数を低減できる。
【００２５】
また、与えられた入力要因間に優先度が定められており、現状態番号と最高優先度の入力要因でのみ、次の確定状態番号が決定されるようなステートマシンを考える。これは、上述した好適実施形態に示すステートマシン回路を変更することなく、以下に示す設定を変更するのみで実現可能である
（Ａ）状態番号によりどの入力要因で確定した状態かを表現する。
（Ｂ）１回の状態遷移処理起動で、入力要因を２回ずつ選択するように状態遷移処理順序情報を設定する。
上述した（Ａ）により状態遷移表で現在の状態と入力要因の優先度比較が行え且つ（Ｂ）により最高優先度の入力要因が消滅した場合には、新たな最高優先度の入力要因を検索するロジックが実現できる。
【００２６】
【発明の効果】
以上の説明から理解される如く、本発明のステートマシン回路によると、次の如き実用上の顕著な効果が得られる。第１に、状態遷移表の配置に必要なメモリの低減可能である。その理由は、複数の入力要因が設定された場合に、個別の入力要因に従って順次状態を更新する方式のため、状態遷移表は個別の入力要因に対する動作のみを規定ことで十分だからである。一般に、複数入力要因により状態を決定するステートマシンおいては、状態遷移表の遷移要因番号数が入力要因数の指数オーダーで増加するため、入力要因数に比べ遷移要因番号が多くなり、状態遷移表の規模が非常に大きくなる。しかし、本発明においては
−状態遷移管理回路２
−状態遷移処理順序情報格納部３
−入力要因選択回路４
を設け、図３の処理フローチャートに従うことで、複数の入力要因が与えられた場合にでもステートマシン回路１内部においては１入力要因ずつ順次状態遷移処理する。そのため遷移要因数は入力要因数と等しくなり、状態遷移表の規模を小さく抑えることができる。
【００２７】
第２に、ステートマシン回路１の内部で扱うデータを小さくできる。その理由は、エンコード回路５によって、ステートマシン回路１内部で扱うデータのビット幅は入力要因として設定されるビットパターンの幅の対数で表されるためである。第３に、回路を変更することなくステートマシン動作制御論理が変更可能な点である。入力要因の優先度判定処理を回路変更なしに、設定値の変更だけで実現可能である。その理由は、状態遷移処理順序情報格納部３の設定を変更することで各回の状態遷移処理において選択する入力要因を自由に選択可能且つステートマシン回路１内で行う状態遷移処理の回数の変更が可能なためである。これによりステートマシン制御回路の簡易化が可能となる。
【００２８】
第４に、状態遷移表の形式変更が容易である。その理由は、要因変換テーブルを利用して外部より与えられる入力要因を状態遷移表に適合した遷移要因に変換するためである。これにより、状態遷移表の形式に依存しないステートマシン回路が実現できる。第５に、入力要因がない場合においても特別なステートマシン制御を必要としない。その理由は、入力要因有無検出回路７および遷移要因マスク回路８によって要因番号を０に置き換えることと、状態遷移表２０の遷移要因番号０の領域には現在の状態番号が格納されているためである。これにより、入力要因がない場合においても通常と同様の状態遷移処理を行い、結果として現状態と同じ次状態番号が得られるためである。以上により、ステートマシン制御回路の簡易化が可能となる。
【図面の簡単な説明】
【図１】本発明によるステートマシン回路の好適実施形態の構成を示すブロック図である。
【図２】図１中の状態遷移表の構成例である。
【図３】図１に示すステートマシン回路の処理動作を示すフローチャートである。
【図４】従来のステートマシン回路の構成を示すブロック図である。
【符号の説明】
１  ステートマシン回路
２  状態遷移管理回路
３  状態遷移処理順序情報格納部
４  入力要因選択回路
５  エンコード回路
６  遷移要因変換テーブル
７  入力要因有無検出回路
８  遷移要因番号マスク回路
９  状態番号保持部
２０  状態遷移表
３０  外部回路
【図１】
0003645831.tif 000002
【図２】
0003645831.tif 000003
【図３】
0003645831.tif 000004
【図４】
0003645831.tif 000005