JP2003131945A - キャッシュメモリ装置 - Google Patents
キャッシュメモリ装置Info
- Publication number
- JP2003131945A JP2003131945A JP2001327105A JP2001327105A JP2003131945A JP 2003131945 A JP2003131945 A JP 2003131945A JP 2001327105 A JP2001327105 A JP 2001327105A JP 2001327105 A JP2001327105 A JP 2001327105A JP 2003131945 A JP2003131945 A JP 2003131945A
- Authority
- JP
- Japan
- Prior art keywords
- cache
- way
- mode
- memory
- memory device
- 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
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0864—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches using pseudo-associative means, e.g. set-associative or hashing
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/10—Providing a specific technical effect
- G06F2212/1028—Power efficiency
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/50—Control mechanisms for virtual memory, cache or TLB
- G06F2212/502—Control mechanisms for virtual memory, cache or TLB using adaptive policy
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
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)【要約】
【課題】セットアソシアティブ方式のキャッシュは、キ
ャッシュのヒット率が高いが、消費電力が大きいという
問題点がある。しかし、プロセッサが実行する処理の中
には、ヒット率を下げてでも消費電力を下げたい場合が
ある。通常のセットアソシアティブ方式のキャッシュで
は、このような要求には対応出来ない。 【解決手段】本発明ではモードレジスタを用意し、その
内容によりキャッシュのウェイ数を切り換える。セット
アソシアティブモードでは全てのウェイをアクセスし、
各ウェイのヒット判定結果を元に使用するウェイを決定
する。ダイレクトマップモードでは、キャッシュアクセ
スアドレスの一部を用いて使用するウェイを選択する。
ャッシュのヒット率が高いが、消費電力が大きいという
問題点がある。しかし、プロセッサが実行する処理の中
には、ヒット率を下げてでも消費電力を下げたい場合が
ある。通常のセットアソシアティブ方式のキャッシュで
は、このような要求には対応出来ない。 【解決手段】本発明ではモードレジスタを用意し、その
内容によりキャッシュのウェイ数を切り換える。セット
アソシアティブモードでは全てのウェイをアクセスし、
各ウェイのヒット判定結果を元に使用するウェイを決定
する。ダイレクトマップモードでは、キャッシュアクセ
スアドレスの一部を用いて使用するウェイを選択する。
Description
【0001】
【発明の属する技術分野】本発明は、キャッシュメモリ
を搭載したプロセッサに関するものである。
を搭載したプロセッサに関するものである。
【0002】
【従来の技術】近年のプロセッサは、メモリアクセス性
能を向上させるために、外部メモリよりも高速にアクセ
ス可能なキャッシュメモリを搭載しているものが多い。
キャッシュメモリの制御方式には、ダイレクトマップ方
式とセットアソシアティブ方式がある。セットアソシア
ティブ方式は、キャッシュを複数のウェイに分割してア
クセスする方式であり、ダイレクトマップ方式に比べて
高いヒット率を実現することができる。しかし、複数の
ウェイを同時にアクセスするため、消費電力が増大して
しまうという欠点がある。この問題を解決するため、特
開2000−298618号公報では、セットアソシア
ティブ方式のキャッシュの、いくつかのセットを使用禁
止にする機構を備えることで、プロセッサ動作中に動的
に消費電力を下げる方法が記載されている。
能を向上させるために、外部メモリよりも高速にアクセ
ス可能なキャッシュメモリを搭載しているものが多い。
キャッシュメモリの制御方式には、ダイレクトマップ方
式とセットアソシアティブ方式がある。セットアソシア
ティブ方式は、キャッシュを複数のウェイに分割してア
クセスする方式であり、ダイレクトマップ方式に比べて
高いヒット率を実現することができる。しかし、複数の
ウェイを同時にアクセスするため、消費電力が増大して
しまうという欠点がある。この問題を解決するため、特
開2000−298618号公報では、セットアソシア
ティブ方式のキャッシュの、いくつかのセットを使用禁
止にする機構を備えることで、プロセッサ動作中に動的
に消費電力を下げる方法が記載されている。
【0003】
【発明が解決しようとする課題】特開2000−298
618号の手法では、いくつかのセットを使用禁止にす
ることによりキャッシュのウェイを減らしているため、
ウェイ数を削減した時には使用可能なキャッシュの総容
量も減ってしまう。このため、ウェイ数の減少および使
用可能なキャッシュの総容量の減少という二つの要因に
より、キャッシュのヒット率が大幅に低下してしまうと
いう問題がある。
618号の手法では、いくつかのセットを使用禁止にす
ることによりキャッシュのウェイを減らしているため、
ウェイ数を削減した時には使用可能なキャッシュの総容
量も減ってしまう。このため、ウェイ数の減少および使
用可能なキャッシュの総容量の減少という二つの要因に
より、キャッシュのヒット率が大幅に低下してしまうと
いう問題がある。
【0004】本発明は、セットアソシアティブ方式のキ
ャッシュにおいて、使用可能なキャッシュの総容量を減
らすことなく使用するウェイ数を減らす手段を提供する
ことでこの問題を解決する。
ャッシュにおいて、使用可能なキャッシュの総容量を減
らすことなく使用するウェイ数を減らす手段を提供する
ことでこの問題を解決する。
【0005】
【課題を解決するための手段】本発明ではモードレジス
タを用意し、その内容によりキャッシュのウェイ数を切
り換える。セットアソシアティブモードでは全てのウェ
イをアクセスし、各ウェイのヒット判定結果を元に使用
するウェイを決定する。ダイレクトマップモードでは、
キャッシュアクセスアドレスの一部を用いて使用するウ
ェイを選択することにより、使用可能なキャッシュの総
容量を減らすことなく、使用するウェイ数の削減を実現
する。
タを用意し、その内容によりキャッシュのウェイ数を切
り換える。セットアソシアティブモードでは全てのウェ
イをアクセスし、各ウェイのヒット判定結果を元に使用
するウェイを決定する。ダイレクトマップモードでは、
キャッシュアクセスアドレスの一部を用いて使用するウ
ェイを選択することにより、使用可能なキャッシュの総
容量を減らすことなく、使用するウェイ数の削減を実現
する。
【0006】
【発明の実施の形態】本発明の実施例を図1〜7を用い
て説明する。この実施例は、本発明を2ウェイの命令キ
ャッシュに適用したものである。
て説明する。この実施例は、本発明を2ウェイの命令キ
ャッシュに適用したものである。
【0007】図1は、本発明を用いたプロセッサのブロ
ック図である。プロセッサ9000は、命令キャッシュ
ユニット1、演算器ユニット9001、データキャッシ
ュユニット9002、メモリ制御ユニット9003から
構成されている。このうち、命令キャッシュユニット
1、データキャッシュユニット9002、メモリ制御ユ
ニット9003は、プロセッサ内部バス9005により
接続されている。また、この図には記載されていない
が、プロセッサ9000の外部に接続した周辺機器を制
御するための周辺機器制御ユニットをプロセッサ内部バ
ス9005に接続し、演算器9001から周辺機器を制
御することも可能である。
ック図である。プロセッサ9000は、命令キャッシュ
ユニット1、演算器ユニット9001、データキャッシ
ュユニット9002、メモリ制御ユニット9003から
構成されている。このうち、命令キャッシュユニット
1、データキャッシュユニット9002、メモリ制御ユ
ニット9003は、プロセッサ内部バス9005により
接続されている。また、この図には記載されていない
が、プロセッサ9000の外部に接続した周辺機器を制
御するための周辺機器制御ユニットをプロセッサ内部バ
ス9005に接続し、演算器9001から周辺機器を制
御することも可能である。
【0008】命令キャッシュユニット1は、命令キャッ
シュおよびその制御回路から構成されている。演算器9
001は、命令キャッシュユニット1から受け取った命
令に従って、演算処理やデータキャッシュユニット90
02に対するアクセスを行う。データキャッシュユニッ
ト9002は、データキャッシュおよびその制御回路か
ら構成されている。メモリ制御ユニット9003は、プ
ロセッサ内部バス9005経由で送られてきたメモリア
クセス要求に従って、外部メモリ9004をアクセスす
る。
シュおよびその制御回路から構成されている。演算器9
001は、命令キャッシュユニット1から受け取った命
令に従って、演算処理やデータキャッシュユニット90
02に対するアクセスを行う。データキャッシュユニッ
ト9002は、データキャッシュおよびその制御回路か
ら構成されている。メモリ制御ユニット9003は、プ
ロセッサ内部バス9005経由で送られてきたメモリア
クセス要求に従って、外部メモリ9004をアクセスす
る。
【0009】本実施例のプロセッサでは、命令のアドレ
ス空間は4ギガバイトであり、各命令のアドレスは32
ビット幅のバイトアドレスで指定する。命令キャッシュ
の総容量は32キロバイトであり、16バイトの容量を
もつキャッシュライン単位で管理されている。各命令は
4バイト幅の固定長であり、1キャッシュライン当たり
4個の命令を格納することができる。
ス空間は4ギガバイトであり、各命令のアドレスは32
ビット幅のバイトアドレスで指定する。命令キャッシュ
の総容量は32キロバイトであり、16バイトの容量を
もつキャッシュライン単位で管理されている。各命令は
4バイト幅の固定長であり、1キャッシュライン当たり
4個の命令を格納することができる。
【0010】実行する命令が命令キャッシュユニット1
内の命令キャッシュに格納されている場合、すなわち命
令キャッシュがヒットしている場合には、演算器900
1は命令キャッシュから命令を読み出して実行する。命
令キャッシュに必要な命令が格納されていない場合、す
なわち命令キャッシュがミスした場合には、外部メモリ
9004から必要な命令を命令キャッシュへ転送する。
この動作をキャッシュフィルと呼ぶ。キャッシュフィル
を行っている間は、演算器9001に対して必要な命令
を供給できないため、演算器9001は命令の実行を停
止する。この転送が完了したあと、演算器9001は命
令の実行を再開する。
内の命令キャッシュに格納されている場合、すなわち命
令キャッシュがヒットしている場合には、演算器900
1は命令キャッシュから命令を読み出して実行する。命
令キャッシュに必要な命令が格納されていない場合、す
なわち命令キャッシュがミスした場合には、外部メモリ
9004から必要な命令を命令キャッシュへ転送する。
この動作をキャッシュフィルと呼ぶ。キャッシュフィル
を行っている間は、演算器9001に対して必要な命令
を供給できないため、演算器9001は命令の実行を停
止する。この転送が完了したあと、演算器9001は命
令の実行を再開する。
【0011】命令キャッシュユニット1は、キャッシュ
制御回路2とキャッシュデータパス3から構成されてい
る。
制御回路2とキャッシュデータパス3から構成されてい
る。
【0012】キャッシュ制御回路2の内部構成を図2に
示す。キャッシュ制御回路2は、制御信号生成回路2
3、アドレス生成回路24、キャッシュ制御ステートマ
シン21、LRUメモリ20、モードレジスタ22から
構成されている。
示す。キャッシュ制御回路2は、制御信号生成回路2
3、アドレス生成回路24、キャッシュ制御ステートマ
シン21、LRUメモリ20、モードレジスタ22から
構成されている。
【0013】制御信号生成回路23は、キャッシュデー
タパス3内にあるキャッシュを構成する各メモリ30
a、30b、31a、31bに対する制御信号1002
a−d、1003a−d生成などを行う回路である。
タパス3内にあるキャッシュを構成する各メモリ30
a、30b、31a、31bに対する制御信号1002
a−d、1003a−d生成などを行う回路である。
【0014】アドレス生成回路24は、キャッシュメモ
リをアクセスするためのアドレス1004の生成などを
行う回路である。ここで生成されたアドレス1004
は、キャッシュミス時に外部メモリをアクセスするため
のアドレスとしても使用される。キャッシュ制御ステー
トマシン21は、内部にステートマシンを持ち、キャッ
シュミス時のキャッシュフィル動作などの制御を行う。
リをアクセスするためのアドレス1004の生成などを
行う回路である。ここで生成されたアドレス1004
は、キャッシュミス時に外部メモリをアクセスするため
のアドレスとしても使用される。キャッシュ制御ステー
トマシン21は、内部にステートマシンを持ち、キャッ
シュミス時のキャッシュフィル動作などの制御を行う。
【0015】LRUメモリ20は1ビット幅×1024
エントリーのメモリであり、対応するキャッシュエント
リーにおいてどちらのウェイが最後に使用されたかを表
す情報を格納する。本キャッシュが2ウェイキャッシュ
として動作しているときには、キャッシュフィル時に上
書するウェイの決定にLRUメモリ20の内容を使用す
る。キャッシュフィル対象のエントリーに対応するLR
Uメモリ20の内容が0ならばウェイ0が最後に使用さ
れたウェイであり、ウェイ1が上書の対象となる。LR
Uメモリ20の内容が1ならばウェイ1が最後に使用さ
れたエントリーであり、ウェイ0が上書の対象となる。
エントリーのメモリであり、対応するキャッシュエント
リーにおいてどちらのウェイが最後に使用されたかを表
す情報を格納する。本キャッシュが2ウェイキャッシュ
として動作しているときには、キャッシュフィル時に上
書するウェイの決定にLRUメモリ20の内容を使用す
る。キャッシュフィル対象のエントリーに対応するLR
Uメモリ20の内容が0ならばウェイ0が最後に使用さ
れたウェイであり、ウェイ1が上書の対象となる。LR
Uメモリ20の内容が1ならばウェイ1が最後に使用さ
れたエントリーであり、ウェイ0が上書の対象となる。
【0016】モードレジスタ22は、キャッシュの動作
を指定する1ビットのレジスタである。レジスタ22の
内容が0ならばダイレクトマップキャッシュモードであ
り、1ならば2ウェイキャッシュモードである。モード
レジスタ22の内容は、モード信号1001により他の
回路へ通知される。モードレジスタ22は、プロセッサ
の命令によって、変更することが可能である。
を指定する1ビットのレジスタである。レジスタ22の
内容が0ならばダイレクトマップキャッシュモードであ
り、1ならば2ウェイキャッシュモードである。モード
レジスタ22の内容は、モード信号1001により他の
回路へ通知される。モードレジスタ22は、プロセッサ
の命令によって、変更することが可能である。
【0017】キャッシュデータパス3の内部構成を図3
に示す。キャッシュデータパス3は、タグメモリ30
a、30b、データメモリ31a、31b、キャッシュ
のヒット判定を行うヒット判定回路32、各ウェイから
読み出した命令を選択するためのセレクタ33から構成
されている。
に示す。キャッシュデータパス3は、タグメモリ30
a、30b、データメモリ31a、31b、キャッシュ
のヒット判定を行うヒット判定回路32、各ウェイから
読み出した命令を選択するためのセレクタ33から構成
されている。
【0018】タグメモリ30a、30bは、どちらも1
9ビット幅×1024エントリーのメモリであり、各エ
ントリーには18ビットのタグアドレスと1ビットの有
効ビットが格納される。これらの値は、各ウェイのヒッ
ト判定に使用される。
9ビット幅×1024エントリーのメモリであり、各エ
ントリーには18ビットのタグアドレスと1ビットの有
効ビットが格納される。これらの値は、各ウェイのヒッ
ト判定に使用される。
【0019】データメモリ31a、31bは、どちらも
128ビット幅×1024エントリーのメモリであり、
各エントリーには4つの命令が格納される。メモリ一つ
あたりの容量は16キロバイトとなり、これを2つ搭載
することで、キャッシュの総容量は32キロバイトとな
る。
128ビット幅×1024エントリーのメモリであり、
各エントリーには4つの命令が格納される。メモリ一つ
あたりの容量は16キロバイトとなり、これを2つ搭載
することで、キャッシュの総容量は32キロバイトとな
る。
【0020】メモリ30a、30b、31a、31bに
は、アドレス端子、データ入力端子、データ出力端子、
チップセレクト端子、ライト端子、およびクロック端子
がある。クロックに関しては、図が煩雑になるのを避け
るため、図中には表記しない。またクロックの使用は一
般のプロセッサでも自明のことなので、以下の文章でも
特に必要が無い限り説明を省略する。メモリ30a、3
0b、31a、31bのアドレス端子には、キャッシュ
アクセスアドレス1004のビット13からビット4
(以下、キャッシュアクセスアドレス1004[13:
4]のように表現する)が接続される。ビット位置は、
数が大きいほうがMSB側(上位側)である。メモリ3
0のデータ入力端子には、キャッシュアクセスアドレス
1004[31:14]および有効ビット書き込みデー
タ1007が接続される。通常のキャッシュフィルの際
は、書き込む有効ビット1007の値は常に1である。
キャッシュの無効化を行う際には、有効ビットへの書き
込みデータ1007を0にする。
は、アドレス端子、データ入力端子、データ出力端子、
チップセレクト端子、ライト端子、およびクロック端子
がある。クロックに関しては、図が煩雑になるのを避け
るため、図中には表記しない。またクロックの使用は一
般のプロセッサでも自明のことなので、以下の文章でも
特に必要が無い限り説明を省略する。メモリ30a、3
0b、31a、31bのアドレス端子には、キャッシュ
アクセスアドレス1004のビット13からビット4
(以下、キャッシュアクセスアドレス1004[13:
4]のように表現する)が接続される。ビット位置は、
数が大きいほうがMSB側(上位側)である。メモリ3
0のデータ入力端子には、キャッシュアクセスアドレス
1004[31:14]および有効ビット書き込みデー
タ1007が接続される。通常のキャッシュフィルの際
は、書き込む有効ビット1007の値は常に1である。
キャッシュの無効化を行う際には、有効ビットへの書き
込みデータ1007を0にする。
【0021】メモリの動作はクロックの立ち上がり時
の、チップセレクト端子およびライト端子の状態によっ
て決定される。この関係を図4に示す。チップセレクト
端子への入力信号が0の時には、メモリに対するアクセ
スは行われず、メモリの消費電力はほとんど0となる。
チップセレクト端子への入力信号が1の時には、ライト
端子への入力信号が1ならばメモリに対する書き込みが
行われる。0ならばメモリからの読み出しが実行され
る。各メモリのそれぞれの端子に接続される信号は、図
5のとおりである。
の、チップセレクト端子およびライト端子の状態によっ
て決定される。この関係を図4に示す。チップセレクト
端子への入力信号が0の時には、メモリに対するアクセ
スは行われず、メモリの消費電力はほとんど0となる。
チップセレクト端子への入力信号が1の時には、ライト
端子への入力信号が1ならばメモリに対する書き込みが
行われる。0ならばメモリからの読み出しが実行され
る。各メモリのそれぞれの端子に接続される信号は、図
5のとおりである。
【0022】ヒット判定回路32は、キャッシュアクセ
スアドレス1004およびタグメモリ30a、30bか
ら読み出したタグアドレス2200a、2200bと有
効ビット2201a、2201bを用いてキャッシュの
ヒット判定を行う。ヒット判定回路32は、2つのウェ
イヒット判定回路342a、342b、フリップフロッ
プ341、OR回路343から構成される。フリップフ
ロップ341はメモリからの出力データが入力アドレス
よりも1クロック遅れて出てくるため、それらのタイミ
ングを合わせるために使用される。
スアドレス1004およびタグメモリ30a、30bか
ら読み出したタグアドレス2200a、2200bと有
効ビット2201a、2201bを用いてキャッシュの
ヒット判定を行う。ヒット判定回路32は、2つのウェ
イヒット判定回路342a、342b、フリップフロッ
プ341、OR回路343から構成される。フリップフ
ロップ341はメモリからの出力データが入力アドレス
よりも1クロック遅れて出てくるため、それらのタイミ
ングを合わせるために使用される。
【0023】ウェイヒット判定回路342a、342b
は、キャッシュアクセスアドレス1004をフリップフ
ロップ341で1クロック遅らせて作ったアドレス21
00と、タグメモリ30a、30bの出力から、そのウ
ェイがヒットしたかどうかを判定する回路である(実行
する命令が、一方のウェイにすでに格納されている場
合、そのウェイがヒットしたと言う)。ウェイヒット判
定回路342a、342bには、キャッシュモード信号
1001が入力され、これによってヒット判定の手法が
切り替えられる。一方のウェイがヒットしたとき、対応
するウェイヒット判定回路の出力は1となる。ウェイ0
またはウェイ1がヒットしたとき、命令キャッシュはヒ
ットしたことになる。命令キャッシュがヒットした場合
には、実行する命令はメモリ31aまたはメモリ31b
に格納されていることになる。ここで、ウェイ1のヒッ
ト信号2400bが1すなわちウェイ1がヒットしてい
るならば、データメモリ31bに実行する命令が入って
いることになる。逆に命令キャッシュがヒットしている
にもかかわらず、ウェイ1のヒット信号2400bが0
すなわちウェイ1がヒットしていないならば、ウェイ0
に実行する命令が入っていることになる。そこで、ウェ
イ1のヒット信号2400bによりセレクタ33を制御
することにより、実行する命令を信号1200へ出力す
ることが可能となる。信号1200は演算器9001へ
接続されている。
は、キャッシュアクセスアドレス1004をフリップフ
ロップ341で1クロック遅らせて作ったアドレス21
00と、タグメモリ30a、30bの出力から、そのウ
ェイがヒットしたかどうかを判定する回路である(実行
する命令が、一方のウェイにすでに格納されている場
合、そのウェイがヒットしたと言う)。ウェイヒット判
定回路342a、342bには、キャッシュモード信号
1001が入力され、これによってヒット判定の手法が
切り替えられる。一方のウェイがヒットしたとき、対応
するウェイヒット判定回路の出力は1となる。ウェイ0
またはウェイ1がヒットしたとき、命令キャッシュはヒ
ットしたことになる。命令キャッシュがヒットした場合
には、実行する命令はメモリ31aまたはメモリ31b
に格納されていることになる。ここで、ウェイ1のヒッ
ト信号2400bが1すなわちウェイ1がヒットしてい
るならば、データメモリ31bに実行する命令が入って
いることになる。逆に命令キャッシュがヒットしている
にもかかわらず、ウェイ1のヒット信号2400bが0
すなわちウェイ1がヒットしていないならば、ウェイ0
に実行する命令が入っていることになる。そこで、ウェ
イ1のヒット信号2400bによりセレクタ33を制御
することにより、実行する命令を信号1200へ出力す
ることが可能となる。信号1200は演算器9001へ
接続されている。
【0024】命令キャッシュがヒットしなかった場合に
は、キャッシュヒット信号1005により、そのことが
キャッシュ制御ステートマシン21へ通知され、キャッ
シュ制御ステートマシン21はキャッシュのフィル処理
を開始する。
は、キャッシュヒット信号1005により、そのことが
キャッシュ制御ステートマシン21へ通知され、キャッ
シュ制御ステートマシン21はキャッシュのフィル処理
を開始する。
【0025】次に、ウェイヒット判定回路342aの内
部構成を図6に示す。ウェイヒット判定回路342bの
内部も同じ構成である。比較器3420の出力2500
は、入力2100と入力2200aの値が全て等しい場
合にのみ1となり、1ビットでも等しくなければ0とな
る。比較器3422の出力2502は、入力2100と
入力2210aの値が等しければ1となり、等しくない
ときには0となる。OR回路3423の出力2503
は、入力2502または入力1001が1ならば1とな
り、両者がともに0の場合にのみ0となる。ウェイヒッ
ト判定回路342aの出力は信号2500、信号220
1a、信号2503が全て1の場合のみ1すなわちウェ
イヒットとなる。
部構成を図6に示す。ウェイヒット判定回路342bの
内部も同じ構成である。比較器3420の出力2500
は、入力2100と入力2200aの値が全て等しい場
合にのみ1となり、1ビットでも等しくなければ0とな
る。比較器3422の出力2502は、入力2100と
入力2210aの値が等しければ1となり、等しくない
ときには0となる。OR回路3423の出力2503
は、入力2502または入力1001が1ならば1とな
り、両者がともに0の場合にのみ0となる。ウェイヒッ
ト判定回路342aの出力は信号2500、信号220
1a、信号2503が全て1の場合のみ1すなわちウェ
イヒットとなる。
【0026】次に各モードにおける動作を説明する。
【0027】まず、モード信号が1の場合、すなわち2
ウェイキャッシュモード時の動作を説明する。
ウェイキャッシュモード時の動作を説明する。
【0028】このモードでは、32キロバイトのキャッ
シュが、1ウェイあたり16キロバイトの容量を持つ2
ウェイキャッシュとして扱われる。プログラムを実行す
る際には、命令キャッシュから命令を読み出す必要があ
る。このシーケンスを以下に説明する。まず、アドレス
生成回路24により、キャッシュアクセスアドレス10
04が生成され、キャッシュデータパス3へ送られる。
このとき、キャッシュアクセスアドレス1004[1
4]は制御信号生成回路23にも送られる。
シュが、1ウェイあたり16キロバイトの容量を持つ2
ウェイキャッシュとして扱われる。プログラムを実行す
る際には、命令キャッシュから命令を読み出す必要があ
る。このシーケンスを以下に説明する。まず、アドレス
生成回路24により、キャッシュアクセスアドレス10
04が生成され、キャッシュデータパス3へ送られる。
このとき、キャッシュアクセスアドレス1004[1
4]は制御信号生成回路23にも送られる。
【0029】制御信号生成回路は、図7の表に従って動
作する。この表において、XはDon‘t careを
示す。2ウェイキャッシュモードでリードアクセスを行
う際には、キャッシュアクセスアドレス1004[1
4]の値にかかわらず、チップセレクト信号1002
a、1002b、1002c、1002dの全てが1に
なる。この結果、タグメモリ30a、30bおよびデー
タメモリ31a、31bの全てに対してリードアクセス
が行われる。リード対象となるエントリーはキャッシュ
アクセスアドレス1004[13:4]により指定され
る。
作する。この表において、XはDon‘t careを
示す。2ウェイキャッシュモードでリードアクセスを行
う際には、キャッシュアクセスアドレス1004[1
4]の値にかかわらず、チップセレクト信号1002
a、1002b、1002c、1002dの全てが1に
なる。この結果、タグメモリ30a、30bおよびデー
タメモリ31a、31bの全てに対してリードアクセス
が行われる。リード対象となるエントリーはキャッシュ
アクセスアドレス1004[13:4]により指定され
る。
【0030】タグメモリ30a、30bからのリードデ
ータ2200a、2200b、2201a、2201b
はヒット判定回路32へ送られる。このモードでは、キ
ャッシュモード信号1001の値は1であるため、OR
回路3423の出力である信号2503の値は常に1と
なる。このため、キャッシュアクセスアドレス1004
[31:14]を1クロック遅らせた信号2100[3
1:14]とタグメモリ30aから読み出したタグアド
レス2200aが等しく、かつ、タグメモリ30aから
読み出した有効信号2201aが1であればウェイ0が
ヒットしたと判断される。同様に、信号2100とタグ
アドレス2200bが等しく、かつ、有効信号2201
bが1であればウェイ1がヒットしたと判断される。ウ
ェイ0またはウェイ1のどちらががヒットしていれば、
命令キャッシュはヒットしたことになる。ウェイ1のヒ
ット信号はセレクタ33へ送られ、ウェイ1がヒットし
ていれば、ウェイ1のデータメモリ31bの出力220
2bが命令キャッシュの出力1200として演算器90
01へ送られる。ウェイ1がヒットしていなければ、ウ
ェイ0のデータメモリ31aの出力2202aが命令キ
ャッシュの出力1200として演算器9001へ送られ
る。命令キャッシュがヒットしていれば、命令キャッシ
ュの出力1200には、演算器9001が実行すべき命
令が含まれていることになり、演算器9001はこれを
実行する。命令キャッシュがヒットしていない場合に
は、キャッシュヒット信号1005が0になり、キャッ
シュ制御ステートマシン21は、命令キャッシュのフィ
ル処理を開始する。この処理では、プロセッサ内部バス
9005を介してメモリ制御ユニット9003に対し
て、外部メモリ9004からの命令読み込み要求を発行
する。メモリ制御ユニット9003は外部メモリ900
4から読み込んだ命令をプロセッサ内部バス9005を
介して命令キャッシュユニット1へ送る。命令キャッシ
ュユニット1では、送られてきた命令をデータメモリ3
1aまたはデータメモリ31bへ書き込む。この時にど
ちらのメモリに書き込むかは、図7の表に記載されてい
るように、LRUメモリ20の内容によって決定され
る。
ータ2200a、2200b、2201a、2201b
はヒット判定回路32へ送られる。このモードでは、キ
ャッシュモード信号1001の値は1であるため、OR
回路3423の出力である信号2503の値は常に1と
なる。このため、キャッシュアクセスアドレス1004
[31:14]を1クロック遅らせた信号2100[3
1:14]とタグメモリ30aから読み出したタグアド
レス2200aが等しく、かつ、タグメモリ30aから
読み出した有効信号2201aが1であればウェイ0が
ヒットしたと判断される。同様に、信号2100とタグ
アドレス2200bが等しく、かつ、有効信号2201
bが1であればウェイ1がヒットしたと判断される。ウ
ェイ0またはウェイ1のどちらががヒットしていれば、
命令キャッシュはヒットしたことになる。ウェイ1のヒ
ット信号はセレクタ33へ送られ、ウェイ1がヒットし
ていれば、ウェイ1のデータメモリ31bの出力220
2bが命令キャッシュの出力1200として演算器90
01へ送られる。ウェイ1がヒットしていなければ、ウ
ェイ0のデータメモリ31aの出力2202aが命令キ
ャッシュの出力1200として演算器9001へ送られ
る。命令キャッシュがヒットしていれば、命令キャッシ
ュの出力1200には、演算器9001が実行すべき命
令が含まれていることになり、演算器9001はこれを
実行する。命令キャッシュがヒットしていない場合に
は、キャッシュヒット信号1005が0になり、キャッ
シュ制御ステートマシン21は、命令キャッシュのフィ
ル処理を開始する。この処理では、プロセッサ内部バス
9005を介してメモリ制御ユニット9003に対し
て、外部メモリ9004からの命令読み込み要求を発行
する。メモリ制御ユニット9003は外部メモリ900
4から読み込んだ命令をプロセッサ内部バス9005を
介して命令キャッシュユニット1へ送る。命令キャッシ
ュユニット1では、送られてきた命令をデータメモリ3
1aまたはデータメモリ31bへ書き込む。この時にど
ちらのメモリに書き込むかは、図7の表に記載されてい
るように、LRUメモリ20の内容によって決定され
る。
【0031】次にモード信号が0の場合、すなわちダイ
レクトマップキャッシュモード時の動作を説明する このモードでは、32キロバイトのキャッシュは、1ウ
ェイあたり32キロバイトの容量を持つ1ウェイキャッ
シュすなわちダイレクトマップキャッシュとして扱われ
る。プログラムを実行する際には、命令キャッシュから
命令を読み出す必要がある。このシーケンスを以下に説
明する。まず、アドレス生成回路24により、キャッシ
ュアクセスアドレス1004が生成され、キャッシュデ
ータパス3へ送られる。このとき、キャッシュアクセス
アドレス1004[14]は制御信号生成回路23にも
送られる。制御信号生成回路は、図7の表に従って動作
する。ダイレクトマップキャッシュモードでリードアク
セスを行う際には、キャッシュアクセスアドレス100
4[14]の値によって、1になるチップセレクト信号
が異なる。以下、キャッシュアクセスアドレス1004
[14]が0の時を例に動作を説明する。この場合、チ
ップセレクト信号1002a、1002cが1になるが
チップセレクト信号1002b、1002dは0であ
る。この場合には、ウェイ0のタグメモリ30aとデー
タメモリ31aに対してのみリードアクセスが行われ
る。タグメモリ30bとデータメモリ31bはアクセス
しないため消費電力を抑えることができる。リード対象
となるエントリーは、キャッシュアクセスアドレス10
04[13:4]により指定される。
レクトマップキャッシュモード時の動作を説明する このモードでは、32キロバイトのキャッシュは、1ウ
ェイあたり32キロバイトの容量を持つ1ウェイキャッ
シュすなわちダイレクトマップキャッシュとして扱われ
る。プログラムを実行する際には、命令キャッシュから
命令を読み出す必要がある。このシーケンスを以下に説
明する。まず、アドレス生成回路24により、キャッシ
ュアクセスアドレス1004が生成され、キャッシュデ
ータパス3へ送られる。このとき、キャッシュアクセス
アドレス1004[14]は制御信号生成回路23にも
送られる。制御信号生成回路は、図7の表に従って動作
する。ダイレクトマップキャッシュモードでリードアク
セスを行う際には、キャッシュアクセスアドレス100
4[14]の値によって、1になるチップセレクト信号
が異なる。以下、キャッシュアクセスアドレス1004
[14]が0の時を例に動作を説明する。この場合、チ
ップセレクト信号1002a、1002cが1になるが
チップセレクト信号1002b、1002dは0であ
る。この場合には、ウェイ0のタグメモリ30aとデー
タメモリ31aに対してのみリードアクセスが行われ
る。タグメモリ30bとデータメモリ31bはアクセス
しないため消費電力を抑えることができる。リード対象
となるエントリーは、キャッシュアクセスアドレス10
04[13:4]により指定される。
【0032】タグメモリ30aからのリードデータ22
00a、2201bはヒット判定回路32へ送られる。
このもーどでは、キャッシュモード信号1001の値は
0であるため信号2503の値は比較器3422の出力
と等しくなる。比較器3422の入力2210a、ウェ
イ0側(2210a)では0にウェイ1側(2210
b)では1に固定されている。この説明では、キャッシ
ュアクセスアドレス1004[14]が0の場合につい
て考えているので、ウェイ0側では比較器3422の出
力は1、ウェイ1側では比較器3422の出力は0とな
る。すなわちウェイ0側では、キャッシュアクセスアド
レス1004[31:14]を1クロック遅らせた信号
2100[31:14]とタグメモリ30aから読み出
したタグアドレス2200aが等しく、かつ、タグメモ
リ30aから読み出した有効信号2201aが1であれ
ばウェイ0がヒットしたと判断される。しかし、ウェイ
1側では比較器3422の出力2503は0であるた
め、ウェイ1側は常にヒットしていないと判断される。
ウェイ1のヒット信号はセレクタ33へ送られるが、そ
の値は0であるため、常にウェイ0のデータメモリ31
aの出力2202aが命令キャッシュの出力1200と
して演算器9001へ送られる。命令キャッシュがヒッ
トしなかった場合には、2ウェイキャッシュモードと同
様に命令キャッシュのフィル処理を開始する。外部メモ
リ9004から読み込んだ命令は、データメモリ31a
またはデータメモリ31bに書き込まれることになる
が、ここでは、キャッシュアクセスアドレス1004
[14]が0の場合について考えているので、図6の表
に従って、ウェイ0側のデータメモリ31aへ書き込ま
れる。
00a、2201bはヒット判定回路32へ送られる。
このもーどでは、キャッシュモード信号1001の値は
0であるため信号2503の値は比較器3422の出力
と等しくなる。比較器3422の入力2210a、ウェ
イ0側(2210a)では0にウェイ1側(2210
b)では1に固定されている。この説明では、キャッシ
ュアクセスアドレス1004[14]が0の場合につい
て考えているので、ウェイ0側では比較器3422の出
力は1、ウェイ1側では比較器3422の出力は0とな
る。すなわちウェイ0側では、キャッシュアクセスアド
レス1004[31:14]を1クロック遅らせた信号
2100[31:14]とタグメモリ30aから読み出
したタグアドレス2200aが等しく、かつ、タグメモ
リ30aから読み出した有効信号2201aが1であれ
ばウェイ0がヒットしたと判断される。しかし、ウェイ
1側では比較器3422の出力2503は0であるた
め、ウェイ1側は常にヒットしていないと判断される。
ウェイ1のヒット信号はセレクタ33へ送られるが、そ
の値は0であるため、常にウェイ0のデータメモリ31
aの出力2202aが命令キャッシュの出力1200と
して演算器9001へ送られる。命令キャッシュがヒッ
トしなかった場合には、2ウェイキャッシュモードと同
様に命令キャッシュのフィル処理を開始する。外部メモ
リ9004から読み込んだ命令は、データメモリ31a
またはデータメモリ31bに書き込まれることになる
が、ここでは、キャッシュアクセスアドレス1004
[14]が0の場合について考えているので、図6の表
に従って、ウェイ0側のデータメモリ31aへ書き込ま
れる。
【0033】以上、キャッシュアクセスアドレス100
4[14]が0の場合を例に説明したが、キャッシュア
クセスアドレス1004[14]が1の場合には、同様
の原理でウェイ1が使用されることになる。
4[14]が0の場合を例に説明したが、キャッシュア
クセスアドレス1004[14]が1の場合には、同様
の原理でウェイ1が使用されることになる。
【0034】このような構成にすることで、プログラム
実行中にモードレジスタ22の値を変更することによ
り、動的にダイレクトマップモードと2ウェイモードを
切り替えることが可能となる。モードレジスタ22の変
更は、モードレジスタ変更命令をプロセッサ9000の
命令セットに追加し、その命令を実行することでも実現
可能である。また、本実施例の方式でキャッシュを制御
すれば、モードレジスタ22変更時にキャッシュの初期
化を行わなくとも、正しく動作させることが可能とな
る。
実行中にモードレジスタ22の値を変更することによ
り、動的にダイレクトマップモードと2ウェイモードを
切り替えることが可能となる。モードレジスタ22の変
更は、モードレジスタ変更命令をプロセッサ9000の
命令セットに追加し、その命令を実行することでも実現
可能である。また、本実施例の方式でキャッシュを制御
すれば、モードレジスタ22変更時にキャッシュの初期
化を行わなくとも、正しく動作させることが可能とな
る。
【0035】また、本実施例ではダイレクトマップ(1
ウェイ)と2ウェイの切り換えについて説明したが、本
発明はこの組み合わせに限定されるものではない。ダイ
レクトマップと4ウェイや2ウェイと4ウェイなどいろ
いろな組み合わせを実現することが可能である。
ウェイ)と2ウェイの切り換えについて説明したが、本
発明はこの組み合わせに限定されるものではない。ダイ
レクトマップと4ウェイや2ウェイと4ウェイなどいろ
いろな組み合わせを実現することが可能である。
【0036】本発明の他の実施例を図8を用いて説明す
る。本実施例ではウェイ1のウェイヒット判定回路34
2bとセレクタ33の間にセレクタ350が付加されて
いる。モード信号1001は、セレクタ350のセレク
ト信号として使用され、モード信号1001が0すなわ
ちダイレクトマップモードならば、キャッシュアクセス
アドレス1004[14]を1クロック遅らせた信号2
100[14]が信号2600へ出力される。モード信
号1001が1すなわち2ウェイモードならば、信号2
400bの内容が信号2600へ出力される。
る。本実施例ではウェイ1のウェイヒット判定回路34
2bとセレクタ33の間にセレクタ350が付加されて
いる。モード信号1001は、セレクタ350のセレク
ト信号として使用され、モード信号1001が0すなわ
ちダイレクトマップモードならば、キャッシュアクセス
アドレス1004[14]を1クロック遅らせた信号2
100[14]が信号2600へ出力される。モード信
号1001が1すなわち2ウェイモードならば、信号2
400bの内容が信号2600へ出力される。
【0037】2ウェイキャッシュモードでは、ウェイ1
のヒット判定結果2400bを用いてセレクタ33を切
り替えるため、タグメモリ30bを起点とするパスがタ
イミング的に厳しいパスになることがある。このパスが
チップ内の最悪パスである場合には、このパスの動作速
度により、チップの最大動作周波数が制限されてしま
う。しかし、モードをダイレクトマップモードにする
と、セレクタ33の切り換え信号2600の値はウェイ
1のヒット判定結果2400bに依存しなくなるため、
セレクタ33の切り換え信号2600を生成するパスの
動作速度は、2ウェイモード時に比べて改善できる。こ
の場合、ダイレクトマップモードでは2ウェイキャッシ
ュモードよりもチップの最大動作周波数を高くすること
が可能となる。チップの動作周波数を変えない場合に
は、ダイレクトマップモードでは2ウェイキャッシュモ
ードよりも低い電源電圧で動作させることが可能とな
る。
のヒット判定結果2400bを用いてセレクタ33を切
り替えるため、タグメモリ30bを起点とするパスがタ
イミング的に厳しいパスになることがある。このパスが
チップ内の最悪パスである場合には、このパスの動作速
度により、チップの最大動作周波数が制限されてしま
う。しかし、モードをダイレクトマップモードにする
と、セレクタ33の切り換え信号2600の値はウェイ
1のヒット判定結果2400bに依存しなくなるため、
セレクタ33の切り換え信号2600を生成するパスの
動作速度は、2ウェイモード時に比べて改善できる。こ
の場合、ダイレクトマップモードでは2ウェイキャッシ
ュモードよりもチップの最大動作周波数を高くすること
が可能となる。チップの動作周波数を変えない場合に
は、ダイレクトマップモードでは2ウェイキャッシュモ
ードよりも低い電源電圧で動作させることが可能とな
る。
【0038】
【発明の効果】本発明を使用することにより、プログラ
ム実行中に使用可能なキャッシュの総容量を変えること
なく、キャッシュのウェイ数を変更することが可能とな
る。ウェイ数を減らした場合には、キャッシュのヒット
率は低下するものの、同時にアクセスするメモリ数が減
るため消費電力を削減することができる。また、ウェイ
数を減らしても使用可能なキャッシュの総容量は減らな
いため、ヒット率低下を小さく抑えることができる。
ム実行中に使用可能なキャッシュの総容量を変えること
なく、キャッシュのウェイ数を変更することが可能とな
る。ウェイ数を減らした場合には、キャッシュのヒット
率は低下するものの、同時にアクセスするメモリ数が減
るため消費電力を削減することができる。また、ウェイ
数を減らしても使用可能なキャッシュの総容量は減らな
いため、ヒット率低下を小さく抑えることができる。
【0039】このようにプログラム実行中に、キャッシ
ュのウェイ数を変更することで、プログラムの処理性能
と消費電力のトレードオフをより最適値に近づけること
が可能となる。
ュのウェイ数を変更することで、プログラムの処理性能
と消費電力のトレードオフをより最適値に近づけること
が可能となる。
【図1】本発明を使用したプロセッサのブロック図の一
例。
例。
【図2】キャッシュ制御回路の構成例。
【図3】キャッシュデータパスの構成例。
【図4】メモリの動作を示す表。
【図5】各メモリに接続される信号の対応を示す表。
【図6】ウェイヒット判定回路の構成例。
【図7】各メモリに対する制御信号の生成方法を示した
表。
表。
【図8】キャッシュデータパスの別の構成例。
1…命令キャッシュユニット、2…キャッシュ制御回
路、3…キャッシュデータパス、20…LRUメモリ、
21…キャッシュ制御ステートマシン、22…モードレ
ジスタ、23…制御信号生成回路、24…アドレス生成
回路、30a…タグメモリ(ウェイ0)、30b…タグ
メモリ(ウェイ1)、31a…データメモリ(ウェイ
0)、31b…データメモリ(ウェイ1)、32…ヒッ
ト判定回路、33…セレクタ、341…フリップフロッ
プ、342a…ウェイヒット判定回路(ウェイ0)、3
42b…ウェイヒット判定回路(ウェイ1)、343…
OR回路、350…セレクタ、3420…比較器、34
22…比較器、3423…OR回路、3423…AND
回路、1001…モード信号、1002a…チップセレ
クト信号(ウェイ0のタグメモリ用)、1002b…チ
ップセレクト信号(ウェイ1のタグメモリ用)、100
2c…チップセレクト信号(ウェイ0のデータメモリ
用)、1002d…チップセレクト信号(ウェイ1のデ
ータメモリ用)、1003a…ライト信号(ウェイ0の
タグメモリ用)、1003b…ライト信号(ウェイ1の
タグメモリ用)、1003c…ライト信号(ウェイ0の
データメモリ用)、1003d…ライト信号(ウェイ1
のデータメモリ用)、1004…キャッシュアクセスア
ドレス、1005…キャッシュヒット信号、1007…
有効ビット書き込みデータ、9000…プロセッサ、9
001…演算器、9002…データキャッシュユニッ
ト、9003…メモリ制御ユニット…9004、外部メ
モリ、9005…プロセッサ内部バス。
路、3…キャッシュデータパス、20…LRUメモリ、
21…キャッシュ制御ステートマシン、22…モードレ
ジスタ、23…制御信号生成回路、24…アドレス生成
回路、30a…タグメモリ(ウェイ0)、30b…タグ
メモリ(ウェイ1)、31a…データメモリ(ウェイ
0)、31b…データメモリ(ウェイ1)、32…ヒッ
ト判定回路、33…セレクタ、341…フリップフロッ
プ、342a…ウェイヒット判定回路(ウェイ0)、3
42b…ウェイヒット判定回路(ウェイ1)、343…
OR回路、350…セレクタ、3420…比較器、34
22…比較器、3423…OR回路、3423…AND
回路、1001…モード信号、1002a…チップセレ
クト信号(ウェイ0のタグメモリ用)、1002b…チ
ップセレクト信号(ウェイ1のタグメモリ用)、100
2c…チップセレクト信号(ウェイ0のデータメモリ
用)、1002d…チップセレクト信号(ウェイ1のデ
ータメモリ用)、1003a…ライト信号(ウェイ0の
タグメモリ用)、1003b…ライト信号(ウェイ1の
タグメモリ用)、1003c…ライト信号(ウェイ0の
データメモリ用)、1003d…ライト信号(ウェイ1
のデータメモリ用)、1004…キャッシュアクセスア
ドレス、1005…キャッシュヒット信号、1007…
有効ビット書き込みデータ、9000…プロセッサ、9
001…演算器、9002…データキャッシュユニッ
ト、9003…メモリ制御ユニット…9004、外部メ
モリ、9005…プロセッサ内部バス。
─────────────────────────────────────────────────────
フロントページの続き
(72)発明者 西岡 清和
神奈川県川崎市麻生区王禅寺1099番地 株
式会社日立製作所システム開発研究所内
Fターム(参考) 5B005 JJ21 MM01 NN31 TT02 UU41
Claims (13)
- 【請求項1】 複数のウェイから構成されるセットアソ
シアティブ方式のキャッシュにおいて、通常のセットア
ソシアティブ方式のキャッシュとして動作するモードの
他に、キャッシュに対するアクセスアドレスの一部を用
いてアクセス対象のウェイを指定するモードを設けたこ
とを特徴とするキャッシュメモリ装置。 - 【請求項2】 キャッシュに対するアクセスアドレスの
一部を用いてアクセス対象のウェイを指定するモードで
は、アクセス対象とならないウェイのメモリを通常のメ
モリアクセスを行った場合よりも消費電力が少なくなる
方法で動作させることを特徴とした請求項1記載のキャ
ッシュメモリ装置。 - 【請求項3】 請求項1記載の2つのモードのどちらを
使用するかを指定するための情報を格納する記憶領域を
搭載したことを特徴としたキャッシュメモリ装置。 - 【請求項4】 キャッシュに対するアクセスアドレスの
一部を用いてアクセス対象のウェイを指定するモードに
おいて、アクセス対象に指定されるウェイの数が1個で
あることを特徴とした請求項1記載のキャッシュメモリ
装置。 - 【請求項5】 キャッシュに対するアクセスアドレスの
一部を用いてアクセス対象のウェイを指定するモードに
おいて、アクセス対象に指定されるウェイの数が2個以
上であることを特徴とした請求項1記載のキャッシュメ
モリ装置。 - 【請求項6】 キャッシュに対するアクセスアドレスの
一部を用いてアクセス対象のウェイを指定するモードで
は、通常のセットアソシアティブ方式のキャッシュとし
て動作するモードよりもプロセッサの動作周波数を高く
設定できることを特徴とした請求項1記載のキャッシュ
メモリ装置。 - 【請求項7】 キャッシュに対するアクセスアドレスの
一部を用いてアクセス対象のウェイを指定するモードで
は、通常のセットアソシアティブ方式のキャッシュとし
て動作するモードよりもプロセッサの動作電圧を低く設
定できることを特徴とした請求項1記載のキャッシュメ
モリ装置。 - 【請求項8】 請求項1記載の2つのモードをプログラ
ム実行中に動的に切り替えられることを特徴としたキャ
ッシュメモリ装置。 - 【請求項9】 請求項1記載の2つのモードをプログラ
ム実行中に動的に切り替える時に、キャッシュを初期化
する必要がないことを特徴とした請求項8記載のキャッ
シュメモリ装置。 - 【請求項10】 請求項1から9記載のキャッシュメモ
リ装置を搭載したプロセッサ。 - 【請求項11】 請求項3記載の記憶領域を変更するた
めの命令を備えたプロセッサ。 - 【請求項12】 請求項3記載の記憶領域を変更する処
理を含んだプログラム。 - 【請求項13】 請求項10から11記載のプロセッサ
を搭載した情報処理装置。
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2001327105A JP2003131945A (ja) | 2001-10-25 | 2001-10-25 | キャッシュメモリ装置 |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2001327105A JP2003131945A (ja) | 2001-10-25 | 2001-10-25 | キャッシュメモリ装置 |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| JP2003131945A true JP2003131945A (ja) | 2003-05-09 |
Family
ID=19143374
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP2001327105A Pending JP2003131945A (ja) | 2001-10-25 | 2001-10-25 | キャッシュメモリ装置 |
Country Status (1)
| Country | Link |
|---|---|
| JP (1) | JP2003131945A (ja) |
Cited By (9)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2008530648A (ja) * | 2005-02-07 | 2008-08-07 | エヌエックスピー ビー ヴィ | データ処理システムおよびキャッシュ取り替え方法 |
| US7437513B2 (en) | 2004-04-30 | 2008-10-14 | Nec Corporation | Cache memory with the number of operated ways being changed according to access pattern |
| JP2009503700A (ja) * | 2005-07-29 | 2009-01-29 | クゥアルコム・インコーポレイテッド | 可変長命令の固定数を持つ命令キャッシュ |
| JP2009505306A (ja) * | 2005-08-22 | 2009-02-05 | インテル・コーポレーション | 電力削減のための動的メモリサイジング |
| JP2016122474A (ja) * | 2016-04-05 | 2016-07-07 | ルネサスエレクトロニクス株式会社 | データ処理装置 |
| JP2017503299A (ja) * | 2014-12-14 | 2017-01-26 | ヴィア アライアンス セミコンダクター カンパニー リミテッド | モードに応じてセットの1つ又は複数を選択的に選択するように動的に構成可能であるマルチモード・セット・アソシエイティブ・キャッシュ・メモリ |
| JP2017503298A (ja) * | 2014-12-14 | 2017-01-26 | ヴィア アライアンス セミコンダクター カンパニー リミテッド | アドレス・タグ・ビットに基づく動的キャッシュ置換ウェイ選択 |
| JP2017507442A (ja) * | 2014-12-14 | 2017-03-16 | ヴィア アライアンス セミコンダクター カンパニー リミテッド | モードに応じてウェイの全部又はサブセットに選択的に割り当てるように動的に構成可能であるマルチモード・セット・アソシエイティブ・キャッシュ・メモリ |
| US10180907B2 (en) | 2015-08-17 | 2019-01-15 | Fujitsu Limited | Processor and method |
-
2001
- 2001-10-25 JP JP2001327105A patent/JP2003131945A/ja active Pending
Cited By (12)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US7437513B2 (en) | 2004-04-30 | 2008-10-14 | Nec Corporation | Cache memory with the number of operated ways being changed according to access pattern |
| JP2008530648A (ja) * | 2005-02-07 | 2008-08-07 | エヌエックスピー ビー ヴィ | データ処理システムおよびキャッシュ取り替え方法 |
| JP2009503700A (ja) * | 2005-07-29 | 2009-01-29 | クゥアルコム・インコーポレイテッド | 可変長命令の固定数を持つ命令キャッシュ |
| JP2009505306A (ja) * | 2005-08-22 | 2009-02-05 | インテル・コーポレーション | 電力削減のための動的メモリサイジング |
| JP2017503299A (ja) * | 2014-12-14 | 2017-01-26 | ヴィア アライアンス セミコンダクター カンパニー リミテッド | モードに応じてセットの1つ又は複数を選択的に選択するように動的に構成可能であるマルチモード・セット・アソシエイティブ・キャッシュ・メモリ |
| JP2017503298A (ja) * | 2014-12-14 | 2017-01-26 | ヴィア アライアンス セミコンダクター カンパニー リミテッド | アドレス・タグ・ビットに基づく動的キャッシュ置換ウェイ選択 |
| JP2017507442A (ja) * | 2014-12-14 | 2017-03-16 | ヴィア アライアンス セミコンダクター カンパニー リミテッド | モードに応じてウェイの全部又はサブセットに選択的に割り当てるように動的に構成可能であるマルチモード・セット・アソシエイティブ・キャッシュ・メモリ |
| US9798668B2 (en) | 2014-12-14 | 2017-10-24 | Via Alliance Semiconductor Co., Ltd. | Multi-mode set associative cache memory dynamically configurable to selectively select one or a plurality of its sets depending upon the mode |
| US10698827B2 (en) | 2014-12-14 | 2020-06-30 | Via Alliance Semiconductor Co., Ltd. | Dynamic cache replacement way selection based on address tag bits |
| US10719434B2 (en) | 2014-12-14 | 2020-07-21 | Via Alliance Semiconductors Co., Ltd. | Multi-mode set associative cache memory dynamically configurable to selectively allocate into all or a subset of its ways depending on the mode |
| US10180907B2 (en) | 2015-08-17 | 2019-01-15 | Fujitsu Limited | Processor and method |
| JP2016122474A (ja) * | 2016-04-05 | 2016-07-07 | ルネサスエレクトロニクス株式会社 | データ処理装置 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US5586283A (en) | Method and apparatus for the reduction of tablewalk latencies in a translation look aside buffer | |
| JP3577331B2 (ja) | キャッシュメモリシステムおよびマイクロプロセッサ内の命令を操作するための方法 | |
| US20070239960A1 (en) | Data processor and IP module for data processor | |
| KR20010101695A (ko) | 가상 메모리 시스템에서의 메모리 접근 개선 기술 | |
| KR100351504B1 (ko) | 캐쉬 메모리, 그의 전력 소비 절감 방법 그리고 캐쉬메모리를 구비하는 데이터 처리 시스템 | |
| EP0173981A2 (en) | Cache memory control circuit | |
| US6606684B1 (en) | Multi-tiered memory bank having different data buffer sizes with a programmable bank select | |
| US6240489B1 (en) | Method for implementing a pseudo least recent used (LRU) mechanism in a four-way cache memory within a data processing system | |
| JP2005524170A (ja) | 不揮発性メモリを備える集積回路及び前記メモリからのデータをフェッチするための方法 | |
| US8266379B2 (en) | Multithreaded processor with multiple caches | |
| Smith | Design of CPU cache memories | |
| JP3973129B2 (ja) | キャッシュメモリ装置及びそれを用いた中央演算処理装置 | |
| JP2000082010A (ja) | アドレス変換を有するデータ処理方法および装置 | |
| US8539159B2 (en) | Dirty cache line write back policy based on stack size trend information | |
| EP1103898A2 (en) | Microprocessor and memory | |
| JP3688736B2 (ja) | データメモリ | |
| JP4024247B2 (ja) | 半導体データプロセッサ | |
| US20040024969A1 (en) | Methods and apparatuses for managing memory | |
| JP2005011353A (ja) | プロセッサにおけるスタックをベースとするメモリの利用の管理 | |
| US20040024970A1 (en) | Methods and apparatuses for managing memory | |
| JP4034032B2 (ja) | キャッシュ内蔵マイクロコンピュータ | |
| JP2778623B2 (ja) | プリフェッチ制御装置 | |
| JPH1055308A (ja) | キャッシュメモリ | |
| JP2000267932A (ja) | タグアドレス比較装置 | |
| JPH06282487A (ja) | キャッシュ装置 |