JP2000347934A - キャッシュメモリ装置 - Google Patents

キャッシュメモリ装置

Info

Publication number
JP2000347934A
JP2000347934A JP11154503A JP15450399A JP2000347934A JP 2000347934 A JP2000347934 A JP 2000347934A JP 11154503 A JP11154503 A JP 11154503A JP 15450399 A JP15450399 A JP 15450399A JP 2000347934 A JP2000347934 A JP 2000347934A
Authority
JP
Japan
Prior art keywords
address
block
storage unit
load
unit
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
JP11154503A
Other languages
English (en)
Inventor
Kouji Zaiki
幸治 材木
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 JP11154503A priority Critical patent/JP2000347934A/ja
Publication of JP2000347934A publication Critical patent/JP2000347934A/ja
Pending legal-status Critical Current

Links

Landscapes

  • Memory System Of A Hierarchy Structure (AREA)

Abstract

(57)【要約】 【課題】 要求のあったアドレスから順にワードをロー
ドし、ブロック境界に達した時点で次のブロック内に属
するワードのロードを順次行っていき、これが完了した
時点で最初にロードしていたブロック内の残りのワード
のロードを完了させる。 【解決手段】 ロードアドレス制御部107でロードブ
ロック数格納部104から与えられるブロック数とキャ
ッシュミスヒット時に複数ブロックに跨ってラップアラ
ウンドした順にデータをロードすることを要求するプロ
セッサからのラップアラウンド信号120からキャッシ
ュミスヒット時に次にロードすべきブロックに対応した
ブロックアドレスを生成するようにブロックアドレス生
成部108を制御し、ワードアドレス生成部109で次
にロードすべきワードに対応したワードアドレスを生成
し、でワードアドレスがブロック内の最終ワードアドレ
スになったことをロードアドレス制御部107へ通知す
る。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、キャッシュメモリ
装置においてアクセス要求があったブロックデータが存
在しない場合に主記憶装置からロードする際に、ブロッ
ク内の必要なワードから順次連続した複数ブロックに跨
ってラップアラウンドした順にキャッシュメモリ上にロ
ードするキャッシュメモリ装置に関するものである。
【0002】また本発明は、キャッシュメモリ装置にお
いてアクセス要求があったブロックデータが存在しない
場合に主記憶装置からロードする際に、そのブロックと
連続する複数ブロックをキャッシュ上にロードするキャ
ッシュメモリ装置に関するものである。
【0003】なお、ラップアラウンドした順というの
は、例えば、アドレスを順次増やしていき、最後に達し
た時点で次に最初に戻るというように巡回した順を意味
する。
【0004】また、連続した複数ブロックに跨がってラ
ップアラウンドした順にキャッシュメモリ上にロードす
るというのは、要求のあったアドレスから順に自キャッ
シュ上にワードをロードし、ブロック境界に達した時点
で次のブロック内に属するワードのロードを順次行って
いき、これが完了した時点で最初にロードしていたブロ
ック内の残りのワードのロードを完了させることを意味
する。
【0005】
【従来の技術】従来のキャッシュメモリ装置は、プロセ
ッサと主記憶装置との間に設置される小容量の高速なバ
ッファメモリであり、プロセッサから主記憶装置へのア
クセスに際し、アクセスの行われたワードを含む一定サ
イズの連続した記憶位置(通常これをブロックと呼ぶ)
の内容を主記憶装置からキャッシュメモリに取り込むこ
とにより、メモリアクセスの大部分は、高速なキャッシ
ュメモリへのアクセスですみ、低速な主記憶装置へのア
クセスを少なくすることができる。
【0006】計算機上で実行されるプログラムのメモリ
アクセスは局所性があるという性質から、キャッシュメ
モリ装置におけるブロックの大きさ(以下ブロックサイ
ズと呼ぶ)は、大きくした方がキャッシュヒット率は向
上するが、主記憶装置からキャッシュメモリ装置へのブ
ロック転送時のオーバヘッドが大きくなってシステム全
体の性能が向上しないといった問題も出てくる。
【0007】このような場合に、ブロックサイズは予め
小さく設定しておき、1回のキャッシュミスで必要に応
じて連続する次のブロックをプリフェッチさせること
で、見かけ上ブロックサイズを大きくするといった方式
がとられている。この従来技術の例として特公平6−9
5317号公報がある。
【0008】図2は従来のキャッシュメモリ装置の機能
を示すブロック図である。図2において、200はプロ
セッサである。216は主記憶装置である。
【0009】202はプロセッサ200がメモリアクセ
ス時に出力されるメモリアドレス211を一時的に保持
するアドレスレジスタである。
【0010】203はアドレスレジスタ202から与え
られたブロックアドレスの連続する次のブロックアドレ
スを生成するプリフェッチ回路である。
【0011】206はアドレスレジスタ202からのア
ドレスまたはプリフェッチ回路203からのアドレスの
うち一方を選択してタグメモリ209および主記憶装置
216に与えるマルチプレクサである。
【0012】209は複数のブロックアドレスを保持し
マルチプレクサ206から与えられるブロックアドレス
と一致するブロックアドレスを保持した複数のブロック
アドレスの中からサーチして一致した場合には一致アド
レス216をデータメモリ208に与えるタグメモリで
ある。
【0013】207はタグメモリ209から与えられる
一致アドレス216をもとに次に置換すべきブロックア
ドレスを格納するアドレスを決定し、タグメモリ209
へ与えるリプレースメント回路である。このリプレース
メント回路207は、具体的には、例えば、一般に知ら
れているLRU(Least Recently Us
ed)アルゴリズムを使ったフルアソシエーティブ(F
ull Associative)のキャッシュメモリ
の場合、アクセスしたブロックの履歴(順番)を記憶し
ておき、一番最初にアクセスしたブロックアドレスを決
定するという動作をする。
【0014】204はプロセッサ200からのプリフェ
ッチ要求信号213とメモリアクセス制御信号212と
タグメモリ209からのヒット信号215をもとに次に
プリフェッチするかどうかを判断して主記憶装置216
からデータをロードする制御回路である。
【0015】205はデータメモリ208から読み出さ
れたデータを保持する読み出しデータレジスタである。
【0016】210はデータメモリ208への書き込み
データ214を一時保持する書き込みデータレジスタで
ある。
【0017】以上のアドレスレジスタ202とプリフェ
ッチ回路203とマルチプレクサ206と制御回路20
4とタグメモリ209とリプレースメント回路207と
データメモリ208と読み出しデータレジスタ205と
書き込みデータレジスタ210とでキャッシュメモリ装
置201が構成される。
【0018】以上のように構成された従来のキャッシュ
メモリ装置201の動作を説明する。
【0019】プロセッサ200からメモリアクセス制御
信号212によりアクセス要求が制御回路204に与え
られると、制御回路204はメモリアドレス211をア
ドレスレジスタ202にセットし、このブロックアドレ
ス部の値によりタグメモリ209を検索する。同時にプ
リフェッチ回路203では、次のブロックアドレスの計
算を行う。
【0020】タグメモリ209の検索により一致が検出
されずタグメモリ209のヒット信号215が値“0”
を出力した場合、すなわち、要求のあったアドレスを含
むブロックが自キャッシュメモリ上に存在しない場合に
は、ブロックのロードのために次の処理を行う。
【0021】まず、リプレースメント回路207でリプ
レースすべきデータメモリ208上のブロックを決定
し、これに対応するタグメモリ209のエントリにアド
レスレジスタ202のブロックアドレス部の値を登録す
る。つぎに、アドレスレジスタ202のブロックアドレ
ス部の出力と制御回路204で生成するブロック内のワ
ードアドレスおよびメモリ読み出し要求を主記憶装置2
16に与えることにより、主記憶装置216から書き込
みデータレジスタ210を介してデータメモリ208に
データを書き込む。ブロック内に属する全ワードに対し
てこれを行う。
【0022】プロセッサ200から要求のあったブロッ
クのロード終了後、プリフェッチ要求信号213により
プリフェッチ要求があると、プリフェッチ回路203で
計算された次のブロックアドレスによりタグメモリ20
9の検索を行う。その結果、タグメモリ209で一致が
検索されなかった場合には前述と同様に次のブロックの
ロードを行う。
【0023】
【発明が解決しようとする課題】しかしながら、図2に
示した従来のキャッシュメモリ装置では、要求のあった
アドレスを含むブロックが自キャッシュメモリ上に存在
しない場合に、ブロック内に属する全ワードを自キャッ
シュメモリ上にロードし、これが完了した後に、次のブ
ロックデータのロードを行うため、ブロック間に跨って
連続アクセスするような場合、次のブロックに含まれる
データアクセスが前のブロックデータのロード完了まで
待たされるためこれが頻繁に発生するようなシステムで
は性能向上が図れないという問題点を有している。
【0024】本発明はかかる点に鑑み、要求のあったア
ドレスを含むブロックが自キャッシュメモリ上に存在し
ない場合に要求のあったアドレスから順に自キャッシュ
上にワードをロードし、ブロック境界に達した時点で次
のブロック内に属するワードのロードを順次行ってい
き、これが完了した時点で最初にロードしていたブロッ
ク内の残りのワードのロードを完了させることができる
キャッシュメモリ装置を提供することを目的とする。
【0025】また従来のキャッシュメモリ装置では、要
求のあったアドレスを含むブロックが自キャッシュメモ
リ上に存在しない場合にブロック内に属する全ワードを
自キャッシュメモリ上にロードし、これが完了した後
に、次のブロックデータのみロードを行うため、連続的
に大容量のデータアクセスが行われるような場合には頻
繁に主記憶装置から自キャッシュメモリへのロード処理
が発生するため性能向上が図れないという問題点を有し
ている。
【0026】本発明はかかる点に鑑み、要求のあったア
ドレスを含むブロックが自キャッシュメモリ上に存在し
ない場合にブロック内に属するワードのロードとそれに
連続する複数ブロックのロードを可能にするキャッシュ
メモリ装置を提供することを目的とする。
【0027】
【課題を解決するための手段】上記目的を達成するた
め、本発明の請求項1記載のキャッシュメモリ装置は、
プロセッサと主記憶装置との間に置かれたキャッシュメ
モリ装置であって、プロセッサが主記憶装置にアクセス
する時に出力されるメモリアドレスから第1のブロック
アドレスと第1のワードアドレスを生成する第1アドレ
ス格納部と、プロセッサからのメモリアクセス要求信
号、およびキャッシュミスヒット時に主記憶装置から連
続して複数ブロックをロードすることを要求するプリフ
ェッチ要求信号を受け、メモリアクセス完了をプロセッ
サへ通知する制御部と、キャッシュミスヒット時に主記
憶装置からロードするブロック数を保持するロードブロ
ック数格納部と、第1アドレス格納部から第1のブロッ
クアドレスを受け、次にロードすべきブロックに対応し
た第2のブロックアドレスを生成するブロックアドレス
生成部と、ロードブロック数格納部から与えられるブロ
ック数とキャッシュミスヒット時に複数ブロックに跨っ
てラップアラウンドした順にデータをロードすることを
要求するプロセッサからのラップアラウンド信号からキ
ャッシュミスヒット時に次にロードすべきブロックに対
応した第2のブロックアドレスを生成するようにブロッ
クアドレス生成部を制御するロードアドレス制御部と、
第1アドレス格納部から第1のワードアドレスを受け、
次にロードすべきワードに対応した第2のワードアドレ
スを生成し、ブロック内の最終ワードアドレスになった
ことをロードアドレス制御部へ通知することによりロー
ドアドレス制御部で第2のブロックアドレスを更新させ
るワードアドレス生成部と、ブロックアドレス生成部で
生成された第2のブロックアドレスとワードアドレス生
成部で生成された第2のワードアドレスから主記憶装置
へアクセスすべきアドレスを生成する第2アドレス格納
部と、複数のブロックアドレスを保持し、ブロックアド
レス生成部で生成された第2のブロックアドレスと一致
するブロックアドレスが複数のブロックアドレス中にあ
るかをサーチして一致したかどうかを示すヒット信号を
ロードアドレス制御部と制御部へ通知することによりキ
ャッシュミスヒットをロードアドレス制御部と制御部と
に知らせるタグ記憶部と、タグ記憶部からのエントリア
ドレスによりデータの書き込み、および読み出しを行う
データ記憶部と、タグ記憶部からのエントリアドレスを
もとに次にリプレースすべきエントリアドレスを決定し
てタグ記憶部に指示するリプレースメント制御部と、主
記憶装置から読み出されたデータおよびプロセッサから
のデータを一時的に保持してデータ記憶部へ与える書き
込みデータ格納部と、データ記憶部からのデータを一時
的に保持してプロセッサへ与える読み出しデータ格納部
とを備えている。
【0028】これにより、キャッシュミス時にロードブ
ロック数格納部に設定されたブロック数とプロセッサか
らのラップアラウンド信号とからキャッシュミスしたブ
ロックから順次自キャッシュ内にロードしていき、ワー
ドアドレス生成部からのブロック内の最終ワードアドレ
スになったことを通知された時点で次のブロックのロー
ドを行い、最終ブロックのロード完了後に最初のブロッ
ク内の残りのワードのロードを完了する。
【0029】請求項2記載のキャッシュメモリ装置は、
請求項1記載のキャッシュメモリ装置において、タグ記
憶部は、ブロックアドレス生成部からの第2のブロック
アドレスと一致するブロックアドレスが保持した複数の
ブロックアドレスの中にあるかをサーチし、第2のブロ
ックアドレスと一致するブロックアドレスを検出すると
このブロックアドレスが格納されているエントリアドレ
スを出力し、一致するブロックアドレスがない場合には
リプレースメント制御部で決定されるリプレースされる
べきエントリアドレスに第2のブロックアドレスを格納
することを特徴とする。
【0030】これにより、キャッシュヒット時にはヒッ
トしたエントリアドレスを生成し、ミスした場合にはエ
ントリのリプレースが行われる。
【0031】請求項3記載のキャッシュメモリ装置は、
請求項1または2記載のキャッシュメモリ装置におい
て、ロードアドレス制御部は、ロードすべきブロック数
を一時的に記憶するカウンタ部を備えており、このカウ
ンタ部にはロード開始時にロードブロック数格納部から
のブロック数が設定され、ラップアラウンド信号でラッ
プアラウンド要求がある場合はワードアドレス生成部か
らのブロック内最終ワード完了通知、またはタグ記憶部
からのヒット信号によるヒットの通知があれば、1つだ
けカウントダウンされ、カウントダウンされた結果が0
になればロード開始時の最初のブロックに対応した第2
のブロックアドレスを生成するようにブロックアドレス
生成部に指示を行うことを特徴とする。なお、ブロック
内最終ワード完了通知とヒットの通知とが同時に起こる
と、2つカウントダウンされることになる。
【0032】これにより、ワードアドレス生成部からの
ブロック内の最終ワードアドレスになったことを通知さ
れた時点またはキャッシュヒットした時点で次のブロッ
クのロードを行い、最終ブロックのロード完了後に最初
のブロック内の残りのワードのロードを完了する。
【0033】請求項4記載のキャッシュメモリ装置は、
プロセッサと主記憶装置との間に置かれたキャッシュメ
モリ装置であって、プロセッサが主記憶装置にアクセス
する時に出力されるメモリアドレスから第1のブロック
アドレスと第1のワードアドレスを生成する第1アドレ
ス格納部と、プロセッサからのメモリアクセス要求信
号、およびキャッシュミスヒット時に主記憶装置から連
続して複数ブロックをロードすることを要求するプリフ
ェッチ要求信号を受け、メモリアクセス完了をプロセッ
サへ通知する制御部と、キャッシュミスヒット時に主記
憶装置からロードするブロック数を保持するロードブロ
ック数格納部と、プロセッサから与えられるアドレスを
格納する第3アドレス格納部と、第3アドレス格納部か
らのアドレスとプロセッサからのメモリアドレスを比較
する第1比較部と、第1アドレス格納部から第1のブロ
ックアドレスを受け、次にロードすべきブロックに対応
した第2のブロックアドレスを生成するブロックアドレ
ス生成部と、ロードブロック数格納部から与えられるブ
ロック数と第1比較部からのラップアラウンド信号から
キャッシュミスヒット時に次にロードすべきブロックに
対応した第2のブロックアドレスを生成するようにブロ
ックアドレス生成部を制御するロードアドレス制御部
と、第1アドレス格納部から第1のワードアドレスを受
け、次にロードすべきワードに対応した第2のワードア
ドレスを生成し、ブロック内の最終ワードアドレスにな
ったことをロードアドレス制御部へ通知することにより
ロードアドレス制御部で第2のブロックアドレスを更新
させるワードアドレス生成部と、ブロックアドレス生成
部で生成された第2のブロックアドレスとワードアドレ
ス生成部で生成された第2のワードアドレスから主記憶
装置へアクセスすべきアドレスを生成する第2アドレス
格納部と、複数のブロックアドレスを保持し、ブロック
アドレス生成部で生成された第2のブロックアドレスと
一致するブロックアドレスが複数のブロックアドレス中
にあるかをサーチして一致したかどうかを示すヒット信
号をロードアドレス制御部と制御部へ通知することによ
りキャッシュミスヒットをロードアドレス制御部と制御
部とに知らせるタグ記憶部と、タグ記憶部からのエント
リアドレスによりデータの書き込み、および読み出しを
行うデータ記憶部と、タグ記憶部からのエントリアドレ
スをもとに次にリプレースすべきエントリアドレスを決
定してタグ記憶部に指示するリプレースメント制御部
と、主記憶装置から読み出されたデータおよびプロセッ
サからのデータを一時的に保持してデータ記憶部へ与え
る書き込みデータ格納部と、データ記憶部からのデータ
を一時的に保持してプロセッサへ与える読み出しデータ
格納部とを備えたことを特徴とする。
【0034】これにより、キャッシュミスした時にアク
セスしたアドレスと第3アドレス格納部に設定されたア
ドレスとの関係から、ブロックデータのロードにおいて
ブロックに跨ってラップアラウンドした順番にワードを
ロードするかどうかが決定され、自キャッシュメモリ内
へのロードが実行される。
【0035】請求項5記載のキャッシュメモリ装置は、
請求項4記載のキャッシュメモリ装置において、第1比
較部は、予め第3アドレス格納部に設定されたアドレス
とプロセッサからのメモリアドレスとを比較し、一致も
しくは大小関係が成立した場合に、キャッシュミスヒッ
ト時に複数ブロックに跨ってラップアラウンドした順に
データをロードすることを要求するラップアラウンド信
号をロードアドレス制御部に与えることを特徴とする。
【0036】これにより、キャッシュミスした時にアク
セスしたアドレスと第3アドレス格納部に設定されたア
ドレスとで一致もしくは大小関係が成立した場合に、ラ
ップアラウンド信号をアクティブにする。
【0037】請求項6記載のキャッシュメモリ装置は、
プロセッサと主記憶装置との間に置かれたキャッシュメ
モリ装置であって、プロセッサが主記憶装置にアクセス
する時に出力されるメモリアドレスから第1のブロック
アドレスと第1のワードアドレスを生成する第1アドレ
ス格納部と、プロセッサから与えられるアドレスを格納
する第4アドレス格納部と、第4アドレス格納部からの
アドレスとプロセッサからのメモリアドレスを比較する
第2比較部と、プロセッサからのメモリアクセス要求信
号、および第2比較部からのプリフェッチ要求信号を受
け、メモリアクセス完了をプロセッサへ通知する制御部
と、キャッシュミスヒット時に主記憶装置からロードす
るブロック数を保持するロードブロック数格納部と、第
1アドレス格納部から第1のブロックアドレスを受け、
次にロードすべきブロックに対応した第2のブロックア
ドレスを生成するブロックアドレス生成部と、ロードブ
ロック数格納部から与えられるブロック数とキャッシュ
ミスヒット時に複数ブロックに跨ってラップアラウンド
した順にデータをロードすることを要求するプロセッサ
からのラップアラウンド信号からキャッシュミスヒット
時に次にロードすべきブロックに対応した第2のブロッ
クアドレスを生成するようにブロックアドレス生成部を
制御するロードアドレス制御部と、第1アドレス格納部
から第1のワードアドレスを受け、次にロードすべきワ
ードに対応した第2のワードアドレスを生成し、ブロッ
ク内の最終ワードアドレスになったことをロードアドレ
ス制御部へ通知することによりロードアドレス制御部で
第2のブロックアドレスを更新させるワードアドレス生
成部と、ブロックアドレス生成部で生成された第2のブ
ロックアドレスとワードアドレス生成部で生成された第
2のワードアドレスから主記憶装置へアクセスすべきア
ドレスを生成する第2アドレス格納部と、複数のブロッ
クアドレスを保持し、ブロックアドレス生成部で生成さ
れた第2のブロックアドレスと一致するブロックアドレ
スが複数のブロックアドレス中にあるかをサーチして一
致したかどうかを示すヒット信号をロードアドレス制御
部と制御部へ通知することによりキャッシュミスヒット
をロードアドレス制御部と制御部とに知らせるタグ記憶
部と、タグ記憶部からのエントリアドレスによりデータ
の書き込み、および読み出しを行うデータ記憶部と、タ
グ記憶部からのエントリアドレスをもとに次にリプレー
スすべきエントリアドレスを決定してタグ記憶部に指示
するリプレースメント制御部と、主記憶装置から読み出
されたデータおよびプロセッサからのデータを一時的に
保持してデータ記憶部へ与える書き込みデータ格納部
と、データ記憶部からのデータを一時的に保持してプロ
セッサへ与える読み出しデータ格納部とを備えたことを
特徴とする。
【0038】これにより、キャッシュミスした時にアク
セスしたアドレスと第4アドレス格納部に設定されたア
ドレスとの関係から、最初のブロックデータに続く複数
ブロックをプリフェッチするかどうかが決定され、自キ
ャッシュメモリ内へのロードが実行される。
【0039】請求項7記載のキャッシュメモリ装置は、
請求項6記載のキャッシュメモリ装置において、第2比
較部は、予め第4アドレス格納部に設定されたアドレス
とプロセッサからのメモリアドレスとを比較し、一致も
しくは大小関係が成立した場合に、キャッシュミスヒッ
ト時に主記憶装置から連続して複数ブロックをロードす
ることを要求するプリフェッチ要求信号を制御部に与え
ることを特徴とする。
【0040】これにより、キャッシュミスした時にアク
セスしたアドレスと第4アドレス格納部に設定されたア
ドレスとで一致もしくは大小関係が成立した場合にプリ
フェッチ信号をアクティブにする。
【0041】請求項8記載のキャッシュメモリ装置は、
プロセッサと主記憶装置との間に置かれたキャッシュメ
モリ装置であって、プロセッサが主記憶装置にアクセス
する時に出力されるメモリアドレスから第1のブロック
アドレスと第1のワードアドレスを生成する第1アドレ
ス格納部と、プロセッサからのメモリアクセス要求信
号、およびキャッシュミスヒット時に主記憶装置から連
続して複数ブロックをロードすることを要求するプリフ
ェッチ要求信号を受け、メモリアクセス完了をプロセッ
サへ通知する制御部と、キャッシュミスヒット時に主記
憶装置からロードするブロック数を保持するロードブロ
ック数格納部と、プロセッサから与えられるアドレスを
格納する第5アドレス格納部と、第5アドレス格納部か
らのアドレスとプロセッサからのメモリアドレスを比較
する第3比較部と、第1アドレス格納部から第1のブロ
ックアドレスを受け、次にロードすべきブロックに対応
した第2のブロックアドレスを生成するブロックアドレ
ス生成部と、第3比較部からのロードブロック数選択信
号により選択されたロードブロック数格納部から与えら
れるブロック数とキャッシュミスヒット時に複数ブロッ
クに跨ってラップアラウンドした順にデータをロードす
ることを要求するプロセッサからのラップアラウンド信
号からキャッシュミスヒット時に次にロードすべきブロ
ックに対応した第2のブロックアドレスを生成するよう
にブロックアドレス生成部を制御するロードアドレス制
御部と、第1アドレス格納部から第1のワードアドレス
を受け、次にロードすべきワードに対応した第2のワー
ドアドレスを生成し、ブロック内の最終ワードアドレス
になったことをロードアドレス制御部へ通知することに
よりロードアドレス制御部で第2のブロックアドレスを
更新させるワードアドレス生成部と、ブロックアドレス
生成部で生成された第2のブロックアドレスとワードア
ドレス生成部で生成された第2のワードアドレスから主
記憶装置へアクセスすべきアドレスを生成する第2アド
レス格納部と、複数のブロックアドレスを保持し、ブロ
ックアドレス生成部で生成された第2のブロックアドレ
スと一致するブロックアドレスが複数のブロックアドレ
ス中にあるかをサーチして一致したかどうかを示すヒッ
ト信号をロードアドレス制御部と制御部へ通知すること
によりキャッシュミスヒットをロードアドレス制御部と
制御部とに知らせるタグ記憶部と、タグ記憶部からのエ
ントリアドレスによりデータの書き込み、および読み出
しを行うデータ記憶部と、タグ記憶部からのエントリア
ドレスをもとに次にリプレースすべきエントリアドレス
を決定してタグ記憶部に指示するリプレースメント制御
部と、主記憶装置から読み出されたデータおよびプロセ
ッサからのデータを一時的に保持してデータ記憶部へ与
える書き込みデータ格納部と、データ記憶部からのデー
タを一時的に保持してプロセッサへ与える読み出しデー
タ格納部とを備えたことを特徴とする。
【0042】これにより、キャッシュミスした時にアク
セスしたアドレスと第5アドレス格納部に設定されたア
ドレスとの関係から、最初のブロックデータに続くプリ
フェッチすべき複数ブロックのブロック数が決定され、
自キャッシュメモリ内へのロードが実行される。
【0043】
【発明の実施の形態】(第1の実施の形態)図1は本発
明の第1の実施の形態におけるキャッシュメモリ装置を
構成するブロック図を示している。図1において、10
0はプロセッサである。102は主記憶装置である。
【0044】105はプロセッサ100からのメモリア
ドレス121を保持する第1アドレス格納部である。
【0045】106はプロセッサ100からのメモリア
クセス要求信号116、およびキャッシュミスヒット時
に主記憶装置102から連続して複数ブロックをキャッ
シュメモリ装置内にロードすることを要求するプリフェ
ッチ要求信号118を受け、メモリアクセス完了信号1
17をプロセッサ100へ通知しメモリアクセスリクエ
スト信号128を主記憶装置102へ与える制御部であ
る。
【0046】104はキャッシュミスヒット時に主記憶
装置102からキャッシュメモリ装置内にロードするブ
ロック数を保持するロードブロック数格納部である。
【0047】107はロードブロック数格納部104か
ら与えられるブロック数135とキャッシュミスヒット
時に複数ブロックに跨ってラップアラウンドした順にデ
ータをロードすることを要求するプロセッサ100から
のラップアラウンド信号120からキャッシュミスヒッ
ト時にロードすべきブロックアドレスを生成するように
ブロックアドレス生成部108を制御するロードアドレ
ス制御部である。
【0048】108は第1アドレス格納部105からブ
ロックアドレス125を受け、ロードアドレス制御部1
07の指示132により次にロードすべきブロックに対
応したブロックアドレスを生成するブロックアドレス生
成部である。
【0049】109は第1アドレス格納部105からワ
ードアドレス126を受け、次にロードすべきワードに
対応したワードアドレスを生成してブロック内の最終ワ
ードアドレスになったことを示すワード最終信号124
をロードアドレス制御部107へ通知するワードアドレ
ス生成部である。このワード最終信号124をロードア
ドレス制御部107へ通知することで、ロードアドレス
制御部107でブロックアドレスを更新させる。
【0050】114はブロックアドレス生成部108で
生成されたブロックアドレス130とワードアドレス生
成部109で生成されたワードアドレス131から主記
憶装置102へアクセスすべきアドレス134を生成す
る第2アドレス格納部である。
【0051】112は複数ブロックアドレスを保持し、
ブロックアドレス生成部108で生成されたブロックア
ドレス130を検索して一致したかどうかを示すヒット
信号123をロードアドレス制御部107と制御部10
6へ通知するタグ記憶部である。このヒット信号をロー
ドアドレス制御部107と制御部106へ通知すること
で、キャッシュミスヒットをロードアドレス制御部と制
御部とに知らせる。
【0052】111はタグ記憶部112からのエントリ
アドレス127によりデータの書き込み、および読み出
しを行うデータ記憶部である。
【0053】110はタグ記憶部112からのエントリ
アドレス127をもとに次にリプレースすべきエントリ
アドレス129を決定してタグ記憶部112に指示する
リプレースメント制御部である。
【0054】113は主記憶装置102から読み出され
たデータおよびプロセッサ100からのデータ115を
一時的に保持してデータ記憶部111へ与える書き込み
データ格納部である。
【0055】103はデータ記憶部111からのデータ
122を一時的に保持してプロセッサ100へ与える読
み出しデータ格納部である。
【0056】以上の第1アドレス格納部105とブロッ
クアドレス生成部108とワードアドレス生成部109
と第2アドレス格納部114とロードブロック数格納部
104とロードアドレス制御部107とリプレースメン
ト制御部110と制御部106とタグ記憶部112とデ
ータ記憶部111と書き込みデータ格納部113と読み
出しデータ格納部103とで第1のキャッシュメモリ装
置101が構成される。
【0057】以上のように構成された本発明の第1の実
施の形態によるキャッシュメモリ装置の動作を説明す
る。
【0058】説明を簡略化するためにここでは、アドレ
スは32ビットとしブロックサイズを16バイトとす
る。すなわち、アドレスの上位28ビットがブロックア
ドレスを示し、下位4ビットがそのブロック内のワード
アドレスを示す。またここでは複数ブロックをプリフェ
ッチさせるためにプロセッサ100からプリフェッチ要
求信号118をアクティブにし、さらにキャッシュミス
ヒット時にブロックに跨ってラップアラウンドした順で
ワードデータをロードするようにプロセッサ100から
ラップアラウンド信号120をアクティブにしておく。
【0059】プロセッサ100からメモリアクセス要求
信号116により制御部106にメモリアクセス要求が
あると、制御部106はメモリアドレス121を第1ア
ドレス格納部105に格納し、このブロックアドレス部
の値がブロックアドレス生成部108に設定され、ワー
ドアドレス部の値がワードアドレス生成部109に設定
される。
【0060】このブロックアドレス部の値によりタグ記
憶部112が検索される。タグ記憶部112の検索によ
り、一致が検出されてタグ記憶部112のヒット信号1
23がヒットしたことを示す場合、すなわち、アクセス
の要求のあったアドレスを含むブロックが自キャッシュ
メモリ上に存在する場合には、タグ記憶部112の出力
するエントリアドレス127によりリプレースメント制
御部110でアクセス情報が更新され、同じくタグ記憶
部112の出力するエントリアドレス127および第1
アドレス格納部105のブロック内ワードアドレスの値
をアドレスとしてデータ記憶部111に対してアクセス
される。
【0061】すなわち、アクセス要求が読み出し要求で
ある場合にはデータ記憶部111が読み出され、その読
み出された値が読み出しデータ格納部103に格納され
メモリアクセス完了信号117によりここからプロセッ
サ100に取り込まれる。アクセス要求が書き込み要求
である場合にはプロセッサ100からの書き込みデータ
が書き込みデータ格納部113に格納されこの値がデー
タ記憶部111に書き込まれ、メモリアクセス完了信号
117によりアクセスが完了したことがプロセッサ10
0に通知される。
【0062】ここで、アクセスの要求のあったアドレス
を含むブロックが自キャッシュメモリ上に存在する場合
には、タグ記憶部112の出力するエントリアドレス1
27によりリプレースメント制御部110でアクセス情
報が更新される点について説明する。キャッシャのリプ
レースするブロックアドレスを決定するために、アクセ
スがあるたびに、どのブロックにアクセスしたのかを示
す情報をもつ必要がある。ここでいうアクセス情報と
は、このアクセスした順番を記憶したものであり、アク
セスするたびに更新されるものである。
【0063】タグ記憶部112で一致が検出されない場
合、すなわちアクセス要求のあったアドレスを含むブロ
ックが自キャッシュメモリ上に存在しない場合には、ブ
ロックのキャッシュメモリ上へのロードのために次の処
理を行う。
【0064】まず、リプレースメント制御部110でリ
プレースすべきデータ記憶部111上のブロックを決定
し、これに対応するタグ記憶部112のエントリにブロ
ックアドレス部の値を登録する。
【0065】上記リプレースメント制御部110では、
リプレースすべきデータ記憶部111上のブロックは、
例えば、LRUアルゴリズムを採用した場合には、アク
セスした順番の最も古いブロックをリブレースすべきブ
ロックとして決定することになる。
【0066】つぎに、ブロックアドレス生成部108の
ブロックアドレスとワードアドレス生成部109のワー
ドアドレスが第2アドレス格納部114に格納され、こ
のアドレスによって主記憶装置102からデータが読み
出され、書き込みデータ格納部113を介してデータ記
憶部111に書き込まれる。
【0067】ここで、具体的に特定アドレスへのアクセ
スでキャッシュミスした場合に行われるブロックのロー
ド処理を説明する。アドレスは全て16進数表記を用い
る。アクセスするアドレスを0000000Cとする
と、ブロックアドレスは0000000でワードアドレ
スはCである。また、ここではロードブロック数格納部
104には予め2が設定されているとする。すなわち、
1回のキャッシュミスで2つのブロックをロードすると
する。
【0068】まず、ロードアドレス制御部107のカウ
ンタ部に2がセットされる。
【0069】次に、ブロックアドレス生成部108はブ
ロックアドレス0000000を出力し、ワードアドレ
ス生成部109はワードアドレスCを出力し、これによ
り第2アドレス格納部114が出力するアドレス000
0000Cにより主記憶装置102からデータを読み出
してキャッシュメモリ上にデータを取り込む。
【0070】つぎに、ワードアドレス生成部109は次
のブロック内ワードアドレスDを出力し、第2アドレス
格納部114はアドレス0000000Dを出力しこの
アドレスにより主記憶装置102からデータが読み出さ
れてキャッシュメモリ上にデータが取り込まれる。
【0071】以下同様に、0000000E、0000
000Fのアドレスで主記憶装置102から読み出さ
れ、ブロック内の最終アドレス0000000Fになっ
た時点でワード最終信号124がロードアドレス制御部
107に与えられ、この時、ロードアドレス制御部10
7のカウンタ部の値が1だけカウントダウンされ、1と
なる。ブロックアドレス生成部108はプリフェッチ要
求信号118とラップアラウンド信号120がアクティ
ブの時、すなわちブロックに跨ってワードデータをロー
ドする要求がプロセッサ100からあると、次のブロッ
クアドレス0000001を出力する。
【0072】ワードアドレス生成部109は次のアドレ
ス0を出力し、その結果第2アドレス生成部114は0
0000010を出力し、主記憶装置102からデータ
が読み出されキャッシュメモリ上にデータが取り込まれ
る。同様に、00000011、0000001
2、...、0000001Fと順次読み出され、ブロ
ック内の最終アドレス0000001Fになった時点で
ロードアドレス制御部107のカウンタ部の値が1だけ
カウントダウンされ、その結果0となる。この結果、最
初のブロックアドレス0000000を生成するように
ブロックアドレス生成部108に指示し、最初のブロッ
ク内の残りのワード、すなわち、00000000、0
0000001、00000002、...、0000
000Bの順に主記憶装置102から読み出されて、ブ
ロックのロード処理が完了する。
【0073】最初のブロック内の残りのワード数はキャ
ッシュミス時に予めロードアドレス制御部107で保持
されているものとし、これによりロード処理が完了され
る。
【0074】ロードアドレス制御部107は、タグ記憶
部112からのヒット信号123がヒットであることを
示す場合は次のブロックアドレスを生成するようにブロ
ックアドレス生成部108に指示して、すでにキャッシ
ュ上に存在するブロックに対してはブロックのロードは
行われないようにする。また、プリフェッチ要求信号1
18によりプリフェッチ要求がなければ、プロセッサ1
00からの要求のあったブロックのロードのみが実行さ
れる。
【0075】以上のように、本発明の第1の実施の形態
の第1キャッシュメモリ装置によれば、ロードブロック
数格納部104と、ロードアドレス制御部107と、プ
ロセッサ100からのプリフェッチ要求信号118と、
ラップアラウンド信号120と、ブロックアドレス生成
部108と、ワードアドレス生成部109を備えたこと
で、キャッシュミス時にミスしたアドレスからブロック
のロードを行いブロック内の最終ワードアドレスになっ
た時点で次のブロック内のワードのロードを行い、最後
のブロック内の全ワードがロードされた後に最初のブロ
ック内のワードをロードすることができる。その結果、
ブロック間に跨って連続アクセスする場合に無駄な待ち
時間が無くなり、必要なデータのアクセスを速やかに行
うことができ、性能の向上を達成することができる。
【0076】また、キャッシュミス時にプロセッサ10
0からの要求のあったブロックに連続するブロックのロ
ードを行うか否かはプロセッサ100からのプリフェッ
チ要求信号118によりなされ、また、ブロックに跨っ
てラップアラウンドした順にワードデータをロードする
か否かはプロセッサ100からのラップアラウンド信号
120によりなされるので、実行時に動的にブロックデ
ータのロード方法を変えることが可能である。
【0077】(第2の実施の形態)図3は本発明の第2
の実施の形態におけるキャッシュメモリ装置を構成する
ブロック図を示している。図3において、100はプロ
セッサである。102は主記憶装置である。
【0078】105はプロセッサ100からのメモリア
ドレス121を保持する第1アドレス格納部である。
【0079】106はプロセッサ100からのメモリア
クセス要求信号116、およびキャッシュミスヒット時
に主記憶装置102から連続して複数ブロックをキャッ
シュメモリ装置内にロードすることを要求するプリフェ
ッチ要求信号118を受け、メモリアクセス完了信号1
17をプロセッサ100へ通知しメモリアクセスリクエ
スト信号128を主記憶装置102へ与える制御部であ
る。
【0080】104はキャッシュミスヒット時に主記憶
装置102からキャッシュメモリ装置内にロードするブ
ロック数を保持するロードブロック数格納部である。
【0081】301はプロセッサ100から与えられる
アドレス300を格納する第3アドレス格納部である。
【0082】303は第3アドレス格納部301からの
アドレス302とプロセッサ100からのメモリアドレ
ス121とを比較する第1比較部である。
【0083】107はロードブロック数格納部104か
ら与えられるブロック数135と第1比較部303から
のラップアラウンド信号304からキャッシュミスヒッ
ト時にロードすべきブロックアドレスを生成するように
ブロックアドレス生成部108を制御するロードアドレ
ス制御部である。
【0084】108は第1アドレス格納部105からブ
ロックアドレス125を受け、ロードアドレス制御部1
07の指示132により次にロードすべきブロックに対
応したブロックアドレスを生成するブロックアドレス生
成部である。
【0085】109は第1アドレス格納部105からワ
ードアドレス126を受け、次にロードすべきワードに
対応したワードアドレスを生成してブロック内の最終ワ
ードアドレスになったことを示すワード最終信号124
をロードアドレス制御部107へ通知するワードアドレ
ス生成部である。このワード最終信号124をロードア
ドレス制御部107へ通知することで、ロードアドレス
制御部107でブロックアドレスを更新させる。
【0086】114はブロックアドレス生成部108で
生成されたブロックアドレス130とワードアドレス生
成部109で生成されたワードアドレス131から主記
憶装置102へアクセスすべきアドレス134を生成す
る第2アドレス格納部である。
【0087】112は複数ブロックアドレスを保持し、
ブロックアドレス生成部108で生成されたブロックア
ドレス130を検索して一致したかどうかを示すヒット
信号123をロードアドレス制御部107と制御部10
6へ通知するタグ記憶部である。このヒット信号をロー
ドアドレス制御部107と制御部106へ通知すること
で、キャッシュミスヒットをロードアドレス制御部と制
御部とに知らせる。
【0088】111はタグ記憶部112からのエントリ
アドレス127によりデータの書き込み、および読み出
しを行うデータ記憶部である。
【0089】110はタグ記憶部112からのエントリ
アドレス127をもとに次にリプレースすべきエントリ
アドレス129を決定してタグ記憶部112に指示する
リプレースメント制御部である。
【0090】113は主記憶装置102から読み出され
たデータおよびプロセッサ100からのデータ115を
一時的に保持してデータ記憶部111へ与える書き込み
データ格納部である。
【0091】103はデータ記憶部111からのデータ
122を一時的に保持してプロセッサ100へ与える読
み出しデータ格納部である。
【0092】以上の第1アドレス格納部105とブロッ
クアドレス生成部108とワードアドレス生成部109
と第2アドレス格納部114とロードブロック数格納部
104とロードアドレス制御部107とリプレースメン
ト制御部110と制御部106とタグ記憶部112とデ
ータ記憶部111と書き込みデータ格納部113と読み
出しデータ格納部103と第3アドレス格納部301と
第1比較部303とで第2のキャッシュメモリ装置30
5が構成される。
【0093】以上のように構成された本発明の第2の実
施の形態によるキャッシュメモリ装置の動作を説明す
る。
【0094】第1の実施の形態によるキャッシュメモリ
装置との違いは、図1に示したプロセッサ100からの
ラップアラウンド信号120が、第2の実施の形態では
図3に示すように第3アドレス格納部301の出力結果
とプロセッサ100からのメモリアドレス121とが第
1比較部304に入力されその比較結果304で与えら
れることである。例えばここで第1比較部303はアド
レスの上位数ビットを比較(ここでは上位8ビットとす
る)して、一致した場合に出力信号304がアクティブ
になるとする。
【0095】具体的には第3アドレス格納部301に1
1000000が格納されているとすると、プロセッサ
100からのメモリアドレス121が11000000
から11FFFFFFの範囲にあるときは、キャッシュ
ミス時にはブロックに跨ってラップアラウンドした順に
キャッシュ上にロードされる。キャッシュヒット時およ
びミス時の基本的な動作については、ラップアラウンド
信号が外部から与えられるのではなくキャッシュメモリ
装置内で生成される点を除けば、第1の実施の形態で説
明したものと同じである。
【0096】以上のように、本発明の第2の実施の形態
のキャッシュメモリ装置によれば、ロードブロック数格
納部104と、ロードアドレス制御部107と、プロセ
ッサ100からのプリフェッチ要求信号118と、第3
アドレス格納部301と、第1比較部303と、ブロッ
クアドレス生成部108と、ワードアドレス生成部10
9を備えたことで、キャッシュミス時にミスしたアドレ
スからブロックのロードを行いブロック内の最終ワード
アドレスになった時点で次のブロック内のワードのロー
ドが行われ、最後のブロック内の全ワードがロードされ
た後に最初のブロック内のワードがロードされる。その
結果、ブロック間に跨って連続アクセスする場合に無駄
な待ち時間が無くなり、必要なデータのアクセスを速や
かに行うことができ、性能の向上を達成することができ
る。
【0097】また、キャッシュミス時にプロセッサ10
0からの要求のあったブロックに連続するブロックのロ
ードを行うか否かはプロセッサ100からのプリフェッ
チ要求信号118によりなされ、また、連続した複数の
ブロックに跨ってラップアラウンドした順にワードデー
タをロードするか否かは第3アドレス格納部301に格
納されたアドレスとプロセッサ100からのメモリアド
レス121とが第1比較部304に入力されその比較結
果304で与えられることによりなされるので、実行時
に動的にブロックデータのロード方法を変えることが可
能である。
【0098】なお、第1比較部303はアドレスの上位
数ビットを比較(ここでは上位8ビットとする)して、
一致した場合に出力信号304がアクティブになるとし
たが、大小比較を行い、所定の大小関係が成立した場合
に、出力信号304がアクティブになるとしてもよい。
【0099】(第3の実施の形態)図4は本発明の第3
の実施の形態におけるキャッシュメモリ装置を構成する
ブロック図を示している。図4において、100はプロ
セッサである。102は主記憶装置である。
【0100】105はプロセッサ100からのメモリア
ドレス121を保持する第1アドレス格納部である。
【0101】401はプロセッサ100から与えられる
アドレス400を格納する第4アドレス格納部である。
【0102】403は第4アドレス格納部401からの
アドレス402とプロセッサ100からのメモリアドレ
ス121とを比較する第2比較部である。
【0103】106はプロセッサ100からのメモリア
クセス要求信号116、および第2比較部403からの
プリフェッチ要求信号404を受け、メモリアクセス完
了信号117をプロセッサ100へ通知しメモリアクセ
スリクエスト信号128を主記憶装置102へ与える制
御部である。
【0104】104はキャッシュミスヒット時に主記憶
装置102からキャッシュメモリ装置内にロードするブ
ロック数を保持するロードブロック数格納部である。
【0105】107はロードブロック数格納部104か
ら与えられるブロック数135とキャッシュミスヒット
時に複数ブロックに跨ってラップアラウンドした順にデ
ータをロードすることを要求するプロセッサ100から
のラップアラウンド信号120からキャッシュミスヒッ
ト時にロードすべきブロックアドレスを生成するように
ブロックアドレス生成部108を制御するロードアドレ
ス制御部である。
【0106】108は第1アドレス格納部105からブ
ロックアドレス125を受け、ロードアドレス制御部1
07の指示132により次にロードすべきブロックに対
応したブロックアドレスを生成するブロックアドレス生
成部である。
【0107】109は第1アドレス格納部105からワ
ードアドレス126を受け、次にロードすべきワードに
対応したワードアドレスを生成してブロック内の最終ワ
ードアドレスになったことを示すワード最終信号124
をロードアドレス制御部107へ通知するワードアドレ
ス生成部である。このワード最終信号124をロードア
ドレス制御部107へ通知することで、ロードアドレス
制御部107でブロックアドレスを更新させる。
【0108】114はブロックアドレス生成部108で
生成されたブロックアドレス130とワードアドレス生
成部109で生成されたワードアドレス131から主記
憶装置102へアクセスすべきアドレス134を生成す
る第2アドレス格納部である。
【0109】112は複数ブロックアドレスを保持し、
ブロックアドレス生成部108で生成されたブロックア
ドレス130を検索して一致したかどうかを示すヒット
信号123をロードアドレス制御部107と制御部10
6へ通知するタグ記憶部である。このヒット信号をロー
ドアドレス制御部107と制御部106へ通知すること
で、キャッシュミスヒットをロードアドレス制御部と制
御部とに知らせる。
【0110】111はタグ記憶部112からのエントリ
アドレス127によりデータの書き込み、および読み出
しを行うデータ記憶部である。
【0111】110はタグ記憶部112からのエントリ
アドレス127をもとに次にリプレースすべきエントリ
アドレス129を決定してタグ記憶部112に指示する
リプレースメント制御部である。
【0112】113は主記憶装置102から読み出され
たデータおよびプロセッサ100からのデータ115を
一時的に保持してデータ記憶部111へ与える書き込み
データ格納部である。
【0113】103はデータ記憶部111からのデータ
122を一時的に保持してプロセッサ100へ与える読
み出しデータ格納部である。
【0114】以上の第1アドレス格納部105とブロッ
クアドレス生成部108とワードアドレス生成部109
と第2アドレス格納部114とロードブロック数格納部
104とロードアドレス制御部107とリプレースメン
ト制御部110と制御部106とタグ記憶部112とデ
ータ記憶部111と書き込みデータ格納部113と読み
出しデータ格納部103と第4アドレス格納部401と
第2比較部403とで第3のキャッシュメモリ装置40
5が構成される。
【0115】以上のように構成された本発明の第3の実
施の形態によるキャッシュメモリ装置の動作を説明す
る。
【0116】第1の実施の形態によるキャッシュメモリ
装置との違いは、図1に示したプロセッサ100からの
プリフェッチ要求信号118が、第3の実施の形態では
図4に示すように第4アドレス格納部401の出力結果
とプロセッサ100からのメモリアドレス121とが第
2比較部403に入力されその比較結果404で与えら
れることである。例えばここで第2比較部403はアド
レスの上位数ビットを比較(ここでは上位8ビットとす
る)して、一致した場合に出力信号404がアクティブ
になるとする。
【0117】具体的には第4アドレス格納部401に1
1000000が格納されているとすると、プロセッサ
100からのメモリアドレス121が11000000
から11FFFFFFの範囲にあるときは、キャッシュ
ミス時にはミスのあったアドレスを含むブロックとそれ
に続くブロックもキャッシュ上にロードされる。キャッ
シュヒット時およびミス時の基本的な動作については、
プリフェッチ要求信号が外部から与えられるのではなく
キャッシュメモリ装置内で生成される点を除けば、第1
の実施の形態で説明したものと同じである。
【0118】以上のように、本発明の第3の実施の形態
のキャッシュメモリ装置によれば、ロードブロック数格
納部104と、ロードアドレス制御部107と、プロセ
ッサ100からのラップアラウンド信号120と、第4
アドレス格納部401と、第2比較部403と、ブロッ
クアドレス生成部108と、ワードアドレス生成部10
9を備えたことで、キャッシュミス時にミスしたアドレ
スからブロックのロードを行いブロック内の最終ワード
アドレスになった時点で次のブロック内のワードのロー
ドが行われ、最後のブロック内の全ワードがロードされ
た後に最初のブロック内のワードがロードされる。その
結果、ブロック間に跨って連続アクセスする場合に無駄
な待ち時間が無くなり、必要なデータのアクセスを速や
かに行うことができ、性能の向上を達成することができ
る。
【0119】また、キャッシュミス時にプロセッサ10
0からの要求のあったブロックに連続するブロックのロ
ードを行うか否かは第4アドレス格納部401に格納さ
れたアドレスとプロセッサ100からのメモリアドレス
121とが第2比較部403に入力されその比較結果4
04で与えられることにによりなされ、また、連続した
複数のブロックに跨ってラップアラウンドした順にワー
ドデータをロードするか否かはプロセッサ100からの
ラップアラウンド信号120によりなされるので、実行
時に動的にブロックデータのロード方法を変えることが
可能である。
【0120】なお、第2比較部403はアドレスの上位
数ビットを比較(ここでは上位8ビットとする)して、
一致した場合に出力信号404がアクティブになるとし
たが、大小比較を行い、所定の大小関係が成立した場合
に、出力信号304がアクティブになるとしてもよい。
【0121】(第4の実施の形態)図5は本発明の第4
の実施の形態におけるキャッシュメモリ装置を構成する
ブロック図を示している。図5において、100はプロ
セッサである。102は主記憶装置である。
【0122】105はプロセッサ100からのメモリア
ドレス121を保持する第1アドレス格納部である。
【0123】106はプロセッサ100からのメモリア
クセス要求信号116、およびキャッシュミスヒット時
に主記憶装置102から連続して複数ブロックをキャッ
シュメモリ装置内にロードすることを要求するプリフェ
ッチ要求信号118を受け、メモリアクセス完了信号1
17をプロセッサ100へ通知しメモリアクセスリクエ
スト信号128を主記憶装置102へ与える制御部であ
る。
【0124】104はキャッシュミスヒット時に主記憶
装置102からキャッシュメモリ装置内にロードするブ
ロック数を保持するロードブロック数格納部である。
【0125】501はプロセッサ100から与えられる
アドレス500を格納する第5アドレス格納部である。
【0126】503は第5アドレス格納部501からの
アドレス502とプロセッサ100からのメモリアドレ
ス121とを比較する第3比較部である。
【0127】107はロードブロック数格納部104か
ら与えられる第3比較部503からのロードブロック数
選択信号504により選択されたロードブロック数格納
部104から与えられるブロック数506とキャッシュ
ミスヒット時に複数ブロックに跨ってラップアラウンド
した順にデータをロードすることを要求するプロセッサ
100からのラップアラウンド信号120からキャッシ
ュミスヒット時にロードすべきブロックアドレスを生成
するようにブロックアドレス生成部108を制御するロ
ードアドレス制御部である。
【0128】108は第1アドレス格納部105からブ
ロックアドレス125を受け、ロードアドレス制御部1
07の指示132により次にロードすべきブロックに対
応したブロックアドレスを生成するブロックアドレス生
成部である。
【0129】109は第1アドレス格納部105からワ
ードアドレス126を受け、次にロードすべきワードに
対応したワードアドレスを生成してブロック内の最終ワ
ードアドレスになったことを示すワード最終信号124
をロードアドレス制御部107へ通知するワードアドレ
ス生成部である。このワード最終信号124をロードア
ドレス制御部107へ通知することで、ロードアドレス
制御部107でブロックアドレスを更新させる。
【0130】114はブロックアドレス生成部108で
生成されたブロックアドレス130とワードアドレス生
成部109で生成されたワードアドレス131から主記
憶装置102へアクセスすべきアドレス134を生成す
る第2アドレス格納部である。
【0131】112は複数ブロックアドレスを保持し、
ブロックアドレス生成部108で生成されたブロックア
ドレス130を検索して一致したかどうかを示すヒット
信号123をロードアドレス制御部107と制御部10
6へ通知するタグ記憶部である。このヒット信号をロー
ドアドレス制御部107と制御部106へ通知すること
で、キャッシュミスヒットをロードアドレス制御部10
7と制御部106とに知らせる。
【0132】111はタグ記憶部112からのエントリ
アドレス127によりデータの書き込み、および読み出
しを行うデータ記憶部である。
【0133】110はタグ記憶部112からのエントリ
アドレス127をもとに次にリプレースすべきエントリ
アドレス129を決定してタグ記憶部112に指示する
リプレースメント制御部である。
【0134】113は主記憶装置102から読み出され
たデータおよびプロセッサ100からのデータ115を
一時的に保持してデータ記憶部111へ与える書き込み
データ格納部である。
【0135】103はデータ記憶部111からのデータ
122を一時的に保持してプロセッサ100へ与える読
み出しデータ格納部である。
【0136】以上の第1アドレス格納部105とブロッ
クアドレス生成部108とワードアドレス生成部109
と第2アドレス格納部114とロードブロック数格納部
104とロードアドレス制御部107とリプレースメン
ト制御部110と制御部106とタグ記憶部112とデ
ータ記憶部111と書き込みデータ格納部113と読み
出しデータ格納部103と第5アドレス格納部501と
第3比較部503とで第4のキャッシュメモリ装置50
5が構成される。
【0137】以上のように構成された本発明の第4の実
施の形態によるキャッシュメモリ装置の動作を説明す
る。
【0138】第1の実施の形態によるキャッシュメモリ
装置との違いは、図5に示すようにロードブロック数格
納部104に格納された複数のブロック数の中から、第
5アドレス格納部501の出力結果とプロセッサ100
からのメモリアドレス121とが第3比較部503に入
力されその比較結果であるロードブロック数選択信号5
04で選択されたブロック数がロードブロック数格納部
104からロードアドレス生成部107へ送られること
である。
【0139】例えばここではロードブロック数格納部1
04には3通りのブロック数、2、3、4が格納されて
いるとし、第3比較部503はアドレスの上位数ビット
を比較(ここでは上位8ビットとする)して、第5アド
レス格納部501の出力結果とメモリアドレス121と
の比較結果により、一致した場合、第5アドレス格納部
501の出力結果が大きい場合、第5アドレス格納部5
01の出力結果が小さい場合により、それぞれロードブ
ロック数格納部104に格納されている値、2、3、4
を選択してロードアドレス制御部107に与えられるよ
うにするものとする。
【0140】具体的には第5アドレス格納部501に0
1000000が格納されているとすると、プロセッサ
100からのメモリアドレス121が01000000
から01FFFFFFの範囲にあるとき(一致する場
合)は、キャッシュミス時にはミスのあったアドレスを
含むブロックとそれに続く残り1ブロックもキャッシュ
上にロードされる。
【0141】また、00000000から00FFFF
FFの範囲にあるとき(第5アドレス格納部501の出
力結果が大きい場合)は、キャッシュミス時にはミスの
あったアドレスを含むブロックとそれに続く残り2ブロ
ックもキャッシュ上にロードされる。
【0142】また、02000000からFFFFFF
FFの範囲にあるとき(第5アドレス格納部501の出
力結果が小さい場合)は、キャッシュミス時にはミスの
あったアドレスを含むブロックとそれに続く残り3ブロ
ックもキャッシュ上にロードされる。
【0143】キャッシュヒット時およびミス時の基本的
な動作については、ロードブロック数が第5アドレス格
納部501に格納されているアドレスとプロセッサ10
0からのメモリアドレスの比較結果に応じて変わる点を
除けば、第1の実施の形態で説明したものと同じであ
る。
【0144】以上のように、本発明の第4の実施の形態
のキャッシュメモリ装置によれば、ロードブロック数格
納部104と、ロードアドレス制御部107と、プロセ
ッサ100からのラップアラウンド信号120と、第5
アドレス格納部501と、第3比較部503と、ブロッ
クアドレス生成部108と、ワードアドレス生成部10
9を備えたことで、キャッシュミス時にミスしたアドレ
スからブロックのロードを行いブロック内の最終ワード
アドレスになった時点で次のブロック内のワードのロー
ドが行われ、最後のブロック内の全ワードがロードされ
た後に最初のブロック内のワードがロードされる。その
結果、ブロック間に跨って連続アクセスする場合に無駄
な待ち時間が無くなり、必要なデータのアクセスを速や
かに行うことができ、性能の向上を達成することができ
る。
【0145】また、キャッシュミス時にプロセッサ10
0からの要求のあったブロックに連続するブロックのロ
ードを行うか否かはプロセッサ100からのプリフェッ
チ要求信号118で与えられることによりなされ、ま
た、ブロックに跨ってラップアラウンドした順にワード
データをロードするか否かはプロセッサ100からのラ
ップアラウンド信号120によりなされ、さらに連続し
てロードするブロック数は第5アドレス格納部501に
格納されている値とプロセッサ100からのメモリアド
レス121により選択されるので、実行時に動的にブロ
ックデータのロード方法を変えることが可能である。
【0146】
【発明の効果】以上に説明したように、本発明の請求項
1記載のキャッシュメモリ装置によれば、キャッシュミ
スヒット時に主記憶装置からロードするブロック数をロ
ードブロック数格納部で保持し、ブロックアドレス生成
部で第1アドレス格納部から第1のブロックアドレスを
受け、次にロードすべきブロックに対応した第2のブロ
ックアドレスを生成し、ロードアドレス制御部でロード
ブロック数格納部から与えられるブロック数とキャッシ
ュミスヒット時に複数ブロックに跨ってラップアラウン
ドした順にデータをロードすることを要求するプロセッ
サからのラップアラウンド信号からキャッシュミスヒッ
ト時に次にロードすべきブロックに対応した第2のブロ
ックアドレスを生成するようにブロックアドレス生成部
を制御し、ワードアドレス生成部で第1アドレス格納部
から第1のワードアドレスを受け、次にロードすべきワ
ードに対応した第2のワードアドレスを生成し、ブロッ
ク内の最終ワードアドレスになったことをロードアドレ
ス制御部へ通知することによりロードアドレス制御部で
第2のブロックアドレスを更新させるようにしたことに
より、キャッシュミス時にロードブロック数格納部に設
定されたブロック数とプロセッサからのラップアラウン
ド信号とからキャッシュミスしたブロックから順次自キ
ャッシュ内にロードしていき、ワードアドレス生成部か
らのブロック内の最終ワードアドレスになったことを通
知された時点で次のブロックのロードを行い、最終ブロ
ックのロード完了後に最初のブロック内の残りのワード
のロードを完了するので、キャッシュミスしたワードか
ら順次ロードしていきそのブロック内の全ワードのロー
ドの完了を待たずに次のブロック内のワードのロードを
行うので、ブロック間に跨って連続アクセスする場合に
無駄な待ち時間が無くなり性能向上が図れるという有利
な効果が得られる。
【0147】また、本発明の請求項4記載のキャッシュ
メモリ装置によれば、ロードブロック数格納部でキャッ
シュミスヒット時に主記憶装置からロードするブロック
数を保持し、第3アドレス格納部にプロセッサから与え
られるアドレスを格納し、第3アドレス格納部からのア
ドレスとプロセッサからのメモリアドレスを第1比較部
で比較し、ブロックアドレス生成部で第1アドレス格納
部から第1のブロックアドレスを受け、次にロードすべ
きブロックに対応した第2のブロックアドレスを生成
し、ロードアドレス制御部でロードブロック数格納部か
ら与えられるブロック数と第1比較部からのラップアラ
ウンド信号からキャッシュミスヒット時に次にロードす
べきブロックに対応した第2のブロックアドレスを生成
するようにブロックアドレス生成部を制御し、ワードア
ドレス生成部で第1アドレス格納部から第1のワードア
ドレスを受け、次にロードすべきワードに対応した第2
のワードアドレスを生成し、ブロック内の最終ワードア
ドレスになったことをロードアドレス制御部へ通知する
ことによりロードアドレス制御部で第2のブロックアド
レスを更新させるようにしたことにより、キャッシュミ
スした時にアクセスしたアドレスと第3アドレス格納部
に設定されたアドレスとの関係から、ブロックデータの
ロードにおいて複数のブロックに跨ってラップアラウン
ドした順にワードをロードするかどうかが決定され、自
キャッシュメモリ内へのロードが実行されるので、ブロ
ック間に跨ってラップアラウンドするかどうかがソフト
ウエアで柔軟に制御でき、アプリケーションに応じたキ
ャッシュ制御が可能になるという有利な効果が得られ
る。その他の効果は請求項1記載のキャッシュメモリ装
置と同様である。
【0148】また、本発明の請求項6記載のキャッシュ
メモリ装置によれば、第4アドレス格納部にプロセッサ
から与えられるアドレスを格納し、第2比較部で第4ア
ドレス格納部からのアドレスとプロセッサからのメモリ
アドレスを比較し、ロードブロック数格納部でキャッシ
ュミスヒット時に主記憶装置からロードするブロック数
を保持し、ブロックアドレス生成部で第1アドレス格納
部から第1のブロックアドレスを受け、次にロードすべ
きブロックに対応した第2のブロックアドレスを生成
し、ロードアドレス制御部でロードブロック数格納部か
ら与えられるブロック数とキャッシュミスヒット時に複
数ブロックに跨ってラップアラウンドした順にデータを
ロードすることを要求するプロセッサからのラップアラ
ウンド信号からキャッシュミスヒット時に次にロードす
べきブロックに対応した第2のブロックアドレスを生成
するようにブロックアドレス生成部を制御し、ワードア
ドレス生成部で第1アドレス格納部から第1のワードア
ドレスを受け、次にロードすべきワードに対応した第2
のワードアドレスを生成し、ブロック内の最終ワードア
ドレスになったことをロードアドレス制御部へ通知する
ことによりロードアドレス制御部で第2のブロックアド
レスを更新させるようにしたことにより、キャッシュミ
スした時にアクセスしたアドレスと第4アドレス格納部
に設定されたアドレスとの関係から、最初のブロックデ
ータに続く複数ブロックをプリフェッチするかどうかが
決定され、自キャッシュメモリ内へのロードが実行され
るので、1回のキャッシュミスで複数ブロックをロード
するか否かがソフトウエアで柔軟に制御できるためアプ
リケーションに応じたキャッシュ制御が可能になるとい
う有利な効果が得られる。その他の効果は請求項1記載
のキャッシュメモリ装置と同様である。
【0149】また、本発明の請求項8記載のキャッシュ
メモリ装置によれば、ロードブロック数格納部でキャッ
シュミスヒット時に主記憶装置からロードするブロック
数を保持し、第5アドレス格納部にプロセッサから与え
られるアドレスを格納し、第3比較部で第5アドレス格
納部からのアドレスとプロセッサからのメモリアドレス
を比較し、ブロックアドレス生成部で第1アドレス格納
部から第1のブロックアドレスを受け、次にロードすべ
きブロックに対応した第2のブロックアドレスを生成
し、ロードアドレス制御部で第3比較部からのロードブ
ロック数選択信号により選択されたロードブロック数格
納部から与えられるブロック数とキャッシュミスヒット
時に複数ブロックに跨ってラップアラウンドした順にデ
ータをロードすることを要求するプロセッサからのラッ
プアラウンド信号からキャッシュミスヒット時に次にロ
ードすべきブロックに対応した第2のブロックアドレス
を生成するようにブロックアドレス生成部を制御し、ワ
ードアドレス生成部で第1アドレス格納部から第1のワ
ードアドレスを受け、次にロードすべきワードに対応し
た第2のワードアドレスを生成し、ブロック内の最終ワ
ードアドレスになったことをロードアドレス制御部へ通
知することによりロードアドレス制御部で第2のブロッ
クアドレスを更新させるようにしたことにより、キャッ
シュミスした時にアクセスしたアドレスと第5アドレス
格納部に設定されたアドレスとの関係から、最初のブロ
ックデータに続くプリフェッチすべき複数ブロックのブ
ロック数が決定され、自キャッシュメモリ内へのロード
が実行されるので、1回のキャッシュミスでロードする
ブロック数をソフトウエアで柔軟に設定できるためアプ
リケーションに応じたキャッシュ制御が可能になるとい
う有利な効果が得られる。その他の効果は請求項1記載
のキャッシュメモリ装置と同様である。
【図面の簡単な説明】
【図1】本発明の第1の実施の形態におけるキャッシュ
メモリ装置を構成するブロック図である。
【図2】従来のキャッシュメモリ装置を構成するブロッ
ク図である。
【図3】本発明の第2の実施の形態におけるキャッシュ
メモリ装置を構成するブロック図である。
【図4】本発明の第3の実施の形態におけるキャッシュ
メモリ装置を構成するブロック図である。
【図5】本発明の第4の実施の形態におけるキャッシュ
メモリ装置を構成するブロック図である。
【符号の説明】
100 プロセッサ 101 第1キャッシュメモリ装置 102 主記憶装置 118 プリフェッチ要求信号 120 ラップアラウンド信号 104 ロードブロック数格納部 107 ロードアドレス格納部 305 第2キャッシュメモリ装置 405 第3キャッシュメモリ装置 505 第4キャッシュメモリ装置

