JP3254019B2 - データ先読み制御装置 - Google Patents

データ先読み制御装置

Info

Publication number
JP3254019B2
JP3254019B2 JP32040792A JP32040792A JP3254019B2 JP 3254019 B2 JP3254019 B2 JP 3254019B2 JP 32040792 A JP32040792 A JP 32040792A JP 32040792 A JP32040792 A JP 32040792A JP 3254019 B2 JP3254019 B2 JP 3254019B2
Authority
JP
Japan
Prior art keywords
address
access
predicted
data
central processing
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.)
Expired - Fee Related
Application number
JP32040792A
Other languages
English (en)
Other versions
JPH06168119A (ja
Inventor
義博 草野
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.)
Fujitsu Ltd
Original Assignee
Fujitsu 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 Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP32040792A priority Critical patent/JP3254019B2/ja
Priority to US08/158,318 priority patent/US5412786A/en
Publication of JPH06168119A publication Critical patent/JPH06168119A/ja
Application granted granted Critical
Publication of JP3254019B2 publication Critical patent/JP3254019B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline, look ahead
    • G06F9/3802Instruction prefetching
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0862Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with prefetch
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline, look ahead
    • G06F9/3824Operand accessing
    • G06F9/383Operand prefetching
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline, look ahead
    • G06F9/3824Operand accessing
    • G06F9/383Operand prefetching
    • G06F9/3832Value prediction for operands; operand history buffers

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Advance Control (AREA)

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明はデータ先読み制御装置,
特に中央処理装置が記憶装置へアクセスしたときのアド
レスの履歴情報をもとに,次にアクセスするデータの予
測を行い,データの先読みを行うことにより,アクセス
時間を見かけ上短縮可能としたデータ先読み制御装置に
関する。
【0002】
【従来の技術】現在では,中央処理装置と主記憶装置の
処理速度の差には大きな隔たりがある。中央処理装置の
処理速度のほうが,主記憶装置のそれよりも何倍も高速
であるのが一般的である。もちろん,中央処理装置の処
理速度に見合ったアクセス速度を持つ記憶素子も存在す
るが,それらは高価であり,大容量の主記憶装置を構成
するには不適当である。
【0003】高速な中央処理装置と低速な主記憶装置の
組み合わせでは,中央処理装置をデータの消費者,主記
憶装置をデータの供給者と考えた場合,データの供給不
足状態が起こり,中央処理装置はほとんどの時間を主記
憶装置からのデータ待ちの時間に費やしてしまい,処理
性能の低下が起こる。
【0004】このデータ待ちの時間を減少させるため
に,中央処理装置と主記憶装置との間に,主記憶装置よ
りも小容量であるが高速なバッファ記憶装置を設置し
て,中央処理装置との速度差の緩和を図ることが行われ
る。このバッファ記憶装置を,一般にはキャッシュ装置
と呼ぶ。その他の手法としてはデータの先読み方式があ
る。
【0005】データ先読み方式として,従来,大別して
以下の2つの技術が用いられている。1つは分岐予測に
よる先読みであり,もう1つは分岐予測に限定されない
先読みである。
【0006】分岐予測による先読みは,分岐命令実行の
パイプラインの乱れを抑えるために,分岐命令の次に実
行される命令を予測するもので,以下のような手法があ
る。これらの方式では,共通して過去の分岐の履歴を記
憶しておく分岐履歴テーブルが用いられる。
【0007】 分岐命令が格納されているアドレスを
キーとして分岐履歴テーブルを引き,分岐先の命令を得
てこれを実行する。 分岐命令が格納されているアドレスをキーとして分
岐履歴テーブルを引き,分岐先のアドレスを予測し,こ
れを用いて先読みをする。
【0008】 分岐命令が格納されているアドレスを
キーとして分岐履歴テーブルを引き,その分岐命令の分
岐/非分岐を予測し,その結果を用いて次命令を先読み
する。
【0009】 分岐命令にカウンタを付与し,分岐時
にはそのカウンタを+1し,非分岐時には−1すること
により,この分岐命令の分岐/非分岐の確率を得て,こ
れをもとに実命令を予測して先読みする。
【0010】一方,従来の分岐予測に限定されないデー
タの先読み方式としては,例えばX番地にアクセスした
ときに,そのX番地に定数nを加えた番地,すなわち
(X+n)番地のデータを先読みするものがある。
【0011】
【発明が解決しようとする課題】分岐予測による先読み
では,データの先読みを行う契機が分岐命令実行時に限
られているため,分岐命令の出現頻度が少ないプログラ
ムでは,その効用を発揮できない。また,先読みの対象
が分岐命令の次に実行される命令データに限られている
ため,オペランドで指定されたデータなどは先読みの対
象とならず,適用範囲が狭いという問題がある。
【0012】また,従来の分岐予測に限定されないデー
タの先読み方式では,X番地のアクセスに対して(X+
n)番地のデータの先読みというように,アクセス対象
となるデータが実際の処理ロジック等に関係なく固定的
であるため,予測の当たる確率が高くはないという問題
がある。
【0013】本発明は上記問題点の解決を図り,適用範
囲が広く,かつ予測の当たる確率が高いデータの先読み
を可能とすることを目的とする。
【0014】
【課題を解決するための手段】図1は,本発明の原理ブ
ロック図である。本発明に係るデータ先読み制御装置1
1は,中央処理装置10と記憶装置21とを備えたデー
タ処理装置に用いられる。
【0015】データ先読み制御装置11において,予測
アドレス情報記憶手段12は,あるアクセスが発生した
後に引き続いて発生すると予測されるアクセスに関する
情報を保持する手段である。予測アドレス検索手段13
は,中央処理装置10からのアクセス要求のアドレスを
用いて予測アドレス情報記憶手段12を検索して,次に
起こると予想されるアクセスのアドレスを得る手段であ
る。予測アクセス起動手段14は,予測アドレス検索手
段13によって得られたアドレスに対するアクセスを起
動する手段である。アドレス送信手段15は,アクセス
するアドレスを記憶装置21へ送る手段である。
【0016】一時記憶手段16は,予測アクセスの結果
を一時記憶しておく手段である。一致検出手段17は,
予測アクセスと中央処理装置10の要求による次のアク
セスとが一致していることを検出する手段である。アク
セスが一致しているときには一時記憶手段16に記憶し
ておいた予測アクセスの結果を,データ選択送信手段1
8を介して中央処理装置10へ送信する。アクセスが不
一致の場合には,無効化手段19により,予測アクセス
の結果を無効化する。
【0017】予測アドレス登録手段20は,中央処理装
置10がアクセスしたアドレスに関する履歴情報を予測
アドレス情報記憶手段12に設定する手段である。請求
項2記載の発明では,少なくとも1つのキャッシュ装置
(図示省略)を持ち,そのキャッシュ装置を,図1に示
す一時記憶手段16として用いる。
【0018】さらに,請求項3記載の発明では,予測ア
ドレス情報記憶手段12が,キャッシュ装置におけるキ
ャッシュディレクトリ内,すなわちキャッシュ装置に格
納されているデータのアドレスに関する情報を保持する
部分に設けられる。
【0019】
【作用】本発明によれば,中央処理装置10がA番地の
データに対するアクセス要求を出した後,続いてB番地
へのアクセス要求を出すと,予測アドレス登録手段20
により,予測アドレス情報記憶手段12にその履歴情報
が格納される。すなわち,A番地のアクセスの次にB番
地へのアクセスがあったことが登録される。このB番地
のアドレスを予測アドレスという。
【0020】その後いつか,中央処理装置10からA番
地へのアクセス要求があると,データ先読み制御装置1
1は,A番地に対するアクセス制御を行うとともに,予
測アドレス検索手段13により,予測アドレス情報記憶
手段12を検索し,A番地の次にB番地へのアクセスが
あったことを知る。そして,予測アクセス起動手段14
により,そのB番地へのアクセスを起動し,アドレス送
信手段15を介してB番地のアドレスを記憶装置21へ
送り,A番地へのアクセスに続いてB番地への予測アク
セスを行う。こうして,B番地のデータを先読みする。
そのB番地のデータは,一時記憶手段16に一時記憶し
ておく。
【0021】中央処理装置10からの次のアクセス要求
があったならば,そのアドレスと前に予測アドレス検索
手段13により検索した予測アドレスとを一致検出手段
17により比較し,一致するかどうかを調べる。一致し
なければ,無効化手段19により前の予測アクセスの結
果を無効化する。一致したならば,先読みして一時記憶
手段16に記憶しておいたB番地のデータを,データ選
択送信手段18を介して中央処理装置10へ送信する。
【0022】一般に,中央処理装置10が実行するプロ
グラムは,同じ命令列を繰り返すことが多いので,本発
明によるデータの先読みにより,中央処理装置10のデ
ータ待ち時間を減らすことができ,処理性能が向上す
る。
【0023】また,請求項2記載の発明では,データを
先読みした結果がキャッシュ装置に格納されるので,次
のアクセス時にキャッシュ・ヒットの確率が上がる。ま
た,請求項3記載の発明のように,予測アドレス情報記
憶手段12をキャッシュディレクトリ中に組み込むこと
により,必要なハードウェア量の増加を少なくすること
が可能となる。
【0024】
【実施例】図2は,本発明の対象となるデータ処理装置
の例を示す。本発明の適用対象となる装置は,図2
(A)または(B)に示すように,少なくとも1つの中
央処理装置10と,少なくとも1つの記憶装置21を持
つデータ処理装置である。記憶装置21は,主記憶装置
22だけの場合もあり得るし,キャッシュ装置23のよ
うなバッファ記憶装置を含むこともある。バッファ記憶
装置は複数階層でもよい。
【0025】命令とデータのアクセス系が分離している
ハーバードタイプのデータ処理装置と,命令系とデータ
系で同一のアクセス系を用いるプリンストンタイプのデ
ータ処理装置があるが,本発明はこれらの方式には依存
せず,どちらのタイプの装置にも適用できる。また,ハ
ーバードタイプの装置ならば,命令系とデータ系の両者
にそれぞれ本発明を適用することができる。
【0026】図3は本発明の実施例ブロック図,図4は
本発明の実施例におけるAPCT検索方法の説明図,図
5は本発明の実施例におけるAPCT登録方法の説明
図,図6は図3に示す実施例のタイムチャートを示す。
【0027】図3において,APCTはアクセスパター
ン連鎖テーブル(Access Pattern Chain Table:以下,
テーブルAPCTと略称する) であって,図1に示す予
測アドレス情報記憶手段12に相当するもの,LAAR
1,LAAR2,LAAR3はアクセスしたアドレスを
記憶しておくレジスタ(Last Access Address Registe
r),PAARはデータを先読みするアドレスを記憶す
るレジスタ(Pre-fetchAccess Address Register),P
ADRは先読みしたデータを記憶しておくレジスタ(Pr
e-fetch Access Data Register),SEL1〜SEL3
はセレクタ,CMP1,CMP2は一致検出回路,AN
Dはアンド回路を表す。
【0028】以下の実施例では,アドレスが3バイト長
であるとする。もちろん,本発明は3バイト長のアドレ
スに限らず実施することが可能である。中央処理装置1
0からのフェッチアドレスaは,セレクタSEL2を介
して記憶装置21へ送られるとともに,レジスタLAA
R1,LAAR3およびセレクタSEL3へ送られる。
予測アドレスを得るための検索のサイクルでは,セレク
タSEL3により,図示cのアドレスが選択され,その
3バイトのアドレスのうちの上1バイトによりテーブル
APCTが検索される。
【0029】具体的には,図4に示すような検索方法が
用いられる。本実施例では,テーブルAPCTの各エン
トリは,図4(A)に示すように検索アドレス部と,予
測アドレス部と,有効表示部V(以下,Validとい
う)とからなる。本来,すべてのアドレスに対して,テ
ーブルAPCTのエントリを割り付けるのが理想である
が,ハードウェア量が増大してしまうので,キャッシュ
装置においていわゆるダイレクトマッピング方式と呼ば
れているのと同様な手法を採用する。
【0030】テーブルAPCTの検索では,アドレスの
上1バイトをテーブルAPCTのアドレス入力とし,エ
ントリ内の検索アドレスの欄の内容を読み出す。それ
と,アドレスの下2バイトとが一致するかどうかを一致
検出回路CMP2で調べる。一致する場合には,アンド
回路ANDによりその一致信号とValid信号との論
理積をとり,その出力が‘1’のときに予測アドレスの
検索を成功させ,予測アクセス起動信号を出力するとと
もに,同じエントリに登録されている予測アドレスを出
力する。
【0031】例えば,テーブルAPCTの登録内容が図
4(B)に示すようになっていた場合,中央処理装置1
0からのアドレスが“645560”のときは,テーブ
ルAPCTの64(16進数)番目のエントリが検索さ
れ,検索アドレスの下2バイトが一致し,かつこのエン
トリはValid=‘1’であることから,予測アドレ
スとして“645570”が出力される。同様に,中央
処理装置10からのアドレスが“651320”のとき
は,テーブルAPCTの65(16進数)番目のエント
リが検索され,予測アドレスとして“651520”が
出力される。
【0032】一方,アドレスが“661111”に対し
ては,Valid=‘0’であり,無効なエントリであ
るため,予測アドレスは未登録と認識され,予測アクセ
スは抑止される。
【0033】予測アクセスの起動時には,テーブルAP
CTから読み出された予測アドレスは,レジスタPAA
Rにセットされ,セレクタSEL2を介して記憶装置2
1へ送られる。なお,この予測アクセスに対して,中央
処理装置10から要求があったアクセスを,以下の説明
では本アクセスと呼ぶことにする。
【0034】次の中央処理装置10からのアクセス要求
があると,前の予測アクセスと本アクセスとが一致する
か否かが,一致検出回路CMP1により調べられる。こ
の結果により,次のように制御される。
【0035】 予測アクセスが終了する以前に次の本
アクセス要求が発生し,両者が一致した場合,予測は当
たったことになり,予測アクセス処理が本アクセス処理
に置き替わる。
【0036】 予測アクセスが終了する以前に次の本
アクセス要求が発生し,両者が一致しない場合,予測ア
クセスは外れたことになる。このとき,予測アクセスに
関わるすべての動作は無効化される。
【0037】 予測アクセスが終了する以前に次の本
アクセス要求が発生しない場合には,記憶装置21から
の応答データは,レジスタPADRに記憶される。その
後,本アクセスが起こったとき,本アクセスと予測アク
セスの一致/不一致が検査され,一致していた場合に
は,予測は当たったことになりレジスタPADRに記憶
しておいたデータが中央処理装置10へ送られる。不一
致の場合には,予測アクセスに関わるすべての結果は無
効化される。
【0038】テーブルAPCTは,本アクセスが起こっ
た場合,この本アドレスのアドレスをキーとして検索す
ると,引き続いて起こると予想されるアドレスが出力さ
れるテーブル機構である。そのため,本アクセス要求が
発生するごとに,1つ前の本アクセスのアドレスに対応
して,それに続く本アクセスのアドレスがテーブルAP
CTに登録される。
【0039】図5(A)にその登録の機構,図5(B)
に登録動作を表すタイムチャートを示す。例えば,アド
レスAの本アクセス,アドレスBの本アクセス,アドレ
スCの本アクセスが,この順序であったとする。図5に
おいて,R/WのRはテーブルAPCTの検索サイクル
(Read),WはテーブルAPCTの登録サイクル
(Write)を表す。
【0040】本アクセスのアドレスAが中央処理装置1
0から送られてくると,そのアドレスAがテーブルAP
CTの検索に用いられる。一方,次のサイクルの開始タ
イミングで,アドレスAは,レジスタLAAR1,LA
AR3にセットされる。レジスタLAAR1の内容は,
さらに次のサイクルでレジスタLAAR2へ移される。
例えば,図5(B)に示す2番目の登録サイクルWで
は,レジスタLAAR2の内容“A”を検索アドレスと
して,レジスタLAAR3を予測アドレスとして登録が
行われることになる。登録時には,そのエントリのVa
lidは‘1’にセットされる。
【0041】図3に示す回路の具体的な動作例を,図6
に従って説明する。図6に示すタイムチャートは,最初
に10000番地に対するアクセスが起こり,これがテ
ーブルAPCTに登録してあったので,予測アクセス
(アドレス“10050”)を起動し,その後,100
50番地に対する本アクセスが起こったので予測アクセ
スが当たった場合の動作例を示している。図6に示すa
〜l,R/Wは,図3に示すa〜l,R/Wに対応して
いる。
【0042】詳しくは以下のとおりである。図6に示す
テーブルAPCTのリード/ライト制御におけるの検
索サイクルにおいて,中央処理装置10からのアドレス
a(10000番地)をテーブルAPCTの検索アドレ
スfとし,その上1バイトをアドレスとしてテーブルA
PCT内の下2バイトの検索アドレスを読み出す。これ
により,検索アドレスfとテーブルAPCT内検索アド
レスgとを比較する。f=gかつValid=‘1’で
あるので,予測アクセス起動信号jを‘1’とし,テー
ブルAPCT内予測アドレスh(10050番地)をレ
ジスタPAARにセットする。レジスタPAARの内容
kは“10050”となる。
【0043】記憶装置21に対しては,10000番地
への本アクセスに続いて,10050番地への予測アク
セスのアドレスmが順次供給されることになる。一方,
次の登録サイクルでは,レジスタLAAR2の内容e
(30000番地)をテーブルAPCTへの登録アドレ
スとし,30000番地の本アクセスに続く10000
番地の本アクセスのアドレスを予測アドレスとして,テ
ーブルAPCTへの登録処理が行われる。
【0044】記憶装置21への10000番地の本アク
セスに対して,記憶装置21からXXXXのデータnが
読み出され,中央処理装置10へデータpとして送り出
される。続く,10050番地の予測アクセスに対する
YYYYのデータnは,まだ,次のアクセス要求が来て
いないので,レジスタPADRに保持される。
【0045】次に,中央処理装置10から10050番
地へのアクセス要求が来ると,レジスタPAARの内容
kと一致するかどうかを調べる。ここでは一致するの
で,予測アクセスは当たったことが分かる。そこで,記
憶装置21へのアクセスを行うことなく,レジスタPA
DRの内容oを中央処理装置10へ送信する。
【0046】なお,図6に示すの検索サイクルにおい
て,中央処理装置10からのアドレスa(10050番
地)をテーブルAPCTの検索アドレスfとし,テーブ
ルAPCTを検索する。この場合,Validは‘1’
であるがf≠gであり,検索アドレスは一致しないの
で,予測アクセスは起動しない。
【0047】図7は本発明の他の実施例説明図である。
本発明を図2(B)に示すようなキャッシュ装置23を
持つデータ処理装置に適用する場合,例えば図7に示す
ように,そのキャッシュ装置23のキャッシュデータ部
23−1を,予測アクセスの結果を一時記憶しておくた
めの図1に示す一時記憶手段16として用いることがで
きる。
【0048】このようにした場合,既に説明した動作
は,以下のように修正される。 (1) 予測アクセスが終了する以前に次の本アクセスが発
生し,かつこの本アクセスがキャッシュ・ヒットした場
合,予測アクセスとこの本アクセスの一致/不一致の検
査を行わない。キャッシュデータ部23−1から読み出
したデータを,セレクタSELを介して中央処理装置1
0へ送信する。
【0049】(2) 予測アクセスが終了する以前に次の本
アクセスが発生し,かつこの本アクセスがキャッシュ・
ミスし,かつ予測アクセスとこの本アクセスが一致した
場合,予測アクセス処理が本アクセス処理に置き替わ
る。
【0050】(3) 予測アクセスが終了する以前に次の本
アクセスが発生し,かつこの本アクセスがキャッシュ・
ミスし,かつ予測アクセスとこの本アクセスが一致しな
い場合,および,予測アクセスが終了する以前に次の本
アクセス要求が発生しない場合には,予測アクセスの終
了方法に関して,例えば次の2通りが考えられる。
【0051】(3-1) 主記憶装置からの応答データをキャ
ッシュ装置23に書き込む。次の本アクセスが予測アク
セスと一致していれば,次の本アクセスは必ずキャッシ
ュ・ヒットする。
【0052】(3-2) 主記憶装置からの応答データをキャ
ッシュ装置23に書き込まない。予測アクセスは他に何
も影響を与えずに終了する。また,図7に示すように,
アクセスパターン連鎖テーブルAPCTをキャッシュ装
置23内のキャッシュディレクトリ部23−2の中に組
み込むことも可能である。このようにすると,必要なハ
ードウェア量が減少する。
【0053】応用例として,次のような本発明の実施が
可能である。命令キャッシュとデータキャッシュとが分
離しているハーバードタイプのキャッシュ装置では,そ
の各々のキャッシュ装置について本発明を適用すること
ができる。このようにすると,命令系の本アクセスがオ
ペランド系の予測アクセスを起動したり,あるいはこの
逆にオペランド系の本アクセスが命令系の予測アクセス
を起動したりすることができ,命令系とデータ(オペラ
ンド)系との連携が行われるため,さらに有効な先読み
が可能になる。
【0054】前述した実施例では,アクセスパターン連
鎖テーブルAPCTの出力は,次に起こるであろうアク
セスのアドレスであるが,これを次に起こるであろうア
クセスのアドレスと,現在のアクセスのアドレスとの差
分にすることも可能である。このようにすると,テーブ
ルAPCTを検索した結果と,検索に用いたアドレスを
加算したものが,予測アクセスのアドレスとなる。テー
ブルAPCTの容量を減少させることができる。
【0055】また,前述した実施例は,次に起こるアク
セスを予測するものであったが,さらに遠い未来のアク
セスを予測させることも可能である。例えば,現在のア
クセス・アドレスを検索(登録)アドレスとし,そのア
ドレスと2つ後に起こると予測されるアクセスのアドレ
スを対にして,テーブルAPCTに記憶する。これは,
図3に示すレジスタLAAR1,LAAR2の段数を増
加させることにより,容易に実現できる。こうした場
合,データ先読みの効果は大きくなるが,予測の的中率
は低くなる。
【0056】
【発明の効果】以上説明したように,本発明によれば,
予測アクセスの実現によって次のような効果がある。
【0057】(1) オペランド系の予測アクセスを行うこ
とにより,記憶装置へのアクセス時間を見かけ上短縮す
ることができる。 (2) また,予測アクセスの結果をキャッシュ装置に保持
する構成を採用し,データの先読みによってキャッシュ
のヒット率を向上させることができる。
【図面の簡単な説明】
【図1】本発明の原理ブロック図である。
【図2】本発明の対象となるデータ処理装置の例を示す
図である。
【図3】本発明の実施例ブロック図である。
【図4】本発明の実施例におけるAPCT検索方法の説
明図である。
【図5】本発明の実施例におけるAPCT登録方法の説
明図である。
【図6】図3に示す実施例のタイムチャートである。
【図7】本発明の他の実施例説明図である。
【符号の説明】
10 中央処理装置 11 データ先読み制御装置 12 予測アドレス情報記憶手段 13 予測アドレス検索手段 14 予測アクセス起動手段 15 アドレス送信手段 16 一時記憶手段 17 一致検出手段 18 データ選択送信手段 19 無効化手段 20 予測アドレス登録手段 21 記憶装置
───────────────────────────────────────────────────── フロントページの続き (56)参考文献 特開 昭56−123041(JP,A) 特開 平2−27430(JP,A) 特開 昭60−263238(JP,A) 特開 平1−276336(JP,A) 特開 昭62−54341(JP,A) 特開 平1−296344(JP,A) 特開 平6−187150(JP,A) 特開 平4−106645(JP,A) 特開 昭64−31228(JP,A) 米国特許出願公開5423048(US,A) 米国特許出願公開5561782(US,A) (58)調査した分野(Int.Cl.7,DB名) G06F 12/08 505 G06F 12/08 503 G06F 9/38 310 G06F 9/38 330

Claims (3)

    (57)【特許請求の範囲】
  1. 【請求項1】 少なくとも1つの中央処理装置と,少な
    くとも1つの記憶装置を持つデータ処理装置において, あるアクセスが発生した後に引き続いて発生すると予測
    されるアクセスに関するアドレスの情報を保持する予測
    アドレス情報記憶手段と, 前記中央処理装置からのアクセス要求のアドレスを用い
    て前記予測アドレス情報記憶手段を検索して,次に起こ
    ると予想される予測アクセスのアドレスを得る手段と, 得られたアドレスに対する予測アクセスを起動する手
    前記中央処理装置からのアクセスおよび前記予測アクセ
    スのための アドレスを前記記憶装置へ送る手段と前記 予測アクセスのアドレスに対して読み出された前記
    記憶装置からの応答データを一時記憶しておく手段と前記一時記憶しておく手段に記憶されている予測アクセ
    スのアドレスと前記中央処理装置からの 次のアクセス
    アドレスとが一致していることを検出する手段と, 一致しているときには前記一時記憶しておく手段に記憶
    した前記記憶装置からの応答データを前記中央処理装
    送る手段と, 不一致の場合に前記予測アクセスに関わる動作および前
    記一時記憶しておく手段に記憶した前記記憶装置からの
    応答データを無効化する手段と, 前記予測アドレス情報記憶手段に前記中央処理装置から
    のアクセスのアドレス履歴情報を設定する手段とを備え
    たことを特徴とするデータ先読み制御装置。
  2. 【請求項2】 請求項1記載のデータ先読み制御装置に
    おいて, 少なくとも1つのキャッシュ装置を持ち, 該キャッシュ装置を,前記予測アクセスの結果を一時記
    憶しておく手段として用いることを特徴とするデータ先
    読み制御装置。
  3. 【請求項3】 請求項2記載のデータ先読み制御装置に
    おいて, 前記予測アドレス情報記憶手段が,前記キャッシュ装置
    におけるキャッシュディレクトリ内に設けられているこ
    とを特徴とするデータ先読み制御装置。
JP32040792A 1992-11-30 1992-11-30 データ先読み制御装置 Expired - Fee Related JP3254019B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP32040792A JP3254019B2 (ja) 1992-11-30 1992-11-30 データ先読み制御装置
US08/158,318 US5412786A (en) 1992-11-30 1993-11-29 Data pre-fetch control device

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP32040792A JP3254019B2 (ja) 1992-11-30 1992-11-30 データ先読み制御装置

Publications (2)

Publication Number Publication Date
JPH06168119A JPH06168119A (ja) 1994-06-14
JP3254019B2 true JP3254019B2 (ja) 2002-02-04

Family

ID=18121122

Family Applications (1)

Application Number Title Priority Date Filing Date
JP32040792A Expired - Fee Related JP3254019B2 (ja) 1992-11-30 1992-11-30 データ先読み制御装置

Country Status (2)

Country Link
US (1) US5412786A (ja)
JP (1) JP3254019B2 (ja)

Families Citing this family (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3590427B2 (ja) * 1994-08-30 2004-11-17 株式会社ルネサステクノロジ 先行読出機能付命令キャッシュメモリ
US6604190B1 (en) * 1995-06-07 2003-08-05 Advanced Micro Devices, Inc. Data address prediction structure and a method for operating the same
US6292879B1 (en) 1995-10-25 2001-09-18 Anthony S. Fong Method and apparatus to specify access control list and cache enabling and cache coherency requirement enabling on individual operands of an instruction of a computer
JP3435267B2 (ja) * 1995-11-07 2003-08-11 株式会社東芝 マイクロプロセッサ及びそのロードアドレス予想方法
US6314431B1 (en) * 1999-09-02 2001-11-06 Hewlett-Packard Company Method, system, and apparatus to improve instruction pre-fetching on computer systems
US7058823B2 (en) * 2001-02-28 2006-06-06 Advanced Micro Devices, Inc. Integrated circuit having programmable voltage level line drivers and method of operation
US6813673B2 (en) * 2001-04-30 2004-11-02 Advanced Micro Devices, Inc. Bus arbitrator supporting multiple isochronous streams in a split transactional unidirectional bus architecture and method of operation
US6912611B2 (en) * 2001-04-30 2005-06-28 Advanced Micro Devices, Inc. Split transactional unidirectional bus architecture and method of operation
US6785758B1 (en) 2001-06-01 2004-08-31 Advanced Micro Devices, Inc. System and method for machine specific register addressing in a split transactional unidirectional bus architecture
US6763415B1 (en) * 2001-06-08 2004-07-13 Advanced Micro Devices, Inc. Speculative bus arbitrator and method of operation
JP4067887B2 (ja) 2002-06-28 2008-03-26 富士通株式会社 プリフェッチを行う演算処理装置、情報処理装置及びそれらの制御方法
JP2006215799A (ja) * 2005-02-03 2006-08-17 Toshiba Corp メモリコントローラ
US20070186050A1 (en) * 2006-02-03 2007-08-09 International Business Machines Corporation Self prefetching L2 cache mechanism for data lines
JP4940824B2 (ja) * 2006-08-18 2012-05-30 富士通セミコンダクター株式会社 不揮発性半導体メモリ
US8756404B2 (en) 2006-12-11 2014-06-17 International Business Machines Corporation Cascaded delayed float/vector execution pipeline
US7761656B2 (en) * 2007-08-22 2010-07-20 Advanced Micro Devices, Inc. Detection of speculative precharge
JP2009230417A (ja) 2008-03-21 2009-10-08 Fujitsu Ltd ディスク装置およびデータ先行読出し方法
JP5471437B2 (ja) * 2009-12-28 2014-04-16 富士通セミコンダクター株式会社 半導体集積回路装置およびキャッシュメモリ制御方法
JP5052592B2 (ja) * 2009-12-28 2012-10-17 株式会社日立製作所 ストレージ管理システム、ストレージ階層管理方法及び管理サーバ

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0109655B1 (en) * 1982-11-17 1991-07-24 Nec Corporation Instruction prefetching device with prediction of a branch destination address
US4764861A (en) * 1984-02-08 1988-08-16 Nec Corporation Instruction fpefetching device with prediction of a branch destination for each branch count instruction
US4943908A (en) * 1987-12-02 1990-07-24 International Business Machines Corporation Multiple branch analyzer for prefetching cache lines
JP2722523B2 (ja) * 1988-09-21 1998-03-04 日本電気株式会社 命令先取り装置
US5142634A (en) * 1989-02-03 1992-08-25 Digital Equipment Corporation Branch prediction

Also Published As

Publication number Publication date
JPH06168119A (ja) 1994-06-14
US5412786A (en) 1995-05-02

Similar Documents

Publication Publication Date Title
JP3254019B2 (ja) データ先読み制御装置
US6317810B1 (en) Microprocessor having a prefetch cache
JP3969009B2 (ja) ハードウェアプリフェッチシステム
US5499355A (en) Prefetching into a cache to minimize main memory access time and cache size in a computer system
US4583165A (en) Apparatus and method for controlling storage access in a multilevel storage system
US5210831A (en) Methods and apparatus for insulating a branch prediction mechanism from data dependent branch table updates that result from variable test operand locations
US5148538A (en) Translation look ahead based cache access
US6138212A (en) Apparatus and method for generating a stride used to derive a prefetch address
KR930002945A (ko) 프리페치버퍼 및 프리페치버퍼를 적용한 정보처리장치
US5996061A (en) Method for invalidating data identified by software compiler
US8924648B1 (en) Method and system for caching attribute data for matching attributes with physical addresses
US8074029B2 (en) Processor equipped with a pre-fetch function and pre-fetch control method
JPH0619793A (ja) キャッシュ・アクセスのための仮想アドレス変換予測の履歴テーブル
JP3449487B2 (ja) 変換索引緩衝機構
JPH09160827A (ja) コールド・キャッシュ命令のプリフェッチ
US5838946A (en) Method and apparatus for accomplishing processor read of selected information through a cache memory
EP0296430A2 (en) Sequential prefetching with deconfirmation
JP2621763B2 (ja) 情報処理装置
JPH0546475A (ja) バツフア記憶制御方式
US20050193172A1 (en) Method and apparatus for splitting a cache operation into multiple phases and multiple clock domains
JPH0690681B2 (ja) キャッシュメモリ制御方式
JPH07219838A (ja) データ先読み制御装置
JP2000347934A (ja) キャッシュメモリ装置
JP2001344152A (ja) キャッシュメモリ装置
JPH086853A (ja) 記憶制御方法

Legal Events

Date Code Title Description
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20011113

LAPS Cancellation because of no payment of annual fees