説明

割込み制御装置、割込み制御方法及び集積回路

【課題】プロセッサが省電力状態になってすぐに割込み要求が入力されることを防ぎ、プロセッサの通常状態から省電力状態への復帰回数を抑制する割込み制御装置を提供する。
【解決手段】プロセッサが省電力状態に遷移するときに、カウントを開始するカウンタタイマと、デバイス毎に設定されている割込み要求の保留許容時間を予め記憶している許容時間記憶手段と、前記プロセッサが省電力状態のときに発生した割込み要求の要求元のデバイスに対応して設定されている前記保留許容時間の中で、最も短い保留許容時間と前記カウンタタイマの値とを比較し、前記カウンタタイマの値が前記最も短い保留許容時間より小さい場合は、割込み要求の出力を保留し、前記カウンタタイマの値が前記最も短い保留許容時間以上の場合は、前記プロセッサに対して割込み要求を出力する出力手段とを備えることを特徴とする割込み制御装置。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、計算機システムにおける割込み制御装置に関し、特に、計算機システムに備えられたプロセッサの消費電力を低減する技術に関する。
【背景技術】
【0002】
従来、計算機システムでは、デバイスにおいてプロセッサへ通知すべき事象が発生すると、デバイスがプロセッサに対して割込み要求を出力し、割込み要求を受けたプロセッサは、当該割込み要求に応じた処理を実行する。例えば、デバイスが、ネットワークインターフェースの場合は、デバイスがパケットを受信すると、デバイスからプロセッサへ割込み要求が出力され、プロセッサは、割込み要求に応じて、パケット受信処理のプログラムを実行する。
【0003】
プロセッサが割込み処理を実行するにあたっては、割込み処理の度に現在の処理状態の退避や復元等の処理が必要となる。プロセッサへの割込み要求が高頻度で発生すると、処理状態の退避や復元等の処理によるプロセッサへの負荷が増大し、計算機システムの性能が低下してしまう。
【0004】
そのため、従来、割込み要求の頻度を抑制するためにインターラプト・コーレシングという技術が用いられている。
図19は、インターラプト・コーレシングの説明図である。
【0005】
同図においては、割込み事象1が起きてからK個目の割込み事象Kが起こるまでの複数の割込みがまとめられていて、プロセッサに対し、複数の割込みが1回の信号により通知されている。これにより、現在の処理状態の退避や復元等の処理を、1回にまとめることができ、プロセッサの負荷を軽減することができる。
【0006】
インターラプト・コーレシングにおいて、システムを正常に動作させるための割込み保留時間を決定する条件として“一定の時間が経過する”、或いは“一定の回数の割込み事象が起こる”等の条件が用いられる。
【0007】
例えば、特許文献1に記載されている従来システムでは、保留している割込み要求の数をカウントし、カウントされた保留している割込み要求の数と割込み要求が出力されてから経過した時間とに基づき割込み要求を保留する時間を決定している。
【先行技術文献】
【特許文献】
【0008】
【特許文献1】特開2005−100237号公報
【特許文献2】特許第4219818公報
【発明の概要】
【発明が解決しようとする課題】
【0009】
しかしながら、近年の計算機システムにおいては、プロセッサがアイドル状態になると省電力状態に遷移するものがあり、そのような計算機システムにおいて上述の構成では、複数の割込み要求をまとめることができる反面、省電力状態に遷移する前から遷移後にかけて発生した複数の割込みをまとめて、省電力状態遷移後に割込み要求として出力することがあり、その場合は、プロセッサが省電力状態になるとすぐに割込みがかかることとなる。プロセッサが省電力状態から通常状態へ復帰するには多大な時間がかかるので上記のような割込み要求の入力を防ぐことが強く要請されている。
【0010】
本発明は、係る要請に鑑みてなされたものであり、プロセッサが省電力状態になってすぐに割込み要求が入力されることを防ぎ、プロセッサの通常状態から省電力状態への復帰回数を抑制する割込み制御装置を提供することを目的とする。
【課題を解決するための手段】
【0011】
上記課題を解決するために本発明に係る割込み制御装置は、プロセッサと複数のデバイスとに接続され、前記複数のデバイスからの複数の割込み要求を一つの割込み要求にまとめる機能を有する割込み制御装置であって、前記プロセッサが省電力状態に遷移するときに、カウントを開始するカウンタタイマと、前記デバイス毎に設定されている割込み要求の保留許容時間を予め記憶している許容時間記憶手段と、前記プロセッサが省電力状態のときに発生した割込み要求の要求元のデバイスに対応して設定されている前記保留許容時間の中で、最も短い保留許容時間と前記カウンタタイマの値とを比較し、前記カウンタタイマの値が前記最も短い保留許容時間より小さい場合は、割込み要求の出力を保留し、前記カウンタタイマの値が前記最も短い保留許容時間以上の場合は、前記プロセッサに対して割込み要求を出力する出力手段とを備えることを特徴とする。
【発明の効果】
【0012】
上述の構成により、本発明に係る割込み制御装置は、プロセッサが省電力状態になってからカウンタタイマによるカウントアップを開始し、カウンタタイマの値とプロセッサが省電力状態になってから発生した割込み要求の要求元のデバイスに対応して設定されている保留許容時間の中で最も短い保留許容時間とを比較し、カウンタタイマの値の方が小さい間は、割込み要求を保留し、カウンタタイマの値が最も短い保留許容時間以上になったときに、プロセッサに対し、割込み要求を出力することで、プロセッサが省電力状態になってすぐに割込み要求を出力することを抑制でき、省電力状態から通常状態への復帰の頻発による省電力効果の低減を抑制することができる。
【図面の簡単な説明】
【0013】
【図1】実施形態1に係る計算機システム100の構成図
【図2】割込み情報20のデータ構成及び内容例を示す図
【図3】許容時間情報30のデータ構成及び内容例を示す図
【図4】認識部111の処理のフローチャート
【図5】受付部114の処理のフローチャート
【図6】更新部117の処理のフローチャート
【図7】出力部118の処理のフローチャート
【図8】プロセッサ101のプロセスモードにおける処理のフローチャート
【図9】プロセッサ101のアイドルタスクのフローチャート
【図10】プロセッサ101の割込みモードにおける処理のフローチャート
【図11】計算機システム100の動作の一例を示すタイミングチャート
【図12】実施形態2に係る計算機システム200の構成図
【図13】プロセッサ201のプロセスモードにおける処理のフローチャート
【図14】認識部211の処理のフローチャート
【図15】実施形態3に係る計算機システム300の構成図
【図16】ランク情報50のデータ構成及び内容例を示す図
【図17】ランク別許容時間情報60のデータ構成及び内容例を示す図
【図18】更新部317の処理のフローチャート
【図19】インターラプト・コーレシングの説明図
【発明を実施するための形態】
【0014】
<実施形態1>
以下、本発明の一実施形態に係る計算機システム100について説明する。
<概要>
計算機システム100の割込み制御装置102は、プロセッサ101がプロセッサ101の一部への電源供給が停止された省電力状態の場合において、割込み制御装置102に接続された各種デバイスから割込み要求が発生したときには、割込み要求を保留し、所定の判断基準に基づき、保留していた割込み要求をまとめてプロセッサ101に対して出力する。ここでの所定の判断基準とは、予めデバイス毎に定められた割込みを保留可能な時間である保留許容時間に基づくものである。
【0015】
プロセッサ101が省電力状態になると、割込み制御装置102は、カウンタタイマ112によりカウントを開始する。また、割込み制御装置102は、割込み要求を出力しているデバイスに対応する保留許容時間の中で最も短い保留許容時間とカウンタタイマ112の値とを比較し、カウンタタイマ112の値が最も短い保留許容時間より小さい間は、割込み要求を保留し、カウンタタイマ112の値が最も短い保留許容時間以上になったときにプロセッサ101に対し割込み要求を出力する。
【0016】
なお、プロセッサ101が省電力状態ではない通常状態の場合において、デバイスにより割込み要求を入力されたときには、割込み制御装置102は、割込み要求を保留せずにプロセッサ101に割込み要求を出力する。
【0017】
これにより、プロセッサ101が省電力状態のときに、割込み要求を出力する回数を抑制することができ、省電力状態から通常状態への復帰の頻発による省電力効果の低減を抑制することができる。
<構成>
図1は、計算機システム100の構成図である。
【0018】
同図に示すように、計算機システム100は、プロセッサ101、割込み制御装置102、メインメモリ103及びデバイス104a及び104bを備える。
プロセッサ101は、メインメモリ103を用いて演算処理を行う機能を有する。
【0019】
プロセッサ101は、通常のタスク処理を行うプロセスモードと優先すべきタスクの処理を行う割込みモードとの少なくとも2種類のモードが存在し、以下の説明では、上述の2種類のモードのいずれかで動作するものとする。
【0020】
プロセスモードにおいて、プロセッサ101は、処理すべきタスクがあるときは当該タスクを実行し、処理すべきタスクがないときにはアイドルタスク(後述)を実行し、省電力状態に遷移する。ここでの省電力状態とは、プロセッサ101の一部に対する電源供給が停止された状態のことであり、割込み要求を受け付ける機能を有する部分には電力が供給されているものとする。これにより、プロセッサ101は、省電力状態のときでも割込み要求を受け付けることができ、省電力状態から通常状態への復帰、つまり電力供給を停止していた部分に対する電力供給の開始もプロセッサ101自身で行うことができる。また、割込み要求が入力されると、プロセッサ101は、割込みモードに遷移し、処理していたタスクを退避した後、割込み処理を行い、割込み処理が終了すると退避していたタスクを復元する。省電力状態のときに割込み要求が入力された場合は、省電力状態から通常状態への復帰をした後に、処理していたタスクを退避し、割込み処理を行った後、退避していたタスクを復元する。
【0021】
以下、プロセッサ101が省電力状態の場合において、割込み制御装置102に割込み要求が入力されたときの機能を中心に説明する。
割込み制御装置102は、更に、認識部111、カウンタタイマ112、割込み記憶部113、受付部114、保留時間記憶部115、許容時間記憶部116、更新部117、出力部118及び状態フラグ119を備える。
【0022】
認識部111は、プロセッサ101が省電力状態になることを認識し、カウンタタイマ112を初期化し、カウント開始指示を送る機能と、保留時間記憶部115に最大値を設定する機能とを有する。また、認識部111は、プロセッサ101がアイドル状態になったことを認識したときに、状態フラグ119に“0”を設定する。
【0023】
カウンタタイマ112は、認識部111よりカウント開始指示を受け取ったときに、カウントアップを開始する機能を有する。なお、カウンタタイマ112が最大値までカウントされた場合は、最大値のままカウントを停止する。
【0024】
割込み記憶部113は、接続されているデバイス毎の割込み要求の有無を示す割込み情報20を記憶するためのメモリ領域である。
図2は、割込み情報20のデータ構造及び内容例を示す図である。
【0025】
割込み情報20は、デバイス毎に予め定められている割込み番号21に割込み要求有無22が対応付けられた情報である。割込み要求有無22は、受付部114により更新される。
【0026】
受付部114は、デバイスから割込み要求を受け付け、割込み情報20を更新する機能と、更新部117に、割込み要求元のデバイスに対応する割込み番号を通知する機能を有する。各デバイスは割込み制御装置102とデバイス毎にそれぞれ異なる信号ピンを使用して接続されているため、受付部114ではアサートされた信号ピンによって割込み要求元のデバイスに対応する割込み番号を認識することができる。
【0027】
なお、受付部114は、プロセッサ101が通常状態のときには、割込み情報20の更新は行うが、更新部117に割込み番号の通知は行わない。
保留時間記憶部115は、保留時間40を記憶するためのメモリ領域である。保留時間40とは、割込み要求を出力しているデバイスに設定されている保留許容時間の中で最も短い保留許容時間のことであり、更新部117により更新され、出力部118がプロセッサに対し、割込み要求をアサートするタイミングの決定に使用される。
【0028】
許容時間記憶部116は、デバイス毎の、割込み要求を保留することができる時間を示す許容時間情報30を記憶するためのメモリ領域である。
図3は、許容時間情報30のデータ構造及び内容例を示す図である。
【0029】
許容時間情報30は、デバイス毎の割込み番号31に保留許容時間32が対応付けられた情報である。保留許容時間32はデバイス毎に予め設定されているものとする。許容時間情報30は、保留時間記憶部115の記憶する保留時間40の更新に使用される。
【0030】
更新部117は、受付部114より割込み番号を受け取ったときに、受け取った割込み番号に対応する保留許容時間を許容時間記憶部116から取得し、取得した保留許容時間と保留時間40とを比較し、保留許容時間の方が小さい場合に、保留許容時間の値で保留時間40を更新する機能を有する。
【0031】
出力部118は、カウンタタイマ112の値と保留時間40とを比較し、カウンタタイマ112の値が保留時間40より小さい間は、割込み要求を出力せず、カウンタタイマ112の値が保留時間40以上になったときに、プロセッサ101に対し割込み要求を出力する機能を有する。
【0032】
なお、出力部118は、プロセッサ101が通常状態のときには、割込み要求が発生するとすぐにプロセッサ101に割込み要求を出力する、つまり、割込み記憶部113の記憶する割込み情報20のいずれかの割込み要求有無22が“1”に遷移すると、プロセッサ101に割込み要求をアサートし、割込み要求有無22が“1”に遷移したデバイスの割込み番号を通知する。
【0033】
状態フラグ119は、プロセッサ101が通常状態か省電力状態かを記憶する記憶素子である。状態フラグ119は、プロセッサ101が省電力状態になるときに、認識部111により“0”が設定され、プロセッサ101が通常状態に復帰するときに、出力部118により“1”を設定される。つまり、状態フラグ119が“0”のときは、プロセッサ101が省電力状態であることを示し、状態フラグ119が“1”のときは、プロセッサ101が通常状態であることを示す。受付部114及び出力部118は、状態フラグ119を参照し、通常状態のときの処理と省電力状態のときの処理とを切り替える。
<動作>
以下、割込み制御装置102の各部の動作を説明する。
【0034】
図4は、認識部111の処理を示すフローチャートである。
認識部111は、プロセッサ101からアイドル状態に遷移したことを通知されると(ステップS1001)、状態フラグ119に“0”を設定し、カウンタタイマ112の値を“0”にした後(ステップS1002)、カウンタタイマ112にカウントアップを開始させるためカウント開始指示を送る(ステップS1003)。その後、保留時間記憶部115の記憶する保留時間40を初期化するため、最大値を設定する(ステップS1004)。ここでの最大値は、設定できる最大の値であり、例えば、保留時間40のサイズが2バイトで、16進数を用いて表記した場合は、ffff(16進数)となる。
【0035】
図5は、受付部114の処理を示すフローチャートである。
受付部114は、接続している全てのデバイスからの割込み要求の有無を割込み番号の順番に繰り返し確認している。図5のフローチャートではループ変数をNとし、ループ変数Nは、初期値“1”から接続されているデバイスの数まで1ずつ増加する。
【0036】
割込み番号“N”のデバイスからの割込み要求がネゲートからアサートに遷移した場合(ステップS1102)、受付部114は、割込み記憶部113が記憶している割込み情報20の割込み番号21“N”に対応する割込み要求有無22に“1”を書き込み(ステップS1103)、更新部117に割込み番号“N”を通知する(ステップS1104)。
【0037】
また、割込み番号“N”のデバイスからの割込み要求がアサートからネゲートに遷移した場合は(ステップS1105)、受付部114は、割込み情報20の割込み番号21“N”に対応する割込み要求有無22に“0”を書き込む(ステップS1106)。ステップS1101からステップS1107の処理を接続されているデバイスの数だけ繰り返し、全デバイスの確認が終わると、再度ループ変数Nに初期値“1”を設定し、最初のデバイスから処理を繰り返す。
【0038】
図6は、更新部117の処理を示すフローチャートである。
更新部117は、受付部114より割込み番号を取得すると(ステップS1201)、許容時間記憶部116より割込み番号に対応した保留許容時間を取得する(ステップS1202)。更に、保留時間40の値を取得し(ステップS1203)、ステップS1202で取得した保留許容時間と比較する(ステップS1204)。保留許容時間が保留時間40より小さければ、保留時間40をステップS1202で取得した保留許容時間に更新する(ステップS1205)。保留許容時間が保留時間40以上であれば、更新部117は保留時間40の更新は行わない。
【0039】
図7は、出力部118の処理を示すフローチャートである。
まず、出力部118は、カウンタタイマ112の値を取得する(ステップS1301)。その後、保留時間40を取得し(ステップS1302)、ステップS1301で取得したカウンタタイマ112の値と比較する(ステップS1303)。
【0040】
カウンタタイマ112の値が保留時間40以上であった場合は、割込み記憶部113を参照し、割込み要求有無22が“1”になっているデバイスがあるか否かを確認する(ステップS1304)。割込み要求有無22が“1”になっているデバイスがあった場合は、プロセッサ101へ割込み要求をアサートし(ステップS1305)、状態フラグ119に“1”を設定し、カウンタタイマ112を停止する(ステップS1306)。その後、割込み要求をアサートしているデバイスの中で、最も保留許容時間が短いデバイスの割込み番号をプロセッサ101へ通知する(ステップS1307)。ここで、プロセッサ101が割込み処理を終えると、デバイスの割込み要求はネゲートされ、受付部114により、割込み要求をネゲートしたデバイスの割込み番号に対応する割込み要求有無22が“0”になる。その後、プロセッサ101より割込み番号を要求された場合において(ステップS1308)、割込み情報20の割込み要求有無22が“1”のデバイスがあったときには、割込み要求有無が“1”のデバイスの中で最も保留許容時間の短いデバイスの割込み番号21をプロセッサ101へ通知する。割込み要求有無22が全て“0”になるまでステップS1307からステップS1309までを繰り返す。
【0041】
出力部118は、割込み要求有無22が全て“0”になったときに、プロセッサ101への割込み要求をネゲートする(ステップS1310)。
以下、プロセッサ101の動作について説明する。
【0042】
図8は、プロセッサ101のプロセスモードにおける処理を示す図である。
プロセッサ101は、処理すべきタスクが存在するときは(ステップS1401のYes)、そのタスクの処理を行い(ステップS1402)、処理すべきタスクがなくなるとアイドルタスクを実行する(ステップS1403)。プロセッサ101は、上述のステップS1401からステップS1403の処理を、通常状態、つまり省電力状態ではないときのみ繰り返す。
【0043】
図9は、プロセッサ101のアイドルタスクの処理を示す図である。
プロセッサ101は、アイドル状態に遷移したことを示す情報を認識部111に通知し(ステップS1501)、その後、プロセッサ101自身の一部への電力供給を停止し、省電力状態へ遷移させる(ステップS1502)。
【0044】
図10は、プロセッサ101の割込みモードにおける処理を示す図である。
出力部118より割込み要求がアサートされると、プロセッサ101は、割込みモードに遷移する。プロセッサ101が省電力状態であった場合は(ステップS1601)、プロセッサ101は省電力状態から通常状態に遷移、つまりプロセッサ101内の電力供給を停止していた部分に電力供給を行う(ステップS1602)。その後、プロセッサ101は、プロセスコンテキストを退避する(ステップS1603)。ここでのプロセスコンテキストとは、プロセッサ101が省電力状態であった場合は、アイドルタスクのことであり、プロセッサ101が通常状態であった場合は、処理中のタスクのことである。
【0045】
次に、出力部118より割込み番号を取得し(ステップS1604)、その割込み番号に対応したデバイスの割込み処理を行う(ステップS1605)。ここでの割込み処理とは、割込み処理の前段、つまり割込み処理の中でも特に優先度の高い部分の処理のことであり、後段の処理は、入力されている全ての割込み要求の処理終了後に実行するため、タスクを生成する。割込み処理が終了すると、そのデバイスの割込み要因をクリア、つまり割込み処理が終了したことをデバイスに通知する(ステップS1606)。その後、出力部118へまだ処理をしていないデバイスの割込み番号を要求し(ステップS1607)、出力部118から割込み番号が返される期間は、ステップS1605からステップS1607までの処理を繰り返す。
【0046】
出力部118から割込み番号が返されず、割込み要求がネゲートされた場合は、プロセスコンテキストを復帰し(ステップS1608)、割込みモードからプロセスモードに遷移する。その後、ユーザプロセス処理、つまり各デバイスの割込み処理の後段の処理を行う。
<割込みタイミングの説明>
図11は、計算機システム100の動作を示すタイミングチャートである。
【0047】
このとき、保留時間記憶部115のサイズは2バイトとする。また、デバイス104aの割込み番号を“1”、保留許容時間32を“4000”とし、デバイス104bの割込み番号を“2”、保留許容時間32を“5000”として以下説明を行う。
【0048】
同図に示すように、時刻T1において、プロセッサ101はアイドル状態に遷移すると、認識部111にアイドル状態になったことを通知する。通知を受けた認識部111は、カウンタタイマ112を初期化、ここではカウンタタイマ112に“0”を設定し、カウンタタイマ112にカウント開始指示を送る。また、認識部111は、保留時間記憶部115の記憶する保留時間40に最大値、ここでは“ffff”を設定する。
【0049】
時刻T2において、プロセッサ101は、省電力状態になる。
時刻T3において、デバイス104aが割込み要求をアサートすると、受付部114は、割込み情報20の割込み番号“1”に対応する割込み要求有無22に“1”を設定し、割込み番号“1”を更新部117へ通知する。更新部117は通知を受けると、通知された割込み番号“1”に対応した保留許容時間を許容時間記憶部116より取得する。更新部117は、取得した割込み番号“1”の保留許容時間と保留時間40とを比較し、小さい方の値である保留許容時間“4000”で、保留時間40を更新する。
【0050】
時刻T4において、デバイス104bが割込み要求をアサートすると、受付部114は、割込み記憶部113の割込み番号“2”に対応する割込み要求有無22に“1”を設定し、割込み番号“2”を更新部117へ通知する。更新部117は通知を受けると、通知された割込み番号“2”に対応した保留許容時間を許容時間記憶部116より取得する。更新部117は、取得した割込み番号“2”の保留許容時間である“5000”と保留時間40の値“4000”とを比較する。このとき、保留時間40の値“4000”の方が割込み番号“2”の保留許容時間“5000”より小さいため、保留時間40は更新されない。
【0051】
時刻T5において、カウンタタイマ112の値が保留時間40以上になると、出力部118はプロセッサ101に割込み要求をアサートし、カウンタタイマ112を停止する。プロセッサ101は、割込み要求がアサートされると、割込みモードとなり、省電力状態から通常状態に復帰する。
【0052】
時刻T6において、プロセッサ101が通常状態になると、出力部118は、割込み要求をアサートしているデバイスの中で、最も短い保留許容時間に対応するデバイスの割込み番号である“1”を、プロセッサ101に通知する。通知を受けたプロセッサ101は、デバイス104aの割込み処理の前段を行う。
【0053】
時刻T7においてプロセッサ101は、デバイス104aの割込み処理の前段を終了すると、割込み要因をクリア、つまり割込み処理が終了したことをデバイス104aに通知する。これにより、デバイス104aは、割込み要求をネゲートする。受付部114は、デバイス104aの割込み要求がネゲートされると、割込み情報20の割込み番号“1”に対応する割込み要求有無22を“0”にする。
【0054】
時刻T8において、プロセッサ101は、出力部118に対し割込み番号を要求し、出力部118は、まだ処理されていない割込み要求をアサートしているデバイスの中で、最も短い保留許容時間に対応するデバイスの割込み番号である“2”を、プロセッサ101に通知する。通知を受けたプロセッサ101は、デバイス104bの割込み処理の前段を行う。
【0055】
時刻T9において、プロセッサ101は、デバイス104bの割込み処理の前段を終了すると、割込み要因をクリアする。これにより、デバイス104bは、割込み要求をネゲートする。受付部114は、デバイス104bの割込み要求がネゲートされると、割込み情報20の割込み番号“2”に対応する割込み要求有無22を“0”にする。
【0056】
時刻T10において、プロセッサ101が割込み要求を出力していたデバイスの割込み処理を全て処理すると、つまり割込み情報20の割込み要求有無22が全て“0”になると、出力部118はプロセッサ101への割込み要求をネゲートする。割込み要求がネゲートされると、プロセッサ101はユーザプロセス処理、つまり割込み処理の後段を行う。
【0057】
時刻T11において、プロセッサ101は、ユーザプロセス処理を終了し、アイドル状態に遷移する。なお、プロセッサ101は、ユーザプロセス処理終了後、処理すべきタスクがある場合は、アイドル状態になる前に、タスクを実行する。
<実施形態2>
実施形態1では、プロセッサ101がアイドル状態になったときに、認識部111に対しアイドル状態になったことを通知した。実施形態2では、プロセッサが実行しているタスクの識別子をメインメモリ内のタスク識別子記憶部205に書き込み、認識部はタスク識別子記憶部205を監視し、タスク識別子がアイドルタスクを示していたときに、カウンタタイマ112を初期化しカウント開始指示を送ることとする。このとき、タスク識別子は、タスク毎に予め設定されているものとする。
<構成>
図12に、計算機システム200の構成図を示す。
【0058】
計算機システム200は、計算機システム100のプロセッサ101をプロセッサ201に、認識部111を認識部211に、メインメモリ103をメインメモリ203に置き換えたものであり、その他の構成は同一である。同一部分に関しては実施形態1と同じ番号を用い、説明を省略する。
【0059】
プロセッサ201は、プロセッサ101の有する機能に加え、実行しているタスクのタスク識別子をメインメモリ203内のタスク識別子記憶部205に書き込む機能を有する。タスク識別子記憶部205は、タスク識別子を記憶するための記憶素子である。
【0060】
認識部211は、メインメモリ203内のタスク識別子記憶部205を監視し、タスク識別子記憶部205に書き込まれたタスク識別子がアイドルタスクを示していたときに、カウンタタイマ112を初期化し、カウント開始指示を送る機能を有する。
<動作>
図13に、プロセッサ201のプロセスモードにおける処理を示す。
【0061】
プロセッサ201は、処理すべきタスクがあるときは(ステップS1701)、タスク識別子記憶部205に当該タスクのタスク識別子を書き込んだ後(ステップS1702)、当該タスクを実行する(ステップS1703)。処理すべきタスクがないときには、タスク識別子記憶部205にアイドルタスクを示す“0”を書き込んだ後(ステップS1704)、アイドルタスクを実行する(ステップS1705)。ここでの、アイドルタスクとは図9に記載のアイドルタスクのステップS1501を削除したものであり、省電力状態への遷移のみを行う。
【0062】
図14に、認識部211の処理を示す。
認識部211は、タスク識別子記憶部205を比較的短い間隔、例えば、プロセッサにおける数十クロック間隔で監視し、タスク識別子が“0”になったとき、つまりアイドルタスクを示したときに(ステップS1801)、カウンタタイマ112の値に“0”を設定し(ステップS1802)、カウンタタイマ112にカウント開始指示を送る(ステップS1803)。その後、保留時間40に最大値を設定する(ステップS1804)。
【0063】
その後、割込み制御装置202は、実施形態1と同様に、カウンタタイマ112の値と保留時間40とを比較し、比較結果に応じて、割込みの要求の保留或いは出力を行う。
<実施形態3>
実施形態1では、許容時間記憶部116は割込み番号31に対応する保留許容時間32を記憶していた。実施形態3では、許容時間記憶部316は、ランク記憶部320とランク別許容時間記憶部321とを含み、更新部317は、受付部114より割込み要求を出力したデバイスの割込み番号受け取った後、ランク記憶部320より割込み番号に応じたランクを取得し、ランク別許容時間記憶部321より取得したランクに対応した保留許容時間を取得する。取得した保留許容時間と保留時間40とを比較し、比較結果に応じて保留時間40の更新を行う。
【0064】
上記のような構成をとることにより、同じ保留許容時間を有するデバイスが複数接続されていた場合に、許容時間記憶部316の使用する容量を抑えることができる。
<構成>
図15は、計算機システム300の構成を示す図である。
【0065】
計算機システム300は、計算機システム100の許容時間記憶部116を許容時間記憶部316に、更新部117を更新部317に置き換えたものであり、その他の構成は同一である。同一部分に関しては実施形態1と同じ番号を用い、説明を省略する。
【0066】
許容時間記憶部316は、更に、ランク記憶部320とランク別許容時間記憶部321とを備える。
ランク記憶部320は、接続されているデバイス毎の、割込み番号とランクとを示すランク情報50を記憶するためのメモリ領域である。
【0067】
図16は、ランク情報50のデータ構造及び内容例を示す図である。
ランク情報50は、デバイス毎の割込み番号51にランク52が対応付けられた情報である。ランク52は、デバイス毎に予め設定されており、ランク別許容時間情報60により保留許容時間と対応付けられている。
【0068】
ランク別許容時間記憶部321は、ランクに対応した割込み要求の保留許容時間を示すランク別許容時間情報60を記憶するためのメモリ領域である。
図17は、ランク別許容時間情報60のデータ構造及び内容例を示す図である。
【0069】
ランク別許容時間情報60は、ランク61毎に割込みの保留許容時間62が対応付けられた情報である。保留許容時間は、ランク毎に予め設定されている。
更新部317は、保留時間40を更新する機能を有する。具体的には、更新部317は、受付部114より割込み番号を受け取ったときに、受け取った割込み番号に対応するランクをランク記憶部320から取得し、取得したランクに対応する保留許容時間をランク別許容時間記憶部321から取得する。その後、取得した保留許容時間と保留時間40とを比較し、保留許容時間の方が小さければ保留許容時間で保留時間40を更新する機能を有する。
【0070】
<動作>
ここでは、実施形態1と異なる処理を行う更新部317の動作のみを説明し、その他の処理は全て実施形態1と同一のため省略する。
【0071】
図18は、更新部317の処理を示す図である。
更新部317は、受付部114より割込みを出力したデバイスの割込み番号を取得すると(ステップS1901)、ランク記憶部320より割込み番号に応じたランクを取得し(ステップS1902)、ランク別許容時間記憶部321よりランクに応じた保留許容時間を取得する(ステップS1903)。その後、更新部317は、実施形態1と同様に、ステップS1903で取得した保留許容時間と保留時間40とを比較し、保留許容時間の方が小さければ保留許容時間で保留時間40を更新する(ステップS1904〜ステップS1906)。
【0072】
その後、割込み制御装置302は、実施形態1と同様にカウンタタイマ112と保留時間40とを比較し、カウンタタイマ112が保留時間40以上になったときに、プロセッサ101に対し、割込み要求をアサートする。
<補足>
以上、本発明に係る割込み制御装置の実施形態を説明したが、例示した計算機システムを以下のように変形することも可能であり、本発明が上述の実施形態で示した通りの計算機システムに限られないことは勿論である。
【0073】
(1)上述の実施形態では、プロセッサが割込み番号を出力部に要求し、出力部が保留許容時間の短いデバイスの割込み番号から通知することとしたが、出力部が割込み要求をアサートするときに、割込み要求を出力している全てのデバイスの割込み番号を通知することとしてもよい。また、プロセッサが直接割込み記憶部より割込み番号を取得することとしてもよい。
【0074】
(2)上述の実施形態では、プロセッサの省電力状態とは、プロセッサの一部、つまりプロセッサを構成するキャッシュメモリやレジスタ等に対する電源供給が停止された状態としたが、省電力状態は電源を供給する電圧を低下した状態、又はクロックを停止した状態としてもよい。また、プロセッサ全体に対する電源供給を停止した状態を省電力状態としてもよく、その場合、割込み制御装置の出力部は、プロセッサに対する電力供給を制御する起動制御部等を介してプロセッサに割込み要求を出力することとする。これにより、出力部が割込み要求をアサートすると、プロセッサは起動し、割込み要求を受けることが可能となる。
【0075】
(3)上述の実施形態では、省電力状態のときに割込み処理が発生したときには、プロセスコンテキストの退避としてアイドルタスクを退避したが、アイドルタスクの退避は省略し、アイドルタスク固有のアドレスを使用してアイドルタスクを復元することとしてもよい。
【0076】
(4)上述の実施形態では、デバイスは異なる信号ピンを介して割込み制御装置と接続されていて、アサートされた信号ピンにより受付部は割込み要求をアサートしたデバイスの割込み番号を認識できることとしたが、複数のデバイスが信号ピンを共有し、デバイスが割込み要求をアサートするときに、割込み制御装置に対して割込み番号も通知することとしてもよい。この場合、一つのデバイスから割込み要因が異なる複数の割込み要求を出力してもよい。
【0077】
(5)上述の実施形態では、接続しているデバイスを識別するために割込み番号を使用したが、デバイスを識別できるものであれば、アルファベット等その他の識別子でもよい。
【0078】
(6)上述の実施形態では、カウンタタイマ112はカウントアップしていくものとしたが、最大値からカウントダウンしていくものとしてもよい。その場合、出力部は、カウンタタイマ112の値が保留時間40以下になったときに、プロセッサに対し割込み要求を出力するものとする。
【0079】
(7)上述の実施形態1ではプロセッサ101はアイドル状態に遷移した後に、認識部111に対してアイドル状態になったことを通知したが、プロセッサが省電力状態になるための専用命令を発行し、認識部はプロセッサを監視し、プロセッサが専用命令を発行したときに、カウンタタイマ112を初期化し、カウント開始指示を送ることとしてもよい。専用命令とは、例えば、ARM(登録商標)命令セットの、WFI(Wait For Interrupt)命令である。
【0080】
(8)上述の実施形態2では、タスク識別子記憶部205はメインメモリ203内に格納されていることとしたが、タスク識別子記憶部はメインメモリ内に限らず、例えば、プロセッサ内に格納されるものとしてもよい。
【0081】
(9)上述の実施形態3では、許容時間記憶部316の構成をランク情報50とランク別許容時間情報60の2段構成としたが、これに限らず、許容時間記憶部316の構成は3段構成や4段構成等としてもよい。
【0082】
(10)上述の各実施形態及び各変形例を、部分的に組み合せてもよい。
(11)実施形態1〜3で示した計算機システムは、IC、LSIその他の集積回路のパッケージとして構成されるものとしてもよい。このパッケージは各種装置に組み込まれて利用に供され、これにより各種装置は、各実施形態で示したような各機能を実現するようになる。
【0083】
以下、更に本発明の一実施形態としての割込み制御装置の構成及びその変形例と効果について説明する。
(a)本発明の一実施形態に係る割込み制御装置は、図1に示すように、プロセッサと複数のデバイスとに接続され、前記複数のデバイスからの複数の割込み要求を一つの割込み要求にまとめる機能を有する割込み制御装置であって、前記プロセッサが省電力状態に遷移するときに、カウントを開始するカウンタタイマと、前記デバイス毎に設定されている割込み要求の保留許容時間を予め記憶している許容時間記憶手段と、前記プロセッサが省電力状態のときに発生した割込み要求の要求元のデバイスに対応して設定されている前記保留許容時間の中で、最も短い保留許容時間と前記カウンタタイマの値とを比較し、前記カウンタタイマの値が前記最も短い保留許容時間より小さい場合は、割込み要求の出力を保留し、前記カウンタタイマの値が前記最も短い保留許容時間以上の場合は、前記プロセッサに対して割込み要求を出力する出力手段とを備える。この構成により、割込み制御装置は、プロセッサが省電力状態のときに発生した割込み要求をまとめて通知するため、プロセッサが省電力状態のときの割込み要求の出力回数を抑制することができ、プロセッサの省電力状態から通常状態への復帰による省電力効果の低減を抑制することができる。
【0084】
(b)前記割込み制御装置における前記デバイスには、デバイス毎にデバイスを識別する識別子が設定されており、前記出力手段は、割込み要求を出力するときに、割込み要求元のデバイスの中で、最も短い前記保留許容時間が設定されているデバイスの前記識別子を出力し、前記プロセッサより要求があったときに、未だ処理されていない割込み要求の要求元のデバイスの中で最も短い前記保留許容時間が設定されているデバイスの前記識別子を出力することとしてもよい。この構成によると、複数の割込み要求がまとめて通知された場合、保留許容時間の短いデバイスの割込み識別子から通知されるため、プロセッサが保留許容時間の短い割込み要求から処理を行うことができる。
【0085】
(c)前記割込み制御装置は、更に、前記プロセッサが省電力状態のときに発生した割込み要求の要求元のデバイスに対応して設定されている前記保留許容時間の中で、最も短い保留許容時間を記憶する保留時間記憶手段と、前記プロセッサが省電力状態の場合において、前記デバイスより割込み要求が発生したときに、前記許容時間記憶手段から割込み要求元のデバイスに対応して設定されている保留許容時間を取得し、取得した保留許容時間と前記保留時間記憶手段の値とを比較し、取得した前記保留許容時間の方が小さければ、前記保留許容時間で前記保留時間記憶手段の値を更新する更新手段を備え、前記出力手段は、前記カウンタタイマの値と前記保留時間記憶手段の値とについて前記比較を行うこと
としてもよい。この構成によると、プロセッサが省電力状態のときに発生した割込み要求の要求元のデバイスに設定されている保留許容時間の中で最も短い保留許容時間が保留時間記憶部に記憶されるため、当該最も短い保留許容時間とカウンタタイマとの比較が行いやすくなる。
【0086】
(d)前記割込み制御装置は、更に、前記プロセッサからの通知により、前記プロセッサが省電力状態に遷移することを認識し、前記プロセッサが省電力状態に遷移することを認識したときに、前記カウンタタイマに対しカウント開始指示を出力する認識手段を備え、前記カウンタタイマは、前記認識手段によりカウント開始指示を受け取ったときにカウントを開始することとしてもよい。この構成によると、認識手段はプロセッサから省電力状態になることを通知されるため、カウンタタイマはプロセッサが省電力状態になるとすぐにカウントを開始することができる。
【0087】
(e)前記プロセッサは、メモリを用いて演算処理を行い、当該メモリに実行中のタスクを示すタスク識別子を書き込み、前記割込み制御装置における前記認識手段は、前記タスク識別子を参照し、参照した前記タスク識別子がアイドルタスクを示していたときに、前記プロセッサが省電力状態に遷移することを認識することとしてもよい。この構成によると、認識手段はタスク識別子によりプロセッサが省電力状態か否かを認識することができるため、割込み制御装置はプロセッサから直接通知されなくても、プロセッサが省電力状態になったことを認識することができる。
【0088】
(f)前記割込み制御装置における前記許容時間記憶手段は、デバイスに対応するランクを記憶するランク記憶手段と前記ランクに対応する割込み要求の保留許容時間を記憶するランク別許容時間記憶手段を備え、前記更新手段は、前記デバイスより割込み要求が発生したときに、前記ランク記憶手段から割込み要求元のデバイスに対応するランクを取得し、前記ランク別許容時間記憶手段から取得したランクに対応する保留許容時間を取得することとしてもよい。この構成によると、許容時間記憶部は、割込み識別子とランクとが対応するランク記憶情報記憶部とランクと保留許容時間とが対応するランク別許容時間記憶部との2段構成になっているため、同じ保留許容時間を有するデバイスが複数接続されていた場合に、許容時間記憶部の使用する容量を抑えることができる。
【産業上の利用可能性】
【0089】
本発明に係る割込み制御装置は、プロセッサが省電力状態のときに割込み要求の出力回数を抑制するものであり、プロセッサを搭載する計算機システム等の省電力を目的とした割込み制御装置として有用である。
【符号の説明】
【0090】
101、201 プロセッサ
102、202、302 割込み制御装置
103、203 メインメモリ
104 デバイス
111、211 認識部
112 カウンタタイマ
113 割込み記憶部
114 受付部
115 保留時間記憶部
116、316 許容時間記憶部
117、317 更新部
118 出力部
205 タスク識別子記憶部
320 ランク情報記憶部
321 ランク別許容時間記憶部

