JP2000293437A - キャッシュメモリ装置及びキャッシュメモリ制御方法 - Google Patents
キャッシュメモリ装置及びキャッシュメモリ制御方法Info
- Publication number
- JP2000293437A JP2000293437A JP11096858A JP9685899A JP2000293437A JP 2000293437 A JP2000293437 A JP 2000293437A JP 11096858 A JP11096858 A JP 11096858A JP 9685899 A JP9685899 A JP 9685899A JP 2000293437 A JP2000293437 A JP 2000293437A
- Authority
- JP
- Japan
- Prior art keywords
- cache
- data
- address
- group
- sets
- 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
Links
Landscapes
- Memory System Of A Hierarchy Structure (AREA)
Abstract
(57)【要約】
【課題】 TLBエントリにリプレースが実行されるキ
ャッシュセットを指定するビット領域を設け、プログラ
マーによる置換アルゴリズムの実施手段を実現する。 【解決手段】 TLBのエントリには、当該エントリに
対応したブロック(命令コード又はデータ)についての
リプレーシング処理が実行されるキャッシュメモリ内の
キャッシュセット又はキャッシュセットのグループを指
定する指定値を格納するための指定ビット領域が設けら
れる。TLBエントリの指定ビット領域に、上記指定値
が格納された場合には、当該エントリに対応したブロッ
クのためのリプレーシング処理は、上記指定値により指
定されたキャッシュセット又はキャッシュセットのグル
ープを選択して実行される。上記指定値は、実行プログ
ラムから指定することができる。
ャッシュセットを指定するビット領域を設け、プログラ
マーによる置換アルゴリズムの実施手段を実現する。 【解決手段】 TLBのエントリには、当該エントリに
対応したブロック(命令コード又はデータ)についての
リプレーシング処理が実行されるキャッシュメモリ内の
キャッシュセット又はキャッシュセットのグループを指
定する指定値を格納するための指定ビット領域が設けら
れる。TLBエントリの指定ビット領域に、上記指定値
が格納された場合には、当該エントリに対応したブロッ
クのためのリプレーシング処理は、上記指定値により指
定されたキャッシュセット又はキャッシュセットのグル
ープを選択して実行される。上記指定値は、実行プログ
ラムから指定することができる。
Description
【0001】
【発明の属する技術分野】本発明は、キャッシュメモリ
装置に関し、特に、TLBエントリにリプレーシング処
理が実行されるキャッシュセットを指定するビット領域
を設け、プログラマーによる置換アルゴリズムの実施手
段を実現することができるようにしたキャッシュメモリ
装置をそなえるプロセッサに関する。
装置に関し、特に、TLBエントリにリプレーシング処
理が実行されるキャッシュセットを指定するビット領域
を設け、プログラマーによる置換アルゴリズムの実施手
段を実現することができるようにしたキャッシュメモリ
装置をそなえるプロセッサに関する。
【0002】
【従来の技術】多くの情報処理装置では、少ない物理メ
モリを補うため、大きな仮想アドレス空間を用いて論理
的にメモリ空間を拡張している。この拡張されたアドレ
ス空間を高速にアクセスする為の手段として、TLB
(Table Look−up Buffer;高速変
換緩衝機構)とキャッシュメモリとを使用する方法が一
般に行われている。TLBは、仮想アドレス空間上のア
ドレス(仮想アドレス)を物理アドレスに高速に変換す
るための高速のアドレス変換部である。
モリを補うため、大きな仮想アドレス空間を用いて論理
的にメモリ空間を拡張している。この拡張されたアドレ
ス空間を高速にアクセスする為の手段として、TLB
(Table Look−up Buffer;高速変
換緩衝機構)とキャッシュメモリとを使用する方法が一
般に行われている。TLBは、仮想アドレス空間上のア
ドレス(仮想アドレス)を物理アドレスに高速に変換す
るための高速のアドレス変換部である。
【0003】また、キャッシュメモリは、比較的低速で
動作する主メモリのアクセスを見かけ上高速化するため
に、主メモリの記憶内容の写しを記憶する高速メモリで
ある。
動作する主メモリのアクセスを見かけ上高速化するため
に、主メモリの記憶内容の写しを記憶する高速メモリで
ある。
【0004】TLBは、仮想アドレスと物理アドレスへ
の変換情報を有するルックアップテーブルを記憶してい
る、キャッシュメモリよりも高速のメモリ或いはレジス
タと、仮想アドレスでこのテーブルを参照して、該当す
るデータがキャッシュメモリに格納されているか否か、
格納されている場合には、その物理アドレスを読み出
す。仮想アドレスから最終的な物理アドレスへの変換に
際しては、TLBをカバーする他のアドレス変換手段が
使用されることもある。
の変換情報を有するルックアップテーブルを記憶してい
る、キャッシュメモリよりも高速のメモリ或いはレジス
タと、仮想アドレスでこのテーブルを参照して、該当す
るデータがキャッシュメモリに格納されているか否か、
格納されている場合には、その物理アドレスを読み出
す。仮想アドレスから最終的な物理アドレスへの変換に
際しては、TLBをカバーする他のアドレス変換手段が
使用されることもある。
【0005】図6に示す従来のキャッシュメモリ装置の
構成のように、容量の限られているキャッシュメモリを
有効に使用するために、TLBエントリにキャッシュ・
コヒーレンシー属性の情報を指定するコヒーレンシー指
定ビットを付加することもある。
構成のように、容量の限られているキャッシュメモリを
有効に使用するために、TLBエントリにキャッシュ・
コヒーレンシー属性の情報を指定するコヒーレンシー指
定ビットを付加することもある。
【0006】図6に示す従来例の場合、該コヒーレンシ
ー指定のビットが1であれば、通常のcache属性に
よる制御、すなわち、置換論理(リプレーシング・アル
ゴリズム)を含むキャッシュの制御がなされる。
ー指定のビットが1であれば、通常のcache属性に
よる制御、すなわち、置換論理(リプレーシング・アル
ゴリズム)を含むキャッシュの制御がなされる。
【0007】上記のコヒーレンシー指定のビットが0で
あれば、uncache 属性による制御、すなわちキ
ャッシュを使用しない制御が実施される。
あれば、uncache 属性による制御、すなわちキ
ャッシュを使用しない制御が実施される。
【0008】上記で、置換論理(リプレーシング・アル
ゴリズム)とは、キャッシュに空きが無い場合に、どの
ブロックを追い出すべきかを決定するアルゴリズムのこ
とである。この決定には、過去のアクセスに関する統計
上の情報や、参照データの局所性等の経験則、或いは、
ブロックの優先度指定等が参考にされる。これらの決定
は、キャッシュのヒット率の向上と関係している。
ゴリズム)とは、キャッシュに空きが無い場合に、どの
ブロックを追い出すべきかを決定するアルゴリズムのこ
とである。この決定には、過去のアクセスに関する統計
上の情報や、参照データの局所性等の経験則、或いは、
ブロックの優先度指定等が参考にされる。これらの決定
は、キャッシュのヒット率の向上と関係している。
【0009】例えば、プロセッサで言うところの置換論
理(リプレーシング・アルゴリズム)には、一般には、
キャッシュメモリの置換論理と、TLBエントリの置換
論理との区別がある(本発明は、キャッシュメモリの置
換論理の方に関係している)。
理(リプレーシング・アルゴリズム)には、一般には、
キャッシュメモリの置換論理と、TLBエントリの置換
論理との区別がある(本発明は、キャッシュメモリの置
換論理の方に関係している)。
【0010】キャッシュのリプレーシング・アルゴリズ
ムとして最も多用されてきたのは、いわゆるLRU(L
east Recently Used)アルゴリズム
である。すなわち、直近に参照されたブロックは、置換
されないようにする制御が一般的であった。
ムとして最も多用されてきたのは、いわゆるLRU(L
east Recently Used)アルゴリズム
である。すなわち、直近に参照されたブロックは、置換
されないようにする制御が一般的であった。
【0011】しかし、近年は、リプレーシング・アルゴ
リズムばかりではなく、リプレーシングに関する最適制
御方法がア・プリオリに判明している場合に対応する必
要性から、プログラム中の命令セット(通常はロード命
令)に、該最適制御方法を実現するための手段を持たせ
る方針も見られる。
リズムばかりではなく、リプレーシングに関する最適制
御方法がア・プリオリに判明している場合に対応する必
要性から、プログラム中の命令セット(通常はロード命
令)に、該最適制御方法を実現するための手段を持たせ
る方針も見られる。
【0012】このような方針に基づく先出願として、特
開平4−338848号公報には、TLBエントリに、
当該TLBエントリの置換を禁止する(追い出しを禁止
する)ことを指定する置換禁止フラグを設ける技術が開
示されている。
開平4−338848号公報には、TLBエントリに、
当該TLBエントリの置換を禁止する(追い出しを禁止
する)ことを指定する置換禁止フラグを設ける技術が開
示されている。
【0013】また、特開平6−348595号公報に
は、複数のキャッシュセットそれぞれに当該キャッシュ
セットの置換を禁止することができる置換禁止フラグを
設ける手段と、上記複数のキャッシュセットの各置換禁
止フラグを集約して、一つの追い出しエントリを選択す
る手段を有する技術が開示されている。
は、複数のキャッシュセットそれぞれに当該キャッシュ
セットの置換を禁止することができる置換禁止フラグを
設ける手段と、上記複数のキャッシュセットの各置換禁
止フラグを集約して、一つの追い出しエントリを選択す
る手段を有する技術が開示されている。
【0014】さらに、特開平7−28706号公報に
は、キャッシュ中のキャッシュラインに、当該キャッシ
ュラインの優先度を指定する領域を設置する技術が開示
されている。
は、キャッシュ中のキャッシュラインに、当該キャッシ
ュラインの優先度を指定する領域を設置する技術が開示
されている。
【0015】
【発明が解決しようとする課題】従来のキャッシュ装置
における上記のcache属性下のLRUアルゴリズム
では、キャッシュアクセスの頻度が唯一の決定因子とな
ってリプレースされるブロックが決定される。このた
め、該ブロックを格納しているキャッシュセット(キャ
ッシュの組)も自動的に決定される。従って、キャッシ
ュ状態と実行プログラムとの間の整合性に、不本意なア
ンマッチが生じた際などには、リプレースしない方が良
いのにリプレースされてしまったり、或いはこれとは逆
に、リプレースした方が良いのにリプレースされなかっ
たりすることがある。これが原因でスラッシングと呼ば
れる現象を発生し、本来ならば不要と思えるリプレース
が多発し、処理性能が低下する場合がある。
における上記のcache属性下のLRUアルゴリズム
では、キャッシュアクセスの頻度が唯一の決定因子とな
ってリプレースされるブロックが決定される。このた
め、該ブロックを格納しているキャッシュセット(キャ
ッシュの組)も自動的に決定される。従って、キャッシ
ュ状態と実行プログラムとの間の整合性に、不本意なア
ンマッチが生じた際などには、リプレースしない方が良
いのにリプレースされてしまったり、或いはこれとは逆
に、リプレースした方が良いのにリプレースされなかっ
たりすることがある。これが原因でスラッシングと呼ば
れる現象を発生し、本来ならば不要と思えるリプレース
が多発し、処理性能が低下する場合がある。
【0016】最適化フェーズを備えたコンパイラや、O
Sを用いて最適化したコードを使用した場合であって
も、上記の通りキャッシュ状態によっては、最適化が効
果を発揮しないことがある。
Sを用いて最適化したコードを使用した場合であって
も、上記の通りキャッシュ状態によっては、最適化が効
果を発揮しないことがある。
【0017】すなわち、従来技術では、キャッシュ内で
のリプレーシングの必要が生じた時に、リプレースが実
行されるキャッシュセットは、システム固有のリプレー
シング・アルゴリズム(通常はLRU論理)に従って強
制的に指定される。該リプレースされるキャッシュセッ
トを最適化フェーズを備えたコンパイラ等によって生成
される実行プログラム上から動的に指定することが出来
ない。このため、上記のようなリプレースが多発し、処
理性能が低下する場合があった。
のリプレーシングの必要が生じた時に、リプレースが実
行されるキャッシュセットは、システム固有のリプレー
シング・アルゴリズム(通常はLRU論理)に従って強
制的に指定される。該リプレースされるキャッシュセッ
トを最適化フェーズを備えたコンパイラ等によって生成
される実行プログラム上から動的に指定することが出来
ない。このため、上記のようなリプレースが多発し、処
理性能が低下する場合があった。
【0018】そこで、本発明に際して、従来のリプレー
シング・アルゴリズムを適用するモードとは別のモード
として、リプレースされるキャッシュセットを、実行プ
ログラム上の命令セット(通常はロード命令)から指定
出来る手段を与えることが検討された。
シング・アルゴリズムを適用するモードとは別のモード
として、リプレースされるキャッシュセットを、実行プ
ログラム上の命令セット(通常はロード命令)から指定
出来る手段を与えることが検討された。
【0019】なお、特開平4−338848号公報に開
示されている技術は、追い出し禁止指定がなされるブロ
ックに対応して複数のキャッシュセットのいずれかを選
択する技術ではない。
示されている技術は、追い出し禁止指定がなされるブロ
ックに対応して複数のキャッシュセットのいずれかを選
択する技術ではない。
【0020】また、特開平6−348595号公報に開
示されている技術は、TLBを使用していないし、上記
公報と同様に、追い出し禁止指定がなされるブロックに
対応して複数のキャッシュセットのいずれかを選択する
技術ではない。
示されている技術は、TLBを使用していないし、上記
公報と同様に、追い出し禁止指定がなされるブロックに
対応して複数のキャッシュセットのいずれかを選択する
技術ではない。
【0021】さらに、特開平7−28706号公報に開
示されている技術は、やはり上記公報と同様にTLBを
使用していないし、追い出し禁止指定ではなく優先度指
定がなされる。
示されている技術は、やはり上記公報と同様にTLBを
使用していないし、追い出し禁止指定ではなく優先度指
定がなされる。
【0022】本発明は、以上のような従来のキャッシュ
メモリ装置における問題点に鑑みてなされたものであ
り、プログラマーによる置換アルゴリズムの実施手段を
実現することができるキャッシュメモリ装置とその方法
を提供することを目的とする。
メモリ装置における問題点に鑑みてなされたものであ
り、プログラマーによる置換アルゴリズムの実施手段を
実現することができるキャッシュメモリ装置とその方法
を提供することを目的とする。
【0023】
【課題を解決するための手段】上記の課題を解決するた
めに、この発明の第1の観点に係るキャッシュメモリ装
置は、複数個のキャッシュセットを持つセットアソシア
ティブ方式のキャッシュメモリと、仮想アドレスの一部
と前記キャッシュメモリ内エントリとの対応をアドレス
変換情報として持つ高速変換緩衝機構と、所定の置換論
理でリプレーシング制御を実行する制御回路を備えたキ
ャッシュメモリ装置を持つ、仮想記憶方式のプロセッサ
において、前記高速変換緩衝機構の各エントリは、当該
エントリに対応したブロックのデータについて、前記キ
ャッシュメモリ装置内のキャッシュセット又はキャッシ
ュセットのグループを指定する指定値を格納するための
指定ビット領域を備え、前記制御回路は、前記高速変換
緩衝機構のエントリの指定ビット領域に、前記指定値が
格納されている場合に、前記指定値により指定されたキ
ャッシュセット又はキャッシュセットのグループを選択
する、ことを特徴とする。
めに、この発明の第1の観点に係るキャッシュメモリ装
置は、複数個のキャッシュセットを持つセットアソシア
ティブ方式のキャッシュメモリと、仮想アドレスの一部
と前記キャッシュメモリ内エントリとの対応をアドレス
変換情報として持つ高速変換緩衝機構と、所定の置換論
理でリプレーシング制御を実行する制御回路を備えたキ
ャッシュメモリ装置を持つ、仮想記憶方式のプロセッサ
において、前記高速変換緩衝機構の各エントリは、当該
エントリに対応したブロックのデータについて、前記キ
ャッシュメモリ装置内のキャッシュセット又はキャッシ
ュセットのグループを指定する指定値を格納するための
指定ビット領域を備え、前記制御回路は、前記高速変換
緩衝機構のエントリの指定ビット領域に、前記指定値が
格納されている場合に、前記指定値により指定されたキ
ャッシュセット又はキャッシュセットのグループを選択
する、ことを特徴とする。
【0024】この構成によれば、指定ビットにより、前
記キャッシュメモリ内のキャッシュセット又はキャッシ
ュセットのグループを直接指定することができる。この
指定ビットにより、当該エントリに対応するブロックの
最適な制御方法がプログラマーによって把握されている
場合などに、最適制御方法を実現する手段をプログラマ
ーに与えることができる。
記キャッシュメモリ内のキャッシュセット又はキャッシ
ュセットのグループを直接指定することができる。この
指定ビットにより、当該エントリに対応するブロックの
最適な制御方法がプログラマーによって把握されている
場合などに、最適制御方法を実現する手段をプログラマ
ーに与えることができる。
【0025】前記高速変換緩衝機構のエントリの指定ビ
ット領域は、当該エントリがキャシュメモリを使用する
か否かを指定する情報、例えば、キャッシュコヒーレン
シー属性を示すビットと、使用するキャッシュセットま
たはキャッシュセットのグループを選択する情報とを格
納してもよい。
ット領域は、当該エントリがキャシュメモリを使用する
か否かを指定する情報、例えば、キャッシュコヒーレン
シー属性を示すビットと、使用するキャッシュセットま
たはキャッシュセットのグループを選択する情報とを格
納してもよい。
【0026】この場合、前記高速変換緩衝機構のエント
リの指定ビット領域の大きさは、キャッシュセット或い
はキャッシュセットのグループを指定する情報と、キャ
ッシュ・コヒーレンシー属性を示す情報との両方を意味
付けするに必要十分なビット数として設置することがで
きる。このようなビット構成とすることにより、両者を
それぞれ別の領域で指定するよりも高速変換緩衝機構の
各エントリの必要ビット数が節約できる。
リの指定ビット領域の大きさは、キャッシュセット或い
はキャッシュセットのグループを指定する情報と、キャ
ッシュ・コヒーレンシー属性を示す情報との両方を意味
付けするに必要十分なビット数として設置することがで
きる。このようなビット構成とすることにより、両者を
それぞれ別の領域で指定するよりも高速変換緩衝機構の
各エントリの必要ビット数が節約できる。
【0027】データをブロック単位で記憶すると共に各
ブロックのデータの仮想アドレスと物理アドレスと該ブ
ロックがいずれのキャッシュセット又はキャッシュセッ
トのグループを使用するかを示す指定値とを対応付けて
記憶するアドレス変換テーブルを記憶する主メモリを配
置してもよい。前記制御回路は、前記キャッシュ装置で
ミスヒットとなった場合に、アクセス対象のデータの主
メモリ内の物理アドレスを判別し、判別した物理アドレ
スに位置するブロックデータを、指定値が示すキャッシ
ュセット又はキャッシュセットのグループにリプレース
する。
ブロックのデータの仮想アドレスと物理アドレスと該ブ
ロックがいずれのキャッシュセット又はキャッシュセッ
トのグループを使用するかを示す指定値とを対応付けて
記憶するアドレス変換テーブルを記憶する主メモリを配
置してもよい。前記制御回路は、前記キャッシュ装置で
ミスヒットとなった場合に、アクセス対象のデータの主
メモリ内の物理アドレスを判別し、判別した物理アドレ
スに位置するブロックデータを、指定値が示すキャッシ
ュセット又はキャッシュセットのグループにリプレース
する。
【0028】データを前記主メモリにロードする際に、
前記アドレス変換テーブルに、ロードするデータブロッ
クの仮想アドレスと主メモリ内の物理アドレスと該ブロ
ックがいずれのキャッシュセット又はキャッシュセット
のグループを使用するかを示す指定値とを対応付けて格
納する手段を備えてもよい。この構成によれば、主メモ
リにデータをロードする際等に、そのブロックがロード
されるキャッシュセット又はキャッシュセットのグルー
プを指定値により特定することができる。
前記アドレス変換テーブルに、ロードするデータブロッ
クの仮想アドレスと主メモリ内の物理アドレスと該ブロ
ックがいずれのキャッシュセット又はキャッシュセット
のグループを使用するかを示す指定値とを対応付けて格
納する手段を備えてもよい。この構成によれば、主メモ
リにデータをロードする際等に、そのブロックがロード
されるキャッシュセット又はキャッシュセットのグルー
プを指定値により特定することができる。
【0029】前記キャッシュセット又はキャッシュセッ
トのグループと実質的に同一の容量のデータブロック
に、同一の指定値を設定することにより、前記キャッシ
ュセット又はキャッシュセットのグループをリプレース
の起こらない高速メモリとして使用することができる。
トのグループと実質的に同一の容量のデータブロック
に、同一の指定値を設定することにより、前記キャッシ
ュセット又はキャッシュセットのグループをリプレース
の起こらない高速メモリとして使用することができる。
【0030】前記制御回路は、前記指定値がキャッシュ
セットのグループ、例えば、2つのキャッシュセットを
指定している場合に、指定されたグループ内のキャッシ
ュセットを所定の置換論理、例えば、LRUアルゴリズ
ムに従って、選択してリプレース処理を行うようにして
もよい。この場合、キャッシュセットを指定してリプレ
ーシング処理する機能と、従来の置換論理を適用してリ
プレーシング処理する機能とを折衷することができる。
セットのグループ、例えば、2つのキャッシュセットを
指定している場合に、指定されたグループ内のキャッシ
ュセットを所定の置換論理、例えば、LRUアルゴリズ
ムに従って、選択してリプレース処理を行うようにして
もよい。この場合、キャッシュセットを指定してリプレ
ーシング処理する機能と、従来の置換論理を適用してリ
プレーシング処理する機能とを折衷することができる。
【0031】前記主メモリのエントリの指定ビット領域
内の指定値は、実行プログラム中の所定の命令セットの
実行によって格納されたものであってもよい。
内の指定値は、実行プログラム中の所定の命令セットの
実行によって格納されたものであってもよい。
【0032】また、この発明の第2の観点にかかるキャ
ッシュメモリ装置は、複数個のキャッシュセットを有す
るセットアソシアティブ方式のキャッシュメモリと、デ
ータをブロック単位で記憶する主メモリと、前記主メモ
リにデータのブロックをロードする際に、該データブロ
ックについて、該データブロックが使用する前記キャッ
シュメモリのキャッシュセット又はキャッシュセットの
グループを指定する指定データを設定する手段と、前記
主メモリ上のデータブロックを前記キャッシュメモリに
格納する際に、対応する指定データに従ってキャッシュ
セット又はキャッシュセットのグループを選択し、選択
したキャッシュセットに該データブロックを格納する制
御手段と、を備えることを特徴とする。
ッシュメモリ装置は、複数個のキャッシュセットを有す
るセットアソシアティブ方式のキャッシュメモリと、デ
ータをブロック単位で記憶する主メモリと、前記主メモ
リにデータのブロックをロードする際に、該データブロ
ックについて、該データブロックが使用する前記キャッ
シュメモリのキャッシュセット又はキャッシュセットの
グループを指定する指定データを設定する手段と、前記
主メモリ上のデータブロックを前記キャッシュメモリに
格納する際に、対応する指定データに従ってキャッシュ
セット又はキャッシュセットのグループを選択し、選択
したキャッシュセットに該データブロックを格納する制
御手段と、を備えることを特徴とする。
【0033】この構成によれば、主メモリ上のデータを
格納するキャッシュセットを、指定することができる。
指定データの設定を適切に行うことにより、キャッシュ
メモリのヒット率を向上することができる。
格納するキャッシュセットを、指定することができる。
指定データの設定を適切に行うことにより、キャッシュ
メモリのヒット率を向上することができる。
【0034】また、この発明の第3の観点にかかるキャ
ッシュメモリ装置は、ブロック単位でデータを記憶する
主メモリと、複数個のキャッシュセットを持ち、主メモ
リ上のデータの写しを記憶するキャッシュメモリと、仮
想アドレスを物理アドレスに変換するアドレス変換手段
と、キャッシュミスヒットが発生した場合に、所定の置
換論理で、ブロック単位で、キャッシュメモリ上のデー
タを主メモリ上のデータにリプレーシングする制御回路
と、を備えたキャッシュメモリ装置において、アドレス
変換手段は、各ブロックのデータについて、前記キャッ
シュメモリ装置内のキャッシュセット又はキャッシュセ
ットのグループを指定する指定情報を含み、前記制御回
路は、リプレース対象のデータブロックについて、アド
レス変換手段に指定情報が設定されている場合に、指定
情報により指定されたキャッシュセット又はキャッシュ
セットのグループを選択して、該当するブロックのデー
タをリプレースする、ことを特徴とする。
ッシュメモリ装置は、ブロック単位でデータを記憶する
主メモリと、複数個のキャッシュセットを持ち、主メモ
リ上のデータの写しを記憶するキャッシュメモリと、仮
想アドレスを物理アドレスに変換するアドレス変換手段
と、キャッシュミスヒットが発生した場合に、所定の置
換論理で、ブロック単位で、キャッシュメモリ上のデー
タを主メモリ上のデータにリプレーシングする制御回路
と、を備えたキャッシュメモリ装置において、アドレス
変換手段は、各ブロックのデータについて、前記キャッ
シュメモリ装置内のキャッシュセット又はキャッシュセ
ットのグループを指定する指定情報を含み、前記制御回
路は、リプレース対象のデータブロックについて、アド
レス変換手段に指定情報が設定されている場合に、指定
情報により指定されたキャッシュセット又はキャッシュ
セットのグループを選択して、該当するブロックのデー
タをリプレースする、ことを特徴とする。
【0035】前記指定情報は、対応するデータブロック
がキャシュメモリを使用するか否かを指定する情報と使
用するキャッシュセットまたはキャッシュセットのグル
ープを選択する情報とを含んでもよい。
がキャシュメモリを使用するか否かを指定する情報と使
用するキャッシュセットまたはキャッシュセットのグル
ープを選択する情報とを含んでもよい。
【0036】前記アドレス変換手段は、例えば、前記主
メモリ上に配置され、各ブロックのデータの仮想アドレ
スと物理アドレスと該ブロックがいずれのキャッシュセ
ット又はキャッシュセットのグループを使用するかを示
す指定値とを対応付けて記憶するアドレス変換テーブル
と、前記アドレス変換テーブルの写しを記憶する高速変
換緩衝機構と、を備える。
メモリ上に配置され、各ブロックのデータの仮想アドレ
スと物理アドレスと該ブロックがいずれのキャッシュセ
ット又はキャッシュセットのグループを使用するかを示
す指定値とを対応付けて記憶するアドレス変換テーブル
と、前記アドレス変換テーブルの写しを記憶する高速変
換緩衝機構と、を備える。
【0037】供給された仮想アドレスを前記高速変換緩
衝機構により物理アドレスに変換し、高速変換緩衝機構
でミスヒットとなった場合に、アドレス変換テーブルで
物理アドレスに変換する手段と、前記高速変換緩衝機構
またはアドレス変換テーブルにより変換された物理アド
レスを用いて前記キャッシュメモリをアクセスするアク
セス手段と、をさらに配置し、前記アクセス手段により
アクセスされたキャッシュメモリで、キャッシュミスと
なった場合に、前記制御回路は、判別した物理アドレス
に位置する主メモリ上のブロックデータを、指定値が示
すキャッシュセット又はキャッシュセットのグループに
リプレースするようにしてもよい。
衝機構により物理アドレスに変換し、高速変換緩衝機構
でミスヒットとなった場合に、アドレス変換テーブルで
物理アドレスに変換する手段と、前記高速変換緩衝機構
またはアドレス変換テーブルにより変換された物理アド
レスを用いて前記キャッシュメモリをアクセスするアク
セス手段と、をさらに配置し、前記アクセス手段により
アクセスされたキャッシュメモリで、キャッシュミスと
なった場合に、前記制御回路は、判別した物理アドレス
に位置する主メモリ上のブロックデータを、指定値が示
すキャッシュセット又はキャッシュセットのグループに
リプレースするようにしてもよい。
【0038】また、この発明の第4の観点にかかるキャ
ッシュメモリ制御方法は、複数個のキャッシュセットを
持つセットアソシアティブ方式のキャッシュメモリと、
仮想アドレスの一部と前記キャッシュメモリ内エントリ
との対応をアドレス変換情報として持つ高速変換緩衝機
構とを備えたキャッシュメモリ装置を制御するキャッシ
ュメモリ制御方法であって、前記高速変換緩衝機構の各
エントリに、当該エントリに対応したブロックのデータ
について、前記キャッシュメモリ内のキャッシュセット
又はキャッシュセットのグループを指定する指定値を格
納するための指定ビット領域を配置し、前記高速変換緩
衝機構のエントリの指定ビット領域に、前記指定値が格
納されている場合に、前記指定値により指定されたキャ
ッシュセット又はキャッシュセットのグループを選択す
る、ことを特徴とする。
ッシュメモリ制御方法は、複数個のキャッシュセットを
持つセットアソシアティブ方式のキャッシュメモリと、
仮想アドレスの一部と前記キャッシュメモリ内エントリ
との対応をアドレス変換情報として持つ高速変換緩衝機
構とを備えたキャッシュメモリ装置を制御するキャッシ
ュメモリ制御方法であって、前記高速変換緩衝機構の各
エントリに、当該エントリに対応したブロックのデータ
について、前記キャッシュメモリ内のキャッシュセット
又はキャッシュセットのグループを指定する指定値を格
納するための指定ビット領域を配置し、前記高速変換緩
衝機構のエントリの指定ビット領域に、前記指定値が格
納されている場合に、前記指定値により指定されたキャ
ッシュセット又はキャッシュセットのグループを選択す
る、ことを特徴とする。
【0039】主メモリ上の各データブロックに、コンパ
イラ、OS、ロードプログラムなどにより、そのデータ
ブロックのリプレーシング処理に先立ち、予め指定ビッ
トを付加しておいてもよい。
イラ、OS、ロードプログラムなどにより、そのデータ
ブロックのリプレーシング処理に先立ち、予め指定ビッ
トを付加しておいてもよい。
【0040】また、指定ビットがキャッシュセットのグ
ループを指定している場合に、グループ内のキャッシュ
セットを所定の置換論理で選択してリプレース処理を行
うようにしてもよい。この場合、キャッシュセットを指
定してリプレーシング処理する機能と、LRUなどの従
来の置換論理を適用してリプレーシング処理する機能と
を部分的に折衷することができる。
ループを指定している場合に、グループ内のキャッシュ
セットを所定の置換論理で選択してリプレース処理を行
うようにしてもよい。この場合、キャッシュセットを指
定してリプレーシング処理する機能と、LRUなどの従
来の置換論理を適用してリプレーシング処理する機能と
を部分的に折衷することができる。
【0041】
【発明の実施の形態】以下、本発明の実施の形態を図面
を参照して説明する。 (第1の実施の形態)図1は、本発明の第1の実施の形
態に係るコンピュータ装置の、構成を示す図である。図
示するように、このコンピュータ装置は、CPU(中央
処理装置)1と、主メモリ2と、キャッシュメモリ3
と、MMU(メモリマネージメントユニット)4と、セ
レクタ5と、コントローラ6と、複数の周辺装置7、と
を備える。
を参照して説明する。 (第1の実施の形態)図1は、本発明の第1の実施の形
態に係るコンピュータ装置の、構成を示す図である。図
示するように、このコンピュータ装置は、CPU(中央
処理装置)1と、主メモリ2と、キャッシュメモリ3
と、MMU(メモリマネージメントユニット)4と、セ
レクタ5と、コントローラ6と、複数の周辺装置7、と
を備える。
【0042】CPU1は、このコンピュータ装置の中核
となる処理装置である。主メモリ2は、各種プログラ
ム、データなどを格納するための揮発性メモリであり、
仮想アドレス(論理アドレス)を物理アドレス(主メモ
リ2上の格納位置)に変換するためのアドレス変換テー
ブル21が置かれている。
となる処理装置である。主メモリ2は、各種プログラ
ム、データなどを格納するための揮発性メモリであり、
仮想アドレス(論理アドレス)を物理アドレス(主メモ
リ2上の格納位置)に変換するためのアドレス変換テー
ブル21が置かれている。
【0043】キャッシュメモリ3は、主メモリ2よりも
高速アクセス可能な、例えば、SRAMなどから構成さ
れる高速メモリであり、主メモリ2上のデータ、プログ
ラム等の複製を記憶する。キャッシュメモリ3は、第0
のキャッシュセット31と第1のキャッシュセット32
と制御回路(キャッシュ制御回路)39とから構成され
ている。第0キャッシュメモリ31と第1キャッシュメ
モリ32との各キャッシュラインには、有効ビットV
と、タグ(物理タグ)Tagと、データDataとが格
納されている。キャッシュ制御回路39は、MMU4か
ら供給されるデータに従って、第0キャッシュセット3
1または第1キャッシュセット32をアクセスし、ま
た、必要に応じて、リプレース処理を行う。
高速アクセス可能な、例えば、SRAMなどから構成さ
れる高速メモリであり、主メモリ2上のデータ、プログ
ラム等の複製を記憶する。キャッシュメモリ3は、第0
のキャッシュセット31と第1のキャッシュセット32
と制御回路(キャッシュ制御回路)39とから構成され
ている。第0キャッシュメモリ31と第1キャッシュメ
モリ32との各キャッシュラインには、有効ビットV
と、タグ(物理タグ)Tagと、データDataとが格
納されている。キャッシュ制御回路39は、MMU4か
ら供給されるデータに従って、第0キャッシュセット3
1または第1キャッシュセット32をアクセスし、ま
た、必要に応じて、リプレース処理を行う。
【0044】MMU4は、CPU1等からの仮想アドレ
スによるアクセスの要求を受けて、主メモリ2、キャッ
シュメモリ3,などに対するアクセスを管理するための
ものであり、TLB41を備える。
スによるアクセスの要求を受けて、主メモリ2、キャッ
シュメモリ3,などに対するアクセスを管理するための
ものであり、TLB41を備える。
【0045】TLB41は、図2に示すように、複数の
エントリを備え、各エントリには、仮想ページアドレス
VPN(Virtual Page Number)
と、物理ページアドレスPFN(Page Frame
Number)と、有効ビットVと、拡張Cビットと
が対応付けて格納されている。
エントリを備え、各エントリには、仮想ページアドレス
VPN(Virtual Page Number)
と、物理ページアドレスPFN(Page Frame
Number)と、有効ビットVと、拡張Cビットと
が対応付けて格納されている。
【0046】仮想ページアドレスVPNは、参照される
仮想空間上の所定サイズのデータブロック(内容は命令
コード、データなど)であるページのアドレスであり、
仮想アドレスの上位ビットから構成される。物理ページ
アドレスPFNは、対応するデータブロックが格納され
ている物理領域のアドレスであり、物理アドレスの上位
ビットから構成される。有効ビットVは、該当エントリ
の内容が有効であるか無効であるかを示すビットであ
る。
仮想空間上の所定サイズのデータブロック(内容は命令
コード、データなど)であるページのアドレスであり、
仮想アドレスの上位ビットから構成される。物理ページ
アドレスPFNは、対応するデータブロックが格納され
ている物理領域のアドレスであり、物理アドレスの上位
ビットから構成される。有効ビットVは、該当エントリ
の内容が有効であるか無効であるかを示すビットであ
る。
【0047】拡張Cビットは、従来のキャッシュ・コヒ
ーレンシー属性を示すC(Coherency)ビット
の情報にキャッシュセットを指定する情報を付加した情
報である。本実施の形態においては、拡張Cビットが”
00”の場合は、図6に示す従来のキャッシュのCビッ
トが”0”の場合と同じで、uncache属性を示
し、該エントリに対応するデータブロック(ページ)は
キャッシュを使用しない。
ーレンシー属性を示すC(Coherency)ビット
の情報にキャッシュセットを指定する情報を付加した情
報である。本実施の形態においては、拡張Cビットが”
00”の場合は、図6に示す従来のキャッシュのCビッ
トが”0”の場合と同じで、uncache属性を示
し、該エントリに対応するデータブロック(ページ)は
キャッシュを使用しない。
【0048】拡張Cビットが”11”の場合は、図6に
示す従来のキャッシュのCビットが”1”の場合と同じ
で、通常のキャッシュアクセス時は、キャッシュ制御回
路39により第0または第1のキャッシュセット31,
32のうち物理アドレスに対応するエリアが有するもの
が選択されて使用され、キャッシュリプレース時は、L
RUアルゴリズムに基づいて第0または第1のキャッシ
ュセット31,32の一方が選択されて使用される。
示す従来のキャッシュのCビットが”1”の場合と同じ
で、通常のキャッシュアクセス時は、キャッシュ制御回
路39により第0または第1のキャッシュセット31,
32のうち物理アドレスに対応するエリアが有するもの
が選択されて使用され、キャッシュリプレース時は、L
RUアルゴリズムに基づいて第0または第1のキャッシ
ュセット31,32の一方が選択されて使用される。
【0049】また、上記の拡張Cビットが”01の場合
は、セレクタ5により、拡張Cビットが”01”の場合
は第0キャッシュセット11が、”10”の場合は第1
キャッシュセット32が、それぞれ選択される。
は、セレクタ5により、拡張Cビットが”01”の場合
は第0キャッシュセット11が、”10”の場合は第1
キャッシュセット32が、それぞれ選択される。
【0050】上記の拡張Cビットは、プログラム中の命
令セット、通常は、参照するブロックのアドレス情報を
アドレス変換テーブル21からキャッシュメモリ3へロ
ードするロード命令によって、その値を設定することが
可能である。また、主メモリ2にデータをロードする際
に、アドレス変換テーブル21上に、予めの拡張Cビッ
トを設定してもよい。また、ユーザが、専用ツールを用
いて、主メモリ2上の特定領域のデータブロックについ
て、拡張Cビットを設定してもよい。
令セット、通常は、参照するブロックのアドレス情報を
アドレス変換テーブル21からキャッシュメモリ3へロ
ードするロード命令によって、その値を設定することが
可能である。また、主メモリ2にデータをロードする際
に、アドレス変換テーブル21上に、予めの拡張Cビッ
トを設定してもよい。また、ユーザが、専用ツールを用
いて、主メモリ2上の特定領域のデータブロックについ
て、拡張Cビットを設定してもよい。
【0051】セレクタ5は、MMU4から出力されるデ
ータに含まれている拡張Cビットの値に従って、第0の
キャッシュセット31と第1のキャッシュセット32の
一方を選択する。
ータに含まれている拡張Cビットの値に従って、第0の
キャッシュセット31と第1のキャッシュセット32の
一方を選択する。
【0052】コントローラ6は、供給されたアドレスな
どに基づいて、メインメモリ2及び周辺回路6の動作を
制御する。また、コントローラ6は、前述の拡張Cビッ
トが”11”の場合に、第0キャッシュセット31と第
1キャッシュセット32との一方をアクティブとする。
どに基づいて、メインメモリ2及び周辺回路6の動作を
制御する。また、コントローラ6は、前述の拡張Cビッ
トが”11”の場合に、第0キャッシュセット31と第
1キャッシュセット32との一方をアクティブとする。
【0053】周辺装置7は、ディスク装置、表示装置な
どから構成されている。
どから構成されている。
【0054】図3に、拡張Cビットが予め設定されてい
るタイプのアドレス変換テーブル21の一例を示す。図
示するように、このアドレス変換テーブル21は、複数
のエントリを備え、各エントリには、仮想ページアドレ
スと、物理ページアドレスと、拡張Cビットとが対応付
けて登録されている。
るタイプのアドレス変換テーブル21の一例を示す。図
示するように、このアドレス変換テーブル21は、複数
のエントリを備え、各エントリには、仮想ページアドレ
スと、物理ページアドレスと、拡張Cビットとが対応付
けて登録されている。
【0055】各拡張Cビットは、第0キャッシュセット
31と第1キャッシュセット32の使用目的に応じて、
ユーザの個別設定、アセンブラの実行、コンパイラの実
行などにより任意に設定できる。
31と第1キャッシュセット32の使用目的に応じて、
ユーザの個別設定、アセンブラの実行、コンパイラの実
行などにより任意に設定できる。
【0056】例えば、あるプログラムを実行する際に、
主メモリ2上の特定のエリアのデータを第0キャッシュ
セット31又は第1キャッシュセット32に常駐させる
場合には、そのエリアの拡張Cビットに”01”又は”
10”を設定する。また、あるプログラムを実行する際
に、主メモリ2上の第0キャッシュセット31と同一サ
イズの領域の拡張Cビットに全て”01”を設定し、第
1キャッシュセット32と同一サイズの領域の拡張Cビ
ットに全て”10”を設定することにより、第0キャッ
シュセット31と第1キャッシュセット32を、リプレ
ースの起こらない高速メモリとして使用することも可能
である。
主メモリ2上の特定のエリアのデータを第0キャッシュ
セット31又は第1キャッシュセット32に常駐させる
場合には、そのエリアの拡張Cビットに”01”又は”
10”を設定する。また、あるプログラムを実行する際
に、主メモリ2上の第0キャッシュセット31と同一サ
イズの領域の拡張Cビットに全て”01”を設定し、第
1キャッシュセット32と同一サイズの領域の拡張Cビ
ットに全て”10”を設定することにより、第0キャッ
シュセット31と第1キャッシュセット32を、リプレ
ースの起こらない高速メモリとして使用することも可能
である。
【0057】キャッシュメモリ3を使用すると、ミスヒ
ットの確率が非常に高く、頻繁にリプレースを繰り返す
ことによってかえって効率が低下するような場合には、
拡張Cビットを”00”として、キャッシュメモリ3を
使用しないようにすることも有効である。
ットの確率が非常に高く、頻繁にリプレースを繰り返す
ことによってかえって効率が低下するような場合には、
拡張Cビットを”00”として、キャッシュメモリ3を
使用しないようにすることも有効である。
【0058】さらに、通常のLRUアルゴリズムに基づ
いて、キャッシュメモリ3の内容をリプレースする場合
には、拡張Cビットを”11”とする。
いて、キャッシュメモリ3の内容をリプレースする場合
には、拡張Cビットを”11”とする。
【0059】以下、本実施の形態に係るキャッシュメモ
リ装置の動作を図4を参照して説明する。CPU1が、
主メモリ2をアクセスするために、MMU4に出力した
仮想アドレスの上位アドレス(仮想上位アドレス)VP
N(Virtual PageNumber)は、TL
B41へ入力され、TLB41の複数のエントリのう
ち、入力された仮想上位アドレスVPNに一致するVP
Nを備えるTLBエントリが存在するか否かが判別され
る。該当するエントリが存在する場合、バリッドビット
Vが”1”(有効)を示しているか否かを判別する。
リ装置の動作を図4を参照して説明する。CPU1が、
主メモリ2をアクセスするために、MMU4に出力した
仮想アドレスの上位アドレス(仮想上位アドレス)VP
N(Virtual PageNumber)は、TL
B41へ入力され、TLB41の複数のエントリのう
ち、入力された仮想上位アドレスVPNに一致するVP
Nを備えるTLBエントリが存在するか否かが判別され
る。該当するエントリが存在する場合、バリッドビット
Vが”1”(有効)を示しているか否かを判別する。
【0060】入力された仮想上位アドレスVPNに一致
するVPNを備えるTLBエントリが存在し、且つ、そ
のエントリのバリッドビットVが1(有効)を示してい
る場合、TLBヒットである。この場合、MMU4は、
該当するエントリに登録されている物理ページアドレス
PFNと仮想アドレスの下位アドレス(ページ内アドレ
ス)とを連結して、物理アドレスを求めて、Cビットと
共に出力する。
するVPNを備えるTLBエントリが存在し、且つ、そ
のエントリのバリッドビットVが1(有効)を示してい
る場合、TLBヒットである。この場合、MMU4は、
該当するエントリに登録されている物理ページアドレス
PFNと仮想アドレスの下位アドレス(ページ内アドレ
ス)とを連結して、物理アドレスを求めて、Cビットと
共に出力する。
【0061】一方、TLBミスヒットの場合は、MMU
4は、コントローラ6を介して主メモリ2上のアドレス
変換テーブル21を参照して、CPU1がMMU4に出
力した仮想上位アドレスVPNに一致するVPNを備え
るエントリを検出し、その内容を取り込む。MMU4
は、取り込んだエントリに登録されている物理ページア
ドレスPFNと下位アドレスとを連結して、物理アドレ
スを求め、拡張Cビットと共に出力する。なお、TLB
ミスヒットの場合に、TLBリプレースアルゴリズムに
従って、TLB41内のテーブルをアドレス変換テーブ
ル21の内容に置換することも可能である。
4は、コントローラ6を介して主メモリ2上のアドレス
変換テーブル21を参照して、CPU1がMMU4に出
力した仮想上位アドレスVPNに一致するVPNを備え
るエントリを検出し、その内容を取り込む。MMU4
は、取り込んだエントリに登録されている物理ページア
ドレスPFNと下位アドレスとを連結して、物理アドレ
スを求め、拡張Cビットと共に出力する。なお、TLB
ミスヒットの場合に、TLBリプレースアルゴリズムに
従って、TLB41内のテーブルをアドレス変換テーブ
ル21の内容に置換することも可能である。
【0062】MMU4が出力した拡張Cビットが”0
0”の場合、すなわち、uncache属性が指定され
ている場合、セレクタ5は、第0キャッシュセット31
と第1キャッシュセット32のいずれをもイネーブル状
態としない(セレクトしない)。従って、キャッシュメ
モリ3へのアクセスは行われない。MMU4は、コント
ローラ6を介して、物理アドレスが指示する主メモリ2
上の位置にアクセスし、データを読み出し又はデータを
書き込む。
0”の場合、すなわち、uncache属性が指定され
ている場合、セレクタ5は、第0キャッシュセット31
と第1キャッシュセット32のいずれをもイネーブル状
態としない(セレクトしない)。従って、キャッシュメ
モリ3へのアクセスは行われない。MMU4は、コント
ローラ6を介して、物理アドレスが指示する主メモリ2
上の位置にアクセスし、データを読み出し又はデータを
書き込む。
【0063】一方、MMU4が出力した拡張Cビット
が”01”の場合、セレクタ5は、第0キャッシュセッ
ト31のみをアクティブ状態とする。キャッシュ制御回
路39は、下位アドレスに対応する第0キャッシュセッ
ト31のキャシュラインのTagが、MMU4から供給
された物理アドレスの上位アドレスと一致し、且つ、バ
リッドビットVが”1”(有効)であるか否か、すなわ
ち、第0キャッシュセット31上でキャッシュがヒット
するか否かを判別する。
が”01”の場合、セレクタ5は、第0キャッシュセッ
ト31のみをアクティブ状態とする。キャッシュ制御回
路39は、下位アドレスに対応する第0キャッシュセッ
ト31のキャシュラインのTagが、MMU4から供給
された物理アドレスの上位アドレスと一致し、且つ、バ
リッドビットVが”1”(有効)であるか否か、すなわ
ち、第0キャッシュセット31上でキャッシュがヒット
するか否かを判別する。
【0064】キャッシュ制御回路39は、キャッシュヒ
ットであると判別すると、物理アドレスに基づいて、そ
のキャッシュラインにアクセス(データの読み出し・書
き込み)を行う。
ットであると判別すると、物理アドレスに基づいて、そ
のキャッシュラインにアクセス(データの読み出し・書
き込み)を行う。
【0065】一方、データ読み出しの場合は、キャッシ
ュ制御回路39は、キャッシュミスヒットであると判別
した場合、キャッシュリプレースを行うため、MMU4
にその旨を通知する。この通知に従って、MMU4は、
コントローラ6を介して主メモリ2から、物理ページア
ドレスに対応するデータを読み出して、キャッシュメモ
リ3に供給する。キャッシュ制御回路39は、主メモリ
2から読み出されたデータを、セレクタ5により選択さ
れている第0キャッシュセット31にコピー(リプレー
ス)する。MMU4は、第0キャッシュセット31のリ
プレースされたキャッシュラインからデータを読み出
す。
ュ制御回路39は、キャッシュミスヒットであると判別
した場合、キャッシュリプレースを行うため、MMU4
にその旨を通知する。この通知に従って、MMU4は、
コントローラ6を介して主メモリ2から、物理ページア
ドレスに対応するデータを読み出して、キャッシュメモ
リ3に供給する。キャッシュ制御回路39は、主メモリ
2から読み出されたデータを、セレクタ5により選択さ
れている第0キャッシュセット31にコピー(リプレー
ス)する。MMU4は、第0キャッシュセット31のリ
プレースされたキャッシュラインからデータを読み出
す。
【0066】データ書き込みの場合は、キャッシュ制御
回路39は、キャッシュミスヒットであると判別した場
合、セレクタ5により選択されている第0キャッシュセ
ット31に書き込みを行うと同時に、MMU4にその旨
を通知する。この通知に従って、MMU4は、コントロ
ーラ6を介して主メモリ2の物理ページアドレスに対応
するデータを書きこむ。
回路39は、キャッシュミスヒットであると判別した場
合、セレクタ5により選択されている第0キャッシュセ
ット31に書き込みを行うと同時に、MMU4にその旨
を通知する。この通知に従って、MMU4は、コントロ
ーラ6を介して主メモリ2の物理ページアドレスに対応
するデータを書きこむ。
【0067】一方、MMU4が出力した拡張Cビット
が”10”の場合、セレクタ5は、拡張Cビットに従っ
て、第1キャッシュセット32のみをアクティブ状態と
する。キャッシュ制御回路39は、MMU4から供給さ
れた物理アドレスの上位アドレス(PFN)に対応する
tagを有し、且つ、バリッドビットVが”1”(有
効)のキャッシュラインが、アクティブ状態にある第1
キャッシュセット32上に存在するか否か、すなわち、
第1キャッシュセット32上でキャッシュがヒットする
か印加を判別する。
が”10”の場合、セレクタ5は、拡張Cビットに従っ
て、第1キャッシュセット32のみをアクティブ状態と
する。キャッシュ制御回路39は、MMU4から供給さ
れた物理アドレスの上位アドレス(PFN)に対応する
tagを有し、且つ、バリッドビットVが”1”(有
効)のキャッシュラインが、アクティブ状態にある第1
キャッシュセット32上に存在するか否か、すなわち、
第1キャッシュセット32上でキャッシュがヒットする
か印加を判別する。
【0068】キャッシュ制御回路39は、キャッシュヒ
ットと判別すれば、そのキャッシュラインにアクセス
(データの読み出し・書き込み)を行う。
ットと判別すれば、そのキャッシュラインにアクセス
(データの読み出し・書き込み)を行う。
【0069】一方、キャッシュ制御回路39は、キャッ
シュミスヒットと判別すれば、キャッシュリプレースを
行うため、MMU4にその旨を通知する。
シュミスヒットと判別すれば、キャッシュリプレースを
行うため、MMU4にその旨を通知する。
【0070】MMU4は、通知に従って、コントローラ
6を介して主メモリ2から、物理アドレス(PFN)が
指示するデータブロックを読み出して、キャッシュメモ
リ3に供給する。キャッシュ制御回路39は、主メモリ
2から読み出されたデータブロックをセレクタ5が選択
している第1キャッシュセット32にコピー(リプレー
ス)する。MMU4は、第1キャッシュセット32のリ
プレースされたキャッシュラインからデータを読み出
し、またはそのキャッシュラインにデータを書き込む。
6を介して主メモリ2から、物理アドレス(PFN)が
指示するデータブロックを読み出して、キャッシュメモ
リ3に供給する。キャッシュ制御回路39は、主メモリ
2から読み出されたデータブロックをセレクタ5が選択
している第1キャッシュセット32にコピー(リプレー
ス)する。MMU4は、第1キャッシュセット32のリ
プレースされたキャッシュラインからデータを読み出
し、またはそのキャッシュラインにデータを書き込む。
【0071】一方、MMU4が出力した拡張Cビット
が”11”の場合、キャッシュ制御回路39は、MMU
4から供給された物理アドレスの上位アドレスに対応す
るtagを有し、且つ、バリッドビットVが”1”(有
効)であるキャッシュラインが、第0キャッシュセット
31と第1キャッシュセット32のいずれかに存在する
か否かを判別する。MMU4から供給された物理アドレ
スに対応するtagを有し、且つ、バリッドビットV
が”1”(有効)であるキャッシュラインが両キャッシ
ュセットのいずれかに存在すると判別されれば、キャッ
シュヒットである。キャッシュ制御回路39は、そのキ
ャッシュラインにアクセスを行う。
が”11”の場合、キャッシュ制御回路39は、MMU
4から供給された物理アドレスの上位アドレスに対応す
るtagを有し、且つ、バリッドビットVが”1”(有
効)であるキャッシュラインが、第0キャッシュセット
31と第1キャッシュセット32のいずれかに存在する
か否かを判別する。MMU4から供給された物理アドレ
スに対応するtagを有し、且つ、バリッドビットV
が”1”(有効)であるキャッシュラインが両キャッシ
ュセットのいずれかに存在すると判別されれば、キャッ
シュヒットである。キャッシュ制御回路39は、そのキ
ャッシュラインにアクセスを行う。
【0072】MMU4から供給された物理アドレスに対
応するtagを有するキャッシュラインが第0キャッシ
ュセット31と第1キャッシュセット32とのいずれに
も存在しない場合、又は、存在していても、そのバリッ
ドビットVが”0”(無効)である場合は、キャッシュ
ミスヒットである。この場合には、キャッシュ制御回路
39は、キャッシュリプレースを行うため、MMU4に
その旨を通知する。
応するtagを有するキャッシュラインが第0キャッシ
ュセット31と第1キャッシュセット32とのいずれに
も存在しない場合、又は、存在していても、そのバリッ
ドビットVが”0”(無効)である場合は、キャッシュ
ミスヒットである。この場合には、キャッシュ制御回路
39は、キャッシュリプレースを行うため、MMU4に
その旨を通知する。
【0073】この通知に従って、MMU4は、コントロ
ーラ6を介して、主メモリ2の物理ページアドレスが指
示するエリアから、対応するデータブロックを読み出し
て、キャッシュメモリ3に供給する。キャッシュ制御回
路39は、LRU置換論理に従って、主メモリ2から読
み出されたデータブロックを第0キャッシュセット31
と第1キャッシュセット32とのうち、最も昔に使用さ
れたデータブロック上にコピー(リプレース)する。M
MU4は、リプレースされたキャッシュラインからデー
タを読み出し、またはそのキャッシュラインにデータを
書き込む。
ーラ6を介して、主メモリ2の物理ページアドレスが指
示するエリアから、対応するデータブロックを読み出し
て、キャッシュメモリ3に供給する。キャッシュ制御回
路39は、LRU置換論理に従って、主メモリ2から読
み出されたデータブロックを第0キャッシュセット31
と第1キャッシュセット32とのうち、最も昔に使用さ
れたデータブロック上にコピー(リプレース)する。M
MU4は、リプレースされたキャッシュラインからデー
タを読み出し、またはそのキャッシュラインにデータを
書き込む。
【0074】このように、この実施の形態によれば、ツ
ールを用いた個別処理、コンパイラの設定、ローディン
グプログラムの処理などにより、主メモリ2上の各デー
タブロック(ページ)について、キャッシュの不使用、
第0キャッシュセット31のみ使用、第1キャッシュセ
ット32のみ使用、LRUによるキャッシュセットの選
択の何れかを設定することができる。すなわち、リプレ
ースするキャッシュセットを直接指定したり、LRUの
アルゴリズムでキャッシュセットを選択して、そのキャ
ッシュセットとリプレースを行うことができるため、キ
ャッシュの特定セットを任意のデータブロックに割り当
てるなどのキャッシュ構造に最適化したコードを、キャ
ッシュの状態に依存せずに作り出すことができる。
ールを用いた個別処理、コンパイラの設定、ローディン
グプログラムの処理などにより、主メモリ2上の各デー
タブロック(ページ)について、キャッシュの不使用、
第0キャッシュセット31のみ使用、第1キャッシュセ
ット32のみ使用、LRUによるキャッシュセットの選
択の何れかを設定することができる。すなわち、リプレ
ースするキャッシュセットを直接指定したり、LRUの
アルゴリズムでキャッシュセットを選択して、そのキャ
ッシュセットとリプレースを行うことができるため、キ
ャッシュの特定セットを任意のデータブロックに割り当
てるなどのキャッシュ構造に最適化したコードを、キャ
ッシュの状態に依存せずに作り出すことができる。
【0075】また、特定のデータ(群)を任意のキャッ
シュセットに割り当てた場合には、キャッシュ・ミスヒ
ットによるリプレースを排除でき、メモリの高速アクセ
スが可能となる。このような最適化により、キャッシュ
メモリのヒット率を操作し、性能を向上することができ
る。
シュセットに割り当てた場合には、キャッシュ・ミスヒ
ットによるリプレースを排除でき、メモリの高速アクセ
スが可能となる。このような最適化により、キャッシュ
メモリのヒット率を操作し、性能を向上することができ
る。
【0076】(第2の実施の形態)図5は、本発明の第
2の実施の形態に係るキャッシュメモリ装置の全体構成
を示すブロック図である。上記の第1の実施の形態で
は、2個のキャッシュセットが設置され、その拡張Cビ
ットは、2個のキャッシュセットのうちのいずれかを指
定するものであった。本実施の形態では、拡張Cビット
を、キャッシュセットの指定又はキャッシュセットのグ
ループの指定が可能なようにビット拡張する。
2の実施の形態に係るキャッシュメモリ装置の全体構成
を示すブロック図である。上記の第1の実施の形態で
は、2個のキャッシュセットが設置され、その拡張Cビ
ットは、2個のキャッシュセットのうちのいずれかを指
定するものであった。本実施の形態では、拡張Cビット
を、キャッシュセットの指定又はキャッシュセットのグ
ループの指定が可能なようにビット拡張する。
【0077】図5に示す構成では、拡張Cビットは3ビ
ットであるが、一般には、従来のキャッシュ・コヒーレ
ンシー属性を示す情報に、キャッシュセットの指定又は
キャッシュセットのグループの指定情報を加えた情報を
示すに必要十分なビット数が取られる。この拡張Cビッ
トは、主メモリのアドレス変換テーブルの各エントリに
も設定されている。
ットであるが、一般には、従来のキャッシュ・コヒーレ
ンシー属性を示す情報に、キャッシュセットの指定又は
キャッシュセットのグループの指定情報を加えた情報を
示すに必要十分なビット数が取られる。この拡張Cビッ
トは、主メモリのアドレス変換テーブルの各エントリに
も設定されている。
【0078】以下、本実施の形態に係るキャッシュメモ
リ装置の動作を図5を参照して説明する。CPU1が出
力した仮想アドレスの上位アドレスVPNは、TLB4
1へ入力される。TLBヒットの場合、上位アドレスに
対応する物理ページアドレスPFNと下位アドレスとを
連結して、物理アドレスを求めて、Cビットと共に出力
する。
リ装置の動作を図5を参照して説明する。CPU1が出
力した仮想アドレスの上位アドレスVPNは、TLB4
1へ入力される。TLBヒットの場合、上位アドレスに
対応する物理ページアドレスPFNと下位アドレスとを
連結して、物理アドレスを求めて、Cビットと共に出力
する。
【0079】一方、TLBミスヒットの場合は、主メモ
リ2上のアドレス変換テーブル21を参照して、仮想上
位アドレスVPNに対応する物理ページアドレスPFN
を求め、求めた物理ページアドレスPFNと下位アドレ
スとを連結して、物理アドレスを求め、拡張Cビットと
共に出力する。
リ2上のアドレス変換テーブル21を参照して、仮想上
位アドレスVPNに対応する物理ページアドレスPFN
を求め、求めた物理ページアドレスPFNと下位アドレ
スとを連結して、物理アドレスを求め、拡張Cビットと
共に出力する。
【0080】拡張Cビットが”000”の場合は、un
cache属性が指定されている場合であり、セレクタ
5は、第0キャッシュセット31〜第3キャッシュセッ
ト34のいずれをもイネーブル状態としない。MMU4
は、コントローラ6を介して主メモリ2にアクセスし、
データを読み出し又はデータを書き込む。
cache属性が指定されている場合であり、セレクタ
5は、第0キャッシュセット31〜第3キャッシュセッ
ト34のいずれをもイネーブル状態としない。MMU4
は、コントローラ6を介して主メモリ2にアクセスし、
データを読み出し又はデータを書き込む。
【0081】拡張Cビットが”001”の場合、セレク
タ5は、第0キャッシュセット31のみをアクティブ状
態とする。キャッシュ制御回路39は、第0キャッシュ
セット31上で、キャッシュがヒットするか否かを判別
する。キャッシュヒットの場合、キャッシュ制御回路3
9は、第0キャッシュセット31をアクセスする。
タ5は、第0キャッシュセット31のみをアクティブ状
態とする。キャッシュ制御回路39は、第0キャッシュ
セット31上で、キャッシュがヒットするか否かを判別
する。キャッシュヒットの場合、キャッシュ制御回路3
9は、第0キャッシュセット31をアクセスする。
【0082】一方、キャッシュミスヒットの場合、キャ
ッシュ制御回路39は、キャッシュリプレースを行うた
め、MMU4にキャッシュミスヒットを通知する。この
通知に従って、MMU4は、コントローラ6を介して主
メモリ2から、対応するデータブロックを読み出して、
キャッシュメモリ3に供給する。キャッシュ制御回路3
9は、主メモリ2から読み出されたデータブロックを第
0キャッシュセット31にコピーする。
ッシュ制御回路39は、キャッシュリプレースを行うた
め、MMU4にキャッシュミスヒットを通知する。この
通知に従って、MMU4は、コントローラ6を介して主
メモリ2から、対応するデータブロックを読み出して、
キャッシュメモリ3に供給する。キャッシュ制御回路3
9は、主メモリ2から読み出されたデータブロックを第
0キャッシュセット31にコピーする。
【0083】拡張Cビットが”010”の場合には、セ
レクタ5が第1キャッシュセット32のみをアクティブ
状態とし、キャッシュヒットであれば、第1キャッシュ
セット32にアクセスが行われ、キャッシュミスヒット
であれば、主メモリ2から対応するデータブロックが読
み出されて、第1キャッシュセット32にリプレースさ
れる。
レクタ5が第1キャッシュセット32のみをアクティブ
状態とし、キャッシュヒットであれば、第1キャッシュ
セット32にアクセスが行われ、キャッシュミスヒット
であれば、主メモリ2から対応するデータブロックが読
み出されて、第1キャッシュセット32にリプレースさ
れる。
【0084】拡張Cビットが”011”の場合には、セ
レクタ5が第2キャッシュセット33のみをアクティブ
状態とし、キャッシュヒットであれば、第2キャッシュ
セット33にアクセスが行われ、キャッシュミスヒット
であれば、主メモリ2から対応するデータブロックが読
み出されて、第2キャッシュセット33にリプレースさ
れる。
レクタ5が第2キャッシュセット33のみをアクティブ
状態とし、キャッシュヒットであれば、第2キャッシュ
セット33にアクセスが行われ、キャッシュミスヒット
であれば、主メモリ2から対応するデータブロックが読
み出されて、第2キャッシュセット33にリプレースさ
れる。
【0085】拡張Cビットが”100”の場合には、セ
レクタ5が第3キャッシュセット34のみをアクティブ
状態とし、キャッシュヒットであれば、第3キャッシュ
セット34にアクセスが行われる。キャッシュミスヒッ
トであれば、主メモリ2から対応するデータブロックが
読み出されて、第3キャッシュセット34にリプレース
される。
レクタ5が第3キャッシュセット34のみをアクティブ
状態とし、キャッシュヒットであれば、第3キャッシュ
セット34にアクセスが行われる。キャッシュミスヒッ
トであれば、主メモリ2から対応するデータブロックが
読み出されて、第3キャッシュセット34にリプレース
される。
【0086】次に、拡張Cビットが”101”の場合に
は、セレクタ5は第0キャッシュセット31と第1キャ
ッシュセット32とをアクティブ状態とする。キャッシ
ュ制御回路39は、第0キャッシュセット31又は第1
キャッシュセット32上で、キャッシュがヒットするか
否かを判別する。すなわち、MMU4から供給された物
理上位アドレスに対応するtagを有するキャッシュラ
インが、第0キャッシュセット31又は第1キャッシュ
セット32上に存在し、且つ、そのキャッシュラインの
バリッドビットVが”1”(有効)であるか否かを判別
する。
は、セレクタ5は第0キャッシュセット31と第1キャ
ッシュセット32とをアクティブ状態とする。キャッシ
ュ制御回路39は、第0キャッシュセット31又は第1
キャッシュセット32上で、キャッシュがヒットするか
否かを判別する。すなわち、MMU4から供給された物
理上位アドレスに対応するtagを有するキャッシュラ
インが、第0キャッシュセット31又は第1キャッシュ
セット32上に存在し、且つ、そのキャッシュラインの
バリッドビットVが”1”(有効)であるか否かを判別
する。
【0087】キャッシュヒットであれば、キャッシュ制
御回路39は、ヒットした第0又は第1キャッシュセッ
ト31又は32にアクセスする。
御回路39は、ヒットした第0又は第1キャッシュセッ
ト31又は32にアクセスする。
【0088】一方、キャッシュミスヒットの場合、キャ
ッシュ制御回路39は、キャッシュリプレースを行うた
め、MMU4にキャッシュミスヒットを通知する。この
通知に従って、MMU4は、コントローラ6を介して主
メモリ2の物理上位アドレスPFNで指示される領域か
らデータブロックを読み出して、キャッシュメモリ3に
供給する。キャッシュ制御回路39は、主メモリ2から
読み出されたデータブロックを、LRU置換ルールに従
って、第0キャッシュセット31と第1キャッシュセッ
ト32とのいずれかの、最も昔に使用されたデータブロ
ックの上にコピーする。
ッシュ制御回路39は、キャッシュリプレースを行うた
め、MMU4にキャッシュミスヒットを通知する。この
通知に従って、MMU4は、コントローラ6を介して主
メモリ2の物理上位アドレスPFNで指示される領域か
らデータブロックを読み出して、キャッシュメモリ3に
供給する。キャッシュ制御回路39は、主メモリ2から
読み出されたデータブロックを、LRU置換ルールに従
って、第0キャッシュセット31と第1キャッシュセッ
ト32とのいずれかの、最も昔に使用されたデータブロ
ックの上にコピーする。
【0089】次に、拡張Cビットが”110”の場合に
は、セレクタ5は第2キャッシュセット33と第3キャ
ッシュセット34とをアクティブ状態とする。キャッシ
ュ制御回路39は、第2キャッシュセット33又は第3
キャッシュセット34上で、キャッシュがヒットするか
否かを判別する。
は、セレクタ5は第2キャッシュセット33と第3キャ
ッシュセット34とをアクティブ状態とする。キャッシ
ュ制御回路39は、第2キャッシュセット33又は第3
キャッシュセット34上で、キャッシュがヒットするか
否かを判別する。
【0090】キャッシュヒットであれば、キャッシュ制
御回路39は、ヒットした第2又は第3キャッシュセッ
ト33又は34にアクセスする。
御回路39は、ヒットした第2又は第3キャッシュセッ
ト33又は34にアクセスする。
【0091】一方、キャッシュミスヒットの場合、キャ
ッシュ制御回路39は、MMU4とコントローラ6とを
介して主メモリ2の物理上位アドレスPFNで指示され
る領域からデータブロックを読み出して、LRU置換ル
ールに従って、第2キャッシュセット33と第3キャッ
シュセット33とのいずれかにコピーする。
ッシュ制御回路39は、MMU4とコントローラ6とを
介して主メモリ2の物理上位アドレスPFNで指示され
る領域からデータブロックを読み出して、LRU置換ル
ールに従って、第2キャッシュセット33と第3キャッ
シュセット33とのいずれかにコピーする。
【0092】さらに、拡張Cビットが”111”の場合
には、セレクタ5は第0キャッシュセット31〜第3キ
ャッシュセット34をアクティブ状態とする。キャッシ
ュ制御回路39は、第0キャッシュセット31〜第3キ
ャッシュセット34上で、キャッシュがヒットするか否
かを判別する。
には、セレクタ5は第0キャッシュセット31〜第3キ
ャッシュセット34をアクティブ状態とする。キャッシ
ュ制御回路39は、第0キャッシュセット31〜第3キ
ャッシュセット34上で、キャッシュがヒットするか否
かを判別する。
【0093】キャッシュヒットであれば、キャッシュ制
御回路39は、ヒットしたキャッシュセットにアクセス
する。
御回路39は、ヒットしたキャッシュセットにアクセス
する。
【0094】一方、キャッシュミスヒットの場合、キャ
ッシュ制御回路39は、キャッシュリプレースを行うた
め、MMU4にキャッシュミスヒットを通知する。この
通知に従って、MMU4は、コントローラ6を介して主
メモリ2の物理上位アドレスPFNで指示される領域か
らデータブロックを読み出して、キャッシュメモリ3に
供給する。キャッシュ制御回路39は、主メモリ2から
読み出されたデータブロックを、LRU置換ルールに従
って、第0キャッシュセット31〜第3キャッシュセッ
ト34のいずれかのうちで、最も昔に使用されたデータ
ブロックの上にコピーする。
ッシュ制御回路39は、キャッシュリプレースを行うた
め、MMU4にキャッシュミスヒットを通知する。この
通知に従って、MMU4は、コントローラ6を介して主
メモリ2の物理上位アドレスPFNで指示される領域か
らデータブロックを読み出して、キャッシュメモリ3に
供給する。キャッシュ制御回路39は、主メモリ2から
読み出されたデータブロックを、LRU置換ルールに従
って、第0キャッシュセット31〜第3キャッシュセッ
ト34のいずれかのうちで、最も昔に使用されたデータ
ブロックの上にコピーする。
【0095】第2の実施の形態の構成によっても、各デ
ータブロックが使用するキャッシュセットの指定又はキ
ャッシュセットのグループを、キャッシュの状態に依存
せずに指定し、キャッシュを最適化して使用することが
できる。また、キャッシュセットをグループ化すること
により、より細かくキャッシュ構造に最適化した制御を
行うことができる。しかも、通常のLRU論理などのの
置換アルゴリズムも、グループ化されたキャッシュセッ
トのグループ内のブロックに対して適用することができ
る。
ータブロックが使用するキャッシュセットの指定又はキ
ャッシュセットのグループを、キャッシュの状態に依存
せずに指定し、キャッシュを最適化して使用することが
できる。また、キャッシュセットをグループ化すること
により、より細かくキャッシュ構造に最適化した制御を
行うことができる。しかも、通常のLRU論理などのの
置換アルゴリズムも、グループ化されたキャッシュセッ
トのグループ内のブロックに対して適用することができ
る。
【0096】上記の各実施の形態においては、キャッシ
ュセットの指定又はキャッシュセットのグループの指定
ビットを、従来のキャッシュ・コヒーレンシー属性を示
すCビットを拡張する方法で設置したが、一般には、T
LBエントリ又はアドレス変換テーブルのエントリ内
で、両者を別個の領域として設置することができる。
ュセットの指定又はキャッシュセットのグループの指定
ビットを、従来のキャッシュ・コヒーレンシー属性を示
すCビットを拡張する方法で設置したが、一般には、T
LBエントリ又はアドレス変換テーブルのエントリ内
で、両者を別個の領域として設置することができる。
【0097】上記の各実施の形態において、キャッシュ
セットの指定又はキャッシュセットのグループを指定す
るための指定値を主メモリ上のアドレス変換テーブルに
設定する手法などは任意に変更可能である。例えば、主
メモリ2上のアドレス変換テーブル21には、拡張Cビ
ットを配置せず、アドレス変換テーブルの写しをTLB
に生成する際に、拡張Cビットを設定するようにしても
よい。
セットの指定又はキャッシュセットのグループを指定す
るための指定値を主メモリ上のアドレス変換テーブルに
設定する手法などは任意に変更可能である。例えば、主
メモリ2上のアドレス変換テーブル21には、拡張Cビ
ットを配置せず、アドレス変換テーブルの写しをTLB
に生成する際に、拡張Cビットを設定するようにしても
よい。
【0098】上記第1及び第2の実施の形態において
は、キャッシュメモリ3をアクセスする際にも、セレク
タ5が、拡張Cビットに対応するキャッシュセットのみ
をアクティブ状態にしたが、アクセス時は、全キャッシ
ュセットをアクティブとして、キャッシュヒット・ミス
ヒットを判別し、リプレース処理のタイミングでのみ、
セレクタ5を動作させてもよい。
は、キャッシュメモリ3をアクセスする際にも、セレク
タ5が、拡張Cビットに対応するキャッシュセットのみ
をアクティブ状態にしたが、アクセス時は、全キャッシ
ュセットをアクティブとして、キャッシュヒット・ミス
ヒットを判別し、リプレース処理のタイミングでのみ、
セレクタ5を動作させてもよい。
【0099】
【発明の効果】以上に説明したとおり、本発明に係るキ
ャッシュメモリ装置によれば、例えば、キャッシュ・ミ
ス(不必要なリプレーシング処理の多発)があった場
合、或いはキャッシュがミスすることが予見される場合
には、リプレースが実行されるキャッシュセットをプロ
グラム上から直接指定したり、場合によっては通常のL
RU論理の置換アルゴリズムを実施することができる。
従って、コンパイラ等で、特定のキャッシュセットを任
意のブロックに強制的に割り当てるなどの、キャッシュ
構造に最適化したコードを生成することが可能となり、
これにより、キャッシュ状態に依存せずに、最適なキャ
ッシュの制御を実施することができる。
ャッシュメモリ装置によれば、例えば、キャッシュ・ミ
ス(不必要なリプレーシング処理の多発)があった場
合、或いはキャッシュがミスすることが予見される場合
には、リプレースが実行されるキャッシュセットをプロ
グラム上から直接指定したり、場合によっては通常のL
RU論理の置換アルゴリズムを実施することができる。
従って、コンパイラ等で、特定のキャッシュセットを任
意のブロックに強制的に割り当てるなどの、キャッシュ
構造に最適化したコードを生成することが可能となり、
これにより、キャッシュ状態に依存せずに、最適なキャ
ッシュの制御を実施することができる。
【0100】また、参照頻度が高いブロックであること
が予見されるような特定のブロックを、いずれかのキャ
ッシュセットに割り当てることにより、キャッシュ・ミ
スによるリプレーシング処理を排除して、キャッシュセ
ットを占有させることが出来るため、以後の上記ブロッ
クのアクセスについては、外部メモリ・アクセスでは1
サイクル毎に8クロックを必要とするところを、零クロ
ックとすることが出来る。
が予見されるような特定のブロックを、いずれかのキャ
ッシュセットに割り当てることにより、キャッシュ・ミ
スによるリプレーシング処理を排除して、キャッシュセ
ットを占有させることが出来るため、以後の上記ブロッ
クのアクセスについては、外部メモリ・アクセスでは1
サイクル毎に8クロックを必要とするところを、零クロ
ックとすることが出来る。
【0101】このようなキャッシュ制御の最適化によ
り、キャッシュのヒット率を向上せしめ、情報処理装置
の性能向上に寄与させることが可能となる。また、キャ
ッシュセットをグループ化することにより、より細かく
キャッシュ構造に最適化したコードを生成し、キャッシ
ュ状態に依存しない制御を適用することができる。しか
も、通常のLRU論理の置換アルゴリズムも、グループ
化されたキャッシュセットのグループ内のブロックに対
しては部分的に適用することができる。
り、キャッシュのヒット率を向上せしめ、情報処理装置
の性能向上に寄与させることが可能となる。また、キャ
ッシュセットをグループ化することにより、より細かく
キャッシュ構造に最適化したコードを生成し、キャッシ
ュ状態に依存しない制御を適用することができる。しか
も、通常のLRU論理の置換アルゴリズムも、グループ
化されたキャッシュセットのグループ内のブロックに対
しては部分的に適用することができる。
【図1】図1は、本発明の第1の実施の形態に係るキャ
ッシュメモリ装置の全体構成を示すブロック図である。
ッシュメモリ装置の全体構成を示すブロック図である。
【図2】TLBのエントリの一例を示す図である。
【図3】主メモリ上に形成されるアドレス変換テーブル
の一例を示す図である。
の一例を示す図である。
【図4】本発明の第1の実施の形態に係るキャッシュメ
モリ装置の動作を説明するための図である。
モリ装置の動作を説明するための図である。
【図5】本発明の第2の実施の形態に係るキャッシュメ
モリ装置の動作を説明するためのブロック図である。
モリ装置の動作を説明するためのブロック図である。
【図6】従来のキャッシュメモリ装置の全体構成を示す
ブロック図である。
ブロック図である。
1 CPU 2 主メモリ 3 キャッシュメモリ 4 MMU(メモリマッピングユニット) 5 セレクタ 6 コントローラ 7 周辺機器 31 第0キャッシュセット 32 第1キャッシュセット 33 第2キャッシュセット 34 第3キャッシュセット 39 キャッシュ制御回路 41 TLB(高速変換緩衝機構)
Claims (13)
- 【請求項1】複数個のキャッシュセットを持つセットア
ソシアティブ方式のキャッシュメモリと、仮想アドレス
の一部と前記キャッシュメモリ内エントリとの対応をア
ドレス変換情報として持つ高速変換緩衝機構と、所定の
置換論理でリプレーシング制御を実行する制御回路を備
えたキャッシュメモリ装置を持つ、仮想記憶方式のプロ
セッサにおいて、 前記高速変換緩衝機構の各エントリは、当該エントリに
対応したブロックのデータについて、前記キャッシュメ
モリ装置内のキャッシュセット又はキャッシュセットの
グループを指定する指定値を格納するための指定ビット
領域を備え、 前記制御回路は、前記高速変換緩衝機構のエントリの指
定ビット領域に、前記指定値が格納されている場合に、
前記指定値により指定されたキャッシュセット又はキャ
ッシュセットのグループを選択する、 ことを特徴とするキャッシュメモリ装置。 - 【請求項2】前記高速変換緩衝機構のエントリの指定ビ
ット領域は、当該エントリがキャシュメモリを使用する
か否かを指定する情報と使用するキャッシュセットまた
はキャッシュセットのグループを選択する情報とを格納
する、 を特徴とする請求項1に記載のキャッシュメモリ装置。 - 【請求項3】データをブロック単位で記憶すると共に各
ブロックのデータの仮想アドレスと物理アドレスと該ブ
ロックがいずれのキャッシュセット又はキャッシュセッ
トのグループを使用するかを示す指定値とを対応付けて
記憶するアドレス変換テーブルを記憶する主メモリを備
え、 前記制御回路は、前記キャッシュ装置でミスヒットとな
った場合に、アクセス対象のデータの主メモリ内のブロ
ックデータを、指定値が示すキャッシュセット又はキャ
ッシュセットのグループにリプレースする、 ことを特徴とする請求項1又は2に記載のキャッシュメ
モリ装置。 - 【請求項4】データを前記主メモリにロードする際に、
前記アドレス変換テーブルに、ロードするデータブロッ
クの仮想アドレスと主メモリ内の物理アドレスと該ブロ
ックがいずれのキャッシュセット又はキャッシュセット
のグループを使用するかを示す指定値とを対応付けて格
納する手段を備える、ことを特徴とする請求項3に記載
のキャッシュメモリ装置。 - 【請求項5】前記キャッシュセット又はキャッシュセッ
トのグループと実質的に同一の容量のデータブロック
に、同一の指定値を設定することにより、前記キャッシ
ュセット又はキャッシュセットのグループをリプレース
の起こらない高速メモリとして使用する、ことを特徴と
する請求項4に記載のキャッシュメモリ装置。 - 【請求項6】前記制御回路は、前記指定値がキャッシュ
セットのグループを指定している場合に、指定されたグ
ループ内のキャッシュセットを所定の置換論理で選択し
てリプレース処理を行う、ことを特徴とする請求項1乃
至5のいずれ1項に記載のキャッシュメモリ装置。 - 【請求項7】複数個のキャッシュセットを有するセット
アソシアティブ方式のキャッシュメモリと、 データをブロック単位で記憶する主メモリと、 前記主メモリにデータのブロックをロードする際に、該
データブロックについて、該データブロックが使用する
前記キャッシュメモリのキャッシュセット又はキャッシ
ュセットのグループを指定する指定データを設定する手
段と、 前記主メモリ上のデータブロックを前記キャッシュメモ
リに格納する際に、対応する指定データに従ってキャッ
シュセット又はキャッシュセットのグループを選択し、
選択したキャッシュセットに該データブロックを格納す
る制御手段と、を備えることを特徴とするキャッシュメ
モリ装置。 - 【請求項8】ブロック単位でデータを記憶する主メモリ
と、複数個のキャッシュセットを持ち、主メモリ上のデ
ータの写しを記憶するキャッシュメモリと、仮想アドレ
スを物理アドレスに変換するアドレス変換手段と、キャ
ッシュミスヒットが発生した場合に、所定の置換論理
で、ブロック単位で、キャッシュメモリ上のデータを主
メモリ上のデータにリプレーシングする制御回路と、を
備えたキャッシュメモリ装置において、 アドレス変換手段は、各ブロックのデータについて、前
記キャッシュメモリ装置内のキャッシュセット又はキャ
ッシュセットのグループを指定する指定情報を含み、 前記制御回路は、リプレース対象のデータブロックにつ
いて、アドレス変換手段に指定情報が設定されている場
合に、指定情報により指定されたキャッシュセット又は
キャッシュセットのグループを選択して、該当するブロ
ックのデータをリプレースする、 ことを特徴とするキャッシュメモリ装置。 - 【請求項9】前記指定情報は、対応するデータブロック
がキャシュメモリを使用するか否かを指定する情報と使
用するキャッシュセットまたはキャッシュセットのグル
ープを選択する情報とを含む、ことを特徴とする請求項
8に記載のキャッシュメモリ装置。 - 【請求項10】前記アドレス変換手段は、 前記主メモリ上に配置され、各ブロックのデータの仮想
アドレスと物理アドレスと該ブロックがいずれのキャッ
シュセット又はキャッシュセットのグループを使用する
かを示す指定値とを対応付けて記憶するアドレス変換テ
ーブルと、 前記アドレス変換テーブルの写しを記憶する高速変換緩
衝機構と、を備える、ことを特徴とする請求項8または
9に記載のキャッシュメモリ装置。 - 【請求項11】供給された仮想アドレスを前記高速変換
緩衝機構により物理アドレスに変換し、高速変換緩衝機
構でミスヒットとなった場合に、アドレス変換テーブル
で物理アドレスに変換する手段と、 前記高速変換緩衝機構またはアドレス変換テーブルによ
り変換された物理アドレスを用いて前記キャッシュメモ
リをアクセスするアクセス手段と、をさらに備え、 前記アクセス手段によりアクセスされたキャッシュメモ
リで、キャッシュミスとなった場合に、前記制御回路
は、判別した物理アドレスに位置する主メモリ上のブロ
ックデータを、指定値が示すキャッシュセット又はキャ
ッシュセットのグループにリプレースする、ことを特徴
とする請求項10に記載のキャッシュメモリ装置。 - 【請求項12】データを前記主メモリにロードする際
に、前記アドレス変換テーブルに、ロードするデータブ
ロックの仮想アドレスと主メモリ内の物理アドレスと該
ブロックがいずれのキャッシュセット又はキャッシュセ
ットのグループを使用するかを示す指定値とを対応付け
て格納する手段を備える、ことを特徴とする請求項10
または11に記載のキャッシュメモリ装置。 - 【請求項13】複数個のキャッシュセットを備えるキャ
ッシュメモリ上のデータブロックを所定の置換論理で主
メモリ上の他のデータにリプレーシングし、該リプレー
シングするキャッシュメモリ制御方法において、 主メモリ上の各データブロックに、そのデータブロック
がリプレーシングによりロードされるキャッシュセット
又はキャッシュセットのグループを指定する指定ビット
を対応付けて配置し、 リプレーシング対象のデータブロックの指定ビットによ
り指定されたキャッシュセット又はキャッシュセットの
グループを選択して、リプレーシング処理を実効する、 ことを特徴とするキャッシュメモリ制御方法。
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP11096858A JP2000293437A (ja) | 1999-04-02 | 1999-04-02 | キャッシュメモリ装置及びキャッシュメモリ制御方法 |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP11096858A JP2000293437A (ja) | 1999-04-02 | 1999-04-02 | キャッシュメモリ装置及びキャッシュメモリ制御方法 |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| JP2000293437A true JP2000293437A (ja) | 2000-10-20 |
Family
ID=14176180
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP11096858A Pending JP2000293437A (ja) | 1999-04-02 | 1999-04-02 | キャッシュメモリ装置及びキャッシュメモリ制御方法 |
Country Status (1)
| Country | Link |
|---|---|
| JP (1) | JP2000293437A (ja) |
Cited By (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2005215911A (ja) * | 2004-01-29 | 2005-08-11 | Hitachi Ltd | 情報処理装置 |
| WO2006038258A1 (ja) * | 2004-09-30 | 2006-04-13 | Renesas Technology Corp. | データプロセッサ |
-
1999
- 1999-04-02 JP JP11096858A patent/JP2000293437A/ja active Pending
Cited By (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2005215911A (ja) * | 2004-01-29 | 2005-08-11 | Hitachi Ltd | 情報処理装置 |
| WO2006038258A1 (ja) * | 2004-09-30 | 2006-04-13 | Renesas Technology Corp. | データプロセッサ |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| JP4256167B2 (ja) | コンピュータメモリ保護方式の拡張機構 | |
| JP3859757B2 (ja) | 仮想アドレスについてのキャッシュ可能性属性ビットを備えた変換テーブル・エントリ及びそのビットを用いた仮想アドレスの参照方法並びにその仮想アドレスの参照装置 | |
| US5689679A (en) | Memory system and method for selective multi-level caching using a cache level code | |
| US6766419B1 (en) | Optimization of cache evictions through software hints | |
| US4811209A (en) | Cache memory with multiple valid bits for each data indication the validity within different contents | |
| JPS6136667B2 (ja) | ||
| JP3666689B2 (ja) | 仮想アドレス変換方法 | |
| US5555395A (en) | System for memory table cache reloads in a reduced number of cycles using a memory controller to set status bits in the main memory table | |
| US20080177952A1 (en) | Method and Apparatus for Setting Cache Policies in a Processor | |
| US10031854B2 (en) | Memory system | |
| US20110167224A1 (en) | Cache memory, memory system, data copying method, and data rewriting method | |
| JP2012533124A (ja) | ブロックベースの非透過的キャッシュ | |
| US20190155740A1 (en) | Semiconductor device and cache memory control method for reducing power consumption | |
| EP1107123B1 (en) | Smart cache | |
| US6553477B1 (en) | Microprocessor and address translation method for microprocessor | |
| JPH0661068B2 (ja) | 記憶再配置方法および階層化記憶システム | |
| US6651156B1 (en) | Mechanism for extending properties of virtual memory pages by a TLB | |
| JPH04242848A (ja) | 走行モード別キャッシュメモリ制御方式 | |
| JPH11288386A (ja) | コンピュータシステム | |
| CN100541452C (zh) | 处理高速缓存未命中的方法和装置 | |
| JP3973129B2 (ja) | キャッシュメモリ装置及びそれを用いた中央演算処理装置 | |
| JP2007280421A (ja) | データ処理装置 | |
| US7099998B1 (en) | Method for reducing an importance level of a cache line | |
| JPH11143774A (ja) | キャッシュ制御機構 | |
| JP4057699B2 (ja) | 記憶システム |