JPH06243045A - キャッシュメモリ - Google Patents

キャッシュメモリ

Info

Publication number
JPH06243045A
JPH06243045A JP5023113A JP2311393A JPH06243045A JP H06243045 A JPH06243045 A JP H06243045A JP 5023113 A JP5023113 A JP 5023113A JP 2311393 A JP2311393 A JP 2311393A JP H06243045 A JPH06243045 A JP H06243045A
Authority
JP
Japan
Prior art keywords
address
data block
tag
data
signal
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP5023113A
Other languages
English (en)
Inventor
Tetsuya Tanaka
哲也 田中
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Panasonic Holdings Corp
Original Assignee
Matsushita Electric Industrial Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Matsushita Electric Industrial Co Ltd filed Critical Matsushita Electric Industrial Co Ltd
Priority to JP5023113A priority Critical patent/JPH06243045A/ja
Publication of JPH06243045A publication Critical patent/JPH06243045A/ja
Pending legal-status Critical Current

Links

Landscapes

  • Memory System Of A Hierarchy Structure (AREA)

Abstract

(57)【要約】 【目的】 データブロックサイズが小さいキャッシュに
おいて、タグメモリの容量と面積を削減し、初期状態の
ヒット率を高める。 【効果】 タグメモリ10のアドレスタグ部をデータブ
ロックとサブデータブロックの2階層の木構造に合わせ
てアドレスタグA,Bの2つのフィールドに分割し、さ
らにアドレスタグBをデータメモリ20に格納されるサ
ブデータブロックa,b,c,dに合わせてアドレスタ
グBa,Bb,Bc,Bdの4つのフィールドに分割
し、これらのエントリはリクエストアドレスのオフセッ
ト部のサブデータブロック選択のフィールドにより定義
し、かつサブデータブロックa,b,c,dのアドレス
タグの上位部をアドレスタグAとして共有させる。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明はマイクロプロセッサおよ
びマイクロコントローラにおけるキャッシュメモリに関
するものである。
【0002】
【従来の技術】近年、キャッシュメモリはマイクロプロ
セッサチップ内に取り込まれてきている。このようなキ
ャッシュは高速にアクセスすることができるが、チップ
面積の点から容量や構成に制限がある。一般にオンチッ
プキャッシュではデータブロックサイズを大きくするこ
とによってタグメモリの面積を小さくしている。しか
し、データブロックサイズを大きくすることにより、使
用されるデータに付随して使用されないデータがキャッ
シュに格納される場合があり、キャッシュの使用効率が
悪い。また、キャッシュミスのときのように主記憶から
キャッシュまたはキャッシュから主記憶への転送を行う
場合のサイクル数が長くなるという問題がある。これは
データブロックサイズを小さくすることで回避できる
が、そうすることによりタグメモリの容量が大きくな
る。さらに、キャッシュの初期状態において、使用され
るデータに付随して次に使用される可能性のあるデータ
がキャッシュに格納されないのでキャッシュの初期状態
のヒット率が低下する。以下図面を参照しながら、上記
の従来のキャッシュメモリの一例について説明する。本
従来例ではデータブロックサイズが小さいキャッシュメ
モリを示す。
【0003】図9は従来のキャッシュメモリの概略図を
示すものである。図9において、1はキャッシュメモ
リ、2はCPU、3はバスコントローラ、4は主記憶で
ある。10は4つのアドレスタグa,b,c,dと4つ
のバリッドビットa,b,c,dを各エントリに格納す
るタグメモリ、20は4つのデータブロックa,b,
c,dを各エントリに格納するデータメモリ、30は比
較器、50はヒット信号生成のための論理回路、70、
71、72はそれぞれアドレスタグ、バリッドビット、
データの各メモリのリード/ライト制御回路、80はキ
ャッシュメモリ全体の制御回路である。キャッシュメモ
リ1とCPU2とバスコントローラ3はアドレスバス1
00およびデータバス110で接続されており、主記憶
4はメモリバス900によりバスコントローラ3に接続
されている。リクエストアドレスのインデックスフィー
ルドはタグメモリ10とデータメモリ20のエントリを
選択する。リード/ライト制御回路70、71、72は
それぞれアドレスタグ、バリッドビット、データの各メ
モリの選択されたエントリの内容をバス315、バリッ
ド信号320、データバス110に出力したり、これら
からのデータを書き込んだりする。リクエストアドレス
のアドレスタグ部とタグメモリ10の各アドレスタグフ
ィールドの出力は比較器30に入力されそれぞれの一致
信号301を生成し、論理回路50で一致信号301と
バリッド信号320からヒット信号300を生成する。
ヒット信号は制御回路80に入力され制御信号を生成す
る。
【0004】以上のように構成された従来のキャッシュ
メモリについて、以下その動作について説明する。説明
の簡単化のためCPU2がリードを行なう場合の説明を
行う。まず、CPU2がアドレスバス100にリクエス
トアドレスを出力する。リクエストアドレスのアドレス
タグ部によりヒット信号300が”1”の場合はデータ
ブロックa,b,c,dのうちリクエストアドレスのデ
ータブロック選択フィールドに対応するデータをデータ
バス110に出力し、CPU2はデータバス110のデ
ータを取り込む。
【0005】ヒット信号300が”0”の場合はバスコ
ントローラ3を介して主記憶4からデータを読みだし、
データブロックa,b,c,dのうちリクエストアドレ
スのデータブロック選択フィールドに対応する部分に書
き込む。その後、データメモリ20のデータをデータバ
ス110に出力し、CPU2はデータバス110のデー
タを取り込む。
【0006】以上のように動作するキャッシュにおい
て、たとえば、アドレスタグが20ビットであるとする
とタグメモリの1エントリの大きさは84ビットにな
る。
【0007】
【発明が解決しようとする課題】しかしながら、上記の
ような構成では、各データブロック毎にアドレスタグを
保持する必要があるのでタグメモリの容量と面積が大き
くなる。さらに、キャッシュの初期状態において、使用
するデータに付随して次に使用される可能性のあるデー
タがキャッシュに格納されないので、初期状態のヒット
率が低下するという問題を有していた。また、データブ
ロックサイズを大きくすると上記問題は回避できるがキ
ャッシュの全てのエントリにデータが入った状態でのデ
ータメモリの使用効率が低下し、キャッシュミス時のサ
イクル数が大きくなる。
【0008】本発明は上記問題点に鑑み、データブロッ
クサイズが小さいキャッシュにおいて、タグメモリの容
量と面積を削減し、初期状態のヒット率が高いキャッシ
ュメモリを提供することを目的とするものである。
【0009】
【課題を解決するための手段】上記問題点を解決するた
めに本発明の請求項1記載のキャッシュメモリは、一回
のキャッシュアクセスにおいて主記憶からの転送または
主記憶への転送に用いられるデータの集合で定義される
データブロックにおいて、複数の子データブロックから
成る親データブロックがそれ自体子データブロックに成
り得る木構造をなしたデータブロック群を有し、前記デ
ータブロック群の子データブロックを有するデータブロ
ックはアドレスタグ部の一部が同一であるアドレスのデ
ータブロックを子データブロックとして有するようにし
たものである。
【0010】さらに、本発明の請求項2記載のキャッシ
ュメモリは、上記構成に基づき、木構造を成したデータ
ブロック群の階層数と同数でかつ前記データブロック群
の各階層に対応した第1のフィールドに分割されたアド
レスタグ部を有するリクエストアドレスと、前記データ
ブロック群の階層数と同数でかつ前記データブロック群
の各階層に対応した第2のフィールドに分割され、さら
に前記第2のフィールドが前記データブロック群の各階
層のデータブロック数と同数でかつ前記各階層のデータ
ブロックに対応した第3のフィールドに分割されたアド
レスタグ部を前記リクエストアドレスのオフセット部に
より定義されるエントリに有するタグメモリとを有し、
前記データブロック群内の第1のデータブロックのアド
レスのアドレスタグ部の前記第1のデータブロックに対
応する第1のフィールドを、前記タグメモリのアドレス
タグ部の前記第1のデータブロックに対応する第3のフ
ィールドに格納する手段を備えたものである。
【0011】また、本発明の請求項3記載のキャッシュ
メモリは、上記構成に加え、木構造のデータブロック群
の中で主記憶からデータ転送を行うデータブロックを属
性ビットの状態により決定する手段を備えたものであ
る。
【0012】さらに、本発明の請求項4記載のキャッシ
ュメモリは、上記構成に基づき、木構造のデータブロッ
ク群の中で主記憶からデータ転送を行うデータブロック
をタグメモリの選択されたエントリの有効ビットの状態
により決定する手段を備えたものである。
【0013】また、本発明の請求項5記載のキャッシュ
メモリは、上記構成に基づき、タグメモリのアドレスタ
グ部のフィールドの中で、木構造をしたデータブロック
群の上位階層から指定された階層までに対応する前記フ
ィールドの内容が、フラッシュリクエストアドレスのア
ドレスタグ部の上位階層から前記指定された階層に対応
するフィールドの内容とそれぞれ一致した場合、前記指
定された階層に含まれる全てのデータブロックをフラッ
シュする手段を備えたものである。
【0014】
【作用】上記請求項1および2記載の構成により、小さ
なデータブロックサイズのキャッシュにおいて、各デー
タブロックのアドレスタグの一部をいくつかのデータブ
ロックで共有できるので、アドレスタグを個々のデータ
ブロックごとに持つ場合よりタグメモリの容量が少なく
面積も小さくなる。
【0015】また、上記請求項3および4記載の構成に
より、アクセス要求があるとキャッシュメモリの各エン
トリのひとつが選択される。このとき、キャッシュメモ
リの選択されているデータが要求されたデータでない場
合は要求されたデータを主記憶から読み出す。主記憶か
らのデータ転送時に通常は木構造の下位に対応する(つ
まり、データブロックサイズの小さい)データブロック
で転送するが、属性ビットの適切な条件による木構造の
上位に対応する(つまり、データブロックサイズの大き
い)データブロックで転送することにより、キャッシュ
サイズの大きいキャッシュとして動作する。たとえば、
初期状態のようにエントリ内の全てのバリッドビット
が”0”のときにデータブロックサイズの大きいキャッ
シュとして動作することにより、データブロックサイズ
の小さいキャッシュの場合より初期状態のビット率を良
くすることができる。
【0016】また、上記請求項5記載の構成により、フ
ラッシュ要求があるとキャッシュメモリの各エントリを
順番に選択する。このとき、フラッシュ要求のアドレス
比較を木構造のデータブロック群の上位から指定された
階層に対応するデータブロックのアドレスを用いて行な
うことで、小さいデータブロック時のアドレス比較の場
合に比べてアドレス比較の回数が少なくなり、効率よく
フラッシュすることができる。
【0017】
【実施例】以下本発明の一実施例のキャッシュメモリに
ついて、図面を参照しながら説明する。 (実施例1)図1は本発明の第1の実施例におけるキャ
ッシュメモリのブロック図である。本実施例は請求項1
および2に対応している。図2はリクエストアドレスの
アドレス構成を示しており、図3はリクエストアドレス
のアドレスタグ部のためのタグメモリのエントリ構成を
示しており、図4は本キャッシュ制御部の状態遷移図を
示している。
【0018】図1において、1はキャッシュメモリ、2
はCPUであり、キャッシュメモリ1とCPU2はアド
レスバス100とデータバス110で接続されている。
3はバスコントローラであり、アドレスバス100とデ
ータバス110でキャッシュメモリ1に接続されてい
る。4は主記憶であり、メモリバス900でバスコント
ローラ3に接続されている。10はタグメモリであり、
図3に示すように各エントリにアドレスタグA、アドレ
スタグBa,Bb,Bc,Bd、バリッドビットa,
b,c,dのフィールドを持つ。20はデータブロック
のためのデータメモリであり、各エントリにサブデータ
ブロックa,b,c,dのフィールドを持つ。比較器3
0,31はそれぞれリクエストアドレスのアドレスタグ
部のアドレスタグAフィールド、アドレスタグBフィー
ルドとタグメモリ10のアドレスタグAフィールド、ア
ドレスタグBa,Bb,Bc,Bdのうちいずれかのフ
ィールドを比較し、ヒット信号を生成するものである。
50はビット信号を生成する論理回路、70、71、7
2、73はそれぞれアドレスタグA、アドレスタグB、
バリッドビット、データの各メモリのリード/ライト制
御回路、80はキャッシュメモリ1全体を制御する制御
回路であり、図4に示す状態遷移図に従った動作をす
る。
【0019】200はCPU2からキャッシュメモリ1
へのリクエスト信号、201はリクエスト信号200に
対するアクノレッジ信号、210はキャッシュメモリ1
からバスコントローラ3へのリクエスト信号、211は
リクエスト信号210に対するアクノレッジ信号であ
る。300,301はそれそれ比較器30,31が出力
するヒット信号である。320はタグメモリ10のバリ
ッドビットa,b,c,dのうちいずれかのフィールド
の出力であるバリッド信号、350はヒット信号、40
0はリード/ライト信号、401はインバリデート要求
信号である。
【0020】また、図2に示すように、リクエストアド
レスはアドレスタグ部がアドレスタグA、アドレスタグ
Bの2つのフィールドに分割され、オフセット部がイン
デックス、サブデータブロック選択、サブデータブロッ
クオフセットのフィールドに分割されている。
【0021】以上のように構成された図1のキャッシュ
メモリはデータブロックとサブデータブロックで2階層
の木構造を成しており、タグメモリ10のアドレスタグ
部は、データブロックとサブデータブロックの2階層の
木構造に対応してアドレスタグA、アドレスタグBの2
つのフィールドに分割され、さらにアドレスタグBはサ
ブデータブロックa,b,c,dに対応して、図3に示
すような、アドレスタグBa,アドレスタグBb,アド
レスタグBc,アドレスタグBdの4つのフィールドに
分割され、これらのエントリは、図2のリクエストアド
レスのオフセット部のサブデータブロック選択のフィー
ルドにより定義されるとともに、サブデータブロック
a,b,c,dのアドレスタグの上位部がアドレスタグ
Aとして共有されている。したがって、サブデータブロ
ックa,b,c,dのアドレスタグを個々に持つ場合と
比較してタグメモリの容量が小さくなる。たとえば、ア
ドレスタグ部が20ビットとし、上位10ビットをサブ
データブロックa,b,c,dで共有すると1エントリ
の大きさは54ビットになるが、サブデータブロック
a,b,c,dで個々に持つ場合は84ビットになる。
【0022】以下図1、図2、図3および図4を用いて
その動作を説明する。本実施例のキャッシュはライトス
ルーキャッシュであり、CPU2がリードを行うときの
説明を行う。また、特に断らない限りデータは8バイト
のデータを表し、データブロックサイズは32バイト、
サブデータブロックサイズは8バイトのデータを表す。
【0023】(1)CPU2がリクエスト信号200
を”0”にしているときは制御回路80の内部状態はS
0である。したがって、リード/ライト信号400は”
1”に、インバリデート要求信号401は”0”に、リ
クエスト信号210は”0”に、アクノレッジ信号20
1は”0”になる。
【0024】(2)CPU2がリクエストアドレスをア
ドレスバス100に出力し、リクエスト信号200を”
1”にする。リクエストアドレスのインデックスフィー
ルドはタグメモリ10とデータメモリ20に入力され、
それぞれのエントリを選択する。リード/ライト制御回
路70、71、72、73はリード/ライト信号400
が”1”になっているので、選択されたタグメモリ10
のエントリからアドレスタグA、アドレスタグBa,B
b,Bc,Bd、バリッドビットa,b,c,dを読み
だし、同様に選択されたデータメモリ20のエントリか
らデータa,b,c,dを読み出す。リード/ライト制
御回路71、72、73はリクエストアドレスのサブデ
ータブロック選択フィールドを用いてそれぞれアドレス
タグBa,Bb,Bc,Bd、バリッドビットa,b,
c,d、データa,b,c,d、から一つを選択してバ
ス315、バリッド信号320、データバス110に出
力する。選択の方法はサブデータブロック選択フィール
ドが”00”のときはaを、”01”のときはbを、”
10”のときはcを、”11”のときはdを選択する。
【0025】(3)リクエストアドレスのアドレスタグ
Aフィールドとタグメモリ10のアドレスタグAフィー
ルドの出力は比較器30に入力され、比較器30は一致
のときヒット信号300を”1”にし、不一致の時ヒッ
ト信号300を”0”にする。同様にリクエストアドレ
スのアドレスタグBフィールドとタグメモリ10のアド
レスタグBの出力は比較器31に入力され、比較器31
は一致のときヒット信号301を”1”にし、不一致の
時ヒット信号301を”0”にする。論理回路50はヒ
ット信号301、バリッド信号320およびヒット信号
300を用いてヒット信号350を生成する。
【0026】(4)制御回路80はヒット信号350
が”1”のときは(5)の処理を行い、”0”のときは
(7)の処理を行う。 (5)リクエスト信号200が”1”になっており、ヒ
ット信号350が”1”であるので、制御回路80は内
部状態をS1にし、アクノレッジ信号201を”1”に
する。CPU2はアクノレッジ信号201が”1”にな
っているのでデータバス110のデータを取り込み、リ
クエスト信号200を”0”にする。
【0027】(6)制御回路80の内部状態をS0に戻
し、(1)からの処理を繰り返す。 (7)ヒット信号300が”1”の時は(8)の処理を
行ない、”0”のときは(11)の処理を行なう。
【0028】(8)リクエスト信号200が”1”にな
っており、ヒット信号350が”0”でヒット信号30
0が”1”であるので、制御回路80内部状態をS2に
し、リクエスト信号210を”1”にし、リード/ライ
ト信号400を”0”にする。
【0029】(9)バスコントローラ3はリクエスト信
号210が”1”になっているのでアドレスバス100
のリクエストアドレスを用いて主記憶4から読みだした
データをデータバス110に出力し、アクノレッジ信号
211を”1”にする。リード/ライト信号400か”
0”になっているので、リード/ライト制御回路70は
タグメモリ10の選択されているエントリのアドレスタ
グAフィールドにリクエストアドレス100のアドレス
タグAフィールドを書き込み、リード/ライト制御回路
71はタグメモリ10の選択されているエントリのアド
レスタグBa,Bb,Bc,Bdフィールドのうちリク
エストアドレス100のサブデータブロック選択フィー
ルドで示されたフィールドにリクエストアドレス100
のアドレスタグBフィールドを書き込み、リード/ライ
ト制御回路72はタグメモリ10の選択されているエン
トリのバリッドビットa,b,c,dフィールドのうち
リクエストアドレス100のサブデータブロック選択フ
ィールドで示されたフィールドに”1”を書き込み、リ
ード/ライト制御回路73はデータメモリ20の選択さ
れているエントリのサブデータブロックa,b,c,d
フィールドのうちリクエストアドレス100のサブデー
タブロック選択フィールドで示されたフィールドにデー
タバス110のデータを書き込む。
【0030】(10)制御回路80はアクノレッジ信号
211が”1”になっているので内部状態をS0に戻
し、(2)からの処理を繰り返す。この場合はリクエス
ト信号200が”1”で、ヒット信号350が”1”の
場合の動作になる。
【0031】(11)リクエスト信号200が”1”に
なっており、ヒット信号350が”0”でヒット信号3
00が”0”であるので、制御回路80は内部状態をS
3にし、インバリデート要求信号401を”1”にす
る。インバリデート要求信号401が”1”になるとタ
グメモリ10の選択されているエントリのバリッドビッ
トa,b,c,dフィールドに”0”がセットされる。
【0032】(12)(8)からの処理を行なう。以上
のように本実施例によれば、サブデータブロックa,
b,c,dのアドレスの上位部がアドレスタグAとして
共有されているので、サブデータブロックa,b,c,
dのアドレスタグを個々に持つ場合と比較してタグメモ
リの容量が小さくなり、総面積も小さくなる。
【0033】(実施例2)図5は本発明の第2の実施例
におけるキャッシュメモリのブロック図である。本実施
例は請求項1〜4に対応している。図6は本キャッシュ
の制御部の状態遷移図を示している。
【0034】図5において、1はキャッシュメモリ、2
はCPUであり、キャッシュメモリ1とCPU2はアド
レスバス100とデータバス110で接続されている。
3はバスコントローラであり、アドレスバス100とデ
ータバス110でキャッシュメモリ1に接続されてい
る。4は主記憶であり、メモリバス900でバスコント
ローラ3に接続されている。10はタグメモリであり、
図3に示すように各エントリにアドレスタグA、アドレ
スタグBa,Bb,Bc,Bd、バリッドビットa,
b,c,dの各フィールドを持つ。20はデータブロッ
クのためのデータメモリであり、各エントリにサブデー
タブロックa,b,c,dのフィールドを持つ。比較器
30,31はそれぞれリクエストアドレスのアドレスタ
グ部のアドレスタグAフィールド、アドレスタグBフィ
ールドとタグメモリ10のアドレスタグAフィールド、
アドレスタグBa,Bb,Bc,Bdフィールド内のい
ずれかのフィールドを比較し、ヒット信号を生成するも
のである。41はリクエストアドレスのサブデータブロ
ック選択フィールドを保持し、サブデータブロックを順
番に選択するためのカウンタである。50はヒット信号
を生成する論理回路、70、71、72、73それぞれ
アドレスタグA、アドレスタグB、バリッドビット、デ
ータの各メモリのリード/ライト制御回路、80はキャ
ッシュメモリ1全体を制御する制御回路、81はバース
ト転送時にデータ転送の回数を保持するカウンタであ
る。
【0035】200はCPU2からキャッシュメモリ1
へのリクエスト信号、201はリクエスト信号200に
対するアクノレッジ信号、210はキャッシュメモリ1
からバスコントローラ3へのリクエスト信号、211は
リクエスト信号210に対するアクノレッジ信号、21
2はバースト転送リクエスト信号である。300,30
1はそれぞれ比較器30、31が出力するヒット信号で
ある。320はタグメモリ10のバリッドビットa,
b,c,dフィールドのいずれかの出力であり、350
はヒット信号である。351は選択されたエントリの全
てのデータの有効状態を示すバリッド信号であり、これ
により主記憶からの転送を行うデータブロックを決定す
る。400はリード/ライト信号、402はバーストリ
セット信号、403はバースト更新信号、404バース
ト終了信号である。
【0036】また、第1の実施例と同様に、図2に示す
ようにリクエストアドレスはアドレスタグ部がアドレス
タグA、アドレスタグBの2つのフィールドに分割さ
れ、オフセット部がインデックス、サブデータブロック
選択、サブデータブロックオフセットのフィールドに分
割されている。
【0037】以上のように構成されたキャッシュメモリ
は、第1の実施例と同様に、データブロックとサブデー
タブロックで2階層の木構造を成しており、タブメモリ
10のアドレスタグ部はアドレスタグA、アドレスタグ
Bの2つのフィールドに分割され、さらにアドレスタグ
BはアドレスタグBa、アドレスタグBb、アドレスタ
グBc、アドレスタグBdの4つのフィールドに分割さ
れ、これらのエントリは図2のリクエストアドレスのオ
フセット部のサブデータブロック選択のフィールドによ
り定義されるとともにサブデータブロックa,b,c,
dのアドレスタグの上位部がアドレスタグAとして共有
されている。したがって、サブデータブロックa,b,
c,dのアドレスタグを個々に持つ場合と比較してタグ
メモリの容量が小さくなる。たとえば、アドレスタグ部
が20ビットとし、上位10ビットをサブデータブロッ
クa,b,c,dで共有すると1エントリの大きさは5
4ビットになるが、サブデータブロックa,b,c,d
で個々に持つ場合は84ビットになる。また、エントリ
内のすべてのデータが無効状態のときはデータブロック
で主記憶からの転送を行い、それ以外はサブデータブロ
ックで主記憶からの転送を行うため、エントリ内の全て
のデータが無効状態であることの多い初期状態の動作が
データブロックのキャッシュとして動作するのでヒット
率を高くすることができる。
【0038】以下図5および図6を用いてその動作を説
明する。本実施例のキャッシュはライトスルーキャッシ
ュであり、CPU2がリードを行うときの説明を行う。
また、特に断らない限りデータは8バイトのデータを表
し、データブロックサイズは32バイト、サブデータブ
ロックサイズは8バイトのデータを表す。
【0039】(1)CPU2がリクエスト信号200
を”0”にしているときは制御回路80の内部状態はS
0である。したがって、リード/ライト信号400は”
1”に、バーストリセット信号402は”0”に、バー
スト更新信号403は”0”に、リクエスト信号210
は”0”に、バーストリクエスト信号212は”0”
に、アクノレッジ信号201は”0”になる。
【0040】(2)CPU2がリクエストアドレスをア
ドレスバス100に出力し、リクエスト信号200を”
1”にする。リクエストアドレスのインデックスフィー
ルドはタグメモリ10とデータメモリ20に入力され、
それぞれのエントリを選択する。リード/ライト制御回
路70、71、72、73はリード/ライト信号400
が”1”になっているので、選択されたタグメモリ10
のエントリからアドレスタグA、アドレスタグBa,B
b,Bc,Bd、バリッドビットa,b,c,dを読み
出し、同様に選択されたデータメモリ20のエントリか
らデータa,b,c,dを読み出す。リード/ライト制
御回路71、72、73はリクエストアドレスのサブデ
ータブロック選択フィールドを用いてそれぞれアドレス
タグBa,Bb,Bc,Bd、バリッドビットa,b,
c,d、データa,b,c,d、から一つを選択してバ
ス315、バリッド信号320、データバス110に出
力する。選択の方法はサブデータブロック選択フィール
ドが”00”のときはaを、”01”のときはbを、”
10”のときはcを、”11”のときはdを選択する。
【0041】(3)リクエストアドレスのアドレスタグ
Aフィールドとタグメモリ10のアドレスタグAは比較
器30に入力され、一致のときはヒット信号300を”
1”にし、不一致のときはヒット信号300を”0”に
する。同様にリクエストアドレスのアドレスタグBフィ
ールドとタグメモリ10のアドレスタグBa,Bb,B
c,Bdの内いずれかのフィールドは比較器31に入力
され、一致のときはヒット信号301を”1”にし、不
一致のときはヒット信号301を”0”にする。論理回
路50はヒット信号301、バリッド信号320および
ヒット信号300を用いてヒット信号350を生成す
る。リード/ライト制御回路72はバリッドビットa,
b,c,dからバリッド信号351を生成する。
【0042】(4)制御回路80はヒット信号350
が”1”のときは(5)の処理を行い、”0”のときは
(7)の処理を行う。 (5)リクエスト信号200が”1”になっており、ヒ
ット信号350が”1”であるので、制御回路80は内
部状態をS1にし、アクノレッジ信号201を”1”に
する。CPU2はアクノレッジ信号201が”1”にな
っているのでデータバス110のデータを取り込み、リ
クエスト信号200を”0”にする。
【0043】(6)制御回路80の内部状態をS0に戻
し、(1)からの処理を繰り返す。 (7)ヒット信号300が”1”でかつバリッド信号3
51が”1”のときは(8)からの処理を行いヒット信
号300が”0”かバリッド信号351が”0”の時は
(12)からの処理を行う。
【0044】(8)リクエスト信号200が”1”にな
っており、ヒット信号350が”0”でヒット信号30
0とバリッド信号351が”1”であるので、制御回路
80の内部状態をS2にし、リクエスト信号210を”
1”にし、リード/ライト信号400を”0”にする。
【0045】(9)バスコントローラ3はリクエスト信
号210が”1”になっているのでアドレスバス100
のリクエストアドレスを用いて主記憶4から読みだした
データをデータバス110に出力し、アクノレッジ信号
211を”1”にする。
【0046】(10)リード/ライト信号400が”
0”になっているので、リード/ライト制御回路70は
タグメモリ10の選択されているエントリのアドレスタ
グAフィールドにリクエストアドレス100のアドレス
タグAフィールドを書き込み、リード/ライト制御回路
71はタグメモリ10の選択されているエントリのアド
レスタグBa,Bb,Bc,Bdフィールドのうちリク
エストアドレス100のサブデータブロック選択フィー
ルドで示されたフィールドにリクエストアドレス100
のアドレスタグBフィールドを書き込み、リード/ライ
ト制御回路72はタグメモリ10の選択されているエン
トリのバリッドビットa,b,c,dフィールドのうち
リクエストアドレス100のサブデータブロック選択フ
ィールドで示されたフィールドに”1”を書き込み、リ
ード/ライト制御回路73はデータメモリ20の選択さ
れているエントリのサブデータブロックa,b,c,d
フィールドのうちリクエストアドレス100のサブデー
タブロック選択フィールドで示されたフィールドにデー
タバス110のデータを書き込む。
【0047】(11)制御回路80はアクノレッジ信号
211が”1”になっているので内部状態をS0に戻
し、(2)からの処理を繰り返す。この場合はリクエス
ト信号200が”1”で、ヒット信号350が”1”の
場合の動作になる。
【0048】(12)リクエスト信号200が”1”に
なっており、ヒット信号350が”0”でヒット信号3
00が”0”かバリッド信号351が”0”であるの
で、制御回路80の内部状態をS3にし、リクエスト信
号210とバースト転送リクエスト信号212を”1”
し、バーストリセット信号402を”1”にし、リード
/ライト信号400を”0”にする。バーストリセット
信号402が”1”になったのでカウンタ41はリクエ
ストアドレスのサブデータブロック選択フィールドを保
持し、カウンタ81はカウンタの値を”0”にする。カ
ウンタの値が”0”になったのでバースト終了信号40
4が”0”になる。
【0049】(13)バスコントローラ3はリクエスト
信号210とバースト転送リクエスト信号212が”
1”になっているのでアドレスバス100のリクエスト
アドレスを用いて主記憶4から読みだしたデータをデー
タバス110に出力し、アクノレッジ信号211を”
1”にする。
【0050】(14)リード/ライト信号400が”
0”になっているので、リード/ライト制御回路70は
タグメモリ10の選択されているエントリのアドレスタ
グAフィールドにリクエストアドレス100のアドレス
タグAフィールドを書き込み、リード/ライト制御回路
71はタグメモリ10の選択されているエントリのアド
レスタグBa,Bb,Bc,Bdフィールドのうちリク
エストアドレス100のサブデータブロック選択フィー
ルドで示されたフィールドにリクエストアドレス100
のアドレスタグBフィールドを書き込み、リード/ライ
ト制御回路72はタグメモリ10の選択されているエン
トリのバリッドビットa,b,c,dフィールドのうち
リクエストアドレス100のサブデータブロック選択フ
ィールドで示されたフィールドに”1”を書き込み、リ
ード/ライト制御回路73はデータメモリ20の選択さ
れているエントリのデータa,b,c,dフィールドの
うちリクエストアドレス100のサブデータブロック選
択フィールドで示されたフィールドにデータバス110
のデータを書き込む。
【0051】(15)制御回路80はアクノレッジ信号
211が”1”になっているのでバースト更新信号40
3を”1”にする。カウンタ41はバースト更新信号4
03が”1”になっているので保持されているサブデー
タブロック選択フィールドの値をインクリメントし、保
持する。なお、”11”をインクリメントした後は”0
0”になる。また、カウンタ81はバースト更新信号4
03が”1”になっているのでカウンタの値をインクリ
メントする。カウンタの値が”4”になるとバースト終
了信号404を”1”にする。
【0052】(16)バースト終了信号404が”1”
になると制御回路80は内部状態をS0にし、以降は
(2)からの処理を繰り返す。この場合はリクエスト信
号200が”1”で、ヒット信号350が”1”の場合
の動作になる。
【0053】(17)バスコントローラ3はバースト転
送リクエスト信号212が”1”になっているので直前
にアクセスしたアドレス+4のデータを主記憶4から読
みだし、データバス110に出力する。これ以降は(1
4)からの処理を繰り返す。
【0054】以上のように本実施例によれば、選択され
たエントリ内のすべてのデータがインバリッド状態のと
きはデータブロックで主記憶からの転送を行い、それ以
外のときはサブデータブロックで主記憶からの転送を行
うため、エントリ内の全てのデータが無効であることの
多い初期状態の動作がデータブロックのキャッシュとし
て動作するのでヒット率を高くすることができる。
【0055】(実施例3)図7は本発明の第3の実施例
におけるキャッシュメモリのフラッシュ機能部のブロッ
ク図である。1はキャッシュメモリ、2はCPU、3は
バスコントローラ、4は主記憶である。10はアドレス
タグA、アドレスタグBa,Bb,Bc,Bd、バリッ
ドビットa,b,c,d、ダーティビットa,b,c,
dのフィールドを持つタグメモリであり、20はサブデ
ータブロックa,b,c,dのフィールドを持つデータ
メモリである。35は比較器、70、71、72、73
はそれぞれアドレスタグA、アドレスタグB、バリッド
ビット、ダーティービット、データの各メモリのリード
/ライト制御回路である。80はキャッシュメモリ1の
制御回路、91はフラッシュアドレスを格納するレジス
タ、92はタグメモリ10とデータメモリ20の各エン
トリを順番に選択するためのカウンタ、93はサブデー
タブロックを順番に選択するためのカウンタである。1
01はCPU2のフラッシュ要求のアドレスバス、10
2はバスコントローラ3に対するリクエストアドレスバ
ス、110はデータバス、202はフラッシュリクエス
ト信号、203はフラッシュが完了したことを示すフラ
ッシュアクノレッジ信号、215はバスコントローラ3
に対するリクエスト信号、216はリクエスト信号21
5に対するアクノレッジ信号である。450はフラッシ
ュアドレスヒット信号、451はバリッド信号、452
はダーティー信号であり、ヒット信号450が”1”で
かつバリッド信号451が”1”でかつダーティー信号
452が”1”のとき選択されたエントリのデータをデ
ータブロックでフラッシュする。460はカウンタ92
のリセット信号、461はカウンタ92のインクリメン
ト信号、462はカウンタ92の終了信号である。46
3はカウンタ93のリセット信号、464はカウンタ9
3のインクリメント信号、465はカウンタ93の終了
信号である。また、図8は制御回路80の内部状態の状
態遷移図を表している。
【0056】以上のように構成されたキャッシュメモリ
において以下図7、図8を用いてフラッシュ動作の説明
をする。なお、本実施例ではフラッシュする階層をデー
タブロックであると指定した場合を示す。
【0057】(1)CPU2がフラッシュリクエスト信
号202を”1”にしていないので、制御回路80の内
部状態はS0になっている。 (2)CPU2がアドレスバス101にフラッシュアド
レスを出力し、フラッシュリクエスト信号202を”
1”にする。フラッシュリクエスト信号202が”1”
になっているので制御回路80の内部状態はS1にな
る。状態がS1になったので、信号460を”1”にす
る。信号460が”1”になったのでカウンタ92の値
は”0”にリセットされ、信号462が”0”になる。
【0058】(3)制御回路80は内部状態をS2にす
る。 (4)カウンタ92の出力であるインデックスアドレス
を用いてタグメモリ10とデータメモリ20はエントリ
を選択し、各フィールド毎に読み出す。
【0059】(5)比較器35はレジスタ91のフラッ
シュアドレスのアドレスタグAフィールドとタグメモリ
10のアドレスタグAフィールドを比較し、一致の場合
はヒット信号450を”1”にし、不一致の場合はヒッ
ト信号450を”0”にする。 (6)ヒット信号450が”0”かバリッド信号451
が”0”かダーティー信号452が”0”の場合は
(7)からの処理を行い、ヒット信号450が”1”で
かつバリッド信号451が”1”でかつダーティー信号
452が”1”の場合は(8)からの処理を行う。
【0060】(7)カウンタ92が一巡した場合は信号
462が”1”になるので、制御回路80は内部状態を
S0に戻し、(1)からの処理を繰り返す。信号462
が”0”の場合は信号461を”1”にして(4)から
の処理を繰り返す。
【0061】(8)制御回路80は内部状態をS3に
し、信号463を”1”に、リクエスト信号215を”
1”にする。信号463が”1”になったので、カウン
タ93はリセットされ、信号465を”0”にする。
【0062】(9)制御回路80は内部状態をS4にす
る。 (10)リード/ライト制御回路70はアドレスタグA
フィールドの内容をアドレスバス102のアドレスタグ
Aフィールドに出力し、リード/ライト制御回路71は
カウンタ93か”0”のときはアドレスタグBaフィー
ルドの、”1”のときはアドレスタグbフィールド
の、”2”のときはアドレスタグcのフィールドの、”
3”のときはアドレスタグdフィールドの内容をアドレ
スバス102のアドレスタグBフィールドに出力し、リ
ード/ライト制御回路72はカウンタ93が”0”のと
きはバリッドビットaフィールドの、”1”のときはバ
リッドビットbフィールドの、”2”のときはバリッド
ビットcのフィールドの、”3”のときはバリッドビッ
トdフィールドのバリッドビットをバリッド信号451
に、カウンタ93が”0”のときはダーティービットa
フィールドの、”1”のときはダーティービットbフィ
ールドの、”2”のときはダーティービットcのフィー
ルドの、”3”のときはダーティービットdフィールド
のダーティービットをダーティー信号452に出力し、
リード/ライト制御回路73はカウンタ93が”0”の
ときはデータaフィールドの、”1”のときはデータb
フィールドの、”2”のときはデータcフィールド
の、”3”のときはデータdフィールドのデータをデー
タバス110に出力する。
【0063】(11)バスコントローラ3はリクエスト
信号215が”1”になっているのでアドレスバス10
2のアドレスを用いてデータバス110のデータを主記
憶4に書き込む。その後、アクノレッジ信号216を”
1”にする。
【0064】(12)制御回路80はアクノレッジ信号
216か”1”になると、信号464を”1”にし、カ
ウンタ93をインクリメントする。 (13)カウンタ93が”3”になると信号465を”
1”にする。制御回路80は信号465が”1”になる
と内部状態をS2にし、(4)からの処理を繰り返す。
信号465が”0”のときは(10)からの処理を繰り
返す。
【0065】以上のように本実施例によれば、フラッシ
ュリクエストアドレスのアドレスタグAフィールドと一
致するアドレスタグAフィールドを持つエントリのデー
タブロックをフラッシュすることにより、個々のサブデ
ータブロックのアドレスタグを比較した結果によりフラ
ッシュするより少ないステップでフラッシュすることが
できるので効率をよくすることができる。
【0066】
【発明の効果】以上のように本発明によれば、リクエス
トアドレスのアドレスタグ部が複数のフィールドに分割
され、複数の子データブロックから成る親データブロッ
クがそれ自体子データブロックに成り得る木構造をなし
ており、リクエストアドレスのオフセット部により定義
されるエントリのアドレスタグ部に、木構造の階層に対
応した複数のアドレスタグフィールドを設けることによ
り、データブロックサイズの小さなキャッシュにおい
て、タグメモリの面積を削減し、初期状態のヒット率を
向上することができる。
【図面の簡単な説明】
【図1】本発明の第1の実施例におけるキャッシュメモ
リのブロック図
【図2】同第1の実施例におけるキャッシュメモリの動
作説明のためのリクエストアドレスの構成図
【図3】同第1の実施例におけるキャッシュメモリの動
作説明のためのタグメモリのエントリの構成図
【図4】同第1の実施例におけるキャッシュメモリの動
作説明のための状態遷移図
【図5】本発明の第2の実施例におけるキャッシュメモ
リのブロック図
【図6】同第2の実施例におけるキャッシュメモリの動
作説明のための状態遷移図
【図7】本発明の第3の実施例におけるキャッシュメモ
リのフラッシュ機能部のブロック図
【図8】同第3の実施例におけるキャッシュメモリの動
作説明のための状態遷移図
【図9】従来のキャッシュメモリの概略図
【符号の説明】
1 キャッシュメモリ 2 CPU 3 バスコントローラ 4 主記憶 10 タグメモリ 20 データメモリ 30、31 比較器 50 論理回路 70、71、72、73 リード/ライト制御回路 80 制御回路 100 アドレスバス 110 データバス

