(57)【特許請求の範囲】
【請求項１】
複数の制御対象回路群を制御信号により制御し、相互にフラグ信号を送受信する制御基本回路を複数個備え、
前記制御基本回路は、
前記制御信号の情報と、出力結果パターンの情報と、前記フラグ信号の情報と、フラグパターンの情報とを少なくとも予め保存してあるプログラムメモリと、
前記プログラムメモリのアドレスを指定するプログラムカウンタと、
前記制御対象回路群から出力される信号について前記出力結果パターンとのマッチングを行った結果を出力する出力結果処理手段と、
他の制御基本回路から出力されるフラグ信号について前記フラグパターンとのマッチングを行った結果を出力するフラグ処理手段と、
前記出力結果処理手段の出力及び前記フラグ処理手段の出力を少なくとも含む複数の出力からいずれかを選択するセレクタとを備え、
前記セレクタの出力に基づいて前記プログラムカウンタにより指定されるアドレスを決定し、決定されたアドレスに対応する前記制御信号及び前記フラグ信号のうち少なくともいずれかの信号を前記プログラムメモリから出力する
ステートマシン回路。
【請求項２】
前記制御基本回路は、前記出力結果処理手段の出力と前記フラグ処理手段の出力を処理する加工手段を備え、
前記プログラムメモリには、演算結果パターンの情報を予め保存しておき、
前記加工手段は、前記出力結果処理手段の出力と前記フラグ処理手段の出力を入力として演算処理を行う演算処理手段と、
前記演算処理の出力について前記演算結果パターンとのマッチングを行う判定手段を備え、
前記セレクタは、前記出力結果処理手段と前記フラグ処理手段と前記加工手段の出力のいずれかを選択し、
前記セレクタにおいて前記加工手段の出力が選択された場合には、前記判定手段の出力に基づいて前記プログラムカウンタにより指定されるアドレスを決定し、決定されたアドレスに対応する前記制御信号及び前記フラグ信号のうち少なくともいずれかの信号を前記プログラムメモリから出力すること
を特徴とする請求項１記載のステートマシン回路。
【請求項３】
前記加工手段は、前記出力結果処理手段の出力と前記フラグ処理手段の出力のうち少なくともいずれか一つを保持しておくレジスタを備え、前記プログラムメモリには、前記レジスタに前記出力結果処理手段の出力と前記フラグ処理手段の出力を保持するか否かを判断するための情報を保存しておき、前記情報に基づいて、前記出力結果処理手段の出力と前記フラグ処理手段の出力のうち少なくともいずれか一つを保持し、前記演算処理手段は、前記レジスタの内容を用いて演算処理を行うこと
を特徴とする請求項２記載のステートマシン回路。
【請求項４】
前記フラグ処理手段に前記制御対象回路群からの出力及び前記制御対象回路群以外のステートマシン回路の動作を制御する信号を出力する機能をもつ外部回路の出力の少なくともいずれかを前記フラグ信号として入力すること
を特徴とする請求項１乃至３のいずれか一つに記載のステートマシン回路。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、信号に応じて順次状態が変化し、その時の状態に応じて処理内容が変化するステートマシン回路に関し、特に、複数の制御対象の回路を同時かつ独立に制御するステートマシン回路に関する。
【背景技術】
【０００２】
近年、通信トラヒックの爆発的な増加と、それに伴う通信サービスの多様化により、トラヒックを転送する為の通信中継装置においては、大量のトラヒックを処理する高速処理性と新規通信サービスに対応できる柔軟性の両立が求められている。すなわち、通信中継装置に含まれる通信用ＳｏＣ（System on a Chip）についても、これらの要求が求められる。
【０００３】
一般的に、半導体回路の高速化手段として、パイプライン方式が挙げられる。パイプライン方式とは、それぞれ独立して動く半導体回路に対し、命令実行プロセスを並列化することによって、処理速度を高速化させる技術である。このようなそれぞれが独立して動く半導体回路を、同時かつ独立に制御可能なステートマシン回路が必要となるが、従来のステートマシン回路は配線が固定的な専用ハードウェアやＣＰＵで実現されてきた。
【０００４】
配線が固定的な専用ハードウェアでは、高速性を担保することが可能であるが、ＳｏＣ設計後の回路変更が不可能であり、柔軟性に対する要求が満たされない。一方、ＣＰＵでは、柔軟性を担保するものの、処理の追加に従って、ＣＰＵ負荷が著しく増加し、最終的にはＣＰＵ性能の限界から半導体回路の再設計が必要となる。また、ＣＰＵで処理する場合は処理速度や消費電力の点で問題がある。
【０００５】
ＣＰＵを用いずに柔軟性を担保するために、ハードウェアの回路構成を変更せずにステートマシンの制御内容を変更するステートマシン回路が提案されている（例えば、特許文献１参照）。特許文献１では、「現在の状態」と「入力信号」に基づいてセレクタ信号を出力し、ＣＰＵで設定された「次の状態」を保持している複数のレジスタ群の中から１つのレジスタを指定し、「次の状態」を出力できる構成となっている。ＣＰＵからレジスタの状態を書き換えることにより、ステートマシンに実装される状態遷移を変更できる。
【０００６】
別の従来技術として、１つの制御対象回路群に対して、回路設計後にプログラムで任意に制御信号内容を書き換え可能な制御基本回路の一般構成を図１０に示す。制御基本回路は、制御対象回路群より出力される結果を処理する出力結果処理部と、次サイクルに出力すべき制御信号のアドレスを指定するプログラムカウンタ及び、設計後にＣＰＵなどから内容を変更できる出力結果パターンと制御プログラムを設定できるプログラムメモリにより構成される。制御基本回路は、制御対象回路群からの出力結果に応じてプログラムカウンタのアドレス値を更新し、制御プログラムのアドレス値を順次変更していくことで、制御信号の内容を毎サイクル変更させることができる。
【０００７】
出力結果処理部では、例えば、分岐処理の判定処理を行う。制御対象回路群より結果が出力されると、出力結果処理部において、出力結果とプログラムメモリに設定されている出力結果パターンとの照合を行う。照合した結果、一致したパターンが存在する場合は、そのパターンに基づいてプログラムカウンタのアドレス値をジャンプさせ、ジャンプ先のアドレス値に対応する制御信号を制御対象回路群に出力する。つまり、分岐処理を実行する。一方、一致するパターンが存在しない場合は、アドレス値を＋１させ、アドレス値に対応する制御信号を制御対象回路群に出力する。つまり、分岐処理は実行せず、そのままの流れで制御プログラムを実行する。出力結果パターンと制御プログラムは設計者が任意に設定可能であり、これにより、出力結果に対して任意の制御信号が生成できるようになる。
【先行技術文献】
【特許文献】
【０００８】
【特許文献１】特開平１１−５３２１６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００９】
今後、通信トラヒックの増大と通信サービスの多様化により、通信用ＳｏＣには更なる高速化、柔軟化が求められる。高速化を実現するためには、複数の半導体回路をグループ化し、相互に連携してパイプライン的に動作させることが必須である。それら複数の半導体回路を制御する回路としては、パイプラインを実行する半導体回路群をグループごとに独立かつ同時に制御を行うハードウェアベースのステートマシン回路が必要である。柔軟化を実現するためには、ＳｏＣ設計後にもプログラムで制御内容を変更可能であることが求められる。特許文献１のステートマシン回路においては、１つの制御対象となる半導体回路に対しては、ＳｏＣ設計後に、任意に制御内容を変更可能であるが、複数の制御対象回路群を連携して動作させることはできない。
【００１０】
本発明は、以上のような問題を解消するためになされたものであり、パイプライン処理を実行する複数の回路群を独立かつ同時に制御を行うことにより、通信用ＳｏＣの高速化を図り、ＳｏＣ設計後にもプログラムで制御内容を変更可能であるステートマシン回路を提供することを目的とする。
【課題を解決するための手段】
【００１１】
上述したような課題を解決するために、本発明のステートマシン回路では、複数の制御対象回路群を制御信号により制御し、相互にフラグ信号を送受信する制御基本回路を複数個備え、前記制御基本回路は、前記制御信号の情報と、出力結果パターンの情報と、前記フラグ信号の情報と、フラグパターンの情報とを少なくとも予め保存してあるプログラムメモリと、前記プログラムメモリのアドレスを指定するプログラムカウンタと、前記制御対象回路群から出力される信号について前記出力結果パターンとのマッチングを行った結果を出力する出力結果処理手段と、他の制御基本回路から出力されるフラグ信号について前記フラグパターンとのマッチングを行った結果を出力するフラグ処理手段と、前記出力結果処理手段の出力及び前記フラグ処理手段の出力を少なくとも含む複数の出力からいずれかを選択するセレクタとを備え、前記セレクタの出力に基づいて前記プログラムカウンタにより指定されるアドレスを決定し、決定されたアドレスに対応する前記制御信号及び前記フラグ信号のうち少なくともいずれかの信号を前記プログラムメモリから出力する。
【００１２】
前記制御基本回路は、前記出力結果処理手段の出力と前記フラグ処理手段の出力を処理する加工手段を備え、前記プログラムメモリには、演算結果パターンの情報を予め保存しておき、前記加工手段は、前記出力結果処理手段の出力と前記フラグ処理手段の出力を入力として演算処理を行う演算処理手段と、前記演算処理の出力について前記演算結果パターンとのマッチングを行う判定手段を備え、前記セレクタは、前記出力結果処理手段と前記フラグ処理手段と前記加工手段の出力のいずれかを選択し、前記セレクタにおいて前記加工手段の出力が選択された場合には、前記判定手段の出力に基づいて前記プログラムカウンタにより指定されるアドレスを決定し、決定されたアドレスに対応する前記制御信号及び前記フラグ信号のうち少なくともいずれかの信号を前記プログラムメモリから出力するようにしてもよい。
【００１３】
前記加工手段は、前記出力結果処理手段の出力と前記フラグ処理手段の出力のうち少なくともいずれか一つを保持しておくレジスタを備え、前記プログラムメモリには、前記レジスタに前記出力結果処理手段の出力と前記フラグ処理手段の出力を保持するか否かを判断するための情報を保存しておき、前記情報に基づいて、前記出力結果処理手段の出力と前記フラグ処理手段の出力のうち少なくともいずれか一つを保持し、前記演算処理手段は、前記レジスタの内容を用いて演算処理を行うようにしてもよい。
【００１４】
前記フラグ処理手段に前記制御対象回路群からの出力及び前記制御対象回路群以外のステートマシン回路の動作を制御する信号を出力する機能をもつ外部回路の出力の少なくともいずれかを前記フラグ信号として入力するようにしてもよい。
【発明の効果】
【００１５】
本発明のステートマシン回路によれば、単純なハードウェアの複数枚の組み合わせにより、複数の制御対象となる半導体回路群を自律的に連携して動作させることができるので、高速処理が可能となる。また、新たにハードウェアを追加することなく任意に新規機能を追加し制御内容を変更することが可能となるので、ハードウェアコスト及び再設計にかかるコストを低減することができる。さらに、ＣＰＵで処理を実行させない新規制御処理を追加できるので、ＣＰＵ負荷の著しい増加を抑制することができる。
【図面の簡単な説明】
【００１６】
【図１】図１は、本発明の第１の実施の形態に係るステートマシン回路のブロック図である。
【図２】図２は、本発明の第１の実施の形態に係るステートマシン回路を用いて制御対象回路群を制御する場合の構成例である。
【図３】図３は、本発明の第１の実施の形態に係るステートマシン回路の動作を説明するためのフローチャートである。
【図４】図４は、３個の制御対象回路群を制御する場合の各制御基本回路の動作を時間軸上で表した図である。
【図５】図５は、本発明の第１の実施の形態に係るステートマシン回路に入力されるフラグ信号として制御対象回路群または外部回路からの信号を用いた場合のブロック図である。
【図６】図６は、本発明の第２の実施の形態に係るステートマシン回路のブロック図である。
【図７】図７は、本発明の第２の実施の形態に係るステートマシン回路の加工部のブロック図である。
【図８】図８は、本発明の第２の実施の形態に係るステートマシン回路を動作させる場合のプログラム内容の一例である。
【図９】図９は、本発明の第２の実施の形態に係るステートマシン回路の動作を説明するためのフローチャートである。
【図１０】図１０は、従来のステートマシン回路の一構成例である。
【発明を実施するための形態】
【００１７】
［第１の実施の形態］
以下、本発明の実施の形態について図面を参照して説明する。
【００１８】
本発明は、制御対象となる半導体回路等の制御対象回路群から出力される結果により制御対象への制御信号を決定する制御基本回路を複数個有し、その制御基本回路をフラグ信号を用いて相互に連携させることにより、複数の制御対象を同時かつ独立に制御可能とすることを特徴とする。
【００１９】
図１は、本発明の第１の実施の形態に係るステートマシン回路のブロック図である。本実施の形態では、Ｋ個の制御対象回路群（１０−１〜１０−Ｋ）に対して、各々制御を実行するＫ個の制御基本回路（２０−１〜２０−Ｋ）より構成される。各制御基本回路は、制御対象回路群より出力される結果と、プログラムメモリ２５に格納されている出力結果パターンとの照合を行い、照合結果を出力する出力結果処理部２１と、他の制御基本回路から出力されるフラグ信号とプログラムメモリ２５に格納されているフラグパターンとの照合を行い、照合結果を出力するフラグ処理部２２、及び、出力結果処理部２１からの出力結果とフラグ処理部２２からの出力結果のいずれかを選択するセレクタ２３と、セレクタでの選択結果をもとに、制御対象回路群または各制御基本回路への制御信号またはフラグ信号を出力するためのアドレスを指定するプログラムカウンタ２４により構成されている。従来構成のように、プログラム可能なステートマシンを単体で動作させるのではなく、複数個で連携させて動作させるためのフラグ処理部を設けたことが特徴である。
【００２０】
制御対象回路群は、レジスタや演算器といったｂｉｔ単位のハードウェアを最小単位とし、それらを処理毎にまとめたものや、更には制御対象回路群と制御基本回路を処理毎にまとめたものを制御対象としても良い。つまり、論理的には図２に示すように、ある制御対象回路群を制御するための制御基本回路を統括制御するための回路に対しても、本発明の制御基本回路を用いることができる。
【００２１】
図２は、ある処理（Ｎprocess）を行うＮ個の制御対象回路群（１０−１〜１０−Ｎ）と別の処理（Ｍprocess）を行うＭ個の制御対象回路群（１０−１〜１０−Ｍ）があった場合の構成例である。それぞれの制御対象回路群を独立に制御する場合は、制御対象回路群に対応した制御基本回路をＮ個とＭ個、それぞれ設ければ良い。
【００２２】
本発明の実施の形態では、制御基本回路間を連携して動作させるフラグ処理部を設けているため、ＮprocessとＭprocessを統括して制御する場合に対しても、図２に示すような制御基本回路２０を少なくとも１個設けることにより、同時かつ独立な制御が可能となる。具体的には、ＮprocessやＭprocessを制御する制御基本回路群と図２に示す制御基本回路との間で各プロセスの「処理開始信号」や「処理終了信号」をフラグ信号として相互にやりとりを行うことにより、制御基本回路群の動作を制御することができる。
【００２３】
なお、本実施の形態では、ＮprocessとＭprocessの２つの処理を同時かつ独立に制御させる例について述べたが、処理数はこれに限ることなく任意に変更可能である。処理数を増やす場合は、処理数に応じた制御基本回路を更に設ければよい。
【００２４】
本実施の形態における制御基本回路の動作を、図３を用いて説明する。プログラムカウンタのアドレス値がｎの時に、制御基本回路に外部からの信号が入力されると（Ｓ１−１）、アドレスｎのプログラムに対応して、出力処理結果として処理するか、フラグとして処理するかを、セレクタにより選択する（Ｓ１−２）。制御対象回路群からの出力結果と各制御基本回路からのフラグは同時に処理する必要がないため、セレクタにより処理内容を切り替えられるようにしている。
【００２５】
セレクタの選択結果より、出力処理結果として処理する場合の動作について説明する。出力結果はアドレスｎに対応する複数の出力結果パターンと照合され（Ｓ１−３）、一致した出力結果パターンがプログラムカウンタへと出力される。出力結果パターンは設計者がプログラムで任意に設定可能とし、パターン数の上限は設けない。一致したパターンに基づき、プログラムカウンタはパターンに対応する次のプログラムカウンタのアドレス値へとジャンプし（Ｓ１−４）、アドレス値に対応した制御信号を制御対象回路群へ出力し、アドレス値に対応したフラグ信号を他の制御基本回路へと出力する（Ｓ１−６）。出力結果と複数の出力結果パターンを照合した結果、一致するパターンがなかった場合には、プログラムカウンタのアドレス値を＋１進め（Ｓ１−５）、アドレス値に対応した制御信号を制御対象回路群へ出力し、アドレス値に対応したフラグ信号を他の制御基本回路へと出力する（Ｓ１−６）。
【００２６】
出力処理結果や出力結果パターンとしては、「フレーム種別信号」などがあり、設計者が任意に決定できる。例えば、ＭＰＣＰ（Multi Point Contorol Protocol）フレーム（ＩＥＥＥ８０２．３ａ参照）の中にもRegister_requestフレームやRegister_ackフレームなど複数種類のフレーム種別が存在し、フレーム種別に応じてジャンプ先のプログラムカウンタのアドレス値を指定し、フレーム種別ごとの処理を行う。この場合、フレーム種別ごとの出力結果パターンをプログラムメモリが保持し、出力結果処理部がどのパターンに一致するか（どのフレーム種別か）を判定する必要がある。つまり、複数種類の出力結果パターンが存在するため、制御対象回路群から出力される出力処理結果と出力結果パターンを照合する必要がある。
【００２７】
セレクタの選択結果により、フラグとして処理する場合の動作について説明する。各制御基本回路から出力されるフラグのうち、どのフラグを選択するかをアドレスｎに予め設定しておくことにより、フラグを選択する。選択されたフラグはアドレスｎに対応する複数のフラグパターンと照合され（Ｓ１−７）、一致したフラグパターンがプログラムカウンタへと出力される。フラグパターンは設計者がプログラムで任意に設定可能とし、パターン数の上限は設けない。一致したパターンに基づき、プログラムカウンタは次のプログラムカウンタのアドレス値へとジャンプし（Ｓ１−８）、ジャンプ先のアドレス値に対応した制御信号を制御対象回路群へ出力し、アドレス値に対応したフラグ信号を他の制御基本回路へと出力する（Ｓ１−１０）。出力結果と複数のフラグパターンを照合した結果、一致するパターンがなかった場合は、プログラムカウンタのアドレス値を＋１進めるかそのままのアドレス値を保持し（Ｓ１−９）、アドレス値に対応した制御信号を制御対象回路群へ出力し、アドレス値に対応したフラグ信号を他の制御基本回路へと出力する（Ｓ１−１０）。＋１するか、そのままのアドレス値を保持するかは、制御基本回路毎にプログラムで設定可能とする。
【００２８】
フラグ信号やフラグパターンの具体例としては、制御対象回路群が行う処理の「処理開始信号」、「処理終了信号」などがあり、このパターンは設計者が任意に決定できる。 フラグパターンは複数種類あり、フラグパターンに応じて反映するプログラムカウンタのアドレス値が異なるため、フラグ信号を受信するごとにパターンと照合する必要がある。
【００２９】
続いて、制御基本回路のフラグ信号を用いて、複数の制御対象回路群を独立かつ同時に制御する動作について説明する。図４は、各制御基本回路の動作を時間軸上で表した図である。具体例としてｔ＝ｔ1-1sからｔ＝ｔ3-2sの間に３個の制御対象回路群及び制御基本回路がパイプライン的に動作する例を示す。Ｋ個の制御対象回路群及び制御基本回路をパイプライン的に動作させても同様である。また、制御対象回路群１、２、３はそれぞれ異なる処理を行い、本制御対象回路群ｘ(ｘ＝１、２、３)がそれぞれの動作を終了した時点で、制御対象回路群ｘ＋１が動作し始めるパイプライン処理について説明する。
【００３０】
ｔ＝ｔ1-1sに「処理開始信号」を示すフラグ信号を受信すると、制御対象回路群１が動作を開始し、制御対象回路群１から出力される出力結果に応じてプログラムカウンタのアドレス値が順次更新され、その値に応じた制御信号が制御基本回路１より出力される。ｔ＝ｔ1-1eに制御対象回路群１の処理が終了し、それに応じて「処理終了信号」をフラグとして制御基本回路２へと出力する。ｔ＝ｔ2-1s（ｔ2-1s＝ｔ1-1e＋１）に制御基本回路２において前記フラグがフラグ処理部において処理されると、制御対象回路群２の動作が開始される。
【００３１】
動作が開始されると、制御回路群１と同様に、出力結果に応じてプログラムカウンタのアドレス値が順次更新され、その値に応じた制御信号が制御基本回路２より出力される。制御対象回路群２の処理が終了されていないｔ＝ｔ1-2sにおいて、制御対象回路群１が再びフラグ信号を受信し、動作を開始すると、制御基本回路１と制御基本回路２とで、それぞれ独立にプログラムカウンタのアドレス値を更新できるので、独立かつ同時に制御対象回路群１と制御対象回路群２を制御可能となる。
【００３２】
同様にして、制御対象回路群３が制御基本回路２より出力されるフラグ信号により動作を開始する時刻ｔ＝ｔ3-1sから、制御対象回路群１の処理が終了する時刻ｔ1-2eの間は制御対象回路群１と制御対象回路群３を同時かつ独立に制御可能であり、時刻ｔ＝ｔ2-2sからｔ＝ｔ3-1eの間は制御対象回路群２と制御対象回路群３を同時かつ独立に制御可能となる。
【００３３】
図４では、各制御対象回路群の処理が終了した時点で、次の制御基本回路に対してフラグを出力する例について示したが、フラグを出力するタイミングはこれに限らず、動作の途中でもフラグを出力することが可能である。そうすることにより、制御対象回路群１〜３の全てを同時かつ独立に制御する場合もありうる。
【００３４】
以上のように、プログラム可能なステートマシンとして機能する複数の制御基本回路を連携させて動作させることができるステートマシン回路により、制御対象回路群例えば、半導体回路群の高速処理が可能となる。更に本発明の実施の形態では、新たに制御する処理が追加されても、プログラムで処理内容を追加・変更ができるので、ハードウェアの再設計を必要とせず、追加の為のハードウェアコストや再設計の為の設計コストを削減できる。また、新たな処理を本発明に追加する際、ＣＰＵは本発明に対して設定を行うだけで、追加処理はステートマシン回路が実行するため、ＣＰＵ負荷の増加を抑制できる効果があるとともに、低電力化が期待できる。
【００３５】
本実施の形態の出力結果処理において、制御対象回路群からの出力結果とプログラムメモリが有する複数の出力結果パターンのいずれかが一致した場合に、一致パターンをプログラムカウンタへ出力する場合を説明したが、一致した場合に限定する必要はない。例えば、不一致の場合や、ある定数値よりも大きい／小さい場合などのバリエーションが考えられ、設計者がアドレス値に応じたバリエーションを設定可能とする。これはフラグ処理及び、他の実施の形態についても同様である。
【００３６】
本実施の形態のフラグは自身の制御基本回路以外の制御基本回路から出力されるものとして説明した。しかしながら、フラグは制御基本回路から出力されるものとは限らず、図５に示すように、制御対象回路群や、制御対象回路群とは異なる外部回路４０から出力される信号を用いても良い。これは他の実施の形態についても同様である。ここで、外部回路とは、本発明のステートマシン回路によって制御される半導体回路以外の半導体回路である。たとえば、本発明のステートマシン回路によって通信制御フレームの処理回路を制御するように構成する場合、伝送路上の電気信号から通信フレームを再生するデコーダ回路が外部回路となりうる。この場合、ステートマシン回路はデコーダ回路からのデコード完了信号をフラグ信号として受信して動作を開始する。その他の例としては、タイマ回路を外部回路としてその出力を本発明のステートマシン回路へ入力する構成をとれば、一定時間ごとにリンク維持動作など特定の動作を自動実行する機能を実装することが可能となる。
【００３７】
［第２の実施の形態］
第１の実施の形態の制御基本回路においては、セレクタにより、制御対象回路群から出力される演算結果を反映して、次のプログラムカウンタのアドレス値を指定する方法か、他の制御基本回路より出力されるフラグを反映して、次のアドレス値を指定する方法のいずれかが選択された。つまり、制御対象回路群からの演算結果とフラグ結果の両方を反映して、次のアドレス値を指定することはできなかった。第２の実施の形態は、これら２つの結果の両方を反映させ、複数の制御対象回路群の制御方法に関して、柔軟性を向上させる為の方法に関するものである。
【００３８】
本実施の形態では、第１の実施の形態における制御基本回路に、出力結果処理部での処理結果とフラグ処理部での処理結果の２つの結果をプログラムカウンタに反映させる加工部をさらに備えることを特徴とする。本実施の形態の構成図を図６に示す。第１の実施の形態との差分は、Ｋ個の制御基本回路（２０−１〜２０−Ｋ）それぞれに対し、出力結果処理部２１とフラグ処理部２２の出力を入力として演算処理を行い、その演算結果をプログラムカウンタへと出力する加工部３０が備えられていることである。
【００３９】
第１の実施の形態においては、出力結果処理部からの結果やフラグ処理部からの結果を次の制御信号へ反映されるようになっていたが、加工部を備えることにより、それらの結果を制御信号へと反映させる時間や組み合わせを任意に制御することが可能となる。
【００４０】
加工部３０の構成について図７を用いて説明する。加工部３０は出力結果処理部２１からの結果を保持するためのレジスタＯ（３１）、フラグ処理部２２からの結果を保持するためのレジスタＦ（３２）、さらに２つの保持結果に対して演算を加える演算器３３と演算結果を判定するためのパターン判定回路３４により構成される。出力結果処理部２１からの出力とフラグ処理部２２からの出力は、各々の結果を保存するためのレジスタＯ（３１）とレジスタＦ（３２）に接続され、更に各レジスタの出力は演算器３３の入力とされる。演算器３３からの出力はパターン判定回路３４へと接続され、判定結果が加工部３０の出力信号となる。
【００４１】
プログラムメモリ２５には、各プログラムカウンタのアドレス値に対応して、出力結果処理部からの信号及びフラグ処理部からの結果をレジスタで保持するか否かと、演算器３３での出力結果に対してパターン照合を行う為のパターンを予め設定しておく。演算器３３は加減算器や論理演算器など任意のものでよい。
【００４２】
図８は、本発明の第２の実施の形態に係るステートマシン回路を動作させる場合のプログラム内容の一例である。図８に示すプログラム内容は、アドレス値ｎ＋ｋ＋ｍでの制御信号を出力する際に、アドレス値ｎでの出力結果処理部での出力結果とアドレス値ｎ＋ｋでのフラグ処理部の出力結果を反映させる動作を実現するものである。
【００４３】
制御基本回路のプログラムカウンタにおいて、アドレスｎが指定されると、セレクタにおいては、出力結果処理部での処理が選択され、図３の出力結果処理フローが実行されるとともに、出力処理の結果が加工部へと出力される。加工部へと出力された結果はレジスタＯに保存される。一方、出力処理部での結果を受け、プログラムカウンタでは次のアドレス値を示すｎ＋１が出力される。さらにアドレスが進み、ｎ＋ｋの時、セレクタにおいては、フラグ処理部での処理が選択され、図３のフラグ処理フローが実行されるとともに、フラグ処理部での結果が加工部へと出力され、その結果はレジスタＦに保存される。
【００４４】
なお、レジスタＯ（３１）に保存されている内容はアドレスｎで保存された信号がそのまま保持されている。加工部３０での保存処理とは別に、セレクタにおいてフラグ処理が選択されたので、フラグ処理の処理結果を受け、プログラムカウンタ２４では次のアドレス値を示すｎ＋ｋ＋１が出力される。さらにアドレスが進み、ｎ＋ｋ＋ｍの時、セレクタ２３において加工部３０での処理が選択されると、加工部３０で保存していた出力結果処理の結果やフラグを用いた処理が実行される。この時の動作について、図９に示す処理フローを用いて説明する。
【００４５】
セレクタ２３において加工部での処理が選択されると（Ｓ２−２）、レジスタＯとレジスタＦに保存されている結果が各レジスタに接続されている演算器３３へと出力され（Ｓ２−３）、演算処理が実行される（Ｓ２−４）。その演算結果と、アドレスｎ＋ｋ＋ｍでのプログラムに記載されている演算結果パターンを照合し（Ｓ２−５）、一致した場合は、パターンに基づく次の制御信号を出力するアドレス値へとジャンプする（Ｓ２−６）。一致しなかった場合は、現在のアドレス値に＋１をして（Ｓ２−７）、次の制御信号を制御対象回路群へと出力する（Ｓ２−８）。
【００４６】
尚、本実施の形態の動作説明においては、出力結果処理部での結果とフラグ処理部での結果の両方を保持して加工部での処理を実行した動作例を説明したが、いずれかの結果１つを保持した後に加工部の処理を実行する場合も有りうる。
【００４７】
また、本実施の形態の動作説明においては、加工部において演算した結果が、プログラムに搭載しているパターンと一致しない場合は、次のアドレス値を＋１すると説明したが、＋１でなく、そのまま（＋０）としても良い。
【００４８】
以上のように、本発明のステートマシン回路によれば、単純なハードウェアの複数枚の組み合わせにより、複数の制御対象回路群、例えば半導体回路群を自律的に連携して動作させることができるので、高速処理が可能となる。また、新規機能を追加しても新たにハードウェアを追加することなく任意に制御内容を変更することができるので、ハードウェアコスト及び再設計にかかるコストを低減することができる。さらに、ＣＰＵで処理を実行させずに新規制御処理を追加できるので、ＣＰＵ負荷の著しい増加を抑制することができるという極めて優れた効果を奏する。
【産業上の利用可能性】
【００４９】
本発明は、大量のトラヒックを処理する高速処理性と新規通信サービスに対応できる柔軟性の両立が必要な回路、例えば、通信中継装置における通信用ＳｏＣのステートマシン回路等に利用することができる。
【符号の説明】
【００５０】
１０、１０−１〜１０−Ｋ、１０−Ｎ、１０−Ｍ…制御対象回路群、２０、２０−１〜２０−Ｋ…制御基本回路、２１…出力結果処理部、２２…フラグ処理部、２３…セレクタ、２４…プログラムカウンタ、２５…プログラムメモリ、３０…加工部、３１…レジスタＯ、３２…レジスタＦ、３３…演算器、３４…パターン判定回路、４０…制御対象回路群又は外部回路。
【図１】
0005977209.tif 000002
【図２】
0005977209.tif 000003
【図３】
0005977209.tif 000004
【図４】
0005977209.tif 000005
【図５】
0005977209.tif 000006
【図６】
0005977209.tif 000007
【図７】
0005977209.tif 000008
【図８】
0005977209.tif 000009
【図９】
0005977209.tif 000010
【図１０】
0005977209.tif 000011