JP4369524B2 - Lru制御装置およびlru制御プログラム - Google Patents

Lru制御装置およびlru制御プログラム Download PDF

Info

Publication number
JP4369524B2
JP4369524B2 JP2008501578A JP2008501578A JP4369524B2 JP 4369524 B2 JP4369524 B2 JP 4369524B2 JP 2008501578 A JP2008501578 A JP 2008501578A JP 2008501578 A JP2008501578 A JP 2008501578A JP 4369524 B2 JP4369524 B2 JP 4369524B2
Authority
JP
Japan
Prior art keywords
lru
information
entry
control
read
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 - Fee Related
Application number
JP2008501578A
Other languages
English (en)
Other versions
JPWO2007097028A1 (ja
Inventor
智順 大川
広行 小島
昌樹 鵜飼
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
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 Fujitsu Ltd filed Critical Fujitsu Ltd
Publication of JPWO2007097028A1 publication Critical patent/JPWO2007097028A1/ja
Application granted granted Critical
Publication of JP4369524B2 publication Critical patent/JP4369524B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • 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
    • 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
    • G06F12/125Replacement control using replacement algorithms with age lists, e.g. queue, most recently used [MRU] list or least recently used [LRU] list being generated by decoding an array or storage
    • 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/126Replacement control using replacement algorithms with special data handling, e.g. priority of data or instructions, handling errors or pinning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1032Reliability improvement, data loss prevention, degraded operation etc

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

この発明は、記憶装置に備えられた複数のエントリからLRU制御するエントリを選択するLRU制御装置およびLRU制御プログラムに関する。
従来より、所定のプログラムに従って演算処理を行う装置(例えば、汎用コンピュータやスパーコンピュータ、サーバなど)内の記憶装置(例えば、メインメモリやキャッシュなど)に採用されるリプレースメントアルゴリズムの一つとしてLRU制御方式がある(例えば、特許文献1参照)。具体的には、このLRU制御方式は、メインメモリから追い出されたデータが再びCPU(Central Processing Unit)において参照される場合において、入出力頻度の増加による処理効率の低下を避けるため、メインメモリにおいて各データがどのように参照されたかという履歴を取っておき、その履歴に基づいて、今後最もCPUによって参照されそうも無いデータをメインメモリから追い出すことを特徴とする方式である。
例えば、図15および図16を用いて、対象エントリ(ウェイ)数が4である場合の従来のLRU制御を簡単に説明すると、図15は、エントリ数4のLRU制御に必要な6ビットの意味付けを示しており(各エントリをEntry0,1,2,3で示し、A>BはAが最近使用されたことを示す)、図16は、LRU制御の論理を示す(P_は正極性、M_は負極性を示し、〜はNOT、&はAND、|はORを示し、例えば、LRUビット0の信号をP_LRU[0]と示し、エントリ0が使用選択不可である信号をP_DELETE_ENTRY[0]と示す)ものであり、図15に示す6ビットからなる情報の信号を受け付けて、図16に示す論理にあてはめることにより、どのエントリが最近最も使用されていなかったかを求めることができる。
また、LRU制御を多段階化した疑似LRU制御では、例えば、図17(b)に示すように、上記のLRU制御に比べて、エントリ数を16にした場合の必要ビット数を抑えることはできる。
特開平9−288617号公報
しかしながら、上記した従来の技術は、以下に説明するように、LRU制御の対象となるエントリ数が多い場合に現実的な制御が難しいという問題点があり、また、LRU制御を多段階化した疑似LRU制御では、そのLRU制御の結果に偏りが生じる場合があるという問題点があった。
すなわち、この従来のLRU制御では、対象エントリ数を4程度にしてLRU制御を行うのが現実的であり、仮に、対象エントリ数を16にした場合には必要ビット数が120となるので回路実装が複雑となり、現実的な制御が難しいという問題点があった。
また、LRU制御を多段階化した疑似LRU制御では、図12に示すような外部からのエントリ使用選択不可信号による制御を行った場合、使用選択不可エントリの指定の仕方によっては、LRU制御の結果があるエントリ(あるいは下位のエントリのグループ)に偏ってしまう懸念が発生するという問題点があった。
そこで、この発明は、上述した従来技術の課題を解決するためになされたものであり、対象エントリ数が多い場合のLRU制御の必要ビット数を抑えるとともに、完全なLRU制御を実現でき、使用不可エントリの選択の仕方によってLRU制御の結果に偏りが生じること防止することが可能なLRU制御装置およびLRU制御プログラムを提供することを目的とする。
上述した課題を解決し、目的を達成するために、本発明は、記憶装置に備えられた複数のエントリからLRU制御するエントリを選択するLRU制御装置において、前記複数のエントリのそれぞれを識別する識別情報がエントリの最終使用時の古い順に書き込まれたLRU情報を記憶するLRU情報記憶手段と、LRU制御する候補として選択可能であるか否かを示す情報を前記識別情報にそれぞれ対応付けて選択可否情報として記憶する選択可否情報記憶手段と、前記複数のエントリの中のいずれかのエントリが使用された場合に、前記LRU情報記憶手段から前記LRU情報を読み込んで、当該読み込んだLRU情報に含まれる各識別情報の内、前記使用されたエントリの識別情報を最終使用時の最も新しいエントリであることを示す位置に移動させことにより、前記LRU情報を更新するLRU情報更新手段と、前記LRU情報記憶手段から読込んだ前記LRU情報と、前記選択可否情報記憶手段から読込んだ選択可否情報とを用いて、前記複数のエントリの内、選択可能であることを示す情報に対応付けられたエントリの中からLRU制御する候補を選択するLRU制御候補選択手段と、前記LRU情報記憶手段から読込んだ前記LRU情報に前記識別情報が重複して存在するエラーが発生している場合に、前記LRU制御候補選択手段により前記LRU制御する候補の選択に用いられる前記LRU情報の代替の情報として、複数のエントリにそれぞれ対応する各識別情報が重複することなく含まれた更新情報を記憶する更新情報記憶手段とを備え、前記LRU情報更新手段は、前記LRU情報記憶手段から読込まれた前記LRU情報に前記識別情報が重複して存在するエラーが発生している旨を前記LRU制御候補選択手段から受け付けた場合には、前記更新情報記憶手段から前記更新情報を読み込んで、当該読込んだ更新情報に含まれる各識別情報の内、前記使用されたエントリの識別情報を最終使用時の最も新しいエントリであることを示す位置に移動させてから、前記LRU情報記憶手段に書き込むことで前記LRU情報を更新することを特徴とする。
また、本発明は、記憶装置に備えられた複数のエントリからLRU制御するエントリを選択する処理をコンピュータに実行させるLRU制御プログラムにおいて、前記コンピュータに、前記複数のエントリの中のいずれかのエントリが使用された場合に、前記複数のエントリのそれぞれを識別する識別情報がエントリの最終使用時の古い順に書き込まれたLRU情報を記憶するLRU情報記憶手段から当該LRU情報を読込んで、当該読込んだLRU情報を構成する各識別情報の内、前記使用されたエントリの識別情報を最終使用時の最も新しいエントリであることを示す位置に移動させることにより、前記LRU情報を更新するLRU情報更新手順と、前記LRU情報記憶手段から読込んだ前記LRU情報と、RU制御する候補として選択可能であるか否かを示す情報を前記識別情報にそれぞれ対応付けて選択可否情報として記憶する選択可否情報記憶手段から読込んだ当該選択可否情報とを用いて、前記複数のエントリの内、選択可能であることを示す情報に対応付けられたエントリの中からLRU制御する候補を選択するLRU制御候補選択手順と、を実行させ、前記LRU情報更新手順は、前記LRU情報記憶手段から読込まれた前記LRU情報に前記識別情報が重複して存在するエラーが発生している旨を前記LRU制御候補選択手順から受け付けた場合に、前記LRU情報の代替の情報として、複数のエントリにそれぞれ対応する各識別情報が重複することなく含まれた更新情報を記憶する更新情報記憶手段から当該更新情報を読込んで、当該読込んだ更新情報に含まれる識別情報の内、前記使用されたエントリの識別情報を最終使用時の最も新しいエントリであることを示す位置に移動させてから、前記LRU情報記憶手段に書き込むことで前記LRU情報を更新することを特徴とする。
請求項1または5の発明によれば、複数のエントリのそれぞれを識別する識別情報(例えば、エントリごとに一意に付与されたIDなど)を最終使用時が古い順に並べてLRU情報として記憶し、複数のエントリの中のいずれかのエントリが使用された場合に、各識別情報の中から当該使用されたエントリの識別情報を取り出すとともに最後尾に移動させてLRU情報を更新し、記憶しているLRU情報を参照して、複数のエントリの中からLRU制御する候補を選択するので、対象エントリ数が多い場合のLRU制御に必要なビット数を抑えるとともに、完全なLRU制御を実現することが可能となる。
また、請求項2の発明によれば、このLRU制御装置は、LRU制御する候補として選択可能であるか否かを示す情報を複数のエントリの各識別情報にそれぞれ対応付けて選択可否情報として記憶し、記憶している選択可否情報をさらに参照して、選択可能なエントリの中からLRU制御する候補を選択するので、使用不可のエントリの選択の仕方によってLRU制御の結果に偏りが生じることを防止することができ、完全なLRU制御を実現することが可能となる。
また、請求項3の発明によれば、このLRU制御装置は、記憶している各識別情報の全てが、選択不可能であることを示す情報にそれぞれ対応付けられている場合(例えば、LRU情報として不整合な情報が読み出されてしまうエラーが発生した場合)には、選択可能であることを示す情報に対応付けられたエントリのいずれかをLRU制御する候補として選択するので、例えば、フリップフロップやラッチを用いてLRU情報を構成した場合と比較して、RAMを用いてLRU情報を構成した場合に発生しやすいLRU情報の参照エラーに対処することができ、デバイスにとらわれない完全なLRU制御が可能となる。
また、請求項4の発明によれば、このLRU制御装置は、記憶している各識別情報の全てが、選択不可能であることを示す情報にそれぞれ対応付けられている場合(例えば、LRU情報として不整合な情報が読み出されてしまうエラーが発生した場合)には、選択可能なエントリの識別情報(例えば、初期パターン)でLRU情報を更新するので、LRU情報を正しく更新することで次回読み出したときにエントリを選択できない事態を防止することができ、完全なLRU制御が可能となる。
以下に添付図面を参照して、この発明に係るLRU制御装置およびLRU制御プログラムの実施例を詳細に説明する。なお、以下では、実施例1に係るLRU制御装置を説明した後に、この発明に含まれる他の実施例を説明する。
以下の実施例1では、実施例1に係るLRU制御装置の概要および特徴、LRU制御装置の構成および処理の流れを順に説明し、最後に実施例1による効果を説明する。
[概要および特徴(実施例1)]
まず最初に、図1を用いて、実施例1に係るLRU装置の概要および特徴を説明する。
図1は、実施例1に係るLRU制御装置の概要を説明するための図である。同図に示すように、実施例1に係るLRU制御装置は、記憶装置(例えば、メインメモリやキャッシュメモリ、RAMなど)に備えられた複数のエントリからLRU制御する(Least Recently Used、つまり、最終使用時の最も古いエントリ内のデータを追い出す)エントリを選択することを概要とするが、対象エントリ数が多い場合のLRU制御に必要なビット数を抑えるとともに、完全なLRU制御を実現する点に主たる特徴がある。
この主たる特徴について具体的に説明すると、実施例1に係るLRU制御装置は、複数のエントリのそれぞれを識別する識別情報(例えば、エントリごとに一意に付与されたIDなど)を記憶している。この識別情報は、例えば、図1の(1)に例示するように、エントリの識別情報(例えば、ID)を最終使用時が古い順に並べて記憶することでLRU情報を構成し、一番左側の位置に格納されている格納データ0が最終使用時の最も古い(つまり、LRU)エントリのIDを示し、一番右側の位置に格納されている格納データNが最終使用時の最も新しい(つまり、MRU:Most Recently Used)エントリのIDを示す。
そして、実施例1に係るLRU制御装置は、LRU情報を参照して、LRU情報の中から最終使用時の最も古いエントリのIDである格納データ0に基づいて、格納データ0に対応するエントリ(例えば、エントリ1)をLRU制御する候補として選択する。
また、実施例1に係るLRU制御装置は、エントリの使用に応じてLRU情報を更新することで、最終使用時の最も古いエントリを常に把握できるようにLRU情報を構成する。具体的には、例えば、アクセス要求に対応するデータを格納したエントリの識別情報である格納データ1がLRU情報の中に存在し、LRU情報に更新の必要がある場合には、実施例1に係るLRU制御装置は、まず、LRU情報の中から格納データ1を取り出す(図1の(2)参照)。次に、実施例1に係るLRU制御装置は、格納データ1よりも最終使用時の新しいエントリのIDを示す格納データ2から格納データNまでを左にシフトするとともに、シフトによって生成されたMRUの位置に格納データ1を移動させる(図1の(3)参照)。以上で、実施例1に係るLRU制御装置は、LRU情報の更新を完了する(図1の(4)参照)。
このようなことから、実施例1に係るLRU制御装置は、上述した主たる特徴の如く、対象エントリ数が多い場合のLRU制御に必要なビット数を抑えるとともに、完全なLRU制御を実現することが可能となる。
[LRU制御装置の構成(実施例1)]
次に、図2を用いて、実施例1に係るLRU制御装置の構成を説明する。図2は、実施例1に係るLRU制御装置の構成を示すブロック図である。なお、同図においては、実施例1に係るLRU制御装置を実現するうえで必要となる処理部のみを示しており、その他の処理部の記載については省略している。
同図に示すように、実施例1に係るLRU制御装置10は、入出力制御部11と、記憶部12と、制御部13とから構成される。このうち、入出力制御部11は、各種の情報の入出力を制御する入出力制御手段であり、例えば、使用エントリ(更新にかかるエントリ)の識別情報(例えば、ID)の入力や、後述するLRU制御選択部13bによりLRU制御候補として選択されたエントリの識別情報(例えば、ID)の外部モジュールへの出力を制御する。
記憶部12は、制御部13による各種処理に必要なデータおよびプログラムを格納する格納手段(記憶手段)であり、特に本発明に密接に関連するものとしては、LRU情報記憶部12aを備える。このLRU情報記憶部12aは、例えば、16のエントリでLRU情報を構成する場合には、図3に例示するように、LRU制御の候補となる16の対象エントリの識別情報(例えば、ID)を最終使用時の古い順に1番目候補から16番目候補まで4ビットでエンコード(例えば、0000〜1111)した状態で記憶して構成される。
制御部13は、所定の制御プログラム、各種の処理手順などを規定したプログラムおよび所要データを格納するための内部メモリを有し、これらによって種々の処理を実行する処理部であり、特に本発明に密接に関連するものとしては、LRU情報格納制御部13aと、LRU候補選択部13bと、LRU情報更新部13cとを備える。
このうち、LRU情報格納制御部13aは、LRU情報記憶部12aにLRU情報を格納する制御部であり、具体的には、例えば、入出力制御部11から受け付けた使用エントリ(更新にかかるエントリ)のの識別情報(例えば、ID)をLRU情報記憶部12aに備えられた所定の格納位置に格納する。
LRU候補選択部13bは、LRU制御する候補を選択する処理部であり、具体的には、LRU情報記憶部12aから読み出したLRU情報の中に、アクセス要求に対応するデータを格納したエントリの識別情報(例えば、ID)が存在しない場合には、最終使用時の最も古いエントリの識別情報(例えば、ID)に対応するエントリをLRU制御する候補として選択する。そして、LRU候補選択部13bは、LRU制御する候補として選択したエントリの識別情報(例えば、ID)を、入出力制御部11を介して、例えば、外部モジュールなどに出力する。
LRU情報更新部13cは、LRU情報記憶部12aに記憶されているLRU情報を更新する処理部であり、具体的には、アクセス要求に対応するデータを格納したエントリの識別情報(例えば、ID)がLRU情報の中にある場合には、LRU情報の更新を行う。例えば、図5に例示するように、アクセス要求に対応するデータを格納したエントリ2の識別情報がLRU情報の中に存在する場合には、LRU情報記憶部12aに記憶されているLRU情報の任意のインデックス(例えば、Z)における2ndの格納場所からエントリ2の識別情報(例えば、0からFまでの16進数で表わされている情報、図4参照)を取り出して、3rdから16thの格納場所に格納されているデータ(例えば、各エントリのID)を順次左側へシフトし、空いた16thの格納場所へ2ndの格納場所から取り出したエントリ2に対応するエントリの識別情報を格納してLRU情報を更新する(図5の(a)および(b)参照)。
[LRU制御装置による処理(実施例1)]
次に、図6を用いて、実施例1に係るLRU制御装置による処理を説明する。図6は、実施例1に係るLRU制御装置の処理の流れを示すフローチャートである。同図に示すように、所定のデータに対してユーザなどからアクセス要求があると(ステップS601肯定)、LRU制御装置10のLRU候補選択部13bは、LRU情報記憶部12aからLRU情報を読み出す(ステップS602)。
そして、LRU情報に更新の必要がある場合には(S603否定)、LRU情報更新部13cは、LRU情報の更新を行う(ステップS604)。具体的には、LRU情報更新部13cは、例えば、アクセス要求に対応するデータを格納したエントリ2の識別情報(例えば、ID)がLRU情報の中にある場合には、LRU情報記憶部12aに記憶されているLRU情報の任意のインデックス(例えば、Z)における2ndの格納場所からエントリ2に対応するエントリの識別情報(例えば、0からFまでの16進数で表わされている情報、図4参照)を取り出して、3rdから16thの格納場所に格納されているデータ(例えば、各エントリのID)を順次左側へシフトし、空いた16thの格納場所へ2ndの格納場所から取り出したエントリ2に対応するエントリの識別情報を格納してLRU情報を更新する(図5の(a)および(b)参照)。
一方、LRU情報に更新の必要がない場合(すなわち、アクセス要求に対応するデータを格納したエントリの識別情報(例えば、ID)がLRU情報の中にない場合)には(S603否定)、LRU候補選択部13bは、LRU情報の中から最終使用時の最も古いエントリをLRU制御する候補として選択する(ステップS605)。続いて、LRU候補選択部13bは、LRU制御する候補として選択したエントリの識別情報を、入出力制御部11を介して、例えば、外部モジュールなどに出力する(ステップS606)。
[実施例1の効果]
上述してきたように、実施例1によれば、このLRU制御装置は、複数のエントリのそれぞれを識別する識別情報(例えば、エントリごとに一意に付与されたIDなど)を最終使用時が古い順に並べてLRU情報として記憶し、複数のエントリの中のいずれかのエントリが使用された場合に、各識別情報の中から当該使用されたエントリの識別情報を取り出すとともに最後尾に移動させてLRU情報を更新し、記憶しているLRU情報を参照して、複数のエントリの中からLRU制御する候補を選択するので、対象エントリ数が多い場合のLRU制御に必要なビット数を抑えるとともに、完全なLRU制御を実現することが可能となる。
ところで、上記の実施例1では、LRU情報を参照して、LRU制御する候補を選択する場合を説明したが、本発明はこれに限定されるものではなく、LRU制御する候補として選択可能であるか否かの情報を複数のエントリにそれぞれ対応付けて記憶し、LRU情報の中から選択可能なエントリをLRU制御する候補として選択するようにしてもよい。そこで、以下では、LRU情報の中から選択可能なエントリをLRU制御する候補として選択する場合を実施例2として説明する。
なお、以下では、実施例2に係るLRU制御装置の構成および処理の流れを説明した後に、実施例2による効果を説明する。
[LRU制御装置の構成(実施例2)]
まず最初に、図7を用いて、実施例2に係るLRU制御装置の構成を説明する。なお、実施例2に係るLRU制御装置は、実施例1に係るLRU制御装置と基本的に同様の構成であるが、以下に説明する点が異なる。
LRU制御装置20の選択可否情報記憶部22bは、LRU情報記憶部22aに記憶されているLRU情報の中からLRU制御する候補として選択可能であるか否かを示す情報を記憶する記憶手段であり、例えば、図8に例示するように、選択可能であるとする情報(例えば、0)や選択不可能であるとする情報(例えば、1)を各エントリID(例えば、0からFの16進数)にそれぞれ対応付けて記憶して構成される。
LRU制御装置20のLRU候補予備選択部23cは、LRU候補選択部23bにより選択されたLRU制御の候補が選択可能であるか否かを判別する処理部であり、具体的には、選択可否情報記憶部22bから選択可否情報を読み出して、LRU候補選択部23bにより選択されたエントリがLRU制御の候補として選択可能であるかどうか判定し、判定結果をLRU候補選択部23bに対して出力する。
LRU制御装置20のLRU候補選択部23bは、LRU候補予備選択部23cから選択可能である旨の判定結果を受け付けた場合には、選択したエントリをLRU制御の候補として最終的に選択する。一方、選択されたエントリが選択不可能である旨の判定結果を受け付けた場合には、LRU候補選択部23bは、読み出したLRU情報の中から次候補となるエントリを再選択する。具体的には、例えば、図4に示す1stの位置に格納されたエントリCが選択不可能である場合には、2ndの位置に格納されたエントリ2をLRU制御する次候補として選択する。
[LRU制御装置の処理(実施例2)]
次に、図9を用いて、実施例2に係るLRU制御装置の処理を説明する。図9は、実施例2に係るLRU制御装置の処理の流れを示すフローチャートである。同図に示すように、所定のデータに対してユーザなどからリードアクセス要求があると(ステップS901肯定)、LRU制御装置20のLRU候補選択部23bは、LRU情報記憶部22aからLRU情報を読み出す(ステップS902)。
そして、LRU情報に更新がある場合(すなわち、アクセス要求に対応するデータを格納したエントリの識別情報(例えば、ID)がLRU情報の中にある場合)には(S903)、LRU情報更新部13cは、上記の実施例1において説明したのと同様に、LRU情報の更新を行う(ステップS904)。
一方、LRU情報に更新がない場合(すなわち、アクセス要求に対応するデータを格納したエントリの識別情報(例えば、ID)がLRU情報の中にない場合)には(S903否定)、LRU候補選択部13bは、LRU情報の中から最終使用時の最も古いエントリをLRU制御する候補として選択する(ステップS905)。
続いて、LRU候補予備選択部23cは選択可否情報を読み出す(ステップS906)。選択可否情報の読み出し後、LRU候補予備選択部23cは、LRU候補選択部23bにより選択されたエントリがLRU制御の候補として選択可能であるか否かを判定する(ステップS907)。判定の結果、その候補が選択可能である場合には(ステップS907肯定)、LRU候補選択部23bは、選択したエントリをLRU制御の候補として最終的に選択する。そして、LRU候補選択部23bは、LRU制御する候補として最終的に選択したエントリを、入出力制御部11を介して、例えば、外部モジュールなどに出力する(ステップS906)。
ここで、ステップS907の説明に戻ると、LRU候補予備選択部23cによる判定の結果、LRU候補選択部23bにより選択されたエントリがLRU制御の候補として選択不可能である場合には(ステップS907否定)、LRU候補が決定されるまで上述したステップS905からステップS907に示す処理を繰り返し行う。
[実施例2の効果]
上述してきたように、実施例2によれば、このLRU制御装置は、LRU制御する候補として選択可能であるか否かを示す情報を複数のエントリの各識別情報にそれぞれ対応付けて選択可否情報として記憶し、記憶している選択可否情報をさらに参照して、選択可能なエントリの中からLRU制御する候補を選択するので、使用不可のエントリの選択の仕方によってLRU制御の結果に偏りが生じることを防止することができ、完全なLRU制御を実現することが可能となる。
また、上記の実施例2において、LRU候補選択部23bによってLRU情報記憶部22aから読み出されたLRU情報に参照エラーが発生(例えば、LRU情報として不整合な情報が読み出されてしまうエラーが発生)した場合には、LRU候補予備選択部23cは、選択可否情報の中から選択可能なエントリのいずれを選択するようにしてもよい。
例えば、図12に示すように、LRU候補選択部23bによってLRU情報記憶部22aから読み出された情報に参照エラーが発生(一意に付与されているはずのエントリIDC、6、Fなどが重なって読み出されている)して、例えば、図8に示す選択可否情報を参照して、読み出したLRU情報の中のエントリがLRU制御する候補として全て選択不可能である場合には、LRU候補予備選択部23cは、選択可否情報の中から選択可能なエントリ(例えば、2、3,4など)のいずれかを選択する。
これにより、このLRU制御装置は、記憶している各識別情報の全てが、選択不可能であることを示す情報にそれぞれ対応付けられている場合(例えば、LRU情報として不整合な情報が読み出されてしまうエラーが発生した場合)には、選択可能であることを示す情報に対応付けられたエントリのいずれかをLRU制御する候補として選択するので、例えば、フリップフロップやラッチを用いてLRU情報を構成した場合と比較して、RAMを用いてLRU情報を構成した場合に発生しやすいLRU情報の参照エラーに対処することができ、デバイスにとらわれない完全なLRU制御が可能となる。
さて、これまで本発明の実施例について説明したが、本発明は上述した実施例以外にも、種々の異なる形態にて実施されてよいものである。そこで、以下では、本発明に含まれる他の実施例を説明する。
(1)LRU情報の更新
上記の実施例2において、LRU候補選択部23bによってLRU情報記憶部22aから読み出されたLRU情報に参照エラーが発生(例えば、LRU情報として不整合な情報が読み出されてしまうエラーが発生)した場合には、LRU候補予備選択部23cは、選択可否情報の中から選択可能なエントリのいずれを選択する場合を説明したが、本発明はこれに限定されるものではなく、LRU情報内のエントリの識別情報(例えば、ID)を選択可能なエントリの識別情報で更新するようにしてもよい。そこで、以下では、図10、図11および図13を用いて、LRU情報内のエントリの識別情報を更新する場合を説明する。
図10に示すように、LRU制御装置30は、上記の実施例において説明したLRU制御装置と基本的には同様の構成であるが、以下に説明する更新情報記憶部32c、LRU候補選択部33bおよびLRU情報更新部33dが異なる。
LRU制御装置30の更新情報記憶部32cは、LRU情報更新部33dにおいて利用される更新情報を記憶する手段であり、例えば、参照エラーが発生したLRU情報内のデータを更新するための情報として、選択可能なエントリを含んだ情報(例えば、全てのエントリIDを含んだ初期パタンなどの整合情報)を記憶して構成される。
LRU制御装置30のLRU候補選択部33bは、LRU情報記憶部32aから読み出したLRU情報の中に全てのエントリIDが含まれていない(例えば、図11参照)場合には、参照エラーとして、LRU情報更新部33dにその旨の信号を出力する。
LRU制御装置のLRU情報更新部33cは、LRU候補選択部33bから参照エラーである旨の信号を受け付けると、更新情報記憶部32cから更新情報を読み出し、例えば、エントリ7の使用にかかるLRU情報の更新がある場合には、その更新を反映した形で整合情報を生成し(図13参照)、LRU情報記憶部32aに書き込むことでLRU情報内のデータを更新する。
これにより、このLRU制御装置は、記憶している各識別情報の全てが、選択不可能であることを示す情報にそれぞれ対応付けられている場合(例えば、LRU情報として不整合な情報が読み出されてしまうエラーが発生した場合)には、選択可能なエントリの識別情報(例えば、初期パターン)でLRU情報を更新するので、LRU情報を正しく更新することで次回読み出したときにエントリを選択できない事態を防止することができ、完全なLRU制御が可能となる。
(2)装置構成等
また、図2、図7および図10示した各LRU制御装置の各構成要素は機能概念的なものであり、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、各LRU制御装置の分散・統合の具体的形態は図示のものに限られず、例えば、LRU制御装置10のLRU情報格納制御部13aとLRU候補選択部13bとを統合し、LRU制御装置20のLRU候補選択部23bとLRU候補予備選択部23cとを統合し、LRU制御装置30のLRU情報記憶部32aと選択可否情報記憶部32bとを統合するなど、その全部または一部を、各種の負荷や使用状況などに応じて、任意の単位で機能的または物理的に分散・統合して構成することができる。さらに、各LRU制御装置にて行なわれる各処理機能は、その全部または任意の一部が、CPUおよび当該CPUにて解析実行されるプログラムにて実現され、あるいは、ワイヤードロジックによるハードウェアとして実現され得る。
また、本実施例において説明した各処理のうち、自動的におこなわれるものとして説明した処理の全部または一部を手動的におこなうこともでき、あるいは、手動的におこなわれるものとして説明した処理の全部または一部を公知の方法で自動的におこなうこともできる。この他、上記文書中や図面中で示した処理手順、制御手順、具体的名称、各種のデータやパラメータを含む情報については、特記する場合を除いて任意に変更することができる。
(3)LRU制御プログラム
ところで、上記の実施例で説明した各種の処理は、あらかじめ用意されたプログラムをパーソナルコンピュータやワークステーションなどのコンピュータシステムで実行することによって実現することができる。そこで、以下では、図14を用いて、上記の実施例1で説明したLRU制御装置10の処理(LRU制御処理)と同様の機能を有するLRU制御プログラムを実行するコンピュータの一例を説明する。図14は、LRU制御プログラムを実行するコンピュータを示す図である。
同図に示すように、LRU制御装置であるコンピュータ40は、入出力制御部41と、HDD42と、RAM43と、ROM44と、CPU45とを所定のバス50で接続して構成される。ここで、入出力制御部41は、図2に示した入出力制御部11に対応する。
まず、ROM44には、上記の実施例1に示したLRU制御装置10と同様の機能を発揮するLRU制御プログラム、つまり、図14に示すように、LRU情報格納制御プログラム44a、LRU候補選択プログラム44bおよびLRU情報更新プログラム44cがあらかじめ記憶されている。なお、これらのプログラム44a、44bおよび44cについては、図2に示したLRU制御装置10の各構成要素と同様、適宜統合または分散してもよい。
そして、CPU45が、これらのプログラム44a、44bおよび44cをROM44から読み出して実行することで、図14に示すように、各プログラム44a、44bおよび44cは、LRU情報格納制御プロセス45a、LRU候補選択プロセス45bおよびLRU情報更新プロセス45cとして機能するようになる。なお、各プロセス45a、45bおよび45cは、図2に示したLRU制御装置10のLRU情報格納制御部13a、LRU候補選択部13bおよびLRU情報更新部13cにそれぞれ対応する。
また、HDD42には、図14に示すように、LRU情報テーブル42aが設けられる。このLRU情報テーブル42aは、図2に示したLRU制御装置10のLRU情報記憶部12aに対応する。そして、CPU45は、LRU情報テーブル42aからLRU情報データ43aを読み出してRAM43に格納し、RAM43に格納されたLRU情報データ43aに基づいてLRU制御処理を実行する。
なお、上記した各プログラム44a、44bおよび44cは、必ずしも最初からROM44に記憶させておく必要はなく、例えば、コンピュータ40に挿入されるフレキシブルディスク(FD)、CD−ROM、MOディスク、DVDディスク、光磁気ディスク、ICカードなどの「可搬用の物理媒体」、または、コンピュータ40の内外に備えられるHDDなどの「固定用の物理媒体」、さらには、公衆回線、インターネット、LAN、WANなどを介してコンピュータ40に接続される「他のコンピュータ(またはサーバ)」などに各プログラムを記憶させておき、コンピュータ40がこれらから各プログラムを読み出して実行するようにしてもよい。
以上のように、本発明に係るLRU制御装置およびLRU制御プログラムは、記憶装置に備えられた複数のエントリからLRU制御するエントリを選択する場合に有用であり、特に、対象エントリ数が多い場合のLRU制御に必要なビット数を抑えるとともに、完全なLRU制御を実現することに適する。
図1は、実施例1に係るLRU制御装置の概要を説明するための図である。 図2は、実施例1に係るLRU制御装置の構成を示すブロック図である。 図3は、16エントリLRUの構成例を示す図である。 図4は、任意のインデックスのLRU情報の例を示す図である。 図5は、更新によるLRU情報の遷移を示す図である。 図6は、実施例1に係るLRU制御装置の処理の流れを示すフローチャートである。 図7は、実施例2に係るLRU制御装置の構成を示すブロック図である。 図8は、選択可否情報の例を示す図である。 図9は、実施例2に係るLRU制御装置の処理の流れを示すフローチャートである。 図10は、実施例3に係るLRU制御装置の構成を示すブロック図である。 図11は、エラーしたLRU情報の例を示す図である。 図12は、エラーしたLRU情報の例を示す図である。 図13は、LRU情報更新部で生成される整合情報の例を示す図である。 図14は、LRU制御プログラムを実行するコンピュータを示す図である。 図15は、従来技術の4エントリLRUの例を示す図である。 図16は、従来技術によるLRUエントリの求め方を示す図である。 図17は、16エントリの2段疑似LRUの例を示す図である。
符号の説明
10 LRU制御装置
11 入出力制御部
12 記憶部
12a LRU情報記憶部
13 制御部
13a LRU情報格納制御部
13b LRU候補選択部
13c LRU情報更新部
20 LRU制御装置
21 入出力制御部
22 記憶部
22a LRU情報記憶部
22b 選択可否情報記憶部
23 制御部
23a LRU情報格納制御部
23b LRU候補選択部
23c LRU候補予備選択部
23d LRU情報更新部
30 LRU制御装置
31 入出力制御部
32 記憶部
32a LRU情報記憶部
32b 選択可否情報記憶部
32c 更新情報記憶部
33 制御部
33a LRU情報格納制御部
33b LRU候補選択部
33c LRU候補予備選択部
33d LRU情報更新部
40 コンピュータ
41 入出力制御部
42 HDD(Hard disk drive)
43 RAM(Random access memory)
44 ROM(Read only memory)
45 CPU(Central processing unit)
50 バス

Claims (2)

  1. 記憶装置に備えられた複数のエントリからLRU制御するエントリを選択するLRU制御装置において、
    前記複数のエントリのそれぞれを識別する識別情報がエントリの最終使用時の古い順に書き込まれたLRU情報を記憶するLRU情報記憶手段と、
    LRU制御する候補として選択可能であるか否かを示す情報を前記識別情報にそれぞれ対応付けて選択可否情報として記憶する選択可否情報記憶手段と、
    前記複数のエントリの中のいずれかのエントリが使用された場合に、前記LRU情報記憶手段から前記LRU情報を読み込んで、当該読み込んだLRU情報に含まれる各識別情報の内、前記使用されたエントリの識別情報を最終使用時の最も新しいエントリであることを示す位置に移動させことにより、前記LRU情報を更新するLRU情報更新手段と、
    前記LRU情報記憶手段から読込んだ前記LRU情報と、前記選択可否情報記憶手段から読込んだ選択可否情報とを用いて、前記複数のエントリの内、選択可能であることを示す情報に対応付けられたエントリの中からLRU制御する候補を選択するLRU制御候補選択手段と、
    前記LRU情報記憶手段から読込んだ前記LRU情報に前記識別情報が重複して存在するエラーが発生している場合に、前記LRU制御候補選択手段により前記LRU制御する候補の選択に用いられる前記LRU情報の代替の情報として、複数のエントリにそれぞれ対応する各識別情報が重複することなく含まれた更新情報を記憶する更新情報記憶手段と
    を備え、
    前記LRU情報更新手段は、前記LRU情報記憶手段から読込まれた前記LRU情報に前記識別情報が重複して存在するエラーが発生している旨を前記LRU制御候補選択手段から受け付けた場合には、前記更新情報記憶手段から前記更新情報を読み込んで、当該読込んだ更新情報に含まれる各識別情報の内、前記使用されたエントリの識別情報を最終使用時の最も新しいエントリであることを示す位置に移動させてから、前記LRU情報記憶手段に書き込むことで前記LRU情報を更新することを特徴とするLRU制御装置。
  2. 記憶装置に備えられた複数のエントリからLRU制御するエントリを選択する処理をコンピュータに実行させるLRU制御プログラムにおいて、
    前記コンピュータに、
    前記複数のエントリの中のいずれかのエントリが使用された場合に、前記複数のエントリのそれぞれを識別する識別情報がエントリの最終使用時の古い順に書き込まれたLRU情報を記憶するLRU情報記憶手段から当該LRU情報を読込んで、当該読込んだLRU情報を構成する各識別情報の内、前記使用されたエントリの識別情報を最終使用時の最も新しいエントリであることを示す位置に移動させることにより、前記LRU情報を更新するLRU情報更新手順と、
    前記LRU情報記憶手段から読込んだ前記LRU情報と、RU制御する候補として選択可能であるか否かを示す情報を前記識別情報にそれぞれ対応付けて選択可否情報として記憶する選択可否情報記憶手段から読込んだ当該選択可否情報とを用いて、前記複数のエントリの内、選択可能であることを示す情報に対応付けられたエントリの中からLRU制御する候補を選択するLRU制御候補選択手順と、
    を実行させ、
    前記LRU情報更新手順は、前記LRU情報記憶手段から読込まれた前記LRU情報に前記識別情報が重複して存在するエラーが発生している旨を前記LRU制御候補選択手順から受け付けた場合に、前記LRU情報の代替の情報として、複数のエントリにそれぞれ対応する各識別情報が重複することなく含まれた更新情報を記憶する更新情報記憶手段から当該更新情報を読込んで、当該読込んだ更新情報に含まれる識別情報の内、前記使用されたエントリの識別情報を最終使用時の最も新しいエントリであることを示す位置に移動させてから、前記LRU情報記憶手段に書き込むことで前記LRU情報を更新することを特徴とするLRU制御プログラム。
JP2008501578A 2006-02-27 2006-02-27 Lru制御装置およびlru制御プログラム Expired - Fee Related JP4369524B2 (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2006/303620 WO2007097028A1 (ja) 2006-02-27 2006-02-27 Lru制御装置、lru制御方法およびlru制御プログラム

Publications (2)

Publication Number Publication Date
JPWO2007097028A1 JPWO2007097028A1 (ja) 2009-07-09
JP4369524B2 true JP4369524B2 (ja) 2009-11-25

Family

ID=38437087

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2008501578A Expired - Fee Related JP4369524B2 (ja) 2006-02-27 2006-02-27 Lru制御装置およびlru制御プログラム

Country Status (4)

Country Link
US (1) US8065496B2 (ja)
EP (1) EP1990732A4 (ja)
JP (1) JP4369524B2 (ja)
WO (1) WO2007097028A1 (ja)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5534912B2 (ja) * 2010-04-13 2014-07-02 三菱電機株式会社 データ記憶装置
US8468536B2 (en) * 2010-06-24 2013-06-18 International Business Machines Corporation Multiple level linked LRU priority
JP5627521B2 (ja) * 2011-03-24 2014-11-19 株式会社東芝 キャッシュシステムおよび処理装置
US10635806B2 (en) * 2017-05-04 2020-04-28 Crowdstrike, Inc. Least recently used (LRU)-based event suppression
US10838659B2 (en) 2019-02-08 2020-11-17 International Business Machines Corporation Controlling write access to a memory structure based on write request priority

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS6049950B2 (ja) * 1981-08-27 1985-11-06 富士通株式会社 Lruエラ−処理方式
JP2541528B2 (ja) 1986-12-26 1996-10-09 日本電気株式会社 Lruエラ−処理方式
JPH01154265A (ja) 1987-12-10 1989-06-16 Fujitsu Ltd キャシュ更新障害監視回路
US5140690A (en) * 1988-06-14 1992-08-18 Mitsubishi Denki Kabushiki Kaisha Least-recently-used circuit
JPH01314359A (ja) * 1988-06-14 1989-12-19 Mitsubishi Electric Corp 最優劣決定回路
JPH0264832A (ja) 1988-08-31 1990-03-05 Nec Corp ディスク・キャッシュ・メモリ管理装置
US5249286A (en) * 1990-05-29 1993-09-28 National Semiconductor Corporation Selectively locking memory locations within a microprocessor's on-chip cache
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
EP0624844A2 (en) * 1993-05-11 1994-11-17 International Business Machines Corporation Fully integrated cache architecture
JPH09288617A (ja) 1996-04-19 1997-11-04 Nec Corp Lru制御方式
US6134636A (en) * 1997-12-31 2000-10-17 Intel Corporation Method and apparatus for storing data in a memory array
US6202129B1 (en) * 1998-03-31 2001-03-13 Intel Corporation Shared cache structure for temporal and non-temporal information using indicative bits
JP3279253B2 (ja) 1998-05-27 2002-04-30 日本電気株式会社 キャッシュページの管理方法およびキャッシュページの管理プログラムを記憶した媒体
US6490666B1 (en) * 1999-08-20 2002-12-03 Microsoft Corporation Buffering data in a hierarchical data storage environment
JP2003131946A (ja) * 2001-10-19 2003-05-09 Nec Corp キャッシュメモリ制御装置及び方法
US20070118695A1 (en) * 2005-11-18 2007-05-24 International Business Machines Corporation Decoupling storage controller cache read replacement from write retirement

Also Published As

Publication number Publication date
EP1990732A4 (en) 2009-09-02
US20080320256A1 (en) 2008-12-25
EP1990732A1 (en) 2008-11-12
US8065496B2 (en) 2011-11-22
WO2007097028A1 (ja) 2007-08-30
JPWO2007097028A1 (ja) 2009-07-09

Similar Documents

Publication Publication Date Title
US8583872B2 (en) Cache memory having sector function
CN101587447B (zh) 基于预测的事务执行系统和方法
US8832159B2 (en) Systems and methods for asynchronous schema changes
CN101183322B (zh) 延迟日志生成的方法及其设备
JP5211514B2 (ja) 更新装置、更新方法および更新プログラム
JP4369524B2 (ja) Lru制御装置およびlru制御プログラム
TWI533201B (zh) 縮減交易回復的快取控制
CN107992269B (zh) 一种基于去重ssd的事务写入方法
JP2001507845A (ja) キャッシュメモリにおけるプリフェッチ管理
JP2008107983A (ja) キャッシュメモリ
CN1677333A (zh) 写入过程管理方法和系统
JP4009306B2 (ja) キャッシュメモリおよびその制御方法
JP5186270B2 (ja) データベースのキャッシュシステム
JP3890910B2 (ja) 命令の実行結果予測装置
CN112035493A (zh) 用户属性数据的更新方法、装置、服务器和存储介质
CN107391041A (zh) 一种数据访问方法及装置
JPWO2007097027A1 (ja) 縮退制御装置
JP2007272681A (ja) キャッシュメモリ装置及びそのキャッシュラインの入れ替え方法
JP2006343928A (ja) 情報処理装置およびプログラム
US7457919B2 (en) Method for memory page management
US7376797B2 (en) Cache memory system and method using reference bits
US11625386B2 (en) Fast skip list purge
JP2845762B2 (ja) 階層バッファメモリ装置
JP5248762B2 (ja) 設計データ依存関係管理装置、設計データ依存関係管理方法及びプログラム
JP2022545859A (ja) ランダムアクセシング

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20090407

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20090603

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20090616

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20090807

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

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

R150 Certificate of patent or registration of utility model

Ref document number: 4369524

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

Year of fee payment: 3

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

Free format text: PAYMENT UNTIL: 20120904

Year of fee payment: 3

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

Free format text: PAYMENT UNTIL: 20130904

Year of fee payment: 4

LAPS Cancellation because of no payment of annual fees