JP2002140234A - キャッシュ装置 - Google Patents

キャッシュ装置

Info

Publication number
JP2002140234A
JP2002140234A JP2000340379A JP2000340379A JP2002140234A JP 2002140234 A JP2002140234 A JP 2002140234A JP 2000340379 A JP2000340379 A JP 2000340379A JP 2000340379 A JP2000340379 A JP 2000340379A JP 2002140234 A JP2002140234 A JP 2002140234A
Authority
JP
Japan
Prior art keywords
group
line
cache
registered
registration
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.)
Pending
Application number
JP2000340379A
Other languages
English (en)
Inventor
Shinichi Kawamoto
真一 川本
Tatsuo Higuchi
達雄 樋口
Naoki Hamanaka
直樹 濱中
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.)
Hitachi Ltd
Original Assignee
Hitachi 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 Hitachi Ltd filed Critical Hitachi Ltd
Priority to JP2000340379A priority Critical patent/JP2002140234A/ja
Priority to US09/810,549 priority patent/US6640286B2/en
Publication of JP2002140234A publication Critical patent/JP2002140234A/ja
Pending legal-status Critical Current

Links

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
    • 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

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)

Abstract

(57)【要約】 【課題】プログラムの性質に合わせて、特定のラインを
優先的にキャッシュに格納し、また優先の度合いを動的
に変更して、キャッシュ装置のヒット率を向上する。 【解決手段】プロセッサ1−1がアクセスするラインを
いくつかのグループに分け、そのグループの定義をグル
ープ定義テーブル360に設定する。また、各グループ
のラインをキャッシュ35にどのように登録するかを登
録ポリシー定義テーブル360に設定する。キャッシュ
装置2は設定されたグループ定義と登録ポリシーに従
い、ラインの登録を行う。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】プロセッサと主記憶の間に位
置し、主記憶の一部を短期間格納しておくキャッシュ装
置に関し、特に、特定のデータ群単位(例えば、ライ
ン、ブロック)を優先的にキャッシュに格納するキャッ
シュ装置に関する。
【0002】
【従来の技術】キャッシュは、主記憶と主記憶から読み
出した命令に従って処理を行うプロセッサの間に位置
し、プロセッサが主記憶からアクセスしたデータをライ
ン単位で一時的に記憶しておく小容量の高速メモリであ
って、高速なプロセッサと低速なメモリの速度差を埋め
るために設けられる。プロセッサはまずキャッシュにア
クセスして、そこに必要なラインが存在すれば(ヒット
と呼ぶ)それを用い、なければ主記憶にアクセスしに行
く。キャッシュにヒットする割合が高ければ高いほど、
効率的な処理が可能となる。キャッシュのヒット率を高
めるには、アクセス頻度の高いラインをキャッシュに置
いておくことが必要である。
【0003】プログラムのメモリアクセスパターンを解
析すると、一般に、アクセスされたアドレスの近傍アド
レスが近い将来アクセスされるという空間的局所性と、
アクセスされたアドレスは近い将来再びアクセスされる
という時間的局所性という性質がある。従来のキャッシ
ュは、この性質が成り立つプログラムに対して効率良く
動作するように、データアクセスをライン単位に行っ
て、必要なデータの近傍データをキャッシュに格納し、
また、LRU(Least Recently Used)法によって最も最近に
アクセスされていないラインをリプレースの対象とし、
最近アクセスされたラインをリプレースされ難くしてい
る。
【0004】しかし、プログラム毎にあるいはプログラ
ムの中でも部分毎に局所性の度合いは異なっており、ラ
インを単位としたアクセスやLRU方式によるリプレース
が必ずしもキャッシュのヒット率の向上に結びつかない
場合がある。特にビジネス系のアプリケーションにおい
てその傾向が強い。
【0005】この問題の原因はどのラインも画一的にキ
ャッシュに格納することにある。これに対し、性能向上
に寄与する特定のラインを優先的にキャッシュに格納す
ることで、上記の問題に対処するアプローチがある。こ
の観点に基づく公知例として、指定されたラインがそれ
以外のラインにリプレースされることを禁じる特開平6
−348595号公報記載の方式(以後公知例1と呼
ぶ)、ラインをキャッシュに格納する際にそのラインに
優先度を付け、優先度の高いラインが優先度の低いライ
ンによってリプレースされることを禁止する特開平7−
302224号公報記載の方式(以後公知例2と呼ぶ)、
プロセッサの命令にヒント情報を設け、この情報に基づ
いてこのインストラクションによってアクセスしたライ
ンをキャッシュ階層のどこまで格納するか制御するアイ
エー−64 アプリケーション ディベロッパーズ アー
キテクチャ ガイド、インテル、メイ(1999) 第4
−20頁から第4−23頁 (IA−64 Applic
ation Developer’s Architec
ture Guide、 Intel、May (199
9)PP4−20〜PP4−23)記載の方式(以後公知
例3と呼ぶ)、プロセス毎にキャッシュの使用権に関す
る優先度を指定して、この優先度に基づいてキャッシュ
を制御する特開平9−101916号公報記載の方式
(以後公知例4と呼ぶ)がある。
【0006】
【発明が解決しようとする課題】上記公知例1、2、3
はいわばライン毎に異なったキャッシュ優先度を指定す
る方法であるが、優先度の与え方を動的に変更すること
は配慮されていない。同一アプリケーションであって
も、負荷や使用状況によって、各ラインに与える優先度
の最適な値は異なると考えられる。このため、負荷や使
用状況によって、ラインに与える優先度を動的に変えれ
ば、さらなる性能の向上が期待できる。公知例1、2、
3において、ラインをキャッシュに登録する際に、その
時点の優先度を用いて登録処理を行えば、優先度の動的
な変化に対応できると考えられるが、この方法には以下
の問題がある。まず公知例1と2の場合、優先度はライ
ンをキャッシュに登録する際に制御情報としてキャッシ
ュメモリに記録される。たとえば、ラインL1を登録する
時点でそのラインの優先度がP1であれば、L1を登録する
際に優先度情報P1がL1と共にキャッシュメモリに記録さ
れる。その後、優先度が更新されて、L1の優先度がP1よ
りも低いP1に変更されたとしても、キャッシュメモリ
中のL1の優先度情報はP1のままである。新たに優先度が
P2のラインL1と同じインデックスのラインL2を登録す
る場合、優先度P1,P1,P2の間にP1<P2<P1の関係がある
と、L2の登録時点でL2の優先度P2はL1の優先度P1よ
り高く、従ってL1はL2にリプレースされるべきである
が、実際にはキャッシュメモリに記録された古い優先度
情報P1とL2の優先度P2を比較してL1の優先度の方がL2の
優先度より高いと判定し、L2はキャッシュに登録されな
いという問題点がある。
【0007】次に公知例3の場合、レベル1キャッシ
ュ、レベル2キャッシュ、レベル3キャッシュの3つの
キャッシュ階層があって、優先度は1から3の全ての階層
にラインを登録するP1、レベル2とレベル3にのみライ
ンを登録するP2、レベル3にのみラインを登録するP3、
どの階層にもラインを登録しないP4がある。優先度は、
ラインをキャッシュへ登録する時点でのみ用いられる。
ある時点で、ラインL1の優先度がP2であって、そのライ
ンL1はレベル2キャッシュとレベル3キャッシュの両方
に登録されているとする。その後優先度が変更されてラ
インL1の優先度がP3になると、ラインL1はレベル3キ
ャッシュにのみ登録されるべきであるが、以前登録した
ものがレベル2キャッシュに残っており、本来優先度P
2でレベル2キャッシュに格納されるべきラインのヒッ
ト率に影響を及ぼす。
【0008】上記のように、公知例1、2、3やその単
純な拡張では、動的な優先度の変更に適切に対処できな
いという問題点がある。
【0009】一方、上記公知例4は、優先度は動的に変
更できるが、優先度をライン毎に与えることは配慮され
ていない。プロセスの中でも優先的にキャッシュに格納
したほうが良いラインもあればそうでないラインもあ
る。このため、公知例1や2や3のように、ライン毎に
異なった優先度を指定できれば、プロセス毎に優先度を
与える方法より、より高い性能が得られると考えられ
る。公知例4の優先の単位をプロセスの代わりにライン
とする方法が考えられる。例えば公知例4のラインの登
録の方法と、公知例1や2におけるラインの管理方法を
組み合わせる方法が考えられるが、その組み合わせ方は
自明ではない。
【0010】以上を要するに、ライン単位に優先的な扱
いができ、かつ、優先の度合いを動的に変更すること
で、高い性能を出すことのできるキャッシュ装置を提供
できるが、その方法は公知でなかった。本発明の第一の
課題は上記の問題点を考慮し、ある特定のラインをライ
ン単位で優先的にキャッシュに登録し、かつ、優先の度
合を動的に変更できるキャッシュ装置を提供することに
ある。
【0011】また、上記公知例1から4は、パーティショ
ンについて配慮されておらず、優先すべきラインやキャ
ッシュへの登録方法をパーティションごとに指定するこ
とはできない。近年、計算機を複数のパーティションに
分割し、各パーティション毎に一つのアプリケーション
を実行する使用形態が増加している。このような使用形
態においては、各パーティション毎に優先するラインや
キャッシュへの登録方法を指定できることが、各パーテ
ィションのキャッシュヒット率を向上させるという点か
ら望ましい。本発明の第二の課題は、パーティション毎
に優先すべきラインやキャッシュへの登録方法を指定で
きるキャッシュ装置を提供することである。
【0012】また、上記公知例1から4は、プロセッサ、
オペレーティングシステム、コンパイラ、およびアプリ
ケーションプログラムが変更できない場合について配慮
されておらず、これらの部品やソフトの機能を変更でき
ないと公知例1から4は実装できないか、あるいは、すべ
てのラインを画一的に扱う従来のキャッシュと同じ性能
しか出せないという問題がある。既存のこれらの部品や
ソフトをすべて変更するのは非常にコストがかかる。そ
こで、本発明の第三の課題は、システムの一部を変更す
るだけで実現でき、画一的にラインを扱う従来型のキャ
ッシュよりも性能の高いキャッシュ装置を提供すること
である。
【0013】
【課題を解決するための手段】上記第一の課題を解決す
るため、各データ群(例えばライン)を格納する複数の
エントリを持つキャッシュメモリにリプレースを行う際
に、ラインを幾つかの属性のグループに分ける分け方を
指定し、指定された分け方によってプロセッサのコマン
ドのアクセス対象ラインがどのグループに属する属性を
もつかを判定する。一方、ラインの属性に応じたキャッ
シュメモリへ登録の仕方を定めておき、プロセッサが発
行した主記憶アクセスコマンドがキャッシュメモリに対
しミスヒットとなった場合、ラインを主記憶から読み出
し、そのラインの属するグループと、キャッシュメモリ
の制御情報と、登録ポリシーに従がって、そのラインを
キャッシュメモリへ登録する。
【0014】上記第二の課題するには、上記に加え、、
パーティションそれぞれに対して個別に、かつ、同一パ
ーティションに属するキャッシュ装置に対してはデータ
群の属性定義を同じとし、パーティションそれぞれに対
して個別に、かつ、同一パーティションに属するキャッ
シュ装置に対しても同一の登録ポリシーを与える。
【0015】さらに、計算機のパーティションの構成を
変更する度に、パーティションの構成を管理するパーテ
ィションマネージャは、グループ指定手段によってパー
ティションに含まれるすべてのキャッシュ装置のグルー
プ定義テーブルに対してグループ定義を与え、登録ポリ
シー指定手段によって、パーティションに含まれるすべ
てのキャッシュ装置の登録ポリシーテーブルに対して登
録ポリシーを与える。
【0016】上記第三の課題を解決するキャッシュ装置
は、上記に加えてさらに、グループ定義テーブルは、プ
ロセッサが命令アクセスコマンドによってアクセスした
ラインのグループを命令グループ、データアクセスコマ
ンドによってアクセスしたラインのグループをデータグ
ループと定義し、グループ判定手段は、プロセッサが命
令アクセスコマンドを発行してアクセスしたラインの属
するグループを命令グループと判定し、データアクセス
コマンドを発行してアクセスしたラインの属するグルー
プをデータグループと判定する。
【0017】また、キャッシュ装置は、プロセッサと主
記憶の間に位置しプロセッサの主記憶アクセスを制御す
る制御装置のLSI内に置く。
【0018】
【発明の実施の形態】実施例1 図1は本発明のキャッシュ装置を含む情報処理装置の構
成図である。プロセッサバス64上の2台のプロセッサ
1−1と1−2は、アドレスパス66とデータパス67
1、672を介して制御装置2に結合されている。ま
た、制御装置2は主記憶4とデータパス673、674
を介して接続されている。プロセッサ1は制御装置2を
介して主記憶4から命令を読み出し、それに従って動作
する。プロセッサ1は必要に応じて制御装置2にコマン
ド51を送り、主記憶からデータを読み出したり、主記
憶にデータを書きこんだりさせる。このようなプロセッ
サ1は公知の技術で構成可能で、例えばインテル社のP
entium と同様であっても良い。
【0019】制御装置2の内部には本発明のキャッシュ
装置3が搭載されている。制御装置2は、プロセッサ1
が発行したコマンド51に従がって、主記憶4にアクセ
スする。制御装置2は主記憶4にアクセスして得たデー
タをキャッシュ装置3に格納しておき、プロセッサ1が
再びそのデータにアクセスし、そのデータがまだキャッ
シュ装置3に登録されていれば、主記憶4の代わりにキ
ャッシュ装置3に格納されているデータを用いる。
【0020】制御装置2がプロセッサ1から受け取るコ
マンド51は、コマンドの種別を表すオペコード(op)5
2とアドレス53とアクセス対象が命令であるかデータ
であるかを区別する命令・データ識別ビット56を含
む。アドレス53は、タグ(tag)54と、インデックス
(index)55と、オフセットから構成される。コマンド
51のサイズは64ビットで、コマンド51の10ビッ
ト目には命令・データ識別ビット56がある。制御装置
2は、プロセッサから発行されたコマンド51を格納す
るコマンドレジスタ50を持つ。プロセッサ1が制御装
置2にコマンド51を発行すると、制御装置2はそれを
コマンドレジスタ50に格納する。
【0021】次に本発明のキャッシュ装置3について説
明する。
【0022】[キャッシュメモリ35の説明]キャッシュ
メモリ35は、4つのキャッシュメモリバンク(キャッ
シュメモリバンク0(30)、キャッシュメモリバンク1
(31)、キャッシュメモリバンク2(32)、キャッシュ
メモリバンク3(33))から構成される4ウェイセット
アソシアティブ(4way set-associative)方式を採用して
いる。各キャッシュメモリバンクは1つのラインの情報
を格納するエントリを例えば16k個持つ。各エントリ
は、制御情報領域とデータ領域から構成される。制御情
報領域は、アドレスの一部のビット列であるタグ(tag)
300、ラインの状態(S)301、グループ識別子(G)3
02、最近のアクセス状況を表すLRU(Least Recentl
y Used)303から構成される。データ領域はデータ部
(data)304から構成される。ラインの状態301に
は、ラインが変更されたことを表すModified、
ラインが1つのプロセッサにのみ参照されていることを
表すExclusive、ラインが複数のプロセッサに
参照されていることを表すShared、ラインが無効
であることを表すInvalidの4つの状態がある。
【0023】[グループ指定手段70の説明]グループ指
定手段70は、ラインがどの属性を持つグループに属す
るかのグループ定義D(属性情報)をグループ定義テー
ブル350に書き込む手段であり、例えば情報処理装置
のコンソールである。あるいは、メモリマップドI/O
になっていて、そのアドレスに格納されている情報をデ
コードしてデータを抽出する回路であっても良い。要す
るに公知の技術で良い。キャッシュメモリにおいて管理
すべきラインの属性の定義を、次ぎに述べるグループ定
義テーブルに設定する定義設定の手段として動作すれば
良い。
【0024】[グループ定義テーブル350の説明]グル
ープ定義テーブル350の一つの行は、一つの属性を持
つグループの定義Dを与える。グループ定義テーブル3
50は4つの行(356、357、358、359)を持
ち、4つのグループまで定義可能としている。グループ
の定義を与える一つの行は位置(Po)351、サイズ(S
i)352、パターン1(P1)353、パターン2(P2)3
54、グループ識別子(G)355の5つの部分から構成
される。位置351は、コマンド51のビット列の中で
グループを識別する情報が格納されている部分のビット
列の最低位のビットを示す。サイズ352は、グループ
を識別する情報のビット長を示す。パターン1 353
およびパターン2 354は、位置351とサイズ35
2で指定されたコマンド51の中のビット列がマッチす
べきパターンあるいは、入るべき値の範囲を示す。パタ
ーン1とパターン2が同じ値の場合は、マッチすべきパ
ターンを示し、パターン1とパターン2が異なる値の場
合は、入るべき値の範囲を示す。グループ識別子355
は、位置351とサイズ352で指定されたビット列の
値が、パターン1 353にマッチするか、または、パ
ターン1 353とパターン2 354の範囲に入ってる
場合に、そのコマンド51によってアクセスされるライ
ンの属するグループの識別子を示す。本実施例(図1)
のグループ定義テーブル350は一行目356と二行目
357にグループ定義が登録されており、2つのグルー
プを定義している。一行目356のグループ定義および
二行目357のグループ定義における位置351は10
ビット目でサイズは1ビットであるから、コマンド51
の10ビット目に1ビットのグループ情報が格納されて
いることを示している。図1の場合、コマンド51の1
0ビット目は命令・データ識別ビット56であるから、
ラインが命令であるかデータであるかによってグループ
を区別することになる。グループ定義テーブル350の
一行目356のパターン1 353とパターン2 354
は共に0であり、グループ識別子355はIG(Instruc
tion Group: 命令グループ)であるから、コマンド51
の命令・データ識別ビット56が0であれば、そのコマ
ンド51によってアクセスされるラインの属するグルー
プは命令グループであることを意味する。また、グルー
プ定義テーブル350の2行目357のパターン1 3
53とパターン2 354は共に1であり、このときの
グループ識別子355はDG(Data Group: データグル
ープ)であるから、コマンド51の命令・データ識別ビッ
ト56が1であれば、そのコマンドによってアクセスさ
れるラインの属するグループはデータグループであるこ
とを意味する。
【0025】[グループ判定手段37の説明]グループ判
定手段37は、プロセッサ1が発行したコマンド51を
グループ定義テーブル350と照らし合わせて、そのコ
マンド51によってアクセスされるラインの属するグル
ープの識別子を求める。グループ判定手段37によるグ
ループの識別子の判定は、以下の手順に従って行われ
る。
【0026】(1)まずグループ定義テーブル350の
グループ定義を一つ読み出す。
【0027】(2)次に、グループ定義Dに指定されて
いる位置351からサイズ352分のビット列をコマン
ド51の中から読み出す。
【0028】(3)取り出したビット列がグループ定義
Dのパターン1 353と一致するか、あるいは、ビッ
ト列の値がパターン1 353とパターン2 354の
範囲に含まれるか判定する。
【0029】(4)(3)が成り立つ場合は、そのグル
ープ定義Dのグループ識別子355が、そのラインの属
するグループとなる。
【0030】(5)(3)が成り立たない場合は、他の
グループ定義Dに対し、上記1から5までを繰り返し行
う。
【0031】本実施例(図1)の場合は、コマンド51
の10ビット目の値は0であるから、グループ定義テー
ブル350の一行目356のグループ定義のパターン3
53の値0と一致し、従って、このコマンド51によっ
てアクセスされるラインの属するグループは、命令グル
ープであると判定される。
【0032】[登録ポリシー指定手段71の説明]登録ポ
リシー指定手段71は、ラインの属性に従ってキャッシ
ュメモリへの登録の仕方を定めた登録ポリシーを登録ポ
リシーテーブル360に書き込む手段で、例えば情報処
理装置のコンソールである。あるいは、メモリマップド
I/Oになっていて、そのアドレスに格納されている情
報をデコードしてデータを抽出する回路であっても良
い。要するに公知の技術で良い。
【0033】[登録ポリシーテーブル360の説明]登録
ポリシーテーブル360は登録ポリシーを規定する。登
録ポリシーテーブル360の各行はそれぞれ一つのグル
ープ集合を定義している。登録ポリシーテーブル360
の各行は、グループ欄1(G1) 361、グループ欄2
(G2) 362、グループ欄3(G3) 363、グル
ープ欄4(G4) 364から構成され、各欄にはそれ
ぞれ一つずつグループ識別子が入る。一つのグループ集
合は、グループ欄1 361からグループ欄4 364
の各欄(欄は空でも良い)に格納されているグループ識別
子を要素として持つ集合として定義される。グループ定
義テーブル350は4つまでのグループを定義可能であ
るから、登録ポリシーテーブル360のグループ欄も4
つ設けている。
【0034】登録ポリシーテーブル360には4つの行
365、366、367、368があり、テーブル全体
で4つのグループ集合を定義する。グループ集合の数4
は、本キャッシュ装置3が、4つのキャッシュメモリバ
ンク30、31、32、33を持つ4ウエイセットアソ
シアティブキャッシュであるところからきている。
【0035】ポリシー定義テーブル360の一行目36
5と二行目366は、命令グループIGを一つだけ要素
としてもつグループ集合{IG}であることを示す。三
行目367と四行目368は、命令グループIGとデー
タグループDGを要素としてもつグループ集合{IG
DG}であることを示す。登録ポリシーテーブル360
全体では、以下の登録ポリシーを定義している。
【0036】 ({IG}、{IG}、{IG DG}、{IG DG}) ― この登録ポリシーは、4つあるキャッシュメモリバンク
30,31,32,33のうちのいずれか2つは命令グ
ループIGに属するライン専用のキャッシュメモリバン
クであり、残りの2つは命令グループIGに属するライ
ンまたはデータグループIDに属するライン用のキャッ
シュメモリバンクであることを表す。すなわち、キャッ
シュメモリの同一インデックス内(セット内)に登録可
能な命令グループIGに属するラインは最大4つ、デー
タグループDGに属するラインは最大2であることを意
味する。よって、同一インデックスにおけるラインの属
するグループのパターン(これを以後登録パターンと呼
ぶ)は、(IG、IG、IG、IG)(全てのラインが
IGに属す) −(パターン1)、(IG、IG、I
G、DG)(3つのラインがIG、1つのラインがDG
に属す)
−(パターン2)、(IG、IG、D
G、DG)(2つのラインがIG、2つのラインがDG
に属す)
−(パターン3)、のいずれかである。
なお、本実施例の登録ポリシーは、あるグループに属す
るラインのキャッシュ上の数と、どのグループとどのグ
ループが同一キャッシュメモリバンクを共有するかを規
定しており、数があっていればラインの格納されている
キャッシュメモリバンクがどこであっても良い。
【0037】この登録ポリシーに従って、キャッシュへ
のラインの登録を行えば、命令グループIGに属するラ
インの方がより長い間キャッシュに滞在でき、データグ
ループに属するラインより優先的に扱われる。また、登
録ポリシーの与え方によって、優先の度合いを調節する
ことができる。なお、登録ポリシーに従がったラインの
キャッシュへの登録方法については、後に図2を用いて
説明する。
【0038】[ヒット判定手段34の説明]ヒット判定手
段34は、ラインがキャッシュメモリ35に登録されて
いるかどうかを判定し、登録されていれば(ヒットと呼
ぶ)ヒット情報60を1にセットし、登録されていなけ
れば(ミスと呼ぶ)ミス情報61を1にセットする。ヒ
ット判定手段34は、従来のキャッシュにおけるヒット
判定回路と同じあり、公知の技術で良い。
【0039】[リプレース対象ライン決定手段38の説
明]主記憶4から読み出したラインを、キャッシュメモ
リ35に既に登録されているラインのいずれかとリプレ
ースするが、リプレースの対象となるラインを決定する
のがリプレースライン決定手段38である。リプレース
ライン決定手段38の詳細については後で、動作説明の
中で詳しく説明する。
【0040】[書き込み手段39の説明]リプレース対象
ライン決定手段38によって、リプレース対象ライン6
3が決定されると、書き込み手段39は、リプレース対
象ライン63の状態がModifiedの場合には、そ
れを主記憶4に書き戻し、リプレース対象ライン63が
格納されていたキャッシュメモリバンクに新しいライン
を格納する。書き込み手段39は、従来のキャッシュに
おける書き込み回路と同じであり、公知の技術である。
【0041】以上、キャッシュ装置3の各構成要素につ
いて説明した。まとめると、キャッシュ装置3の構成要
素のうち、グループ指定手段70と登録ポリシー指定手
段71とヒット判定手段34と書き込み手段39は公知
技術であり、キャッシュメモリ35も各エントリの情報
にグループ識別子302がある他は公知技術である。新
規の構成要素は、グループ定義テーブル350、グルー
プ判定手段37、登録ポリシーテーブル360、リプレ
ースライン決定手段38である。
【0042】次に、キャッシュ装置3を含む図1の情報
処理装置の動作について説明する。
【0043】[初期化]この情報処理装置の起動時に、グ
ループ指定手段70によってグループ定義をグループ定
義テーブル350に書き込み、また登録ポリシー指定手
段71によって登録ポリシーを登録ポリシーテーブル3
60に書き込む。その後、本情報処理装置上でソフトウ
ェアの実行を開始する。なお、本情報処理装置において
ソフトウェアの実行を開始した後も、任意の時点でグル
ープ定義テーブル350と登録ポリシーテーブル360
の値を変更して良い。
【0044】プロセッサ1はプログラムの命令に従って
処理を行い、主記憶にアクセスする場合は、制御装置2
にコマンド51を送る。処理装置2はコマンドレジスタ
50にコマンド51を受け取ると、そのコマンド51に
従って処理を行う。まず、コマンド51のインデックス
55の情報をインデックスとして、各キャッシュメモリ
バンク30、31、32、33を並列に引き、各キャッ
シュメモリバンク30、31、32,33に格納されて
いラインの制御情報(300、301、302、303)
を読み出す。ヒット判定手段34は読み出した4ライン
分の制御情報のタグ300と、コマンド51のタグ54
とを比較し、4つのタグ300のうちのいずれか一つが
タグ54と一致すれば、ヒット情報60を1にセットし
て、コマンド51によってアクセスされるラインがキャ
ッシュにヒットしたことを表し、一つも一致しなけれ
ば、ミス情報61を1にセットして、そのラインがキャ
ッシュミスしたことを表す。
【0045】キャッシュ装置3は、ヒット判定手段34
によってヒット情報60が1にセットされると、タグ5
4と一致したタグ300が格納されているキャッシュメ
モリバンクのインデックス55のエントリにアクセスし
て、コマンド51がリードであれば、そのエントリのデ
ータ部304からラインを読み出してそれをプロセッサ
1に返し、コマンド51がライトであれ、そのエントリ
のデータ部304にプロセッサ1から送られてきたデー
タと制御情報を書き込む。キャッシュ装置3は、ヒット
判定手段34によってミス情報61が1にセットされる
と、主記憶4にアクセスしてコマンド51で指定される
アドレス53からラインを読み出し、そのラインをプロ
セッサ1に返し、それと共にキャッシュメモリにそのラ
イン(以後このラインを登録ラインと呼ぶ)を登録する。
登録ラインをキャッシュメモリへ登録するには、まず、
リプレースライン決定手段38が、各キャッシュメモリ
バンク30、31,32,33のインデックス55の部
分に格納されている4つのライン(以後このラインをリ
プレース候補ラインと呼ぶ)の中から、リプレース対象
ラインを一つ決定する。リプレース対象ラインの動作の
詳細については後で説明する。リプレース対象ライン決
定手段38によって、リプレース対象ライン63が決定
されると、書き込み手段39は、リプレース対象ライン
63の状態がModifiedの場合には、それを主記
憶4に書き戻し、リプレース対象ライン63が格納され
ていたキャッシュメモリバンクのインデックス55部分
に、登録ラインを格納する。このとき、グループ識別子
302には、登録ラインの属するグループ識別子62
(グループ判定手段によって判定)を格納する。
【0046】なお、本情報処理装置の稼動中に、グルー
プ指定手段70によってグループ定義テーブル350を
書き換えたり、登録ポリシー指定手段71によって登録
ポリシーテーブル360を書き換えても、リプレースラ
イン決定手段38の処理内容が変わるだけで、リプレー
スライン決定手段38以外のキャッシュ装置3の構成要
素の処理は上記とまったく同じである。
【0047】次にリプレースライン決定手段38の動作
の詳細について述べる。
【0048】リプレースライン決定手段38は、4つの
リプレース候補ラインの制御情報(ラインの状態30
1、グループ識別子302、LRU303)と、グルー
プ判定手段37によって判定された登録ラインの属する
グループのグループ識別子62と、登録ポリシーテーブ
ル360を用いて、4つのリプレース候補ラインの中か
らリプレース対象ラインを決定する。リプレースライン
決定手段の動作について、図2を用いて説明する。説明
に使用する記号を以下に定義する。
【0049】Li: リプレース候補ラインのうちキャッシ
ュメモリバンクiに格納されているライン Lr: 登録ライン Gl: グループ識別子 (本実施例ではIGまたはDG) S(Li): ラインLiの状態 G(Lk): ラインLkが属するグループ L(Gj): リプレース候補ラインL1,...,L4のうち属するグ
ループがGjであるものの数 P(Gj): 登録ポリシーのグループ集合のうちグループGj
を要素とするグループ集合の数 登録ポリシー定義テーブル360(図1)によって定義さ
れる登録ポリシーのグループ集合のうち、命令グループ
IGを要素とするグループ集合の数P(IG)=4であり、デー
タグループDGを要素とするグループ集合の数P(DG)=2で
ある。
【0050】これらの記号を用いて図2のリプレースラ
イン決定手段38の動作について説明する。リプレース
ライン決定手段38の動作は以下のとおりである。
【0051】[リプレースライン決定手段の動作] (1) まず、1001において、リプレース候補ライン
L1,...,L4のうち、ラインの状態S(Li)がInvalidとなる
(S(Li)=Invalid)ラインLiが存在するかどうか調べる。S
(Li)=Invalidとなるラインが存在すれば、1002にお
いて、そのラインをリプレース対象ラインに決定する。
もしS(Li)=InvalidとなるラインLiが複数存在すれば、
その中から(例えばLRUにしたがって)任意に一つのライ
ンを選び、そのラインをリプレース対象ラインに決定す
る。1001の条件下での1002の動作は、同じ条件
下(1001)での通常のキャッシュにおける動作と同じ
である。
【0052】なお、例えばリプレース候補ラインの状態
が全てInvalidであり、かつ、データグループDGに属す
る同じインデックスの4つのラインを連続してキャッシ
ュメモリに登録する場合は、キャッシュメモリのそのイ
ンデックスの部分は、全てデータグループDGに属するラ
インで埋め尽くされ、先に述べた登録ポリシーテーブル
360で定義される登録ポリシーの登録パターン(パ
ターン1)、(パターン2)、(パターン3)のいずれ
にもマッチしないから、登録ポリシーに従っていると
はいえないが、これはこれで良い。なぜなら、もし、図
1の登録ポリシーテーブル360で定義される登録ポリ
シーに厳密に従がってラインの登録を行うと、命令グル
ープIGに属するラインは2つのみキャッシュに格納さ
れ、残りの2つのキャッシュメモリバンクは空きになっ
て無駄が生じ前者に比べると効率が悪いからである。そ
こで本実施例では、状態がInvalidであるラインが存在
した場合には、登録ポリシーに従わず、どのグループに
属するラインであってもそれをキャッシュに登録する方
法を取っている。このような場合でも、その後命令グル
ープIGに属しかつ先のラインと同じインデックスのラ
インが2つ以上登録されれば、登録ポリシーに従うよう
になる。
【0053】このように、キャッシュメモリ上に実際に
登録されているラインの属するグループの登録パターン
と登録ポリシーの登録パターンとが一致しない例外(登
録ポリシー逸脱ケースと呼ぶ)が、上記の場合の他にも
う一つある。それは、もともとキャッシュメモリの登録
パターンが登録ポリシーの登録パターンに従っていた
が、途中で登録ポリシーが変更された場合である。これ
らの場合については、以下の2や3のように動作してキ
ャッシュ上のラインが属するグループのパターンが登録
ポリシーと一致する方向にもっていくようにラインの登
録処理が行われる。
【0054】(2) 1001の条件が成立しない場合
は、1003において、リプレース候補ラインL1,...,L
4のうち属するグループが登録ラインLrの属するグルー
プG(Lr)と同じものであるものの数L(G(Lr))と、登録ポ
リシーのグループ集合のうち登録ラインLrの属するグル
ープG(Lr)を要素とするグループ集合の数P(G(Lr))の間
にL(G(Lr))≧P(G(Lr))という関係が成立すれば、100
4を実行する。1004は、リプレース候補ラインL
1,...,L4のうち、ラインLiの属するグループG(Li)が登
録ラインLrの属するグループG(Lr)と同じ(G(Li)=G(Lr))
であるラインLiの中から、各ラインのLRUの情報に基づ
いて、リプレース対象ラインを決定する。
【0055】条件L(G(Lr))≧P(G(Lr))のうち、L(G(Lr))
=P(G(Lr))という条件は、リプレース候補ラインのうち
属するグループがG(Lr)であるものの個数が、登録ポリ
シーで指定されているキャッシュメモリの同一インデッ
クス中に格納することのできるグループG(Lr)に属する
ラインの個数の最大値であること示し、この場合には属
するグループがG(Lr)であるリプレース候補ラインの中
からリプレース対象ラインを決定する。条件L(G(Lr))>P
(G(Lr))が成り立つのは、上記1で説明した登録ポリシ
ー逸脱ケースであり、この場合についても、属するグル
ープがG(Lr)であるリプレース候補ラインの中からリプ
レース対象ラインを決定する。
【0056】例えば、本実施例の場合には、登録ポリシ
ー定義テーブル360によって定義される登録ポリシー
では、P(IG)=4、P(DG)=2である。登録ラインLrが
命令グループIGに属するラインであれば、属するグル
ープが命令グループIGであるリプレース候補ラインの
数L(IG)がL(IG)≧4を満足する場合には、属するグルー
プが命令グループであるリプレース候補ラインの中か
ら、リプレースラインを決定する(なお、L(IG)の最大
値はキャッシュメモリ35のway数4であるから、命令
グループIGに対してL(IG)>4となる(登録ポリシー逸
脱ケース)ことはない)。もし登録ラインLrがデータグ
ループDGに属するラインであれば、属するグループが
データグループDGであるリプレース候補ラインの数L
(DG)がL(DG)≧2であれば、属するグループがデータグル
ープDGであるリプレース候補ラインの中から、リプレ
ース対象ラインを決定する。
【0057】(3) 1001と1003の条件が共に成
立しない場合は、1005において、登録ラインLrが属
するグループG(Lr)と異なるグループGjのうち、そのグ
ループGjに属するラインLi (G(Li)=Gj)の個数L(Gj)と、
登録ポリシーのグループ集合のうちグループGjを要素と
するグループ集合の数P(Gj)との間にL(Gj)>P(Gj)という
関係が成立するグループGjが存在すれば、1006を実
行する。1006は、リプレース候補ラインL1,...,L4
であって、そのラインLiの属するグループG(Li)がグル
ープGjである(G(Li)=Gj)ラインLiの中から、LRU情報に
基づいて、リプレース対象ラインを決定する。
【0058】L(Gj)>P(Gj)という条件が成立するのは、
上記1で説明した登録ポリシー逸脱ケースである。登録
ラインLrの属するグループG(Lr)以外のグループGrに属
するラインに対し、登録ポリシーにそぐわない状況が発
生した場合(登録ポリシー逸脱ケース)には、そのグルー
プGrに属するラインの中からリプレース対象ラインを決
める。この動作によって、キャッシュメモリ上の登録パ
ターンが登録ポリシーの登録パターンに近づく。
【0059】例えば本実施例においては、登録ラインLr
が命令グループIGに属するラインであれば、属するグ
ループがデータグループDGであるリプレース候補ライ
ンの数L(DG)がL(DG)>2を満足する場合には、属するグ
ループがデータグループであるリプレース候補ラインの
中から、リプレースラインを決定する。もし登録ライン
LrがデータグループDGに属するラインであれば、属す
るグループが命令グループIGであるリプレース候補ラ
インの数L(IG)はL(IG)≦4であるから、1005の条件
は満足しない。
【0060】(4) 1001と1003と1005のす
べての条件が成立しない場合は、1007において、登
録ラインLrの属するグループG(Lr)と共にグループ集合
の要素となっているグループGkに属するラインの中か
ら、LRU情報に従ってリプレース対象ラインを決定す
る。
【0061】例えば本実施例の場合に、登録ラインLrの
属するグループが命令グループIGであった場合には、
登録ポリシーのグループ集合の中で、命令グループI
Gと共にグループの要素となっている命令グループIG
(登録ポリシーの中に{IG DG}という命令グループIG
を要素としたグループ集合がある)に属するラインの中
から、リプレース対象ラインを決定する。登録ラインLr
の属するグループがデータグループDGであった場合に
は、登録ポリシーのグループ集合の中で、データグル
ープDGと共にグループの要素となっている命令グループ
IG (登録ポリシーの中に{IG DG}というデータグルー
プDGを要素としたグループ集合がある)に属するライン
の中から、リプレース対象ラインを決定する。
【0062】次に本実施例のキャッシュ装置3の効果に
ついて説明する。まず、図1のキャッシュメモリ35の
あるインデックスのラインの登録パターンが、登録ポリ
シーテーブル360で定義される登録ポリシーの登録
パターン(パターン1)、(パターン2)、(パターン
3)のいずれかに従う場合(通常ケース)を考える。例
として、キャッシュメモリ35のインデックスiに、命
令グループIGに属するラインAとラインB、および、
データグループDGに属するラインCとラインDが登録
されている場合を考える。キャッシュメモリ35のイン
デックスiの登録パターンは(IG, IG, DG, DG)であるか
ら、登録ポリシーの登録パターン(パターン3)と一
致している。このキャッシュ状態において、データグル
ープDGに属しインデックスがiである新規のライン
E,F,G,Hを連続してキャッシュメモリ35に登録
する場合を考える。これらのラインは全て新規のライン
であってキャッシュメモリ35に登録されていないか
ら、すでにキャッシュメモリのインデックスiに格納さ
れているラインのいずれかをリプレースすることにな
る。
【0063】まずラインEの登録について説明する。ラ
インEの登録の際にリプレース対象となるラインは、先
に述べたリプレースライン決定手段38の動作1から4
に従って決定される。キャッシュメモリ35のインデッ
クスiにInvalid状態のラインはなく、かつ、ラインEの
属するデータグループDGに関して、L(DG)=P(DG)となる
から、[リプレースライン決定手段の動作]の(1)から
(4)の(2)を実行し、キャッシュメモリ35のインデ
ックスiにすでに格納されているラインのうち、データ
グループDGに属するラインCとDの中から、LRUによっ
てリプレース対象ラインを決定し(たとえばCとす
る)、ここにラインEを登録する。登録後のキャッシュ
メモリ35のインデックスiに格納されているライン
は、A、B、D、Eとなり、これらのラインの登録パタ
ーンは登録ポリシーの登録パターン(パターン3)と
一致する。同様にしてラインF、G、Hの登録を行う
と、最終的なキャッシュメモリ35のインデックスiに
格納されているラインは、A、B、G、Hとなる。
【0064】このように、本実施例では登録ポリシー
に従って処理が行われ、命令グループIGに属するライ
ンAとBは、データグループDGに属するラインによっ
てリプレースされないから、ラインE、F、G、Hがキ
ャッシュメモリに書き込まれた後も、ラインAとBはキ
ャッシュメモリ上に残っており、ラインHの登録後にラ
インAまたはBの参照があると、ヒットすることにな
る。
【0065】一方比較のため、どのラインも画一的にキ
ャッシュに登録する従来のキャッシュ装置において、上
記と同様の例を実行すると、命令グループIGに属する
ラインとデータグループDGに属するラインの区別なく
LRUによってリプレースするラインを決定するため、
ラインAやBはラインE、F、G、Hのいずれかによっ
てリプレースされ、最終的には、キャッシュメモリ35
のインデックスiに登録されているラインは、E、F、
G,Hとなる。この場合Hの登録後に、ラインAまたは
Bの参照があると、ミスすることになる。
【0066】以上の例から明らかなように、もし、命令
グループに属するラインの再利用性が高く、データグル
ープに属するラインの再利用性は低く、かつ、データグ
ループに属するラインの方が命令グループに属するライ
ンより頻繁にアクセスされる場合、従来のキャッシュ装
置では再利用性の高い命令グループに属するラインが再
利用性の低いデータグループに属するラインにリプレー
スされてしまい、キャッシュメモリのヒット率は低かっ
た。本実施例では、登録ポリシーのように命令グルー
プに属するラインをデータグループに属するラインより
優先的にキャッシュに格納し、したがって、再利用性の
高い命令グループに属するラインが再利用性の低いデー
タグループに属するラインにリプレースされることが少
なく、結果としてキャッシュのヒット率が向上して情報
処理装置の性能を従来のキャッシュ装置を備えた情報処
理装置より高くできるという効果がある。
【0067】次に、課題1(動的に登録ポリシーを変更
した場合)への対応について説明する。変更前の登録ポ
リシーが図1の登録ポリシーテーブル360で定義され
る登録ポリシーであり、キャッシュメモリ35のイン
デックスiに、命令グループIGに属するラインAとラ
インB、および、データグループDGに属するラインC
とラインDが登録されている場合を考える。キャッシュ
メモリ35のインデックスiの登録パターンは(IG、
IG、DG、DG)であるから、登録ポリシーの登録
パターン(パターン3)と一致している。このキャッシ
ュ状態において、登録ポリシー指定手段71により、以
下に示す登録ポリシーが新しい登録ポリシーが登録ポ
リシーテーブル360に書き込まれたとする。
【0068】 ({IG}、{IG}、{IG}、{IG DG}) − 登録ポリシーからへの変更は、データグループに属
するラインをより優先することを表す。ラインA、B、
C、Dの登録パターンと登録ポリシーの登録パターン
は一致しない。この状況において、命令グループIGに
属する新規のラインEを登録する場合は、キャッシュメ
モリ35のインデックスiにInvalid状態のラインは存在
せず、かつ、命令グループIGに対しL(IG)=2であるか
ら、L(IG)≧P(IG)は成立せず、かつ、データグループD
Gに対し、L(DG)=2であるから、L(DG)≧P(DG)が成立す
る。従って、[リプレースライン決定手段38の動作]の
(1)から(4)の中の(3)の部分が実行され、データグルー
プDGに属するラインCまたはDの中から、LRUに従っ
てリプレース対象ラインが決定され(たとえばCとす
る)、キャッシュメモリ35のインデックスiに格納さ
れているラインはA、B、D、Eとなる。これらのライ
ンの登録パターンは(IG,IG,IG,DG)となっ
て、登録ポリシーの登録パターンと一致する。従っ
て、動的に登録ポリシーを変更した場合にも適切に対応
でき、この点も本実施例の優位な効果である。
【0069】また、本実施例のキャッシュ装置3は制御
装置2の中にあり、かつ、プロセッサから発行されたコ
マンドのうちキャッシュ装置3が参照するタグ54、イ
ンデックス55、命令・データ識別ビット56の各情報
は、既製のプロセッサのコマンドに含まれている情報ば
かりであるから、既製のプロセッサ1に変更を加えるこ
となく、制御装置2の変更だけで本キャッシュ装置2を
実現できる。このため、課題3を解決しており、この点
も本実施例の優位な効果である。
【0070】実施例2 実施例2の構成は、実施例1の構成図1とほぼ同じで、
図1のグループ定義テーブル350に与える値を、図3
のグループ定義テーブル3501の値に変更し、図1の
登録ポリシーテーブル360の値を、図4の登録ポリシ
ーテーブル3601の値に変更しただけである。これら
2つのテーブルと、これらのテーブルによって動作に影
響を受ける図1のグループ判定手段37、および、リプ
レースライン決定手段38を除くと、その他の要素の構
成および動作は実施例1と同じである。
【0071】図3のグループ定義テーブル3501は一
行目356と二行目357にグループ定義が登録されて
おり、2つのグループを定義している。なお、グループ
定義は3つ以上であっても良い。一行目356のグルー
プ定義は、図1のコマンド51の24ビット目から39
ビット目までのビット列が、0x0000から0x12
00の範囲にあるとき、そのコマンドによってアクセス
されるラインの属するグループの識別子をG1とするこ
とを意味する。二行目357のグループ定義は、図1の
コマンド51の24ビット目から39ビット目までのビ
ット列が、0x0x1201から0xBE00の範囲に
あるとき、そのコマンドによってアクセスされるライン
の属するグループの識別子をG2とすることを意味す
る。コマンド51の39ビット目から24ビット目はア
ドレス53の一部であるから、このグループ定義は、ア
クセスされるラインのアドレスによってグループ分けを
行うことを意味する。
【0072】図1のグループ判定手段37は、図3のグ
ループ定義テーブル3501に従って、次のように、コ
マンド51によってアクセスされるラインの属するグル
ープを識別する。コマンド51の24ビット目から39
ビット目までのビット列が、0x0000から0x12
00の範囲にあるとき、そのコマンドによってアクセス
されるラインの属するグループの識別子をG1と識別子
する。コマンド51の24ビット目から39ビット目ま
でのビット列が、0x0x1201から0xBE00の
範囲にあるとき、そのコマンドによってアクセスされる
ラインの属するグループの識別子をG2と識別する。
【0073】図4の登録ポリシーテーブル3601は、
図1の登録ポリシーテーブル360の命令グループIG
を、図3のグループ定義テーブル3501で定義される
グループG1に置き換え、図1の登録ポリシーテーブル
360のデータグループDGを、図3のグループ定義テ
ーブル3501で定義されるグループG2に置き換えた
ものである。従って、図4の登録ポリシーテーブル36
01の作用は、グループの識別子以外は、図1の登録ポ
リシーテーブル360とまったく同じである。また、図
3の登録ポリシーテーブル3601が図1の登録ポリシ
ーテーブル360とグループ識別子以外まったく同じで
あるから、図3の登録ポリシーテーブル3601を参照
しながらリプレース対象ラインの決定を行う図1のリプ
レースライン決定手段38の動作も、グループ識別子が
異なる以外、実施例1の[リプレースライン決定手段の
動作]とまったく同じである。
【0074】以上のように本実施例の実施例1との実質
的な違いは、グループの定義とその判定方法にあり、従
って得られる効果も実施例1とほぼ同じであるが、グル
ープの定義の違いによって、効果にも多少の違いがあ
る。実施例1では、命令グループに属するラインをデー
タグループに属するラインより優先してキャッシュメモ
リ35に登録するが、命令グループに属するライン同士
あるいは、データグループに属するライン同士は画一的
に扱う。このため、これらのラインの間では、ラインを
画一的に扱う従来のキャッシュ装置と同じ問題が発生す
る。これに対し、本実施例では、ラインのアドレスによ
ってグループ分けをするため、例えばデータグループに
属するライン同士であっても、それらをグループ分けで
き、あるグループのラインを別のグループのラインより
優先してキャッシュメモリ35に格納することで、ヒッ
ト率を向上できる場合があり、これが本実施例の優位な
効果である。なお、実施例1で実行した方が高い性能を
出せる場合もあるし、実施例2で実行したほうが高い性
能を出せる場合もあり、これらは主に実行するプログラ
ムの性質による。また、実施例1の命令グループとデー
タグループに分ける分け方と、実施例2のアドレスによ
ってグループ分けする分け方をミックスしてグループ定
義テーブル350に指定しても良い。この場合には、実
施例1や実施例2よりもさらに柔軟に対処でき、より高
い性能を出せる可能性がある。
【0075】実施例3 実施例3の構成は、実施例1の構成図1とほぼ同じで、
図1のコマンド51を図5のコマンド511で置き換
え、図1のグループ定義テーブル350に与える値を、
図6のグループ定義テーブル3502の値に変更し、図
1の登録ポリシーテーブル360の値を、図4の登録ポ
リシーテーブル3601の値に変更しただけである。図
4の登録ポリシーテーブル3601については実施例2
で説明した。また、リプレースライン決定手段38は、
与えられる登録ポリシーテーブルと区別するグループの
識別子G1、G2が実施例2の場合と同じなので、その
動作は実施例2の場合と同様である。よって、コマンド
511とグループ定義テーブル3502とこのテーブル
によって動作に影響を受ける図1のグループ判定手段3
7を除くと、キャッシュ装置3のその他の構成要素は実
施例1また実施例2と同じである。
【0076】図5のコマンド511は、図1のコマンド
51の4ビットと5ビット目に、グループ識別子57を
付加したものである。コマンド511によってアクセス
されるラインの属するグループは、コマンド511のグ
ループ識別子57で識別されるグループであることを意
味する。これは、ユーザがプログラム中でデータの属す
るグループを指定するか、あるいは、コンパイラがデー
タの属するグループを指定するという使い方を想定して
いる。
【0077】図6のグループ定義テーブル3502は一
行目356と二行目357にグループ定義が登録されて
おり、2つのグループを定義している。なお、グループ
定義は3つ以上であっても良い。一行目356のグルー
プ定義は、図5のコマンド511の4ビット目と5ビッ
ト目の2ビットの値が01であれば、そのコマンドによ
ってアクセスされるラインの属するグループの識別子を
G1とすることを意味する。二行目357のグループ定
義は、図5のコマンド511の4ビット目と5ビット目
の2ビットの値が10であるとき、そのコマンドによっ
てアクセスされるラインの属するグループの識別子をG
2とすることを意味する。
【0078】図1のグループ判定手段37は、図6のグ
ループ定義テーブル3502に従って、コマンド51に
よってアクセスされるラインの属するグループを以下の
ように識別する。コマンド511の4ビット目と5ビッ
ト目の2ビットの値が01であれば、そのコマンド51
1によってアクセスされるラインの属するグループの識
別子をG1と識別子する。コマンド511の4ビット目
と5ビット目の値が10であれば、そのコマンドによっ
てアクセスされるラインの属するグループの識別子をG
2と識別する。
【0079】以上のように本実施例の実施例1や実施例
2との実質的な違いは、グループの定義とその判定方法
の部分にのみ存在し、従って得られる効果も実施例1と
ほぼ同じであるが、グループの定義の違いによって、効
果にも多少の違いがある。実施例1では、ラインを命令
グループとデータグループの2つに分類するため、グル
ープ分けが荒すぎて、効果がない出ないことがある。ま
た、実施例2はラインをアドレスによって分類するの
で、一つのグループのアドレス範囲を小さくし、かつ、
大量にグループを定義すれば、グループの分類を細かく
設定できる。しかし、この場合にはグループ定義テーブ
ルのサイズが大きくなり、グループの判定にも時間がか
かるという問題がある。一方、本実施例の方法は、ユー
ザやコンパイラがプログラムの各部分について優先すべ
きラインとそうでないラインを指定できるため、グルー
プをほぼ任意の粒度に設定できる。このため、実施例1
と実施例2ではあまり性能が向上しないが、実施例3で
はより高い性能向上が得られるる場合があり、この点が
本実施例3の優位な効果である。
【0080】実施例4 実施例4の構成は、実施例1の構成図1とほぼ同じで、
図1の登録ポリシーテーブル360の値を、図7の登録
ポリシーテーブル3603の値に変更しただけである。
登録ポリシーテーブル3603と、このテーブルによっ
て動作に影響を受ける図1のリプレースライン判定手段
38を除くと、キャッシュ装置3のその他の構成要素は
実施例1とまったく同じである。
【0081】図7の登録ポリシーテーブル3603は、
一つのグループを要素とするグループ集合から構成され
る以下の登録ポリシー ({IG}、{IG}、{IG}、{DG})− を定義している。この意味は、図1のキャッシュメモリ
35のインデックスiに格納されるラインのうち、3つ
のラインの属するグループは命令グループIGであり、
残りの1つのラインの属するグループはデータグループ
DGであることを意味する。すなわち、この登録ポリシ
ーは、キャッシュメモリ35を、命令グループに属す
るラインのための領域とデータグループに属するライン
のための領域に、論理的に分割することを意味する。な
お、この登録ポリシーは、キャッシュメモリ35の同
一インデックス上に格納可能な命令グループに属するラ
インの数と、データグループに属するラインの数を規定
するだけであるが、それらの各ラインがキャッシュメモ
リ35のどのキャッシュメモリバンクに格納するかを規
定しても良く、この場合にはキャッシュメモリ中の同じ
グループに属するラインの数を数えるという処理が省略
できて、処理が簡単になる。
【0082】図1のリプレースライン決定手段38の動
作は、実施例1で説明したリプレースライン決定手段3
8の動作と同じである。
【0083】リプレースライン決定手段38は、基本的
に実施例1と同じアルゴリズムに従うため、その効果は
実施例1で得られる効果とほぼ同じであるが、多少の違
いがある。実施例1の登録ポリシーに従うと、命令グ
ループIGに属するラインであってもデータグループに属
するラインによってリプレースされる可能性がある。た
とえば、キャッシュメモリ35のインデックスiに格納
されている4つのラインA、B、C、Dの全てが命令グ
ループIGに属するラインであって、その後にデータグル
ープDGに属する新規ラインEを登録する場合には、A
からDのうちのいずれか1つはラインEによってリプレ
ースされる。従って、命令グループIGに属するライン
のキャッシュヒット率とデータグループDGに属するラ
インのキャッシュヒット率は、共に命令グループに属す
るラインの影響とデータグループに属するラインの影響
を受ける。すなわち、データグループDGに属するライ
ンが頻繁に登録されかつ再利用率が低い場合は、命令グ
ループに属するラインのキャッシュヒット率も低下す
る。この問題はどのラインも画一的にキャッシュに登録
する従来型のキャッシュでも当然発生する問題である。
一方、本実施例の場合、実施例1で説明した登録ポリシ
ー逸脱ケース以外の場合、命令グループIGに属するラ
インがデータグループDGに属するラインにリプレース
されたり、あるいは、データグループDGに属するライ
ンが命令グループIGに属するラインによってリプレー
スされることはない。従って、本実施例では、命令グル
ープIGに属するラインのヒット率は命令グループに属
するラインにのみに依存し、データグループDGに属す
るラインのヒット率はデータグループに属するラインの
みに依存し、お互いにお互いの影響を受けないから、先
に述べた実施例1の問題も発生せず、安定したヒット率
が期待できる。この点が、本実施例の優位な効果であ
る。
【0084】実施例5 実施例5は実施例1の変形例である。実施例5の構成を
図8に示す。図8の1−1から1−8は、図1のプロセ
ッサ1−1と同じものである。図8の2−1から2−4
は、図1の制御装置2と同じものである。図8の4は図
1の主記憶4と同じ機能を有するが複数のポートを持つ
ところが図1の主記憶と異なっている。図8の64−1
から64−4は図1のプロセッサバス64と同じもので
ある。図8の66−1から66−4は、図1のアドレス
パス66と同じものである。図8の671−1から67
1−4は、図1のデータパス671と同じものである。
図8の672−1から672−4は図1のデータパス6
72と同じものである。図8の700は図1のグループ
指定手段70とほぼ同じ機能を有するが、図8の制御装
置2−1から2−4の中の指定された制御装置の図1の
グループ定義テーブル350にグループの定義を書き込
む点が図1のグループ指定手段70と異なっている。図
8の710は図1の登録ポリシー指定手段71とほぼ同
じ機能を有するが、図8の制御装置2−1から2−4の
中の指定された制御装置の図1の登録ポリシーテーブル
360に登録ポリシーを書き込む点が図1の登録ポリシ
ー指定手段71と異なっている。図8の680は、図8
のグループ指定手段700と図8の制御装置2−1から
2−4のそれぞれを結ぶパスである。図8の690は、
図8の登録ポリシー指定手段710と図8の制御装置2
−1から2−4を結ぶパスである。
【0085】なお、プロセッサバスで結合された2つの
プロセッサとそのプロセッサバスに結合されている制御
装置をノードと呼ぶものとする。制御装置2−1、2−
2、2−3、2−4を有するノードを、それぞれ、ノー
ド1、ノード2、ノード3、ノード4と呼ぶ。本実施例
は4つのノードが1つの主記憶を共有する構成になってい
る。この情報処理装置は、それぞれの独立した情報処理
装置として動作できる一つ以上のノードから構成される
複数のパーティションに分割できる。どのノードがどの
パーティションに属するかは、図9のパーティション定
義テーブル800に定義されており、このテーブルへの
値のセットは、公知技術で実現可能なコンソール等の手
段によって与えられる。パーティション定義テーブル8
00の各行805から808はそれぞれ一つのパーティ
ションを定義している。最大4つのパーティションを定
義可能である。列801から804はそれぞれノード1
からノード4に対応しており、あるノードは、そのノー
ドに対応した列の中で値が1となっている部分の列に対
応したパーティションに属することを意味する。図9の
パーティション定義テーブルは、パーティションP1は
ノード1とノード2から構成され、パーティションP2
はノード3から構成され、パーティションP3はノード
4から構成されることを意味する。なお、この例では本
実施例の情報処理装置を3つのパーティションに分割し
たが、もちろん、本情報処理装置全体を一つのパーティ
ションにして分割しなくても良い。
【0086】次に本実施例の動作について述べる。本実
施例の動作は、実施例1とほぼ同様の動作をするが、実
施例1における[初期化]の処理、および、グループ定義
と登録ポリシーの変更時の処理が異なる。
【0087】本実施例における初期化は、以下のように
行われる。
【0088】図8のグループ指定手段700が、パーテ
ィションP1にセットするグループ定義を、パーティシ
ョンP1に属する全てのノードの制御装置のグループ定
義テーブル350に逐一書き込む。なお、図9のパーテ
ィション定義テーブル800を参照すると、パーティシ
ョンP1に属するノードはノード1とノード2であると
分かるので、このグループ定義はノード1とノード2の
制御装置2−1と2−2のグループ定義テーブル350
に書き込まれる。次に、パーティションP2にセットす
るグループ定義を、パーティションP2に属するすべて
のノードの制御装置のグループ定義テーブル350に逐
一書き込む。最後にパーティションP3にセットするグ
ループ定義を、パーティション3に属するすべてのノー
ドの制御装置のグループ定義テーブル350に逐一書き
込む。
【0089】同様にして、図9のグループ指定手段71
0が、パーティションP1にセットするグループ定義
を、パーティションP1に属する全てのノードの制御装
置の登録ポリシーテーブル360に逐一書き込み、パー
ティションP2にセットするグループ定義を、パーティ
ションP2に属する全てのノードの制御装置の登録ポリ
シーテーブル360に逐一書き込み、パーティションP
3にセットするグループ定義を、パーティションP3に
属する全てのノードの制御装置の登録ポリシーテーブル
360に逐一書き込む。この初期化処理が終了したあ
と、各ノードは実施例1の場合とまったく同様に動作す
る。
【0090】図8のグループ指定手段700や登録ポリ
シー指定手段710があるパーティションのグループ定
義や登録ポリシーを変更する場合も、上記の初期化の動
作と同様にしてそのパーティションに属するノードの制
御装置のグループ定義テーブル350や登録ポリシーテ
ーブル360に新しいグループ定義や登録ポリシーをセ
ットする。その後のそのパーティションに含まれるノー
ドの動作は、実施例1の場合とまったく同様である。
【0091】本実施例の効果は、上記の動作の記述から
明らかのように、パーティションごとに異なったグルー
プ定義および登録ポリシーを与えることができることに
ある。この効果は、課題2を解決している。
【0092】上記各実施例の構成において、LSIへの実
装方法については、キャッシュ装置は、プロセッサのL
SI内にあったり、プロセッサと主記憶の間に位置しプ
ロセッサの主記憶アクセスを制御する制御装置のLSI
内にあってもよい。しかしながら、プロセッサの主記憶
アクセスを制御する制御装置のLSI内にある場合に
は、システムの一部を変更するだけで実現でき、画一的
にラインを扱う従来型のキャッシュよりも性能の高いキ
ャッシュ装置を提供できる。
【0093】
【発明の効果】以上説明してきたように、本発明は上記
の課題1、課題2、課題3をそれぞれ解決するライン単
位で特定のラインを優先してキャッシュメモリに格納す
ることができ、かつ優先の度合いを動的に変更でき、ま
たパーティションに対応でき、また制御装置の変更だけ
で実現できるキャッシュ装置であって、この装置を従来
のキャッシュ装置の代わりに用いれば、より高い性能を
出すことができ、それでいてコストもそれほど高くない
情報処理装置を実現できる。
【図面の簡単な説明】
【図1】1つのノードから構成される本発明の実施例の
構成図。
【図2】図1のリプレースライン決定手段の動作アルゴ
リズムを示すフローチャート。
【図3】図1の実施例のグループ定義とはまた別のグル
ープ定義を与えるグループ定義テーブル。
【図4】図3のグループ定義テーブルと共に用いる登録
ポリシーを与える登録ポリシーテーブル。
【図5】図1のコマンドの別の実施例。
【図6】図1と図3の実施例のグループ定義とはまた別
のグループ定義を与えるグループ定義テーブル。
【図7】図1と図4の登録ポリシーとは別の登録ポリシ
ーを与える登録ポリシーテーブル。
【図8】複数のノードを持つ本発明の実施例の構成図。
【図9】パーティション定義テーブルの説明図。
【符号の説明】
1−1、1−2:プロセッサ 2:制御装置 3:キャッシュ装置 4:主記憶 30:キャッシュメモリバンク0 31:キャッシュメモリバンク1 32:キャッシュメモリバンク2 33:キャッシュメモリバンク3 34:ヒット判定手段 35:キャッシュメモリ 37:グループ判定手段: 38:リプレースライン決定手段 39:書き込み手段 51:コマンド 54:タグ 55:インデックス 56:命令・データ識別ビット 64:プロセッサバス 70:グループ指定手段 71:登録ポリシー指定手段 300:タグ 301:ラインの状態 302:グループ識別子 303:LRU(Least Recently Us
ed) 304:データ部 350:グループ定義テーブル 360:登録ポリシーテーブル。
───────────────────────────────────────────────────── フロントページの続き (72)発明者 濱中 直樹 東京都国分寺市東恋ケ窪一丁目280番地 株式会社日立製作所中央研究所内 Fターム(参考) 5B005 JJ13 KK13 MM01 NN31 QQ04 TT02

