JPH10187531A - キャッシュメモリのプリフェッチ方式 - Google Patents

キャッシュメモリのプリフェッチ方式

Info

Publication number
JPH10187531A
JPH10187531A JP8357505A JP35750596A JPH10187531A JP H10187531 A JPH10187531 A JP H10187531A JP 8357505 A JP8357505 A JP 8357505A JP 35750596 A JP35750596 A JP 35750596A JP H10187531 A JPH10187531 A JP H10187531A
Authority
JP
Japan
Prior art keywords
data
prefetch
signal
address
processor
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
JP8357505A
Other languages
English (en)
Inventor
Seiji Baba
清司 馬場
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.)
NEC Corp
Original Assignee
NEC 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 NEC Corp filed Critical NEC Corp
Priority to JP8357505A priority Critical patent/JPH10187531A/ja
Publication of JPH10187531A publication Critical patent/JPH10187531A/ja
Pending legal-status Critical Current

Links

Landscapes

  • Memory System Of A Hierarchy Structure (AREA)

Abstract

(57)【要約】 【課題】 効率的なプリフェッチを行い、プロセッサか
らの要求に対するヒット率を向上させ、プロセッサに対
して高速にデータの提供を行う。 【解決手段】 信号入力部40は、プロセッサ200か
らの要求がプログラムフェッチであるかデータアクセス
であるかを示すコード信号と、データアクセスが単発ア
クセスか連続アクセスかを示すモード信号と、データア
クセスがアドレスの昇順方向であるか降順方向であるか
を示すディレクション信号とを入力する。データ制御回
路4は、信号入力部40により入力されたコード信号,
モード信号,およびディレクション信号がそれぞれ「デ
ータアクセス」,「連続アクセス」,および「降順方
向」を示している場合にはアドレスの降順方向にプリフ
ェッチ動作を行うように制御し、それ以外の場合にはア
ドレスの昇順方向にプリフェッチ動作を行うように制御
する。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、キャッシュメモリ
の制御方式に関し、特にキャッシュメモリのプリフェッ
チ方式に関する。
【0002】
【従来の技術】図3(a)および(b)は、従来のキャ
ッシュメモリのプリフェッチ方式に関する特許公報(特
開昭63−751号公報および特開平4−44139号
公報)に係る技術(当該公報における発明の名称は「プ
リフェッチ制御方式」である)を説明するための図であ
る。
【0003】同図において、(a)はキャッシュメモリ
へのフェッチ要求があった際には必ず次のブロックをプ
リフェッチする制御を行うキャッシュメモリのプリフェ
ッチ方式の構成を示すブロック図であり、(b)はデー
タをキャッシュメモリにプリフェッチする際にはプリフ
ェッチ命令を挿入して事前にデータをプリフェッチする
制御を行うキャッシュメモリのプリフェッチ方式の構成
を示すブロック図である。
【0004】図3(a)の従来方式は、命令処理部(フ
ェッチアドレスを送出する処理部)が実行するプログラ
ムおよびオペランドデータのアドレス分布に局所性があ
ることに着目し、命令処理部からのフェッチアドレスの
データがキャッシュメモリに存在(ヒット)した場合に
は当該ブロックの次のブロックをサーチし、当該データ
がキャッシュメモリに存在しない場合には主記憶装置へ
のプリフェッチを行うことにより、キャッシュメモリの
効率的な使用を可能とするものである。
【0005】図3(b)の従来方式は、プログラム中で
データを使用する場合には当該データを使用する命令の
数命令前にプリフェッチ命令を挿入して、予め当該デー
タをキャッシュメモリにプリフェッチしておくことによ
り、キャッシュミスによる処理速度の低下を防ぐもので
ある。
【0006】
【発明が解決しようとする課題】上述の従来方式には、
以下に示すような問題点があった。
【0007】第1の問題点は、従来の技術においてプロ
セッサ(命令処理部)から要求のあったプログラムおよ
びデータを常にプリフェッチする場合には、キャッシュ
メモリ内の領域が有効に活用されないということであ
る。その理由は、主記憶装置内のデータ領域は常に連続
しているわけではないので、プリフェッチ時にプロセッ
サが必要としていないデータを多量にキャッシュメモリ
に転送してしまい、プリフェッチの有効性が少なくな
り、必要としているデータをキャッシュメモリから消去
してしまうことがあるからである。
【0008】第2の問題点は、従来の技術においてデー
タのプリフェッチを行う場合には、データの並びに無関
係にアドレスの一方向に向かってプリフェッチ動作を行
うということである。一般に、十進数のようなストリン
グデータをプロセッサで演算する際には、アドレスの昇
順方向および降順方向の両方向に向かってデータを読み
出す場合が多い。したがって、上述のように片方向のプ
リフェッチ動作では、プロセッサが必要としないデータ
をキャッシュメモリに転送してしまい、プリフェッチの
有効性が少なくなるおれが生じる。
【0009】本発明の目的は、上述の点に鑑み、プリフ
ェッチ機能を備えたキャッシュメモリにおいて、効率的
なプリフェッチを行い、プロセッサからの要求に対して
ヒット率を向上させることができ、プロセッサに対して
高速にデータの提供を行うことができるキャッシュメモ
リのプリフェッチ方式を実現することにある。
【0010】
【課題を解決するための手段】本発明のキャッシュメモ
リのプリフェッチ方式は、主記憶装置に対するプリフェ
ッチ機能を備えたキャッシュメモリを有する計算機シス
テムにおける当該キャッシュメモリにおいて、主記憶装
置内のデータの写しを格納するメモリ部と、プロセッサ
から要求されたフェッチアドレスを保持するアドレスレ
ジスタと、前記アドレスレジスタ内のフェッチアドレス
のデータが前記メモリ部に存在するか否かを判定するヒ
ット/ミスヒット判定を行う比較器と、プロセッサから
の要求がプログラムフェッチであるかデータアクセスで
あるかを示すコード信号と、プロセッサからのデータア
クセスが単発アクセスか連続アクセスかを示すモード信
号と、プロセッサからのデータアクセスがアドレスの昇
順方向であるか降順方向であるかを示すディレクション
信号とを入力する信号入力部と、前記比較器によるヒッ
ト/ミスヒット判定が「ミスヒット」である場合に主記
憶装置からデータをブロックロードする制御を行うとと
もに、前記信号入力部により入力されたコード信号,モ
ード信号,およびディレクション信号がそれぞれ「デー
タアクセス」,「連続アクセス」,および「降順方向」
を示している場合にはアドレスの降順方向にプリフェッ
チ動作を行うように制御し、それ以外の場合にはアドレ
スの昇順方向にプリフェッチ動作を行うように制御する
データ制御回路とを有する。
【0011】
【発明の実施の形態】次に、本発明の実施の形態につい
て図面を参照して詳細に説明する。
【0012】
【実施例】図1は、本発明のキャッシュメモリのプリフ
ェッチ方式の一実施例の構成を示すブロック図である。
【0013】図1を参照すると、本実施例のキャッシュ
メモリのプリフェッチ方式は、キャッシュメモリ100
と、プロセッサ200と、主記憶装置300とを含んで
構成されている。
【0014】本実施例のキャッシュメモリのプリフェッ
チ方式におけるキャッシュメモリ100は、図1の破線
に囲まれた部分で実現される。
【0015】このキャッシュメモリ100は、プロセッ
サ200と、フェッチアドレス信号線5,データ信号線
6,コード信号線7,プリフェッチ許可信号線8,モー
ド信号線9,ディレクション信号線10で接続されてい
る。また、当該キャッシュメモリ100は、主記憶装置
300と、主記憶アドレス信号線11および主記憶デー
タ信号線12で接続されている。
【0016】図1中の各信号線上の信号(データを含
む)は、次の〜に示す内容を有している。
【0017】 フェッチアドレス信号線5上の信号:
プロセッサ200から要求されるフェッチアドレスを示
すフェッチアドレス信号
【0018】 データ信号線6上の信号:プロセッサ
200に出力されるデータ
【0019】 コード信号線7上の信号:プロセッサ
200からの要求(フェッチ要求)がプログラムフェッ
チ(プログラムのコードのフェッチ)であるかデータア
クセス(データのフェッチ)であるかを1/0(二進数
の1や0という数値はあくまでも例である。他の信号に
おいても同様)で示すコード信号
【0020】 プリフェッチ許可信号線8上の信号:
プリフェッチ動作を許可するか否かを1/0で示すプリ
フェッチ許可信号
【0021】 モード信号線9上の信号:プロセッサ
200からのデータアクセスが単発アクセスか連続アク
セスかを0/1で示すモード信号
【0022】 ディレクション信号線10上の信号:
プロセッサ200からのデータアクセスがアドレスの昇
順方向であるか降順方向であるかを1/0で示すディレ
クション信号
【0023】 主記憶アドレス信号線11上の信号:
キャッシュメモリ100から主記憶装置300に出力さ
れるアドレス
【0024】 主記憶データ信号線12上の信号:主
記憶装置300からキャッシュメモリ100に入力され
るデータ
【0025】キャッシュメモリ100は、プロセッサ2
00から要求されたプリフェッチアドレスを格納(保
持)するアドレスレジスタ1と、主記憶装置300内の
データの写しを格納する(主記憶装置300から読み込
まれたデータを保持する)メモリ部2(キャッシュタグ
領域21およびデータ領域22からなる)と、プロセッ
サ200から要求されたフェッチアドレスのデータがメ
モリ部2に存在するか否かの判定(ヒット/ミスヒット
判定)を行う比較器3と、キャッシュメモリ100とプ
ロセッサ200および主記憶装置300との間のデータ
の流れを制御してミスヒットした場合には主記憶装置3
00からデータをブロックロードする制御を行うデータ
制御回路4と、コード信号,プリフェッチ許可信号,モ
ード信号,およびディレクション信号を入力する信号入
力部40(信号入力部40はデータ制御回路4の一部と
して構成することも可能である)とを含んで構成されて
いる。
【0026】図2は、本実施例のキャッシュメモリのプ
リフェッチ方式の処理を示す流れ図(フローチャート)
である。この処理は、ヒット/ミスヒット判定ステップ
201と、キャッシュメモリ内データプロセッサ出力ス
テップ202と、ブロックロードステップ203と、コ
ード信号判定ステップ204と、モード信号判定ステッ
プ205と、ディレクション信号判定ステップ206
と、アドレス昇順方向プリフェッチステップ207と、
アドレス降順方向プリフェッチステップ208とからな
る。
【0027】次に、このように構成された本実施例のキ
ャッシュメモリのプリフェッチ方式の動作について、図
1および図2を参照して詳細に説明する。
【0028】プロセッサ200からフェッチ要求がある
と、フェッチアドレス信号線5を経由して、キャッシュ
メモリ100内のアドレスレジスタ1に要求アドレス
(フェッチアドレス)が入力され、キャッシュメモリ1
00内の各構成要素は以下に示すような処理を行う(図
2参照)。
【0029】比較器3は、アドレスレジスタ1の内容と
メモリ部2内のキャッシュタグ領域21の内容とを比較
して、アドレスレジスタ1の内容(フェッチアドレス)
と一致するアドレスがキャッシュタグ領域21にあるか
否か(ヒットかミスヒットか)を判定する(ステップ2
01)。
【0030】データ制御回路4は、ステップ201で
「アドレスレジスタ1の内容と一致するアドレスがキャ
ッシュタグ領域21にある」と比較器3により判定され
た場合(ヒットの場合)には、キャッシュメモリ100
の内容(上記の判定でヒットの対象となったキャッシュ
タグに対応するデータ領域22内のデータ)をデータ信
号線6を経由してプロセッサ200に出力する(ステッ
プ202)。
【0031】一方、データ制御回路4は、ステップ20
1で「アドレスレジスタ1の内容と一致するアドレスが
キャッシュタグ領域21にない」と比較器3により判定
された場合(ミスヒットの場合)には、キャッシュメモ
リ100内にプロセッサ200が要求するデータが存在
しないことを認識し、主記憶装置300に対するブロッ
クロード処理を行い、そのブロックロード処理によって
取得したフェッチ要求の対象のデータをプロッセッサ2
00に出力する(ステップ203)。
【0032】ここで、ブロックロード処理とは、主記憶
装置300に対して主記憶アドレス信号線11を経由し
てフェッチアドレスを出力し、主記憶データ信号線12
を経由して必要なデータを含むブロックを入力する処理
を意味する。
【0033】ところで、信号入力部40は、プロセッサ
200から、コード信号線7,プリフェッチ許可信号線
8,モード信号線9,およびディレクション信号線10
を介して、それぞれコード信号,プリフェッチ許可信
号,モード信号,およびディレクション信号を入力して
いる。
【0034】データ制御回路4は、ステップ202また
はステップ203の処理の後に、信号入力部40によっ
て入力された各信号を参照し、図2に示す流れ図に従っ
て以下の〜に示すプリフェッチ動作を行う。なお、
図2の流れ図では、プリフェッチ許可信号が”1”の場
合、すなわちプリフェッチが許可されている場合につい
てのみ示している(プリフェッチ許可信号が”0”の場
合、すなわちプリフェッチが許可されていない場合に
は、以下の〜に示すプリフェッチ動作は行われな
い)。
【0035】 コード信号が”1”であるか否かを判
定する(ステップ204)。コード信号が”1”である
場合、すなわちプロセッサ200からのフェッチ要求が
プログラムフェッチである場合には、アドレスの昇順方
向にある次ブロックをプリフェッチしてメモリ部2に格
納する(ステップ207)。
【0036】 コード信号が”1”でない場合(”
0”である場合)、すなわちプロセッサからのフェッチ
要求がデータアクセスである場合には、さらにモード信
号を参照して、モード信号が”1”であるか否かを判定
する(ステップ205)。モード信号が”1”でない場
合(”0”である場合)、すなわちデータアクセスが単
発のメモリアクセスで終了する場合には、アドレスの昇
順方向にある次ブロックをプリフェッチしてメモリ部2
に格納する(ステップ207)。
【0037】 モード信号が”1”である場合、すな
わちデータアクセスが連続したメモリアクセスからなる
場合には、さらにディレクション信号を参照して、ディ
レクション信号が”1”であるか否かを判定する(ステ
ップ206)。ディレクション信号が”1”でない場合
(”0”である場合)、すなわちデータの読込み方向が
アドレスの降順方向に続く場合には、アドレスの降順方
向にある次ブロックをプリフェッチしてメモリ部2に格
納する(ステップ208)。
【0038】 ディレクション信号が”1”である場
合、すなわちデータの読込み方向がアドレスの昇順方向
に続く場合には、アドレスの昇順方向にある次ブロック
をプリフェッチしてメモリ部2に格納する(ステップ2
07)。
【0039】以上のように、プロセッサ200により処
理される命令の種類等によってプリフェッチの方向およ
びプリフェッチの可否を変更することができ、きめの細
かいプリフェッチの制御が可能となる。
【0040】なお、上記の実施例では、信号入力部40
によってプリフェッチ許可信号が入力され、データ制御
回路4によってそのプリフェッチ許可信号に基づくプリ
フェッチ動作の可否の判定が行われる場合について述べ
た。しかし、プリフェッチ許可信号の考え方を採用せず
に、常にプリフェッチ動作を行うように制御するように
設定しても、本発明のキャッシュメモリのプリフェッチ
方式を実現できることはいうまでもない。
【0041】
【発明の効果】本発明のキャッシュメモリのプリフェッ
チ方式は、キャッシュメモリへの要求がデータアクセス
であることをコード信号によって検出した場合には、プ
ロセッサからのデータアクセスがストリングデータの処
理のように連続したアクセスであるか否かをモード信号
によって検出し、データアクセスがアドレスの昇順に行
われるのか降順に行われるのかをディレクション信号に
よって検出することにより、ストリングデータの演算の
ような特定の処理に対してプリフェッチ動作のアドレス
方向を可変とすることができる。これによって、本発明
では、プロセッサが不要なデータをキャッシュメモリ内
に読み込むことをなくすことができ、効率的なキャッシ
ュメモリの使用を実現することができるようになる。
【0042】すなわち、プリフェッチ許可信号の考え方
を採用することとも併せて、以下に示すような効果が生
じる。
【0043】第1の効果は、プロセッサから要求のあっ
たプログラムおよびデータを常にプリフェッチするわけ
ではないため、キャッシュメモリ内の領域が有効に活用
されるということである。このような効果が生じる理由
は、プロセッサにて処理される命令毎にプリフェッチ許
可信号を変化させることが可能であり、不必要なプリフ
ェッチ動作を抑止することができるからである。
【0044】第2の効果は、データのプリフェッチ時に
はプロセッサが要求するデータの読出し方向にプリフェ
ッチを行うことができるということである。このような
効果が生じる理由は、プロセッサにて処理される命令毎
にデータのプリフェッチ動作をアドレスの昇順方向に行
うか降順方向に行うかを切り替えることができるからで
ある。
【図面の簡単な説明】
【図1】本発明のキャッシュメモリのプリフェッチ方式
の一実施例の構成を示すブロック図である。
【図2】図1に示すキャッシュメモリのプリフェッチ方
式の処理を示す流れ図である。
【図3】従来のキャッシュメモリのプリフェッチ方式の
具体例の構成を示すブロック図である。
【符号の説明】
1 アドレスレジスタ 2 メモリ部 3 比較器 4 データ制御回路 5 フェッチアドレス信号線 6 データ信号線 7 コード信号線 8 プリフェッチ許可信号線 9 モード信号線 10 ディレクション信号線 11 主記憶アドレス信号線 12 主記憶データ信線号 21 キャッシュタグ領域 22 データ領域 40 信号入力部 100 キャッシュメモリ 200 プロセッサ 300 主記憶装置