Claims (8)

    【特許請求の範囲】
  1. 【請求項1】 プロセッサと主記憶装置との間に置かれ
    たキャッシュメモリ装置であって、 前記プロセッサが前記主記憶装置にアクセスする時に出
    力されるメモリアドレスから第1のブロックアドレスと
    第1のワードアドレスを生成する第1アドレス格納部
    と、 前記プロセッサからのメモリアクセス要求信号、および
    キャッシュミスヒット時に前記主記憶装置から連続して
    複数ブロックをロードすることを要求するプリフェッチ
    要求信号を受け、メモリアクセス完了を前記プロセッサ
    へ通知する制御部と、 キャッシュミスヒット時に前記主記憶装置からロードす
    るブロック数を保持するロードブロック数格納部と、 前記第1アドレス格納部から前記第1のブロックアドレ
    スを受け、次にロードすべきブロックに対応した第2の
    ブロックアドレスを生成するブロックアドレス生成部
    と、 前記ロードブロック数格納部から与えられるブロック数
    とキャッシュミスヒット時に複数ブロックに跨ってラッ
    プアラウンドした順にデータをロードすることを要求す
    る前記プロセッサからのラップアラウンド信号からキャ
    ッシュミスヒット時に次にロードすべきブロックに対応
    した前記第2のブロックアドレスを生成するように前記
    ブロックアドレス生成部を制御するロードアドレス制御
    部と、 前記第1アドレス格納部から前記第1のワードアドレス
    を受け、次にロードすべきワードに対応した第2のワー
    ドアドレスを生成し、ブロック内の最終ワードアドレス
    になったことを前記ロードアドレス制御部へ通知するこ
    とにより前記ロードアドレス制御部で前記第2のブロッ
    クアドレスを更新させるワードアドレス生成部と、 前記ブロックアドレス生成部で生成された前記第2のブ
    ロックアドレスと前記ワードアドレス生成部で生成され
    た前記第2のワードアドレスから前記主記憶装置へアク
    セスすべきアドレスを生成する第2アドレス格納部と、 複数のブロックアドレスを保持し、前記ブロックアドレ
    ス生成部で生成された前記第2のブロックアドレスと一
    致するブロックアドレスが前記複数のブロックアドレス
    中にあるかをサーチして一致したかどうかを示すヒット
    信号を前記ロードアドレス制御部と前記制御部へ通知す
    ることによりキャッシュミスヒットを前記ロードアドレ
    ス制御部と前記制御部とに知らせるタグ記憶部と、 前記タグ記憶部からのエントリアドレスによりデータの
    書き込み、および読み出しを行うデータ記憶部と、 前記タグ記憶部からのエントリアドレスをもとに次にリ
    プレースすべきエントリアドレスを決定して前記タグ記
    憶部に指示するリプレースメント制御部と、 前記主記憶装置から読み出されたデータおよび前記プロ
    セッサからのデータを一時的に保持して前記データ記憶
    部へ与える書き込みデータ格納部と、 前記データ記憶部からのデータを一時的に保持して前記
    プロセッサへ与える読み出しデータ格納部とを備えたこ
    とを特徴とするキャッシュメモリ装置。
  2. 【請求項2】 タグ記憶部は、ブロックアドレス生成部
    からの第2のブロックアドレスと一致するブロックアド
    レスが保持した複数のブロックアドレスの中にあるかを
    サーチし、前記第2のブロックアドレスと一致するブロ
    ックアドレスを検出するとこのブロックアドレスが格納
    されているエントリアドレスを出力し、一致するブロッ
    クアドレスがない場合にはリプレースメント制御部で決
    定されるリプレースされるべきエントリアドレスに前記
    第2のブロックアドレスを格納することを特徴とする請
    求項1記載のキャッシュメモリ装置。
  3. 【請求項3】 ロードアドレス制御部は、ロードすべき
    ブロック数を一時的に記憶するカウンタ部を備えてお
    り、このカウンタ部にはロード開始時にロードブロック
    数格納部からのブロック数が設定され、ラップアラウン
    ド信号でラップアラウンド要求がある場合はワードアド
    レス生成部からのブロック内最終ワード完了通知、また
    はタグ記憶部からのヒット信号が一致を示す場合は1つ
    だけカウントダウンされ、カウントダウンされた結果が
    0になればロード開始時の最初のブロックに対応した第
    2のブロックアドレスを生成するように前記ブロックア
    ドレス生成部に指示を行うことを特徴とする請求項1ま
    たは2記載のキャッシュメモリ装置。
  4. 【請求項4】 プロセッサと主記憶装置との間に置かれ
    たキャッシュメモリ装置であって、 前記プロセッサが前記主記憶装置にアクセスする時に出
    力されるメモリアドレスから第1のブロックアドレスと
    第1のワードアドレスを生成する第1アドレス格納部
    と、 前記プロセッサからのメモリアクセス要求信号、および
    キャッシュミスヒット時に前記主記憶装置から連続して
    複数ブロックをロードすることを要求するプリフェッチ
    要求信号を受け、メモリアクセス完了を前記プロセッサ
    へ通知する制御部と、 キャッシュミスヒット時に前記主記憶装置からロードす
    るブロック数を保持するロードブロック数格納部と、 前記プロセッサから与えられるアドレスを格納する第3
    アドレス格納部と、 前記第3アドレス格納部からのアドレスと前記プロセッ
    サからのメモリアドレスを比較する第1比較部と、 前記第1アドレス格納部から前記第1のブロックアドレ
    スを受け、次にロードすべきブロックに対応した第2の
    ブロックアドレスを生成するブロックアドレス生成部
    と、 前記ロードブロック数格納部から与えられるブロック数
    と前記第1比較部からのラップアラウンド信号からキャ
    ッシュミスヒット時に次にロードすべきブロックに対応
    した前記第2のブロックアドレスを生成するように前記
    ブロックアドレス生成部を制御するロードアドレス制御
    部と、 前記第1アドレス格納部から前記第1のワードアドレス
    を受け、次にロードすべきワードに対応した第2のワー
    ドアドレスを生成し、ブロック内の最終ワードアドレス
    になったことを前記ロードアドレス制御部へ通知するこ
    とにより前記ロードアドレス制御部で前記第2のブロッ
    クアドレスを更新させるワードアドレス生成部と、 前記ブロックアドレス生成部で生成された前記第2のブ
    ロックアドレスと前記ワードアドレス生成部で生成され
    た前記第2のワードアドレスから前記主記憶装置へアク
    セスすべきアドレスを生成する第2アドレス格納部と、 複数のブロックアドレスを保持し、前記ブロックアドレ
    ス生成部で生成された前記第2のブロックアドレスと一
    致するブロックアドレスが前記複数のブロックアドレス
    中にあるかをサーチして一致したかどうかを示すヒット
    信号を前記ロードアドレス制御部と前記制御部へ通知す
    ることによりキャッシュミスヒットを前記ロードアドレ
    ス制御部と前記制御部とに知らせるタグ記憶部と、 前記タグ記憶部からのエントリアドレスによりデータの
    書き込み、および読み出しを行うデータ記憶部と、 前記タグ記憶部からのエントリアドレスをもとに次にリ
    プレースすべきエントリアドレスを決定して前記タグ記
    憶部に指示するリプレースメント制御部と、 前記主記憶装置から読み出されたデータおよび前記プロ
    セッサからのデータを一時的に保持して前記データ記憶
    部へ与える書き込みデータ格納部と、 前記データ記憶部からのデータを一時的に保持して前記
    プロセッサへ与える読み出しデータ格納部とを備えたこ
    とを特徴とするキャッシュメモリ装置。
  5. 【請求項5】 第1比較部は、予め第3アドレス格納部
    に設定されたアドレスとプロセッサからのメモリアドレ
    スとを比較し、一致もしくは大小関係が成立した場合
    に、キャッシュミスヒット時に複数ブロックに跨ってラ
    ップアラウンドした順にデータをロードすることを要求
    するラップアラウンド信号をロードアドレス制御部に与
    えることを特徴とする請求項4記載のキャッシュメモリ
    装置。
  6. 【請求項6】 プロセッサと主記憶装置との間に置かれ
    たキャッシュメモリ装置であって、 前記プロセッサが前記主記憶装置にアクセスする時に出
    力されるメモリアドレスから第1のブロックアドレスと
    第1のワードアドレスを生成する第1アドレス格納部
    と、 前記プロセッサから与えられるアドレスを格納する第4
    アドレス格納部と、 前記第4アドレス格納部からのアドレスと前記プロセッ
    サからのメモリアドレスを比較する第2比較部と、 前記プロセッサからのメモリアクセス要求信号、および
    前記第2比較部からのプリフェッチ要求信号を受け、メ
    モリアクセス完了を前記プロセッサへ通知する制御部
    と、 キャッシュミスヒット時に前記主記憶装置からロードす
    るブロック数を保持するロードブロック数格納部と、 前記第1アドレス格納部から前記第1のブロックアドレ
    スを受け、次にロードすべきブロックに対応した第2の
    ブロックアドレスを生成するブロックアドレス生成部
    と、 前記ロードブロック数格納部から与えられるブロック数
    とキャッシュミスヒット時に複数ブロックに跨ってラッ
    プアラウンドした順にデータをロードすることを要求す
    る前記プロセッサからのラップアラウンド信号からキャ
    ッシュミスヒット時に次にロードすべきブロックに対応
    した前記第2のブロックアドレスを生成するように前記
    ブロックアドレス生成部を制御するロードアドレス制御
    部と、 前記第1アドレス格納部から前記第1のワードアドレス
    を受け、次にロードすべきワードに対応した第2のワー
    ドアドレスを生成し、ブロック内の最終ワードアドレス
    になったことを前記ロードアドレス制御部へ通知するこ
    とにより前記ロードアドレス制御部で前記第2のブロッ
    クアドレスを更新させるワードアドレス生成部と、 前記ブロックアドレス生成部で生成された前記第2のブ
    ロックアドレスと前記ワードアドレス生成部で生成され
    た前記第2のワードアドレスから前記主記憶装置へアク
    セスすべきアドレスを生成する第2アドレス格納部と、 複数のブロックアドレスを保持し、前記ブロックアドレ
    ス生成部で生成された前記第2のブロックアドレスと一
    致するブロックアドレスが前記複数のブロックアドレス
    中にあるかをサーチして一致したかどうかを示すヒット
    信号を前記ロードアドレス制御部と前記制御部へ通知す
    ることによりキャッシュミスヒットを前記ロードアドレ
    ス制御部と前記制御部とに知らせるタグ記憶部と、 前記タグ記憶部からのエントリアドレスによりデータの
    書き込み、および読み出しを行うデータ記憶部と、 前記タグ記憶部からのエントリアドレスをもとに次にリ
    プレースすべきエントリアドレスを決定して前記タグ記
    憶部に指示するリプレースメント制御部と、 前記主記憶装置から読み出されたデータおよび前記プロ
    セッサからのデータを一時的に保持して前記データ記憶
    部へ与える書き込みデータ格納部と、 前記データ記憶部からのデータを一時的に保持して前記
    プロセッサへ与える読み出しデータ格納部とを備えたこ
    とを特徴とするキャッシュメモリ装置。
  7. 【請求項7】 第2比較部は、予め第4アドレス格納部
    に設定されたアドレスとプロセッサからのメモリアドレ
    スとを比較し、一致もしくは大小関係が成立した場合
    に、キャッシュミスヒット時に主記憶装置から連続して
    複数ブロックをロードすることを要求するプリフェッチ
    要求信号を制御部に与えることを特徴とする請求項6記
    載のキャッシュメモリ装置。
  8. 【請求項8】 プロセッサと主記憶装置との間に置かれ
    たキャッシュメモリ装置であって、 前記プロセッサが前記主記憶装置にアクセスする時に出
    力されるメモリアドレスから第1のブロックアドレスと
    第1のワードアドレスを生成する第1アドレス格納部
    と、 前記プロセッサからのメモリアクセス要求信号、および
    キャッシュミスヒット時に前記主記憶装置から連続して
    複数ブロックをロードすることを要求するプリフェッチ
    要求信号を受け、メモリアクセス完了を前記プロセッサ
    へ通知する制御部と、 キャッシュミスヒット時に前記主記憶装置からロードす
    るブロック数を保持するロードブロック数格納部と、 前記プロセッサから与えられるアドレスを格納する第5
    アドレス格納部と、 前記第5アドレス格納部からのアドレスと前記プロセッ
    サからのメモリアドレスを比較する第3比較部と、 前記第1アドレス格納部から前記第1のブロックアドレ
    スを受け、次にロードすべきブロックに対応した第2の
    ブロックアドレスを生成するブロックアドレス生成部
    と、 前記第3比較部からのロードブロック数選択信号により
    選択された前記ロードブロック数格納部から与えられる
    ブロック数とキャッシュミスヒット時に複数ブロックに
    跨ってラップアラウンドした順にデータをロードするこ
    とを要求する前記プロセッサからのラップアラウンド信
    号からキャッシュミスヒット時に次にロードすべきブロ
    ックに対応した前記第2のブロックアドレスを生成する
    ように前記ブロックアドレス生成部を制御するロードア
    ドレス制御部と、 前記第1アドレス格納部から前記第1のワードアドレス
    を受け、次にロードすべきワードに対応した第2のワー
    ドアドレスを生成し、ブロック内の最終ワードアドレス
    になったことを前記ロードアドレス制御部へ通知するこ
    とにより前記ロードアドレス制御部で前記第2のブロッ
    クアドレスを更新させるワードアドレス生成部と、 前記ブロックアドレス生成部で生成された前記第2のブ
    ロックアドレスと前記ワードアドレス生成部で生成され
    た前記第2のワードアドレスから前記主記憶装置へアク
    セスすべきアドレスを生成する第2アドレス格納部と、 複数のブロックアドレスを保持し、前記ブロックアドレ
    ス生成部で生成された前記第2のブロックアドレスと一
    致するブロックアドレスが前記複数のブロックアドレス
    中にあるかをサーチして一致したかどうかを示すヒット
    信号を前記ロードアドレス制御部と前記制御部へ通知す
    ることによりキャッシュミスヒットを前記ロードアドレ
    ス制御部と前記制御部とに知らせるタグ記憶部と、 前記タグ記憶部からのエントリアドレスによりデータの
    書き込み、および読み出しを行うデータ記憶部と、 前記タグ記憶部からのエントリアドレスをもとに次にリ
    プレースすべきエントリアドレスを決定して前記タグ記
    憶部に指示するリプレースメント制御部と、 前記主記憶装置から読み出されたデータおよび前記プロ
    セッサからのデータを一時的に保持して前記データ記憶
    部へ与える書き込みデータ格納部と、 前記データ記憶部からのデータを一時的に保持して前記
    プロセッサへ与える読み出しデータ格納部とを備えたこ
    とを特徴とするキャッシュメモリ装置。