【特許請求の範囲】
【請求項1】
プロセッサと複数のデバイスとに接続され、前記複数のデバイスからの複数の割込み要求を一つの割込み要求にまとめる機能を有する割込み制御装置であって、
前記プロセッサが省電力状態に遷移するときに、カウントを開始するカウンタタイマと、
前記デバイス毎に設定されている割込み要求の保留許容時間を予め記憶している許容時間記憶手段と、
前記プロセッサが省電力状態のときに発生した割込み要求の要求元のデバイスに対応して設定されている前記保留許容時間の中で、最も短い保留許容時間と前記カウンタタイマの値とを比較し、前記カウンタタイマの値が前記最も短い保留許容時間より小さい場合は、割込み要求の出力を保留し、前記カウンタタイマの値が前記最も短い保留許容時間以上の場合は、前記プロセッサに対して割込み要求を出力する出力手段と
を備えることを特徴とする割込み制御装置。
【請求項2】
前記デバイスには、デバイス毎にデバイスを識別する識別子が設定されており、
前記出力手段は、割込み要求を出力するときに、割込み要求元のデバイスの中で、最も短い前記保留許容時間が設定されているデバイスの前記識別子を出力し、前記プロセッサより要求があったときに、未だ処理されていない割込み要求の要求元のデバイスの中で最も短い前記保留許容時間が設定されているデバイスの前記識別子を出力する
ことを特徴とする請求項1に記載の割込み制御装置。
【請求項3】
更に、前記プロセッサが省電力状態のときに発生した割込み要求の要求元のデバイスに対応して設定されている前記保留許容時間の中で、最も短い保留許容時間を記憶する保留時間記憶手段と、
前記プロセッサが省電力状態の場合において、前記デバイスより割込み要求が発生したときに、前記許容時間記憶手段から割込み要求元のデバイスに対応して設定されている保留許容時間を取得し、取得した保留許容時間と前記保留時間記憶手段の値とを比較し、取得した前記保留許容時間の方が小さければ、前記保留許容時間で前記保留時間記憶手段の値を更新する更新手段を備え、
前記出力手段は、前記カウンタタイマの値と前記保留時間記憶手段の値とについて前記比較を行う
ことを特徴とする請求項2に記載の割込み制御装置。
【請求項4】
更に、前記プロセッサからの通知により、前記プロセッサが省電力状態に遷移することを認識し、前記プロセッサが省電力状態に遷移することを認識したときに、前記カウンタタイマに対しカウント開始指示を出力する認識手段を備え、
前記カウンタタイマは、前記認識手段によりカウント開始指示を受け取ったときにカウントを開始する
ことを特徴とする請求項3に記載の割込み制御装置。
【請求項5】
前記プロセッサは、メモリを用いて演算処理を行い、当該メモリに実行中のタスクを示すタスク識別子を書き込み、
前記認識手段は、前記タスク識別子を参照し、参照した前記タスク識別子がアイドルタスクを示していたときに、前記プロセッサが省電力状態に遷移することを認識する
ことを特徴とする請求項3に記載の割込み制御装置。
【請求項6】
前記許容時間記憶手段は、デバイスに対応するランクを記憶するランク記憶手段と前記ランクに対応する割込み要求の保留許容時間を記憶するランク別許容時間記憶手段を備え、
前記更新手段は、前記デバイスより割込み要求が発生したときに、前記ランク記憶手段から割込み要求元のデバイスに対応するランクを取得し、前記ランク別許容時間記憶手段から取得したランクに対応する保留許容時間を取得する
ことを特徴とする請求項3に記載の割込み制御装置。
【請求項7】
計算機システムにおいて、複数のデバイスと接続され、前記複数のデバイスからの複数の割込み要求を一つの割込み要求にまとめる機能を有する集積回路であって、
プロセッサと、
前記プロセッサが省電力状態に遷移するときに、カウントを開始するカウンタタイマと、
前記デバイス毎に設定されている割込み要求の保留許容時間を予め記憶している許容時間記憶部と、
前記プロセッサが省電力状態のときに発生した割込み要求の要求元のデバイスに対応して設定されている前記保留許容時間の中で、最も短い保留許容時間と前記カウンタタイマの値とを比較し、前記カウンタタイマの値が前記最も短い保留許容時間より小さい場合は、割込み要求の出力を保留し、前記カウンタタイマの値が前記最も短い保留許容時間以上の場合は、前記プロセッサに対して割込み要求を出力する出力部と
を備えることを特徴とする集積回路。
【請求項8】
プロセッサと複数のデバイスとを含む計算機システムにおいて、複数のデバイスからの複数の割込み要求を一つの割込み要求にまとめる割込み制御装置における割込み制御方法であって、
前記割込み制御装置におけるカウンタタイマが、前記プロセッサが省電力状態に遷移するときに、カウントを開始するカウントステップと、
前記割込み制御装置が、前記デバイス毎に設定されている割込み要求の保留許容時間を予め記憶している許容時間記憶ステップと、
前記プロセッサが省電力状態のときに発生した割込み要求の要求元のデバイスに対応して設定されている前記保留許容時間の中で、最も短い保留許容時間と前記カウンタタイマの値とを比較し、前記カウンタタイマの値が前記最も短い保留許容時間より小さい場合は、割込み要求の出力を保留し、前記カウンタタイマの値が前記最も短い保留許容時間以上の場合は、前記プロセッサに対して割込み要求を出力する出力ステップと
を備えることを特徴とする割込み制御方法。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate

【図12】
image rotate

【図13】
image rotate

【図14】
image rotate

【図15】
image rotate

【図16】
image rotate

【図17】
image rotate

【図18】
image rotate

【図19】
image rotate


【公開番号】特開2012−113558(P2012−113558A)
【公開日】平成24年6月14日(2012.6.14)
【国際特許分類】
【出願番号】特願2010−262786(P2010−262786)
【出願日】平成22年11月25日(2010.11.25)
【出願人】(000005821)パナソニック株式会社 (73,050)
【Fターム(参考)】