Claims (2)

    【特許請求の範囲】
  1. 【請求項1】 主記憶装置に対するプリフェッチ機能を
    備えたキャッシュメモリを有する計算機システムにおけ
    る当該キャッシュメモリにおいて、 主記憶装置内のデータの写しを格納するメモリ部と、 プロセッサから要求されたフェッチアドレスを保持する
    アドレスレジスタと、 前記アドレスレジスタ内のフェッチアドレスのデータが
    前記メモリ部に存在するか否かを判定するヒット/ミス
    ヒット判定を行う比較器と、 プロセッサからの要求がプログラムフェッチであるかデ
    ータアクセスであるかを示すコード信号と、プロセッサ
    からのデータアクセスが単発アクセスか連続アクセスか
    を示すモード信号と、プロセッサからのデータアクセス
    がアドレスの昇順方向であるか降順方向であるかを示す
    ディレクション信号とを入力する信号入力部と、 前記比較器によるヒット/ミスヒット判定が「ミスヒッ
    ト」である場合に主記憶装置からデータをブロックロー
    ドする制御を行うとともに、前記信号入力部により入力
    されたコード信号,モード信号,およびディレクション
    信号がそれぞれ「データアクセス」,「連続アクセ
    ス」,および「降順方向」を示している場合にはアドレ
    スの降順方向にプリフェッチ動作を行うように制御し、
    それ以外の場合にはアドレスの昇順方向にプリフェッチ
    動作を行うように制御するデータ制御回路とを有するこ
    とを特徴とするキャッシュメモリのプリフェッチ方式。
  2. 【請求項2】 コード信号,モード信号,およびディレ
    クション信号とともにプリフェッチ動作を許可するか否
    かを示すプリフェッチ許可信号を入力する信号入力部
    と、 前記信号入力部により入力されたプリフェッチ許可信号
    が「プリフェッチ動作の許可」を示している場合にのみ
    プリフェッチ動作を行うように制御するデータ制御回路
    とを有することを特徴とする請求項1記載のキャッシュ
    メモリのプリフェッチ方式。
