JPWO2003063002A1 - 割込み遅延を動的に決定する計算機 - Google Patents
割込み遅延を動的に決定する計算機 Download PDFInfo
- Publication number
- JPWO2003063002A1 JPWO2003063002A1 JP2003562797A JP2003562797A JPWO2003063002A1 JP WO2003063002 A1 JPWO2003063002 A1 JP WO2003063002A1 JP 2003562797 A JP2003562797 A JP 2003562797A JP 2003562797 A JP2003562797 A JP 2003562797A JP WO2003063002 A1 JPWO2003063002 A1 JP WO2003063002A1
- Authority
- JP
- Japan
- Prior art keywords
- interrupt
- processor
- delay
- interrupt request
- factor
- 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.)
- Granted
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/20—Handling requests for interconnection or transfer for access to input/output bus
- G06F13/24—Handling requests for interconnection or transfer for access to input/output bus using interrupt
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4812—Task 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)
Abstract
Description
本発明は計算機システムにおける割込み制御方式に係り、更に詳しくはプロセッサの負荷状態に応じて、例えば外部から割込み事象が入力されてから、計算機システム内の割込み要求出力部がプロセッサに割込み要求を出力するまでの遅延時間を動的に決定する計算機システムに関する。
背景技術
計算機システムに対して、例えば外部からプロセッサによる割込み処理が必要となる割込み事象が入力されると、例えばその割込み事象を受取った入出力(I/O)デバイスから割込み(要求)信号がプロセッサに対して出力され、プロセッサによって対応する割込み処理が実行される。例えばI/Oデバイスがネットワークインタフェースである場合には、パケットなどの通信データが到着した時点で、I/Oデバイスからプロセッサに対して割込み信号が出力される。
図16は本発明が対象とする計算機システムの構成ブロック図である。同図において計算機システムはプロセッサ50、メインメモリ51、I/Oバスブリッジ53、複数のI/Oデバイス54,55によって構成されている。
図16においてI/Oバスブリッジ53はプロセッサ50、メインメモリ51、I/Oバス52を接続する機構であり、プロセッサ50からメインメモリ51、I/Oバス52に対するアクセス機能を提供するものである。I/Oデバイス54,55はI/Oバス52に接続され、ネットワークやディスクなど様々なデバイスと計算機システムとの間のインタフェースとなる。
例えばネットワークインタフェースの場合には、通信データがI/Oデバイスに到着した時点でプロセッサ50に対して割込み(要求)信号が出力され、この信号に対応してプロセッサ50はI/Oデバイス54の内部の、例えば割込み要因レジスタの内容を検査することになる。
なおここでは現在パソコンの高速バスの主流として用いられているPCI(ペリフェラル・コンポーネント・インタコネクト)方式のバス、およびPCIバスデバイスを例として従来の技術について記述するが、本発明はどのような類似したシステムにも適用可能である。
図16のようなシステムにおいて、I/Oデバイスがプロセッサに対して割込み(要求)信号を出すタイミングやその頻度は、システムの性能に大きな影響を与える。例えばI/Oデバイスがギガビットイーサネットに対応するインタフェースである場合には、送受信ともに125MB/secの転送性能が実現されるが、パケットの最小の長さは60バイト程度であり、パケットを受信するたびに受信割込みがプロセッサに通知されると、0.5μsに1回の割合でプロセッサへの割込みが行われる。
図17はこのような場合における割込み処理の従来例の説明図である。同図において、例えば割込み事象1が外部から計算機システムに与えられ、直ちにプロセッサによって割込み処理が行われ、その後割込み事象kが外部から与えられ、また直ちにプロセッサによって割込み事象が行われる。
プロセッサによる割込み処理にあたっては、現在の処理状態の退避や復旧、割込み要因の特定など少なくも一定の処理負荷が必要となる。割込みが高頻度となり、割込み間隔が短くなると、プロセッサの割込み処理負荷が増大し、システムの性能を低下させる可能性がある。
このように高頻度で割込みが発生することによってプロセッサの負荷が増大することを避けるため、インターラプト・コーレシングという従来技術が用いられている。インターラプト・コーレシングでは、割込みを発生すべき事象、すなわち割込み事象がおきてから実際にプロセッサに割込み要求を行うまでの時間を、一定の条件によって遅延させる処理が行われる。例えば複数の割込み事象がまとめられて割込むため、現在の処理状態の退避や復旧、割込み要因の特定などの処理負荷を1回にまとめることができ、プロセッサの処理負荷を軽減させることができる。
図18はこのようなインターラプト・コーレシングの説明図である。同図においては、割込み事象1がおきてから割込み事象Kがおきるまでの複数の割込みがまとめられて、I/Oデバイスからプロセッサに対して割込みの要求が与えられている。
インターラプト・コーレシングにおける割込み要求までの代表的な条件として“一定の時間が経過する”、あるいは“一定の回数の割込み事象がおこる”などの条件が用いられる。例えばネットワークインタフェースの場合には、パケットを受信してから一定の時間が経過した後に割込み要求がなされる。この方法を用いることによって、割込みを遅延させている間に合計K個のパケットを受信した場合には、プロセッサに割込む回数を1/Kに減らすことができる。割込み事象の回数についての条件を用いても、同様に割込み回数を減少させることができる。
次に従来におけるI/Oデバイス内の割込み要求回路の装置構成について説明する。図19はその構成ブロック図である。同図において例えばI/Oデバイス54の内部には、割込み要求回路58が設けられ、更にその内部に割込み要因レジスタ59が備えられている。
割込み要求回路58は、例えば外部からのパケットの到着によって割込み事象が発生した時に、I/Oバス52、I/Oバスブリッジ53を介してプロセッサ50に割込み(要求)信号を出力するものであり、それと同時に割込み要因レジスタ59には割込み事象の内容を判別するための情報が設定される。
割込み要因レジスタ59の内容については、I/Oバス52を介してプロセッサ50から読み出し、書込みを行うことが可能であり、プロセッサ50は割込み要因レジスタ59の内容を検査することによって割込み事象の内容を識別する。またプロセッサ50は割込み要因レジスタ59の内容をクリアすることによって、割込み要求回路58に対して割込み処理の終了を通知することができる。これに対応して割込み要求回路58は割込み信号をゲネートし、割込みに対応する処理は全て終了する。
図20は図19における割込み処理の流れの説明図である。割込み事象がI/Oデバイスに与えられると直ちにプロセッサに対して割込み信号が出力され、プロセッサは▲1▼で割込み要因レジスタ59の内容によって割込み要因を検査して割込み処理を開始し、▲2▼で割込み処理を基本的に終了して割込み要因レジスタ59の内容をクリアし、例えば割込み処理用の作業領域の開放などの処理を行って、▲3▼で割込み処理を終了する。
図21は従来におけるI/Oデバイスの他の構成例のブロック図であり、図22は図21における割込み処理の流れの説明図である。図21において、割込み要求回路58の内部にはあらかじめ定められた固定の遅延条件を格納している条件レジスタ61が備えられており、割込み遅延回路62は条件レジスタ61の内容に従って、割込み事象が発生してからプロセッサに対して割込み信号を出力するまでの遅延時間を決定する。条件レジスタ61の格納内容は前述の一定の時間でもよく、一定の回数の割込み事象でもよいが、割込み遅延回路62はその内容に対応して割込み事象が発生してからの遅延時間を決定し、割込み信号を出力する。
図22においてI/Oデバイスに割込み事象が与えられてから固定の遅延時間の後にプロセッサに対する割込み信号が出力され、その後図20におけると同様に、▲1▼で割込み要因の検査、▲2▼で割込み要因のクリアが行われ、▲3▼で割込み処理が終了する。
以上で説明した従来技術としてのインターラプト・コーレシングについては3つの問題点がある。第1の問題点は、割込み事象が発生してから常に一定の条件に従って割込みを遅延させるために、割込み事象が発生してからの応答が常に遅くなることである。例えばネットワークインタフェイスの場合に、パケットを1個しか受信しなくても、実際にパケットを受信してから一定時間を経過しないと割込み処理が実行されないことになる。
第2の問題点は、プロセッサの負荷状態が考慮されないために、プロセッサの負荷が小さい時には直ちに割込みを行い、プロセッサの負荷が大きい時には割込みを遅延させるというような適応性のある処理ができないことである。
第3の問題点は、例えばI/Oデバイスにはカードなどが挿入されて使用されることが多いが、そのようなカードとプロセッサの間の割込み遅延のための最適条件がカードなどによって異なるにもかかわらず、従来技術では固定の遅延条件が用いられており、調整ができないということである。
本発明の目的は、プロセッサの性能や負荷の状態、および割込み事象の発生頻度などに応じて、割込み事象の発生から実際にI/Oデバイスがプロセッサに対して割込み要求信号を出力するまでの遅延条件を動的に決定できる計算機を提供することである。
発明の開示
図1は本発明の原理構成ブロック図である。同図において割込み要求出力部1は、図16のI/Oデバイスに対応し、割込み事象の発生に対応してプロセッサ2に対して割込み要求を出力するものである。
図1において割込み要求出力部1は遅延条件決定手段3を備える。遅延条件決定手段3は、割込み事象が発生してから割込み要求出力部1がプロセッサ2に対して割込み要求を出力するまでの遅延条件、例えば遅延時間を動的に決定するものである。
発明の実施の形態においては、割込み要求出力部1は遅延条件決定要因出力手段4を更に備える。遅延条件決定要因出力手段4は、割込み事象が発生してからプロセッサに割込み要求を出力するまでの遅延条件の決定要因を求めるものであり、遅延条件決定手段3は決定された要因に対応して割込み要求を出力するまでの条件を決定する。
この場合、割込み要求出力部1が、発生した割込み事象に対応した割込み要因を記憶する割込み要因記憶手段を更に備え、遅延条件決定要因出力手段4が割込み要求が出力されてからプロセッサによって割込み要因記憶手段の記憶内容が読み出されるまでの時間を、次回以後の割込みに対応する遅延条件決定要因として求めることも、また割込み要求が出力されてからプロセッサによって割込み要因記憶手段の記憶内容がクリアされるまでの時間を、次回以後の割込みに対応する遅延条件決定要因として求めることも可能である。
実施の形態においては、遅延条件決定要因出力手段4は割込み要求が出力されてからプロセッサによって割込み要因記憶手段の記憶内容が読み出されるまでの時間、またはその記憶内容がクリアされるまでの時間を複数回測定し、その複数回の測定値に基づいて、次回以後の割込みに対応する遅延条件要因を求めることもできる。
更に実施の形態においては、遅延条件決定手段3は遅延条件決定要因出力手段4によって求められた決定要因としての時間にあらかじめ定められた係数を乗算して、遅延条件としての遅延時間を決定することもできる。
また本発明の計算機は割込み周期設定手段と、割込み時点決定手段とを備える。割込み周期設定手段は、割込み要求出力部1が発生した割込み事象に対応してプロセッサ2に割込み要求を出力する周期を設定し、割込み時点決定手段は設定された割込み周期に基づいて、割込み事象に対応する割込み要求を出力する時点を決定する。
発明の実施の形態においては、割込み要求出力部1は発生した割込み事象に対応する割込み要因を記憶する割込み要因記憶手段を更に備え、周期設定手段が割込み要求が出力されてからプロセッサによって割込み要因記憶手段の記憶内容が読み出されるまでの時間、あるいは割込み要因記憶手段の記憶内容がクリアされるまでの時間に基づいて、割込み周期を設定することもできる。
実施の形態においては、割込み周期設定手段はプロセッサ2からの指示に対応して割込み周期を設定することもできる。
更に本発明の計算機はプロセッサ2に対する割込み要求の出力部1を備え、割込み要求出力部1は、プロセッサによって動的に決定され、割込み事象が発生してからプロセッサに割込み要求を出力するまでの遅延条件を記憶する遅延条件記憶手段、例えば条件レジスタを備える。
次に本発明のプログラムは、プロセッサに対する割込み要求の出力部を備える計算機によって使用されるものであり、割込み事象が発生してから割込み要求出力部がプロセッサに割込み要求を出力するまでの遅延の条件を動的に決定する手順と、決定された遅延条件を割込み要求出力部内のレジスタに格納する手順とを計算機に実行させる。
また本発明のプログラムは、割込み要求出力部がプロセッサに対して割込み要求を出力した時点でタイマを起動する手順と、割込み要求に対応した割込み要因をプロセッサが読み出した時点、またはその割込み要因をプロセッサがクリアした時点でタイマを停止させ、タイマの動作時間を読み取る手順と、読み取った時間に基づいて次回以後の割込み事象の発生から割込み要求出力部が割込み要求を出力するまでの遅延時間を決定する手順とを計算機に実行させる。
以上のように本発明によれば、割込み事象が発生してから割込み要求出力部がプロセッサに割込み要求を出力するまでの遅延の条件が動的に決定される。
発明を実施するための最良の形態
図2は本発明の第1の実施形態における割込み要求回路の構成ブロック図であり、図3は図2における処理の流れの説明図である。
図2において条件レジスタ13は、図21の従来例における条件レジスタ61と同様に、割込み事象が発生してからI/Oデバイス10内の割込み遅延回路12がI/Oバス15を介してプロセッサに割込み(要求)信号を出力するまでの遅延条件を格納するものであるが、この遅延条件はプロセッサ側でプロセッサの負荷の状態に応じて動的に決定され、その条件が条件レジスタ13に格納される。
すなわちプロセッサが割込みの遅延条件、すなわち割込み事象が発生してから割込み遅延回路12が割込み信号を出力するまでの遅延時間、またはその間に発生する割込み事象の数をI/Oデバイス11側に明示的に通知し、I/Oデバイス11はこの条件に基づいて割込みを遅延させることになる。
プロセッサ側での割込み遅延条件の決定は、その時々のプロセッサの負荷状態などに応じて動的に実行され、例えばある時間間隔で条件レジスタ13の内容が書き換えられることによって、プロセッサの負荷状態に適応した割込み遅延を動的に実現することができる。プロセッサ側で負荷状態を計測する方法としては任意の公知の技術を用いることができ、その詳細な説明を省略する。
図3の処理の流れにおいて、▲1▼でプロセッサ側から条件レジスタ13に対する割込み遅延条件の設定が行われ、I/Oデバイス側ではその条件、例えば遅延時間の指定に応じて、例えば複数の割込み事象が遅延時間の間に発生しても、最初の割込み事象が発生してから指定された時間だけの遅延の後に、割込み遅延回路12から割込み信号がプロセッサに対して出力される。プロセッサは▲2▼で割込み要因レジスタ14の内容を読み込むことによって割込み要因を検査し、割込み処理が基本的に終了した時点で、▲3▼で割込み要因レジスタ14に格納されている割込み要因をクリアし、▲4▼で全ての割込み処理を終了する。
図4は第1の実施形態におけるプロセッサによる割込み遅延条件設定処理のフローチャートである。同図において、プロセッサ側でまずステップS1で割込み遅延の条件が動的に決定され、ステップS2でその遅延条件はI/Oデバイス11内の条件レジスタ13に対して設定される。これによってI/Oデバイス11側では、割込み事象が発生した後に、設定された割込み遅延条件に対応してステップS3で割込み要求信号を出力し、プロセッサ側でステップS4で割込み処理が実行される。
図5は第1の実施形態における割込み遅延回路12の構成例のブロック図である。ここでは条件レジスタ13に割込み遅延条件として、割込み遅延時間が設定されるものとする。
図5において割込み事象の発生に対応して、カウンタ16に条件レジスタ13に設定されている割込み遅延時間の値が与えられ、例えばカウンタのカウントダウンが開始される。カウンタのタイムアウトの時点で、タイムアウト信号がアンドゲート17の片方の入力端子に与えられる。アンドゲート17の他方の入力端子には割込み事象の発生に対応する割込み(要求)信号が入力されており、アンドゲート17から割込み(要求)信号がI/Oバス15を介してプロセッサに出力される。
図6は割込み遅延回路12がソフトウェアによって実現される場合の割込み遅延処理のフローチャートの例である。同図において、割込み事象の発生を待って条件レジスタ13に設定されている割込み遅延時間の値がステップS5でタイマにセットされ、ステップS6でタイマ値がデクリメントされ、ステップS7でタイマのタイムアウトがおこったか否かが判定され、まだおこっていない場合にはステップS6以降の処理が繰り返される。タイムアウトがおこった場合にはステップS8で割込み要因があるか否かが判定され、ない場合にはステップS5以降の処理が繰り返され、割込み要因がある場合にはステップS9で割込み処理が実行される。
図7は第2の実施形態における割込み要求回路の構成ブロック図を示し、図8は図7における処理の流れを示す。第2の実施形態では、第1の実施形態と異なり、I/Oデバイス側で割込み遅延条件、例えば割込み遅延時間が動的に決定される。
前述のように、割込み要求回路11内の割込み要因レジスタ14には、発生した割り込み事象に対応する要因が格納され、プロセッサはI/Oバス15を介してその内容を読み込むことによって割込み要因を検査し、割込み処理が基本的に終了した時点でその割込み要因をクリアする。
第2の実施形態では、ある時点で発生した割込み事象に対する割込み信号が出力されてから、例えば割込み要因レジスタ14に格納されている割込み要因がクリアされるまでの時間を測定することによって、プロセッサの負荷状態を推定し、その推定時間に基づいて次に発生する割込み事象に対する割込み遅延時間を決定する。
図7において、例えば割込み事象が発生して直ちに割り込み信号が出力された時点で割込み要因レジスタ14に割込み要因が格納されると共に、タイマ21が起動され、割込み要因レジスタ14の内容がプロセッサによってクリアされるまでの時間が測定される。そしてその時間は遅延時間決定回路20に与えられ、その次の割込み事象の発生に対応する割込み遅延時間の決定に用いられる。
この遅延時間の決定においては、タイマ21の測定値をそのまま用いることもできるが、この測定値にある係数、例えば2,4,・・・,1/2,1/4,・・・などの係数を乗算することによって、遅延時間を決定することもできる。実験の結果、あるシステムではタイマの測定値をそのまま用いるのではなく、例えば4を乗算することによって全体的な処理性能が向上することが判明した。
図8の処理の流れにおいて、まずある時点で割込み事象が発生すると、例えば直ちにI/Oデバイスは割込み信号をI/Oバス15を介してプロセッサに対して出力するとともに時間測定▲1▼を開始する。プロセッサは▲2▼で割込み要因レジスタ14に格納された割込み要因を検査し、割込み処理を基本的に終了した時点の▲3▼で割込み要因をクリアする。I/Oデバイス側では割込み信号を出力した時点から割込み要因のクリア▲3▼が行われるまでの時間の測定値を次の割込み事象の発生に対応する割込み遅延時間の決定に使用する。すなわち次の割込み事象の発生から、決定された遅延時間だけ遅れて割込み信号が出力されるとともに、さらに次の割込み事象の発生に備えて、再び時間測定が行われる。
図9は第2の実施の形態において、タイマ21が割込み信号の出力からプロセッサによって割込み要因がクリアされるまでの時間でなく、割込み要因検査が行われるまでの時間を測定し、その時間に基づいて次の割込みに対する割込み遅延時間を決定する場合の処理の流れの説明図である。
同図において、図8におけると同様に、例えば割込み事象が発生した時点で直ちに割込み信号がプロセッサに対して出力され、▲1▼でタイマ21による時間測定が開始される。プロセッサ側では▲2▼で割込み要因レジスタ14の内容を検査し、▲3▼でその要因をクリアし、▲4▼で割込み処理を終了するが、▲1▼の時間測定は割込み要因検査の時点まで続けられ、その測定結果が次の割込み事象に対応する割込み遅延時間の決定に用いられる。
すなわち図9では、タイマ21によって測定される時間は、割り込み(要求)信号を受取ってからプロセッサが実際に割込み処理に入るまでの時間を反映し、この時間もプロセッサの負荷状態に対応するものである。
このように第2の実施形態では、プロセッサが割込み遅延条件を指定するのではなく、I/Oデバイス側が実質的にプロセッサの処理負荷状態を検出し、割込み遅延条件を決定する。すなわちI/Oデバイスが、プロセッサに対して割込み要求を行ってからプロセッサが対応する割込み処理を開始、または終了するまでの時間を計測し、この時間に基づいて割込み遅延条件を決定する。この実施形態ではプロセッサは遅延条件を設定する必要がないのが大きな特徴である。
図10は第2の実施形態、すなわち図7におけるタイマと遅延時間決定回路の詳細構成ブロック図である。同図においてタイマ21は、割込み事象が発生し、割込み要因レジスタ14に割込み要因が格納され、プロセッサに対して割込み遅延回路12から割込み信号が出力された時点で起動され、カウントを開始する。
図8においては、プロセッサによって割込み要因レジスタ14の内容がクリア、例えばデータとして0が書き込まれた時点で、このデータのライト信号に対応してタイマ21に対してストップ信号が入力され、タイマ21から測定値が乗算器26に出力される。乗算器26に対しては、係数器25からタイマの測定値に乗算すべき係数が出力され、乗算器26による乗算結果が割込み遅延回路12に与えられる。なお割込み遅延回路の構成は第1の実施形態における図5と同じである。
図9においてはタイマ21がカウントを開始した後にプロセッサが割込み要因レジスタ14の内容を読み出す、すなわちリード信号を出力するまでの時間が測定され、図10と一部異なって、このリード信号が入力された時点でタイマ21にストップ信号が与えられる。タイマの測定値は、前述と同様に乗算器26に与えられ、係数器25の出力する係数が乗算されて割込み遅延回路12に出力される。
図11は図8に対応する割込み遅延時間決定処理のフローチャートである。同図おいて、I/Oデバイス側でステップS10でプロセッサに対して割込み要求信号が出力されると共に、図7のタイマ21が起動される。
プロセッサ側では、ステップS11でこの割込み要求が受取られ、その時の負荷処理状態に応じた時間の経過後に、ステップS12で割込み要因レジスタ14の内容が読み出される。そしてプロセッサはステップS13で割り込み処理を実行し、ステップS14で割り込み要因レジスタの内容をクリアする。
I/Oデバイス側では、このプロセッサによる割込み要因レジスタのクリアを検出してステップS15でタイマをストップし、ステップS16でタイマの値に基づいて遅延時間を決定する。
図12は図9に対応する遅延時間決定処理のフローチャートである。図11と比較すると、I/Oデバイス側でプロセッサによるステップS12の処理、すなわち割り込み要因の読み出しに対応してステップS17でタイマをストップし、ステップS18で割込み遅延時間の決定を行う点だけが異なっている。
図13は、第2の実施形態において割込み信号が出力されてからプロセッサによって割込み要因レジスタ14の内容が読み出されるか、またはクリアされるまでの時間を複数回測定し、その複数回の測定結果に基づいて次の割込みに対応する割込み遅延条件を設定する遅延時間決定回路の構成例のブロック図である。
同図においてタイマ21に対しては、図10におけると同様にプロセッサによって割込み要因レジスタ14の内容がクリアされるか、あるいは読み出された時点でストップ信号が出力される。タイマ21はまず第1の割込み事象の発生に対応する割り込み信号出力時点からの時間をカウントしており、その測定値はレジスタ31aに格納される。この測定値格納は、タイマ21からタイマ値確定信号がカウンタ30に与えられ、この信号に対応してカウンタ30のカウント値がインクリメントされ、カウンタ30の出力が書き込みイネーブル信号としてレジスタ31aに与えられることによって実行される。
2番目の割込み事象の発生に対応する割込み信号出力からプロセッサによって割込み要因レジスタ14の内容が読み出されるか、あるいはクリアされるまでの時間がタイマ21によって測定され、そのカウント値はカウンタ30の出力する書き込みイネーブル信号がレジスタ31bに与えられることによってレジスタ31bに格納される。
以下同様に全部でn個のカウント値がそれぞれのレジスタに格納された後に、それらのカウント値が平均値算出回路32に与えられ、算出された平均値が図10の乗算器26に出力されることによって、複数回の割込み事象に対応する測定値が求められ、その次の割込み事象の発生に対応する割込み遅延時間の決定に用いられる。
図14は第3の実施形態における割込み要求回路11の構成ブロック図であり、図15は図14における処理の流れの説明図である。第3の実施形態では、I/Oデバイス10はプロセッサに対して周期的に割込み(要求)信号を出力するものとし、割込み事象が発生しても次の割込み周期のタイミングまでの割込みの遅延が行われる。割込み事象の発生時点は周期内にランダムに分散するため、割込み事象が発生してから実際に割込み信号が出力されるまでの遅延時間は平均して周期の半分となる。
図14において周期タイマ35はこの割込み周期を発生し、遅延時間決定回路34はこの周期に同期するように遅延時間を決定し、割込み遅延回路12はこの周期のタイミングに同期する時点で割込み信号をプロセッサに対して出力することになる。
図15において、最初の割込み事象の発生に対応して次の固定周期のタイミングでプロセッサに対する割込み信号が出力され、▲1▼でプロセッサによって割込み要因が検査され、▲2▼で割込み要因クリアされ、▲3▼で割込み処理が終了する。
次に発生した割り込み事象に対しても、周期によって決定されるタイミングまで割込み信号の出力が遅延される。この間に更に他の割込み事象が発生しても、これらの割込み事象に対してはまとめて割込み(要求)信号が出力されることになる。
周期タイマ35が発生する周期としては、第1に固定とする場合に、第2に第1の実施形態におけると同様に、プロセッサが負荷状態に応じて指定する場合、第3に第2の実施形態におけると同様に、I/Oデバイスが、プロセッサが割込み要因レジスタ14の内容を読み出すまで、あるいはクリアするまでの時間の測定値に基づいて決定する場合の3つが考えられる。
なお第3の実施形態のように周期的なタイミングで割込み要求を行う方式はTCP/IP(トランスミッション・コントロール・プロトコル/インターネット・プロトコル)を用いるシステムで有効であり、UDP/IP(ユーザ・データグラム・プロトコル/インターネット・プロトコル)を用いるシステムでは第2の実施形態に対する図7で説明したようにタイマの測定値にある係数を乗算する方式が有効であることが実験によって判明した。
また以上の説明では、割込み遅延条件として遅延時間を用いる場合を主として発明の実施の形態を説明したが、遅延条件として割込み事象の発生回数を用いることも当然可能である。例えば第2の実施形態において、プロセッサが割込み要因を読み出すか、あるいはクリアするまでの時間を測定する代わりに、その間に発生する割り込み事象の数を測定し、その数に基づいて遅延条件を決定することもできる。
以上詳細に説明したように、本発明によれば割込み事象に対応する過去の処理状況から、プロセッサの処理負荷状態を判定し、この結果に対応して適応的に割込み遅延条件を設定することができる。
その結果、プロセッサの負荷が低い状態では割込み事象の発生後直ちに割込むことができ、プロセッサの負荷が高い状態では負荷の度合いに応じて割込みを遅延させることができ、割込み事象の発生から割込み要求出力までの遅延時間を自動的に最適化する効果が得られる。
またI/Oデバイスにカードなどが挿入されて使用されるような場合にも、カードとプロセッサの間の割込み遅延のための最適条件を自動的に調整することが可能となり、割込み処理の性能向上に寄与するところが大きい。
産業上の利用可能性
以上のように本発明の計算機は、割込み事象の発生からプロセッサに割込み要求が与えられるまでの遅延条件がプロセッサの負荷などに応じて適応的に決定されるものであり、本発明は割込み処理を実行することのできる計算機を用いる全ての産業において利用することが可能である。
【図面の簡単な説明】
図1は、本発明の原理構成ブロック図である。
図2は、第1の実施形態における割込み要求回路の構成を示すブロック図である。
図3は、図2における割込み処理の流れを示す図である。
図4は、第1の実施形態におけるプロセッサによる遅延条件設定処理のフローチャートである。
図5は、第1の実施形態における割込み遅延回路の構成を示すブロック図である。
図6は、第1の実施形態における割込み遅延処理のフローチャートである。
図7は、第2の実施形態における割込み要求回路の構成ブロック図である。
図8は、図7における割込み処理の流れを示す図である。
図9は、第2の実施形態において割込み要因読み出しまでの時間に基づいて遅延時間を決定する場合の処理の流れを示す図である。
図10は、第2の実施形態におけるタイマと遅延時間決定回路の構成を示すブロック図である。
図11は、第2の実施形態における割込み遅延時間決定処理のフローチャートの第1の例である。
図12は、第2の実施形態における割込み遅延時間決定処理のフローチャートの第2の例である。
図13は、第2の実施形態において複数の時間測定値から遅延時間を決定する遅延時間決定回路の構成例のブロック図である。
図14は、第3の実施形態における割込み要求回路の構成ブロック図である。
図15は、図14における処理の流れを示す図である。
図16は、計算機システムの構成例を示すブロック図である。
図17は、割込み間隔と割込み処理負荷の関係を説明する図である。
図18は、従来技術としてのインターラプト・コーレシングの処理を説明する図である。
図19は、割込み遅延がない場合の割込み要求回路の従来例の構成ブロック図である。
図20は、図19における処理の流れを示す図である。
図21は、割込み遅延がある場合の割込み要求回路の従来例の構成ブロック図である。
図22は、図21における処理の流れを示す図である。
Claims (15)
- プロセッサに対する割込み要求の出力部を備える計算機において、
前記割込み要求出力部が、プロセッサによって動的に決定され、割込み事象が発生してからプロセッサに割込み要求を出力するまでの遅延の条件を記憶する遅延条件記憶手段を備えることを特徴とする割込み遅延を動的に決定する計算機。 - プロセッサに対する割込み要求の出力部を備える計算機において、
前記割込み要求出力部が、割込み事象が発生してからプロセッサに割込み要求を出力するまでの遅延の条件を動的に決定する遅延条件決定手段を備えることを特徴とする割込み遅延を動的に決定する計算機。 - 前記割込み要求出力部が、割込み事象が発生してからプロセッサに割込み要求を出力するまでの遅延条件の決定要因を求める遅延条件決定要因出力手段を更に備え、
前記遅延条件決定手段が該遅延条件決定要因に対応して、前記割込み要求を出力するまでの遅延条件を決定することを特徴とする請求項2記載の割込み遅延を動的に決定する計算機。 - 前記割込み要求出力部が、前記発生した割込み事象に対応した割込み要因を記憶する割込み要因記憶手段を更に備えると共に、
前記遅延条件決定要因出力手段が、割込み要求が出力されてからプロセッサによって該割込み要因記憶手段の記憶内容が読み出されるまでの時間を、次回以後の割込みに対応する遅延条件決定要因として求めることを特徴とする請求項3記載の割込み遅延を動的に決定する計算機。 - 前記遅延条件決定要因出力手段が、割込み要求が出力されてからプロセッサによって該割込み要因記憶手段の記憶内容が読み出されるまでの時間を複数回測定し、該複数回の測定値に基づいて以後の割り込みに対応する遅延条件決定要因を求めることを特徴とする請求項4記載の割込み遅延を動的に決定する計算機。
- 前記割込み要求出力部が、前記発生した割込み事象に対応した割込み要因を記憶する割込み要因記憶手段を更に備えると共に、
前記遅延条件決定要因出力手段が、割込み要求が出力されてからプロセッサによって該割込み要因記憶手段の記憶内容がクリアされるまでの時間を、次回以後の割込みに対応する遅延条件決定要因として求めることを特徴とする請求項3記載の割込み遅延を動的に決定する計算機。 - 前記遅延条件決定要因出力手段が、割込み要求が出力されてからプロセッサによって該割込み要因記憶手段の記憶内容がクリアされるまでの時間を複数回測定し、該複数回の測定値に基づいて以後の割込みに対する遅延条件決定要因を求めることを特徴とする請求項6記載の割込み遅延を動的に決定する計算機。
- 前記遅延条件決定手段が、前記遅延条件決定要因出力手段によって求められた決定要因としての時間にあらかじめ定められた係数を乗算して遅延条件としての遅延時間を決定することを特徴とする請求項4,5,6または7記載の割込み遅延を動的に決定する計算機。
- プロセッサに対する割込み要求の出力部を備える計算機において、
前記割込み要求出力部が、割込み事象の発生に対応してプロセッサに割込み要求を出力する周期を決定する割込み周期設定手段と、
該設定された割込み周期に基づいて前記割込み事象に対応する割込み要求を出力する時点を決定する割り込み時点決定手段を備えることを特徴とする割込み遅延を動的に決定する計算機。 - 前記割込み要求出力部が、前記発生した割込み事象に対応した割込み要因を記憶する割込み要因記憶手段を更に備えると共に、
前記周期設定手段が、発生した割込み事象に対応する割込み要求が出力されてからプロセッサによって該割込み要因記憶手段の記憶内容が読み出されるまでの時間に基づいて、前記周期を設定することを特徴とする請求項9記載の割込み遅延を動的に決定する計算機。 - 前記割込み要求出力部が、前記発生した割込み事象に対応した割込み要因を記憶する割込み要因記憶手段を更に備えると共に、
前記周期設定手段が、発生した割込み事象に対応する割込み要求が出力されてからプロセッサによって該割込み要因記憶手段の記憶内容がクリアされるまでの時間に基づいて、前記周期を設定することを特徴とする請求項9記載の割込み遅延を動的に決定する計算機。 - 前記割込み周期設定手段が、前記プロセッサからの指示に対応して前記周期を設定することを特徴とする請求項9記載の割込み遅延を動的に決定する計算機。
- プロセッサに対する割込み要求の出力部を備える計算機によって使用されるプログラムにおいて、
割込み事象が発生してから前記割込み要求出力部がプロセッサに割込み要求を出力するまでの遅延の条件を動的に決定する手順と、
該決定された遅延条件を前記割込み要求出力部内のレジスタに格納する手順とを計算機に実行させるためのプログラム。 - プロセッサに対する割込み要求の出力部を備える計算機によって使用されるプログラムにおいて、
前記割込み要求出力部がプロセッサに対して割込み要求を出力した時点でタイマを起動する手順と、
該割込み要求に対応した割込み要因をプロセッサが読み出した時点で該タイマを停止させて、該タイマの動作時間を読み取る手順と、
該読取った時間に基づいて、次回以後の割込み事象の発生から割込み要求出力部が割込み要求を出力するまでの遅延時間を決定する手順とを計算機に実行させるためのプログラム。 - プロセッサに対する割込み要求の出力部を備える計算機によって使用されるプログラムにおいて、
前記割込み要求出力部がプロセッサに対して割込み要求を出力した時点でタイマを起動する手順と、
該割込み要求に対応した割込み要因をプロセッサがクリアした時点で該タイマを停止させて、該タイマの動作時間を読み取る手順と、
該読取った時間に基づいて、次回以後の割込み事象の発生から割込み要求出力部が割込み要求を出力するまでの遅延時間を決定する手順とを計算機に実行させるためのプログラム。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/JP2002/000516 WO2003063002A1 (fr) | 2002-01-24 | 2002-01-24 | Ordinateur permettant de determiner dynamiquement un delai d'interruption |
Related Child Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2008115193A Division JP4653192B2 (ja) | 2008-04-25 | 2008-04-25 | 割込み遅延を動的に決定する計算機 |
Publications (2)
Publication Number | Publication Date |
---|---|
JPWO2003063002A1 true JPWO2003063002A1 (ja) | 2005-05-26 |
JP4219818B2 JP4219818B2 (ja) | 2009-02-04 |
Family
ID=27590527
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2003562797A Expired - Fee Related JP4219818B2 (ja) | 2002-01-24 | 2002-01-24 | 割込み遅延を動的に決定する計算機 |
Country Status (5)
Country | Link |
---|---|
US (1) | US7415561B2 (ja) |
EP (1) | EP1471431B1 (ja) |
JP (1) | JP4219818B2 (ja) |
DE (1) | DE60223177T2 (ja) |
WO (1) | WO2003063002A1 (ja) |
Families Citing this family (31)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP3971715B2 (ja) * | 2003-03-28 | 2007-09-05 | インターナショナル・ビジネス・マシーンズ・コーポレーション | 情報処理装置、割込制御装置、制御方法、及びこれらのプログラム |
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 |
JP2006121667A (ja) * | 2004-09-27 | 2006-05-11 | Matsushita Electric Ind Co Ltd | パケット受信制御装置及びパケット受信制御方法 |
US7103693B2 (en) * | 2004-09-30 | 2006-09-05 | International Business Machines Corporation | Method for applying interrupt coalescing to incoming messages based on message length |
JP2006252015A (ja) * | 2005-03-09 | 2006-09-21 | Nec Engineering Ltd | データ転送制御装置 |
FR2888960B1 (fr) * | 2005-07-19 | 2007-10-12 | Gemplus Sa | Detection d'une faute par perturbation longue |
TWI283977B (en) * | 2005-12-16 | 2007-07-11 | Ind Tech Res Inst | Adaptive interrupts coalescing system with recognizing minimum delay packets |
JP4807502B2 (ja) * | 2006-03-10 | 2011-11-02 | 日本電気株式会社 | I/oブリッジ回路及び割り込み信号制御方法 |
JP2008084043A (ja) * | 2006-09-28 | 2008-04-10 | Fujitsu Ltd | 割り込み処理方法 |
JP4952542B2 (ja) * | 2007-11-28 | 2012-06-13 | 富士通株式会社 | 通信プログラム、通信装置および通信方法 |
JP5099215B2 (ja) * | 2008-03-31 | 2012-12-19 | 富士通株式会社 | 情報処理装置、割込み制御装置、割込み制御回路及び割込み制御方法 |
US10521265B2 (en) * | 2008-09-19 | 2019-12-31 | Microsoft Technology Licensing, Llc | Coalescing periodic timer expiration in guest operating systems in a virtualized environment |
US8612998B2 (en) * | 2010-09-23 | 2013-12-17 | Intel Corporation | Coordinating device and application break events for platform power saving |
US9405347B2 (en) | 2009-02-26 | 2016-08-02 | Microsoft Technology Licensing, Llc | Power-saving operating system for virtual environment |
EP2241953B1 (de) * | 2009-04-17 | 2019-08-28 | Siemens Aktiengesellschaft | Verfahren und Vorrichtung zur Realisierung einer fehlersicheren Zeitfunktion |
JP5267328B2 (ja) * | 2009-05-26 | 2013-08-21 | 富士通セミコンダクター株式会社 | 割り込み通知制御装置および半導体集積回路 |
JP2011180767A (ja) * | 2010-02-26 | 2011-09-15 | Kyocera Mita Corp | 半導体装置 |
JP5829890B2 (ja) * | 2011-11-02 | 2015-12-09 | ルネサスエレクトロニクス株式会社 | 半導体データ処理装置、タイムトリガ通信システム及び通信システム |
JP5804075B2 (ja) * | 2011-11-11 | 2015-11-04 | 富士通株式会社 | 電子計算機及び割り込み制御方法 |
CN103218032B (zh) | 2011-11-29 | 2017-07-14 | 英特尔公司 | 利用相对能量损益平衡时间的功率管理 |
US9218288B2 (en) * | 2012-06-15 | 2015-12-22 | International Business Machines Corporation | Monitoring a value in storage without repeated storage access |
US9075639B1 (en) * | 2012-10-23 | 2015-07-07 | Altera Corporation | Systems and methods for handling interrupts during software design simulation |
US9208113B2 (en) * | 2013-01-15 | 2015-12-08 | Apple Inc. | Deferred inter-processor interrupts |
US9195292B2 (en) * | 2013-06-26 | 2015-11-24 | Intel Corporation | Controlling reduced power states using platform latency tolerance |
US10282326B1 (en) * | 2014-10-29 | 2019-05-07 | Xilinx, Inc. | Active interrupt handler performance monitoring in microprocessors |
CN105718320B (zh) * | 2016-01-18 | 2020-11-06 | 华为技术有限公司 | 一种时钟任务处理方法、装置及设备 |
DE102016212808A1 (de) * | 2016-07-13 | 2018-01-18 | Robert Bosch Gmbh | Unterbrechungsanforderungs-Verteilereinrichtung und Betriebsverfahren hierfür |
JP2018106583A (ja) * | 2016-12-28 | 2018-07-05 | ルネサスエレクトロニクス株式会社 | 半導体装置 |
US11275613B2 (en) * | 2018-04-16 | 2022-03-15 | Advanced Micro Devices, Inc. | Enforcing central processing unit quality of service guarantees when servicing accelerator requests |
CN112286846B (zh) * | 2019-07-25 | 2023-05-12 | 珠海格力电器股份有限公司 | 一种处理中断事件的方法和设备 |
Family Cites Families (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS53145536A (en) * | 1977-05-25 | 1978-12-18 | Hitachi Ltd | Interruption process system |
US5555420A (en) * | 1990-12-21 | 1996-09-10 | Intel Corporation | Multiprocessor programmable interrupt controller system with separate interrupt bus and bus retry management |
US5613129A (en) * | 1994-05-02 | 1997-03-18 | Digital Equipment Corporation | Adaptive mechanism for efficient interrupt processing |
US5708817A (en) * | 1995-05-31 | 1998-01-13 | Apple Computer, Inc. | Programmable delay of an interrupt |
US5708814A (en) * | 1995-11-21 | 1998-01-13 | Microsoft Corporation | Method and apparatus for reducing the rate of interrupts by generating a single interrupt for a group of events |
US5881296A (en) * | 1996-10-02 | 1999-03-09 | Intel Corporation | Method for improved interrupt processing in a computer system |
US6195725B1 (en) * | 1998-12-14 | 2001-02-27 | Intel Corporation | Dynamically varying interrupt bundle size |
US6370607B1 (en) * | 1999-04-13 | 2002-04-09 | Advanced Micro Devices, Inc. | Automatic disabling of interrupts upon entry into interrupt service routine |
JP2000322270A (ja) * | 1999-05-11 | 2000-11-24 | Matsushita Electric Ind Co Ltd | 割り込み制御方法 |
JP2001331329A (ja) * | 2000-05-22 | 2001-11-30 | Mitsubishi Electric Corp | 割込み制御装置及び割込み制御方法 |
-
2002
- 2002-01-24 DE DE60223177T patent/DE60223177T2/de not_active Expired - Lifetime
- 2002-01-24 JP JP2003562797A patent/JP4219818B2/ja not_active Expired - Fee Related
- 2002-01-24 EP EP02716364A patent/EP1471431B1/en not_active Expired - Lifetime
- 2002-01-24 WO PCT/JP2002/000516 patent/WO2003063002A1/ja active IP Right Grant
-
2004
- 2004-07-01 US US10/880,584 patent/US7415561B2/en not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
WO2003063002A1 (fr) | 2003-07-31 |
EP1471431A4 (en) | 2006-05-24 |
DE60223177T2 (de) | 2008-07-31 |
JP4219818B2 (ja) | 2009-02-04 |
EP1471431A1 (en) | 2004-10-27 |
US20040236875A1 (en) | 2004-11-25 |
EP1471431B1 (en) | 2007-10-24 |
DE60223177D1 (de) | 2007-12-06 |
US7415561B2 (en) | 2008-08-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4219818B2 (ja) | 割込み遅延を動的に決定する計算機 | |
US6868466B2 (en) | Apparatus and method for packet ingress interrupt moderation | |
US8661167B2 (en) | DMA (direct memory access) coalescing | |
Larsen et al. | Architectural breakdown of end-to-end latency in a TCP/IP network | |
US20040117791A1 (en) | Apparatus, system and method for limiting latency | |
US20050265235A1 (en) | Method, computer program product, and data processing system for improving transaction-oriented client-server application performance | |
JP2003524312A (ja) | ネットワークインターフェースにおいて割込みを示す方法および装置 | |
EP1199641B1 (en) | Data processing device used in serial communication system | |
US7177963B2 (en) | System and method for low-overhead monitoring of transmit queue empty status | |
JP5370482B2 (ja) | 端末装置、該端末装置に用いられるコミュニケーション方法及びコミュニケーション制御プログラム | |
KR0147509B1 (ko) | 타임아웃 처리회로 및 그를 이용한 수신장치 | |
US7852777B2 (en) | Network hardware device | |
JP4653192B2 (ja) | 割込み遅延を動的に決定する計算機 | |
US7649906B2 (en) | Method of reducing buffer usage by detecting missing fragments and idle links for multilink protocols and devices incorporating same | |
EP1713004B1 (en) | Computer for dynamically determining interrupt delay | |
CN115378873B (zh) | 一种提高以太网数据传输效率的流量控制方法和系统 | |
US7426589B2 (en) | Network interface card for reducing the number of interrupts and method of generating interrupts | |
JP2001331329A (ja) | 割込み制御装置及び割込み制御方法 | |
TW550908B (en) | System and method for flexibly interrupting data processing | |
JP2006195607A (ja) | バルクアウト転送終了判定方法および回路 | |
JP2004015497A (ja) | 複合機におけるネットワーク受信制限システム | |
JP2005267294A (ja) | ネットワーク割り込み制御方法、情報処理装置及び画像形成装置 | |
JP2000299716A (ja) | データ受信装置及びデータ受信方法 | |
JP2002281079A (ja) | 画像データ伝送装置 | |
KR100223983B1 (ko) | 충돌방지회로 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20080226 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20080425 |
|
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: 20081111 |
|
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: 20081112 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20111121 Year of fee payment: 3 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20111121 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20121121 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20121121 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20131121 Year of fee payment: 5 |
|
LAPS | Cancellation because of no payment of annual fees |