JP2008544422A - メモリページ管理 - Google Patents

メモリページ管理 Download PDF

Info

Publication number
JP2008544422A
JP2008544422A JP2008519413A JP2008519413A JP2008544422A JP 2008544422 A JP2008544422 A JP 2008544422A JP 2008519413 A JP2008519413 A JP 2008519413A JP 2008519413 A JP2008519413 A JP 2008519413A JP 2008544422 A JP2008544422 A JP 2008544422A
Authority
JP
Japan
Prior art keywords
page
memory page
memory
queue
data structure
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
Application number
JP2008519413A
Other languages
English (en)
Other versions
JP5142995B2 (ja
Inventor
クレイグ ダブリュ スタンフィル
Original Assignee
エービー イニティオ ソフトウェア コーポレーション
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by エービー イニティオ ソフトウェア コーポレーション filed Critical エービー イニティオ ソフトウェア コーポレーション
Publication of JP2008544422A publication Critical patent/JP2008544422A/ja
Application granted granted Critical
Publication of JP5142995B2 publication Critical patent/JP5142995B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/34Addressing or accessing the instruction operand or the result ; Formation of operand address; Addressing modes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/12Replacement control
    • G06F12/121Replacement control using replacement algorithms
    • G06F12/123Replacement control using replacement algorithms with age lists, e.g. queue, most recently used [MRU] list or least recently used [LRU] list
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

シーケンシャルアクセスされる一つ以上のデータ構造のために用いられるメモリをページングするための方法、ならびにそれに対応するソフトウエアおよびシステムに関する。本方法は、メモリページの再使用順序を表すデータ構造(200)を提供するステップ、およびシーケンシャルアクセスされるデータ構造の一つと関係付けられる、メモリページへのアクセス履歴に基づいて、データ構造を維持するステップを含む。その順序におけるメモリページの位置は、メモリページからのシーケンシャルアクセスの移行に依存する。

Description

発明の詳細な説明
発明の背景
本発明はメモリページの管理に関する。
揮発性メモリ格納(例えば、ランダムアクセスメモリ(RAM))を用いて、不揮発性メモリ格納(例えば、一つ以上のディスクドライブ)にも格納されているデータと連携をとることは有用である。例えば、揮発性メモリ格納は、普通は不揮発性メモリ格納よりアクセスおよび読み出し時間が高速である。揮発性メモリ格納および不揮発性メモリ格納のアドレス空間は、所定数の連続するアドレス配置にまたがるページに編成することができる。コンピュータシステムは、ページング技法を用いて、例えば、プログラミングまたはデータ構造が使用する揮発性メモリからメモリページを割り当てる。不揮発性メモリ格納は、普通は揮発性メモリ格納よりずっと規模が大きい。仮想メモリ方式を用いて、使用していない(例えば、現在、書き込みも読み出しもしていない)揮発性メモリ格納内のページを不揮発性メモリ格納へ書き込んでおいて、後で必要な時に、不揮発性メモリ格納から再度読み出すことができる。したがって、揮発性メモリ格納内のページは、各種のプログラミングおよび/またはデータ構造による使用のために「リサイクル(再使用)」される。ページを前後しての移動と関係付けられるオーバーヘッドを低減するために、技法によっては、最長時間未使用(LRU)方式に基づいてページをリサイクルする。LRU方式では、不揮発性メモリ格納へ書き込まれたページが揮発性メモリ格納への移動対象であるにもかかわらず、揮発性メモリ格納内に空きページがない場合、揮発性メモリ格納から不揮発性メモリ格納へリサイクル(つまり、スワッピングまたはページアウト)するように選択されるページは、未使用時間が最長の(例えば、最も長い時間、読み出しまたは書き込みがなされていない)ページである。
発明の概要
一般的な態様において、本発明は、シーケンシャルアクセスされる一つ以上のデータ構造のために用いられるメモリをページングするための方法、ならびにそれに対応するソフトウエアおよびシステムを特徴とする。本方法は、メモリページの再使用順序を表すデータ構造を提供するステップ、およびシーケンシャルアクセスされるデータ構造の一つと関係付けられた、メモリページへのアクセス履歴に基づいて、データ構造を維持するステップを含み、よって、その順序におけるメモリページの位置を、メモリページからのシーケンシャルアクセスの移行に依存させる。
この態様は、以下の特徴の一つ以上を含む:
メモリページからのシーケンシャルアクセスの移行は、メモリページからのポインタの移行に対応する。
その順序におけるメモリページの位置は、シーケンシャルアクセスの移行が、メモリページからの書き込みアクセスの移行に対応するかどうかに依存する。
シーケンシャルアクセスされるデータ構造の一つと関係付けられた、メモリページへのアクセス履歴に基づくデータ構造を維持するステップが、メモリページからの書き込みアクセスの移行に応じて、順序を表すデータ構造の第1エンドに、メモリページ用の識別子を配置するステップと、閉じられているメモリページと関係付けられる、シーケンシャルアクセスされるデータ構造に応じて、順序を表すデータ構造の第2エンドに、メモリページ用の識別子を配置するステップとを含む。
本方法は、順序を表すデータ構造の第1エンドからのメモリページを再使用するステップをさらに含む。
本方法は、空きメモリページリストが空であることを判定した後、データ構造の第1エンドからの前記メモリページを再使用するステップをさらに含む。
メモリページを再使用するステップは、メモリページの現在のコンテンツを不揮発性メモリ格納へ書き込むステップを含む。
メモリページを再使用するステップは、不揮発性メモリ格納からのメモリページをメモリページへ書き込むステップをさらに含む。
メモリページと関係付けられる、シーケンシャルアクセスされるデータ構造は、待ち行列を含む。
一般的な態様において、本発明は、シーケンシャルアクセスされる一つ以上のデータ構造のために用いられるメモリをページングするための方法、ならびにそれに対応するソフトウエアおよびシステムを特徴とし、第1のケースでは最長時間使用方式に基づき、第2のケースでは最長時間未使用方式に基づいて、シーケンシャルアクセスされるデータ構造に関係付けられるメモリページを再使用するステップを含む。
本態様は以下の特徴の一つ以上を含むことができる:
第1のケースは、メモリページからの書き込みポインタの移行を含む。
第2のケースは、シーケンシャルアクセスされるデータ構造を閉じるアクセスエンティティを含む。
第2のケースは、メモリページからの読み出しポインタの移行を含む。
本発明の態様は、以下の利点の一つ以上を含むことができる:
再使用のためのページを順序付けるステップは、待ち行列または他のシーケンシャルI/Oデータ構造を格納するメモリシステムに対して、どのページがすぐに再使用される可能性があるのか、より良好な予測を提供できる。書き込まれたばかりの(すなわち、書き込みポインタがページを去ったばかりの)ページは、読み出しポインタが書き込みポインタに「追いつかなければ」ならないので、すぐに再使用される可能性が少ない。したがって、これらのページは、最初にリサイクルされる。さらに、閉じたばかりの待ち行列に対するページは、すぐに再オープンされて、再使用されるかもしれないので、後までリサイクルされない。しばらく閉じたままのページはその間にどこかにリサイクルされる。
待ち行列特有のページングアルゴリズムの使用は、待ち行列構造またはアクセスパターンを利用しないページングアルゴリズムの使用を超える高い効率を提供できる。データ格納待ち行列のページングは、どのページが再使用されるかを決定する際に、待ち行列アクセス履歴を利用することにより改良できる。例えば、アクセス履歴に基づいて、幾つかのページは他のページより早く再アクセスされる、と予測することができる。この改良により、作業している記憶装置内に必要なページが存在する可能性がより高くなるので、作業中の記憶装置へデータを転送して戻すことに起因する遅延を低減できる。
本発明の他の特徴および利点は、以下の説明および特許請求の範囲から明らかになろう。
詳細な説明
図1を参照すると、待ち行列システム100により、アクセスエンティティ102A〜102Pは、1セット以上の待ち行列QUEUE_1〜QUEUE_Nへメッセージを追加し、待ち行列からメッセージを読み出すことができる。アクセスエンティティは待ち行列マネージャ102を介してシステム100と相互作用する。待ち行列マネージャ102はメモリ管理モジュール(MMM)106を用いて、データ読み書きのアクセスが相対的に高速な一時的作業記憶装置である揮発性メモリ格納108と、データの永続性が相対的に高い恒久的記憶装置であって揮発性格納より読み書きのアクセスが相対的に低速な不揮発性メモリ110との間で、ページのスワッピングを支援する。MMM106は、ソフトウエアまたはハードウエアまたはその両方で実装できる。MMMは、揮発性メモリアドレス空間と不揮発性メモリアドレス空間との間のページアドレスを翻訳する。MMMは揮発性メモリへのページ参照の監視も行い、利用不可のページ(例えば、揮発性メモリページが不揮発性メモリへ書き込まれた後、新規使用のためにリサイクルされたページ)への参照を検出できる。MMMは、この「ページフォールト」について、待ち行列マネージャ102に警告することにより応答する。次いで、待ち行列マネージャ102は、参照されたページを不揮発性メモリから読み出し、揮発性メモリの空きページ内へそのページをコピーする。揮発性メモリに空きページがない場合、待ち行列マネージャ102は、後で詳細に説明するように、「リサイクルリスト」に基づいてページをリサイクルする。待ち行列マネージャ102およびMMM106は、任意の種類のオペレーティングシステムおよびコンピュータ環境で実装できる。待ち行列マネージャおよび/またはMMM106は、オペレーティングシステム内へ統合できる。代替として、オペレーティングシステムは、待ち行列マネージャ102へ割り当てられないページを管理するための、別の仮想メモリシステムを有してもよい。
所与の待ち行列(例えばQUEUE_2)は一連の記録を格納でき、一セットの「待ち行列ページ」内に、シーケンシャル待ち行列メッセージおよびこれらのメッセージの管理に関連する記録を含む。メッセージおよび待ち行列ページの相対的なサイズに応じて、待ち行列ページは一つ以上のメッセージ、または一つのメッセージの一部を保持できる。待ち行列マネージャ102は、一セットの待ち行列ページに待ち行列を割り当て、待ち行列が成長すると、そのセットへページを追加できる。図示の実施の形態では、セット内の待ち行列ページは全て不揮発性メモリ格納110内に格納され、アクティブな待ち行列ページのサブセットは揮発性メモリ格納108内に格納される。
待ち行列(または他のシーケンシャルアクセスされるデータ構造)の「シーケンシャル」状況は、メッセージ(またはデータ構造の他の要素)の論理的順序を参照する。メッセージの格納配置は、必ずしも、システム100の物理的または仮想的なアドレス空間内のシーケンシャルアドレスにある必要はない。
揮発性メモリ格納108内の待ち行列ページのコンテンツが変更された場合、その待ち行列ページは「ダーティ」とマーキングされる。ダーティ待ち行列ページが揮発性メモリ格納108から削除された場合、不揮発性メモリ格納110内の待ち行列ページの古いコピーは、その変更により更新される(すなわち、待ち行列ページは、不揮発性メモリ格納110へ「同期」される)。ダーティ待ち行列ページは、待ち行列ページが揮発性メモリ格納108から削除される前に、不揮発性メモリ格納110に同期させることもできる。待ち行列マネージャは、待ち行列が待ち行列ページをもはや必要としなくなった後(例えば、待ち行列が削除された後)、待ち行列に対する幾つかのまたは全ての待ち行列ページを回収する。
図2Aを参照すると、リサイクルリスト200は、リサイクルされる可能性がある揮発性メモリ内のページを識別する。リサイクルリスト200は、第1の「ヘッド」エンド202および第2の「テール」エンド204を有する。ページは、後述するように、テールまたはヘッドエンドのどちらかに追加することができ、ヘッドエンド202から削除される。リサイクルリストは、例えば、二重リンクされたリストとして実装できる。
一実施の形態では、リサイクルリスト200は、ページテーブル206内の待ち行列ページを識別する「仮想アドレス」を格納する(例えば、QUEUE_1へ割り当てられた待ち行列ページ「5」を識別する「Q1/P5」)。ページテーブル206は、待ち行列システム100内の待ち行列へ割り当てられる待ち行列ページそれぞれに対するエントリを含む。図では、ページテーブル206は、それぞれのエントリに対して、不揮発性メモリ空間208内に不揮発性メモリページアドレス「N-PAGE」を含み、揮発性メモリ空間210内に揮発性メモリページアドレス「V-PAGE」を含む。揮発性メモリページアドレスは、揮発性メモリ格納108内に格納されない待ち行列ページに対しては空(例えば、未使用アドレス値と一致)であってもよい。ページテーブル206は、待ち行列ページがリサイクルリスト200内にあるかどうかを指示する「リサイクルビット」を含む。ページテーブルは、幾つのアクセスエンティティが待ち行列ページにアクセスしているかを示す「参照カウント」を含む。
各待ち行列は、不揮発性メモリ格納110内に格納される割り当て待ち行列ページセットを有する(例えば、図3Bで、QUEUE_2は、アドレスN-PAGE_10〜N-PAGE_16に格納されるページQ2/P1〜Q2/P7を有する)。待ち行列ページによっては、揮発性および不揮発性メモリの両方にコピーを持つことができる(例えば、図3Aおよび3BのページQ2/P3〜Q2/P7)。揮発性メモリ格納108内に格納される待ち行列ページに対しては、ページテーブル206は、「ダーティビット」を用いて、まだ不揮発性メモリ格納110へ戻して同期していない、待ち行列ページのコンテンツへ変更があるかどうかを示す。
例えば、待ち行列へ新規に追加されたメッセージは、単に揮発性メモリ内に格納されているだけとしてもよい。関係する待ち行列メッセージを格納する待ち行列ページは、待ち行列ページが揮発性メモリから不揮発性メモリへコミット操作で同期されるので、揮発性および不揮発性メモリの両方に格納されていてもよい。(幾つかの方式の何れかを用いて、関係するメッセージを同期させることでメッセージが失われないようにすることができる。メッセージを確実にする一手法は、引用して本明細書に組み込まれる同時係属/同時出願の「メッセージ待ち行列管理」に記載されている)。待ち行列ページを格納する揮発性メモリのページは、不揮発性メモリ内のコピーだけを残して、リサイクルしてしまってもよい(例えば、別の待ち行列が使用するために)。
一つ以上のアクセスエンティティは、読み出しおよび/または書き込みのために待ち行列を開くことができる。アクセスエンティティは、待ち行列を開いて、待ち行列の最後に一つ以上のメッセージを追加することができる。アクセスエンティティは、待ち行列を開いて、待ち行列の前から、または待ち行列内の特定の場所(例えば、以前に待ち行列から読み出した時に到達した場所)から、関係するメッセージを読み出すことができる。アクセスエンティティによるアクセスに対して待ち行列が開かれると、待ち行列システム100は、アクセスエンティティに対して読み出しおよび/または書き込みポインタを設定する等の、開くための作業を実行する。アクセスエンティティが待ち行列へのアクセス終了後、アクセスエンティティは待ち行列を閉じ、待ち行列システム100は、閉じるための適切な作業を実行する。多数のアクセスエンティティが、同一待ち行列へ同時にアクセスできる。したがって、待ち行列は、幾つかのアクセスエンティティのアクセスに対して開くことができ、他のアクセスエンティティに対して閉じることができる。
アクセスエンティティが待ち行列を開くと、アクセスエンティティは、アクセスされている待ち行列ページに対する参照カウントをインクリメントする。アクセス対象である待ち行列ページが既に揮発性メモリ格納108内にない場合、その待ち行列ページは、不揮発性メモリ格納110から、揮発性メモリ格納108へコピーされる。アクセスエンティティが待ち行列ページへのアクセスを終了した後(例えば、待ち行列を閉じた後または待ち行列ページの最後を越えて書き込んだ後)、アクセスエンティティは、その待ち行列ページに対する参照カウントをデクリメントする。
待ち行列システム100は、アクセスエンティティが読み出しポインタでデータを読み出している場所、およびアクセスエンティティが書き込みポインタでデータを追加(すなわち書き込み)している場所のトラックを保持する。アクセスエンティティが待ち行列から読み出し、またはそれへ書き込んでいる間、アクセスされている待ち行列ページは、揮発性メモリ格納108内にある。待ち行列システム100は、空きリスト212により利用可能な揮発性メモリページのトラックを保持する。新規待ち行列ページが不揮発性メモリ格納110から揮発性メモリ格納108へコピーされる対象であるのに、空きページがない場合(すなわち、空きリストが空の場合)、待ち行列システム100は、リサイクルリスト200に基づいて揮発性メモリページをリサイクルする。
揮発性メモリページをリサイクルするには、待ち行列システム100が、リサイクルリスト200のヘッド202で識別されるページをチェックすることにより、リサイクルするページを探す。識別されたページが、所定の基準によりリサイクル可能なページとして適格である場合(例えば、読み出しまたは書き込みポインタが現在参照していないことを示す参照カウントゼロをそのページが有する)、そのページの現在のコンテンツは、(必要なら)不揮発性メモリ格納110へ書き込まれ、そのページは割り当てが自由になる(次いで、リサイクルリスト200から削除される)。そのページの現在のコンテンツが、既に不揮発性メモリに同期している場合、待ち行列システム100は、不揮発性メモリへの書き込みをせずにページを開放する。識別されたページが、リサイクル可能なページとして不適格である場合、そのページはリサイクルリストから削除され、リサイクルリストの新規ヘッド202が、リサイクル可能ページに対するチェックを受ける。
一実施では、待ち行列システム100が、リサイクルリスト200へ揮発性メモリページを追加する(すなわち、そのページは、開放される可能性のある候補となる)のには、2つのケースがある。
ケース1:書き込みポインタがページから移動し、他の読み出しまたは書き込みポインタがどれもそのページを指し示さず、そのページは既にリサイクルリスト200上にない。
ケース2:ページを使用している待ち行列が閉じられ、他の読み出しまたは書き込みポインタがどれもそのページを指し示さず、そのページは既にリサイクルリスト200上にない。
ケース1は、例えば、待ち行列に一連のメッセージを追加しているアクセスエンティティが、メッセージで待ち行列ページを埋める場合に生じる可能性がある。ケース1では、待ち行列システム100は、リサイクルリスト200のヘッド202へそのページを追加する。このケースは、より新しく書き込まれたページが、それより前に書き込まれたページの前にリサイクルされるので、最長時間使用(MRU)方式に対応する。
ケース2では、待ち行列システム100は、リサイクルリスト200のテール204へそのページを追加する。このケースは、ページがリサイクルリストの先頭から用いられ、それにより、古い閉じられたページが、より新しい閉じられたページの前にリサイクルされるので、最長時間未使用(LRU)方式に対応する。
他の実施では、ページをリサイクルリスト200へ追加するために他のケースを含めることができる。例えば、ページをリサイクルリスト200のテール204へ追加することができる別のケースは:
ケース3:読み出しポインタがページから移動し、他の読み出しまたは書き込みポインタがどれもそのページを指し示さず、そのページは既にリサイクルリスト200上にない。
他の実施は、各ページへのアクセス履歴に基づいて、リサイクルリスト内でページ順序を維持するための多様な規則のどれかを含むことができる。メモリページからのシーケンシャルアクセスの移行(例えば、ページから移動する書き込みポインタ)に依存するよう、メモリページの少なくとも幾つかの位置を順序よく編成することにより、本システムは、シーケンシャルアクセスされるデータ構造の統計的特性を利用して、ページングの効率を高めることができる。
空きリスト212内のページは、もはや必要ではない、したがって、待ち行列ページと関係付けられないページに対応する。待ち行列システム100がページを空きリスト212へ追加するケースは様々である。あるケースでは、システム100は、リーダー(読み出し者)として待ち行列へ申し込んでいる、全てのアクセスエンティティにより読み出された(すなわち、全ての申し込み者の読み出しポインタが、ページ上の各メッセージを処理してしまい、そのページから去ってしまった)待ち行列メッセージを保持するページを開放する。待ち行列システム100は、何らかの様々な他の理由でページを開放できる。例えば、ページ上のメッセージ全てが、削除されるかまたは「片づけられた」場合、ページが開放される。
実施によっては、ページは時間制限に基づいて開放される。例えば、ページは、ページと関係付けられる待ち行列が、所定時間(例えば2分間)を越えて閉じていた後に、開放される。別のケースでは、ページは、関係する待ち行列が開いていても、所定時間(例えば10分間)を越えてアクセスされなかった後は開放される。
さらに、待ち行列マネージャ102は、他のプログラムまたはデータ構造が使用する揮発性メモリページを開放して、待ち行列システム100が待ち行列ページを割り当てるために使用できる。待ち行列システム100は、全ての揮発性メモリページを開放するために用いることもできるグローバルフリーリスト212を用いることができ、さもなければ代替として、待ち行列ページに用いる揮発性メモリページに対してセパレートフリーリスト212を用いることができる。
図2Bに示すのは、仮想アドレスに基づいてシーケンシャルに並べたQUEUE_1に対するページQ1/P1〜Q1/P8のセットの実施例である。本実施例では、一つの書き込みアクセスエンティティが、一連のメッセージを待ち行列に書き込んでいて、二つの読み出しアクセスエンティティが、利用可能になった時にメッセージを読み出している。書き込みアクセスエンティティは、シーケンシャルに増加する仮想アドレスで、ページ上にメッセージを書き込む書き込みポインタWRITER_1を有する。書き込みポインタWRITER_1がページQ1/P7からページQ1/P8へ移動した後、ページQ1/P7は、ケース1のもとでリサイクルリスト200のヘッド202上に配置可能となる。読み出しポインタREADER_2がページQ1/P2からページQ1/P3へ移動した後、ページQ1/P2は、ケース3のもとでリサイクルリスト200のテール204上に配置可能となる。
第1の読み出しアクセスエンティティは読み出しポインタREADER_1を有し、このポインタが、書き込みポインタWRITER_1を何ページかの待ち行列ページ分だけ遅延させる。この遅延は、そのアクセスエンティティが待ち行列システム100と相互作用する時に短くなったり長くなったりする。第2の読み出しアクセスエンティティは、同様に、書き込みポインタWRITER_1を遅延させる読み出しポインタREADER_2を有する。空きページがライターにとって利用可能なままである場合、リーダーは、揮発性メモリ格納108から、書き込まれたページにアクセスできる。空きページを利用できない場合(例えば、揮発性メモリ空間が、リーダーによる大きな遅延が原因で一杯になっている場合)、書き込まれたページの幾つかをリサイクルできるかもしれない。例えば、このページ管理方式のもとでは、最新使用ページが繰り返しリサイクルされることになり、揮発性メモリ内には、遅れているリーダーが利用可能な最長時間未使用ページのシーケンスが残される。
QUEUE_1を閉じた後、リサイクルリスト200上に既にない待ち行列ページはどれも、リサイクルリスト200のテール204上に配置可能となる。テール204上に配置される最新の閉じた待ち行列に対するこのような待ち行列ページはどれも、テール204からヘッド202まで、そのページがリサイクルリスト200を上方「スクロール」するまで、別のアクセスエンティティによるアクセスに対して揮発性メモリ格納108内に利用可能なまま残る。
図3Aは、揮発性メモリ格納108に対するメモリアドレス空間210内の待ち行列ページの実施例を示す。ページアドレスV-PAGE_1〜V-PAGE_2は空なので、図3Dに示す空きリスト212内に含まれる。アドレスV-PAGE_3〜V-PAGE_7を用いて、QUEUE_2の待ち行列ページを格納する。読み出しアクセスエンティティは、待ち行列ページQ2/P3内のメッセージを読み出すための、V-PAGE_2内に配置された読み出しポインタREADER_1を有する(本実施例では待ち行列ページは複数のメッセージを格納する)。書き込みアクセスエンティティは、待ち行列ページQ2/P7内にメッセージを書き込むための、V-PAGE_7内に配置された書き込みポインタWRITER_1を有する。アドレスV-PAGE_8〜V-PAGE_10を用いて、閉じられるQUEUE_1の待ち行列ページを格納する。アドレスV-PAGE_11〜V-PAGE_12を用いて他のデータを格納する。
図3Bに示すのは、不揮発性メモリ格納110のメモリアドレス空間208の実施例である。不揮発性メモリ格納110は、同期されている(例えばコミット操作による同期)QUEUE_1およびQUEUE_2の待ち行列ページを格納し、その内の幾つかは揮発性メモリ格納108にも新しくロードされている。本実施例では、揮発性メモリ内の待ち行列ページQ2/P7は、不揮発性メモリとまだ同期していない新規メッセージで書き込まれている。
図3Cは、揮発性メモリ格納108内の活動履歴に対応するリサイクルリスト200を示す。例えば、QUEUE_1は閉じたばかりなので、待ち行列システム100は、LRU方式に基づいてリサイクルするために、リサイクルリスト200のテールエンド204上にこれらの仮想アドレスを配置することにより、待ち行列ページQ1/P3〜Q1/P5を記録したところである。書き込みポインタWRITER_1は、待ち行列ページQ2/P4、Q2/P5、およびQ2/P6(この順序で)から移動したばかりである。したがって、待ち行列システム100は、これらの仮想アドレスを、リサイクルリスト200の、テールエンド204ではなくヘッドエンド202上に配置したところである。
図4A〜4Cは、続いて起こる活動の後の、揮発性アドレス空間210、不揮発性アドレス空間208、およびリサイクルリスト200の状態をそれぞれ示す。書き込みポインタWRITER_1は、空きリスト212から割り当てられるアドレスV-PAGE_2で新規待ち行列ページQ2/P8上に移動したところである。第2の読み出しアクセスエンティティは、V-PAGE_1内に配置された読み出しポインタREADER_2を有し、空きリスト212から割り当てられた待ち行列ページQ1/P1内のメッセージを読み出す。これらのページ割り当て後、空きリスト212は空になる。
図5A〜5Cは、リサイクルリスト200からのページ割り当て後の、揮発性アドレス空間210、不揮発性アドレス空間208、およびリサイクルリスト200の状態をそれぞれ示す。書き込みポインタWRITER_1は、待ち行列ページQ2/P8上に残る。読み出しポインタREADER_1は、V-PAGE_4で待ち行列ページQ2/P4上に移動したところである。読み出しポインタREADER_2は、リサイクルリスト200(図4C)のヘッド202から割り当てられた待ち行列ページQ1/P2上に移動したところである。このページ割り当て後、リサイクルリスト200の新規ヘッド202は、Q2/P6となる(図5C)。待ち行列ページQUEUE_1AおよびQUEUE_1Cはもはや必要でなくなるので、アドレスV-PAGE_1およびV-PAGE_3は、空きリスト204(図5D)上に配置される。
この実施例では、単一ライターおよび単一リーダーが所与の待ち行列にアクセスする。その他の実施例では、多数のアクセスエンティティ(例えば、加入者および/またはライター)が同一の待ち行列と相互作用できる(それぞれが自身の読み出しまたは書き込みポインタを有する)。多数のアクセスエンティティが一つの待ち行列と相互作用する場合、メモリページをリサイクルするために上記説明の同一ケースを用いることができる。
待ち行列システム100は、本明細書で説明した技法と組み合わせた他の技法を用いてシステム性能を高めることができる。例えば、待ち行列マネージャ102は、ページが要求されようとしている時を予測でき、多数のページを同時にリサイクルできる。待ち行列マネージャ102は、例えば、リサイクルリスト内のページが追加された後にそれを並べ替えることによりリサイクルリストを修正することもできる。
上記のページ管理方式は、コンピュータ上で実行するためのソフトウエアを用いて実施できる。例えば、このソフトウエアは、プログラムされるか、またはプログラム可能な一台以上のコンピュータシステム(分散型、クライアント/サーバ型、またはグリッド型のような各種アーキテクチャで構成できる)上で実行される、一つ以上のコンピュータプログラム内の手順を形成し、上記コンピュータシステムはそれぞれ、少なくとも一つのプロセッサ、少なくとも一つのデータ記憶装置システム(揮発性および不揮発性メモリおよび/または記憶素子を含む)、少なくとも一つの入力装置または入力ポート、および少なくとも一つ出力装置または出力ポートを含む。このソフトウエアは、例えば、計算グラフの設計および構成に関連する他のサービスを提供する大規模なプログラムの一つ以上のモジュールを形成してもよい。グラフのノードおよび要素は、コンピュータ読取り可能な媒体内に格納されるデータ構造、またはデータ収納庫内に格納されるデータモデルに準拠した他の体系化されたデータとして実装できる。
このソフトウエアは、汎用または専用のプログラマブルコンピュータが読みとれるCD−ROMのような、または実行している場所のコンピュータにネットワークを介して配信(伝送信号に符号化されて)可能な媒体上で提供できる。機能は全て、専用コンピュータ上で、またはコプロセッサのような専用ハードウエアを用いて実行できる。本ソフトウエアは、ソフトウエアが規定する、計算の異なる部分を異なるコンピュータで実行する分散方式で実施することができる。このようなコンピュータプログラムはそれぞれ、コンピュータシステムが記憶媒体または装置を読みとって本明細書に記載する手順を実行する場合、コンピュータを構成し、動作させるために、汎用または専用プログラマブルコンピュータが読みとれる記憶媒体または装置(例えば、固体のメモリもしくは媒体または磁気もしくは光の媒体)に格納するか、ダウンロードするのが好ましい。本発明のシステムは、コンピュータプログラムとともに構成されるコンピュータ読取り可能な記憶媒体として、実装されるべきであると考えることもでき、そのように構成された記憶媒体は、コンピュータシステムを特定のおよび所定の方法で動作させ、本明細書に記載の機能を実行させる。
言うまでもなく、上記記載は説明用であって、本発明の範囲を制限するものではなく、その範囲は、付帯する特許請求の範囲により定義される。例えば、上記の幾つかの機能ステップは、処理全体へ実質的に影響を及ぼさずに異なる順序で実行できる。他の実施の形態は、以下の特許請求の範囲内にある。
図1は、待ち行列システムの図である。 図2Aは、揮発性および不揮発性メモリ空間へリサイクルリストをリンクするページテーブルの図である。 図2Bは、メモリページの図である。 図3Aは、揮発性および不揮発性メモリ空間内のメモリページの図である。 図3Bは、揮発性および不揮発性メモリ空間内のメモリページの図である。 図3Cは、図3Aの揮発性メモリ空間に対応するリサイクルリストおよび空きリストの図である。 図3Dは、図3Aの揮発性メモリ空間に対応するリサイクルリストおよび空きリストの図である。 図4Aは、揮発性および不揮発性メモリ空間内のメモリページの図である。 図4Bは、揮発性および不揮発性メモリ空間内のメモリページの図である。 図4Cは、図4Aの揮発性メモリ空間に対応するリサイクルリストの図である。 図5Aは、揮発性および不揮発性メモリ空間内のメモリページの図である。 図5Bは、揮発性および不揮発性メモリ空間内のメモリページの図である。 図5Dは、図5Aの揮発性メモリ空間に対応するリサイクルリストおよび空きリストの図である。 図5Dは、図5Aの揮発性メモリ空間に対応するリサイクルリストおよび空きリストの図である。

Claims (16)

  1. シーケンシャルアクセスされる一つ以上のデータ構造のために用いられるメモリをページングするための方法であって、
    メモリページの再使用順序を表すデータ構造(200)を提供するステップと、
    前記シーケンシャルアクセスされるデータ構造の一つと関係付けられた、メモリページへのアクセス履歴に基づいて、前記データ構造を維持して、前記順序における前記メモリページの位置を、前記メモリページからのシーケンシャルアクセスの移行に依存させるステップとを含む方法。
  2. 前記メモリページからのシーケンシャルアクセスの前記移行は、前記メモリページからのポインタの移行に対応する請求項1の方法。
  3. 前記順序における前記メモリページの前記位置は、シーケンシャルアクセスの前記移行が、前記メモリページからの書き込みアクセスの移行に対応するかどうかに依存する請求項1の方法。
  4. 前記シーケンシャルアクセスされるデータ構造の一つと関係付けられた、メモリページへのアクセス履歴に基づいて、前記データ構造を維持するステップは、
    前記メモリページからの書き込みアクセスの移行に応じて、前記順序を表す前記データ構造の第1エンドに、前記メモリページのための識別子を配置するステップと、
    閉じている前記メモリページと関係付けられる前記シーケンシャルアクセスされるデータ構造に応じて、前記順序を表す前記データ構造の第2エンドに、前記メモリページのための識別子を配置するステップとを含む請求項1の方法。
  5. 前記順序を表す前記データ構造の前記第1エンドからのメモリページを再使用するステップをさらに含む請求項4の方法。
  6. 空きメモリページリストが空であることを判定した後、前記データ構造の前記第1エンドから前記メモリページを再使用するステップをさらに含む請求項5の方法。
  7. 前記メモリページを再使用するステップは、前記メモリページの現在のコンテンツを不揮発性メモリ格納へ書き込むステップを含む請求項5の方法。
  8. 前記メモリページを再使用するステップは、前記不揮発性メモリ格納からのメモリページを前記メモリページへ書き込むステップをさらに含む請求項7の方法。
  9. 前記メモリページと関係付けられる、前記シーケンシャルアクセスされるデータ構造は、待ち行列を含む請求項1の方法。
  10. シーケンシャルアクセスされる一つ以上のデータ構造のために用いられるメモリをページングするための、コンピュータ読取り可能な媒体上に格納されるソフトウエアであって、
    メモリページの再使用順序を表すデータ構造(200)を提供する命令と、
    前記シーケンシャルアクセスされるデータ構造の一つと関係付けられた、メモリページへのアクセス履歴に基づいて、前記データ構造を維持して、前記順序における前記メモリページの位置を、前記メモリページからのシーケンシャルアクセスの移行に依存させる命令とをコンピュータシステムに実行させるソフトウエア。
  11. シーケンシャルアクセスされる一つ以上のデータ構造のために用いられるメモリをページングするためのシステムであって、
    メモリページの再使用順序を表すデータ構造(200)を提供するための手段と、
    前記シーケンシャルアクセスされるデータ構造の一つと関係付けられた、メモリページへのアクセス履歴に基づいて、前記データ構造を維持して、前記順序における前記メモリページの位置を、前記メモリページからのシーケンシャルアクセスの移行に依存させる手段とを備えたシステム。
  12. シーケンシャルアクセスされる一つ以上のデータ構造のために用いられるメモリをページングするための方法であって、
    第1のケースでは最新使用方式に基づいて、第2のケースでは最長時間未使用方式に基づいて、シーケンシャルアクセスされるデータ構造と関係付けられるメモリページを再使用するステップを含む方法。
  13. 前記第1のケースは、前記メモリページからの書き込みポインタの移行を含む請求項12の方法。
  14. 前記第2のケースは、アクセスエンティティが前記シーケンシャルアクセスされるデータ構造を閉じることを含む請求項12の方法。
  15. 前記第2のケースは、前記メモリページからの読み出しポインタの移行を含む請求項12の方法。
  16. コンピュータ読取り可能な媒体上に格納されるソフトウエアであって、
    第1のケースでは最新使用方式に基づいて、第2のケースでは最長時間未使用方式に基づいて、シーケンシャルアクセスされるデータ構造と関係付けられるメモリページを再使用させるための命令を、コンピュータシステムに実行させるソフトウエア。
JP2008519413A 2005-06-27 2006-06-22 メモリページ管理 Active JP5142995B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US11/169,246 2005-06-27
US11/169,246 US7673105B2 (en) 2005-06-27 2005-06-27 Managing memory pages
PCT/US2006/024291 WO2007002282A2 (en) 2005-06-27 2006-06-22 Managing memory pages

Related Child Applications (1)

Application Number Title Priority Date Filing Date
JP2012225139A Division JP5647203B2 (ja) 2005-06-27 2012-10-10 メモリページ管理

Publications (2)

Publication Number Publication Date
JP2008544422A true JP2008544422A (ja) 2008-12-04
JP5142995B2 JP5142995B2 (ja) 2013-02-13

Family

ID=37568978

Family Applications (2)

Application Number Title Priority Date Filing Date
JP2008519413A Active JP5142995B2 (ja) 2005-06-27 2006-06-22 メモリページ管理
JP2012225139A Active JP5647203B2 (ja) 2005-06-27 2012-10-10 メモリページ管理

Family Applications After (1)

Application Number Title Priority Date Filing Date
JP2012225139A Active JP5647203B2 (ja) 2005-06-27 2012-10-10 メモリページ管理

Country Status (8)

Country Link
US (2) US7673105B2 (ja)
EP (1) EP1896951B1 (ja)
JP (2) JP5142995B2 (ja)
KR (1) KR101372964B1 (ja)
CN (1) CN101189584B (ja)
AU (1) AU2006262111B2 (ja)
CA (1) CA2610180C (ja)
WO (1) WO2007002282A2 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008236615A (ja) * 2007-03-23 2008-10-02 Kyocera Mita Corp 画像形成装置及びメモリ資源確保方法

Families Citing this family (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7673105B2 (en) * 2005-06-27 2010-03-02 Ab Inition Technology LLC Managing memory pages
US7694091B2 (en) * 2006-10-23 2010-04-06 Hewlett-Packard Development Company, L.P. Non-volatile storage for backing up volatile storage
US8010519B2 (en) * 2008-07-29 2011-08-30 International Business Machines Corporation Method and system for mitigating impact of user errors in data stores
KR101581679B1 (ko) * 2009-03-18 2015-12-31 삼성전자주식회사 저장 장치 및 저장 장치의 버퍼 메모리 관리 방법
CN102460400B (zh) * 2009-06-29 2014-09-24 惠普开发有限公司 基于管理程序的本地和远程虚拟内存页面管理
US9684455B2 (en) * 2013-03-04 2017-06-20 Seagate Technology Llc Method and apparatus for sequential stream I/O processing
CN103516580B (zh) * 2012-06-26 2017-06-23 北京大学 一种基于消息队列实现消息接收与转发的方法及系统
JP6323986B2 (ja) * 2012-06-26 2018-05-16 シャープ株式会社 画像表示装置、それを含む画像表示システム、及びその制御方法
US9417757B1 (en) * 2013-09-20 2016-08-16 Emc Corporation Scalable hierarchical user interface display
EP2985690B1 (en) * 2014-08-11 2018-07-18 Dot Hill Systems Corporation Method and apparatus for sequential stream i/o processing
CN104239248B (zh) * 2014-09-16 2017-06-06 国家计算机网络与信息安全管理中心 Pci‑e多缓冲区dma数据传输方法
US10067981B2 (en) 2014-11-21 2018-09-04 Sap Se Intelligent memory block replacement
CN106843756B (zh) * 2017-01-13 2019-12-31 中国科学院信息工程研究所 基于页面分类的内存页面回收方法及系统
GB201709499D0 (en) 2017-06-15 2017-08-02 Microsoft Technology Licensing Llc Memory management in non-volatile memory
CN111679914B (zh) * 2020-06-12 2023-06-27 北京字节跳动网络技术有限公司 一种内存管理方法、系统、计算机设备及存储介质
CN112052089B (zh) * 2020-09-01 2023-03-28 Oppo(重庆)智能科技有限公司 内存回收方法、装置以及电子设备

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS5597081A (en) * 1979-01-12 1980-07-23 Fujitsu Ltd Page send-out system
JPS6086638A (ja) * 1983-10-18 1985-05-16 Fujitsu Ltd プログラムの記憶管理方式
JPS638851A (ja) * 1986-06-27 1988-01-14 Yokogawa Hewlett Packard Ltd キャッシュ・メモリ制御方式
JPH0546668A (ja) * 1991-08-07 1993-02-26 Nec Corp 分散データ制御システム
JPH07168762A (ja) * 1991-04-22 1995-07-04 Internatl Business Mach Corp <Ibm> キャッシュページ置換方法及び装置並びにコンピュータ装置
JP2002183074A (ja) * 2000-12-14 2002-06-28 Fuji Xerox Co Ltd データ転送制御装置
JP2002540502A (ja) * 1999-03-25 2002-11-26 エクセロン コーポレイション データベースシステムにおけるバーチャルメモリマッピングとトランザクションマネージメントのポインターリロケーションオプチミゼーションの方法及び装置
JP2004152173A (ja) * 2002-10-31 2004-05-27 Sharp Corp ディスク装置およびディスク装置のキャッシュメモリ制御方法

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5125086A (en) * 1989-06-29 1992-06-23 Digital Equipment Corporation Virtual memory paging apparatus with variable size in-page clusters
US5426747A (en) 1991-03-22 1995-06-20 Object Design, Inc. Method and apparatus for virtual memory mapping and transaction management in an object-oriented database system
US5504899A (en) 1991-10-17 1996-04-02 Digital Equipment Corporation Guaranteeing global serializability by applying commitment ordering selectively to global transactions
US5530848A (en) 1992-10-15 1996-06-25 The Dow Chemical Company System and method for implementing an interface between an external process and transaction processing system
US5455944A (en) 1993-03-16 1995-10-03 International Business Machines Corporation Method for managing logging and locking of page free space information in a transaction processing system
US5617537A (en) * 1993-10-05 1997-04-01 Nippon Telegraph And Telephone Corporation Message passing system for distributed shared memory multiprocessor system and message passing method using the same
US5586312A (en) 1994-10-11 1996-12-17 Unisys Corporation Method and apparatus for using an independent transaction processing application as a service routine
US5857204A (en) 1996-07-02 1999-01-05 Ab Initio Software Corporation Restoring the state of a set of files
US6327644B1 (en) 1998-08-18 2001-12-04 International Business Machines Corporation Method and system for managing data in cache
US7673105B2 (en) * 2005-06-27 2010-03-02 Ab Inition Technology LLC Managing memory pages

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS5597081A (en) * 1979-01-12 1980-07-23 Fujitsu Ltd Page send-out system
JPS6086638A (ja) * 1983-10-18 1985-05-16 Fujitsu Ltd プログラムの記憶管理方式
JPS638851A (ja) * 1986-06-27 1988-01-14 Yokogawa Hewlett Packard Ltd キャッシュ・メモリ制御方式
JPH07168762A (ja) * 1991-04-22 1995-07-04 Internatl Business Mach Corp <Ibm> キャッシュページ置換方法及び装置並びにコンピュータ装置
JPH0546668A (ja) * 1991-08-07 1993-02-26 Nec Corp 分散データ制御システム
JP2002540502A (ja) * 1999-03-25 2002-11-26 エクセロン コーポレイション データベースシステムにおけるバーチャルメモリマッピングとトランザクションマネージメントのポインターリロケーションオプチミゼーションの方法及び装置
JP2002183074A (ja) * 2000-12-14 2002-06-28 Fuji Xerox Co Ltd データ転送制御装置
JP2004152173A (ja) * 2002-10-31 2004-05-27 Sharp Corp ディスク装置およびディスク装置のキャッシュメモリ制御方法

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008236615A (ja) * 2007-03-23 2008-10-02 Kyocera Mita Corp 画像形成装置及びメモリ資源確保方法

Also Published As

Publication number Publication date
CA2610180A1 (en) 2007-01-04
WO2007002282A2 (en) 2007-01-04
KR101372964B1 (ko) 2014-03-13
JP5647203B2 (ja) 2014-12-24
US7673105B2 (en) 2010-03-02
AU2006262111A2 (en) 2007-01-04
EP1896951A4 (en) 2009-01-28
CN101189584B (zh) 2010-12-15
KR20080021623A (ko) 2008-03-07
EP1896951B1 (en) 2019-10-16
US7949839B2 (en) 2011-05-24
JP5142995B2 (ja) 2013-02-13
AU2006262111B2 (en) 2011-03-17
CA2610180C (en) 2016-11-29
US20060294330A1 (en) 2006-12-28
AU2006262111A1 (en) 2007-01-04
CN101189584A (zh) 2008-05-28
EP1896951A2 (en) 2008-03-12
US20100122048A1 (en) 2010-05-13
WO2007002282A3 (en) 2007-09-20
JP2013037718A (ja) 2013-02-21

Similar Documents

Publication Publication Date Title
JP5142995B2 (ja) メモリページ管理
US10176057B2 (en) Multi-lock caches
US8489821B2 (en) Managing concurrent accesses to a cache
US9229869B1 (en) Multi-lock caches
JP2004062869A (ja) コンピュータ・システムでのトランザクションの選択的キャッシングの方法および装置
TW200417857A (en) Allocating cache lines
JP3485598B2 (ja) ファイルの配置方法、データ多重化方法及びデータ処理システム
JP4189342B2 (ja) ストレージ装置、ストレージコントローラ及びライトバックキャッシュ制御方法
US10210097B2 (en) Memory system and method for operating the same
US11249646B1 (en) Large segment management
US6728854B2 (en) System and method for providing transaction management for a data storage space
JP4131579B2 (ja) データ管理システムおよびデータ管理方法
US11874767B2 (en) Memory partitions for processing entities
CN111435285B (zh) 存储卷写数据方法、装置、电子设备及机器可读存储介质
Xu et al. Caiti: I/O transit caching for persistent memory-based block device
JPH0337748A (ja) 主記憶を利用した外部記憶アクセス方式
Zhou Memory management for networked servers
JPH04111026A (ja) データベースに対する更新履歴情報の書き込み方式

Legal Events

Date Code Title Description
A072 Dismissal of procedure [no reply to invitation to correct request for examination]

Free format text: JAPANESE INTERMEDIATE CODE: A072

Effective date: 20080902

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20090604

A711 Notification of change in applicant

Free format text: JAPANESE INTERMEDIATE CODE: A711

Effective date: 20100624

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20100625

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20111214

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20111220

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20120309

RD03 Notification of appointment of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7423

Effective date: 20120316

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20120316

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20120419

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20120419

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20120426

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120517

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20120712

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20121010

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: 20121101

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: 20121120

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

Free format text: PAYMENT UNTIL: 20151130

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Ref document number: 5142995

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250