Claims (5)

    【特許請求の範囲】
  1. 【請求項1】 一回のキャッシュアクセスにおいて主記
    憶からの転送または主記憶への転送に用いられるデータ
    の集合で定義されるデータブロックにおいて、複数の子
    データブロックから成る親データブロックがそれ自体子
    データブロックに成り得る木構造をなしたデータブロッ
    ク群を有し、前記データブロック群の子データブロック
    を有するデータブロックはアドレスタグ部の一部が同一
    であるアドレスのデータブロックを子データブロックと
    して有することを特徴とするキャッシュメモリ。
  2. 【請求項2】 請求項1記載のキャッシュメモリにおい
    て、木構造を成したデータブロック群の階層数と同数で
    かつ前記データブロック群の各階層に対応した第1のフ
    ィールドに分割されたアドレスタグ部を有するリクエス
    トアドレスと、前記データブロック群の階層数と同数で
    かつ前記データブロック群の各階層に対応した第2のフ
    ィールドに分割され、さらに前記第2のフィールドが前
    記データブロック群の各階層のデータブロック数と同数
    でかつ前記各階層のデータブロックに対応した第3のフ
    ィールドに分割されたアドレスタグ部を前記リクエスト
    アドレスのオフセット部により定義されるエントリに有
    するタグメモリとを有し、前記データブロック群内の第
    1のデータブロックのアドレスのアドレスタグ部の前記
    第1のデータブロックの階層に対応する第1のフィール
    ドを、前記タグメモリのアドレスタグ部の前記第1のデ
    ータブロックの階層に対応する第2のフィールド内の前
    記第1のデータブロックに対応する第3のフィールドに
    格納する手段を備えたことを特徴とするキャッシュメモ
    リ。
  3. 【請求項3】 請求項1もしくは請求項2のキャッシュ
    メモリにおいて、木構造のデータブロック群の中で主記
    憶からデータ転送を行うデータブロックを属性ビットの
    状態により決定する手段を備えたことを特徴とするキャ
    ッシュメモリ。
  4. 【請求項4】 請求項3記載のキャッシュメモリにおい
    て、木構造のデータブロック群の中で主記憶からデータ
    転送を行うデータブロックをタグメモリの選択されたエ
    ントリの有効ビットの状態により決定する手段を備えた
    ことを特徴とするキャッシュメモリ。
  5. 【請求項5】 請求項1もしくは請求項2のキャッシュ
    メモリにおいて、タグメモリのアドレスタグ部の第2の
    フィールドの中で、木構造をしたデータブロック群の上
    位階層から指定された階層までに対応する前記第2のフ
    ィールドの内容が、フラッシュリクエストアドレスのア
    ドレスタグ部の上位階層から前記指定された階層に対応
    する第1のフィールドの内容とそれぞれ一致した場合、
    前記指定された階層に含まれる全てのデータブロックを
    フラッシュする手段を備えたことを特徴とするキャッシ
    ュメモリ。
