JP5977209B2 - ステートマシン回路 - Google Patents

ステートマシン回路 Download PDF

Info

Publication number
JP5977209B2
JP5977209B2 JP2013149750A JP2013149750A JP5977209B2 JP 5977209 B2 JP5977209 B2 JP 5977209B2 JP 2013149750 A JP2013149750 A JP 2013149750A JP 2013149750 A JP2013149750 A JP 2013149750A JP 5977209 B2 JP5977209 B2 JP 5977209B2
Authority
JP
Japan
Prior art keywords
output
flag
processing means
result
control
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.)
Expired - Fee Related
Application number
JP2013149750A
Other languages
English (en)
Other versions
JP2015022495A (ja
Inventor
彩希 八田
彩希 八田
田中 伸幸
伸幸 田中
重松 智志
智志 重松
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Nippon Telegraph and Telephone Corp
Original Assignee
Nippon Telegraph and Telephone Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Nippon Telegraph and Telephone Corp filed Critical Nippon Telegraph and Telephone Corp
Priority to JP2013149750A priority Critical patent/JP5977209B2/ja
Publication of JP2015022495A publication Critical patent/JP2015022495A/ja
Application granted granted Critical
Publication of JP5977209B2 publication Critical patent/JP5977209B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02PCLIMATE CHANGE MITIGATION TECHNOLOGIES IN THE PRODUCTION OR PROCESSING OF GOODS
    • Y02P90/00Enabling technologies with a potential contribution to greenhouse gas [GHG] emissions mitigation
    • Y02P90/02Total factory control, e.g. smart factories, flexible manufacturing systems [FMS] or integrated manufacturing systems [IMS]

Landscapes

  • Advance Control (AREA)

Description

本発明は、信号に応じて順次状態が変化し、その時の状態に応じて処理内容が変化するステートマシン回路に関し、特に、複数の制御対象の回路を同時かつ独立に制御するステートマシン回路に関する。
近年、通信トラヒックの爆発的な増加と、それに伴う通信サービスの多様化により、トラヒックを転送する為の通信中継装置においては、大量のトラヒックを処理する高速処理性と新規通信サービスに対応できる柔軟性の両立が求められている。すなわち、通信中継装置に含まれる通信用SoC(System on a Chip)についても、これらの要求が求められる。
一般的に、半導体回路の高速化手段として、パイプライン方式が挙げられる。パイプライン方式とは、それぞれ独立して動く半導体回路に対し、命令実行プロセスを並列化することによって、処理速度を高速化させる技術である。このようなそれぞれが独立して動く半導体回路を、同時かつ独立に制御可能なステートマシン回路が必要となるが、従来のステートマシン回路は配線が固定的な専用ハードウェアやCPUで実現されてきた。
配線が固定的な専用ハードウェアでは、高速性を担保することが可能であるが、SoC設計後の回路変更が不可能であり、柔軟性に対する要求が満たされない。一方、CPUでは、柔軟性を担保するものの、処理の追加に従って、CPU負荷が著しく増加し、最終的にはCPU性能の限界から半導体回路の再設計が必要となる。また、CPUで処理する場合は処理速度や消費電力の点で問題がある。
CPUを用いずに柔軟性を担保するために、ハードウェアの回路構成を変更せずにステートマシンの制御内容を変更するステートマシン回路が提案されている(例えば、特許文献1参照)。特許文献1では、「現在の状態」と「入力信号」に基づいてセレクタ信号を出力し、CPUで設定された「次の状態」を保持している複数のレジスタ群の中から1つのレジスタを指定し、「次の状態」を出力できる構成となっている。CPUからレジスタの状態を書き換えることにより、ステートマシンに実装される状態遷移を変更できる。
別の従来技術として、1つの制御対象回路群に対して、回路設計後にプログラムで任意に制御信号内容を書き換え可能な制御基本回路の一般構成を図10に示す。制御基本回路は、制御対象回路群より出力される結果を処理する出力結果処理部と、次サイクルに出力すべき制御信号のアドレスを指定するプログラムカウンタ及び、設計後にCPUなどから内容を変更できる出力結果パターンと制御プログラムを設定できるプログラムメモリにより構成される。制御基本回路は、制御対象回路群からの出力結果に応じてプログラムカウンタのアドレス値を更新し、制御プログラムのアドレス値を順次変更していくことで、制御信号の内容を毎サイクル変更させることができる。
出力結果処理部では、例えば、分岐処理の判定処理を行う。制御対象回路群より結果が出力されると、出力結果処理部において、出力結果とプログラムメモリに設定されている出力結果パターンとの照合を行う。照合した結果、一致したパターンが存在する場合は、そのパターンに基づいてプログラムカウンタのアドレス値をジャンプさせ、ジャンプ先のアドレス値に対応する制御信号を制御対象回路群に出力する。つまり、分岐処理を実行する。一方、一致するパターンが存在しない場合は、アドレス値を+1させ、アドレス値に対応する制御信号を制御対象回路群に出力する。つまり、分岐処理は実行せず、そのままの流れで制御プログラムを実行する。出力結果パターンと制御プログラムは設計者が任意に設定可能であり、これにより、出力結果に対して任意の制御信号が生成できるようになる。
特開平11−53216号公報
今後、通信トラヒックの増大と通信サービスの多様化により、通信用SoCには更なる高速化、柔軟化が求められる。高速化を実現するためには、複数の半導体回路をグループ化し、相互に連携してパイプライン的に動作させることが必須である。それら複数の半導体回路を制御する回路としては、パイプラインを実行する半導体回路群をグループごとに独立かつ同時に制御を行うハードウェアベースのステートマシン回路が必要である。柔軟化を実現するためには、SoC設計後にもプログラムで制御内容を変更可能であることが求められる。特許文献1のステートマシン回路においては、1つの制御対象となる半導体回路に対しては、SoC設計後に、任意に制御内容を変更可能であるが、複数の制御対象回路群を連携して動作させることはできない。
本発明は、以上のような問題を解消するためになされたものであり、パイプライン処理を実行する複数の回路群を独立かつ同時に制御を行うことにより、通信用SoCの高速化を図り、SoC設計後にもプログラムで制御内容を変更可能であるステートマシン回路を提供することを目的とする。
上述したような課題を解決するために、本発明のステートマシン回路では、複数の制御対象回路群を制御信号により制御し、相互にフラグ信号を送受信する制御基本回路を複数個備え、前記制御基本回路は、前記制御信号の情報と、出力結果パターンの情報と、前記フラグ信号の情報と、フラグパターンの情報と少なくとも予め保存してあるプログラムメモリと、前記プログラムメモリのアドレスを指定するプログラムカウンタと、前記制御対象回路群から出力される信号について前記出力結果パターンとのマッチングを行った結果を出力する出力結果処理手段と、他の制御基本回路から出力されるフラグ信号について前記フラグパターンとのマッチングを行った結果を出力するフラグ処理手段と、前記出力結果処理手段の出力及び前記フラグ処理手段の出力を少なくとも含む複数の出力からいずれかを選択するセレクタとを備え、前記セレクタの出力に基づいて前記プログラムカウンタにより指定されるアドレスを決定し、決定されたアドレスに対応する前記制御信号及び前記フラグ信号のうち少なくともいずれかの信号を前記プログラムメモリから出力する。
前記制御基本回路は、前記出力結果処理手段の出力と前記フラグ処理手段の出力を処理する加工手段を備え、前記プログラムメモリには、演算結果パターンの情報を予め保存しておき、前記加工手段は、前記出力結果処理手段の出力と前記フラグ処理手段の出力を入力として演算処理を行う演算処理手段と、前記演算処理の出力について前記演算結果パターンとのマッチングを行う判定手段を備え、前記セレクタは、前記出力結果処理手段と前記フラグ処理手段と前記加工手段の出力のいずれかを選択し、前記セレクタにおいて前記加工手段の出力が選択された場合には、前記判定手段の出力に基づいて前記プログラムカウンタにより指定されるアドレスを決定し、決定されたアドレスに対応する前記制御信号及び前記フラグ信号のうち少なくともいずれかの信号を前記プログラムメモリから出力するようにしてもよい。
前記加工手段は、前記出力結果処理手段の出力と前記フラグ処理手段の出力のうち少なくともいずれか一つを保持しておくレジスタを備え、前記プログラムメモリには、前記レジスタに前記出力結果処理手段の出力と前記フラグ処理手段の出力を保持するか否かを判断するための情報を保存しておき、前記情報に基づいて、前記出力結果処理手段の出力と前記フラグ処理手段の出力のうち少なくともいずれか一つを保持し、前記演算処理手段は、前記レジスタの内容を用いて演算処理を行うようにしてもよい。
前記フラグ処理手段に前記制御対象回路群からの出力及び前記制御対象回路群以外のステートマシン回路の動作を制御する信号を出力する機能をもつ外部回路の出力の少なくともいずれかを前記フラグ信号として入力するようにしてもよい。
本発明のステートマシン回路によれば、単純なハードウェアの複数枚の組み合わせにより、複数の制御対象となる半導体回路群を自律的に連携して動作させることができるので、高速処理が可能となる。また、新たにハードウェアを追加することなく任意に新規機能を追加し制御内容を変更することが可能となるので、ハードウェアコスト及び再設計にかかるコストを低減することができる。さらに、CPUで処理を実行させない新規制御処理を追加できるので、CPU負荷の著しい増加を抑制することができる。
図1は、本発明の第1の実施の形態に係るステートマシン回路のブロック図である。 図2は、本発明の第1の実施の形態に係るステートマシン回路を用いて制御対象回路群を制御する場合の構成例である。 図3は、本発明の第1の実施の形態に係るステートマシン回路の動作を説明するためのフローチャートである。 図4は、3個の制御対象回路群を制御する場合の各制御基本回路の動作を時間軸上で表した図である。 図5は、本発明の第1の実施の形態に係るステートマシン回路に入力されるフラグ信号として制御対象回路群または外部回路からの信号を用いた場合のブロック図である。 図6は、本発明の第2の実施の形態に係るステートマシン回路のブロック図である。 図7は、本発明の第2の実施の形態に係るステートマシン回路の加工部のブロック図である。 図8は、本発明の第2の実施の形態に係るステートマシン回路を動作させる場合のプログラム内容の一例である。 図9は、本発明の第2の実施の形態に係るステートマシン回路の動作を説明するためのフローチャートである。 図10は、従来のステートマシン回路の一構成例である。
[第1の実施の形態]
以下、本発明の実施の形態について図面を参照して説明する。
本発明は、制御対象となる半導体回路等の制御対象回路群から出力される結果により制御対象への制御信号を決定する制御基本回路を複数個有し、その制御基本回路をフラグ信号を用いて相互に連携させることにより、複数の制御対象を同時かつ独立に制御可能とすることを特徴とする。
図1は、本発明の第1の実施の形態に係るステートマシン回路のブロック図である。本実施の形態では、K個の制御対象回路群(10−1〜10−K)に対して、各々制御を実行するK個の制御基本回路(20−1〜20−K)より構成される。各制御基本回路は、制御対象回路群より出力される結果と、プログラムメモリ25に格納されている出力結果パターンとの照合を行い、照合結果を出力する出力結果処理部21と、他の制御基本回路から出力されるフラグ信号とプログラムメモリ25に格納されているフラグパターンとの照合を行い、照合結果を出力するフラグ処理部22、及び、出力結果処理部21からの出力結果とフラグ処理部22からの出力結果のいずれかを選択するセレクタ23と、セレクタでの選択結果をもとに、制御対象回路群または各制御基本回路への制御信号またはフラグ信号を出力するためのアドレスを指定するプログラムカウンタ24により構成されている。従来構成のように、プログラム可能なステートマシンを単体で動作させるのではなく、複数個で連携させて動作させるためのフラグ処理部を設けたことが特徴である。
制御対象回路群は、レジスタや演算器といったbit単位のハードウェアを最小単位とし、それらを処理毎にまとめたものや、更には制御対象回路群と制御基本回路を処理毎にまとめたものを制御対象としても良い。つまり、論理的には図2に示すように、ある制御対象回路群を制御するための制御基本回路を統括制御するための回路に対しても、本発明の制御基本回路を用いることができる。
図2は、ある処理(Nprocess)を行うN個の制御対象回路群(10−1〜10−N)と別の処理(Mprocess)を行うM個の制御対象回路群(10−1〜10−M)があった場合の構成例である。それぞれの制御対象回路群を独立に制御する場合は、制御対象回路群に対応した制御基本回路をN個とM個、それぞれ設ければ良い。
本発明の実施の形態では、制御基本回路間を連携して動作させるフラグ処理部を設けているため、NprocessとMprocessを統括して制御する場合に対しても、図2に示すような制御基本回路20を少なくとも1個設けることにより、同時かつ独立な制御が可能となる。具体的には、NprocessやMprocessを制御する制御基本回路群と図2に示す制御基本回路との間で各プロセスの「処理開始信号」や「処理終了信号」をフラグ信号として相互にやりとりを行うことにより、制御基本回路群の動作を制御することができる。
なお、本実施の形態では、NprocessとMprocessの2つの処理を同時かつ独立に制御させる例について述べたが、処理数はこれに限ることなく任意に変更可能である。処理数を増やす場合は、処理数に応じた制御基本回路を更に設ければよい。
本実施の形態における制御基本回路の動作を、図3を用いて説明する。プログラムカウンタのアドレス値がnの時に、制御基本回路に外部からの信号が入力されると(S1−1)、アドレスnのプログラムに対応して、出力処理結果として処理するか、フラグとして処理するかを、セレクタにより選択する(S1−2)。制御対象回路群からの出力結果と各制御基本回路からのフラグは同時に処理する必要がないため、セレクタにより処理内容を切り替えられるようにしている。
セレクタの選択結果より、出力処理結果として処理する場合の動作について説明する。出力結果はアドレスnに対応する複数の出力結果パターンと照合され(S1−3)、一致した出力結果パターンがプログラムカウンタへと出力される。出力結果パターンは設計者がプログラムで任意に設定可能とし、パターン数の上限は設けない。一致したパターンに基づき、プログラムカウンタはパターンに対応する次のプログラムカウンタのアドレス値へとジャンプし(S1−4)、アドレス値に対応した制御信号を制御対象回路群へ出力し、アドレス値に対応したフラグ信号を他の制御基本回路へと出力する(S1−6)。出力結果と複数の出力結果パターンを照合した結果、一致するパターンがなかった場合には、プログラムカウンタのアドレス値を+1進め(S1−5)、アドレス値に対応した制御信号を制御対象回路群へ出力し、アドレス値に対応したフラグ信号を他の制御基本回路へと出力する(S1−6)。
出力処理結果や出力結果パターンとしては、「フレーム種別信号」などがあり、設計者が任意に決定できる。例えば、MPCP(Multi Point Contorol Protocol)フレーム(IEEE802.3a参照)の中にもRegister_requestフレームやRegister_ackフレームなど複数種類のフレーム種別が存在し、フレーム種別に応じてジャンプ先のプログラムカウンタのアドレス値を指定し、フレーム種別ごとの処理を行う。この場合、フレーム種別ごとの出力結果パターンをプログラムメモリが保持し、出力結果処理部がどのパターンに一致するか(どのフレーム種別か)を判定する必要がある。つまり、複数種類の出力結果パターンが存在するため、制御対象回路群から出力される出力処理結果と出力結果パターンを照合する必要がある。
セレクタの選択結果により、フラグとして処理する場合の動作について説明する。各制御基本回路から出力されるフラグのうち、どのフラグを選択するかをアドレスnに予め設定しておくことにより、フラグを選択する。選択されたフラグはアドレスnに対応する複数のフラグパターンと照合され(S1−7)、一致したフラグパターンがプログラムカウンタへと出力される。フラグパターンは設計者がプログラムで任意に設定可能とし、パターン数の上限は設けない。一致したパターンに基づき、プログラムカウンタは次のプログラムカウンタのアドレス値へとジャンプし(S1−8)、ジャンプ先のアドレス値に対応した制御信号を制御対象回路群へ出力し、アドレス値に対応したフラグ信号を他の制御基本回路へと出力する(S1−10)。出力結果と複数のフラグパターンを照合した結果、一致するパターンがなかった場合は、プログラムカウンタのアドレス値を+1進めるかそのままのアドレス値を保持し(S1−9)、アドレス値に対応した制御信号を制御対象回路群へ出力し、アドレス値に対応したフラグ信号を他の制御基本回路へと出力する(S1−10)。+1するか、そのままのアドレス値を保持するかは、制御基本回路毎にプログラムで設定可能とする。
フラグ信号やフラグパターンの具体例としては、制御対象回路群が行う処理の「処理開始信号」、「処理終了信号」などがあり、このパターンは設計者が任意に決定できる。 フラグパターンは複数種類あり、フラグパターンに応じて反映するプログラムカウンタのアドレス値が異なるため、フラグ信号を受信するごとにパターンと照合する必要がある。
続いて、制御基本回路のフラグ信号を用いて、複数の制御対象回路群を独立かつ同時に制御する動作について説明する。図4は、各制御基本回路の動作を時間軸上で表した図である。具体例としてt=t1-1sからt=t3-2sの間に3個の制御対象回路群及び制御基本回路がパイプライン的に動作する例を示す。K個の制御対象回路群及び制御基本回路をパイプライン的に動作させても同様である。また、制御対象回路群1、2、3はそれぞれ異なる処理を行い、本制御対象回路群x(x=1、2、3)がそれぞれの動作を終了した時点で、制御対象回路群x+1が動作し始めるパイプライン処理について説明する。
t=t1-1sに「処理開始信号」を示すフラグ信号を受信すると、制御対象回路群1が動作を開始し、制御対象回路群1から出力される出力結果に応じてプログラムカウンタのアドレス値が順次更新され、その値に応じた制御信号が制御基本回路1より出力される。t=t1-1eに制御対象回路群1の処理が終了し、それに応じて「処理終了信号」をフラグとして制御基本回路2へと出力する。t=t2-1s(t2-1s=t1-1e+1)に制御基本回路2において前記フラグがフラグ処理部において処理されると、制御対象回路群2の動作が開始される。
動作が開始されると、制御回路群1と同様に、出力結果に応じてプログラムカウンタのアドレス値が順次更新され、その値に応じた制御信号が制御基本回路2より出力される。制御対象回路群2の処理が終了されていないt=t1-2sにおいて、制御対象回路群1が再びフラグ信号を受信し、動作を開始すると、制御基本回路1と制御基本回路2とで、それぞれ独立にプログラムカウンタのアドレス値を更新できるので、独立かつ同時に制御対象回路群1と制御対象回路群2を制御可能となる。
同様にして、制御対象回路群3が制御基本回路2より出力されるフラグ信号により動作を開始する時刻t=t3-1sから、制御対象回路群1の処理が終了する時刻t1-2eの間は制御対象回路群1と制御対象回路群3を同時かつ独立に制御可能であり、時刻t=t2-2sからt=t3-1eの間は制御対象回路群2と制御対象回路群3を同時かつ独立に制御可能となる。
図4では、各制御対象回路群の処理が終了した時点で、次の制御基本回路に対してフラグを出力する例について示したが、フラグを出力するタイミングはこれに限らず、動作の途中でもフラグを出力することが可能である。そうすることにより、制御対象回路群1〜3の全てを同時かつ独立に制御する場合もありうる。
以上のように、プログラム可能なステートマシンとして機能する複数の制御基本回路を連携させて動作させることができるステートマシン回路により、制御対象回路群例えば、半導体回路群の高速処理が可能となる。更に本発明の実施の形態では、新たに制御する処理が追加されても、プログラムで処理内容を追加・変更ができるので、ハードウェアの再設計を必要とせず、追加の為のハードウェアコストや再設計の為の設計コストを削減できる。また、新たな処理を本発明に追加する際、CPUは本発明に対して設定を行うだけで、追加処理はステートマシン回路が実行するため、CPU負荷の増加を抑制できる効果があるとともに、低電力化が期待できる。
本実施の形態の出力結果処理において、制御対象回路群からの出力結果とプログラムメモリが有する複数の出力結果パターンのいずれかが一致した場合に、一致パターンをプログラムカウンタへ出力する場合を説明したが、一致した場合に限定する必要はない。例えば、不一致の場合や、ある定数値よりも大きい/小さい場合などのバリエーションが考えられ、設計者がアドレス値に応じたバリエーションを設定可能とする。これはフラグ処理及び、他の実施の形態についても同様である。
本実施の形態のフラグは自身の制御基本回路以外の制御基本回路から出力されるものとして説明した。しかしながら、フラグは制御基本回路から出力されるものとは限らず、図5に示すように、制御対象回路群や、制御対象回路群とは異なる外部回路40から出力される信号を用いても良い。これは他の実施の形態についても同様である。ここで、外部回路とは、本発明のステートマシン回路によって制御される半導体回路以外の半導体回路である。たとえば、本発明のステートマシン回路によって通信制御フレームの処理回路を制御するように構成する場合、伝送路上の電気信号から通信フレームを再生するデコーダ回路が外部回路となりうる。この場合、ステートマシン回路はデコーダ回路からのデコード完了信号をフラグ信号として受信して動作を開始する。その他の例としては、タイマ回路を外部回路としてその出力を本発明のステートマシン回路へ入力する構成をとれば、一定時間ごとにリンク維持動作など特定の動作を自動実行する機能を実装することが可能となる。
[第2の実施の形態]
第1の実施の形態の制御基本回路においては、セレクタにより、制御対象回路群から出力される演算結果を反映して、次のプログラムカウンタのアドレス値を指定する方法か、他の制御基本回路より出力されるフラグを反映して、次のアドレス値を指定する方法のいずれかが選択された。つまり、制御対象回路群からの演算結果とフラグ結果の両方を反映して、次のアドレス値を指定することはできなかった。第2の実施の形態は、これら2つの結果の両方を反映させ、複数の制御対象回路群の制御方法に関して、柔軟性を向上させる為の方法に関するものである。
本実施の形態では、第1の実施の形態における制御基本回路に、出力結果処理部での処理結果とフラグ処理部での処理結果の2つの結果をプログラムカウンタに反映させる加工部をさらに備えることを特徴とする。本実施の形態の構成図を図6に示す。第1の実施の形態との差分は、K個の制御基本回路(20−1〜20−K)それぞれに対し、出力結果処理部21とフラグ処理部22の出力を入力として演算処理を行い、その演算結果をプログラムカウンタへと出力する加工部30が備えられていることである。
第1の実施の形態においては、出力結果処理部からの結果やフラグ処理部からの結果を次の制御信号へ反映されるようになっていたが、加工部を備えることにより、それらの結果を制御信号へと反映させる時間や組み合わせを任意に制御することが可能となる。
加工部30の構成について図7を用いて説明する。加工部30は出力結果処理部21からの結果を保持するためのレジスタO(31)、フラグ処理部22からの結果を保持するためのレジスタF(32)、さらに2つの保持結果に対して演算を加える演算器33と演算結果を判定するためのパターン判定回路34により構成される。出力結果処理部21からの出力とフラグ処理部22からの出力は、各々の結果を保存するためのレジスタO(31)とレジスタF(32)に接続され、更に各レジスタの出力は演算器33の入力とされる。演算器33からの出力はパターン判定回路34へと接続され、判定結果が加工部30の出力信号となる。
プログラムメモリ25には、各プログラムカウンタのアドレス値に対応して、出力結果処理部からの信号及びフラグ処理部からの結果をレジスタで保持するか否かと、演算器33での出力結果に対してパターン照合を行う為のパターンを予め設定しておく。演算器33は加減算器や論理演算器など任意のものでよい。
図8は、本発明の第2の実施の形態に係るステートマシン回路を動作させる場合のプログラム内容の一例である。図8に示すプログラム内容は、アドレス値n+k+mでの制御信号を出力する際に、アドレス値nでの出力結果処理部での出力結果とアドレス値n+kでのフラグ処理部の出力結果を反映させる動作を実現するものである。
制御基本回路のプログラムカウンタにおいて、アドレスnが指定されると、セレクタにおいては、出力結果処理部での処理が選択され、図3の出力結果処理フローが実行されるとともに、出力処理の結果が加工部へと出力される。加工部へと出力された結果はレジスタOに保存される。一方、出力処理部での結果を受け、プログラムカウンタでは次のアドレス値を示すn+1が出力される。さらにアドレスが進み、n+kの時、セレクタにおいては、フラグ処理部での処理が選択され、図3のフラグ処理フローが実行されるとともに、フラグ処理部での結果が加工部へと出力され、その結果はレジスタFに保存される。
なお、レジスタO(31)に保存されている内容はアドレスnで保存された信号がそのまま保持されている。加工部30での保存処理とは別に、セレクタにおいてフラグ処理が選択されたので、フラグ処理の処理結果を受け、プログラムカウンタ24では次のアドレス値を示すn+k+1が出力される。さらにアドレスが進み、n+k+mの時、セレクタ23において加工部30での処理が選択されると、加工部30で保存していた出力結果処理の結果やフラグを用いた処理が実行される。この時の動作について、図9に示す処理フローを用いて説明する。
セレクタ23において加工部での処理が選択されると(S2−2)、レジスタOとレジスタFに保存されている結果が各レジスタに接続されている演算器33へと出力され(S2−3)、演算処理が実行される(S2−4)。その演算結果と、アドレスn+k+mでのプログラムに記載されている演算結果パターンを照合し(S2−5)、一致した場合は、パターンに基づく次の制御信号を出力するアドレス値へとジャンプする(S2−6)。一致しなかった場合は、現在のアドレス値に+1をして(S2−7)、次の制御信号を制御対象回路群へと出力する(S2−8)。
尚、本実施の形態の動作説明においては、出力結果処理部での結果とフラグ処理部での結果の両方を保持して加工部での処理を実行した動作例を説明したが、いずれかの結果1つを保持した後に加工部の処理を実行する場合も有りうる。
また、本実施の形態の動作説明においては、加工部において演算した結果が、プログラムに搭載しているパターンと一致しない場合は、次のアドレス値を+1すると説明したが、+1でなく、そのまま(+0)としても良い。
以上のように、本発明のステートマシン回路によれば、単純なハードウェアの複数枚の組み合わせにより、複数の制御対象回路群、例えば半導体回路群を自律的に連携して動作させることができるので、高速処理が可能となる。また、新規機能を追加しても新たにハードウェアを追加することなく任意に制御内容を変更することができるので、ハードウェアコスト及び再設計にかかるコストを低減することができる。さらに、CPUで処理を実行させずに新規制御処理を追加できるので、CPU負荷の著しい増加を抑制することができるという極めて優れた効果を奏する。
本発明は、大量のトラヒックを処理する高速処理性と新規通信サービスに対応できる柔軟性の両立が必要な回路、例えば、通信中継装置における通信用SoCのステートマシン回路等に利用することができる。
10、10−1〜10−K、10−N、10−M…制御対象回路群、20、20−1〜20−K…制御基本回路、21…出力結果処理部、22…フラグ処理部、23…セレクタ、24…プログラムカウンタ、25…プログラムメモリ、30…加工部、31…レジスタO、32…レジスタF、33…演算器、34…パターン判定回路、40…制御対象回路群又は外部回路。

Claims (4)

  1. 複数の制御対象回路群を制御信号により制御し、相互にフラグ信号を送受信する制御基本回路を複数個備え、
    前記制御基本回路は、
    前記制御信号の情報と、出力結果パターンの情報と、前記フラグ信号の情報と、フラグパターンの情報と少なくとも予め保存してあるプログラムメモリと、
    前記プログラムメモリのアドレスを指定するプログラムカウンタと、
    前記制御対象回路群から出力される信号について前記出力結果パターンとのマッチングを行った結果を出力する出力結果処理手段と、
    他の制御基本回路から出力されるフラグ信号について前記フラグパターンとのマッチングを行った結果を出力するフラグ処理手段と、
    前記出力結果処理手段の出力及び前記フラグ処理手段の出力を少なくとも含む複数の出力からいずれかを選択するセレクタとを備え、
    前記セレクタの出力に基づいて前記プログラムカウンタにより指定されるアドレスを決定し、決定されたアドレスに対応する前記制御信号及び前記フラグ信号のうち少なくともいずれかの信号を前記プログラムメモリから出力する
    ステートマシン回路。
  2. 前記制御基本回路は、前記出力結果処理手段の出力と前記フラグ処理手段の出力を処理する加工手段を備え、
    前記プログラムメモリには、演算結果パターンの情報を予め保存しておき、
    前記加工手段は、前記出力結果処理手段の出力と前記フラグ処理手段の出力を入力として演算処理を行う演算処理手段と、
    前記演算処理の出力について前記演算結果パターンとのマッチングを行う判定手段を備え、
    前記セレクタは、前記出力結果処理手段と前記フラグ処理手段と前記加工手段の出力のいずれかを選択し、
    前記セレクタにおいて前記加工手段の出力が選択された場合には、前記判定手段の出力に基づいて前記プログラムカウンタにより指定されるアドレスを決定し、決定されたアドレスに対応する前記制御信号及び前記フラグ信号のうち少なくともいずれかの信号を前記プログラムメモリから出力すること
    を特徴とする請求項1記載のステートマシン回路。
  3. 前記加工手段は、前記出力結果処理手段の出力と前記フラグ処理手段の出力のうち少なくともいずれか一つを保持しておくレジスタを備え、前記プログラムメモリには、前記レジスタに前記出力結果処理手段の出力と前記フラグ処理手段の出力を保持するか否かを判断するための情報を保存しておき、前記情報に基づいて、前記出力結果処理手段の出力と前記フラグ処理手段の出力のうち少なくともいずれか一つを保持し、前記演算処理手段は、前記レジスタの内容を用いて演算処理を行うこと
    を特徴とする請求項2記載のステートマシン回路。
  4. 前記フラグ処理手段に前記制御対象回路群からの出力及び前記制御対象回路群以外のステートマシン回路の動作を制御する信号を出力する機能をもつ外部回路の出力の少なくともいずれかを前記フラグ信号として入力すること
    を特徴とする請求項1乃至3のいずれか一つに記載のステートマシン回路。
JP2013149750A 2013-07-18 2013-07-18 ステートマシン回路 Expired - Fee Related JP5977209B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2013149750A JP5977209B2 (ja) 2013-07-18 2013-07-18 ステートマシン回路

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2013149750A JP5977209B2 (ja) 2013-07-18 2013-07-18 ステートマシン回路

Publications (2)

Publication Number Publication Date
JP2015022495A JP2015022495A (ja) 2015-02-02
JP5977209B2 true JP5977209B2 (ja) 2016-08-24

Family

ID=52486895

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2013149750A Expired - Fee Related JP5977209B2 (ja) 2013-07-18 2013-07-18 ステートマシン回路

Country Status (1)

Country Link
JP (1) JP5977209B2 (ja)

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS62171032A (ja) * 1986-01-17 1987-07-28 マ−チン・マリエツタ・コ−ポレ−シヨン パイプライン式演算装置用マイクロシ−ケンサ
JP2825009B2 (ja) * 1989-06-15 1998-11-18 株式会社日立製作所 記号列検索方法および装置
CA2038822A1 (en) * 1990-04-26 1991-10-27 Jordon W. Woods High speed processor for digital signal processing
US5475829A (en) * 1993-03-22 1995-12-12 Compaq Computer Corp. Computer system which overrides write protection status during execution in system management mode
JP3063694B2 (ja) * 1997-07-31 2000-07-12 日本電気株式会社 ステートマシン制御回路
US7093023B2 (en) * 2002-05-21 2006-08-15 Washington University Methods, systems, and devices using reprogrammable hardware for high-speed processing of streaming data to find a redefinable pattern and respond thereto
JP2004054761A (ja) * 2002-07-23 2004-02-19 Canon Inc データ処理装置及び方法
JP4729389B2 (ja) * 2005-11-21 2011-07-20 三菱電機株式会社 パターン照合装置、パターン照合方法、パターン照合プログラム及び記録媒体
JP4994254B2 (ja) * 2007-03-08 2012-08-08 ルネサスエレクトロニクス株式会社 データプロセッサ及び制御システム
US8181003B2 (en) * 2008-05-29 2012-05-15 Axis Semiconductor, Inc. Instruction set design, control and communication in programmable microprocessor cores and the like

Also Published As

Publication number Publication date
JP2015022495A (ja) 2015-02-02

Similar Documents

Publication Publication Date Title
US7600101B2 (en) Multithreaded hardware systems and methods
JP2019517065A (ja) 再構成可能な分散処理
US7716458B2 (en) Reconfigurable integrated circuit, system development method and data processing method
US8190856B2 (en) Data transfer network and control apparatus for a system with an array of processing elements each either self- or common controlled
US9753769B2 (en) Apparatus and method for sharing function logic between functional units, and reconfigurable processor thereof
US10476492B2 (en) Structures and operations of integrated circuits having network of configurable switches
WO2012132692A1 (ja) 並列処理システム及び並列処理システムの動作方法
JP2010072843A (ja) 検証用デバイス及び検証装置並びに検証システム
JP6277971B2 (ja) 情報処理装置
CN111767995A (zh) 运算方法、装置及相关产品
US20080195839A1 (en) Reconfigurable, Modular and Hierarchical Parallel Processor System
CN111103959B (zh) 寄存器复位系统及芯片
JP4809497B2 (ja) 複数の独立したシーケンスプログラムを並列実行するプログラマブルコントローラ
JP5977209B2 (ja) ステートマシン回路
CN111383704B (zh) 一种存储器内建自测试电路和对存储器的测试方法
JP2008090455A (ja) マルチプロセッサ信号処理装置
JP6365387B2 (ja) 電子制御装置
US20150162927A1 (en) Semiconductor integrated circuit device and data processing system
WO2014103235A1 (ja) 演算装置及び演算方法
US12013781B2 (en) Processing device using variable stride pattern
US20170168873A1 (en) Method, device, and system for deciding on a distribution path of a task
JP6669841B2 (ja) 回路検証装置、回路検証方法、および、コンピュータ・プログラム
JP6256088B2 (ja) ベクトルプロセッサ、情報処理装置および追い越し制御方法
US20230084298A1 (en) Processing Device Using Variable Stride Pattern
US11216259B1 (en) Performing multiple functions in single accelerator program without reload overhead in heterogenous computing system

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20150825

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20160426

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20160517

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20160705

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20160719

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20160721

R150 Certificate of patent or registration of utility model

Ref document number: 5977209

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees