JP3777162B2 - キューを維持するための方法及び装置 - Google Patents
キューを維持するための方法及び装置 Download PDFInfo
- Publication number
- JP3777162B2 JP3777162B2 JP2003036149A JP2003036149A JP3777162B2 JP 3777162 B2 JP3777162 B2 JP 3777162B2 JP 2003036149 A JP2003036149 A JP 2003036149A JP 2003036149 A JP2003036149 A JP 2003036149A JP 3777162 B2 JP3777162 B2 JP 3777162B2
- Authority
- JP
- Japan
- Prior art keywords
- queue
- section
- entry
- entries
- sections
- 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
Images
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/123—Replacement control using replacement algorithms with age lists, e.g. queue, most recently used [MRU] list or least recently used [LRU] list
-
- 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
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)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Description
【発明の属する技術分野】
本発明は、概して云えば、セクション化され且つ順序付けられたキューを全探索(traversing)する時及びそれらのキュー・エントリを操作する時のオペレーティング・コストの低減を得るために、オペレーティング・システムがこれらのキューを形成及び維持するための方法に関する。更に詳しく云えば、本発明は、他のアドレス・スペースにおける可能性ある使用のために、オペレーティング・システムが実記憶装置をアドレス・スペースから回復するための効率的な方法に関する。本願では、使用中の実記憶装置をアドレス・スペースにより表すキューは非常に長いキューである。
【0002】
【従来の技術】
一般に、複数の仮想アドレス・スペースをサポートし、実記憶装置アドレス(以下、フレームと呼ぶ)によって同時に支援されるよりも多くの仮想アドレス(以下、ページと呼ぶ)をサポートする能力を有するオペレーティング・システムでは、フレームの使用を異なるアドレス・スペースに再割り振りする必要があることが時々ある。この技法はページングと呼ばれ、オペレーティング・システムが1つのアドレス・スペースのリソースのサブセットを再利用すること及びそのサブセットを他のアドレス・スペースにおける即時操作のために使用することを可能にする。システムが1つのページを参照又は更新する時、1つのフレームが得られ、そのページに対する動的アドレス変換テーブルが、「バッキング(backing)」と呼ばれるプロセスを使用して更新される。そのプロセスは、実メモリがそのページと関連付けられることを表す。
【0003】
このプロセスは、IBM OS/390 オペレーティング・システムに関して IBM Redbooks ABCs of OS/390 System Programming Volume 1, SG24-5597-00誌の43−71ベージ(2000年4月発行)及び OS/390 Version 2 Release 10 Implementation, SG24-5976-00 誌の9−34ページ(2001年3月発行)のような文献に開示されている。図1を参照すると、OS/390オペレーティング・システム(OS)のインスタンス10が仮想記憶のリクエストを支援するためにフレームを必要とする時、それは、リクエストを満足させるために、使用可能なフレーム14のキュー12に進む。この目的のために妥当な数のフレームがこのキュー12に存在することを保証するために、システム・リソース管理プログラム(SRM)18が定期的にチェックを行う。OSインスタンス10は、個別の各アドレス・スペース16のための使用中のフレーム・キュー12を維持する。SRM18が不足を検出する場合、それは、最低使用頻度(LRU)アルゴリズムを使って、使用可能なフレームの供給を満たすためにはそのシステムにおけるどの使用中のフレームが再利用されるべき最良の候補であるかを決定する。(このアルゴリズムを使用すると、最近参照されてないフレームが再利用されるべき最良の候補である)。フレームを再利用するためのこのプロセスは、以下では、スチーリング(stealing)と呼ばれる。
【0004】
実記憶管理プログラム(RSM)20は、アドレス・スペース16によって使用中の各フレームに対する未参照インターバル・カウント(UIC)を維持することによって、フレームがどの程度最近参照されたかを識別する。どのフレームがスチールすべき最良の候補であるかをシステムが速く識別するために、実記憶管理プログラム(RSM)20がアドレス・スペース・フレーム・キューを、最低参照頻度のフレームをキュー12の始めとするUIC順に維持する。RSM20は、定期的に更新処理を実行する。その更新処理は、フレームが参照されたかどうかを決定し、そして、その結果が肯定的である場合、フレーム・キュー12の終わりまでそのフレームを移動させるものである。更新処理が完了すると、一定値だけインクレメントされたUIC値を有する最小参照頻度のフレームがキューの始めに残り、ゼロにリセットされたUIC値を有する最高参照頻度のフレームがフレーム・キュー12の終わりに存在する。
【0005】
SRM18は、スチールされるべきターゲット・アドレス・スペース16を選択し、しかも、任意のターゲット・フレーム・キュー12からスチールされるべきフレームが持ち得る最小のUIC値を表示する。SRM18は、スチール・リクエストを満足させるために必要なフレームの合計数も指定する。そこで、RSMスチール処理は、その表示されたアドレス・スペースのフレーム・キューを全探索すること及びSRMのUICスチール基準に適合したフレームを選択することによって、SRMのリクエストを満足させようとする。RSMスチール処理は、フレームが最近参照されたかどうかを決定するための1つの最終チェックを行い、RSM UIC更新プロセスのように、いずれの参照フレームも、それらのUIC値をゼロにリセットすることによってフレーム・キュー12の終わりまで移動させる。RSMスチール・プロセスがSRMのリクエストを十分に満たすことができない場合、SRM18は、種々のパラメータを有する新たなスチール・リクエストを作成することを選択し得るし、このプロセスは、フレームに対するシステムの要求が満たされるまで繰り返し得る。
【0006】
ハードウェア設計の新たな進歩によって、大きな仮想記憶領域がオペレーティング・システムにおけるアドレス・スペース16にとって使用可能なものにされる。アドレス・スペース16に関連付けられたフレーム・キューを線形構造に保つその代表的な方法は、キューを全探索する時にシステム・パフォーマンスの低下を生じさせることがある。マルチタスキング環境では、そのようなキュー12を処理するためにリソース直列化(resource serialization)を必要とする。そのリソース直列化は、他のプロセスがディスパッチされないようにすることがあり、或いは長いキュー12の処理がシステムの指定されたタイムアウト・インターバルを越えた場合に異常タスク終了を生じさせることがある。RSM UIC更新及びRSM UICスチール・プロセスは、この大きい仮想記憶領域を表すフレーム・キューを全探索又は処理する時、最早自分の機能を効果的に遂行することができないことがあり得る。
【0007】
【発明が解決しようとする課題】
一般に、本発明の目的は、データ処理システムにおいてキューを維持するための方法及び装置を提供することにある。
【課題を解決するための手段】
【0008】
本発明では、最初のキュー・セクションから最後のキューセクションまで順序よく配列された複数のキュー・セクションが定義される。各キュー・セクションは、最初のキュー・エントリから最後のキュー・エントリまで順序よく配列された1つ又は複数のキュー・エントリを含む。各キュー・セクションに対して及びそれらキュー・セクションにおける各キュー・エントリに対して、ウェイト係数(weight factor)が定義される。各キュー・エントリは、キュー・セクションに対して定義されたウェイト係数をキュー・エントリに対して定義されたウェイト係数と結合することによって有効ウェイト係数を形成される。
【0009】
キュー・エントリは、使用可能な記憶ロケーション、特に、実記憶アドレスの範囲に対応し得る。そのようなキュー・エントリに対する有効ウェイト係数は、そのエントリに対応した記憶ロケーションが参照されなかった時間の量を表す。
【0010】
新たなエントリは、新たに使用可能な対応する記憶ロケーションを表すために、最後のキュー・セクションに加えられる。一方、少なくとも有効ウェイト係数を有し、前のタイム・インターバルにおいて参照されなかった記憶ロケーションに対応する1つ又は複数のキュー・エントリは、その対応する記憶ロケーションが最早使用可能ではないことを表すために、最初のキュー・セクションから削除される。
【0011】
キュー・エントリの有効ウェイト係数は、対応する記憶ロケーションが参照されたかどうかに従って定期的に更新される。これは、前のタイム・インターバルにおいて参照されなかった記憶ロケーションに対応するキュー・エントリの有効ウェイト係数をインクレメントすること及び前のタイム・インターバルにおいて参照された記憶ロケーションに対応するキュー・エントリの有効ウェイト係数をリセットすることによって行われる。そのような更新中、キュー・エントリは、それらの有効ウェイト係数の順序でセクション内に維持される。望ましくは、最初のキュー・セクションにおける各キュー・エントリに対して定義された個々のウェイト係数は、対応する記憶ロケーションが参照されなかったかどうかに従って更新され、一方、各残りのキュー・セクションに対して定義されたウェイト係数だけが、そのような残りのキュー・セクションにおける各キュー・エントリに対して定義された個々のウェイト係数を更新することなく、更新される。参照された記憶ロケーションに対応する最初1のキュー・セクション内の各キュー・エントリが他のセクションに移動する。
【0012】
キュー・セクション間でキュー・エントリを移動させること及び必要に応じてキュー・セクションを作成又は削除することによって、各キュー・セクションにおけるキュー・エントリの数がそれらのキュー・セクションに対して定義された所定の許容可能な範囲内に維持されることが望ましい。移動したキュー・エントリに対して定義されたウェイト係数は、新たなキュー・セクションにおけるそれらの有効ウェイト係数が古いキュー・セクションにおけるそれらの有効ウェイト係数と同じになるように調節される。
【0013】
大量の仮想記憶域を使用するアドレス・スペースを持ったコンピュータ・システムでは、仮想記憶域の量を維持及び制御するために使用されるシステム・リソース・キュー、即ち、実記憶フレーム・キューにおけるエントリの数が比例的に大きくなる。キュー・エントリの順序を維持し、キューを全探索し、及びキュー・エントリを処理する操作コストは、長いキューを一定の最大及び最小数のエントリのセクションに編成すること及びウェイト係数を各セクション及び個々のキュー・エントリに割り当てることによって削減され得る。セクションはそれらのウェイト係数によって順序付けられ、キュー操作処理は、セクションのウェイト係数によって決定されたセクション基準により1つのセクション上で遂行され得る。このキュー構造は、以下では、セクション化され且つ順序付けされたキュー(sectioned ordered queue)と呼ばれる。
【0014】
キュー・エントリを保証するためのウェイト係数更新プロセスが定義され、それらのセクションは、エントリがキューに残っている時間の長さを表すそれらのウェイト係数によって順序付けられる。最低使用頻度(LRU)アルゴリズムを使用して、プロセスは、最近参照されてないエントリのウェイト係数を定期的に増加させる。やがて、キュー・エントリが参照されなかった時間が長ければ長いほど、それのウェイト係数の値は高くなる。ウェイト係数は、エントリが如何に長く参照されずにキュー上にあったかを決定するための簡単な方法を提供する。そこで、エントリは、最高のウェイト係数の値がキューにおける最も古いセクション上にあるように、それらのウェイト係数の値に関して降順に順序付けられる。このプロセスは、キューの最も古いセクションが少なくとも最小の許容可能な数のエントリを含むことも保証する。そのようなセクションは、コンピュータ・システムにおいて使用可能な他のキュー操作プロセスに対する最良の候補である。そのウェイト係数更新プロセスは、システム・オペレーションの過程を通して一定のインターバルでシステム・リソース管理プログラムにより開始される。
【0015】
再使用のためには参照されなかったキュー・エントリをシステム・リソース管理プログラムがスチール・バックすることを必要とする時がある。コンピュータ・システムの選択されたアドレス・スペースにおけるキューを検査するためのキュー・エントリ・スチール・プロセスが定義される。キュー・エントリがウェイト係数更新プロセスによってそれらのウェイト係数値の降順に保持されていたので、そのエントリ・スチール・プロセスは、最近参照されなかったエントリを見つけるためにキューの最初のセクションを見る必要があるだけであり、従って、それらはスチールするための良好な候補である。キューの最も古いセクションが既に最大数のエントリを含んでいるので、そのエントリ・スチール・プロセスは、キューのすべてのセクションを通して全探索することを必要とせずに、これらのセクションからスチールするに十分なエントリを見つけそうである。
【0016】
セクション化され且つ順序付けられたキューを維持するに不可欠な部分でもあるもう1つのプロセスは、キューの2つのセクションをマージするプロセスである。そのマージ・プロセスは、コンピュータ・システムおける他の任意のプロセスによっていつでも開始され得る。そのプロセスは、最も新しいセクションから最も古いセクションまでの隣接した一対のキュー・セクションを検査する。許容可能なエントリの最大数を超えることなく一対のセクションがマージされ得る時、小さいセクションからのエントリが長いセクションに移動する。移動するエントリのウェイト係数は、それらの新たなセクションに関連するそれらの有効ウェイト係数が元のキュー・セクションにおけるそれらの有効ウェイト係数と同じままであるように調節される。
【0017】
セクション化され且つ順序付けられたキューの構造及び前述のキュー操作プロセスは、コンピュータ・システムにおいて種々のデータ構造を実現するために使用され得る。そのような構造の1つは優先順位ディスパッチ・キューであり、そのプロセスは、そのキューにおいて使われたそれらの時間又はそれらの経過時間(age)に基づいてディスパッチされるのを待っているキューにおいて進められる。そのようなキューのエントリに対するウェイト係数はそのキューにおけるそれらエントリの経過時間である。
【0018】
【発明の実施の形態】
図2は、本発明を組み込んだコンピュータ・システム100の基本エントリを示す。その図に示されるように、システム100は、一組のセクション化され且つ順序付けられたキュー104を、システム100の各アドレス・スペース106に対し1つ宛維持する実記憶管理プログラム(RSM)102を含む。各キュー104は、キュー・アンカ112からの距離によって決定される(後述のような)最も古いセクション108と(後述のような)最も若い又は最も新しいセクション108との間に(適当なポインタ110を介して)順序よく配列された複数のセクション108を含む。各セクション108は、セクション・ヘッダ114及び1つ又は複数のキュー・エントリ又はエントリ116を含み、それらのキュー・エントリ又は素子116は、キュー・ヘッダ114からの距離によって決定される最も古いエントリ116と最も若い又は最も新しいエントリ116との間に(適当なポインタ118を介して)同様に順序よく配列される。最も古いセクション108のヘッダ114はキュー・アンカ112として作用する。
【0019】
上記のように、キュー・セクション108を参照するために本願において使用される用語「最も古い」、「最も若い」、「最も新しい」、「最初の」、「最後の」等は、ヘッダ114の連鎖におけるロケーションを参照するものである。従って、「最初の」又は「最も古い」キュー・セクション108は、キュー・アンカ112としてヘッダ114を有するキュー・セクション108であり、一方、「最も若い」、「最も新しい」又は「最後の」キュー・セクションは、キュー・アンカ112から最も遠いヘッダ114を有するキュー・セクション108である。キュー・アンカ112に近いキュー・セクション108は、一般に、早い時点で作成されるけれども、後記の例からも明らかなように、これは必ずしも真実とは限らない。
【0020】
上記従来の技術の項において説明したように、キューの各エントリ116は、キュー104が維持される特定のアドレス・スペース106にシステム100によって割り当てられた実記憶アドレスのフレーム(一般には、4096バイト)に対応する。各キュー・エントリ116は、そのエントリがキュー内にあった時間の長さ、即ち、対応する実記憶フレームが、対応するアドレス・スペース106に割り当てられていた時間の長さ、を表す未参照のインターバル・カウント(UIC)に対応した有効ウェイト係数を有する。
【0021】
エントリ116がそれのキュー104において費やした更なる時間の長さを反映するように、定期的に各キュー・エントリ116に対する有効ウェイト係数が更新される、詳しくは、インクレメントされる。本発明によれば、キュー・エントリに対する有効ウェイト係数は、キュー・セクション108に対して全体として定義されたセクションのウェイト係数と特定のキュー・エントリ116に対して定義されたエントリのウェイト係数とを結合すること、即ち、合算することによって得られる。更新されなければならないのはキュー・セクション・ヘッダ108だけなので、このようにキュー・エントリ116に対する有効ウェイト係数をエンコードすることによって、更新速度を劇的に増加させることが可能である。
【0022】
RSM102は、キュー104を管理するための多数のプロセスを含む。それらは、ウェイト係数更新プロセス120、フレーム・スチール・プロセス122、及びセクション・マージ・プロセス124を含む。更新プロセス120は、各キュー・セクション108のウェイト係数を更新することにより、その時点でキュー104にある各キュー・エントリ116のウェイト係数を更新するために定期的に呼び出される。スチール・プロセス122は、実記憶フレームを1つのアドレス・スペース106から「スチール」してそのフレームをもっと必要とする他のアドレス・スペース106に割り当てる必要があると思われる度に呼び出される。最後に、マージ・プロセス124は、種々のセクション108の間でキュー・エントリ116を移動させる必要がある時に呼び出される。
【0023】
I.キュー平衡化
キュー操作処理からの満足すべき結果を保証するためには、キュー104の各セクション108において一貫した且つ妥当な数のエントリ116を維持することが重要である。この技法は、以下では、キュー平衡化プロセスと呼ばれる。これに関する2つの可能な実施方法を次に開示する。
【0024】
1.第1実施方法
第1実施方法は、いつも十分に多数のセクション108でもってキュー104を維持するものではない。むしろ、処理時間を少なくするために、従って、システム・パフォーマンスを高めるために、キュー・セクション108が最大及び最小の許容可能な値の間の妥当な数のエントリ116を含むことは確かである。キュー・セクション・エントリ116を維持するプロセスは、単一のキュー・エントリ116に対する各エンキュー又はデキュー・リクエストの直後には生じないで、多数のキュー・エントリ116に影響すると思われるキュー操作の後に開始される。
【0025】
A.エントリの付加
この実施方法では、新たなエントリ116がキュー104に入れられるべき時、それは、最も低いウェイト係数値をいつも割り当てられ、キュー104の終わりに入れられる。最後のセクション108、従って、その時、最も若いセクション108が最大数のエントリ116を含んでいる場合、新たな最も若いセクション108に対するヘッダ114がその新たなエントリ116を含むように作成される。キュー・セクション108の残り及びそれらのエントリ116は、このプロセス中(図3)影響を受けない。
【0026】
図17は、本発明のこの実施方法においてキュー・エントリ116を付加するための手順1500を示す。この図及び図3を参照すると、新たなエントリ116がキュー104に加えられるべき時(ステップ1502)、RSM102は、先ず、(図3におけるヘッダHDR3を有する)最後のキュー・セクション108が満杯であるかどうか、即ち、最大許容数のエントリを既に含んでいるかどうかを決定する(ステップ1504)。図3におけるように、最後のセクション118が満杯である場合、RSM102は、(図3におけるヘッダの新HDRを有する)新たな最後のセクション108を作成し、その新たに作成された最後のセクション108に新たなエントリを付加する(ステップ1508)。ステップ1504において、最後のセクション108が満杯でない場合、新たなセクション108は作成されず、前から存在する最後のセクション108に新たなエントリ116が付加される(ステップ1508)。
【0027】
B.エントリの除去
既存のエントリ116がキュー104から除去される時、それは、現在のキュー・セクション108におけるそれの位置から簡単に除去される。再び、残りのキュー・セクション108及びそれらのエントリ116は影響を受けない。キュー・エントリ平衡化プロセスが開始される前に一貫した除去リクエストが行われることは可能である。この結果、セクション108が空になる。そこで、そのセクションのヘッダ114がキュー104から除去され、フリー・ヘッダ・プール(図示されてない)に戻されるか、又はまばらに存在するようになったキュー・セクション108(図4)に戻される。
【0028】
C.セクションのマージ
キュー・エントリ平衡化プロセスの主要な目的は、まばらに存在するセクション108を除去すること及び残りのセクション108に対して妥当な数のエントリ116を維持することである。これは、キュー104におけるセクション108の各対を通して最も若いセクション108から最も古いセクション108まで通すことによって、及び、可能であれば、セクション108におけるエントリ116を単一のセクション108上に結合することによって達成され得る。セクション108が結合され得るかどうかを、以下の要素が決定する。
(1)両セクション108におけるエントリ116の合計数がエントリ116の最大許容数よりも多くない。
(2)セクション108を結合するために必要と思われる時間の量が、システム・タイムアウトの発生前に許容可能なタイム・リミットを越え得ない。タイム・リミットは、種々のシステム・ハードウェアに対して変化せず、場合によっては、インストレーションによって制御され得る。単一のエントリ116に対する代表的な処理時間及び呼び出されるエントリ116の数に基づいて、合計処理時間を計算することができる。
【0029】
一対のセクション108が最大許容数よりも小さいか又はそれに等しい結合数のエントリ116を有することがわかった後、少ない数のエントリ116を有するセクション108からのエントリ116が多い数のエントリ116を有するセクション108にマージされる。マージされるセクション108が2つのセクション108のうちの高い(即ち、より古い)セクション108である場合、それのエントリ116は、低い(即ち、新しい)セクション108の前に移動する。同様に、マージされるセクション108が低い(即ち、新しい)セクション108である場合、それのエントリ116は、高いセクション108の終わりに移動する。
【0030】
マージ・プロセスが行われる前と同じ有効重み素子値をエントリ116が有するようウェイト係数値に関連してキュー・エントリ位置によりキュー整合性を維持するために、新たにマージされたエントリ116がそれらのウェイト係数を調整される。高いセクション108からのエントリ116が低いセクション108にマージされた場合、それらのウェイト係数値は、セクション・ヘッダ114のウェイト係数の差に等しい量だけ増加する。より低いセクション108からのエントリ116がより高いセクション108にマージされた場合、それらのウェイト係数値は、セクション・ヘッダ114のウェイト係数の差に等しい量だけ減少する。
【0031】
キュー104のすべてのセクション108に対して、検査及びマージ・プロセスが繰り返される。いつも、新たなペアに対する低いセクション108は、マージされ得ない前の対のセクション108における高いセクション108か又は成功した前のマージ・プロセスから生じた新たな結合セクション108である(図5、図6、図7)。
【0032】
2.第2実施方法
第2実施方法は、新たなエントリ116がキュー104に加えられるべき時、又は既存のエントリ116がキュー104から除去されるべき時、いつもキュー・セクション108が平衡していることを保証する。
【0033】
A.エントリの付加
この第2実施方法では、新たなエントリ116がキュー104に付加される時、それは、最小ウェイト係数値を割り当てられ、それがキュー104における最も新しいエントリ116であることを表す。最も新しいエントリ116に対する位置は、キュー104の最後の(即ち、最も新しい)セクション108の終わりである(図8)。
【0034】
最後のセクション108が(各セクション108に対する所定の最大数のエントリ116に基づいて)既に満杯である場合、セクション108における最も古いエントリ116が次に高い(即ち、古い)セクション108に移動して新たなエントリ116に対する空きをセクション108上に作る。最も古いエントリ116における付加が次に高いセクション108に最大数のエントリ116を越えさせる場合、そのセクション108におけるその時の最も古いエントリ116が、キュー104の次に高いセクション108まで移動する(図9)。
【0035】
プロセスは、移動したエントリ116に対するセクション108において使用可能な位置が見つかるまで、又はキュー104の最も古いセクション108が到達するまで、繰り返される。最も古いセクション108が現在も最大数のエントリ116を保持している場合、最も古いセクション108から直ちに移動されるべきエントリ116を収容するために、新たなセクション108に対するヘッダ114が作成される。新たなセクション108は、キュー104の最初のセクション108になる(図10)。
【0036】
キュー104は、1つの空のセクション108でもって開始するものと見なされるので、キュー・エントリ116をバブル・アップするプロセスは、キュー104が最も古いセクション108以外に十分に多くのセクション108を有することを保証する。
【0037】
図18は、本発明の実施法においてターゲット・エントリ116をターゲット・セクションに付加するための手順1600を示す。新たなエントリ116をターゲット・エントリとし且つ最後のセクション108をターゲット・セクションとしてキュー104にその新たなエントリ116を付加するために、RSM102がこの手順1600を呼び出す。この図及び図8乃至図10を参照すると、この手順が呼び出される時(ステップ1602)、RSM102は、先ず、ターゲット・キュー・セクション108が満杯であるかどうかを決定する(ステップ1604)。ターゲット・セクション108が満杯でない場合、RSM102は、ターゲット・エントリをターゲット・セクションの終わりに付加する(ステップ1606)。
【0038】
ステップ1604において、ターゲット・セクション108が満杯でない場合、RSM102は、前のセクション108が存在するかどうかを決定する(ステップ1608)。それが肯定される場合、RSM102は、最も古いエントリ116を新たなターゲット・エントリとして且つ前のセクション108を新たなターゲット・セクションとして手順1600を帰納的に呼び出すことによって、ターゲット・セクション108における最も古いエントリ116を前のセクション108に移動させ(ステップ1610)、しかる後、現在のターゲット・エントリ116を現在のターゲット・セクション108の終わりに付加する(ステップ1606)。
【0039】
ステップ1608において、前のセクション108が存在しない場合(即ち、ターゲット・セクション108が最初のセクションである場合)、RSM102は、新たな最初のセクション108を作成し(ステップ1612)、ターゲット・セクション108における最も古いエントリ116を新たに作成された最初のセクション108に移動させ(ステップ1610)、しかる後、現在のターゲット・エントリ116を現在のターゲット・セクション116の終わりに付加する(ステップ1606)。
【0040】
B.エントリの除去
ランダムな既存のエントリ116がキュー・セクション108からデキューされる時、そのデキューされたエントリ116の前にあった(即ち、デキューされたエントリよりも古い)エントリ116をそのデキューされたエントリ116の場所にシフトすることによって、セクション108における残りのエントリ116が再編成される。
【0041】
セクション108がデキュー・オペレーション前には最大数のエントリ116を含むものと予想されるので、それのエントリ116の数は、今や、その予想された最大数よりも少ない。そこで、次に高いセクション108の終わりにおける1つ又は複数のエントリ116がその影響を受けたセクション108に移動し、その影響を受けたセクション108におけるエントリ116の数をその予想された最大数にする。そのシフト・プロセスの結果、次に高いセクション108におけるエントリ116の数がその考えられた最大数のエントリ116よりも少なくなる場合、その次に高いセクション108におけるエントリ116が残っていれば、それが現在のセクション108のエントリを多くするためにシフトされる(図11)。
【0042】
このシフト・プロセスは、キュー104の最も古いセクション108におけるエントリ116が処理されてしまうまで、繰り返される。そこで、最も古いセクション108が空となる場合、それのヘッダ114がデキューされ、フリー・ヘッダ・プールに戻される(図12)。
【0043】
当初、ほとんどのキュー・セクション108が最大数のエントリ116を含むものと考えられるので、シフト・プロセスは、エントリ116がキュー104から除去されてしまった後、大多数のキュー・セクション108を十分に数多くエントリを持つ状態に保つ。
【0044】
図19は、本発明のこの実施方法において、ターゲット・エントリ116をキュー104のターゲット・セクション108から除去するための手順1700を示す。この手順が呼び出される時(ステップ1702)、RSM102は、先ず、ターゲット・セクション108からターゲット・エントリ116を除去し(ステップ1704)、しかる後、そのターゲット・セクション108を前のセクション108からのエントリでもって満たす(ステップ1706)。
【0045】
図20は、ターゲット・セクション108を前のセクション108からのエントリでもって満たすための手順1800を示す。その手順が呼び出される時(ステップ1802)、RSM102は、先ず、いずれかの前のセクション108が存在するかどうかを決定する(ステップ1804)。これが否定される場合、エントリ116を移動すべき前のセクション108が存在しないので、手順は終了する(ステップ1806)。これが肯定される場合、RSM102は、前のセクション108からエントリ116を移動させる。その移動は、直前のセクション108における最後のエントリ116でもって始まり、ターゲット・セクション108が満杯にされるまで又はそのような前のエントリが存在しなくなるまで行われる(ステップ1808)。そこで、RSM12は、同様に、例えば、前のセクション108を新たなターゲット・セクションとして手順1800を帰納的に呼び出すことにより前のセクション108を満杯にするように進行する(ステップ1810)。
【0046】
キュー・エントリ116の付加又は削除によって影響されるキュー・エントリ116の有効ウェイト係数値を維持するために、エントリ116の個々のウェイト係数は、そのようなウェイト係数が使用されるべき場合、それらの新たなセクション108のウェイト係数に従って調節される。エントリ116がそれの元のセクション108のウェイト係数よりも高いウェイト係数を有するキュー・セクション108に移動したばかりの場合、そのエントリ116の個々のウェイト係数は、新たなセクション108のウェイト係数及びそのエントリの元のセクション108のウェイト係数の間の差に等しい量だけ減じられる。逆に、エントリ116がそれの元のセクション108のウェイト係数よりも低いウェイト係数を有するキュー・セクション108に移動したばかりの場合、そのエントリ116のウェイト係数は、それの元のセクション108のウェイト係数及びそれの新たなセクション108のウェイト係数の間の差に等しい量だけ増加する。
【0047】
II.更新処理
キュー・エントリ116に対する有効ウェイト係数は、セクション・ヘッダ114におけるウェイト係数と個々のエントリ116におけるウェイト係数との結合値である。本発明のセクション化され且つ順序付けられたキュー104に対する更新プロセス120は、処理時間の劇的な増加なしに大きいキューのための処理を扱うことができる。それは、いくつかの更新が、個々のキュー・エントリ116を更新することによるのではなくセクション・レベルで行われるためである。
【0048】
図13及び図14は、セクション化され且つ順序付けられたキュー104を操作し得る方法の一例を示す。図13は、更新処理前のキュー104を示し、図14は、更新処理後のキュー104を示す。
【0049】
更新プロセス120は、最初のセクション108が、更新処理中にチェックされた後に少なくとも最小数のエントリ116を有することを保証する。一旦、必要な個々のエントリ116が処理されると、残りのエントリ116に対するヘッダ114が、ウェイト係数に加えられるべき値でもって更新される。処理されるセクション108は、最上のセクション108がそのセクションに残るための基準に合致する(即ち、キュー104における任意のエントリ116の最高の有効ウェイト係数を有し、最近参照されてない)最大数のエントリ116に達してない場合、完了まで(即ち、そのセクションにおける最後のエントリ116まで)処理される。
【0050】
更新処理中、セクション・ヘッダ114は、最小数及び最大数のキュー・エントリ116を維持するために、必要に応じて付加及び削除される。リセットされるべきウェイト係数を有する如何なるエントリも、有効ウェイト係数がゼロのままであることを保証するために、ゼロのウェイト係数を有する新たに作成されたセクション・ヘッダ114上に入れられる。
【0051】
図13及び図14に示された例では、キュー104上には20個のエントリ116がある。1つのキュー・セクション当たりのエントリ116の最大数は6であると仮定し、最小数は3であると仮定する。更新プロセス120は、3というカウント(UIC)によって参照されてないフレームに対応したエントリ116を更新する。この例では、エントリE、F、G、I、K、M、N、及びRが参照されておらず、この値によって更新される。一方、エントリA、B、C、D、H、J、L、O、P、Q、S、及びTが参照されており、従って、それらが有効ウェイト係数をリセットされる必要があることを表すためにフラッグをセットされる。
【0052】
図14は、更新処理が遂行された後、セクション化され且つ順序付けられたキュー104を示す。セクション・ヘッダHDR1及びHDR2は、最上のセクション・ヘッダ114における少なくとも最小数のエントリ116を持つ前に完全に処理された。
【0053】
リセットされるべきウェイト係数を有するエントリ116(A−D、H、J、及びL)を移動させるための場所として、2つの新たなヘッダ14(HDR5及びHDR6)が作成された。これらの新たなセクション・ヘッダ114におけるウェイト係数及びこれらのヘッダ114に置かれた個々のエントリ116がゼロにセットされる。これらのエントリ116の有効ウェイト係数がリセットされているので、これが最早行われる必要がないことを表すために、それらのフラッグがリセットされる。
【0054】
最上のセクション108(ヘッダHDR1を有する)まで移動したエントリE−G、I、及びKは、元のセクション・ヘッダ114のウェイト係数、個々のエントリ116の(インクレメントしてない)ウェイト係数、及びインクレメント値を含むようにそれらの個々のウェイト係数を更新していた。例えば、エントリFは、(4+50+3)に起因する57の新たな有効ウェイト係数を有する。最上のセクション108における有効ウェイト係数は、今やエントリ116の個々のウェイト係数において完全には表されないので、セクション・ヘッダ114のウェイト係数はゼロにリセットされている。
【0055】
セクション・ヘッダHDR2は完全に処理され、それのエントリG−Lは最上のヘッダHDR1又は新たに作成されたヘッダHDR5及びHDR6に移動している。一旦、ヘッダHDR2を有するセクション108が空になると、セクション・ヘッダHDR2は削除される。
【0056】
必要な基準に合致する少なくとも最小数のエントリ116が今や最上セクション108にあるので、セクションHDR3及びHDR4における個々のエントリ116のすべてを処理する必要はない。しかし、ウェイト係数に対するインクレメント値は記憶される必要があり、従って、セクション・ヘッダ114におけるウェイト係数が増加する。例えば、ヘッダHDR3が2から5に更新される。そこで、エントリ116に対する有効ウェイト係数は、インクレメント値だけ自動的に増加するであろう。例えば、エントリNの新たな有効ウェイト係数は20である。
【0057】
ヘッダHDR3及びHDR4を有するセクション108が、依然として、参照されたエントリO−Q及びS−Tを含み、従って、それらの有効ウェイト係数をリセットさせる必要があることは注目される。しかし、更新プロセス120がそれらのセクション108の対応する部分を処理する度にそれらがそれらの有効ウェイト係数をリセットさせるように、それらのフラッグはセットされたままである。
【0058】
図21は、更新処理のための手順1900を示す。この手順1900は、各参照インターバルの終わりに定期的に呼び出される。手順1900が呼び出される時(ステップ1902)、RSM102が、図22に示された手順2000を使用して最上のセクション108を完全に処理し(ステップ1904)、しかる後、最上のセクション108が最小数のエントリを有するかどうかを決定する(ステップ1906)。その結果が否定的である場合、RSM102は、その最小数が得られるまで、キュー104を通して下方に作用して更なるセクション108を処理する(ステップ1908)。そこで、更なるセクション108が残っている場合、RSM102は、所望のインクレメント(この場合、3)でもってセクション・ヘッダ114だけを更新する(ステップ1910)。
【0059】
図22は、個々のセクション108を処理するための手順2000を示す。その手順は、呼び出された時(ステップ2002)、最上のセクション108に最大数のエントリ116が存在するまで(ステップ2004)、又は処理されるべきそれ以上のエントリ116がターゲット・セクション108に残らなくなるまで(ステップ2006)継続する。処理される各エントリ116に対して、RSM102は、参照フラッグがセットされているかどうかを決定する(ステップ2008)。その結果が否定的である場合、RSM102は、上述の態様でそれのウェイト係数を調節し(ステップ2010)、処理されるセクションが最上のセクション以外のものである場合、エントリ116を最上のセクション108に移動させる(ステップ2012)。ステップ2008においてフラッグがセットされている場合、RSM102は、エントリ116のウェイト係数をゼロにリセットし(ステップ2014)、必要な場合には新たなセクションを作成してそのエントリを新たなセクションに移動させ(ステップ2016)、フラッグをリセットする(ステップ2018)。
【0060】
最上のセクション108が満杯にされた時、又はターゲット・セクション108が完全に処理されてしまった時、それが最初に生じる度に、RSM102は、ターゲット・セクション108が今や空であるかどうかを知るためのチェックを行う(ステップ2020)。その結果が肯定的である場合、RSM102は、そのターゲット・セクションのセクション・ヘッダ114を削除し(ステップ2022)、しかる後、終了する(ステップ2024)。その結果が否定的である場合、RSM102は、セクション・ヘッダ114を削除することなくセクション処理を終了する。
【0061】
III.スチール処理
システム・アドレス・スペースにおいて大きな仮想領域をバッキングするフレームのキューに対するセクション化され且つ順序付けられたキュー104は、妥当なシステム・パフォーマンスが得られることを保証すると共に、RSMのフレーク・スチール・アルゴリズムがこれらのキュー104からフレームをうまくスチールすることを可能にする。この実施方法では、キュー・エントリ116に対するウェイト係数は、セクション・ヘッダ114及び個々のキュー・エントリ116の両方に記録される有効UIC値である。次の2つのプロセスに依存して、即ち、
(1)開始セクション108が最高のウェイト係数を有するフレームを含むようなセクション化キュー104を維持するためにはRSMの更新プロセス120に依存して、及び
(2)開始セクション108が十分に多く存在することを保証するためにはキュー平衡化プロセスに依存して、
RSMスチール・プロセス122がこの最初のセクション108においてのみスチールすべきフレームを捜す。この方法では、潜在的に非常に長いキュー104からのフレームのスチールは、そのキュー全体を全探索する時間を浪費することなく行われ得るし、指定された最大数のエントリ116よりも多くのエントリを持たないことを保証されるイネーブル・チェックがこの1つのセクション108を全探索した後に行われるので、スピン・ループ・タイムアウトを導くことはない。一旦イネーブルされると、RSM UIC更新及びキュー平衡化プロセスの別のインスタンスが実行され、最高のウェイト係数を有するエントリ116が十分に存在するようにこのキュー・セクション108を保つのを助ける。RSM UIC更新プロセスとは異なり、RSMスチール・プロセス122は、それがイネーブル・ウィンドウに達した後、それがチェーンにおける中断した所から継続しない。SRM18は、前のスチール・オペレーションの成功に基づいてそれのスチール・リクエストを更新し、スチール・オペレーションは、キュー104の更新したセットの始めから開始することができる。
【0062】
RSMスチール・プロセス122は、最初のセクション108において集中するけれども、それは、セクション化され且つ順序付けられたキュー104の構造を認識していて、それのフレーム移動プロセスの間この構造の維持を助ける。RSMスチール・プロセス122は、スチール可能なフレームにおけるデータが補助記憶装置において支援されることを確実なものにした後、スチール規準に適合するフレームを使用可能なフレーム・キュー(図示されてない)に移動し、最近参照された(従って、スチールされるには適さない)フレームをその構成されたキュー104の真の終わりまで移動する。また、RSMスチール・プロセス122がフレームのウェイト係数を評価及び記録し、それをSRM18によりセットされたスチール規準に比較するために、それは、キュー・エントリ116及びそれの関連したセクション・ヘッダ114の両方に含まれた合計ウェイト係数を調べる。
【0063】
アプリケーション・アドレス・スペース106が或る仮想記憶を参照するつもりのないことを決定する時、そのアドレス・スペースは、それが関連の実記憶フレームをそのシステムにとって使用可能なものにしたいということを、システム・サービスを使用してそのシステムに知らせることができる。これらのフレームは、優れたスチール候補である。これらのフレームの各々に対してI/Oを直ちに起動して補助記憶管理プログラムを対処不能にするのではなく、これらのフレームは、エントリ116が持ち得る最高の可能なウェイト係数を有するセクション化され且つ順序付けられたキュー104の真の始めに置かれ、それらをスチールのための最重要な候補にする。この方法では、システムは、それらのフレームが必要であることをそれが決定するまで、I/Oを遅らせることを可能にされる。
【0064】
セクション化され且つ順序付けられたキュー104の最初のセクション108上に又はその最初のセクションから離れるようにフレームを移動することは、それのセクション・ヘッダ114がこのセクション108におけるフレームの新たなカウントでもって更新されることを必要とする。また、この最初のセクション108がスチール処理のために空になる場合、RSMスチール・プロセス122は、次のキュー・セクション108を新たな最初のセクション108として指示するようにキュー構造を再構築する。
【0065】
RSMスチール・プロセス122が、最近参照したフレームをセクション化され且つ順序付けられたキュー104の真の終わりまで移動する時、それは、(現在最も若いセクション108が空でない場合)キュー104の終わりにおいて新たなセクション・ヘッダ114を形成し、これらのフレームをこの新しい最も若いセクション108から離れてキューに入れる。この方法では、スチール・プロセス122は、キュー・セクション108における最大の許容されたフレーム数を越えることを心配する必要はない。
【0066】
別の方法として、スチール・プロセス122は、参照されたフレームを現在最も若いセクション108上に付加することによって、それらのフレームをキュー104の終わりまで移動し得る。但し、それは、参照されたフレームの新たなセットを付加してもその後セクション108に対して許容された最大値を超えないということが条件である。この処理は、更に手の込んだチェックを必要とするであろうし、RSMスチール・プロセス122がそれのキュー操作を終了する時、それがキュー平衡化プロセスを呼び出す場合には必要ない。
【0067】
図15及び図16は、スチール・プロセス122が30以上の有効ウェイト係数を有するキュー・エントリを再要求したスチール処理の前後のセクション化され且つ順序付けられたキュー104を示す。図15は、エントリA−Eを含む最初のセクションHVHDR1、エントリF−Jを含む第2のセクションHVHDR2、及びエントリKを含む第3のセクションHVHDR3を有する未処理のキュー104を示す。セクションHVHDR1では、エントリA−Dは30以上の有効ウェイト係数を有し、従って、スチーリングに対して適格である。一方、セクションHVHDR2及びHVHDR3では、エントリF−Jのうち、スチーリングに対してそれらを適格にする有効ウェイト係数を持つものはない。
【0068】
図16は、スチール処理後のキュー104を示す。アドレス・スペース106に対するキュー104から対応するフレームを「スチール」ために、エントリA、C、及びDがセクションHVHDR1から除去された。一方、エントリBはキュー104に残る。それは、それまでは(この例では)、対応するフレームが参照され、エントリBの有効ウェイト係数をゼロにリセットさせるためである。これを達成するために、エントリBは、セクションHVHDR1から新たに作成された最後のセクションHVHDR4まで移動し、それの個々のウェイト係数はゼロにセットされる。(この特定の例におけるセクション・ウェイト係数はすべてゼロであると仮定される)。29という不適格なウェイト係数を有する唯一のエントリEが最初のキュー・セクションHVHDR1に残る。
【0069】
図23は、スチール処理のための手順2100を示す。その手順2100は、更なるフレームを求めるリクエストを、例えば、SRM18から受け取ることに応答して、特定のキュー104に対してRSM102によって呼び出される(図1)。呼び出される時(ステップ2102)、キュー104の最初のセクション108にそれ以上のエントリ116が存在するまで(ステップ2104)、又は必要な数のフレームが供給されるまで(ステップ2114)、どちらが最初に生じようとも、手順2100が継続する。
【0070】
処理される各エントリ108に対して、エントリの有効ウェイト係数がRSMに供給されたスチール基準に適合するかどうかをRSM102が先ず決定する(ステップ2106)。その結果が否定的である場合、RSM102は最初のセクションにおけるエントリ116を残し、ステップ2104に戻る。その結果が肯定的である場合、RSM102は、エントリ116が最近参照されたことを表すフラッグがセットされているかどうかを決定する(ステップ2108)。この結果が肯定的である場合、RSM102はエントリ116を新たなセクションに移動させ(ステップ2110)、ステップ2104に戻る。エントリ116が最近参照されていない場合、RSM102は、キュー108からエントリ116を除去し、必要な数のフレームが供給されたかどうかを決定する(ステップ2114)。その結果が否定的である場合、別の反復のためにステップ2104に戻る。
【0071】
キュー104の最初のセクションにそれ以上のエントリ116が存在しない時(ステップ2104)、又は必要な数のフレームが供給された時(ステップ2114)、RSM102は、最初のセクション108が今や空であるかどうかを調べる(ステップ2116)。この結果が肯定的ある場合、RSM102は、終了前に新たな最初のセクションとして次のセクション108を指示するためにキュー104を再構成する。その結果が否定的である場合、スチール・プロセス124は終了するだけである。
【0072】
まとめとして、本発明の構成に関して以下の事項を開示する。
【0073】
(1)情報処理システムにおいてキューを維持する方法にして、
最初のキュー・セクションから最後のキュー・セクションまで順序よく配列され、各々が最初のキュー・エントリから最後のキュー・エントリまで順序よく配列された1つ又は複数のキュー・エントリを含む、複数のキュー・セクションを定義するステップと、
前記キュー・セクションの各々に対するウェイト係数を定義するステップと、前記キュー・セクションの各々における各キュー・エントリに対するウェイト係数を定義するステップとを含み、
前記キュー・エントリの各々は前記キュー・セクションに対して定義された前記ウェイト係数と前記キュー・エントリに対して定義された前記ウェイト係数とを結合することによって形成された有効ウェイト係数を有する、
方法。
(2)前記キュー・エントリが使用可能な記憶ロケーションに対応する、上記(1)に記載の方法。
(3)前記記憶ロケーションが実記憶アドレスの範囲を含む、上記(2)に記載の方法。
(4)キュー・エントリに対する前記有効ウェイト係数が、該キュー・エントリに対応する記憶ロケーションが参照されなかった時間の量を表す、
上記(2)に記載の方法。
(5)新たに使用可能な対応する記憶ロケーションを表す、新たなエントリを前記最後のキュー・セクションに付加するステップをさらに含む、上記(2)に記載の方法。
(6)前記対応する記憶ロケーションが最早使用可能でないことを表す、1つ又は複数のキュー・エントリを削除するステップをさらに含む、上記(2)に記載の方法。
(7)少なくとも所定の有効ウェイト係数を有するキュー・エントリだけが削除される、上記(6)に記載の方法。
(8)前のタイム・インターバルにおいて参照されなかった記憶ロケーションに対応するキュー・エントリだけが削除される、上記(6)に記載の方法。
(9)キュー・エントリが前記キューの最初のセクションからのみ削除される、上記(6)に記載の方法。
(10)前記対応する記憶ロケーションが参照されたかどうかに従って、前記キュー・エントリの各々の前記有効ウェイト係数を更新するステップをさらに含む、上記(2)に記載の方法。
(11)前記更新するステップは、前記セクションにおける前記キュー・エントリをそれらの有効ウェイト係数の順序で維持するステップをさらに含む、上記(10)に記載の方法。
(12)前記更新するステップは、
前のタイム・インターバルにおいて参照されなかった記憶ロケーションに対応するキュー・エントリの前記有効ウェイト係数をインクレメントするステップと、
前のタイム・インターバルにおいて参照された記憶ロケーションに対応するキュー・エントリの前記有効ウェイト係数をリセットするステップと
を含む、上記(10)に記載の方法。
(13)前記インクレメントするステップは、前記キュー・エントリを含む前記キュー・セクションの前記ウェイト係数をインクレメントするステップを含む、上記(12)に記載の方法。
(14)前記更新するステップは、
前記対応する記憶ロケーションが参照されたかどうかに従って、前記最初のキュー・セクションにおける各キュー・エントリに対して定義された個々のウェイト係数を更新するステップと、
残りのキュー・セクションにおける各キュー・エントリに対して定義された前記個々のウェイト係数を更新することなく、各残りのキュー・セクションに対して定義された前記ウェイト係数だけを更新するステップと
を含む、上記(10)に記載の方法。
(15)参照された記憶ロケーションに対応する前記最初のキュー・セクションにおける各キュー・エントリを他のセクションに移動する、上記(14)に記載の方法。
(16)前記キュー・セクションの各々におけるキュー・エントリの数を前記キュー・セクションに対して定義された所定の許容可能な範囲内に維持するステップをさらに含む、上記(1)に記載の方法。
(17)最初のキュー・セクションから第2のキュー・セクションに1つ又は複数のキュー・エントリを移動させるステップをさらに含む、上記(1)に記載の方法。
(18)移動した前記キュー・エントリに対して定義された前記ウェイト係数を、前記第2のキュー・セクションにおけるそれらの有効ウェイト係数が、前記最初のキュー・セクションにおけるそれらの有効ウェイト係数と同じになるように調節するステップをさらに含む、上記(17)に記載の方法。
(19)新たなキュー・セクションを作成するステップと、
既存のキュー・セクションから前記新たなキュー・セクションに1つ又は複数のキュー・エントリを移動させるステップと
をさらに含む、上記(1)に記載の方法。
(20)最初のキュー・セクションから1つ又は複数の他のキュー・セクションまで1つ又は複数のキュー・エントリを移動させるステップと、
前記最初のキュー・セクションを削除するステップと
をさらに含む、上記(1)に記載の方法。
(21)情報処理システムにおいてキューを維持するための手段を遂行するために、機械により実行可能な命令のプログラムを明確に具現化する、該機械により可読なプログラム記憶装置にして、
前記キューを維持するための手段が、
最初のキュー・セクションから最後のキュー・セクションまで順序よく配列され、各々が最初のキュー・エントリから最後のキュー・エントリまで順序よく配列された1つ又は複数のキュー・エントリを含む、複数のキュー・セクションを定義する手段と、
前記キュー・セクションの各々に対するウェイト係数を定義する手段と、
前記キュー・セクションの各々における各キュー・エントリに対するウェイト係数を定義する手段とを含み、
前記キュー・エントリの各々は前記キュー・セクションに対して定義された前記ウェイト係数と前記キュー・エントリに対して定義された前記ウェイト係数とを結合することによって形成された有効ウェイト係数を有する、
プログラム記憶装置。
(22)前記キュー・エントリが使用可能な記憶ロケーションに対応する、上記(21)に記載のプログラム記憶装置。
(23)前記キューを維持するための手段が、新たに使用可能な対応する記憶ロケーションを表す、新たなエントリを前記最後のキュー・セクションに付加する手段をさらに含む、上記(22)に記載のプログラム記憶装置。
(24)前記キューを維持するための手段が、前記対応する記憶ロケーションが最早使用可能でないことを表す、1つ又は複数のキュー・エントリを削除する手段をさらに含む、上記(22)に記載のプログラム記憶装置。
(25)キュー・エントリが前記キューの最初のセクションからのみ削除される、上記(24)に記載のプログラム記憶装置。
(26)前記キューを維持するための手段が、前記対応する記憶ロケーションが参照されたかどうかに従って、前記キュー・エントリの各々の有効ウェイト係数を更新する手段をさらに含む、上記(22)に記載のプログラム記憶装置。
(27)前記キューを維持するための手段が、前記対応する記憶ロケーションが参照されたかどうかに従って、前記最初のキュー・セクションにおける各キュー・エントリに対して定義された個々のウェイト係数を更新する手段と、
残りのキュー・セクションにおける各キュー・エントリに対して定義された前記個々のウェイト係数を更新することなく、各残りのキュー・セクションに対して定義されたウェイト係数だけを更新する手段と
をさらに含む、上記(22)に記載のプログラム記憶装置。
(28)参照された記憶ロケーションに対応する前記最初のキュー・セクションにおける各キュー・エントリを他のセクションに移動する、上記(27)に記載のプログラム記憶装置。
(29)前記キューを維持するための手段が、前記キュー・セクションの各々におけるキュー・エントリの数を、前記キュー・セクションに対して定義された所定の許容可能な範囲内に維持する手段をさらに含む、上記(21)に記載のプログラム記憶装置。
(30)前記キューを維持するための手段が、最初のキュー・セクションから第2のキュー・セクションに1つ又は複数のキュー・エントリを移動させる手段と、
移動したキュー・エントリに対して定義されたウェイト係数を、第2のキュー・セクションにおけるそれらの有効ウェイト係数が最初のキュー・セクションにおけるそれらの有効ウェイト係数と同じになるように調節する手段と
をさらに含む、上記(21)に記載のプログラム記憶装置。
(31)最初のキュー・セクションから最後のキュー・セクションまで順序よく配列された複数のキュー・セクションを含み、
前記キュー・セクションの各々が最初のキュー・エントリから最後のキュー・エントリまで順序よく配列された1つ又は複数のキュー・エントリを含み、
前記キュー・セクションの各々及び前記キュー・セクションの各々における各キュー・エントリがそれに対して定義されたウェイト係数を有し、
前記キュー・エントリの各々が前記キュー・セクションに対して定義された前記ウェイト係数と前記キュー・エントリに対して定義された前記ウェイト係数とを結合することによって形成された有効ウェイト係数を有する、
情報処理システムにおけるセクション化され且つ順序付けられたキュー。
(32)前記複数のキュー・エントリが使用可能な記憶ロケーションに対応する、上記(31)に記載のキュー。
(33)新たに使用可能な対応する記憶ロケーションを表す、新たなエントリが前記最後のキュー・セクションに付加される、上記(32)に記載のキュー。
(34)前記対応する記憶ロケーションが最早使用可能でないことを表す、1つ又は複数のキュー・エントリが削除される、上記(32)に記載のキュー。
(35)キュー・エントリが前記キューの最初のセクションからのみ削除される、上記(34)に記載のキュー。
(36)前記対応する記憶ロケーションが参照されたかどうかに従って、前記キュー・エントリの各々の前記有効ウェイト係数が更新される、上記(32)に記載のキュー。
(37)前記対応する記憶ロケーションが参照されたかどうかに従って、前記最初のキュー・セクションにおける各キュー・エントリに対して定義された前記個々のウェイト係数が更新され、
残りのキュー・セクションにおける各キュー・エントリに対して定義された前記個々のウェイト係数を更新することなく、各残りのキュー・セクションに対して定義された前記ウェイト係数だけが更新される、
上記(32)に記載のキュー。
(38)参照された記憶ロケーションに対応する前記最初のキュー・セクションにおける各キュー・エントリを他のセクションに移動する、上記(37)に記載のキュー。
(39)前記キュー・セクションの各々におけるキュー・エントリの数が、前記キュー・セクションに対して定義された所定の許容可能な範囲内に維持される、上記(31)に記載のキュー。
(40)最初のキュー・セクションから第2のキュー・セクションに1つ又は複数のキュー・エントリを移動させ、
移動した前記キュー・エントリに対して定義された前記ウェイト係数を、前記第2のキュー・セクションにおけるそれらの有効ウェイト係数が前記最初のキュー・セクションにおけるそれらの有効ウェイト係数と同じになるように調節する、
上記(31)に記載のキュー。
【図面の簡単な説明】
【図1】本発明を組み込み得るコンピュータ・システムを示す。
【図2】実記憶管理プログラム(RSM)プロセス及び本発明のキューとそれらのプロセスとの相互作用を示す。
【図3】本発明の第1の実施方法におけるキュー・エントリの付加を示す。
【図4】本発明の第1の実施方法におけるキュー・エントリの除去を示す。
【図5】本発明の第1の実施方法におけるキュー・エントリのマージを示す。
【図6】本発明の第1の実施方法におけるキュー・エントリのマージを示す。
【図7】本発明の第1の実施方法におけるキュー・エントリのマージを示す。
【図8】本発明の第2の実施方法におけるキュー・エントリの付加を示す。
【図9】本発明の第2の実施方法におけるキュー・エントリの付加を示す。
【図10】本発明の第2の実施方法におけるキュー・エントリの付加を示す。
【図11】本発明の第2の実施方法におけるキュー・エントリの除去を示す。
【図12】本発明の第2の実施方法におけるキュー・エントリの除去を示す。
【図13】更新処理前のキューを示す。
【図14】更新処理後のキューを示す。
【図15】スチール処理前のキューを示す。
【図16】スチール処理後前のキューを示す。
【図17】本発明の第1の実施方法においてキュー・エントリを付加するための手順を示す。
【図18】本発明の第2の実施方法においてキュー・エントリを付加するための手順を示す。
【図19】本発明の第2の実施方法においてキュー・エントリを除去するための手順を示す。
【図20】本発明の第2の実施方法においてキュー・エントリを満杯にするための手順を示す。
【図21】更新処理するための手順を示す。
【図22】更新処理中に特定のセクションを処理するための手順を示す。
【図23】スチール処理するための手順を示す。
【符号の説明】
100 コンピュータ・システム
102 実記憶管理プログラム
104 セクション化され且つ順序付けられたキュー
106 アドレス・スペース
108 キュー・セクション
110 ポインタ
112 キュー・アンカ
114 ヘッダ
116 エントリ
118 ポインタ
Claims (40)
- 情報処理システムにおいてキューを維持する方法にして、
最初のキュー・セクションから最後のキュー・セクションまで順序よく配列され、各々が最初のキュー・エントリから最後のキュー・エントリまで順序よく配列された1つ又は複数のキュー・エントリを含む、複数のキュー・セクションを定義するステップと、
前記キュー・セクションの各々に対するウェイト係数を定義するステップと、
前記キュー・セクションの各々における各キュー・エントリに対するウェイト係数を定義するステップとを含み、
前記キュー・エントリの各々は前記キュー・セクションに対して定義された前記ウェイト係数と前記キュー・エントリに対して定義された前記ウェイト係数とを結合することによって形成された有効ウェイト係数を有する、
方法。 - 前記キュー・エントリが使用可能な記憶ロケーションに対応する、請求項1に記載の方法。
- 前記記憶ロケーションが実記憶アドレスの範囲を含む、請求項2に記載の方法。
- キュー・エントリに対する前記有効ウェイト係数が、該キュー・エントリに対応する記憶ロケーションが参照されなかった時間の量を表す、請求項2に記載の方法。
- 新たに使用可能な対応する記憶ロケーションを表す、新たなエントリを前記最後のキュー・セクションに付加するステップをさらに含む、請求項2に記載の方法。
- 前記対応する記憶ロケーションが最早使用可能でないことを表す、1つ又は複数のキュー・エントリを削除するステップをさらに含む、請求項2に記載の方法。
- 少なくとも所定の有効ウェイト係数を有するキュー・エントリだけが削除される、請求項6に記載の方法。
- 前のタイム・インターバルにおいて参照されなかった記憶ロケーションに対応するキュー・エントリだけが削除される、請求項6に記載の方法。
- キュー・エントリが前記キューの最初のセクションからのみ削除される、請求項6に記載の方法。
- 前記対応する記憶ロケーションが参照されたかどうかに従って、前記キュー・エントリの各々の前記有効ウェイト係数を更新するステップをさらに含む、請求項2に記載の方法。
- 前記更新するステップは、前記セクションにおける前記キュー・エントリをそれらの有効ウェイト係数の順序で維持するステップをさらに含む、請求項10に記載の方法。
- 前記更新するステップは、
前のタイム・インターバルにおいて参照されなかった記憶ロケーションに対応するキュー・エントリの前記有効ウェイト係数をインクレメントするステップと、
前のタイム・インターバルにおいて参照された記憶ロケーションに対応するキュー・エントリの前記有効ウェイト係数をリセットするステップと
を含む、請求項10に記載の方法。 - 前記インクレメントするステップは、前記キュー・エントリを含む前記キュー・セクションの前記ウェイト係数をインクレメントするステップを含む、請求項12に記載の方法。
- 前記更新するステップは、
前記対応する記憶ロケーションが参照されたかどうかに従って、前記最初のキュー・セクションにおける各キュー・エントリに対して定義された個々のウェイト係数を更新するステップと、
残りのキュー・セクションにおける各キュー・エントリに対して定義された前記個々のウェイト係数を更新することなく、各残りのキュー・セクションに対して定義された前記ウェイト係数だけを更新するステップと
を含む、請求項10に記載の方法。 - 参照された記憶ロケーションに対応する前記最初のキュー・セクションにおける各キュー・エントリを他のセクションに移動する、請求項14に記載の方法。
- 前記キュー・セクションの各々におけるキュー・エントリの数を前記キュー・セクションに対して定義された所定の許容可能な範囲内に維持するステップをさらに含む、請求項1に記載の方法。
- 最初のキュー・セクションから第2のキュー・セクションに1つ又は複数のキュー・エントリを移動させるステップをさらに含む、請求項1に記載の方法。
- 移動した前記キュー・エントリに対して定義された前記ウェイト係数を、前記第2のキュー・セクションにおけるそれらの有効ウェイト係数が、前記最初のキュー・セクションにおけるそれらの有効ウェイト係数と同じになるように調節するステップをさらに含む、請求項17に記載の方法。
- 新たなキュー・セクションを作成するステップと、
既存のキュー・セクションから前記新たなキュー・セクションに1つ又は複数のキュー・エントリを移動させるステップと
をさらに含む、請求項1に記載の方法。 - 最初のキュー・セクションから1つ又は複数の他のキュー・セクションまで1つ又は複数のキュー・エントリを移動させるステップと、
前記最初のキュー・セクションを削除するステップと
をさらに含む、請求項1に記載の方法。 - 情報処理システムにおいてキューを維持するための手段を遂行するために、機械により実行可能な命令のプログラムを明確に具現化する、該機械により可読なプログラム記憶装置にして、
前記キューを維持するための手段が、
最初のキュー・セクションから最後のキュー・セクションまで順序よく配列され、各々が最初のキュー・エントリから最後のキュー・エントリまで順序よく配列された1つ又は複数のキュー・エントリを含む、複数のキュー・セクションを定義する手段と、
前記キュー・セクションの各々に対するウェイト係数を定義する手段と、
前記キュー・セクションの各々における各キュー・エントリに対するウェイト係数を定義する手段とを含み、
前記キュー・エントリの各々は前記キュー・セクションに対して定義された前記ウェイト係数と前記キュー・エントリに対して定義された前記ウェイト係数とを結合することによって形成された有効ウェイト係数を有する、
プログラム記憶装置。 - 前記キュー・エントリが使用可能な記憶ロケーションに対応する、請求項21に記載のプログラム記憶装置。
- 前記キューを維持するための手段が、新たに使用可能な対応する記憶ロケーションを表す、新たなエントリを前記最後のキュー・セクションに付加する手段をさらに含む、請求項22に記載のプログラム記憶装置。
- 前記キューを維持するための手段が、前記対応する記憶ロケーションが最早使用可能でないことを表す、1つ又は複数のキュー・エントリを削除する手段をさらに含む、請求項22に記載のプログラム記憶装置。
- キュー・エントリが前記キューの最初のセクションからのみ削除される、請求項24に記載のプログラム記憶装置。
- 前記キューを維持するための手段が、前記対応する記憶ロケーションが参照されたかどうかに従って、前記キュー・エントリの各々の有効ウェイト係数を更新する手段をさらに含む、請求項22に記載のプログラム記憶装置。
- 前記キューを維持するための手段が、前記対応する記憶ロケーションが参照されたかどうかに従って、前記最初のキュー・セクションにおける各キュー・エントリに対して定義された個々のウェイト係数を更新する手段と、
残りのキュー・セクションにおける各キュー・エントリに対して定義された前記個々のウェイト係数を更新することなく、各残りのキュー・セクションに対して定義されたウェイト係数だけを更新する手段と
をさらに含む、請求項22に記載のプログラム記憶装置。 - 参照された記憶ロケーションに対応する前記最初のキュー・セクションにおける各キュー・エントリを他のセクションに移動する、請求項27に記載のプログラム記憶装置。
- 前記キューを維持するための手段が、前記キュー・セクションの各々におけるキュー・エントリの数を、前記キュー・セクションに対して定義された所定の許容可能な範囲内に維持する手段をさらに含む、請求項21に記載のプログラム記憶装置。
- 前記キューを維持するための手段が、最初のキュー・セクションから第2のキュー・セクションに1つ又は複数のキュー・エントリを移動させる手段と、
移動したキュー・エントリに対して定義されたウェイト係数を、第2のキュー・セクションにおけるそれらの有効ウェイト係数が最初のキュー・セクションにおけるそれらの有効ウェイト係数と同じになるように調節する手段と
をさらに含む、請求項21に記載のプログラム記憶装置。 - 最初のキュー・セクションから最後のキュー・セクションまで順序よく配列された複数のキュー・セクションを含み、
前記キュー・セクションの各々が最初のキュー・エントリから最後のキュー・エントリまで順序よく配列された1つ又は複数のキュー・エントリを含み、
前記キュー・セクションの各々及び前記キュー・セクションの各々における各キュー・エントリがそれに対して定義されたウェイト係数を有し、
前記キュー・エントリの各々が前記キュー・セクションに対して定義された前記ウェイト係数と前記キュー・エントリに対して定義された前記ウェイト係数とを結合することによって形成された有効ウェイト係数を有する、
情報処理システムにおけるセクション化され且つ順序付けられたキュー。 - 前記複数のキュー・エントリが使用可能な記憶ロケーションに対応する、請求項31に記載のキュー。
- 新たに使用可能な対応する記憶ロケーションを表す、新たなエントリが前記最後のキュー・セクションに付加される、請求項32に記載のキュー。
- 前記対応する記憶ロケーションが最早使用可能でないことを表す、1つ又は複数のキュー・エントリが削除される、請求項32に記載のキュー。
- キュー・エントリが前記キューの最初のセクションからのみ削除される、請求項34に記載のキュー。
- 前記対応する記憶ロケーションが参照されたかどうかに従って、前記キュー・エントリの各々の前記有効ウェイト係数が更新される、請求項32に記載のキュー。
- 前記対応する記憶ロケーションが参照されたかどうかに従って、前記最初のキュー・セクションにおける各キュー・エントリに対して定義された前記個々のウェイト係数が更新され、
残りのキュー・セクションにおける各キュー・エントリに対して定義された前記個々のウェイト係数を更新することなく、各残りのキュー・セクションに対して定義された前記ウェイト係数だけが更新される、
請求項32に記載のキュー。 - 参照された記憶ロケーションに対応する前記最初のキュー・セクションにおける各キュー・エントリを他のセクションに移動する、請求項37に記載のキュー。
- 前記キュー・セクションの各々におけるキュー・エントリの数が、前記キュー・セクションに対して定義された所定の許容可能な範囲内に維持される、請求項31に記載のキュー。
- 最初のキュー・セクションから第2のキュー・セクションに1つ又は複数のキュー・エントリを移動させ、
移動した前記キュー・エントリに対して定義された前記ウェイト係数を、前記第2のキュー・セクションにおけるそれらの有効ウェイト係数が前記最初のキュー・セクションにおけるそれらの有効ウェイト係数と同じになるように調節する、
請求項31に記載のキュー。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US10/085,576 US6807588B2 (en) | 2002-02-27 | 2002-02-27 | Method and apparatus for maintaining order in a queue by combining entry weights and queue weights |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2004030567A JP2004030567A (ja) | 2004-01-29 |
JP3777162B2 true JP3777162B2 (ja) | 2006-05-24 |
Family
ID=27753666
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2003036149A Expired - Lifetime JP3777162B2 (ja) | 2002-02-27 | 2003-02-14 | キューを維持するための方法及び装置 |
Country Status (2)
Country | Link |
---|---|
US (1) | US6807588B2 (ja) |
JP (1) | JP3777162B2 (ja) |
Families Citing this family (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7035914B1 (en) | 1996-01-26 | 2006-04-25 | Simpleair Holdings, Inc. | System and method for transmission of data |
KR100460429B1 (ko) * | 2002-11-15 | 2004-12-08 | 삼성전자주식회사 | 우선순위 큐잉 장치 및 이를 이용한 우선순위 큐잉 방법 |
US20060259665A1 (en) * | 2005-05-13 | 2006-11-16 | Sanjive Agarwala | Configurable multiple write-enhanced direct memory access unit |
US20060282620A1 (en) * | 2005-06-14 | 2006-12-14 | Sujatha Kashyap | Weighted LRU for associative caches |
US7493456B2 (en) * | 2006-10-13 | 2009-02-17 | International Business Machines Corporation | Memory queue with supplemental locations for consecutive addresses |
US8161244B2 (en) * | 2009-05-13 | 2012-04-17 | Microsoft Corporation | Multiple cache directories |
US9110815B2 (en) | 2012-05-07 | 2015-08-18 | International Business Machines Corporation | Enhancing data processing performance by cache management of fingerprint index |
US9021203B2 (en) | 2012-05-07 | 2015-04-28 | International Business Machines Corporation | Enhancing tiering storage performance |
US9645944B2 (en) | 2012-05-07 | 2017-05-09 | International Business Machines Corporation | Enhancing data caching performance |
US9898198B2 (en) * | 2015-06-12 | 2018-02-20 | International Business Machines Corporation | Available frame queue processing |
CN107370558B (zh) * | 2016-05-13 | 2020-09-18 | 北京华为数字技术有限公司 | 一种信道信息发送方法、数据发送方法和设备 |
CN108874812B (zh) * | 2017-05-10 | 2021-12-10 | 腾讯科技(北京)有限公司 | 一种数据处理方法及服务器、计算机存储介质 |
Family Cites Families (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5231633A (en) * | 1990-07-11 | 1993-07-27 | Codex Corporation | Method for prioritizing, selectively discarding, and multiplexing differing traffic type fast packets |
US5325504A (en) * | 1991-08-30 | 1994-06-28 | Compaq Computer Corporation | Method and apparatus for incorporating cache line replacement and cache write policy information into tag directories in a cache system |
US5353425A (en) * | 1992-04-29 | 1994-10-04 | Sun Microsystems, Inc. | Methods and apparatus for implementing a pseudo-LRU cache memory replacement scheme with a locking feature |
US5668972A (en) * | 1994-10-05 | 1997-09-16 | International Business Machines Corporation | Method and system for efficient miss sequence cache line allocation utilizing an allocation control cell state to enable a selected match line |
US5778432A (en) * | 1996-07-01 | 1998-07-07 | Motorola, Inc. | Method and apparatus for performing different cache replacement algorithms for flush and non-flush operations in response to a cache flush control bit register |
US5959993A (en) * | 1996-09-13 | 1999-09-28 | Lsi Logic Corporation | Scheduler design for ATM switches, and its implementation in a distributed shared memory architecture |
US5923656A (en) * | 1996-10-22 | 1999-07-13 | Board Of Trustees Of The University Of Illinois | Scalable broad band input-queued ATM switch including weight driven cell scheduler |
JP3646772B2 (ja) * | 1998-11-30 | 2005-05-11 | 沖電気工業株式会社 | Atm装置 |
US6470016B1 (en) * | 1999-02-09 | 2002-10-22 | Nortel Networks Limited | Servicing output queues dynamically according to bandwidth allocation in a frame environment |
US6480911B1 (en) * | 1999-09-23 | 2002-11-12 | At&T Corp. | Grouping class sensitive queues |
-
2002
- 2002-02-27 US US10/085,576 patent/US6807588B2/en not_active Expired - Lifetime
-
2003
- 2003-02-14 JP JP2003036149A patent/JP3777162B2/ja not_active Expired - Lifetime
Also Published As
Publication number | Publication date |
---|---|
JP2004030567A (ja) | 2004-01-29 |
US20030163644A1 (en) | 2003-08-28 |
US6807588B2 (en) | 2004-10-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP2571664B2 (ja) | コンピュータ主記憶域管理システムおよび方法 | |
US7640275B2 (en) | Method and system for controlling recovery downtime | |
US6038571A (en) | Resource management method and apparatus for information processing system of multitasking facility | |
US5539893A (en) | Multi-level memory and methods for allocating data most likely to be used to the fastest memory level | |
CN110058932B (zh) | 一种用于数据流驱动计算的存储方法和存储系统 | |
JP3777162B2 (ja) | キューを維持するための方法及び装置 | |
JP4317531B2 (ja) | 複数のメモリ・バッファ・サイズを均衡させるためのシステムおよび方法 | |
US6757794B2 (en) | Buffering data in a hierarchical data storage environment | |
US5410700A (en) | Computer system which supports asynchronous commitment of data | |
EP0969382A2 (en) | Method for efficient non-virtual main memory management | |
US5892921A (en) | Prestaging method, buffer management method and file system | |
JP2009294695A (ja) | トランザクション並行制御方法、データベース管理システム、およびプログラム | |
EP3304317B1 (en) | Method and apparatus for managing memory | |
US6219772B1 (en) | Method for efficient memory allocation of small data blocks | |
JP3832341B2 (ja) | メモリプール管理方式 | |
US7836248B2 (en) | Methods and systems for managing persistent storage of small data objects | |
JPH09244931A (ja) | リアルタイムファイルシステム | |
CN116594808B (zh) | 一种数据库回滚资源处理方法、装置、计算机设备及介质 | |
JPH0535511A (ja) | オペレーテイング・システム内のオンデマンド・ページング方式 | |
JPH09269902A (ja) | 情報処理装置の資源管理装置、及び情報処理システムにおける資源管理方法 | |
JP3022829B2 (ja) | 記憶装置の自動割り当て装置 | |
JPS63292456A (ja) | 複数媒体収納型デ−タ記録装置の媒体割り当て制御方式 | |
JP2009217357A (ja) | ファイルスペース追加システム、ファイルスペース追加方法、及びファイルスペース追加プログラム | |
CN117331648A (zh) | 一种缓解无服务器计算冷启动问题的任务调度系统及方法 | |
JPH08153036A (ja) | メモリ管理装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20060126 |
|
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: 20060131 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20060224 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 3777162 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100303 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110303 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120303 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130303 Year of fee payment: 7 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20140303 Year of fee payment: 8 |
|
EXPY | Cancellation because of completion of term |