JP11154503A 1999-06-02 1999-06-02 キャッシュメモリ装置 Pending JP2000347934A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP11154503A JP2000347934A (ja) 1999-06-02 1999-06-02 キャッシュメモリ装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP11154503A JP2000347934A (ja) 1999-06-02 1999-06-02 キャッシュメモリ装置

Publications (1)

Publication Number Publication Date
JP2000347934A true JP2000347934A (ja) 2000-12-15

Family

ID=15585676

Family Applications (1)

Application Number Title Priority Date Filing Date
JP11154503A Pending JP2000347934A (ja) 1999-06-02 1999-06-02 キャッシュメモリ装置

Country Status (1)

Country Link
JP (1) JP2000347934A (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010512580A (ja) * 2006-12-08 2010-04-22 クゥアルコム・インコーポレイテッド 低複雑性命令プリフェッチシステム
JP2012146139A (ja) * 2011-01-12 2012-08-02 Sony Corp メモリアクセス制御回路、プリフェッチ回路、メモリ装置および情報処理システム

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010512580A (ja) * 2006-12-08 2010-04-22 クゥアルコム・インコーポレイテッド 低複雑性命令プリフェッチシステム
JP2012146139A (ja) * 2011-01-12 2012-08-02 Sony Corp メモリアクセス制御回路、プリフェッチ回路、メモリ装置および情報処理システム

Similar Documents

Publication Publication Date Title
US5353421A (en) Multi-prediction branch prediction mechanism
US6401192B1 (en) Apparatus for software initiated prefetch and method therefor
US5148538A (en) Translation look ahead based cache access
US7657726B2 (en) Context look ahead storage structures
JP2881049B2 (ja) プリフェッチバッファ
US6401193B1 (en) Dynamic data prefetching based on program counter and addressing mode
US5961631A (en) Data processing apparatus and method for pre-fetching an instruction in to an instruction cache
JPH0321934B2 (ja)
JP3518770B2 (ja) 命令をその少なくとも1つの実行装置へ迅速にディスパッチする方法および装置
JPH10232834A (ja) キャッシュメモリを作動する方法およびコンピュータシステム
JPH0364893B2 (ja)
JPH05134927A (ja) アドレス変換装置および方法
JPH06168119A (ja) データ先読み制御装置
US6687807B1 (en) Method for apparatus for prefetching linked data structures
JP2013097671A (ja) アドレス変換装置、アドレス変換装置の制御方法及び演算処理装置
JP2000347934A (ja) キャッシュメモリ装置
JP3284508B2 (ja) データ先読み制御装置
JPH0477344B2 (ja)
JPH03175548A (ja) マイクロプロセッサ及びアドレス制御方式
JPH08161226A (ja) データ先読み制御方法,キャッシュ制御装置およびデータ処理装置
JPH08314803A (ja) ディスクキャッシュ制御装置
JP2004038601A (ja) キャッシュメモリ装置
KR960029986A (ko) 데이타처리장치 및 캐쉬메모리제어방법
JPH0659890A (ja) キャッシュメモリ装置
JP2001344152A (ja) キャッシュメモリ装置