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
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とを備
える。
おける、命令キャッシュミス時のリプレース処理の高速
化を図る。 【構成】ブロックサイズと同一容量の高速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号公
報記載のマイクロプロセッサのように、命令先取り用の
高速バッフアメモリすなわち命令キャッシュを備えるマ
イクロプロセッサが出現してきている。
ロセッサの処理速度が向上し処理対象データ量が増加し
て来ている。これに伴ない、プログラムメモリとCPU
との間の命令データの転送時間が無視できなくなり、こ
の転送時間による処理効率の低下を緩和するために、例
えば、特開昭60−225262号公報記載のパイプラ
インマイクロプロセッサや特開昭63−58539号公
報記載のマイクロプロセッサのように、命令先取り用の
高速バッフアメモリすなわち命令キャッシュを備えるマ
イクロプロセッサが出現してきている。
【0003】従来のこの種の命令キャッシュを有するマ
イクロプロセッサでのキャッシュリプレース装置をブロ
ックで示す図6を参照すると、この従来のキャッシュリ
プレース装置は、CPU部2とバスインタフェース部3
とブロックサイズが4ワードの命令データであるブロッ
クデータBDを格納する命令キャッシュ4とを内蔵する
マイクロプロセッサ1と、プログラムメモリ17とを備
える。
イクロプロセッサでのキャッシュリプレース装置をブロ
ックで示す図6を参照すると、この従来のキャッシュリ
プレース装置は、CPU部2とバスインタフェース部3
とブロックサイズが4ワードの命令データであるブロッ
クデータBDを格納する命令キャッシュ4とを内蔵する
マイクロプロセッサ1と、プログラムメモリ17とを備
える。
【0004】図6および動作タイミングチャートを示す
図7を参照して、動作を説明すると、プレースの動作を
示すタイミングチャートである。CPU2は、命令キャ
ッシュ4から所定の命令を読出してその命令を実行す
る。命令キャッシュ4に所定の命令が存在しない場合に
は命令キャッシュミスが発生し、バスインタフェース部
3より命令キャッシュ4のリプレースアドレスRAおよ
びプログラムメモリ17の読出信号MRが出力される。
これによりプログラムメモリ17をアクセスし、ブロッ
クデータBDをプログラムメモリ17から命令キャッシ
ュ4にロードする。
図7を参照して、動作を説明すると、プレースの動作を
示すタイミングチャートである。CPU2は、命令キャ
ッシュ4から所定の命令を読出してその命令を実行す
る。命令キャッシュ4に所定の命令が存在しない場合に
は命令キャッシュミスが発生し、バスインタフェース部
3より命令キャッシュ4のリプレースアドレスRAおよ
びプログラムメモリ17の読出信号MRが出力される。
これによりプログラムメモリ17をアクセスし、ブロッ
クデータBDをプログラムメモリ17から命令キャッシ
ュ4にロードする。
【0005】この場合プログラムメモリ17から直接命
令キャッシュ4に対してデータ転送が行なわれるため、
この命令キャッシュ4のリプレース時間はプログラムメ
モリ17の読出時間に依存する。図7に示す通りプログ
ラムメモリ17の1回の読出時間が100nsとする
と、4ワード分のキャッシュリプレースには400ns
の時間が命令キャッシュミスの度に必要となる。
令キャッシュ4に対してデータ転送が行なわれるため、
この命令キャッシュ4のリプレース時間はプログラムメ
モリ17の読出時間に依存する。図7に示す通りプログ
ラムメモリ17の1回の読出時間が100nsとする
と、4ワード分のキャッシュリプレースには400ns
の時間が命令キャッシュミスの度に必要となる。
【0006】上述のように、従来のキャッシュメモリを
備える情報処理装置では、キャッシュの大容量化による
キャッシュのヒット率の向上に重点が置かれ、このヒッ
ト率の向上により、全体の処理時間に対するキャッシュ
ミス時のリプレース時間の比率を下げようとしていたの
で、キャッシュのリプレースそのものの高速化は従来あ
まり重要視されてなかった。
備える情報処理装置では、キャッシュの大容量化による
キャッシュのヒット率の向上に重点が置かれ、このヒッ
ト率の向上により、全体の処理時間に対するキャッシュ
ミス時のリプレース時間の比率を下げようとしていたの
で、キャッシュのリプレースそのものの高速化は従来あ
まり重要視されてなかった。
【0007】最近ではコストパフォーマンスの追求のた
めに、内部に比較的小容量の命令キャッシュを搭載する
マイクロプロセッサが多く出現してきた。このようなマ
イクロプロセッサでは、キャッシュ容量が小さいためミ
スヒットが比較的多く発生し、キャッシュミス時のリプ
レース時間のオーバーヘッドがプログラム全体の処理性
能に大きく影響を及ぼす。またプログラムメモリへのア
クセス中はCPU動作が完全に停止してしまい、マイク
ロプロセッサ全体の性能低下の要因となる。
めに、内部に比較的小容量の命令キャッシュを搭載する
マイクロプロセッサが多く出現してきた。このようなマ
イクロプロセッサでは、キャッシュ容量が小さいためミ
スヒットが比較的多く発生し、キャッシュミス時のリプ
レース時間のオーバーヘッドがプログラム全体の処理性
能に大きく影響を及ぼす。またプログラムメモリへのア
クセス中はCPU動作が完全に停止してしまい、マイク
ロプロセッサ全体の性能低下の要因となる。
【0008】
【発明が解決しようとする課題】上述した従来の命令キ
ャッシュのリプレース装置は、コストパフォーマンスの
追求のため比較的小容量の命令キャッシュを搭載するマ
イクロプロセッサの場合では、キャッシュ容量が小さい
ことによるミスヒットが多発し、このキャッシュミス時
のリプレース時間のオーバーヘッドがプログラム全体の
処理速度を大幅に低下させるという欠点があった。また
プログラムメモリへのアクセス中はCPU動作が完全に
停止してしまうので、マイクロプロセッサ全体の性能低
下の要因となるという欠点があった。
ャッシュのリプレース装置は、コストパフォーマンスの
追求のため比較的小容量の命令キャッシュを搭載するマ
イクロプロセッサの場合では、キャッシュ容量が小さい
ことによるミスヒットが多発し、このキャッシュミス時
のリプレース時間のオーバーヘッドがプログラム全体の
処理速度を大幅に低下させるという欠点があった。また
プログラムメモリへのアクセス中はCPU動作が完全に
停止してしまうので、マイクロプロセッサ全体の性能低
下の要因となるという欠点があった。
【0009】
【課題を解決するための手段】本発明の命令キャッシュ
のリプレース装置は、プログラムメモリから次の処理に
先立ちこの次の処理対応のリプレースアドレス対応の予
め定めたブロックサイズの命令データであるブロックデ
ータを一時格納する前記ブロックサイズの命令キャッシ
ュを備えるマイクロコンピュータの命令キャッシュのリ
プレース装置において、前記ブロックサイズと同一容量
を持つ高速FIFOと、前記命令キャッシュへの取込み
時に出力される今回のリプレースアドレスと前回のリプ
レースアドレスの次のアドレスとの一致および不一致を
検出し一致および不一致信号をそれぞれ供給するアドレ
ス比較手段と、前記一致信号の供給に応答して前記高速
FIFOから前記命令キャッシュに対して前記ブロック
データの転送を行なうFIFO制御手段と、前記高速F
IFOから供給される空情報信号に応答してCPU動作
と並行して前記プログラムメモリから次の前記ブロック
データを前記高速FIFOにプリロードするメモリ制御
手段とを備えて構成されている。
のリプレース装置は、プログラムメモリから次の処理に
先立ちこの次の処理対応のリプレースアドレス対応の予
め定めたブロックサイズの命令データであるブロックデ
ータを一時格納する前記ブロックサイズの命令キャッシ
ュを備えるマイクロコンピュータの命令キャッシュのリ
プレース装置において、前記ブロックサイズと同一容量
を持つ高速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とを備える。
を参照すると、この図に示す本実施例の命令キャッシュ
のリプレース装置は、図6の従来の命令キャッシュのリ
プレース装置と同様の、CPU部2とバスインタフェー
ス部3と命令キャッシュ4とを内蔵するマイクロプロセ
ッサ1と、プログラムメモリ17とに加えて、比較器部
5と、命令キャッシュ4のブロックサイズと同容量すな
わち4ワード分の高速FIFO(先入れ先出しバッフア
メモリ)6と、FIFO制御部7と、プログラムメモリ
制御部8とを備える。
【0011】比較器部5は、次のリプレースアドレスを
計算するためのリプレースアドレスインクリメンタ9
と、キャッシュミス時のリプレースアドレスが前回のリ
プレースアドレスの次のアドレスか否かを判定する比較
器10とを備える。
計算するためのリプレースアドレスインクリメンタ9
と、キャッシュミス時のリプレースアドレスが前回のリ
プレースアドレスの次のアドレスか否かを判定する比較
器10とを備える。
【0012】FIFO制御部7は、マイクロプロセッサ
へのレディ信号を発生するレデイ制御回路11と、高速
FIFO6からブロックデータを読み出すためのFIF
Oリード制御回路12と、プログラムメモリからのブロ
ックデータを高速FIFOへ書込むためのFIFOライ
ト制御回路13とを備える。
へのレディ信号を発生するレデイ制御回路11と、高速
FIFO6からブロックデータを読み出すためのFIF
Oリード制御回路12と、プログラムメモリからのブロ
ックデータを高速FIFOへ書込むためのFIFOライ
ト制御回路13とを備える。
【0013】プログラムメモリ制御部8は、次のブロッ
クデータをプログラムメモリ17から1ワードづつ順次
プリロードするために必要なアドレスカウンタA14
と、比較器10の不一致信号によりプログラムメモリ1
7からミスアドレスに対応したブロックデータを順次読
み出すために必要なアドレスカウンタB15と、プリロ
ード時ならびに比較器10のミス時にプログラムメモリ
17からブロックデータをリードするためのプログラム
メモリ読出制御回路16とを備える。
クデータをプログラムメモリ17から1ワードづつ順次
プリロードするために必要なアドレスカウンタA14
と、比較器10の不一致信号によりプログラムメモリ1
7からミスアドレスに対応したブロックデータを順次読
み出すために必要なアドレスカウンタB15と、プリロ
ード時ならびに比較器10のミス時にプログラムメモリ
17からブロックデータをリードするためのプログラム
メモリ読出制御回路16とを備える。
【0014】高速FIFO6の容量を命令キャッシュ4
のブロックサイズと同じ4ワードにしているのは、命令
キャッシュ4の1回のリプレース処理がブロック単位す
なわち4ワードで行なわれるためであり、上記ブロック
サイズ以下の容量ではリプレース動作に追従できない。
また命令キャッシュ4のリプレース動作が終了するとマ
イクロプロセッサ1は本来のプログラム実行動作に移る
ため、ほとんどの場合CPU2の動作中に次のブロック
データをプリロードしておくことができる。したがって
高速FIFO6が複数ブロック分の容量を持っていたと
してもあまり効果はない。
のブロックサイズと同じ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処理)。
示す図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の処理と並行して処理されるためプログ
ラム実行速度には影響を与えない。
ように、プログラムメモリ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で終了することになる。
ャッシュミスが生じた場合、キャッシュリプレースのた
めのバスサイクルが起動されバスサイクル信号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における不一致の
動作はまれである。
高速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として転送される。これにより一層高速化が図れる。
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倍に高
速化される。
はプログラムの局所性に着目し、キャッシュ動作を命令
キャッシュに限定している。プログラムの場合のリプレ
ース動作は多くの場合連続したアドレスからのリプレー
ス動作となる。命令キャッシュミスによるリプレース動
作のうち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から上記ブロックデータを直ちにロードできるため、
高速に命令キャッシュのリプレースが行なえるという効
果がある。
ッシュのリプレース装置は、命令キャッシュのブロック
サイズと同一容量の高速FIFOと、今回のリプレース
アドレスと前回のリプレースアドレスの次のアドレスと
の一致信号を供給するアドレス比較手段と、上記一致信
号の供給に応答して動作するFIFO制御手段と、空情
報信号に応答して次の上記ブロックデータを上記高速F
IFOにプリロードするメモリ制御手段とを備えること
により、従来、命令キャッシュミスが生じた場合プログ
ラムメモリから直接命令キャッシュに次のリプレースア
ドレス対応のブロックデータをロードする代りに、予め
上記ブロックデータを上記高速FIFOにプリロードし
ておくことにより、キャッシュミス時はこの高速FIF
Oから上記ブロックデータを直ちにロードできるため、
高速に命令キャッシュのリプレースが行なえるという効
果がある。
【0022】また、高速FIFOへのプリロード動作
は、CPUの動作とは完全に独立しているのでマイクロ
プロセッサの命令実行に全く影響を与えないので、マイ
クロプロセッサ全体の性能低下要因を除去できるという
効果がある。
は、CPUの動作とは完全に独立しているのでマイクロ
プロセッサの命令実行に全く影響を与えないので、マイ
クロプロセッサ全体の性能低下要因を除去できるという
効果がある。
【図1】本発明の命令キャッシュのリプレース装置の第
1の実施例を示すブロック図である。
1の実施例を示すブロック図である。
【図2】本実施例の動作の一部を示すフローチャートで
ある。
ある。
【図3】本実施例の動作の他の一部を示すフローチャー
トである。
トである。
【図4】本実施例の制御動作を示すタイミングチャート
である。
である。
【図5】本発明の命令キャッシュのリプレース装置の第
2の実施例を示すブロック図である。
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】 プログラムメモリから次の処理に先立ち
この次の処理対応のリプレースアドレス対応の予め定め
たブロックサイズの命令データであるブロックデータを
一時格納する前記ブロックサイズの命令キャッシュを備
えるマイクロコンピュータの命令キャッシュのリプレー
ス装置において、 前記ブロックサイズと同一容量を持つ高速FIFOと、 前記命令キャッシュへの取込み時に出力される今回のリ
プレースアドレスと前回のリプレースアドレスの次のア
ドレスとの一致および不一致を検出し一致および不一致
信号をそれぞれ供給するアドレス比較手段と、 前記一致信号の供給に応答して前記高速FIFOから前
記命令キャッシュに対して前記ブロックデータの転送を
行なうFIFO制御手段と、 前記高速FIFOから供給される空情報信号に応答して
CPU動作と並行して前記プログラムメモリから次の前
記ブロックデータを前記高速FIFOにプリロードする
メモリ制御手段とを備えることを特徴とする命令キャッ
シュのリプレース装置。 - 【請求項2】 前記不一致信号の供給に応答し前記プロ
グラムメモリからの前記ブロックデータが前記高速FI
FOをバイパスして直接前記命令キャッシュに伝送され
るよう切替る高速FIFOバイパス手段をさらに備える
ことを特徴とする請求項1記載の命令キャッシュのリプ
レース装置。
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)
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)
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 | メモリアクセス方式 |
-
1993
- 1993-10-07 JP JP5251270A patent/JPH07105098A/ja active Pending
Patent Citations (4)
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)
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 |