Claims (12)

    【特許請求の範囲】
  1. 【請求項1】プロセッサと主記憶の間に位置し、該主記
    憶中のデータ群単位で主記憶のデータを一時的に登録す
    るものであって、保持された各データ群についての制御
    情報をそのデータ群と対応付けて登録するキャッシュメ
    モリと、管理すべきデータ群の属性の定義を設定する定
    義設定手段と、該プロセッサが該主記憶からデータ群を
    フェッチする際に発行した命令の情報から、該設定され
    た定義に従って、フェッチされるべきデータ群の属性を
    判定するグループ判定手段と、データ群の属性に従っ
    て、該キャッシュメモリへの登録の仕方を定めた登録ポ
    リシーを設定する登録ポリシー指定手段と、該プロセッ
    サからのリードの対象とするデータ群が該キャッシュメ
    モリに登録されているかどうか判定し、ミスヒットの場
    合には、そのデータ群を該主記憶から読み出す手段と、
    該データ群の属性と該キャッシュメモリの制御情報内の
    属性情報と該登録ポリシーとに従がって、該キャッシュ
    メモリへのリプレースを決定するリプレース決定手段
    と、リプレース決定手段により登録されるべきと決定さ
    れたデータ群を該キャッシュメモリに登録するととも
    に、その属性を対応する制御情報として登録する登録手
    段と、を備えたことを特徴とするキャッシュ装置。
  2. 【請求項2】請求項1記載のキャッシュ装置において、
    前記データ群はラインであり、前記キャッシュメモリの
    ラインに対応する該制御情報は、格納するラインの状態
    と該ラインが属する属性および該ラインのアクセスされ
    た順番情報(以後LRUと呼ぶ)を含むことを特徴とするキ
    ャッシュ装置。
  3. 【請求項3】請求項1記載のキャッシュ装置において、
    前記定義設定手段により設定される定義は、該プロセッ
    サが命令にアクセスするためのコマンドである命令アク
    セスコマンドを発行してアクセスしたデータ群の属性を
    命令グループとし、データにアクセスするためのコマン
    ドであるデータアクセスコマンドを発行してアクセスし
    たデータ群の属性をデータグループとする定義であっ
    て、前記グループ判定手段は、該定義に基づき、前記プ
    ロセッサが命令アクセスコマンドを発行してアクセスし
    たデータ群を判定することを特徴とするキャッシュ装
    置。
  4. 【請求項4】請求項1記載のキャッシュ装置において、
    前記定義設定手段により設定される定義は、該主記憶の
    アドレス空間をm(≧1)個の重ならないアドレス部分空間
    に分割したに、データ群が属するアドレス部分空間を属
    性として定義するものであり、該グループ判定手段は、
    該プロセッサが発行したコマンドの対象アドレスが属す
    るアドレス部分空間に応じて属性を判定することを特徴
    としたキャッシュ装置。
  5. 【請求項5】請求項1記載のキャッシュ装置において、
    m(≧1)個の属性を表すグループ識別子を設け、該プロセ
    ッサのコマンドに該グループ識別子を埋め込み、前記定
    義設定手段により設定される定義は、該コマンドによっ
    てアクセスされたデータ群の属性を該コマンドに埋め込
    まれたグループ識別子で識別される属性であると定義
    し、該グループ判定手段は、該プロセッサから発行され
    た該コマンドによってアクセスされたデータ群の属性
    を、該コマンドに埋め込まれた該グループ識別子によっ
    て識別することを特徴としたキャッシュ装置。
  6. 【請求項6】請求項1記載のキャッシュ装置において、
    m(≧1)個の属性を表すグループ識別子を設け、登録ポリ
    シーとして、グループ識別子G1,...,Gmの中の1つ以上
    を要素とした集合Pk={Gi,...,Gl}(以後グループ集合と
    呼ぶ)を該キャッシュメモリのメモリバンク数nと同数与
    える(P1,...,Pn)ことを特徴としたキャッシュ装置。
  7. 【請求項7】請求項6記載のキャッシュ装置において、
    前記登録ポリシー指定手段により与えられる登録ポリシ
    ーとして、該キャッシュメモリのメモリバンク数nと同
    数の属性に対し、それぞれの属性についてキャッシュメ
    モリバンクを対応付けるものであることを特徴とするキ
    ャッシュ装置。
  8. 【請求項8】請求項2記載のキャッシュ装置において、
    該リプレース決定手段は、該プロセッサが発行したコマ
    ンドの対象とするアドレスの一部分から該コマンドによ
    ってアクセスされるラインを格納する該キャッシュメモ
    リのセット(以後登録セットと呼ぶ)を決定し、該セット
    内に登録されている各データ群(以後登録セット内ライ
    ンと呼ぶ)の状態、LRU、および属性と、登録する該デー
    タ群(以後登録ラインLrと呼ぶ)の属性(以後登録グルー
    プGrと呼ぶ)と、該登録ポリシーとに従がって、該登録
    セットにすでに格納されているラインの中からリプレー
    ス対象を決定することを特徴とするキャッシュ装置。
  9. 【請求項9】請求項8記載のキャッシュ装置において、
    該リプレース決定手段は、該登録セット内ラインL
    1,...,Lnのうち、該ラインの状態が無効(以後Invalidと
    呼ぶ)であるラインLi,...,Ljが存在すれば(以後この条
    件を条件1と呼ぶ)、該ラインLi,...,Ljの中から任意の
    ラインをリプレース対象ラインに決定し(以後この動作
    を動作1と呼ぶ)、該登録セット内ラインL1,...,Lnのう
    ち、該ラインの属するグループが該登録グループGrと同
    じであるラインの数L(Gr)が、該登録グループGrを要素
    として持つ該登録ポリシーのグループ集合の数P(Gr)以
    上(L(Gr)≧P(Gr))であれば(以後この条件を条件2と呼
    ぶ)、該登録グループGrに属する該登録セット内ラインL
    k,...,Llの中からLRU情報によってリプレース対象ライ
    ンを決定し(以後この動作を動作2と呼ぶ)、該登録グル
    ープGr以外のグループ(G1,...,Gr-1,Gr+1,...,Gm)にお
    いて、同じグループに属する該ラインの個数が、該グル
    ープ集合の中に含まれる該グループの数(P(G1),...,P(G
    r-1),P(Gr+1),...,P(Gm))より多いグループGp,...,Gq(L
    (Gp)>P(Gp),...,L(Gq)>P(Gq))が存在すれば(以後この条
    件を条件3と呼ぶ)、該グループGp,...,Gqのいずれかに
    属するラインLs,...,Ltの中から、LRU情報によってリプ
    レース対象ラインを決定し(以後この動作を動作3と呼
    ぶ)、該条件1、該条件2、該条件3のいずれも成立し
    なければ(以後この条件を条件4と呼ぶ)、該登録セット
    内ラインであって、該ラインの属するグループGuが、該
    登録グループGrと共に、該グループ集合のいずれかの要
    素になっているラインLv,...,Lwの中から、LRU情報によ
    ってリプレース対象ラインを決定する(以後この動作を
    動作4とする)ことを特徴とするキャッシュ装置。
  10. 【請求項10】請求項9記載のキャッシュ装置におい
    て、該リプレースライン決定手段は、該動作1の実行
    を、該条件1に代えて、該登録セット内ラインL1,...,Ln
    のうち、該ラインの状態がInvalidであるラインLi,...,
    Ljが存在し、かつ、登録セット内ラインL1,...,Lnのう
    ち該ラインの属するグループが該登録グループGrと同じ
    であるものの個数L(Gr)が、該登録グループGrを要素と
    して持つ該グループ集合の数P(Gr)より少ない(L(Gr)<P
    (Gr))という条件が成り立つときに行うことを特徴とす
    るキャッシュ装置。
  11. 【請求項11】請求項14記載のキャッシュ装置におい
    て、前記登録ポリシー指定手段により与えられる登録ポ
    リシーとして、該キャッシュメモリのメモリバンク数n
    と同数の属性に対し、それぞれの属性についてキャッシ
    ュメモリバンクを対応付けるものであり、該リプレース
    ライン決定手段は、該動作1の実行を、該条件1に代え
    て、該登録セット内ラインL1,...,Lnのうち、該ライン
    の状態がInvalidであるラインLi,...,Ljが存在し、か
    つ、該ラインLi,...,Ljが格納されているメモリバンクM
    (Li),...,M(Lj)には該登録グループGrを要素としたグル
    ープ集合が対応づけされているという条件が成り立つと
    きに行い、該条件2が成り立つ場合に、該動作2に代え
    て、該登録グループGrを要素とした該グループ集合P
    k,...,Plに対応付けられたメモリバンクに格納されてい
    るラインLo,...,Lpの中から該ラインのLRU情報によって
    リプレース対象ラインを決定するという動作を実行し、
    該条件3が成り立つ場合に、該動作3に代えて、該グル
    ープGp,...,Gqのいずれかに属するラインLs,...,Ltのう
    ち、該ラインLs,...,Ltが格納されているメモリバンクM
    (Ls),...,M(Lt)に該登録グループGrを要素とするグルー
    プ集合が対応づけされているラインの中から、LRU情報
    によってリプレース対象ラインを決定するという動作を
    実行することを特徴とするキャッシュ装置。
  12. 【請求項12】複数のパーティションにグループ分けさ
    れた複数プロセッサについて、それぞれのプロセッサが
    どのパーティションに分けられた指定するパーティショ
    ン定義手段と、該パティションの定義に従ってそれぞれ
    のパーティションに対して管理すべきデータ群の属性の
    定義を設定する定義設定手段と、該パティションの定義
    に従ってそれぞれのパーティションに対して、そのパー
    ティションについてキャッシュメモリに登録すべきデー
    タ群の属性を定めた登録ポリシーを設定する登録ポリシ
    ー設定手段と、該複数のプロセッサと主記憶の間に接続
    された複数の制御装置であって、それぞれの制御装置
    は、 1)該主記憶中のデータ群単位で主記憶のデータを一時
    的に登録するものであって、保持された各データ群につ
    いての制御情報をそのデータ群と対応付けて登録する複
    数のキャッシュメモリと、 2)接続されたプロセッサが該主記憶からデータ群をフ
    ェッチする際に発行した命令の情報から、該設定された
    定義に従って、フェッチされるべきデータ群の属性を判
    定するグループ判定手段と、 3)該プロセッサからのリードの対象とするデータ群が
    該キャッシュメモリに登録されているかどうか判定し、
    ミスヒットの場合には、そのデータ群を該主記憶から読
    み出す手段と、 4)該データ群の属性と該キャッシュメモリの制御情報
    内の属性情報と該登録ポリシーとに従がって、該キャッ
    シュメモリへのリプレースを決定するリプレース決定手
    段と、 5)リプレース決定手段により登録されるべきと決定さ
    れたデータ群を該キャッシュメモリに登録するととも
    に、その属性を対応する制御情報として登録する登録手
    段と、を含む ことを特徴とするキャッシュ装置。
