JP4448550B2 - キャッシュシステム - Google Patents

キャッシュシステム Download PDF

Info

Publication number
JP4448550B2
JP4448550B2 JP2008548093A JP2008548093A JP4448550B2 JP 4448550 B2 JP4448550 B2 JP 4448550B2 JP 2008548093 A JP2008548093 A JP 2008548093A JP 2008548093 A JP2008548093 A JP 2008548093A JP 4448550 B2 JP4448550 B2 JP 4448550B2
Authority
JP
Japan
Prior art keywords
cache
entry
oldest
information
caches
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
JP2008548093A
Other languages
English (en)
Other versions
JPWO2008068797A1 (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 JPWO2008068797A1 publication Critical patent/JPWO2008068797A1/ja
Application granted granted Critical
Publication of JP4448550B2 publication Critical patent/JP4448550B2/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/128Replacement control using replacement algorithms adapted to multidimensional cache systems, e.g. set-associative, multicache, multiset or multilevel
    • 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/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0806Multiuser, multiprocessor or multiprocessing cache systems
    • G06F12/0811Multiuser, multiprocessor or multiprocessing cache systems with multilevel cache hierarchies
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/27Using a specific cache architecture
    • G06F2212/271Non-uniform cache access [NUCA] architecture

Description

本発明は、一般にメモリシステムに関し、詳しくはキャッシュシステムに関する。
コンピュータシステムにおいては一般に、主記憶とは別に小容量で高速なキャッシュメモリが設けられる。主記憶に記憶される情報の一部をキャッシュにコピーしておくことで、この情報をアクセスする場合には主記憶からではなくキャッシュから読み出すことで、高速な情報の読み出しが可能となる。
キャシュは複数のキャッシュラインを含み、主記憶からキャッシュへの情報のコピーはキャッシュライン単位で実行される。主記憶のメモリ空間はキャッシュライン単位で分割され、分割されたメモリ領域を順番にキャッシュラインに割当てておく。キャッシュの容量は主記憶の容量よりも小さいので、主記憶のメモリ領域を繰り返して同一のキャッシュラインに割当てることになる。
メモリ空間上のあるアドレスに最初のアクセスが実行されると、そのアドレスの情報(データやプログラム)をキャシュ内の対応するキャッシュラインにコピーする。同一アドレスに対して次のアクセスを実行する場合にはキャシュから直接に情報を読み出す。一般に、アドレスの全ビットのうちで、所定数の下位ビットがキャッシュのインデックスとなり、それより上位に位置する残りのビットがキャッシュのタグとなる。
データをアクセスする場合には、アクセス先を示すアドレス中のインデックス部分を用いて、キャッシュ中の対応するインデックスのタグを読み出す。読み出したタグと、アドレス中のタグ部分のビットパターンが一致するか否かを判断する。一致しない場合にはキャッシュミスとなる。一致する場合には、キャッシュヒットとなり、当該インデックスに対応するキャッシュデータ(1キャッシュライン分の所定ビット数のデータ)がアクセスされる。
各キャッシュラインに対して1つだけタグを設けたキャッシュの構成を、ダイレクトマッピング方式と呼ぶ。各キャッシュラインに対してN個のタグを設けたキャッシュの構成をNウェイセットアソシアティブと呼ぶ。ダイレクトマッピング方式は1ウェイセットアソシアティブとみなすことができる。
キャッシュミスが発生した場合に、主記憶にアクセスすることによるペナルティーを軽減するために、キャッシュメモリを多階層化したシステムが用いられる。例えば、1次キャッシュと主記憶との間に、主記憶よりは高速にアクセスできる2次キャッシュを設けることにより、1次キャッシュにおいてキャッシュミスが発生した場合に、主記憶にアクセスが必要になる頻度を低くして、キャッシュミス・ペナルティーを軽減することができる。
従来、プロセッサにおいては動作周波数の向上やアーキテクチャの改良により処理速度を向上させてきた。しかし近年、周波数をこれ以上高くすることには技術的な限界が見え始めており、複数のプロセッサを用いたマルチプロセッサ構成により処理速度の向上を目指す動きが強くなっている。
複数のプロセッサが存在するシステムは、各々がキャッシュを有する既存のシングルプロセッサコアを複数個設け、それらを単純に繋げることで実現可能である。このような構成は、設計コストを低く抑えることができるが、キャッシュの使用効率やキャッシュの一貫性に関して問題がある。
この問題を解決するキャッシュ機構として、本願の出願人は既に共有分散キャッシュ機構を提案している。この方式では、各プロセッサがキャッシュを有し、あるプロセッサから見たときに他のプロセッサのキャッシュを自らのプロセッサのキャッシュの下位階層のキャッシュとして利用可能な構成となっている。
図1は、共有分散キャッシュシステムの構成の一例を示す図である。図1に示す共有分散キャッシュシステムは、複数のコア(プロセッサ)11乃至13、複数のコア11乃至13に一対一に対応する複数のキャッシュ14乃至16、キャッシュ14乃至16に接続されるキャッシュ間接続コントローラ17、及びメインメモリ18を含む。コア11乃至13はそれぞれ、自らに直接に接続されるキャッシュ(自コアキャッシュ)14乃至16を一次キャッシュとしてアクセス可能である。この共有分散キャッシュシステムでは、更に、他のコアのキャッシュを二次キャッシュとしてアクセス可能なように構成される。即ち例えばコア10から見たときに、キャッシュ14を一次キャッシュとしてアクセス可能であるとともに、更にキャッシュ15及び16を二次キャッシュとしてアクセス可能なように構成される。このような二次キャッシュをアクセスする経路は、キャッシュ間接続コントローラ17を介して提供される。
図2は、図1に示す共有分散キャッシュシステムにおけるデータロードアクセス動作を示すフローチャートである。図2のステップS1において、まず、複数のコア11乃至13の何れか1つのコアが、自らに直接に接続されたキャッシュ(自コアキャッシュ)へロード要求を発行する。
ステップS2において、ロード要求を受け取ったキャッシュは、要求対象のデータがキャッシュ内に存在するか否か、即ちキャッシュヒットであるか否かを判定する。キャッシュヒットである場合には、ステップS3において、自コアキャッシュから要求対象のデータを読み出して、ロード要求を発行したコアにデータを返送する。
ステップS2においてキャッシュミスである場合には、ステップS4に進む。このステップS4において、キャッシュミスが検出されたキャッシュの下に、下位階層キャッシュが存在するか否かを判定する。例えばステップS2においてキャッシュミスが検出されてステップS4に進んだ場合には、キャッシュミスが検出されたキャッシュはキャッシュ14乃至16の何れか1つであるので、この場合、他の2つのキャッシュが下位階層キャッシュとして存在する。下位階層キャッシュが存在する場合には、ステップS5に進む。
ステップS5において、キャッシュ階層が1つ下の他コアキャッシュにアクセスする。ステップS6において、アクセス要求を受け取ったキャッシュは、要求対象のデータがキャッシュ内に存在するか否か、即ちキャッシュヒットであるか否かを判定する。キャッシュミスである場合には、ステップS4に戻り、以降の処理を繰り返す。
ステップS6においてキャッシュヒットである場合には、ステップS7に進む。このステップS7において、キャッシュデータを移動するか否かを判定する。キャッシュデータを移動する場合には、ステップS8で、キャッシュヒットしたキャッシュからアクセス対象のキャッシュライン(アクセス対象のデータ)を自コアキャッシュに移動し、コアへデータを返送する。この際に、キャッシュラインの自コアキャッシュへの移動に伴い、自コアキャッシュから追い出されるキャッシュラインを他コアに移動する。ステップS7においてキャッシュデータを移動しないと判定された場合には、キャッシュヒットしたキャッシュから、アクセス対象のデータを、ロード要求を発行したコアに返送する。
またステップS4において、下位階層キャッシュが存在しないと判定された場合には、ステップS10に進む。例えばステップS6においてキャッシュミスが検出されてステップS4に進んだ際に、このキャッシュミスが検出されたキャッシュが既に最下層のキャッシュであった場合、その下層にはメインメモリ18しか存在しない。このような場合には、ステップS10で、メインメモリ18から要求対象のデータを読み出し、自コアキャッシュにアロケート(1キャッシュライン分の要求対象のデータを自コアキャッシュにコピー)するとともに、ロード要求を発行したコアにデータを返送する。またこの動作に伴い自コアキャッシュから追い出されたキャッシュラインは、例えば下位階層キャッシュに移動される。
上記の動作フローにおいて、ステップS7乃至S9はキャッシュとキャッシュとの間のデータ転送に関連する動作であり、ステップS10はメモリとキャッシュとの間のデータ転送に関連する動作である。
上記のステップS10の動作では、自コアキャッシュにおいてアクセス対象のインデックスのエントリが全て使われている場合、アクセス対象のデータをアロケートするためには、それらのキャッシュエントリの何れかを追い出す必要がある。この際、追い出すキャッシュエントリを何らかの基準に基づいて選択する必要がある。また追い出されたキャッシュエントリの転送先として、何れのキャッシュの何れのエントリを用いるかを、何らかの基準に基づいて選択する必要がある。また追い出されたキャッシュを破棄してしまうという選択肢もある。これらの選択は、当然ながら、キャッシュの使用効率が良くなるように行われる必要があるとともに、追い出し・転送動作自体が効率的に行われる必要がある。
特表2004−511840 特開昭59−003773
以上を鑑みて本発明は、メモリもしくは下位階層キャッシュから自コアキャッシュにデータ転送する際に、キャッシュエントリの追い出し動作を効率的に実行可能な、共有分散キャッシュシステムを提供することを目的とする。
キャッシュシステムは、主記憶装置にアクセスするよう機能する複数の処理装置と、該複数の処理装置に一対一に結合された複数のキャッシュと、該複数のキャッシュに結合され該複数のキャッシュ間のデータ転送及び該複数のキャッシュと該主記憶装置との間のデータ転送を制御するコントローラを含み、該コントローラは、各キャッシュ内でのエントリの古さ順を示す第1の情報と該複数のキャッシュ全体でのエントリの古さ順を示す第2の情報とを各インデックス毎に格納するメモリと、該複数の処理装置の1つが該主記憶装置もしくは下位階層キャッシュをアクセスする際に該1つの処理装置に対応する1つのキャッシュからアクセス対象のアドレスに対応するインデックスのエントリを追い出す必要がある場合、追い出すエントリ及びその移動先を該第1の情報及び該第2の情報に応じて決定するロジック回路を含むことを特徴とする。
本発明の少なくとも1つの実施例によれば、メモリもしくは下位階層キャッシュから自コアキャッシュにデータ転送する際に、各キャッシュ内でのエントリの古さ順を示す第1の情報と複数のキャッシュ全体でのエントリの古さ順を示す第2の情報とを設け、追い出すエントリ及びその移動先を第1の情報及び第2の情報に応じて決定することにより、キャッシュエントリの追い出し動作を効率的に実行することができる。
共有分散キャッシュシステムの構成の一例を示す図である。 図1に示す共有分散キャッシュシステムにおけるデータロードアクセス動作を示すフローチャートである。 本発明による共有分散キャッシュシステムの構成の一例を示す図である。 共有分散キャッシュシステムにおけるキャッシュエントリ追い出し動作の処理を示すフローチャートである。 第1のLRU情報の第1の実施例を示す図である。 第1のLRU情報の第2の実施例を示す図である。 第2のLRU情報の実施例を示す図である。 第1のLRU情報と第2のLRU情報の格納場所について説明するための図である。 追い出しエントリを破棄する場合の動作を説明するための図である。 図9の動作の各ステップとシステムクロックのサイクルとの関係を示す図である。 追い出しエントリを破棄する場合のLRU情報更新動作について説明するための図である。 追い出しエントリを転送する場合の動作を説明するための図である。 図12の動作の各ステップとシステムクロックのサイクルとの関係を示す図である。 追い出しエントリを転送する場合のLRU情報更新動作について説明するための図である。 ある着目インデックスに対する全エントリが全体の古さ順に並べられた様子を示す図である。 (a)は、他コアキャッシュに対応する第2のLRU情報の更新の様子を示し、(b)は、自コアキャッシュに対応する第2のLRU情報の更新の様子を示す図である。 図15に示すようなデータ移動に伴うエントリ更新がなされた場合の第2のLRU情報の変化を示す図である。
符号の説明
20 共有分散キャッシュシステム
21〜23 コア(プロセッサ)
24〜26 キャッシュ
27 キャッシュ間接続コントローラ
28 メインメモリ
31 メモリ
32 ロジック回路
41 第1のLRU情報
42 第2のLRU情報
以下に、本発明の実施例を添付の図面を用いて詳細に説明する。
図3は、本発明による共有分散キャッシュシステムの構成の一例を示す図である。図3に示す共有分散キャッシュシステム20は、複数のコア(プロセッサ)21乃至23、複数のコア21乃至23に一対一に対応する複数のキャッシュ24乃至26、キャッシュ24乃至26に接続されるキャッシュ間接続コントローラ27、及びメインメモリ28を含む。なお図3に示すメインメモリ28の位置には、低速なキャッシュ、即ちキャッシュ24乃至26より更に下位階層のキャッシュが設けられ、更にその下位階層にメインメモリが存在する構成であってもよい。
コア21乃至23は、メインメモリ(又は低速キャッシュ)28にアクセスするよう機能する処理装置であり、アクセス先から読み出したデータを処理し、読み出し時と同一のアクセス先又は別のアクセス先に処理したデータを書き込んだりする。キャッシュ24乃至26は、コア21乃至23に一対一に結合される小容量で高速な記憶装置である。コア21乃至23は、メインメモリ28よりも高速にキャッシュ24乃至26にアクセスすることができる。キャッシュ間接続コントローラ27は、キャッシュ24乃至26に結合され、キャッシュ24乃至26間のデータ転送及びキャッシュ24乃至26とメインメモリ28との間のデータ転送を制御する。
共有分散キャッシュシステム20のデータアクセス動作は、図2のフローチャートに示されるのと同一の処理により実行される。このようなデータアクセス動作により、コア21乃至23はそれぞれ、自らに直接に接続されるキャッシュ(自コアキャッシュ)24乃至26を一次キャッシュとしてアクセス可能であるとともに、他のコアのキャッシュを二次キャッシュとしてアクセス可能となる。即ち例えばコア20から見たときに、キャッシュ24を一次キャッシュとしてアクセス可能であるとともに、更にキャッシュ25及び26を二次キャッシュとしてアクセス可能なように構成される。言い換えると、二次キャッシュを下位階層キャッシュとしてアクセス可能である。このような二次キャッシュをアクセスする経路は、キャッシュ間接続コントローラ27を介して提供される。
図3に示されるキャッシュ間接続コントローラ27は、LRU情報を格納するメモリ(レジスタ)31と、メモリ31のLRU情報に基づいてキャッシュのエントリ移動を制御するロジック回路32とを含む。ここでLRUとはLeast Recent Usedの意味であり、LRU情報は、最も長いこと使用されていないものを特定する情報である。具体的には、複数のエントリに対するLRU情報は、それら複数のエントリの古さ順(最も長いこと使用されていない順)を示す情報である。
メモリ31は、キャッシュ24乃至26の各キャッシュ内でのエントリの古さ順を示す第1のLRU情報と、複数のキャッシュ24乃至26全体でのエントリの古さ順を示す第2のLRU情報とを各インデックス毎に格納する。即ち第1のLRU情報は、各キャッシュ毎及び各インデックス毎に設けられる情報であり、あるキャッシュ及びあるインデックスに対応する第1のLRU情報は、そのキャッシュ内に存在するそのインデックスの複数のエントリについて、そのキャッシュ内での古さ順を示す情報である。また第2のLRU情報は、複数のキャッシュ24乃至26全体について各インデックス毎に設けられる情報であり、あるインデックスに対応する第2のLRU情報は、複数のキャッシュ全体に存在するそのインデックスの複数のエントリについて、複数のキャッシュ全体における古さ順を示す情報である。
図2のステップS10に示すように、自コアキャッシュにおいてアクセス対象のインデックスのエントリが全て使われている場合、アクセス対象のデータをアロケートするためには、それらのキャッシュエントリの何れかを追い出す必要がある。このようにコア21乃至23の1つがメインメモリ28をアクセスする際にそのコアに対応する1つのキャッシュからアクセス対象のアドレスに対応するインデックスのエントリを追い出す必要がある場合、ロジック回路32は、追い出すエントリ及びその移動先を上記第1のLRU情報及び第2のLRU情報に応じて決定する。なお、本発明の実施は、メインメモリ28をアクセスする場合に限定されず、より低速なキャッシュへアクセスした際に、そのコアに対応する1つのキャッシュからアクセス対象のアドレスに対応するインデックスのエントリを追い出す必要がある場合にも適用できる。
この際、具体的には、ロジック回路32は、自コアキャッシュに存在するアクセス対象のアドレスに対応するインデックスの複数のエントリのうちで最古のエントリを追い出しエントリとして第1のLRU情報に応じて選択する。また複数のキャッシュ24乃至26に存在するアクセス対象のアドレスに対応するインデックスの複数のエントリのうちで最古のエントリを、追い出しエントリの移動先として第2のLRU情報に応じて選択する。ロジック回路32は、選択した移動先エントリの位置に追い出しエントリを移動し、移動先エントリの位置に元々存在したデータ(全体で最古のデータ)は破棄する。以下に、この追い出し動作について詳細に説明する。
図4は、共有分散キャッシュシステム20におけるキャッシュエントリ追い出し動作の処理を示すフローチャートである。ここで図4の動作は、図2のステップS10で実行することが想定されている。即ち、複数のコア21乃至23の何れか1つのコアが、自らに直接に接続されたキャッシュ(自コアキャッシュ)へアクセス要求を発行し、まず自コアでキャッシュミスし、更にその下位のキャッシュでもキャッシュミスし、メインメモリ28からデータを読み出して自コアにアロケートする必要が生じた時点で、図4のフローチャートの動作が実行される。なおここで、図4のフローチャートの動作が読み出すデータの読み出し元は、必ずしもメインメモリ28である必要はない。キャッシュ間接続コントローラ27は、キャッシュ24乃至26を優先順位に応じてアクセスすることでキャッシュを階層化しているが、その階層構造のキャッシュの下に、キャッシュとは別の管理単位として管理されているメモリが読み出し元となる。階層構造のキャッシュの下に直ぐにメインメモリ28が位置されているのであれば、データの読み出し先はメインメモリ28となる。以下では、メインメモリ28の場合を例にとって説明する。
図4のステップS1で、コア21乃至23のうちの1つがメインメモリ28にアクセスするために、アクセス先のアドレス(例えば読み出し先のアドレス)をキャッシュ間接続コントローラ27に送信する。ステップS2で、第2のLRU情報を参照し、アクセス先に対応するインデックスのエントリのうちで、キャッシュ24乃至26全体で最古のエントリを探索する。
ステップS3で、全体で最古のエントリが自コアキャッシュ(アクセス要求を出したコアに対応するキャッシュ)にあるか否かを判定する。全体で最古のエントリが自コアキャッシュに存在する場合には、ステップS4において、第1のLRU情報及び第2のLRU情報を更新する。即ち、自コアキャッシュで最古のエントリが最新のエントリとなるように第1のLRU情報を更新するとともに、全体で最古のエントリが最新のエントリとなるように第2のLRU情報を更新する。その後、ステップS7で、メインメモリ28から読み出したデータを自コアキャッシュ内の最古エントリ(LRU更新により最新エントリに更新されたエントリ)に上書きする。
全体で最古のエントリが自コアキャッシュに存在しないとステップS3で判定された場合には、ステップS5において、第1のLRU情報及び第2のLRU情報を更新する。即ち、自コアキャッシュで最古のエントリが最新のエントリとなるように自コアキャッシュの第1のLRU情報を更新するとともに、自コアキャッシュから追い出されたエントリ(追い出しエントリ)の移動先のキャッシュにおける最古のエントリ(全体で最古のエントリ)が追い出しエントリの古い順に一致するように移動先キャッシュの第1のLRU情報を更新する。また第2のLRU情報については、全体で最古のエントリが追い出しエントリの古い順に一致する順番のエントリとなり、且つ自コアキャッシュで最古のエントリが最新のエントリとなるように更新する。
その後ステップS6で、自コアキャッシュで最古のエントリを全体で最古のエントリに転送する(移動する)。最後にステップS7で、メインメモリ28から読み出したデータを自コアキャッシュ内の最古エントリ(LRU更新により最新エントリに更新されたエントリ)に上書きする。
図5は、第1のLRU情報の第1の実施例を示す図である。図5にはキャッシュ24の場合について示すが、他のキャッシュ25及び26についても同様である。
図5には、例として4ウェイのキャッシュの場合が示されており、キャッシュ24の複数のインデックスの各々に対して4つのエントリが存在する。各エントリは0、1、2、3のエントリ番号で識別される。キャッシュ24に対応する第1のLRU情報41は、複数のインデックスの各々に対して4つのエントリの最古順を示すデータを含む。例えばある着目インデックスに対して第1のLRU情報41は"001011"を含む。
この場合の第1のLRU情報41は、2項関係により古い順を表現した符号である。例えば、"001011"の第1番目(一番左)の"0"は、図示されるようにエントリ番号0のエントリとエントリ番号1のエントリとの比較において、エントリ番号1のエントリの方がエントリ番号0のエントリよりも古いことを示す。また例えば、"001011"の第2番目(左から2番目)の"0"は、図示されるようにエントリ番号0のエントリとエントリ番号2のエントリとの比較において、エントリ番号2のエントリの方がエントリ番号0のエントリよりも古いことを示す。また例えば、"001011"の第3番目(左から3番目)の"1"は、図示されるようにエントリ番号0のエントリとエントリ番号3のエントリとの比較において、エントリ番号0のエントリの方がエントリ番号3のエントリよりも古いことを示す。以下同様にして、第1のLRU情報41の"001011"の各ビットは、比較対象となる2つのエントリ間のうちで、何れのエントリがより古いのかを示している。
複数のエントリ間の全ての2項関係(全エントリから2つを選ぶ全ての組み合わせ)について、古さ順を"0"又は"1"により示すことで、全てのエントリの最古順が分かる。図5に示す例では、古い順にエントリ番号を並べると2、1、0、3となる。
図6は、第1のLRU情報の第2の実施例を示す図である。図6にはキャッシュ24の場合について示すが、他のキャッシュ25及び26についても同様である。
図6には、例として4ウェイのキャッシュの場合が示されており、キャッシュ24の複数のインデックスの各々に対して4つのエントリが存在する。各エントリは0、1、2、3のエントリ番号で識別される。キャッシュ24に対応する第1のLRU情報41は、複数のインデックスの各々に対して4つのエントリの最古順を示すデータを含む。例えばある着目インデックスに対して第1のLRU情報41は"10010011"を含む。
第1のLRU情報41の"10010011"は、各エントリを指し示す2ビットの符号を4つ並べたものである。各符号の並び順が最古順を示す(一番左の符号が最古のエントリを指し示す)。例えば、"10010011"の最初の2ビット(一番左の符号)"10"は、最古のエントリを指し示す符号であり、エントリ番号2(2は2進数で10)のエントリが指し示されている。また"10010011"の2番目の2ビット"01"は、2番目に古いエントリを指し示す符号であり、エントリ番号1(1は2進数で01)のエントリが指し示されている。同様に、"10010011"の3番目の2ビット"00"は、3番目に古いエントリを指し示す符号であり、エントリ番号0(0は2進数で00)のエントリが指し示されている。更に、"10010011"の4番目の2ビット"11"は、4番目に古いエントリを指し示す符号であり、エントリ番号3(3は2進数で11)のエントリが指し示されている。
上記のような符号により、全てのエントリの最古順を直接に表現できる。図6に示す例では、古い順にエントリ番号を並べると2、1、0、3となる。
図7は、第2のLRU情報の実施例を示す図である。図7にはキャッシュ24の場合について示すが、他のキャッシュ25及び26についても同様である。
図7には、例として4ウェイのキャッシュの場合が示されており、キャッシュ24の複数のインデックスの各々に対して4つのエントリが存在する。各エントリは0、1、2、3のエントリ番号で識別される。キャッシュ24に対応する第1のLRU情報41は、複数のインデックスの各々に対して4つのエントリの最古順を示すデータを含む。例えばある着目インデックスに対して、第1のLRU情報41は、エントリ番号2、0、3、1の順にエントリが古いことを示している。この第1のLRU情報41は、図5に示すような符号でも、図6に示すような符号でも構わない。
第2のLRU情報42は、複数のキャッシュ24乃至26の全体に対して1つ設けられるものであり、複数のキャッシュ24乃至26に存在する各インデックスの複数のエントリについて、全体での古い順を示す情報である。即ち、各キャッシュの各インデックスに対して4つのエントリがあり、全体で3つのキャッシュ24乃至26がある場合、各インデックスについて12個(4×3)のエントリについての古い順を指し示す情報である。
図7の例では、ある着目インデックスに対して、第2のLRU情報42は"ABBCCABCABAC"である。ここでアルファベット一文字A、B、又はCが、キャッシュ24乃至26の何れかを示す符号である。この例では、Aがキャッシュ24、Bがキャッシュ25、Cがキャッシュ26を指し示す。なお説明の便宜上アルファベット一文字の符号としたが、3つのキャッシュを識別可能な符号であればどのような符号でもよく、例えば2ビットの符号であってよい。
第2のLRU情報42の"ABBCCABCABAC"は、12個のエントリに対応して12文字並んでおり、例えば一番左が最も古いエントリであり、一番右が最も新しいエントリであることを示す。即ち、一番古いエントリはキャッシュA(キャッシュ24)のエントリであり、2番目に古いエントリはキャッシュB(キャッシュ25)のエントリであり、3番目に古いエントリはキャッシュB(キャッシュ25)のエントリであり、4番目に古いエントリはキャッシュC(キャッシュ26)のエントリである。
このように、エントリが古い順にそのエントリが属するキャッシュのみを特定することで、例えばキャッシュ24の4つのエントリについては、全体で1番古いエントリ、全体で6番目に古いエントリ、全体で9番目に古いエントリ、及び全体で11番目に古いエントリであることが分かる。即ち、図7の例において、"A"は、1番目、6番目、9番目、及び11番目の位置に現れている。
このようにキャッシュ24の不特定の4つのエントリについて全体での古い順が分かると、キャッシュ24の特定の1つ1つのエントリについて全体での古い順が分かる。即ち、キャッシュ24では、古い順にエントリ番号2、0、3、1であることが第1のLRU情報41により示されるので、エントリ番号2のエントリが全体で1番目に古く、エントリ番号0のエントリが全体で6番目に古く、エントリ番号3のエントリが全体で9番目に古く、エントリ番号1のエントリが全体で11番目に古いことが分かる。
このようにして第2のLRU情報42には、特定の1つ1つのエントリを識別することなく、エントリの古い順に各エントリが属するキャッシュを識別する符号を並べることにより、少ないデータ量で効率的に全体の最古順を表現することができる。即ち、第1のLRU情報41により、特定の1つ1つのエントリについて各キャッシュ内での古い順を表現し、また第2のLRU情報42により、キャッシュのみを識別しながら不特定のエントリについての全体での古い順を指定しておけば、第1のLRU情報41と第2のLRU情報42とを組み合わせることにより、特定の1つ1つのエントリについての全体での古い順を指定することができる。これにより、少ないデータ量で効率的に全体の最古順を表現することができる。
具体的には、2項関係で第1のLRU情報41を表現した場合には、1つのキャッシュ内のウェイ数をnとすると、n個から2個を選ぶ組み合わせで表される数のビット数が1つ1つの第1のLRU情報41に必要になる。キャッシュがm個あるとするとm×のビット数が第1のLRU情報41全体に必要になる。また上述のようにして第2のLRU情報42を表現した場合には、log(m)で表される数のビット数が各キャッシュを識別するための符号に必要であり、そのような符号が全体のウェイ数n×mだけ必要になる。従って、第1のLRU情報41と第2のLRU情報42とに必要なビット数は、
m×+log(m)×n×m (1)
となる。例えばキャッシュ数mが2でウェイ数nが4であれば、(1)式の値は20ビットとなる。またキャッシュ数mが4でウェイ数nが4であれば、(1)式の値は56ビットとなる。
これに対して、キャッシュ数mが2でウェイ数nが4の場合に、全体8ウェイを2項関係(図5の方式)で表現すればで28ビットが必要になり、全体を順序関係(図6の方式)で表現すればlog(8)×8で24ビットが必要になる。またキャッシュ数mが4でウェイ数nが4の場合に、全体16ウェイを2項関係で表現すれば16で120ビットが必要になり、全体を順序関係で表現すればlog(16)×16で64ビットが必要になる。
従って、本発明において第1のLRU情報41では2項関係により古い順を表現し、第2のLRU情報42ではキャッシュのみを識別しながら不特定のエントリについての全体での古い順を表現することにより、LRU情報に必要なビット数を大幅に削減することができる。
図8は、第1のLRU情報41と第2のLRU情報42の格納場所について説明するための図である。図8において、図3と同一の構成要素は同一の番号で参照し、その説明は省略する。
図8に示すように、第1のLRU情報41と第2のLRU情報42とは、キャッシュ間接続コントローラ27内のメモリ(レジスタ)31に格納される。即ち、キャッシュ24乃至26(キャッシュA、キャッシュB、キャッシュC)に対応する第1のLRU情報41(A、B、C)は、キャッシュ間接続コントローラ27において集中的に管理される。また全体の古い順を示す第2のLRU情報42もキャッシュ間接続コントローラ27において、第1のLRU情報41とともに管理される。これにより、キャッシュ間接続コントローラ27により、第1のLRU情報41と第2のLRU情報42との参照及び更新を、外部から見ると1サイクルで終了することができる。
図9は、追い出しエントリを破棄する場合の動作を説明するための図である。図9に示される動作は、図4のフローチャートのステップS1、S2、S3、S4及びS7に対応する。図10は、図9の動作の各ステップとシステムクロックのサイクルとの関係を示す図である。本願の共有分散キャッシュシステム20は、図10に示されるようにシステムクロックに同期して動作する。
図9のステップS91に示すように、自コアキャッシュ24がキャッシュ間接続コントローラ27にアクセス先のアドレスを送信する。これは図10に示すように第1サイクルにおいて1サイクルで実行される。
次にキャッシュ間接続コントローラ27は、図4のステップS2及びS3の動作により追い出しエントリを破棄する場合であると判定し、LRU情報を更新するとともに、図9のステップS92に示されるようにメインメモリ28にデータを要求する。これら全体最古エントリの探索、LRU情報更新、及びメモリへのデータ要求の動作は、図10に示されるように、第2サイクルにおいて1サイクルで実行される。
その後、図9のステップS93に示されるように、キャッシュ間接続コントローラ27はメインメモリ28からデータを受信する。またステップS94に示されるように、キャッシュ間接続コントローラ27からキャッシュ24に当該データを転送する。この際、図10に示されるように、メモリへのデータ要求からデータ受信までは数百サイクルが経過する。その後、キャッシュ間接続コントローラ27によるメモリからのデータ受信及びキャッシュ24(自コアキャッシュ)へのデータ転送は、例えば4サイクルかけて行われる。またキャッシュ24(自コアキャッシュ)は、4サイクルかけてキャッシュ間接続コントローラ27からのデータを受信する。
図11は、追い出しエントリを破棄する場合のLRU情報更新動作について説明するための図である。図11には、追い出しエントリを破棄する場合に、第1のLRU情報41について実行される更新動作と第2のLRU情報42について実行される更新動作とが示される。第1のLRU情報41については、自コアキャッシュ内の最古のエントリが最新のエントリとして示されるように、自コアキャッシュの第1のLRU情報41の内容を更新する。また第2のLRU情報42については、全体で最古エントリが最新のエントリとして示されるように第2のLRU情報42の内容を更新する。
図12は、追い出しエントリを転送する場合の動作を説明するための図である。図12に示される動作は、図4のフローチャートのステップS1、S2、S3、S5、S6、及びS7に対応する。図13は、図12の動作の各ステップとシステムクロックのサイクルとの関係を示す図である。本願の共有分散キャッシュシステム20は、図13に示されるようにシステムクロックに同期して動作する。
図12のステップS121に示すように、自コアキャッシュ24がキャッシュ間接続コントローラ27にアクセス先のアドレスを送信する。これは図13に示すように第1サイクルにおいて1サイクルで実行される。
次にキャッシュ間接続コントローラ27は、図4のステップS2及びS3の動作により追い出しエントリを転送する場合であると判定し、LRU情報を更新するとともに、図12のステップS122−1に示されるようにメインメモリ28にデータを要求する。また更に、キャッシュ間接続コントローラ27は、図12のステップS122−2に示されるように、キャッシュ24にキャッシュ内での最古のエントリのデータを要求する。これら全体最古エントリの探索、LRU情報更新、メモリへのデータ要求、及び自コアキャッシュ(キャッシュ24)への最古データ要求の動作は、図13に示されるように、第2サイクルにおいて1サイクルで実行される。
その後、図12のステップS123に示されるように、キャッシュ24はキャッシュ間接続コントローラ27に自コアキャッシュ内の最古エントリのデータを送信する。この動作は図13に示すように、第3サイクルから第6サイクルにかけて4サイクルで実行される。更に図12のステップS124に示されるように、キャッシュ間接続コントローラ27は、キャッシュ24の最古エントリをキャッシュ25(他コアキャッシュ)に転送する。ここで他コアキャッシュ25は、全体での最古エントリが存在し、追い出しエントリの転送先となるキャッシュである。この動作は図13に示すように、第4サイクルから第7サイクルにかけて4サイクルで実行される。また図13に示すように、他コアキャッシュ25における全体での最古エントリに対する自コアキャッシュ24内の最古エントリの上書きは、第5サイクルから第8サイクルにかけて4サイクルで実行される。
その後、図12のステップS125に示されるように、キャッシュ間接続コントローラ27はメインメモリ28からデータを受信する。またステップS126に示されるように、キャッシュ間接続コントローラ27からキャッシュ24に当該データを転送する。この際、図13に示されるように、メモリへのデータ要求からデータ受信までは数百サイクルが経過する。その後、キャッシュ間接続コントローラ27によるメモリからのデータ受信及びキャッシュ24(自コアキャッシュ)へのデータ転送は、例えば4サイクルかけて行われる。またキャッシュ24(自コアキャッシュ)は、4サイクルかけてキャッシュ間接続コントローラ27からのデータを受信する。
図14は、追い出しエントリを転送する場合のLRU情報更新動作について説明するための図である。図14には、追い出しエントリを破棄する場合に、自コアキャッシュの第1のLRU情報41について実行される更新動作、他コアキャッシュの第1のLRU情報41について実行される更新動作、及び第2のLRU情報42について実行される更新動作が示される。
自コアキャッシュの第1のLRU情報41については、自コアキャッシュ内の最古のエントリが最新のエントリとして示されるように、自コアキャッシュの第1のLRU情報41の内容を更新する。また他コアキャッシュの第1のLRU情報41については、自コアキャッシュ内の最古のエントリ(追い出しエントリ)が他コアキャッシュ内で何番目に古いかを第1のLRU情報41及び第2のLRU情報42に基づいて計算する。更に、他コアキャッシュ内の最古のエントリ(全体での最古のエントリ)が、上記計算により求められた順番よりも1つ小さい順番(1つ古い順番)として示されるように、他コアキャッシュの第1のLRU情報41の内容を更新する。また第2のLRU情報42については、全体で最古のエントリが自コアキャッシュ内の最古のエントリ(追い出しエントリ)の古い順より1つ古い順番となり、且つ自コアキャッシュ内で最古のエントリが最新のエントリとなるように、第2のLRU情報42の内容を更新する。
上記動作において、1つ古い順番とするのは、最古のエントリを破棄して最新のエントリをメモリから持ってくることにより、全てのエントリについて、その古さ順が1つ小さい順番(1つ古い順番)に移行するためである。図15乃至図17は、上記のLRU更新動作について説明するための図である。
図15は、ある着目インデックスに対する全エントリが全体の古さ順に並べられた様子を示す図である。ここでアルファベット一文字がキャッシュを識別し、その次の数字一文字が当該キャッシュ内でのエントリ番号を示す。また図15の上段のエントリ列は更新前を示し、下段のエントリ列は更新後を示す。エントリ列において一番左のエントリが一番古く、一番右のエントリが一番新しい。即ち、図15の上段のエントリ列において、キャッシュA(キャッシュ24)のエントリ番号0のエントリA0が全体で最古であり、例えばキャッシュB(キャッシュ25)のエントリ番号2のエントリB2がキャッシュB内で最古である。
例えばキャッシュBが自コアキャッシュである場合を考える。この場合、全体で最古のエントリA0の内容が破棄され、また追い出しエントリ(キャッシュB内で最古のエントリ)であるエントリB2の位置にメモリからの読み出しデータ(最新データ)が書き込まれる。従って、エントリ列の一番左端のエントリA0が消えるとともに、一番右端に新たなエントリB2が付け足され、その他のエントリは全体が矢印で示されるように左に1つ移動する。即ち、各エントリの古さ順は1つ古い古さ順に更新される。
この際、読み出しデータ(最新データ)が書き込まれるエントリB2の元のデータは、追い出しデータとしてキャッシュBから追い出され、全体で最古のエントリA0に移動される。これが図15において点線の矢印で示されている。従って、全体で最古のエントリA0は、自コアキャッシュBの追い出しエントリB2の古い順に一致する順番(元のエントリB2の古い順より1つ小さい古い順)のエントリとなる。
このときキャッシュAの第1のLRU情報41について考える。更新前において、エントリB2は、キャッシュAのエントリと比較して古い順に並べるとA0、A2、B2、A1、A3の順となるので、エントリB2は3番目に古い。このエントリB2がキャッシュAに移動される際に、最古のエントリA0の中身である最古のデータが無くなって、代わりにB2の中身のデータがA0に書き込まれる。従って、最古のデータが無くなった分だけ、更新後のA0の順番はB2の古さ順(3番目)より1つ小さい順(2番目)となる。これが図14において、他コアキャッシュの第1のLRU情報41の更新操作の欄に記載してある内容である。
但し、A0は破棄されるのであるから、A0を除いた更新後のエントリを対象として、エントリB2をキャッシュAのエントリと比較して古い順に並べるとA2、B2、A1、A3の順となる。即ち、エントリB2はキャッシュAの中で2番目に古い。従って、移動先のキャッシュ(他コアキャッシュ)における最古のエントリ(全体で最古のエントリ)A0は、追い出しエントリB2の古い順に一致する順番に更新されると考えてもよい。
図16(a)は、他コアキャッシュAに対応する第2のLRU情報42の更新の様子を示し、図16(b)は、自コアキャッシュBに対応する第2のLRU情報42の更新の様子を示す。図16に示す例は、図15に示すエントリ順に一致する。
図16(a)に示すように他コアキャッシュAの最古のエントリ(濃い階調で示すエントリ番号0:図15のA0)は、全体の最古のエントリであり、このエントリにエントリB2の内容が移動される。その結果、更新前の第1のLRU情報41が示す古い順は0、2、1、3であったのが、更新後の第1のLRU情報41が示す古い順は2、0、1、3となる。
図16(b)に示すように自コアキャッシュBの最古のエントリ(濃い階調で示すエントリ番号2:図15のB2)は、キャッシュBの最古のエントリであり、このエントリにメモリからの読み出しデータが移動される。その結果、更新前の第1のLRU情報41が示す古い順は2、3、0、1であったのが、更新後の第1のLRU情報41が示す古い順は3、0、1、2となる。
図17は、図15に示すようなデータ移動に伴うエントリ更新がなされた場合の第2のLRU情報42の変化を示す図である。図17の上段は更新前の第2のLRU情報42であり、下段は更新後の第2のLRU情報42である。図7を参照して説明したように、第2のLRU情報42は、各キャッシュを識別する情報(符号)をエントリの古さ順に並べたものである。即ち、図17の上段の第2のLRU情報42は、図15の上段のエントリ列からエントリを特定するエントリ番号0,1,2,3を削除したものであり、図17の下段の第2のLRU情報42は、図15の下段のエントリ列からエントリを特定するエントリ番号0,1,2,3を削除したものである。更新動作については、図15を参照して説明したのと同様である。
上記の実施例に説明したようにして、コア21乃至23からメインメモリ28にアクセス要求があった場合に、適宜メインメモリ28からデータを読み出して、要求発行したコアに対応するキャッシュ(自コアキャッシュ)にデータを転送することができる。この際、複数のアクセス要求が競合した場合には、キューイングにより対応すればよい。即ち、キャッシュ間接続コントローラ27に複数の要求を保持するキュー(FIFO)を設け、このキューに要求を投入して、順番に要求を処理していくようにすればよい。
この際、LRU動作(LRU参照動作及びLRU更新動作)については、前記のように第2番目のサイクルにおいて1サイクルで実行するように構成してある。従って、複数の要求が互いに1サイクルでもずれていればこれらの要求が競合することはなく、通常通りに動作することができる。但し同一のサイクルで同時に複数の要求があった場合には、キューイングにより対応する必要がある。
またデータ転送動作については、前述のように複数のサイクルを必要とする。従って、同一のサイクルで同時に複数の要求があった場合だけでなく、複数の要求が互いに多少ずれている場合であっても競合するようなタイミングであれば、キューイングにより対応する必要がある。
以上、本発明を実施例に基づいて説明したが、本発明は上記実施例に限定されるものではなく、特許請求の範囲に記載の範囲内で様々な変形が可能である。

Claims (8)

  1. 主記憶装置にアクセスするよう機能する複数の処理装置と、
    該複数の処理装置に一対一に結合された複数のキャッシュと、
    該複数のキャッシュに結合され該複数のキャッシュ間のデータ転送及び該複数のキャッシュと該主記憶装置との間のデータ転送を制御するコントローラ
    を含み、該コントローラは、
    各キャッシュ内でのエントリの古さ順を示す第1の情報と、該複数のキャッシュ全体でのエントリの古さ順を示す第2の情報とを各インデックス毎に格納するメモリと、
    該複数の処理装置の1つが該主記憶装置もしくは下位階層キャッシュをアクセスする際に、該1つの処理装置に対応する1つのキャッシュからアクセス対象のアドレスに対応するインデックスのエントリを追い出す必要がある場合、追い出エントリ及びその移動先を該第1の情報及び該第2の情報に応じて決定するロジック回路
    を含むことを特徴とするキャッシュシステム。
  2. 該ロジック回路は、該1つのキャッシュに存在する該アクセス対象のアドレスに対応するインデックスの複数のエントリのうちで最古のエントリを該追い出しエントリとして該第1の情報に応じて選択し、該複数のキャッシュに存在する該アクセス対象のアドレスに対応するインデックスの複数のエントリのうちで最古のエントリを全体で最古のエントリとして該第2の情報に応じて選択し、該全体で最古のエントリの位置に該追い出しエントリを移動するよう構成されることを特徴とする請求項1記載のキャッシュシステム。
  3. 該ロジック回路は、該1つのキャッシュでの最古のエントリが最新のエントリとなるように該1つのキャッシュに対応する該第1の情報を更新し、該追い出しエントリの移動先のキャッシュにおける最古のエントリである該全体で最古のエントリが追い出しエントリの古い順に一致するように該移動先キャッシュの該第1の情報を更新し、該全体で最古のエントリが該追い出しエントリの古い順に一致する順番のエントリとなり且つ該1つのキャッシュでの最古のエントリが最新のエントリとなるように該第2の情報を更新するよう構成されることを特徴とする請求項2記載のキャッシュシステム。
  4. 該ロジック回路は、該複数のキャッシュに存在する該アクセス対象のアドレスに対応するインデックスの複数のエントリのうちで最古のエントリを全体で最古のエントリとして該第2の情報に応じて選択し、該全体で最古のエントリが該1つのキャッシュに存在する場合には、該全体で最古のエントリの位置に該主記憶装置から読み出したデータを上書きすることを特徴とする請求項1記載のキャッシュシステム。
  5. 該1つのキャッシュにおいて該全体で最古のエントリが最新のエントリとなるように該1つのキャッシュに対応する該第1の情報を更新するとともに、該全体で最古のエントリが最新のエントリとなるように第2の情報を更新することを特徴とする請求項4記載のキャッシュシステム。
  6. 該第1の情報は、該複数のキャッシュの各々に対して、キャッシュ内の1つのインデックスの全てのエントリから2つを選ぶ全ての組み合わせについて、2つのエントリ間の新旧関係を示す情報を含むことを特徴とする請求項1記載のキャッシュシステム。
  7. 該第2の情報は、特定の1つ1つのエントリを識別することなく、エントリの古い順に各エントリが属するキャッシュを識別する符号を並べることにより、該複数のキャッシュ全体でのエントリの古さ順を表現することを特徴とする請求項1又は6記載のキャッシュシステム。
  8. 該ロジック回路は、該第1の情報及び該第2の情報の参照及び更新を纏めて1サイクルで実行するよう構成されることを特徴とする請求項1記載のキャッシュシステム。
JP2008548093A 2006-11-30 2006-11-30 キャッシュシステム Expired - Fee Related JP4448550B2 (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2006/323918 WO2008068797A1 (ja) 2006-11-30 2006-11-30 キャッシュシステム

Publications (2)

Publication Number Publication Date
JPWO2008068797A1 JPWO2008068797A1 (ja) 2010-03-11
JP4448550B2 true JP4448550B2 (ja) 2010-04-14

Family

ID=39491719

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2008548093A Expired - Fee Related JP4448550B2 (ja) 2006-11-30 2006-11-30 キャッシュシステム

Country Status (4)

Country Link
US (1) US8392660B2 (ja)
JP (1) JP4448550B2 (ja)
GB (1) GB2459047B (ja)
WO (1) WO2008068797A1 (ja)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20110265069A1 (en) 2010-04-21 2011-10-27 Salesforce.Com Methods and systems for execution of tenant code in an on-demand service environment including utilization of shared resources and inline governor limit enforcement
JP5627521B2 (ja) 2011-03-24 2014-11-19 株式会社東芝 キャッシュシステムおよび処理装置
JP6094303B2 (ja) * 2013-03-25 2017-03-15 富士通株式会社 演算処理装置、情報処理装置及び情報処理装置の制御方法
JP6040840B2 (ja) * 2013-03-29 2016-12-07 富士通株式会社 演算処理装置、情報処理装置及び情報処理装置の制御方法
JP2015191604A (ja) * 2014-03-28 2015-11-02 富士通株式会社 制御装置、制御プログラム、および制御方法

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0329041A (ja) * 1989-06-27 1991-02-07 Nec Corp 分散ページング制御方式
JPH0448355A (ja) * 1990-06-18 1992-02-18 Nec Corp 分散ページング制御方式
JPH0721045A (ja) * 1993-06-15 1995-01-24 Sony Corp 情報処理システム
JPH1115732A (ja) * 1997-06-19 1999-01-22 Nec Software Ltd 仮想記憶方法およびその記録媒体
JP2000105727A (ja) * 1998-09-28 2000-04-11 Sony Corp マルチプロセッサ、シングルプロセッサおよびデータ記憶制御方法
JP2003050742A (ja) * 2001-08-07 2003-02-21 Sony Corp 情報処理装置及び情報処理方法、プログラム格納媒体並びにプログラム
JP2004511840A (ja) * 2000-08-31 2004-04-15 オラクル・インターナショナル・コーポレイション 他のノードのキャッシュに基づくあるノードのキャッシュ内のデータの置換管理
WO2007099643A1 (ja) * 2006-03-03 2007-09-07 Fujitsu Limited マルチプロセッサシステム及びマルチプロセッサシステムの動作方法

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS593773A (ja) 1982-06-29 1984-01-10 Fujitsu Ltd バツフア記憶装置のlru制御方式
US5590308A (en) * 1993-09-01 1996-12-31 International Business Machines Corporation Method and apparatus for reducing false invalidations in distributed systems
US6415364B1 (en) * 1997-12-31 2002-07-02 Unisys Corporation High-speed memory storage unit for a multiprocessor system having integrated directory and data storage subsystems
US7076609B2 (en) * 2002-09-20 2006-07-11 Intel Corporation Cache sharing for a chip multiprocessor or multiprocessing system
US7093075B2 (en) * 2003-11-07 2006-08-15 International Business Machines Corporation Location-based placement algorithms for set associative cache memory
US7343455B2 (en) * 2005-02-09 2008-03-11 International Business Machines Corporation Cache mechanism and method for avoiding cast out on bad victim select and recycling victim select operation

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0329041A (ja) * 1989-06-27 1991-02-07 Nec Corp 分散ページング制御方式
JPH0448355A (ja) * 1990-06-18 1992-02-18 Nec Corp 分散ページング制御方式
JPH0721045A (ja) * 1993-06-15 1995-01-24 Sony Corp 情報処理システム
JPH1115732A (ja) * 1997-06-19 1999-01-22 Nec Software Ltd 仮想記憶方法およびその記録媒体
JP2000105727A (ja) * 1998-09-28 2000-04-11 Sony Corp マルチプロセッサ、シングルプロセッサおよびデータ記憶制御方法
JP2004511840A (ja) * 2000-08-31 2004-04-15 オラクル・インターナショナル・コーポレイション 他のノードのキャッシュに基づくあるノードのキャッシュ内のデータの置換管理
JP2003050742A (ja) * 2001-08-07 2003-02-21 Sony Corp 情報処理装置及び情報処理方法、プログラム格納媒体並びにプログラム
WO2007099643A1 (ja) * 2006-03-03 2007-09-07 Fujitsu Limited マルチプロセッサシステム及びマルチプロセッサシステムの動作方法

Also Published As

Publication number Publication date
GB2459047B (en) 2011-08-17
US20090235030A1 (en) 2009-09-17
GB2459047A (en) 2009-10-14
US8392660B2 (en) 2013-03-05
JPWO2008068797A1 (ja) 2010-03-11
WO2008068797A1 (ja) 2008-06-12
GB0908855D0 (en) 2009-07-01

Similar Documents

Publication Publication Date Title
CN100421088C (zh) 用于管理高速缓存数据的数字数据处理设备和方法
CN102498477B (zh) Tlb预取
CN107239413B (zh) 处理存储器请求
US7099999B2 (en) Apparatus and method for pre-fetching data to cached memory using persistent historical page table data
US7953953B2 (en) Method and apparatus for reducing page replacement time in system using demand paging technique
US20130205089A1 (en) Cache Device and Methods Thereof
JP4829191B2 (ja) キャッシュシステム
CN104272279A (zh) 具有缓存和转换后备缓冲器的数据处理装置
US9317448B2 (en) Methods and apparatus related to data processors and caches incorporated in data processors
US20060036811A1 (en) Method for software controllable dynamically lockable cache line replacement system
WO2010035426A1 (ja) バッファメモリ装置、メモリシステム及びデータ転送方法
CN101826056A (zh) 数据处理设备和方法
US11341042B2 (en) Storage apparatus configured to manage a conversion table according to a request from a host
JP4448550B2 (ja) キャッシュシステム
KR20220110219A (ko) 프리페치 레벨 강등
CN105814549A (zh) 具有主高速缓存器和溢出fifo高速缓存器的高速缓存器系统
KR100987996B1 (ko) 메모리 액세스 제어 장치 및 메모리 액세스 제어 방법
US7010649B2 (en) Performance of a cache by including a tag that stores an indication of a previously requested address by the processor not stored in the cache
EP3411798B1 (en) Cache and method
JP5157424B2 (ja) キャッシュメモリシステム及びキャッシュメモリの制御方法
WO2005050454A1 (ja) キャッシュメモリおよびその制御方法
WO2006040689A1 (en) Implementation and management of moveable buffers in cache system
JP2007272681A (ja) キャッシュメモリ装置及びそのキャッシュラインの入れ替え方法
CN100451994C (zh) 维持高速缓存协调性的微处理器、装置与方法
US20060069873A1 (en) Instruction cache using single-ported memories

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20091209

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

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

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

Free format text: PAYMENT UNTIL: 20130129

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

Free format text: PAYMENT UNTIL: 20130129

Year of fee payment: 3

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

Free format text: PAYMENT UNTIL: 20140129

Year of fee payment: 4

LAPS Cancellation because of no payment of annual fees