説明

タイマ管理方法、並びにタイマ管理装置

【課題】実行期限を保証する誤差を指定できるタイマであって、かつ、デフェラブルタイマのようなタイマを使用する際に、タイマの期限について意識することを必要とせず、省電力効果を得る。
【解決手段】デフェラブルタイマを示すデータが格納されたタイマ種類と、デフェラブルタイマの実行期限を指定するデータが格納されたタイマ期限とを有する第一タイマ管理情報と、ノーマルタイマを示すデータが格納されたタイマ種類と、デフェラブルタイマの実行期限に許容誤差を加算した値を格納したタイマ期限とを有する第二タイマ管理情報とを用いるタイマ管理方法であって、第一タイマ管理情報のタイマ期限の値に対応する、タイマ管理テーブルのタイムスロットに第一のタイマ管理情報をリンクさせる処理と、第二タイマ管理情報のタイマ期限を超えているか、或いは別のノーマルタイマが存在する、タイマ管理テーブルのタイムスロットに第二タイマ管理情報をリンクさせる処理とを有する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、タイマ管理方法、並びにタイマ管理装置に関する。
【背景技術】
【0002】
近年のOS(Operating System)は、CPUに省電力モードが提供されたことに伴い、アイドル(CPUが)ときCPUを省電力モードに遷移させ、システムを省電力化していることが多い。省電力モードに遷移したCPUは定期的に発生するタイマ割り込みで通常のモードへ戻る。
【0003】
この省電力モードを利用して、アイドル時には、ソフトタイマを評価し、次に実行すべきソフトタイマの期限まで、タイマ割り込みを発生させないようハードウエア(HW)タイマにプログラムを行うことで、CPUの省電力モードをより長く維持する方法(以下、この方法をダイナミックチックと呼ぶ)が提案されている(例えば、非特許文献1)。
【0004】
上記「ダイナミックチック」の問題点は、ソフトタイマを使用するカーネルやアプリケーション、デバイスドライバが、各々好きな時刻を指定してソフトタイマの期限をセットするため、指定時刻はバラバラになり、各タイマが期限を迎えるたび、システムはアイドル状態から復帰するため、システムがアイドル状態を維持している時間が短く、省電力効果があまり得られないという点である。
【0005】
その対応策として、ソフトタイマをクリティカルなものとクリティカルでないもので区別し、アイドル中は、クリティカルでないソフトタイマ(以下、デフェラブルタイマ;Deferrable timer)の期限は評価対象外として、システムを省電力モードから通常モードに復帰させないようにし、クリティカルなタイマ(以下、ノーマルタイマ)の期限にあわせてシステムを省電力モードから通常モードに復帰させるという考えが提案されている(例えば、非特許文献2)。
【0006】
また、ソフトタイマを実行するたびに、期限を迎えたタイマの次に実行すべきタイマの許容誤差を調べ、許容誤差範囲内であればそのタイマも同時に実行し、タイマ割り込みを減らす技術も提案されている(例えば、特許文献1)。
【非特許文献1】Thomas Gleixner, Ingo Molnar、 ”hrtimers”、[online]、[平成20年3月21日検索]、インターネット〈URL:http://tglx.de/hrtimers.html〉
【非特許文献2】corbet、” Deferrable timers”、[online]、平成19年3月28日、[平成20年3月21日検索]、インターネット〈http://lwn.net/Articles/228143/〉
【特許文献1】特開2000−259429号公開公報
【発明の開示】
【発明が解決しようとする課題】
【0007】
しかし、従来のデフェラブルタイマによる管理方法は、ノーマルタイマの使用頻度が少ない場合では、タイマを実行するタイミングがタイマ管理テーブルに依存することになり、いつになるかわからず、ソフトタイマを利用する側にとって使いづらいという欠点がある。
【0008】
また、上記[特許文献1]に開示された方法はタイマの許容誤差を調べる回数に上限が必要となり、CPUの省電力モードを維持する時間もその上限に従わなければならないという問題があった。
【0009】
本発明では、タイマの種類をノーマルタイマ、デフェラブルタイマの2種類を利用し、実行期限を保証する誤差を指定できるタイマであって、かつ、デフェラブルタイマのようなタイマを使用する際に、タイマの期限について意識することを必要とせず、省電力効果を得られるソフトタイマ(以下、マージンタイマと呼ぶ)を提案する。
【課題を解決するための手段】
【0010】
上記課題を解決するための手段として、本発明は以下の特徴を有する。
【0011】
本発明の第1の態様は、タイマ管理方法として提案される。
【0012】
このタイマ管理方法は、デフェラブルタイマを示すデータが格納されたタイマ種類と、デフェラブルタイマの実行期限を指定するデータが格納されたタイマ期限とを有する第一タイマ管理情報と、ノーマルタイマを示すデータが格納されたタイマ種類と、デフェラブルタイマの実行期限に許容誤差を加算した値を格納したタイマ期限とを有する第二タイマ管理情報とを用いるタイマ管理方法であって、第一タイマ管理情報のタイマ期限の値に対応する、タイマ管理テーブルのタイムスロットに第一のタイマ管理情報をリンクさせる処理と、第二タイマ管理情報のタイマ期限を超えているか、或いは別のノーマルタイマが存在する、タイマ管理テーブルのタイムスロットに第二タイマ管理情報をリンクさせる処理とを有することを特徴としている。
【0013】
本発明の第2の態様は、タイマ管理装置として提案される。
【0014】
このタイマ管理装置は、デフェラブルタイマを示すデータが格納されたタイマ種類と、デフェラブルタイマの実行期限を指定するデータが格納されたタイマ期限とを有する第一タイマ管理情報と、ノーマルタイマを示すデータが格納されたタイマ種類と、デフェラブルタイマの実行期限に許容誤差を加算した値を格納したタイマ期限とを有する第二タイマ管理情報とを記憶する記憶手段と、第一タイマ管理情報のタイマ期限の値に対応する、タイマ管理テーブルのタイムスロットに第一のタイマ管理情報をリンクさせ、第二タイマ管理情報のタイマ期限を超えているか、或いは別のノーマルタイマが存在する、タイマ管理テーブルのタイムスロットに第二タイマ管理情報をリンクさせる管理手段とを有することを特徴としている。
【0015】
本発明の第3の態様は、タイマ管理方法として提案される。
【0016】
このタイマ管理方法は、 マージンタイマの第一タイマ管理情報,第二タイマ管理情報それぞれの二つのタイマIDを取得する処理と、第一タイマ管理情報のタイマ期限の値に一致する、タイマ管理テーブルのタイムスロットを決定し、決定したタイムスロットに第一タイマ管理情報の前方リンク及び後方リンクを使用して、キューイングを行う処理と、
変数に、キューイングを行ったタイムスロットの位置に1を加算した値を代入する処理と、前記変数の値が指すタイムスロットの位置が、前記第二タイマ管理情報のタイマ期限である、第一タイマ管理情報のタイマ期限の値に許容誤差を加算した値を超えたか否かを判定する第一判定条件と、前記変数の値が指すタイムスロットの位置に別のノーマルタイマが存在するか否を判定する第二判定条件とを判定する処理と、前記第一判定条件及び前記第二判定条件のいずれかが満たされていると判定した場合、前記変数が指すタイムスロットの位置に、第二タイマ管理情報の前方リンク、後方リンクを使用してキューイングを行なう処理とを有することを特徴としている。
【発明の効果】
【0017】
本発明によれば、実行期限を保証する誤差を指定できるタイマであって、かつ、タイマの期限について意識することを必要とせず、省電力効果を得られるソフトタイマの使用を可能とすることができる。
【発明を実施するための最良の形態】
【0018】
以下、図面を参照しながら本発明の実施の形態を説明する。
【0019】
本実施形態は、デフェラブルタイマに最低でも実行される期限を保証する許容誤差を設定できるタイマを実現する装置(以下、タイマ管理装置)及び、タイマ管理方法として提案される。
【0020】
[本実施形態の前提]
図1は、タイマ管理装置のハードウエア構成の一例を示したブロック図である。図1に示した例では、タイマ管理装置10は、中央処理装置(以下、CPUと称す)101と、CPU101に接続されたメモリ102と、CPU101に接続されたハードウエアタイマ103とを有している。メモリ102は、ランダム・アクセス・メモリ(以下、RAMと称す)104、リード・オンリ・メモリ(以下、ROMと称す)105を有しており、本発明の記憶手段として機能する。
【0021】
CPU101は、このタイマ管理装置10の全体を制御する制御部であり、メモリ102、より詳しくはRAM104やROM105に格納されたプログラムを実行し、各種の処理を行う機能を有している。また、ハードウエアタイマ103は、適当な周期で動作することにより、一定間隔で割り込みを発生させる機能を有する。CPU101は本発明の管理手段として機能する。
【0022】
図2は、上記タイマ管理装置10による基本的なタイマ管理テーブルを用いたソフトウエアタイマの管理方法を図解したブロック図である。
【0023】
クロックダイアル201は、システムが起動してから発生したハードウエアタイマ103の割り込み回数をカウントしたカウント値であり、このクロックダイアル201により後述するタイムスロットが指定される。クロックダイアル201はCPU101によって管理されるメモリ102内のデータである。
【0024】
タイマ管理テーブル202は各タイマ情報を管理するためのデータであって、複数のタイムスロット203−1〜203−5を有している(以下、これらタイムスロットを区別しない場合は、代表して単に「タイムスロット203」と表記する)。各タイムスロット203−1〜203−5には、その時点で実行すべきタイマ管理情報へのリンクがなされている。
【0025】
例えば、ハードウエアタイマ103の割り込みが10msごとに発生し、クロックダイアル101が、図2にあるようにタイマ管理テーブル202における2番目のタイムスロット203−2を指しているとする。この状態の後、前回のハードウエアタイマ103による割り込み時から10ms経過すると、クロックダイアル201は、2番目のタイムスロット203−2の次のタイムスロット203−3を指すようにインクリメントされる。このタイムスロット203−3からタイマ管理情報へのリンクがされている場合、CPU101は、そのタイマ管理情報に記述されているすべてのタイマを実行する。
【0026】
タイマ管理装置10は、上記のタイマ管理テーブル202に加えて、オーバフローイベントバッファ204を用いる。
【0027】
オーバフローイベントバッファ204はタイマ管理テーブル202で管理しきれない未来のタイマのタイマ管理情報を一時的に保存しておく手段で、クロックダイアル201がタイマ管理テーブル202の最後のタイムスロット203−5を指した時点で、オーバフローイベントバッファ204に格納されているタイマ管理情報205−1〜205−4の中から、次にタイマ管理テーブル202のタイムスロット203−1からタイムスロット203−5で管理できる範囲のタイマ管理情報(図2では、タイマ管理情報205−1,205−2であるものとする)をタイマ管理テーブル202の対応するタイムスロット(図2では、タイムスロット203−3、203−5であるものとする)へ移動(リンク付け)するとともに、クロックダイアル201をリセットし、クロックダイアル201の値がタイマ管理テーブル202の先頭のタイムスロット203−1を指すようにする。
【0028】
このように、タイマ管理装置10は、クロックダイアル201,タイマ管理テーブル202,オーバフローイベントバッファ204を用いて、タイマの実行を管理する。
【0029】
次に、上記のタイマ管理情報205−1〜205−4(以下、これらタイマ管理情報を代表して単に「タイマ管理情報205」と表記する)について説明する。
【0030】
図3は、従来の一般的なタイマ管理情報のデータ構成例を示したブロック図である。タイマ管理情報205は、前方リンク301,後方リンク302,タイマID303,タイマ期限304,イベントハンドラへのリンク305,タイマ種類306とを有している。
【0031】
前方リンク301,後方リンク302は、同じタイマ期限を有するタイマの双方向リンクを行う情報である。図4は、あるタイムスロット203と、このタイムスロットからリンクされているタイマ管理情報205との関係を示す図である。同じタイマ期限304をもつタイマは、対応するタイマ管理情報205がそれぞれの前方リンク301、後方リンク302により双方向リンクとして管理される。また、タイマ期限304に応じたタイムスロット203に先頭のタイマ管理情報205のリンクがセットされる。リンクの終端は”NULL”206によって示され、CPU101はリンク先のデータ”NULL”である場合、このタイムスロット203におけるタイマ管理情報205はこれ以上存在しないことを判定できるようになっている。
【0032】
図3に戻り、タイマ管理情報205のデータ構成例の説明を再開する。
【0033】
タイマID303は、タイマの識別子であって、タイマ管理情報205が作成された段階でタイマそれぞれに一意に与えられ、タイマの開始、停止、削除に使用される。
【0034】
タイマ期限304はタイマの起動時間を指定する情報である。タイマはタイマ期限304より指定された時間を迎えると、タイマ管理情報205のイベントハンドラのリンク305から対応するイベントハンドラ(図略)を特定し、このイベントハンドラを実行する。イベントハンドラの実行後、このタイマ管理情報205はタイムスロット203から削除される。
【0035】
タイマ種類306には、そのタイマがノーマルタイマであるかディフェラブルタイマであるを示すデータ(例えば、値)を格納する。タイマ種類306がノーマルタイマを示す場合、アイドル時のタイマ期限の評価対象(後述する図5,S10参照)となり、一方タイマ種類306がデフェラブルタイマを示す場合、アイドル時のタイマ期限の評価対象(後述する図5,S10参照)とされない、すなわち省電力モードを妨げるタイマ割り込みを発生させることがない。
【0036】
[ダイナミックチックを行うアイドル処理について]
上記のタイマ管理テーブル202を利用して、ダイナミックチックを行うアイドル処理を行う例を説明する。図5は、タイマ管理テーブル202を利用したアイドル処理の一例を示したフローチャートである。
【0037】
タイマ管理装置10がアイドル処理を開始すると、タイマ管理装置10,より詳しくはCPU101は、タイマ管理テーブル202を参照し、現在のクロックダイアル201が示す値から、次に実行すべきタイムスロット203までの間隔を調べるタイマイベントの評価を行う(S10)。次に、タイマ管理装置10,より詳しくはCPU101は、次に実行すべきタイムスロット203までの間隔に相当する値をハードウエアタイマ103へ設定し、ハードウエアタイマ103へ次の割り込みを起こす時間をセットする(S20)。
【0038】
その後、タイマ管理装置10,より詳しくはCPU101は、CPU101を省電力モードへ遷移させる(S30)。省電力モードに遷移したことにより、CPU101は停止状態になる(S40)。
【0039】
その後、ハードウエアタイマ103は、前述のステップS20において設定された時間が経過したのち、CPU101へタイマ割り込みを行う(S50)か、或いはその他の割り込みが発生する(S50)と、CPU101は省電力モードから通常モードへ遷移して(S60)、割り込みハンドラを実行する(S70)。次に、CPU101はプロセス起床の有無をチェックし(S80)、プロセス起床がある場合(S80、Yes)、CPU101はスケジューラを呼び出しプロセススケジューリングを行い(S90)、アイドル処理を終了する。一方、ステップS80においてプロセス起床がない場合(S80、No)、CPU101はステップS10に制御を戻し、再び次のタイマまでの間隔を調べる(S10)。
【0040】
[次のタイマ期限の評価方法]
次に、前述のアイドル処理における次のタイマイベントの評価(S10)の処理内容について詳述する。図6は、次のタイマイベントの評価処理(S10)の処理例を示すフローチャートである。
【0041】
タイマイベントの評価処理を開始すると、CPU101は、その時点におけるクロックダイアルの値を示す変数iを初期値にセットする(S110)。次に、CPU101は変数iの値をインクリメントする(S120)。次に、CPU101はタイマ管理テーブル202のタイムスロット203のうち、変数iの値に対応する位置のタイムスロット203を調べ、そのタイムスロット203にタイマがセットされているか否かを判定する(S130)。
【0042】
タイマがセットされていると判定した場合(S130、Yes)、CPU101は、そのタイマがノーマルタイマか否かをタイマ管理情報205、より詳しくはタイマ種別306により判定する(S140)。そのタイムスロットにセットされているタイマがノーマルタイマであると判定した場合(S140、Yes)、変数iに格納されているクロックダイアルの値を次のハードウエアタイマの割り込みを起こす時間として使用する(S150)。
【0043】
一方、ステップS140の判定において、変数iに対応するタイムスロット203にノーマルタイマがセットされていない場合、すなわちディフェラブルタイマ又はNULLのみしかセットされていない場合(S140,No)、CPU101はその変数iの値を評価せず、制御をステップS120に戻して変数iのインクリメントを行い(S120)、次のタイムスロット203にセットされているタイマを調べる(S130)。
【0044】
この方法を使えばデフェラブルタイマは次のタイマの期限の評価対象から外れるため、アイドル時のダイナミックチックによる省電力効果を増すことができる。
【0045】
[タイマ実行方法]
次に、タイマの実行方法について説明する。図7は、タイマ管理装置10がタイマを実行するタイマ実行処理の一例を示したフローチャートである。
【0046】
タイマの実行を開始すると、CPU101はクロックダイアル201の値のアップデートを行う(S210)。クロックダイアル201をアップデートする値は、前回実行したソフトタイマの時刻から現在実行するソフトタイマの時刻の差分値をクロックダイアルiに加算した値となる。
【0047】
次に、CPU101は、アップデート前のクロックダイアル201が指すタイマ管理テーブル202のタイムスロット203から、アップデート後のクロックダイアル201が指すタイムスロット203の範囲に存在するタイマ管理情報205へのリンクが指し示すタイマ管理情報205を参照し、そのタイマ管理情報205内のイベントハンドラへのリンク305が指し示すイベントハンドラを特定し、そのイベントハンドラの実行を行う(S220)。
【0048】
ステップS220におけるすべてのタイマの実行が終了した後、CPU101は、クロックダイアル201の指す値がタイマ管理テーブル202の末尾のタイムスロット203であるか否かを判定する(S230)。クロックダイアル201の指す値がタイマ管理テーブル202の末尾のタイムスロット203であると判定した場合(S230、Yes)、CPU101はオーバフローイベントバッファ204から、次にタイマ管理テーブル202のタイムスロット203−1〜203−5で管理できるタイマ管理情報205の移動(リンクの設定)を行う(S240)。タイマ管理情報205の移動を終えると、CPU101はクロックダイアル201の値をタイマ管理テーブル202の先頭のタイムスロット203の値にセットし(S250)、ソフトタイマ実行処理を終了する。一方、ステップS230においてクロックダイアル201の指す値がタイマ管理テーブル202の末尾のタイムスロット203でないと判定した場合(S230、No)、CPU101はステップS240、S250を行うことなくそのままソフトタイマ実行処理を終了する。
【0049】
[本発明の実施の形態にかかるソフトウエアタイマ(マージンタイマ)]
上記従来技術において、デフェラブルタイマについては、ダイナミックチックを利用したアイドル処理時、タイマの期限の評価がされないという特徴があり、アイドル処理でCPU101が省電力モードへ遷移した後から復帰までの間隔を延ばす効果が得られる。但し、デフェラブルタイマの使用頻度が高く、ノーマルタイマの使用頻度が低い状況では、デフェラブルタイマの実行に大きな遅延が生じ、使いづらいという欠点がある。
【0050】
そこで本発明は、デフェラブルタイマのタイマ期限に許容誤差を指定することで、デフェラブルタイマの省電力効果を得つつ、最低でも実行が保証されるタイマ(マージンタイマと呼ぶ)を提案する。
【0051】
以下で、本発明の実施の形態であるマージンタイマについて説明する。マージンタイマを扱う装置は、従来のタイマ管理装置10と同様のハードウエア構成でかまわない。タイマ管理装置10のハードウエア構成は図1において説明しているので、ここではその詳細な説明は省略する。
【0052】
[マージンタイマのタイマ管理情報]
マージンタイマもまた、タイマ管理情報を用いてタイマ管理装置10に実行され、管理される。図8に、マージンタイマにかかるタイマ管理情報のデータ構成例を示す。図8に示すように、マージンタイマのタイマ管理情報801は、二つのタイマ管理情報205A、205Bを有している。タイマ管理情報205A、205Bは前述したタイマ管理情報205(図3参照)と同様のデータ構成を有し、同様の構成要素には同様の参照符号を付した(但し、タイマ管理情報205A、205B相互の区別のため、枝番号A,Bを付している)。
【0053】
一つ目のタイマ管理情報205A(以下、区別のため「第一タイマ管理情報」と呼ぶ)は、前方リンク301A,後方リンク302A、タイマID303A,タイマ期限304A、イベントハンドラのリンク305A,タイマ種類306Aより構成されている。
【0054】
第一タイマ管理情報701において、タイマ種類306Aには「デフェラブル」を示すデータ/値が格納される。また、タイマ期限304Aには、デフェラブルタイマの実行期限を指定するデータが格納される。なお、この第一タイマ管理情報205Aは、本発明にかかるマージンタイマのタイマ処理の実行本体を表している。
【0055】
もう一つのタイマ管理情報は、タイマ管理情報205B(以下、区別のため「第二タイマ管理情報」と呼ぶ)である。第二タイマ管理情報205Bは、本発明にかかるマージンタイマのタイマ期限の許容誤差を保証するための情報である。第二タイマ管理情報205Bにおいて、タイマ期限304Bには、タイマ期限205Aの値に許容誤差の値を加算した値を格納させる。また、タイマ種類306Bには、ノーマルタイマを示すデータ/値を格納させる。また、イベントハンドラへのリンク305Bには「NULL」を使用する。なお、第一タイマ管理情報205A、第二タイマ管理情報205BそれぞれのタイマID303A、303Bは互いに別の一意のIDを設定する。
【0056】
本実施の形態では、この二つのタイマ管理情報205A、205Bを、以下で説明するマージンタイマキューイング処理(マージンタイマのタイマ管理情報205A、205Bをタイマ管理テーブル202のタイムスロットにリンク付けする処理を言う)を行い、タイマ管理テーブル202に設定する。
【0057】
[マージンタイマキューイング処理]
図9に、マージンタイマキューイング処理の一例を示したフローチャートを掲げる。以下、図9を参照しながらマージンタイマキューイング処理を説明する。
【0058】
タイマキューイング処理を開始すると、CPU101は、マージンタイマ801の入力として、前述の第一タイマ管理情報205A,第二タイマ管理情報205Bそれぞれの二つのタイマID303A、303Bを取得する(S310)。
【0059】
次に、CPU101は、タイマID303Aの指すタイマ管理情報である第一タイマ管理情報205Aのタイマ期限304Aの値に一致する、タイマ管理テーブル202のタイムスロット203を決定し、決定したタイムスロット203に第一タイマ管理情報205Aの前方リンク301A及び後方リンク302Aを使用して、キューイングを行う(S320)。
【0060】
次に、CPU101は、変数iに、ステップS320でキューイングを行ったタイムスロット203位置に1を加算した値を代入する(S330)。
【0061】
次に、CPU101は、変数iの値が指すタイムスロット203の位置が第二タイマ管理情報のタイマ期限304B、すなわち第一タイマ管理情報205Aのタイマ期限304Aの値に許容誤差を加算した値を超えたか否か(以下、「第一判定条件」と呼ぶ)、又は前述の変数iの値が指すタイムスロット203の位置に別のノーマルタイマが存在するか否か(以下、第二判定条件)を判定する(S340)。
【0062】
ステップS340の判定において、第一判定条件及び第二判定条件のいずれも満たさないと判定した場合(S340,No)、CPU101は、変数iの値をインクリメントし(S350)、次のタイムスロット203について第一判定条件、第二判定条件を満たすか否かの判定を繰り返す(S340)。
【0063】
一方、ステップS340の判定において、第一判定条件、第二判定条件のいずれかが満たされている場合(S340,Yes)、CPU101は、変数iが指すタイムスロット203の位置に、タイマID303Bの指すタイマ管理情報である第二タイマ管理情報205Bの前方リンク301B、後方リンク302Bを使用してキューイングを行ない(S360)、その後このマージンタイマキューイング処理を終了する。
【0064】
この方法を使うと、ステップS340の条件判定により、アイドル時では、すでにキューイングされている別のノーマルタイマと同じタイムスロットで実行されるようにマージンタイマが設定されるため、次に実行すべきタイマの期限の評価の制御フローでも、ノーマルタイマを使用したときよりも大きな値が得られ、デフェラブルタイマの実行時間が保証されない問題も第二タイマ管理情報205Bにより保障することで解決できる。
【0065】
従って、第一タイマ管理情報205Aのタイマ期限304Aの値に許容誤差を加算した値に対応するタイムスロット203、或いは別のノーマルタイマが存在するタイムスロット203(但し、第一タイマ管理情報205Aのタイマ期限304Aの値に許容誤差を加算した値に対応するタイムスロット203より前のタイムスロットに限る)の位置にクロックダイアル201の値が到達した場合に、本マージンタイマ801の実行が行われることになる。
【0066】
よって、実行期限を保証する誤差を指定できるタイマであって、かつ、タイマの期限について意識することを必要とせず、省電力効果を得られるソフトタイマの使用を可能とすることができる。
【0067】
タイマ管理装置10は、上述のマージンタイマキューイング処理によって、タイムスロット203にリンクされた第一タイマ管理情報205A、第二タイマ管理情報205Bで構成されるマージンタイマを用いることで、次に実行すべきタイマの期限の評価の制御フローでも、ノーマルタイマを使用したときよりも大きな値が得られ、デフェラブルタイマの実行時間が保証されない問題もタイマ管理情報で保障することで解決できる。
【0068】
[本発明の利点]
アイドル時におけるタイマ割り込みの頻度を減らし、かつ許容誤差の範囲内で実行されることを保証するため、使用者がタイマの実行期限について意識することなく省電力効果が得られる。
【図面の簡単な説明】
【0069】
【図1】タイマ管理装置のハードウエア構成の一例を示したブロック図
【図2】タイマ管理装置による基本的なタイマ管理テーブルを用いたソフトウエアタイマの管理方法を図解したブロック図
【図3】従来の一般的なタイマ管理情報のデータ構成例を示したブロック図
【図4】あるタイムスロットと、このタイムスロットからリンクされているタイマ管理情報との関係を示す図
【図5】タイマ管理テーブルを利用したアイドル処理の一例を示したフローチャート
【図6】タイマイベントの評価処理の処理例を示すフローチャート
【図7】タイマ管理装置がタイマを実行するタイマ実行処理の一例を示したフローチャート
【図8】マージンタイマにかかるタイマ管理情報のデータ構成例を示す図
【図9】マージンタイマキューイング処理の一例を示したフローチャート
【符号の説明】
【0070】
10 … タイマ管理装置
101 … CPU
102 … メモリ
103 … ハードウエアタイマ
202 … タイマ管理テーブル
203 … タイムスロット
205 … タイマ管理情報
205A … 第一タイマ管理情報
205B … 第二タイマ管理情報
801 … マージンタイマ管理情報

