(57)【要約】【課題】即応性を向上すること。【解決手段】本発明に係る半導体装置９は、発生したイベントを処理する第１の状態と、イベントを処理しない複数の第２の状態とのうち、いずれかの状態で動作する。半導体装置９は、半導体装置９の状態を制御するとともに、半導体装置９の状態を示す状態信号を出力する制御回路９１と、複数の第２の状態のそれぞれについて、第２の状態から第１の状態に切り替えてイベントを処理可能となるために必要な切替時間が格納される切替時間記憶回路９２と、制御回路９１から出力された状態信号が示す第２の状態に対応する切替時間を選択し、現在時刻に選択した切替時間を加算した時刻が、イベントが発生する時刻となったときに、イベントの発生を事前に通知する通知信号を出力する通知回路９３を備える。制御回路９１は、通知回路９３からの通知信号に応じて、半導体装置９の状態を、第２の状態から前記第１の状態に切り替える。【選択図】図９
2017054287.tif 000002
【特許請求の範囲】
【請求項１】
発生したイベントを処理する第１の状態と、前記イベントを処理しない複数の第２の状態とのうち、いずれかの状態で動作する半導体装置であって、
前記半導体装置の状態を制御するとともに、前記半導体装置の状態を示す状態信号を出力する制御回路と、
前記複数の第２の状態のそれぞれについて、前記第２の状態から前記第１の状態に切り替えて前記イベントを処理可能となるために必要な切替時間が格納される切替時間記憶回路と、
前記半導体装置の状態が前記第２の状態である場合、前記制御回路から出力された状態信号が示す第２の状態に対応する切替時間を前記切替時間記憶回路から選択し、現在時刻に前記選択した切替時間を加算した時刻が、前記イベントが発生する時刻となったときに、前記イベントの発生を事前に通知する通知信号を前記制御回路に出力する通知回路と、を備え、
前記制御回路は、前記通知回路からの通知信号に応じて、前記半導体装置の状態を、前記第２の状態から前記第１の状態に切り替える、
半導体装置。
【請求項２】
前記第１の状態は、通常状態であり、
前記複数の第２の状態は、前記通常状態よりも低消費電力である複数の省電力状態を含む、
請求項１に記載の半導体装置。
【請求項３】
前記第１の状態は、前記通常状態において前記イベントの処理を実行する状態であり、
前記第２の状態は、さらに、前記通常状態において前記イベント以外の処理を実行する状態を含む、
請求項２に記載の半導体装置。
【請求項４】
前記制御回路は、
電源設定レジスタを有し、前記半導体装置における電源状態を、前記電源設定レジスタに設定された設定値に応じた電源状態となるように制御する電源制御回路と、
前記半導体装置の状態の制御として、前記電源設定レジスタに設定値を設定する主制御回路と、
前記電源設定レジスタに格納された設定値に基づいて、前記半導体装置の状態を示すように前記状態信号を生成する信号生成回路と、を有する、
請求項２に記載の半導体装置。
【請求項５】
前記制御回路は、
クロック設定レジスタを有し、前記半導体装置におけるクロック供給状態を、前記クロック設定レジスタに設定された設定値に応じたクロック供給状態となるように制御するクロック制御回路と、
前記半導体装置の状態の制御として、前記クロック設定レジスタに設定値を設定する主制御回路と、
前記クロック設定レジスタに格納された設定値に基づいて、前記半導体装置の状態を示すように前記状態信号を生成する信号生成回路と、を有する、
請求項２に記載の半導体装置。
【請求項６】
前記複数の省電力状態は、第１の省電力状態と、前記第１の省電力状態よりも低消費電力かつ前記切替時間が長い第２の省電力状態と、を有し、
前記制御回路は、前記半導体装置の状態を、前記第１の省電力状態から前記第２の省電力状態に切り替え可能である、
請求項２に記載の半導体装置。
【請求項７】
前記半導体装置は、さらに、
前記複数の第２の状態のそれぞれについて、前記第２の状態に切り替えるために必要な時間と、当該第２の状態から前記第１の状態に切り替えて前記イベントを処理可能となるために必要な切替時間との合計時間を示す閾値が格納される閾値記憶回路と、
現在時刻に前記第２の状態に対応する閾値が示す時間を加算した時刻が、前記イベントが発生する時刻以降の時刻である場合、当該閾値に対応する第２の状態を除外して前記半導体装置の次の状態の候補を示す次状態指示信号を前記制御回路に出力する判定回路と、を備え、
前記制御回路は、前記判定回路から出力された次状態指示信号が示す候補から除外された第２の状態への切り替えを抑止する、
請求項１に記載の半導体装置。
【請求項８】
前記制御回路は、さらに、前記状態信号を前記判定回路にも送信し、
前記判定回路は、現在時刻に前記第２の状態に対応する閾値が示す時間を加算した時刻が、前記イベントが発生する時刻以降の時刻である場合であっても、前記制御回路から送信された状態信号が示す前記半導体装置の状態が、当該閾値に対応する第２の状態であるときには、当該閾値に対応する第２の状態を前記半導体装置の次の状態の候補から除外しない、
請求項７に記載の半導体装置。
【請求項９】
前記切替時間記憶回路は、複数の切替時間レジスタを有し、
前記複数の切替時間レジスタのそれぞれは、前記複数の第２の状態の切替時間のそれぞれが格納され、
前記半導体装置は、さらに、
前記イベントが発生する時刻が格納される次イベント時刻レジスタと、
前記現在時刻を計時するタイマカウンタと、
前記状態信号が示す第２の状態に対応する切替時間レジスタに格納された切替時間を選択するマルチプレクサと、
前記タイマカウンタが計時する現在時刻に、前記マルチプレクサが選択した切替時間が示す切替時間を加算した時刻を算出する加算器と、
前記加算器によって算出された時刻が、前記次イベント時刻レジスタに格納された時刻以降の時刻となった場合に、前記通知信号を出力する比較器と、を備えた、
請求項１に記載の半導体装置。
【請求項１０】
前記半導体装置は、産業ネットワークシステムにおけるスレーブ機器に含まれるものであり、
前記産業ネットワークシステムにおけるマスター機器から送信されたイベントの受信を、前記イベントの発生として処理する、
請求項１に記載の半導体装置。
【請求項１１】
発生したイベントを処理する第１の状態と、前記イベントを処理しない複数の第２の状態とのうち、いずれかの状態で動作する半導体装置の状態制御方法であって、
前記半導体装置の状態を制御する制御回路から、前記半導体装置の状態を示す状態信号を受信し、
前記半導体装置の状態が前記第２の状態である場合、前記複数の第２の状態のそれぞれについて、前記第２の状態から前記第１の状態に切り替えて前記イベントを処理可能となるために必要な切替時間が格納される切替時間記憶回路から、前記制御回路から出力された状態信号が示す第２の状態に対応する切替時間を選択し、
現在時刻に前記選択した切替時間を加算した時刻が、前記イベントが発生する時刻となったときに、前記制御回路によって前記半導体装置の状態を前記第２の状態から前記第１の状態に切り替えさせるために、前記イベントの発生を事前に通知する通知信号を前記制御回路に出力する、
半導体装置の状態制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、半導体装置及び半導体装置の状態制御方法に関し、例えば複数の状態のいずれかで動作する半導体装置に関する。
【背景技術】
【０００２】
マスター機器からの周期的もしくは予定された時刻に送信される情報に応じて、スレーブ機器で制御を行うシステムを構成することがある（例えば、特許文献１）。特に、産業用ネットワーク機器では、スレーブ機器は、マスター機器から情報を受け取った後、できるだけ早く、その情報を解析し、解析結果に応じた制御を行う即応性が求められている。言い換えると、スレーブ機器は、イベントの発生に応じて、そのイベントを即座に処理する即応性が求められている。
【０００３】
一方で、このような産業ネットワーク機器では、できるだけ消費電力を低減し、電力効率を向上することも求められている。マスター機器からの情報に応じた処理の終了後にスレーブ機器を省電力モードに移行させることで消費電力を低減することができる。しかしながら、スレーブ機器を省電力モードに移行させてしまうと、マスター機器からの情報に応じて省電力モードから復帰して、その情報を処理可能となるまでに時間がかかってしまうため、即応性が損なわれてしまうという問題がある。また、省電力モードから復帰するまでの時間を短縮するために、単純にスレーブ機器のＣＰＵ（Central Processing Unit）の周波数を上げてしまうと、消費電力が増大し、電力効率が低下してしまうという問題がある。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特表２００９−５４５０４８号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
上述したように、発生したイベントを即座に処理する即応性が求められているという問題がある。
【０００６】
その他の課題と新規な特徴は、本明細書の記述および添付図面から明らかになるであろう。
【課題を解決するための手段】
【０００７】
一実施の形態によれば、半導体装置は、前記半導体装置の状態を制御する制御回路と、前記半導体装置の状態が前記第２の状態である場合、前記制御回路から出力された状態信号が示す第２の状態に対応する切替時間を選択し、現在時刻に前記選択した切替時間を加算した時刻が、前記イベントが発生する時刻となったときに、前記半導体装置の状態を前記第２の状態から前記第１の状態に切り替えさせるために、前記イベントの発生を事前に通知する通知信号を前記制御回路に出力する事前通知回路と、を備えるものである。
【発明の効果】
【０００８】
前記一実施の形態によれば、即応性を向上することができる。
【図面の簡単な説明】
【０００９】
【図１】実施の形態１に係る産業ネットワークシステムの構成を示す図である。
【図２】実施の形態１に係るＬＳＩの構成を示す図である。
【図３】実施の形態１に係る事前通知生成回路の構成を示す図である。
【図４】実施の形態１に係るＬＳＩの第１の動作例を示すタイミングチャートである。
【図５】実施の形態１に係るＬＳＩの第２の動作例を示すタイミングチャートである。
【図６】実施の形態１に係るＬＳＩの第３の動作例を示すタイミングチャートである。
【図７】実施の形態２に係るＬＳＩの構成を示す図である。
【図８】実施の形態２に係る事前通知生成回路の構成を示す図である
【図９】実施の形態に係るＬＳＩの概略構成を示す図である。
【発明を実施するための形態】
【００１０】
以下、図面を参照しながら、好適な実施の形態について説明する。以下の実施の形態に示す具体的な数値などは、実施の形態の理解を容易とするための例示にすぎず、特に断る場合を除き、それに限定されるものではない。また、以下の記載及び図面では、説明の明確化のため、当業者にとって自明な事項などについては、適宜、省略及び簡略化がなされている。
【００１１】
＜実施の形態１＞
まず、図１を参照して、実施の形態１に係る産業ネットワークシステム１の構成について説明する。図１に示すように、産業ネットワークシステム１は、マスター機器２と、スレーブ機器３と、被制御装置４とを有する。
【００１２】
マスター機器２と、スレーブ機器３とは、所定のネットワークによって相互に接続されている。このネットワークの規格として、任意の規格を採用してよい。すなわち、このネットワークの規格として、例えば、イーサネット（登録商標）を採用してよい。スレーブ機器３と、被制御装置４とは、所定のネットワークによって相互に接続されている。このネットワークの規格として、任意のモーションネットワーク規格を採用してよい。
【００１３】
マスター機器２は、スレーブ機器３を制御する制御装置である。マスター機器２は、例えば、ＰＬＣ（Programmable Logic Controller）である。マスター機器２は、イベントを発生する。より具体的には、マスター機器２は、所定時間間隔で周期的に、もしくは、予め定められた時刻に、処理の実行を指示する指示情報をスレーブ機器３に送信する。
【００１４】
スレーブ機器３は、被制御装置４を制御する制御装置である。スレーブ機器３は、例えば、サーボコントローラである。スレーブ機器３は、発生したイベントを処理する。より具体的には、スレーブ機器３は、マスター機器２から受信した指示情報に応じて、処理を実行する。スレーブ機器３は、図２を参照して後述するＬＳＩ（Large Scale Integration）１０を有しており、そのＬＳＩ１０によって処理を実行する。
【００１５】
スレーブ機器３はイベントの発生に応じて実行する処理として、例えば、以下の処理のうち、少なくとも１つを実行させることができる。すなわち、指示情報は、例えば、以下の（１）〜（３）のいずれかの処理の実行を指示する情報である。
（１）スレーブ機器３の状態を示す情報のマスター機器２への送信
（２）スレーブ機器３の被制御装置４に対する制御パラメータの変更
（３）被制御装置４の制御
【００１６】
このように、上述のマスター機器２から送信された指示情報のスレーブ機器３における受信のように、スレーブ機器３が処理を実行する契機となる事象をイベントと呼ぶ。以下、イベントが、マスター機器２からの指示情報の受信である例について説明するが、スレーブ機器３が処理を実行する契機となる事象であれば、他の事象をイベントとして扱ってもよい。例えば、スレーブ機器３が、マスター機器２からの指示情報の受信に関係なく、定期的に処理（例えば、被制御装置４の制御）を実行する場合、現在時刻が、その処理の実行時刻に到達したことをイベントとして扱ってもよい。この場合、イベントの発生として、例えば、ＬＳＩ１０が有するタイマ（図示せず）から所定時間間隔で周期的に発生するタイマ割り込みを利用することができる。
【００１７】
被制御装置４は、スレーブ機器３からの制御に応じて動作する。例えば、産業ネットワークシステム１が生産システムである場合、被制御装置４は、製品を組み立てるロボットが有するモータを有する。この場合、スレーブ機器３は、このロボットのモータを制御する。
【００１８】
なお、図１では、スレーブ機器３及び被制御装置４が１つである例について示しているが、これに限られない。産業ネットワークシステム１は、複数のスレーブ機器３と、複数の被制御装置４を有していてもよい。また、スレーブ機器３の数と、被制御装置４の数も、同数であることに限られない。例えば、１つのスレーブ機器３が、複数の被制御装置４を制御してもよい。
【００１９】
続いて、図２を参照して、実施の形態１に係るスレーブ機器３が有するＬＳＩ１０の構成について説明する。図２に示すように、ＬＳＩ１０は、ＣＰＵ１１と、ＲＡＭ（Random Access Memory）１２と、ペリフェラル１３と、システムバス１４と、事前通知生成回路１５と、ＬＳＩ制御回路１６とを有する。
【００２０】
ＣＰＵ１１は、ＬＳＩ１０内の他の回路１２〜１６と協働して、上述の処理を実行する演算処理回路である。すなわち、ＣＰＵ１１は、イベントの発生に応じて処理を実行する。ＣＰＵ１１は、例えば、上述の処理をＣＰＵ１１に実行させる命令を含むプログラムを実行することで、上述の処理を実行する。
【００２１】
ＲＡＭ１２は、ＣＰＵ１１が上述の処理を実行するために利用する情報が格納される記憶回路である。すなわち、ＲＡＭ１２に格納される情報には、例えば、上述のプログラムが含まれる。
【００２２】
ペリフェラル１３は、ＣＰＵ１１に代替して、専用の処理を実行する周辺回路である。例えば、ＬＳＩ１０は、ペリフェラル１３として、被制御装置４の制御（例えばモータ制御）を専用に実行する回路を有していてもよい。この場合、ＣＰＵ１１は、ペリフェラル１３に対して被制御装置４の制御を指示する。そして、ペリフェラル１３は、ＣＰＵ１１からの指示に応じて、ＣＰＵ１１に代替して被制御装置４の制御を実行してもよい。例えば、ペリフェラル１３は、ＣＰＵ１１がＲＡＭ１２に格納した被制御装置４を制御するための情報を、ＲＡＭ１２から被制御装置４にＤＭＡ（Direct Memory Access）転送する処理を実行する。
【００２３】
システムバス１４は、ＬＳＩ１０内の各回路１１〜１３、１５、１６を相互に接続する。ＬＳＩ１０内の各回路１１〜１３、１５、１６は、システムバス１４を介して、相互に各種情報（各種信号）を入出力する。例えば、ＣＰＵ１１及びペリフェラル１３のそれぞれは、システムバス１４を介してＲＡＭ１２に格納される情報を取得する。また、例えば、ＣＰＵ１１は、システムバス１４を介して上述の指示をする信号をペリフェラル１３に出力する。
【００２４】
事前通知回路１５は、イベントが発生することを事前に通知する事前通知信号１７を、ＣＰＵ１１及びＬＳＩ制御回路１６に出力する回路である。すなわち、事前通知信号１７は、イベントが発生する時刻よりも、所定時間前の時刻で出力される。なお、事前通知回路１５は、上述の所定時間として、後述のＬＳＩ状態信号１８が示す現在のＬＳＩ１０の状態に応じた時間を選択する。
【００２５】
ＬＳＩ制御回路１６は、ＬＳＩ１０の状態を制御する回路である。また、ＬＳＩ制御回路１６は、現在のＬＳＩ１０の状態を示すＬＳＩ状態信号１８を、事前通知生成回路１５に出力する。ＬＳＩ制御回路１６は、主制御回路１０１と、電源制御回路１０２と、クロック制御回路１０３と、エンコード回路１０４とを有する。電源制御回路１０２は、電源設定レジスタ１１２を有する。クロック制御回路１０３は、クロック設定レジスタ１１３を有する。
【００２６】
主制御回路１０１は、ＬＳＩ１０の状態を制御する回路である。主制御回路１０１がＬＳＩ１０の状態を切り替えるか否かを判定する条件の１つとして事前通知信号１７がある。主制御回路１０１は、事前通知生成回路１０５から出力された事前通知信号１７に基づいて、ＬＳＩ１０の状態を切り替えるか否かを判定する。主制御回路１０１は、ＬＳＩ１０の状態を切り替えないと判定した場合、現在の状態を維持する。主制御回路１０１は、ＬＳＩ１０の状態を切り替えると判定した場合、ＬＳＩ１０の状態を切り替える。
【００２７】
ＬＳＩ１０の状態を切り替える場合、主制御回路１０１は、ＬＳＩ１０における電源状態及びクロック供給状態が、切り替え後の状態に応じた電源状態及びクロック供給状態となるように電源制御回路１０２及びクロック制御回路１０３を制御する。より具体的には、主制御回路１０１は、切り替え後の状態に応じた電源状態を示す電源設定値を、電源設定レジスタ１１２に設定する。この電源状態として、ＬＳＩ１０内の任意の回路に対して電力を供給するか遮断するか否か、及び、ＬＳＩ１０内の任意の回路に対して供給する電圧値のうち、少なくとも１つを設定することができる。また、主制御回路１０１は、切り替え後の状態に応じたクロック供給状態を示すクロック設定値を、クロック設定レジスタ１１３に設定する。このクロック供給状態として、ＬＳＩ１０内の任意の回路に対してクロック信号を供給するか遮断するか否か、及び、ＬＳＩ１０内の任意の回路に対して供給するクロック信号の周波数のうち、少なくとも１つを設定することができる。
【００２８】
電源制御回路１０２は、電源設定レジスタ１１２に設定された電源設定値が示す電源状態となるように、ＬＳＩ１０の電源状態を制御する。クロック制御回路１０３は、クロック設定レジスタ１１３に設定されたクロック設定値が示すクロック供給状態となるように、ＬＳＩ１０のクロック供給状態を制御する。
【００２９】
エンコード回路１０４は、電源設定レジスタ１１２に設定された電源設定値、及び、クロック設定レジスタ１１３に設定されたクロック設定値をエンコードし、現在のＬＳＩ１０の状態を示すＬＳＩ状態信号１８を生成する。例えば、エンコード回路１０４は、電源設定値及びクロック設定値の合計ビット数よりも少ないビット数でＬＳＩ１０の状態を示すＬＳＩ状態信号１８を生成する。エンコード回路１０４は、生成したＬＳＩ状態信号１８を事前通知生成回路１０５に出力する。
【００３０】
なお、ＬＳＩ状態信号１８は、上述したように、電源設定値及びクロック設定値をエンコードした値に限られない。例えば、ＬＳＩ制御回路１６は、電源設定値及びクロック設定値を、そのままＬＳＩ状態信号１８として事前通知生成回路１５に出力してもよい。しかしながら、好ましくは、上述したように、電源設定値及びクロック設定値をエンコードし、現在のＬＳＩ１０の状態をより簡潔に示す値を事前通知生成回路１５に通知することで、事前通知生成回路１５が電源設定値及びクロック設定値の組み合わせから現在のＬＳＩ１０の状態を導出することを不要とすることができる。また、ＬＳＩ状態信号１８を伝送する信号線数を低減することができる。
【００３１】
続いて、図３を参照して、本実施の形態１に係る事前通知生成回路１５の構成について説明する。図３に示すように、事前通知生成回路１５は、次イベント時刻レジスタ２０と、タイマカウンタ２１と、状態Ａ用切替時間レジスタ２２と、状態Ｂ用切替時間レジスタ２３と、状態Ｃ用切替時間レジスタ２４と、マルチプレクサ２５と、加算器２６と、比較器２７とを有する。
【００３２】
次イベント時刻レジスタ２０は、ＣＰＵ１１によって、次にイベントが発生する時刻を示す値が格納される記憶回路である。次イベント時刻レジスタ２０は、自身に格納されている値を比較器２７に出力する。
【００３３】
タイマカウンタ２１は、現在時刻を計時する回路である。タイマカウンタ２１は、現在時刻を示す値を比較器２７に出力する。
【００３４】
状態Ａ用切替時間レジスタ２２〜状態Ｃ用切替時間レジスタ２４のそれぞれは、上述の所定時間を示す値が格納される。ここで、状態Ａ用切替時間レジスタ２２〜状態Ｃ用切替時間レジスタ２４のそれぞれは、ＬＳＩ１０が取り得る状態Ａ〜状態Ｃのそれぞれに対応する。言い換えると、状態Ａ用切替時間レジスタ２２〜状態Ｃ用切替時間レジスタ２４の数は、ＬＳＩ１０が取り得る状態の数と同数である。すなわち、本実施の形態１では、一例として、ＬＳＩ１０が取り得る状態が、状態Ａ、状態Ｂ、状態Ｃの３つの状態であるものとして説明する。しかしながら、ＬＳＩ１０が取り得る状態数は、これに限られない。ＬＳＩ１０が取り得る状態数は、２つであってもよく、４つ以上であってもよい。その場合には、切替時間レジスタの数も、その状態数と同数用意される。
【００３５】
ここで、一例として、状態Ａは、通常状態であり、状態Ｂは、状態Ａよりも低消費電力である第１の省電力状態であり、状態Ｃは、状態Ｂよりも低消費電力である第２の省電力状態であるものとして説明する。省電力状態として、例えば、以下の（１）〜（４）の状態のいずれか、もしくは、任意の２つ以上の組み合わせを採用してよい。
【００３６】
（１）ＬＳＩ１０内の任意の回路ブロックに対するクロック信号の供給を停止
（２）ＬＳＩ１０内の任意の回路ブロックに対する電源の供給を停止
（３）ＬＳＩ１０内の任意の回路ブロックに供給する電圧を低下させる
（４）ＬＳＩ１０内の任意の回路ブロックに供給するクロック信号の周波数を低下させる
【００３７】
例えば、（１）ＣＰＵ１１に対するクロック信号の供給を停止した状態を状態Ｂとし、（１）＋（２）ＣＰＵ１１に対するクロック信号の供給を停止し、かつ、ＣＰＵ１１に対する電源の供給を停止した状態を状態Ｃとしてもよい。また、例えば、（３）＋（４）ＣＰＵ１１に供給する電圧及びクロック信号の周波数を低下した状態を状態Ｂとし、（１）＋（２）ＣＰＵ１１に対するクロック信号の供給を停止し、かつ、ＣＰＵ１１に対する電源の供給を停止した状態を状態Ｃとしてもよい。例えば、ＬＳＩ制御回路１６は、ＣＰＵ１１のスリープ時間が第１の所定時間に達したときに、ＬＳＩ１０の状態を（３）＋（４）の状態Ｂとし、さらに第１の所定時間よりも長い第２の所定時間に達したときに、ＬＳＩ１０の状態を（１）＋（２）の状態Ｃとしてもよい。また、このＣＰＵ１１のスリープ中に、上述のペリフェラル１３による被制御装置４の制御を実施してもよい。なお、状態Ｂ及び状態Ｃ（省電力状態）として、これ以外の任意の状態を採用してもよいことは言うまでもない。
【００３８】
また、状態Ａ（通常状態）は、イベントの処理を実行する（イベントを処理することができる）状態と、イベント以外の処理を実行する（イベントを処理することができない）状態とを有する。
【００３９】
すなわち、ＬＳＩ１０の状態として、発生したイベントを処理する第１の状態と、発生したイベントを処理しない（又はできない）第２の状態とが存在する。第１の状態は、通常状態においてイベントの処理を実行する（イベントを処理することができる）状態である。第２の状態は、通常状態においてイベント以外の処理を実行する（イベントを処理することができない）状態と、複数の省電力状態とが存在する。
【００４０】
状態Ａ用切替時間レジスタ２２は、ＣＰＵ１１が、ＣＰＵ１１（ＬＳＩ１０）をイベント以外の処理を実行する状態からイベントの処理を実行する状態に切り替えてイベントを処理可能となるまでに必要な切替時間を示す値が格納される記憶回路である。この切替時間には、例えば、マスター機器２とスレーブ機器３との間でのタイマカウンタ２１を駆動するクロックのばらつき、イベントの処理を実行する状態に切り替え後にイベント処理を準備するための時間などを考慮して事前に決定されている。
【００４１】
状態Ｂ用切替時間レジスタ２３は、ＬＳＩ制御回路１６が、ＬＳＩ１０を状態Ｂから状態Ａに切り替えてイベントを処理可能となるまでに必要な切替時間を示す値が格納される記憶回路である。この切替時間には、例えば、状態Ｂから状態Ａへの切り替えに要する時間のばらつき、マスター機器２とスレーブ機器３との間でのタイマカウンタ２１を駆動するクロックのばらつき、状態Ａに切り替え後にイベント処理を準備するための時間などを考慮して事前に決定されている。
【００４２】
状態Ｃ用切替時間レジスタ２４は、ＬＳＩ制御回路１６が、ＬＳＩ１０を状態Ｃから状態Ａに切り替えてイベントを処理可能となるまでに必要な切替時間を示す値が格納される記憶回路である。この切替時間には、例えば、状態Ｃから状態Ａへの切り替えに要する時間のばらつき、マスター機器２とスレーブ機器３との間でのタイマカウンタ２１を駆動するクロックのばらつき、状態Ａに切り替え後にイベント処理を準備するための時間などを考慮して事前に決定されている。
【００４３】
マルチプレクサ２５は、状態Ａ用切替時間レジスタ２２〜状態Ｃ用切替時間レジスタ２４のうち、ＬＳＩ制御回路１６から出力されたＬＳＩ状態信号１８が示すＬＳＩ１０の状態に対応する切替時間レジスタから出力される値を選択し、加算器２６に出力する。すなわち、マルチプレクサ２５は、ＬＳＩ状態信号１８が示すＬＳＩ１０の状態が状態Ａである場合、状態Ａ用切替時間レジスタ２２から出力される値を選択し、加算器２６に出力する。また、マルチプレクサ２５は、ＬＳＩ状態信号１８が示すＬＳＩ１０の状態が状態Ｂである場合、状態Ｂ用切替時間レジスタ２３から出力される値を選択し、加算器２６に出力する。マルチプレクサ２５は、ＬＳＩ状態信号１８が示すＬＳＩ１０の状態が状態Ｃである場合、状態Ｃ用切替時間レジスタ２４から出力される値を選択し、加算器２６に出力する。
【００４４】
加算器２６は、タイマカウンタ２１から出力された値が示す現在時刻に、マルチプレクサ２５から出力された値が示す切替時間を加算した時刻を示す値を比較器２７に出力する。
【００４５】
比較器２７は、次イベント時刻レジスタ２０から出力された値が示す時刻と、加算器２６から出力された値が示す時刻とを比較する。比較器２７は、加算器２６からの値が示す時刻が、次イベント時刻レジスタ２０からの値が示す時刻以降である場合、ＣＰＵ１１及びＬＳＩ制御回路１６に出力する事前通知信号１７をアサートする。一方、比較器２７は、加算器２６からの値が示す時刻が、次イベント時刻レジスタ２０からの値が示す時刻よりも前の時刻である場合、ＣＰＵ１１及びＬＳＩ制御回路１６に出力する事前通知信号１７をアサートせず、ネゲートしたままとする。
【００４６】
すなわち、本構成によれば、ＬＳＩ１０の状態が状態Ａである場合には、現在時刻に対して、イベント以外の処理を実行する状態からイベントの処理を実行する状態に切り替えてイベントを処理可能となるまでに必要な切替時間を加算した時刻が、イベントが発生する時刻となったときに、事前通知信号１７がアサートされる。
【００４７】
また、ＬＳＩ１０の状態が状態Ｂ又は状態Ｃである場合には、現在時刻に対して、状態Ｂ又は状態Ｃから状態Ａに切り替えてイベントを処理可能となるまでに必要な切替時間を加算した時刻が、イベントが発生する時刻となったときに、事前通知信号１７がアサートされる。
【００４８】
本実施の形態１では、このような構成により、ＬＳＩ１０がイベントを処理しない状態であったとしても、イベントが発生する時刻になるまでに、イベントを処理する状態に戻すことができる。
【００４９】
以下、本実施の形態１に係るＬＳＩ１０の動作について説明する。なお、以下の説明では、状態Ａ用切替時間レジスタ２２には“２”が設定されており、状態Ｂ用切替時間レジスタ２３には“４”が設定されており、状態Ｃ用切替時間レジスタ２４には“６”が設定されている例について説明する。
【００５０】
まず、図４を参照して、ＬＳＩ１０の状態が状態Ａであるときに、イベントの発生が事前に通知される場合の動作について説明する。ここでは、時刻“１１”で、発生したイベントを処理し、事前通知信号１７がアサートされている状態から説明する。
【００５１】
Ｔ０：
ＣＰＵ１１は、次イベント時刻レジスタ２０に“２５”を設定する。例えば、イベントが発生する周期が時間“１４”が経過する毎の時刻と予め分かっている場合、ＣＰＵ１１は、イベント発生時のタイマカウンタ値“１１”に、その所定時間“１４”を加算することで得られた時刻“２５”を示す値を次イベント時刻レジスタ２０に格納する。また、これにより、タイマカウンタ２１から出力される値“１２”と、マルチプレクサ２５から出力された値“２”とを加算することで得られた時刻（加算器２６から出力されて比較器２７に入力される値）が“１４”となり、次イベント時刻レジスタ２０から出力される値が示す時刻“２５”よりも前の時刻となる。よって、比較器２７は、ＣＰＵ１１及びＬＳＩ制御回路１６に出力している事前通知信号１７をネゲートする。
【００５２】
Ｔ１：
タイマカウンタ２１から出力される値“２３”と、マルチプレクサ２５から出力された値“２”とを加算することで得られる時刻（加算器２６から出力されて比較器２７に入力される値）が“２５”となり、次イベント時刻レジスタ２０から出力される値が示す時刻“２５”以降の時刻となる。そのため、比較器２７は、ＣＰＵ１１及びＬＳＩ制御回路１６に出力している事前通知信号１７をアサートする。ＣＰＵ１１は、比較器２７から出力される事前通知信号１７のアサートに応じて、イベント以外の処理を実行する状態からイベントの処理を実行する状態への切り替えを開始する。すなわち、ＣＰＵ１１は、イベント以外の処理を終了するための処理を実行する。
【００５３】
Ｔ２：
イベント以外の処理を実行する状態からイベントの処理を実行する状態への切り替えが完了し、ＣＰＵ１１は、イベントの処理準備を行う。例えば、ＣＰＵ１１は、イベントの発生に応じて即時イベントを処理可能な状態となるための任意の処理を行う。
【００５４】
Ｔ３：
イベントが発生する。ＣＰＵ１１は、発生したイベントに応じた処理を実行する。
【００５５】
Ｔ４：
ＣＰＵ１１は、次イベント時刻レジスタ２０に“３９”を設定する。例えば、イベントが発生する周期が時間“１４”が経過する毎の時刻と予め分かっている場合、ＣＰＵ１１は、イベント発生時のタイマカウンタ値“２５”に、その所定時間“１４”を加算することで得られた時刻“３９”を示す値を次イベント時刻レジスタ２０に格納する。また、これにより、タイマカウンタ２１から出力される値“２６”と、マルチプレクサ２５から出力された値“２”とを加算することで得られた時刻（加算器２６から出力されて比較器２７に入力される値）が“２８”となり、次イベント時刻レジスタ２０から出力される値が示す時刻“３９”よりも前の時刻となる。よって、比較器２７は、ＣＰＵ１１及びＬＳＩ制御回路１６に出力している事前通知信号１７をネゲートする。
【００５６】
まず、図５を参照して、ＬＳＩ１０の状態が状態Ｂであるときに、イベントの発生が事前に通知される場合の動作について説明する。ここでは、時刻“１１”で、発生したイベントを処理し、事前通知信号１７がアサートされている状態から説明する。
【００５７】
Ｔ０：
ＣＰＵ１１は、次イベント時刻レジスタ２０に“２５”を設定する。なお、次イベント時刻レジスタ２０に格納する値の算出方法については、上述と同様である。また、上述と同様の理由により、比較器２７は、ＣＰＵ１１及びＬＳＩ制御回路１６に出力している事前通知信号１７をネゲートする。
【００５８】
Ｔ１：
ＬＳＩ制御回路１６は、ＬＳＩ１０の状態を状態Ｂに切り替えるとともに、状態Ｂを示すＬＳＩ状態信号１８を事前通知回路１５に出力する。これにより、事前通知回路１５のマルチプレクサ２５は、状態Ｂ用切替時間レジスタ２３から出力される値を選択し、加算器２６に出力する。
【００５９】
Ｔ２：
タイマカウンタ２１から出力される値“２１”と、マルチプレクサ２５から出力された値“４”とを加算することで得られる時刻（加算器２６から出力されて比較器２７に入力される値）が“２５”となり、次イベント時刻レジスタ２０から出力される値が示す時刻“２５”以降の時刻となる。そのため、比較器２７は、ＣＰＵ１１及びＬＳＩ制御回路１６に出力している事前通知信号１７をアサートする。ＬＳＩ制御回路１６は、比較器２７から出力される事前通知信号１７のアサートに応じて、状態Ｂから状態Ａへの切り替えを開始する。
【００６０】
Ｔ３：
状態Ｂから状態Ａへの切り替えが完了し、ＣＰＵ１１は、イベントの処理準備を行う。例えば、ＣＰＵ１１は、イベントの発生に応じて即時イベントを処理可能な状態となるための任意の処理を行う。
【００６１】
Ｔ４：
イベントが発生する。ＣＰＵ１１は、発生したイベントに応じた処理を実行する。
【００６２】
Ｔ５：
ＣＰＵ１１は、次イベント時刻レジスタ２０に“３９”を設定する。なお、次イベント時刻レジスタ２０に格納する値の算出方法については、上述と同様である。また、上述と同様の理由により、比較器２７は、ＣＰＵ１１及びＬＳＩ制御回路１６に出力している事前通知信号１７をネゲートする。
【００６３】
まず、図６を参照して、ＬＳＩ１０の状態が状態Ｂから状態Ｃに切り替え後に、イベントの発生が事前に通知される場合の動作について説明する。ここでは、時刻“１１”で、発生したイベントを処理し、事前通知信号１７がアサートされている状態から説明する。
【００６４】
Ｔ０：
ＣＰＵ１１は、次イベント時刻レジスタ２０に“２５”を設定する。なお、次イベント時刻レジスタ２０に格納する値の算出方法については、上述と同様である。また、上述と同様の理由により、比較器２７は、ＣＰＵ１１及びＬＳＩ制御回路１６に出力している事前通知信号１７をネゲートする。
【００６５】
Ｔ１：
ＬＳＩ制御回路１６は、ＬＳＩ１０の状態を状態Ｂに切り替えるとともに、状態Ｂを示すＬＳＩ状態信号１８を事前通知回路１５に出力する。これにより、事前通知回路１５のマルチプレクサ２５は、状態Ｂ用切替時間レジスタ２３から出力される値を選択し、加算器２６に出力する。
【００６６】
Ｔ２：
ＬＳＩ制御回路１６は、ＬＳＩ１０の状態を状態Ｃに切り替えるとともに、状態Ｃを示すＬＳＩ状態信号１８を事前通知回路１５に出力する。これにより、事前通知回路１５のマルチプレクサ２５は、状態Ｃ用切替時間レジスタ２４から出力される値を選択し、加算器２６に出力する。
【００６７】
Ｔ３：
タイマカウンタ２１から出力される値“１９”と、マルチプレクサ２５から出力された値“６”とを加算することで得られる時刻（加算器２６から出力されて比較器２７に入力される値）が“２５”となり、次イベント時刻レジスタ２０から出力される値“２５”以降の時刻となる。そのため、比較器２７は、ＣＰＵ１１及びＬＳＩ制御回路１６に出力している事前通知信号１７をアサートする。ＬＳＩ制御回路１６は、比較器２７から出力される事前通知信号１７のアサートに応じて、状態Ｃから状態Ａへの切り替えを開始する。
【００６８】
Ｔ４：
状態Ｃから状態Ａへの切り替えが完了し、ＣＰＵ１１は、イベントの処理準備を行う。例えば、ＣＰＵ１１は、イベントの発生に応じて即時イベントを処理可能な状態となるための任意の処理を行う。
【００６９】
Ｔ５：
イベントが発生する。ＣＰＵ１１は、発生したイベントに応じた処理を実行する。
【００７０】
Ｔ６：
ＣＰＵ１１は、次イベント時刻レジスタ２０に“３９”を設定する。なお、次イベント時刻レジスタ２０に格納する値の算出方法については、上述と同様である。また、上述と同様の理由により、比較器２７は、ＣＰＵ１１及びＬＳＩ制御回路１６に出力している事前通知信号１７をネゲートする。
【００７１】
以上に説明したように、実施の形態１に係るＬＳＩ１０の処理によれば、ＬＳＩ１０をイベントを処理しない状態に切り替えたとしても、イベントが発生する時刻になるまでに、ＬＳＩ１０をイベントに応じた処理を実行可能な状態に戻し、イベントの発生に応じて即時イベントを処理することが可能となる。
【００７２】
様々な処理を行うシステムでは、ソフトウェア制御またはハードウェア制御によってＬＳＩの状態が、イベントを処理できない状態になっている可能性がある。しかしながら、イベント発生時刻になってから通知を受ける場合、その時点からＬＳＩの状態切替が必要となる可能性があるため、その分だけイベントに応じた処理の実行が遅れる。他方、イベントを事前通知する時刻がイベント発生時刻に対して早すぎる場合、イベントの発生までの空き時間が生じるため、省電力状態または他の処理実行を阻害し、処理効率を低下させる可能性がある。
【００７３】
これに対して、図９に概略として示すように、本実施の形態１に係る半導体装置９（ＬＳＩ１０に対応）は、発生したイベントを処理する第１の状態（通常状態のイベントの処理を実行する状態に対応）と、イベントを処理しない複数の第２の状態（通常状態のイベントの処理を実行しない状態、省電力状態に対応）とのうち、いずれかの状態で動作する。
【００７４】
半導体装置９は、制御回路９１（ＬＳＩ制御回路１６及びＣＰＵ１１に対応）と、切替時間記憶回路９２（状態Ａ用切替時間レジスタ２２〜状態Ｃ用切替時間レジスタ２４に対応）と、通知回路９３（事前通知回路１５内の他回路２０、２１、２５〜２７に対応）とを備える。
【００７５】
制御回路９１は、半導体装置９の状態を制御するとともに、半導体装置９の状態を示す状態信号を出力する。切替時間記憶回路９２は、複数の第２の状態のそれぞれについて、第２の状態から第１の状態に切り替えてイベントを処理可能となるために必要な切替時間が格納される。通知回路９３は、半導体装置９の状態が第２の状態である場合、制御回路９１から出力された状態信号が示す第２の状態に対応する切替時間を切替時間記憶回路９２から選択し、現在時刻に選択した切替時間を加算した時刻が、イベントが発生する時刻となったときに、イベントの発生を事前に通知する通知信号を制御回路９１に出力する。
【００７６】
これによれば、ＬＳＩ状態に応じた事前通知信号を発生させることにより、適切な状態切替時間を確保し、イベント発生時刻までにはイベント処理準備を完了させることができる。その結果、ＬＳＩ状態制御の最適化とイベント処理の迅速な開始とを両立させることができる。また、ＬＳＩ状態に応じた切り替え時間を確保して事前通知信号を生成することで、イベント発生前に、ＬＳＩ状態の切り替えを完了させることができる。その結果、ＬＳＩ１０がいずれの状態であったとしても（例えば他処理の実行中または複数の省電力状態のいずれかであったとしても）、イベント発生時刻までに、ＬＳＩ１０をイベントに迅速に対応できる状態にすることができる。すなわち、本実施の形態１によれば、即応性を向上することができる。
【００７７】
また、本実施の形態１に係る半導体装置９では、上述の第１の状態は、通常状態であり、上述の複数の第２の状態は、通常状態よりも低消費電力である複数の省電力状態を含んでいる。すなわち、本実施の形態１では、ＬＳＩ１０を省電力状態に移行させたとしても、即応性が損なわれてしまうことはない。すなわち、本実施の形態１によれば、電力効率を向上しつつ、即応性を向上することができる。
【００７８】
なお、以上の説明では、ＣＰＵ１１及びＬＳＩ制御回路１６の両方に事前通知信号１７を出力する例について説明したが、これに限られない。例えば、ＣＰＵ１１のみに事前通知信号１７を出力するようにしてもよい。この場合、ＣＰＵ１１は、ＬＳＩ１０の状態が状態Ｂ又は状態Ｃである場合には、状態Ａへの切り替えをＬＳＩ制御回路１６に指示するようにすればよい。また、例えば、ＬＳＩ制御回路１６のみに事前通知信号１７を出力するようにしてもよい。この場合、ＬＳＩ制御回路１６は、ＬＳＩ１０の状態が状態Ａである場合には、状態Ａのイベントの処理を実行する状態への切り替えをＣＰＵ１１に指示するようにすればよい。
【００７９】
＜実施の形態２＞
続いて、実施の形態２について説明する。以下の実施の形態２の説明では、上述した実施の形態１と同様の内容については、同一の符号を付す等して、適宜、その説明を省略する。
【００８０】
図７を参照して、実施の形態２に係るＬＳＩ１０の構成について説明する。図７に示すように、実施の形態２に係るＬＳＩ１０は、実施の形態１に係るＬＳＩ１０と比較して、事前通知生成回路１５に代えて、次状態判定回路３１を有する。
【００８１】
次状態判定回路３１は、事前通知生成回路１５と比較して、さらに、ＬＳＩ制御回路１６から出力されるＬＳＩ状態信号１８が示すＬＳＩ１０の状態に基づいて、状態Ａにおいてイベント以外の処理を実行する状態、状態Ｂ、及び、状態Ｃのそれぞれについて、切り替え可能であるか否かを示す次状態指示信号３２を、ＬＳＩ制御回路１６及びＣＰＵ１１に出力する。言い換えると、次状態指示信号３２は、ＬＳＩ１０の次の状態の候補を示す信号である。
【００８２】
よって、実施の形態２に係るＬＳＩ制御回路１６及びＣＰＵ１１は、次状態判定回路３１から出力される次状態指示信号３２でＬＳＩ１０が切り替え可能であると示されていない状態へは、ＬＳＩ１０の状態を切り替えない。
【００８３】
続いて、図８を参照して、実施の形態２に係るＬＳＩ１０の構成について説明する。実施の形態２に係るＬＳＩ１０は、実施の形態１に係るＬＳＩ１０と比較して、さらに、状態Ａ用閾値レジスタ４０と、状態Ｂ用閾値レジスタ４１と、状態Ｃ用閾値レジスタ４２と、加算回路４３と、比較回路４４と、信号生成回路４５とを有する。
【００８４】
状態Ａ用閾値レジスタ４０は、状態Ａにおいて、イベント以外の処理の開始に必要な時間と、そのイベント以外の処理を実行する状態からイベントの処理を実行する状態に切り替えてイベントを処理可能となるまでに必要な切替時間との合計時間を示す値が格納される。状態Ａ用閾値レジスタ４０は、自身に格納される値を加算回路４３に出力する。
【００８５】
状態Ｂ用閾値レジスタ４１は、ＬＳＩ１０を、状態Ｂ以外の状態から状態Ｂに切り替えるために必要な時間と、状態Ｂから状態Ａに切り替えてイベントを処理可能となるまでに必要な時間との合計時間を示す値が設定される。状態Ｂ用閾値レジスタ４１は、自身に格納される値を加算回路４３に出力する。
【００８６】
状態Ｃ用閾値レジスタ４２は、状態Ｃ以外の状態から状態Ｃに切り替えるために必要な時間と、状態Ｃから状態Ａに切り替えてイベントを処理可能となるまで必要な時間との合計時間を示す値が設定される。状態Ｃ用閾値レジスタ４２は、自身に格納される値を加算回路４３に出力する。
【００８７】
状態Ａ用閾値レジスタ４０〜状態Ｃ用閾値レジスタ４２それぞれも、状態Ａ用切替時間レジスタ２２〜状態Ｃ用切替時間レジスタ２４のそれぞれと同様に、ＬＳＩ１０が取り得る状態Ａ〜状態Ｃのそれぞれに対応する。言い換えると、状態Ａ用閾値レジスタ４０〜状態Ｃ用閾値レジスタ４２の数は、ＬＳＩ１０が取り得る状態の数と同数である。よって、ＬＳＩ１０が取り得る状態数が、２つ又は４つ以上である場合には、閾値レジスタの数も、その状態数と同数用意される。
【００８８】
加算回路４３は、タイマカウンタ２１から出力される値が示す現在時刻に、状態Ａ用閾値レジスタ４０〜状態Ｃ用閾値レジスタ４２のそれぞれから出力される値が示す時間を加算し、加算結果となる時刻を示す値のそれぞれを比較回路４４に出力する。より具体的には、加算回路４３は、加算器４００〜４０２を有する。
【００８９】
加算器４００は、タイマカウンタ２１から出力される値が示す現在時刻に、状態Ａ用閾値レジスタ４０から出力される値が示す時間を加算した時刻を示す値を比較回路４４に出力する。加算器４０１は、タイマカウンタ２１から出力される値が示す現在時刻に、状態Ｂ用閾値レジスタ４１から出力される値が示す時間を加算した時刻を示す値を比較回路４４に出力する。加算器４０２は、タイマカウンタ２１から出力される値が示す現在時刻に、状態Ｃ用閾値レジスタ４２から出力される値が示す時間を加算した時刻を示す値を比較回路４４に出力する。
【００９０】
比較回路４４は、加算回路４３から出力される値が示す時刻のそれぞれと、次イベント時刻レジスタ２０から出力される値が示す時刻とを比較し、比較結果を示す値のそれぞれを信号生成回路４５に出力する。より具体的には、比較回路４４は、比較器４１０〜４１２を有する。
【００９１】
比較器４１０は、加算器４００から出力される値が示す時刻と、次イベント時刻レジスタ２０から出力される値が示す時刻とを比較し、比較結果を示す値のそれぞれを信号生成回路４５に出力する。比較器４１１は、加算器４０１から出力される値が示す時刻と、次イベント時刻レジスタ２０から出力される値が示す時刻とを比較し、比較結果を示す値を示す値のそれぞれを信号生成回路４５に出力する。比較器４１２は、加算器４０２から出力される値が示す時刻と、次イベント時刻レジスタ２０から出力される値が示す時刻とを比較し、比較結果を示す値のそれぞれを信号生成回路４５に出力する。
【００９２】
信号生成回路４５は、比較回路４４から出力される値のそれぞれと、ＬＳＩ制御回路１６から出力されるＬＳＩ状態信号１８とに基づいて、ＬＳＩ１０が切り替え可能な状態を判定する。信号生成回路４５は、ＬＳＩ１０が切り替え可能と判定した状態を、ＬＳＩ１０の次の状態の候補として示す次状態指示信号３２を生成し、ＬＳＩ制御回路１６に出力する。ここで、より具体的には、信号生成回路４５は、以下の条件に従って、状態Ａにおいてイベント以外の処理を実行する状態、状態Ｂ、及び、状態Ｃのそれぞれについて、切り替え可能であるか否かを判定する。
【００９３】
（１）（次イベント時刻レジスタ２０からの値が示す時刻  ＞  加算器４００からの値）の場合
状態Ａにおいてイベント以外の処理を実行する状態に切り替え可能。すなわち、状態Ａを維持して、もしくは、状態Ｂ又は状態Ｃから状態Ａに切り替えて、イベント以外の処理を実行可能。
（２）（次イベント時刻レジスタ２０からの値が示す時刻  ≦  加算器４００からの値）の場合
状態Ａにおいてイベント以外の処理を実行する状態に切り替え可能でない。（既にイベント以外の処理の実行を開始している場合、そのイベント以外の処理の実行の維持は可能）。
（なお、イベント以外の処理を終了する時間は、ＬＳＩ１０の状態の切換時間よりも短いため、状態Ｂ又は状態Ｃで、この条件となることはありえない。すなわち、この条件を満たす場合には、既に事前通知信号１７により状態Ａに切り替えられているはずである。）
（３）（次イベント時刻レジスタ２０からの値が示す時刻  ＞  加算器４０１からの値）の場合
状態Ｂに切り替え可能。すなわち、状態Ｂの維持、もしくは、状態Ａ又は状態Ｃから状態Ｂに切り替え可能。
（４）（次イベント時刻レジスタ２０からの値が示す時刻  ≦  加算器４０１からの値）の場合
状態Ｂに切り替え可能でない。すなわち、状態Ａ又は状態Ｃから状態Ｂに切り替え不可（既にＬＳＩ１０が状態Ｂである場合、状態Ｂの維持は可能）。
（５）（次イベント時刻レジスタ２０からの値が示す時刻  ＞  加算器４０２からの値）の場合
状態Ｃに切り替え可能。すなわち、状態Ｃの維持、もしくは、状態Ａ又は状態Ｂから状態Ｃに切り替え可能。
（６）（次イベント時刻レジスタ２０からの値が示す時刻  ≦  加算器４０２からの値）の場合
状態Ｃに切り替え可能でない。すなわち、状態Ａ又は状態Ｂから状態Ｃに切り替え不可（既にＬＳＩ１０が状態Ｃである場合、状態Ｃの維持は可能）。
【００９４】
以下に具体的な一例を挙げて説明する。
例えば、
状態Ａ閾値レジスタ４０の時間＝１０、
状態Ｂ閾値レジスタ４１の時間＝３０、
状態Ｃ閾値レジスタ４２の時間＝５０
タイマカウンタ２１＝１００、
次イベント時刻レジスタ２０＝１８０
であるものとする。
【００９５】
この場合、
１８０（次イベント時刻レジスタ２０）
＞  １００（タイマカウンタ２１）＋１０（状態Ａ閾値レジスタ４０）
１８０（次イベント時刻レジスタ２０）
＞  １００（タイマカウンタ２１）＋３０（状態Ａ閾値レジスタ４１）
１８０（次イベント時刻レジスタ２０）
＞  １００（タイマカウンタ２１）＋５０（状態Ａ閾値レジスタ４２）
となる。
【００９６】
よって、状態Ａ、Ｂ、Ｃのいずれに関しても、タイマカウンタ２１の時刻に、閾値レジスタ（状態Ａ閾値レジスタ４０〜状態Ｃ閾値レジスタ４２のそれぞれ）の時間を加算した時刻が、次イベント時刻レジスタ２０の時刻よりも前の時刻となる。よって、状態Ａでイベント以外の処理を実行しても、状態Ｂ又は状態Ｃに切り替えても、イベントが発生する時刻までに、状態Ａにおいてイベントの処理を実行する状態に切り替えて、イベントを処理可能とすることができる。そのため、この場合には、信号生成回路４５は、状態Ａにおいてイベント以外の処理を実行する状態、状態Ｂ、及び、状態Ｃのいずれにも切り替え可能であることを示す次状態指示信号３２を、ＣＰＵ１１及びＬＳＩ制御回路１６のそれぞれに出力する。
【００９７】
また、上述の条件で、次イベント時刻レジスタ２０の時刻＝１４０である場合は、状態Ｃに関しては、タイマカウンタ２１の時刻に、状態Ｃ閾値レジスタ４２の時間を加算した時刻が、次イベント時刻レジスタ２０の時刻以降の時刻となる。よって、状態Ａ又は状態Ｂから状態Ｃに切り替えてしまうと、イベントの発生までに状態Ｃから状態Ａに切り替えてイベントの処理準備を完了することができない。そのため、この場合には、信号生成回路４５は、状態Ａにおいてイベント以外の処理を実行する状態、及び、状態Ｂに切り替え可能であるが、状態Ｃには切り替え可能でないことを示す次状態指示信号３２を、ＣＰＵ１１及びＬＳＩ制御回路１６のそれぞれに出力する。
【００９８】
一方で、この場合であっても、ＬＳＩ１０が状態Ｃであるときには、状態Ｃを維持することは可能である。状態Ａ又は状態Ｂから状態Ｃに切り替えてしまうとイベントに間に合わないのであって、既に状態Ｃであれば、事前通知信号１７に応じてイベントに間に合うように状態Ａに切り替えることが可能だからである。よって、状態Ｃには切り替え可能でない場合であっても、ＬＳＩ状態信号１０が状態Ｃを示すときには、信号生成回路４５は、状態Ａにおいてイベント以外の処理を実行する状態、状態Ｂ、及び、状態Ｃのいずれにも切り替え可能であることを示す次状態指示信号３２を、ＣＰＵ１１及びＬＳＩ制御回路１６のそれぞれに出力する。これによれば、ＬＳＩ制御回路１６は、状態Ｃから状態Ａ又はＢに切り替える必要があると判定せずに、状態Ｃを維持することが可能となる。
【００９９】
ＣＰＵ１１及びＬＳＩ制御回路１６は、次状態指示信号３２から出力された次状態指示信号３２に基づいて、状態Ａにおいてイベント以外の処理を実行する状態、状態Ｂ、及び、状態Ｃに切り替え可能であるか否かを判定する。より具体的には、ＣＰＵ１１は、次状態指示信号３２が、状態Ａにおいてイベント以外の処理を実行する状態には切り替え可能でないと示している場合には、状態Ａにおいてイベント以外の処理を実行する状態への切り替えを抑止する。また、ＬＳＩ制御回路１６は、状態Ｂには切り替え可能でないと示している場合には、状態Ｂへの切り替えを抑止する。また、ＬＳＩ制御回路１６は、状態Ｃには切り替え可能でないと示している場合には、状態Ｃへの切り替えを抑止する。
【０１００】
実施の形態１では、ＬＳＩ１０の状態切替とイベントの事前通知とは独立しているため、事前通知の直前に、ＬＳＩ１０の状態がイベントの発生までにイベントを実行できる状態に戻すことができない状態に切り替わってしまう可能性がある。そこで、本実施の形態２では、事前通知を生成・出力する回路に加えて、ＬＳＩの次の状態の候補を判定するための判定回路を追加している。
【０１０１】
すなわち、実施の形態２は、実施の形態１と比較して、さらに、閾値記憶回路（状態Ａ用閾値レジスタ４０〜状態Ｃ用閾値レジスタ４２に対応）と、判定回路（次状態判定回路３１内の他の回路４３〜４５に対応）とを備える。
【０１０２】
閾値記憶回路は、複数の第２の状態のそれぞれについて、第２の状態に切り替えるために必要な時間と、当該第２の状態から第１の状態に切り替えてイベントを処理可能となるために必要な切替時間との合計時間を示す閾値が格納される。判定回路は、現在時刻に第２の状態に対応する閾値が示す時間を加算した時刻が、イベントが発生する時刻以降の時刻である場合、当該閾値に対応する第２の状態を除外して半導体装置の次の状態の候補を示す次状態指示信号を制御回路に出力する。
【０１０３】
これによれば、イベントの発生前に、イベントの処理を実行する状態への切り替えが可能な状態のみを次の状態の候補としているため、実施の形態１で生じうる問題を回避することができる。すなわち、本実施の形態２によれば、即応性をより向上することができる。
【０１０４】
また、本実施の形態２では、判定回路は、現在時刻に第２の状態に対応する閾値が示す時間を加算した時刻が、イベントが発生する時刻以降の時刻である場合であっても、制御回路から送信された状態信号が示す半導体装置の状態が、当該閾値に対応する第２の状態であるときには、当該閾値に対応する第２の状態を半導体装置の次の状態の候補から除外しないようにしている。これによれば、余分な切り替えを抑止することができる。
【０１０５】
なお、以上の説明では、ＣＰＵ１１及びＬＳＩ制御回路１６の両方に次状態指示信号３２を出力する例について説明したが、これに限られない。例えば、ＣＰＵ１１のみに次状態指示信号３２を出力するようにしてもよい。この場合、ＣＰＵ１１は、次状態指示信号３２が状態Ｂ及び状態Ｃの少なくとも１つへの切り替えが可能でないことを示す場合には、その旨をＬＳＩ制御回路１６に通知するようにすればよい。また、例えば、ＬＳＩ制御回路１６のみに次状態指示信号３２を出力するようにしてもよい。この場合、ＬＳＩ制御回路１６は、次状態指示信号３２が状態Ａにおいてイベント以外の処理を実行する状態への切り替えが可能でないことを示す場合には、その旨をＣＰＵ１１に通知するようにすればよい。
【０１０６】
以上、本発明者によってなされた発明を実施の形態に基づき具体的に説明したが、本発明は既に述べた実施の形態に限定されるものではなく、その要旨を逸脱しない範囲において種々の変更が可能であることはいうまでもない。
【０１０７】
例えば、上述の実施の形態では、ＬＳＩ１０が取り得る状態数と同数の切替時間レジスタ及び閾値レジスタを有する例について説明したが、これに限られない。切替時間及び閾値が同一となる２つ以上の状態が存在する場合、その２つ以上の状態については共通化した１つの切替時間レジスタ及び閾値レジスタを利用してもよい。
【０１０８】
また、上述の実施の形態では、ＬＳＩ１０の状態として、ＬＳＩ１０の電源状態とクロック供給状態の両方を制御する例について説明したが、いずれか一方のみを制御してもよい。すなわち、ＬＳＩ１０は、電源制御回路１０２及びクロック制御回路１０３のうち、いずれか一方の回路を有さない構成としてもよい。この場合、エンコード回路１０４は、電源設定値及びクロック設定値のうち、いずれか一方の設定値に基づいてＬＳＩ状態信号１８を生成する。
【０１０９】
また、上述の実施の形態２では、条件（１）、（３）、（５）において不等号を「＞」とし、条件（２）、（４）、（６）において不等号を「≦」とする例について説明したが、これに限られない。例えば、条件（１）、（３）、（５）において不等号を「≧」とし、条件（２）、（４）、（６）において不等号を「＜」とてもよい。しかしながら、この場合には、状態遷移後、直ぐにその状態から状態Ａにおいてイベントの処理を実行する状態に切り戻すケースが発生し得る（次イベント時刻レジスタ２０からの値が示す時刻  ＝  加算器からの値の場合）。したがって、好ましくは、条件（１）〜（６）の不等号を、実施の形態２で説明した通りとするとよい。
【符号の説明】
【０１１０】
１  産業ネットワークシステム
２  マスター機器
３  スレーブ機器
４  被制御装置
９  半導体装置
１０  ＬＳＩ
１１  ＣＰＵ
１２  ＲＡＭ
１３  ペリフェラル
１４  システムバス
１５  事前通知生成回路
１６  ＬＳＩ制御回路
１７  事前通知信号
１８  ＬＳＩ状態信号
２０  次イベント時刻レジスタ
２１  タイマカウンタ
２２  状態Ａ用切替時間レジスタ
２３  状態Ｂ用切替時間レジスタ
２４  状態Ｃ用切替時間レジスタ
２５  マルチプレクサ
２６、４００、４０１、４０２  加算器
２７、４１０、４１１、４１２  比較器
３１  次状態判定回路
３２  次状態指示信号
４０  状態Ａ用閾値レジスタ
４１  状態Ｂ用閾値レジスタ
４２  状態Ｃ用閾値レジスタ
４３  加算回路
４４  比較回路
４５  信号生成回路
９１  制御回路
９２  切替時間記憶回路
９３  通知回路
１０１  主制御回路
１０２  電源制御回路
１０３  クロック制御回路
１０４  エンコード回路
１１２  電源設定レジスタ
１１３  クロック設定レジスタ
【図１】
2017054287.tif 000003
【図２】
2017054287.tif 000004
【図３】
2017054287.tif 000005
【図４】
2017054287.tif 000006
【図５】
2017054287.tif 000007
【図６】
2017054287.tif 000008
【図７】
2017054287.tif 000009
【図８】
2017054287.tif 000010
【図９】
2017054287.tif 000011