(57)【要約】プロセッサに対する割込み要求の出力部を備える計算機において、割込み事象が発生してから、プロセッサに割込み要求が出力されるまでの遅延の条件を、プロセッサ負荷状態などに応じて動的に決定可能とさせる。割込み要求出力部１は、割込み事象の発生から、プロセッサ２に割込み要求を出力するまでの遅延条件の決定要因を求める手段４と、求められた決定要因に対応して遅延条件を決定する手段３とを備える。例えばプロセッサによって割込み要因が読み出されるまでの時間が決定要因として求められ、その時間にある係数が乗算されて、遅延条件としての遅延時間が決定される。
2003063002.tif 000002
【特許請求の範囲】
【請求項１】
プロセッサに対する割込み要求の出力部を備える計算機において、
前記割込み要求出力部が、プロセッサによって動的に決定され、割込み事象が発生してからプロセッサに割込み要求を出力するまでの遅延の条件を記憶する遅延条件記憶手段を備えることを特徴とする割込み遅延を動的に決定する計算機。
【請求項２】
プロセッサに対する割込み要求の出力部を備える計算機において、
前記割込み要求出力部が、割込み事象が発生してからプロセッサに割込み要求を出力するまでの遅延の条件を動的に決定する遅延条件決定手段を備えることを特徴とする割込み遅延を動的に決定する計算機。
【請求項３】
前記割込み要求出力部が、割込み事象が発生してからプロセッサに割込み要求を出力するまでの遅延条件の決定要因を求める遅延条件決定要因出力手段を更に備え、
前記遅延条件決定手段が該遅延条件決定要因に対応して、前記割込み要求を出力するまでの遅延条件を決定することを特徴とする請求項２記載の割込み遅延を動的に決定する計算機。
【請求項４】
前記割込み要求出力部が、前記発生した割込み事象に対応した割込み要因を記憶する割込み要因記憶手段を更に備えると共に、
前記遅延条件決定要因出力手段が、割込み要求が出力されてからプロセッサによって該割込み要因記憶手段の記憶内容が読み出されるまでの時間を、次回以後の割込みに対応する遅延条件決定要因として求めることを特徴とする請求項３記載の割込み遅延を動的に決定する計算機。
【請求項５】
前記遅延条件決定要因出力手段が、割込み要求が出力されてからプロセッサによって該割込み要因記憶手段の記憶内容が読み出されるまでの時間を複数回測定し、該複数回の測定値に基づいて以後の割り込みに対応する遅延条件決定要因を求めることを特徴とする請求項４記載の割込み遅延を動的に決定する計算機。
【請求項６】
前記割込み要求出力部が、前記発生した割込み事象に対応した割込み要因を記憶する割込み要因記憶手段を更に備えると共に、
前記遅延条件決定要因出力手段が、割込み要求が出力されてからプロセッサによって該割込み要因記憶手段の記憶内容がクリアされるまでの時間を、次回以後の割込みに対応する遅延条件決定要因として求めることを特徴とする請求項３記載の割込み遅延を動的に決定する計算機。
【請求項７】
前記遅延条件決定要因出力手段が、割込み要求が出力されてからプロセッサによって該割込み要因記憶手段の記憶内容がクリアされるまでの時間を複数回測定し、該複数回の測定値に基づいて以後の割込みに対する遅延条件決定要因を求めることを特徴とする請求項６記載の割込み遅延を動的に決定する計算機。
【請求項８】
前記遅延条件決定手段が、前記遅延条件決定要因出力手段によって求められた決定要因としての時間にあらかじめ定められた係数を乗算して遅延条件としての遅延時間を決定することを特徴とする請求項４，５，６または７記載の割込み遅延を動的に決定する計算機。
【請求項９】
プロセッサに対する割込み要求の出力部を備える計算機において、
前記割込み要求出力部が、割込み事象の発生に対応してプロセッサに割込み要求を出力する周期を決定する割込み周期設定手段と、
該設定された割込み周期に基づいて前記割込み事象に対応する割込み要求を出力する時点を決定する割り込み時点決定手段を備えることを特徴とする割込み遅延を動的に決定する計算機。
【請求項１０】
前記割込み要求出力部が、前記発生した割込み事象に対応した割込み要因を記憶する割込み要因記憶手段を更に備えると共に、
前記周期設定手段が、発生した割込み事象に対応する割込み要求が出力されてからプロセッサによって該割込み要因記憶手段の記憶内容が読み出されるまでの時間に基づいて、前記周期を設定することを特徴とする請求項９記載の割込み遅延を動的に決定する計算機。
【請求項１１】
前記割込み要求出力部が、前記発生した割込み事象に対応した割込み要因を記憶する割込み要因記憶手段を更に備えると共に、
前記周期設定手段が、発生した割込み事象に対応する割込み要求が出力されてからプロセッサによって該割込み要因記憶手段の記憶内容がクリアされるまでの時間に基づいて、前記周期を設定することを特徴とする請求項９記載の割込み遅延を動的に決定する計算機。
【請求項１２】
前記割込み周期設定手段が、前記プロセッサからの指示に対応して前記周期を設定することを特徴とする請求項９記載の割込み遅延を動的に決定する計算機。
【請求項１３】
プロセッサに対する割込み要求の出力部を備える計算機によって使用されるプログラムにおいて、
割込み事象が発生してから前記割込み要求出力部がプロセッサに割込み要求を出力するまでの遅延の条件を動的に決定する手順と、
該決定された遅延条件を前記割込み要求出力部内のレジスタに格納する手順とを計算機に実行させるためのプログラム。
【請求項１４】
プロセッサに対する割込み要求の出力部を備える計算機によって使用されるプログラムにおいて、
前記割込み要求出力部がプロセッサに対して割込み要求を出力した時点でタイマを起動する手順と、
該割込み要求に対応した割込み要因をプロセッサが読み出した時点で該タイマを停止させて、該タイマの動作時間を読み取る手順と、
該読取った時間に基づいて、次回以後の割込み事象の発生から割込み要求出力部が割込み要求を出力するまでの遅延時間を決定する手順とを計算機に実行させるためのプログラム。
【請求項１５】
プロセッサに対する割込み要求の出力部を備える計算機によって使用されるプログラムにおいて、
前記割込み要求出力部がプロセッサに対して割込み要求を出力した時点でタイマを起動する手順と、
該割込み要求に対応した割込み要因をプロセッサがクリアした時点で該タイマを停止させて、該タイマの動作時間を読み取る手順と、
該読取った時間に基づいて、次回以後の割込み事象の発生から割込み要求出力部が割込み要求を出力するまでの遅延時間を決定する手順とを計算機に実行させるためのプログラム。
【発明の詳細な説明】
技術分野
本発明は計算機システムにおける割込み制御方式に係り、更に詳しくはプロセッサの負荷状態に応じて、例えば外部から割込み事象が入力されてから、計算機システム内の割込み要求出力部がプロセッサに割込み要求を出力するまでの遅延時間を動的に決定する計算機システムに関する。
背景技術
計算機システムに対して、例えば外部からプロセッサによる割込み処理が必要となる割込み事象が入力されると、例えばその割込み事象を受取った入出力（Ｉ／Ｏ）デバイスから割込み（要求）信号がプロセッサに対して出力され、プロセッサによって対応する割込み処理が実行される。例えばＩ／Ｏデバイスがネットワークインタフェースである場合には、パケットなどの通信データが到着した時点で、Ｉ／Ｏデバイスからプロセッサに対して割込み信号が出力される。
図１６は本発明が対象とする計算機システムの構成ブロック図である。同図において計算機システムはプロセッサ５０、メインメモリ５１、Ｉ／Ｏバスブリッジ５３、複数のＩ／Ｏデバイス５４，５５によって構成されている。
図１６においてＩ／Ｏバスブリッジ５３はプロセッサ５０、メインメモリ５１、Ｉ／Ｏバス５２を接続する機構であり、プロセッサ５０からメインメモリ５１、Ｉ／Ｏバス５２に対するアクセス機能を提供するものである。Ｉ／Ｏデバイス５４，５５はＩ／Ｏバス５２に接続され、ネットワークやディスクなど様々なデバイスと計算機システムとの間のインタフェースとなる。
例えばネットワークインタフェースの場合には、通信データがＩ／Ｏデバイスに到着した時点でプロセッサ５０に対して割込み（要求）信号が出力され、この信号に対応してプロセッサ５０はＩ／Ｏデバイス５４の内部の、例えば割込み要因レジスタの内容を検査することになる。
なおここでは現在パソコンの高速バスの主流として用いられているＰＣＩ（ペリフェラル・コンポーネント・インタコネクト）方式のバス、およびＰＣＩバスデバイスを例として従来の技術について記述するが、本発明はどのような類似したシステムにも適用可能である。
図１６のようなシステムにおいて、Ｉ／Ｏデバイスがプロセッサに対して割込み（要求）信号を出すタイミングやその頻度は、システムの性能に大きな影響を与える。例えばＩ／Ｏデバイスがギガビットイーサネットに対応するインタフェースである場合には、送受信ともに１２５ＭＢ／ｓｅｃの転送性能が実現されるが、パケットの最小の長さは６０バイト程度であり、パケットを受信するたびに受信割込みがプロセッサに通知されると、０．５μｓに１回の割合でプロセッサへの割込みが行われる。
図１７はこのような場合における割込み処理の従来例の説明図である。同図において、例えば割込み事象１が外部から計算機システムに与えられ、直ちにプロセッサによって割込み処理が行われ、その後割込み事象ｋが外部から与えられ、また直ちにプロセッサによって割込み事象が行われる。
プロセッサによる割込み処理にあたっては、現在の処理状態の退避や復旧、割込み要因の特定など少なくも一定の処理負荷が必要となる。割込みが高頻度となり、割込み間隔が短くなると、プロセッサの割込み処理負荷が増大し、システムの性能を低下させる可能性がある。
このように高頻度で割込みが発生することによってプロセッサの負荷が増大することを避けるため、インターラプト・コーレシングという従来技術が用いられている。インターラプト・コーレシングでは、割込みを発生すべき事象、すなわち割込み事象がおきてから実際にプロセッサに割込み要求を行うまでの時間を、一定の条件によって遅延させる処理が行われる。例えば複数の割込み事象がまとめられて割込むため、現在の処理状態の退避や復旧、割込み要因の特定などの処理負荷を１回にまとめることができ、プロセッサの処理負荷を軽減させることができる。
図１８はこのようなインターラプト・コーレシングの説明図である。同図においては、割込み事象１がおきてから割込み事象Ｋがおきるまでの複数の割込みがまとめられて、Ｉ／Ｏデバイスからプロセッサに対して割込みの要求が与えられている。
インターラプト・コーレシングにおける割込み要求までの代表的な条件として“一定の時間が経過する”、あるいは“一定の回数の割込み事象がおこる”などの条件が用いられる。例えばネットワークインタフェースの場合には、パケットを受信してから一定の時間が経過した後に割込み要求がなされる。この方法を用いることによって、割込みを遅延させている間に合計Ｋ個のパケットを受信した場合には、プロセッサに割込む回数を１／Ｋに減らすことができる。割込み事象の回数についての条件を用いても、同様に割込み回数を減少させることができる。
次に従来におけるＩ／Ｏデバイス内の割込み要求回路の装置構成について説明する。図１９はその構成ブロック図である。同図において例えばＩ／Ｏデバイス５４の内部には、割込み要求回路５８が設けられ、更にその内部に割込み要因レジスタ５９が備えられている。
割込み要求回路５８は、例えば外部からのパケットの到着によって割込み事象が発生した時に、Ｉ／Ｏバス５２、Ｉ／Ｏバスブリッジ５３を介してプロセッサ５０に割込み（要求）信号を出力するものであり、それと同時に割込み要因レジスタ５９には割込み事象の内容を判別するための情報が設定される。
割込み要因レジスタ５９の内容については、Ｉ／Ｏバス５２を介してプロセッサ５０から読み出し、書込みを行うことが可能であり、プロセッサ５０は割込み要因レジスタ５９の内容を検査することによって割込み事象の内容を識別する。またプロセッサ５０は割込み要因レジスタ５９の内容をクリアすることによって、割込み要求回路５８に対して割込み処理の終了を通知することができる。これに対応して割込み要求回路５８は割込み信号をゲネートし、割込みに対応する処理は全て終了する。
図２０は図１９における割込み処理の流れの説明図である。割込み事象がＩ／Ｏデバイスに与えられると直ちにプロセッサに対して割込み信号が出力され、プロセッサは▲１▼で割込み要因レジスタ５９の内容によって割込み要因を検査して割込み処理を開始し、▲２▼で割込み処理を基本的に終了して割込み要因レジスタ５９の内容をクリアし、例えば割込み処理用の作業領域の開放などの処理を行って、▲３▼で割込み処理を終了する。
図２１は従来におけるＩ／Ｏデバイスの他の構成例のブロック図であり、図２２は図２１における割込み処理の流れの説明図である。図２１において、割込み要求回路５８の内部にはあらかじめ定められた固定の遅延条件を格納している条件レジスタ６１が備えられており、割込み遅延回路６２は条件レジスタ６１の内容に従って、割込み事象が発生してからプロセッサに対して割込み信号を出力するまでの遅延時間を決定する。条件レジスタ６１の格納内容は前述の一定の時間でもよく、一定の回数の割込み事象でもよいが、割込み遅延回路６２はその内容に対応して割込み事象が発生してからの遅延時間を決定し、割込み信号を出力する。
図２２においてＩ／Ｏデバイスに割込み事象が与えられてから固定の遅延時間の後にプロセッサに対する割込み信号が出力され、その後図２０におけると同様に、▲１▼で割込み要因の検査、▲２▼で割込み要因のクリアが行われ、▲３▼で割込み処理が終了する。
以上で説明した従来技術としてのインターラプト・コーレシングについては３つの問題点がある。第１の問題点は、割込み事象が発生してから常に一定の条件に従って割込みを遅延させるために、割込み事象が発生してからの応答が常に遅くなることである。例えばネットワークインタフェイスの場合に、パケットを１個しか受信しなくても、実際にパケットを受信してから一定時間を経過しないと割込み処理が実行されないことになる。
第２の問題点は、プロセッサの負荷状態が考慮されないために、プロセッサの負荷が小さい時には直ちに割込みを行い、プロセッサの負荷が大きい時には割込みを遅延させるというような適応性のある処理ができないことである。
第３の問題点は、例えばＩ／Ｏデバイスにはカードなどが挿入されて使用されることが多いが、そのようなカードとプロセッサの間の割込み遅延のための最適条件がカードなどによって異なるにもかかわらず、従来技術では固定の遅延条件が用いられており、調整ができないということである。
本発明の目的は、プロセッサの性能や負荷の状態、および割込み事象の発生頻度などに応じて、割込み事象の発生から実際にＩ／Ｏデバイスがプロセッサに対して割込み要求信号を出力するまでの遅延条件を動的に決定できる計算機を提供することである。
発明の開示
図１は本発明の原理構成ブロック図である。同図において割込み要求出力部１は、図１６のＩ／Ｏデバイスに対応し、割込み事象の発生に対応してプロセッサ２に対して割込み要求を出力するものである。
図１において割込み要求出力部１は遅延条件決定手段３を備える。遅延条件決定手段３は、割込み事象が発生してから割込み要求出力部１がプロセッサ２に対して割込み要求を出力するまでの遅延条件、例えば遅延時間を動的に決定するものである。
発明の実施の形態においては、割込み要求出力部１は遅延条件決定要因出力手段４を更に備える。遅延条件決定要因出力手段４は、割込み事象が発生してからプロセッサに割込み要求を出力するまでの遅延条件の決定要因を求めるものであり、遅延条件決定手段３は決定された要因に対応して割込み要求を出力するまでの条件を決定する。
この場合、割込み要求出力部１が、発生した割込み事象に対応した割込み要因を記憶する割込み要因記憶手段を更に備え、遅延条件決定要因出力手段４が割込み要求が出力されてからプロセッサによって割込み要因記憶手段の記憶内容が読み出されるまでの時間を、次回以後の割込みに対応する遅延条件決定要因として求めることも、また割込み要求が出力されてからプロセッサによって割込み要因記憶手段の記憶内容がクリアされるまでの時間を、次回以後の割込みに対応する遅延条件決定要因として求めることも可能である。
実施の形態においては、遅延条件決定要因出力手段４は割込み要求が出力されてからプロセッサによって割込み要因記憶手段の記憶内容が読み出されるまでの時間、またはその記憶内容がクリアされるまでの時間を複数回測定し、その複数回の測定値に基づいて、次回以後の割込みに対応する遅延条件要因を求めることもできる。
更に実施の形態においては、遅延条件決定手段３は遅延条件決定要因出力手段４によって求められた決定要因としての時間にあらかじめ定められた係数を乗算して、遅延条件としての遅延時間を決定することもできる。
また本発明の計算機は割込み周期設定手段と、割込み時点決定手段とを備える。割込み周期設定手段は、割込み要求出力部１が発生した割込み事象に対応してプロセッサ２に割込み要求を出力する周期を設定し、割込み時点決定手段は設定された割込み周期に基づいて、割込み事象に対応する割込み要求を出力する時点を決定する。
発明の実施の形態においては、割込み要求出力部１は発生した割込み事象に対応する割込み要因を記憶する割込み要因記憶手段を更に備え、周期設定手段が割込み要求が出力されてからプロセッサによって割込み要因記憶手段の記憶内容が読み出されるまでの時間、あるいは割込み要因記憶手段の記憶内容がクリアされるまでの時間に基づいて、割込み周期を設定することもできる。
実施の形態においては、割込み周期設定手段はプロセッサ２からの指示に対応して割込み周期を設定することもできる。
更に本発明の計算機はプロセッサ２に対する割込み要求の出力部１を備え、割込み要求出力部１は、プロセッサによって動的に決定され、割込み事象が発生してからプロセッサに割込み要求を出力するまでの遅延条件を記憶する遅延条件記憶手段、例えば条件レジスタを備える。
次に本発明のプログラムは、プロセッサに対する割込み要求の出力部を備える計算機によって使用されるものであり、割込み事象が発生してから割込み要求出力部がプロセッサに割込み要求を出力するまでの遅延の条件を動的に決定する手順と、決定された遅延条件を割込み要求出力部内のレジスタに格納する手順とを計算機に実行させる。
また本発明のプログラムは、割込み要求出力部がプロセッサに対して割込み要求を出力した時点でタイマを起動する手順と、割込み要求に対応した割込み要因をプロセッサが読み出した時点、またはその割込み要因をプロセッサがクリアした時点でタイマを停止させ、タイマの動作時間を読み取る手順と、読み取った時間に基づいて次回以後の割込み事象の発生から割込み要求出力部が割込み要求を出力するまでの遅延時間を決定する手順とを計算機に実行させる。
以上のように本発明によれば、割込み事象が発生してから割込み要求出力部がプロセッサに割込み要求を出力するまでの遅延の条件が動的に決定される。
発明を実施するための最良の形態
図２は本発明の第１の実施形態における割込み要求回路の構成ブロック図であり、図３は図２における処理の流れの説明図である。
図２において条件レジスタ１３は、図２１の従来例における条件レジスタ６１と同様に、割込み事象が発生してからＩ／Ｏデバイス１０内の割込み遅延回路１２がＩ／Ｏバス１５を介してプロセッサに割込み（要求）信号を出力するまでの遅延条件を格納するものであるが、この遅延条件はプロセッサ側でプロセッサの負荷の状態に応じて動的に決定され、その条件が条件レジスタ１３に格納される。
すなわちプロセッサが割込みの遅延条件、すなわち割込み事象が発生してから割込み遅延回路１２が割込み信号を出力するまでの遅延時間、またはその間に発生する割込み事象の数をＩ／Ｏデバイス１１側に明示的に通知し、Ｉ／Ｏデバイス１１はこの条件に基づいて割込みを遅延させることになる。
プロセッサ側での割込み遅延条件の決定は、その時々のプロセッサの負荷状態などに応じて動的に実行され、例えばある時間間隔で条件レジスタ１３の内容が書き換えられることによって、プロセッサの負荷状態に適応した割込み遅延を動的に実現することができる。プロセッサ側で負荷状態を計測する方法としては任意の公知の技術を用いることができ、その詳細な説明を省略する。
図３の処理の流れにおいて、▲１▼でプロセッサ側から条件レジスタ１３に対する割込み遅延条件の設定が行われ、Ｉ／Ｏデバイス側ではその条件、例えば遅延時間の指定に応じて、例えば複数の割込み事象が遅延時間の間に発生しても、最初の割込み事象が発生してから指定された時間だけの遅延の後に、割込み遅延回路１２から割込み信号がプロセッサに対して出力される。プロセッサは▲２▼で割込み要因レジスタ１４の内容を読み込むことによって割込み要因を検査し、割込み処理が基本的に終了した時点で、▲３▼で割込み要因レジスタ１４に格納されている割込み要因をクリアし、▲４▼で全ての割込み処理を終了する。
図４は第１の実施形態におけるプロセッサによる割込み遅延条件設定処理のフローチャートである。同図において、プロセッサ側でまずステップＳ１で割込み遅延の条件が動的に決定され、ステップＳ２でその遅延条件はＩ／Ｏデバイス１１内の条件レジスタ１３に対して設定される。これによってＩ／Ｏデバイス１１側では、割込み事象が発生した後に、設定された割込み遅延条件に対応してステップＳ３で割込み要求信号を出力し、プロセッサ側でステップＳ４で割込み処理が実行される。
図５は第１の実施形態における割込み遅延回路１２の構成例のブロック図である。ここでは条件レジスタ１３に割込み遅延条件として、割込み遅延時間が設定されるものとする。
図５において割込み事象の発生に対応して、カウンタ１６に条件レジスタ１３に設定されている割込み遅延時間の値が与えられ、例えばカウンタのカウントダウンが開始される。カウンタのタイムアウトの時点で、タイムアウト信号がアンドゲート１７の片方の入力端子に与えられる。アンドゲート１７の他方の入力端子には割込み事象の発生に対応する割込み（要求）信号が入力されており、アンドゲート１７から割込み（要求）信号がＩ／Ｏバス１５を介してプロセッサに出力される。
図６は割込み遅延回路１２がソフトウェアによって実現される場合の割込み遅延処理のフローチャートの例である。同図において、割込み事象の発生を待って条件レジスタ１３に設定されている割込み遅延時間の値がステップＳ５でタイマにセットされ、ステップＳ６でタイマ値がデクリメントされ、ステップＳ７でタイマのタイムアウトがおこったか否かが判定され、まだおこっていない場合にはステップＳ６以降の処理が繰り返される。タイムアウトがおこった場合にはステップＳ８で割込み要因があるか否かが判定され、ない場合にはステップＳ５以降の処理が繰り返され、割込み要因がある場合にはステップＳ９で割込み処理が実行される。
図７は第２の実施形態における割込み要求回路の構成ブロック図を示し、図８は図７における処理の流れを示す。第２の実施形態では、第１の実施形態と異なり、Ｉ／Ｏデバイス側で割込み遅延条件、例えば割込み遅延時間が動的に決定される。
前述のように、割込み要求回路１１内の割込み要因レジスタ１４には、発生した割り込み事象に対応する要因が格納され、プロセッサはＩ／Ｏバス１５を介してその内容を読み込むことによって割込み要因を検査し、割込み処理が基本的に終了した時点でその割込み要因をクリアする。
第２の実施形態では、ある時点で発生した割込み事象に対する割込み信号が出力されてから、例えば割込み要因レジスタ１４に格納されている割込み要因がクリアされるまでの時間を測定することによって、プロセッサの負荷状態を推定し、その推定時間に基づいて次に発生する割込み事象に対する割込み遅延時間を決定する。
図７において、例えば割込み事象が発生して直ちに割り込み信号が出力された時点で割込み要因レジスタ１４に割込み要因が格納されると共に、タイマ２１が起動され、割込み要因レジスタ１４の内容がプロセッサによってクリアされるまでの時間が測定される。そしてその時間は遅延時間決定回路２０に与えられ、その次の割込み事象の発生に対応する割込み遅延時間の決定に用いられる。
この遅延時間の決定においては、タイマ２１の測定値をそのまま用いることもできるが、この測定値にある係数、例えば２，４，・・・，１／２，１／４，・・・などの係数を乗算することによって、遅延時間を決定することもできる。実験の結果、あるシステムではタイマの測定値をそのまま用いるのではなく、例えば４を乗算することによって全体的な処理性能が向上することが判明した。
図８の処理の流れにおいて、まずある時点で割込み事象が発生すると、例えば直ちにＩ／Ｏデバイスは割込み信号をＩ／Ｏバス１５を介してプロセッサに対して出力するとともに時間測定▲１▼を開始する。プロセッサは▲２▼で割込み要因レジスタ１４に格納された割込み要因を検査し、割込み処理を基本的に終了した時点の▲３▼で割込み要因をクリアする。Ｉ／Ｏデバイス側では割込み信号を出力した時点から割込み要因のクリア▲３▼が行われるまでの時間の測定値を次の割込み事象の発生に対応する割込み遅延時間の決定に使用する。すなわち次の割込み事象の発生から、決定された遅延時間だけ遅れて割込み信号が出力されるとともに、さらに次の割込み事象の発生に備えて、再び時間測定が行われる。
図９は第２の実施の形態において、タイマ２１が割込み信号の出力からプロセッサによって割込み要因がクリアされるまでの時間でなく、割込み要因検査が行われるまでの時間を測定し、その時間に基づいて次の割込みに対する割込み遅延時間を決定する場合の処理の流れの説明図である。
同図において、図８におけると同様に、例えば割込み事象が発生した時点で直ちに割込み信号がプロセッサに対して出力され、▲１▼でタイマ２１による時間測定が開始される。プロセッサ側では▲２▼で割込み要因レジスタ１４の内容を検査し、▲３▼でその要因をクリアし、▲４▼で割込み処理を終了するが、▲１▼の時間測定は割込み要因検査の時点まで続けられ、その測定結果が次の割込み事象に対応する割込み遅延時間の決定に用いられる。
すなわち図９では、タイマ２１によって測定される時間は、割り込み（要求）信号を受取ってからプロセッサが実際に割込み処理に入るまでの時間を反映し、この時間もプロセッサの負荷状態に対応するものである。
このように第２の実施形態では、プロセッサが割込み遅延条件を指定するのではなく、Ｉ／Ｏデバイス側が実質的にプロセッサの処理負荷状態を検出し、割込み遅延条件を決定する。すなわちＩ／Ｏデバイスが、プロセッサに対して割込み要求を行ってからプロセッサが対応する割込み処理を開始、または終了するまでの時間を計測し、この時間に基づいて割込み遅延条件を決定する。この実施形態ではプロセッサは遅延条件を設定する必要がないのが大きな特徴である。
図１０は第２の実施形態、すなわち図７におけるタイマと遅延時間決定回路の詳細構成ブロック図である。同図においてタイマ２１は、割込み事象が発生し、割込み要因レジスタ１４に割込み要因が格納され、プロセッサに対して割込み遅延回路１２から割込み信号が出力された時点で起動され、カウントを開始する。
図８においては、プロセッサによって割込み要因レジスタ１４の内容がクリア、例えばデータとして０が書き込まれた時点で、このデータのライト信号に対応してタイマ２１に対してストップ信号が入力され、タイマ２１から測定値が乗算器２６に出力される。乗算器２６に対しては、係数器２５からタイマの測定値に乗算すべき係数が出力され、乗算器２６による乗算結果が割込み遅延回路１２に与えられる。なお割込み遅延回路の構成は第１の実施形態における図５と同じである。
図９においてはタイマ２１がカウントを開始した後にプロセッサが割込み要因レジスタ１４の内容を読み出す、すなわちリード信号を出力するまでの時間が測定され、図１０と一部異なって、このリード信号が入力された時点でタイマ２１にストップ信号が与えられる。タイマの測定値は、前述と同様に乗算器２６に与えられ、係数器２５の出力する係数が乗算されて割込み遅延回路１２に出力される。
図１１は図８に対応する割込み遅延時間決定処理のフローチャートである。同図おいて、Ｉ／Ｏデバイス側でステップＳ１０でプロセッサに対して割込み要求信号が出力されると共に、図７のタイマ２１が起動される。
プロセッサ側では、ステップＳ１１でこの割込み要求が受取られ、その時の負荷処理状態に応じた時間の経過後に、ステップＳ１２で割込み要因レジスタ１４の内容が読み出される。そしてプロセッサはステップＳ１３で割り込み処理を実行し、ステップＳ１４で割り込み要因レジスタの内容をクリアする。
Ｉ／Ｏデバイス側では、このプロセッサによる割込み要因レジスタのクリアを検出してステップＳ１５でタイマをストップし、ステップＳ１６でタイマの値に基づいて遅延時間を決定する。
図１２は図９に対応する遅延時間決定処理のフローチャートである。図１１と比較すると、Ｉ／Ｏデバイス側でプロセッサによるステップＳ１２の処理、すなわち割り込み要因の読み出しに対応してステップＳ１７でタイマをストップし、ステップＳ１８で割込み遅延時間の決定を行う点だけが異なっている。
図１３は、第２の実施形態において割込み信号が出力されてからプロセッサによって割込み要因レジスタ１４の内容が読み出されるか、またはクリアされるまでの時間を複数回測定し、その複数回の測定結果に基づいて次の割込みに対応する割込み遅延条件を設定する遅延時間決定回路の構成例のブロック図である。
同図においてタイマ２１に対しては、図１０におけると同様にプロセッサによって割込み要因レジスタ１４の内容がクリアされるか、あるいは読み出された時点でストップ信号が出力される。タイマ２１はまず第１の割込み事象の発生に対応する割り込み信号出力時点からの時間をカウントしており、その測定値はレジスタ３１ａに格納される。この測定値格納は、タイマ２１からタイマ値確定信号がカウンタ３０に与えられ、この信号に対応してカウンタ３０のカウント値がインクリメントされ、カウンタ３０の出力が書き込みイネーブル信号としてレジスタ３１ａに与えられることによって実行される。
２番目の割込み事象の発生に対応する割込み信号出力からプロセッサによって割込み要因レジスタ１４の内容が読み出されるか、あるいはクリアされるまでの時間がタイマ２１によって測定され、そのカウント値はカウンタ３０の出力する書き込みイネーブル信号がレジスタ３１ｂに与えられることによってレジスタ３１ｂに格納される。
以下同様に全部でｎ個のカウント値がそれぞれのレジスタに格納された後に、それらのカウント値が平均値算出回路３２に与えられ、算出された平均値が図１０の乗算器２６に出力されることによって、複数回の割込み事象に対応する測定値が求められ、その次の割込み事象の発生に対応する割込み遅延時間の決定に用いられる。
図１４は第３の実施形態における割込み要求回路１１の構成ブロック図であり、図１５は図１４における処理の流れの説明図である。第３の実施形態では、Ｉ／Ｏデバイス１０はプロセッサに対して周期的に割込み（要求）信号を出力するものとし、割込み事象が発生しても次の割込み周期のタイミングまでの割込みの遅延が行われる。割込み事象の発生時点は周期内にランダムに分散するため、割込み事象が発生してから実際に割込み信号が出力されるまでの遅延時間は平均して周期の半分となる。
図１４において周期タイマ３５はこの割込み周期を発生し、遅延時間決定回路３４はこの周期に同期するように遅延時間を決定し、割込み遅延回路１２はこの周期のタイミングに同期する時点で割込み信号をプロセッサに対して出力することになる。
図１５において、最初の割込み事象の発生に対応して次の固定周期のタイミングでプロセッサに対する割込み信号が出力され、▲１▼でプロセッサによって割込み要因が検査され、▲２▼で割込み要因クリアされ、▲３▼で割込み処理が終了する。
次に発生した割り込み事象に対しても、周期によって決定されるタイミングまで割込み信号の出力が遅延される。この間に更に他の割込み事象が発生しても、これらの割込み事象に対してはまとめて割込み（要求）信号が出力されることになる。
周期タイマ３５が発生する周期としては、第１に固定とする場合に、第２に第１の実施形態におけると同様に、プロセッサが負荷状態に応じて指定する場合、第３に第２の実施形態におけると同様に、Ｉ／Ｏデバイスが、プロセッサが割込み要因レジスタ１４の内容を読み出すまで、あるいはクリアするまでの時間の測定値に基づいて決定する場合の３つが考えられる。
なお第３の実施形態のように周期的なタイミングで割込み要求を行う方式はＴＣＰ／ＩＰ（トランスミッション・コントロール・プロトコル／インターネット・プロトコル）を用いるシステムで有効であり、ＵＤＰ／ＩＰ（ユーザ・データグラム・プロトコル／インターネット・プロトコル）を用いるシステムでは第２の実施形態に対する図７で説明したようにタイマの測定値にある係数を乗算する方式が有効であることが実験によって判明した。
また以上の説明では、割込み遅延条件として遅延時間を用いる場合を主として発明の実施の形態を説明したが、遅延条件として割込み事象の発生回数を用いることも当然可能である。例えば第２の実施形態において、プロセッサが割込み要因を読み出すか、あるいはクリアするまでの時間を測定する代わりに、その間に発生する割り込み事象の数を測定し、その数に基づいて遅延条件を決定することもできる。
以上詳細に説明したように、本発明によれば割込み事象に対応する過去の処理状況から、プロセッサの処理負荷状態を判定し、この結果に対応して適応的に割込み遅延条件を設定することができる。
その結果、プロセッサの負荷が低い状態では割込み事象の発生後直ちに割込むことができ、プロセッサの負荷が高い状態では負荷の度合いに応じて割込みを遅延させることができ、割込み事象の発生から割込み要求出力までの遅延時間を自動的に最適化する効果が得られる。
またＩ／Ｏデバイスにカードなどが挿入されて使用されるような場合にも、カードとプロセッサの間の割込み遅延のための最適条件を自動的に調整することが可能となり、割込み処理の性能向上に寄与するところが大きい。
産業上の利用可能性
以上のように本発明の計算機は、割込み事象の発生からプロセッサに割込み要求が与えられるまでの遅延条件がプロセッサの負荷などに応じて適応的に決定されるものであり、本発明は割込み処理を実行することのできる計算機を用いる全ての産業において利用することが可能である。
【図面の簡単な説明】
図１は、本発明の原理構成ブロック図である。
図２は、第１の実施形態における割込み要求回路の構成を示すブロック図である。
図３は、図２における割込み処理の流れを示す図である。
図４は、第１の実施形態におけるプロセッサによる遅延条件設定処理のフローチャートである。
図５は、第１の実施形態における割込み遅延回路の構成を示すブロック図である。
図６は、第１の実施形態における割込み遅延処理のフローチャートである。
図７は、第２の実施形態における割込み要求回路の構成ブロック図である。
図８は、図７における割込み処理の流れを示す図である。
図９は、第２の実施形態において割込み要因読み出しまでの時間に基づいて遅延時間を決定する場合の処理の流れを示す図である。
図１０は、第２の実施形態におけるタイマと遅延時間決定回路の構成を示すブロック図である。
図１１は、第２の実施形態における割込み遅延時間決定処理のフローチャートの第１の例である。
図１２は、第２の実施形態における割込み遅延時間決定処理のフローチャートの第２の例である。
図１３は、第２の実施形態において複数の時間測定値から遅延時間を決定する遅延時間決定回路の構成例のブロック図である。
図１４は、第３の実施形態における割込み要求回路の構成ブロック図である。
図１５は、図１４における処理の流れを示す図である。
図１６は、計算機システムの構成例を示すブロック図である。
図１７は、割込み間隔と割込み処理負荷の関係を説明する図である。
図１８は、従来技術としてのインターラプト・コーレシングの処理を説明する図である。
図１９は、割込み遅延がない場合の割込み要求回路の従来例の構成ブロック図である。
図２０は、図１９における処理の流れを示す図である。
図２１は、割込み遅延がある場合の割込み要求回路の従来例の構成ブロック図である。
図２２は、図２１における処理の流れを示す図である。
【図１】
2003063002.tif 000003
【図２】
2003063002.tif 000004
【図３】
2003063002.tif 000005
【図４】
2003063002.tif 000006
【図５】
2003063002.tif 000007
【図６】
2003063002.tif 000008
【図７】
2003063002.tif 000009
【図８】
2003063002.tif 000010
【図９】
2003063002.tif 000011
【図１０】
2003063002.tif 000012
【図１１】
2003063002.tif 000013
【図１２】
2003063002.tif 000014
【図１３】
2003063002.tif 000015
【図１４】
2003063002.tif 000016
【図１５】
2003063002.tif 000017
【図１６】
2003063002.tif 000018
【図１７】
2003063002.tif 000019
【図１８】
2003063002.tif 000020
【図１９】
2003063002.tif 000021
【図２０】
2003063002.tif 000022
【図２１】
2003063002.tif 000023
【図２２】
2003063002.tif 000024
【国際調査報告】
2003063002.tif 000025
2003063002.tif 000026
2003063002.tif 000027
2003063002.tif 000028