【特許請求の範囲】
【請求項1】
デフェラブルタイマを示すデータが格納されたタイマ種類とデフェラブルタイマの実行期限を指定するデータが格納されたタイマ期限とを有する第一タイマ管理情報と、
ノーマルタイマを示すデータが格納されたタイマ種類と前記デフェラブルタイマの実行期限に許容誤差を加算した値を格納したタイマ期限とを有する第二タイマ管理情報と、
を用いるタイマ管理方法であって、
前記第一タイマ管理情報のタイマ期限の値に対応する、タイマ管理テーブルのタイムスロットに前記第一のタイマ管理情報をリンクさせる処理と、
前記第二タイマ管理情報のタイマ期限を超えているか、或いは別のノーマルタイマが存在する、タイマ管理テーブルのタイムスロットに前記第二タイマ管理情報をリンクさせる処理と
を有することを特徴とする、タイマ管理方法。
【請求項2】
デフェラブルタイマを示すデータが格納されたタイマ種類とデフェラブルタイマの実行期限を指定するデータが格納されたタイマ期限とを有する第一タイマ管理情報と、ノーマルタイマを示すデータが格納されたタイマ種類と前記デフェラブルタイマの実行期限に許容誤差を加算した値を格納したタイマ期限とを有する第二タイマ管理情報と、を記憶する記憶手段と、
前記第一タイマ管理情報のタイマ期限の値に対応する、タイマ管理テーブルのタイムスロットに前記第一のタイマ管理情報をリンクさせ、前記第二タイマ管理情報のタイマ期限を超えているか、或いは別のノーマルタイマが存在する、タイマ管理テーブルのタイムスロットに前記第二タイマ管理情報をリンクさせる管理手段と
を有することを特徴とする、タイマ管理装置。
【請求項3】
マージンタイマの第一タイマ管理情報,第二タイマ管理情報それぞれの二つのタイマIDを取得する処理と、
第一タイマ管理情報のタイマ期限の値に一致する、タイマ管理テーブルのタイムスロットを決定し、決定したタイムスロットに第一タイマ管理情報の前方リンク及び後方リンクを使用して、キューイングを行う処理と、
変数に、キューイングを行ったタイムスロットの位置に1を加算した値を代入する処理と、
前記変数の値が指すタイムスロットの位置が、前記第二タイマ管理情報のタイマ期限である、第一タイマ管理情報のタイマ期限の値に許容誤差を加算した値を超えたか否かを判定する第一判定条件と、前記変数の値が指すタイムスロットの位置に別のノーマルタイマが存在するか否を判定する第二判定条件とを判定する処理と、
前記第一判定条件及び前記第二判定条件のいずれかが満たされていると判定した場合、前記変数が指すタイムスロットの位置に、第二タイマ管理情報の前方リンク、後方リンクを使用してキューイングを行なう処理と
を有することを特徴とするタイマ管理方法。

【図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


【公開番号】特開2009−251865(P2009−251865A)
【公開日】平成21年10月29日(2009.10.29)
【国際特許分類】
【出願番号】特願2008−98039(P2008−98039)
【出願日】平成20年4月4日(2008.4.4)
【出願人】(000003078)株式会社東芝 (54,554)
【Fターム(参考)】