JP2002116956A - キャッシュ制御方法及びキャッシュ制御システム - Google Patents

キャッシュ制御方法及びキャッシュ制御システム

Info

Publication number
JP2002116956A
JP2002116956A JP2000307121A JP2000307121A JP2002116956A JP 2002116956 A JP2002116956 A JP 2002116956A JP 2000307121 A JP2000307121 A JP 2000307121A JP 2000307121 A JP2000307121 A JP 2000307121A JP 2002116956 A JP2002116956 A JP 2002116956A
Authority
JP
Japan
Prior art keywords
cache
instruction
data
caches
main memory
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
JP2000307121A
Other languages
English (en)
Inventor
Tomoaki Nagano
知明 長野
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.)
NEC Corp
Original Assignee
NEC Corp
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 NEC Corp filed Critical NEC Corp
Priority to JP2000307121A priority Critical patent/JP2002116956A/ja
Publication of JP2002116956A publication Critical patent/JP2002116956A/ja
Pending legal-status Critical Current

Links

Landscapes

  • Executing Machine-Instructions (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

(57)【要約】 【課題】 複数のキャッシュの中から実際に使用する任
意個数のキャッシュを、主記憶アクセス命令によって直
接選択し得るようにする。 【解決手段】 プロセッサコア1で実行されるロード命
令等の主記憶アクセス命令には、キャッシュ71〜74に1
対1に対応するキャッシュ選択フラグF1〜F4が付加され
ており、その主記憶アクセス命令の実行時、各キャッシ
ュ71〜74にキャッシュ選択フラグF1〜F4が送出される。
ロード命令の場合、各キャッシュ71〜74は、プロセッサ
コア1から送出された主記憶アドレスに基づきヒット、
ミスの判定を行い、判定結果を出力する。アンド回路70
6 〜709 はその判定結果とキャッシュ選択フラグF1〜F4
との論理積をとり、真のヒット判定結果を得る。ヒット
した場合、ヒットしたキャッシュからのキャッシュデー
タをセレクタ705 で選択し、プロセッサコア1へ返送す
る。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は主記憶データの写し
を保持するキャッシュメモリに関し、より具体的には、
複数のキャッシュを備え、使用するキャッシュをロード
命令などの主記憶アクセス命令によって任意に選択する
ことができるキャッシュ制御方法及びキャッシュ制御シ
ステムに関する。
【0002】
【従来の技術】一般に現在の計算機システムは、プロセ
ッサと主記憶との間に高速、小容量のキャッシュメモリ
を配置し、主記憶に置かれたデータ(命令も含む)への
アクセスの高速化を図っている。また複数のキャッシュ
を搭載し、目的に応じてキャッシュを使い分けること
で、更なる高速化を図った技術が以下に述べるように幾
つか提案されている。
【0003】特開平2−18644号公報には、アプリ
ケーション用のキャッシュと割り込み処理用のキャッシ
ュとを設け、割り込み検出時には割り込み処理用のキャ
ッシュを選択してオペレーティングシステムプログラム
による割り込み処理を実行し、その割り込み処理終了時
に、割り込み直前に使用していたアプリケーション用の
キャッシュを選択する技術が記載されている。同公報に
記載された技術を以下、第1の従来技術と呼ぶ。
【0004】特開昭61−267149号公報には、複
数のキャッシュのうち、プログラムを実行するときのプ
ロセッサの実行レベル情報に応じたキャッシュを選択す
ることにより、最高位の実行レベルを持つオペレーティ
ングシステムプログラムに1つのキャッシュを割り当
て、他の複数存在するアプリケーションプログラムには
その他のキャッシュを割り当てるようにした技術が記載
されている。同公報に記載された技術を以下、第2の従
来技術と呼ぶ。
【0005】特開平10−207770号公報には、命
令キャッシュとデータキャッシュとを有するキャッシュ
メモリにおいて、特権モード用命令キャッシュとユーザ
モード用命令キャッシュとの2種類の命令キャッシュを
設け、プロセッサの実行モードが特権モードか、ユーザ
モードかに応じて上記いずれかの命令キャッシュを選択
し、また、グローバル変数用データキャッシュとローカ
ル変数用データキャッシュとの2種類のデータキャッシ
ュを設け、アドレスによりデータがグローバル変数かロ
ーカル変数かを判別し、上記いずれかのデータキャッシ
ュを選択する技術が記載されている。また、同公報に
は、命令キャッシュ及びデータキャッシュをそれぞれ複
数の単位ユニットで構成し、キャッシュ構造レジスタと
いう特別なレジスタの設定値に応じて、各用途に使うキ
ャッシュのユニット数を動的に変更する考えが提案され
ている。以下、同公報に記載された技術を第3の従来技
術と呼ぶ。
【0006】特開平5−143451号公報には、複数
のキャッシュメモリの一方を主記憶データの先取り用キ
ャッシュとして、他方を一般的なキャッシュとして使い
分ける技術が示されている。また、キャッシュを選択す
る手法として、ロード命令などの主記憶アクセス命令に
付加したキャッシュ番号によって、複数存在するキャッ
シュの中の何れか1つのキャッシュを選択する手法が提
案されている。以下、同公報に記載された技術を第4の
従来技術と呼ぶ。
【0007】
【発明が解決しようとする課題】一般に複数のプロセス
を並行して実行する計算機システムでは、実行されるプ
ロセスの特性によってキャッシュの有効性には様々な違
いが発生する。第1乃至第3の従来技術は主に、オペレ
ーティングシステムにかかるプロセスとユーザアプリケ
ーションプロセスにかかるプロセスとの特性の差異に着
目し、双方のプロセスでキャッシュを使い分けること
で、キャッシュの有効性を高めている。
【0008】しかしながら、ユーザアプリケーションプ
ロセスであっても、その特性は様々である。例えば、大
規模な容量のメモリをランダムにアクセスするようなプ
ロセスでは、キャッシュミスが頻発し、キャッシュの中
身が書き換わるのみで効率はほとんど上がらないが、デ
ータのローカライズが適正に行われたプロセスではキャ
ッシュの有効性は大きい。従って、キャッシュが有効な
プロセスと有効ではないプロセスが同時に実行される場
合、それらのプロセスに同じキャッシュを割り当てる
と、キャッシュを有効活用できないプロセスのメモリア
クセスが、キャッシュを有効活用できるプロセスの使用
しているキャッシュ領域を更新し続け、結果としてキャ
ッシュを有効活用できるはずのプロセスのキャッシュア
クセス効率まで低下させてしまう。また、共にキャッシ
ュを有効にアクセスできるプロセス同士の動作でも、例
えばセットアソシアティブ型のキャッシュでは、同一の
インデックスを持ち、違うタグアドレスを持つアクセス
がプロセス毎に発生することにより、お互いのプロセス
のキャッシュ領域を侵害し、キャッシュの使用効率が下
がる可能性も大きい。
【0009】このようなことから、キャッシュの選択
は、オペレーティングプログラムプロセスとユーザアプ
リケーションプロセス間、異なる実行レベルのプロセス
間といった大雑把な単位ではく、個々のプロセス単位で
行えることが望ましい。しかし、第1乃至第3の従来技
術では、割り込みやプロセッサの実行レベルに基づいて
キャッシュを切り替えるため、プロセス単位でキャッシ
ュを選択することは不可能である。
【0010】これに対して、ロード命令などの主記憶ア
クセス命令に付加したキャッシュ番号によってキャッシ
ュ選択を行う第4の従来技術を使えば、プロセス毎に、
そのプロセスで使用する主記憶アクセス命令中のキャッ
シュ番号を制御できるので、プロセス単位でのキャッシ
ュ選択が可能になる。
【0011】しかしながら、第4の従来技術のようにキ
ャッシュ番号によってキャッシュを選択する構成では、
選択できるキャッシュは、指定したキャッシュ番号に対
応する1つのキャッシュに限られる。例えばキャッシュ
番号a、b、c、dのキャッシュA、B、C、Dがある
場合、その何れか1つのキャッシュは選択できるが、キ
ャッシュAとキャッシュBのように異なるキャッシュ番
号の複数のキャッシュを選択することはできない。つま
り、使用するキャッシュの構成を自由に編成できないた
め、実行中のプロセスに適した容量のキャッシュを用い
るといった制御が困難である。キャッシュ構造レジスタ
の設定値に応じてキャッシュの構成を編成する第3の従
来技術と組み合わせることも考えられるが、キャッシュ
構造レジスタへの設定に主記憶アクセス命令とは別の1
命令が必要になるため、オーバヘッドが大きくなってし
まう。
【0012】更に、第1乃至第4の従来技術において
は、少なくとも1つのキャッシュは必ず選択されるよう
になっている為、或るプロセスについてはキャッシュの
使用を禁止するといった制御は行えない。
【0013】そこで本発明の目的は、複数のキャッシュ
を備えたキャッシュメモリにおいて、複数のキャッシュ
の中から実際に使用する任意個数のキャッシュを、主記
憶アクセス命令によって直接選択し得るようにすること
にある。
【0014】
【課題を解決するための手段】本発明のキャッシュ制御
方法は、キャッシュのセットに1対1に対応するキャッ
シュ選択フラグを有する主記憶アクセス命令によって、
主記憶データの写しを保持するキャッシュのセットを複
数有するキャッシュメモリの中から、当該主記憶アクセ
ス命令の実行に際して使用するキャッシュのセットを選
択する。
【0015】また、本発明のキャッシュ制御システム
は、キャッシュのセットに1対1に対応するキャッシュ
選択フラグを有する主記憶アクセス命令を実行するプロ
セッサコアと、該プロセッサコアと主記憶との間に設け
られたキャッシュメモリとを備え、該キャッシュメモリ
は、主記憶データの写しを保持するキャッシュのセット
を複数有し、且つ、前記プロセッサコアから主記憶アク
セス命令の実行時に出力されるキャッシュ選択フラグに
基づいて前記複数のキャッシュのセットの中から当該主
記憶アクセス命令の実行に際して使用するキャッシュの
セットを選択するキャッシュコントローラを有する。
【0016】上述のように構成された本発明のキャッシ
ュ制御方法及びキャッシュ制御システムにあっては、キ
ャッシュのセットに1対1に対応するキャッシュ選択フ
ラグの状態に応じてキャッシュのセットが選択されるの
で、キャッシュ選択フラグの設定の仕方によって、複数
のキャッシュのセットの中から1つのセットを選択する
以外に、2つ以上のセットを選択したり、全てのセット
を選択することも可能であり、またセットを1つも選択
しないといったことも可能な柔軟な制御が可能となる。
更に、任意数のセットの選択が主記憶アクセス命令毎に
行えるため、プロセス毎に、そのプロセスで使用する主
記憶アクセス命令中のキャッシュ選択フラグを調整する
ことで、プロセス単位でのキャッシュ選択が可能にな
り、且つ実行中のプロセスに適した容量のキャッシュを
用いるといったキャッシュ編成をオーバヘッド無しに実
施することが可能となる。
【0017】本発明は、命令用とデータ用とで同じキャ
ッシュを使うキャッシュメモリに対しても適用でき、双
方で別々のキャッシュを使うキャッシュメモリに対して
も適用できる。前者のキャッシュメモリでは、命令兼デ
ータ用のキャッシュのセットが複数存在し、主記憶アク
セス命令中のキャッシュ選択フラグに応じて、使用する
キャッシュのセットが選択される。
【0018】後者のキャッシュメモリでは、命令キャッ
シュとデータキャッシュの少なくとも一方が複数のキャ
ッシュのセットで構成される。そして、命令キャッシュ
及びデータキャッシュの中から、実際に使用するキャッ
シュのセットが主記憶アクセス命令中のキャッシュ選択
フラグに応じて選択される。
【0019】命令キャッシュとデータキャッシュの少な
くとも一方が複数のキャッシュのセットで構成されてい
る場合、先ず、主記憶アクセス命令が命令キャッシュへ
のアクセスか、データキャッシュへのアクセスかに応じ
て命令キャッシュか、データキャッシュを選択し、次に
選択した命令キャッシュ、データキャッシュの中から、
実際に使用するキャッシュのセットを主記憶アクセス命
令中のキャッシュ選択フラグに応じて選択する。この場
合、命令キャッシュ用とデータキャッシュ用とで別々の
キャッシュ選択フラグを設けるようにしても良いし、双
方で共通のキャッシュ選択フラグを使うようにしても良
い。
【0020】キャッシュ選択フラグを命令キャッシュ用
とデータキャッシュ用とで別々に設ける場合には、命令
キャッシュを構成するキャッシュのセット数をM、デー
タキャッシュを構成するキャッシュのセット数をNとす
ると、主記憶アクセス命令にM個の命令用のキャッシュ
選択フラグとN個のデータ用のキャッシュ選択フラグと
が設けられ、命令キャッシュのアクセスにかかる主記憶
アクセス命令の場合は命令用のキャッシュ選択フラグが
使用され、データキャッシュのアクセスにかかる主記憶
アクセス命令の場合はデータ用のキャッシュ選択フラグ
が使用される。
【0021】キャッシュ選択フラグを命令キャッシュ用
とデータキャッシュ用とで共通化する場合、命令キャッ
シュを構成するキャッシュのセット数をM、データキャ
ッシュを構成するキャッシュのセット数をN、MとNの
内の大きな方の値をMNとすると、主記憶アクセス命令
にMN個のキャッシュ選択フラグが設けられ、命令キャ
ッシュのアクセスにかかる主記憶アクセス命令の場合は
MN個のキャッシュ選択フラグの内のN個のキャッシュ
選択フラグが使用され、データキャッシュのアクセスに
かかる主記憶アクセス命令の場合はMN個のキャッシュ
選択フラグの内のM個のキャッシュ選択フラグが使用さ
れる。
【0022】また本発明のキャッシュ制御方法及びキャ
ッシュ制御システムにおいては、主記憶アクセス命令が
ロード命令のときは、キャッシュ選択フラグで選択した
キャッシュのセットの何れかでキャッシュヒットした場
合に限って当該ヒットしたデータをリプライデータと
し、主記憶アクセス命令がストア命令のときは、キャッ
シュ選択フラグで選択したキャッシュのセットの何れか
でキャッシュヒットした場合に限って当該ヒットしたデ
ータを更新する。更に、主記憶アクセス命令がロード命
令のときにキャッシュ選択フラグで選択した全てのキャ
ッシュのセットでキャッシュミスした場合、主記憶から
読み出した内容によって、前記キャッシュ選択フラグで
選択したキャッシュのセットの何れか1つのセットを更
新する。
【0023】
【発明の実施の形態】次に本発明の実施の形態の例につ
いて図面を参照して詳細に説明する。
【0024】図1は本発明を適用した計算機システムの
一例を示すブロック図である。この例の計算機システム
は、プロセッサコア1と主記憶(メインメモリ)2との
間にキャッシュメモリ3を備え、プロセッサコア1から
主記憶2へのアクセスはキャッシュメモリ3を介して行
う。なお、キャッシュメモリ3は、プロセッサコア1と
共に1チップにLSI化されていても良く、別LSIで
構成されていても良い。
【0025】キャッシュメモリ3は、プロセッサコア1
とはプロセッサバス4によって接続され、主記憶2とは
主記憶バス5によって接続されており、命令キャッシュ
6とデータキャッシュ7とを含んでいる。命令キャッシ
ュ6は、主記憶2の内容のうち命令の写しを保持するも
ので、4個のキャッシュ61〜64と、これらのキャッ
シュ61〜64を制御するキャッシュコントローラ65
とを含む。また、データキャッシュ7は、主記憶2の内
容のうちデータの写しを保持するもので、命令キャッシ
ュ6と同様に4個のキャッシュ71〜74と、これらの
キャッシュ71〜74を制御するキャッシュコントロー
ラ75とを含む。キャッシュコントローラ65、75
は、プロセッサバス4を介してプロセッサコア1に接続
され、主記憶バス5を介して主記憶2に接続される。
【0026】本実施形態では、キャッシュ61とキャッ
シュ71とがセット1のキャッシュ、キャッシュ62と
キャッシュ72とがセット2のキャッシュ、キャッシュ
63とキャッシュ73とがセット3のキャッシュ、キャ
ッシュ64とキャッシュ74とがセット4のキャッシュ
を構成している。つまり、本実施形態のキャッシュメモ
リ3は、命令用とデータ用とにそれぞれ4セットずつキ
ャッシュを備えている。
【0027】個々のキャッシュ61〜64、71〜74
は全て同じ構成であり、主記憶データの一部の写しをブ
ロック単位で格納するデータアレイと、データアレイに
格納されているデータブロックのアドレスを格納するア
ドレスアレイと、キャッシュヒット/ミスの判定を行う
比較器などから構成される。キャッシュの構成として
は、例えば1WAY、2WAY、4WAY等のnWAY
セットアソシアティブ型のキャッシュが使われる。勿
論、ダイレクトマッピング型のキャッシュ等、他の形式
のキャッシュを使用することもできる。
【0028】本実施形態では、命令キャッシュ6及びデ
ータキャッシュ7のそれぞれに存在する4セットのキャ
ッシュの中から任意のキャッシュを主記憶アクセス命令
によって選択して使用する。このために、主記憶アクセ
ス命令には、キャッシュのセットに1対1に対応するキ
ャッシュ選択フラグが付加されている。
【0029】本例の計算機システムで使われる主記憶ア
クセス命令のうち、一般的なロード命令とストア命令に
ついてのフォーマット例を図2に示す。本発明に関連す
る部分は、ロード命令およびストア命令の双方に付加さ
れた図中のFの部分である。この部分が、ロード命令お
よびストア命令において使用するキャッシュを選択する
キャッシュ選択フラグである。なお、周知のようにロー
ド命令及びストア命令は、オペコード(オペレーション
コード部)とアドレス部とを含む。ロード命令のオペコ
ードには、命令フェッチとデータフェッチとの2種類が
ある。アドレス部では、主記憶アドレスやレジスタの指
定情報など、命令の対象となるオペランドを示す。
【0030】図3にキャッシュ選択フラグFの内容例を
示す。本例では、キャッシュ選択フラグFは、F1、F
2、F3、F4の合計4つのフラグから構成される。フ
ラグF1はセット1のキャッシュ61、71に、フラグ
F2はセット2のキャッシュ62、72に、フラグF3
はセット3のキャッシュ63、73に、フラグF4はセ
ット4のキャッシュ64、74にそれぞれ1対1に対応
している。各フラグF1〜F4のそれぞれは、発行され
た主記憶アクセス命令において、対応するセットのキャ
ッシュを用いる場合には論理“1”に、対応するセット
のキャッシュを用いない場合には論理“0”にそれぞれ
セットされる。
【0031】論理“1”にしておくフラグの位置および
数は任意である。例えば、或るプロセスで使用するロー
ド命令及びストア命令では、フラグF1のみ論理“1”
とし、別のプロセスで使用するロード命令及びストア命
令では、フラグF2〜F4を論理“1”とすることがで
きる。このため、キャッシュ選択フラグFにより、使用
するキャッシュの構成を自由に編成することができ、実
行中のプロセスに適した容量のキャッシュを用いること
が可能である。また、或るプロセスで使用するロード命
令及びストア命令では、全てのフラグF1〜F4を論理
“0”にしておいて、キャッシュの使用を禁止すること
もできる。これにより、大容量のメモリをランダムにア
クセスするようなキャッシュが効果的に働かないプロセ
スを実行する際に、他のプロセスが使用しているキャッ
シュの内容を更新しないようにすることが可能となる。
【0032】次に、図1の実施形態の概略動作を説明す
る。先ず、ロード命令実行時の動作を説明する。
【0033】プロセッサコア1においてロード命令の実
行が開始されると、そのオペコードのデコード結果に応
じて、命令フェッチの場合には命令キャッシュ6が、デ
ータフェッチの場合にはデータキャッシュ7がそれぞれ
選択され、ロードリクエスト、主記憶アドレス及び当該
ロード命令中のフラグF1〜F4がプロセッサバス4を
通じて、選択されたキャッシュに送られる。以降の動作
は命令キャッシュ6とデータキャッシュ7とで同じなの
で、データキャッシュ7を例に説明する。
【0034】データキャッシュ7では、対応するフラグ
F1〜F4が論理“1”となっているセットのキャッシ
ュ71〜74でキャッシュヒットした場合に限って、ヒ
ットしたデータがキャッシュコントローラ75からプロ
セッサバス4を通じてプロセッサコア1に返却される。
この場合、キャッシュコントローラ75が、対応するフ
ラグF1〜F4が論理“1”となっているセットのキャ
ッシュ71〜74のみを動作させてヒット判定を行わ
せ、ヒットしたキャッシュが存在した場合にそのヒット
データをプロセッサコア1に返却するよう構成しても良
いし、後述する実施例のように全てのセットのキャッシ
ュ71〜74を動作させてヒット判定を行わせ、キャッ
シュコントローラ75が、対応するフラグF1〜F4が
論理“1”となっている何れか1つのセットのキャッシ
ュでヒットしたか否かを判定して、そのヒットデータを
プロセッサコア1に返却するよう構成しても良い。
【0035】他方、対応するフラグF1〜F4が論理
“1”となっている全てのキャッシュでミスするか、フ
ラグF1〜F4の全てが論理“0”の場合には、キャッ
シュコントローラ75から主記憶2に対して主記憶バス
5を通じてロードリクエストが送出される。その後、主
記憶2から主記憶バス5を通じて、キャッシュミスした
データを含む1ブロック分の主記憶データがデータキャ
ッシュ7に返されてくると、キャッシュコントローラ7
5はその主記憶データ中からキャッシュミスしたデータ
を抽出してプロセッサバス4を通じてプロセッサコア1
へ返却すると共に、フラグF1〜F4の少なくとも1つ
が論理“1”である場合には、主記憶2から返された1
ブロック分の主記憶データを、対応するフラグF1〜F
4が論理“1”となっている何れか1つのセットのキャ
ッシュ71〜74に書き込むことでキャッシュを更新す
る。
【0036】次にストア命令実行時の動作を説明する。
プロセッサコア1においてストア命令の実行が開始され
ると、ストア命令はデータキャッシュ7に対してのみ行
われるので、ストアリクエスト、主記憶アドレス、スト
アデータ及び当該ストア命令中のフラグF1〜F4がプ
ロセッサバス4を通じてデータキャッシュ7に送られ
る。データキャッシュ7では、対応するフラグF1〜F
4が論理“1”となっているセットのキャッシュ71〜
74でキャッシュヒットした場合に限って、ヒットした
データをプロセッサコア1から送られてきたストアデー
タで更新する。また、プロセッサコア1から送出された
ストアリクエスト、主記憶アドレス及びストアデータは
キャッシュコントローラ75から主記憶バス5を通じて
主記憶2に送られ、主記憶2上の該当するアドレスのデ
ータが当該ストアデータで上書きされる。つまり、本実
施形態はストアスルー方式を採用している。
【0037】次に本実施形態の実施例について説明す
る。
【0038】図4は図1の計算機システムの構成をより
具体化した実施例のブロック図である。プロセッサコア
1に内蔵の命令デコーダ101で主記憶アクセス命令が
デコードされると、その主記憶アクセス命令に含まれて
いたフラグF1〜F4が結線401〜404に、その主
記憶アクセス命令のリクエスト種別(ロードか、ストア
か)が結線405に、その主記憶アクセス命令でアクセ
スする対象となる主記憶アドレスが結線406に、その
主記憶アドレス命令がストア命令の場合にはストアデー
タが結線407に、命令キャッシュ6及びデータキャッ
シュ7の何れか一方を選択するセレクト信号が結線40
8にそれぞれ出力される。プロセッサコア1と命令キャ
ッシュ6及びデータキャッシュ7とは、このような結線
401〜408と、リプライデータを伝達する結線40
9とによって相互に接続されている。
【0039】また、命令キャッシュ6及びデータキャッ
シュ7と主記憶2とは、リクエストを伝達する結線50
1、511、ストアデータを伝達する結線502、51
2、主記憶アドレスを伝達する結線503、513、主
記憶データを伝達する結線504、514、結線50
4、514を通じて主記憶2からキャッシュ6、7に伝
達する主記憶データのアドレス等を含む主記憶データ制
御信号を伝達する結線505、515によって相互に接
続される。
【0040】命令キャッシュ6とデータキャッシュ7と
は、その内部構成が基本的に同じであるため、図4では
データキャッシュ7のみ内部の構成を示し、命令キャッ
シュ6の内部構成は図示を省略している。データキャッ
シュ7内の構成のうち、キャッシュ71〜74を除いた
部分がキャッシュコントローラ75を構成する。
【0041】キャッシュコントローラ75は、入力レジ
スタ701、更新制御部702、セレクタ703〜70
5、アンド回路706〜709、ノア回路710、リク
エスト発行部711を含んでいる。
【0042】入力レジスタ701は、結線408上のセ
レクト信号によって自キャッシュが選択された場合に、
結線401〜404上のフラグF1〜F4、結線405
上の主記憶リクエスト、結線406上の主記憶アドレ
ス、結線407上のストアデータを取り込み、各部に供
給する。即ち、フラグF1〜F4は、対応するキャッシ
ュ71〜74及びアンド回路706〜709へ供給する
と共に更新制御部702へ供給する。主記憶リクエスト
種別は、各キャッシュ71〜74とリクエスト発行部7
11へ供給する。主記憶アドレスは、セレクタ704を
通じて各キャッシュ71〜74へ供給すると共に更新制
御部702へ供給し、更に結線503を通じて主記憶2
へ供給する。ストアデータは、セレクタ703を通じて
各キャッシュ71〜74へ供給すると共に結線502を
通じて主記憶2へ供給する。
【0043】アンド回路706〜709は、各キャッシ
ュ71〜74から出力されるヒット/ミス判定信号(ヒ
ット時に論理“1”、ミス時に論理“0”)と対応する
フラグF1〜F4との論理積信号をノア回路710及び
セレクタ705へ出力する。セレクタ705は、各キャ
ッシュ71〜74からヒット時に出力されるキャッシュ
データのうち、アンド回路706〜709の出力が論理
“1”になっているキャッシュのキャッシュデータを選
択し、リプライデータとして結線409を通じてプロセ
ッサコア1へ返却する。ノア回路710は、全てのアン
ド回路706〜709の出力が論理“0”のときに、リ
クエスト発行部711へロードリクエストの発行を要求
する信号を送出する。リクエスト発行部711は、この
ロードリクエストの発行要求に応答して、結線501を
通じて主記憶2へロードリクエストを発行する。また、
リクエスト発行部711は、入力レジスタ701から伝
達されたリクエストがストアリクエストであれば、結線
501を通じて主記憶2へストアリクエストを発行す
る。
【0044】更新制御部702は、結線504及び50
5を通じて主記憶2から1ブロック分の主記憶データ及
び主記憶データ制御信号が送られてくると、入力レジス
タ701から供給されている主記憶アドレス(ミスアド
レス)のデータを1ブロック分の主記憶データから抽出
して結線409を通じてリプライデータとしてプロセッ
サコア1へ返却する。同時に、入力レジスタ701から
伝達されているフラグF1〜F4のうち、論理“1”の
フラグに対応する何れか1つのキャッシュ71〜74を
選択し、その選択したキャッシュに対して更新要求f1
〜f4を送出すると共に更新アドレスを送出することに
より、キャッシュの更新制御を行う。
【0045】以下、図4を参照して本実施例におけるキ
ャッシュ制御の動作を説明する。先ず、ロード命令実行
時の動作を説明する。
【0046】プロセッサコア1においてロード命令が発
行されると、そのオペコードのデコード結果に応じて、
命令フェッチの場合には結線408上のセレクト信号に
よって命令キャッシュ6が選択され、データフェッチの
場合には同セレクト信号によってデータキャッシュ7が
選択される。以降の動作は命令キャッシュ6とデータキ
ャッシュ7とで同じなので、データキャッシュ7を例に
説明する。
【0047】データキャッシュ7の入力レジスタ701
は、結線408のセレクト信号によって自キャッシュが
選択されると、結線401〜404上のフラグF1〜F
4を各キャッシュ71〜74、アンド回路706〜70
9及び更新制御部702へ、結線405上のリクエスト
種別を各キャッシュ71〜74及びリクエスト発行部7
11へ、それぞれ供給する。また、セレクタ704を入
力レジスタ701側に切り替えて、結線406上の主記
憶アドレスをセレクタ704を通じて各キャッシュ71
〜74へ供給すると共に、更新制御部702及び結線5
02に供給する。各キャッシュ71〜74は、供給され
た主記憶アドレスに基づいてヒット、ミスの判定を実施
し、ヒットした場合は論理“1”のヒット/ミス判定信
号をアンド回路706〜709へ出力すると同時にヒッ
トデータをセレクタ705へ出力する。他方、ミスした
場合は論理“0”のヒット/ミス判定信号をアンド回路
706〜709へ出力する。アンド回路706〜709
は、対応するキャッシュ71〜74のヒット/ミス判定
信号と対応するフラグF1〜F4との論理積をとり、そ
れを真のヒット/ミス判定信号として出力する。つま
り、通常はキャッシュ71〜74から出力されるヒット
/ミス判定信号によってヒット、ミスが確定するわけだ
が、本実施例のデータキャッシュ7の場合、キャッシュ
71〜74自体はヒットと判定し、データを出力してい
る場合でも、該当するフラグF1〜F4の値が論理
“0”であった場合はヒットとはならない。
【0048】アンド回路706〜709から出力される
真のヒット/ミス判定信号にヒットを示す論理“1”と
なるものがあった場合、該当するキャッシュからは有効
なデータが出力されていると判断し、セレクタ705
は、ヒットしたキャッシュからのキャッシュデータを選
択し、リプライデータとして結線409を通じてプロセ
ッサコア1へ返送する。
【0049】他方、アンド回路706〜709から出力
される真のヒット/ミス判定信号にヒットを示す論理
“1”となるものがなかった場合、ノア回路710の出
力が論理“1”となり、リクエスト発行部711は、結
線501を通じて主記憶2に対してメモリアクセスリク
エスト(ロードリクエスト)を発行する。このときの主
記憶アドレスは結線503に供給されているアドレスが
使用される。
【0050】主記憶2では、メモリアクセスリクエスト
に従って該当するデータを含む1ブロック分の主記憶デ
ータを読み出し、そのアドレスを含む主記憶データ制御
信号と共に結線504、505を通じて、リクエスト元
のデータキャッシュ7に送出する。更新制御部702
は、結線504を通じて主記憶2から送られてくる1ブ
ロック分の主記憶データ中から、入力レジスタ701よ
り供給されているミスヒットした主記憶アドレスに該当
するデータを抽出してリプライデータとして結線409
を通じてプロセッサコア1へ返送する。また、入力レジ
スタ701から供給されているフラグF1〜F4の中に
論理“1”となるフラグが1つ以上存在すれば、任意の
アルゴリズムに従って論理“1”のフラグの中から1つ
のフラグを選択し、この選択したフラグに対応する何れ
か1つのキャッシュ71〜74に対して、キャッシュの
更新要求f1〜f4を送出すると共に、主記憶2から送
られてきた1ブロック分の主記憶データをセレクタ70
3を通じてキャッシュ71〜74に伝達し、且つ、セレ
クタ703を更新制御部702側に切り替えて、1ブロ
ック分の主記憶データの書き込みアドレスをキャッシュ
71〜74に伝達する。キャッシュ71〜74のうち、
更新要求f1〜f4によってキャッシュの更新が要求さ
れた何れか1つのキャッシュは、先ずセレクタ704を
通じて入力されている主記憶アドレスに基づいてアドレ
スアレイを更新し、次いで、セレクタ703を通じて伝
達される1ブロック分の主記憶データを、セレクタ70
4を通じて伝達される書き込みアドレスに書き込むこと
で、データアレイを更新する。
【0051】次に、ストア命令実行時の動作を説明す
る。プロセッサコア1においてストア命令が発行される
と、結線408上のセレクト信号によってデータキャッ
シュ7が選択され、データキャッシュ7の入力レジスタ
701は、結線401〜404上のフラグF1〜F4を
各キャッシュ71〜74、アンド回路706〜709及
び更新制御部702へ、結線405上のリクエスト種別
を各キャッシュ71〜74及びリクエスト発行部711
へ、それぞれ供給する。また、セレクタ704を入力レ
ジスタ701側に切り替えて、結線406上の主記憶ア
ドレスをセレクタ704を通じて各キャッシュ71〜7
4へ供給すると共に、更新制御部702及び結線502
に供給する。更に、セレクタ703を入力レジスタ70
1側に切り替えて、結線407上のストアデータをセレ
クタ703を通じて各キャッシュ71〜74へ供給する
と共に、結線502を通じて主記憶2へ出力する。
【0052】各キャッシュ71〜74は、供給された主
記憶アドレスに基づいてヒット、ミスの判定を実施し、
ヒットした場合であって且つ自キャッシュに対応するフ
ラグF1〜F4が論理“1”の場合に限って、自キャッ
シュのデータを更新する。即ち、セレクタ703を通じ
て伝達されたストアデータで、セレクタ704を通じて
伝達された主記憶アドレスに該当するキャッシュライン
上のデータを更新する。また、リクエスト発行部711
は、キャッシュのヒット、ミスにかかわらず、入力レジ
スタ701から伝達されたリクエスト種別(ストア)に
基づき、結線501を通じて主記憶2に対してストアリ
クエストを発行する。このときの主記憶アドレスは結線
503上に、ストアデータは結線502上にそれぞれ出
力されている。
【0053】次に、各セットのキャッシュ71〜74及
び更新制御部702の構成例について説明する。
【0054】図5はキャッシュ71の構成例を示すブロ
ック図である。この例のキャッシュ71は1WAYセッ
トアソシアティブ構成のキャッシュであり、主記憶デー
タの一部の写しをブロック単位で格納するデータアレイ
(DA)711と、データアレイ711に格納されてい
るデータブロックのアドレスを格納するアドレスアレイ
(AA)712と、ヒット/ミスの判定を行うヒット判
定器713と、制御部714と、アンド回路715とを
主要部として含んでいる。主記憶アクセス命令で指示す
る主記憶アドレスは、その上位より順にタグアドレス、
インデックスアドレス、ブロックアドレスに論理的に分
けられ、アドレスアレイ712にはタグアドレスが登録
される。
【0055】次に図5のキャッシュ71の動作を説明す
る。先ずロード命令時の動作を説明する。ロード命令の
場合、ロード命令で指示された主記憶アドレス中のイン
デックスアドレスによりアドレスアレイ712の該当エ
ントリがアクセスされ、ヒット判定器713により、そ
のエントリに記憶されているタグアドレスとロード命令
で指示された主記憶アドレス中のタグアドレスとの比較
およびそのエントリ中の有効性指示ビットの検査が行わ
れる。双方のタグアドレスが一致し且つ有効性指示ビッ
トが有効を示しているときヒット、それ以外はミスとな
る。ヒットであればヒット信号が、ミスであればミス信
号がヒット判定器713から制御部714へ出力され
る。
【0056】制御部714は、リクエスト種別がロード
であり且つヒット判定器713からヒット信号が入力さ
れると、ヒットを示す論理“1”のヒット/ミス判定信
号をアンド回路706へ出力すると共に、データアレイ
711へ読み出しイネーブル信号を出力する。データア
レイ711は、ロード命令で指示された主記憶アドレス
中のインデックスアドレスで特定されるエントリ中の、
そのブロックアドレスで特定されるデータを読み出し、
セレクタ705へ出力する。他方、制御部714は、リ
クエスト種別がロードであり且つヒット判定器713か
らミス信号が入力されると、ミスを示す論理“0”のヒ
ット/ミス判定信号をアンド回路706へ出力する。
【0057】次に、キャッシュ更新時の動作を説明す
る。制御部714は、更新制御部702から更新要求が
入力されると、先ずアドレスアレイ712へ書き込みイ
ネーブル信号を出力する。これに応じてアドレスアレイ
712は、ロード命令で指示された主記憶アドレス(ミ
スアドレス)中のタグアドレスをそのインデックスアド
レスで特定されるエントリに書き込む。次に制御部71
4は、アンド回路715に書き込みイネーブル信号を出
力する。制御部714が当該キャッシュ71に更新要求
を出すときは当該キャッシュ71に対応するフラグF1
は必ず論理“1”になっているため、アンド回路715
からデータアレイ711へ書き込みイネーブル信号が出
力される。データアレイ711は、更新制御部702か
らセレクタ703を通じて送られてくる1ブロック分の
主記憶データを、同じく更新制御部702からセレクタ
704を通じて送られてくる当該主記憶データのアドレ
ス中のインデックスアドレスで特定されるエントリに書
き込んでいく。
【0058】次に、ストア命令実行時の動作を説明す
る。ストア命令の場合、ストア命令で指示された主記憶
アドレス中のインデックスアドレスによりアドレスアレ
イ712の該当エントリがアクセスされ、ヒット判定器
713により、そのエントリに記憶されているタグアド
レスとストア命令で指示された主記憶アドレス中のタグ
アドレスとの比較およびそのエントリ中の有効性指示ビ
ットの検査が行われる。双方のタグアドレスが一致し且
つ有効性指示ビットが有効を示しているときヒット、そ
れ以外はミスとなる。ヒットであればヒット信号が、ミ
スであればミス信号がヒット判定器713から制御部7
14へ出力される。
【0059】制御部714は、リクエスト種別がストア
であり且つヒット判定器713からヒット信号が入力さ
れると、アンド回路715へ書き込みイネーブル信号を
出力する。アンド回路715は、自キャッシュ71に対
応するフラグF1が論理“1”なら書き込みイネーブル
信号をデータアレイ711へ伝達するが、フラグF1が
論理“0”であれば伝達しない。データアレイ711
は、書き込みイネーブル信号を受けると、ストア命令の
主記憶アドレス中のインデックスアドレスで特定される
エントリにおけるブロックアドレスで特定されるデータ
を、ストアデータで書き換える。
【0060】図5ではキャッシュ71の構成例を示した
が、データキャッシュ7の他のキャッシュ72〜74及
び命令キャッシュ6のキャッシュ61〜64も同様に構
成される。また、図5では1WAYセットアソシアティ
ブ型のキャッシュを示したが、2WAY、4WAY等の
nWAYセットアソシアティブ型のキャッシュを使用す
ることもできる。
【0061】図6は更新制御部702の構成例を示すブ
ロック図であり、制御部7021と選択部7022とで
構成されている。制御部7021は、主記憶2から結線
504及び505を通じて1ブロック分の主記憶データ
及びそのアドレス等を含む主記憶データ制御信号が送ら
れてくると、入力レジスタ701から入力されている主
記憶アドレス(ミスアドレス)に基づいて1ブロック分
の主記憶データから該当するデータを抽出して結線40
9へ出力する。また、更新するキャッシュを選択するた
めに選択部7022を起動し、1ブロック分の主記憶デ
ータをセレクタ703を通じてキャッシュ71〜74へ
送出すると共に、主記憶データ制御信号中のアドレスを
書き込みアドレスとしてセレクタ704を通じてキャッ
シュ71〜74へ送出する。
【0062】選択部7022は、入力レジスタ701か
ら入力されているフラグF1〜F4のうち、論理“1”
となっているフラグが1以上存在すれば、論理“1”で
あるフラグの1つを選択し、その選択したフラグに対応
するキャッシュに対して更新要求f1〜f4を出力す
る。例えば、フラグF1のみ論理“1”の場合、更新要
求f1のみを出力する。また、フラグF1、F2の2つ
が論理“1”の場合、その何れか一方に対応する更新要
求f1のみ、または更新要求f2のみを出力する。全て
のフラグF1〜F4が論理“0”の場合、何れの更新要
求f1〜f4も出力しない。
【0063】図7に選択部7022の構成例を示す。4
ビットの循環型のシフトレジスタ70221には、1ビ
ットのみ論理“1”、残り3ビットは全て論理“0”の
4ビットのビットパターン(例えば0001)を保持
し、オア回路70222の出力が論理“1”になる毎に
1ビットだけビットパターンをシフトする。例えば00
01を1ビットだけシフトすると、0010となる。1
000の次は0001に戻る。シフトレジスタ7022
1の第1段目のビットの値は更新要求生成部70223
へ、同様に第2段目、第3段目、第4段目のビットの値
は更新要求生成部70224、70225、70226
へ、それぞれ出力されている。
【0064】更新要求生成部70223〜70226に
は、入力レジスタからのフラグF1〜F4が入力されて
おり、制御部7021によって起動されると、この4つ
の更新要求生成部70223〜70226のうち、シフ
トレジスタ70221からのビット出力が論理“1”に
なっている唯一の更新要求生成部のみが動作する。各更
新要求生成部70223〜70226は、フラグF1〜
F4の値に応じて、図8に示すような更新要求f1〜f
4の組み合わせパターンを発生する。
【0065】図8に示されるように、更新要求生成部7
0223は、フラグF1を最高の優先度、次にフラグF
2、次にフラグF3、最低の優先度をフラグF4とし、
より高い優先度のフラグが論理“1”のとき、そのフラ
グに対応する更新要求f1〜f4のみ論理“1”とする
組み合わせパターンを発生する。また、更新要求生成部
70224は、フラグF2を最高の優先度、次にフラグ
F3、次にフラグF4、最低の優先度をフラグF1と
し、更新要求生成部70225は、フラグF3を最高の
優先度、次にフラグF4、次にフラグF1、最低の優先
度をフラグF2とし、更新要求生成部70226は、フ
ラグF4を最高の優先度、次にフラグF3、次にフラグ
F2、最低の優先度をフラグF1とし、それぞれ更新要
求生成部70223と同様に、より高い優先度のフラグ
が論理“1”のとき、そのフラグに対応する更新要求f
1〜f4のみ論理“1”とする組み合わせパターンを発
生する。なお、フラグF1〜F4の全てが論理“0”の
場合、更新要求f1〜f4は全て論理“0”となる。
【0066】更新要求生成部70223〜70226か
ら出力される更新要求f1〜f4の組み合わせパターン
はオア回路70227〜70300を通じて各セットの
キャッシュ71〜74に送出される。また、更新要求f
1〜f4の何れか1つが論理“1”のとき、オア回路7
0222の出力が論理“1”となり、シフトレジスタ7
0221が1ビットだけシフトされる。
【0067】図7に示した選択部7022によれば、キ
ャッシュ更新が1回行われる毎に、次回のキャッシュ更
新時に起動する唯一の更新要求生成部70223〜70
226が順番に切り替わるため、キャッシュ更新対象と
なるキャッシュ71〜74を順に切り替えていくことが
できる。例えば、キャッシュ71とキャッシュ72とを
使うプロセスでは、フラグF1、F2のみが論理“1”
となるが、そのプロセスの実行中に連続してキャッシュ
ミスが発生すると、キャッシュ71とキャッシュ72と
が交互に更新される。
【0068】
【発明の他の実施の形態】図9は本発明の別の実施形態
のブロック図である。図1の実施形態と相違するところ
は、命令キャッシュ6とデータキャッシュ7とでキャッ
シュのセット数が相違する点である。つまり、本実施形
態の場合、命令キャッシュ6はキャッシュ61、62の
2セットのキャッシュを持ち、データキャッシュ7はキ
ャッシュ71〜74の4セットのキャッシュを持ってい
る。この場合、キャッシュ61とキャッシュ71とがセ
ット1のキャッシュ、キャッシュ62とキャッシュ72
とがセット2のキャッシュ、キャッシュ73がセット3
のキャッシュ、キャッシュ74がセット4のキャッシュ
を構成する。
【0069】本実施形態の場合、主記憶アクセス命令に
付加するキャッシュ選択フラグFは図3と同様に4つの
フラグF1〜F4で構成することができる。この場合、
命令キャッシュ6に関しては、フラグF1〜F4の内、
フラグF1とフラグF2の2つのフラグだけが使用され
る。このように一般的には、命令キャッシュ6を構成す
るキャッシュのセット数をM、データキャッシュ7を構
成するキャッシュのセット数をN、MとNの内の大きな
方の値をMNとするとき、主記憶アクセス命令にはMN
個のキャッシュ選択フラグがあれば十分である。そし
て、命令キャッシュ6をアクセスする場合には、MN個
のキャッシュ選択フラグの内の先頭からN個のキャッシ
ュ選択フラグを使用し、データキャッシュ7をアクセス
する場合には、MN個のキャッシュ選択フラグの内の先
頭からM個のキャッシュ選択フラグを使用すれば良い。
【0070】キャッシュ選択フラグFの他の構成例とし
て、命令キャッシュ用とデータキャッシュ用とに別々の
フラグを設けることも可能である。一般的に言えば、命
令キャッシュ6を構成するキャッシュのセット数をM、
データキャッシュ7を構成するキャッシュのセット数を
Nとするとき、主記憶アクセス命令にM個の命令用のキ
ャッシュ選択フラグとN個のデータ用のキャッシュ選択
フラグとを設ける。そして、命令キャッシュ6をアクセ
スする場合は命令用のキャッシュ選択フラグを使用し、
データキャッシュ7をアクセスする場合はデータ用のキ
ャッシュ選択フラグを使用する。例えば図9の実施形態
では、図10に示すように、命令キャッシュ6用として
2つのフラグF21、F22を設け、データキャッシュ
7用として4つのフラグF11〜F14を設ける。
【0071】以上の実施形態では、命令キャッシュ6及
びデータキャッシュ7の双方を複数のセットのキャッシ
ュで構成したが、何れか一方のみを複数のセットのキャ
ッシュで構成し、他方は1セットのキャッシュで構成し
たキャッシュメモリに対しても本発明は適用可能であ
る。命令キャッシュ6を1セットのキャッシュで構成し
た実施形態のブロック図を図11に示す。この場合、1
セット構成の命令キャッシュまたはデータキャッシュの
当該1つのキャッシュを主記憶アクセス命令中の1つの
キャッシュ選択フラグによって使用/不使用を制御して
も良いし、キャッシュ選択フラグによる制御は行わず、
常に使用するように制御しても良い。つまり、主記憶ア
クセス命令によって選択するキャッシュを複数セット構
成の命令キャッシュまたはデータキャッシュに限定して
も良い。
【0072】更に、以上の実施例では、命令用とデータ
用とに別々のキャッシュを持つキャッシュメモリに本発
明を適用したが、命令用とデータ用とに同じ複数のキャ
ッシュを使うキャッシュメモリに対しても本発明は適用
可能である。図12に命令用とデータ用とで兼用する4
つのセットのキャッシュ61’〜64’とそれを制御す
るキャッシュコントローラ65’を含む実施の形態のブ
ロック図を示す。
【0073】なお、複数のプロセスが異なるセットのキ
ャッシュを使う場合、キャッシュコヒーレントの問題が
生じる。例えば図13に示すように、プロセスP1がキ
ャッシュAを使用し、プロセスP2がキャッシュBを使
用しており、プロセスP1、P2は主記憶のデータDを
共用しているとする。この場合、例えばプロセスP1が
キャッシュA上でデータDをD’に更新すると、主記憶
上のデータDはD’に更新されるが、キャッシュB上の
データDは更新されない。このため、プロセスP2がキ
ャッシュB上でデータDを参照すると、古いデータを参
照することになる。このようなキャッシュコヒーレント
の問題を解消する手法には、ソフトウェア的に解消する
方法とハードウェア的に解消する方法とがあり、本発明
はその何れを使用しても良い。ソフトウェア的な解消方
法としては、各プロセスが異なるキャッシュセットを使
う他プロセスと共用するデータを参照するときに、自プ
ロセスで使うキャッシュの内容をクリアしてから参照す
る方法などがある。また、ハードウェア的な解消方法と
しては、各セットのキャッシュに、キャッシュ更新時に
更新アドレスを他の全てのキャッシュに報告する手段
と、他キャッシュから前記報告を受けたときに若し自キ
ャッシュにその更新アドレスがキャッシュされていれ
ば、それを無効化する手段とを設ける方法などがある。
【0074】
【発明の効果】以上説明したように本発明によれば、複
数のキャッシュを備えたキャッシュメモリにおいて、複
数のキャッシュの中から実際に使用する任意個数のキャ
ッシュを、主記憶アクセス命令によって直接選択するこ
とができる。その理由は、キャッシュのセットに1対1
に対応するキャッシュ選択フラグの状態に応じてキャッ
シュのセットを選択するため、複数のキャッシュのセッ
トの中から1つのセットを選択する以外に、2つ以上の
セットを選択したり、全てのセットを選択することもで
き、またセットを1つも選択しないこともできるからで
ある。
【0075】また本発明によれば、任意数のキャッシュ
セットの選択が主記憶アクセス命令毎に行えるため、プ
ロセス毎に、そのプロセスで使用する主記憶アクセス命
令中のキャッシュ選択フラグを調整することで、プロセ
ス単位でのキャッシュ選択が可能になり、更に実行中の
プロセスに適した容量のキャッシュを用いるといったキ
ャッシュ編成をオーバヘッド無しに実施することが可能
となる。
【0076】以上のような効果を奏するため、複数のプ
ロセスを並行して実行する計算機システムに本発明を適
用することにより、計算機システムの性能向上が可能と
なる。特に並列プロセス数が比較的少なく高速な処理が
要求されるスーパーコンピュータ等の大規模科学技術計
算を行う計算機に適用すれば、より効果的である。
【図面の簡単な説明】
【図1】本発明を適用した計算機システムの一例を示す
ブロック図である。
【図2】本発明で使用する主記憶アクセス命令のうち、
一般的なロード命令とストア命令についてのフォーマッ
ト例を示す図である。
【図3】キャッシュ選択フラグの内容例を示す図であ
る。
【図4】本発明の一実施形態における一実施例のブロッ
ク図である。
【図5】各セットのキャッシュの構成例を示すブロック
図である。
【図6】キャッシュ内の更新制御部の構成例を示すブロ
ック図である。
【図7】更新制御部内の選択部の構成例を示すブロック
図である。
【図8】選択部内の更新要求生成部の入力と出力との関
係を示す図である。
【図9】本発明の別の実施形態のブロック図である。
【図10】キャッシュ選択フラグの別の内容例を示す図
である。
【図11】本発明の更に別の実施形態のブロック図であ
る。
【図12】本発明の他の実施形態のブロック図である。
【図13】キャッシュコヒーレント問題の説明図であ
る。
【符号の説明】
1…プロセッサコア 2…主記憶(メインメモリ) 3…キャッシュメモリ 4…プロセッサバス 5…主記憶バス 6…命令キャッシュ 7…データキャッシュ 61〜64、71〜74…キャッシュ 65、75…キャッシュコントローラ
───────────────────────────────────────────────────── フロントページの続き (51)Int.Cl.7 識別記号 FI テーマコート゛(参考) G06F 9/34 350 G06F 9/34 350B 9/46 340 9/46 340F

Claims (14)

    【特許請求の範囲】
  1. 【請求項1】 キャッシュのセットに1対1に対応する
    キャッシュ選択フラグを有する主記憶アクセス命令によ
    って、主記憶データの写しを保持するキャッシュのセッ
    トを複数有するキャッシュメモリの中から、当該主記憶
    アクセス命令の実行に際して使用するキャッシュのセッ
    トを選択するキャッシュ制御方法。
  2. 【請求項2】 各キャッシュのセットが命令兼データ用
    のキャッシュのセットである請求項1記載のキャッシュ
    制御方法。
  3. 【請求項3】 命令キャッシュとデータキャッシュの少
    なくとも一方をそれぞれ複数のキャッシュのセットで構
    成し、命令キャッシュのアクセスにかかる主記憶アクセ
    ス命令の場合は命令キャッシュ中のセットをキャッシュ
    選択フラグによって選択し、データキャッシュのアクセ
    スにかかる主記憶アクセス命令の場合はデータキャッシ
    ュ中のセットをキャッシュ選択フラグによって選択する
    請求項1記載のキャッシュ制御方法。
  4. 【請求項4】 命令キャッシュを構成するキャッシュの
    セット数をM、データキャッシュを構成するキャッシュ
    のセット数をN、MとNの内の大きな方の値をMNとす
    るとき、主記憶アクセス命令にMN個のキャッシュ選択
    フラグを設け、命令キャッシュのアクセスにかかる主記
    憶アクセス命令の場合はMN個のキャッシュ選択フラグ
    の内のN個のキャッシュ選択フラグを使用し、データキ
    ャッシュのアクセスにかかる主記憶アクセス命令の場合
    はMN個のキャッシュ選択フラグの内のM個のキャッシ
    ュ選択フラグを使用する請求項3記載のキャッシュ制御
    方法。
  5. 【請求項5】 命令キャッシュを構成するキャッシュの
    セット数をM、データキャッシュを構成するキャッシュ
    のセット数をNとするとき、主記憶アクセス命令にM個
    の命令用のキャッシュ選択フラグとN個のデータ用のキ
    ャッシュ選択フラグとを設け、命令キャッシュのアクセ
    スにかかる主記憶アクセス命令の場合は命令用のキャッ
    シュ選択フラグを使用し、データキャッシュのアクセス
    にかかる主記憶アクセス命令の場合はデータ用のキャッ
    シュ選択フラグを使用する請求項3記載のキャッシュ制
    御方法。
  6. 【請求項6】 主記憶アクセス命令がロード命令のとき
    は、キャッシュ選択フラグで選択したキャッシュのセッ
    トの何れかでキャッシュヒットした場合に限って当該ヒ
    ットしたデータをリプライデータとし、主記憶アクセス
    命令がストア命令のときは、キャッシュ選択フラグで選
    択したキャッシュのセットの何れかでキャッシュヒット
    した場合に限って当該ヒットしたデータを更新する請求
    項1、2、3、4または5記載のキャッシュ制御方法。
  7. 【請求項7】 主記憶アクセス命令がロード命令のとき
    にキャッシュ選択フラグで選択した全てのキャッシュの
    セットでキャッシュミスした場合、主記憶から読み出し
    た内容によって、前記キャッシュ選択フラグで選択した
    キャッシュのセットの何れか1つのセットを更新する請
    求項6記載のキャッシュ制御方法。
  8. 【請求項8】 キャッシュのセットに1対1に対応する
    キャッシュ選択フラグを有する主記憶アクセス命令を実
    行するプロセッサコアと、該プロセッサコアと主記憶と
    の間に設けられたキャッシュメモリとを備え、該キャッ
    シュメモリは、主記憶データの写しを保持するキャッシ
    ュのセットを複数有し、且つ、前記プロセッサコアから
    主記憶アクセス命令の実行時に出力されるキャッシュ選
    択フラグに基づいて前記複数のキャッシュのセットの中
    から当該主記憶アクセス命令の実行に際して使用するキ
    ャッシュのセットを選択するキャッシュコントローラを
    有するキャッシュ制御システム。
  9. 【請求項9】 各キャッシュのセットが命令兼データ用
    のキャッシュのセットである請求項8記載のキャッシュ
    制御システム。
  10. 【請求項10】 前記キャッシュメモリは、少なくとも
    一方が複数のキャッシュのセットで構成された命令キャ
    ッシュとデータキャッシュを備え、前記キャッシュコン
    トローラは、命令キャッシュのアクセスにかかる主記憶
    アクセス命令の場合は命令キャッシュ中のセットをキャ
    ッシュ選択フラグによって選択し、データキャッシュの
    アクセスにかかる主記憶アクセス命令の場合はデータキ
    ャッシュ中のセットをキャッシュ選択フラグによって選
    択する請求項8記載のキャッシュ制御システム。
  11. 【請求項11】 命令キャッシュを構成するキャッシュ
    のセット数をM、データキャッシュを構成するキャッシ
    ュのセット数をN、MとNの内の大きな方の値をMNと
    するとき、主記憶アクセス命令にはMN個のキャッシュ
    選択フラグが設けられ、前記プロセッサコア及び前記キ
    ャッシュコントローラは、命令キャッシュのアクセスに
    かかる主記憶アクセス命令の場合はMN個のキャッシュ
    選択フラグの内のN個のキャッシュ選択フラグを使用
    し、データキャッシュのアクセスにかかる主記憶アクセ
    ス命令の場合はMN個のキャッシュ選択フラグの内のM
    個のキャッシュ選択フラグを使用する請求項10記載の
    キャッシュ制御システム。
  12. 【請求項12】 命令キャッシュを構成するキャッシュ
    のセット数をM、データキャッシュを構成するキャッシ
    ュのセット数をNとするとき、主記憶アクセス命令には
    M個の命令用のキャッシュ選択フラグとN個のデータ用
    のキャッシュ選択フラグとが設けられ、前記プロセッサ
    コア及び前記キャッシュコントローラは、命令キャッシ
    ュのアクセスにかかる主記憶アクセス命令の場合は命令
    用のキャッシュ選択フラグを使用し、データキャッシュ
    のアクセスにかかる主記憶アクセス命令の場合はデータ
    用のキャッシュ選択フラグを使用する請求項10記載の
    キャッシュ制御システム。
  13. 【請求項13】 前記キャッシュコントローラは、主記
    憶アクセス命令がロード命令のときは、キャッシュ選択
    フラグで選択したキャッシュのセットの何れかでキャッ
    シュヒットした場合に限って当該ヒットしたデータをリ
    プライデータとし、主記憶アクセス命令がストア命令の
    ときは、キャッシュ選択フラグで選択したキャッシュの
    セットの何れかでキャッシュヒットした場合に限って当
    該ヒットしたデータを更新する請求項8、9、10、1
    1または12記載のキャッシュ制御システム。
  14. 【請求項14】 前記キャッシュコントローラは、主記
    憶アクセス命令がロード命令のときにキャッシュ選択フ
    ラグで選択した全てのキャッシュのセットでキャッシュ
    ミスした場合、主記憶から読み出した内容によって、前
    記キャッシュ選択フラグで選択したキャッシュのセット
    の何れか1つのセットを更新する請求項13記載のキャ
    ッシュ制御システム。
JP2000307121A 2000-10-06 2000-10-06 キャッシュ制御方法及びキャッシュ制御システム Pending JP2002116956A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2000307121A JP2002116956A (ja) 2000-10-06 2000-10-06 キャッシュ制御方法及びキャッシュ制御システム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2000307121A JP2002116956A (ja) 2000-10-06 2000-10-06 キャッシュ制御方法及びキャッシュ制御システム

Publications (1)

Publication Number Publication Date
JP2002116956A true JP2002116956A (ja) 2002-04-19

Family

ID=18787682

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2000307121A Pending JP2002116956A (ja) 2000-10-06 2000-10-06 キャッシュ制御方法及びキャッシュ制御システム

Country Status (1)

Country Link
JP (1) JP2002116956A (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008525919A (ja) * 2004-12-29 2008-07-17 インテル・コーポレーション プログラマ制御のキャッシュ・ライン追出しポリシーのための方法
US7493448B2 (en) 2002-06-24 2009-02-17 Nec Corporation Prevention of conflicting cache hits without an attendant increase in hardware
US7502887B2 (en) 2003-11-12 2009-03-10 Panasonic Corporation N-way set associative cache memory and control method thereof

Cited By (3)

* 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
US7502887B2 (en) 2003-11-12 2009-03-10 Panasonic Corporation N-way set associative cache memory and control method thereof
JP2008525919A (ja) * 2004-12-29 2008-07-17 インテル・コーポレーション プログラマ制御のキャッシュ・ライン追出しポリシーのための方法

Similar Documents

Publication Publication Date Title
JP3370683B2 (ja) キャッシュシステム
US5689679A (en) Memory system and method for selective multi-level caching using a cache level code
US6219760B1 (en) Cache including a prefetch way for storing cache lines and configured to move a prefetched cache line to a non-prefetch way upon access to the prefetched cache line
EP0856798B1 (en) A cache system
US5826052A (en) Method and apparatus for concurrent access to multiple physical caches
US20020116584A1 (en) Runahead allocation protection (rap)
US7216201B2 (en) Parallel cachelets
JP2968509B2 (ja) コンピュータシステム及びキャッシュの内容のコヒーレンシー状態を変更する方法
JPH0321934B2 (ja)
JP2002373115A (ja) 共有キャッシュメモリのリプレイスメント制御方法及びその装置
US5860101A (en) Scalable symmetric multiprocessor data-processing system with data allocation among private caches and segments of system memory
JPH03135642A (ja) コンピュータメモリシステム
US6038642A (en) Method and system for assigning cache memory utilization within a symmetric multiprocessor data-processing system
JPH02191053A (ja) 記憶装置
US6202128B1 (en) Method and system for pre-fetch cache interrogation using snoop port
US5675765A (en) Cache memory system with independently accessible subdivided cache tag arrays
US6434671B2 (en) Software-controlled cache memory compartmentalization
US6434670B1 (en) Method and apparatus for efficiently managing caches with non-power-of-two congruence classes
EP1299808A1 (en) Data processing apparatus with a cache memory and method of using such an apparatus
JP2002116956A (ja) キャッシュ制御方法及びキャッシュ制御システム
US20050268021A1 (en) Method and system for operating a cache memory
KR100486240B1 (ko) 분리된 캐쉬 메모리를 구비한 마이크로프로세서 및 메모리 액세스 방법
JPH0659977A (ja) 明示的なライン置換え操作が可能なキャッシュメモリとその制御方法
JPH11143774A (ja) キャッシュ制御機構
JP2700148B2 (ja) コンピュータ内のキャッシュへ情報を装填する方法と装置

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20040827

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20040831

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20041101

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20050105