JPH10254782A - データ処理装置 - Google Patents
データ処理装置Info
- Publication number
- JPH10254782A JPH10254782A JP9053474A JP5347497A JPH10254782A JP H10254782 A JPH10254782 A JP H10254782A JP 9053474 A JP9053474 A JP 9053474A JP 5347497 A JP5347497 A JP 5347497A JP H10254782 A JPH10254782 A JP H10254782A
- Authority
- JP
- Japan
- Prior art keywords
- memory
- instruction
- register
- cache memory
- address
- 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.)
- Withdrawn
Links
Landscapes
- Memory System Of A Hierarchy Structure (AREA)
Abstract
(57)【要約】
【課題】キャッシュメモリ3に一時的に使用されるだけ
で、その後使用されないような不要なデータが長く留ま
ることによる性能低下を防ぐことを目的とする。 【解決手段】CPUからキャッシュメモリ3へメモリ参
照命令を出すときに、要求メモリアドレスを生成するの
に使用したレジスタであることを示すフラグ情報と、そ
のメモリアドレスとをレジスタファイル2の該当レジス
タに記憶しておく。CPU側では、以前にメモリアドレ
スを生成したレジスタに関してその内容が変化した場
合、対になって記憶していたメモリアドレスについて、
キャッシュメモリ3側でのリプレース選択優先度を最上
にする指示をキャッシュメモリ3に送出する。
で、その後使用されないような不要なデータが長く留ま
ることによる性能低下を防ぐことを目的とする。 【解決手段】CPUからキャッシュメモリ3へメモリ参
照命令を出すときに、要求メモリアドレスを生成するの
に使用したレジスタであることを示すフラグ情報と、そ
のメモリアドレスとをレジスタファイル2の該当レジス
タに記憶しておく。CPU側では、以前にメモリアドレ
スを生成したレジスタに関してその内容が変化した場
合、対になって記憶していたメモリアドレスについて、
キャッシュメモリ3側でのリプレース選択優先度を最上
にする指示をキャッシュメモリ3に送出する。
Description
【0001】
【発明の属する技術分野】本発明は、キャッシュメモリ
を有するデータ処理装置(計算機システム)に関する。
を有するデータ処理装置(計算機システム)に関する。
【0002】
【従来の技術】現在の計算機システムでは、CPUが要
求するデータを高速に供給するためにキャッシュメモリ
を装備することが普通になっている。図9は、従来のデ
ータ処理装置(計算機システム)の構成例を示す図であ
る。図9において、200は命令バッファ、201はレ
ジスタ・ファイル、202は演算パイプラインユニッ
ト、203はロード/ストアパイプラインユニット、2
04はキャッシュメモリ、205は主記憶、300はタ
グ/データ部、301はリプレース制御部である。
求するデータを高速に供給するためにキャッシュメモリ
を装備することが普通になっている。図9は、従来のデ
ータ処理装置(計算機システム)の構成例を示す図であ
る。図9において、200は命令バッファ、201はレ
ジスタ・ファイル、202は演算パイプラインユニッ
ト、203はロード/ストアパイプラインユニット、2
04はキャッシュメモリ、205は主記憶、300はタ
グ/データ部、301はリプレース制御部である。
【0003】通常、命令バッファ200、レジスタ・フ
ァイル201、演算パイプラインユニット202、ロー
ド/ストアパイプラインユニット203を含む部分をC
PUと称している。キャッシュメモリ204のタグ/デ
ータ部300は、アドレス、データおよび有効ビットの
組からなるエントリで構成される。CPUがメモリ読み
出しを行う場合には、キャッシュメモリ204内の図示
しない制御部は、タグ/データ部300中に読み出しア
ドレスと一致するアドレスを持ち、かつ有効ビットがv
alid(有効)であるエントリがあるか否かを探索
し、あればそのデータ部の値をCPUに送る。なければ
主記憶205にリード要求を行い、主記憶205から送
られてきたデータをCPUに送るとともに、リプレース
制御部301でタグ/データ部300のエントリをある
基準で選び(エントリの選択)、アドレスと主記憶から
送られてきたデータをそのエントリに書き込み、そのエ
ントリの有効ビットをvalidにする。
ァイル201、演算パイプラインユニット202、ロー
ド/ストアパイプラインユニット203を含む部分をC
PUと称している。キャッシュメモリ204のタグ/デ
ータ部300は、アドレス、データおよび有効ビットの
組からなるエントリで構成される。CPUがメモリ読み
出しを行う場合には、キャッシュメモリ204内の図示
しない制御部は、タグ/データ部300中に読み出しア
ドレスと一致するアドレスを持ち、かつ有効ビットがv
alid(有効)であるエントリがあるか否かを探索
し、あればそのデータ部の値をCPUに送る。なければ
主記憶205にリード要求を行い、主記憶205から送
られてきたデータをCPUに送るとともに、リプレース
制御部301でタグ/データ部300のエントリをある
基準で選び(エントリの選択)、アドレスと主記憶から
送られてきたデータをそのエントリに書き込み、そのエ
ントリの有効ビットをvalidにする。
【0004】CPUがメモリ書き込みを行う場合は、C
PUはキャッシュメモリ204に書き込みアドレスとデ
ータを送る。図示しないキャッシュ制御部は、タグ/デ
ータ部300に書き込みアドレスと一致するアドレスを
持ち、かつ有効ビットがvalidであるエントリがあ
るか否か探索し、あればそのデータ部の値をCPUから
送られてきたデータで書き換える。なければリプレース
制御部でタグ/データ部300のエントリをある基準で
選び(エントリの選択)、そのエントリにアドレスとC
PUから送られてきたデータを書き込み、そのエントリ
の有効ビットをvalidにする。
PUはキャッシュメモリ204に書き込みアドレスとデ
ータを送る。図示しないキャッシュ制御部は、タグ/デ
ータ部300に書き込みアドレスと一致するアドレスを
持ち、かつ有効ビットがvalidであるエントリがあ
るか否か探索し、あればそのデータ部の値をCPUから
送られてきたデータで書き換える。なければリプレース
制御部でタグ/データ部300のエントリをある基準で
選び(エントリの選択)、そのエントリにアドレスとC
PUから送られてきたデータを書き込み、そのエントリ
の有効ビットをvalidにする。
【0005】新たなエントリを割り当てるエントリの選
択において、どのような基準でエントリを選ぶかは、計
算機システムの性能に影響を与える。direct m
apped cacheと呼ばれるキャッシュメモリで
は、あるアドレスに対して割り当てることができるキャ
ッシュ・エントリは1つしかないので、選択の余地がな
い。このため、そのエントリが現在使用されている場合
には、そのデータを捨ててしまうので、あまり良い性能
が得られない。
択において、どのような基準でエントリを選ぶかは、計
算機システムの性能に影響を与える。direct m
apped cacheと呼ばれるキャッシュメモリで
は、あるアドレスに対して割り当てることができるキャ
ッシュ・エントリは1つしかないので、選択の余地がな
い。このため、そのエントリが現在使用されている場合
には、そのデータを捨ててしまうので、あまり良い性能
が得られない。
【0006】n set associative c
acheと呼ばれるキャッシュメモリは、あるアドレス
に対して割り当てることができるキャッシュ・エントリ
がn個存在する方式である。n個の候補のうち、今後最
も使用されそうにないデータの乗っているエントリを選
んで、新データを書き込むことによって、direct
mapped cacheより、良い性能が得られる
ようになっている。しかし、nを大きくすることは、多
量のハードウェアを必要とするので、nを小さくしたま
まで、適切なエントリを選択することが求められる。
acheと呼ばれるキャッシュメモリは、あるアドレス
に対して割り当てることができるキャッシュ・エントリ
がn個存在する方式である。n個の候補のうち、今後最
も使用されそうにないデータの乗っているエントリを選
んで、新データを書き込むことによって、direct
mapped cacheより、良い性能が得られる
ようになっている。しかし、nを大きくすることは、多
量のハードウェアを必要とするので、nを小さくしたま
まで、適切なエントリを選択することが求められる。
【0007】set associative cac
heのエントリの選択において、これまでの方式は、L
RU方式を基本としている。つまり、最近使用されたデ
ータは再び使用される可能性が高いと仮定して、最後に
使用された時間が最も古いエントリを高い優先度で選択
する。
heのエントリの選択において、これまでの方式は、L
RU方式を基本としている。つまり、最近使用されたデ
ータは再び使用される可能性が高いと仮定して、最後に
使用された時間が最も古いエントリを高い優先度で選択
する。
【0008】
【発明が解決しようとする課題】しかし、この方式で
は、本当に一時的にのみ使用されるデータであっても使
用された直後にはキャッシュメモリに載せられ、時間が
経つまで、なかなか選択の対象にならない。このこと
は、不要なデータがキャッシュメモリに長時間保持され
ていることになり、性能低下を招くことになる。
は、本当に一時的にのみ使用されるデータであっても使
用された直後にはキャッシュメモリに載せられ、時間が
経つまで、なかなか選択の対象にならない。このこと
は、不要なデータがキャッシュメモリに長時間保持され
ていることになり、性能低下を招くことになる。
【0009】一例として以下の2つの命令が連続して実
行される場合を考える。 store reg1 + 100, reg2 add reg1, 32, reg1 のストア命令(store )は、第1オペランドで指定さ
れるメモリアドレスに第2オペランドの値を格納する命
令である。の命令の例では、レジスタreg1の内容に定
数値100を加えた値からなるメモリアドレスにレジス
タreg2の内容を格納する動作を実行する。の加算命令
(add )は、第1オペランドと第2オペランドの値を加
算して第3オペランドに格納する命令である。の命令
の例では、レジスタreg1の内容に定数値32が加算さ
れ、その加算結果がレジスタreg1に格納される。
行される場合を考える。 store reg1 + 100, reg2 add reg1, 32, reg1 のストア命令(store )は、第1オペランドで指定さ
れるメモリアドレスに第2オペランドの値を格納する命
令である。の命令の例では、レジスタreg1の内容に定
数値100を加えた値からなるメモリアドレスにレジス
タreg2の内容を格納する動作を実行する。の加算命令
(add )は、第1オペランドと第2オペランドの値を加
算して第3オペランドに格納する命令である。の命令
の例では、レジスタreg1の内容に定数値32が加算さ
れ、その加算結果がレジスタreg1に格納される。
【0010】の命令の実行時に、レジスタreg1の内容
がメモリアドレス生成に使用され、そのメモリアドレス
でキャッシュメモリへのアクセスが実行されることによ
り、レジスタreg1の内容に基づくメモリアドレスのリプ
レース選択順位は最も低くなる。次に、の命令が実行
されると、レジスタreg1の内容は異なる値に書き換えら
れてしまうことになる。その場合、レジスタreg1の書き
換え前の値が近い将来再び、メモリアドレス生成のため
に使用される可能性はほとんどなくなってしまう。
がメモリアドレス生成に使用され、そのメモリアドレス
でキャッシュメモリへのアクセスが実行されることによ
り、レジスタreg1の内容に基づくメモリアドレスのリプ
レース選択順位は最も低くなる。次に、の命令が実行
されると、レジスタreg1の内容は異なる値に書き換えら
れてしまうことになる。その場合、レジスタreg1の書き
換え前の値が近い将来再び、メモリアドレス生成のため
に使用される可能性はほとんどなくなってしまう。
【0011】その結果、キャッシュメモリにおいては、
近い将来において使用される可能性が極めて小さいメモ
リアドレスが最もリプレース選択されない優先順位に留
まることになり、ある時間が経過して自メモリアドレス
のリプレース選択順位が最も高くなるまで、キャッシュ
メモリに使用されないまま残されることになる。本発明
は、上記のような、キャッシュメモリに不要なデータが
長く留まることによる性能低下を防ぐことを目的とす
る。
近い将来において使用される可能性が極めて小さいメモ
リアドレスが最もリプレース選択されない優先順位に留
まることになり、ある時間が経過して自メモリアドレス
のリプレース選択順位が最も高くなるまで、キャッシュ
メモリに使用されないまま残されることになる。本発明
は、上記のような、キャッシュメモリに不要なデータが
長く留まることによる性能低下を防ぐことを目的とす
る。
【0012】
【課題を解決するための手段】本発明では、CPUから
キャッシュメモリへ送出するコマンドであって、あるア
ドレスの乗っているキャッシュ・エントリに対してその
選択の優先度を高めることを指示するコマンド(pri
orityコマンド)を用意する。そのコマンドを用い
ることにより、CPUからキャッシュメモリ内のリプレ
ース制御をある程度行うことによって、不要なデータの
キャッシュからの追い出しを迅速にさせる。
キャッシュメモリへ送出するコマンドであって、あるア
ドレスの乗っているキャッシュ・エントリに対してその
選択の優先度を高めることを指示するコマンド(pri
orityコマンド)を用意する。そのコマンドを用い
ることにより、CPUからキャッシュメモリ内のリプレ
ース制御をある程度行うことによって、不要なデータの
キャッシュからの追い出しを迅速にさせる。
【0013】図1は、本発明の第1の原理構成を示す図
である。図1において、1は演算ユニット、2はレジス
タ・ファイル、3はキャッシュメモリ、4は主記憶であ
る。演算ユニット1およびレジスタ・ファイル2を含む
部分がCPUを構成する。図1の構成において、CPU
からキャッシュメモリ3へ要求を出すときに、要求のア
ドレスを生成するのに使用したレジスタ名とアドレスを
CPU側で記憶しておく。CPU側では、アドレスを生
成するのに使用したレジスタに関して、そのレジスタ内
容(値)が変化した場合、対になって記憶していたアド
レスについて、キャッシュメモリ3での選択優先度を高
めるコマンド(priorityコマンド)をキャッシ
ュメモリ3へ送る。
である。図1において、1は演算ユニット、2はレジス
タ・ファイル、3はキャッシュメモリ、4は主記憶であ
る。演算ユニット1およびレジスタ・ファイル2を含む
部分がCPUを構成する。図1の構成において、CPU
からキャッシュメモリ3へ要求を出すときに、要求のア
ドレスを生成するのに使用したレジスタ名とアドレスを
CPU側で記憶しておく。CPU側では、アドレスを生
成するのに使用したレジスタに関して、そのレジスタ内
容(値)が変化した場合、対になって記憶していたアド
レスについて、キャッシュメモリ3での選択優先度を高
めるコマンド(priorityコマンド)をキャッシ
ュメモリ3へ送る。
【0014】これは、メモリをアクセスする場合、アド
レスをあるレジスタ(もしくはレジスタ+定数値)によ
って示すが、そのレジスタの値が変化したということ
は、変更前の値によって示されるアドレスをアクセスし
なくなるという可能性が高いことに基づく制御である。
図1のレジスタ・ファイル2には、通常のデータを入れ
るフィールドの他に、アドレス・フィールド、バリッド
フラグ(有効ビット)が付加される。そのレジスタの値
(もしくはレジスタ+定数値)でメモリ参照された場合
には、アドレスをアドレス・フィールドに書き込み、有
効ビットをvalid状態にする。その後、そのレジス
タの値が書き換わったときには、有効ビットをinva
lidにする。このとき、有効ビットが元々valid
であったならば、対応するアドレス・フィールド値とと
もに、キャッシュメモリでの選択優先度を高めることを
指示するコマンドをキャッシュメモリに送る。
レスをあるレジスタ(もしくはレジスタ+定数値)によ
って示すが、そのレジスタの値が変化したということ
は、変更前の値によって示されるアドレスをアクセスし
なくなるという可能性が高いことに基づく制御である。
図1のレジスタ・ファイル2には、通常のデータを入れ
るフィールドの他に、アドレス・フィールド、バリッド
フラグ(有効ビット)が付加される。そのレジスタの値
(もしくはレジスタ+定数値)でメモリ参照された場合
には、アドレスをアドレス・フィールドに書き込み、有
効ビットをvalid状態にする。その後、そのレジス
タの値が書き換わったときには、有効ビットをinva
lidにする。このとき、有効ビットが元々valid
であったならば、対応するアドレス・フィールド値とと
もに、キャッシュメモリでの選択優先度を高めることを
指示するコマンドをキャッシュメモリに送る。
【0015】図2は、本発明の第2の原理構成を示す図
である。図1と同様に、1は演算ユニット、2はレジス
タ・ファイル、3はキャッシュメモリ、4は主記憶であ
り、演算ユニット1およびレジスタ・ファイル2を含む
部分がCPUを構成する。図2の構成においては、CP
Uからのメモリ参照要求に、キャッシュメモリ3での選
択優先度を高めるかどうかの情報をつける(prior
ity付きキャッシュ・リクエスト)。また、命令とし
て、通常のメモリ参照命令に加えて、priority
付きキャッシュ・リクエスト付きのメモリ参照命令を加
える。
である。図1と同様に、1は演算ユニット、2はレジス
タ・ファイル、3はキャッシュメモリ、4は主記憶であ
り、演算ユニット1およびレジスタ・ファイル2を含む
部分がCPUを構成する。図2の構成においては、CP
Uからのメモリ参照要求に、キャッシュメモリ3での選
択優先度を高めるかどうかの情報をつける(prior
ity付きキャッシュ・リクエスト)。また、命令とし
て、通常のメモリ参照命令に加えて、priority
付きキャッシュ・リクエスト付きのメモリ参照命令を加
える。
【0016】コンパイラによるコード生成においては、
各変数への書き込み回数などの解析を行っている。この
解析において、その変数への最後の参照となる命令に
は、priority付きキャッシュ・リクエスト付き
のメモリ参照命令を発行するようにする。図2に示すよ
うに、CPUからキャッシュメモリ3への信号線には、
通常のアクセスアドレス/データの信号線の他に、リク
エストがpriority付きであるか否かを示すプラ
イオリティ変更制御指示線(priorityビット)
が加わる。このビットの値に従って、キャッシュメモリ
内のリプレース制御部は、選択優先度を制御する。
各変数への書き込み回数などの解析を行っている。この
解析において、その変数への最後の参照となる命令に
は、priority付きキャッシュ・リクエスト付き
のメモリ参照命令を発行するようにする。図2に示すよ
うに、CPUからキャッシュメモリ3への信号線には、
通常のアクセスアドレス/データの信号線の他に、リク
エストがpriority付きであるか否かを示すプラ
イオリティ変更制御指示線(priorityビット)
が加わる。このビットの値に従って、キャッシュメモリ
内のリプレース制御部は、選択優先度を制御する。
【0017】
【発明の実施の形態】以下、図面を参照しながら、本発
明の実施の形態を説明する。図3は、本発明の第1の実
施例の構成図である。図3において、10は命令バッフ
ァ、11はレジスタ・ファイル、12は演算パイプライ
ンユニット、13はロード/ストアパイプラインユニッ
ト、14はプライオリティ制御判定部、15はキャッシ
ュメモリ、16は主記憶、17はタグ/データ部、18
はリプレース制御部、20はレジスタ・ファイル中の通
常処理用フィールド、21はアドレス保持用フィール
ド、22は有効フラグ保持フィールド、30はデータ信
号線、31はアドレス信号線、32はプライオリティ変
更制御指示線、33はプライオリティ変更対象アドレス
信号線である。
明の実施の形態を説明する。図3は、本発明の第1の実
施例の構成図である。図3において、10は命令バッフ
ァ、11はレジスタ・ファイル、12は演算パイプライ
ンユニット、13はロード/ストアパイプラインユニッ
ト、14はプライオリティ制御判定部、15はキャッシ
ュメモリ、16は主記憶、17はタグ/データ部、18
はリプレース制御部、20はレジスタ・ファイル中の通
常処理用フィールド、21はアドレス保持用フィール
ド、22は有効フラグ保持フィールド、30はデータ信
号線、31はアドレス信号線、32はプライオリティ変
更制御指示線、33はプライオリティ変更対象アドレス
信号線である。
【0018】図3において、キャッシュメモリ15、主
記憶16以外の部分がCPUを構成している。命令バッ
ファ10内の命令が演算命令の場合には、レジスタ・フ
ァイル11の通常処理用フィールド20の内容に対して
演算パイプラインユニット12が指定された演算処理を
実行する。命令バッファ10内の命令がロード命令の場
合は、ロード/ストアパイプラインユニット13がキャ
ッシュメモリ15からデータを読み出して、レジスタ・
ファイル11の通常処理用フィールド20に格納する。
命令バッファ10内の命令がストア命令の場合は、ロー
ド/ストアパイプラインユニット13がレジスタ・ファ
イル11の通常処理用フィールド20の内容を読み出し
て、キャッシュメモリ15に格納する。
記憶16以外の部分がCPUを構成している。命令バッ
ファ10内の命令が演算命令の場合には、レジスタ・フ
ァイル11の通常処理用フィールド20の内容に対して
演算パイプラインユニット12が指定された演算処理を
実行する。命令バッファ10内の命令がロード命令の場
合は、ロード/ストアパイプラインユニット13がキャ
ッシュメモリ15からデータを読み出して、レジスタ・
ファイル11の通常処理用フィールド20に格納する。
命令バッファ10内の命令がストア命令の場合は、ロー
ド/ストアパイプラインユニット13がレジスタ・ファ
イル11の通常処理用フィールド20の内容を読み出し
て、キャッシュメモリ15に格納する。
【0019】本発明の第1の実施例においては、レジス
タ・ファイル11に、通常処理用フィールド20の他に
アドレス保持用フィールド21および有効フラグ保持フ
ィールド22が設けられており、各命令動作時にこれら
のフィールドへの参照動作が行われる。アドレス保持用
フィールド21には、そのレジスタの値(通常処理用フ
ィールド20に格納されている値)を元にメモリ参照ア
ドレスを生成した場合には、そのメモリ参照アドレスそ
のものを格納する。具体的には、ロード/ストア命令の
オペランドとして渡されたレジスタのアドレス保持用フ
ィールド21に、その命令でのメモリ参照アドレスを書
き込むことになる。
タ・ファイル11に、通常処理用フィールド20の他に
アドレス保持用フィールド21および有効フラグ保持フ
ィールド22が設けられており、各命令動作時にこれら
のフィールドへの参照動作が行われる。アドレス保持用
フィールド21には、そのレジスタの値(通常処理用フ
ィールド20に格納されている値)を元にメモリ参照ア
ドレスを生成した場合には、そのメモリ参照アドレスそ
のものを格納する。具体的には、ロード/ストア命令の
オペランドとして渡されたレジスタのアドレス保持用フ
ィールド21に、その命令でのメモリ参照アドレスを書
き込むことになる。
【0020】有効フラグ保持フィールド22に格納され
る有効ビットは、対応するアドレス保持用フィールド2
1の値が有効か否かを示すものである。ロード/ストア
命令によりアドレス保持用フィールド21にメモリ参照
アドレスが書き込まれたときに「1」にセットされ、そ
れ以外の命令により通常処理用フィールド20に値が書
き込まれたとき「0」にセットされる。
る有効ビットは、対応するアドレス保持用フィールド2
1の値が有効か否かを示すものである。ロード/ストア
命令によりアドレス保持用フィールド21にメモリ参照
アドレスが書き込まれたときに「1」にセットされ、そ
れ以外の命令により通常処理用フィールド20に値が書
き込まれたとき「0」にセットされる。
【0021】そして、有効フラグ保持フィールド22の
有効ビットが「1」から「0」に遷移した場合に、プラ
イオリティ制御判定部14の制御のもとに、アドレス保
持用フィールド21の値とプライオリティ変更制御指示
情報(priorityコマンド)とを、プライオリテ
ィ変更対象アドレス信号線33、プライオリティ変更制
御指示線32によりキャッシュメモリ15へ送出する。
有効ビットが「1」から「0」に遷移した場合に、プラ
イオリティ制御判定部14の制御のもとに、アドレス保
持用フィールド21の値とプライオリティ変更制御指示
情報(priorityコマンド)とを、プライオリテ
ィ変更対象アドレス信号線33、プライオリティ変更制
御指示線32によりキャッシュメモリ15へ送出する。
【0022】キャッシュメモリ15は、プライオリティ
変更制御指示情報(priorityコマンド)を受け
取ったとき、付随して送られてきたアドレスで通常動作
時と同様にタグ/データ部17を検索する。そのアドレ
スがタグ/データ部17上に存在しなければ何もしな
い。一方、そのアドレスがタグ/データ部17上に存在
する場合には、リプレース制御部18はタグ/データ部
17上のそのアドレスの選択の優先度を所定の順位(例
えば、最上位)に変更する。
変更制御指示情報(priorityコマンド)を受け
取ったとき、付随して送られてきたアドレスで通常動作
時と同様にタグ/データ部17を検索する。そのアドレ
スがタグ/データ部17上に存在しなければ何もしな
い。一方、そのアドレスがタグ/データ部17上に存在
する場合には、リプレース制御部18はタグ/データ部
17上のそのアドレスの選択の優先度を所定の順位(例
えば、最上位)に変更する。
【0023】図4は、第1の実施例における処理の流れ
を示す図である。CPU側の処理として、ステップ1
(S1)で命令種別を判定し、ロード/ストア命令であ
れば、ステップ2でメモリ参照アドレスをオペランドの
レジスタのアドレス保持用フィールド21に書き込む。
さらにステップ3でオペランドのレジスタの有効フラグ
保持フィールド22に有効ビット「1」を設定する。
を示す図である。CPU側の処理として、ステップ1
(S1)で命令種別を判定し、ロード/ストア命令であ
れば、ステップ2でメモリ参照アドレスをオペランドの
レジスタのアドレス保持用フィールド21に書き込む。
さらにステップ3でオペランドのレジスタの有効フラグ
保持フィールド22に有効ビット「1」を設定する。
【0024】ステップ1(S1)による命令種別判定で
レジスタに値を設定する命令と判定したときは、ステッ
プ4(S4)でオペランドのレジスタの有効フラグ保持
フィールド22の有効ビットの値を判定する。有効ビッ
トが「1」であれば、ステップ5(S5)でプライオリ
ティ変更制御指示情報(priorityコマンド)と
アドレス保持用フィールド21の内容をキャッシュメモ
リ15へ送出する。そしてステップ6(S6)でオペラ
ンドのレジスタの有効フラグ保持フィールド22の有効
ビットを「0」にする。
レジスタに値を設定する命令と判定したときは、ステッ
プ4(S4)でオペランドのレジスタの有効フラグ保持
フィールド22の有効ビットの値を判定する。有効ビッ
トが「1」であれば、ステップ5(S5)でプライオリ
ティ変更制御指示情報(priorityコマンド)と
アドレス保持用フィールド21の内容をキャッシュメモ
リ15へ送出する。そしてステップ6(S6)でオペラ
ンドのレジスタの有効フラグ保持フィールド22の有効
ビットを「0」にする。
【0025】キャッシュメモリ15側の処理として、ス
テップ7(S7)で要求種別を判定し、リード/ライト
要求であれば、通常のキャッシュ処理を行う。ステップ
7(S7)の要求種別判定で、要求種別がプライオリテ
ィ変更要求であれば、ステップ9(S9)で、プライオ
リティ変更対象アドレス信号線33で送られてくるアド
レスについて、対応するキャッシュエントリを通常のキ
ャッシュ処理と同様にして求める。
テップ7(S7)で要求種別を判定し、リード/ライト
要求であれば、通常のキャッシュ処理を行う。ステップ
7(S7)の要求種別判定で、要求種別がプライオリテ
ィ変更要求であれば、ステップ9(S9)で、プライオ
リティ変更対象アドレス信号線33で送られてくるアド
レスについて、対応するキャッシュエントリを通常のキ
ャッシュ処理と同様にして求める。
【0026】ステップ10(S10)で対応するエント
リがキャッシュメモリ上に存在するか否かを判定する。
キャッシュメモリ上に存在しなければ何もしないが、キ
ャッシュメモリ上に存在する場合は、ステップ11(S
11)でそのエントリのリプレース選択優先度を最上に
する。図5は、レジスタ・ファイル11の内容の変化の
一例を示す図である。初期状態ではレジスタ1の通常処
理用フィールド20に「100」がセットされ、有効フ
ラグ保持フィールド22に「0」がセットされていると
する。ここで、上記した命令、 store reg1 + 100, reg2 が実行されたとする。の命令実行後に、レジスタ1の
通常処理用フィールド20の値は変化しないが、アドレ
ス保持用フィールド21には生成されたメモリアドレス
値の「200」がセットされ、有効フラグ保持フィール
ド22に有効ビット「1」がセットされる。
リがキャッシュメモリ上に存在するか否かを判定する。
キャッシュメモリ上に存在しなければ何もしないが、キ
ャッシュメモリ上に存在する場合は、ステップ11(S
11)でそのエントリのリプレース選択優先度を最上に
する。図5は、レジスタ・ファイル11の内容の変化の
一例を示す図である。初期状態ではレジスタ1の通常処
理用フィールド20に「100」がセットされ、有効フ
ラグ保持フィールド22に「0」がセットされていると
する。ここで、上記した命令、 store reg1 + 100, reg2 が実行されたとする。の命令実行後に、レジスタ1の
通常処理用フィールド20の値は変化しないが、アドレ
ス保持用フィールド21には生成されたメモリアドレス
値の「200」がセットされ、有効フラグ保持フィール
ド22に有効ビット「1」がセットされる。
【0027】次に、上記した2番目の命令、 add reg1, 32, reg1 が実行されたとする。の命令実行後に、レジスタ1の
通常処理用フィールド20には加算結果の値の「13
2」がセットされる。このとき、有効フラグ保持フィー
ルド22の値が「1」であるため、アドレス保持用フィ
ールド21の値「200」がキャッシュメモリに送出さ
れ、その後、有効フラグ保持フィールド22の値は
「0」にセットされる。
通常処理用フィールド20には加算結果の値の「13
2」がセットされる。このとき、有効フラグ保持フィー
ルド22の値が「1」であるため、アドレス保持用フィ
ールド21の値「200」がキャッシュメモリに送出さ
れ、その後、有効フラグ保持フィールド22の値は
「0」にセットされる。
【0028】上記した第1の実施例の処理により、その
アドレスの指していたレジスタの値が変更されたことを
契機にして、対応するキャッシュ・エントリのリプレー
ス選択の優先度が高くなるので、次に、新たなキャッシ
ュ・エントリが必要になったときには、このキャッシュ
・エントリが使用され、不要なデータがキャッシュメモ
リから追い出されることになる。
アドレスの指していたレジスタの値が変更されたことを
契機にして、対応するキャッシュ・エントリのリプレー
ス選択の優先度が高くなるので、次に、新たなキャッシ
ュ・エントリが必要になったときには、このキャッシュ
・エントリが使用され、不要なデータがキャッシュメモ
リから追い出されることになる。
【0029】図6は、本発明の第2の実施例の構成図で
ある。図6において、10は命令バッファ、11はレジ
スタ・ファイル、12は演算パイプラインユニット、1
3はロード/ストアパイプラインユニット、15はキャ
ッシュメモリ、16は主記憶、17はタグ/データ部、
18はリプレース制御部、30はデータ信号線、31は
アドレス信号線、32はプライオリティ変更制御指示
線、40は命令バッファ中のプライオリティ変更制御指
示ビット部、41はロード/ストアパイプラインユニッ
ト中のプライオリティ変更制御指示ビット部である。
ある。図6において、10は命令バッファ、11はレジ
スタ・ファイル、12は演算パイプラインユニット、1
3はロード/ストアパイプラインユニット、15はキャ
ッシュメモリ、16は主記憶、17はタグ/データ部、
18はリプレース制御部、30はデータ信号線、31は
アドレス信号線、32はプライオリティ変更制御指示
線、40は命令バッファ中のプライオリティ変更制御指
示ビット部、41はロード/ストアパイプラインユニッ
ト中のプライオリティ変更制御指示ビット部である。
【0030】図6において、キャッシュメモリ15、主
記憶16以外の部分がCPUを構成している。命令バッ
ファ10内の命令が演算命令の場合には、レジスタ・フ
ァイル11の内容に対して演算パイプラインユニット1
2が指定された演算処理を実行する。命令バッファ10
内の命令がロード命令の場合は、ロード/ストアパイプ
ラインユニット13がキャッシュメモリ15からデータ
を読み出して、レジスタ・ファイル11に格納する。命
令バッファ10内の命令がストア命令の場合は、ロード
/ストアパイプラインユニット13がレジスタ・ファイ
ル11のの内容を読み出して、キャッシュメモリ15に
格納する。
記憶16以外の部分がCPUを構成している。命令バッ
ファ10内の命令が演算命令の場合には、レジスタ・フ
ァイル11の内容に対して演算パイプラインユニット1
2が指定された演算処理を実行する。命令バッファ10
内の命令がロード命令の場合は、ロード/ストアパイプ
ラインユニット13がキャッシュメモリ15からデータ
を読み出して、レジスタ・ファイル11に格納する。命
令バッファ10内の命令がストア命令の場合は、ロード
/ストアパイプラインユニット13がレジスタ・ファイ
ル11のの内容を読み出して、キャッシュメモリ15に
格納する。
【0031】本発明の第2の実施例では、通常のメモリ
参照命令に加えて、キャッシュメモリでのリプレース選
択優先度を最上にする機能を加えたメモリ参照命令(p
riority付きキャッシュ・リクエスト付きメモリ
参照命令)を設ける。ハードウェアとしては、図6に示
すように、命令バッファ10およびロード/ストアパイ
プラインユニット13にプライオリティ変更制御指示ビ
ット部40、41が設けられ、またCPUからキャッシ
ュメモリへの信号線として、リクエストがpriori
ty付きであるか否かを示すプライオリティ変更制御指
示線32が加わる。
参照命令に加えて、キャッシュメモリでのリプレース選
択優先度を最上にする機能を加えたメモリ参照命令(p
riority付きキャッシュ・リクエスト付きメモリ
参照命令)を設ける。ハードウェアとしては、図6に示
すように、命令バッファ10およびロード/ストアパイ
プラインユニット13にプライオリティ変更制御指示ビ
ット部40、41が設けられ、またCPUからキャッシ
ュメモリへの信号線として、リクエストがpriori
ty付きであるか否かを示すプライオリティ変更制御指
示線32が加わる。
【0032】priority付きキャッシュ・リクエ
スト付きメモリ参照命令は、priorityビットが
「1」でキャッシュメモリにリクエストを出すことだけ
が通常のメモリ参照命令と異なる。コンパイラは、各変
数への最後の参照となる命令には、priority付
きキャッシュ・リクエスト付きメモリ参照命令を発行す
る。図7および図8にコンパイルの一例を示す。図7は
条件分岐がない場合、図8は条件分岐がある場合であ
る。
スト付きメモリ参照命令は、priorityビットが
「1」でキャッシュメモリにリクエストを出すことだけ
が通常のメモリ参照命令と異なる。コンパイラは、各変
数への最後の参照となる命令には、priority付
きキャッシュ・リクエスト付きメモリ参照命令を発行す
る。図7および図8にコンパイルの一例を示す。図7は
条件分岐がない場合、図8は条件分岐がある場合であ
る。
【0033】図7において、コンパイラは元のプログラ
ム中より同一の変数を参照する命令群(a[0] = 1, a[0]
= 2, ... a[0] = n )を検出し、その最後の参照命令
(図7の例では、a[0] = n)にはpriority付き
キャッシュ・リクエスト付きメモリ参照命令(図7の例
では、priority-store reg1 + 0, a )を発行する。図
8の場合も図7の場合と同様に、元のプログラム中より
同一の変数を参照する命令群を検出するが、条件分岐が
ある場合には2つの分岐先の両方のメモリ参照命令に対
してpriority付きキャッシュ・リクエスト付き
メモリ参照命令(図8の例では、priority-store reg1
+ 0, 10 と priority-store reg1+ 0, 9 )を発行
する。
ム中より同一の変数を参照する命令群(a[0] = 1, a[0]
= 2, ... a[0] = n )を検出し、その最後の参照命令
(図7の例では、a[0] = n)にはpriority付き
キャッシュ・リクエスト付きメモリ参照命令(図7の例
では、priority-store reg1 + 0, a )を発行する。図
8の場合も図7の場合と同様に、元のプログラム中より
同一の変数を参照する命令群を検出するが、条件分岐が
ある場合には2つの分岐先の両方のメモリ参照命令に対
してpriority付きキャッシュ・リクエスト付き
メモリ参照命令(図8の例では、priority-store reg1
+ 0, 10 と priority-store reg1+ 0, 9 )を発行
する。
【0034】図6のキャッシュメモリ15は、プライオ
リティ変更制御指示線32上のpriorityビット
が「1」でリクエストを受け取ると、通常のキャッシュ
処理を行った後、対応するキャッシュ・エントリのリプ
レース選択の優先度を最上にする。これにより、次に、
新たなキャッシュ・エントリが必要になったときには、
このキャッシュ・エントリが使用され、不要なデータが
キャッシュから追い出されることになる。
リティ変更制御指示線32上のpriorityビット
が「1」でリクエストを受け取ると、通常のキャッシュ
処理を行った後、対応するキャッシュ・エントリのリプ
レース選択の優先度を最上にする。これにより、次に、
新たなキャッシュ・エントリが必要になったときには、
このキャッシュ・エントリが使用され、不要なデータが
キャッシュから追い出されることになる。
【0035】
【発明の効果】以上説明したように、本発明によれば、
不要なデータをキャッシュメモリから早く追い出すこと
ができるようになり、キャッシュメモリの有効利用度が
向上し、高速なデータ処理ができるようになる。
不要なデータをキャッシュメモリから早く追い出すこと
ができるようになり、キャッシュメモリの有効利用度が
向上し、高速なデータ処理ができるようになる。
【図1】本発明の第1の原理構成を示す図である。
【図2】本発明の第2の原理構成を示す図である。
【図3】本発明の第1の実施例の構成図である。
【図4】本発明の第1の実施例における処理の流れを示
す図である。
す図である。
【図5】本発明の第1の実施例におけるレジスタ・ファ
イルの内容の一例を示す図である。
イルの内容の一例を示す図である。
【図6】本発明の第2の実施例の構成図である。
【図7】本発明の第2の実施例におけるコンパイル動作
例(その1)を示す図である。
例(その1)を示す図である。
【図8】本発明の第2の実施例におけるコンパイル動作
例(その2)を示す図である。
例(その2)を示す図である。
【図9】従来のデータ処理装置の構成例を示す図であ
る。
る。
1 演算ユニット 2 レジスタ・ファイル 3 キャッシュメモリ 4 主記憶 21 アドレス保持用フィールド 22 有効フラグ保持フィールド 32 プライオリティ変更制御指示線 40、41 プライオリティ変更制御指示ビット部
Claims (3)
- 【請求項1】 処理ユニットからキャッシュメモリへメ
モリ参照命令を出すときに、要求メモリアドレスを生成
するために使用したレジスタであることを指示するアド
レス生成レジスタ指示情報と、そのメモリアドレスとを
該当レジスタに関連付けて記憶しておく手段を備え、 処理ユニットにおいて、以前にメモリアドレスを生成し
たレジスタに関して、そのレジスタへの書き込み動作が
実行されたことを上記アドレス生成レジスタ指示情報に
もとづいて検出したとき、 該当レジスタに関連付けて記憶しておいたメモリアドレ
スと、 当該メモリアドレスに関するリプレース選択優先度を高
めることを指示する情報とをキャッシュメモリへ送出す
るように構成したことを特徴とするデータ処理装置。 - 【請求項2】 レジスタ・ファイルを内蔵する処理ユニ
ットと、キャッシュメモリと、主記憶を備え、処理対象
データがキャッシュメモリに存在するときはレジスタ・
ファイルとキャッシュメモリの間でリード/ライト操作
を行い、処理対象データがキャッシュメモリに存在しな
いときは主記憶から当該処理対象データを読み出し、キ
ャッシュメモリに書き込む構成を有するデータ処理装置
であって、 レジスタ・ファイルの各エントリに、メモリアドレス保
持領域と、該メモリアドレス保持領域の内容の有効性を
示す有効フラグを保持する有効フラグ保持領域を設け、 ロード命令およびストア命令実行時に、メモリアドレス
を生成するために使用したレジスタのメモリアドレス保
持領域に当該生成したメモリアドレスを書き込むととも
に、対応する有効フラグ保持領域の有効フラグをオン状
態とし、 ロード命令およびストア命令以外の命令によりレジスタ
・ファイルへの書き込み操作を行うとき、レジスタ・フ
ァイル中の該当エントリの有効フラグがオン状態であれ
ば、対応するメモリアドレス保持領域に書き込まれてい
るメモリアドレスをキャッシュメモリに送出し、キャッ
シュメモリにおける当該メモリアドレスのリプレース優
先度を高めるよう指示するとともに、レジスタ・ファイ
ル中の該当エントリの有効フラグをオフ状態とすること
を特徴とするデータ処理装置。 - 【請求項3】 レジスタ・ファイルを内蔵する処理ユニ
ットと、キャッシュメモリと、主記憶を備え、処理対象
データがキャッシュメモリに存在するときはレジスタフ
ァイルとキャッシュメモリの間でリード/ライト操作を
行い、処理対象データがキャッシュメモリに存在しない
ときは主記憶から当該処理対象データを読み出し、キャ
ッシュメモリに書き込む構成を有するデータ処理装置で
あって、 キャッシュメモリでのリプレース優先度を高めることを
指示する情報を含むリプレース優先度変更機能付きメモ
リ参照命令を設け、 コンパイル時に、各変数へ一連の参照を行う命令群のう
ち当該変数への最後の参照となる命令には、上記リプレ
ース優先度変更機能付きメモリ参照命令を発行し、 命令実行動作時に、上記リプレース優先度変更機能付き
メモリ参照命令を実行したとき、当該命令で参照したメ
モリアドレスのリプレース優先度を高めるようキャッシ
ュメモリに指示するように構成したことを特徴とするデ
ータ処理装置。
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP9053474A JPH10254782A (ja) | 1997-03-07 | 1997-03-07 | データ処理装置 |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP9053474A JPH10254782A (ja) | 1997-03-07 | 1997-03-07 | データ処理装置 |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| JPH10254782A true JPH10254782A (ja) | 1998-09-25 |
Family
ID=12943862
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP9053474A Withdrawn JPH10254782A (ja) | 1997-03-07 | 1997-03-07 | データ処理装置 |
Country Status (1)
| Country | Link |
|---|---|
| JP (1) | JPH10254782A (ja) |
Cited By (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| GB2341867A (en) * | 1998-04-30 | 2000-03-29 | Nippon Paint Co Ltd | Paint composition containing luster pigment and method for forming composite coating |
| KR100805027B1 (ko) | 2005-04-11 | 2008-02-20 | 산요덴키가부시키가이샤 | 메모리 어드레스 생성 장치 및 그것을 가진 프로세서,메모리 어드레스 생성 방법 |
-
1997
- 1997-03-07 JP JP9053474A patent/JPH10254782A/ja not_active Withdrawn
Cited By (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| GB2341867A (en) * | 1998-04-30 | 2000-03-29 | Nippon Paint Co Ltd | Paint composition containing luster pigment and method for forming composite coating |
| KR100805027B1 (ko) | 2005-04-11 | 2008-02-20 | 산요덴키가부시키가이샤 | 메모리 어드레스 생성 장치 및 그것을 가진 프로세서,메모리 어드레스 생성 방법 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US6295594B1 (en) | Dynamic memory allocation suitable for stride-based prefetching | |
| US5353426A (en) | Cache miss buffer adapted to satisfy read requests to portions of a cache fill in progress without waiting for the cache fill to complete | |
| JP3618385B2 (ja) | データをバッファリングする方法およびそのシステム | |
| US8984261B2 (en) | Store data forwarding with no memory model restrictions | |
| US20060248281A1 (en) | Prefetching using hashed program counter | |
| KR19980033137A (ko) | 이진 프로그램 변환장치, 이진 프로그램 변환방법 및 프로그램기록매체 | |
| JPH09120372A (ja) | プリフェッチ命令を用いるハーバードアーキテクチャキャッシュメモリの調和したソフトウェア制御 | |
| US5313602A (en) | Multiprocessor system and method of control over order of transfer of data between buffer storages | |
| JP2575598B2 (ja) | マルチプロセッサ・コンピュータ・システムのシステム・メモリの並行性を増大する方法およびシステム | |
| JP5157424B2 (ja) | キャッシュメモリシステム及びキャッシュメモリの制御方法 | |
| JP3973129B2 (ja) | キャッシュメモリ装置及びそれを用いた中央演算処理装置 | |
| US20080307165A1 (en) | Information processor, method for controlling cache flash, and information processing controller | |
| JPH06202951A (ja) | キャッシュ・メモリ・システム | |
| JP2001166989A (ja) | プリフェッチ機構を有するメモリシステム及びその動作方法 | |
| EP0442690A2 (en) | Data cache store buffer for high performance computer | |
| JP2007156821A (ja) | キャッシュシステム及び共用2次キャッシュ | |
| JP2002007212A (ja) | キャッシュ・メモリ・システム及びキャッシュ・メモリ制御方法 | |
| JP2927160B2 (ja) | レジスタ装置 | |
| JP2540959B2 (ja) | 情報処理装置 | |
| JPH10187531A (ja) | キャッシュメモリのプリフェッチ方式 | |
| JPH0728706A (ja) | キャッシュメモリ装置 | |
| JPH06119238A (ja) | 主記憶制御方法および装置 | |
| JP2002024088A (ja) | データ処理装置 | |
| JP2000148587A (ja) | 記憶装置および記憶領域の決定方法 | |
| JP2864548B2 (ja) | 命令キャッシュ装置 |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| A300 | Withdrawal of application because of no request for examination |
Free format text: JAPANESE INTERMEDIATE CODE: A300 Effective date: 20040511 |