(57)【要約】【課題】プロセッサが省電力状態になってすぐに割込み要求が入力されることを防ぎ、プロセッサの通常状態から省電力状態への復帰回数を抑制する割込み制御装置を提供する。【解決手段】プロセッサが省電力状態に遷移するときに、カウントを開始するカウンタタイマと、デバイス毎に設定されている割込み要求の保留許容時間を予め記憶している許容時間記憶手段と、前記プロセッサが省電力状態のときに発生した割込み要求の要求元のデバイスに対応して設定されている前記保留許容時間の中で、最も短い保留許容時間と前記カウンタタイマの値とを比較し、前記カウンタタイマの値が前記最も短い保留許容時間より小さい場合は、割込み要求の出力を保留し、前記カウンタタイマの値が前記最も短い保留許容時間以上の場合は、前記プロセッサに対して割込み要求を出力する出力手段とを備えることを特徴とする割込み制御装置。【選択図】図７
2012113558.tif 000002
【特許請求の範囲】
【請求項１】
プロセッサと複数のデバイスとに接続され、前記複数のデバイスからの複数の割込み要求を一つの割込み要求にまとめる機能を有する割込み制御装置であって、
前記プロセッサが省電力状態に遷移するときに、カウントを開始するカウンタタイマと、
前記デバイス毎に設定されている割込み要求の保留許容時間を予め記憶している許容時間記憶手段と、
前記プロセッサが省電力状態のときに発生した割込み要求の要求元のデバイスに対応して設定されている前記保留許容時間の中で、最も短い保留許容時間と前記カウンタタイマの値とを比較し、前記カウンタタイマの値が前記最も短い保留許容時間より小さい場合は、割込み要求の出力を保留し、前記カウンタタイマの値が前記最も短い保留許容時間以上の場合は、前記プロセッサに対して割込み要求を出力する出力手段と
を備えることを特徴とする割込み制御装置。
【請求項２】
前記デバイスには、デバイス毎にデバイスを識別する識別子が設定されており、
前記出力手段は、割込み要求を出力するときに、割込み要求元のデバイスの中で、最も短い前記保留許容時間が設定されているデバイスの前記識別子を出力し、前記プロセッサより要求があったときに、未だ処理されていない割込み要求の要求元のデバイスの中で最も短い前記保留許容時間が設定されているデバイスの前記識別子を出力する
ことを特徴とする請求項１に記載の割込み制御装置。
【請求項３】
更に、前記プロセッサが省電力状態のときに発生した割込み要求の要求元のデバイスに対応して設定されている前記保留許容時間の中で、最も短い保留許容時間を記憶する保留時間記憶手段と、
前記プロセッサが省電力状態の場合において、前記デバイスより割込み要求が発生したときに、前記許容時間記憶手段から割込み要求元のデバイスに対応して設定されている保留許容時間を取得し、取得した保留許容時間と前記保留時間記憶手段の値とを比較し、取得した前記保留許容時間の方が小さければ、前記保留許容時間で前記保留時間記憶手段の値を更新する更新手段を備え、
前記出力手段は、前記カウンタタイマの値と前記保留時間記憶手段の値とについて前記比較を行う
ことを特徴とする請求項２に記載の割込み制御装置。
【請求項４】
更に、前記プロセッサからの通知により、前記プロセッサが省電力状態に遷移することを認識し、前記プロセッサが省電力状態に遷移することを認識したときに、前記カウンタタイマに対しカウント開始指示を出力する認識手段を備え、
前記カウンタタイマは、前記認識手段によりカウント開始指示を受け取ったときにカウントを開始する
ことを特徴とする請求項３に記載の割込み制御装置。
【請求項５】
前記プロセッサは、メモリを用いて演算処理を行い、当該メモリに実行中のタスクを示すタスク識別子を書き込み、
前記認識手段は、前記タスク識別子を参照し、参照した前記タスク識別子がアイドルタスクを示していたときに、前記プロセッサが省電力状態に遷移することを認識する
ことを特徴とする請求項３に記載の割込み制御装置。
【請求項６】
前記許容時間記憶手段は、デバイスに対応するランクを記憶するランク記憶手段と前記ランクに対応する割込み要求の保留許容時間を記憶するランク別許容時間記憶手段を備え、
前記更新手段は、前記デバイスより割込み要求が発生したときに、前記ランク記憶手段から割込み要求元のデバイスに対応するランクを取得し、前記ランク別許容時間記憶手段から取得したランクに対応する保留許容時間を取得する
ことを特徴とする請求項３に記載の割込み制御装置。
【請求項７】
計算機システムにおいて、複数のデバイスと接続され、前記複数のデバイスからの複数の割込み要求を一つの割込み要求にまとめる機能を有する集積回路であって、
プロセッサと、
前記プロセッサが省電力状態に遷移するときに、カウントを開始するカウンタタイマと、
前記デバイス毎に設定されている割込み要求の保留許容時間を予め記憶している許容時間記憶部と、
前記プロセッサが省電力状態のときに発生した割込み要求の要求元のデバイスに対応して設定されている前記保留許容時間の中で、最も短い保留許容時間と前記カウンタタイマの値とを比較し、前記カウンタタイマの値が前記最も短い保留許容時間より小さい場合は、割込み要求の出力を保留し、前記カウンタタイマの値が前記最も短い保留許容時間以上の場合は、前記プロセッサに対して割込み要求を出力する出力部と
を備えることを特徴とする集積回路。
【請求項８】
プロセッサと複数のデバイスとを含む計算機システムにおいて、複数のデバイスからの複数の割込み要求を一つの割込み要求にまとめる割込み制御装置における割込み制御方法であって、
前記割込み制御装置におけるカウンタタイマが、前記プロセッサが省電力状態に遷移するときに、カウントを開始するカウントステップと、
前記割込み制御装置が、前記デバイス毎に設定されている割込み要求の保留許容時間を予め記憶している許容時間記憶ステップと、
前記プロセッサが省電力状態のときに発生した割込み要求の要求元のデバイスに対応して設定されている前記保留許容時間の中で、最も短い保留許容時間と前記カウンタタイマの値とを比較し、前記カウンタタイマの値が前記最も短い保留許容時間より小さい場合は、割込み要求の出力を保留し、前記カウンタタイマの値が前記最も短い保留許容時間以上の場合は、前記プロセッサに対して割込み要求を出力する出力ステップと
を備えることを特徴とする割込み制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、計算機システムにおける割込み制御装置に関し、特に、計算機システムに備えられたプロセッサの消費電力を低減する技術に関する。
【背景技術】
【０００２】
従来、計算機システムでは、デバイスにおいてプロセッサへ通知すべき事象が発生すると、デバイスがプロセッサに対して割込み要求を出力し、割込み要求を受けたプロセッサは、当該割込み要求に応じた処理を実行する。例えば、デバイスが、ネットワークインターフェースの場合は、デバイスがパケットを受信すると、デバイスからプロセッサへ割込み要求が出力され、プロセッサは、割込み要求に応じて、パケット受信処理のプログラムを実行する。
【０００３】
プロセッサが割込み処理を実行するにあたっては、割込み処理の度に現在の処理状態の退避や復元等の処理が必要となる。プロセッサへの割込み要求が高頻度で発生すると、処理状態の退避や復元等の処理によるプロセッサへの負荷が増大し、計算機システムの性能が低下してしまう。
【０００４】
そのため、従来、割込み要求の頻度を抑制するためにインターラプト・コーレシングという技術が用いられている。
図１９は、インターラプト・コーレシングの説明図である。
【０００５】
同図においては、割込み事象１が起きてからＫ個目の割込み事象Ｋが起こるまでの複数の割込みがまとめられていて、プロセッサに対し、複数の割込みが１回の信号により通知されている。これにより、現在の処理状態の退避や復元等の処理を、１回にまとめることができ、プロセッサの負荷を軽減することができる。
【０００６】
インターラプト・コーレシングにおいて、システムを正常に動作させるための割込み保留時間を決定する条件として“一定の時間が経過する”、或いは“一定の回数の割込み事象が起こる”等の条件が用いられる。
【０００７】
例えば、特許文献１に記載されている従来システムでは、保留している割込み要求の数をカウントし、カウントされた保留している割込み要求の数と割込み要求が出力されてから経過した時間とに基づき割込み要求を保留する時間を決定している。
【先行技術文献】
【特許文献】
【０００８】
【特許文献１】特開２００５−１００２３７号公報
【特許文献２】特許第４２１９８１８公報
【発明の概要】
【発明が解決しようとする課題】
【０００９】
しかしながら、近年の計算機システムにおいては、プロセッサがアイドル状態になると省電力状態に遷移するものがあり、そのような計算機システムにおいて上述の構成では、複数の割込み要求をまとめることができる反面、省電力状態に遷移する前から遷移後にかけて発生した複数の割込みをまとめて、省電力状態遷移後に割込み要求として出力することがあり、その場合は、プロセッサが省電力状態になるとすぐに割込みがかかることとなる。プロセッサが省電力状態から通常状態へ復帰するには多大な時間がかかるので上記のような割込み要求の入力を防ぐことが強く要請されている。
【００１０】
本発明は、係る要請に鑑みてなされたものであり、プロセッサが省電力状態になってすぐに割込み要求が入力されることを防ぎ、プロセッサの通常状態から省電力状態への復帰回数を抑制する割込み制御装置を提供することを目的とする。
【課題を解決するための手段】
【００１１】
上記課題を解決するために本発明に係る割込み制御装置は、プロセッサと複数のデバイスとに接続され、前記複数のデバイスからの複数の割込み要求を一つの割込み要求にまとめる機能を有する割込み制御装置であって、前記プロセッサが省電力状態に遷移するときに、カウントを開始するカウンタタイマと、前記デバイス毎に設定されている割込み要求の保留許容時間を予め記憶している許容時間記憶手段と、前記プロセッサが省電力状態のときに発生した割込み要求の要求元のデバイスに対応して設定されている前記保留許容時間の中で、最も短い保留許容時間と前記カウンタタイマの値とを比較し、前記カウンタタイマの値が前記最も短い保留許容時間より小さい場合は、割込み要求の出力を保留し、前記カウンタタイマの値が前記最も短い保留許容時間以上の場合は、前記プロセッサに対して割込み要求を出力する出力手段とを備えることを特徴とする。
【発明の効果】
【００１２】
上述の構成により、本発明に係る割込み制御装置は、プロセッサが省電力状態になってからカウンタタイマによるカウントアップを開始し、カウンタタイマの値とプロセッサが省電力状態になってから発生した割込み要求の要求元のデバイスに対応して設定されている保留許容時間の中で最も短い保留許容時間とを比較し、カウンタタイマの値の方が小さい間は、割込み要求を保留し、カウンタタイマの値が最も短い保留許容時間以上になったときに、プロセッサに対し、割込み要求を出力することで、プロセッサが省電力状態になってすぐに割込み要求を出力することを抑制でき、省電力状態から通常状態への復帰の頻発による省電力効果の低減を抑制することができる。
【図面の簡単な説明】
【００１３】
【図１】実施形態１に係る計算機システム１００の構成図
【図２】割込み情報２０のデータ構成及び内容例を示す図
【図３】許容時間情報３０のデータ構成及び内容例を示す図
【図４】認識部１１１の処理のフローチャート
【図５】受付部１１４の処理のフローチャート
【図６】更新部１１７の処理のフローチャート
【図７】出力部１１８の処理のフローチャート
【図８】プロセッサ１０１のプロセスモードにおける処理のフローチャート
【図９】プロセッサ１０１のアイドルタスクのフローチャート
【図１０】プロセッサ１０１の割込みモードにおける処理のフローチャート
【図１１】計算機システム１００の動作の一例を示すタイミングチャート
【図１２】実施形態２に係る計算機システム２００の構成図
【図１３】プロセッサ２０１のプロセスモードにおける処理のフローチャート
【図１４】認識部２１１の処理のフローチャート
【図１５】実施形態３に係る計算機システム３００の構成図
【図１６】ランク情報５０のデータ構成及び内容例を示す図
【図１７】ランク別許容時間情報６０のデータ構成及び内容例を示す図
【図１８】更新部３１７の処理のフローチャート
【図１９】インターラプト・コーレシングの説明図
【発明を実施するための形態】
【００１４】
＜実施形態１＞
以下、本発明の一実施形態に係る計算機システム１００について説明する。
＜概要＞
計算機システム１００の割込み制御装置１０２は、プロセッサ１０１がプロセッサ１０１の一部への電源供給が停止された省電力状態の場合において、割込み制御装置１０２に接続された各種デバイスから割込み要求が発生したときには、割込み要求を保留し、所定の判断基準に基づき、保留していた割込み要求をまとめてプロセッサ１０１に対して出力する。ここでの所定の判断基準とは、予めデバイス毎に定められた割込みを保留可能な時間である保留許容時間に基づくものである。
【００１５】
プロセッサ１０１が省電力状態になると、割込み制御装置１０２は、カウンタタイマ１１２によりカウントを開始する。また、割込み制御装置１０２は、割込み要求を出力しているデバイスに対応する保留許容時間の中で最も短い保留許容時間とカウンタタイマ１１２の値とを比較し、カウンタタイマ１１２の値が最も短い保留許容時間より小さい間は、割込み要求を保留し、カウンタタイマ１１２の値が最も短い保留許容時間以上になったときにプロセッサ１０１に対し割込み要求を出力する。
【００１６】
なお、プロセッサ１０１が省電力状態ではない通常状態の場合において、デバイスにより割込み要求を入力されたときには、割込み制御装置１０２は、割込み要求を保留せずにプロセッサ１０１に割込み要求を出力する。
【００１７】
これにより、プロセッサ１０１が省電力状態のときに、割込み要求を出力する回数を抑制することができ、省電力状態から通常状態への復帰の頻発による省電力効果の低減を抑制することができる。
＜構成＞
図１は、計算機システム１００の構成図である。
【００１８】
同図に示すように、計算機システム１００は、プロセッサ１０１、割込み制御装置１０２、メインメモリ１０３及びデバイス１０４ａ及び１０４ｂを備える。
プロセッサ１０１は、メインメモリ１０３を用いて演算処理を行う機能を有する。
【００１９】
プロセッサ１０１は、通常のタスク処理を行うプロセスモードと優先すべきタスクの処理を行う割込みモードとの少なくとも２種類のモードが存在し、以下の説明では、上述の２種類のモードのいずれかで動作するものとする。
【００２０】
プロセスモードにおいて、プロセッサ１０１は、処理すべきタスクがあるときは当該タスクを実行し、処理すべきタスクがないときにはアイドルタスク（後述）を実行し、省電力状態に遷移する。ここでの省電力状態とは、プロセッサ１０１の一部に対する電源供給が停止された状態のことであり、割込み要求を受け付ける機能を有する部分には電力が供給されているものとする。これにより、プロセッサ１０１は、省電力状態のときでも割込み要求を受け付けることができ、省電力状態から通常状態への復帰、つまり電力供給を停止していた部分に対する電力供給の開始もプロセッサ１０１自身で行うことができる。また、割込み要求が入力されると、プロセッサ１０１は、割込みモードに遷移し、処理していたタスクを退避した後、割込み処理を行い、割込み処理が終了すると退避していたタスクを復元する。省電力状態のときに割込み要求が入力された場合は、省電力状態から通常状態への復帰をした後に、処理していたタスクを退避し、割込み処理を行った後、退避していたタスクを復元する。
【００２１】
以下、プロセッサ１０１が省電力状態の場合において、割込み制御装置１０２に割込み要求が入力されたときの機能を中心に説明する。
割込み制御装置１０２は、更に、認識部１１１、カウンタタイマ１１２、割込み記憶部１１３、受付部１１４、保留時間記憶部１１５、許容時間記憶部１１６、更新部１１７、出力部１１８及び状態フラグ１１９を備える。
【００２２】
認識部１１１は、プロセッサ１０１が省電力状態になることを認識し、カウンタタイマ１１２を初期化し、カウント開始指示を送る機能と、保留時間記憶部１１５に最大値を設定する機能とを有する。また、認識部１１１は、プロセッサ１０１がアイドル状態になったことを認識したときに、状態フラグ１１９に“０”を設定する。
【００２３】
カウンタタイマ１１２は、認識部１１１よりカウント開始指示を受け取ったときに、カウントアップを開始する機能を有する。なお、カウンタタイマ１１２が最大値までカウントされた場合は、最大値のままカウントを停止する。
【００２４】
割込み記憶部１１３は、接続されているデバイス毎の割込み要求の有無を示す割込み情報２０を記憶するためのメモリ領域である。
図２は、割込み情報２０のデータ構造及び内容例を示す図である。
【００２５】
割込み情報２０は、デバイス毎に予め定められている割込み番号２１に割込み要求有無２２が対応付けられた情報である。割込み要求有無２２は、受付部１１４により更新される。
【００２６】
受付部１１４は、デバイスから割込み要求を受け付け、割込み情報２０を更新する機能と、更新部１１７に、割込み要求元のデバイスに対応する割込み番号を通知する機能を有する。各デバイスは割込み制御装置１０２とデバイス毎にそれぞれ異なる信号ピンを使用して接続されているため、受付部１１４ではアサートされた信号ピンによって割込み要求元のデバイスに対応する割込み番号を認識することができる。
【００２７】
なお、受付部１１４は、プロセッサ１０１が通常状態のときには、割込み情報２０の更新は行うが、更新部１１７に割込み番号の通知は行わない。
保留時間記憶部１１５は、保留時間４０を記憶するためのメモリ領域である。保留時間４０とは、割込み要求を出力しているデバイスに設定されている保留許容時間の中で最も短い保留許容時間のことであり、更新部１１７により更新され、出力部１１８がプロセッサに対し、割込み要求をアサートするタイミングの決定に使用される。
【００２８】
許容時間記憶部１１６は、デバイス毎の、割込み要求を保留することができる時間を示す許容時間情報３０を記憶するためのメモリ領域である。
図３は、許容時間情報３０のデータ構造及び内容例を示す図である。
【００２９】
許容時間情報３０は、デバイス毎の割込み番号３１に保留許容時間３２が対応付けられた情報である。保留許容時間３２はデバイス毎に予め設定されているものとする。許容時間情報３０は、保留時間記憶部１１５の記憶する保留時間４０の更新に使用される。
【００３０】
更新部１１７は、受付部１１４より割込み番号を受け取ったときに、受け取った割込み番号に対応する保留許容時間を許容時間記憶部１１６から取得し、取得した保留許容時間と保留時間４０とを比較し、保留許容時間の方が小さい場合に、保留許容時間の値で保留時間４０を更新する機能を有する。
【００３１】
出力部１１８は、カウンタタイマ１１２の値と保留時間４０とを比較し、カウンタタイマ１１２の値が保留時間４０より小さい間は、割込み要求を出力せず、カウンタタイマ１１２の値が保留時間４０以上になったときに、プロセッサ１０１に対し割込み要求を出力する機能を有する。
【００３２】
なお、出力部１１８は、プロセッサ１０１が通常状態のときには、割込み要求が発生するとすぐにプロセッサ１０１に割込み要求を出力する、つまり、割込み記憶部１１３の記憶する割込み情報２０のいずれかの割込み要求有無２２が“１”に遷移すると、プロセッサ１０１に割込み要求をアサートし、割込み要求有無２２が“１”に遷移したデバイスの割込み番号を通知する。
【００３３】
状態フラグ１１９は、プロセッサ１０１が通常状態か省電力状態かを記憶する記憶素子である。状態フラグ１１９は、プロセッサ１０１が省電力状態になるときに、認識部１１１により“０”が設定され、プロセッサ１０１が通常状態に復帰するときに、出力部１１８により“１”を設定される。つまり、状態フラグ１１９が“０”のときは、プロセッサ１０１が省電力状態であることを示し、状態フラグ１１９が“１”のときは、プロセッサ１０１が通常状態であることを示す。受付部１１４及び出力部１１８は、状態フラグ１１９を参照し、通常状態のときの処理と省電力状態のときの処理とを切り替える。
＜動作＞
以下、割込み制御装置１０２の各部の動作を説明する。
【００３４】
図４は、認識部１１１の処理を示すフローチャートである。
認識部１１１は、プロセッサ１０１からアイドル状態に遷移したことを通知されると（ステップＳ１００１）、状態フラグ１１９に“０”を設定し、カウンタタイマ１１２の値を“０”にした後（ステップＳ１００２）、カウンタタイマ１１２にカウントアップを開始させるためカウント開始指示を送る（ステップＳ１００３）。その後、保留時間記憶部１１５の記憶する保留時間４０を初期化するため、最大値を設定する（ステップＳ１００４）。ここでの最大値は、設定できる最大の値であり、例えば、保留時間４０のサイズが２バイトで、１６進数を用いて表記した場合は、ｆｆｆｆ（１６進数）となる。
【００３５】
図５は、受付部１１４の処理を示すフローチャートである。
受付部１１４は、接続している全てのデバイスからの割込み要求の有無を割込み番号の順番に繰り返し確認している。図５のフローチャートではループ変数をＮとし、ループ変数Ｎは、初期値“１”から接続されているデバイスの数まで１ずつ増加する。
【００３６】
割込み番号“Ｎ”のデバイスからの割込み要求がネゲートからアサートに遷移した場合（ステップＳ１１０２）、受付部１１４は、割込み記憶部１１３が記憶している割込み情報２０の割込み番号２１“Ｎ”に対応する割込み要求有無２２に“１”を書き込み（ステップＳ１１０３）、更新部１１７に割込み番号“Ｎ”を通知する（ステップＳ１１０４）。
【００３７】
また、割込み番号“Ｎ”のデバイスからの割込み要求がアサートからネゲートに遷移した場合は（ステップＳ１１０５）、受付部１１４は、割込み情報２０の割込み番号２１“Ｎ”に対応する割込み要求有無２２に“０”を書き込む（ステップＳ１１０６）。ステップＳ１１０１からステップＳ１１０７の処理を接続されているデバイスの数だけ繰り返し、全デバイスの確認が終わると、再度ループ変数Ｎに初期値“１”を設定し、最初のデバイスから処理を繰り返す。
【００３８】
図６は、更新部１１７の処理を示すフローチャートである。
更新部１１７は、受付部１１４より割込み番号を取得すると（ステップＳ１２０１）、許容時間記憶部１１６より割込み番号に対応した保留許容時間を取得する（ステップＳ１２０２）。更に、保留時間４０の値を取得し（ステップＳ１２０３）、ステップＳ１２０２で取得した保留許容時間と比較する（ステップＳ１２０４）。保留許容時間が保留時間４０より小さければ、保留時間４０をステップＳ１２０２で取得した保留許容時間に更新する（ステップＳ１２０５）。保留許容時間が保留時間４０以上であれば、更新部１１７は保留時間４０の更新は行わない。
【００３９】
図７は、出力部１１８の処理を示すフローチャートである。
まず、出力部１１８は、カウンタタイマ１１２の値を取得する（ステップＳ１３０１）。その後、保留時間４０を取得し（ステップＳ１３０２）、ステップＳ１３０１で取得したカウンタタイマ１１２の値と比較する（ステップＳ１３０３）。
【００４０】
カウンタタイマ１１２の値が保留時間４０以上であった場合は、割込み記憶部１１３を参照し、割込み要求有無２２が“１”になっているデバイスがあるか否かを確認する（ステップＳ１３０４）。割込み要求有無２２が“１”になっているデバイスがあった場合は、プロセッサ１０１へ割込み要求をアサートし（ステップＳ１３０５）、状態フラグ１１９に“１”を設定し、カウンタタイマ１１２を停止する（ステップＳ１３０６）。その後、割込み要求をアサートしているデバイスの中で、最も保留許容時間が短いデバイスの割込み番号をプロセッサ１０１へ通知する（ステップＳ１３０７）。ここで、プロセッサ１０１が割込み処理を終えると、デバイスの割込み要求はネゲートされ、受付部１１４により、割込み要求をネゲートしたデバイスの割込み番号に対応する割込み要求有無２２が“０”になる。その後、プロセッサ１０１より割込み番号を要求された場合において（ステップＳ１３０８）、割込み情報２０の割込み要求有無２２が“１”のデバイスがあったときには、割込み要求有無が“１”のデバイスの中で最も保留許容時間の短いデバイスの割込み番号２１をプロセッサ１０１へ通知する。割込み要求有無２２が全て“０”になるまでステップＳ１３０７からステップＳ１３０９までを繰り返す。
【００４１】
出力部１１８は、割込み要求有無２２が全て“０”になったときに、プロセッサ１０１への割込み要求をネゲートする（ステップＳ１３１０）。
以下、プロセッサ１０１の動作について説明する。
【００４２】
図８は、プロセッサ１０１のプロセスモードにおける処理を示す図である。
プロセッサ１０１は、処理すべきタスクが存在するときは（ステップＳ１４０１のＹｅｓ）、そのタスクの処理を行い（ステップＳ１４０２）、処理すべきタスクがなくなるとアイドルタスクを実行する（ステップＳ１４０３）。プロセッサ１０１は、上述のステップＳ１４０１からステップＳ１４０３の処理を、通常状態、つまり省電力状態ではないときのみ繰り返す。
【００４３】
図９は、プロセッサ１０１のアイドルタスクの処理を示す図である。
プロセッサ１０１は、アイドル状態に遷移したことを示す情報を認識部１１１に通知し（ステップＳ１５０１）、その後、プロセッサ１０１自身の一部への電力供給を停止し、省電力状態へ遷移させる（ステップＳ１５０２）。
【００４４】
図１０は、プロセッサ１０１の割込みモードにおける処理を示す図である。
出力部１１８より割込み要求がアサートされると、プロセッサ１０１は、割込みモードに遷移する。プロセッサ１０１が省電力状態であった場合は（ステップＳ１６０１）、プロセッサ１０１は省電力状態から通常状態に遷移、つまりプロセッサ１０１内の電力供給を停止していた部分に電力供給を行う（ステップＳ１６０２）。その後、プロセッサ１０１は、プロセスコンテキストを退避する（ステップＳ１６０３）。ここでのプロセスコンテキストとは、プロセッサ１０１が省電力状態であった場合は、アイドルタスクのことであり、プロセッサ１０１が通常状態であった場合は、処理中のタスクのことである。
【００４５】
次に、出力部１１８より割込み番号を取得し（ステップＳ１６０４）、その割込み番号に対応したデバイスの割込み処理を行う（ステップＳ１６０５）。ここでの割込み処理とは、割込み処理の前段、つまり割込み処理の中でも特に優先度の高い部分の処理のことであり、後段の処理は、入力されている全ての割込み要求の処理終了後に実行するため、タスクを生成する。割込み処理が終了すると、そのデバイスの割込み要因をクリア、つまり割込み処理が終了したことをデバイスに通知する（ステップＳ１６０６）。その後、出力部１１８へまだ処理をしていないデバイスの割込み番号を要求し（ステップＳ１６０７）、出力部１１８から割込み番号が返される期間は、ステップＳ１６０５からステップＳ１６０７までの処理を繰り返す。
【００４６】
出力部１１８から割込み番号が返されず、割込み要求がネゲートされた場合は、プロセスコンテキストを復帰し（ステップＳ１６０８）、割込みモードからプロセスモードに遷移する。その後、ユーザプロセス処理、つまり各デバイスの割込み処理の後段の処理を行う。
＜割込みタイミングの説明＞
図１１は、計算機システム１００の動作を示すタイミングチャートである。
【００４７】
このとき、保留時間記憶部１１５のサイズは２バイトとする。また、デバイス１０４ａの割込み番号を“１”、保留許容時間３２を“４０００”とし、デバイス１０４ｂの割込み番号を“２”、保留許容時間３２を“５０００”として以下説明を行う。
【００４８】
同図に示すように、時刻Ｔ１において、プロセッサ１０１はアイドル状態に遷移すると、認識部１１１にアイドル状態になったことを通知する。通知を受けた認識部１１１は、カウンタタイマ１１２を初期化、ここではカウンタタイマ１１２に“０”を設定し、カウンタタイマ１１２にカウント開始指示を送る。また、認識部１１１は、保留時間記憶部１１５の記憶する保留時間４０に最大値、ここでは“ｆｆｆｆ”を設定する。
【００４９】
時刻Ｔ２において、プロセッサ１０１は、省電力状態になる。
時刻Ｔ３において、デバイス１０４ａが割込み要求をアサートすると、受付部１１４は、割込み情報２０の割込み番号“１”に対応する割込み要求有無２２に“１”を設定し、割込み番号“１”を更新部１１７へ通知する。更新部１１７は通知を受けると、通知された割込み番号“１”に対応した保留許容時間を許容時間記憶部１１６より取得する。更新部１１７は、取得した割込み番号“１”の保留許容時間と保留時間４０とを比較し、小さい方の値である保留許容時間“４０００”で、保留時間４０を更新する。
【００５０】
時刻Ｔ４において、デバイス１０４ｂが割込み要求をアサートすると、受付部１１４は、割込み記憶部１１３の割込み番号“２”に対応する割込み要求有無２２に“１”を設定し、割込み番号“２”を更新部１１７へ通知する。更新部１１７は通知を受けると、通知された割込み番号“２”に対応した保留許容時間を許容時間記憶部１１６より取得する。更新部１１７は、取得した割込み番号“２”の保留許容時間である“５０００”と保留時間４０の値“４０００”とを比較する。このとき、保留時間４０の値“４０００”の方が割込み番号“２”の保留許容時間“５０００”より小さいため、保留時間４０は更新されない。
【００５１】
時刻Ｔ５において、カウンタタイマ１１２の値が保留時間４０以上になると、出力部１１８はプロセッサ１０１に割込み要求をアサートし、カウンタタイマ１１２を停止する。プロセッサ１０１は、割込み要求がアサートされると、割込みモードとなり、省電力状態から通常状態に復帰する。
【００５２】
時刻Ｔ６において、プロセッサ１０１が通常状態になると、出力部１１８は、割込み要求をアサートしているデバイスの中で、最も短い保留許容時間に対応するデバイスの割込み番号である“１”を、プロセッサ１０１に通知する。通知を受けたプロセッサ１０１は、デバイス１０４ａの割込み処理の前段を行う。
【００５３】
時刻Ｔ７においてプロセッサ１０１は、デバイス１０４ａの割込み処理の前段を終了すると、割込み要因をクリア、つまり割込み処理が終了したことをデバイス１０４ａに通知する。これにより、デバイス１０４ａは、割込み要求をネゲートする。受付部１１４は、デバイス１０４ａの割込み要求がネゲートされると、割込み情報２０の割込み番号“１”に対応する割込み要求有無２２を“０”にする。
【００５４】
時刻Ｔ８において、プロセッサ１０１は、出力部１１８に対し割込み番号を要求し、出力部１１８は、まだ処理されていない割込み要求をアサートしているデバイスの中で、最も短い保留許容時間に対応するデバイスの割込み番号である“２”を、プロセッサ１０１に通知する。通知を受けたプロセッサ１０１は、デバイス１０４ｂの割込み処理の前段を行う。
【００５５】
時刻Ｔ９において、プロセッサ１０１は、デバイス１０４ｂの割込み処理の前段を終了すると、割込み要因をクリアする。これにより、デバイス１０４ｂは、割込み要求をネゲートする。受付部１１４は、デバイス１０４ｂの割込み要求がネゲートされると、割込み情報２０の割込み番号“２”に対応する割込み要求有無２２を“０”にする。
【００５６】
時刻Ｔ１０において、プロセッサ１０１が割込み要求を出力していたデバイスの割込み処理を全て処理すると、つまり割込み情報２０の割込み要求有無２２が全て“０”になると、出力部１１８はプロセッサ１０１への割込み要求をネゲートする。割込み要求がネゲートされると、プロセッサ１０１はユーザプロセス処理、つまり割込み処理の後段を行う。
【００５７】
時刻Ｔ１１において、プロセッサ１０１は、ユーザプロセス処理を終了し、アイドル状態に遷移する。なお、プロセッサ１０１は、ユーザプロセス処理終了後、処理すべきタスクがある場合は、アイドル状態になる前に、タスクを実行する。
＜実施形態２＞
実施形態１では、プロセッサ１０１がアイドル状態になったときに、認識部１１１に対しアイドル状態になったことを通知した。実施形態２では、プロセッサが実行しているタスクの識別子をメインメモリ内のタスク識別子記憶部２０５に書き込み、認識部はタスク識別子記憶部２０５を監視し、タスク識別子がアイドルタスクを示していたときに、カウンタタイマ１１２を初期化しカウント開始指示を送ることとする。このとき、タスク識別子は、タスク毎に予め設定されているものとする。
＜構成＞
図１２に、計算機システム２００の構成図を示す。
【００５８】
計算機システム２００は、計算機システム１００のプロセッサ１０１をプロセッサ２０１に、認識部１１１を認識部２１１に、メインメモリ１０３をメインメモリ２０３に置き換えたものであり、その他の構成は同一である。同一部分に関しては実施形態１と同じ番号を用い、説明を省略する。
【００５９】
プロセッサ２０１は、プロセッサ１０１の有する機能に加え、実行しているタスクのタスク識別子をメインメモリ２０３内のタスク識別子記憶部２０５に書き込む機能を有する。タスク識別子記憶部２０５は、タスク識別子を記憶するための記憶素子である。
【００６０】
認識部２１１は、メインメモリ２０３内のタスク識別子記憶部２０５を監視し、タスク識別子記憶部２０５に書き込まれたタスク識別子がアイドルタスクを示していたときに、カウンタタイマ１１２を初期化し、カウント開始指示を送る機能を有する。
＜動作＞
図１３に、プロセッサ２０１のプロセスモードにおける処理を示す。
【００６１】
プロセッサ２０１は、処理すべきタスクがあるときは（ステップＳ１７０１）、タスク識別子記憶部２０５に当該タスクのタスク識別子を書き込んだ後（ステップＳ１７０２）、当該タスクを実行する（ステップＳ１７０３）。処理すべきタスクがないときには、タスク識別子記憶部２０５にアイドルタスクを示す“０”を書き込んだ後（ステップＳ１７０４）、アイドルタスクを実行する（ステップＳ１７０５）。ここでの、アイドルタスクとは図９に記載のアイドルタスクのステップＳ１５０１を削除したものであり、省電力状態への遷移のみを行う。
【００６２】
図１４に、認識部２１１の処理を示す。
認識部２１１は、タスク識別子記憶部２０５を比較的短い間隔、例えば、プロセッサにおける数十クロック間隔で監視し、タスク識別子が“０”になったとき、つまりアイドルタスクを示したときに（ステップＳ１８０１）、カウンタタイマ１１２の値に“０”を設定し（ステップＳ１８０２）、カウンタタイマ１１２にカウント開始指示を送る（ステップＳ１８０３）。その後、保留時間４０に最大値を設定する（ステップＳ１８０４）。
【００６３】
その後、割込み制御装置２０２は、実施形態１と同様に、カウンタタイマ１１２の値と保留時間４０とを比較し、比較結果に応じて、割込みの要求の保留或いは出力を行う。
＜実施形態３＞
実施形態１では、許容時間記憶部１１６は割込み番号３１に対応する保留許容時間３２を記憶していた。実施形態３では、許容時間記憶部３１６は、ランク記憶部３２０とランク別許容時間記憶部３２１とを含み、更新部３１７は、受付部１１４より割込み要求を出力したデバイスの割込み番号受け取った後、ランク記憶部３２０より割込み番号に応じたランクを取得し、ランク別許容時間記憶部３２１より取得したランクに対応した保留許容時間を取得する。取得した保留許容時間と保留時間４０とを比較し、比較結果に応じて保留時間４０の更新を行う。
【００６４】
上記のような構成をとることにより、同じ保留許容時間を有するデバイスが複数接続されていた場合に、許容時間記憶部３１６の使用する容量を抑えることができる。
＜構成＞
図１５は、計算機システム３００の構成を示す図である。
【００６５】
計算機システム３００は、計算機システム１００の許容時間記憶部１１６を許容時間記憶部３１６に、更新部１１７を更新部３１７に置き換えたものであり、その他の構成は同一である。同一部分に関しては実施形態１と同じ番号を用い、説明を省略する。
【００６６】
許容時間記憶部３１６は、更に、ランク記憶部３２０とランク別許容時間記憶部３２１とを備える。
ランク記憶部３２０は、接続されているデバイス毎の、割込み番号とランクとを示すランク情報５０を記憶するためのメモリ領域である。
【００６７】
図１６は、ランク情報５０のデータ構造及び内容例を示す図である。
ランク情報５０は、デバイス毎の割込み番号５１にランク５２が対応付けられた情報である。ランク５２は、デバイス毎に予め設定されており、ランク別許容時間情報６０により保留許容時間と対応付けられている。
【００６８】
ランク別許容時間記憶部３２１は、ランクに対応した割込み要求の保留許容時間を示すランク別許容時間情報６０を記憶するためのメモリ領域である。
図１７は、ランク別許容時間情報６０のデータ構造及び内容例を示す図である。
【００６９】
ランク別許容時間情報６０は、ランク６１毎に割込みの保留許容時間６２が対応付けられた情報である。保留許容時間は、ランク毎に予め設定されている。
更新部３１７は、保留時間４０を更新する機能を有する。具体的には、更新部３１７は、受付部１１４より割込み番号を受け取ったときに、受け取った割込み番号に対応するランクをランク記憶部３２０から取得し、取得したランクに対応する保留許容時間をランク別許容時間記憶部３２１から取得する。その後、取得した保留許容時間と保留時間４０とを比較し、保留許容時間の方が小さければ保留許容時間で保留時間４０を更新する機能を有する。
【００７０】
＜動作＞
ここでは、実施形態１と異なる処理を行う更新部３１７の動作のみを説明し、その他の処理は全て実施形態１と同一のため省略する。
【００７１】
図１８は、更新部３１７の処理を示す図である。
更新部３１７は、受付部１１４より割込みを出力したデバイスの割込み番号を取得すると（ステップＳ１９０１）、ランク記憶部３２０より割込み番号に応じたランクを取得し（ステップＳ１９０２）、ランク別許容時間記憶部３２１よりランクに応じた保留許容時間を取得する（ステップＳ１９０３）。その後、更新部３１７は、実施形態１と同様に、ステップＳ１９０３で取得した保留許容時間と保留時間４０とを比較し、保留許容時間の方が小さければ保留許容時間で保留時間４０を更新する（ステップＳ１９０４〜ステップＳ１９０６）。
【００７２】
その後、割込み制御装置３０２は、実施形態１と同様にカウンタタイマ１１２と保留時間４０とを比較し、カウンタタイマ１１２が保留時間４０以上になったときに、プロセッサ１０１に対し、割込み要求をアサートする。
＜補足＞
以上、本発明に係る割込み制御装置の実施形態を説明したが、例示した計算機システムを以下のように変形することも可能であり、本発明が上述の実施形態で示した通りの計算機システムに限られないことは勿論である。
【００７３】
（１）上述の実施形態では、プロセッサが割込み番号を出力部に要求し、出力部が保留許容時間の短いデバイスの割込み番号から通知することとしたが、出力部が割込み要求をアサートするときに、割込み要求を出力している全てのデバイスの割込み番号を通知することとしてもよい。また、プロセッサが直接割込み記憶部より割込み番号を取得することとしてもよい。
【００７４】
（２）上述の実施形態では、プロセッサの省電力状態とは、プロセッサの一部、つまりプロセッサを構成するキャッシュメモリやレジスタ等に対する電源供給が停止された状態としたが、省電力状態は電源を供給する電圧を低下した状態、又はクロックを停止した状態としてもよい。また、プロセッサ全体に対する電源供給を停止した状態を省電力状態としてもよく、その場合、割込み制御装置の出力部は、プロセッサに対する電力供給を制御する起動制御部等を介してプロセッサに割込み要求を出力することとする。これにより、出力部が割込み要求をアサートすると、プロセッサは起動し、割込み要求を受けることが可能となる。
【００７５】
（３）上述の実施形態では、省電力状態のときに割込み処理が発生したときには、プロセスコンテキストの退避としてアイドルタスクを退避したが、アイドルタスクの退避は省略し、アイドルタスク固有のアドレスを使用してアイドルタスクを復元することとしてもよい。
【００７６】
（４）上述の実施形態では、デバイスは異なる信号ピンを介して割込み制御装置と接続されていて、アサートされた信号ピンにより受付部は割込み要求をアサートしたデバイスの割込み番号を認識できることとしたが、複数のデバイスが信号ピンを共有し、デバイスが割込み要求をアサートするときに、割込み制御装置に対して割込み番号も通知することとしてもよい。この場合、一つのデバイスから割込み要因が異なる複数の割込み要求を出力してもよい。
【００７７】
（５）上述の実施形態では、接続しているデバイスを識別するために割込み番号を使用したが、デバイスを識別できるものであれば、アルファベット等その他の識別子でもよい。
【００７８】
（６）上述の実施形態では、カウンタタイマ１１２はカウントアップしていくものとしたが、最大値からカウントダウンしていくものとしてもよい。その場合、出力部は、カウンタタイマ１１２の値が保留時間４０以下になったときに、プロセッサに対し割込み要求を出力するものとする。
【００７９】
（７）上述の実施形態１ではプロセッサ１０１はアイドル状態に遷移した後に、認識部１１１に対してアイドル状態になったことを通知したが、プロセッサが省電力状態になるための専用命令を発行し、認識部はプロセッサを監視し、プロセッサが専用命令を発行したときに、カウンタタイマ１１２を初期化し、カウント開始指示を送ることとしてもよい。専用命令とは、例えば、ＡＲＭ（登録商標）命令セットの、ＷＦＩ（Ｗａｉｔ  Ｆｏｒ  Ｉｎｔｅｒｒｕｐｔ）命令である。
【００８０】
（８）上述の実施形態２では、タスク識別子記憶部２０５はメインメモリ２０３内に格納されていることとしたが、タスク識別子記憶部はメインメモリ内に限らず、例えば、プロセッサ内に格納されるものとしてもよい。
【００８１】
（９）上述の実施形態３では、許容時間記憶部３１６の構成をランク情報５０とランク別許容時間情報６０の２段構成としたが、これに限らず、許容時間記憶部３１６の構成は３段構成や４段構成等としてもよい。
【００８２】
（１０）上述の各実施形態及び各変形例を、部分的に組み合せてもよい。
（１１）実施形態１〜３で示した計算機システムは、ＩＣ、ＬＳＩその他の集積回路のパッケージとして構成されるものとしてもよい。このパッケージは各種装置に組み込まれて利用に供され、これにより各種装置は、各実施形態で示したような各機能を実現するようになる。
【００８３】
以下、更に本発明の一実施形態としての割込み制御装置の構成及びその変形例と効果について説明する。
（ａ）本発明の一実施形態に係る割込み制御装置は、図１に示すように、プロセッサと複数のデバイスとに接続され、前記複数のデバイスからの複数の割込み要求を一つの割込み要求にまとめる機能を有する割込み制御装置であって、前記プロセッサが省電力状態に遷移するときに、カウントを開始するカウンタタイマと、前記デバイス毎に設定されている割込み要求の保留許容時間を予め記憶している許容時間記憶手段と、前記プロセッサが省電力状態のときに発生した割込み要求の要求元のデバイスに対応して設定されている前記保留許容時間の中で、最も短い保留許容時間と前記カウンタタイマの値とを比較し、前記カウンタタイマの値が前記最も短い保留許容時間より小さい場合は、割込み要求の出力を保留し、前記カウンタタイマの値が前記最も短い保留許容時間以上の場合は、前記プロセッサに対して割込み要求を出力する出力手段とを備える。この構成により、割込み制御装置は、プロセッサが省電力状態のときに発生した割込み要求をまとめて通知するため、プロセッサが省電力状態のときの割込み要求の出力回数を抑制することができ、プロセッサの省電力状態から通常状態への復帰による省電力効果の低減を抑制することができる。
【００８４】
（ｂ）前記割込み制御装置における前記デバイスには、デバイス毎にデバイスを識別する識別子が設定されており、前記出力手段は、割込み要求を出力するときに、割込み要求元のデバイスの中で、最も短い前記保留許容時間が設定されているデバイスの前記識別子を出力し、前記プロセッサより要求があったときに、未だ処理されていない割込み要求の要求元のデバイスの中で最も短い前記保留許容時間が設定されているデバイスの前記識別子を出力することとしてもよい。この構成によると、複数の割込み要求がまとめて通知された場合、保留許容時間の短いデバイスの割込み識別子から通知されるため、プロセッサが保留許容時間の短い割込み要求から処理を行うことができる。
【００８５】
（ｃ）前記割込み制御装置は、更に、前記プロセッサが省電力状態のときに発生した割込み要求の要求元のデバイスに対応して設定されている前記保留許容時間の中で、最も短い保留許容時間を記憶する保留時間記憶手段と、前記プロセッサが省電力状態の場合において、前記デバイスより割込み要求が発生したときに、前記許容時間記憶手段から割込み要求元のデバイスに対応して設定されている保留許容時間を取得し、取得した保留許容時間と前記保留時間記憶手段の値とを比較し、取得した前記保留許容時間の方が小さければ、前記保留許容時間で前記保留時間記憶手段の値を更新する更新手段を備え、前記出力手段は、前記カウンタタイマの値と前記保留時間記憶手段の値とについて前記比較を行うこと
としてもよい。この構成によると、プロセッサが省電力状態のときに発生した割込み要求の要求元のデバイスに設定されている保留許容時間の中で最も短い保留許容時間が保留時間記憶部に記憶されるため、当該最も短い保留許容時間とカウンタタイマとの比較が行いやすくなる。
【００８６】
（ｄ）前記割込み制御装置は、更に、前記プロセッサからの通知により、前記プロセッサが省電力状態に遷移することを認識し、前記プロセッサが省電力状態に遷移することを認識したときに、前記カウンタタイマに対しカウント開始指示を出力する認識手段を備え、前記カウンタタイマは、前記認識手段によりカウント開始指示を受け取ったときにカウントを開始することとしてもよい。この構成によると、認識手段はプロセッサから省電力状態になることを通知されるため、カウンタタイマはプロセッサが省電力状態になるとすぐにカウントを開始することができる。
【００８７】
（ｅ）前記プロセッサは、メモリを用いて演算処理を行い、当該メモリに実行中のタスクを示すタスク識別子を書き込み、前記割込み制御装置における前記認識手段は、前記タスク識別子を参照し、参照した前記タスク識別子がアイドルタスクを示していたときに、前記プロセッサが省電力状態に遷移することを認識することとしてもよい。この構成によると、認識手段はタスク識別子によりプロセッサが省電力状態か否かを認識することができるため、割込み制御装置はプロセッサから直接通知されなくても、プロセッサが省電力状態になったことを認識することができる。
【００８８】
（ｆ）前記割込み制御装置における前記許容時間記憶手段は、デバイスに対応するランクを記憶するランク記憶手段と前記ランクに対応する割込み要求の保留許容時間を記憶するランク別許容時間記憶手段を備え、前記更新手段は、前記デバイスより割込み要求が発生したときに、前記ランク記憶手段から割込み要求元のデバイスに対応するランクを取得し、前記ランク別許容時間記憶手段から取得したランクに対応する保留許容時間を取得することとしてもよい。この構成によると、許容時間記憶部は、割込み識別子とランクとが対応するランク記憶情報記憶部とランクと保留許容時間とが対応するランク別許容時間記憶部との２段構成になっているため、同じ保留許容時間を有するデバイスが複数接続されていた場合に、許容時間記憶部の使用する容量を抑えることができる。
【産業上の利用可能性】
【００８９】
本発明に係る割込み制御装置は、プロセッサが省電力状態のときに割込み要求の出力回数を抑制するものであり、プロセッサを搭載する計算機システム等の省電力を目的とした割込み制御装置として有用である。
【符号の説明】
【００９０】
１０１、２０１          プロセッサ
１０２、２０２、３０２  割込み制御装置
１０３、２０３          メインメモリ
１０４                  デバイス
１１１、２１１          認識部
１１２                  カウンタタイマ
１１３                  割込み記憶部
１１４                  受付部
１１５                  保留時間記憶部
１１６、３１６          許容時間記憶部
１１７、３１７          更新部
１１８                  出力部
２０５                  タスク識別子記憶部
３２０                  ランク情報記憶部
３２１                  ランク別許容時間記憶部
【図１】
2012113558.tif 000003
【図２】
2012113558.tif 000004
【図３】
2012113558.tif 000005
【図４】
2012113558.tif 000006
【図５】
2012113558.tif 000007
【図６】
2012113558.tif 000008
【図７】
2012113558.tif 000009
【図８】
2012113558.tif 000010
【図９】
2012113558.tif 000011
【図１０】
2012113558.tif 000012
【図１１】
2012113558.tif 000013
【図１２】
2012113558.tif 000014
【図１３】
2012113558.tif 000015
【図１４】
2012113558.tif 000016
【図１５】
2012113558.tif 000017
【図１６】
2012113558.tif 000018
【図１７】
2012113558.tif 000019
【図１８】
2012113558.tif 000020
【図１９】
2012113558.tif 000021