JPH06161896A - 半導体記憶装置及びアドレス記憶方式 - Google Patents
半導体記憶装置及びアドレス記憶方式Info
- Publication number
- JPH06161896A JPH06161896A JP4314689A JP31468992A JPH06161896A JP H06161896 A JPH06161896 A JP H06161896A JP 4314689 A JP4314689 A JP 4314689A JP 31468992 A JP31468992 A JP 31468992A JP H06161896 A JPH06161896 A JP H06161896A
- Authority
- JP
- Japan
- Prior art keywords
- address
- memory
- tag
- hit rate
- entry
- 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)【要約】
【目的】 セット・アソシアティヴ方式のキャッシュメ
モリにおいて、ユーザプログラムの持つ空間的局所性に
係わりなく高いHIT率を得る。 【構成】 デコーダ制御装置3によって制御され、入力
アドレスのTAG部とENTRY部の分割比を変更する
機能を有するアドレスデコーダ5、この時ブロックサイ
ズに応じてTAGメモリ1,データメモリ2の物理配置
を適当なWAY数に制御するWAY制御装置4、キャッ
シュがアクティヴ状態になった時の各ブロックサイズで
のヒット率を検出するヒット率検出部7を設け、ヒット
率が最大のブロックサイズを選択し、そのメモリ構成で
以降のアクセスが行われるように制御部8でWAY制御
回路4,デコーダ制御回路3を制御する。
モリにおいて、ユーザプログラムの持つ空間的局所性に
係わりなく高いHIT率を得る。 【構成】 デコーダ制御装置3によって制御され、入力
アドレスのTAG部とENTRY部の分割比を変更する
機能を有するアドレスデコーダ5、この時ブロックサイ
ズに応じてTAGメモリ1,データメモリ2の物理配置
を適当なWAY数に制御するWAY制御装置4、キャッ
シュがアクティヴ状態になった時の各ブロックサイズで
のヒット率を検出するヒット率検出部7を設け、ヒット
率が最大のブロックサイズを選択し、そのメモリ構成で
以降のアクセスが行われるように制御部8でWAY制御
回路4,デコーダ制御回路3を制御する。
Description
【0001】
【産業上の利用分野】この発明は半導体記憶装置及びア
ドレス記憶方式に関し、特にキャッシュメモリと主記憶
をブロック単位に分割し、この単位で対応付けを行うセ
ット・アソシアティブ方式を採用するキャッシュメモリ
とそのアドレス記憶方式に関するものである。
ドレス記憶方式に関し、特にキャッシュメモリと主記憶
をブロック単位に分割し、この単位で対応付けを行うセ
ット・アソシアティブ方式を採用するキャッシュメモリ
とそのアドレス記憶方式に関するものである。
【0002】
【従来の技術】大容量のメインメモリを高速度のメモリ
を用いて構成すると高価なものとなるため、CPUとメ
インメモリとの間に小容量の高速メモリ(キャッシュメ
モリ)を設け、アクセスの速い大容量メモリを等価的に
実現する方式が用いられている。
を用いて構成すると高価なものとなるため、CPUとメ
インメモリとの間に小容量の高速メモリ(キャッシュメ
モリ)を設け、アクセスの速い大容量メモリを等価的に
実現する方式が用いられている。
【0003】この方式では、CPUはプログラム実行時
にまずキャッシュメモリに優先的にアクセスし、目的と
するデータが存在する場合(キャッシュ・ヒット)に
は、そのまま処理を進めるが、キャッシュメモリに必要
とするデータが見つからない場合(キャッシュ・ミスヒ
ット)には、プログラムを中断してキャッシュメモリと
メインメモリの内容を交換し、再度プログラムを開始し
てキャッシュメモリをアクセスするように構成されてい
る。
にまずキャッシュメモリに優先的にアクセスし、目的と
するデータが存在する場合(キャッシュ・ヒット)に
は、そのまま処理を進めるが、キャッシュメモリに必要
とするデータが見つからない場合(キャッシュ・ミスヒ
ット)には、プログラムを中断してキャッシュメモリと
メインメモリの内容を交換し、再度プログラムを開始し
てキャッシュメモリをアクセスするように構成されてい
る。
【0004】図4は従来のキャッシュメモリ及びこれを
制御する制御回路等を同一の半導体基板上に集積した半
導体記憶装置のブロック構成図であり、図において、1
はキャッシュデータのキャッシュメモリにおける記憶ア
ドレスをそのデータとし記憶するタグ(TAG)メモ
リ、2はキャッシュデータを記憶するデータメモリであ
り、SRAM等の高速アクセスが可能な半導体メモリで
構成されている。なお、図中データメモリ2やタグメモ
リ1の破線で囲んだ部分は256エントリ中の1つのエ
ントリを示すものである。7は外部の図示しないCPU
やDMAコントローラから与えられるアドレスと、この
アドレスによりタグメモリ1から読み出されたアドレス
データとを比較し、キャッシュヒットか否かを判定する
アドレスコンパレータ、18はこのアドレスコンパレー
タ8の出力や外部からの制御信号等に応じてキャッシュ
メモリ2や後述するセレクタの入出力を制御する制御回
路、19は制御回路18の制御に応じて外部からのデー
タをキャッシュメモリ2のどこのウエイ(WAY)に入
力するか、もしくはどのWAYのデータを外部に出力す
るかを切り換えるセレクタである。
制御する制御回路等を同一の半導体基板上に集積した半
導体記憶装置のブロック構成図であり、図において、1
はキャッシュデータのキャッシュメモリにおける記憶ア
ドレスをそのデータとし記憶するタグ(TAG)メモ
リ、2はキャッシュデータを記憶するデータメモリであ
り、SRAM等の高速アクセスが可能な半導体メモリで
構成されている。なお、図中データメモリ2やタグメモ
リ1の破線で囲んだ部分は256エントリ中の1つのエ
ントリを示すものである。7は外部の図示しないCPU
やDMAコントローラから与えられるアドレスと、この
アドレスによりタグメモリ1から読み出されたアドレス
データとを比較し、キャッシュヒットか否かを判定する
アドレスコンパレータ、18はこのアドレスコンパレー
タ8の出力や外部からの制御信号等に応じてキャッシュ
メモリ2や後述するセレクタの入出力を制御する制御回
路、19は制御回路18の制御に応じて外部からのデー
タをキャッシュメモリ2のどこのウエイ(WAY)に入
力するか、もしくはどのWAYのデータを外部に出力す
るかを切り換えるセレクタである。
【0005】次に動作について説明する。CPU,DM
Aコントローラ等によって主記憶の実アドレスが与えら
れると、実アドレスのエントリアドレス部分でTAGメ
モリ1のエントリを選択する(図中、TAGメモリ部の
破線で囲んだ部分)。選択したエントリのN個のWAY
に記憶された内容(TAGアドレス)と実アドレスのT
AGアドレス部分とをアドレスコンパレータ7で同時に
それぞれ比較する。一致するものが有った場合、アドレ
スコンパレータ7はヒット信号を制御部18に出力し、
制御部18は外部からのタイミング制御信号に従い、セ
レクタ19を制御し、データメモリ2の対応するエント
リの内容をアクセスできるようにする。一致するものが
無かった場合、主記憶をアクセスすると同時に選択され
たエントリのN個のWAYのうち1つとTAGメモリ1
及びデータメモリ2の内容を置き換える。
Aコントローラ等によって主記憶の実アドレスが与えら
れると、実アドレスのエントリアドレス部分でTAGメ
モリ1のエントリを選択する(図中、TAGメモリ部の
破線で囲んだ部分)。選択したエントリのN個のWAY
に記憶された内容(TAGアドレス)と実アドレスのT
AGアドレス部分とをアドレスコンパレータ7で同時に
それぞれ比較する。一致するものが有った場合、アドレ
スコンパレータ7はヒット信号を制御部18に出力し、
制御部18は外部からのタイミング制御信号に従い、セ
レクタ19を制御し、データメモリ2の対応するエント
リの内容をアクセスできるようにする。一致するものが
無かった場合、主記憶をアクセスすると同時に選択され
たエントリのN個のWAYのうち1つとTAGメモリ1
及びデータメモリ2の内容を置き換える。
【0006】ところで従来より、キャッシュメモリはそ
の容量に比例してヒット率が向上することが知られてい
る。しかしながら、むやみに容量を増やすことは現実的
にはコストが高くなり問題となる。そこで、性能とコス
トのバランスによって、キャッシュメモリの容量が決定
される。また、このキャッシュ容量に対応して最適なブ
ロックサイズがあることが一般的に知られているが、こ
れはCPUが実行する各命令を一般的な割合で任意に構
成した特定のプログラムを想定し、シミュレートした結
果より得られたものに過ぎない。
の容量に比例してヒット率が向上することが知られてい
る。しかしながら、むやみに容量を増やすことは現実的
にはコストが高くなり問題となる。そこで、性能とコス
トのバランスによって、キャッシュメモリの容量が決定
される。また、このキャッシュ容量に対応して最適なブ
ロックサイズがあることが一般的に知られているが、こ
れはCPUが実行する各命令を一般的な割合で任意に構
成した特定のプログラムを想定し、シミュレートした結
果より得られたものに過ぎない。
【0007】現実的にはユーザのプログラミングの仕方
は自由であり、当然プログラムにおける命令の構成も多
種多様であり、また規定された範囲内ではアドレス空間
の使用方法も多種多様であると考えられる。つまり、上
述の方法で一意的に決定したキャッシュメモリのブロッ
クサイズは、ユーザプログラムによっては必ずしも最適
ではなく、キャッシュメモリの容量を十分に生かせない
場合が発生することになる。
は自由であり、当然プログラムにおける命令の構成も多
種多様であり、また規定された範囲内ではアドレス空間
の使用方法も多種多様であると考えられる。つまり、上
述の方法で一意的に決定したキャッシュメモリのブロッ
クサイズは、ユーザプログラムによっては必ずしも最適
ではなく、キャッシュメモリの容量を十分に生かせない
場合が発生することになる。
【0008】一例として、説明を簡単にするため、アド
レスbit数が10bitsの場合のセット・アソシア
ティブ方式のキャッシュメモリを例にとって説明する。
セット・アソシアティブ方式では、基本的に主記憶上の
全てのアドレスは、そのブロック内のアドレス(エント
リアドレス)によって決まるキャッシュメモリ上のエン
トリとだけ対応する。
レスbit数が10bitsの場合のセット・アソシア
ティブ方式のキャッシュメモリを例にとって説明する。
セット・アソシアティブ方式では、基本的に主記憶上の
全てのアドレスは、そのブロック内のアドレス(エント
リアドレス)によって決まるキャッシュメモリ上のエン
トリとだけ対応する。
【0009】図5はTAGアドレスを4bits、エン
トリアドレスを4bits、インクリメンタアドレスを
2bitsとし、4WAYで構成した場合のTAGメモ
リの構成を示す。この構成は実行するプログラムに時間
的かつ空間的局在性が大きい場合に有効である。つまり
エントリに着目すると、ブロックが大きいため直前にア
クセスしたデータはそれぞれ別のエントリに記憶されて
いる。従って連続したアドレスのデータ群が比較的大き
くても、それらをひとまとめに保持しておくことが可能
である。
トリアドレスを4bits、インクリメンタアドレスを
2bitsとし、4WAYで構成した場合のTAGメモ
リの構成を示す。この構成は実行するプログラムに時間
的かつ空間的局在性が大きい場合に有効である。つまり
エントリに着目すると、ブロックが大きいため直前にア
クセスしたデータはそれぞれ別のエントリに記憶されて
いる。従って連続したアドレスのデータ群が比較的大き
くても、それらをひとまとめに保持しておくことが可能
である。
【0010】図6は、TAGアドレスを5bits、エ
ントリアドレスを3bits、インクリメンタアドレス
を2bitsとし、8WAYで構成した場合のTAGメ
モリの構成を示す。この構成は実行するプログラムが時
間的かつ空間的局在性が小さい場合に有効である。つま
りWAY数が多い分、特定エントリに着目すると、過去
のデータが長く保持されていることになり、多くのブロ
ックのデータを記憶できる利点がある。なお上記図5及
び図6図中の網掛けした領域は再び参照されるデータを
示し、数字はTAGアドレス(ブロックナンバー)を示
す。
ントリアドレスを3bits、インクリメンタアドレス
を2bitsとし、8WAYで構成した場合のTAGメ
モリの構成を示す。この構成は実行するプログラムが時
間的かつ空間的局在性が小さい場合に有効である。つま
りWAY数が多い分、特定エントリに着目すると、過去
のデータが長く保持されていることになり、多くのブロ
ックのデータを記憶できる利点がある。なお上記図5及
び図6図中の網掛けした領域は再び参照されるデータを
示し、数字はTAGアドレス(ブロックナンバー)を示
す。
【0011】以上のように、キャッシュメモリの容量が
同一であっても、ブロックのサイズ及びWAY数によっ
て保持可能な連続したアドレス領域の大きさが異なると
共に保持可能な連続したアドレス領域の数も異なる。従
って、ユーザプログラムを無視してキャッシュメモリの
構成を決定する場合、ユーザプログラムにおけるサブル
ーチンやデータ群の配置による空間的または時間的局在
性の有無によって充分なヒット率が得られないことが生
じる。
同一であっても、ブロックのサイズ及びWAY数によっ
て保持可能な連続したアドレス領域の大きさが異なると
共に保持可能な連続したアドレス領域の数も異なる。従
って、ユーザプログラムを無視してキャッシュメモリの
構成を決定する場合、ユーザプログラムにおけるサブル
ーチンやデータ群の配置による空間的または時間的局在
性の有無によって充分なヒット率が得られないことが生
じる。
【0012】
【発明が解決しようとする課題】従来の半導体記憶装置
は以上のように構成されており、チップの設計段階にお
いて一意的にメモリの構成が決定されるため、アドレス
の分割がユーザプログラムに応じて必ずしも最適化され
ておらず、ヒット率の低下を招くという問題点があっ
た。
は以上のように構成されており、チップの設計段階にお
いて一意的にメモリの構成が決定されるため、アドレス
の分割がユーザプログラムに応じて必ずしも最適化され
ておらず、ヒット率の低下を招くという問題点があっ
た。
【0013】例えば、図5のようにブロックサイズが大
きい構成では、空間的局在性の大きなプログラムでかつ
繰り返し参照する領域が比較的大きい場合は効果を期待
できるが、局在性が小さく参照する領域が点在するよう
なプログラムではWAY数が少ないため、キャッシュミ
スを繰り返すことになり、充分なヒット率は得られな
い。また逆に図6のようにブロックサイズを小さくしW
AY数を多くした構成では、プログラムの空間的局在性
が小さくても比較的高いヒット率を期待できる。
きい構成では、空間的局在性の大きなプログラムでかつ
繰り返し参照する領域が比較的大きい場合は効果を期待
できるが、局在性が小さく参照する領域が点在するよう
なプログラムではWAY数が少ないため、キャッシュミ
スを繰り返すことになり、充分なヒット率は得られな
い。また逆に図6のようにブロックサイズを小さくしW
AY数を多くした構成では、プログラムの空間的局在性
が小さくても比較的高いヒット率を期待できる。
【0014】このように従来のキャッシュメモリではユ
ーザプログラムの局在性の有無によてヒット率が左右さ
れるという問題点があった。
ーザプログラムの局在性の有無によてヒット率が左右さ
れるという問題点があった。
【0015】この発明は上記のような問題点を解消する
ためになされたもので、メモリのアドレス分割を可変に
し、ユーザプログラムに応じてメモリ構成を最適に制御
することができる半導体記憶装置を得ることを目的とす
る。
ためになされたもので、メモリのアドレス分割を可変に
し、ユーザプログラムに応じてメモリ構成を最適に制御
することができる半導体記憶装置を得ることを目的とす
る。
【0016】
【課題を解決するための手段】この発明に係る半導体記
憶装置及びアドレス記憶方式は、メモリのアドレス分割
を可変にするビット数変更手段と、メモリ構成を順次、
数種類変化させるブロックサイズ変更手段と、ブロック
サイズの異なるメモリ構成で任意の一定期間ユーザプロ
グラムを実行してそのときのヒット率を検出するヒット
率検出手段と、上記各手段を制御する制御手段とを備
え、上記ヒット率の高かったメモリ構成を自動的に選択
してアクセスを行うようにしたものである。
憶装置及びアドレス記憶方式は、メモリのアドレス分割
を可変にするビット数変更手段と、メモリ構成を順次、
数種類変化させるブロックサイズ変更手段と、ブロック
サイズの異なるメモリ構成で任意の一定期間ユーザプロ
グラムを実行してそのときのヒット率を検出するヒット
率検出手段と、上記各手段を制御する制御手段とを備
え、上記ヒット率の高かったメモリ構成を自動的に選択
してアクセスを行うようにしたものである。
【0017】
【作用】この発明においては、TAGアドレスとエント
リアドレスのbit数の割合及びWAY数を変更可能な
構成とし、ユーザプログラムに応じてヒット率が向上す
るように自動的にメモリ構成を最適化するようにしたか
ら、プログラムの局在性の有無に係わらず常に高いヒッ
ト率が得られる。
リアドレスのbit数の割合及びWAY数を変更可能な
構成とし、ユーザプログラムに応じてヒット率が向上す
るように自動的にメモリ構成を最適化するようにしたか
ら、プログラムの局在性の有無に係わらず常に高いヒッ
ト率が得られる。
【0018】
実施例1.以下、本発明の実施例について説明する。図
1は本発明の一実施例による半導体記憶装置であるキャ
ッシュメモリ及びその制御系を含むブロック構成図であ
り、図4と同一符号は同一または相当部分を示し、3は
後述するアドレスデコーダ5を制御するデコーダ制御回
路、4はブロックサイズに応じてTAGメモリ1,デー
タメモリ2の物理的配置を適当なWAY数に設定するW
AY制御回路、5は入力アドレスのTAG部とENTR
Y部の分割比を変更する機能を有するアドレスデコー
ダ、6はデータメモリに新たなデータを書き込む際に適
切なWAYを選択するためのリプレイス制御回路、8は
後述するヒット率検出部の出力に応じて上記デコーダ制
御回路3,WAY制御回路4,リプレイス制御回路6を
コントロールする制御部、9はアクセス時に一定時間内
のヒット数をカウントし、各動作時のカウンタ値を比較
してその結果を上記制御部8に出力するヒット率検出部
である。
1は本発明の一実施例による半導体記憶装置であるキャ
ッシュメモリ及びその制御系を含むブロック構成図であ
り、図4と同一符号は同一または相当部分を示し、3は
後述するアドレスデコーダ5を制御するデコーダ制御回
路、4はブロックサイズに応じてTAGメモリ1,デー
タメモリ2の物理的配置を適当なWAY数に設定するW
AY制御回路、5は入力アドレスのTAG部とENTR
Y部の分割比を変更する機能を有するアドレスデコー
ダ、6はデータメモリに新たなデータを書き込む際に適
切なWAYを選択するためのリプレイス制御回路、8は
後述するヒット率検出部の出力に応じて上記デコーダ制
御回路3,WAY制御回路4,リプレイス制御回路6を
コントロールする制御部、9はアクセス時に一定時間内
のヒット数をカウントし、各動作時のカウンタ値を比較
してその結果を上記制御部8に出力するヒット率検出部
である。
【0019】次に動作について図2のフローチャートを
参照しつつ説明する。まず、ステップS1において、デ
コーダ制御回路3の出力によってアドレスデコーダ5を
構成するセレクタ51が制御され、例えば第1のエント
リデコーダ52が選択されることによって、TAGメモ
リ1およびデータメモリ2の構成を所定のTAG×EN
TRYからなる『マトリクス1』の状態にする。続いて
ステップS2でヒット率検出部9を初期化し、ヒット数
を計数するヒット数カウンタ91をゼロにする。
参照しつつ説明する。まず、ステップS1において、デ
コーダ制御回路3の出力によってアドレスデコーダ5を
構成するセレクタ51が制御され、例えば第1のエント
リデコーダ52が選択されることによって、TAGメモ
リ1およびデータメモリ2の構成を所定のTAG×EN
TRYからなる『マトリクス1』の状態にする。続いて
ステップS2でヒット率検出部9を初期化し、ヒット数
を計数するヒット数カウンタ91をゼロにする。
【0020】その後、ステップS3においてキャッシン
グを始め、ヒットする度にヒット数カウンタ91でカウ
ントアップする。この状態でタイマ92で設定された一
定時間が経過すると、カウンタ91の値を第1のヒット
数記憶用レジスタ93に写し、続いてステップS4でT
AGメモリ1及びデータメモリ2を初期化する。次に、
デコーダ制御回路3の出力によって、アドレスデコーダ
5を構成するセレクタ51が制御されて、例えば第1及
び第2のエントリデコーダ52,53がともに選択され
ることによって、TAGメモリ1及びデータメモリ2の
構成を上記『マトリクス1』とは異なるTAG×ENT
RY構成からなる『マトリクス2』の状態にする(ステ
ップS5)。
グを始め、ヒットする度にヒット数カウンタ91でカウ
ントアップする。この状態でタイマ92で設定された一
定時間が経過すると、カウンタ91の値を第1のヒット
数記憶用レジスタ93に写し、続いてステップS4でT
AGメモリ1及びデータメモリ2を初期化する。次に、
デコーダ制御回路3の出力によって、アドレスデコーダ
5を構成するセレクタ51が制御されて、例えば第1及
び第2のエントリデコーダ52,53がともに選択され
ることによって、TAGメモリ1及びデータメモリ2の
構成を上記『マトリクス1』とは異なるTAG×ENT
RY構成からなる『マトリクス2』の状態にする(ステ
ップS5)。
【0021】その後、ステップS6においてステップS
3と同様にキャッシングを始め、そのときのヒット数を
カウンタ91でカウントし、一定時間後、得られたカウ
ント数を第2のヒット数記憶用レジスタ94に移す。次
いでステップS7において、コンパレータ95で第1の
ヒット数記憶用レジスタ93と第2のHIT数記憶用レ
ジスタ94に記憶された値が比較され、ヒット数の多か
った構成(TAG×ENTRY)が採用されるように制
御部8に検出信号を出力する。
3と同様にキャッシングを始め、そのときのヒット数を
カウンタ91でカウントし、一定時間後、得られたカウ
ント数を第2のヒット数記憶用レジスタ94に移す。次
いでステップS7において、コンパレータ95で第1の
ヒット数記憶用レジスタ93と第2のHIT数記憶用レ
ジスタ94に記憶された値が比較され、ヒット数の多か
った構成(TAG×ENTRY)が採用されるように制
御部8に検出信号を出力する。
【0022】すなわちステップS7で、レジスタ93の
値がレジスタ94の値よりも小さいと判定された場合、
ステップS8に進んでTAGメモリ1,データメモリ2
の構成として『マトリクス2』の状態を継続することで
以降のキャッシングを行う。
値がレジスタ94の値よりも小さいと判定された場合、
ステップS8に進んでTAGメモリ1,データメモリ2
の構成として『マトリクス2』の状態を継続することで
以降のキャッシングを行う。
【0023】一方、レジスタ93の値がレジスタ94の
値よりも大きい時には、ステップS9に進んでTAGメ
モリ1,データメモリ2を初期化したのち、ステップS
10でTAGメモリ1,データメモリ2の構成として
『マトリクス1』の状態に変更する。
値よりも大きい時には、ステップS9に進んでTAGメ
モリ1,データメモリ2を初期化したのち、ステップS
10でTAGメモリ1,データメモリ2の構成として
『マトリクス1』の状態に変更する。
【0024】以下、実際のメモリ構成において具体例を
挙げて説明する。図3はキャッシュメモリのTAGメモ
リ1及びアドレスデコーダ5のより詳細な構成を示すブ
ロック図であり、図において、11はメモリ1,2内に
内蔵されたウエイセレクタであり、WAY制御回路4の
出力であるWAY構成・コントロール信号を受けて、8
WAY構成時にはWAY−A〜Hの全WAYに、また4
WAY構成時にはTAGアドレスA4に応じて活性化さ
れたエントリデコーダ側のWAY−A〜Dの4つのWA
YにTAGアドレスを送るためのセレクタである。ま
た、リプレイス制御回路6の出力であるリプレイス・ウ
エイ・コントロール信号に従い、入力されたTAGアド
レスを所定のWAYに書き込む際のイネーブル信号を伝
達する機能も具備している。
挙げて説明する。図3はキャッシュメモリのTAGメモ
リ1及びアドレスデコーダ5のより詳細な構成を示すブ
ロック図であり、図において、11はメモリ1,2内に
内蔵されたウエイセレクタであり、WAY制御回路4の
出力であるWAY構成・コントロール信号を受けて、8
WAY構成時にはWAY−A〜Hの全WAYに、また4
WAY構成時にはTAGアドレスA4に応じて活性化さ
れたエントリデコーダ側のWAY−A〜Dの4つのWA
YにTAGアドレスを送るためのセレクタである。ま
た、リプレイス制御回路6の出力であるリプレイス・ウ
エイ・コントロール信号に従い、入力されたTAGアド
レスを所定のWAYに書き込む際のイネーブル信号を伝
達する機能も具備している。
【0025】ここでは、説明の簡略化のため、入力アド
レスはA0:9の10bits構成としている。またア
ドレスバスはTAGアドレス用として、A0:3、及び
A4を設け、エントリアドレス用としてA4:7、及び
A5:7を設ける。ここでアドレスA4が重複して設定
されているのは、TAGアドレスの幅を4〜5bits
内で変更可能とし、エントリアドレスの幅を3〜4bi
ts内で変更可能にするためである。またWAY数は上
記アドレス割付に応じて、4WAYもしくは8WAYに
設定可能なものとする。
レスはA0:9の10bits構成としている。またア
ドレスバスはTAGアドレス用として、A0:3、及び
A4を設け、エントリアドレス用としてA4:7、及び
A5:7を設ける。ここでアドレスA4が重複して設定
されているのは、TAGアドレスの幅を4〜5bits
内で変更可能とし、エントリアドレスの幅を3〜4bi
ts内で変更可能にするためである。またWAY数は上
記アドレス割付に応じて、4WAYもしくは8WAYに
設定可能なものとする。
【0026】上記のTAGメモリを構成するため、TA
GアドレスがA0:4の5bits構成の場合を考慮
し、1エントリ当たり5bits必要である。またエン
トリ数は8または16であることからTAGメモリの最
小構成単位を、8エントリ×5bits×4WAY(b
its)となり、さらにエントリアドレスがA4:7
(4bits幅)の場合にエントリ数が2の4乗個(=
16エントリ)が必要であるため、上記最小構成単位か
らなるTAGメモリ群が2個用いられて上記TAGメモ
リ1が構成されることとなる。このうち紙面下側のタグ
メモリ群は8WAY構成時にWAY−E〜Hとして機能
するものである。
GアドレスがA0:4の5bits構成の場合を考慮
し、1エントリ当たり5bits必要である。またエン
トリ数は8または16であることからTAGメモリの最
小構成単位を、8エントリ×5bits×4WAY(b
its)となり、さらにエントリアドレスがA4:7
(4bits幅)の場合にエントリ数が2の4乗個(=
16エントリ)が必要であるため、上記最小構成単位か
らなるTAGメモリ群が2個用いられて上記TAGメモ
リ1が構成されることとなる。このうち紙面下側のタグ
メモリ群は8WAY構成時にWAY−E〜Hとして機能
するものである。
【0027】上記のアドレス割付を採用することによ
り、エントリアドレス幅3bits,TAGアドレス幅
5bits,8WAYの構成と、エントリアドレス幅4
bits,TAGアドレス幅4bits,4WAYの構
成とを切り換えて選択可能とすることができる。
り、エントリアドレス幅3bits,TAGアドレス幅
5bits,8WAYの構成と、エントリアドレス幅4
bits,TAGアドレス幅4bits,4WAYの構
成とを切り換えて選択可能とすることができる。
【0028】すなわちエントリアドレスセレクタ51に
よって、エントリアドレス幅3bits,8WAY構成
のときは2つのエントリデコーダ52,53が活性化さ
れて2つのTAGメモリ群の両者がアクセスされ、3b
itsのエントリアドレスは各エントリデコーダ52,
53によって、それぞれWAY−A〜Hにおいて8エン
トリにデコードされる。またエントリアドレス幅4bi
ts,4WAY構成の時はエントリデコーダ52,53
のいずれか一方が活性化されて1つのTAGメモリ群が
アクセスされ、エントリデコーダ52(53)によっ
て、それぞれWAY−A〜Dにおいて8エントリにデコ
ードされる。
よって、エントリアドレス幅3bits,8WAY構成
のときは2つのエントリデコーダ52,53が活性化さ
れて2つのTAGメモリ群の両者がアクセスされ、3b
itsのエントリアドレスは各エントリデコーダ52,
53によって、それぞれWAY−A〜Hにおいて8エン
トリにデコードされる。またエントリアドレス幅4bi
ts,4WAY構成の時はエントリデコーダ52,53
のいずれか一方が活性化されて1つのTAGメモリ群が
アクセスされ、エントリデコーダ52(53)によっ
て、それぞれWAY−A〜Dにおいて8エントリにデコ
ードされる。
【0029】一方、アドレスのENTRY部は、エント
リデコーダ5を介して、それぞれTAGメモリ1及びデ
ータメモリ2(図1参照)のデコードされたエントリを
アクセス可能とする。
リデコーダ5を介して、それぞれTAGメモリ1及びデ
ータメモリ2(図1参照)のデコードされたエントリを
アクセス可能とする。
【0030】また、一旦TAGメモリ書き込みが行われ
ると、アドレスコンパレータ7によって、現在記憶して
いるTAGアドレスと新たに入力されたTAGアドレス
とが比較され、一致すればヒット信号が出力される。な
お、CPUのリード動作時はヒットしたWAYのデータ
が出力され、CPU等のライト動作ではヒットしたWA
Yのデータが書換えられるか同エントリのTAGアドレ
スが無効化される。
ると、アドレスコンパレータ7によって、現在記憶して
いるTAGアドレスと新たに入力されたTAGアドレス
とが比較され、一致すればヒット信号が出力される。な
お、CPUのリード動作時はヒットしたWAYのデータ
が出力され、CPU等のライト動作ではヒットしたWA
Yのデータが書換えられるか同エントリのTAGアドレ
スが無効化される。
【0031】次にアドレス分割時のアドレスデコーダの
動作について詳細な説明をする。プログラムの局在性が
大きくアドレスA4をエントリアドレスとして使用する
場合、すなわちエントリアドレス4bits,TAGア
ドレス4bits,4WAY時には、エントリアドレス
セレクタ51はアドレスA4に従って後段のエントリデ
コーダ52,53のどちらか一方を活性化する。
動作について詳細な説明をする。プログラムの局在性が
大きくアドレスA4をエントリアドレスとして使用する
場合、すなわちエントリアドレス4bits,TAGア
ドレス4bits,4WAY時には、エントリアドレス
セレクタ51はアドレスA4に従って後段のエントリデ
コーダ52,53のどちらか一方を活性化する。
【0032】一方、プログラムの局在性が小さくアドレ
スA4がTAGアドレスとして使用される場合すなわ
ち、エントリアドレス3bits,TAGアドレス5b
its,8WAY時には、アドレスA4はTAGアドレ
スとして無効となる。またこの時、エントリアドレスセ
レクタ51は両デコーダ52,53を活性化し、A5〜
A7の3bitsをエントリアドレスとして伝達する。
スA4がTAGアドレスとして使用される場合すなわ
ち、エントリアドレス3bits,TAGアドレス5b
its,8WAY時には、アドレスA4はTAGアドレ
スとして無効となる。またこの時、エントリアドレスセ
レクタ51は両デコーダ52,53を活性化し、A5〜
A7の3bitsをエントリアドレスとして伝達する。
【0033】以上のように、TAGアドレスは常時全て
のTAGメモリに入力されており、エントリデコーダ5
2,53によって該当するエントリのみTAGアドレス
が比較される。アドレスのTAG部がA0:3の4bi
tsで構成されている場合、TAGメモリのA4部分は
比較には使用せず、ヒット信号生成時も無視するよう制
御する。
のTAGメモリに入力されており、エントリデコーダ5
2,53によって該当するエントリのみTAGアドレス
が比較される。アドレスのTAG部がA0:3の4bi
tsで構成されている場合、TAGメモリのA4部分は
比較には使用せず、ヒット信号生成時も無視するよう制
御する。
【0034】このように本実施例によれば、アドレスデ
コーダ5によってTAGアドレスとエントリアドレスの
ビット数の割合を変化させ、WAY制御回路4でTAG
メモリ1,データメモリ2のWAY数を変更し、複数の
アドレス割付状態及びWAY数の組み合わせからなる構
成で一定期間アクセスを行って各構成でのヒット率をヒ
ット率検出部9で検出し、該ヒット率検出部9の検出結
果を受けて最もヒット率の高かったマトリクス状態が選
択されるように制御部8でデコーダ制御回路3,WAY
制御回路4,リプレイス制御回路6をコントロールする
ことにより、プログラムの局在性に係わらず、常に高い
ヒット率が得られる。
コーダ5によってTAGアドレスとエントリアドレスの
ビット数の割合を変化させ、WAY制御回路4でTAG
メモリ1,データメモリ2のWAY数を変更し、複数の
アドレス割付状態及びWAY数の組み合わせからなる構
成で一定期間アクセスを行って各構成でのヒット率をヒ
ット率検出部9で検出し、該ヒット率検出部9の検出結
果を受けて最もヒット率の高かったマトリクス状態が選
択されるように制御部8でデコーダ制御回路3,WAY
制御回路4,リプレイス制御回路6をコントロールする
ことにより、プログラムの局在性に係わらず、常に高い
ヒット率が得られる。
【0035】なお上記実施例では、アドレス割付けをエ
ントリアドレス3bits,TAGアドレス5bit
s,8WAY構成の場合と、エントリアドレス4bit
s,TAGアドレス4bits,4WAY構成の場合の
2通りの組み合わせが得られるようにしたが、割付け時
のbits構成や、割付けの組み合わせ数はこれに限ら
れるものではなく、種々の変更が可能であることは言う
までもない。
ントリアドレス3bits,TAGアドレス5bit
s,8WAY構成の場合と、エントリアドレス4bit
s,TAGアドレス4bits,4WAY構成の場合の
2通りの組み合わせが得られるようにしたが、割付け時
のbits構成や、割付けの組み合わせ数はこれに限ら
れるものではなく、種々の変更が可能であることは言う
までもない。
【0036】
【発明の効果】以上のように、この発明によれば、デー
タメモリ自体のサイズを変更することなく、自動的に各
ユーザプログラムの持つ空間的局所性に応じてブロック
サイズを最適化し、キャッシュメモリのヒット率が最大
となるメモリ構成を選択するようにしたので、メモリが
より一層有効なデータを保持することができ、スループ
ットを低下することなく、ユーザがプログラミングする
際の自由度が拡張される効果がある。
タメモリ自体のサイズを変更することなく、自動的に各
ユーザプログラムの持つ空間的局所性に応じてブロック
サイズを最適化し、キャッシュメモリのヒット率が最大
となるメモリ構成を選択するようにしたので、メモリが
より一層有効なデータを保持することができ、スループ
ットを低下することなく、ユーザがプログラミングする
際の自由度が拡張される効果がある。
【図1】この発明の一実施例による半導体記憶装置のキ
ャッシュメモリを中心とした構成を示すブロック図。
ャッシュメモリを中心とした構成を示すブロック図。
【図2】上記キャッシュメモリにおいてヒット率を向上
するための最適なメモリ構成を自動決定する際のフロー
図。
するための最適なメモリ構成を自動決定する際のフロー
図。
【図3】上記実施例においてアドレス割付を可変にする
ためのキャッシュメモリのTAG部の構成を示すブロッ
ク図。
ためのキャッシュメモリのTAG部の構成を示すブロッ
ク図。
【図4】従来の半導体記憶装置のキャッシュメモリを中
心とした構成を示すブロック図。
心とした構成を示すブロック図。
【図5】従来の半導体記憶装置における8ブロック構成
の場合のTAGメモリの記憶内容を示す図。
の場合のTAGメモリの記憶内容を示す図。
【図6】従来の半導体記憶装置における16ブロック構
成の場合のTAGメモリの記憶内容を示す図。
成の場合のTAGメモリの記憶内容を示す図。
1 TAGメモリ 2 データメモリ 3 デコーダ制御回路 4 WAY制御回路 5 アドレスデコーダ 51 エントリセレクタ 52 第1のエントリデコーダ 53 第2のエントリデコーダ 6 リプレイス制御回路 7 アドレスコンパレータ 8 制御部 9 ヒット率検出部 91 ヒット数カウンタ 92 タイマー 93 第1のヒット数記憶レジスタ 94 第2のヒット数記憶レジスタ 95 コンパレータ 11 ウエイセレクタ
Claims (2)
- 【請求項1】 キャッシュメモリと主記憶をブロック単
位に分割し、この単位で対応付けを行いアドレスを記憶
させるセット・アソシアティブ方式のキャッシュメモリ
を有する半導体記憶装置において、 記録時にアドレス信号をTAGアドレスとエントリアド
レスに分割する際のビット数の割合を変更するビット数
変更手段と、 キャッシュメモリのブロックサイズを変更するブロック
サイズ変更手段と、 所定のビット構成を有するアドレスが、所定のブロック
サイズを有するキャッシュメモリに記憶されるように上
記ビット数変更手段及びブロックサイズ変更手段を制御
して記憶時のモードを設定する制御手段と、 該制御手段により設定された各モード時のキャッシュヒ
ット率を検出し、それぞれのモードでのヒット率を比較
するヒット率検出手段とを備え、 上記ヒット率検出手段の出力に応じて、該検出されるヒ
ット率が大きくなるように上記制御手段によるモード設
定が行われることを特徴とする半導体記憶装置。 - 【請求項2】 キャッシュメモリと主記憶をブロック単
位に分割し、この単位で対応付けてアドレスの記憶を行
うセット・アソシアティブ方式のアドレス記憶方式にお
いて、 記憶時のアドレスのTAGアドレスとエントリアドレス
のビット数の割合を変化させるとともにキャッシュメモ
リのブロックサイズを変化させて得られる複数のモード
でアクセスを行い、 各々のモードにおけるヒット率が大きいときのモードを
採用してアクセスを行うことを特徴とするアドレス記憶
方式。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP4314689A JPH06161896A (ja) | 1992-11-25 | 1992-11-25 | 半導体記憶装置及びアドレス記憶方式 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP4314689A JPH06161896A (ja) | 1992-11-25 | 1992-11-25 | 半導体記憶装置及びアドレス記憶方式 |
Publications (1)
Publication Number | Publication Date |
---|---|
JPH06161896A true JPH06161896A (ja) | 1994-06-10 |
Family
ID=18056370
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP4314689A Pending JPH06161896A (ja) | 1992-11-25 | 1992-11-25 | 半導体記憶装置及びアドレス記憶方式 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JPH06161896A (ja) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5897651A (en) * | 1995-11-13 | 1999-04-27 | International Business Machines Corporation | Information handling system including a direct access set associative cache and method for accessing same |
US7120745B2 (en) | 2002-07-05 | 2006-10-10 | Fujitsu Limited | Cache memory device and memory allocation method |
-
1992
- 1992-11-25 JP JP4314689A patent/JPH06161896A/ja active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5897651A (en) * | 1995-11-13 | 1999-04-27 | International Business Machines Corporation | Information handling system including a direct access set associative cache and method for accessing same |
US7120745B2 (en) | 2002-07-05 | 2006-10-10 | Fujitsu Limited | Cache memory device and memory allocation method |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US5737750A (en) | Partitioned single array cache memory having first and second storage regions for storing non-branch and branch instructions | |
US5410669A (en) | Data processor having a cache memory capable of being used as a linear ram bank | |
US8250332B2 (en) | Partitioned replacement for cache memory | |
JPH05241962A (ja) | 再構成可能なキャッシュ・メモリ・システム | |
US6560679B2 (en) | Method and apparatus for reducing power consumption by skipping second accesses to previously accessed cache lines | |
JP4445081B2 (ja) | キャッシュ・メモリ | |
JPH04242848A (ja) | 走行モード別キャッシュメモリ制御方式 | |
JP3605205B2 (ja) | データ処理装置および処理方法 | |
JPH0616272B2 (ja) | メモリアクセス制御方式 | |
EP0549218A1 (en) | A memory apparatus and method for use in a data processing system | |
US20040199723A1 (en) | Low-power cache and method for operating same | |
JPH07114500A (ja) | 不揮発性メモリ記憶装置 | |
EP1573553B1 (en) | Selectively changeable line width memory | |
JPH06161896A (ja) | 半導体記憶装置及びアドレス記憶方式 | |
JP2003131945A (ja) | キャッシュメモリ装置 | |
US7543113B2 (en) | Cache memory system and method capable of adaptively accommodating various memory line sizes | |
JPH04369061A (ja) | キャッシュメモリの制御方式 | |
KR0158487B1 (ko) | 반도체 메모리 캐쉬메모리 제어장치 및 그 방법 | |
JPH02213960A (ja) | キャッシュメモリ | |
JPS63201850A (ja) | オンチツプキヤツシユメモリ | |
JPH0659977A (ja) | 明示的なライン置換え操作が可能なキャッシュメモリとその制御方法 | |
JPH01255944A (ja) | キャッシュメモリ | |
JPH04288647A (ja) | キャッシュメモリにおける置き換え制御装置 | |
JP2005235207A (ja) | データ処理装置およびデータ処理方法 | |
JPH06348596A (ja) | キャッシュ・メモリ・システム並びにキャッシュ・メモリ・アクセス方法及びシステム |