JP2000340379A 2000-11-02 2000-11-02 キャッシュ装置 Pending JP2002140234A (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2000340379A JP2002140234A (ja) 2000-11-02 2000-11-02 キャッシュ装置
US09/810,549 US6640286B2 (en) 2000-11-02 2001-03-19 Cache control system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2000340379A JP2002140234A (ja) 2000-11-02 2000-11-02 キャッシュ装置

Publications (1)

Publication Number Publication Date
JP2002140234A true JP2002140234A (ja) 2002-05-17

Family

ID=18815306

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2000340379A Pending JP2002140234A (ja) 2000-11-02 2000-11-02 キャッシュ装置

Country Status (2)

Country Link
US (1) US6640286B2 (ja)
JP (1) JP2002140234A (ja)

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100511164B1 (ko) * 2002-12-10 2005-08-31 정보통신연구진흥원 웹 검색엔진에서의 실시간 사용자 질의 분석에 기반한and 연산용 색인데이터의 캐슁 방법
JP2007529833A (ja) * 2004-07-15 2007-10-25 株式会社ソニー・コンピュータエンタテインメント アウト・オブ・オーダーのdmaコマンドキューにおけるコマンド順序の設定に関する技術
US7493448B2 (en) 2002-06-24 2009-02-17 Nec Corporation Prevention of conflicting cache hits without an attendant increase in hardware
JP2009098933A (ja) * 2007-10-17 2009-05-07 Nec Corp 登録先ウェイの固定方法、プロセッサ、及び情報処理装置
US7613910B2 (en) 2004-09-30 2009-11-03 Fujitsu Limited Information processing apparatus, method, and computer-readable recording medium for replacing an entry in a memory device
JP2010123130A (ja) * 2008-11-21 2010-06-03 Nvidia Corp 複数クラスデータキャッシュポリシー
JP2011129101A (ja) * 2009-12-16 2011-06-30 Intel Corp キャッシュメモリにおけるキャッシュラインの置き換え
WO2018168264A1 (ja) * 2017-03-13 2018-09-20 富士通株式会社 情報処理装置、情報処理装置の制御方法および情報処理装置の制御プログラム

Families Citing this family (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030041213A1 (en) * 2001-08-24 2003-02-27 Yakov Tokar Method and apparatus for using a cache memory
US7076609B2 (en) * 2002-09-20 2006-07-11 Intel Corporation Cache sharing for a chip multiprocessor or multiprocessing system
US6961821B2 (en) * 2002-10-16 2005-11-01 International Business Machines Corporation Reconfigurable cache controller for nonuniform memory access computer systems
US7103748B2 (en) * 2002-12-12 2006-09-05 International Business Machines Corporation Memory management for real-time applications
US6973540B2 (en) * 2003-07-25 2005-12-06 Freescale Semiconductor, Inc. Method and apparatus for selecting cache ways available for replacement
US7076611B2 (en) * 2003-08-01 2006-07-11 Microsoft Corporation System and method for managing objects stored in a cache
US7711901B2 (en) * 2004-02-13 2010-05-04 Intel Corporation Method, system, and apparatus for an hierarchical cache line replacement
US7788657B2 (en) * 2004-02-27 2010-08-31 Tvworks, Llc Targeted runtime compilation
US9268607B2 (en) * 2004-03-13 2016-02-23 Adaptive Computing Enterprises, Inc. System and method of providing a self-optimizing reservation in space of compute resources
KR101149887B1 (ko) * 2004-04-01 2012-06-11 삼성전자주식회사 멀티 채널 메모리 카드 및 그것의 제어 방법
US7386684B2 (en) * 2005-03-29 2008-06-10 International Business Machines Corporation Method and apparatus for detecting a cache wrap condition
US7437510B2 (en) * 2005-09-30 2008-10-14 Intel Corporation Instruction-assisted cache management for efficient use of cache and memory
WO2007099643A1 (ja) * 2006-03-03 2007-09-07 Fujitsu Limited マルチプロセッサシステム及びマルチプロセッサシステムの動作方法
US7512739B2 (en) * 2006-07-05 2009-03-31 International Business Machines Corporation Updating a node-based cache LRU tree
KR101128234B1 (ko) * 2006-08-23 2012-03-23 엘지전자 주식회사 메모리 접근 제어 장치 및 방법
GB2445965B (en) * 2007-01-26 2011-05-04 Advanced Risc Mach Ltd Entry replacement within a data store
US8499124B2 (en) * 2008-12-16 2013-07-30 International Business Machines Corporation Handling castout cache lines in a victim cache
US8949540B2 (en) * 2009-03-11 2015-02-03 International Business Machines Corporation Lateral castout (LCO) of victim cache line in data-invalid state
US9131004B2 (en) * 2009-04-26 2015-09-08 Jeffrey Alan Carley Method and apparatus for network address resolution
US9189403B2 (en) 2009-12-30 2015-11-17 International Business Machines Corporation Selective cache-to-cache lateral castouts
CN105302741B (zh) * 2014-07-04 2019-02-26 华为技术有限公司 一种高速缓存控制方法及装置
US9454488B2 (en) * 2014-08-08 2016-09-27 PernixData, Inc. Systems and methods to manage cache data storage
US9639481B2 (en) * 2014-08-08 2017-05-02 PernixData, Inc. Systems and methods to manage cache data storage in working memory of computing system
US10318346B1 (en) * 2016-09-23 2019-06-11 Amazon Technologies, Inc. Prioritized scheduling of data store access requests

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH06348595A (ja) 1993-06-07 1994-12-22 Hitachi Ltd キャッシュ装置
JPH0728706A (ja) 1993-07-14 1995-01-31 Sumitomo Electric Ind Ltd キャッシュメモリ装置
JPH09101916A (ja) 1995-10-06 1997-04-15 Fujitsu Ltd マルチプロセス処理装置
US6510493B1 (en) * 1999-07-15 2003-01-21 International Business Machines Corporation Method and apparatus for managing cache line replacement within a computer system
US6425058B1 (en) * 1999-09-07 2002-07-23 International Business Machines Corporation Cache management mechanism to enable information-type dependent cache policies
US6434669B1 (en) * 1999-09-07 2002-08-13 International Business Machines Corporation Method of cache management to dynamically update information-type dependent cache policies

Cited By (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7493448B2 (en) 2002-06-24 2009-02-17 Nec Corporation Prevention of conflicting cache hits without an attendant increase in hardware
KR100511164B1 (ko) * 2002-12-10 2005-08-31 정보통신연구진흥원 웹 검색엔진에서의 실시간 사용자 질의 분석에 기반한and 연산용 색인데이터의 캐슁 방법
JP2007529833A (ja) * 2004-07-15 2007-10-25 株式会社ソニー・コンピュータエンタテインメント アウト・オブ・オーダーのdmaコマンドキューにおけるコマンド順序の設定に関する技術
US7613910B2 (en) 2004-09-30 2009-11-03 Fujitsu Limited Information processing apparatus, method, and computer-readable recording medium for replacing an entry in a memory device
JP2009098933A (ja) * 2007-10-17 2009-05-07 Nec Corp 登録先ウェイの固定方法、プロセッサ、及び情報処理装置
US8423719B2 (en) 2007-10-17 2013-04-16 Nec Corporation Apparatus, processor and method of controlling cache memory
JP2010123130A (ja) * 2008-11-21 2010-06-03 Nvidia Corp 複数クラスデータキャッシュポリシー
JP2011129101A (ja) * 2009-12-16 2011-06-30 Intel Corp キャッシュメモリにおけるキャッシュラインの置き換え
US8990506B2 (en) 2009-12-16 2015-03-24 Intel Corporation Replacing cache lines in a cache memory based at least in part on cache coherency state information
WO2018168264A1 (ja) * 2017-03-13 2018-09-20 富士通株式会社 情報処理装置、情報処理装置の制御方法および情報処理装置の制御プログラム

Also Published As

Publication number Publication date
US6640286B2 (en) 2003-10-28
US20020053006A1 (en) 2002-05-02

Similar Documents

Publication Publication Date Title
JP2002140234A (ja) キャッシュ装置
US7913041B2 (en) Cache reconfiguration based on analyzing one or more characteristics of run-time performance data or software hint
US7991956B2 (en) Providing application-level information for use in cache management
US7461209B2 (en) Transient cache storage with discard function for disposable data
US7899994B2 (en) Providing quality of service (QoS) for cache architectures using priority information
US7216201B2 (en) Parallel cachelets
TW554267B (en) Cache way prediction based on instruction base register
US20010049770A1 (en) Buffer memory management in a system having multiple execution entities
US8019946B2 (en) Method and system for securing instruction caches using cache line locking
US11604733B1 (en) Limiting allocation of ways in a cache based on cache maximum associativity value
US5860101A (en) Scalable symmetric multiprocessor data-processing system with data allocation among private caches and segments of system memory
CN114036084B (zh) 一种数据访问方法、共享缓存、芯片系统和电子设备
US11256625B2 (en) Partition identifiers for page table walk memory transactions
EP3800556A1 (en) Selective override of cache coherence in multi-processor computer systems
JP7397057B2 (ja) メモリ・システム内に記憶されている制御テーブルのための二分探索手順
US8266379B2 (en) Multithreaded processor with multiple caches
JP3973129B2 (ja) キャッシュメモリ装置及びそれを用いた中央演算処理装置
US6598050B1 (en) Apparatus and method for limited data sharing in a multi-tasking system
JPH07248967A (ja) メモリ制御方式
JPWO2006109421A1 (ja) キャッシュメモリ
KR100486240B1 (ko) 분리된 캐쉬 메모리를 구비한 마이크로프로세서 및 메모리 액세스 방법
CN113986778B (zh) 一种数据处理方法、共享缓存、芯片系统及电子设备
JP2002049529A (ja) キャッシュメモリ制御装置及びそれを利用したゲーム装置
Takahashi et al. Decoupled modified‐bit cache
JP2015228060A (ja) 演算処理装置及び演算処理装置の制御方法