JP2000357090A - マイクロコンピュータおよびキャッシュ制御方法 - Google Patents

マイクロコンピュータおよびキャッシュ制御方法

Info

Publication number
JP2000357090A
JP2000357090A JP11168213A JP16821399A JP2000357090A JP 2000357090 A JP2000357090 A JP 2000357090A JP 11168213 A JP11168213 A JP 11168213A JP 16821399 A JP16821399 A JP 16821399A JP 2000357090 A JP2000357090 A JP 2000357090A
Authority
JP
Japan
Prior art keywords
branch
instruction
prefetch
taken
cpu
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
JP11168213A
Other languages
English (en)
Inventor
Hirokazu Tsukamoto
宏和 塚本
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 JP11168213A priority Critical patent/JP2000357090A/ja
Publication of JP2000357090A publication Critical patent/JP2000357090A/ja
Pending legal-status Critical Current

Links

Landscapes

  • Advance Control (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

(57)【要約】 【課題】 本発明は、CPUに複雑な分岐予測機構を設
けることなく条件分岐命令実行時間のメインメモリに対
する命令フェッチに伴うアクセス時間の短縮を図るマイ
クロコンピュータおよびキャッシュ制御方法を提供する
ことを課題とする。 【解決手段】 条件分岐命令によるキャッシュミスの発
生時でのメインメモリ18へのアクセス時間を短縮する
ために分岐予測機構を内蔵するCPU12と、通常時に
CPU12の命令フェッチの実行対象となるキャッシュ
メモリ10と、分岐成立時にCPU12の命令フェッチ
の実行対象となる分岐成立プリフェッチキュー14と、
分岐不成立時にCPU12の命令フェッチの実行対象と
なる分岐不成立プリフェッチキュー16と、CPU12
の外に設けられ分岐命令を判断するプリデコーダ22
と、メモリアクセスのアドレス生成機能を有するメモリ
コントローラ20を有する。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、マイクロコンピュ
ータのキャッシュ制御技術に係り、特にCPUに複雑な
分岐予測機構を設けることなく条件分岐命令実行時間の
メインメモリに対する命令フェッチに伴うアクセス時間
の短縮を図ると同時に回路構成の複雑化を回避して性能
向上を図るマイクロコンピュータおよびキャッシュ制御
方法に関する。
【0002】
【従来の技術】命令キャッシュ、命令プリフェッチバッ
ファ、および主メモリの階層構造を備えた情報処理装置
の従来のメモリ制御装置においては、プリフェッチされ
るメモリブロックは最後にアクセスした(Most R
ecently Used、最も最近使用されたの意味
で「MRU」ともいう)メモリブロック(所定ワード数
からなる)の次のアドレスのメモリブロックとされてい
た。例えばアドレスに従った集合として順序付けられた
メモリ中のブロックを想定し、メモリブロックLiをア
クセスする時に、通常プログラムの振舞の局所性等から
次のメモリブロックLi+1が命令キャッシュおよび命
令プリフェッチバッファ中に存在しない場合メモリブロ
ックLi+1が主メモリからプリフェッチされる。
【0003】しかしながら、従来のメモリ制御装置にお
いては、CPUが実行する命令中に分岐命令が含まれて
いる場合、プリフェッチした命令が無駄になる場合があ
る。すなわち、分岐先アドレスの命令の写し(コピー)
が命令キャッシュメモリ内に存在せず、また命令プリフ
ェッチバッファにも存在しない場合には該アドレスの命
令を含むメモリブロックを新たに主メモリからリードす
る(読み出す)ことが必要とされ、既にプリフェッチし
た命令が無駄になる。キャッシュメモリを備えた高速プ
ロセッサの処理能力はキャッシュメモリに対する高いヒ
ット率に依存し、分岐命令実行時には処理性能が低下す
る場合があるという問題がある。また、メモリ制御装置
が主メモリから命令をプリフェッチしている最中にCP
Uから分岐先の命令の要求が来た場合に、進行中のメモ
リ読み出し動作を中断して分岐先の命令を含むメモリブ
ロックを主メモリからリードしなければならず、命令要
求から命令の転送終了までに要する時間が、プリフェッ
チ機能を持たないメモリ制御装置よりも長くなるという
問題がある。
【0004】このような問題点を解決することを目的と
する従来技術としては、例えば、特開平8−28691
4号公報に記載のものがある。すなわち、従来技術は、
キャッシュメモリの前段に配置され、キャッシュメモリ
に転送される分岐命令を検出し、分岐先のアドレスを生
成出力するデコード手段を備えるとともに、デコード手
段の出力に基づき次にプリフェッチするメモリブロック
のアドレスを決定する手段を備えた情報処理装置のメモ
リ制御装置であって、デコード手段が、主メモリの出力
と命令プリフェッチバッファの出力のいずれか一を選択
出力するセレクタの出力を入力とし、かつ命令キャッシ
ュメモリの前段に配置され、CPUが必要とする命令が
命令キャッシュメモリ中に存在しない場合において命令
を主メモリまたは命令プリフェッチバッファから命令キ
ャッシュメモリへ転送する際に、転送中の命令を入力し
これをデコードするように構成され、制御手段が、デコ
ード手段から出力される分岐命令検出信号がアクティブ
状態のときに、分岐先アドレスを含むメモリブロックの
アドレスを次にプリフェッチするメモリブロックのアド
レスとして主メモリから読み出し、また、メモリブロッ
ク転送中においてデコード手段から出力される分岐命令
の検出信号がインアクティブ状態の時には、転送したメ
モリブロックの次のメモリブロックのアドレスを次にプ
リフェッチするメモリブロックのアドレスとして主メモ
リから読み出すように構成されていることが開示されて
いる。このような従来技術では、命令キャッシュメモリ
へ転送中の命令をデコードし、分岐命令がある場合には
分岐先の命令をプリフェッチすることにより、プリフェ
ッチの効率を改善して処理性能を向上させるという効
果、命令キャッシュメモリに転送された命令をCPUが
実行する段階では分岐先アドレスを含むメモリブロック
はプリフェッチバッファに既に格納されているため、メ
モリブロックを主メモリから読み出すことが不要とさ
れ、分岐命令実行の際の処理性能の低下を抑止できると
いった効果が記載されている。
【0005】
【発明が解決しようとする課題】しかしながら、従来技
術には以下に掲げる問題点があった。まず、第1の問題
点は、分岐予測を実行するための論理回路と、分岐命令
の実行履歴を保存する分岐ターゲットキャッシュが必要
であり、多くの資源が必要であることである。また第2
の問題点は、従来の分岐予測機構を持つCPUのプリフ
ェッチ動作では、分岐予測した側の命令列のアドレスを
基にメモリコントローラがシーケンシャルにプリフェッ
チを実行し、プリフェッチを行ったデータがキャッシュ
メモリに書き込まれるため、分岐予測が失敗した場合に
は、条件分岐命令実行後にキャッシュのミスヒットが発
生する可能性が高いことである。また第3の問題点は、
条件分岐命令実行後にキャッシュのミスヒットが発生し
た場合、条件分岐が失敗した側の命令列に対してメイン
メモリからキャッシュのリフィル時間が必要となり、実
行速度が低下することである。そして第4の問題点は、
条件分岐命令実行後にキャッシュのミスヒットが発生し
た場合であって条件分岐の予測が失敗したときは、プリ
フェッチ動作によって本来不要なデータをフェッチして
しまい、キャッシュへのストア時に元のキャッシュライ
ンが破壊されてしまうため、キャッシュのヒット率が低
下してしまう結果、さらに性能を悪化させることであ
る。
【0006】本発明は斯かる問題点を鑑みてなされたも
のであり、その目的とするところは、CPUに複雑な分
岐予測機構を設けることなく条件分岐命令実行時間のメ
インメモリに対する命令フェッチに伴うアクセス時間の
短縮を図ると同時に回路構成の複雑化を回避して性能向
上を図るマイクロコンピュータおよびキャッシュ制御方
法を提供する点にある。
【0007】
【課題を解決するための手段】請求項1に記載の発明の
要旨は、CPUに複雑な分岐予測機構を設けることなく
条件分岐命令実行時間のメインメモリに対する命令フェ
ッチに伴うアクセス時間の短縮を図ると同時に回路構成
の複雑化を回避して性能向上を図るマイクロコンピュー
タであって、条件分岐命令によるキャッシュミスの発生
時でのメインメモリへのアクセス時間を短縮するために
分岐予測機構を内蔵するCPUと、通常時に前記CPU
の命令フェッチの実行対象となるキャッシュメモリと、
分岐成立時に前記CPUの命令フェッチの実行対象とな
る分岐成立プリフェッチキューと、分岐不成立時に前記
CPUの命令フェッチの実行対象となる分岐不成立プリ
フェッチキューと、前記CPUの外に設けられ分岐命令
を判断するプリデコーダと、メモリアクセスのアドレス
生成機能を有するメモリコントローラを有することを特
徴とするマイクロコンピュータに存する。また請求項2
に記載の発明の要旨は、CPUに複雑な分岐予測機構を
設けることなく条件分岐命令実行時間のメインメモリに
対する命令フェッチに伴うアクセス時間の短縮を図ると
同時に回路構成の複雑化を回避して性能向上を図るマイ
クロコンピュータであって、条件分岐命令によるキャッ
シュミスの発生時でのメインメモリへのアクセス時間を
短縮するために分岐予測機構を内蔵するCPUと、通常
時に前記CPUの命令フェッチの実行対象となるキャッ
シュメモリと、分岐成立時に前記CPUの命令フェッチ
の実行対象となる分岐成立プリフェッチキューと、分岐
不成立時に前記CPUの命令フェッチの実行対象となる
分岐不成立プリフェッチキューと、前記CPUの命令フ
ェッチの実行対象とならなかった他方のプリフェッチキ
ューのデータを破棄せずに格納する分岐不使用側プリフ
ェッチキャッシュメモリと、前記CPUの外に設けられ
分岐命令を判断するプリデコーダと、メモリアクセスの
アドレス生成機能を有するメモリコントローラを有する
ことを特徴とするマイクロコンピュータに存する。また
請求項3に記載の発明の要旨は、前記プリデコーダは、
前記メインメモリから分岐成立側および/または分岐不
成立側の2つのプリフェッチキューである前記分岐成立
プリフェッチキューおよび/または前記分岐不成立プリ
フェッチキューへのデータ転送を制御するように構成さ
れていることを特徴とする請求項1または2に記載のマ
イクロコンピュータに存する。また請求項4に記載の発
明の要旨は、前記プリデコーダは、命令フェッチでキャ
ッシュミスが発生した場合に、前記メインメモリからプ
リフェッチバッファに保持されるフェッチデータを基に
分岐命令を判断するとともに、前記キャッシュメモリ、
前記分岐成立プリフェッチキュー、前記分岐不成立プリ
フェッチキューのうちいずれに当該フェッチデータを転
送するかを決定するように構成されていることを特徴と
する請求項1または2に記載のマイクロコンピュータに
存する。また請求項5に記載の発明の要旨は、前記CP
Uは、前記キャッシュメモリで分岐命令をフェッチした
後、当該分岐命令実行結果に応じて前記分岐成立プリフ
ェッチキュー、前記分岐不成立プリフェッチキューのう
ちいずれにアクセスするかを決定して前記フェッチデー
タの前記CPUへの取り込み処理を実行するように構成
されていることを特徴とする請求項4に記載のマイクロ
コンピュータに存する。また請求項6に記載の発明の要
旨は、CPUに複雑な分岐予測機構を設けることなく条
件分岐命令実行時間のメインメモリに対する命令フェッ
チに伴うアクセス時間の短縮を図ると同時に回路構成の
複雑化を回避して性能向上を図るキャッシュ制御方法で
あって、条件分岐命令によるキャッシュミスの発生時で
のメインメモリへのアクセス時間を短縮するために分岐
予測処理をCPUを制御して実行する工程と、通常時に
前記CPUの命令フェッチの実行対象となるキャッシュ
メモリを管理する工程と、分岐成立時に前記CPU命令
フェッチの実行対象となる分岐成立プリフェッチキュー
を管理する工程と、分岐不成立時に前記CPUの命令フ
ェッチの実行対象となる分岐不成立プリフェッチキュー
を管理する工程と、前記CPUの外に設けられ分岐命令
を判断するプリデコーダを管理する工程と、メモリアク
セスのアドレス生成機能を有するメモリコントローラを
管理する工程を有することを特徴とするキャッシュ制御
方法に存する。また請求項7に記載の発明の要旨は、C
PUに複雑な分岐予測機構を設けることなく条件分岐命
令実行時間のメインメモリに対する命令フェッチに伴う
アクセス時間の短縮を図ると同時に回路構成の複雑化を
回避して性能向上を図るキャッシュ制御方法であって、
条件分岐命令によるキャッシュミスの発生時でのメイン
メモリへのアクセス時間を短縮するために分岐予測処理
をCPUを制御して実行する工程と、通常時に前記CP
Uの命令フェッチの実行対象となるキャッシュメモリを
管理する工程と、分岐成立時に前記CPUの命令フェッ
チの実行対象となる分岐成立プリフェッチキューを管理
する工程と、分岐不成立時に前記CPUの命令フェッチ
の実行対象となる分岐不成立プリフェッチキューを管理
する工程と、前記CPUの命令フェッチの実行対象とな
らなかった他方のプリフェッチキューのデータを破棄せ
ずに格納する分岐不使用側プリフェッチキャッシュメモ
リを管理する工程と、前記CPUの外に設けられ分岐命
令を判断するプリデコーダを管理する工程と、メモリア
クセスのアドレス生成機能を有するメモリコントローラ
を管理する工程を有することを特徴とするキャッシュ制
御方法に存する。また請求項8に記載の発明の要旨は、
前記プリデコーダは、前記メインメモリから分岐成立側
および/または分岐不成立側の2つのプリフェッチキュ
ーである前記分岐成立プリフェッチキューおよび/また
は前記分岐不成立プリフェッチキューへのデータ転送を
制御するように構成されていることを特徴とする請求項
6または7に記載のキャッシュ制御方法に存する。また
請求項9に記載の発明の要旨は、前記プリデコーダを管
理する工程は、命令フェッチでキャッシュミスが発生し
た場合に、前記メインメモリからプリフェッチバッファ
に保持されるフェッチデータを基に分岐命令を判断する
とともに、前記キャッシュメモリ、前記分岐成立プリフ
ェッチキュー、前記分岐不成立プリフェッチキューのう
ちいずれに当該フェッチデータを転送するかを決定する
工程を含むことを特徴とする請求項6または7に記載の
キャッシュ制御方法に存する。また請求項10に記載の
発明の要旨は、前記分岐予測処理をCPUを制御して実
行する工程は、前記キャッシュメモリで分岐命令をフェ
ッチした後、当該分岐命令実行結果に応じて前記分岐成
立プリフェッチキュー、前記分岐不成立プリフェッチキ
ューのうちいずれにアクセスするかを決定して前記フェ
ッチデータの前記CPUへの取り込み処理を実行する含
むことを特徴とする請求項9に記載のキャッシュ制御方
法に存する。また請求項11に記載の発明の要旨は、命
令実行の前に前記メモリコントローラが前記メインメモ
リから命令アクセスのプリフェッチを実行し、通常は前
記キャッシュメモリにデータを格納する工程と、前記C
PUが前記キャッシュメモリから命令をフェッチすると
ともに、プリフェッチした命令のプリデコードを実行し
て分岐命令および条件分岐命令を他の命令と判別し、プ
リデコード結果が分岐命令の場合に前記プリデコーダが
飛び先アドレスの計算を実行し、前記キャッシュメモリ
にデータが存在しない場合に前記メインメモリから飛び
先アドレスのプリフェッチデータを前記プリデコーダが
前記キャッシュメモリに格納し、前記キャッシュメモリ
から命令をフェッチし、プリデコード結果が条件分岐命
令の場合に前記プリデコーダが飛び先アドレスの計算を
実行し、前記キャッシュメモリにデータが存在しない場
合に前記メインメモリから飛び先アドレスのプリフェッ
チデータを前記分岐成立プリフェッチキューに格納し、
分岐不成立時のシーケンシャルな命令プリフェッチも併
せて実行して前記分岐不成立プリフェッチキューに格納
する工程と、分岐命令実行の分岐判断時に、分岐成立側
および分岐不成立側の2つのプリフェッチキューのデー
タについて、分岐判断に合致したプリフェッチキューか
ら命令フェッチを実行して前記キャッシュメモリに当該
命令フェッチ実行時のフェッチデータを格納するととも
に、他方のプリフェッチキューである命令フェッチが実
行されなかったプリフェッチキューのデータを破棄する
工程を有することを特徴とする請求項6に記載のキャッ
シュ制御方法に存する。また請求項12に記載の発明の
要旨は、命令実行の前に前記メモリコントローラが前記
メインメモリから命令アクセスのプリフェッチを実行し
て前記キャッシュメモリにデータを格納し、前記CPU
が前記キャッシュメモリから命令をフェッチし、プリフ
ェッチした命令のプリデコードを実行し、分岐命令およ
び条件分岐命令を他の命令と判別する工程と、前記CP
Uが前記キャッシュメモリから命令をフェッチするとと
もに、プリフェッチした命令のプリデコードを実行して
分岐命令および条件分岐命令を他の命令と判別し、前記
プリデコーダが、プリデコード結果が分岐命令の場合に
飛び先アドレスの計算を実行し、当該計算結果に基づい
て、前記キャッシュメモリにデータが存在しない場合に
前記メインメモリから飛び先アドレスのプリフェッチデ
ータを前記キャッシュメモリに格納し、プリデコード結
果が条件分岐命令の場合に飛び先アドレスの計算を実行
し、前記キャッシュメモリにデータが存在しない場合に
前記メインメモリから飛び先アドレスのプリフェッチデ
ータを前記分岐成立プリフェッチキューに格納し、分岐
不成立時のシーケンシャルな命令プリフェッチも直後に
実行して前記分岐不成立プリフェッチキューに格納する
工程と、分岐成立側および分岐不成立側の2つのプリフ
ェッチキューは、分岐命令実行の分岐判断時に分岐判断
に合致したプリフェッチキューから命令フェッチを実行
して前記キャッシュメモリにフェッチデータを格納する
工程と、命令フェッチに使用しなかった他方のプリフェ
ッチキューのデータを破棄せずに前記分岐不使用側プリ
フェッチキャッシュメモリに格納する工程と、再び同じ
条件分岐命令を前記キャッシュメモリの使用時に実行
し、前記キャッシュメモリに現在ない命令列を実行する
場合に前記分岐不使用側プリフェッチキャッシュメモリ
に蓄えられた命令を実行する工程を有することを特徴と
する請求項7に記載のキャッシュ制御方法に存する。
【0008】
【発明の実施の形態】以下に示す各実施の形態の特徴
は、条件分岐命令によるキャッシュミスの発生時でのメ
インメモリへのアクセス時間を短縮するために分岐予測
機構をCPUに内蔵することで、条件分岐命令以降のメ
インメモリのアクセス方向を決定する既存のCPUのよ
うな高速な分岐予測機構が不要となり、各条件分岐命令
の分岐予測情報を格納するためのRAMが不要となる結
果、大幅なコストダウンを実現できること、分岐成立側
および分岐不成立側の2つのプリフェッチキュー(分岐
成立プリフェッチキュー、分岐不成立プリフェッチキュ
ー)、CPUの外に設けられ分岐命令を判断するプリデ
コーダ、およびメモリアクセスのアドレス生成機能を有
するメモリコントローラの3つに必須構成要素を削減し
てハードウェアの簡便化が可能となる結果、低コストで
マイクロコンピュータの性能向上を実現できること、キ
ャッシュメモリのデータを破壊する、すなわち、分岐命
令および条件分岐命令に伴う余計なメインメモリからキ
ャッシュメモリへのプリフェッチを発生させないように
できる結果、キャッシュメモリのヒット率の向上に代表
されるマイクロコンピュータの性能向上を図ることがで
きることである。以下、本発明の実施の形態を図面に基
づいて詳細に説明する。
【0009】(第1の実施の形態)図1は本発明の第1
の実施の形態にかかるマイクロコンピュータ100を説
明するための機能ブロック図である。図1において、1
0はキャッシュメモリ、12はCPU、14は分岐成立
プリフェッチキュー、16は分岐不成立プリフェッチキ
ュー、18はメインメモリ、20はメモリコントロー
ラ、22はプリデコーダ、26はプリフェッチバッフ
ァ、28は第1内部データバス、30は第2内部データ
バス、そして、100はマイクロコンピュータを示して
いる。図1を参照すると、本実施の形態では、CPU1
2の命令フェッチを実行する手段として、通常のキャッ
シュメモリ10、分岐成立プリフェッチキュー14、お
よび、分岐不成立プリフェッチキュー16を備えてい
る。第1内部データバス28には、キャッシュメモリ1
0、CPU12、分岐成立プリフェッチキュー14、お
よび、分岐不成立プリフェッチキュー16が接続されて
いる。第2内部データバス30には、キャッシュメモリ
10、分岐成立プリフェッチキュー14、分岐不成立プ
リフェッチキュー16、および、プリフェッチバッファ
26が接続されている。
【0010】プリデコーダ22は、メモリコントローラ
20およびプリフェッチバッファ26に接続され、メイ
ンメモリ18から分岐成立側および分岐不成立側の2つ
のプリフェッチキュー(分岐成立プリフェッチキュー1
4、分岐不成立プリフェッチキュー16)へのデータ転
送を制御する機能、命令フェッチでキャッシュミスが発
生した場合に、メインメモリ18からプリフェッチバッ
ファ26に保持されるフェッチデータを基に分岐命令を
判断し、キャッシュメモリ10、分岐成立プリフェッチ
キュー14、分岐不成立プリフェッチキュー16のどこ
に第2内部データバス30を介してフェッチデータを転
送するかを決定する機能を有している。
【0011】CPU12は、キャッシュメモリ10で分
岐命令をフェッチした後、命令実行結果に応じて分岐成
立プリフェッチキュー14、分岐不成立プリフェッチキ
ュー16のどちらにアクセスするかを決定することによ
りフェッチデータのCPU12への取り込み処理を実行
する機能を有している。
【0012】次に図1を用いてマイクロコンピュータの
動作(キャッシュ制御方法)について説明する。まず、
命令実行の前にメモリコントローラ20がメインメモリ
18から命令アクセスのプリフェッチを実行し、通常は
キャッシュメモリ10にデータを格納する。
【0013】これに応じて、CPU12がキャッシュメ
モリ10から命令をフェッチするとともに、プリフェッ
チした命令のプリデコードを実行して分岐命令および条
件分岐命令を他の命令と判別する。
【0014】このとき、プリデコード結果が分岐命令の
場合にはプリデコーダ22が飛び先アドレスの計算を実
行し、一方、キャッシュメモリ10にデータが存在しな
い場合にはメインメモリ18から飛び先アドレスのプリ
フェッチデータをキャッシュメモリ10に格納する。
【0015】続いて、CPU12がキャッシュメモリ1
0から命令をフェッチする。プリデコード結果が条件分
岐命令の場合にはプリデコーダ22が飛び先アドレスの
計算を実行し、一方、キャッシュメモリ10にデータが
存在しない場合にはメインメモリ18から飛び先アドレ
スのプリフェッチデータを分岐成立プリフェッチキュー
14に格納する。さらにこの直後に、分岐不成立時のシ
ーケンシャルな命令プリフェッチも併せて実行して分岐
不成立プリフェッチキュー16に格納する。
【0016】続いて分岐命令実行の分岐判断時に、分岐
成立側および分岐不成立側の2つのプリフェッチキュー
(分岐成立プリフェッチキュー14、分岐不成立プリフ
ェッチキュー16)のデータは、分岐判断に合致したプ
リフェッチキュー、すなわち、分岐成立プリフェッチキ
ュー14、分岐不成立プリフェッチキュー16のうちい
ずれか一方から命令フェッチを実行してキャッシュメモ
リ10にそのときのフェッチデータを格納すると同時
に、他方のプリフェッチキュー、すなわち、命令フェッ
チが実行されなかったプリフェッチキューのデータは破
棄する。
【0017】以上説明したように第1の実施の形態によ
れば、以下に掲げる効果を奏する。まず第1の効果は、
CPU12に複雑な分岐予測機構を設けることなく、条
件分岐命令実行時間のメインメモリ18に対する命令フ
ェッチに伴うアクセス時間を短縮でき、回路構成を複雑
にせずに性能を向上できることである。すなわち、条件
分岐命令によるキャッシュミスの発生時でのメインメモ
リ18へのアクセス時間を短縮するために分岐予測機構
をCPU12に内蔵することで、条件分岐命令以降のメ
インメモリ18のアクセス方向を決定する既存のCPU
12のような高速な分岐予測機構が不要となり、各条件
分岐命令の分岐予測情報を格納するためのRAMが不要
となる結果、大きなコストダウンを実現できる。
【0018】また第2の効果は、分岐成立側および分岐
不成立側の2つのプリフェッチキュー(分岐成立プリフ
ェッチキュー14、分岐不成立プリフェッチキュー1
6)、CPU12の外に設けられ分岐命令を判断するプ
リデコーダ22、およびメモリアクセスのアドレス生成
機能を有するメモリコントローラ20の3つに必須構成
要素を削減してハードウェアの簡便化が可能となる結
果、低コストでマイクロコンピュータ100の性能向上
を実現できることである。
【0019】そして第3の効果は、キャッシュメモリ1
0のデータを破壊する、すなわち、分岐命令および条件
分岐命令に伴う余計なメインメモリ18からキャッシュ
メモリ10へのプリフェッチを発生させないようにでき
る結果、キャッシュメモリ10のヒット率の向上に代表
されるマイクロコンピュータ100の性能向上を図るこ
とができることである。
【0020】(第2の実施の形態)図2は本発明の第2
の実施の形態にかかるマイクロコンピュータ100を説
明するための機能ブロック図である。図2において、1
0はキャッシュメモリ、12はCPU、14は分岐成立
プリフェッチキュー、16は分岐不成立プリフェッチキ
ュー、18はメインメモリ、20はメモリコントロー
ラ、22はプリデコーダ、24は分岐不使用側プリフェ
ッチキャッシュメモリ、26はプリフェッチバッファ、
28は第1内部データバス、30は第2内部データバ
ス、そして、100はマイクロコンピュータを示してい
る。なお、第1の実施の形態において既に記述したもの
と同一の部分については、同一符号を付し、重複した説
明は省略する。図2を参照すると、本実施の形態では、
前述のキャッシュメモリ10、分岐成立プリフェッチキ
ュー14、および、分岐不成立プリフェッチキュー16
に加えて、使用しなかった他方のプリフェッチキューの
データを破棄せずに格納する分岐不使用側プリフェッチ
キャッシュメモリ24を第1内部データバス28に接続
し、再び同じ条件分岐命令をキャッシュメモリ10の使
用時に実行し、現在キャッシュメモリ10にない、すな
わち、前回使用しなかった側の命令列を実行する場合、
分岐不使用側プリフェッチキャッシュメモリ24に蓄え
られた命令を実行する点に特徴を有している。
【0021】本実施の形態では、プリデコーダ22の動
作は第1の実施の形態と同様である。メモリコントロー
ラ20が命令実行の前に、メインメモリ18から命令ア
クセスのプリフェッチを実行し、通常はキャッシュメモ
リ10にデータを格納する。続いて、CPU12がキャ
ッシュメモリ10から命令をフェッチし、さらにプリフ
ェッチした命令のプリデコードを実行し、分岐命令およ
び条件分岐命令を他の命令と判別する。
【0022】続いて、プリデコーダ22が、プリデコー
ド結果が分岐命令の場合に飛び先アドレスの計算を実行
し、その結果、キャッシュメモリ10にデータが存在し
ない場合にメインメモリ18から飛び先アドレスのプリ
フェッチデータをキャッシュメモリ10に格納し、一
方、プリデコード結果が条件分岐命令の場合に飛び先ア
ドレスの計算を実行し、その結果、キャッシュメモリ1
0にデータが存在しない場合にはメインメモリ18から
飛び先アドレスのプリフェッチデータを分岐成立プリフ
ェッチキュー14に格納する。さらに、プリデコーダ2
2は、分岐不成立時のシーケンシャルな命令プリフェッ
チも直後に行い、分岐不成立プリフェッチキュー16に
格納する。
【0023】分岐成立側および分岐不成立側の2つのプ
リフェッチキュー(分岐成立プリフェッチキュー14、
分岐不成立プリフェッチキュー16)のデータは、分岐
命令実行の分岐判断時に分岐判断に合致したプリフェッ
チキュー、すなわち、分岐成立プリフェッチキュー14
または分岐不成立プリフェッチキュー16のうちいずれ
か一方のプリフェッチキューから命令フェッチを実行し
てキャッシュメモリ10にフェッチデータを格納するま
での動作は第1の実施の形態と同様である。
【0024】続いて、命令フェッチに使用しなかった他
方のプリフェッチキュー、すなわち、分岐成立プリフェ
ッチキュー14または分岐不成立プリフェッチキュー1
6のうちの命令フェッチに使用したプリフェッチキュー
でない方のプリフェッチキューのデータを破棄せずに、
分岐不使用側プリフェッチキャッシュメモリ24に格納
する。
【0025】続いて、再び同じ条件分岐命令をキャッシ
ュメモリ10の使用時に実行し、現在キャッシュメモリ
10にない、すなわち、前回使用しなかった側の命令列
を実行する場合に分岐不使用側プリフェッチキャッシュ
メモリ24に蓄えられた命令を実行する。
【0026】以上説明したように第2の実施の形態によ
れば、キャッシュヒット時に条件分岐命令が存在した場
合にもメモリのアクセス時間の短縮が実現できる結果、
キャッシュミス時の命令フェッチ時に存在する分岐命令
のみに有効である第1の実施の形態に比較してさらに実
行時間の短縮が可能となるといった効果を奏する。
【0027】なお、本発明が上記各実施の形態に限定さ
れず、本発明の技術思想の範囲内において、各実施の形
態は適宜変更され得ることは明らかである。また上記構
成部材の数、位置、形状等は上記実施の形態に限定され
ず、本発明を実施する上で好適な数、位置、形状等にす
ることができる。また、各図において、同一構成要素に
は同一符号を付している。
【0028】
【発明の効果】本発明は以上のように構成されているの
で、以下に掲げる効果を奏する。まず第1の効果は、C
PUに複雑な分岐予測機構を設けることなく、条件分岐
命令実行時間のメインメモリに対する命令フェッチに伴
うアクセス時間を短縮でき、回路構成を複雑にせずに性
能を向上できることである。すなわち、条件分岐命令に
よるキャッシュミスの発生時でのメインメモリへのアク
セス時間を短縮するために分岐予測機構をCPUに内蔵
することで、条件分岐命令以降のメインメモリアクセス
方向を決定する既存のCPUのような高速な分岐予測機
構が不要となり、各条件分岐命令の分岐予測情報を格納
するためのRAMが不要となる結果、大きなコストダウ
ンを実現できる。また第2の効果は、分岐成立側および
分岐不成立側の2つのプリフェッチキュー、CPUの外
に設けられ分岐命令を判断するプリデコーダ、およびメ
モリアクセスのアドレス生成機能を有するメモリコント
ローラの3つに必須構成要素を削減してハードウェアの
簡便化が可能となる結果、低コストでマイクロコンピュ
ータの性能向上を実現できることである。そして第3の
効果は、キャッシュメモリのデータを破壊する、すなわ
ち、分岐命令および条件分岐命令に伴う余計なメインメ
モリからキャッシュへのプリフェッチを発生させないよ
うにできる結果、キャッシュのヒット率の向上に代表さ
れるマイクロコンピュータの性能向上を図ることができ
ることである。
【図面の簡単な説明】
【図1】本発明の第1の実施の形態にかかるマイクロコ
ンピュータを説明するための機能ブロック図である。
【図2】本発明の第2の実施の形態にかかるマイクロコ
ンピュータを説明するための機能ブロック図である。
【符号の説明】 10…キャッシュメモリ 12…CPU 14…分岐成立プリフェッチキュー 16…分岐不成立プリフェッチキュー 18…メインメモリ 20…メモリコントローラ 22…プリデコーダ 24…分岐不使用側プリフェッチキャッシュメモリ 26…プリフェッチバッファ 28…第1内部データバス 30…第2内部データバス 100…マイクロコンピュータ

Claims (12)

    【特許請求の範囲】
  1. 【請求項1】 CPUに複雑な分岐予測機構を設けるこ
    となく条件分岐命令実行時間のメインメモリに対する命
    令フェッチに伴うアクセス時間の短縮を図ると同時に回
    路構成の複雑化を回避して性能向上を図るマイクロコン
    ピュータであって、 条件分岐命令によるキャッシュミスの発生時でのメイン
    メモリへのアクセス時間を短縮するために分岐予測機構
    を内蔵するCPUと、 通常時に前記CPUの命令フェッチの実行対象となるキ
    ャッシュメモリと、 分岐成立時に前記CPUの命令フェッチの実行対象とな
    る分岐成立プリフェッチキューと、 分岐不成立時に前記CPUの命令フェッチの実行対象と
    なる分岐不成立プリフェッチキューと、 前記CPUの外に設けられ分岐命令を判断するプリデコ
    ーダと、 メモリアクセスのアドレス生成機能を有するメモリコン
    トローラを有することを特徴とするマイクロコンピュー
    タ。
  2. 【請求項2】 CPUに複雑な分岐予測機構を設けるこ
    となく条件分岐命令実行時間のメインメモリに対する命
    令フェッチに伴うアクセス時間の短縮を図ると同時に回
    路構成の複雑化を回避して性能向上を図るマイクロコン
    ピュータであって、 条件分岐命令によるキャッシュミスの発生時でのメイン
    メモリへのアクセス時間を短縮するために分岐予測機構
    を内蔵するCPUと、 通常時に前記CPUの命令フェッチの実行対象となるキ
    ャッシュメモリと、 分岐成立時に前記CPUの命令フェッチの実行対象とな
    る分岐成立プリフェッチキューと、 分岐不成立時に前記CPUの命令フェッチの実行対象と
    なる分岐不成立プリフェッチキューと、 前記CPUの命令フェッチの実行対象とならなかった他
    方のプリフェッチキューのデータを破棄せずに格納する
    分岐不使用側プリフェッチキャッシュメモリと、 前記CPUの外に設けられ分岐命令を判断するプリデコ
    ーダと、 メモリアクセスのアドレス生成機能を有するメモリコン
    トローラを有することを特徴とするマイクロコンピュー
    タ。
  3. 【請求項3】 前記プリデコーダは、前記メインメモリ
    から分岐成立側および/または分岐不成立側の2つのプ
    リフェッチキューである前記分岐成立プリフェッチキュ
    ーおよび/または前記分岐不成立プリフェッチキューへ
    のデータ転送を制御するように構成されていることを特
    徴とする請求項1または2に記載のマイクロコンピュー
    タ。
  4. 【請求項4】 前記プリデコーダは、命令フェッチでキ
    ャッシュミスが発生した場合に、前記メインメモリから
    プリフェッチバッファに保持されるフェッチデータを基
    に分岐命令を判断するとともに、前記キャッシュメモ
    リ、前記分岐成立プリフェッチキュー、前記分岐不成立
    プリフェッチキューのうちいずれに当該フェッチデータ
    を転送するかを決定するように構成されていることを特
    徴とする請求項1または2に記載のマイクロコンピュー
    タ。
  5. 【請求項5】 前記CPUは、前記キャッシュメモリで
    分岐命令をフェッチした後、当該分岐命令実行結果に応
    じて前記分岐成立プリフェッチキュー、前記分岐不成立
    プリフェッチキューのうちいずれにアクセスするかを決
    定して前記フェッチデータの前記CPUへの取り込み処
    理を実行するように構成されていることを特徴とする請
    求項4に記載のマイクロコンピュータ。
  6. 【請求項6】 CPUに複雑な分岐予測機構を設けるこ
    となく条件分岐命令実行時間のメインメモリに対する命
    令フェッチに伴うアクセス時間の短縮を図ると同時に回
    路構成の複雑化を回避して性能向上を図るキャッシュ制
    御方法であって、 条件分岐命令によるキャッシュミスの発生時でのメイン
    メモリへのアクセス時間を短縮するために分岐予測処理
    をCPUを制御して実行する工程と、 通常時に前記CPUの命令フェッチの実行対象となるキ
    ャッシュメモリを管理する工程と、 分岐成立時に前記CPU命令フェッチの実行対象となる
    分岐成立プリフェッチキューを管理する工程と、 分岐不成立時に前記CPUの命令フェッチの実行対象と
    なる分岐不成立プリフェッチキューを管理する工程と、 前記CPUの外に設けられ分岐命令を判断するプリデコ
    ーダを管理する工程と、 メモリアクセスのアドレス生成機能を有するメモリコン
    トローラを管理する工程を有することを特徴とするキャ
    ッシュ制御方法。
  7. 【請求項7】 CPUに複雑な分岐予測機構を設けるこ
    となく条件分岐命令実行時間のメインメモリに対する命
    令フェッチに伴うアクセス時間の短縮を図ると同時に回
    路構成の複雑化を回避して性能向上を図るキャッシュ制
    御方法であって、 条件分岐命令によるキャッシュミスの発生時でのメイン
    メモリへのアクセス時間を短縮するために分岐予測処理
    をCPUを制御して実行する工程と、 通常時に前記CPUの命令フェッチの実行対象となるキ
    ャッシュメモリを管理する工程と、 分岐成立時に前記CPUの命令フェッチの実行対象とな
    る分岐成立プリフェッチキューを管理する工程と、 分岐不成立時に前記CPUの命令フェッチの実行対象と
    なる分岐不成立プリフェッチキューを管理する工程と、 前記CPUの命令フェッチの実行対象とならなかった他
    方のプリフェッチキューのデータを破棄せずに格納する
    分岐不使用側プリフェッチキャッシュメモリを管理する
    工程と、 前記CPUの外に設けられ分岐命令を判断するプリデコ
    ーダを管理する工程と、 メモリアクセスのアドレス生成機能を有するメモリコン
    トローラを管理する工程を有することを特徴とするキャ
    ッシュ制御方法。
  8. 【請求項8】 前記プリデコーダは、前記メインメモリ
    から分岐成立側および/または分岐不成立側の2つのプ
    リフェッチキューである前記分岐成立プリフェッチキュ
    ーおよび/または前記分岐不成立プリフェッチキューへ
    のデータ転送を制御するように構成されていることを特
    徴とする請求項6または7に記載のキャッシュ制御方
    法。
  9. 【請求項9】 前記プリデコーダを管理する工程は、命
    令フェッチでキャッシュミスが発生した場合に、前記メ
    インメモリからプリフェッチバッファに保持されるフェ
    ッチデータを基に分岐命令を判断するとともに、前記キ
    ャッシュメモリ、前記分岐成立プリフェッチキュー、前
    記分岐不成立プリフェッチキューのうちいずれに当該フ
    ェッチデータを転送するかを決定する工程を含むことを
    特徴とする請求項6または7に記載のキャッシュ制御方
    法。
  10. 【請求項10】 前記分岐予測処理をCPUを制御して
    実行する工程は、前記キャッシュメモリで分岐命令をフ
    ェッチした後、当該分岐命令実行結果に応じて前記分岐
    成立プリフェッチキュー、前記分岐不成立プリフェッチ
    キューのうちいずれにアクセスするかを決定して前記フ
    ェッチデータの前記CPUへの取り込み処理を実行する
    含むことを特徴とする請求項9に記載のキャッシュ制御
    方法。
  11. 【請求項11】 命令実行の前に前記メモリコントロー
    ラが前記メインメモリから命令アクセスのプリフェッチ
    を実行し、通常は前記キャッシュメモリにデータを格納
    する工程と、 前記CPUが前記キャッシュメモリから命令をフェッチ
    するとともに、プリフェッチした命令のプリデコードを
    実行して分岐命令および条件分岐命令を他の命令と判別
    し、プリデコード結果が分岐命令の場合に前記プリデコ
    ーダが飛び先アドレスの計算を実行し、前記キャッシュ
    メモリにデータが存在しない場合に前記メインメモリか
    ら飛び先アドレスのプリフェッチデータを前記プリデコ
    ーダが前記キャッシュメモリに格納し、前記キャッシュ
    メモリから命令をフェッチし、プリデコード結果が条件
    分岐命令の場合に前記プリデコーダが飛び先アドレスの
    計算を実行し、前記キャッシュメモリにデータが存在し
    ない場合に前記メインメモリから飛び先アドレスのプリ
    フェッチデータを前記分岐成立プリフェッチキューに格
    納し、分岐不成立時のシーケンシャルな命令プリフェッ
    チも併せて実行して前記分岐不成立プリフェッチキュー
    に格納する工程と、 分岐命令実行の分岐判断時に、分岐成立側および分岐不
    成立側の2つのプリフェッチキューのデータについて、
    分岐判断に合致したプリフェッチキューから命令フェッ
    チを実行して前記キャッシュメモリに当該命令フェッチ
    実行時のフェッチデータを格納するとともに、他方のプ
    リフェッチキューである命令フェッチが実行されなかっ
    たプリフェッチキューのデータを破棄する工程を有する
    ことを特徴とする請求項6に記載のキャッシュ制御方
    法。
  12. 【請求項12】 命令実行の前に前記メモリコントロー
    ラが前記メインメモリから命令アクセスのプリフェッチ
    を実行して前記キャッシュメモリにデータを格納し、前
    記CPUが前記キャッシュメモリから命令をフェッチ
    し、プリフェッチした命令のプリデコードを実行し、分
    岐命令および条件分岐命令を他の命令と判別する工程
    と、 前記CPUが前記キャッシュメモリから命令をフェッチ
    するとともに、プリフェッチした命令のプリデコードを
    実行して分岐命令および条件分岐命令を他の命令と判別
    し、前記プリデコーダが、プリデコード結果が分岐命令
    の場合に飛び先アドレスの計算を実行し、当該計算結果
    に基づいて、前記キャッシュメモリにデータが存在しな
    い場合に前記メインメモリから飛び先アドレスのプリフ
    ェッチデータを前記キャッシュメモリに格納し、プリデ
    コード結果が条件分岐命令の場合に飛び先アドレスの計
    算を実行し、前記キャッシュメモリにデータが存在しな
    い場合に前記メインメモリから飛び先アドレスのプリフ
    ェッチデータを前記分岐成立プリフェッチキューに格納
    し、分岐不成立時のシーケンシャルな命令プリフェッチ
    も直後に実行して前記分岐不成立プリフェッチキューに
    格納する工程と、 分岐成立側および分岐不成立側の2つのプリフェッチキ
    ューは、分岐命令実行の分岐判断時に分岐判断に合致し
    たプリフェッチキューから命令フェッチを実行して前記
    キャッシュメモリにフェッチデータを格納する工程と、 命令フェッチに使用しなかった他方のプリフェッチキュ
    ーのデータを破棄せずに前記分岐不使用側プリフェッチ
    キャッシュメモリに格納する工程と、 再び同じ条件分岐命令を前記キャッシュメモリの使用時
    に実行し、前記キャッシュメモリに現在ない命令列を実
    行する場合に前記分岐不使用側プリフェッチキャッシュ
    メモリに蓄えられた命令を実行する工程を有することを
    特徴とする請求項7に記載のキャッシュ制御方法。
JP11168213A 1999-06-15 1999-06-15 マイクロコンピュータおよびキャッシュ制御方法 Pending JP2000357090A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP11168213A JP2000357090A (ja) 1999-06-15 1999-06-15 マイクロコンピュータおよびキャッシュ制御方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP11168213A JP2000357090A (ja) 1999-06-15 1999-06-15 マイクロコンピュータおよびキャッシュ制御方法

Publications (1)

Publication Number Publication Date
JP2000357090A true JP2000357090A (ja) 2000-12-26

Family

ID=15863895

Family Applications (1)

Application Number Title Priority Date Filing Date
JP11168213A Pending JP2000357090A (ja) 1999-06-15 1999-06-15 マイクロコンピュータおよびキャッシュ制御方法

Country Status (1)

Country Link
JP (1) JP2000357090A (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP2275927A2 (en) 2009-06-30 2011-01-19 Fujitsu Limited Processor and instruction control method
WO2013121516A1 (ja) 2012-02-14 2013-08-22 ルネサスエレクトロニクス株式会社 データ処理装置
KR20140134421A (ko) * 2013-05-14 2014-11-24 한국전자통신연구원 이중 명령어 페치 장치 및 방법

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP2275927A2 (en) 2009-06-30 2011-01-19 Fujitsu Limited Processor and instruction control method
WO2013121516A1 (ja) 2012-02-14 2013-08-22 ルネサスエレクトロニクス株式会社 データ処理装置
US9542190B2 (en) 2012-02-14 2017-01-10 Renesas Electronics Corporation Processor with fetch control for stoppage
KR20140134421A (ko) * 2013-05-14 2014-11-24 한국전자통신연구원 이중 명령어 페치 장치 및 방법

Similar Documents

Publication Publication Date Title
CN101495962B (zh) 用于预取不连续指令地址的方法和设备
US7702888B2 (en) Branch predictor directed prefetch
JP5137948B2 (ja) ローカル及びグローバル分岐予測情報の格納
US7461237B2 (en) Method and apparatus for suppressing duplicative prefetches for branch target cache lines
JP3518770B2 (ja) 命令をその少なくとも1つの実行装置へ迅速にディスパッチする方法および装置
JP2011530741A (ja) 推論的割込みベクトルプリフェッチのための装置および方法
JP2008186233A (ja) 命令キャッシュプリフェッチ制御方法及びその装置
KR20090042318A (ko) 분기 타겟 어드레스 캐시에서 룩업들을 감소시키는 방법 및장치
JP3683248B2 (ja) 情報処理装置及び情報処理方法
JP3867427B2 (ja) プロセッサ装置および集積回路
JPH0816394A (ja) システムメモリから命令コードを先取りするための先取り装置および方法
US7797520B2 (en) Early branch instruction prediction
CN112395000B (zh) 一种数据预加载方法和指令处理装置
JP2001060152A (ja) 分岐予測を抑止する情報処理装置および方法
JP2000357090A (ja) マイクロコンピュータおよびキャッシュ制御方法
JPH11232171A (ja) 情報処理システム
US7613911B2 (en) Prefetching exception vectors by early lookup exception vectors within a cache memory
US6631464B1 (en) Instruction pipeline with a branch prefetch when the branch is certain
US7343481B2 (en) Branch prediction in a data processing system utilizing a cache of previous static predictions
JPH0342723A (ja) データ処理装置
JPH08286914A (ja) メモリ制御装置
CN119166215A (zh) Aigpu处理器中指令分支预取的方法
KR100282225B1 (ko) 데이타 캐쉬 메모리의 제어장치
WO2008038373A1 (fr) Processeur pour augmenter la vitesse de prédiction de branchement
KR20000003930A (ko) 명령어 캐시 미스 시 손실을 줄이기 위한 명령어 페치 장치