JP8357505A 1996-12-27 1996-12-27 キャッシュメモリのプリフェッチ方式 Pending JPH10187531A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP8357505A JPH10187531A (ja) 1996-12-27 1996-12-27 キャッシュメモリのプリフェッチ方式

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP8357505A JPH10187531A (ja) 1996-12-27 1996-12-27 キャッシュメモリのプリフェッチ方式

Publications (1)

Publication Number Publication Date
JPH10187531A true JPH10187531A (ja) 1998-07-21

Family

ID=18454469

Family Applications (1)

Application Number Title Priority Date Filing Date
JP8357505A Pending JPH10187531A (ja) 1996-12-27 1996-12-27 キャッシュメモリのプリフェッチ方式

Country Status (1)

Country Link
JP (1) JPH10187531A (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007500402A (ja) * 2003-05-07 2007-01-11 フリースケール セミコンダクター インコーポレイテッド 周辺装置アクセス保護付きデータ処理システム
CN111651120A (zh) * 2020-04-28 2020-09-11 中国科学院微电子研究所 预取数据的方法及装置

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007500402A (ja) * 2003-05-07 2007-01-11 フリースケール セミコンダクター インコーポレイテッド 周辺装置アクセス保護付きデータ処理システム
CN111651120A (zh) * 2020-04-28 2020-09-11 中国科学院微电子研究所 预取数据的方法及装置
CN111651120B (zh) * 2020-04-28 2023-08-08 中国科学院微电子研究所 预取数据的方法及装置

Similar Documents

Publication Publication Date Title
US6295594B1 (en) Dynamic memory allocation suitable for stride-based prefetching
US5941981A (en) System for using a data history table to select among multiple data prefetch algorithms
US5829028A (en) Data cache configured to store data in a use-once manner
KR100327854B1 (ko) 캐시메모리시스템
JPH07281895A (ja) 分岐キャッシュ
JPH06208463A (ja) 命令をその少なくとも1つの実行装置へ迅速にディスパッチする方法および装置
JPH06187150A (ja) キャッシュメモリ中でインストラクションを保管する方法及び回路
US5930820A (en) Data cache and method using a stack memory for storing stack data separate from cache line storage
US5958045A (en) Start of access instruction configured to indicate an access mode for fetching memory operands in a microprocessor
US6216208B1 (en) Prefetch queue responsive to read request sequences
US5666505A (en) Heuristic prefetch mechanism and method for computer system
US5146570A (en) System executing branch-with-execute instruction resulting in next successive instruction being execute while specified target instruction is prefetched for following execution
JP3590427B2 (ja) 先行読出機能付命令キャッシュメモリ
US5274776A (en) Information processing system having mode signal holding means and selecting operand access mode based on mode signal indicating type of currently executed instruction
US6308242B1 (en) Apparatus for adaptively controlling a prefetch queue based on various flush conditions
JPH10187531A (ja) キャッシュメモリのプリフェッチ方式
US5765190A (en) Cache memory in a data processing system
JPH07121443A (ja) 情報処理システム及びその動作方法
US6192449B1 (en) Apparatus and method for optimizing performance of a cache memory in a data processing system
JP2001273137A (ja) マイクロプロセッサ
US5524221A (en) Next instruction pointer calculation system for a microcomputer
JPH08161226A (ja) データ先読み制御方法,キャッシュ制御装置およびデータ処理装置
JPH10254782A (ja) データ処理装置
JPH08286914A (ja) メモリ制御装置
EP0557077A1 (en) Method for switching between memory management modes