JPH0675857A - 緩衝記憶装置 - Google Patents

緩衝記憶装置

Info

Publication number
JPH0675857A
JPH0675857A JP5125918A JP12591893A JPH0675857A JP H0675857 A JPH0675857 A JP H0675857A JP 5125918 A JP5125918 A JP 5125918A JP 12591893 A JP12591893 A JP 12591893A JP H0675857 A JPH0675857 A JP H0675857A
Authority
JP
Japan
Prior art keywords
address
storage device
data
storage unit
accessed
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
JP5125918A
Other languages
English (en)
Inventor
Akihisa Oosaki
暁寿 大崎
Akira Yamada
朗 山田
Masayuki Hata
雅之 畑
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.)
Mitsubishi Electric Corp
Original Assignee
Mitsubishi Electric Corp
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 Mitsubishi Electric Corp filed Critical Mitsubishi Electric Corp
Priority to JP5125918A priority Critical patent/JPH0675857A/ja
Publication of JPH0675857A publication Critical patent/JPH0675857A/ja
Pending legal-status Critical Current

Links

Landscapes

  • Memory System Of A Hierarchy Structure (AREA)

Abstract

(57)【要約】 【目的】 アプリケーションに特化した緩衝記憶装置を
得るために緩衝記憶装置の性能を適切に評価する。 【構成】 データ処理装置1がリードアクセスして、キ
ャッシュメモリ2がキャッシュミスし、主メモリ3から
データをキャッシュメモリ2へキャッシングする際、キ
ャッシュメモリ2は内蔵しているカウンタをカウントア
ップする。ある程度稼働してから、キャッシュメモリ2
に内蔵しているカウンタの値を評価し、記憶領域の使用
頻度を確認する。 【効果】 キャッシュメモリ2の記憶領域の使用頻度を
知ることができ、そのシステムに適したキャッシュメモ
リ2の記憶容量がどれだけかを判定することができる。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】この発明は緩衝記憶装置(以降キ
ャッシュメモリと称す)を用いたシステムに関し、特に
アプリケーションに特化したキャッシュメモリを構築す
るための評価基準を測定する機能を強化、あるいは構築
するための手段を具備したキャッシュメモリに関するも
のである。
【0002】
【従来の技術】キャッシュメモリは、マイクロプロセッ
サの本格的な高速時代を迎えて、主記憶装置(以下主メ
モリと称す)へのアクセスの高速化実現への有効な手段
として登場してきた。主メモリへのアクセス時間は、シ
ステム性能に大きな影響を与えている。スーパーパイプ
ラインやスーパースケラー等の技術によりマイクロプロ
セッサは高速化されている。そしてその高速化は、メモ
リ・アクセス時間の短縮化を必然的に求めてくるが、最
近では主メモリに使用されるDRAM(ダイナミック・
ランダム・アクセス・メモリ)チップの性能向上を上回
る要求となってきている。
【0003】また、単にDRAMチップの性能だけでな
く、マルチプロセッサ・システムの構成など、システム
規模の拡大や多様化からも、メモリ・アクセス時間を短
縮するのは難しくなっている。
【0004】この問題を解決するためにメモリを階層化
する考え方がある。その1つがキャッシュメモリ方式で
ある。
【0005】図2のキャッシュシステムを用いてキャッ
シュメモリ方式について説明する。図において、1はデ
ータ処理装置、2はデータ処理装置1のメモリアクセス
を緩衝するキャッシュメモリ、3はこのシステムの主記
憶装置である主メモリ、4はデータ処理装置1とキャッ
シュメモリ2間のバス及び主メモリ3のバスを管理する
バスドライバ回路、5はキャッシュメモリ2がデータ処
理装置1のリードアクセスに対して、主メモリ3の写し
を持たなかった場合に主メモリ3のデータを要求するキ
ャッシュミス信号である。
【0006】キャッシュメモリ方式は、データ処理装置
1からの要求に応じた主メモリ3の内の使用頻度の高い
領域のデータを、高速のバッファメモリであるキャッシ
ュメモリ2に記憶し、主メモリ3に代わってそのデータ
読出を高速に行う方式である。キャッシュメモリ2は、
固定のデータを記憶しているのではなく、データ処理装
置1からの要求に応じて、自己が記憶する主メモリ3の
領域のデータを変化させている。しかし、あるデータ処
理におけるデータ処理装置1からのメモリ・アクセス領
域には局所性がある。したがって、データ処理装置1か
らの要求に応じ主メモリ3から取り出してキャッシュメ
モリ2に記憶したデータは、その後もしばらくはアクセ
スされる可能性が高い。従って、一旦キャッシュメモリ
2へ主メモリ3のデータが記憶されると高速メモリの効
果が発揮されて、データ処理装置1のメモリ・アクセス
のノーウェイト(待ち時間無し)が実現する。
【0007】次に図2のキャッシュシステムの動作の説
明をする。最初、データ処理装置1はキャッシュメモリ
2にデータを読みにいく。この時キャッシュメモリ2は
1度もデータの取り込みを行っていないので、アクセス
されたデータはキャッシュメモリ2内に存在しない(以
降キャッシュメモリ内にデータが存在しない場合をキャ
ッシュミスと称す、またキャッシュメモリ内にデータが
存在する場合をキャッシュヒットと称す)。そこでキャ
ッシュメモリ2はキャッシュミスを起こしたので、主メ
モリ3へデータをアクセスしに行くため、バスドライバ
回路4にキャッシュミス信号5を出力し、アドレス等を
主メモリ3に出力する。アクセスされた主メモリ3はア
ドレスをデコードし、そしてアクセスされたデータをキ
ャッシュメモリ2に出力する。そして、主メモリ3はデ
ータをデータ処理装置1へ渡す。
【0008】このようにキャッシュメモリ2にある程度
のデータをキャッシング(キャッシュメモリ内にデータ
の写しを蓄えることをキャッシングと称す)されると、
データ処理装置1がアクセスしても、キャッシュヒット
が起こるようになり、データはキャッシュメモリ2から
出力され、アクセス速度の遅い主メモリ3までアクセス
しに行かない。その結果、システム自体は高速に動作す
る。
【0009】次に、特開昭58−158091号公報
や、特開昭60−55455号公報などで述べられてい
るヒット率を算出できるキャッシュメモリの例について
説明する。
【0010】図30は、図2に示した従来のキャッシュ
メモリの一例の要部を簡略化したブロック図である。図
において、101はキャッシュメモリ2内にあるキャッ
シュヒットの回数をカウントするためのヒットカウン
タ、102はキャッシュメモリ2内にあり、データ処理
装置1のデータのリードアクセスの回数をカウントする
ためのリードアクセスカンウタ、103はデータ処理装
置1のリードアクセスに対してキャッシュメモリ2内に
要求データが存在していたとキャッシュメモリ2が判断
したときに発せられるヒット信号、104はデータ処理
装置1のリードアクセスであるとキャッシュメモリ2が
判断したときに発せられるリードアクセス信号、105
はヒットカウンタ101とリードアクセスカウンタ10
2の内容をクリアーするカウンタリセット信号、106
はデータ処理装置1へデータを出力するためのキャッシ
ュメモリ2内のキャッシュ内部データバス、107はヒ
ットカウンタ101の内容をキャッシュ内部データバス
106に出力するためのヒットカウンタリード信号、1
08はリードアクセスカウンタ102の内容をキャッシ
ュ内部データバス106に出力するためのリードアクセ
スカウンタリード信号である。
【0011】次に動作について図2を用いて説明する。
まず、ヒット率の計測を開始する時、データ処理装置1
からキャッシュメモリ2へヒットカウンタ101とリー
ドアクセスカウンタ102とのリセットの要求を出し、
キャッシュメモリ2は要求に応じてカウンタリセット信
号105を出力する。ヒットカウンタ101とリードア
クセスカウンタ102は、カウンタリセット信号105
の出力を受け、カウンタ内の内容を初期化する。次に、
データ処理装置1はデータのリードアクセスを行う。こ
のアクセスに応じてキャッシュメモリ2はリードアクセ
ス信号104を発生し、リードアクセスカウンタ102
の内容をカウントアップして、リードアクセスカウンタ
102の内容を[H1](以下、主メモリの内容や、カ
ウンタの内容など、記憶装置等の内容を表現する場合に
[]を用い、それ以外の内容は<>を用いる、また数字
の前に、Hが付いているときは16進表現を表し、Bが
付いているときは2進表現を表し、何も付いていない場
合は10進表現を示す)とする。アクセスされた主メモ
リ3の番地<HF000>がキャッシュメモリ2に存在
しないので、キャッシュミス信号5を出力し、バスドラ
イバー回路4をアクティブにする。そしてバスドライバ
ー回路4は、主メモリ3をアクセスする。アクセスされ
た主メモリ3は、番地<HF000>に対応するデータ
[<HF000>](番地<HF000>で示されてい
るメモリの内容を指す)を出力する。この出力されたデ
ータを、データ処理装置1とキャッシュメモリ2は取り
込む。次に、データ処理装置1は、番地<HF000>
でリードアクセスを行うとまずキャッシュメモリ2はリ
ードアクセス信号104を発生し、リードアクセスカウ
ンタ102の内容をカウントアップして、リードアクセ
スカウンタ102の内容を[H2]とする。この時、前
回のアクセス時に番地<HF000>のデータは取り込
んでいるのでキャッシュヒットし、データとして[<H
F000>]を出力すると共に、ヒット信号103が出
力され、ヒットカウンタ101がカウントアップし、内
容が[H1]となる。次にヒット率を求める。まずデー
タ処理装置1は、キャッシュメモリ2にヒットカウンタ
101の読み出し要求を行う。その要求を受けて、キャ
ッシュメモリ2はヒットカウントリード信号107を出
力する。ヒットカウンタ101はヒットカウントリード
信号107を受けて、キャッシュ内部データバス106
に[H1]を出力する。そして、データ処理装置1はデ
ータを受取り、次にリードアクセスカウンタ102の読
み出しを同様に行う。キャッシュメモリ2は、リードア
クセスカウンタリード信号108を出力し、リードアク
セスカウンタ102の内容[H2]をキャッシュデータ
内部バス106に出力し、データ処理装置1は[H2]
を受け取る。データ処理装置1は“H1÷H2=0.
5”と計算でき、ヒット率50%と判断する。
【0012】
【発明が解決しようとする課題】以上のように従来のキ
ャッシュメモリではデータ処理装置のリードアクセスに
対するヒット率を簡単に測定できる。ヒット率はキャッ
シュメモリの性能のひとつの指標になるが、システム全
体の性能の指標としては不十分である。
【0013】例えば、キャッシュメモリのリードヒット
率をα、データ処理装置の主メモリへのライト率をβ、
データ処理装置のノンキャッシャブルアクセス率をγ、
主メモリのウェイト数をω、主メモリ以外のノンキャッ
シャブルアクセス領域へのアクセスのウェイト数をW、
データ処理装置の最小フェッチサイクルをλ、システム
全体の性能をεとすると(ε=1が、データ処理装置の
最高性能となる)、次式で表現できる。
【0014】
【数1】
【0015】ここで、主メモリのウェイト数をω=3、
主メモリ以外のノンキャッシャブルアクセス領域へのア
クセスのウェイト数をW=4、データ処理装置の最小フ
ェッチサイクルをλ=2のシステムの場合について、2
種類のアプリケーションを考える。一つは、データ処理
装置の主メモリへのライト率をβ=1/8、データ処理
装置のノンキャッシャブルアクセス率をγ=1/20と
した第1のプログラム、二つ目は、データ処理装置の主
メモリへのライト率をβ=1/4、データ処理装置のノ
ンキャッシャブルアクセス率をγ=1/2とした第2の
プログラムである。第1および第2のプログラムを実行
した場合、キャッシュメモリのリードヒット率は共にα
=0.7であった。この時、システムの性能εは、第1
のプログラムで0.60、第2のプログラムで0.40
となる。そこで、キャッシュメモリのリードヒット率を
上げる(一般的には、キャッシュメモリの容量を増やし
たり、セットアソシアティビティを増やしたり、1エン
トリ当りのブロック数を増やす等の手段がある)。その
結果、キャッシュメモリのリードヒット率は共にα=
0.9となったとする。この時の、システム性能εは第
1のプログラムで0.71、第2のプログラムで0.4
1となり、性能アップ比は第1のプログラムで約20
%、第2のプログラムで約2%となる。この様に、シス
テム性能は単純にリードヒット率だけでは決まらず、そ
のためキャッシュのリードヒット率を上げても、それに
見合った分システム性能が向上するとは限らない。アプ
リケーションによってはキャッシュメモリが不適な場合
もあるといった問題点があった。
【0016】この発明は、上記の様な問題点を解決する
ためになされたもので、キャッシュシステムにおいてシ
ステムの評価を容易に行え、あるいはアプリケーション
に特化したキャッシュシステムの構築を容易に行える手
段を具備したシャッシュメモリを得ることを目的とす
る。
【0017】
【課題を解決するための手段】第1の発明に係る緩衝記
憶装置は、主記憶装置へのリードアクセスに対して、ア
クセスされた前記主記憶装置の番地の少なくとも一部を
記憶するための記憶領域を持つアドレス記憶部と、アク
セスされた前記主記憶装置の内容の少なくとも一部を記
憶するための記憶領域を持つデータ記憶部とを有し、前
記主記憶装置から読みだされたデータを一時的に記憶す
る緩衝記憶装置であって、前記アドレス記憶部に記憶さ
れているアクセスされた番地の数を、もしくは前記デー
タ記憶部に記憶されている主記憶の内容の数をカウント
し、カウントした結果を出力するデータ数カウンタを備
えて構成されている。
【0018】第2の発明に係る緩衝記憶装置は、主記憶
装置へのリードアクセスに対して、アクセスされた前記
主記憶装置の番地の少なくとも一部を記憶するための記
憶領域を持つアドレス記憶部と、アクセスされた前記主
記憶装置の内容の少なくとも一部を記憶するための記憶
領域を持つデータ記憶部とを有し、前記主記憶装置から
読みだされたデータを一時的に記憶する緩衝記憶装置で
あって、アクセスされた前記主記憶装置の番地が前記ア
ドレス記憶部の全領域を埋めたことを、もしくはアクセ
スされた前記主記憶装置の主記憶の内容が前記データ記
憶部の全領域を埋めたことを知らしめる検出信号を出力
する空検出装置を備えて構成されている。
【0019】第3の発明に係る緩衝記憶装置は、主記憶
装置へのリードアクセスに対して、アクセスされた前記
主記憶装置の番地の少なくとも一部を記憶するための記
憶領域を持つアドレス記憶部と、アクセスされた前記主
記憶装置の内容の少なくとも一部を記憶するための記憶
領域を持つデータ記憶部とを有し、前記主記憶装置から
読みだされたデータを一時的に記憶する緩衝記憶装置で
あって、前記主記憶装置へのリードアクセスに対して、
アクセスされた前記主記憶装置の番地が前記アドレス記
憶部の記憶している以前にアクセスされた番地の記憶領
域上に、新たに記憶された場合を、もしくは前記アクセ
スされた前記主記憶装置の内容が前記データ記憶部の記
憶している以前にアクセスされた前記主記憶装置の内容
の記憶領域上に、新たに記憶される場合をカウントする
データ排除カウンタを備えて構成されている。
【0020】第4の発明に係る緩衝記憶装置は、主記憶
装置へのリードアクセスに対して、前記主記憶装置の番
地の一部である第1の部分番地がアクセスされた場合、
前記第1の部分番地の一部である第2の部分番地をn個
以上(n≧2)記憶するための記憶領域を持つアドレス
記憶部と、前記第2の部分番地を記憶した前記アドレス
記憶部に対応した記憶領域を持つデータ記憶部と、前記
データ記憶部の情報が有効であるか無効であるかを示す
内容有効記憶部とを有し、前記主記憶装置から読みださ
れたデータを一時的に記憶する緩衝記憶装置であって、
前記リードアクセスに対して、前記内容有効記憶部が示
す有効または無効の指示にしたがって、有効と示された
m個(m≦n)の前記アドレス記憶部、前記データ記憶
部、もしくは前記アドレス記憶部と前記データ記憶部の
両方の記憶領域を稼働させ、少なくとも無効と示された
(n−m)個の前記アドレス記憶部または前記データ記
憶部の記憶領域を稼働させない部分稼働装置を備えて構
成されている。
【0021】第5の発明に係る緩衝記憶装置は、主記憶
装置へのリードアクセスに対して、アクセスされた前記
主記憶装置の番地の少なくとも一部を記憶するための記
憶領域を持つアドレス記憶部と、アクセスされた前記主
記憶装置の内容の少なくとも一部を記憶するための記憶
領域を持つデータ記憶部とを有し、前記主記憶装置から
読みだされたデータを一時的に記憶する緩衝記憶装置で
あって、前記主記憶装置へのリードアクセスの属性情報
を判断し、各リードアクセスに対して属性別に信号を出
力する属性情報判断回路と、前記属性情報判断回路の出
力信号を属性毎にカウントして、カウントした結果を属
性毎に出力する属性カウンタとを備えて構成されてい
る。
【0022】第6の発明に係る緩衝記憶装置は、主記憶
装置へのリードアクセスに対して、アクセスされた前記
主記憶装置の番地の少なくとも一部を記憶するための記
憶領域を持つアドレス記憶部と、アクセスされた前記主
記憶装置の内容の少なくとも一部を記憶するための記憶
領域を持つデータ記憶部とを有し、前記主記憶装置から
読みだされたデータを一時的に記憶する緩衝記憶装置で
あって、前記データ処理装置のリードアクセス情報中に
前記アドレス記憶部に番地を記憶することを禁止する情
報がある場合、もしくは前記データ記憶部に内容を記憶
することを禁止する情報がある場合、前記情報を検出し
てカウントし、その結果を出力する禁止情報検出回路を
備えて構成されている。
【0023】第7の発明に係る緩衝記憶装置は、データ
処理装置の主記憶装置へのリードアクセスに対して、ア
クセスされた前記主記憶装置の番地の少なくとも一部を
記憶するための記憶領域を持つアドレス記憶部と、アク
セスされた前記主記憶装置の内容の少なくとも一部を記
憶するための記憶領域を持つデータ記憶部とを有し、前
記主記憶装置から読みだされたデータを一時的に記憶す
る緩衝記憶装置であって、前記データ処理装置のライト
アクセスに対して、前記アドレス記憶部にアクセスされ
た前記主記憶装置の番地が存在するかしないかによら
ず、前記データ処理装置のライトアクセスの回数を数
え、その結果を出力するライトカウンタを備えて構成さ
れている。
【0024】第8の発明に係る緩衝記憶装置は、主記憶
装置へのリードアクセスに対して、アクセスされた前記
主記憶装置の番地の少なくとも一部を記憶するための記
憶領域を持つアドレス記憶部と、アクセスされた前記主
記憶装置の内容の少なくとも一部を記憶するための記憶
領域を持つデータ記憶部とを有し、前記主記憶装置への
ライトアクセスの際、前記アドレス記憶部にアクセスさ
れた前記主記憶装置の番地が存在する場合には前記デー
タ記憶部の内容を書換えた後に前記データ記憶部の内容
に基づいて前記主記憶装置の内容を書き換え、前記主記
憶装置から読みだされたデータを一時的に記憶する緩衝
記憶装置であって、前記主記憶装置へのライトアクセス
に際して、前記アドレス記憶部にアクセスされた前記主
記憶装置の番地が存在する場合のみ、前記ライトアクセ
スの回数を数えるライトデータカウンタを備えて構成さ
れている。
【0025】第9の発明に係る緩衝記憶装置は、主記憶
装置へのリードアクセスに対して、アクセスされた前記
主記憶装置の番地の少なくとも一部を記憶するための記
憶領域を持つアドレス記憶部と、アクセスされた前記主
記憶装置の内容の少なくとも一部を記憶するための記憶
領域を持つデータ記憶部とを有し、前記主記憶装置から
読みだされたデータを一時的に記憶する緩衝記憶装置で
あって、前記アドレス記憶部にアクセスされた前記主記
憶装置の番地を記憶する際に、もしくは前記データ記憶
部にアクセスされた前記主記憶装置の内容を記憶する際
に、前記内容を2進数で表現した場合の1の数が奇数個
か偶数個かのチェックをするための入力チェック回路
と、前記入力チェック回路の結果を記憶するチェック記
憶部と、前記主記憶装置へのアクセスに対して、前記ア
ドレス記憶部からアクセスされた前記主記憶装置の番地
の少なくとも一部を参照する際に、もしくは前記データ
記憶部から前記アクセスされた前記主記憶装置の内容の
写しを参照する際に、前記内容を2進数で表現した場合
の1の数が奇数個か偶数個かのチェックをするための出
力チェック回路と、前記出力チェック回路の結果と前記
チェック記憶部の内部の比較を行い、前記比較の結果に
応じて回数を数えるチェックカウンタとを備えて構成さ
れている。
【0026】第10の発明に係る緩衝記憶装置は、主記
憶装置へのリードアクセスに対して、アクセスされた前
記主記憶装置の番地の少なくとも一部を記憶するための
記憶領域を持つ複数の領域よりなるアドレス記憶部と、
アクセスされた前記主記憶装置の内容の少なくとも一部
を記憶するための記憶領域を持つ前記アドレス記憶部の
ブロックに対応する複数のブロックより成るデータ記憶
部とを有し、前記主記憶装置から読みだされたデータを
一時的に記憶する緩衝記憶装置であって、前記アドレス
記憶部の第1のブロックに記憶された番地と、前記アド
レス記憶部の第1のブロックに対応する前記データ記憶
部の第1のブロックに記憶された前記データ記憶部の内
容を前記アドレス記憶部及び前記データ記憶部の第2の
ブロックに記憶するとともに、少なくとも前記アドレス
記憶部の第1のブロックの番地、もしくは前記データ記
憶部の第1のブロックの内容を無効化するマージ回路
と、少なくとも前記アドレス記憶部もしくは前記データ
記憶部の読み出し動作をブロック毎に制御する制御手段
と、を備えて構成されている。
【0027】第11の発明に係る緩衝記憶装置は、主記
憶装置へのリードアクセスに対して、アクセスされた前
記主記憶装置の番地の少なくとも一部を記憶するための
記憶領域を持つアドレス記憶部と、アクセスされた前記
主記憶装置の内容の少なくとも一部を記憶するための記
憶領域を持つデータ記憶部とを有し、前記主記憶装置か
ら読みだされたデータを一時的に記憶する緩衝記憶装置
であって、リードアクセスに対して、アクセスされた前
記主記憶装置の番地が前記アドレス記憶部の記憶してい
る以前にアクセスされた番地の記憶領域上に、新たに記
憶された時、もしくは、アクセスされた前記主記憶装置
の内容が前記データ記憶部の記憶している以前にアクセ
スされた前記主記憶装置の内容の記憶領域上に、新たに
記憶された時、以前にアクセスされた前記主記憶装置の
番地もしくは前記主記憶装置の内容が、記憶領域内に取
り込まれた以外にアクセスされなかったものである場合
にカウントするノンアクセスデータ排除カウンタを備え
て構成されている。
【0028】第12の発明に係る緩衝記憶装置は、主記
憶装置へのリードアクセスに対して、アクセスされた前
記主記憶装置の番地の少なくとも一部を記憶するための
記憶領域を持つアドレス記憶部と、アクセスされた前記
主記憶装置の内容の少なくとも一部を記憶するための記
憶領域を持つデータ記憶部とを有し、前記主記憶装置か
ら読みだされたデータを一時的に記憶する緩衝記憶装置
であって、リードアクセスに対して、アクセスされた前
記主記憶装置の番地もしくは内容が前記アドレス記憶部
の記憶している番地情報もしくは前記データ記憶部が記
憶している内容情報に存在しなかった時、アクセスされ
た前記主記憶装置の番地及び内容を記憶し、新たなアク
セスに対して、アクセスされた前記主記憶装置の番地及
び内容が記憶されていた時に、アクセスされた前記主記
憶装置の前記番地を前記アドレス記憶部に記憶し、前記
アクセスされた主記憶装置の前記内容を前記データ記憶
部に記憶する緩衝バッファを備えて構成されている。
【0029】第13の発明に係る緩衝記憶装置は、主記
憶装置へのリードアクセスに対して、アクセスされた前
記主記憶装置の番地の少なくとも一部を記憶するための
記憶領域を持つアドレス記憶部と、アクセスされた前記
主記憶装置の内容の少なくとも一部を記憶するための記
憶領域を持つデータ記憶部とを有し、前記主記憶装置か
ら読みだされたデータを一時的に記憶する緩衝記憶装置
であって、前記緩衝記憶装置に係るアクセスに対して、
前記アドレス記憶部及び前記データ記憶部の記憶領域の
対応の種類に応じて、前記対応の種類別に回数を数える
カウンタを備え、前記カウンタがカウントした内容に応
じて、前記アクセスに対する前記アドレス記憶部及び前
記データ記憶部の記憶領域の動作の種類を変更する事を
特徴とする。
【0030】
【作用】この発明に係る緩衝記憶装置では、アプリケー
ションに特化した緩衝記憶装置を用いたシステム構築す
るための評価基準を測定する機能を用いてそのシステム
にあった緩衝記憶装置の性能の評価ができる。
【0031】第1の発明におけるデータ数カウンタは、
アドレス記憶部に記憶されているアクセスされた番地の
数、もしくはデータ記憶部に記憶されている主記憶の内
容の数をカウントし、カウントした結果を出力するの
で、アドレス記憶部に記憶されている番地の総数、もし
くはデータ記憶部に記憶されている内容の総数を緩衝記
憶装置の外部より検知することができる。
【0032】第2の発明における空検出装置は、アクセ
スされた主記憶装置の番地がアドレス記憶部の全領域を
埋めたことを知らしめる検出信号、もしくはアクセスさ
れた前記主記憶装置の主記憶の内容が前記データ記憶部
の全領域を埋めたことを知らしめる検出信号を出力する
ので、アドレス記憶部、もしくはデータ記憶部の全領域
に空の領域がなくなったタイミングを緩衝記憶装置の外
部より検知することができる。
【0033】第3の発明におけるデータ排除カウンタ
は、リードアクセスに対して、アクセスされた主記憶装
置の番地がアドレス記憶部の記憶している以前にアクセ
スされた番地の記憶領域上に、新たに記憶された場合、
もしくはアクセスされた主記憶装置の内容がデータ記憶
部の記憶している以前にアクセスされた主記憶装置の内
容の記憶領域上に、新たに記憶される場合をカウントす
る。従って、データ排除カウンタにより、アドレス記憶
部の番地もしくはデータ記憶部の内容が書換えられた総
回数を緩衝記憶装置の外部より検知することができる。
【0034】第4の発明における部分稼働装置は、リー
ドアクセスに対して、内容有効記憶部が示す有効または
無効の指示にしたがって、有効と示されたm個(m≦
n)のアドレス記憶部、データ記憶部、もしくはアドレ
ス記憶部とデータ記憶部の両方の記憶領域を稼働させ、
少なくとも無効と示された(n−m)個のアドレス記憶
部またはデータ記憶部の記憶領域を稼働させない。従っ
て、部分稼働装置によりアドレス記憶部及びデータ記憶
部の内の不必要な記憶領域を稼働させずにすむ。
【0035】第5の発明における属性情報判断回路は、
主記憶装置へのリードアクセスの属性情報を判断し、各
リードアクセスに対して属性別の信号を属性カウンタに
対して出力する。属性カウンタは、属性情報判断回路の
出力信号を属性毎にカウントして、カウントした結果を
属性毎に出力するので、属性毎のリードアクセス回数を
緩衝記憶装置の外部より検知することができる。
【0036】第6の発明における禁止情報検出回路は、
データ処理装置のリードアクセス情報中にアドレス記憶
部に番地を記憶することもしくはデータ記憶部に内容を
記憶することを禁止する情報がある場合、前記情報を検
出してカウントして出力する。従って、アドレス記憶部
に番地を記憶することを禁止する情報もしくはデータ記
憶部に内容を記憶することを禁止する情報の総数を緩衝
記憶装置の外部より検知することができる。
【0037】第7の発明におけるライトカウンタは、デ
ータ処理装置のライトアクセスの回数を数えて、その結
果を出力するので、データ処理装置が行うライトアクセ
スの総数を緩衝記憶装置の外部より検知することができ
る。
【0038】第8の発明におけるライトデータカウンタ
は、主記憶装置へのライトアクセスに際して、アドレス
記憶部にアクセスされた主記憶装置の番地が存在する場
合のみ、ライトアクセスの回数を数えて、その結果を出
力するので、ライトアクセスを行った時に緩衝記憶装置
に情報が記憶されていた回数を緩衝記憶装置の外部より
検知することができる。
【0039】第9の発明における入力チェック回路は、
アドレス記憶部にアクセスされた主記憶装置の番地を記
憶する際に、もしくはデータ記憶部にアクセスされた主
記憶装置の内容を記憶する際に、前記内容を2進数で表
現した場合の1の数が奇数個か偶数個かのチェックをす
る。そして、チェック記憶部は入力チェック回路の結果
を記憶する。出力チェック回路は、主記憶装置へのアク
セスに対して、アドレス記憶部からアクセスされた主記
憶装置の番地の少なくとも一部を参照する際に、もしく
はデータ記憶部からアクセスされた主記憶装置の内容の
写しを参照する際に、前記内容を2進数で表現した場合
の1の数が奇数個か偶数個かのチェックをする。そし
て、出力チェック回路がチェックすると、そのチェック
した結果とチェック記憶部の内容の比較を行い、比較の
結果に応じて、例えば出力チェック回路のチェックの結
果とチェック記憶部の内容が一致していなければ、その
回数を数える。そうすることにより、パリティーエラー
の回数が緩衝記憶装置の外部より検知することができ
る。
【0040】第10の発明におけるマージ回路は、アド
レス記憶部の第1のブロックに記憶された番地と、アド
レス記憶部の第1のブロックに対応するデータ記憶部の
第1のブロックに記憶されたデータ記憶部の内容をアド
レス記憶部及びデータ記憶部の第2のブロックに記憶す
るとともに、少なくともアドレス記憶部の第1のブロッ
クの番地、もしくはデータ記憶部の第1のブロックの内
容を無効化する。そして、制御手段は、少なくともアド
レス記憶部もしくはデータ記憶部の読み出し動作をブロ
ック毎に制御するので、必要のないブロックは、制御手
段により動作させないようにすることができる。
【0041】第11の発明におけるノンアクセスデータ
排除カウンタは、リードアクセスに対して、アクセスさ
れた主記憶装置の番地がアドレス記憶部の記憶している
以前にアクセスされた番地の記憶領域上に、新たに記憶
された時、もしくは、アクセスされた主記憶装置の内容
がデータ記憶部の記憶している以前にアクセスされた前
記主記憶装置の内容の記憶領域上に、新たに記憶された
時、以前にアクセスされた前記主記憶装置の番地もしく
は前記主記憶装置の内容が、記憶領域内に取り込まれた
時以外にアクセスされなかったものである場合にカウン
トを行うので、ノンアクセスの内容が排除される回数を
緩衝記憶装置の外部より検知することができる。
【0042】第12の発明における緩衝バッファは、リ
ードアクセスに対して、アクセスされた主記憶装置の番
地がアドレス記憶部の記憶している番地情報に存在しな
かった時、少なくともアクセスされた主記憶装置の番地
を記憶し、新たなアクセスに対して、アクセスされた主
記憶装置の番地が記憶されていた時にのみ、アクセスさ
れた主記憶装置の番地を前記アドレス記憶部に記憶し、
アクセスされた主記憶装置の内容を前記データ記憶部に
記憶するので、アクセス頻度が低いと予想されるデータ
を保持しない。よって、アクセス頻度が高い有効データ
がキャッシュメモリに長く留まることが期待でき、キャ
ッシュヒット率の向上が望める。
【0043】第13の発明におけるカウンタは、緩衝記
憶装置に係るアクセスに対して、アドレス記憶部及びデ
ータ記憶部の記憶領域の対応の種類に応じて、対応の種
類別に回数を数え、カウンタがカウントした内容に応じ
て、アクセスに対するアドレス記憶部及びデータ記憶部
の記憶領域の動作の種類を変更するので、アドレス記憶
部及びデータ記憶部の記憶領域を、対応の種類のカウン
ト値の比率に沿った割り振りとすることが可能となる。
【0044】
【実施例】以下、この発明の第1実施例によるキャッシ
ュメモリを内蔵するデータ処理装置でのキャッシュシス
テムについて説明する。図1はこの発明を実現するため
の最も基本的なキャッシュシステムについて示した図で
ある。図において1はデータ処理装置、2はデータ処理
装置1のメモリアクセスを緩衝するキャッシュメモリ、
3はこのシステムの主記憶装置である主メモリである。
【0045】次に図1のキャッシュシステムの動作につ
いて図3を用いて説明する。図3は図1で示したデータ
処理装置1内のキャッシュメモリとキャッシュメモリ2
と、主メモリ3の記憶領域内の内容を示す。各々記憶量
は、データ処理装置1が2、キャッシュメモリ2が4、
主メモリ3が8とする。但し、データ処理装置1の内蔵
キャッシュメモリとキャッシュメモリ2は主メモリ3の
番地を記憶する番地記憶領域と、番地に対応する内容を
記憶する内容記憶領域をもつので、[T<キャッシュメ
モリの番地>]と記述した場合はキャッシュメモリの番
地に対して、番地記憶領域に記憶された主メモリ3の番
地をデータとする。そして、[D<キャッシュメモリの
番地>]と記述した場合はキャッシュメモリの番地に対
して内容記憶領域に記憶された、[T<キャッシュメモ
リの番地>]で示された主メモリ3の番地に対応する内
容と表現する。すなわち、記憶すべき主メモリの内容お
よび格納番地は、各々キャッシュメモリ番地によって対
応づけられた内容記憶領域および番地記憶領域に記憶さ
れる。例えば、キャッシュメモリ2の番地<H0>に主
メモリ3の番地<H2>が記憶されていれば、キャッシ
ュメモリ2の番地<H0>の内容は[T<H0>]=H
2,[D<H0>]=cとなる。
【0046】記憶領域が図3(a)の状態であるとす
る。最初、データ処理装置1内のキャッシュメモリ及び
キャッシュメモリ2には、データが記憶されていない。
データ処理装置1は主メモリ3の番地<H0>で示され
ている内容を読みにいく。キャッシュメモリ2は番地<
H0>でアクセスされたが記憶領域には何も記憶してい
ないので、主メモリ3を番地<H0>でアクセスする。
アクセスされた主メモリ3は番地<H0>に対応する内
容aを出力する。この時キャッシュメモリ2はキャッシ
ュメモリ2の番地<H0>の番地記憶領域にH0を記憶
し、そしてキャッシュメモリ2の番地<H0>の内容記
憶領域に番地記憶領域に記憶した番地の主メモリ3の内
容aを記憶する。次にキャッシュメモリ2は主メモリ3
の番地<H0>の内容aをデータ処理装置1に出力する
と共に、主メモリ3に番地<H0>の次の番地<H1>
でアクセスする。そこで主メモリ3はアクセスされた番
地<H1>の内容[<H1>]=bを出力する。キャッ
シュメモリ2はキャッシュメモリ2の番地を記憶する領
域の番地<H1>にH1を記憶し、そしてキャッシュメ
モリ2の番地<H1>で記憶した番地の内容を記憶する
領域にbを記憶する。また、データ処理装置1も、同様
に内蔵キャッシュメモリにデータ処理装置内蔵キャッシ
ュメモリの番地<H0>に[T<H0>]=H0,[D
<H0>]=aを、記憶すると共に、内部で処理を行
う。この時のそれぞれの記憶状態を図3(b)に示す。
【0047】次に、データ処理装置1は、内蔵キャッシ
ュメモリに[D<H1>]を持たないので、番地<H1
>でアクセスする。キャッシュメモリ2は、上記の様
に、データをプリフェッチ(あらかじめアクセスされる
だろうと予想されるデータを取り込んで置く事)してい
るので、キャッシュヒットし、[D<H1>]=bを出
力する。データ処理装置1は、同様に内蔵キャッシュメ
モリに、データ処理装置内蔵キャッシュメモリの番地<
H1>に[T<H1>]=H1、[D<H1>]=b
を、記憶すると共に、内部で処理を行なう。図3(c)
の状態になる。
【0048】次に、アプリケーションの内容が、番地<
H0>に戻るループ構造になっている時、データ処理装
置は、内蔵キャッシュメモリの番地<H0>に[T<H
0>]=H0を記憶しているので、[D<H0>]=a
を読み出し処理を続ける。そして、図1のシステムの有
効性を評価するために、キャッシュメモリ2の記憶領域
がどれだけ使用されたか調べると、キャッシュメモリの
番地<H0>,<H1>の2ラインである事が判る。こ
の量は、データ処理装置1の内蔵キャッシュメモリのサ
イズと同じである。このことは、この様なアプリケーシ
ョンにおいて、キャッシュメモリは使用しない方が、性
能を下げずにコストを低減できる。単純にキャッシュヒ
ット率だけで評価すると、ヒット率が低いので、キャッ
シュ容量を増やす様な誤った方向への修正を避けること
ができる。
【0049】次に、図4においてキャッシュメモリ2の
記憶領域がどれだけ使用されたか調べる方法について説
明する。図4(a)において、2は図1で説明したキャ
ッシュメモリ、11はキャッシュメモリ2内の番地情報
を記憶しておくアドレス記憶部、12はアドレス記憶部
11に記憶された番地の内容を記憶しておくデータ記憶
部、13はデータ記憶部12に情報が記憶された時にカ
ウントするデータ数カウンタである。データ数を書き込
むためのアップ信号には、既存のアドレス記憶信号を用
いる。また、カウントリセット信号には、既存のアドレ
ス無効化信号を用いる。
【0050】次に動作の説明をする。ただし、説明を簡
単にするため、ここではキャッシュメモリの一つの番地
に対して、データ記憶部の内容の記憶できる個数は複数
とせずに1つとする。つまり、図1を用いて説明した様
な動作をする場合、キャッシュメモリ番地<H0>に
[T<H0>]=H0,[D<H0>]=aが記憶され
ると、[C<H0>]=1とする。ここで、[C<キャ
ッシュメモリの番地>]と記述した場合はキャッシュメ
モリの番地に対して、[D<キャッシュメモリの番地
>]に情報が書かれている個数を示す。また、[D<キ
ャッシュメモリの番地>]の内容が無効になった時で
も、[C<キャッシュメモリの番地>]の値を減少させ
ない方法も考えられる。
【0051】次に、データ処理装置1からのカウント値
要求に対する動作について説明する。例えば、キャッシ
ュメモリ2が図3(b)に示したような状態のとき、デ
ータ処理装置1はキャッシュメモリ2にキャッシュメモ
リ番地<H0>を出力する。それを受けキャッシュメモ
リ2は、[C<H0>]の値を出力する。ここでは、1
をデータ処理装置1は受け取る。そして次に、データ処
理装置1はキャッシュメモリ2にキャッシュメモリ番地
<H1>を出力する。それを受けキャッシュメモリ2
は、[C<H1>]=1を出力する。次に、データ処理
装置1はキャッシュメモリ2にキャッシュメモリ番地<
H2>を出力する。それを受けキャッシュメモリ2は、
[C<H2>]=0を出力する。最後に、データ処理装
置1はキャッシュメモリ2にキャッシュメモリ番地<H
3>を出力する。それを受けキャッシュメモリ2は、
[C<H3>]=0を出力する。その結果、データ処理
装置1は1+1+0+0=2と判断できる。
【0052】なお、データが複数の場合の一例を図4
(b)に示す。図4(b)において、2は図1で説明し
たキャッシュメモリ、11a,11bはキャッシュメモ
リ2内の番地情報を記憶しておくアドレス記憶部、12
a,12bはアドレス記憶部11に記憶された番地の内
容を記憶しておくデータ記憶部、13はデータ記憶部1
2に情報が記憶された時にカウントするデータ数カウン
タ、14a,14bはデータ記憶部12a,12bに記
憶された情報が有効であるか、無効であるかを示す有効
ビットである。この場合、複数データごとに有効ビット
が設けられ、この有効ビットはアドレス記憶部11a,
11bへの書き込み動作によりセット“H”され、アド
レス記憶部無効化信号(キャッシュメモリ内部で生成)
によりリセット“L”される。ここでデータ数のカウン
トアップ信号は、データ記憶部書き込み信号と有効ビッ
トの論理積により作成される。また、ダウン信号は、ア
ドレス記憶部無効化信号と有効ビットの論理積により作
成される。
【0053】次に、この発明の第2実施例によるデータ
数をカウントするためのカウンタが1つの場合のキャッ
シュメモリについて図5を用いて説明する。図におい
て、2は図1で説明したキャッシュメモリ、11はキャ
ッシュメモリ2内の番地情報を記憶しておくアドレス記
憶部、12はアドレス記憶部11に記憶された番地の内
容を記憶しておくデータ記憶部、14はデータ記憶部1
2に記憶されていた情報が有効であるか、無効であるか
を示す有効ビット、13は有効ビット14がセットされ
たことをカウントするデータ数カウンタである。
【0054】次に図に示すキャッシュメモリ2の動作を
説明する。図1を用いて説明した様な動作をする場合、
キャッシュメモリ番地<H0>にアドレス記憶部11で
[T<H0>]=H0,データ記憶部12で[D<H0
>]=aを記憶されると、有効ビット14で[V<H0
>]=1とする。ここで、[V<キャッシュメモリの番
地>]と記述した場合はキャッシュメモリの番地に対し
て、[D<キャッシュメモリの番地>]の情報に対する
[T<キャッシュメモリの番地>]が有効であるか否か
を示し、“1”の時は有効、“0”の時は無効である事
を示す。そしてこの時、有効ビット14が“1”になっ
たのでデータ数カウンタ13で[C]の値を“1”増や
す。その結果データ数カウンタ13[C]=1となる。
次に、キャッシュメモリ番地<H1>にアドレス記憶部
11で[T<H1>]=H1,データ記憶部12で[D
<H1>]=bを記憶されると、有効ビット14で[V
<H1>]=1とする。そして有効ビット14が“1”
になったので、データ数カウンタ13で[C]の値を
“1”増やす。その結果データ数カウンタ13[C]=
2となる。ここで、図1の説明にはなかったが、データ
処理装置1が、番地<H0>に“A”という情報を主メ
モリ3にライトアクセスした場合、キャッシュメモリ2
は、アドレス記憶部11の[T<H0>]=H0によ
り、キャッシュヒットするので、データ記憶部12の
[D<H0>]にAを記憶して、[D<H0>]=Aと
する。しかしここでは、有効ビット14が[V<H0
>]=0から1になっていないので、データ数カウンタ
13のカウント数は変わらず[C]=2である。次に、
データ処理装置1からのカウント要求に対して、キャッ
シュメモリ2は、データ数カウンタ13の内容“2”を
出力する。
【0055】次に、図5で示したデータ数カウンタ13
の一例を図6で示す。図6において、13は図5で示す
データ数カウンタ13、131はデータ数カウンタ13
の構成要素であるアップダウンカウンタ、132はデー
タ数カウンタ13の構成要素であるピークカウンタ、1
33はアップダウンカウンタ131の1ビットを示すア
ップダウンカウンタセル、134はピークカウンタ13
2の1ビットを示すピークカウンタセル、135はアッ
プダウンカウンタ131とピークカウンタ132とに接
続されたカウントアップ要求を示すアップ信号、136
はアップダウンカウンタ131に接続されたカウントダ
ウン要求を示すダウン信号、105はアップダウンカウ
ンタ131とピークカウンタ132とに接続されカウン
タの内容をクリアにする要求を示すリセット信号、10
6はキャッシュ内部データバス、137はキャッシュ内
部データバス106へのアップダウンカウンタ131の
内容出力要求を示すアップダウンカウンタリード信号、
138はキャッシュ内部データバス106へのピークカ
ウンタ132の内容出力要求を示すピークカウンタリー
ド信号である。ここでアップ信号135は、既存のアド
レス記憶部書き込み信号と有効ビットの情報との論理積
をとることで生成される。また、ダウン信号136は、
既存のアドレス記憶部無効化信号と有効ビットの情報と
の論理積をとることで生成される。
【0056】次に、図の動作について説明する。まずデ
ータ数カウンタ13の内容をクリアするために、リセッ
ト信号105でリセット要求をだし、それぞれアップダ
ウンカウンタ131とピークカウンタ132の内容を0
とする。ここで、[CU]と記述した場合はアップダウ
ンカウンタ131に対して、[CP]と記述した場合は
ピークカウンタ132に対しての内容を示し、添え字
a,b,cがある場合は、それぞれのアップダウンカウ
ンタセル133とピークカウンタセル134のそれぞれ
一つ一つの内容を示す。つまりリセット信号105がア
クティブになると、[CUa]=0,[CUb]=0,
[CUc]=0,[CPa]=0,[CPb]=0,
[CPc]=0となる。次に、カウントアップ要求があ
り、アップ信号135がアクティブになるとアップダウ
ンカウンタセル133aとピークカウンタセル134a
はカウントアップされ[CUa]=1,[CPa]=1
となり、アップダウンカウンタ131とピークカウンタ
132は[CU]=1,[CP]=1となる。次に、カ
ウントアップ要求があり、アップ信号135がアクティ
ブになるとアップダウンカウンタセル133aとピーク
カウンタセル134aはカウントアップされ[CUa]
=0、[CPa]=0となり、桁上がりが起こり、[C
Ub]=1、[CPb]=1となる。そしてアップダウ
ンカウンタ131とピークカウンタ132は[CU]=
2、[CP]=2となる。次にカウントダウン要求があ
り、ダウン信号136がアクティブになるとアップダウ
ンカウンタセル133aはカウントダウンされ[CU
a]=1となり、桁下がりが起こり、[CUb]=0と
なる。そしてアップダウンカウンタ131は[CU]=
1となる。次にカウントダウン要求があり、ダウン信号
136がアクティブになるとアップダウンカウンタセル
133aはカウントダウンされ[CUa]=0となり、
アップダウンカウンタ131は[CU]=0となる。次
に、カウントアップ要求があり、アップ信号135がア
クティブになるとアップダウンカウンタセル133aは
カウントアップされ[CUa]=1となり、アップダウ
ンカウンタ131は[CU]=1となる。しかし、ピー
クカウンタセル134aはアップダウンカウンタ131
の内容が、ピークカウンタ132の内容より小さく、
[CU]<[CP]となっているので、ピークカウンタ
132は[CP]=2のままである。
【0057】次に、アップダウンカウンタリード信号1
37がアクティブになると、アップダウンカウンタ13
1の内容[CU]=1がキャッシュ内部データバス10
6に出力される。また、ピークカウンタリード信号13
8がアクティブになると、ピークカウンタ132の内容
[CP]=2がキャッシュ内部データバス106に出力
される。以上の様に、有効ビット14が[V]=1→0
になる事を考慮したデータ数カウンタを備えたキャッシ
ュメモリを示した。
【0058】次に、第1実施例で示した様なシステムに
おいて、カウンタのオーバーフロー(アドレス記憶部1
1もしくはデータ記憶部12が全て有効になった場合を
指す)に対して、検出する機能を有するこの発明の第3
実施例によるキャッシュメモリについて説明する。ま
ず、カウンタのオーバーフロー検出機能を持ったキャッ
シュメモリを含むキャッシュメモリについて説明する。
図1はこの発明を実現するための最も基本的なキャッシ
ュメモリについて示した図である。図において1はデー
タ処理装置、2はデータ処理装置1のメモリアクセスを
緩衝するキャッシュメモリ、3はこのシステムの主記憶
装置である主メモリである。
【0059】次に図1に示したシステムの動作について
説明する。データ処理装置1は主メモリ3に情報を取り
に行く。この時緩衝記憶装置であるキャッシュメモリ2
は、データ処理装置1のアクセスした番地のデータが存
在する時は、主メモリ3に代わって、情報を出力する。
しかし、キャッシュメモリ2がキャッシュミスを起こし
た場合は、主メモリ3にデータを取りに行き、記憶す
る。この時、データ数カウント装置を1つカウントす
る。この様にキャッシュミスをキャッシュメモリ2で記
憶できる容量分だけ起こすと、データ処理装置1へ割り
込み等で知らせる。この様に割り込み信号が出力される
タイミングにより、アプリケーションのどの部分で、キ
ャッシュメモリがオーバーフローしたか判断でき、あと
どれくらいの容量がキャッシュメモリに必要か判断でき
る。
【0060】次に、割込みを発生する回路を有する図5
に示した様な構成のキャッシュメモリ2において、図7
を用いて説明する。図において、13は図5で示すデー
タ数カウンタ、131はデータ数カウンタ13の構成要
素であるアップカウンタ、133a〜133cはアップ
カウンタ131の1ビットを示すアップカウンタセル、
135はアップカウンタ131に接続されたカウントア
ップ要求を示すアップ信号、105はアップカウンタ1
31に接続されカウンタの内容をクリアにする要求を示
すリセット信号、139は、アドレス記憶部11が全て
記憶されたことを検出した結果を示すフル信号である。
【0061】次に、図の動作について説明する。まずデ
ータ数カウンタ13の内容をクリアするために、リセッ
ト信号105でリセット要求をだし、アップカウンタ1
31の内容を0とする。次にカウントアップ要求がで
て、アップ信号135がアクティブになると、アップカ
ウンタセル133aが[CUa]=1となり、アップカ
ウンタ131は[CU]=1となる。次にカウントアッ
プ要求が出て、アップ信号135がアクティブになる
と、アップカウンタセル133a〜133bが[CU
a]=0、[CUb]=1となる。よってアップカウン
タ131は[CU]=2となる。そして次に、カウント
アップ要求がでて、アップ信号135がアクティブにな
ると、アップカウンタセル133aが[CUa]=1と
なる。よってアップカウンタ131は[CU]=3とな
る。そして最後に、カウントアップ要求がでて、アップ
信号135がアクティブになると、アップカウンタセル
133a〜133cが[CUa]=0、[CUb]=
0、[CUc]=1なる。そのためフル信号139がア
クティブになり、データ処理装置1に割込みとして知ら
せる。この時アップカウンタ131は[CU]=4とな
り、図5に示したキャッシュメモリ2のアドレス記憶部
11の全記憶領域にデータが格納されたことになる。
【0062】次に、この発明の第4実施例によるアドレ
ス記憶部11の全記憶領域にデータが格納されたことの
みを検出し、データ数をカウントしないキャッシュメモ
リについて図8を用いて説明する。図において、14は
図5で記述した有効ビット、22は有効ビット14と接
続された空検出回路である。空検出回路22は第1の端
子を電源に接続された抵抗22eと、第1の端子が抵抗
22eの第2の端子と接続され、入力端子を有効ビット
14aと接続された第1のトランジスタ22aと、第1
の端子が第1のトランジスタ22aの第2の端子と接続
され、入力端子を有効ビット14bと接続された第2の
トランジスタ22bと、第1の端子が第2のトランジス
タ22bの第2の端子と接続され、入力端子を有効ビッ
ト14cと接続された第3のトランジスタ22cと、第
1の端子が第3のトランジスタ22cの第2の端子と接
続され、入力端子を有効ビット14dと接続され、第2
の端子が接地された第4のトランジスタ22dと、入力
を第1のトランジスタ22aの第1の端子と接続され出
力をフル信号139とするインバータ22fとからな
る。105は有効ビット14の内容をクリアーするリセ
ット信号、139は空検出回路22の検出結果であるフ
ル信号である。
【0063】次に、動作について説明する。リセット信
号105をアクティブにする事によって有効ビット14
の内容をすべて0とする。この状態で、空検出回路22
の各トランジスタ22a〜22dの入力端子は0が印加
された状態となり、トランジスタ22a〜22dはOF
F状態になる。その結果、空検出回路22の抵抗22e
の第2の端子は電源電圧と同じになり、インバータ22
fの出力は0となる。その結果、空検出回路22の出力
であるフル信号139は、0となり、ノンアクティブと
なる。次に、アドレス記憶部11で情報が記憶された場
合、例えば[T<H0>]=H0となると、有効ビット
14が[V<H0>]=1となり、空検出回路22のト
ランジスタ22aは入力端子に1が印加され、ON状態
になる。しかし、空検出回路22の残りのトランジスタ
22b〜dはOFF状態なので、結果的にフル信号13
9は0で、ノンアクティブ状態である。次に、アドレス
記憶部11が全て情報を記憶した場合、有効ビット14
は、[V<H0>]=1,[V<H1>]=1,[V<
H2>]=1,[V<H3>]=1となる。そして空検
出回路22の全トランジスタ22a〜dの入力端子に1
が印加されるので、全トランジスタ22a〜22dはO
Nとなる。その結果、インバータ22fは1を出力す
る。そして、フル信号139は1となり、アクティブ状
態になる。
【0064】以上の様に空検出回路を備えたキャッシュ
メモリを2種類示した。なお、上記各実施例では、カウ
ンタによりアドレス記憶部への記憶をカウントしたが、
データ記憶部への記憶をカウントしてもよく、データ記
憶部への記憶もデータ記憶部へ記憶させるための既存の
信号によって行われ、上記各実施例と同様の効果を奏す
る。
【0065】次に、第1実施例で示した様なシステムに
おいて、キャッシュメモリがデータ処理装置のアクセス
の属性に応じて、属性毎のカウントを行なう場合の第5
実施例について説明する。これは、昨今のデータ処理装
置が情報をアクセスする場合、アクセスしようとしてい
る情報が命令(インストラクション)であるのか、もし
くはデータであるのか、もしくはそれ以外であるのかを
示す属性情報を付加してアクセスしいることに着目して
いる。この情報を基に、キャッシュメモリシステムも、
インストラクションをキャッシングするインストラクシ
ョンキャッシュ、データのみをキャッシングするデータ
キャッシュとキャッシュメモリを属性毎に専用化する動
きがある。限られたハードウェアーを効率よく分配する
ためには、従来の例で説明したようなキャッシュヒット
率だけでは判断し難い。そこで、キャッシュメモリ内
に、データ処理装置のアクセスの属性をカウントするカ
ウンタを持ったキャッシュメモリで、性能評価を行い、
効率のよい配分を行なう。
【0066】図1はこの発明の第5実施例によるキャッ
シュメモリを用いた最も基本的なキャッシュシステムに
ついて示した図である。図において1はアクセスの際、
アクセスの種類を知らしめるデータ処理装置、2は全デ
ータ処理装置1の属性信号毎にアクセス回数をカウント
するカウンタを持ち、データ処理装置1のメモリアクセ
スを緩衝するキャッシュメモリ、3はこのシステムの主
記憶装置である主メモリである。
【0067】次に図1のキャッシュシステムについて説
明する。データ処理装置1はインストラクションの情報
(以降、インストラクション情報をI−Dとする)を読
みにいく。このときデータ処理装置1は、属性情報とし
てIを示す(データの属性情報はDとする)。キャッシ
ュメモリ2は属性情報Iを受けて、データ処理装置1の
アクセスがI−Dと認識して、I−D用のカウンタをカ
ウントアップする。それとともに、I−D記憶領域か
ら、情報をデータ処理装置1へ送る。次に、データ処理
装置1が、データ情報(以降、D−Dとする)を読みに
いく。このときデータ処理装置1は属性情報Dを出力す
る。キャッシュメモリ2は、信号Dを受けて、データ処
理装置1のアクセスがD−Dと認識して、D−D用のカ
ウンタをカウントアップする。それとともに、D−D記
憶領域から、情報をデータ処理装置1へ送る。この様に
して、プログラムの終了後、I−D用カウンタの値と、
D−D用のカウンタの値を比較して、キャッシュメモリ
内の記憶領域を配分する。または、複数個のキャッシュ
メモリを用いる場合、その比率に応じて、例えば、3つ
がI−D用キャッシュメモリで、1つがD−D用キャッ
シュメモリとして設定する。
【0068】次にキャッシュメモリ2のカウンタ構成に
ついて、図9で説明する。図において2は図1で示した
キャッシュメモリ、131はD−Dのアクセスをカウン
トするためのD−Dカウンタ、132はI−Dのアクセ
スをカウントするためのI−Dカウンタ、105はD−
Dカウンタ131とI−Dカウンタ132の内容をクリ
アー要求するためのリセット信号、133はD−Dカウ
ンタ131の内容をカウントアップするためのD−Dカ
ウンタアップ信号、134はI−Dカウンタ132の内
容をカウントアップするためのI−Dカウンタアップ信
号、137はD−Dカウンタ131の内容を読み出すた
めのD−Dカウンタリード信号、138はI−Dカウン
タ132の内容を読み出すためのI−Dカウンタリード
信号、106はD−Dカウンタ131とI−Dカウンタ
132の内容をキャッシュメモリ2から出力するための
キャッシュメモリ内部データバスである。ここでカウン
タの回路については、図6,図7と同様なので図示を省
略する。次に図9に示したキャッシュメモリの動作につ
いて説明する。カウントを開始する前に、カウンタのリ
セットを行なうためにリセット信号105をアクティブ
にする。D−Dカウンタ131とI−Dカウンタ132
は内容を0にする。ここで、D−Dカウンタ131の内
容を示すときは[CD]と記述し、I−Dカウンタ13
2の内容を示すときは[CI]と記述する。つまり、リ
セット信号105によって、それぞれのカウンタは[C
D]=0,[CI]=0となる。データ処理装置1から
D情報を受けると、D−Dカウンタアップ信号133が
アクティブになりD−Dカウンタ131の内容はカウン
トアップされ、[CD]=1となる。次に、データ処理
装置1からI情報を受けると、I−Dカウンタアップ信
号134がアクティブになりI−Dカウンタ132の内
容はカウントアップされ、[CI]=1となる。次に、
カウンタの内容を読み出す時には、D−Dカウンタリー
ド信号137をアクティブにする。D−Dカウンタ13
1はキャッシュ内部データバス106に[CD]=1よ
り1を出力する。そして、I−Dカウンタリード信号1
38をアクティブにする。I−Dカウンタ132はキャ
ッシュ内部データバス106に[CI]=1より1を出
力する。
【0069】次に、図10において、D−Dカウンタア
ップ信号133とI−Dカウンタアップ信号134の発
生ロジックを示す。ここでは、データ処理装置からのリ
ードアクセスのみについてカウントする場合について説
明する。図において、1301は、入力をデータ処理装
置からのD信号109とデータ処理装置からのリードア
クセス信号107とキャッシュメモリの制御信号である
イネーブル信号110とし、出力をD−Dカウンタアッ
プ信号133とするD用3ANDゲートである。また、
1302は、入力をデータ処理装置からのI信号108
とデータ処理装置からのリードアクセス信号107とキ
ャッシュメモリの制御信号であるイネーブル信号110
とし、出力をI−Dカウンタアップ信号134とするI
用3ANDゲートである。なお、イネーブル信号110
の出力元は、制御を行う装置によりキャッシュ内部で制
御すれば、キャッシュ内部より出力され、データ処理装
置で制御すれば、データ処理装置から出力される。ま
た、イネーブル信号110が“H”のときカウント機能
を動作し、イネーブル信号110が“L”のときカウン
ト機能を動作しない。
【0070】次に、図の動作について説明する。データ
処理装置からD−Dをリードアクセスすると、D信号1
09とリードアクセス信号107がアクティブになる。
カウントアップ要求を行なうためにイネーブル信号11
0をアクティブにすると、D用3ANDゲート1301
の入力がすべてアクティブになる。その結果、D用3A
NDゲート1301が“H”を出力し、D−Dカウンタ
アップ信号133はアクティブになる。次に、データ処
理装置からI−Dをリードアクセスすると、I信号10
8とリードアクセス信号107がアクティブになる。カ
ウントアップ要求を行なうためにイネーブル信号110
をアクティブにすると、I用3ANDゲート1302の
入力がすべてアクティブになる。その結果、I用3AN
Dゲート1302が“H”を出力し、I−Dカウンタア
ップ信号134はアクティブになる。
【0071】以上の様に属性毎のカウンタを備えたキャ
ッシュメモリを示した。第5実施例では、属性D信号と
I信号としたが、その他コプロセッサアクセスとそれ以
外のアクセスや、OSアクセスとユーザーアクセスの区
別をするリングレベル毎にカウントする応用例が考えら
れる。
【0072】次に、発明で解決しようとする課題で説明
したノンキャッシャブルアクセス(以降、NCAとす
る)に対して用いたこの発明の第6実施例によるキャッ
シュメモリを説明する。図11はこの発明を実現するた
めの最も基本的なキャッシュシステムについて示した図
である。図において1はI/O回路にアクセスする場合
NCA信号を出力するデータ処理装置、2はキャッシン
グアクセス(CA)カウンタとNCAカウンタとを備え
データ処理装置1のメモリアクセスを緩衝するキャッシ
ュメモリ、3はこのシステムの主記憶装置である主メモ
リ、6はキャッシュメモリ2でキャッシングされない領
域に番地を割り付けられたI/O回路である。
【0073】次に図の動作について説明する。データ処
理装置1は主メモリ3に情報を取りに行く。この時キャ
ッシュメモリ2は、データ処理装置1のアクセスした番
地のデータが存在する時は、主メモリ3に代わって情報
を出力する。しかし、キャッシュメモリ2がキャッシュ
ミスを起こした場合は、主メモリ3にデータを取りに行
き、主メモリ3の情報を記憶する。この時、CAカウン
タを1つカウントする。次に、データ処理装置1はI/
O回路6に情報を取りに行く。この時キャッシュメモリ
2は、データ処理装置1のNCA信号を受けて、I/O
回路6をアクセスし、データ処理装置1に情報を出力す
る。この時、キャッシュメモリ2は内部の記憶領域には
I/O回路6からの情報を記憶しない。しかし、NCA
カウンタはカウントアップする。
【0074】そして、プログラム実行後に、それぞれの
カウンタの値を比較する。その結果、NCAの回数が少
なければ、キャッシュメモリの容量を増やす等で、ヒッ
ト率を上げる事ができ、システムの全体の性能を上げれ
ると判断できる。しかし、CAの回数が多ければ、キャ
ッシュメモリの容量を減らしても、キャッシュヒット率
が下がらないので、システムの性能を下げずに、コスト
を下げることが可能である判断ができる。
【0075】次にキャッシュメモリ2のカウンタ構成に
ついて、図12で説明する。図において2は図11で示
したキャッシュメモリ、131はNCAをカウントする
ためのNCAカウンタ、132はCAをカウントするた
めのCAカウンタ、105はNCAカウンタ131とC
Aカウンタ132の内容をクリアー要求するためのリセ
ット信号、133はNCAカウンタ131の内容をカウ
ントアップするためのNCAカウンタアップ信号、13
4はCAカウンタ132の内容をカウントアップするた
めのCAカウンタアップ信号、137はNCAカウンタ
131の内容を読み出すためのNCAカウンタリード信
号、138はCAカウンタ132の内容を読み出すため
のNCAカウンタリード信号、106はNCAカウンタ
131とCAカウンタ132の内容をキャッシュメモリ
2から出力するためのキャッシュメモリ内部データバス
である。ここでカウンタの回路については、図6,図7
と同様なので図示を省略する。
【0076】次に図12に示したキャッシュメモリ2の
動作について説明する。カウント開始する前に、カウン
タのリセットを行なうためにリセット信号105をアク
ティブにする。NCAカウンタ131とCAカウンタ1
32は内容を0にする。ここで、NCAカウンタ131
の内容を示すときは[CNC]と記述し、CAカウンタ
132の内容を示すときは[CC]と記述する。つま
り、リセット信号105によって、それぞれのカウンタ
は[CNC]=0,[CC]=0となる。データ処理装
置1からNCA信号を受けると、NCAカウンタアップ
信号133がアクティブになりNCAカウンタ131の
内容はカウントアップされ、[CNC]=1となる。
【0077】次に、データ処理装置1からアクセスでN
CA信号で受けなかった時、CAカウンタアップ信号1
34がアクティブになりCAカウンタ132の内容はカ
ウントアップされ、[CC]=1となる。次に、カウン
タの内容を読み出す時には、NCAカウンタリード信号
137をアクティブにする。NCAカウンタ131はキ
ャッシュ内部データバス106に[CNC]=1より1
を出力する。そして、CAカウンタリード信号138を
アクティブにする。CAカウンタ132はキャッシュ内
部データバス106に[CC]=1より1を出力する。
以上の様にCA,NCAのカウンタを備えたキャッシュ
メモリを示した。
【0078】ここで、CAカウントアップ信号134及
びNCAカウントアップ信号133の生成方法について
図13を用いて説明する。データ処理装置1より出力さ
れるリードアクセス信号RD、ライトアクセス信号W
R、NCA信号NCAがある。CAカウントアップ信号
134を生成するときには、図13(a)に示すように
ORロジックOR1にライトアクセス信号WR及びリー
ドアクセス信号RDを入力して論理和をとり、ORロジ
ックOR1の出力とNCA信号の反転論理をANDロジ
ックAND1に入力して論理積をとる。また、NCAカ
ウントアップ信号133を生成するときには、図13
(b)に示すようにORロジックOR2にライトアクセ
ス信号WR及びリードアクセス信号RDを入力して論理
和をとり、ORロジックOR2の出力とNCA信号NC
AをANDロジックAND2に入力して論理積をとる。
【0079】次に、キャッシュメモリ内の記憶領域内で
どれだけエラーが発生したかをカウントするカウンタを
備えた第7実施例によるキャッシュメモリについて説明
する。記憶領域内で発生するエラーとは、記憶領域から
データを読み出す場合のミスと、α線や宇宙線など高エ
ネルギー粒子などによる記憶データの破壊などがある。
この実施例については、パリティーエラーの回数をカウ
ントする例をあげる。
【0080】図14はエラーカウンタを備えたキャッシ
ュメモリ2の内部ブロック図である。図において、11
はキャッシュメモリ2内の番地情報を記憶しておくアド
レス記憶部、12はアドレス記憶部11に記憶さた番地
の内容を記憶しておくデータ記憶部、14はデータ記憶
部12に記憶されている情報が有効であるか、無効であ
るかを示す有効ビット、15はデータ記憶部12のパリ
ティーを取った結果を格納するパリティービット、13
はデータ記憶部12のパリティーエラーを検出した回数
をカウントするエラーカウンタである。
【0081】次に図14に示すキャッシュメモリ2の動
作を説明する。まずエラーカウンタ13の内容をクリア
ーする。ここで、エラーカウンタ13の内容を示すとき
[CE]とし、内容をクリアーするとは[CE]=0と
表現する。キャッシュメモリ番地<H0>にアドレス記
憶部11で[T<H0>]=H0,データ記憶部12で
[D<H0>]=B1001を記憶されると、有効ビッ
ト14で[V<H0>]=1とする。この時、[D<H
0>]の記憶された内容を2進数で表現した場合“1”
の数が2つで偶数であるのでパリティービット15に
[P<H0>]=0と記憶する。ここで、[P<キャッ
シュメモリの番地>]と記述した場合はキャッシュメモ
リの番地に対して、[D<キャッシュメモリの番地>]
のパリティーの結果を示す。[D<キャッシュメモリの
番地>]の内容を2進数で表現した時の“1”の数が、
[P<キャッシュメモリの番地>]=1なら奇数個ある
ことを示し、[P<キャッシュメモリの番地>]=0な
ら偶数個あることを示す。
【0082】次に、番地<H0>で、キャッシュメモリ
2がリードアクセスされると、[T<H0>]=H0で
あるので、キャッシュヒットする。そして、[D<H0
>]を読み出すと、エラーが生じていて、[D<H0
>]=B1011となっている。この時のパリティーは
“1”が3つで奇数になる。しかし、[P<H0>]=
0なので、エラーが検出できる。その結果エラーカウン
タ13は1カウントアップされ、[CE]=1となる。
次に、エラーカウンタ13の読み出し要求に対して、キ
ャッシュメモリ2は、エラーカウンタ13の内容“1”
を出力する。
【0083】次に、図15でエラーカウンタ13のブロ
ック図について説明する。図において、13は図14で
示したエラーカウンタ、131は図6,図7と同様なカ
ウンタ回路であるアップカウンタ、105はアップカウ
ンタ131の内容をクリアーするリセット信号、135
はアップカウンタ131の内容をカウントアップするア
ップ信号、106はアップカウンタ131と接続され、
データ記憶部12の読み出した結果を伝えるキャッシュ
内部データバス、137はアップカウンタ131の内容
をキャッシュ内部データバス106に読み出すエラーカ
ウンタリード信号、13cは図13で示したパリティー
ビット15の読み出し結果を伝えるパリティービットラ
イン、13bは、キャッシュ内部データバス106とパ
リティービットライン13cとのXOR(イクシクルシ
ブ・オアー)をとるロジックで構成されたデータパリテ
ィーチェック回路、13aはデータパリティーチェック
回路13bの出力とイネーブル信号110の論理積をと
り、その結果をアップ信号135として出力するAND
ロジックである。ここで、イネーブル信号110はエラ
ー検出回数のカウントを制御するものであり、イネーブ
ル信号110が“H”のとき、カウントを行い、“L”
のときカウントを行わない。イネーブル信号110は主
に、データ処理装置1より出力され、データ処理装置1
の出力を直接使用する場合とキャッシュメモリの内部レ
ジスタにデータ処理装置1から書き込みを行い、内部レ
ジスタより出力する場合がある。
【0084】次に、図15の回路の動作について説明す
る。アップカウンタ131の内容をクリアーするため
に、リセット信号105をアクティブにする。その結
果、[CE]=0となる。アップカウンタ135の内容
が1増加させるには、アップ信号135をアクティブに
する。その結果[CE]=[CEn-1 ]+1となる。こ
こで、[n-1 ]とは、ひとつ前の状態を示す。次にアッ
プ信号135をアクティブにするには、データパリティ
ーチェック回路13bが1を出力し、かつイネーブル信
号110がアクティブなった時である。そして、データ
パリティーチェック回路13bが1を出力するときは、
キャッシュ内部データバス106とパリティービットラ
イン13cのXORを取った結果による。ここで、XO
R論理について簡単に説明する。AとBのXORを取る
場合、AとBがともに“0”もしくは“1”の時、論理
結果“0”、Aが“0”かつBが“1”のとき、もしく
はAが“1”かつBが“0”のときは論理結果“1”と
なる。次に、アップカウンタ131を読み出すときは、
エラーカウンタリード信号137をアクティブにする。
アップカウンタ131は、エラーカウンタリード信号1
37を受けて、キャッシュ内部データバス106に内容
を出力する。以上のように、エラーカウンタを備えたキ
ャッシュメモリについて示した。
【0085】次に、カウンタの値をいかに評価するかに
ついて説明する。パリティーエラーの回数が多い場合、
システムの使用環境を変える必要がある。また、やはり
エラーの起こり易い環境で使用しなければならないとき
は、パリティービットの数を増やして、1パリティービ
ット当りにみるメモリビットの数を減らすことによっ
て、エラー訂正を可能にして、ソフトエラーに強い、キ
ャッシュメモリを得る必要がある。
【0086】次に、第1実施例で示した様なシステムに
おいて、キャッシュメモリがデータを取り込む際、記憶
する領域が全て有効なデータで埋めつくされている場合
にそのデータを排除した回数をカウントする第8実施例
によるキャッシュメモリについて説明する。図1はこの
発明を実現するための最も基本的なキャッシュシステム
について示した図である。図において、1はデータ処理
装置、2は記憶領域に情報を記憶する有効な情報を排除
してまで記憶したことをカウントするカウンタを持ち、
データ処理装置1のメモリアクセスを緩衝するキャッシ
ュメモリ、3はこのシステムの主記憶装置である主メモ
リである。
【0087】次に図1のキャッシュシステムの動作につ
いて説明する。データ処理装置1は主メモリ3に情報を
取りに行く。この時、緩衝記憶装置であるキャッシュメ
モリ2は、データ処理装置1のアクセスした番地のデー
タが存在する時は、主メモリ3に代わって情報を出力す
る。しかし、キャッシュメモリ2がキャッシュミスを起
こした場合は、主メモリ3にデータを取りに行き、主メ
モリ3の情報を記憶する。この時、データを記憶する
際、以前記憶した情報を上書きすることとなった場合、
キャッシュメモリ2内部のカウンタの値を1つ増加す
る。この様にキャッシュメモリ2で記憶できる容量分を
越えた状態でのキャッシュミスの回数を計数する事によ
って、アプリケーションによって、キャッシュメモリの
容量の妥当性が判断でき、あとどれくらいの容量がキャ
ッシュメモリに必要か判断できる。また、第1実施例の
データ数カウンタの値も含めて考慮すると、キャッシュ
メモリの容量をエントリ数を増やすべきか、アソシアテ
ィビティを増やすのか判断できる(エントリ、アソシア
ティビティについては、第7実施例を参照)。
【0088】次に、図16及び図17において、キャッ
シュメモリがデータを取り込む際、記憶する領域が全て
有効なデータで埋めつくされている場合をカウントする
ため、キャッシュメモリがデータを取り込む際、記憶す
る領域が全て有効なデータで埋めつくされている場合を
検出する回路について説明する。図16において、2は
キャッシュメモリ、11はキャッシュメモリ2内の番地
情報を記憶しておくアドレス記憶部、12はアドレス記
憶部11に記憶された番地の内容を記憶しておくデータ
記憶部、14はデータ記憶部12に記憶されている情報
が有効であるか、無効であるかを示す有効ビット、13
は有効ビット14がセットされている時にアドレス記憶
部11に新たなデータが記憶されたことをカウントする
データ排除カウンタである。
【0089】次に図16に示すキャッシュメモリ2の動
作を説明する。始めにリセット信号が入力され、キャッ
シュメモリ2内の全有効ビットが0となる。その後、デ
ータ処理装置1の処理が進行すると、データ処理装置1
が要求するデータがデータ記憶部12内部の当該領域に
保持される。同時に有効ビットも1へと変化する。デー
タ記憶部12内部の当該領域がすべき有効なデータで占
められた場合、有効ビットセル情報が出力され、当該領
域がフル状態となったことを外部に伝達する。フル状態
になったのち、さらにキャッシュミスが起こったとき
は、キャッシュメモリ内部の記憶領域の値が有効である
にも関わらず、その有効データ格納領域に新たな情報、
即ち、より使用頻度が高いと思われる情報を上書きす
る。この動作の回数は、データ排除カウンタ13でカウ
ントされる。次に、図17において、23はキャッシュ
メモリがデータを取り込む際、記憶する領域が全て有効
なデータで埋めつくされている場合を検出するデータ排
除検出回路、111はデータ排除検出回路23に入力さ
れているアドレス記憶部書き込み信号、141はデータ
排除検出回路23に入力されている有効ビットセル情
報、201はデータ排除検出回路23に入力されている
キャッシュメモリ番地情報、135はデータ排除検出回
路23の出力でカウンタのカウントアップ要求をするア
ップ信号、23a〜dは、有効ビットセル情報141と
キャッシュメモリ番地情報201の論理積をとるAND
ロジック、23eはANDロジック23a〜dの出力の
論理和をとるORロジック、23fはORロジック23
eの出力とアドレス記憶部書き込み信号111の論理積
をとるANDロジックである。ANDロジック23fの
出力をアップ信号135とする。
【0090】次に図17のデータ排除検出回路の動作に
ついて説明する。キャッシュメモリがデータを取り込む
際、記憶する領域が有効なデータで埋められていない場
合、有効ビットセル情報141は“0”であり、アクセ
スされたキャッシュメモリ番地情報201が“1”にな
っても、ANDロジック23a〜23dは“0”を出力
する。ANDロジック23a〜23dの出力を受けOR
ロジック23eは“0”を出力する。ANDロジック2
3fはORロジック23eの出力結果とアドレス記憶部
書き込み信号111を受けアップ信号135を“0”の
状態を維持する。次に、キャッシュメモリ2がデータを
取り込む際、記憶する領域が有効なデータで埋められて
いる場合、有効ビットセル情報141は“1”であり、
アクセスされたキャッシュメモリ番地情報201が
“1”になると、ANDロジック23a〜23dの少な
くとも1つは“1”を出力する。ANDロジック23a
〜23dの出力を受けORロジック23eの出力結果と
アドレス記憶部書き込み信号111を受けアップ信号1
35を“1”の状態として、アクティブにする。
【0091】次に、図18において、キャッシュメモリ
がデータを取り込む際、記憶する領域の情報が記憶され
たとき以外にアクセスされていない事をカウントするカ
ウンタを備えたこの発明の第9実施例によるキャッシュ
メモリについて説明する。図18において、2はキャッ
シュメモリ、11はキャッシュメモリ2内の番地情報を
記憶しておくアドレス記憶部、12はアドレス記憶部1
1に記憶された番地の内容を記憶しておくデータ記憶
部、14はデータ記憶部12に記憶されている情報が有
効であるか、無効であるかを示す有効ビット、16は有
効ビット14がセットされてから一度でもアドレス記憶
部11の内容がヒットしたかを記録するワンスビット、
13はワンスビット16がセットされず、有効ビット1
4がセットされている時にアドレス記憶部11に新たな
データが記憶されたことをカウントするノンアクセスデ
ータ排除カウンタである。
【0092】次に図18に示すキャッシュメモリ2の動
作を図1システム構成の場合を想定して説明する。キャ
ッシュメモリ番地<H0>にアドレス記憶部11で[T
<H0>]=H0と、データ記憶部12で[D<H0
>]=aを記憶されると、有効ビット14で[V<H0
>]=1とする。次に、キャッシュメモリ番地<H1>
にアドレス記憶部11で[T<H1>]=H1,データ
記憶部12で[D<H1>]=bを記憶されると、有効
ビット14で[V<H1>]=1とする。データ処理装
置1が、番地<H0>に“A”という情報を主メモリ3
にライトアクセスした場合、キャッシュメモリ2は、ア
ドレス記憶部11の[T<H0>]=H0と、キャッシ
ュヒットするので、データ記憶部12の[D<H0>]
にAを記憶して、[D<H0>]=Aとする。ここで
は、ワンスビット16がセットされる。ここで、[O<
キャッシュメモリの番地>]と記述した場合はキャッシ
ュメモリの番地に対して、[T<キャッシュメモリの番
地>]でヒットかどうかを示し、“1”の時は少なくと
も一度ヒットした、“0”の時は一度もヒットしていな
いことを示す。この時のワンスビット16の状態は、
[O<H0>]=1,[O<H1>]=0となってい
る。
【0093】次に、データ処理装置1のリードアクセス
にキャッシュメモリ2がキャッシュミスを起こし、デー
タが排除される場合について説明する。まず、キャッシ
ュミスを起こしたので、アドレス記憶部11に新たな番
地を記憶するので[T<H0>]=H4となる。そして
データ記憶部12にも新たな情報を記憶する。この時、
ワンスビット16[O<H0>]=1、有効ビット14
[V<H0>]=1、となっているのでノンアクセスデ
ータ排除カウンタ13にカウントアップ要求を出さな
い。そして次に、ワンスビット16をリセットして[O
<H0>]=0とする。次のキャッシュミスで、アドレ
ス記憶部11に新たな番地を記憶するので、[T<H1
>]=H5となる。そしてデータ記憶部12にも新たな
情報を記憶する。この時、ワンスビット16[O<H1
>]=0、有効ビット14[V<H1>]=1、となっ
ているのでノンアクセスデータ排除カウンタ13にカウ
ントアップ要求を出す。ノンアクセスデータ排除カウン
タ13はカウントアップされる。
【0094】次に、図19を用いてノンアクセスデータ
排除カウンタのカウントアップ信号について説明する。
カウントアップ信号生成部54には、アドレス記憶部書
き込み信号111、ヒット信号241、有効ビットセル
情報141、ワンスビット情報161、キャッシュメモ
リ番地情報201が入力され、アップ信号135が出力
される。また、54a〜54dは有効ビットセル情報1
41、キャッシュメモリ番地情報201及びワンスビッ
ト情報161の論理積をとるANDロジック、54eは
ANDロジック54a〜54dの出力の論理和をとるO
Rロジック、54fはORロジック54eの出力とアド
レス記憶部書き込み信号111及びヒット信号241の
否定との論理積をとる ANDロジックである。ヒット
信号241の否定はインバータ54gで行われる。そし
て、カウントアップ信号生成部54では、キャッシュメ
モリ2がデータをキャッシュミスにより取り込む場合、
アドレス記憶部書き込み信号111が“H”、ヒット信
号241が“L”となる。例えば、キャッシュメモリ番
地情報201が、ANDロジック54aを有効とした場
合、その有効ビットセル情報141が“H”、すなわち
有効であればワンスビット情報161が“L”(保持後
一度も参照されていない)ならばアップ信号135が出
力され、ワンスビット情報161が“H”(保持後少な
くとも一度は参照された)ならばアップ信号135が出
力されない。
【0095】この様にノンアクセスデータが多く排除さ
れるデータはキャッシングされる際、有効なデータを排
除し、キャッシュヒット率をさげる要因となる。この様
なデータはノンキャッシュブルに設定することによって
ヒット率を下げずに済むのでノンアクセスデータ排除カ
ウンタ13で有効な評価ができたことになる。
【0096】次に、上記の様なデータをノンキャッシュ
ブルに設定するのではなく、図20に示す様な簡単な緩
衝レジスタをキャッシュメモリ内に設ける方法を用いた
この発明の第10実施例について説明する。これはノン
キャッシュブルの設定がデータ処理装置に依存し、キャ
ッシュメモリ内に設定できない場合の対策の一手段であ
り、一つのアドレスに対して、複数のデータを記憶する
構成を採ったキャッシュメモリについて説明する。図2
0において、2はキャッシュメモリ、11はキャッシュ
メモリ2内の番地情報を記憶しておくアドレス記憶部、
12はアドレス記憶部11に記憶されている番地の内容
を記憶しておくデータ記憶部、14はデータ記憶部12
に記憶されている情報が有効であるか、無効であるかを
示す有効ビット、17はキャッシュミスした場合にデー
タ処理装置がアクセスした番地を記憶しておくアドレス
バッファ、18はアドレスバッファ17に記憶された番
地に対応する主メモリの内容を記憶するためのデータバ
ッファである。ここでは、アドレスバッファ17及びデ
ータバッファ18には、説明を簡単にするため一組の情
報しか記憶されない構成としたが、複数組記憶されるよ
うにすることも可能である。
【0097】次に図20に示すキャッシュメモリ2の動
作を図1に示したシステム構成の場合を想定して説明す
る。キャッシュメモリの内容としては、キャッシュメモ
リ番地<H0>にアドレス記憶部11で[T<H0>]
=H0,データ記憶部12で[DL <H0>]=aと
[DR <H0>]=b(ここで、[DL <キャッシュメ
モリ内の番地>]のL はデータ記憶部12の2つのブロ
ックの内左側を示し、Rは右側を示す)、有効ビット1
4で[V<H0>]=1とする。さらに、キャッシュメ
モリ番地<H1>にアドレス記憶部11で[T<H1
>]=H2,データ記憶部12で[DL <H1>]=c
と[DR <H1>]=d、有効ビット14で[V<H1
>]=1とする。この状態で、データ処理装置1が、番
地<H8>で主メモリ3にリードアクセスした場合、キ
ャッシュメモリ2は、アドレス記憶部11に番地<H8
>が存在しないのでキャッシュミスする。そこでキャッ
シュメモリ2は、アドレスバッファ17にH8を記憶す
る。アドレスバッファ17の記憶内容を表現する場合、
[AB]=H8と表現する。
【0098】次に<H8>に対応する主メモリ3の内容
を読みに行き、データバッファ18の左側に記憶する。
ここで内容がiとし、[DBL ]=iと表現する。次
に、キャッシュメモリ2は、[AB]+1の番地である
<H9>の主メモリ3の内容即ちjを、データバッファ
18の右側に記憶する。この事を[DBR ]=jと表現
する。この様に[AB]=H8と記述することは番地<
H9>でのアクセスについてもヒットすることになる。
次に、データ処理装置1が、番地<H2>で主メモリ3
にリードアクセスした場合、キャッシュメモリ2は、ア
ドレス記憶部11に番地<H2>が[T<H1>]=H
2と存在するのでキャッシュヒットする。そして、キャ
ッシュメモリ2はデータ処理装置1にcを出力する。
【0099】次に、データ処理装置1が、番地<H4>
で主メモリ3にリードアクセスした場合、キャッシュメ
モリ2は、アドレス記憶部11に番地<H4>が存在し
ないのでキャッシュミスする。そこでキャッシュメモリ
2は、アドレスバッファ17にH4を記憶する。[A
B]=H4とする。次に<H8>に対応する主メモリ3
の内容を読みに行き、データバッファ18に[DBL
=eと記憶する。次に、キャッシュメモリ2は、[A
B]+1の番地である<H5>の主メモリ3の内容を、
データバッファ18に[DBR ]=fを記憶する。次
に、データ処理装置1が、番地<H2>で主メモリ3に
リードアクセスした場合、キャッシュメモリ2は、アド
レス記憶部11に番地<H2>が[T<H1>]=H2
と存在するのでキャッシュヒットする。そして、キャッ
シュメモリ2はデータ処理装置1にcを出力する。
【0100】次に、データ処理装置1が、番地<H5>
で主メモリ3にリードアクセスした場合、キャッシュメ
モリ2は、アドレスバッファ17が[AB]=H4を記
憶しているのでヒットし、データバッファ18の内容
[DBR ]=fを出力する。この後、キャッシュメモリ
2は、[AB]の内容をアドレス記憶部11に記憶し、
データバッファ18の内容をデータ記憶部12に記憶す
る。当然ながら、有効ビット14も“1”とする。な
お、アドレスバッファ17の内容が有効か否かという判
別は、主メモリ3に割り当てられていない番地をアドレ
スバッファ17の初期値とすることで実現可能である。
但し、アドレスバッファ17が無効であるのは動作開始
直後のみである。この様に、データ記憶部のキャッシン
グを行う際に一度バッファする方法を示した。また、キ
ャッシュメモリ2の記憶領域がフル状態となったとき
に、書き換える領域を示す情報を得るときに図18で示
した様なワンスビットを用いて優先的に書き換える方法
も考えられる。以上、キャッシュメモリ内に、一度しか
参照されないデータが長く留まることを排除する手法を
示した。
【0101】次に、第1実施例で示した空検出回路の他
の利用法であるこの発明の第11実施例について説明す
る。図21はアソシアティビティが2のセットアソシア
ティブ方式を採用したキャッシュメモリのブロック構成
図である。図21において20はデータ処理装置からア
クセスされる番地で上位アドレス20a、中位をアドレ
ス20b、下位をアドレス20cとする。11はキャッ
シュメモリ内の番地情報の一部を記憶しておくアドレス
記憶部、12はアドレス記憶部11に記憶された番地の
内容を記憶しておくデータ記憶部、14はデータ記憶部
12に記憶されている情報が有効であるか、無効である
かを示す有効ビット、24はデータ記憶部12の内、ア
ドレス20cでワードを選択するワードセレクタ、26
はコンパレータ25の結果に応じて、ワードセレクタ2
4の出力を選択するウェイセレクタ、106はウェイセ
レクタ26の出力先であるキャッシュ内部データバス、
19は図8に示した空検出回路22を用いて、アドレス
記憶部11とデータ記憶部12とコンパレータ25をア
クティブにする部分稼働回路である。
【0102】ここで、セットアソシアティブ方式につい
て簡単な説明をする。アドレス記憶部11で番地を記憶
する場合、番地の全てを記憶するのではなく、番地の一
部分を記憶する。しかし、番地情報は、全てが揃って意
味をなすものであって、それを実現するために、番地の
中位のアドレス20bによってアドレス記憶部11の記
憶場所を規定する。この規定された場所をエントリと呼
び、番地の中位のアドレス20bをエントリアドレスと
呼ぶ。そして、このエントリアドレスによって記憶でき
るアドレス20aの数を増やすことが連想率(アソシア
ティビティ)が高いといえる。図21で示すキャッシュ
メモリは同じエントリアドレスで2つのアドレス20a
を記憶でき、2セットアソシアティブ方式キャッシュメ
モリという。そして、キャッシュメモリ内の構成要素に
関して、例えばアドレス記憶部11aという様に同じ添
え字が一つのセットをなし、これをウェイと表現する。
【0103】次に図21のキャッシュメモリの動作につ
いてキャッシュヒットを例に取って説明する。まずアド
レス記憶部11aのエントリ0には[H1]が記憶され
ていて([Ta<H0>]=H1と表現する、添え字a
はアドレス記憶部11aを指し、添え字がbの場合はア
ドレス記憶部11bを指す)、アドレス記憶部11bは
何も記憶されていない。つまり有効ビット14bは全て
のエントリにわたって0である。データ記憶部12a
は、[DL <H0>]=a、[DR <H0>]=bと記
憶されている。まず、データ処理装置1から番地<B0
001001>でリードアクセスされると、全アドレス
ビット中、上位4ビットをアドレス20aとして“H
1”、中位2ビットをアドレス20bとして“H0”、
下位1ビットをアドレス20cとして“H1”と番地を
分割する。アドレス20aは2つのコンパレータ25に
送られる。アドレス20bはデコーダ53に送られ、エ
ントリアドレス<H0>を選択する。エントリアドレス
を受けて、アドレス記憶部11は[Ta<H0>]=H
1をコンパレータ25aに送る。そして、[Ta<H0
>]に対応するデータ記憶部12の内容をワードセレク
タ24aに送る。
【0104】一方、アドレス記憶部11bはデコーダ5
3からのエントリアドレスを受けるが、有効ビット14
bが全て“0”であるので、空検出回路を備えた部分稼
働装置19bが働きデータ記憶部12bの読みだしは行
なわない。そして、部分稼働装置19bによって、デー
タ記憶部12bは起動されない。またコンパレータ25
bも、起動されない。そして、ワードセレクタ24aは
データ記憶部12aのうち、アドレス20cを受けて、
[DR <H0>]=bをウェイセレクタ26に送る。そ
して、コンパレータ25aは、アドレス20aからの
“H1”とアドレス記憶部11aからの“H1”を比較
して、一致するのでキャッシュヒットとなり、ウェイセ
レクタ26にデータ記憶部12aを選ぶ様に信号を送
る。ウェイセレクタ26はコンパレータ25aからの情
報に基づいて、ワードセレクタ24aの出力“b”をキ
ャッシュ内部データバス106に“b”を出力する。
【0105】この様に、部分稼働回路19を用いること
によって、記憶領域に情報が記憶されていないアドレス
記憶部11とデータ記憶部12を動かさないので、消費
電力の節約になる。
【0106】次に、各ブロックの回路例を示す。図22
は、デコーダ53の回路例を示す図である。図23は、
アドレス記憶部11と有効ビット14と部分稼働回路1
9の1セット分を示す。図24はデータ記憶部12とワ
ードセレクタ24の1セットを示す。図25はコンパレ
ータ25とウェイセレクタ26を示す。図22〜25に
おいて、信号線の番号で、同じ番号の場合は、同じ信号
を示す。
【0107】図22において、入力をアドレス20b、
即ち信号A4,A5をインバータ53a,53bとAN
Dロジック53c〜53fで構成されたデコーダ53で
デコードしてエントリアドレスE0〜E3を出力する。
【0108】図23は、エントリ信号E0〜E3を入力
として、アドレス記憶部11のメモリセル11CLを読
み出す場合、有効ビット14がひとつでもセットされて
いれば部分稼働回路19の空検出回路22がハイレベル
を出力する。ここで、空検出回路22は、図8で示した
空検出回路とは出力を反転させている。空検出回路22
の出力とエントリアドレスE0〜E3を受けて、アドレ
ス記憶部11のメモリの1ラインを読み出し、センスア
ンプ11SAで増幅してT0〜T3として出力する。ま
た、空検出回路22の出力結果がローレベルの場合はメ
モリの読み出しも行なわず、センスアンプ11SAも起
動しないので、消費電力の低減化が図れる。
【0109】図24においては、データ記憶部12aの
読み出しの際に、部分稼働回路の出力に応じて、ワード
ラインとセンスアンプ11SAがアクティブになる。そ
して、アドレス20cによって、第1ワードデータと第
2ワードデータがワードセレクタ24aによって選択さ
れ、データ記憶部12aの1ワードとして出力される。
データ記憶部12bについてもデータ記憶部12aと同
様のことがいえる。図25において、コンパレータ25
a,25bはアドレス記憶部11からの出力結果T0〜
T3とアドレス20aとをビット毎比較して、一致して
いるときは有効ビット14の出力Vと部分稼働回路19
の出力AEの結果に応じて、ウェイセレクタ26に信号
を送る。そして、ウェイセレクタ26は、コンパレータ
の出力とセレクタイネーブル信号SLEに応じて、ワー
ドセレクタの出力を選択して、キャッシュ内部データバ
ス106に出力する。
【0110】次に、図21を用いて、この発明の第12
実施例によって、部分稼働回路をより有効的に利用する
ための方法について説明する。これは、部分稼働回路1
9a,19bがアクセスする必要のない部分をアクセス
させない事によって消費電力の低減を図っているので、
その可能性をあげるために、データのマージを行なう。
つまり、ある程度キャッシュメモリ2が動作すると、有
効な情報がアドレス記憶部11aと11bに散在するよ
うになる。この時、可能な限り、アドレス記憶部11b
のアドレスをらアドレス記憶部11aにシフトし、アド
レス記憶部11bの内容を無効にする。
【0111】例えば、アドレス記憶部11aの番地<H
0>と<H2>は有効なデータが記憶されていて([V
a<H0>]=1、[Va<H1>]=0、[Va<H
2>]=1、[Va<H3>]=0である)、アドレス
記憶部11bの番地<H1>に有効なデータが記憶され
ている([Vb<H0>]=0、[Vb<H1>]=
1、[Vb<H2>]=0、[Vb<H3>]=0であ
る)ときは、アドレス記憶部11bの[Tb<H1>]
の値をアドレス記憶部11aの[Ta<H1>]に写
し、[Va<H1>]=1、[Vb<H1>]=0とす
る。そして、データ記憶部12も同様に[Db<H1
>]の値を[Da<H1>]に写す。
【0112】この様にすることによって、アドレス記憶
部11bは、アクセスに対して、起動されないので、消
費電力の低減ができる。この様に、データのシフトの可
能性を調べ、データのシフトを行なう回路をマージ回路
と称す。
【0113】マージ回路の動作例として、図26のフロ
ーチャートを用いて説明する。エントリカウンタを持っ
た3セットアソシアティブ方式を用いたキャッシュメモ
リにおいてのフローである。図においてカウンタの内容
を表現する場合は、[C]とする。また、←は代入を意
味する。そして、長方形は操作を意味し、ひし形は判断
を意味する。
【0114】マージ回路が動作し始めると、まずカウン
タに初期値を代入する(ステップS1)。図において
“[C]←0”である。そして、カウンタで示された内
容にエントリのウェイaの有効ビットが“0”であるか
を判断する(ステップS2)。図において、“[Va<
[C]>]=0”で示す。このとき、YESになると次
に、カウンタで示された内容のエントリのウェイbの有
効ビットが“1”であるか判断する(ステップS3)。
図において、“[Vb<[C]>]=1”で示す。そこ
で、YESであると、ウェイbの内容をウェイaに写し
(ステップS4)、ウェイaの有効ビットをセットして
“1”にし(ステップS5)、ウェイbの有効ビットを
リセットして“0”とする(ステップS6)。図におい
て、“[Ta<[C]>]←[Tb<[C]>]、[D
a<[C]>]←[Db<[C]>]、[Va<[C]
>]←[Vb<[C]>]←0”で示す。そして次に、
カウンタで示された内容のエントリのウェイbの有効ビ
ットが“0”であるか判断する(ステップS7)。図に
おいて、“[Vb<[C]>]=1”で示す。このと
き、YESになると次に、カウンタで示された内容のエ
ントリのウエイcの有効ビットが“1”であるか判断す
る。図において、“[Vc<[C]>]=1”で示す
(ステップS8)。そこで、YESであると、ウェイc
の内容をウェイbに写し(ステップS9)、ウェイbの
有効ビットをセットして“1”にし(ステップS1
0)、ウェイcの有効ビットをリセットして“0”で示
す(ステップS11)。そして、次にカウンタの内容を
1増加する(ステップ12)。図において、“[C]←
[C]+1”で示す。最後にカウンタの内容がエントリ
の最大を越えているか判断し(ステップS13)、越え
てなければ、カウンタの初期値を代入して次へ進む。そ
して、越えていれば終了する。図において、“[C]>
Max”で示す。ここで、今回説明していなかったが、
リプレイス情報の更新も行なう方が望ましい。
【0115】次に、上記マージ回路を用いた有効なこの
発明の第13実施例を図27に示す。図27は、第3実
施例で説明した属性毎にカウントするカウンタを備えた
キャッシュメモリ2である。図において、31はアドレ
ス記憶部とデータ記憶部と有効ビット等の1セットを持
つ最初のウェイであるウェイa、35はウェイa31が
I−Dに対して動作するかD−Dに対して動作するかを
示すウェイaの属性ビット、32はアドレス記憶部とデ
ータ記憶部と有効ビット等の1セットを持つ第2のウェ
イであるウェイb、36はウェイb32がI−Dに対し
て動作するかD−Dに対して動作するかを示すウェイb
の属性ビット、33はアドレス記憶部とデータ記憶部と
有効ビット等の1セットを持つ第3のウェイであるウェ
イc、37はウェイb33がI−Dに対して動作するか
D−Dに対して動作するかを示すウェイcの属性ビッ
ト、34はアドレス記憶部とデータ記憶部と有効ビット
等の1セットを持つ第4のウェイであるウェイd、38
はウェイd34がI−Dに対して動作するかD−Dに対
して動作するかを示すウェイdの属性ビット、132は
第3実施例で説明したI−Dカウンタ、131は第3実
施例で説明したD−Dカウンタ、39は時間を計測する
タイマである。カウントアップ信号については、図9及
び図10に示した第3実施例と同様である。
【0116】次に図27の動作について説明する。ウェ
イaの属性ビット35とウェイbの属性ビット36はD
を示し、ウェイa31とウェイb32をD−D対応にす
る。ウェイcの属性ビット37とウェイbの属性ビット
38はIを示し、ウェイc33とウェイb34をI−D
対応にする。そして、キャッシュメモリ2が、データ処
理装置1のアクセスの属性に対して、I−Dカウンタ1
32とD−Dカウンタ131をカウントアップしてい
く。タイマ39で設定された時間になると、I−Dカウ
ンタ132とD−Dカウンタ131とを読み出し比較す
る。この時[CD]=B1000、[CI]=B110
1とする。そして、図6に示した、ピークカウンタのカ
ウントアップ条件を検出する回路で用いている様にイク
シクルシブオアー回路を用いて、1となっている桁の最
大値を比較すると共に4桁目となっている。つまりこの
アプリケーションでは、この様な属性の割振りは正しい
と判断する。そして、各ウェイの属性ビット35〜38
は変更しない。
【0117】次に異なったアプリケーションが実行され
ているとき、タイマ39で設定された時間になると、I
−Dカウンタ132とD−Dカウンタ131とを読み出
し比較する。この時[CD]=B0101、[CI]=
B1101とする。そして、1となっている桁の最大値
を比較すると[CI]は4桁目、[CD]は3桁目とな
っている。つまりこのアプリケーションでは、この様な
属性の割振りは正しくなく、割振りをし直す。
【0118】まずこの時、マージ回路を用いて、ウェイ
b32の内容をウェイa31に移動させる。ウェイbの
全情報が移動できない場合は、有効データであっても無
効化してもよく、また無効化せず、属性変更不可と判断
してもよい。そして、ウェイbの属性を変更するなら
ば、属性ビット36をIに書き換える。この様にする事
によって、アプリケーションに特化した状態に変更され
る。しかもマージ回路を用いているため、データの有効
利用が図れている。
【0119】次に、ライトスルーを行なうキャッシュメ
モリを用いたシステムにおいて、キャッシュメモリがデ
ータ処理装置のライトアクセスのカウントを行なう場合
の第14実施例について説明する。ライトスルーとは、
データ処理装置がライトを行なった時、キャッシュメモ
リにそのデータがキャッシングされていようといまい
と、必ず主メモリにライトを行なう事をいう。
【0120】図2はこの発明の第14実施例によるキャ
ッシュメモリを用いた最も基本的なキャッシュシステム
について示した図である。図において、1はデータ処理
装置、2はデータ処理装置1のライトアクセスの回数を
カウントするカウンタを備えたキャッシュメモリ、3は
このシステムの主記憶装置である主メモリ、4はキャッ
シュメモリとデータ処理装置1を主メモリをつなぐバス
ドライバ回路、5はバスドライバ回路4を起動するキャ
ッシュミス信号である。
【0121】次に、図2のシステムの動作について説明
する。最初、データ処理装置1はキャッシュメモリ2に
データを読みにいく。この時キャッシュメモリ2は1度
もデータの取り込みを行っていないのでアクセスされた
データは存在しないのでキャッシュミスを起こす。そこ
でキャッシュメモリ2はキャッシュミスを起こしたの
で、主メモリ3へ、データをアクセスしに行くため、バ
スドライバ回路4にキャッシュミス信号5を出力し、ア
ドレス等を主メモリ3に出力する。アクセスされた主メ
モリ3はアドレスをデコードし、そしてアクセスされた
データをキャッシュメモリ2に出力する。そして、デー
タをデータ処理装置1へ渡す。次に、データ処理装置1
が、データのライトアクセスを行うと、キャッシュメモ
リ2はカウンタをインクリメント(内容を1増加)す
る。そして、キャッシュメモリ2は、データがキャッシ
ングされていようとされていまいと、バスドライバ回路
4を起動する。そして、データ処理装置1は主メモリ3
にデータのライトを行なう。この時キャッシュメモリ2
は、キャッシュヒットするとデータを書き換える。
【0122】このようにある程度処理を実行した後、キ
ャッシュメモリ2内のカウンタを読みだす。その結果、
実行したアプリケーションのライトアクセスの頻度がわ
かる。発明が解決しようとする課題で説明した様に、ラ
イトアクセスの頻度が高いとキャッシュメモリの容量を
増やしてもシステム全体の性能は上がらない。逆にキャ
ッシュメモリの容量を減らしても性能は下がらないの
で、コストの節減が出来る。
【0123】次に、キャッシュメモリ2のカウンタ構成
について、図28を用いて説明する。図28において、
2は図2で示したキャッシュメモリ、131はリードア
クセスをカウントするためのリードカウンタ、132は
ライトアクセスをカウントするためのライトカウンタ、
105はリードカウンタ131とライトカウンタ132
の内容をクリアー要求するためのリセット信号、133
はリードカウンタ131の内容をカウントアップするた
めのリードカウンタアップ信号、134はライトカウン
タ132の内容をカウントアップするためのライトカウ
ンタアップ信号、137はリードカウンタ131の内容
を読み出すためのリードカウンタリード信号、138は
ライトカウンタ132の内容を読み出すためのライトカ
ウンタリード信号、106はリードカウンタ131とラ
イトカウンタ132の内容をキャッシュメモリ2から出
力するためのキャッシュメモリ内部データバスである。
ここでカウンタの回路については、図6,7と同様なの
で図示を省略する。
【0124】次に図28に示したキャッシュメモリの動
作について説明する。カウントを開始する前に、カウン
タのリセットを行なうためにリセット信号105をアク
ティブにする。リードカウンタ131とライトカウンタ
132は内容を0にする。ここで、リードカウンタ13
1の内容を示すときは[CR]と記述し、ライトカウン
タ132の内容を示すときは[CW]と記述する。つま
り、リセット信号105によって、それぞれのカウンタ
は[CR]=0,[CW]=0となる。データ処理装置
1からリードアクセスを受けると、リードカウンタアッ
プ信号133がアクティブになりリードカウンタ131
の内容はカウントアップされ、[CR]=1となる。次
に、データ処理装置1からライトアクセスを受けると、
ライトカウンタアップ信号134がアクティブになりラ
イトカウンタ132の内容はカウントアップされ、[C
W]=1となる。
【0125】次に、カウンタの内容を読み出す時には、
リードカウンタリード信号137をアクティブにする。
リードカウンタ131はキャッシュ内部データバス10
6に[CR]=1より1を出力する。そして、ライトカ
ウンタリード信号138をアクティブにする。ライトカ
ウンタ132はキャッシュ内部データバス106に[C
W]=1より1を出力する。
【0126】次に、コピーバックを行うキャッシュメモ
リを用いたシステムにおいて、キャッシュメモリがデー
タ処理装置のライトアクセスに対してヒットした回数を
カウントする場合の第15実施例について説明する。コ
ピーバックとは、データ処理装置がライトを行った時、
キャッシュメモリにそのデータがキャッシングされてい
た場合、主メモリにライトを行わず、キャッシュメモリ
のみを書換え、そのデータがキャッシュメモリから排除
されるときにキャッシュメモリが主メモリに書き戻す方
式をいう。
【0127】図1はこの発明の第15実施例によるキャ
ッシュメモリを用いた最も基本的なキャッシュシステム
について示した図である。図において、1はデータ処理
装置、2はデータ処理装置1のライトアクセスの場合ヒ
ットする回数をカウントするカウンタを備えたキャッシ
ュメモリ、3はこのシステムの主記憶装置である主メモ
リである。
【0128】次に、図1に示したシステムの動作につい
て説明する。最初、データ処理装置1はキャッシュメモ
リ2にデータを読みにいく。この時キャッシュメモリ2
は1度もデータの取込みを行っていないのでアクセスさ
れたデータは存在しないのでキャッシュミスを起こす。
そこでキャッシュメモリ2はキャッシュミスを起こした
ので、主メモリ3へ、データをアクセスしに行くためア
ドレス等を主メモリ3に出力する。アクセスされた主メ
モリ3はアドレスをデコードし、そしてアクセスされた
データをキャッシュメモリ2に出力する。そして、デー
タをデータ処理装置1へ渡す。次に、データ処理装置1
が、キャッシングしたデータのライトアクセスを行う
と、キャッシュメモリ2はカウンタをインクリメント
(内容を1増加)する。そして、キャッシュメモリ2は
データを書き換える。
【0129】このようにある程度処理を実行した後、キ
ャッシュメモリ2内のカウンタを読みだす。その結果、
実行したアプリケーションのキャッシュヒットしたライ
トアクセスの頻度がわかる。この情報は、キャッシュヒ
ットしなかったライトアクセスの回数が多ければ、キャ
ッシュヒットしなかったライトアクセスのデータを緩衝
するFIFO(First In First Ou
t)バッファの段数の最適化を図れる。ここでライトデ
ータの緩衝するFIFOバッファとは、主メモリへのア
クセスについては時間がかかるので、キャッシュメモリ
で一旦記憶しておき、データ処理装置をライトアクセス
から早く開放する。そして、キャッシュメモリに主メモ
リへのライトを代行させる方式である。
【0130】次に、キャッシュメモリ2のカウンタ構成
について、図29を用いて説明する。図29において、
2は図1で示したキャッシュメモリ、131はリードア
クセスをカウントするためのリードカウンタ、132は
ライトアクセスをカウントするためのライトカウンタ、
127はライトヒットのアクセスをカウントするための
ライトデータカウンタ、105はリードカウンタ131
とライトカウンタ132とライトデータカウンタ127
の内容をクリアー要求するためのリセット信号、133
はリードカウンタ131の内容をカウントアップするた
めのリードカウンタアップ信号、134はライトカウン
タ132の内容をカウントアップするためのライトカウ
ンタアップ信号、128はライトデータカウンタ127
の内容をカウントアップするためのライトデータカウン
タアップ信号、137はリードカウンタ131の内容を
読み出すためのリードカウンタリード信号、138はラ
イトカウンタ132の内容を読み出すためのライトカウ
ンタリード信号、129はライトデータカウンタ127
の内容を読み出すためのライトデータカウンタリード信
号、106はリードカウンタ131とライトカウンタ1
32とライトデータカウンタ127の内容をキャッシュ
メモリ2から出力するためのキャッシュメモリ内部デー
タバスである。ここでカウンタの回路については、図
6,7と同様なので図示を省略する。
【0131】次に図29に示したキャッシュメモリの動
作について説明する。カウントを開始する前に、カウン
タのリセットを行なうためにリセット信号105をアク
ティブにする。リードカウンタ131とライトカウンタ
132とライトデータカウンタ127は内容を0にす
る。ここで、ライトデータカウンタ127の内容を示す
ときは[CWH]と記述する。つまり、リセット信号1
05によって、それぞれのカウンタは[CR]=0,
[CW]=0,[CWH]=0となる。データ処理装置
1からリードアクセスを受けると、リードカウンタアッ
プ信号133がアクティブになりリードカウンタ131
の内容はカウントアップされ、[CR]=1となる。次
に、データ処理装置1からライトアクセスを受けると、
ライトカウンタアップ信号134がアクティブになりラ
イトカウンタ132の内容はカウントアップされ、[C
W]=1となる。このとき、キャッシュメモリ2内でラ
イトヒットが起こっているときは、ライトデータカウン
タアップ信号128がアクティブになりライトデータカ
ウンタ127の内容はカウントアップされ、[CWH]
=1となる。
【0132】次に、カウンタの内容を読み出す時には、
リードカウンタリード信号137をアクティブにする。
リードカウンタ131はキャッシュメモリ内部データバ
ス106に[CR]=1より1を出力する。そして、ラ
イトカウンタリード信号138をアクティブにする。ラ
イトカウンタ132はキャッシュメモリ内部データバス
106に[CW]=1より1を出力する。そして、ライ
トデータカウンタリード信号129をアクティブにす
る。ライトデータカウンタ127はキャッシュメモリ内
部データバス106に[CWH]=1より1を出力す
る。[CR]と[CW]と[CWH]の関係は、[C
R]/[CW]が小さくなると、FIFOバッファの段
数を増やす必要があり、[CWH]/[CW]の値が大
きくなるとFIFOバッファの段数を減らしてもシステ
ム性能の劣化は起こらないと判断できる。
【0133】
【発明の効果】以上説明したようにこの発明の緩衝記憶
装置は、アプリケーションに特化した緩衝記憶装置を用
いたシステムを構築するための評価基準を測定する機能
を備え、あるいは構築するための手段を備えたことによ
って、システム性能を上げ、システムコストを下げるこ
とができる。
【0134】請求項1記載の発明の緩衝記憶装置によれ
ば、アドレス記憶部に記憶されているアクセスされた番
地の数を、もしくはデータ記憶部に記憶されている主記
憶の内容の数をカウントし、カウントした結果を出力す
るデータ数カウンタを備えて構成されているので、アド
レス記憶部に記憶されている番地の総数、もしくはデー
タ記憶部に記憶されている内容の総数を計数して、緩衝
記憶装置の記憶領域がどれだけ使用されているか知るこ
とができ、システムの性能を下げずにコストを低減でき
るか否かを判断できるという効果がある。また、従来の
ヒット数により判断するような方法における誤った方向
への修正を行う危険性を未然に防ぐことができるという
効果がある。
【0135】請求項2記載の発明の緩衝記憶装置によれ
ば、アクセスされた主記憶装置の番地がアドレス記憶部
の全領域を埋めたことを、もしくはアクセスされた主記
憶装置の主記憶の内容がデータ記憶部の全領域を埋めた
ことを知らしめる検出信号を出力する空検出装置を備え
て構成されているので、アドレス記憶部、もしくはデー
タ記憶部の全領域に空の領域がなくなったタイミングを
検知することができ、アプリケーションのどの部分で、
緩衝記憶装置がオーバーフローしたか判断でき、あとど
れくらいの容量が緩衝記憶装置に必要か判断できるとい
う効果がある。
【0136】請求項3記載の発明の緩衝記憶装置によれ
ば、主記憶装置へのリードアクセスに対して、アクセス
された主記憶装置の番地がアドレス記憶部の記憶してい
る以前にアクセスされた番地の記憶領域上に、新たに記
憶された場合を、もしくはアクセスされた主記憶装置の
内容がデータ記憶部の記憶している以前にアクセスされ
た主記憶装置の内容の記憶領域上に、新たに記憶される
場合をカウントするデータ排除カウンタを備えて構成さ
れているので、データ排除カウンタにより、アドレス記
憶部の番地もしくはデータ記憶部の内容が書換えられた
総回数を検知することができ、緩衝記憶装置の容量の妥
当性が判断でき、あとどれくらいの容量が緩衝記憶装置
に必要か判断できるという効果がある。また、アドレス
記憶部に記憶されている番地の総数、もしくはデータ記
憶部に記憶されている内容の総数を含めて考慮すると、
緩衝記憶装置の容量増加の手段としてエントリ数を増や
すべきか、アソシアティビティを増やすのか判断できる
という効果がある。
【0137】請求項4記載の発明の緩衝記憶装置によれ
ば、リードアクセスに対して、内容有効記憶部が示す有
効または無効の指示にしたがって、有効と示されたm個
(m≦n)のアドレス記憶部、データ記憶部、もしくは
アドレス記憶部とデータ記憶部の両方の記憶領域を稼働
させ、少なくとも無効と示された(n−m)個のアドレ
ス記憶部またはデータ記憶部の記憶領域を稼働させない
部分稼働装置とを備えて構成されているので、部分稼働
装置により記憶領域に情報が記憶されていないアドレス
記憶部もしくはデータ記憶部を動かさないので、消費電
力の節約になるという効果がある。
【0138】請求項5記載の発明の緩衝記憶装置によれ
ば、主記憶装置へのリードアクセスの属性情報を判断
し、各リードアクセスに対して属性別に信号を出力する
属性情報判断回路と、属性情報判断回路の出力信号を属
性毎にカウントして、カウントした結果を属性毎に出力
する属性カウンタを備えて構成されているので、属性毎
のリードアクセス回数を検知することができ、属性に対
して緩衝記憶装置領域の適切な分配を行うための判断が
でき、そのことによりアプリケーションに特化した緩衝
記憶装置のシステムを適切に構築できるという効果があ
る。
【0139】請求項6記載の発明の緩衝記憶装置によれ
ば、データ処理装置のリードアクセス情報中にアドレス
記憶部に番地を記憶することを禁止する情報がある場
合、もしくはデータ記憶部に内容を記憶することを禁止
する情報がある場合、前記情報を検出してカウントし、
その結果を出力する禁止情報検出回路を備えて構成され
ているので、アドレス記憶部に番地を記憶することを禁
止する情報もしくはデータ記憶部に内容を記憶すること
を禁止する情報の総数を検知することができ、ノンキャ
ッシャブルアクセスの回数が少なければ、緩衝記憶装置
の容量を増やす等でヒット率を上げる事ができ、システ
ム全体の性能を上げれると判断できる。しかし、ノンキ
ャッシャブルアクセスの回数が多ければ、緩衝記憶装置
の容量を増やしても、ヒット率は上がらないと判断する
ことができるという効果がある。逆に、緩衝記憶装置の
容量を減らしても、ヒット率が下がらないので、システ
ムの性能を下げずに、コストを下げることが可能である
と判断ができるという効果がある。
【0140】請求項7記載の発明の緩衝記憶装置によれ
ば、データ処理装置のライトアクセスに対して、アドレ
ス記憶部にアクセスされた主記憶装置の番地が存在する
かしないかによらず、データ処理装置のライトアクセス
の回数を数え、その結果を出力するライトカウンタを備
えて構成されているので、データ処理装置が行うライト
アクセスの総数を検知することができ、実行したアプリ
ケーションのライトアクセスの頻度がわかり、ライトア
クセスの頻度が高いと緩衝記憶装置の容量を増やしても
システム全体の性能は上がらないと判断でき、逆に緩衝
記憶装置の容量を減らしてもシステム全体では性能は下
がらないと判断できるので、コストの節減が図れるとい
う効果がある。
【0141】請求項8記載の発明の緩衝記憶装置によれ
ば、主記憶装置へのライトアクセスに際して、アドレス
記憶部にアクセスされた主記憶装置の番地が存在する場
合のみ、ライトアクセスの回数を数えるライトデータカ
ウンタを備えて構成されているので、ライトアクセスを
行った時に緩衝記憶装置に情報が記憶されていた回数を
検知することができ、FIFOバッファの段数を増やす
必要性や、FIFOバッファの段数を減らしてもシステ
ム性能の劣化は起こらないと判断する事ができるという
効果がある。
【0142】請求項9記載の発明の緩衝記憶装置によれ
ば、アドレス記憶部にアクセスされた主記憶装置の番地
を記憶する際に、もしくはデータ記憶部にアクセスされ
た主記憶装置の内容を記憶する際に、前記内容を2進数
で表現した場合の1の数が奇数個か偶数個かのチェック
をするための入力チェック回路と、入力チェック回路の
結果を記憶するチェック記憶部と、主記憶装置へのアク
セスに対して、アドレス記憶部からアクセスされた主記
憶装置の番地の少なくとも一部を参照する際に、もしく
はデータ記憶部からアクセスされた主記憶装置の内容の
写しを参照する際に、前記内容を2進数で表現した場合
の1の数が奇数個か偶数個かのチェックをするための出
力チェック回路と、出力チェック回路の結果とチェック
記憶部の内部の比較を行い、前記比較の結果に応じて回
数を数えるチェックカウンタとを備えて構成されている
ので、パリティーエラーの回数を検知することができ、
パリティーエラーの回数が多い場合、システムの使用環
境を変える必要性が判断でき、またやはりエラーの起こ
り易い環境で使用しなければならないときは、パリティ
ービットの数を増やして、1パリティービット当りにみ
るメモリビットの数を減らすことによって、エラー訂正
を可能として、ソフトエラーに強い、緩衝記憶装置を得
ることが必要であるということを判断することができる
という効果がある。
【0143】請求項10記載の発明の緩衝記憶装置によ
れば、アドレス記憶部の第1のブロックに記憶された番
地と、アドレス記憶部の第1のブロックに対応するデー
タ記憶部の第1のブロックに記憶されたデータ記憶部の
内容をアドレス記憶部及びデータ記憶部の第2のブロッ
クに記憶するとともに、少なくともアドレス記憶部の第
1のブロックの番地、もしくはデータ記憶部の第1のブ
ロックの内容を無効化するマージ回路と、少なくとも前
記アドレス記憶部もしくは前記データ記憶部の読み出し
動作をブロック毎に制御する制御手段とを備えて構成さ
れているので、必要のないブロックは、制御手段により
動作させないようにすることができ、低消費電力化を図
れるという効果がある。
【0144】請求項11記載の発明の緩衝記憶装置によ
れば、リードアクセスに対して、アクセスされた主記憶
装置の番地がアドレス記憶部の記憶している以前にアク
セスされた番地の記憶領域上に、新たに記憶された時、
もしくは、アクセスされた主記憶装置の内容がデータ記
憶部の記憶している以前にアクセスされた主記憶装置の
内容の記憶領域上に、新たに記憶された時、以前にアク
セスされた前記主記憶装置の番地もしくは前記主記憶装
置の内容が、記憶領域内に取り込まれた以外にアクセス
されなかったものである場合にカウントするノンアクセ
スデータ排除カウンタを備えて構成されているので、ノ
ンアクセスの内容が排除される回数を検知することがで
きる。ノンアクセスのデータが多くキャッシングされる
際には、有効なデータを排除するので、キャッシュヒッ
ト率をさげる要因となる。そのようなデータをノンキャ
ッシャブルに設定することによってヒット率を下げずに
済むことが判断できるという効果がある。
【0145】請求項12記載の発明の緩衝記憶装置によ
れば、リードアクセスに対して、アクセスされた主記憶
装置の番地もしくは内容がアドレス記憶部の記憶してい
る番地情報もしくはデータ記憶部が記憶している内容情
報に存在しなかった時、アクセスされた主記憶装置の番
地及び内容を記憶し、新たなアクセスに対して、アクセ
スされた主記憶装置の番地及び内容が記憶されていた時
に、アクセスされた主記憶装置の番地をアドレス記憶部
に記憶し、アクセスされた主記憶装置の前記内容をデー
タ記憶部に記憶する緩衝バッファを備えて構成されてい
るので、ノンキャッシャブル設定のできないデータ処理
装置においてもヒット率を下げずにすみ、システムの性
能ダウンを防げるという効果がある。
【0146】請求項13記載の発明の緩衝記憶装置によ
れば、緩衝記憶装置に係るアクセスに対して、アドレス
記憶部及びデータ記憶部の記憶領域の対応の種類に応じ
て、前記対応の種類別に回数を数えるカウンタを備え、
カウンタがカウントした内容に応じて、アクセスに対す
るアドレス記憶部及びデータ記憶部の記憶領域の動作の
種類を変更するように構成されているので、アドレス記
憶部及びデータ記憶部の記憶領域の動作の種類を様々に
組み合わせて、対応の種類別にアクセスの回数をカウン
トすることができ、その結果に応じて構成の切り替えを
するので、アプリケーションに応じて、システム性能を
上げる事ができるという効果がある。
【図面の簡単な説明】
【図1】キャッシュメモリを用いた最も基本的なシステ
ム構成図である。
【図2】ライトスルー方式を採用しているキャッシュメ
モリを用いたシステム構成図である。
【図3】この発明の第1実施例によるキャッシュメモリ
を用いたシステム構成での記憶内容の遷移を示す図であ
る。
【図4】この発明の第1実施例によるデータ数カウンタ
を備えたキャッシュメモリのブロック図である。
【図5】この発明の第2実施例によるデータ数カウンタ
を備えたキャッシュメモリのブロック図である。
【図6】この発明の第2実施例によるデータ数カウンタ
回路図である。
【図7】この発明の第3実施例によるフル信号を出力す
るデータ数カウンタの回路図である。
【図8】この発明の第4実施例による空検出回路の一例
を示す回路図である。
【図9】この発明の第5実施例による属性カウンタを備
えたキャッシュメモリのブロック図である。
【図10】図9に示したカウンタアップ信号の発生ロジ
ック図である。
【図11】この発明の第6実施例によるI/O領域を含
んだキャッシュメモリシステムの構成図である。
【図12】図11に示したNCAカウンタを備えたキャ
ッシュメモリのブロック図である。
【図13】図12に示したNCAカウンタ及びCAカウ
ンタのアップ信号を生成する回路を示す図である。
【図14】この発明第7実施例によるエラーカウンター
を備えたキャッシュメモリのブロック図である。
【図15】図13に示したエラーカウンタのブロック図
である。
【図16】この発明の第8実施例によるキャッシュメモ
リのブロック図である。
【図17】図16に示したデータ排除検出回路の論理回
路図である。
【図18】この発明の第9実施例によるノンアクセスデ
ータ排除カウンタを備えたキャッシュメモリのブロック
図である。
【図19】図18に示したノンアクセスデータ排除検出
回路の論理回路図である。
【図20】この発明の第10実施例によるデータバッフ
ァを備えたキャッシュメモリのブロック図である。
【図21】この発明の第11及び第12実施例による2
セットアソシアティブキャッシュメモリのブロック図で
ある。
【図22】図21に示したデコーダの回路図である。
【図23】図21に示したアドレス記憶部と部分稼働回
路と有効ビットの回路図である。
【図24】図21に示したデータ記憶部の回路図であ
る。
【図25】図21に示したコンパレータとウェイセレク
タの回路図である。
【図26】この発明の第12実施例のマージ回路の動作
を示すフローチャートである。
【図27】この発明の第13実施例による属性カウンタ
を用いてアクティブ的に、ウェイの属性を変えるキャッ
シュメモリのブロック図である。
【図28】この発明の第14実施例によるライトカウン
タを備えたキャッシュメモリのブロック図である。
【図29】この発明の第15実施例によるライトデータ
カウンタを備えたキャッシュメモリのブロック図であ
る。
【図30】従来のキャッシュメモリの構成を示すブロッ
ク図である。
【符号の説明】
1 データ処理装置 2 キャッシュメモリ 3 主メモリ 4 バスドライバ回路 6 I/O回路 11 アドレス記憶部 12 データ記憶部 13 カウンタ 14 有効ビット 15 パリティービット 17 アドレバッファ 18 データバッファ 22 空検出回路 23 データ排除検出回路 54 ノンアクセスデータ排除検出回路 127,131,132 カウンタ

Claims (13)

    【特許請求の範囲】
  1. 【請求項1】 主記憶装置へのリードアクセスに対し
    て、アクセスされた前記主記憶装置の番地の少なくとも
    一部を記憶するための記憶領域を持つアドレス記憶部
    と、アクセスされた前記主記憶装置の内容の少なくとも
    一部を記憶するための記憶領域を持つデータ記憶部とを
    有し、前記主記憶装置から読みだされたデータを一時的
    に記憶する緩衝記憶装置であって、 前記アドレス記憶部に記憶されているアクセスされた番
    地の数を、もしくは前記データ記憶部に記憶されている
    主記憶の内容の数をカウントし、カウントした結果を出
    力するデータ数カウンタを備えた緩衝記憶装置。
  2. 【請求項2】 主記憶装置へのリードアクセスに対し
    て、アクセスされた前記主記憶装置の番地の少なくとも
    一部を記憶するための記憶領域を持つアドレス記憶部
    と、アクセスされた前記主記憶装置の内容の少なくとも
    一部を記憶するための記憶領域を持つデータ記憶部とを
    有し、前記主記憶装置から読みだされたデータを一時的
    に記憶する緩衝記憶装置であって、 アクセスされた前記主記憶装置の番地が前記アドレス記
    憶部の全領域を埋めたことを、もしくはアクセスされた
    前記主記憶装置の主記憶の内容が前記データ記憶部の全
    領域を埋めたことを知らしめる検出信号を出力する空検
    出装置を備えた緩衝記憶装置。
  3. 【請求項3】 主記憶装置へのリードアクセスに対し
    て、アクセスされた前記主記憶装置の番地の少なくとも
    一部を記憶するための記憶領域を持つアドレス記憶部
    と、アクセスされた前記主記憶装置の内容の少なくとも
    一部を記憶するための記憶領域を持つデータ記憶部とを
    有し、前記主記憶装置から読みだされたデータを一時的
    に記憶する緩衝記憶装置であって、 前記主記憶装置へのリードアクセスに対して、アクセス
    された前記主記憶装置の番地が前記アドレス記憶部の記
    憶している以前にアクセスされた番地の記憶領域上に、
    新たに記憶された場合を、もしくは前記アクセスされた
    前記主記憶装置の内容が前記データ記憶部の記憶してい
    る以前にアクセスされた前記主記憶装置の内容の記憶領
    域上に、新たに記憶される場合をカウントするデータ排
    除カウンタを備えた緩衝記憶装置。
  4. 【請求項4】 主記憶装置へのリードアクセスに対し
    て、前記主記憶装置の番地の一部である第1の部分番地
    がアクセスされた場合、前記第1の部分番地の一部であ
    る第2の部分番地をn個以上(n≧2)記憶するための
    記憶領域を持つアドレス記憶部と、前記第2の部分番地
    を記憶した前記アドレス記憶部に対応した記憶領域を持
    つデータ記憶部と、前記データ記憶部の情報が有効であ
    るか無効であるかを示す内容有効記憶部とを有し、前記
    主記憶装置から読みだされたデータを一時的に記憶する
    緩衝記憶装置であって、 前記リードアクセスに対して、前記内容有効記憶部が示
    す有効または無効の指示にしたがって、有効と示された
    m個(m≦n)の前記アドレス記憶部、前記データ記憶
    部、もしくは前記アドレス記憶部と前記データ記憶部の
    両方の記憶領域を稼働させ、少なくとも無効と示された
    (n−m)個の前記アドレス記憶部または前記データ記
    憶部の記憶領域を稼働させない部分稼働装置を備えた緩
    衝記憶装置。
  5. 【請求項5】 主記憶装置へのリードアクセスに対し
    て、アクセスされた前記主記憶装置の番地の少なくとも
    一部を記憶するための記憶領域を持つアドレス記憶部
    と、アクセスされた前記主記憶装置の内容の少なくとも
    一部を記憶するための記憶領域を持つデータ記憶部とを
    有し、前記主記憶装置から読みだされたデータを一時的
    に記憶する緩衝記憶装置であって、 前記主記憶装置へのリードアクセスの属性情報を判断
    し、各リードアクセスに対して属性別に信号を出力する
    属性情報判断回路と、 前記属性情報判断回路の出力信号を属性毎にカウントし
    て、カウントした結果を属性毎に出力する属性カウンタ
    と、を備えた緩衝記憶装置。
  6. 【請求項6】 主記憶装置へのリードアクセスに対し
    て、アクセスされた前記主記憶装置の番地の少なくとも
    一部を記憶するための記憶領域を持つアドレス記憶部
    と、アクセスされた前記主記憶装置の内容の少なくとも
    一部を記憶するための記憶領域を持つデータ記憶部とを
    有し、前記主記憶装置から読みだされたデータを一時的
    に記憶する緩衝記憶装置であって、 前記データ処理装置のリードアクセス情報中に前記アド
    レス記憶部に番地を記憶することを禁止する情報がある
    場合、もしくは前記データ記憶部に内容を記憶すること
    を禁止する情報がある場合、前記情報を検出してカウン
    トし、その結果を出力する禁止情報検出回路を備えた緩
    衝記憶装置。
  7. 【請求項7】 データ処理装置の主記憶装置へのリード
    アクセスに対して、アクセスされた前記主記憶装置の番
    地の少なくとも一部を記憶するための記憶領域を持つア
    ドレス記憶部と、アクセスされた前記主記憶装置の内容
    の少なくとも一部を記憶するための記憶領域を持つデー
    タ記憶部とを有し、前記主記憶装置から読みだされたデ
    ータを一時的に記憶する緩衝記憶装置であって、 前記データ処理装置のライトアクセスに対して、前記ア
    ドレス記憶部にアクセスされた前記主記憶装置の番地が
    存在するかしないかによらず、前記データ処理装置のラ
    イトアクセスの回数を数え、その結果を出力するライト
    カウンタを備えた緩衝記憶装置。
  8. 【請求項8】 主記憶装置へのリードアクセスに対し
    て、アクセスされた前記主記憶装置の番地の少なくとも
    一部を記憶するための記憶領域を持つアドレス記憶部
    と、アクセスされた前記主記憶装置の内容の少なくとも
    一部を記憶するための記憶領域を持つデータ記憶部とを
    有し、前記主記憶装置へのライトアクセスの際、前記ア
    ドレス記憶部にアクセスされた前記主記憶装置の番地が
    存在する場合には前記データ記憶部の内容を書換えた後
    に前記データ記憶部の内容に基づいて前記主記憶装置の
    内容を書き換え、前記主記憶装置から読みだされたデー
    タを一時的に記憶する緩衝記憶装置であって、 前記主記憶装置へのライトアクセスに際して、前記アド
    レス記憶部にアクセスされた前記主記憶装置の番地が存
    在する場合のみ、前記ライトアクセスの回数を数えるラ
    イトデータカウンタを備えた緩衝記憶装置。
  9. 【請求項9】 主記憶装置へのリードアクセスに対し
    て、アクセスされた前記主記憶装置の番地の少なくとも
    一部を記憶するための記憶領域を持つアドレス記憶部
    と、アクセスされた前記主記憶装置の内容の少なくとも
    一部を記憶するための記憶領域を持つデータ記憶部とを
    有し、前記主記憶装置から読みだされたデータを一時的
    に記憶する緩衝記憶装置であって、 前記アドレス記憶部にアクセスされた前記主記憶装置の
    番地を記憶する際に、もしくは前記データ記憶部にアク
    セスされた前記主記憶装置の内容を記憶する際に、前記
    内容を2進数で表現した場合の1の数が奇数個か偶数個
    かのチェックをするための入力チェック回路と、 前記入力チェック回路の結果を記憶するチェック記憶部
    と、 前記主記憶装置へのアクセスに対して、前記アドレス記
    憶部からアクセスされた前記主記憶装置の番地の少なく
    とも一部を参照する際に、もしくは前記データ記憶部か
    ら前記アクセスされた前記主記憶装置の内容の写しを参
    照する際に、前記内容を2進数で表現した場合の1の数
    が奇数個か偶数個かのチェックをするための出力チェッ
    ク回路と、 前記出力チェック回路の結果と前記チェック記憶部の内
    部の比較を行い、前記比較の結果に応じて回数を数える
    チェックカウンタと、を備えた緩衝記憶装置。
  10. 【請求項10】 主記憶装置へのリードアクセスに対し
    て、アクセスされた前記主記憶装置の番地の少なくとも
    一部を記憶するための記憶領域を持つ複数のブロックよ
    りなるアドレス記憶部と、アクセスされた前記主記憶装
    置の内容の少なくとも一部を記憶するための記憶領域を
    持つ前記アドレス記憶部のブロックに対応する複数のブ
    ロックより成るデータ記憶部とを有し、前記主記憶装置
    から読みだされたデータを一時的に記憶する緩衝記憶装
    置であって、 前記アドレス記憶部の第1のブロックに記憶された番地
    と、前記アドレス記憶部の第1のブロックに対応する前
    記データ記憶部の第1のブロックに記憶された前記デー
    タ記憶部の内容を前記アドレス記憶部及び前記データ記
    憶部の第2のブロックに記憶するとともに、少なくとも
    前記アドレス記憶部の第1のブロックの番地、もしくは
    前記データ記憶部の第1のブロックの内容を無効化する
    マージ回路と、 少なくとも前記アドレス記憶部もしくは前記データ記憶
    部の読み出し動作をブロック毎に制御する制御手段と、
    を備えた緩衝記憶装置。
  11. 【請求項11】 主記憶装置へのリードアクセスに対し
    て、アクセスされた前記主記憶装置の番地の少なくとも
    一部を記憶するための記憶領域を持つアドレス記憶部
    と、アクセスされた前記主記憶装置の内容の少なくとも
    一部を記憶するための記憶領域を持つデータ記憶部とを
    有し、前記主記憶装置から読みだされたデータを一時的
    に記憶する緩衝記憶装置であって、 リードアクセスに対して、アクセスされた前記主記憶装
    置の番地が前記アドレス記憶部の記憶している以前にア
    クセスされた番地の記憶領域上に、新たに記憶された
    時、もしくは、アクセスされた前記主記憶装置の内容が
    前記データ記憶部の記憶している以前にアクセスされた
    前記主記憶装置の内容の記憶領域上に、新たに記憶され
    た時、以前にアクセスされた前記主記憶装置の番地もし
    くは前記主記憶装置の内容が、記憶領域内に取り込まれ
    た以外にアクセスされなかったものである場合にカウン
    トするノンアクセスデータ排除カウンタを備えた緩衝記
    憶装置。
  12. 【請求項12】 主記憶装置へのリードアクセスに対し
    て、アクセスされた前記主記憶装置の番地の少なくとも
    一部を記憶するための記憶領域を持つアドレス記憶部
    と、アクセスされた前記主記憶装置の内容の少なくとも
    一部を記憶するための記憶領域を持つデータ記憶部とを
    有し、前記主記憶装置から読みだされたデータを一時的
    に記憶する緩衝記憶装置であって、 リードアクセスに対して、アクセスされた前記主記憶装
    置の番地もしくは内容が前記アドレス記憶部の記憶して
    いる番地情報もしくは前記データ記憶部が記憶している
    内容情報に存在しなかった時、アクセスされた前記主記
    憶装置の番地及び内容を記憶し、新たなアクセスに対し
    て、アクセスされた前記主記憶装置の番地及び内容が記
    憶されていた時に、アクセスされた前記主記憶装置の前
    記番地を前記アドレス記憶部に記憶し、前記アクセスさ
    れた主記憶装置の前記内容を前記データ記憶部に記憶す
    る緩衝バッファを備えた緩衝記憶装置。
  13. 【請求項13】 主記憶装置へのリードアクセスに対し
    て、アクセスされた前記主記憶装置の番地の少なくとも
    一部を記憶するための記憶領域を持つアドレス記憶部
    と、アクセスされた前記主記憶装置の内容の少なくとも
    一部を記憶するための記憶領域を持つデータ記憶部とを
    有し、前記主記憶装置から読みだされたデータを一時的
    に記憶する緩衝記憶装置であって、 前記緩衝記憶装置に係るアクセスに対して、前記アドレ
    ス記憶部及び前記データ記憶部の記憶領域の対応の種類
    に応じて、前記対応の種類別に回数を数えるカウンタを
    備え、 前記カウンタがカウントした内容に応じて、前記アクセ
    スに対する前記アドレス記憶部及び前記データ記憶部の
    記憶領域の動作の種類を変更する事を特徴とする緩衝記
    憶装置。
JP5125918A 1992-06-03 1993-05-27 緩衝記憶装置 Pending JPH0675857A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP5125918A JPH0675857A (ja) 1992-06-03 1993-05-27 緩衝記憶装置

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP4-142640 1992-06-03
JP14264092 1992-06-03
JP5125918A JPH0675857A (ja) 1992-06-03 1993-05-27 緩衝記憶装置

Publications (1)

Publication Number Publication Date
JPH0675857A true JPH0675857A (ja) 1994-03-18

Family

ID=26462216

Family Applications (1)

Application Number Title Priority Date Filing Date
JP5125918A Pending JPH0675857A (ja) 1992-06-03 1993-05-27 緩衝記憶装置

Country Status (1)

Country Link
JP (1) JPH0675857A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008234320A (ja) * 2007-03-20 2008-10-02 Fujitsu Ltd キャッシュ制御回路

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008234320A (ja) * 2007-03-20 2008-10-02 Fujitsu Ltd キャッシュ制御回路

Similar Documents

Publication Publication Date Title
KR100885277B1 (ko) 캐시에서의 라인들을 추론적으로 무효화하는 방법 및 시스템
KR101014395B1 (ko) 프로세서 전력 감소를 위한 마이크로 tlb 및 마이크로태그
US9081711B2 (en) Virtual address cache memory, processor and multiprocessor
US9158725B2 (en) Flexible control mechanism for store gathering in a write buffer
US6823427B1 (en) Sectored least-recently-used cache replacement
US20050050278A1 (en) Low power way-predicted cache
JP6478843B2 (ja) 半導体装置及びキャッシュメモリ制御方法
JPH0345407B2 (ja)
US9720847B2 (en) Least recently used (LRU) cache replacement implementation using a FIFO storing indications of whether a way of the cache was most recently accessed
US7809889B2 (en) High performance multilevel cache hierarchy
JPH0962572A (ja) ストリーム・フィルタ装置及び方法
US6219745B1 (en) System and method for entering a stream read buffer mode to store non-cacheable or block data
US7380068B2 (en) System and method for contention-based cache performance optimization
US7133975B1 (en) Cache memory system including a cache memory employing a tag including associated touch bits
US7577791B2 (en) Virtualized load buffers
CA2787560C (en) System and method for locking data in a cache memory
US20050182903A1 (en) Apparatus and method for preventing duplicate matching entries in a translation lookaside buffer
JPH0675857A (ja) 緩衝記憶装置
US11836086B1 (en) Access optimized partial cache collapse
JP3735373B2 (ja) マイクロコンピュータ
WO1995033238A1 (en) Low power, high performance, on-chip cache with no stall after a write hit
JP2004522227A (ja) 推定アドレスを発生するインクリメンタを備えたメモリ制御システム
KR960002540Y1 (ko) 히트 레이트 산출회로
JP3761890B2 (ja) キャッシュメモリ装置
JPH05127997A (ja) 半導体集積回路装置