JPH07105098A - 命令キャッシュのリプレース装置 - Google Patents

命令キャッシュのリプレース装置

Info

Publication number
JPH07105098A
JPH07105098A JP5251270A JP25127093A JPH07105098A JP H07105098 A JPH07105098 A JP H07105098A JP 5251270 A JP5251270 A JP 5251270A JP 25127093 A JP25127093 A JP 25127093A JP H07105098 A JPH07105098 A JP H07105098A
Authority
JP
Japan
Prior art keywords
instruction cache
fifo
address
program memory
speed
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
JP5251270A
Other languages
English (en)
Inventor
Katsuhiko Itagaki
克彦 板垣
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 JP5251270A priority Critical patent/JPH07105098A/ja
Publication of JPH07105098A publication Critical patent/JPH07105098A/ja
Pending legal-status Critical Current

Links

Landscapes

  • Memory System Of A Hierarchy Structure (AREA)

Abstract

(57)【要約】 【目的】命令キャッシュを有するマイクロプロセッサに
おける、命令キャッシュミス時のリプレース処理の高速
化を図る。 【構成】ブロックサイズと同一容量の高速FIFO6
と、命令キャッシュ4への取込み時に出力される今回の
リプレースアドレスと前回のリプレースアドレスの次の
アドレスとの一致を検出しヒット信号Hを供給する比較
器10と、ヒット信号Hの供給に応答して高速FIFO
6から命令キャッシュ4に対してブロックデータBDの
転送を行なうFIFOリード制御回路7およびレデイ制
御回路11と、高速FIFO6から供給されるエンプテ
イ信号Eに応答してCPU2の動作と並行してプログラ
ムメモリ17から次のブロックデータBDを高速FIF
O6にプリロードするプログラムメモリ制御部8とを備
える。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は命令キャッシュのリプレ
ース装置に関し、特に次に読み込むべき命令を予め取込
んでおくバッファメモリである命令キャッシュを有する
情報処理装置の上記命令キャッシュのリプレース装置に
関する。
【0002】
【従来の技術】半導体技術の進歩に伴ない、マイクロプ
ロセッサの処理速度が向上し処理対象データ量が増加し
て来ている。これに伴ない、プログラムメモリとCPU
との間の命令データの転送時間が無視できなくなり、こ
の転送時間による処理効率の低下を緩和するために、例
えば、特開昭60−225262号公報記載のパイプラ
インマイクロプロセッサや特開昭63−58539号公
報記載のマイクロプロセッサのように、命令先取り用の
高速バッフアメモリすなわち命令キャッシュを備えるマ
イクロプロセッサが出現してきている。
【0003】従来のこの種の命令キャッシュを有するマ
イクロプロセッサでのキャッシュリプレース装置をブロ
ックで示す図6を参照すると、この従来のキャッシュリ
プレース装置は、CPU部2とバスインタフェース部3
とブロックサイズが4ワードの命令データであるブロッ
クデータBDを格納する命令キャッシュ4とを内蔵する
マイクロプロセッサ1と、プログラムメモリ17とを備
える。
【0004】図6および動作タイミングチャートを示す
図7を参照して、動作を説明すると、プレースの動作を
示すタイミングチャートである。CPU2は、命令キャ
ッシュ4から所定の命令を読出してその命令を実行す
る。命令キャッシュ4に所定の命令が存在しない場合に
は命令キャッシュミスが発生し、バスインタフェース部
3より命令キャッシュ4のリプレースアドレスRAおよ
びプログラムメモリ17の読出信号MRが出力される。
これによりプログラムメモリ17をアクセスし、ブロッ
クデータBDをプログラムメモリ17から命令キャッシ
ュ4にロードする。
【0005】この場合プログラムメモリ17から直接命
令キャッシュ4に対してデータ転送が行なわれるため、
この命令キャッシュ4のリプレース時間はプログラムメ
モリ17の読出時間に依存する。図7に示す通りプログ
ラムメモリ17の1回の読出時間が100nsとする
と、4ワード分のキャッシュリプレースには400ns
の時間が命令キャッシュミスの度に必要となる。
【0006】上述のように、従来のキャッシュメモリを
備える情報処理装置では、キャッシュの大容量化による
キャッシュのヒット率の向上に重点が置かれ、このヒッ
ト率の向上により、全体の処理時間に対するキャッシュ
ミス時のリプレース時間の比率を下げようとしていたの
で、キャッシュのリプレースそのものの高速化は従来あ
まり重要視されてなかった。
【0007】最近ではコストパフォーマンスの追求のた
めに、内部に比較的小容量の命令キャッシュを搭載する
マイクロプロセッサが多く出現してきた。このようなマ
イクロプロセッサでは、キャッシュ容量が小さいためミ
スヒットが比較的多く発生し、キャッシュミス時のリプ
レース時間のオーバーヘッドがプログラム全体の処理性
能に大きく影響を及ぼす。またプログラムメモリへのア
クセス中はCPU動作が完全に停止してしまい、マイク
ロプロセッサ全体の性能低下の要因となる。
【0008】
【発明が解決しようとする課題】上述した従来の命令キ
ャッシュのリプレース装置は、コストパフォーマンスの
追求のため比較的小容量の命令キャッシュを搭載するマ
イクロプロセッサの場合では、キャッシュ容量が小さい
ことによるミスヒットが多発し、このキャッシュミス時
のリプレース時間のオーバーヘッドがプログラム全体の
処理速度を大幅に低下させるという欠点があった。また
プログラムメモリへのアクセス中はCPU動作が完全に
停止してしまうので、マイクロプロセッサ全体の性能低
下の要因となるという欠点があった。
【0009】
【課題を解決するための手段】本発明の命令キャッシュ
のリプレース装置は、プログラムメモリから次の処理に
先立ちこの次の処理対応のリプレースアドレス対応の予
め定めたブロックサイズの命令データであるブロックデ
ータを一時格納する前記ブロックサイズの命令キャッシ
ュを備えるマイクロコンピュータの命令キャッシュのリ
プレース装置において、前記ブロックサイズと同一容量
を持つ高速FIFOと、前記命令キャッシュへの取込み
時に出力される今回のリプレースアドレスと前回のリプ
レースアドレスの次のアドレスとの一致および不一致を
検出し一致および不一致信号をそれぞれ供給するアドレ
ス比較手段と、前記一致信号の供給に応答して前記高速
FIFOから前記命令キャッシュに対して前記ブロック
データの転送を行なうFIFO制御手段と、前記高速F
IFOから供給される空情報信号に応答してCPU動作
と並行して前記プログラムメモリから次の前記ブロック
データを前記高速FIFOにプリロードするメモリ制御
手段とを備えて構成されている。
【0010】
【実施例】本発明の第1の実施例をブロックで示す図1
を参照すると、この図に示す本実施例の命令キャッシュ
のリプレース装置は、図6の従来の命令キャッシュのリ
プレース装置と同様の、CPU部2とバスインタフェー
ス部3と命令キャッシュ4とを内蔵するマイクロプロセ
ッサ1と、プログラムメモリ17とに加えて、比較器部
5と、命令キャッシュ4のブロックサイズと同容量すな
わち4ワード分の高速FIFO(先入れ先出しバッフア
メモリ)6と、FIFO制御部7と、プログラムメモリ
制御部8とを備える。
【0011】比較器部5は、次のリプレースアドレスを
計算するためのリプレースアドレスインクリメンタ9
と、キャッシュミス時のリプレースアドレスが前回のリ
プレースアドレスの次のアドレスか否かを判定する比較
器10とを備える。
【0012】FIFO制御部7は、マイクロプロセッサ
へのレディ信号を発生するレデイ制御回路11と、高速
FIFO6からブロックデータを読み出すためのFIF
Oリード制御回路12と、プログラムメモリからのブロ
ックデータを高速FIFOへ書込むためのFIFOライ
ト制御回路13とを備える。
【0013】プログラムメモリ制御部8は、次のブロッ
クデータをプログラムメモリ17から1ワードづつ順次
プリロードするために必要なアドレスカウンタA14
と、比較器10の不一致信号によりプログラムメモリ1
7からミスアドレスに対応したブロックデータを順次読
み出すために必要なアドレスカウンタB15と、プリロ
ード時ならびに比較器10のミス時にプログラムメモリ
17からブロックデータをリードするためのプログラム
メモリ読出制御回路16とを備える。
【0014】高速FIFO6の容量を命令キャッシュ4
のブロックサイズと同じ4ワードにしているのは、命令
キャッシュ4の1回のリプレース処理がブロック単位す
なわち4ワードで行なわれるためであり、上記ブロック
サイズ以下の容量ではリプレース動作に追従できない。
また命令キャッシュ4のリプレース動作が終了するとマ
イクロプロセッサ1は本来のプログラム実行動作に移る
ため、ほとんどの場合CPU2の動作中に次のブロック
データをプリロードしておくことができる。したがって
高速FIFO6が複数ブロック分の容量を持っていたと
してもあまり効果はない。
【0015】図1、本実施例の制御のフローチャートを
示す図2,図3およびプログラムメモリから高速FIF
Oへのプリロード動作および高速FIFOから命令キャ
ッシュへのリプレース動作のタイミングチャートを示す
図4を併せ参照して動作を説明する。まず最初にプログ
ラムメモリ17からのプリロード動作と高速FIFO6
から命令キャッシュ4へのリプレース動作のフローチャ
ートを示す図2を参照すると、CPU部2の動作中に、
予め前回のリプレースアドレスを比較器部5のリプレー
スアドレスインクリメンタ9でインクリメントしプリロ
ードアドレスとして保持しておく(S1処理)。高速F
IFO6が空になると、高速FIFO6からエンプテイ
信号Eが出力される(S2処理)。このエンプテイ信号
Eの供給に応答してアドレスカウンタA14が動作しプ
ログラムメモリ17に対するアドレス出力を行なう(S
3処理)。ただし、この場合1回目のワードデータBD
Mのリード時にはリプレースアドレスインクメンタ9が
保持しているプリロードアドレスPA自身を出力する。
メモリ読出回路16がリード信号MRを生成し、プログ
ラムメモリ17からワードデータBMをリードする(S
4処理)。FIFOライト制御回路13が高速FIFO
6へのライト信号FWを生成し、プログラムメモリ17
から読出されたワードデータBMを高速FIFO6へ書
込む(S5処理)。アドレスカウンタA14が次のワー
ドデータBM読出のためにアドレスMAをインクリメン
トする(S6処理)。S3〜S6の処理を繰返し4ワー
ド分のブロックデータBMを高速FIFO6へプリロー
ドする。プリロードが終了すると高速FIFO6からフ
ル信号Fが出力される(S7処理)。
【0016】ここまでのプリロード動作は、図4に示す
ように、プログラムメモリ17から高速FIFO6への
データ転送所要時間がプログラムメモリ17の読出時間
に依存するため、1回当りの上記読出時間が従来と同様
の100nsとすると、4ワードデータのプリロードの
所要時間は400nsとなる。ただしこのプリロード動
作はCPU部2の処理と並行して処理されるためプログ
ラム実行速度には影響を与えない。
【0017】次に、マイクロプロセッサ1内にて命令キ
ャッシュミスが生じた場合、キャッシュリプレースのた
めのバスサイクルが起動されバスサイクル信号Bが出力
される(S8処理)。またバスインタフェース部3から
命令キャッシュ4に対するリプレースアドレスが出力さ
れ、そのリプレースアドレスが前回のリプレースアドレ
スの次のアドレスか否かを比較器10にてチェックする
(S9処理)。もし一致しているのであれば比較器から
ヒット信号Hが出力される(S10処理)。このヒット
信号Hとフル信号Fとの供給に応答してレディ制御回路
11が動作し、マイクロプロセッサ1のレディ信号RY
をアクティブにし(S11処理)、また同時にFIFO
リード制御回路12を起動させる。FIFOリード制御
回路12は高速FIFO6に対するリード信号FRを4
回出力し(S12処理)、高速FIFO6内にある4ワ
ードのブロックデータBDを順次読出し、命令キャッシ
ュ4へ転送する(S13処理)。この場合図4に示すよ
うに、1回当りのFIFO読出速度が20nsであれ
ば、4ワード分のキャッシュリプレース動作は約80n
sで終了することになる。
【0018】次に、リプレース対象のブロックデータが
高速FIFO6内になかった場合のフローチャートを示
す図3を参照すると、命令キャッシュミスが発生しリプ
レースアドレスRAがバスインタフェース部3から出力
され比較器10で前回のリプレースアドレスの次のアド
レスか否かをチェックする(T1処理)。もし比較結果
が不一致であれば、比較器10から出力されるミスヒッ
ト信号MHにより、レディ制御回路11がレディ信号R
をインアクティブにし、キャッシュリプレースのための
バスサイクルを引き延ばす(T2処理)。またプログラ
ムメモリ17からミスアドレスに対応したブロックデー
タの再リードのためこのミスアドレスがプログラムメモ
リ17制御部に転送されアドレスカウンタB15を通じ
てプログラムメモリ17にアドレスMAが出力される
(T3処理)。メモリ読出制御回路16からリード信号
MRが出力され、プログラムメモリ17から1ワード読
出される(T4処理)。FIFOライト制御回路13か
らライト信号FWが出力されプログラムメモリ17から
読出された1ワード分のデータが高速FIFO6へ書込
まれる(T5処理)。アドレスカウンタB15にてアド
レスがインクリメントされる(T6処理)。T3〜T6
処理が繰返されミスアドレスに対応した4ワード分のブ
ロックデータBMがプログラムメモリ17から高速FI
FO6へ転送される。転送終了後、高速FIFO6から
フル信号Fが出力される(T7処理)。レディ制御回路
11がフル信号の供給に応答してレディ信号Rをアクテ
ィブにし(T8処理)、同時にFIFOリード制御回路
12を起動させ、ヒット時と同様に、高速FIFO6へ
のリード信号FRを4回出力し(T9処理)、高速FI
FO6内にある4ワードのブロックデータBDを順次読
出し、命令キャッシュ4へ転送する(T10処理)。こ
の場合、プログラムメモリ17から高速FIFO6への
再ロード時間は、プリロード所要時間と同一の400n
sとなり、更に高速FIFO6から命令キャッシュ4へ
の転送に80nsかかり合計480nsがキャッシュリ
プレース動作に必要となる。しかしプログラムの局所性
により命令キャッシュ4のリプレースアドレスは連続す
る場合が多く、このような比較器10における不一致の
動作はまれである。
【0019】本発明の第2の実施例をブロックで示す図
5を参照すると、この図に示す本実施例の前述の第1の
実施例に対する相違点は、比較器10で不一致が生じた
場合の再ロード時におけるプログラムメモリ17からの
ブロックデータBMを高速FIFO6へ転送する代りに
直接命令キャッシュ4へブロックデータBDとしてロー
ドするバイパス回路18をさらに備えることである。ミ
スヒット信号MHによりバイパス回路18がアクティブ
になりプログラムメモリ17から読み出されたブロック
データBMは直接命令キャッシュ4へブロックデータB
Dとして転送される。これにより一層高速化が図れる。
【0020】上述したように、本発明の第1の実施例で
はプログラムの局所性に着目し、キャッシュ動作を命令
キャッシュに限定している。プログラムの場合のリプレ
ース動作は多くの場合連続したアドレスからのリプレー
ス動作となる。命令キャッシュミスによるリプレース動
作のうち5回中4回が次のリプレースアドレスからのリ
プレース動作とすると、本発明では、80%が高速FI
FOからの読出であり、残りの20%がプログラムメモ
リからの読出となる。従来のリプレース動作では前述の
通り400ns要していた処理が、本実施例では0.8
×80ns+0.2×480ns=160nsとなり、
約2.5倍に高速化される。さらに第2の実施例では
0.2×400ns=144nsとなり約2.8倍に高
速化される。
【0021】
【発明の効果】以上説明したように、本発明の命令キャ
ッシュのリプレース装置は、命令キャッシュのブロック
サイズと同一容量の高速FIFOと、今回のリプレース
アドレスと前回のリプレースアドレスの次のアドレスと
の一致信号を供給するアドレス比較手段と、上記一致信
号の供給に応答して動作するFIFO制御手段と、空情
報信号に応答して次の上記ブロックデータを上記高速F
IFOにプリロードするメモリ制御手段とを備えること
により、従来、命令キャッシュミスが生じた場合プログ
ラムメモリから直接命令キャッシュに次のリプレースア
ドレス対応のブロックデータをロードする代りに、予め
上記ブロックデータを上記高速FIFOにプリロードし
ておくことにより、キャッシュミス時はこの高速FIF
Oから上記ブロックデータを直ちにロードできるため、
高速に命令キャッシュのリプレースが行なえるという効
果がある。
【0022】また、高速FIFOへのプリロード動作
は、CPUの動作とは完全に独立しているのでマイクロ
プロセッサの命令実行に全く影響を与えないので、マイ
クロプロセッサ全体の性能低下要因を除去できるという
効果がある。
【図面の簡単な説明】
【図1】本発明の命令キャッシュのリプレース装置の第
1の実施例を示すブロック図である。
【図2】本実施例の動作の一部を示すフローチャートで
ある。
【図3】本実施例の動作の他の一部を示すフローチャー
トである。
【図4】本実施例の制御動作を示すタイミングチャート
である。
【図5】本発明の命令キャッシュのリプレース装置の第
2の実施例を示すブロック図である。
【図6】従来の命令キャッシュのリプレース装置を示す
ブロック図である。
【図7】従来の命令キャッシュのリプレース装置の動作
を示すタイミングチャートである。
【符号の説明】
1 マイクロプロセッサ 2 CPU部 3 バスインタフェース部 4 命令キャッシュ 5 比較器部 6 高速FIFO 7 FIFO制御部 8 プログラムメモリ制御部 9 リプレースアドレスインクリメンタ 10 比較器 11 レディ制御回路 12 FIFOリード制御回路 13 FIFOライト制御回路 14 アドレスカウンタA 15 アドレスカウンタB 16 メモリ読出制御部 17 プログラムメモリ 18 バイパス回路

Claims (2)

    【特許請求の範囲】
  1. 【請求項1】 プログラムメモリから次の処理に先立ち
    この次の処理対応のリプレースアドレス対応の予め定め
    たブロックサイズの命令データであるブロックデータを
    一時格納する前記ブロックサイズの命令キャッシュを備
    えるマイクロコンピュータの命令キャッシュのリプレー
    ス装置において、 前記ブロックサイズと同一容量を持つ高速FIFOと、 前記命令キャッシュへの取込み時に出力される今回のリ
    プレースアドレスと前回のリプレースアドレスの次のア
    ドレスとの一致および不一致を検出し一致および不一致
    信号をそれぞれ供給するアドレス比較手段と、 前記一致信号の供給に応答して前記高速FIFOから前
    記命令キャッシュに対して前記ブロックデータの転送を
    行なうFIFO制御手段と、 前記高速FIFOから供給される空情報信号に応答して
    CPU動作と並行して前記プログラムメモリから次の前
    記ブロックデータを前記高速FIFOにプリロードする
    メモリ制御手段とを備えることを特徴とする命令キャッ
    シュのリプレース装置。
  2. 【請求項2】 前記不一致信号の供給に応答し前記プロ
    グラムメモリからの前記ブロックデータが前記高速FI
    FOをバイパスして直接前記命令キャッシュに伝送され
    るよう切替る高速FIFOバイパス手段をさらに備える
    ことを特徴とする請求項1記載の命令キャッシュのリプ
    レース装置。
JP5251270A 1993-10-07 1993-10-07 命令キャッシュのリプレース装置 Pending JPH07105098A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP5251270A JPH07105098A (ja) 1993-10-07 1993-10-07 命令キャッシュのリプレース装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP5251270A JPH07105098A (ja) 1993-10-07 1993-10-07 命令キャッシュのリプレース装置

Publications (1)

Publication Number Publication Date
JPH07105098A true JPH07105098A (ja) 1995-04-21

Family

ID=17220299

Family Applications (1)

Application Number Title Priority Date Filing Date
JP5251270A Pending JPH07105098A (ja) 1993-10-07 1993-10-07 命令キャッシュのリプレース装置

Country Status (1)

Country Link
JP (1) JPH07105098A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8069333B2 (en) 2006-04-05 2011-11-29 Nec Corporation Converting logical to real number to access shared configuration information in event driven state transiting reconfigurable system

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS5279743A (en) * 1975-12-26 1977-07-05 Hitachi Ltd Data processing unit
JPH0212350A (ja) * 1988-06-29 1990-01-17 Nec Corp 情報処理装置
JPH02254552A (ja) * 1989-03-29 1990-10-15 Nec Corp データ処理装置
JPH052533A (ja) * 1991-06-24 1993-01-08 Toshiba Corp メモリアクセス方式

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS5279743A (en) * 1975-12-26 1977-07-05 Hitachi Ltd Data processing unit
JPH0212350A (ja) * 1988-06-29 1990-01-17 Nec Corp 情報処理装置
JPH02254552A (ja) * 1989-03-29 1990-10-15 Nec Corp データ処理装置
JPH052533A (ja) * 1991-06-24 1993-01-08 Toshiba Corp メモリアクセス方式

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8069333B2 (en) 2006-04-05 2011-11-29 Nec Corporation Converting logical to real number to access shared configuration information in event driven state transiting reconfigurable system

Similar Documents

Publication Publication Date Title
US6496902B1 (en) Vector and scalar data cache for a vector multiprocessor
JP3016575B2 (ja) 複数キャッシュ・メモリ・アクセス方法
US5297281A (en) Multiple sequence processor system
US8954681B1 (en) Multi-stage command processing pipeline and method for shared cache access
US5535350A (en) Cache memory unit including a replacement address register and address update circuitry for reduced cache overhead
JPH07281895A (ja) 分岐キャッシュ
JPH1055307A (ja) コンピュータ・システム
JP3236287B2 (ja) マルチプロセッサシステム
US5594884A (en) Cache memory system having a plurality of ports
US5287483A (en) Prefetched operand storing system for an information processor
US7111127B2 (en) System for supporting unlimited consecutive data stores into a cache memory
JPH07105098A (ja) 命令キャッシュのリプレース装置
US4737908A (en) Buffer memory control system
US20090063773A1 (en) Technique to enable store forwarding during long latency instruction execution
JPH09282221A (ja) 主記憶制御装置
GB2037466A (en) Computer with cache memory
US5933856A (en) System and method for processing of memory data and communication system comprising such system
JP2762798B2 (ja) 命令キャッシュを有するパイプライン構成の情報処理装置
JPH08161226A (ja) データ先読み制御方法,キャッシュ制御装置およびデータ処理装置
JP3476314B2 (ja) マイクロプロセッサ
JPH0447350A (ja) 主記憶読み出し応答制御方式
JPH05257807A (ja) キャッシュメモリ制御装置
JPH04125747A (ja) キャッシュメモリ制御装置
JP2001142698A (ja) メモリアクセス方式
JP3457428B2 (ja) データ処理装置

Legal Events

Date Code Title Description
A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 19980106