JPH065515B2 - キャッシュ再ロード・オーバーヘッドを減少させる方法およびコンピュータ・システム - Google Patents
キャッシュ再ロード・オーバーヘッドを減少させる方法およびコンピュータ・システムInfo
- Publication number
- JPH065515B2 JPH065515B2 JP2118853A JP11885390A JPH065515B2 JP H065515 B2 JPH065515 B2 JP H065515B2 JP 2118853 A JP2118853 A JP 2118853A JP 11885390 A JP11885390 A JP 11885390A JP H065515 B2 JPH065515 B2 JP H065515B2
- Authority
- JP
- Japan
- Prior art keywords
- time
- interrupt
- quantum
- task
- elapsed 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 - Lifetime
Links
- 238000000034 method Methods 0.000 title claims description 14
- 230000006870 function Effects 0.000 description 11
- 230000001960 triggered effect Effects 0.000 description 5
- 230000008569 process Effects 0.000 description 4
- 230000001052 transient effect Effects 0.000 description 3
- 230000001419 dependent effect Effects 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 230000007246 mechanism Effects 0.000 description 2
- 230000004044 response Effects 0.000 description 2
- 230000009471 action Effects 0.000 description 1
- 230000006399 behavior Effects 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 230000001186 cumulative effect Effects 0.000 description 1
- 230000007423 decrease Effects 0.000 description 1
- 230000003247 decreasing effect Effects 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000000977 initiatory effect Effects 0.000 description 1
- 238000007689 inspection Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 239000000725 suspension Substances 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/12—Replacement control
- G06F12/121—Replacement control using replacement algorithms
- G06F12/128—Replacement control using replacement algorithms adapted to multidimensional cache systems, e.g. set-associative, multicache, multiset or multilevel
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0806—Multiuser, multiprocessor or multiprocessing cache systems
- G06F12/0842—Multiuser, multiprocessor or multiprocessing cache systems for multiprocessing or multitasking
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Description
【発明の詳細な説明】 A.産業上の利用分野 本発明は一般に高性能データ処理システムにおけるキャ
ッシュ・メモリ管理に関し、具体的には、プログラムの
フットプリント(足跡)が小さくなるとき、コンテキス
トを交換するための交換点を適時に選択することによ
り、コンテキスト交換点でのキャッシュ・ミスのコスト
を減少させる手法に関する。
ッシュ・メモリ管理に関し、具体的には、プログラムの
フットプリント(足跡)が小さくなるとき、コンテキス
トを交換するための交換点を適時に選択することによ
り、コンテキスト交換点でのキャッシュ・ミスのコスト
を減少させる手法に関する。
B.従来の技術 多重プログラム式または多重タスク処理コンピュータ・
システムでは1台のプロセッサが、そのプロセッサで走
行するプログラムまたはタスクを定期的に変更すること
により、多くの異なるプログラム間で共用される。キャ
ッシュ・メモリを使用するコンピュータ・システムで
は、1つのプログラムまたはタスクが中断されて別のも
のが開始される時点で、キャッシュは、中断されたプロ
グラムに属する多くの行(ライン)を含んでいる。これ
らの行は次のプログラムを走行するとき、キャッシュか
ら取り除かれ、中断されたプログラムがプロセッサの制
御を再び得るとき、それを再ロードしなければならなく
なる。これらの行を再ロードするためのオーバーヘッド
は、キャッシュ再ロード・トランジェントと呼ばれる。
D.F.ティボー(Thiebaut)とH.S.ストーン(St
one)は、論文「キャッシュのフットプリント(Footpri
nsin the Cache)」、ACM Transaction on Computing、Vo1.5、No.4(19
87年11月)、pp.305−329に、この問題に
ついての彼らの研究を報告し、様々なケース・スタディ
で彼らが確認したトランジェントのサイズを計算するた
めのモデルを提案している。そのトランジェントのサイ
ズは、プログラムのフットプリントのサイズ、すなわち
プログラムがキャッシュ中にもつ活動行の数に関係して
いる。
システムでは1台のプロセッサが、そのプロセッサで走
行するプログラムまたはタスクを定期的に変更すること
により、多くの異なるプログラム間で共用される。キャ
ッシュ・メモリを使用するコンピュータ・システムで
は、1つのプログラムまたはタスクが中断されて別のも
のが開始される時点で、キャッシュは、中断されたプロ
グラムに属する多くの行(ライン)を含んでいる。これ
らの行は次のプログラムを走行するとき、キャッシュか
ら取り除かれ、中断されたプログラムがプロセッサの制
御を再び得るとき、それを再ロードしなければならなく
なる。これらの行を再ロードするためのオーバーヘッド
は、キャッシュ再ロード・トランジェントと呼ばれる。
D.F.ティボー(Thiebaut)とH.S.ストーン(St
one)は、論文「キャッシュのフットプリント(Footpri
nsin the Cache)」、ACM Transaction on Computing、Vo1.5、No.4(19
87年11月)、pp.305−329に、この問題に
ついての彼らの研究を報告し、様々なケース・スタディ
で彼らが確認したトランジェントのサイズを計算するた
めのモデルを提案している。そのトランジェントのサイ
ズは、プログラムのフットプリントのサイズ、すなわち
プログラムがキャッシュ中にもつ活動行の数に関係して
いる。
できるだけ変更を小さくすることによってコンテキスト
交換のコストを減らしたり、あるいは他の方法でコンテ
キスト交換のオーバヘッドを減らすことが従来技術で知
られている。ただし、従来技術では、交換要求が出され
たときにコンテキスト交換を行なわなければならいと仮
定している。
交換のコストを減らしたり、あるいは他の方法でコンテ
キスト交換のオーバヘッドを減らすことが従来技術で知
られている。ただし、従来技術では、交換要求が出され
たときにコンテキスト交換を行なわなければならいと仮
定している。
米国特許第4422145号明細書は、将来のデータ要
求に関する知識を利用して、バッファ・メモリ内のペー
ジのプールを管理することを記載している。その方法で
は、この知識を使って、将来出される可能性が最も大き
い要求を迅速に検索できるバッファ・プールに保持す
る。この発明は、ページをタスクに割り振る問題を解決
することを目的とするものである。
求に関する知識を利用して、バッファ・メモリ内のペー
ジのプールを管理することを記載している。その方法で
は、この知識を使って、将来出される可能性が最も大き
い要求を迅速に検索できるバッファ・プールに保持す
る。この発明は、ページをタスクに割り振る問題を解決
することを目的とするものである。
米国特許第4463424号明細書は、上記の特許第4
422145号の発明に類似した発明を記載している
が、細部で異なっている。この発明では、タスク挙動を
測定して、キャッシュ・メモリ・ミスの数を減少させる
にはメモリを個々のタスクにどう割り振ればよいかを決
定する。しかし、キャッシュ・メモリに対する要求は、
受信された順序で処理される。
422145号の発明に類似した発明を記載している
が、細部で異なっている。この発明では、タスク挙動を
測定して、キャッシュ・メモリ・ミスの数を減少させる
にはメモリを個々のタスクにどう割り振ればよいかを決
定する。しかし、キャッシュ・メモリに対する要求は、
受信された順序で処理される。
米国特許第4484274号明細書は、割込みが発生し
たとき、あるプロセスの状態のどの部分を実際にセーブ
する必要があるかを識別する処理手順を記載している。
すなわち、ある割込みが処理されるものとすると、この
処理手順は、できるだけセーブする個所を少なくしよう
とする。米国特許第4382278号明細書では、作業
空間を切り換えることにより、コンテキスト交換オーバ
・ヘッドを減らす方法を教示している。これによって、
コンテキスト交換時の作業の量が減少する。
たとき、あるプロセスの状態のどの部分を実際にセーブ
する必要があるかを識別する処理手順を記載している。
すなわち、ある割込みが処理されるものとすると、この
処理手順は、できるだけセーブする個所を少なくしよう
とする。米国特許第4382278号明細書では、作業
空間を切り換えることにより、コンテキスト交換オーバ
・ヘッドを減らす方法を教示している。これによって、
コンテキスト交換時の作業の量が減少する。
T.G.ラング(Lang)は、IBMテクニカル・ディスク
ロージャ・ブルテン、1986年7月p.947で、コ
ンテキストをセーブするプロセスに関連するオーバヘッ
ドを減少させることにより、コンテキスト交換の速度を
高める手段を記載ている。
ロージャ・ブルテン、1986年7月p.947で、コ
ンテキストをセーブするプロセスに関連するオーバヘッ
ドを減少させることにより、コンテキスト交換の速度を
高める手段を記載ている。
C.発明が解決しようとする課題 本発明の目的は、プログラムが中断可能となる時を注意
深く選定することにより、キャッシュ再ロード・トラン
ジェントのオーバーヘッドを減少させる方法を提供する
ことにある。
深く選定することにより、キャッシュ再ロード・トラン
ジェントのオーバーヘッドを減少させる方法を提供する
ことにある。
本発明の他の目的は、現タスクのフットプリントが小さ
いときにすなわちキャッシュにストアされている行数が
少ないときにコンテキスト交換を実施する方法を備え
た、多重タスク処理コンピュータ・システムを提供する
ことである。
いときにすなわちキャッシュにストアされている行数が
少ないときにコンテキスト交換を実施する方法を備え
た、多重タスク処理コンピュータ・システムを提供する
ことである。
D.課題を解決するための手段 本発明によれば、多重プログラミングまたは多重タスク
処理環境で走行するプログラムの中断を、中断されるプ
ログラムまたはタスクのフットプリントが比較的小さい
ときに行なわせる。フットプリントが小さくなるのは、
そのプログラムが異なる動作段階に移動したため、ある
プロセスがキャッシュ内のデータまた命令記憶域を解放
するときである。具体的には、本発明は、小フットプリ
ント点で発生するように準備された割込み、及びこうし
た点がいつ発生するかを検出する手段に関するものであ
る。
処理環境で走行するプログラムの中断を、中断されるプ
ログラムまたはタスクのフットプリントが比較的小さい
ときに行なわせる。フットプリントが小さくなるのは、
そのプログラムが異なる動作段階に移動したため、ある
プロセスがキャッシュ内のデータまた命令記憶域を解放
するときである。具体的には、本発明は、小フットプリ
ント点で発生するように準備された割込み、及びこうし
た点がいつ発生するかを検出する手段に関するものであ
る。
本発明は、上記のものを含めて他の従来技術のシステム
でも、またそれらのシステムなしでも実施でき、多重プ
ログラム式または多重タスク処理コンピュータ・システ
ムの動作をさらに向上させることができる。本発明は、
上記の特許第4422145号の発明が、コンテキスト
交換のコストを減少させるために要求を据え置くという
考えを含んでいない点で、その発明とは異なっている。
要求は、プロセッサに提示された順に処理され、メモリ
管理は、受け取った要求及び将来予期される要求の結果
として実行される。上記の特許第4463424号の発
明は、ミスの数を減らすためにこうした要求を据え置い
たり順序を変えたりしない。上記の発明は、メモリ資源
に対する要求のシーケンスに応答してメモリ資源を管理
するが、本発明では、低コストで処理できるようになる
まで要求を据え置く。また、上記の特許第448427
4号、第4382278号、ラングの論文はどれも、本
発明の基本概念であるコンテキスト交換をいつ行なうか
に関するものではない。
でも、またそれらのシステムなしでも実施でき、多重プ
ログラム式または多重タスク処理コンピュータ・システ
ムの動作をさらに向上させることができる。本発明は、
上記の特許第4422145号の発明が、コンテキスト
交換のコストを減少させるために要求を据え置くという
考えを含んでいない点で、その発明とは異なっている。
要求は、プロセッサに提示された順に処理され、メモリ
管理は、受け取った要求及び将来予期される要求の結果
として実行される。上記の特許第4463424号の発
明は、ミスの数を減らすためにこうした要求を据え置い
たり順序を変えたりしない。上記の発明は、メモリ資源
に対する要求のシーケンスに応答してメモリ資源を管理
するが、本発明では、低コストで処理できるようになる
まで要求を据え置く。また、上記の特許第448427
4号、第4382278号、ラングの論文はどれも、本
発明の基本概念であるコンテキスト交換をいつ行なうか
に関するものではない。
すなわち、現況技術では、コンテキスト交換が開始され
るのは、プログラムがその割り振られた時間量子を越え
るとき、またはプログラミングされた待機もしくは入出
力動作に達したとき、あるいは他の同様の理由による。
本発明では、2つの時間がそれに関連している点で通常
の量子時間切れ割込みとは異なる、コンテキスト交換割
込みを割込む。最初の時間は、コンテキスト交換が準備
される時を告げる最小時間である。この最小時間が経過
するまで、割込みは通知できない。最小時間の後、コン
テキスト交換割込みが準備され、プログラム・フットプ
リントのサイズが減少したことを示す信号を受け取った
とき、それが通知される。
るのは、プログラムがその割り振られた時間量子を越え
るとき、またはプログラミングされた待機もしくは入出
力動作に達したとき、あるいは他の同様の理由による。
本発明では、2つの時間がそれに関連している点で通常
の量子時間切れ割込みとは異なる、コンテキスト交換割
込みを割込む。最初の時間は、コンテキスト交換が準備
される時を告げる最小時間である。この最小時間が経過
するまで、割込みは通知できない。最小時間の後、コン
テキスト交換割込みが準備され、プログラム・フットプ
リントのサイズが減少したことを示す信号を受け取った
とき、それが通知される。
コンテキスト交換に関連する第2の時間は最大時間であ
る。最大時間に達するまでにコンテキスト交換割込みが
通知されない場合、その時点でコンテキスト交換割込み
が通知される。すなわち、コンテキスト交換割込みは、
プログラムが、余り長く走行できないようにする点で量
子時間切れ割込みに似ているが、また将来のオーバヘッ
ドが下がるようなときにプログラムを交換する傾向があ
る。
る。最大時間に達するまでにコンテキスト交換割込みが
通知されない場合、その時点でコンテキスト交換割込み
が通知される。すなわち、コンテキスト交換割込みは、
プログラムが、余り長く走行できないようにする点で量
子時間切れ割込みに似ているが、また将来のオーバヘッ
ドが下がるようなときにプログラムを交換する傾向があ
る。
E.実施例 汎用コンピュータは、通常オペレーティング・システム
と呼ばれる実行制御プログラムの制御下で走行すると言
われる。オペレーティング・システムとは、コンピュー
タのハードウェアを制御する、ソフトウェア、ファーム
ウェア、マイクロコードまたはこれら3つの組合せで実
施されるプログラムである。オペレーティング・システ
ムは、コンピュータ上で走行するアプリケーション・プ
ログラムまたはタスクからの呼出しに応答して、データ
を表示画面に書き込み、データをディスク記憶装置に記
憶し、データをディスク記憶装置から検索し、リポート
を印刷する。アプリケーション・プログラムまたはタス
クは、オペレーティング・システム上で走行すると言わ
れる。本明細書では、プログラムとタスクは、同じ意味
で使用し、アプリケーション・プログラムを意味するも
のとする。
と呼ばれる実行制御プログラムの制御下で走行すると言
われる。オペレーティング・システムとは、コンピュー
タのハードウェアを制御する、ソフトウェア、ファーム
ウェア、マイクロコードまたはこれら3つの組合せで実
施されるプログラムである。オペレーティング・システ
ムは、コンピュータ上で走行するアプリケーション・プ
ログラムまたはタスクからの呼出しに応答して、データ
を表示画面に書き込み、データをディスク記憶装置に記
憶し、データをディスク記憶装置から検索し、リポート
を印刷する。アプリケーション・プログラムまたはタス
クは、オペレーティング・システム上で走行すると言わ
れる。本明細書では、プログラムとタスクは、同じ意味
で使用し、アプリケーション・プログラムを意味するも
のとする。
本発明は、H.ローリン(Lorin)及びM.M.ディテル(De
itel)の著者「オペレーティング・システム(Operating
System)」、アジソン・ウェーズリー出版社(Addison-We
sley Publishing Co.)、1981年刊、pp.81−8
8の第3.6節「多重プログラミング・システム(Multi
programm-ing Systems)」及びハーヴェイ(Harvey)M.
ディテル(Deitel)の著書「オペレーティング・システム
入門(An Introduction to Operating System)」アジソ
ン・ウェズリー出版社、1984年刊、pp.155−
174の第7章「実記憶装置(Real Storage)」に一般適
に記載された形式の多重プログラミング・システムの分
野におけるものである。本明細書では、多重プログラミ
ングと多重タスク処理は同じ意味に使用する。
itel)の著者「オペレーティング・システム(Operating
System)」、アジソン・ウェーズリー出版社(Addison-We
sley Publishing Co.)、1981年刊、pp.81−8
8の第3.6節「多重プログラミング・システム(Multi
programm-ing Systems)」及びハーヴェイ(Harvey)M.
ディテル(Deitel)の著書「オペレーティング・システム
入門(An Introduction to Operating System)」アジソ
ン・ウェズリー出版社、1984年刊、pp.155−
174の第7章「実記憶装置(Real Storage)」に一般適
に記載された形式の多重プログラミング・システムの分
野におけるものである。本明細書では、多重プログラミ
ングと多重タスク処理は同じ意味に使用する。
本発明の好ましい実施例では、多重プログラムまたは多
重タスク処理コンピュータ・システム通常動作モード
は、実行制御プログラムまたはオペレーティング・シス
テムの制御下で動作するものと仮定する。オペレーティ
ング・システムは実行可能タスクのリストを維持する。
オペレーティング・システムは、実行可能タスクのリス
クから直ちに実行すべきタスクを選択し、選択したタス
クに最大実行時間を割り振り、その時点で将来発生する
割込みを設定する。この最大時間を時間量子と呼ぶ。次
に、オペレーティング・システムは選択したタスクの実
行を開始する。選択されたタスクは、それに割り振られ
た時間量子の間実行され、この時間が経過すると、割振
りが発生してタスクが中断される。次に、オペレーティ
ング・システムは、実行可能タスクのリストから別のタ
スクを選択し、上記のステップを繰り返す。
重タスク処理コンピュータ・システム通常動作モード
は、実行制御プログラムまたはオペレーティング・シス
テムの制御下で動作するものと仮定する。オペレーティ
ング・システムは実行可能タスクのリストを維持する。
オペレーティング・システムは、実行可能タスクのリス
クから直ちに実行すべきタスクを選択し、選択したタス
クに最大実行時間を割り振り、その時点で将来発生する
割込みを設定する。この最大時間を時間量子と呼ぶ。次
に、オペレーティング・システムは選択したタスクの実
行を開始する。選択されたタスクは、それに割り振られ
た時間量子の間実行され、この時間が経過すると、割振
りが発生してタスクが中断される。次に、オペレーティ
ング・システムは、実行可能タスクのリストから別のタ
スクを選択し、上記のステップを繰り返す。
場合によっては、現在走行中のプログラムまたはタスク
はその時間量子を完了することができない。そうなるの
は、以下のいずれかである。
はその時間量子を完了することができない。そうなるの
は、以下のいずれかである。
1.プログラムまたはタスク自体が、入出力動作の完了
など外部事象が発生を持たなければならない。外部事象
が発生すると、そのタスクを直ちに断中断し、実行可能
タスクのリストから取り除かなければならない。その時
点で、オペレーティング・システムは異なるプログラム
またはタスクを開始しなければならない。
など外部事象が発生を持たなければならない。外部事象
が発生すると、そのタスクを直ちに断中断し、実行可能
タスクのリストから取り除かなければならない。その時
点で、オペレーティング・システムは異なるプログラム
またはタスクを開始しなければならない。
2.入出力動作の完了など外部事象が認識される。外部
事象があると、オペレーティング・システムが、入出力
プログラムを開始し、実行の準備ができていて外部事象
を持っているタスクにリストを変更することが必要とな
る。オペレーティング・システムは、割込みを受けたタ
スクに戻ってその時間量子を完了させるか、または新し
いタスクを選択することができる。
事象があると、オペレーティング・システムが、入出力
プログラムを開始し、実行の準備ができていて外部事象
を持っているタスクにリストを変更することが必要とな
る。オペレーティング・システムは、割込みを受けたタ
スクに戻ってその時間量子を完了させるか、または新し
いタスクを選択することができる。
3.外部事象が認識された場合、及び実行中のタスクは
一時的に中断された場合、中断時間中にその累積実行時
間は増加しない。
一時的に中断された場合、中断時間中にその累積実行時
間は増加しない。
上記の環境の説明は、本発明を支援する可能な環境の代
表例であるが、本発明は、この特定の環境のみに限られ
るものではない。本発明の目的は、時間量子の終りに割
込みを据え置き、コンテキスト交換のコストが比較的低
くなりそうな時にそれを行なわせることである。本発明
は、上記の通常動作を以下のように修正する。
表例であるが、本発明は、この特定の環境のみに限られ
るものではない。本発明の目的は、時間量子の終りに割
込みを据え置き、コンテキスト交換のコストが比較的低
くなりそうな時にそれを行なわせることである。本発明
は、上記の通常動作を以下のように修正する。
オペレーティング・システムは、時間量子を選択したタ
スクに割り振るとき、時間量子の最も早い終り及び時間
量子の最も遅い終りの2つの時間で時間量子を表す。量
子終り割込みは、最も早い時間より前には発生できず、
その時点より前に実行プログラムによってトリガされな
い限り、最も遅い時間に発生することが保証される。オ
ペレーティング・システムは、選択したタスクの実行を
開始し、選択したタスクは、それに割り振られた最小時
間量子の間実行され、それが終了した時点で量子終り割
込みが準備される。量子終り割込みが準備されている
間、タスクは実行を継続する。そのタスクが量子終り割
込みをトリガする命令を実行する場合は、その割込みは
直ちに処理される。タスクが割り振られた最大時間の間
実行される前に量子終りがトリガされない場合、量子終
り割込みがトリガされる。量子終り割込みがどのように
してトリガされようと、オペレーティング・システム
は、その割込みを通常の量子終り割込みとして処理す
る。実行中のタスクが準備された量子終り割込みをもっ
ている間に外部事象が割込みをトリガする場合、そのタ
スクは、その量子の終りに達したものとして扱われ、保
留中の割込みが除去される。
スクに割り振るとき、時間量子の最も早い終り及び時間
量子の最も遅い終りの2つの時間で時間量子を表す。量
子終り割込みは、最も早い時間より前には発生できず、
その時点より前に実行プログラムによってトリガされな
い限り、最も遅い時間に発生することが保証される。オ
ペレーティング・システムは、選択したタスクの実行を
開始し、選択したタスクは、それに割り振られた最小時
間量子の間実行され、それが終了した時点で量子終り割
込みが準備される。量子終り割込みが準備されている
間、タスクは実行を継続する。そのタスクが量子終り割
込みをトリガする命令を実行する場合は、その割込みは
直ちに処理される。タスクが割り振られた最大時間の間
実行される前に量子終りがトリガされない場合、量子終
り割込みがトリガされる。量子終り割込みがどのように
してトリガされようと、オペレーティング・システム
は、その割込みを通常の量子終り割込みとして処理す
る。実行中のタスクが準備された量子終り割込みをもっ
ている間に外部事象が割込みをトリガする場合、そのタ
スクは、その量子の終りに達したものとして扱われ、保
留中の割込みが除去される。
図面、特に第1図を参照すると、本発明による据置き可
能割込みを実施するための機構が示されている。この機
構は、3つのレジスタと2つの加算器を含む。それらの
レジスタは、経過時間レジスタ10、最小量子レジスタ
20、及び最大量子レジスタ30である。第1の加算器
40は、最小量子と経過時間の値の差をとる。経過時間
が最小量子時間を越えた場合は、結果の符号は負とな
る。負の符号のとき、割込みが下記のように準備され
る。同様に、第2の加算器50は最大量子と経過時間の
値の差をとる。この加算の結果が負の場合、下記のよう
に割込みが通知される。
能割込みを実施するための機構が示されている。この機
構は、3つのレジスタと2つの加算器を含む。それらの
レジスタは、経過時間レジスタ10、最小量子レジスタ
20、及び最大量子レジスタ30である。第1の加算器
40は、最小量子と経過時間の値の差をとる。経過時間
が最小量子時間を越えた場合は、結果の符号は負とな
る。負の符号のとき、割込みが下記のように準備され
る。同様に、第2の加算器50は最大量子と経過時間の
値の差をとる。この加算の結果が負の場合、下記のよう
に割込みが通知される。
第1図と従来技術の違いは、従来の経過時間に基づく割
込みの実施態様では、最大時間レジスタ30、経過時間
レジスタ10、及び加算器50しか使用しないことであ
る。割込みは、加算器の結果の符号を検査することによ
って通知される。この従来技術は、割込みを準備する手
段を含んでいないので、第1図に示される最小時間レジ
スタ20と加算器40の使用を教示していない。
込みの実施態様では、最大時間レジスタ30、経過時間
レジスタ10、及び加算器50しか使用しないことであ
る。割込みは、加算器の結果の符号を検査することによ
って通知される。この従来技術は、割込みを準備する手
段を含んでいないので、第1図に示される最小時間レジ
スタ20と加算器40の使用を教示していない。
第2図は、タスクを開始する前にオペレーティング・シ
ステムがとるステップを示す。オペレーティング・シス
テムは、機能ブロック60でタスクの経過時間をゼロに
初期設定し、第2図の機能ブロック70と80で最小及
び最大量子時間を初期設定する。第2図の最終ステップ
は、90で示すようにタスクを開始することである。機
能ブロック60、70、80で実行される動作の順序は
重要ではない。オペレーティング・システムは、こうし
た間に散在するオペレーティング・システム依存タスク
を実行することもできる。従来技術で教示されていない
第2図の態様は、ブロック70での最小時間の設定であ
る。
ステムがとるステップを示す。オペレーティング・シス
テムは、機能ブロック60でタスクの経過時間をゼロに
初期設定し、第2図の機能ブロック70と80で最小及
び最大量子時間を初期設定する。第2図の最終ステップ
は、90で示すようにタスクを開始することである。機
能ブロック60、70、80で実行される動作の順序は
重要ではない。オペレーティング・システムは、こうし
た間に散在するオペレーティング・システム依存タスク
を実行することもできる。従来技術で教示されていない
第2図の態様は、ブロック70での最小時間の設定であ
る。
第3図は、割込みを準備するのに必要な論理回路を示
す。走行中のタスクの経過時間が第3図のクロックで示
される。クロックは機能ブロック100示すように進め
られる。ブロック100の実行の間隔はシステムによっ
て異なり、システム中の最も速いクロック速度で実行す
る必要はない。
す。走行中のタスクの経過時間が第3図のクロックで示
される。クロックは機能ブロック100示すように進め
られる。ブロック100の実行の間隔はシステムによっ
て異なり、システム中の最も速いクロック速度で実行す
る必要はない。
クロックが進む度に、判断ブロック110で検査を行な
って、量子時間割込みの準備ができているかどうか判定
する。準備ができている場合、第4図の判断ブロック1
50に進んで、下記のような次の検査を行なう。準備が
できていない場合、判断ブロック120で経過時間の現
在値を最小量子時間と比較する。現在値が最小量子時間
を越える場合、機能ブロック130に示すように量子時
間割込みが準備される。
って、量子時間割込みの準備ができているかどうか判定
する。準備ができている場合、第4図の判断ブロック1
50に進んで、下記のような次の検査を行なう。準備が
できていない場合、判断ブロック120で経過時間の現
在値を最小量子時間と比較する。現在値が最小量子時間
を越える場合、機能ブロック130に示すように量子時
間割込みが準備される。
第4図は、量子時間割込みがどのようにして通知される
かを示す。この図は従来技術を反映したものである。判
断ブロック150で、現在経過時間を最大量子時間と比
較する。現在値が最大量子時間を越える場合、機能ブロ
ック160に示すように割込みが通知される。
かを示す。この図は従来技術を反映したものである。判
断ブロック150で、現在経過時間を最大量子時間と比
較する。現在値が最大量子時間を越える場合、機能ブロ
ック160に示すように割込みが通知される。
第5図は、プログラムが、準備された割込みをどのよう
に発生させるかを示す。プログラムは、コンテキスト交
換オーバヘッドが他の場所で生じるオーバヘッドよりも
局所的に小さいプログラムに入れられた特殊命令を実行
する。この命令の実行を機能ブロック200に戻す。こ
の命令の実行により、判断ブロック210に示すように
割込みの状態が検査される。割込みが準備されている場
合、機能ブロック220で割込みを通知する。割込みの
通知は、量子の終りを意味する。オペレーティング・シ
ステムは、時間量子の終りに応じて、従来技術で利用可
能な技法を使ってタスクを中断することにより、割込み
に応答する。割込みが準備できていない場合、この特殊
命令は、割込み命令を取り出して解釈するのに必要な時
間を利用すること以外、プログラム実行に影響を及ぼさ
ない。
に発生させるかを示す。プログラムは、コンテキスト交
換オーバヘッドが他の場所で生じるオーバヘッドよりも
局所的に小さいプログラムに入れられた特殊命令を実行
する。この命令の実行を機能ブロック200に戻す。こ
の命令の実行により、判断ブロック210に示すように
割込みの状態が検査される。割込みが準備されている場
合、機能ブロック220で割込みを通知する。割込みの
通知は、量子の終りを意味する。オペレーティング・シ
ステムは、時間量子の終りに応じて、従来技術で利用可
能な技法を使ってタスクを中断することにより、割込み
に応答する。割込みが準備できていない場合、この特殊
命令は、割込み命令を取り出して解釈するのに必要な時
間を利用すること以外、プログラム実行に影響を及ぼさ
ない。
第6図は、外部事象が量子終り端割込みをどのようにト
リガするかを示す。機能ブロック300で、外部事象に
よって割込みが通知される。これが発生すると、判断ブ
ロック310で量子時間割込みを検査する。それも準備
されている場合、機能ブロック320で、それも割込み
として通知されるので、少なくとも2つの割込みが現在
に保留中となる。それも準備できていない場合は、機能
ブロック330で、走行中のタスクの経過時間の記録専
用のレジスタが動作不能になる。この時点で、オペレー
ティング・システムは走行中のタスクを中断し、外部事
象に関連するタスクのスケジュールを立てる。
リガするかを示す。機能ブロック300で、外部事象に
よって割込みが通知される。これが発生すると、判断ブ
ロック310で量子時間割込みを検査する。それも準備
されている場合、機能ブロック320で、それも割込み
として通知されるので、少なくとも2つの割込みが現在
に保留中となる。それも準備できていない場合は、機能
ブロック330で、走行中のタスクの経過時間の記録専
用のレジスタが動作不能になる。この時点で、オペレー
ティング・システムは走行中のタスクを中断し、外部事
象に関連するタスクのスケジュールを立てる。
従来技術で教示されてない第6図の重要な新しい考え
は、外部事象が、通常なら後まで行なわれないコンテキ
スト交換を強制する好機となることである。第2のタス
クが走行できるように元のタスクが短時間中断されるの
で、第2のタスクは、それ自体をキャッシュ・メモリに
ロードして、第1のタスクに関連する状態の一部を除去
する。これにより、第1のタスクに関連する状態のサイ
ズが局所的に縮小される。第2タスクの走行が完了する
と、オペレーティング・システムは通常、第1のタスク
に戻る。というのは、その時間量子が終わっていないか
らである。しかし、量子割込みが準備されている場合
は、交換される状態のサイズが比較的小さいどの時点で
も割込みを行なうことができる。そうなるのは、割込み
タスクの処理の終りである。第6図の機能ブロック32
0で示すように、量子時間割込みを通知することによ
り、オペレーティング・システムは、割込みタスクを処
理した後に元のタスクに戻らず、そのためコンテキスト
交換が局所的に好ましい時点で行なわれる。
は、外部事象が、通常なら後まで行なわれないコンテキ
スト交換を強制する好機となることである。第2のタス
クが走行できるように元のタスクが短時間中断されるの
で、第2のタスクは、それ自体をキャッシュ・メモリに
ロードして、第1のタスクに関連する状態の一部を除去
する。これにより、第1のタスクに関連する状態のサイ
ズが局所的に縮小される。第2タスクの走行が完了する
と、オペレーティング・システムは通常、第1のタスク
に戻る。というのは、その時間量子が終わっていないか
らである。しかし、量子割込みが準備されている場合
は、交換される状態のサイズが比較的小さいどの時点で
も割込みを行なうことができる。そうなるのは、割込み
タスクの処理の終りである。第6図の機能ブロック32
0で示すように、量子時間割込みを通知することによ
り、オペレーティング・システムは、割込みタスクを処
理した後に元のタスクに戻らず、そのためコンテキスト
交換が局所的に好ましい時点で行なわれる。
すなわち、準備された量子時間割込みは、命令の実行ま
たは外部事象割込みの通知によって通知できる。一般
に、準備された割込みは、局所的に小さいコンテキスト
を生成することが認められているどんな条件下でも通知
される。どんな条件でそうなるかは、コンピュータ・シ
ステムの特徴によって変わる。
たは外部事象割込みの通知によって通知できる。一般
に、準備された割込みは、局所的に小さいコンテキスト
を生成することが認められているどんな条件下でも通知
される。どんな条件でそうなるかは、コンピュータ・シ
ステムの特徴によって変わる。
広義に述べると、本発明は、(1)プログラムフットプ
リントが小さいときに発生する傾向にあるコンテキスト
交換のための割込みと、(2)フットプリントのサイズ
が減少する点で割込みをトリガする手段から構成され
る。コンテキスト交換割込みは、以下の事象でトリガさ
れる。
リントが小さいときに発生する傾向にあるコンテキスト
交換のための割込みと、(2)フットプリントのサイズ
が減少する点で割込みをトリガする手段から構成され
る。コンテキスト交換割込みは、以下の事象でトリガさ
れる。
1.基本ブロックからの出口。
2.ファイルのクローズ(バッファ記憶機構が戻される
とき)及び 3.記憶機構が他の目的で使用されるために戻されると
きの他の同様の検出可能な事象。
とき)及び 3.記憶機構が他の目的で使用されるために戻されると
きの他の同様の検出可能な事象。
これらの事象は、コンパイラによってコードに入れられ
た特殊割込み命令によって通知される。特殊命令の働き
は、コンテキスト交換割込みが準備されている場合に割
込みを引き起こすと、及びそうでない場合は影響を及ぼ
さないことである。割込みを生成する簡単でうまいやり
方は、サブルーチン・リターン及び割込みリターンが実
行されるときに割込みを発生させることである。どの場
合にも、プログラムまたはプロセスから出る最中であ
り、その状態が近い将来に必要となる可能性は小さい。
より効果的な方法は、アルゴリズム分析を使って、サブ
ルーチンが、大きな直線コードでありあるいは1つまた
は複数のネスティング・レベルのループをもち、かつサ
ブルーチンが触れる可能性のあるデータ・セルと命令セ
ルの総数がキャッシュ・サイズと同程度であるという特
徴をもつ、サブルーチンからの出口がいつ発生するかを
決定することである。この特徴が検出されると、そのサ
ブルーチンは、キャッシュの大きな部分を占有し、その
部分を以後のコードは必要としない。
た特殊割込み命令によって通知される。特殊命令の働き
は、コンテキスト交換割込みが準備されている場合に割
込みを引き起こすと、及びそうでない場合は影響を及ぼ
さないことである。割込みを生成する簡単でうまいやり
方は、サブルーチン・リターン及び割込みリターンが実
行されるときに割込みを発生させることである。どの場
合にも、プログラムまたはプロセスから出る最中であ
り、その状態が近い将来に必要となる可能性は小さい。
より効果的な方法は、アルゴリズム分析を使って、サブ
ルーチンが、大きな直線コードでありあるいは1つまた
は複数のネスティング・レベルのループをもち、かつサ
ブルーチンが触れる可能性のあるデータ・セルと命令セ
ルの総数がキャッシュ・サイズと同程度であるという特
徴をもつ、サブルーチンからの出口がいつ発生するかを
決定することである。この特徴が検出されると、そのサ
ブルーチンは、キャッシュの大きな部分を占有し、その
部分を以後のコードは必要としない。
あるサブルーチンの実行が終了する前にコンテキスト交
換割込みが発生する場合、サブルーチンから出る前に、
そのサブルーチンをキャッシュに再ロードしなければな
らない。サブルーチンから出るのを待ってコンテキスト
交換割込みが行なわれる場合、キャッシュ再ロード過渡
は回避される。上記の特性をもつサブルーチンを識別す
ることにより、コンパイラはこうした各リーチンの出口
の前にコンテキスト交換割込みトリガを挿入することが
できる。本発明は、割込みをトリガするどの手段を使っ
ても性能の向上をもたらす。性能の向上は、割込みがフ
ットプリントのサイズの最大の縮小を伴う場合に大きく
なる傾向にある。
換割込みが発生する場合、サブルーチンから出る前に、
そのサブルーチンをキャッシュに再ロードしなければな
らない。サブルーチンから出るのを待ってコンテキスト
交換割込みが行なわれる場合、キャッシュ再ロード過渡
は回避される。上記の特性をもつサブルーチンを識別す
ることにより、コンパイラはこうした各リーチンの出口
の前にコンテキスト交換割込みトリガを挿入することが
できる。本発明は、割込みをトリガするどの手段を使っ
ても性能の向上をもたらす。性能の向上は、割込みがフ
ットプリントのサイズの最大の縮小を伴う場合に大きく
なる傾向にある。
本発明を1つの好ましい実施例に照らして説明したが、
当業者には周知の通り、本発明は、特許請求の範囲の精
神及び範囲に含まれる類似の修正を施して実施すること
ができる。
当業者には周知の通り、本発明は、特許請求の範囲の精
神及び範囲に含まれる類似の修正を施して実施すること
ができる。
第1図は、据置き可能割込みを制御する手段を図示する
構成図である。 第2図は、据置き可能割込みを設定する手段を図示する
構成図である。 第3図は、据置き可能割込みが準備されたときに起こる
事象を示す流れ図である。 第4図は、最大量子時間に達したために据置き可能割込
みが通知されるときに起こる事象を示す流れ図である。 第5図は、割込みを認識すべき点に達したときに、準備
された据置き可能割込みをプログラムがどうトリガする
かを示す流れ図である。 第6図は、あるタスクが、その据置き可能割込みが準備
される前に割込みを受けた場合に、据置き可能割込みを
動作不能にするために取られる処置を示す流れ図であ
る。 10……経過時間レジスタ、20……最小量子レジス
タ、30……最大量子レジスタ、40、50……加算
器。
構成図である。 第2図は、据置き可能割込みを設定する手段を図示する
構成図である。 第3図は、据置き可能割込みが準備されたときに起こる
事象を示す流れ図である。 第4図は、最大量子時間に達したために据置き可能割込
みが通知されるときに起こる事象を示す流れ図である。 第5図は、割込みを認識すべき点に達したときに、準備
された据置き可能割込みをプログラムがどうトリガする
かを示す流れ図である。 第6図は、あるタスクが、その据置き可能割込みが準備
される前に割込みを受けた場合に、据置き可能割込みを
動作不能にするために取られる処置を示す流れ図であ
る。 10……経過時間レジスタ、20……最小量子レジス
タ、30……最大量子レジスタ、40、50……加算
器。
Claims (2)
- 【請求項1】実行すべきタスクのリストを維持し、該リ
ストからタスクを呼び、 上記タスクのための経過時間をゼロにセットし、上記タ
スクのための最小および最大の量子時間をセットし、 上記タスクを開始し、 上記タスクの実行中、上記タスクの経過時間を進め、 上記経過時間を上記最小量子時間と比較し、 上記経過時間が、上記最小量子時間を越えれば、割り込
みを準備し、 割り込みが準備されたかどうかをチェックし、 割り込みが準備されているならば、経過時間を上記最大
量子時間と比較し、 上記経過時間が上記最大時間を越えるならば、割り込み
を通知すること、 を含む、多量プログラム式コンピュータ・システムにお
けるコンテキスト交換でのキャッシュ再ロード・オーバ
ーヘッドを減少させる方法。 - 【請求項2】多重プログラム式コンピュータ・システム
上で1つのタスクを実行する時間に対応する値を記憶す
る経過時間レジスタ手段と、 前記タスクに割り当てられた最小量子時間に対応する値
を記憶する最小量子時間レジスタ手段と、 前記タスクに割り当てられた最大量子時間に対応する値
を記憶する最大量子時間レジスタ手段と、 前記経過時間レジスタ手段及び前記最小量子時間レジス
タ及び最大量子時間レジスタ手段に接続された、経過時
間を最小量子時間と比較し、かつ経過時間を最大量子時
間と比較するための比較論理手段と、 を含むコンテキスト交換によるキャッシュ再ロード・オ
ーバーヘッドを減少させるようにした多重プログラム式
コンピュータ・システム。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US07/349,621 US5065310A (en) | 1989-05-10 | 1989-05-10 | Reducing cache-reload transient at a context swap |
US349621 | 1989-05-10 |
Publications (2)
Publication Number | Publication Date |
---|---|
JPH0355634A JPH0355634A (ja) | 1991-03-11 |
JPH065515B2 true JPH065515B2 (ja) | 1994-01-19 |
Family
ID=23373248
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2118853A Expired - Lifetime JPH065515B2 (ja) | 1989-05-10 | 1990-05-10 | キャッシュ再ロード・オーバーヘッドを減少させる方法およびコンピュータ・システム |
Country Status (3)
Country | Link |
---|---|
US (1) | US5065310A (ja) |
EP (1) | EP0396863A3 (ja) |
JP (1) | JPH065515B2 (ja) |
Families Citing this family (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
ATE193607T1 (de) * | 1993-11-26 | 2000-06-15 | Siemens Ag | Recheneinheit mit mehreren ausführbaren tasks |
DE69435090T2 (de) * | 1993-12-01 | 2009-06-10 | Marathon Technologies Corp., Stow | Rechnersystem mit Steuereinheiten und Rechnerelementen |
WO1995032466A1 (en) * | 1994-05-19 | 1995-11-30 | Vlsi Technology, Inc. | Flexible register mapping scheme |
TW405090B (en) * | 1997-04-04 | 2000-09-11 | Ibm | Predictive cache loading by program address discontinuity history |
JP2006146678A (ja) * | 2004-11-22 | 2006-06-08 | Hitachi Ltd | 情報処理装置におけるプログラム制御方法、情報処理装置、及びプログラム |
US8260996B2 (en) * | 2009-04-24 | 2012-09-04 | Empire Technology Development Llc | Interrupt optimization for multiprocessors |
US8321614B2 (en) * | 2009-04-24 | 2012-11-27 | Empire Technology Development Llc | Dynamic scheduling interrupt controller for multiprocessors |
US8234431B2 (en) * | 2009-10-13 | 2012-07-31 | Empire Technology Development Llc | Interrupt masking for multi-core processors |
JP6730587B2 (ja) * | 2016-06-13 | 2020-07-29 | 富士通株式会社 | キャッシュミス推定プログラム、キャッシュミス推定方法及び情報処理装置 |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4425616A (en) * | 1979-11-06 | 1984-01-10 | Frederick Electronic Corporation | High-speed time share processor |
US4382278A (en) * | 1980-06-05 | 1983-05-03 | Texas Instruments Incorporated | Hierarchial memory system with microcommand memory and pointer register mapping virtual CPU registers in workspace cache #4 and main memory cache |
US4463424A (en) * | 1981-02-19 | 1984-07-31 | International Business Machines Corporation | Method for dynamically allocating LRU/MRU managed memory among concurrent sequential processes |
US4422145A (en) * | 1981-10-26 | 1983-12-20 | International Business Machines Corporation | Thrashing reduction in demand accessing of a data base through an LRU paging buffer pool |
US4484274A (en) * | 1982-09-07 | 1984-11-20 | At&T Bell Laboratories | Computer system with improved process switch routine |
JPS59225463A (ja) * | 1983-06-06 | 1984-12-18 | Fuji Electric Co Ltd | プログラムの実行待ち時間監視方式 |
JPH06100981B2 (ja) * | 1983-12-28 | 1994-12-12 | 株式会社日立製作所 | 記憶階層制御方式 |
US4794521A (en) * | 1985-07-22 | 1988-12-27 | Alliant Computer Systems Corporation | Digital computer with cache capable of concurrently handling multiple accesses from parallel processors |
-
1989
- 1989-05-10 US US07/349,621 patent/US5065310A/en not_active Expired - Fee Related
-
1990
- 1990-03-03 EP EP19900104152 patent/EP0396863A3/en not_active Ceased
- 1990-05-10 JP JP2118853A patent/JPH065515B2/ja not_active Expired - Lifetime
Also Published As
Publication number | Publication date |
---|---|
EP0396863A3 (en) | 1992-05-27 |
US5065310A (en) | 1991-11-12 |
EP0396863A2 (en) | 1990-11-14 |
JPH0355634A (ja) | 1991-03-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US6021425A (en) | System and method for optimizing dispatch latency of tasks in a data processing system | |
US5386561A (en) | Method of integrated system load control through dynamic time-slicing in a virtual storage environment | |
US5386563A (en) | Register substitution during exception processing | |
US5349656A (en) | Task scheduling method in a multiprocessor system where task selection is determined by processor identification and evaluation information | |
US6233599B1 (en) | Apparatus and method for retrofitting multi-threaded operations on a computer by partitioning and overlapping registers | |
US7290261B2 (en) | Method and logical apparatus for rename register reallocation in a simultaneous multi-threaded (SMT) processor | |
US9798595B2 (en) | Transparent user mode scheduling on traditional threading systems | |
US6006247A (en) | Method and system for scheduling threads and handling exceptions within a multiprocessor data processing system | |
US6996821B1 (en) | Data processing systems and method for batching tasks of the same type in an instruction cache | |
EP0106669B1 (en) | Operating system supervisor | |
US5274813A (en) | Operation system having a migration function which moves saved data associated with an interrupted process to a different save area | |
KR970011213B1 (ko) | 에러 처리법을 갖는 포스트식 기입 디스크 기입 동작의 큐잉 방법 | |
EP1766518B1 (en) | Adaptive algorithm for selecting a virtualization algorithm in virtual machine environments | |
EP0747816A2 (en) | Method and system for high performance multithread operation in a data processing system | |
JPH03147047A (ja) | 入出力チャネル経路上の負荷を均衡させる方法及びコンピュータ・システム | |
KR100463987B1 (ko) | 공통처리알고리즘을이용한다수의큐핸들링방법및장치 | |
RU2312388C2 (ru) | Способ организации многопроцессорной эвм | |
WO2005048009A2 (en) | Method and system for multithreaded processing using errands | |
JPH065515B2 (ja) | キャッシュ再ロード・オーバーヘッドを減少させる方法およびコンピュータ・システム | |
JP4610322B2 (ja) | 割込み処理制御の方法と装置 | |
US5727219A (en) | Virtual input/output processor utilizing an interrupt handler | |
US7206884B2 (en) | Interrupt priority control within a nested interrupt system | |
EP0052713B1 (en) | A process management system for scheduling work requests in a data processing system | |
US8010963B2 (en) | Method, apparatus and program storage device for providing light weight system calls to improve user mode performance | |
JP2005521937A (ja) | コンピュータオペレーティングシステムにおけるコンテキスト切り替え方法及び装置 |