JP5099215B2 - 情報処理装置、割込み制御装置、割込み制御回路及び割込み制御方法 - Google Patents

情報処理装置、割込み制御装置、割込み制御回路及び割込み制御方法 Download PDF

Info

Publication number
JP5099215B2
JP5099215B2 JP2010505174A JP2010505174A JP5099215B2 JP 5099215 B2 JP5099215 B2 JP 5099215B2 JP 2010505174 A JP2010505174 A JP 2010505174A JP 2010505174 A JP2010505174 A JP 2010505174A JP 5099215 B2 JP5099215 B2 JP 5099215B2
Authority
JP
Japan
Prior art keywords
interrupt
unit
received
processing
time
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2010505174A
Other languages
English (en)
Other versions
JPWO2009122514A1 (ja
Inventor
正秀 廣木
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Fujitsu Ltd filed Critical Fujitsu Ltd
Publication of JPWO2009122514A1 publication Critical patent/JPWO2009122514A1/ja
Application granted granted Critical
Publication of JP5099215B2 publication Critical patent/JP5099215B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/20Handling requests for interconnection or transfer for access to input/output bus
    • G06F13/24Handling requests for interconnection or transfer for access to input/output bus using interrupt
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4812Task transfer initiation or dispatching by interrupt, e.g. masked

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Bus Control (AREA)

Description

本件は、情報処理を行うための装置、並びに、実行中処理の中断と指定処理の優先実行とに関する要求である割り込みを制御するための装置、回路、方法、及び、プログラムに、関する。
周知のように、近年では、イーサネット(米国ゼロックス社の商標)又はファイバチャンネルのように、通信速度の高い通信規格が、種々開発されており、この種の通信規格に準拠した通信アダプタ(通信インターフェースとして機能する拡張カード)を搭載したコンピュータが、増えている。
通常の通信アダプタは、1つのデータに関する処理(送信又は受信)が完了するたびに、PCI[Peripheral Components Interconnect]バスとホストブリッジとを介してCPU[Central Processing Unit]に割り込みを行うようになっている。このため、通信速度の増加に伴い、通信アダプタがCPUに行う割り込みの単位時間当たりの数も、増大している。そして、このように高速動作する通信アダプタが、コンピュータに複数搭載されていると、CPUにかなりの負荷が掛かってしまうという問題がある。
国際公開第03/063002号パンフレット 特開2002−023961号公報 特開平11−015800号公報 特開昭53−145536号公報 特開昭52−047648号公報
本件は、前述したような従来技術の有する問題点に鑑みてなされたものであり、その課題は、高速動作する通信アダプタがコンピュータに複数搭載されていたとしても、CPUに掛かる負荷ができるだけ低減されるようにすることにある。
上記の課題を解決するために案出された情報処理装置の第1の態様は、割込みを発生する割込み発生部と、発生した割込みを受信して、単位時間当たりの割込みの受信数を計数するとともに割込みを通知し、計数した単位時間当たりの割込みの受信数が所定値を超える場合には、割込みの通知を遅らせる割込み制御部と、通知された割込みを処理する割込み処理部を有することを、特徴としている。
このように構成されると、割り込み発生部から割り込み処理部に通知される割り込みの単位時間当たりの回数が所定値を超えているときには、割り込み処理部への割り込みの通知が遅延される。これにより、割り込み処理部に掛かる負荷が低減することとなる。
また、上記の課題を解決するために案出された情報処理装置の第2の態様は、割込みを発生する割込み発生部と、発生した割込みを受信し、受信した割込みの通知を遅らせるとともに、割込みの通知を遅らせている間に、割込み発生部から第1の新たな割込みを受信した場合には、通知を遅らせた割込みと受信した第1の新たな割込みとを、通知する割込み制御部と、通知された割込みを処理する割込み処理部を有することを、特徴としている。
このように構成されると、割り込み発生部から割り込み処理部への割り込みの通知が遅延され、割り込み発生部がその遅延中に新たな割り込みを更に発生させたときには、その新たな割り込みは、遅延中の割り込みとともに、割り込み処理部に送られる。このように、割り込みが幾つか纏めて通知されるようにすれば、割り込みが1個発生する毎に割り込みの通知処理を行うことに比べて、割り込みの通知処理を減らすことができ、割り込み処理部に掛かる負荷が低減することとなる。
なお、以上に開示した情報処理装置に係る動作は、割り込み制御方法又は割り込み制御プログラムによっても実現し得る。すなわち、本発明は、前述した情報処理装置の各部と同等の機能を複数の手順としてコンピュータが実行する割り込み制御方法であってもよいし、それら各部と同等に機能する複数の手段としてコンピュータを動作させる割り込み制御プログラムであってもよい。また、本件は、その割り込み制御プログラムを格納したコンピュータ可読媒体であっても良い。
従って、以上に開示した情報処理装置によれば、高速動作する通信アダプタがコンピュータに複数搭載されていたとしても、CPUに掛かる負荷ができるだけ低減されるようになる。
第1の実施形態のコンピュータのハードウエア構成図 本体の構成図 通信アダプタの構成図 一回の割り込み通知で1個の割り込み要因が引き渡される場合のシーケンス図 一回の割り込み通知で3個の割り込み要因が引き渡される場合のシーケンス図 コンピュータのソフトウエア構成図である。 統計情報生成処理の流れを示す図である。 設定制御処理の流れを示す図である。 システム負荷の回答例を示す図である。 CPUが割り込みに掛ける時間が約15%削減された状態を示すシーケンス図 第2の実施形態の通信アダプタの構成図である。 第2の実施形態のコンピュータのソフトウエア構成図である。 第2の実施形態の設定制御処理の流れを示す図である。 CPUが割り込みに掛ける時間が約15%削減された状態を示すシーケンス図 第3の実施形態の通信アダプタの構成図である。 第3の実施形態のコンピュータのソフトウエア構成図である。 第3の実施形態の設定制御処理の流れを示す図である。 設定制御モジュールが割り込み要因を取得する場合のシーケンス図である。 CPUが割り込みに掛ける時間が約15%削減された状態を示すシーケンス図
符号の説明
10 コンピュータ
10a 表示デバイス
10b 操作デバイス
10c 本体
11 通信アダプタ
11a インターフェースモジュール
11c コントローラ
111 通信プロトコル制御ユニット
112 インターフェース制御ユニット
112a レジスタ
112b レジスタ
113 割り込み制御ユニット
113a レジスタ
113b レジスタ
14 ハードディスクドライブ
14b 統計情報生成デーモン
14c 通信アダプタドライバ
141 基本制御モジュール
142 ハードウエア制御モジュール
142 ハードウエア制御部
143 設定制御モジュール
144 設定制御モジュール
145 設定制御モジュール
14d オペレーティングシステムソフトウエア
15 CPU
16 メインメモリ
18 サウスブリッジ
18a 割り込みコントローラ
以下、添付図面を参照しながら、開示した情報処理装置の実施形態であるコンピュータについて、3例説明する。
第1の実施形態
<<構成>>
図1は、第1の実施形態のコンピュータ10のハードウエア構成図である。
図1に示すように、第1の実施形態のコンピュータ10は、液晶ディスプレイ等である表示デバイス10aと、キーボードやマウス等である操作デバイス10bと、これらデバイス10a、10bに接続される本体10cとを、含んでいる。その本体10cは、ネットワークNに接続されている。
図2は、本体10cの構成図である。
図2に示すように、本体10cは、通信アダプタ11、スーパーI/O[Input/Output]コントローラ12、ブートメモリ13、ハードディスクドライブ14、CPU[Central Processing Unit]15、メインメモリ16、グラフィクスコントローラ17、統合I/Oコントローラの役割を果たすサウスブリッジ18、及び、メモリコントローラの役割を果たすノースブリッジ19を、内蔵している。
通信アダプタ11は、ネットワークN上の他のコンピュータとの間でデータの遣り取りを行う機器ある。通信アダプタ11としては、イーサネット拡張カードや、ファイバチャンネル拡張カードがある。
スーパーI/Oコントローラ12は、PS/2[Personal System/2]ポート等のI/Oポートを介して接続されるデバイスとデータの遣り取りを行うための機器である。図1の操作デバイス10bは、このスーパーI/Oコントローラ12に接続されている。
ブートメモリ13は、コンピュータ10の起動後直ちに実行されるBIOS[Basic Input/Output System]プログラムが記録されているフラッシュメモリである。
ハードディスクドライブ14は、ディスク媒体であるハードディスクに対して読み書きを行うための機器である。ハードディスクには、後述するように、オペレーティングシステムソフトウエア、ネットワークドライバソフトウエア、アプリケーションソフトウエアなど、各種のソフトウエアが、記録される。
CPU15は、ブートメモリ13及びハードディスクドライブ14内のプログラムに従って処理を行う機器である。
メインメモリ16は、CPU15がプログラムやデータをキャッシュしたり作業領域を展開したりするためのユニットである。
グラフィクスコントローラ17は、CPU15から渡される描画データに基づいて映像信号を生成して出力する機器である。図1の表示デバイス10aは、このグラフィクスコントローラ17に接続されている。
サウスブリッジ18は、PCI[Peripheral Components Interconnect]デバイス、LPC[Low Pin Count]デバイス、ATA[Advanced Technology Attachment]デバイスをそれぞれ制御するためのコントローラが搭載されているLSI[Large Scale Integration]である。サウスブリッジ18には、スーパーI/Oコントローラ12がLPCバスを介して接続され、ハードディスクドライブ14がATAバスを介して接続されている。また、第1の実施形態では、サウスブリッジ18には、第1乃至第Nの通信アダプタ11が、PCIバスを介して接続されている。
また、統合I/Oコントローラの役割を果たすサウスブリッジ18には、ブートメモリ13へのアクセスを制御するためのコントローラが、搭載されているとともに、アクセスコントローラとしてのDMA[Direct Memory Access]コントローラも、搭載されている。DMAコントローラは、ハードディスクドライブ14内のデータをCPU15を介さずにメインメモリ16に送信するためのコントローラである。
さらに、サウスブリッジ18には、割り込みコントローラ18aも、搭載されている。割り込みコントローラ18aは、PCIデバイス(第1の実施形態では通信アダプタ11)での割り込み発生を監視するとともに、発生した割り込みをハードウエア割り込みとしてCPU15に通知するためのコントローラである。
メモリコントローラの役割を果たすノースブリッジ19は、CPU15、メインメモリ16、グラフィクスコントローラ17をそれぞれ制御するためのコントローラが搭載されているLSIである。ノースブリッジ19には、CPU15がシステムバスを介して接続され、メインメモリ16がメモリバスを介して接続され、グラフィクスコントローラ17がAGP[Accelerated Graphics Port]バスを介して接続されている。
また、ノースブリッジ19は、CPU15とサウスブリッジ18との間のデータの転送を制御するバス−バスブリッジ機能を、搭載しており、サウスブリッジ18とは専用バスを介して接続されている。専用バスとしては、A-Link(台湾ALi社の商標)、Hyper Transport(米AMD社の商標)、MuTIOL(台湾シリコンインテグレーティッドシステムズ社の商標)、V-Link(台湾VIAテクノロジ社の商標)がある。
図3は、通信アダプタ11の構成図である。
図3に示すように、通信アダプタ11は、インターフェースモジュール11a、ROM[Read Only Memory]11b、及び、コントローラ11cを、含んでいる。インターフェースモジュール11aは、ネットワークN上の機器との間でデータの遣り取りを行うためのモジュールである。ROM11bは、通信アダプタ11に関する情報が記録された機器である。コントローラ11cは、通信アダプタ11を制御するための機器である。
コントローラ11cは、通信プロトコル制御ユニット111、PCIインターフェース制御ユニット112、及び、割り込み制御ユニット113を、含んでいる。
通信プロトコル制御ユニット111は、通信プロトコルに従った通信制御を行うユニットである。この通信プロトコル制御ユニット111は、所定の事象を検知した場合に、割り込みを発生させるようになっている。なお、割り込みを発生させる要因となる事象としては、例えば、I/Oの正常完了、I/Oの異常終了、フレームの正常送信完了、フレームの受信、ハードウエアのエラー検出がある。
なお、通信プロトコル制御ユニット111は、前述した割り込み発生部に相当している。
PCIインターフェース制御ユニット112は、PCIバスに接続されたPCIデバイスとの間で、PCIバス内のデータ線を介したデータの遣り取りと、PCIバス内の割り込み線を介した割り込みの通知とを、行うためのユニットである。PCIインターフェース制御ユニット112は、割り込みを発生させる要因となった事象が割り込み要因として記録されるレジスタ112aを、備えている。
割り込み制御ユニット113は、割り込みの制御を行うユニットである。具体的には、割り込み制御ユニット113は、通信プロトコル制御ユニット111が発生させた割り込みを図2の割り込みコントローラ18aに通知するとともに、その割り込み要因をPCIインターフェース制御ユニット112のレジスタ112aに記録する。また、割り込み制御ユニット113は、単位時間当たりの割り込み通知回数の上限値(γ[回/秒])が記録されるレジスタ113aを、備えている。割り込み制御ユニット113は、単位時間当たりの割り込み通知回数が、レジスタ113bに記録されている上限値(γ)を超えないよう、割り込み通知を制御する。例えば、毎秒1万回が、単位時間当たりの割り込み通知の回数の上限値(γ)であった場合、割り込み制御ユニット113は、1秒間において割り込み通知が1万回に到達した時点で割り込み通知を停止し、次の1秒間が始まるまで待機し、次の1秒間が始まると割り込み通知が行えるようになる。
なお、割り込み制御ユニット113は、割り込みの通知を行ってから次の通知を行うまでの間に、割り込み要因となる事象が1個しか発生しなかった場合、図4のシーケンス図に示すように、一回の割り込み通知で1個の割り込み要因(例えば、図4の処理Aの契機となる1個の要因)を後述の通信アダプタドライバ14cに通知する。一方、割り込みの通知を行ってから次の通知を行うまでの間に、割り込み要因となる事象が2個以上発生した場合、割り込み制御ユニット113は、図5のシーケンス図に示すように、一回の割り込み通知で複数個の割り込み要因(例えば、図5の処理A乃至処理Cの契機となる3個の要因)を後述の通信アダプタドライバ14cに通知する。
図6は、コンピュータ10のソフトウエア構成図である。
コンピュータ10は、ハードディスクドライブ14に、ユーザアプリケーション14a、統計情報生成デーモン14b、通信アダプタドライバ14c、オペレーティングシステムソフトウエア14dを、記憶している。
ユーザアプリケーション14aは、文書編集や表計算や描画やウェブページ閲覧などのサービスをコンピュータ10上で実現するためのソフトウエアである。このユーザアプリケーション14aがウェブブラウザやメーラーなどである場合、ユーザアプリケーション14aは、通信アダプタドライバ14cを通じてウェブサーバやメールサーバと通信を行う。
統計情報生成デーモン14bは、通信アダプタ11からの単位時間当たりの割り込みの通知回数(α[回/秒])と、この通信アダプタ11に係る処理をCPU15が実行する時間が単位時間に占める割合(使用率)であるシステム負荷(β[%])とに基づいて、単位時間の割り込み通知回数の上限値(γ[回/秒])を通信アダプタ11に設定するプログラムである。この統計情報生成デーモン14bは、通信アダプタドライバ14cと同じ数だけ、コンピュータ10に用意されている。なお、この統計情報生成デーモン14bに従ってCPU15が実行する処理の内容については、図7を用いて後述する。
通信アダプタドライバ14cは、通信アダプタ11を制御するためのソフトウエアである。この通信アダプタドライバ14cは、通信アダプタ11と同じ数だけ、コンピュータ10に用意されている。通信アダプタドライバ14cは、基本制御モジュール141、ハードウエア制御モジュール142、設定制御モジュール143を、含んでいる。
基本制御モジュール141は、通信アダプタ11へのコマンドの送出、ユーザアプリケーション14aと通信アダプタ11との間のデータの受け渡し、通信アダプタ11へのコマンドの送出、通信アダプタ11の通信プロトコル制御ユニット111が発生させた割り込みに係る割り込み要因に応じた処理を、行うモジュールである。
ハードウエア制御モジュール142は、基本制御モジュール141と通信アダプタ11との間におけるデータやコマンドの形態の変換を行うモジュールである。
設定制御モジュール143は、通信アダプタ11に設定される情報を制御するためのモジュールである。この設定制御モジュール143に従ってCPU15が実行する処理の内容については、図8を用いて後述する。
オペレーティングシステムソフトウエア14dは、各種アプリケーションへのAPI[Application Programming Interface]やABI[Application Binary Interface]の提供、ハードディスクドライブ14やメインメモリ16の記憶領域の管理、プロセスやタスクの管理、ファイル管理や各種設定ツールやエディタといったユーティリティのアプリケーションへの提供、及び、画面出力を多重化するための複数タスクへのウインドウの割り当てを、行うためのソフトウエアである。
このオペレーティングシステムソフトウエア14dは、通信アダプタ11からの割り込みの通知を監視する機能を、含んでいる。また、このオペレーティングシステムソフトウエア14dは、割り込みの通知を検出すると、通信アダプタ11のPCIインターフェース制御ユニット112のレジスタ112aから割り込み要因を取得する処理(図4及び図5の処理X)を行って、その割り込み要因を通信アダプタドライバ14cに引き渡す機能も、含んでいる。
より具体的には、オペレーティングシステムソフトウエア14dは、通信アダプタ11からの割り込みの通知を検出すると、予め定められた割り込みの優先度に基づいて、割り込みに係る処理を行う。なお、主な割り込みについて、優先度の高い順に並べてみると、PIO[Programmed I/O]シリアル割り込み、クロック割り込み、通信アダプタ11からの割り込み、ディスク装置へのアクセスに関連する割り込み、ソフトウエア割り込みとなっている。オペレーティングシステムソフトウエア14dは、割り込みの通知を検出すると、その通知が検出された割り込みの優先度よりも、その時点で実行中の割り込みに係る処理の優先度が高いか低いかを、判別する。そして、通知が検出された割り込みの優先度が高ければ、その時点で実行中の処理を中断して、通知が検出された割り込みに係る処理を優先させ、通知が検出された割り込みの優先度が低ければ、その割り込みに係る処理を待機させる。また、オペレーティングシステムソフトウエア14dは、割り込みの通知先が通信アダプタ11であれば、通信アダプタ11のPCIインターフェース制御ユニット112のレジスタ112aから1個以上の割り込み要因を取得し、通信アダプタドライバ14c内の基本制御モジュール141内の割り込みハンドラを呼び出す(図4及び図5の処理X)。なお、その割り込みハンドラは、1個以上の割り込み要因にそれぞれ対応する処理を行い(図4及び図5の処理A乃至処理C)、通信アダプタ11のPCIインターフェース制御ユニット112のレジスタ112aをクリアする。オペレーティングシステムソフトウエア14dは、割り込みハンドラが処理を終えると、中断させていた処理を再開させる処理も行う(図4及び図5の処理Y)。
なお、オペレーティングシステムソフトウエア14dを実行するCPU15と、通信アダプタドライバ14cの基本制御モジュール141及びハードウエア制御モジュール142を実行するCPU15とは、前述した割り込み処理部に相当している。
<<処理>>
<統計情報生成>
コンピュータ10の主電源が投入された後、統計情報生成デーモン14bがCPU15によって読み込まれ、統計情報生成処理が開始されるようになっている。
図7は、統計情報生成処理の流れを示す図である。
統計情報生成処理の開始後、最初のステップS101では、CPU15は、システム負荷の上限値(δ[%])を読み込む。このシステム負荷の上限値(δ)は、対応する通信アダプタドライバ14cに事前に含まれており、この通信アダプタドライバ14cが制御する通信アダプタ11の動作に伴うシステム負荷(この通信アダプタ11に係る処理をCPU15が実行する時間が単位時間に占める割合、すなわち、使用率)の上限値を意味している。システム負荷の上限値(δ)を読み込むと、CPU15は、ステップS102へ処理を進める。
ステップS102では、CPU15は、設定制御モジュール143を介してハードウエア制御部142から、対応通信アダプタ11による単位時間当たりの割り込み通知回数(α)を、取得する。
次のステップS103では、CPU15は、オペレーティングシステムソフトウエア14dから、対応通信アダプタ11によるシステム負荷(β)を取得する。
次のステップS104では、CPU15は、単位時間当たりの割り込み通知回数の上限値(γ[回/秒])を算出する。具体的には、CPU15は、まず、ステップS101で読み込んだシステム負荷の上限値(δ[%])を、ステップS103で取得したシステム負荷(β[%])で除算し、続いて、その除算で得られた値を、ステップS102で取得した単位時間当たりの割り込み通知回数(α[回/秒])に乗算する。CPU15は、この演算(δ÷β)×αにより、単位時間当たりの割り込み通知回数の上限値(γ[回/秒])を、算出する。
次のステップS105では、CPU15は、ステップS104で算出した上限値(γ)を、通信アダプタドライバ14cに設定する。
次のステップS106では、CPU15は、一定時間待機し、その後、ステップS102へ処理を戻す。
以上の統計情報生成処理によれば、通信アダプタドライバ14cには、単位時間当たりの割り込み通知回数の上限値(γ)が、定期的に設定されることとなる。
<設定制御>
コンピュータ10の主電源が投入された後、設定制御モジュール143がCPU15によって読み込まれ、設定制御理が開始されるようになっている。
図8は、設定制御処理の流れを示す図である。
設定制御処理の開始後、最初のステップS201では、CPU15は、通信アダプタドライバ14cに設定されている単位時間当たりの割り込み通知回数の上限値(γ)を読み込む。
次のステップS202では、CPU15は、ハードウエア制御モジュール142から、対応通信アダプタ11による単位時間当たりの割り込み通知回数(I[回/秒])を取得する。
次のステップS203では、CPU15は、ステップS202で取得した単位時間の割り込み通知回数(I)が、ステップS201で読み込んだ上限値(γ)を上回っているか否かを、判別する。そして、単位時間の割り込み通知回数(I)が上限値(γ)を上回っていた場合、CPU15は、ステップS204へ処理を進める。
ステップS204では、CPU15は、ステップS201で読み込んだ単位時間当たりの割り込み通知回数の上限値(γ[回/秒])を、ハードウエア制御部142を介して、通信アダプタ11に設定する。なお、通信アダプタ11のコントローラ11cは、単位時間当たりの割り込み通知回数の上限値(γ)を、割り込み制御ユニット113内のレジスタ113aに記録する。その後、CPU15は、ステップS206へ処理を進める。
一方、ステップS203において、ステップS202で取得した単位時間の割り込み回数(I[回/秒])が、ステップS201で読み込んだ上限値(γ[回/秒])以下であった場合、CPU15は、ステップS203からステップS205へ処理を分岐させる。
ステップS205では、CPU15は、通信アダプタ11に設定されている上限値(γ)を無限大に変更する。その後、CPU15は、ステップS206へ処理を進める。
ステップS206では、CPU15は、一定時間待機し、その後、ステップS201へ処理を戻す。
以上の設定制御処理によれば、対応通信アダプタ11による単位時間当たりの割り込み通知回数(I)が、統計情報生成処理で設定された上限値(γ)を上回っている場合に、通信アダプタ11による割り込みの通知が制限されることとなる。
なお、統計情報生成処理と設定制御処理とを実行するCPU15、及び、通信アダプタ11のコントローラ11c内の割り込み制御ユニット113は、前述した割り込み制御部に相当している。
<<作用効果>>
前述したように、第1の実施形態では、統計情報生成デーモン14bが、対応する通信アダプタ11によるシステム負荷の上限値(δ)と、実測したシステム負荷(α)と、単位時間当たりの割り込み通知回数(β)とに基づいて、対応する通信アダプタドライバ14cに対し、定期的に、単位時間当たりの割り込み通知回数の上限値(γ)を設定する(ステップS101〜S106)。
また、この統計情報生成デーモン14bと並行して実行される設定制御モジュール143が、対応する通信アダプタ11について実測した単位時間当たりの割り込み通知回数(I)が上限値(γ)を上回るか否かを、定期的に判別し(ステップS201〜S203)、単位時間当たりの割り込み通知回数(I)が上限値(γ)を上回っている場合に、通信アダプタ11による割り込みに制限を掛ける(ステップS203;はい、S204)。
例えば、Solaris(米国サンマイクロシステムズ社の商標)というオペレーティングシステムソフトウエア14dは、「mpstat」というコマンドを受けると、CPU15毎のシステム負荷(使用率)を回答するようになっている。
図9は、その回答例を示す図である。
図9の回答例における「intr」フィールドに示されるように、番号が1であるCPU15は、割り込み通知を毎秒20000回受けている(α=20000)。また、図9の回答例における「sys」フィールドに示されるように、番号が1であるCPU15のシステム負荷(使用率)は、60%となっている(β=60)。
そして、第1の実施形態のコンピュータ10内の通信アダプタドライバ14cのうちの1つに対し、それに対応する通信アダプタ11の動作に伴う1番のCPU15のシステム負荷の上限値が30%に設定されていた場合(δ=30)、単位時間当たりの割り込み通知回数とシステム負荷とが概ね比例関係にあるため、この通信アダプタ11による単位時間当たりの割り込み通知回数の上限値(γ)は、γ=(δ÷β)×α=(30÷60)×20000=10000[回/秒]と見積もられる(ステップS104)。
ここで、オペレーティングシステムソフトウエア14dが割り込み要因を取得する処理(図4及び図5の処理X)に要する時間が2μ秒であり、通信アダプタドライバ14cの基本制御モジュール141が1個の割り込み要因について処理を行うのに要する時間の平均が10μ秒であり、通信アダプタドライバ14cが割り込み要因に応じた処理を終えた後でオペレーティングシステムソフトウエア14dが後段処理(図4及び図5の処理Y)を行うのに掛かる時間が2μ秒であると仮定する。
そして、1回の割り込み通知で1個の割り込み要因が通信アダプタドライバ14cに引き渡されるとすると、図9に示す1番のCPU15については、毎秒20000回の割り込み通知があるため、1秒当たりに割り込み処理に掛かる時間は、20000×(2+10+2)=280000μ秒となる。なお、割り込み通知1回当たりのCPU15の処理時間は、280000÷20000=14μ秒である。
一方、第1の実施形態により、通信アダプタ11による単位時間当たりの割り込み通知回数が、10000回/秒を上限値として制限された場合、毎秒10000回の割り込み通知で、20000個の割り込み要因について処理が行われねばならないため、図9に示す1番のCPU15では、割り込み処理に掛かる時間は、20000×10+10000×(2+2)=240000μ秒となる。なお、割り込み通知1回当たりのCPU15の処理時間は、240000÷10000=24μ秒である。
従って、第1の実施形態により、図9に示す1番のCPU15では、割り込み処理に掛かる時間が、約15%削減される(240000÷280000=0.857)。図10は、CPU15が割り込みに掛ける時間が約15%削減された状態を示すシーケンス図である。
なお、以上に説明した第1の実施形態では、図7の統計情報生成処理により、単位時間当たりの割り込み通知回数の上限値(γ)が、通信アダプタドライバ14cに対し、動的に設定されていたが、この上限値(γ)は、通信アダプタドライバ14cの設定ファイルに対し、静的に設定されても良い。
第2の実施形態
第2の実施形態は、単位時間当たりの割り込み通知回数の上限値(γ[回/秒])ではなく、割り込みの通知間隔の下限値(1/γ[秒/回])が通信アダプタ11に設定される点で、第1の実施形態と相違する。この相違点以外のハードウエア構成及びソフトウエア構成については、第2の実施形態は、第1の実施形態と同じである。
<<構成>>
図11は、第2の実施形態の通信アダプタ11の構成図である。
第2の実施形態の通信アダプタ11の割り込み制御ユニット113は、割り込みの通知間隔の下限値(1/γ[秒/回])が記録されるレジスタ113bを、備えている。割り込み制御ユニット113は、割り込みの通知間隔が、レジスタ113bに記録されている下限値(1/γ)を超えないよう、割り込み通知を制御する。例えば、1回当たり(1/10000)秒が、割り込みの通知間隔の下限値(1/γ)であった場合、割り込み制御ユニット113は、1個の割り込み通知を行った後、(1/10000)秒が経過するまで割り込み通知を停止し、1秒間において割り込み通知が1万回に到達した時点で割り込み通知を停止し、(1/10000)秒が経過すると、次の割り込み通知が行えるようになる。
なお、割り込み制御ユニット113は、割り込みの通知を行ってから次の通知を行うまでの間に、割り込み要因となる事象が1個しか発生しなかった場合、図4のシーケンス図に示すように、一回の割り込み通知で1個の割り込み要因(例えば、図4の処理Aの契機となる1個の要因)を通信アダプタドライバ14cに通知する。一方、割り込みの通知を行ってから次の通知を行うまでの間に、割り込み要因となる事象が2個以上発生した場合、割り込み制御ユニット113は、図5のシーケンス図に示すように、一回の割り込み通知で複数個の割り込み要因(例えば、図5の処理A乃至処理Cの契機となる3個の要因)を通信アダプタドライバ14cに通知する。
図12は、第2の実施形態のコンピュータ10のソフトウエア構成図である。
第2の実施形態の通信アダプタドライバ14cは、設定制御モジュール144を含んでいる。設定制御モジュール144は、第1の実施形態の設定制御モジュール143(図6)とは若干異なる処理を行うものとなっている。
<<処理>>
コンピュータ10の主電源が投入された後、設定制御モジュール144がCPU15によって読み込まれ、設定制御処理が開始されるようになっている。
図13は、第2の実施形態の設定制御処理の流れを示す図である。
設定制御処理の開始後、最初のステップS301では、CPU15は、通信アダプタドライバ14cに設定されている単位時間当たりの割り込み通知回数の上限値(γ[回/秒])を読み込む。
次のステップS302では、CPU15は、ハードウエア制御モジュール142から、対応通信アダプタ11による単位時間当たりの割り込み通知回数(I[回/秒])を取得する。
次のステップS303では、CPU15は、ステップS302で取得した単位時間の割り込み通知回数(I)が、ステップS301で読み込んだ上限値(γ)を上回っているか否かを、判別する。そして、単位時間の割り込み通知回数(I)が上限値(γ)を上回っていた場合、CPU15は、ステップS304へ処理を進める。
ステップS304では、CPU15は、ステップS301で読み込んだ単位時間当たりの割り込み通知回数の上限値(γ[回/秒])の逆数である割り込み通知間隔の下限値(1/γ[秒/回])を、ハードウエア制御部142を介して、通信アダプタ11に設定する。なお、通信アダプタ11のコントローラ11cは、割り込み通知間隔の下限値(1/γ)を、割り込み制御ユニット113内のレジスタ113bに記録する。その後、CPU15は、ステップS306へ処理を進める。
一方、ステップS303において、ステップS302で取得した単位時間の割り込み回数(I[回/秒])が、ステップS301で読み込んだ上限値(γ[回/秒])以下であった場合、CPU15は、ステップS303からステップS305へ処理を分岐させる。
ステップS305では、CPU15は、通信アダプタ11に設定されている下限値(1/γ)をゼロに変更する。その後、CPU15は、ステップS306へ処理を進める。
ステップS306では、CPU15は、一定時間待機し、その後、ステップS301へ処理を戻す。
以上の設定制御処理によれば、対応通信アダプタ11による単位時間当たりの割り込み通知回数(I)が、統計情報生成処理で設定された上限値(γ)を上回っている場合に、通信アダプタ11による割り込みの通知が制限されることとなる。
<<作用効果>>
第2の実施形態でも、第1の実施形態と同様に、統計情報生成デーモン14bが、対応する通信アダプタ11によるシステム負荷の上限値(δ)と、実測したシステム負荷(α)と、単位時間当たりの割り込み通知回数(β)とに基づいて、対応する通信アダプタドライバ14cに対し、定期的に、単位時間当たりの割り込み通知回数の上限値(γ)を設定する(図7のステップS101〜S106)。
また、この統計情報生成デーモン14bと並行して実行される設定制御モジュール144が、対応する通信アダプタ11について実測した単位時間当たりの割り込み通知回数(I)が上限値(γ)を上回るか否かを、定期的に判別し(ステップS301〜S303)、単位時間当たりの割り込み通知回数(I)が上限値(γ)を上回っている場合に、通信アダプタ11による割り込みに制限を掛ける(ステップS303;はい、S304)。
例えば、前述したように、図9に示す1番のCPU15が、割り込み通知を単位時間当たり20000回受けているとともに(α=20000)、そのCPU15のシステム負荷(使用率)が、60%となっている(β=60)場合において、そのCPU15のシステム負荷の上限値が30%に設定されていた場合(δ=30)、単位時間当たりの割り込み通知回数の上限値(γ)は、10000[回/秒]と見積もられる(ステップS104)。そして、I=20000>γであるため、通信アダプタ11には、(1/γ)=1/10000が、設定されることとなる(ステップS304)。
そして、オペレーティングシステムソフトウエア14dが割り込み要因を取得する処理(図4及び図5の処理X)に要する時間が2μ秒であり、通信アダプタドライバ14cの基本制御モジュール141が1個の割り込み要因について処理を行うのに要する時間の平均が10μ秒であり、通信アダプタドライバ14cが割り込み要因に応じた処理を終えた後でオペレーティングシステムソフトウエア14dが後段処理(図4及び図5の処理Y)を行うのに掛かる時間が2μ秒であると仮定する。
すると、1回の割り込み通知で1個の割り込み要因が通信アダプタドライバ14cに引き渡されるとした場合、図9に示す1番のCPU15では、単位時間当たり20000回の割り込み通知があるため、割り込み処理に掛かる時間は、20000×(2+10+2)=280000μ秒となる。なお、割り込み通知1回当たりのCPU15の処理時間は、280000÷20000=14μ秒である。
一方、第2の実施形態により、通信アダプタ11による割り込みの通知間隔が、(1/10000)秒/回を下限値として制限された場合、割り込み通知間隔の下限値が倍に増えるため、1回の割り込み通知により、平均して2個の割り込み要因が、通信アダプタドライバ14cに引き渡されねばならない。従って、図9に示す1番のCPU15では、割り込み処理に掛かる時間は、20000×10+10000×(2+2)=240000μ秒となる。なお、割り込み通知1回当たりのCPU15の処理時間は、240000÷10000=24μ秒である。
従って、第2の実施形態によっても、図9に示す1番のCPU15では、割り込み処理に掛かる時間が、約15%削減される(240000÷280000=0.857)。図14は、CPU15が割り込みに掛ける時間が約15%削減された状態を示すシーケンス図である。
第3の実施形態
第3の実施形態は、通信アダプタ11に何らかの閾値を設定するのではなく、通信アダプタ11に対する割り込みの許可と禁止とをソフトウエアによって制御する点で、第1及び第2の実施形態と相違する。この相違点以外のハードウエア構成及びソフトウエア構成について、第3の実施形態は、第1及び第2の実施形態と同じである。
<<構成>>
図15は、第3の実施形態の通信アダプタ11の構成図である。
第3の実施形態では、通信アダプタ11の割り込み制御ユニット113のレジスタは、使用されない。また、第3の実施形態では、通信アダプタ11のPCIインターフェース制御ユニット112は、割り込み要因が記録されるレジスタ112aと、割り込みの許可又は禁止の指示が記録されるレジスタ112bとを、備えている。割り込み制御ユニット113は、割り込み禁止の指示がレジスタ112bに記録されている場合には、割り込みをCPU15に通知しない。
なお、割り込み制御ユニット113は、割り込みの通知を行ってから次の通知を行うまでの間に、割り込み要因となる事象が1個しか発生しなかった場合、図4のシーケンス図に示すように、一回の割り込み通知で1個の割り込み要因(例えば、図4の処理Aの契機となる1個の要因)を通信アダプタドライバ14cに通知する。一方、割り込みの通知を行ってから次の通知を行うまでの間に、割り込み要因となる事象が2個以上発生した場合、割り込み制御ユニット113は、図5のシーケンス図に示すように、一回の割り込み通知で複数個の割り込み要因(例えば、図5の処理A乃至処理Cの契機となる3個の要因)を通信アダプタドライバ14cに通知する。
図16は、第3の実施形態のコンピュータ10のソフトウエア構成図である。
第3の実施形態の通信アダプタドライバ14cは、設定制御モジュール145を含んでいる。設定制御モジュール145は、第1及び第2の実施形態の設定制御モジュール143、144(図6、図13)とは若干異なる処理を行うものとなっている。
<<処理>>
コンピュータ10の主電源が投入された後、設定制御モジュール145がCPU15によって読み込まれ、設定制御処理が開始されるようになっている。
図17は、第3の実施形態の設定制御処理の流れを示す図である。
設定制御処理の開始後、最初のステップS401では、CPU15は、通信アダプタドライバ14cに設定されている単位時間当たりの割り込み通知回数の上限値(γ[回/秒])を読み込む。
次のステップS402では、CPU15は、ハードウエア制御モジュール142から、対応通信アダプタ11による単位時間当たりの割り込み通知回数(I[回/秒])を取得する。なお、後述する処理ステップによって通信アダプタ11が割り込みを禁止されている場合には、後述のステップS405において単位時間当たりに取得した割り込み要因の数に基づいて、単位時間当たりの割り込み通知回数(I[回/秒])を算出する。
次のステップS403では、CPU15は、ステップS402で取得した単位時間の割り込み通知回数(I)が、ステップS401で読み込んだ上限値(γ)を上回っているか否かを、判別する。そして、単位時間の割り込み通知回数(I)が上限値(γ)を上回っていた場合、CPU15は、ステップS404へ処理を進める。
ステップS404では、CPU15は、割り込み禁止の指示を通信アダプタ11に設定する。なお、通信アダプタ11のコントローラ11cは、割り込み禁止の指示を、PCIインターフェース制御ユニット112内のレジスタ112bに記録する。
次のステップS405では、CPU15は、ステップS401で読み込んだ単位時間当たりの割り込み通知回数の上限値(γ[回/秒])の逆数である(1/γ)を算出し、その(1/γ)秒おきに、通信アダプタ11のPCIインターフェース制御ユニット112内のレジスタ112aに割り込み要因が記録されているか否かを確認する処理を行う。また、CPU40eは、確認の結果、レジスタ112aに割り込み要因が記録されていた場合には、通信アダプタドライバ14c内の基本制御モジュール141内の割り込みハンドラを呼び出す処理も行う。CPU40eは、このような割り込み要因の生成を監視する処理を、一定時間行った後、ステップS401へ処理を戻す。
一方、ステップS403において、ステップS402で取得した単位時間の割り込み回数(I[回/秒])が、ステップS401で読み込んだ上限値(γ[回/秒])以下であった場合、CPU15は、ステップS403からステップS406へ処理を分岐させる。
ステップS406では、CPU15は、割り込み許可の指示を通信アダプタ11に設定する。なお、通信アダプタ11のコントローラ11cは、割り込み許可の指示を、PCIインターフェース制御ユニット112内のレジスタ112bに記録する。
次のステップS407では、CPU15は、一定時間待機し、その後、ステップS401へ処理を戻す。
以上の設定制御処理によれば、対応通信アダプタ11による単位時間当たりの割り込み通知回数(I)が、統計情報生成処理で設定された上限値(γ)を上回っている場合に、通信アダプタ11による割り込みの通知が制限されることとなる。
<<作用効果>>
第3の実施形態でも、第1及び第2の実施形態と同様に、統計情報生成デーモン14bが、対応する通信アダプタ11によるシステム負荷の上限値(δ)と、実測したシステム負荷(α)と、単位時間当たりの割り込み通知回数(β)とに基づいて、対応する通信アダプタドライバ14cに対し、定期的に、単位時間当たりの割り込み通知回数の上限値(γ)を設定する(図7のステップS101〜S106)。
また、この統計情報生成デーモン14bと並行して実行される設定制御モジュール144が、対応する通信アダプタ11について実測した単位時間当たりの割り込み通知回数(I)が上限値(γ)を上回るか否かを、定期的に判別し(ステップS401〜S403)、単位時間当たりの割り込み通知回数(I)が上限値(γ)を上回っている場合に、通信アダプタ11による割り込みに制限を掛ける(ステップS403;はい、S404)。
例えば、前述したように、図9に示す1番のCPU15が、割り込み通知を単位時間当たり20000回受けているとともに(α=20000)、そのCPU15のシステム負荷(使用率)が、60%となっている(β=60)場合において、そのCPU15のシステム負荷の上限値が30%に設定されていた場合(δ=30)、単位時間当たりの割り込み通知回数の上限値(γ)は、10000[回/秒]と見積もられる(ステップS104)。そして、I=20000>γであるため、通信アダプタ11には、割り込み禁止の指示が設定され(ステップS404)、割り込み要因の生成が、(1/γ)秒おきに確認されるようになる(ステップS405)。
そして、図18に示すように、通信アダプタドライバ14cの設定制御モジュール145が割り込み要因を取得する処理(図18の処理X)に要する時間が2μ秒であり、通信アダプタドライバ14cの基本制御モジュール141が1個の割り込み要因について処理を行うのに要する時間の平均が10μ秒であり、通信アダプタドライバ14cが割り込み要因に応じた処理を終えた後で後段処理(図18の処理Y)を行うのに掛かる時間が2μ秒であると仮定する。
すると、1回の割り込み通知で1個の割り込み要因が通信アダプタドライバ14cに引き渡されるとした場合、図9に示す1番のCPU15では、単位時間当たり20000回の割り込み通知があるため、割り込み処理に掛かる時間は、20000×(2+10+2)=280000μ秒となる。なお、割り込み通知1回当たりのCPU15の処理時間は、280000÷20000=14μ秒である。
一方、第3の実施形態により、通信アダプタ11による割り込みが禁止され、通信アダプタドライバ14cによる割り込み要因の取得間隔が、(1/γ)=(1/10000)秒とされた場合、実質的に、割り込み通知間隔が倍に増えるため、1回の割り込み通知により、平均して2個の割り込み要因が、通信アダプタドライバ14cに引き渡されることとなる。従って、図9に示す1番のCPU15では、割り込み処理に掛かる時間は、20000×10+10000×(2+2)=240000μ秒となる。なお、割り込み通知1回当たりのCPU15の処理時間は、240000÷10000=24μ秒である。
従って、第3の実施形態によっても、図9に示す1番のCPU15では、割り込み処理に掛かる時間が、約15%削減される(240000÷280000=0.857)。図19は、CPU15が割り込みに掛ける時間が約15%削減された状態を示すシーケンス図である。
<ユニットに関する説明>
以上に説明した第1乃至第3の実施形態において、通信アダプタ11内のコントローラ11c内の各ユニット111〜13は、何れも、ソフトウエア要素とハードウエア要素とから構成されていても良いし、ハードウエア要素のみで構成されていても良い。
ソフトウエア要素としては、インターフェースプログラム、ドライバプログラム、テーブル、及び、データ、並びに、これらのうちの幾つかを組み合わせたものが、例示できる。これらは、後述のコンピュータ可読媒体に格納されたものであっても良いし、ROM[Read Only Memory]及びLSI[Large Scale Integration]などの記憶装置に固定的に組み込まれたファームウエアであっても良い。
また、ハードウエア要素としては、FPGA[Field Programmable Gate Array]、ASIC[Application Specific Integrated Circuit]、ゲートアレイ、論理ゲートの組み合わせ、信号処理回路、アナログ回路、及び、その他の回路が、例示できる。このうち、論理ゲートには、AND、OR、NOT、NAND、NOR、フリップフロップ、カウンタ回路などが、含まれていてもよい。また、信号処理回路には、信号値の加算、乗算、除算、反転、積和演算、微分、積分などを実行する回路要素が、含まれていてもよい。また、アナログ回路には、増幅、加算、乗算、微分、積分などを実行する回路要素が、含まれていてもよい。
なお、前述した通信アダプタ11内のコントローラ11c内の各ユニット111〜13をそれぞれ構成する要素は、以上に例示したものに限定されず、これらと等価な他の要素であっても良い。
<ソフトウエア及びプログラムに関する説明>
以上に説明した第1乃至第3の実施形態において、コンピュータ10の本体10c内のソフトウエア14a〜14d、及び、前述したソフトウエア要素は、何れも、ソフトウエア部品、手続き型言語による部品、オブジェクト指向ソフトウエア部品、クラス部品、タスクとして管理される部品、プロセスとして管理される部品、関数、属性、プロシジャ(手続き)、サブルーチン(ソフトウエアルーチン)、プログラムコードの断片又は部分、ドライバ、ファームウエア、マイクロコード、コード、コードセグメント、エクストラセグメント、スタックセグメント、プログラム領域、データ領域、データ、データベース、データ構造、フィールド、レコード、テーブル、マトリックステーブル、配列、変数、パラメータなどの要素を、含んでいても良い。
また、前述したコンピュータ10の本体10c内のソフトウエア14a〜14d、及び、前述したソフトウエア要素は、何れも、C言語、C++、Java(米国サンマイクロシステムズ社商標)、ビジュアルベーシック(米国マイクロソフト社商標)、Perl、Ruby、その他の多くのプログラミング言語により記述されたものであっても良い。
また、前述したコンピュータ10の本体10c内のソフトウエア14a〜14d、及び、前述したソフトウエア要素に含まれる命令、コード及びデータは、有線ネットワークカード及び有線ネットワークを通じて、又は、無線カード及び無線ネットワークを通じて、コンピュータ、又は、機械若しくは装置に組み込まれたコンピュータに、送信又はローディングされても良い。
前述した送信又はローディングにおいて、データ信号は、例えば搬送波に組み込まれることにより、有線ネットワーク又は無線ネットワーク上を移動する。但し、データ信号は、前述した搬送波に依らず、いわゆるベースバンド信号のまま転送されても良い。このような搬送波は、電気的、磁気的又は電磁的な形態、光、音響、又は、その他の形態で、送信される。
ここで、有線ネットワーク又は無線ネットワークは、例えば、電話回線、ネットワーク回線、ケーブル(光ケーブル、金属ケーブルを含む)、無線リンク、携帯電話アクセス回線、PHS[Personal Handyphone System]網、無線LAN[Local Area Network]、Bluetooth(ブルートゥース特別利益団体の商標)、車両搭載型無線通信(DSRC[Dedicated Short Range Communication]を含む)、及び、これらのうちの何れかからなるネットワークである。そして、このデータ信号は、命令、コード及びデータを含む情報を、ネットワーク上のノード又は要素に、伝達する。
なお、前述したコンピュータ10の本体10c内のソフトウエア14a〜14d、及び、前述したソフトウエア要素を構成する要素は、以上に例示したものに限定されず、これらと等価な他の要素であっても良い。
<コンピュータ可読媒体に関する説明>
以上に説明した第1乃至第3の実施形態における何れかの機能は、コード化されてコンピュータ可読媒体の記憶領域に格納されていても良い。この場合、その機能を実現するためのプログラムが、このコンピュータ可読媒体を介して、コンピュータ、又は、機械若しくは装置に組み込まれたコンピュータに、提供され得る。コンピュータ、又は、機械若しくは装置に組み込まれたコンピュータは、コンピュータ可読媒体の記憶領域からプログラムを読み出してそのプログラムを実行することによって、その機能を実現することができる。
ここで、コンピュータ可読媒体とは、電気的、磁気的、光学的、化学的、物理的又は機械的な作用によって、プログラム及びデータ等の情報を蓄積するとともに、コンピュータに読み取られ得る状態でその情報を保持する記録媒体をいう。
電気的又は磁気的な作用としては、ヒューズによって構成されるROM[Read Only Memory]上の素子へのデータの書き込みが、例示できる。磁気的又は物理的な作用としては、紙媒体上の潜像へのトナーの現像が、例示できる。なお、紙媒体に記録された情報は、例えば、光学的に読み取ることができる。光学的且つ化学的な作用としては、基盤上での薄膜形成又は凹凸形成が、例示できる。なお、凹凸の形態で記録された情報は、例えば、光学的に読み取ることができる。化学的な作用としては、基板上での酸化還元反応、又は、半導体基板上での酸化膜形成、窒化膜形成、若しくは、フォトレジスト現像が、例示できる。物理的又は機械的な作用としては、エンボスカードへの凹凸形成、又は、紙媒体へのパンチの穿孔が、例示できる。
また、コンピュータ可読媒体の中には、コンピュータ、又は、機械若しくは装置に組み込まれたコンピュータに着脱自在に装着できるものがある。着脱自在なコンピュータ可読媒体としては、DVD(DVD−R、DVD−RW、DVD−ROM、DVD−RAMを含む)、+R/+WR、BD(BD−R、BD−RE、BD−ROMを含む)、CD[Compact Disk](CD−R、CD−RW、CD−ROMを含む)、MO[Magneto Optical]ディスク、その他の光ディスク媒体、フレキシブルディスク(フロッピーディスク(フロッピーは日立製作所社商標)を含む)、その他の磁気ディスク媒体、メモリーカード(コンパクトフラッシュ(米国サンディスク社商標)、スマートメディア(東芝社商標)、SDカード(米国サンディスク社、松下電器産業社、東芝社商標)、メモリースティック(ソニー社商標)、MMC(米国ジーメンス社、米国サンディスク社商標)など)、磁気テープ、及び、その他のテープ媒体、並びに、これらのうちの何れかを内蔵した記憶装置が、例示できる。記憶装置には、DRAM[Dynamic Random Access Memory]又はSRAM[Static Random Access Memory]がさらに内蔵されたものもある。
また、コンピュータ可読媒体の中には、コンピュータ、又は、機械若しくは装置に組み込まれたコンピュータに固定的に装着されたものがある。この種のコンピュータ可読媒体としては、ハードディスク、DRAM、SRAM、ROM、EEPROM[Electronically Erasable and Programmable Read Only Memory]、フラッシュメモリなどが、例示できる。

Claims (6)

  1. 割込みを発生する割込み発生部と、
    前記発生した割込みを受信して、単位時間当たりの割込みの受信数を計数するとともに割込みを通知し、前記計数した単位時間当たりの割込みの受信数が所定値を超える場合には、前記受信した割込みのうち前記所定値を超えた分の割込みについて、前記割込みの通知を遅らせる割込み制御部と、
    前記通知された割込みを処理する割込み処理部と、
    前記割込み処理部が前記通知された割込みを処理する時間の単位時間当たりに占める割合を取得する割合取得部と、
    所定時間ごとに、前記割合取得部により取得された前記割合で所定の割合を除算し、除算結果と前記割込み制御部により計数された前記単位時間当たりの割込みの受信数とを乗算し、乗算結果を前記所定値として設定する所定値設定部を有することを特徴とする情報処理装置。
  2. 前記割込み制御部は、
    前記割込みの通知を遅らせている間に、前記割込み発生部から第1の新たな割込みを受信した場合には、前記通知を遅らせた割込みと前記受信した第1の新たな割込みとを、前記割込み処理部に通知することを特徴とする請求項1記載の情報処理装置。
  3. 前記割込み制御部が、前記通知を遅らせた割込みと前記受信した第1の新たな割込みとを、前記割込み処理部に通知した場合において、
    前記割込み処理部が、前記通知を遅らせた割込みと前記受信した第1の新たな割込みとを処理している間に、前記割込み制御部が、前記割込み発生部から第2の新たな割込みを受信した場合には、前記受信した第2の新たな割込みを前記割込み処理部に通知しないことを特徴とする請求項記載の情報処理装置。
  4. 割込みを発生する割込み発生部が発生した割込みを受信し、単位時間当たりの割込みの受信数を計数するとともに割込みを通知し、前記計数した単位時間当たりの割込みの受信数が所定値を超える場合には、前記受信した割込みのうち前記所定値を超えた分の割込みについて、前記割込みの通知を遅らせる割込み制御部と、
    前記通知された割込みを処理する割込み処理部と、
    前記割込み処理部が前記通知された割込みを処理する時間の単位時間当たりに占める割合を取得する割合取得部と、
    所定時間ごとに、前記割合取得部により取得された前記割合で所定の割合を除算し、除算結果と前記割込み制御部により計数された前記単位時間当たりの割込みの受信数とを乗算し、乗算結果を前記所定値として設定する所定値設定部を有することを特徴とする割込み制御装置。
  5. 通知された割込みを処理する割込み処理回路に接続される割込み制御回路において、
    割込みを発生する割込み発生回路が発生した割込みを受信し、単位時間当たりの割込みの受信数を計数するとともに割込みを通知し、前記計数した単位時間当たりの割込みの受信数が所定値を超える場合には、前記受信した割込みのうち前記所定値を超えた分の割込みについて、前記割込みの通知を遅らせることと、
    所定時間ごとに、前記割込み処理回路が前記通知された割込みを処理する時間の単位時間当たりに占める割合を取得し、取得された前記割合で所定の割合を除算し、除算結果と前記単位時間当たりの割込みの受信数とを乗算し、乗算結果を前記所定値として設定することを特徴とする割込み制御回路。
  6. 割込み発生部と割り込み制御部と割込み処理部と割合取得部と所定値設定部を有する情報処理装置の割込み制御方法において、
    前記割込み発生部が、割込みを発生するステップと、
    前記割込み制御部が、前記発生した割込みを受信して、単位時間当たりの割込みの受信数を計数するステップと、
    前記割込み制御部が、前記計数した単位時間当たりの割込みの受信数が所定値以下の場合には、割込みを通知するとともに、前記割込み制御部が、前記計数した単位時間当たりの割込みの受信数が所定値を超える場合には、前記受信した割込みのうち前記所定値を超えた分の割込みについて、前記割込みの通知を遅らせるステップと、
    前記割込み処理部が、前記通知された割込みを処理するステップと、
    割合取得部が、前記割込み処理部が前記通知された割込みを処理する時間の単位時間当たりに占める割合を取得するステップと、
    前記所定値設定部が、所定時間ごとに、前記割合取得部により取得された前記割合で所定の割合を除算し、除算結果と前記割込み制御部により計数された前記単位時間当たりの割込みの受信数とを乗算し、乗算結果を前記所定値として設定するステップを有することを特徴とする割込み制御方法。
JP2010505174A 2008-03-31 2008-03-31 情報処理装置、割込み制御装置、割込み制御回路及び割込み制御方法 Expired - Fee Related JP5099215B2 (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2008/056377 WO2009122514A1 (ja) 2008-03-31 2008-03-31 情報処理装置、割込み制御装置、割込み制御回路、割込み制御方法、及び、割込み制御プログラム

Publications (2)

Publication Number Publication Date
JPWO2009122514A1 JPWO2009122514A1 (ja) 2011-07-28
JP5099215B2 true JP5099215B2 (ja) 2012-12-19

Family

ID=41134935

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2010505174A Expired - Fee Related JP5099215B2 (ja) 2008-03-31 2008-03-31 情報処理装置、割込み制御装置、割込み制御回路及び割込み制御方法

Country Status (3)

Country Link
US (1) US8386683B2 (ja)
JP (1) JP5099215B2 (ja)
WO (1) WO2009122514A1 (ja)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP2166457B1 (en) * 2008-09-12 2014-04-23 TELEFONAKTIEBOLAGET LM ERICSSON (publ) Interrupt controller and methods of operation
US8478924B2 (en) * 2009-04-24 2013-07-02 Vmware, Inc. Interrupt coalescing for outstanding input/output completions
US9164935B2 (en) 2013-01-04 2015-10-20 International Business Machines Corporation Determining when to throttle interrupts to limit interrupt processing to an interrupt processing time period
US10241944B2 (en) * 2017-02-28 2019-03-26 Vmware, Inc. Packet processing efficiency based interrupt rate determination
US11321253B2 (en) * 2020-03-23 2022-05-03 Nxp B.V. Interrupt rate limiter

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001014243A (ja) * 1999-07-01 2001-01-19 Mitsubishi Electric Corp 受信割込処理装置
WO2003063002A1 (fr) * 2002-01-24 2003-07-31 Fujitsu Limited Ordinateur permettant de determiner dynamiquement un delai d'interruption
JP2007199887A (ja) * 2006-01-25 2007-08-09 Fujitsu Ltd 割込み制御装置及び割込み制御方法

Family Cites Families (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS5247648A (en) 1975-10-15 1977-04-15 Hitachi Ltd Interruption control circuit
JPS53145536A (en) * 1977-05-25 1978-12-18 Hitachi Ltd Interruption process system
US5542076A (en) * 1991-06-14 1996-07-30 Digital Equipment Corporation Method and apparatus for adaptive interrupt servicing in data processing system
US5659758A (en) * 1995-07-07 1997-08-19 Sun Microsystems, Inc. Interrupt modular for receiving bursty high speed network traffic
US5943479A (en) * 1997-01-02 1999-08-24 Digital Equipment Corporation Method for reducing the rate of interrupts in a high speed I/O controller
US5905913A (en) * 1997-04-24 1999-05-18 International Business Machines Corporation System for collecting a specified number of peripheral interrupts and transferring the interrupts as a group to the processor
JP3008895B2 (ja) 1997-06-26 2000-02-14 日本電気株式会社 マルチプロセッサの負荷の均一化装置
US6615305B1 (en) * 1998-08-27 2003-09-02 Intel Corporation Interrupt pacing in data transfer unit
US6195725B1 (en) * 1998-12-14 2001-02-27 Intel Corporation Dynamically varying interrupt bundle size
US6351785B1 (en) * 1999-01-26 2002-02-26 3Com Corporation Interrupt optimization using varying quantity threshold
JP3389920B2 (ja) 2000-07-10 2003-03-24 日本電気株式会社 ディスクアレイ装置およびディスクアレイ装置の割り込み実行方法
US6988156B2 (en) * 2002-04-18 2006-01-17 Sun Microsystems, Inc. System and method for dynamically tuning interrupt coalescing parameters
JP2004015497A (ja) * 2002-06-07 2004-01-15 Canon Inc 複合機におけるネットワーク受信制限システム
US7054972B2 (en) * 2002-12-13 2006-05-30 Lsi Logic Corporation Apparatus and method for dynamically enabling and disabling interrupt coalescing in data processing system
US7065598B2 (en) * 2002-12-20 2006-06-20 Intel Corporation Method, system, and article of manufacture for adjusting interrupt levels
US7120717B2 (en) * 2004-02-13 2006-10-10 Hewlett-Packard Development Company, L.P. Method and apparatus for controlling interrupt storms
US20060064529A1 (en) * 2004-09-23 2006-03-23 International Business Machines Corporation Method and system for controlling peripheral adapter interrupt frequency by transferring processor load information to the peripheral adapter
US7634589B2 (en) * 2004-09-23 2009-12-15 International Business Machines Corporation Method for controlling peripheral adapter interrupt frequency by estimating processor load in the peripheral adapter
US8478924B2 (en) * 2009-04-24 2013-07-02 Vmware, Inc. Interrupt coalescing for outstanding input/output completions

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001014243A (ja) * 1999-07-01 2001-01-19 Mitsubishi Electric Corp 受信割込処理装置
WO2003063002A1 (fr) * 2002-01-24 2003-07-31 Fujitsu Limited Ordinateur permettant de determiner dynamiquement un delai d'interruption
JP2007199887A (ja) * 2006-01-25 2007-08-09 Fujitsu Ltd 割込み制御装置及び割込み制御方法

Also Published As

Publication number Publication date
JPWO2009122514A1 (ja) 2011-07-28
US20110016246A1 (en) 2011-01-20
US8386683B2 (en) 2013-02-26
WO2009122514A1 (ja) 2009-10-08

Similar Documents

Publication Publication Date Title
CN103460189B (zh) 用于管理处理器的功率消耗状态的技术
JP5099215B2 (ja) 情報処理装置、割込み制御装置、割込み制御回路及び割込み制御方法
US7606958B2 (en) Interrupt control method, interrupt control apparatus and interrupt control medium
JP4618263B2 (ja) ソフトウェア挙動監視装置及びソフトウェア挙動監視システム
CN101702688B (zh) 一种数据包收发方法
DE112006001352T5 (de) Verfahren zum Verhindern einer Fehlerausbreitung in einer PCI-/PCI-X-/PCI Express-Verbindung
WO2017056725A1 (ja) 車載制御装置
JP2018508886A (ja) マルチプロセッサシステムにおける揮発性メモリ保守イベントのスケジューリング
TWI639921B (zh) 指令處理方法及使用所述方法的儲存控制器
CN116149559A (zh) 队列处理方法、装置、服务器、电子设备和存储介质
WO2022213598A1 (zh) 一种数据处理方法、装置及电子设备和存储介质
WO2013042202A1 (ja) 割込監視装置、およびコンピュータシステム
US7689991B2 (en) Bus management techniques
CN111475432B (zh) 一种从机启动控制装置、单总线系统及其控制方法
WO2012081085A1 (ja) 割込み要因管理装置及び割込み処理システム
US11221875B2 (en) Cooperative scheduling of virtual machines
JP2018508884A (ja) 揮発性メモリ保守イベントのカーネルスケジューリングを提供するためのシステムおよび方法
US9575860B2 (en) Apparatus and a method for memory testing by a programmable circuit in a safety critical system
US20110022995A1 (en) Circuit design information generating equipment, function execution system, and memory medium storing program
JP2010152645A (ja) シミュレーション支援プログラム、シミュレーション装置、およびシミュレーション支援方法
CN111433738A (zh) 控制器事件队列
JP2009187474A (ja) 半導体装置、携帯可能な電子装置、自己診断方法、自己診断プログラム
CN103713962A (zh) 一种检测数据链表方法及电子设备
CN101299197A (zh) 一种增删任务的方法和单元
CN112286657A (zh) 电子设备和中断处理方法

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20120522

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120723

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20120828

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20120910

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20151005

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees