JPH04344935A - 情報処理装置 - Google Patents

情報処理装置

Info

Publication number
JPH04344935A
JPH04344935A JP3117768A JP11776891A JPH04344935A JP H04344935 A JPH04344935 A JP H04344935A JP 3117768 A JP3117768 A JP 3117768A JP 11776891 A JP11776891 A JP 11776891A JP H04344935 A JPH04344935 A JP H04344935A
Authority
JP
Japan
Prior art keywords
prefetch
address
circuit
register
information
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
JP3117768A
Other languages
English (en)
Inventor
Kiyoshi Senba
仙波 清
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 JP3117768A priority Critical patent/JPH04344935A/ja
Publication of JPH04344935A publication Critical patent/JPH04344935A/ja
Pending 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 or look ahead
    • G06F9/3824Operand accessing
    • G06F9/383Operand prefetching

Landscapes

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

Abstract

(57)【要約】本公報は電子出願前の出願データであるた
め要約のデータは記録されません。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は、キャッシュメモリを有
する情報処理装置に関するものである。
【0002】
【従来の技術】キャッシュメモリを用いた情報処理装置
では、キャッシュミスによる損失時間を削減するため、
プロセッサでデータが必要となる前に先行してキャッシ
ュメモリにデータを読み込むプリフェッチが行われる。 その方式として、従来よりキャッシュ内ハードウェアに
よるものと、特殊命令によるものとが知られている(例
えばコンピューティング・サーベイ「Computin
g  Surveys,Vol.14,No.3,Se
ptember  1982  ページ473〜530
Cache  Memories」)。キャッシュ内ハ
ードウェアによる方式としては、具体的には参照された
キャッシュブロックに続く次のブロックをプリフェッチ
する方式がある。また、特殊命令による方式としては、
プロセスが中断され、その後再開されるときに大量のデ
ータを転送するプリフェッチ命令を実行する方式と、プ
リフェッチ用ベースレジスタにアドレスをロードし、そ
のアドレス以降の数個の連続したブロックをプリフェッ
チする方式とがある。
【0003】
【発明が解決しようとする課題】しかし、これらの方式
には次のような問題がある。すなわち、(1)有効でな
いブロックがプリフェッチされる確率が高く、その結果
、有効なデータがキャッシュメモリから追い出され、逆
にキャッシュヒット率の低下を招く場合がある。 (2)大量のデータをプリフェッチすることに伴い、プ
ロセッサ本来のキャッシュメモリおよび主記憶装置に対
するアクセスが妨害され、性能が低下する。
【0004】本発明の目的は、このような問題を解決し
、無駄なプリフェッチによって有効なデータがキャッシ
ュメモリから追い出されることを防止し、かつプロセッ
サによる記憶手段へのアクセスが不必要に妨げられるこ
とがないようにした情報処理装置を提供することにある
【0005】
【課題を解決するための手段】本発明は、キャッシュメ
モリを有する情報処理装置において、プリフェッチアド
レス、プリフェッチの回数、プリフェッチアドレスの間
隔を表す情報、ならびに周期用フェッチ回数をそれぞれ
保持する第1〜第4の情報保持手段と、前記第3の情報
保持手段に保持された前記情報により、前記第1の情報
保持手段が保持する前記プリフェッチアドレスを更新す
るためのアドレス更新手段と、このアドレス更新手段に
よって更新された前記プリフェッチアドレスが、更新さ
れる前の前記プリフェッチアドレスと異なるブロックを
指すとき、プリフェッチを要求するための信号を出力す
るプリフェッチ要求手段と、プロセッサのフェッチ回数
が前記第4の情報保持手段が保持する前記周期用フェッ
チ回数に達するごとに前記アドレス更新手段を起動し、
前記プロセッサアドレスを更新させるアドレス更新起動
手段と、前記プロセッサの前記フェッチ回数が前記第2
の情報保持手段に保持された前記プリフェッチの回数に
達したとき、前記プリフェッチ要求手段が前記プリフェ
ッチ要求信号を出力することを抑止するプリフェッチ停
止手段とを備えたことを特徴とする。
【0006】
【実施例】次に本発明の実施例について図面を参照して
説明する。図1に本発明による情報処理装置の一例を示
す。1はプリフェッチアドレスを保持するためのプリフ
ェッチアドレスレジスタ、2はプリフェッチアドレスの
間隔を表す数(以下、単にプリフェッチアドレス間隔と
いう)を保持するためのプリフェッチアドレス間隔レジ
スタ、3は周期用フェッチ回数を保持するための周期用
フェッチ回数レジスタである。4はプリフェッチの回数
を計数するためのプリフェッチ数計数回路で、動作開始
時にプリフェッチの回数を保持する。
【0007】加算回路5は、プリフェッチタイミング信
号19によって起動され、アドレスレジスタ1および間
隔レジスタ2がそれぞれ保持するプリフェッチアドレス
とプリフェッチアドレス間隔とを加算し、加算結果をプ
リフェッチアドレス信号18として出力し、また加算結
果によってアドレスレジスタ1の内容を更新する。
【0008】比較回路6は、プリフェッチタイミング信
号19によって起動され、加算回路5からの更新後のプ
リフェッチアドレスとレジスタ1が保持する更新前のプ
リフェッチアドレスとを比較し、それらが異なるキャッ
シュブロックを指すとき、プリフェッチ表示回路7をセ
ットする。その結果、表示回路7はプリフェッチ要求信
号17を出力する。
【0009】計数回路8は、プロセッサからフェッチ信
号14を受け取るごとに、その計数値を1ずつ小さくし
、計数値が0になるとゲート回路10に所定の信号を出
力する。ゲート回路10はこの信号を受け取ると、プリ
フェッチタイミング信号19を出力し、加算回路5およ
び比較回路6を起動する。また、このタイミング信号1
9が出力されたとき、計数回路8は周期用フェッチ回数
レジスタ3の値をプリセット値として取り込む。従って
、プロセッサのフェッチ回数が周期用フェッチ回数に達
するごとに、プリフェッチアドレスの更新が起動される
ことになる。
【0010】プリフェッチ表示回路9は、プリフェッチ
を起動する命令が実行され、プリフェッチ起動信号15
が入力されると、セットされ、その結果、計数回路8お
よびゲート回路10が起動される。このときゲート回路
10は初回のプリフェッチタイミング信号19を出力す
る。プリフェッチ表示回路9は、後述する計数回路4か
らの信号によってリセットされる。
【0011】プリフェッチ数計数回路4は、プリフェッ
チ数信号16によってプリフェッチの回数がプリセット
され、プリフェッチタイミング信号19が入力されるご
とにその計数値を1づつ小さくする。そして計数値が0
になると、プリフェッチ表示回路9をリセットするため
の信号を出力する。従って、プリフェッチの回数が計数
回路4にプリセットされた回数に達すると、プリフェッ
チ要求信号17は出力されなくなり、プリフェッチ動作
は停止する。
【0012】次に、この情報処理装置で下記のプログラ
ムが実行される場合を例に動作を説明する。
【0013】DO  10  I=1,N,LD10 
     S=S+A(I)          (た
だし、S,A(I)は単精度) プロセッサは、このループプログラムの前処理の命令に
従って、次の設定を行う。すなわち、プリフェッチ数計
数回路4にプリフェッチの回数として(N−1)÷LD
+1を、周期用フェッチ回数レジスタ3に1を、プリフ
ェッチアドレス間隔レジスタ2にLDの値を、それぞれ
設定する。
【0014】そしてまず、配列A(1)のアドレスがプ
リフェッチ開始アドレス信号11として加算回路5に入
力され、またプリフェッチ起動信号15がプリフェッチ
表示回路9に入力される。起動信号15が入力されると
表示回路9はセットされるので、ゲート回路10はタイ
ミング信号19を出力し、加算回路5および比較回路6
を起動する。その結果、加算回路5は配列A(1)のア
ドレスに初回の加算として0を加算し、加算結果である
配列A(1)のアドレスをプリフェッチアドレス信号1
8として出力する。また、比較回路6は、加算回路5か
らの配列A(1)のアドレスとレジスタ1の内容とを比
較する。この場合にはそれらは異なるブロックを指すの
で、比較回路6はプリフェッチ要求信号17を出力する
。従って、上記ループプログラムの処理に入る前に配列
A(1)のアドレスがプリフェッチされる。その後、レ
ジスタ1は、加算回路5から配列A(1)のアドレスを
受け取って保持する。一方、計数回路8はゲート回路1
0がタイミング信号19を出力したとき、レジスタ3が
保持する値1をプリセット値として取り込む。
【0015】次に、配列A(1)のアドレスをフェッチ
するためのフェッチ信号14が出力されると、それは計
数回路8に与えられ、計数回路8はその計数値を1だけ
小さくする。その結果、計数値は0となるので、ゲート
回路10は再びタイミング信号19を出力する。これに
より、加算回路5および比較回路6が起動され、加算回
路5はレジスタ2が保持するプリフェッチアドレス間隔
LDをレジスタ1が保持する配列A(1)のアドレスに
加算する。加算結果は配列A(1+LD)のアドレスと
なり、それはプリフェッチアドレス信号18として出力
され、また配列A(1)のアドレスとは異なるブロック
を指すので、表示回路7はプリフェッチ要求信号17を
出力する。
【0016】このように、レジスタ3にプリフェッチア
ドレス間隔としてLDが設定されているので、ループ処
理に伴って配列A(1),A(1+LD),A(1+2
LD),…のアドレスが順次フェッチされてフェッチ信
号14が入力されるごとに、1つ先行した配列A(1+
LD),A(1+2LD),A(1+3LD),…のア
ドレスがプリフェッチされる。しかも比較回路6の働き
により、一つ前のプリフェッチでプリフェッチされたブ
ロックと同一のブロックに対するプリフェッチは省略さ
れ、また、プリフェッチの回数が、プリセットされたル
ープの回数に達すると、計数回路4は表示回路9をリセ
ットするので、ゲート回路10はタイミング信号19を
出力しなくなり、プリフェッチ動作は停止する。すなわ
ちループ内処理で必要なブロックのみが、処理に伴うフ
ェッチに先行し、かつループ処理に同期してプリフェッ
チされ、余分なプリフェッチは発生しない。
【0017】なお、図1の実施例ではプリフェッチアド
レスレジスタおよびプリフェッチアドレス間隔レジスタ
はそれぞれ1つずつ設けたが、これらのレジスタを増す
ことにより、ループ内処理で使用される配列が2つ以上
の場合にも対応することができる。
【0018】
【発明の効果】以上説明したように本発明の情報処理装
置では、プリフェッチアドレス、プリフェッチ数、プリ
フェッチアドレス間隔、ならびに周期用フェッチ回数を
プログラムの処理に応じて設定でき、かつプログラムの
処理に同期し、必要なブロックのみを先行してプリフェ
ッチするので、無駄なプリフェッチによって有効なデー
タがキャッシュメモリから追い出されることがなく、ま
たプロセッサによる記憶手段へのアクセスが不必要に妨
げられることがない。
【図面の簡単な説明】
【図1】本発明の一実施例の要部を示すブロック図であ
る。
【符号の説明】
1  プリフェッチアドレスレジスタ 2  プリフェッチアドレス間隔レジスタ3  周期用
フェッチ回数レジスタ 4  プリフェッチ数計数回路 5  加算回路 6  比較回路 7  プリフェッチ要求表示回路 8  計数回路 9  プリフェッチ表示回路 10  ゲート回路

Claims (3)

    【特許請求の範囲】
  1. 【請求項1】キャッシュメモリを有する情報処理装置に
    おいて、プリフェッチアドレス、プリフェッチの回数、
    プリフェッチアドレスの間隔を表す情報、ならびに周期
    用フェッチ回数をそれぞれ保持する第1〜第4の情報保
    持手段と、前記第3の情報保持手段に保持された前記情
    報により、前記第1の情報保持手段が保持する前記プリ
    フェッチアドレスを更新するためのアドレス更新手段と
    、このアドレス更新手段によって更新された前記プリフ
    ェッチアドレスが、更新される前の前記プリフェッチア
    ドレスと異なるブロックを指すとき、プリフェッチを要
    求するための信号を出力するプリフェッチ要求手段と、
    プロセッサのフェッチ回数が前記第4の情報保持手段が
    保持する前記周期用フェッチ回数に達するごとに前記ア
    ドレス更新手段を起動し、前記プロセッサアドレスを更
    新させるアドレス更新起動手段と、前記プロセッサの前
    記フェッチ回数が前記第2の情報保持手段に保持された
    前記プリフェッチの回数に達したとき、前記プリフェッ
    チ要求手段が前記プリフェッチ要求信号を出力すること
    を抑止するプリフェッチ停止手段とを備えたことを特徴
    とする情報処理装置。
  2. 【請求項2】前記アドレス更新手段は、前記第1および
    第3の情報保持手段の保持内容を加算する加算手段を備
    えたことを特徴とする請求項1記載の情報処理装置。
  3. 【請求項3】前記プリフェッチ要求手段は、前記アドレ
    ス更新手段によって更新された後の前記プリフェッチア
    ドレスと、更新される前の前記プリフェッチアドレスと
    を比較する比較手段を備えたことを特徴とする請求項1
    記載の情報処理装置。
JP3117768A 1991-05-23 1991-05-23 情報処理装置 Pending JPH04344935A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP3117768A JPH04344935A (ja) 1991-05-23 1991-05-23 情報処理装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP3117768A JPH04344935A (ja) 1991-05-23 1991-05-23 情報処理装置

Publications (1)

Publication Number Publication Date
JPH04344935A true JPH04344935A (ja) 1992-12-01

Family

ID=14719846

Family Applications (1)

Application Number Title Priority Date Filing Date
JP3117768A Pending JPH04344935A (ja) 1991-05-23 1991-05-23 情報処理装置

Country Status (1)

Country Link
JP (1) JPH04344935A (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105074655A (zh) * 2013-01-21 2015-11-18 高通股份有限公司 用于取消对循环的数据预取请求的方法和设备
US10031852B2 (en) 2016-04-14 2018-07-24 Fujitsu Limited Arithmetic processing apparatus and control method of the arithmetic processing apparatus
WO2019202287A1 (en) * 2018-04-16 2019-10-24 Arm Limited An apparatus and method for prefetching data items

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105074655A (zh) * 2013-01-21 2015-11-18 高通股份有限公司 用于取消对循环的数据预取请求的方法和设备
US10031852B2 (en) 2016-04-14 2018-07-24 Fujitsu Limited Arithmetic processing apparatus and control method of the arithmetic processing apparatus
WO2019202287A1 (en) * 2018-04-16 2019-10-24 Arm Limited An apparatus and method for prefetching data items
US11392383B2 (en) 2018-04-16 2022-07-19 Arm Limited Apparatus and method for prefetching data items

Similar Documents

Publication Publication Date Title
US7257665B2 (en) Branch-aware FIFO for interprocessor data sharing
KR100277818B1 (ko) 컴퓨터 시스템의 데이터 처리 속도를 증가시키는 방법
US6636945B2 (en) Hardware prefetch system based on transfer request address of cache miss load requests
US6578130B2 (en) Programmable data prefetch pacing
EP1031919B1 (en) Method for prefetching structured data
US5649144A (en) Apparatus, systems and methods for improving data cache hit rates
US6401192B1 (en) Apparatus for software initiated prefetch and method therefor
EP1029280B1 (en) Cache memory operation
JP3781419B2 (ja) パイプライン方式のプロセッサにおける例外処理
US10831494B2 (en) Event triggered programmable prefetcher
JPS61243536A (ja) デ−タ処理装置における先行制御装置
US20130212334A1 (en) Determining Optimal Preload Distance at Runtime
EP0721619A1 (en) Execution of data processing instructions
US20040059891A1 (en) Icache-based value prediction mechanism
EP1139222A1 (en) Prefetch for TLB cache
US6922753B2 (en) Cache prefetching
US20120324195A1 (en) Allocation of preset cache lines
JP3732555B2 (ja) 非逐次アクセスの実効待ち時間が短いパイプライン・キャッシュシステム
US9971695B2 (en) Apparatus and method for consolidating memory access prediction information to prefetch cache memory data
JPH04344935A (ja) 情報処理装置
US5012410A (en) Data processor with instruction cache memory
US10936463B2 (en) Apparatus and method for detecting regularity in a number of occurrences of an event observed during multiple instances of a counting period
KR101393454B1 (ko) 캐시 사용자 시작 프리-페치 요청들을 생성하기 위한 장치 및 방법
JP3085267B2 (ja) メモリアクセス高速化装置
JP2694799B2 (ja) 情報処理装置