JP5023113A 1993-02-12 1993-02-12 キャッシュメモリ Pending JPH06243045A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP5023113A JPH06243045A (ja) 1993-02-12 1993-02-12 キャッシュメモリ

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP5023113A JPH06243045A (ja) 1993-02-12 1993-02-12 キャッシュメモリ

Publications (1)

Publication Number Publication Date
JPH06243045A true JPH06243045A (ja) 1994-09-02

Family

ID=12101430

Family Applications (1)

Application Number Title Priority Date Filing Date
JP5023113A Pending JPH06243045A (ja) 1993-02-12 1993-02-12 キャッシュメモリ

Country Status (1)

Country Link
JP (1) JPH06243045A (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0713181A1 (en) * 1994-11-16 1996-05-22 International Business Machines Corporation Data processing system including mechanism for storing address tags
US6643737B1 (en) 1998-11-13 2003-11-04 Nec Electronics Corporation Cache lock device and method therefor

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0713181A1 (en) * 1994-11-16 1996-05-22 International Business Machines Corporation Data processing system including mechanism for storing address tags
US6643737B1 (en) 1998-11-13 2003-11-04 Nec Electronics Corporation Cache lock device and method therefor

Similar Documents

Publication Publication Date Title
US5136700A (en) Apparatus and method for reducing interference in two-level cache memories
US6170070B1 (en) Test method of cache memory of multiprocessor system
EP0407119B1 (en) Apparatus and method for reading, writing and refreshing memory with direct virtual or physical access
EP0706133A2 (en) Method and system for concurrent access in a data cache array utilizing multiple match line selection paths
US7590802B2 (en) Direct deposit using locking cache
US5668972A (en) Method and system for efficient miss sequence cache line allocation utilizing an allocation control cell state to enable a selected match line
JP3236287B2 (ja) マルチプロセッサシステム
JPH0195346A (ja) バスマスタ
US6898671B2 (en) Data processor for reducing set-associative cache energy via selective way prediction
JPS6111865A (ja) メモリアクセス制御方式
US5455925A (en) Data processing device for maintaining coherency of data stored in main memory, external cache memory and internal cache memory
EP0706132A2 (en) Method and system for miss sequence handling in a data cache array having multiple content addressable fields per cache line
JPH0438014B2 (ja)
JPH0727492B2 (ja) 緩衝記憶装置
JPH06243045A (ja) キャッシュメモリ
JP2580263B2 (ja) バッファ記憶装置
US7346746B2 (en) High performance architecture with shared memory
US4628450A (en) Data processing system having a local memory which does not use a directory device with distributed resident programs and a method therefor
US6981103B2 (en) Cache memory control apparatus and processor
JP3583844B2 (ja) キャッシュメモリ方式
JP2542284B2 (ja) 緩衝記憶装置および緩衝記憶装置システム
JP3158761B2 (ja) キャッシュメモリ装置および制御方法
JPH02171944A (ja) バッファ記憶装置
JP2001175535A (ja) 半導体記憶装置およびそれを用いたキャッシュメモリシステム
JPH06161895A (ja) 多階層メモリにおけるアクセスブロック通知方法