(57)【要約】  電子計算機（１）は、処理部（２）、監視部（３）、判定部（４）及び通知部（５）を備えている。処理部（２）は、スレッド及び割り込みハンドラを実行する。監視部（３）は、処理部（２）の負荷を監視する。判定部（４）は、割り込みハンドラの実行が処理部（２）で実行中のスレッドのユーザー性能に及ぼす影響と処理部（２）の負荷とに基づいて、割り込みハンドラを呼び出す割り込み要求の通知タイミングを判定する。例えば、判定部（４）は、処理部（２）の負荷が閾値よりも高い場合、ユーザー性能に影響を及ぼさない割り込み要求の通知タイミングを、ユーザー性能に影響を及ぼす割り込み要求の通知タイミングよりも遅く設定する。通知部（５）は、判定された通知タイミングに基づいて処理部（２）に割り込み要求を通知する。そして、処理部（２）は、割り込み要求の通知に基づいて割り込み要求に対応する割り込みハンドラを呼び出して実行する。
2013069159.tif 000002
【特許請求の範囲】
【請求項１】
スレッド及び割り込みハンドラを実行する処理部と、
前記処理部の負荷を監視する監視部と、
前記割り込みハンドラの実行が前記処理部で実行中の前記スレッドのユーザー性能に及ぼす影響と前記負荷とに基づいて、前記割り込みハンドラを呼び出す割り込み要求の通知タイミングを判定する判定部と、
前記通知タイミングに基づいて前記処理部に前記割り込み要求を通知する通知部と、
を備え、
前記判定部は、前記負荷が閾値よりも高い場合、前記ユーザー性能に影響を及ぼさない割り込み要求の通知タイミングを、前記ユーザー性能に影響を及ぼす割り込み要求の通知タイミングよりも遅く設定し、
前記処理部は、前記割り込み要求の通知に基づいて前記割り込み要求に対応する前記割り込みハンドラを呼び出して実行する
ことを特徴とする電子計算機。
【請求項２】
前記判定部は、前記ユーザー性能に影響を及ぼさない割り込み要求の通知タイミングを、該割り込み要求に対応する割り込みハンドラの実行が、許容される最も遅い最悪タイミングで終了し得るタイミングに設定する
ことを特徴とする請求項１に記載の電子計算機。
【請求項３】
前記割り込み要求の発生時からの経過時間を計る計時部を備え、
前記判定部は、前記割り込み要求の発生時から前記最悪タイミングまでの時間から前記負荷に応じた前記割り込みハンドラの処理時間を引いた時間に前記経過時間が一致するタイミングで、前記ユーザー性能に影響を及ぼさない割り込み要求を通知する
ことを特徴とする請求項２に記載の電子計算機。
【請求項４】
前記負荷に応じて前記割り込み要求の通知タイミングの優先度を管理する管理部を備え、
前記判定部は、前記優先度の低い割り込み要求の通知タイミングを、前記優先度の高い割り込み要求の通知タイミングよりも遅く設定する
ことを特徴とする請求項１〜３のいずれか一つに記載の電子計算機。
【請求項５】
前記判定部は、
前記負荷が閾値よりも高い場合、前記ユーザー性能に影響を及ぼす割り込み要求の通知タイミングを該割り込み要求の発生時に設定し、
前記負荷が閾値よりも低い場合、前記ユーザー性能に影響を及ぼさない割り込み要求及び前記ユーザー性能に影響を及ぼす割り込み要求のいずれの通知タイミングも該割り込み要求の発生時に設定する
ことを特徴とする請求項１〜４のいずれか一つに記載の電子計算機。
【請求項６】
処理部の負荷を監視し、
割り込み要求の発生時に該割り込み要求によって呼び出される割り込みハンドラの実行が前記処理部で実行中のスレッドのユーザー性能に及ぼす影響と前記負荷とに基づいて、前記割り込み要求の通知タイミングを判定し、前記負荷が閾値よりも高い場合、前記ユーザー性能に影響を及ぼさない割り込み要求の通知タイミングを、前記ユーザー性能に影響を及ぼす割り込み要求の通知タイミングよりも遅く設定し、
前記通知タイミングに基づいて前記処理部に前記割り込み要求を通知し、
前記割り込み要求の通知に基づいて前記割り込み要求に対応する前記割り込みハンドラを呼び出して実行する
ことを特徴とする割り込み制御方法。
【請求項７】
前記ユーザー性能に影響を及ぼさない割り込み要求の通知タイミングを、該割り込み要求に対応する割り込みハンドラの実行が、許容される最も遅い最悪タイミングで終了し得るタイミングに設定する
ことを特徴とする請求項６に記載の割り込み制御方法。
【請求項８】
前記割り込み要求の発生時からの経過時間を計り、
前記割り込み要求の発生時から前記最悪タイミングまでの時間から前記負荷に応じた前記割り込みハンドラの処理時間を引いた時間に前記経過時間が一致するタイミングで、前記ユーザー性能に影響を及ぼさない割り込み要求を通知する
ことを特徴とする請求項７に記載の割り込み制御方法。
【請求項９】
前記負荷に応じて前記割り込み要求の通知タイミングの優先度を管理し、
前記優先度の低い割り込み要求の通知タイミングを、前記優先度の高い割り込み要求の通知タイミングよりも遅く設定する
ことを特徴とする請求項６〜８のいずれか一つに記載の割り込み制御方法。
【請求項１０】
前記負荷が閾値よりも高い場合、前記ユーザー性能に影響を及ぼす割り込み要求の通知タイミングを該割り込み要求の発生時に設定し、
前記負荷が閾値よりも低い場合、前記ユーザー性能に影響を及ぼさない割り込み要求及び前記ユーザー性能に影響を及ぼす割り込み要求のいずれの通知タイミングも該割り込み要求の発生時に設定する
ことを特徴とする請求項６〜９のいずれか一つに記載の割り込み制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、電子計算機及び割り込み制御方法に関する。
【背景技術】
【０００２】
従来、スレーブ装置から特定の割り込み要因が発生したときのみ発生される割り込み信号を受信したマスタ装置が、スレーブ装置に対して割り込み要因を確認しないで、対応する特定の割り込み処理を実行するシステムがある（例えば、特許文献１参照）。また、複数のプロセッサに割り込み権を順番に付与し、割り込み権を保持しているプロセッサが割り込み要求を処理する方法がある（例えば、特許文献２参照）。また、複数の処理装置のアドレスをレジスタに登録し、割り込み発生時にレジスタを参照して該当する処理装置に割り込みを割り当てる方法がある（例えば、特許文献３参照）。【０００３】
また、消費電力が閾値範囲内のプロセッサの中で最も消費電力の低いプロセッサにて割り込み処理をさせる方法がある（例えば、特許文献４参照）。また、割り込み要求信号の優先順位を決定し、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ、中央処理装置）の動作状態に応じてＣＰＵに割り込み要求出力信号を入力させることによって、ＣＰＵに優先順位の高い割り込み要因から処理させる方法がある（例えば、特許文献５参照）。【０００４】
また、割り込み要因の単位時間当たりの数が許容数よりも大である場合に、いずれかの割り込み要因に対応する処理を行わないようにした方法がある（例えば、特許文献６参照）。また、割り込み発生時に、割り込み要求を受け付けるべきプロセッサの優先度を判定し、各プロセッサの実行レベルから当該プロセッサが割り込み要求を受け付けるか否かを判定する方法がある（例えば、特許文献７参照）。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００８−１５８８３号公報
【特許文献２】特開平６−２８３２１号公報
【特許文献３】特開昭５５−８５９４０号公報
【特許文献４】特開２００７−１７２３２２号公報
【特許文献５】特開２０００−１２２９６３号公報
【特許文献６】特開平１０−５５２８２号公報
【特許文献７】特開平４−１７８８６９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかしながら、従来の方法では、割り込み要求が発生すると、ＣＰＵは、即座に実行中のスレッドの処理を停止して、割り込み処理を行う。そのため、ＣＰＵの負荷が大きい状態で割り込み処理が頻発すると、ユーザーアプリケーションの処理に遅延が生じたり、ユーザーアプリケーションのユーザー性能に関連する割り込み処理が実施されず、ユーザー性能が低下する虞があるという問題点がある。【０００７】
ここで、ユーザー性能の一例として、例えば電子計算機が入力装置としてキーパッドを有する場合のキーの押下に対する応答時間や、タッチパネルを有する場合のタッチパネルの追従性や、データのダウンロードに要する時間などが挙げられる。また、ユーザー性能の一例として、例えば電子計算機が無線通信を行う場合、無線通信を行うアプリケーションを実行中の電波の検出に対する性能が挙げられる。【０００８】
開示の電子計算機及び割り込み制御方法は、上記に鑑みてなされたものであって、割り込み処理の発生によってユーザー性能が低下してしまうのを回避することを目的とする。
【課題を解決するための手段】
【０００９】
上述した課題を解決し、目的を達成するため、電子計算機は、処理部、監視部、判定部及び通知部を備えている。処理部は、スレッド及び割り込みハンドラを実行する。監視部は、処理部の負荷を監視する。判定部は、割り込みハンドラの実行が処理部で実行中のスレッドのユーザー性能に及ぼす影響と処理部の負荷とに基づいて、割り込みハンドラを呼び出す割り込み要求の通知タイミングを判定する。例えば、判定部は、処理部の負荷が閾値よりも高い場合、ユーザー性能に影響を及ぼさない割り込み要求の通知タイミングを、ユーザー性能に影響を及ぼす割り込み要求の通知タイミングよりも遅く設定する。通知部は、判定された通知タイミングに基づいて処理部に割り込み要求を通知する。そして、処理部は、割り込み要求の通知に基づいて割り込み要求に対応する割り込みハンドラを呼び出して実行する。
【発明の効果】
【００１０】
開示の電子計算機及び割り込み制御方法によれば、割り込み処理の発生によってユーザー性能が低下してしまうのを回避することができるという効果を奏する。
【図面の簡単な説明】
【００１１】
【図１】図１は、実施例１にかかる電子計算機を示すブロック図である。
【図２】図２は、実施例１にかかる割り込み制御方法を示すフローチャートである。
【図３】図３は、実施例２にかかる携帯電話機のハードウェア構成を示すブロック図である。
【図４】図４は、実施例２にかかる携帯電話機の機能的構成を示すブロック図である。
【図５】図５は、実施例２にかかる携帯電話機におけるスレッド情報の一例を示す図表である。
【図６】図６は、実施例２にかかる携帯電話機における割り込み処理情報の一例を示す図表である。
【図７】図７は、実施例２にかかる携帯電話機におけるユーザー性能とＣＰＵの負荷率との関係の一例を示すグラフである。
【図８】図８は、実施例２にかかる携帯電話機における割り込み判定テーブルの一例を示す図表である。
【図９】図９は、実施例２にかかる携帯電話機における割り込み判定テーブルの一例を示す図表である。
【図１０】図１０は、実施例２にかかる携帯電話機におけるＯＳの処理手順を示すフローチャートである。
【図１１】図１１は、実施例２にかかる携帯電話機における割り込み判定テーブルの更新処理手順を示すフローチャートである。
【図１２】図１２は、実施例２にかかる携帯電話機における割り込みコントローラの処理手順を示すフローチャートである。
【図１３】図１３は、実施例２にかかる携帯電話機における割り込み判定テーブルの一例を示す図表である。
【図１４】図１４は、実施例２と従来例との動作の比較の一例を示す模式図である。
【発明を実施するための形態】
【００１２】
以下に、この発明にかかる電子計算機及び割り込み制御方法の実施例を図面に基づいて詳細に説明する。なお、この実施例によりこの発明が限定されるものではない。
【００１３】
（実施例１）
・電子計算機の説明
図１は、実施例１にかかる電子計算機を示すブロック図である。図１に示すように、電子計算機１は、処理部２、監視部３、判定部４及び通知部５を備えている。処理部２は、スレッド及び割り込みハンドラを実行する。ここで、スレッドは、並列処理に対応したＯＳ（Ｏｐｅｒａｔｉｎｇ  Ｓｙｓｔｅｍ、オペレーティング・システム）上でのプログラムの最小の実行単位である。同一のプロセス内のスレッド同士であれば、スレッドのメモリ空間は共有される。割り込みハンドラは、カーネルが割り込みを受け付けると即座に動作する処理であり、一般的にプロセスやスレッドよりも優先して処理される。監視部３は、処理部２の負荷を監視する。処理部２の負荷は、処理部２に割り当てられているスレッドの総演算量であってもよい。
【００１４】
判定部４は、割り込みハンドラの実行が処理部２で実行中のスレッドのユーザー性能に及ぼす影響と処理部２の負荷とに基づいて、割り込みハンドラを呼び出す割り込み要求の通知タイミングを判定する。例えば、判定部４は、処理部２の負荷が閾値よりも高い場合、ユーザー性能に影響を及ぼさない割り込み要求の通知タイミングを、ユーザー性能に影響を及ぼす割り込み要求の通知タイミングよりも遅く設定する。
【００１５】
通知部５は、判定された通知タイミングに基づいて処理部２に割り込み要求を通知する。そして、処理部２は、割り込み要求の通知に基づいて割り込み要求に対応する割り込みハンドラを呼び出して実行する。
【００１６】
・割り込み制御方法の説明
図２は、実施例１にかかる割り込み制御方法を示すフローチャートである。図２に示すように、電子計算機１で割り込み制御方法が開始されると、監視部３は、処理部２の負荷を監視する（ステップＳ１）。そして、判定部４は、割り込み要求の発生時に、当該割り込み要求によって呼び出される割り込みハンドラの実行が処理部２で実行中のスレッドのユーザー性能に及ぼす影響と処理部２の負荷とに基づいて、当該割り込み要求の通知タイミングを判定する。
【００１７】
例えば、処理部２の負荷が閾値よりも高い場合（ステップＳ２：Ｙｅｓ）、判定部４は、ユーザー性能に影響を及ぼさない割り込み要求の通知タイミングを、ユーザー性能に影響を及ぼす割り込み要求の通知タイミングよりも遅く設定する（ステップＳ３）。一方、例えば、処理部２の負荷が閾値よりも高くない場合（ステップＳ２：Ｎｏ）、ステップＳ３はスキップされる。
【００１８】
次いで、通知部５は、判定された通知タイミングに基づいて処理部２に割り込み要求を通知する（ステップＳ４）。そして、処理部２は、割り込み要求の通知に基づいて当該割り込み要求に対応する割り込みハンドラを呼び出して実行し（ステップＳ５）、一連の割り込み制御方法を終了する。ステップＳ１〜ステップＳ５は、割り込み要求が発生するたびに行われる。
【００１９】
実施例１によれば、処理部２の負荷が高い場合には、ユーザー性能に影響を及ぼさない割り込み処理は、ユーザー性能に影響を及ぼす割り込み処理よりも遅いタイミングで実行される。つまり、処理部２の負荷が高いときに割り込み処理が頻発するのを避けることができる。従って、処理部２の負荷が高くなると、ユーザーアプリケーションの処理に遅延が生じたり、ユーザーアプリケーションのユーザー性能に関連する割り込み処理が実施されない、といったユーザー性能の低下が起こるのを回避することができる。
【００２０】
（実施例２）
実施例２は、実施例１にかかる電子計算機を携帯電話機に適用した例である。ここで、携帯電話機には、いわゆるスマートフォンと呼ばれる無線通信機能を具えた携帯端末も含まれる。また、実施例１にかかる電子計算機は、携帯電話機に限らず、携帯電話システムの基地局にも適用することができる。
【００２１】
・携帯電話機のハードウェア構成の説明
図３は、実施例２にかかる携帯電話機のハードウェア構成を示すブロック図である。図３に示すように、携帯電話機１１は、処理部として例えばＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ、中央処理装置）１２、割り込みコントローラ１３、メモリ１４及び無線通信モジュール１５を備えている。ＣＰＵ１２、割り込みコントローラ１３、メモリ１４及び無線通信モジュール１５は、バス１６に接続されている。
【００２２】
ＣＰＵ１２は、ＯＳ（Ｏｐｅｒａｔｉｎｇ  Ｓｙｓｔｅｍ、オペレーティング・システム）やアプリケーション・プログラムのスレッドを実行する。スレッドは、ＣＰＵ１２で処理される順番が来るまでの間、図示省略したランキューで待機する。また、図示省略した周辺のデバイスから割り込みコントローラ１３へ割り込み要求が入力すると、ＣＰＵ１２は、当該割り込み要求に対応する割り込みハンドラを呼び出して実行する。
【００２３】
割り込みコントローラ１３は、各種デバイスから入力する割り込み要求を検出する。割り込みコントローラ１３は、処理部２の負荷が閾値よりも高い場合、ＣＰＵ１２で実行中のスレッドのユーザー性能に影響を及ぼさない割り込み処理を呼び出す割り込み信号を、ユーザー性能に影響を及ぼす割り込み処理を呼び出す割り込み信号よりも遅いタイミングでＣＰＵ１２に通知する。
【００２４】
メモリ１４は、例えばＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ、ランダム・アクセス・メモリ）などの揮発性メモリやＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ、リード・オンリー・メモリ）などの不揮発性メモリを備えている。ＲＡＭは、例えばＣＰＵ１２の作業領域として使用されてもよい。ＲＯＭは、例えばＯＳやアプリケーション・プログラムを格納していてもよい。
【００２５】
無線通信モジュール１５は、携帯電話システムの基地局と無線通信をする。無線通信モジュール１５は、ＷｉＭＡＸ（Ｗｏｒｌｄ  Ｉｎｔｅｒｏｐｅｒａｂｉｌｉｔｙ  ｆｏｒ  Ｍｉｃｒｏｗａｖｅ  Ａｃｃｅｓｓ、ワールド・インターオペラビリティ・フォー・マイクロウェーブ・アクセス、ＷｉＭＡＸは登録商標）システムの基地局や、Ｗｉ−Ｆｉ（Ｗｉｒｅｌｅｓｓ  Ｆｉｄｅｌｉｔｙ、ワイヤレス・フィデラティ、Ｗｉ−Ｆｉは登録商標）システムのアクセスポイントと無線通信をしてもよい。
【００２６】
・携帯電話機の機能的構成の説明
図４は、実施例２にかかる携帯電話機の機能的構成を示すブロック図である。図４に示すように、ＯＳ２１がＣＰＵ１２で実行されることによって、スケジューリング情報２２、スレッド情報２３、監視部として例えば負荷率監視部２４、及び管理部として例えば割り込み判定テーブル管理部２５が実現される。
【００２７】
スケジューリング情報２２には、ＣＰＵ１２でのスレッドの実行状況やＣＰＵ１２へのスレッドの割り当て状況に関する情報が含まれていてもよい。スケジューリング情報２２は、ＯＳ２１により実現される図示省略したスケジューラから得られる。スレッド情報２３には、スレッドごとにユーザー性能に関係する割り込み処理の情報が含まれていてもよい。スレッド情報２３については後述する。
【００２８】
負荷率監視部２４は、ＣＰＵ１２の負荷率を例えば一定の周期で監視する。負荷率監視部２４は、割り込み判定テーブル管理部２５にＣＰＵ１２の負荷率を通知する。
【００２９】
割り込み判定テーブル管理部２５は、スケジューリング情報２２、ＣＰＵ１２の負荷率、ＣＰＵ１２で実行中のスレッドに関するスレッド情報２３に基づいて、割り込み判定テーブル３３を更新する。例えば、割り込み判定テーブル管理部２５は、ＣＰＵ１２の負荷率が閾値よりも高い場合、ユーザー性能に影響を及ぼさない割り込み処理の優先度を、ユーザー性能に影響を及ぼす割り込み処理の優先度よりも低く設定してもよい。負荷率の閾値については後述する。
【００３０】
割り込み判定テーブル３３は、例えば割り込みコントローラ１３に設けられていてもよい。割り込み判定テーブル管理部２５は、タスクディスパッチのタイミングで割り込み判定テーブル３３を更新してもよい。ここで、タスクは、ユーザーから見たひとまとまりの仕事であり、プロセスを意味することもあるし、スレッドを意味することもある。ここでは、タスクはスレッドと同じ意味である。
【００３１】
割り込みコントローラ１３には、割り込み信号判定部３１、判定部として例えば割り込みハンドラ管理部３２、割り込み判定テーブル３３、通知部として例えば割り込み信号通知部３４、及び計時部として例えば経過時間監視部３５が設けられていてもよい。割り込み信号判定部３１は、各種デバイスからの割り込み要求を検出し、どのデバイスからの割り込み要求であるかを判定する。割り込み信号判定部３１は、検出した割り込み要求を割り込みハンドラ管理部３２へ通知する。
【００３２】
割り込みハンドラ管理部３２は、割り込み信号判定部３１から通知された割り込み要求を割り込み信号としてＣＰＵ１２へ即座に通知するか否かを判断する。割り込みハンドラ管理部３２は、割り込み信号をＣＰＵ１２へ即座に通知するか否かを、割り込み判定テーブル３３に基づいて判断してもよい。割り込み信号をＣＰＵ１２へ即座に通知すると判断した場合、割り込みハンドラ管理部３２は、割り込み信号判定部３１から通知された割り込み要求に対応する割り込み処理を割り込み信号通知部３４へ通知する。
【００３３】
割り込み信号をＣＰＵ１２へ即座に通知しないと判断した場合、割り込みハンドラ管理部３２は、割り込み信号判定部３１から通知された割り込み要求に対応する割り込み処理を経過時間監視部３５へ通知する。割り込みハンドラ管理部３２は、経過時間監視部３５から通知を受けると、その通知された割り込み処理を割り込み信号としてＣＰＵ１２へ即座に通知すると判断する。割り込みハンドラ管理部３２は、経過時間監視部３５から通知された割り込み処理を割り込み信号通知部３４へ通知する。
【００３４】
割り込み判定テーブル３３には、割り込み処理ＩＤ（Ｉｄｅｎｔｉｆｉｅｒ、識別子）、優先度、最悪実行時間及び予測処理時間の情報が含まれていてもよい。割り込み処理ＩＤにより、個々の割り込み処理を識別することができる。優先度は、例えば「速」と「遅」との２値で示されてもよい。
【００３５】
優先度が「速」である場合、割り込みハンドラ管理部３２は、割り込み信号をＣＰＵ１２へ即座に通知すると判断してもよい。優先度が「遅」である場合、割り込みハンドラ管理部３２は、割り込み信号をＣＰＵ１２へ即座に通知しないと判断してもよい。最悪実行時間により、各割り込み処理について、システム要件を満たすための割り込み処理に要する処理時間がわかる。
【００３６】
予測処理時間により、ＣＰＵ１２が割り込み信号を受信してから該当する割り込み処理が完了するまでに要すると予測される時間がわかる。負荷率がＡ（０≦Ａ≦１００）であるときの予測処理時間は、ユーザー性能の特性曲線（後述する「・負荷率の閾値の説明」を参照）から求められる方程式Ｆ（ｘ）を用いて、Ｆ（Ａ）によって求めることができる。
【００３７】
なお、割り込み判定テーブル３３は、メモリ１４（図３参照）に設けられていてもよい。ここでは、割り込み判定テーブル３３は、割り込みコントローラ１３に設けられているとする。割り込み判定テーブル３３については後述する。
【００３８】
経過時間監視部３５は、割り込みハンドラ管理部３２から割り込み処理の通知を受けると計時を開始し、当該割り込み処理の通知を受け取ってからの経過時間を監視する。なお、計時を開始するタイミングは、経過時間監視部３５が通知を受け取ったときでもよいし、割り込み信号判定部３１に割り込み要求が入力したときでもよいし、割り込みハンドラ管理部３２が割り込み信号をＣＰＵ１２へ即座に通知しないと判断したときでもよい。
【００３９】
経過時間が所定の時間に達すると、経過時間監視部３５は、割り込みハンドラ管理部３２にその旨を通知する。例えば、経過時間が、最悪実行時間から予測処理時間を引いた時間に達したときに、経過時間監視部３５は、割り込みハンドラ管理部３２に通知をしてもよい。つまり、ＣＰＵ１２の負荷率が閾値よりも高い場合、割り込みハンドラ管理部３２は、最悪実行時間と予測処理時間とに基づいて、ユーザー性能に影響を及ぼさない割り込み処理に対応する割り込み信号のＣＰＵ１２への通知タイミングを決定することができる。
【００４０】
割り込み信号通知部３４は、割り込みハンドラ管理部３２から通知を受けると、当該通知に対応する割り込み信号をＣＰＵ１２へ通知する。
【００４１】
・スレッド情報の説明
図５は、実施例２にかかる携帯電話機におけるスレッド情報の一例を示す図表である。図５に示すように、スレッド情報２３には、スレッド（例えばＡ、Ｂ、Ｃ及びＤ）ごとに、ユーザー性能に影響を及ぼす割り込み処理の情報が含まれている。図示例では、割り込み処理ＩＤとして例えば「キー入力」や「電波検出」が表記されているが、割り込み処理ＩＤは、例えば割り込みコントローラ１３に設けられている、各種デバイスからの割り込み要求が入力する端子の番号であってもよい。
【００４２】
図６は、実施例２にかかる携帯電話機における割り込み処理情報の一例を示す図表である。図６に示すように、割り込み処理情報２６には、各割り込み処理に要する標準の処理時間（標準処理時間）の情報が含まれている。割り込み処理情報２６は、スレッド情報２３の付加情報としてスレッド情報２３に含まれていてもよい。ＣＰＵ１２の負荷率が０であるときに割り込み処理を行う場合に要する処理時間を当該割り込み処理の標準処理時間としてもよい。例えばシミュレーションにより、ＣＰＵ１２の負荷率が０であるときの割り込み処理に要する処理時間を求めて、標準処理時間としてもよい。一例として、キー入力の割り込み処理の標準処理時間は０．２５ｍｓであり、電波検出の割り込み処理の標準処理時間は０．５ｍｓであってもよいが、これらの数値に限定されるものではない。
【００４３】
・負荷率の閾値の説明
図７は、実施例２にかかる携帯電話機におけるユーザー性能とＣＰＵの負荷率との関係の一例を示すグラフである。図７に示すように、ＣＰＵ１２の負荷率が低くなるとユーザー性能は高くなり、ＣＰＵ１２の負荷率が高くなるとユーザー性能は低くなる。ユーザー性能の一例として、例えば上述したキーパッドのキーの押下に対する応答時間や、タッチパネルの追従性や、データのダウンロードに要する時間などが挙げられる。
【００４４】
ユーザー性能が高いと、キーの応答時間やデータのダウンロード時間は短くなり、タッチパネルの追従性は良くなる。ユーザー性能が低いと、キーの応答時間やデータのダウンロード時間は長くなり、タッチパネルの追従性は悪くなる。
【００４５】
例えばシミュレーションにより、図７に示すようなユーザー性能の特性曲線を求めておいてもよい。このユーザー性能の特性曲線から、上述した方程式Ｆ（ｘ）を求めることができる。ユーザー性能が例えばキーの押下に対する応答時間である場合には、ユーザーがキーを押下してからその操作が反映されるまでの時間で、ユーザーがストレスを感じ始める時間を性能閾値Ｔとしてもよい。この性能閾値Ｔとなるときの負荷率ＬをＣＰＵ１２の負荷率の閾値としてもよい。
【００４６】
・割り込み判定テーブルの説明
図８及び図９は、実施例２にかかる携帯電話機における割り込み判定テーブルの一例を示す図表である。図９に示す例は、図８に示す例よりもＣＰＵ１２の負荷率が高い。
【００４７】
例えば図８に示す例では、割り込み処理ＩＤが「キー入力」である割り込み処理について、優先度が「速」であり、最悪実行時間が１ｍｓであり、予測処理時間が０．５ｍｓである。また、割り込み処理ＩＤが「電波検出」である割り込み処理については、優先度が「速」であり、最悪実行時間が５ｍｓであり、予測処理時間が２．５ｍｓである。
【００４８】
優先度及び予測処理時間は、ＣＰＵ１２の負荷率に応じて変化する。例えば図９に示す例では、割り込み処理ＩＤが「キー入力」である割り込み処理について、優先度が「速」であるが、予測処理時間は０．７ｍｓとなっている。また、割り込み処理ＩＤが「電波検出」である割り込み処理については、優先度が「遅」になっており、予測処理時間は２．９ｍｓに増えている。
【００４９】
図８に示す例を、例えばＣＰＵ１２の負荷率が、図７に示すユーザー性能の特性曲線において負荷率Ｌよりも低い例であるとしてもよい。この場合には、割り込みコントローラ１３は、割り込み要求を検出すると即座に割り込み信号をＣＰＵ１２へ通知してもよい。
【００５０】
また、図９に示す例を、例えばＣＰＵ１２の負荷率が、図７に示すユーザー性能の特性曲線において負荷率Ｌよりも高い例であるとしてもよい。この場合には、割り込みコントローラ１３は、割り込み要求を検出したときに、優先度が「速」である割り込み要求に対しては、即座に割り込み信号をＣＰＵ１２へ通知してもよい。優先度が「遅」である割り込み要求に対しては、即座に割り込み信号をＣＰＵ１２へ通知しなくてもよい。すなわち、割り込みコントローラ１３は、割り込み信号をＣＰＵ１２へ遅らせて通知してもよい。
【００５１】
例えば図９に示す例において、ＣＰＵ１２が、通信を行わないゲームなどのアプリケーション・プログラムを処理しているとする。この場合には、「電波検出」の割り込み処理は、実行中のアプリケーションのユーザー性能に影響を及ぼさない。従って、「電波検出」の割り込み処理の優先度が「遅」に設定される。「電波検出」の割り込み処理の最悪実行時間が例えば５ｍｓであり、予測処理時間が例えば２．９ｍｓであるから、経過時間監視部３５で監視している経過時間が２．１ｍｓ（＝５［ｍｓ］−２．９［ｍｓ］）に達した時点で、割り込みコントローラ１３は割り込み信号をＣＰＵ１２へ通知してもよい。
【００５２】
・ＯＳにおける割り込み制御方法の説明
図１０は、実施例２にかかる携帯電話機におけるＯＳの処理手順を示すフローチャートである。図１０に示すように、ＯＳ２１で処理が開始されると、まず、割り込み判定テーブル管理部２５は、割り込み判定テーブル３３を初期設定する（ステップＳ１１）。
【００５３】
初期設定によって、割り込み判定テーブル３３に割り込み処理ＩＤ、優先度、最悪実行時間及び予測処理時間の情報が割り込み処理ごとに登録される。全ての割り込み処理について、優先度の初期設定値は「速」であってもよい。予測処理時間の初期設定値は、それぞれの割り込み処理の標準処理時間であってもよい。割り込み判定テーブル管理部２５は、各割り込み処理の標準処理時間をスレッド情報２３から取得することができる。
【００５４】
次いで、スレッドのディスパッチが発生した場合（ステップＳ１２：Ｙｅｓ）、割り込み判定テーブル管理部２５は、負荷率監視部２４からＣＰＵ１２の負荷率を取得する。また、割り込み判定テーブル管理部２５は、ディスパッチされたスレッドに対応するスレッド情報２３を取得する（ステップＳ１３）。割り込み判定テーブル管理部２５は、スケジューリング情報２２から、ディスパッチされたスレッドがどれであるかということを知ることができる。
【００５５】
次いで、割り込み判定テーブル管理部２５は、ステップＳ１３で取得したＣＰＵ１２の負荷率及びスレッド情報２３に基づいて、割り込み判定テーブル３３を更新する（ステップＳ１４）。そして、ステップＳ１２へ戻る。割り込み判定テーブル３３を更新する処理の詳細については後述する。割り込み判定テーブル３３の優先度を更新する際には、ＣＰＵ１２の負荷率の閾値が必要である。予めシミュレーションにより、図７に示すようなユーザー性能の特性曲線を求めておくことによって、ＣＰＵ１２の負荷率の閾値を求めておいてもよい。
【００５６】
一方、スレッドのディスパッチが発生しない場合で（ステップＳ１２：Ｎｏ）、ＣＰＵ１２が割り込みコントローラ１３から割り込み信号を受信した場合（ステップＳ１５：Ｙｅｓ）、ＣＰＵ１２は、受信した割り込み信号に対応する割り込みハンドラをディスパッチする（ステップＳ１６）。そして、ステップＳ１２へ戻る。
【００５７】
一方、ＣＰＵ１２が割り込み信号を受信しない場合で（ステップＳ１５：Ｎｏ）、全処理が終了した場合には（ステップＳ１７：Ｙｅｓ）、一連の処理を終了する。全処理が終了しない場合には（ステップＳ１７：Ｎｏ）、ステップＳ１２へ戻る。なお、ステップＳ１２、ステップＳ１５及びステップＳ１７は、いずれが先に処理されてもよい。
【００５８】
・割り込み判定テーブルの更新処理の説明
図１１は、実施例２にかかる携帯電話機における割り込み判定テーブルの更新処理手順を示すフローチャートである。図１１に示すように、割り込み判定テーブル管理部２５により処理が開始されると、まず、割り込み判定テーブル管理部２５は、ＣＰＵ１２の負荷率及び上述したユーザー性能の特性曲線から導かれる方程式Ｆ（ｘ）に基づいて、予測処理時間を求める。そして、割り込み判定テーブル管理部２５は、求めた予測処理時間で割り込み判定テーブル３３の予測処理時間を更新する（ステップＳ２１）。
【００５９】
次いで、ＣＰＵ１２の負荷率が閾値を超えている場合（ステップＳ２２：Ｙｅｓ）、割り込み判定テーブル管理部２５は、ＣＰＵ１２で実行中のスレッドに対応するスレッド情報２３を参照する（ステップＳ２３）。次いで、割り込み判定テーブル管理部２５は、ＣＰＵ１２で実行中のスレッドのユーザー性能に影響を及ぼす割り込み処理の優先度を「速」に更新し、ユーザー性能に影響を及ぼさない割り込み処理の優先度を「遅」に更新する（ステップＳ２４）。そして、一連の処理を終了する。割り込み判定テーブル管理部２５は、スレッド情報２３から、割り込み処理がユーザー性能に影響を及ぼすか否かということを知ることができる。
【００６０】
一方、ＣＰＵ１２の負荷率が閾値を超えていない場合（ステップＳ２２：Ｎｏ）、割り込み判定テーブル管理部２５は、全ての割り込み処理の優先度を「速」に更新する（ステップＳ２５）。そして、一連の処理を終了する。
【００６１】
・割り込みコントローラにおける割り込み制御方法の説明
図１２は、実施例２にかかる携帯電話機における割り込みコントローラの処理手順を示すフローチャートである。図１２に示すように、割り込みコントローラ１３で処理が開始され、割り込み信号判定部３１が割り込み要求を検出すると（ステップＳ３１：Ｙｅｓ）、割り込み信号判定部３１は、割り込みハンドラ管理部３２に検出した割り込み要求を通知する。
【００６２】
割り込みハンドラ管理部３２は、割り込み信号判定部３１からの通知を受けると、割り込み判定テーブル３３を参照する（ステップＳ３２）。そして、割り込みハンドラ管理部３２は、割り込み信号判定部３１から受けた通知に該当する割り込み処理の優先度を参照する。優先度が「遅」である場合（ステップＳ３３：Ｙｅｓ）、割り込みハンドラ管理部３２は、経過時間監視部３５に割り込み処理を通知する。経過時間監視部３５は、割り込みハンドラ管理部３２からの通知を受けると経過時間の計時を開始する（ステップＳ３４）。そして、ステップＳ３１へ戻る。
【００６３】
一方、割り込み処理の優先度を参照した結果、優先度が「遅」でない、つまり「速」である場合（ステップＳ３３：Ｎｏ）、割り込みハンドラ管理部３２は、割り込み信号判定部３１から受けた通知に該当する割り込み処理を割り込み信号通知部３４へ通知する。割り込み信号通知部３４は、割り込みハンドラ管理部３２からの通知を受けると、即座にＣＰＵ１２に割り込み信号を通知する（ステップＳ３５）。そして、ステップＳ３１へ戻る。
【００６４】
一方、割り込み要求を検出していないが（ステップＳ３１：Ｎｏ）、経過時間監視部３５で計時している経過時間が、最悪実行時間から予測処理時間を引いた時間に一致するという条件を満たす割り込み処理がある場合がある。そのような条件を満たす割り込み処理がある場合には（ステップＳ３６：Ｙｅｓ）、経過時間監視部３５は、割り込みハンドラ管理部３２に通知する。割り込みハンドラ管理部３２は、経過時間監視部３５から通知を受けると、通知された割り込み処理を割り込み信号通知部３４へ通知する。
【００６５】
割り込み信号通知部３４は、割り込みハンドラ管理部３２からの通知を受けると、即座にＣＰＵ１２に割り込み信号を通知する（ステップＳ３７）。次いで、経過時間監視部３５は、ＣＰＵ１２に通知した割り込み信号に対応する割り込み処理の経過時間を例えば０に初期化する（ステップＳ３８）。そして、ステップＳ３１へ戻る。
【００６６】
一方、経過時間監視部３５で計時している経過時間が、最悪実行時間から予測処理時間を引いた時間に一致するという条件を満たす割り込み処理がない場合で（ステップＳ３６：Ｎｏ）、全処理が終了した場合には（ステップＳ３９：Ｙｅｓ）、一連の処理を終了する。全処理が終了しない場合には（ステップＳ３９：Ｎｏ）、ステップＳ３１へ戻る。なお、ステップＳ３１、ステップＳ３６及びステップＳ３９は、いずれが先に処理されてもよい。
【００６７】
・従来例との比較
一例として、ＹｏｕＴｕｂｅ（登録商標）の処理中に「キー入力」、「電波検出」及び「電池残量検出」の割り込み処理が発生する場合を例にして、図１３及び図１４を参照しながら、実施例２と従来例とで動作を比較する。従来例では、割り込み要求が発生すると、ＣＰＵの負荷率やユーザー性能に対する影響の有無にかかわらず、全ての割り込み処理が即座に行われるとする。また、ＹｏｕＴｕｂｅの処理時間を１ｍｓとする。「電波検出」及び「電池残量検出」の各割り込み処理の処理時間を０．５ｍｓとする。また、割り込み判定テーブル３３の登録情報が、図１３に示す例であるとする。
【００６８】
図１３は、実施例２にかかる携帯電話機における割り込み判定テーブルの一例を示す図表である。図１３に示すように、割り込み判定テーブル３３において、「キー入力」及び「電波検出」の優先度は「速」であり、「電池残量検出」の割り込み処理の優先度は「遅」であるとする。いずれも最悪実行時間は１ｍｓであるとする。「キー入力」の予測処理時間は０．２５ｍｓであり、「電波検出」及び「電池残量検出」の予測処理時間は０．５ｍｓであるとする。
【００６９】
図１４は、実施例２と従来例との動作の比較の一例を示す模式図である。図１４に示すように、ＹｏｕＴｕｂｅの処理中、０．２５ｍｓ経過時と１．２５ｍｓ経過時に「キー入力」の割り込み処理が発生したとする。また、０．５ｍｓ経過時に「電波検出」の割り込み処理が発生し、１．５ｍｓ経過時に「電池残量検出」の割り込み処理が発生したとする。
【００７０】
実施例２では、「キー入力」及び「電波検出」の各割り込み処理は、発生時に即座に処理される。「電池残量検出」の割り込み処理は、最悪実行時間の１ｍｓで処理が終了するように、当該割り込み処理の発生時点から０．５ｍｓが経過した２ｍｓのタイミングで開始される。従って、１．５ｍｓ〜２ｍｓの間にＹｏｕＴｕｂｅの処理が行われるので、ＹｏｕＴｕｂｅの処理は、最初から２ｍｓが経過した時点で終了する。
【００７１】
それに対して、従来例では、「キー入力」、「電波検出」及び「電池残量検出」の各割り込み処理は、発生時に即座に処理される。そのため、「電池残量検出」の割り込み処理は、１．５ｍｓのタイミングで開始され、２ｍｓのタイミングで終了する。その後に、ＹｏｕＴｕｂｅの残りの処理が行われるので、ＹｏｕＴｕｂｅの処理は、最初から２．５ｍｓが経過した時点で終了する。つまり、実施例２の方が従来例よりも早くＹｏｕＴｕｂｅの処理が終了する。
【００７２】
実施例２によれば、実施例１と同様の効果が得られる。なお、実施例１にかかる電子計算機１は、携帯電話システムに限らず、ＷｉＭＡＸやＷｉ−Ｆｉなどの他の無線通信システムの端末もしくは基地局やアクセスポイント、パーソナルコンピュータなどのコンピュータ、ＰＤＡ（Ｐｅｒｓｏｎａｌ  Ｄｉｇｉｔａｌ  Ａｓｓｉｓｔａｎｔｓ）などの携帯情報端末、ゲーム機または種々の測定器などにも適用することができる。
【符号の説明】
【００７３】
１，１１  電子計算機
２  処理部
３，２４  監視部
４，３２  判定部
５，３４  通知部
２５  管理部
３５  計時部
【図１】
2013069159.tif 000003
【図２】
2013069159.tif 000004
【図３】
2013069159.tif 000005
【図４】
2013069159.tif 000006
【図５】
2013069159.tif 000007
【図６】
2013069159.tif 000008
【図７】
2013069159.tif 000009
【図８】
2013069159.tif 000010
【図９】
2013069159.tif 000011
【図１０】
2013069159.tif 000012
【図１１】
2013069159.tif 000013
【図１２】
2013069159.tif 000014
【図１３】
2013069159.tif 000015
【図１４】
2013069159.tif 000016
【手続補正書】
【提出日】平成26年5月15日(2014.5.15)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
スレッド及び割り込みハンドラを実行する処理部と、
前記処理部の負荷を監視する監視部と、
前記割り込みハンドラの実行が前記処理部で実行中の前記スレッドのユーザー性能に及ぼす影響と前記負荷とに基づいて、前記割り込みハンドラを呼び出す割り込み要求の通知タイミングを判定する判定部と、
前記通知タイミングに基づいて前記処理部に前記割り込み要求を通知する通知部と、
を備え、
前記判定部は、前記負荷が閾値よりも高い場合、前記ユーザー性能に影響を及ぼさない割り込み要求の通知タイミングを、前記ユーザー性能に影響を及ぼす割り込み要求の通知タイミングよりも遅く設定し、
前記処理部は、前記割り込み要求の通知に基づいて前記割り込み要求に対応する前記割り込みハンドラを呼び出して実行する
ことを特徴とする電子計算機。
【請求項２】
前記判定部は、前記ユーザー性能に影響を及ぼさない割り込み要求の通知タイミングを、該割り込み要求に対応する割り込みハンドラの実行が、許容される最も遅い最悪タイミングで終了し得るタイミングに設定する
ことを特徴とする請求項１に記載の電子計算機。
【請求項３】
前記割り込み要求の発生時からの経過時間を計る計時部を備え、
前記判定部は、前記割り込み要求の発生時から前記最悪タイミングまでの時間から前記負荷に応じた前記割り込みハンドラの処理時間を引いた時間に前記経過時間が一致するタイミングで、前記ユーザー性能に影響を及ぼさない割り込み要求を通知する
ことを特徴とする請求項２に記載の電子計算機。
【請求項４】
前記負荷に応じて前記割り込み要求の通知タイミングの優先度を管理する管理部を備え、
前記判定部は、前記優先度の低い割り込み要求の通知タイミングを、前記優先度の高い割り込み要求の通知タイミングよりも遅く設定する
ことを特徴とする請求項１〜３のいずれか一つに記載の電子計算機。
【請求項５】
前記判定部は、
前記負荷が閾値よりも高い場合、前記ユーザー性能に影響を及ぼす割り込み要求の通知タイミングを該割り込み要求の発生時に設定し、
前記負荷が閾値よりも低い場合、前記ユーザー性能に影響を及ぼさない割り込み要求及び前記ユーザー性能に影響を及ぼす割り込み要求のいずれの通知タイミングも該割り込み要求の発生時に設定する
ことを特徴とする請求項１〜４のいずれか一つに記載の電子計算機。
【請求項６】
処理部の負荷を監視し、
割り込み要求の発生時に該割り込み要求によって呼び出される割り込みハンドラの実行が前記処理部で実行中のスレッドのユーザー性能に及ぼす影響と前記負荷とに基づいて、前記割り込み要求の通知タイミングを判定し、前記負荷が閾値よりも高い場合、前記ユーザー性能に影響を及ぼさない割り込み要求の通知タイミングを、前記ユーザー性能に影響を及ぼす割り込み要求の通知タイミングよりも遅く設定し、
前記通知タイミングに基づいて前記処理部に前記割り込み要求を通知し、
前記割り込み要求の通知に基づいて前記割り込み要求に対応する前記割り込みハンドラを呼び出して実行する
ことを特徴とする割り込み制御方法。
【手続補正２】
【補正対象書類名】明細書
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、電子計算機及び割り込み制御方法に関する。
【背景技術】
【０００２】
従来、スレーブ装置から特定の割り込み要因が発生したときのみ発生される割り込み信号を受信したマスタ装置が、スレーブ装置に対して割り込み要因を確認しないで、対応する特定の割り込み処理を実行するシステムがある（例えば、特許文献１参照）。また、複数のプロセッサに割り込み権を順番に付与し、割り込み権を保持しているプロセッサが割り込み要求を処理する方法がある（例えば、特許文献２参照）。また、複数の処理装置のアドレスをレジスタに登録し、割り込み発生時にレジスタを参照して該当する処理装置に割り込みを割り当てる方法がある（例えば、特許文献３参照）。
【０００３】
また、消費電力が閾値範囲内のプロセッサの中で最も消費電力の低いプロセッサにて割り込み処理をさせる方法がある（例えば、特許文献４参照）。また、割り込み要求信号の優先順位を決定し、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ、中央処理装置）の動作状態に応じてＣＰＵに割り込み要求出力信号を入力させることによって、ＣＰＵに優先順位の高い割り込み要因から処理させる方法がある（例えば、特許文献５参照）。
【０００４】
また、割り込み要因の単位時間当たりの数が許容数よりも大である場合に、いずれかの割り込み要因に対応する処理を行わないようにした方法がある（例えば、特許文献６参照）。また、割り込み発生時に、割り込み要求を受け付けるべきプロセッサの優先度を判定し、各プロセッサの実行レベルから当該プロセッサが割り込み要求を受け付けるか否かを判定する方法がある（例えば、特許文献７参照）。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００８−１５８８３号公報
【特許文献２】特開平６−２８３２１号公報
【特許文献３】特開昭５５−８５９４０号公報
【特許文献４】特開２００７−１７２３２２号公報
【特許文献５】特開２０００−１２２９６３号公報
【特許文献６】特開平１０−５５２８２号公報
【特許文献７】特開平４−１７８８６９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかしながら、従来の方法では、割り込み要求が発生すると、ＣＰＵは、即座に実行中のスレッドの処理を停止して、割り込み処理を行う。そのため、ＣＰＵの負荷が大きい状態で割り込み処理が頻発すると、ユーザーアプリケーションの処理に遅延が生じたり、ユーザーアプリケーションのユーザー性能に関連する割り込み処理が実施されず、ユーザー性能が低下する虞があるという問題点がある。
【０００７】
ここで、ユーザー性能の一例として、例えば電子計算機が入力装置としてキーパッドを有する場合のキーの押下に対する応答時間や、タッチパネルを有する場合のタッチパネルの追従性や、データのダウンロードに要する時間などが挙げられる。また、ユーザー性能の一例として、例えば電子計算機が無線通信を行う場合、無線通信を行うアプリケーションを実行中の電波の検出に対する性能が挙げられる。
【０００８】
開示の電子計算機及び割り込み制御方法は、上記に鑑みてなされたものであって、割り込み処理の発生によってユーザー性能が低下してしまうのを回避することを目的とする。
【課題を解決するための手段】
【０００９】
上述した課題を解決し、目的を達成するため、電子計算機は、処理部、監視部、判定部及び通知部を備えている。処理部は、スレッド及び割り込みハンドラを実行する。監視部は、処理部の負荷を監視する。判定部は、割り込みハンドラの実行が処理部で実行中のスレッドのユーザー性能に及ぼす影響と処理部の負荷とに基づいて、割り込みハンドラを呼び出す割り込み要求の通知タイミングを判定する。例えば、判定部は、処理部の負荷が閾値よりも高い場合、ユーザー性能に影響を及ぼさない割り込み要求の通知タイミングを、ユーザー性能に影響を及ぼす割り込み要求の通知タイミングよりも遅く設定する。通知部は、判定された通知タイミングに基づいて処理部に割り込み要求を通知する。そして、処理部は、割り込み要求の通知に基づいて割り込み要求に対応する割り込みハンドラを呼び出して実行する。
【発明の効果】
【００１０】
開示の電子計算機及び割り込み制御方法によれば、割り込み処理の発生によってユーザー性能が低下してしまうのを回避することができるという効果を奏する。
【図面の簡単な説明】
【００１１】
【図１】図１は、実施例１にかかる電子計算機を示すブロック図である。
【図２】図２は、実施例１にかかる割り込み制御方法を示すフローチャートである。
【図３】図３は、実施例２にかかる携帯電話機のハードウェア構成を示すブロック図である。
【図４】図４は、実施例２にかかる携帯電話機の機能的構成を示すブロック図である。
【図５】図５は、実施例２にかかる携帯電話機におけるスレッド情報の一例を示す図表である。
【図６】図６は、実施例２にかかる携帯電話機における割り込み処理情報の一例を示す図表である。
【図７】図７は、実施例２にかかる携帯電話機におけるユーザー性能とＣＰＵの負荷率との関係の一例を示すグラフである。
【図８】図８は、実施例２にかかる携帯電話機における割り込み判定テーブルの一例を示す図表である。
【図９】図９は、実施例２にかかる携帯電話機における割り込み判定テーブルの一例を示す図表である。
【図１０】図１０は、実施例２にかかる携帯電話機におけるＯＳの処理手順を示すフローチャートである。
【図１１】図１１は、実施例２にかかる携帯電話機における割り込み判定テーブルの更新処理手順を示すフローチャートである。
【図１２】図１２は、実施例２にかかる携帯電話機における割り込みコントローラの処理手順を示すフローチャートである。
【図１３】図１３は、実施例２にかかる携帯電話機における割り込み判定テーブルの一例を示す図表である。
【図１４】図１４は、実施例２と従来例との動作の比較の一例を示す模式図である。
【発明を実施するための形態】
【００１２】
以下に、この発明にかかる電子計算機及び割り込み制御方法の実施例を図面に基づいて詳細に説明する。なお、この実施例によりこの発明が限定されるものではない。
【００１３】
（実施例１）
・電子計算機の説明
図１は、実施例１にかかる電子計算機を示すブロック図である。図１に示すように、電子計算機１は、処理部２、監視部３、判定部４及び通知部５を備えている。処理部２は、スレッド及び割り込みハンドラを実行する。ここで、スレッドは、並列処理に対応したＯＳ（Ｏｐｅｒａｔｉｎｇ  Ｓｙｓｔｅｍ、オペレーティング・システム）上でのプログラムの最小の実行単位である。同一のプロセス内のスレッド同士であれば、スレッドのメモリ空間は共有される。割り込みハンドラは、カーネルが割り込みを受け付けると即座に動作する処理であり、一般的にプロセスやスレッドよりも優先して処理される。監視部３は、処理部２の負荷を監視する。処理部２の負荷は、処理部２に割り当てられているスレッドの総演算量であってもよい。
【００１４】
判定部４は、割り込みハンドラの実行が処理部２で実行中のスレッドのユーザー性能に及ぼす影響と処理部２の負荷とに基づいて、割り込みハンドラを呼び出す割り込み要求の通知タイミングを判定する。例えば、判定部４は、処理部２の負荷が閾値よりも高い場合、ユーザー性能に影響を及ぼさない割り込み要求の通知タイミングを、ユーザー性能に影響を及ぼす割り込み要求の通知タイミングよりも遅く設定する。
【００１５】
通知部５は、判定された通知タイミングに基づいて処理部２に割り込み要求を通知する。そして、処理部２は、割り込み要求の通知に基づいて割り込み要求に対応する割り込みハンドラを呼び出して実行する。
【００１６】
・割り込み制御方法の説明
図２は、実施例１にかかる割り込み制御方法を示すフローチャートである。図２に示すように、電子計算機１で割り込み制御方法が開始されると、監視部３は、処理部２の負荷を監視する（ステップＳ１）。そして、判定部４は、割り込み要求の発生時に、当該割り込み要求によって呼び出される割り込みハンドラの実行が処理部２で実行中のスレッドのユーザー性能に及ぼす影響と処理部２の負荷とに基づいて、当該割り込み要求の通知タイミングを判定する。
【００１７】
例えば、処理部２の負荷が閾値よりも高い場合（ステップＳ２：Ｙｅｓ）、判定部４は、ユーザー性能に影響を及ぼさない割り込み要求の通知タイミングを、ユーザー性能に影響を及ぼす割り込み要求の通知タイミングよりも遅く設定する（ステップＳ３）。一方、例えば、処理部２の負荷が閾値よりも高くない場合（ステップＳ２：Ｎｏ）、ステップＳ３はスキップされる。
【００１８】
次いで、通知部５は、判定された通知タイミングに基づいて処理部２に割り込み要求を通知する（ステップＳ４）。そして、処理部２は、割り込み要求の通知に基づいて当該割り込み要求に対応する割り込みハンドラを呼び出して実行し（ステップＳ５）、一連の割り込み制御方法を終了する。ステップＳ１〜ステップＳ５は、割り込み要求が発生するたびに行われる。
【００１９】
実施例１によれば、処理部２の負荷が高い場合には、ユーザー性能に影響を及ぼさない割り込み処理は、ユーザー性能に影響を及ぼす割り込み処理よりも遅いタイミングで実行される。つまり、処理部２の負荷が高いときに割り込み処理が頻発するのを避けることができる。従って、処理部２の負荷が高くなると、ユーザーアプリケーションの処理に遅延が生じたり、ユーザーアプリケーションのユーザー性能に関連する割り込み処理が実施されない、といったユーザー性能の低下が起こるのを回避することができる。
【００２０】
（実施例２）
実施例２は、実施例１にかかる電子計算機を携帯電話機に適用した例である。ここで、携帯電話機には、いわゆるスマートフォンと呼ばれる無線通信機能を具えた携帯端末も含まれる。また、実施例１にかかる電子計算機は、携帯電話機に限らず、携帯電話システムの基地局にも適用することができる。
【００２１】
・携帯電話機のハードウェア構成の説明
図３は、実施例２にかかる携帯電話機のハードウェア構成を示すブロック図である。図３に示すように、携帯電話機１１は、処理部として例えばＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ、中央処理装置）１２、割り込みコントローラ１３、メモリ１４及び無線通信モジュール１５を備えている。ＣＰＵ１２、割り込みコントローラ１３、メモリ１４及び無線通信モジュール１５は、バス１６に接続されている。
【００２２】
ＣＰＵ１２は、ＯＳ（Ｏｐｅｒａｔｉｎｇ  Ｓｙｓｔｅｍ、オペレーティング・システム）やアプリケーション・プログラムのスレッドを実行する。スレッドは、ＣＰＵ１２で処理される順番が来るまでの間、図示省略したランキューで待機する。また、図示省略した周辺のデバイスから割り込みコントローラ１３へ割り込み要求が入力すると、ＣＰＵ１２は、当該割り込み要求に対応する割り込みハンドラを呼び出して実行する。
【００２３】
割り込みコントローラ１３は、各種デバイスから入力する割り込み要求を検出する。割り込みコントローラ１３は、処理部２の負荷が閾値よりも高い場合、ＣＰＵ１２で実行中のスレッドのユーザー性能に影響を及ぼさない割り込み処理を呼び出す割り込み信号を、ユーザー性能に影響を及ぼす割り込み処理を呼び出す割り込み信号よりも遅いタイミングでＣＰＵ１２に通知する。
【００２４】
メモリ１４は、例えばＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ、ランダム・アクセス・メモリ）などの揮発性メモリやＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ、リード・オンリー・メモリ）などの不揮発性メモリを備えている。ＲＡＭは、例えばＣＰＵ１２の作業領域として使用されてもよい。ＲＯＭは、例えばＯＳやアプリケーション・プログラムを格納していてもよい。
【００２５】
無線通信モジュール１５は、携帯電話システムの基地局と無線通信をする。無線通信モジュール１５は、ＷｉＭＡＸ（Ｗｏｒｌｄ  Ｉｎｔｅｒｏｐｅｒａｂｉｌｉｔｙ  ｆｏｒ  Ｍｉｃｒｏｗａｖｅ  Ａｃｃｅｓｓ、ワールド・インターオペラビリティ・フォー・マイクロウェーブ・アクセス、ＷｉＭＡＸは登録商標）システムの基地局や、Ｗｉ−Ｆｉ（Ｗｉｒｅｌｅｓｓ  Ｆｉｄｅｌｉｔｙ、ワイヤレス・フィデラティ、Ｗｉ−Ｆｉは登録商標）システムのアクセスポイントと無線通信をしてもよい。
【００２６】
・携帯電話機の機能的構成の説明
図４は、実施例２にかかる携帯電話機の機能的構成を示すブロック図である。図４に示すように、ＯＳ２１がＣＰＵ１２で実行されることによって、スケジューリング情報２２、スレッド情報２３、監視部として例えば負荷率監視部２４、及び管理部として例えば割り込み判定テーブル管理部２５が実現される。
【００２７】
スケジューリング情報２２には、ＣＰＵ１２でのスレッドの実行状況やＣＰＵ１２へのスレッドの割り当て状況に関する情報が含まれていてもよい。スケジューリング情報２２は、ＯＳ２１により実現される図示省略したスケジューラから得られる。スレッド情報２３には、スレッドごとにユーザー性能に関係する割り込み処理の情報が含まれていてもよい。スレッド情報２３については後述する。
【００２８】
負荷率監視部２４は、ＣＰＵ１２の負荷率を例えば一定の周期で監視する。負荷率監視部２４は、割り込み判定テーブル管理部２５にＣＰＵ１２の負荷率を通知する。
【００２９】
割り込み判定テーブル管理部２５は、スケジューリング情報２２、ＣＰＵ１２の負荷率、ＣＰＵ１２で実行中のスレッドに関するスレッド情報２３に基づいて、割り込み判定テーブル３３を更新する。例えば、割り込み判定テーブル管理部２５は、ＣＰＵ１２の負荷率が閾値よりも高い場合、ユーザー性能に影響を及ぼさない割り込み処理の優先度を、ユーザー性能に影響を及ぼす割り込み処理の優先度よりも低く設定してもよい。負荷率の閾値については後述する。
【００３０】
割り込み判定テーブル３３は、例えば割り込みコントローラ１３に設けられていてもよい。割り込み判定テーブル管理部２５は、タスクディスパッチのタイミングで割り込み判定テーブル３３を更新してもよい。ここで、タスクは、ユーザーから見たひとまとまりの仕事であり、プロセスを意味することもあるし、スレッドを意味することもある。ここでは、タスクはスレッドと同じ意味である。
【００３１】
割り込みコントローラ１３には、割り込み信号判定部３１、判定部として例えば割り込みハンドラ管理部３２、割り込み判定テーブル３３、通知部として例えば割り込み信号通知部３４、及び計時部として例えば経過時間監視部３５が設けられていてもよい。割り込み信号判定部３１は、各種デバイスからの割り込み要求を検出し、どのデバイスからの割り込み要求であるかを判定する。割り込み信号判定部３１は、検出した割り込み要求を割り込みハンドラ管理部３２へ通知する。
【００３２】
割り込みハンドラ管理部３２は、割り込み信号判定部３１から通知された割り込み要求を割り込み信号としてＣＰＵ１２へ即座に通知するか否かを判断する。割り込みハンドラ管理部３２は、割り込み信号をＣＰＵ１２へ即座に通知するか否かを、割り込み判定テーブル３３に基づいて判断してもよい。割り込み信号をＣＰＵ１２へ即座に通知すると判断した場合、割り込みハンドラ管理部３２は、割り込み信号判定部３１から通知された割り込み要求に対応する割り込み処理を割り込み信号通知部３４へ通知する。
【００３３】
割り込み信号をＣＰＵ１２へ即座に通知しないと判断した場合、割り込みハンドラ管理部３２は、割り込み信号判定部３１から通知された割り込み要求に対応する割り込み処理を経過時間監視部３５へ通知する。割り込みハンドラ管理部３２は、経過時間監視部３５から通知を受けると、その通知された割り込み処理を割り込み信号としてＣＰＵ１２へ即座に通知すると判断する。割り込みハンドラ管理部３２は、経過時間監視部３５から通知された割り込み処理を割り込み信号通知部３４へ通知する。
【００３４】
割り込み判定テーブル３３には、割り込み処理ＩＤ（Ｉｄｅｎｔｉｆｉｅｒ、識別子）、優先度、最悪実行時間及び予測処理時間の情報が含まれていてもよい。割り込み処理ＩＤにより、個々の割り込み処理を識別することができる。優先度は、例えば「速」と「遅」との２値で示されてもよい。
【００３５】
優先度が「速」である場合、割り込みハンドラ管理部３２は、割り込み信号をＣＰＵ１２へ即座に通知すると判断してもよい。優先度が「遅」である場合、割り込みハンドラ管理部３２は、割り込み信号をＣＰＵ１２へ即座に通知しないと判断してもよい。最悪実行時間により、各割り込み処理について、システム要件を満たすための割り込み処理に要する処理時間がわかる。
【００３６】
予測処理時間により、ＣＰＵ１２が割り込み信号を受信してから該当する割り込み処理が完了するまでに要すると予測される時間がわかる。負荷率がＡ（０≦Ａ≦１００）であるときの予測処理時間は、ユーザー性能の特性曲線（後述する「・負荷率の閾値の説明」を参照）から求められる方程式Ｆ（ｘ）を用いて、Ｆ（Ａ）によって求めることができる。
【００３７】
なお、割り込み判定テーブル３３は、メモリ１４（図３参照）に設けられていてもよい。ここでは、割り込み判定テーブル３３は、割り込みコントローラ１３に設けられているとする。割り込み判定テーブル３３については後述する。
【００３８】
経過時間監視部３５は、割り込みハンドラ管理部３２から割り込み処理の通知を受けると計時を開始し、当該割り込み処理の通知を受け取ってからの経過時間を監視する。なお、計時を開始するタイミングは、経過時間監視部３５が通知を受け取ったときでもよいし、割り込み信号判定部３１に割り込み要求が入力したときでもよいし、割り込みハンドラ管理部３２が割り込み信号をＣＰＵ１２へ即座に通知しないと判断したときでもよい。
【００３９】
経過時間が所定の時間に達すると、経過時間監視部３５は、割り込みハンドラ管理部３２にその旨を通知する。例えば、経過時間が、最悪実行時間から予測処理時間を引いた時間に達したときに、経過時間監視部３５は、割り込みハンドラ管理部３２に通知をしてもよい。つまり、ＣＰＵ１２の負荷率が閾値よりも高い場合、割り込みハンドラ管理部３２は、最悪実行時間と予測処理時間とに基づいて、ユーザー性能に影響を及ぼさない割り込み処理に対応する割り込み信号のＣＰＵ１２への通知タイミングを決定することができる。
【００４０】
割り込み信号通知部３４は、割り込みハンドラ管理部３２から通知を受けると、当該通知に対応する割り込み信号をＣＰＵ１２へ通知する。
【００４１】
・スレッド情報の説明
図５は、実施例２にかかる携帯電話機におけるスレッド情報の一例を示す図表である。図５に示すように、スレッド情報２３には、スレッド（例えばＡ、Ｂ、Ｃ及びＤ）ごとに、ユーザー性能に影響を及ぼす割り込み処理の情報が含まれている。図示例では、割り込み処理ＩＤとして例えば「キー入力」や「電波検出」が表記されているが、割り込み処理ＩＤは、例えば割り込みコントローラ１３に設けられている、各種デバイスからの割り込み要求が入力する端子の番号であってもよい。
【００４２】
図６は、実施例２にかかる携帯電話機における割り込み処理情報の一例を示す図表である。図６に示すように、割り込み処理情報２６には、各割り込み処理に要する標準の処理時間（標準処理時間）の情報が含まれている。割り込み処理情報２６は、スレッド情報２３の付加情報としてスレッド情報２３に含まれていてもよい。ＣＰＵ１２の負荷率が０であるときに割り込み処理を行う場合に要する処理時間を当該割り込み処理の標準処理時間としてもよい。例えばシミュレーションにより、ＣＰＵ１２の負荷率が０であるときの割り込み処理に要する処理時間を求めて、標準処理時間としてもよい。一例として、キー入力の割り込み処理の標準処理時間は０．２５ｍｓであり、電波検出の割り込み処理の標準処理時間は０．５ｍｓであってもよいが、これらの数値に限定されるものではない。
【００４３】
・負荷率の閾値の説明
図７は、実施例２にかかる携帯電話機におけるユーザー性能とＣＰＵの負荷率との関係の一例を示すグラフである。図７に示すように、ＣＰＵ１２の負荷率が低くなるとユーザー性能は高くなり、ＣＰＵ１２の負荷率が高くなるとユーザー性能は低くなる。ユーザー性能の一例として、例えば上述したキーパッドのキーの押下に対する応答時間や、タッチパネルの追従性や、データのダウンロードに要する時間などが挙げられる。
【００４４】
ユーザー性能が高いと、キーの応答時間やデータのダウンロード時間は短くなり、タッチパネルの追従性は良くなる。ユーザー性能が低いと、キーの応答時間やデータのダウンロード時間は長くなり、タッチパネルの追従性は悪くなる。
【００４５】
例えばシミュレーションにより、図７に示すようなユーザー性能の特性曲線を求めておいてもよい。このユーザー性能の特性曲線から、上述した方程式Ｆ（ｘ）を求めることができる。ユーザー性能が例えばキーの押下に対する応答時間である場合には、ユーザーがキーを押下してからその操作が反映されるまでの時間で、ユーザーがストレスを感じ始める時間を性能閾値Ｔとしてもよい。この性能閾値Ｔとなるときの負荷率ＬをＣＰＵ１２の負荷率の閾値としてもよい。
【００４６】
・割り込み判定テーブルの説明
図８及び図９は、実施例２にかかる携帯電話機における割り込み判定テーブルの一例を示す図表である。図９に示す例は、図８に示す例よりもＣＰＵ１２の負荷率が高い。
【００４７】
例えば図８に示す例では、割り込み処理ＩＤが「キー入力」である割り込み処理について、優先度が「速」であり、最悪実行時間が１ｍｓであり、予測処理時間が０．５ｍｓである。また、割り込み処理ＩＤが「電波検出」である割り込み処理については、優先度が「速」であり、最悪実行時間が５ｍｓであり、予測処理時間が２．５ｍｓである。
【００４８】
優先度及び予測処理時間は、ＣＰＵ１２の負荷率に応じて変化する。例えば図９に示す例では、割り込み処理ＩＤが「キー入力」である割り込み処理について、優先度が「速」であるが、予測処理時間は０．７ｍｓとなっている。また、割り込み処理ＩＤが「電波検出」である割り込み処理については、優先度が「遅」になっており、予測処理時間は２．９ｍｓに増えている。
【００４９】
図８に示す例を、例えばＣＰＵ１２の負荷率が、図７に示すユーザー性能の特性曲線において負荷率Ｌよりも低い例であるとしてもよい。この場合には、割り込みコントローラ１３は、割り込み要求を検出すると即座に割り込み信号をＣＰＵ１２へ通知してもよい。
【００５０】
また、図９に示す例を、例えばＣＰＵ１２の負荷率が、図７に示すユーザー性能の特性曲線において負荷率Ｌよりも高い例であるとしてもよい。この場合には、割り込みコントローラ１３は、割り込み要求を検出したときに、優先度が「速」である割り込み要求に対しては、即座に割り込み信号をＣＰＵ１２へ通知してもよい。優先度が「遅」である割り込み要求に対しては、即座に割り込み信号をＣＰＵ１２へ通知しなくてもよい。すなわち、割り込みコントローラ１３は、割り込み信号をＣＰＵ１２へ遅らせて通知してもよい。
【００５１】
例えば図９に示す例において、ＣＰＵ１２が、通信を行わないゲームなどのアプリケーション・プログラムを処理しているとする。この場合には、「電波検出」の割り込み処理は、実行中のアプリケーションのユーザー性能に影響を及ぼさない。従って、「電波検出」の割り込み処理の優先度が「遅」に設定される。「電波検出」の割り込み処理の最悪実行時間が例えば５ｍｓであり、予測処理時間が例えば２．９ｍｓであるから、経過時間監視部３５で監視している経過時間が２．１ｍｓ（＝５［ｍｓ］−２．９［ｍｓ］）に達した時点で、割り込みコントローラ１３は割り込み信号をＣＰＵ１２へ通知してもよい。
【００５２】
・ＯＳにおける割り込み制御方法の説明
図１０は、実施例２にかかる携帯電話機におけるＯＳの処理手順を示すフローチャートである。図１０に示すように、ＯＳ２１で処理が開始されると、まず、割り込み判定テーブル管理部２５は、割り込み判定テーブル３３を初期設定する（ステップＳ１１）。
【００５３】
初期設定によって、割り込み判定テーブル３３に割り込み処理ＩＤ、優先度、最悪実行時間及び予測処理時間の情報が割り込み処理ごとに登録される。全ての割り込み処理について、優先度の初期設定値は「速」であってもよい。予測処理時間の初期設定値は、それぞれの割り込み処理の標準処理時間であってもよい。割り込み判定テーブル管理部２５は、各割り込み処理の標準処理時間をスレッド情報２３から取得することができる。
【００５４】
次いで、スレッドのディスパッチが発生した場合（ステップＳ１２：Ｙｅｓ）、割り込み判定テーブル管理部２５は、負荷率監視部２４からＣＰＵ１２の負荷率を取得する。また、割り込み判定テーブル管理部２５は、ディスパッチされたスレッドに対応するスレッド情報２３を取得する（ステップＳ１３）。割り込み判定テーブル管理部２５は、スケジューリング情報２２から、ディスパッチされたスレッドがどれであるかということを知ることができる。
【００５５】
次いで、割り込み判定テーブル管理部２５は、ステップＳ１３で取得したＣＰＵ１２の負荷率及びスレッド情報２３に基づいて、割り込み判定テーブル３３を更新する（ステップＳ１４）。そして、ステップＳ１２へ戻る。割り込み判定テーブル３３を更新する処理の詳細については後述する。割り込み判定テーブル３３の優先度を更新する際には、ＣＰＵ１２の負荷率の閾値が必要である。予めシミュレーションにより、図７に示すようなユーザー性能の特性曲線を求めておくことによって、ＣＰＵ１２の負荷率の閾値を求めておいてもよい。
【００５６】
一方、スレッドのディスパッチが発生しない場合で（ステップＳ１２：Ｎｏ）、ＣＰＵ１２が割り込みコントローラ１３から割り込み信号を受信した場合（ステップＳ１５：Ｙｅｓ）、ＣＰＵ１２は、受信した割り込み信号に対応する割り込みハンドラをディスパッチする（ステップＳ１６）。そして、ステップＳ１２へ戻る。
【００５７】
一方、ＣＰＵ１２が割り込み信号を受信しない場合で（ステップＳ１５：Ｎｏ）、全処理が終了した場合には（ステップＳ１７：Ｙｅｓ）、一連の処理を終了する。全処理が終了しない場合には（ステップＳ１７：Ｎｏ）、ステップＳ１２へ戻る。なお、ステップＳ１２、ステップＳ１５及びステップＳ１７は、いずれが先に処理されてもよい。
【００５８】
・割り込み判定テーブルの更新処理の説明
図１１は、実施例２にかかる携帯電話機における割り込み判定テーブルの更新処理手順を示すフローチャートである。図１１に示すように、割り込み判定テーブル管理部２５により処理が開始されると、まず、割り込み判定テーブル管理部２５は、ＣＰＵ１２の負荷率及び上述したユーザー性能の特性曲線から導かれる方程式Ｆ（ｘ）に基づいて、予測処理時間を求める。そして、割り込み判定テーブル管理部２５は、求めた予測処理時間で割り込み判定テーブル３３の予測処理時間を更新する（ステップＳ２１）。
【００５９】
次いで、ＣＰＵ１２の負荷率が閾値を超えている場合（ステップＳ２２：Ｙｅｓ）、割り込み判定テーブル管理部２５は、ＣＰＵ１２で実行中のスレッドに対応するスレッド情報２３を参照する（ステップＳ２３）。次いで、割り込み判定テーブル管理部２５は、ＣＰＵ１２で実行中のスレッドのユーザー性能に影響を及ぼす割り込み処理の優先度を「速」に更新し、ユーザー性能に影響を及ぼさない割り込み処理の優先度を「遅」に更新する（ステップＳ２４）。そして、一連の処理を終了する。割り込み判定テーブル管理部２５は、スレッド情報２３から、割り込み処理がユーザー性能に影響を及ぼすか否かということを知ることができる。
【００６０】
一方、ＣＰＵ１２の負荷率が閾値を超えていない場合（ステップＳ２２：Ｎｏ）、割り込み判定テーブル管理部２５は、全ての割り込み処理の優先度を「速」に更新する（ステップＳ２５）。そして、一連の処理を終了する。
【００６１】
・割り込みコントローラにおける割り込み制御方法の説明
図１２は、実施例２にかかる携帯電話機における割り込みコントローラの処理手順を示すフローチャートである。図１２に示すように、割り込みコントローラ１３で処理が開始され、割り込み信号判定部３１が割り込み要求を検出すると（ステップＳ３１：Ｙｅｓ）、割り込み信号判定部３１は、割り込みハンドラ管理部３２に検出した割り込み要求を通知する。
【００６２】
割り込みハンドラ管理部３２は、割り込み信号判定部３１からの通知を受けると、割り込み判定テーブル３３を参照する（ステップＳ３２）。そして、割り込みハンドラ管理部３２は、割り込み信号判定部３１から受けた通知に該当する割り込み処理の優先度を参照する。優先度が「遅」である場合（ステップＳ３３：Ｙｅｓ）、割り込みハンドラ管理部３２は、経過時間監視部３５に割り込み処理を通知する。経過時間監視部３５は、割り込みハンドラ管理部３２からの通知を受けると経過時間の計時を開始する（ステップＳ３４）。そして、ステップＳ３１へ戻る。
【００６３】
一方、割り込み処理の優先度を参照した結果、優先度が「遅」でない、つまり「速」である場合（ステップＳ３３：Ｎｏ）、割り込みハンドラ管理部３２は、割り込み信号判定部３１から受けた通知に該当する割り込み処理を割り込み信号通知部３４へ通知する。割り込み信号通知部３４は、割り込みハンドラ管理部３２からの通知を受けると、即座にＣＰＵ１２に割り込み信号を通知する（ステップＳ３５）。そして、ステップＳ３１へ戻る。
【００６４】
一方、割り込み要求を検出していないが（ステップＳ３１：Ｎｏ）、経過時間監視部３５で計時している経過時間が、最悪実行時間から予測処理時間を引いた時間に一致するという条件を満たす割り込み処理がある場合がある。そのような条件を満たす割り込み処理がある場合には（ステップＳ３６：Ｙｅｓ）、経過時間監視部３５は、割り込みハンドラ管理部３２に通知する。割り込みハンドラ管理部３２は、経過時間監視部３５から通知を受けると、通知された割り込み処理を割り込み信号通知部３４へ通知する。
【００６５】
割り込み信号通知部３４は、割り込みハンドラ管理部３２からの通知を受けると、即座にＣＰＵ１２に割り込み信号を通知する（ステップＳ３７）。次いで、経過時間監視部３５は、ＣＰＵ１２に通知した割り込み信号に対応する割り込み処理の経過時間を例えば０に初期化する（ステップＳ３８）。そして、ステップＳ３１へ戻る。
【００６６】
一方、経過時間監視部３５で計時している経過時間が、最悪実行時間から予測処理時間を引いた時間に一致するという条件を満たす割り込み処理がない場合で（ステップＳ３６：Ｎｏ）、全処理が終了した場合には（ステップＳ３９：Ｙｅｓ）、一連の処理を終了する。全処理が終了しない場合には（ステップＳ３９：Ｎｏ）、ステップＳ３１へ戻る。なお、ステップＳ３１、ステップＳ３６及びステップＳ３９は、いずれが先に処理されてもよい。
【００６７】
・従来例との比較
一例として、ＹｏｕＴｕｂｅ（登録商標）の処理中に「キー入力」、「電波検出」及び「電池残量検出」の割り込み処理が発生する場合を例にして、図１３及び図１４を参照しながら、実施例２と従来例とで動作を比較する。従来例では、割り込み要求が発生すると、ＣＰＵの負荷率やユーザー性能に対する影響の有無にかかわらず、全ての割り込み処理が即座に行われるとする。また、ＹｏｕＴｕｂｅの処理時間を１ｍｓとする。「電波検出」及び「電池残量検出」の各割り込み処理の処理時間を０．５ｍｓとする。また、割り込み判定テーブル３３の登録情報が、図１３に示す例であるとする。
【００６８】
図１３は、実施例２にかかる携帯電話機における割り込み判定テーブルの一例を示す図表である。図１３に示すように、割り込み判定テーブル３３において、「キー入力」及び「電波検出」の優先度は「速」であり、「電池残量検出」の割り込み処理の優先度は「遅」であるとする。いずれも最悪実行時間は１ｍｓであるとする。「キー入力」の予測処理時間は０．２５ｍｓであり、「電波検出」及び「電池残量検出」の予測処理時間は０．５ｍｓであるとする。
【００６９】
図１４は、実施例２と従来例との動作の比較の一例を示す模式図である。図１４に示すように、ＹｏｕＴｕｂｅの処理中、０．２５ｍｓ経過時と１．２５ｍｓ経過時に「キー入力」の割り込み処理が発生したとする。また、０．５ｍｓ経過時に「電波検出」の割り込み処理が発生し、１．５ｍｓ経過時に「電池残量検出」の割り込み処理が発生したとする。
【００７０】
実施例２では、「キー入力」及び「電波検出」の各割り込み処理は、発生時に即座に処理される。「電池残量検出」の割り込み処理は、最悪実行時間の１ｍｓで処理が終了するように、当該割り込み処理の発生時点から０．５ｍｓが経過した２ｍｓのタイミングで開始される。従って、１．５ｍｓ〜２ｍｓの間にＹｏｕＴｕｂｅの処理が行われるので、ＹｏｕＴｕｂｅの処理は、最初から２ｍｓが経過した時点で終了する。
【００７１】
それに対して、従来例では、「キー入力」、「電波検出」及び「電池残量検出」の各割り込み処理は、発生時に即座に処理される。そのため、「電池残量検出」の割り込み処理は、１．５ｍｓのタイミングで開始され、２ｍｓのタイミングで終了する。その後に、ＹｏｕＴｕｂｅの残りの処理が行われるので、ＹｏｕＴｕｂｅの処理は、最初から２．５ｍｓが経過した時点で終了する。つまり、実施例２の方が従来例よりも早くＹｏｕＴｕｂｅの処理が終了する。
【００７２】
実施例２によれば、実施例１と同様の効果が得られる。なお、実施例１にかかる電子計算機１は、携帯電話システムに限らず、ＷｉＭＡＸやＷｉ−Ｆｉなどの他の無線通信システムの端末もしくは基地局やアクセスポイント、パーソナルコンピュータなどのコンピュータ、ＰＤＡ（Ｐｅｒｓｏｎａｌ  Ｄｉｇｉｔａｌ  Ａｓｓｉｓｔａｎｔｓ）などの携帯情報端末、ゲーム機または種々の測定器などにも適用することができる。
【００７３】
上述した実施の形態に関し、さらに以下の付記を開示する。
【００７４】
（付記１）スレッド及び割り込みハンドラを実行する処理部と、
前記処理部の負荷を監視する監視部と、
前記割り込みハンドラの実行が前記処理部で実行中の前記スレッドのユーザー性能に及ぼす影響と前記負荷とに基づいて、前記割り込みハンドラを呼び出す割り込み要求の通知タイミングを判定する判定部と、
前記通知タイミングに基づいて前記処理部に前記割り込み要求を通知する通知部と、
を備え、
前記判定部は、前記負荷が閾値よりも高い場合、前記ユーザー性能に影響を及ぼさない割り込み要求の通知タイミングを、前記ユーザー性能に影響を及ぼす割り込み要求の通知タイミングよりも遅く設定し、
前記処理部は、前記割り込み要求の通知に基づいて前記割り込み要求に対応する前記割り込みハンドラを呼び出して実行する
ことを特徴とする電子計算機。
【００７５】
（付記２）前記判定部は、前記ユーザー性能に影響を及ぼさない割り込み要求の通知タイミングを、該割り込み要求に対応する割り込みハンドラの実行が、許容される最も遅い最悪タイミングで終了し得るタイミングに設定する
ことを特徴とする付記１に記載の電子計算機。
【００７６】
（付記３）前記割り込み要求の発生時からの経過時間を計る計時部を備え、
前記判定部は、前記割り込み要求の発生時から前記最悪タイミングまでの時間から前記負荷に応じた前記割り込みハンドラの処理時間を引いた時間に前記経過時間が一致するタイミングで、前記ユーザー性能に影響を及ぼさない割り込み要求を通知する
ことを特徴とする付記２に記載の電子計算機。
【００７７】
（付記４）前記負荷に応じて前記割り込み要求の通知タイミングの優先度を管理する管理部を備え、
前記判定部は、前記優先度の低い割り込み要求の通知タイミングを、前記優先度の高い割り込み要求の通知タイミングよりも遅く設定する
ことを特徴とする付記１〜３のいずれか一つに記載の電子計算機。
【００７８】
（付記５）前記判定部は、
前記負荷が閾値よりも高い場合、前記ユーザー性能に影響を及ぼす割り込み要求の通知タイミングを該割り込み要求の発生時に設定し、
前記負荷が閾値よりも低い場合、前記ユーザー性能に影響を及ぼさない割り込み要求及び前記ユーザー性能に影響を及ぼす割り込み要求のいずれの通知タイミングも該割り込み要求の発生時に設定する
ことを特徴とする付記１〜４のいずれか一つに記載の電子計算機。
【００７９】
（付記６）処理部の負荷を監視し、
割り込み要求の発生時に該割り込み要求によって呼び出される割り込みハンドラの実行が前記処理部で実行中のスレッドのユーザー性能に及ぼす影響と前記負荷とに基づいて、前記割り込み要求の通知タイミングを判定し、前記負荷が閾値よりも高い場合、前記ユーザー性能に影響を及ぼさない割り込み要求の通知タイミングを、前記ユーザー性能に影響を及ぼす割り込み要求の通知タイミングよりも遅く設定し、
前記通知タイミングに基づいて前記処理部に前記割り込み要求を通知し、
前記割り込み要求の通知に基づいて前記割り込み要求に対応する前記割り込みハンドラを呼び出して実行する
ことを特徴とする割り込み制御方法。
【００８０】
（付記７）前記ユーザー性能に影響を及ぼさない割り込み要求の通知タイミングを、該割り込み要求に対応する割り込みハンドラの実行が、許容される最も遅い最悪タイミングで終了し得るタイミングに設定する
ことを特徴とする付記６に記載の割り込み制御方法。
【００８１】
（付記８）前記割り込み要求の発生時からの経過時間を計り、
前記割り込み要求の発生時から前記最悪タイミングまでの時間から前記負荷に応じた前記割り込みハンドラの処理時間を引いた時間に前記経過時間が一致するタイミングで、前記ユーザー性能に影響を及ぼさない割り込み要求を通知する
ことを特徴とする付記７に記載の割り込み制御方法。
【００８２】
（付記９）前記負荷に応じて前記割り込み要求の通知タイミングの優先度を管理し、
前記優先度の低い割り込み要求の通知タイミングを、前記優先度の高い割り込み要求の通知タイミングよりも遅く設定する
ことを特徴とする付記６〜８のいずれか一つに記載の割り込み制御方法。
【００８３】
（付記１０）前記負荷が閾値よりも高い場合、前記ユーザー性能に影響を及ぼす割り込み要求の通知タイミングを該割り込み要求の発生時に設定し、
前記負荷が閾値よりも低い場合、前記ユーザー性能に影響を及ぼさない割り込み要求及び前記ユーザー性能に影響を及ぼす割り込み要求のいずれの通知タイミングも該割り込み要求の発生時に設定する
ことを特徴とする付記６〜９のいずれか一つに記載の割り込み制御方法。
【符号の説明】
【００８４】
１，１１  電子計算機
２  処理部
３，２４  監視部
４，３２  判定部
５，３４  通知部
２５  管理部
３５  計時部
【国際調査報告】
2013069159.tif 000017
2013069159.tif 000018