JPH06274341A - マイクロコンピュータ - Google Patents

マイクロコンピュータ

Info

Publication number
JPH06274341A
JPH06274341A JP8273693A JP8273693A JPH06274341A JP H06274341 A JPH06274341 A JP H06274341A JP 8273693 A JP8273693 A JP 8273693A JP 8273693 A JP8273693 A JP 8273693A JP H06274341 A JPH06274341 A JP H06274341A
Authority
JP
Japan
Prior art keywords
instruction
address
branch
prefetch
unit
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.)
Withdrawn
Application number
JP8273693A
Other languages
English (en)
Inventor
Hiroshi Watase
弘 渡瀬
Mitsuyuki Kubo
光之 久保
Masaharu Miura
雅晴 三浦
Takashi Kuroiwa
剛史 黒岩
Seiichi Negishi
清一 根岸
Katsuharu Takakubo
加津治 高窪
Koji Hashimoto
幸治 橋本
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.)
Hitachi Microcomputer System Ltd
Hitachi Ltd
Original Assignee
Hitachi Microcomputer System Ltd
Hitachi 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 Hitachi Microcomputer System Ltd, Hitachi Ltd filed Critical Hitachi Microcomputer System Ltd
Priority to JP8273693A priority Critical patent/JPH06274341A/ja
Publication of JPH06274341A publication Critical patent/JPH06274341A/ja
Withdrawn legal-status Critical Current

Links

Landscapes

  • Advance Control (AREA)

Abstract

(57)【要約】 【目的】 本発明の目的は、プログラムの分岐時に過渡
的に生ずる命令先読み効率の低下を緩和するための技術
を提供することにある。 【構成】 分岐命令の実行履歴を保持可能な分岐先命令
部7、分岐先アドレス部8と、命令先読みアドレスを監
視するアドレス連想部6と、この命令先読みアドレスが
上記分岐命令の実行履歴にヒットした場合に当該実行履
歴に基づいて次の命令先読みのためのアドレスを生成す
るプリフェッチアドレス生成部2とを設け、分岐を予測
することによって、命令先読み効率の低下を緩和する。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は、マイクロコンピュー
タ、さらにはそれにおける命令先読み技術に関し、例え
ば分岐命令の履歴を保持する手段を有するシングルチッ
プマイクロコンピュータに適用して有効な技術に関す
る。
【0002】
【従来の技術】パイプライン手法を採用するマイクロコ
ンピュータでは、プログラムの分岐時にパイプラインの
乱れが生じ、処理能力が低下する。そこで、そのような
処理能力の低下を緩和するため、分岐命令が反復処理に
多用されていることに着目し、分岐命令を最初に実行し
た際に、そのアドレス、分岐先のアドレス、分岐先の命
令等の分岐命令の履歴情報をキャッシュ等の記憶装置に
保持する手法が採られる。この手法はブランチターゲッ
トキャッシュ、あるいは分岐ウインドウなどと称され
る。そしてそのような手法においては、分岐命令を実行
する際に、このキャッシュを検索し、当該命令の情報が
あればそれを利用することによって分岐命令のアドレス
計算や分岐命令の読み込を省略し、処理の高速化を図っ
ている。
【0003】図3には、従来のブランチターゲットキャ
ッシュを採用するマイクロコンピュータの主要動作タイ
ミングが示される。
【0004】例えば、n番地の命令が先読みされ(33
1)、それがデコードされることによって制御信号が生
成され(332)、命令が実行される(333)。この
命令実行サイクルで、n番地の命令のアドレスがブラン
チターゲットキャッシュに入力されることによって、そ
れが分岐命令か否かが判断され(334)、もしヒット
すれば、次のマシンサイクルで、分岐先の次の命令の先
読みが行われるとともに(335)、分岐先(s番地)
の分岐先命令が命令キューに入れられる(336)。そ
してこのとき、分岐先のアドレスバッファを介してプロ
グラムカウンタに分岐先アドレス(s)が設定される。
さらに次のサイクルでは、s+1番地の命令のデコード
が行われ、そのとき、命令キューから出力されるs番地
の分岐先命令が実行される(338)。この命令実行中
に、分岐先の次の命令(s+1番地の命令)がデコード
され(337)、それが、次のサイクルで実行される
(339)。
【0005】尚、ブランチターゲットキャッシュについ
て記載された文献の例としては、平成3年10月10日
にCQ出版社から発行された「RISCプロセッサ入
門」がある。
【0006】
【発明が解決しようとする課題】しかしながら、従来の
ブランチターゲットキャッシュでは、命令実行部におい
て分岐が行われるときになって、当該分岐命令について
のキャッシュ検索が行われるため、つまり、図3におい
て、n番地の命令実行サイクルで連想が行われるため
に、実際に分岐した場合には、分岐後の命令列の先読み
が間に合わず、実行が待たされてしまう。そのように命
令実行が待たされることは、マイクロコンピュータでの
処理の低下を招来する。特に、命令コードの消費量が大
きい場合、あるいはデータフェッチによるバスの競合に
より命令の先読みが妨げられる場合などに、上記のよう
な処理の低下が顕著になる。
【0007】本発明の目的は、プログラムの分岐時に過
渡的に生ずる命令先読み効率の低下を緩和するための技
術を提供することにある。
【0008】本発明の前記並びにその他の目的と新規な
特徴は本明細書の記述及び添付図面から明らかになるで
あろう。
【0009】
【課題を解決するための手段】本願において開示される
発明のうち代表的なものの概要を簡単に説明すれば下記
の通りである。
【0010】すなわち、分岐命令の実行履歴を保持可能
な実行履歴保持手段と、命令先読みアドレスを監視する
アドレス監視手段と、この命令先読みアドレスが上記分
岐命令の実行履歴にヒットした場合に当該実行履歴に基
づいて次の命令先読みのためのアドレスを生成するアド
レス生成手段とを含んでマイクロコンピュータを構成す
るものである。このとき、上記アドレス監視手段は、分
岐命令の先頭アドレスを格納する手段の保持情報に基づ
いて、命令先読みアドレスが分岐命令であるか否かを判
断するように構成することができる。また、上記アドレ
ス生成手段は、命令先読みアドレスが上記分岐命令の実
行履歴にヒットした場合に、当該実行履歴に含まれる分
岐先アドレスをインクリメントすることによって、分岐
先の次の命令を先読みするための命令先読みアドレスを
得るインクリメンタを含んで構成することができる。
【0011】
【作用】上記した手段によれば、アドレス生成手段は、
命令先読みアドレスが上記分岐命令の実行履歴にヒット
した場合に当該実行履歴に基づいて次の命令先読みのた
めのアドレスを生成し、このことが、プログラムの分岐
時に過渡的に生ずる上記命令先読み効率の低下を緩和す
る。
【0012】
【実施例】図1には本発明に一実施例であるシングルチ
ップマイクロコンピュータが示される。
【0013】図1に示されるマイクロコンピュータは、
特に制限されないが、公知の半導体集積回路製造技術に
より、単結晶シリコンなどの一つの半導体基板に形成さ
れる。
【0014】図1に示されるように本実施例マイクロコ
ンピュータは、特に制限されないが、命令を実行するこ
とによって所定の演算処理を行うための実行部9と、図
示されないプログラムメモリから命令の読出しを行うた
めの命令読出し部1と、分岐先のアドレス、分岐先の命
令等の分岐命令の履歴情報が保持されることによって分
岐の高速化を図るためのブランチターゲットキャッシュ
5とを含む。
【0015】上記実行部9は、特に制限されないが、レ
ジスタ又はメモリに格納されたデータに対して必要な数
値演算、論理演算を行うためのALU(算術論理ユニッ
ト)12aや、プログラムカウンタ(PC)12b、及
び図示されないアキュムレータや汎用レジスタ等を含ん
で成る演算部12と、入力された命令をデコードするこ
とによって上記演算部12の動作制御信号を生成するた
めの制御部10とを含む。
【0016】上記命令読出し部1は、基本的には命令先
読み用のプリフェッチアドレスを生成し、そのアドレス
に従って、図示されないプログラムメモリから読出され
た命令を、命令バス15を介して取込む機能を有し、特
に制限されないが、プリフェッチアドレスを生成するた
めのプリフェッチアドレス生成部2、分岐先アドレスを
一時的に保持するための分岐先アドレスバッファバッフ
ァ3、ブランチターゲットキャッシュのヒットフラグを
セットするためのフラグレジスタ14、命令を先入れ先
出し形式で保持するための命令キュー4、この命令キュ
ー4への命令伝達経路切換えのためのマルチプレクサM
PX3を含む。
【0017】上記プリフェッチアドレス生成部2は、特
に制限されないが、分岐先のプリフェッチアドレスを生
成する機能を有し、入力アドレス経路切換えのためのマ
ルチプレクサMPX1と、このマルチプレクサMPX1
を介して取込まれたアドレスを1づつ増加させるための
インクリメンタ2bと、このインクリメンタ2bの出力
値を保持するプリフェッチポインタ2aとを含んで成
る。
【0018】上記ブランチターゲットキャッシュ5は、
特に制限されないが、マルチプレクサMPX2を介して
取込まれたプリフェッチアドレスを監視し、それが分岐
命令であるか否かを判断するためのアドレス連想部6
と、分岐先命令を記憶するための分岐先命令部7と、分
岐先アドレスを記憶するための分岐先アドレス部8とを
含んで成る。このブランチターゲットキャッシュ5は、
特に制限されないが、4エントリで完全連想方式とさ
れ、図4に示されるように、各エントリは、連想部(3
4ビット)とデータ部(62ビット)とから成る。この
連想部は、図1のアドレス連想部6に相当し、アドレス
フィールド(0−30,30ビット)、リングフィール
ド(2ビット)、バリッドビット(1ビット)から成
る。データ部は、図1に示される分岐先アドレス部8に
相当するフェッチアドレスフィールド(30ビット)、
及び図1の分岐先命令部7に相当する命令語フィールド
(32ビット)から構成される。連想部のアドレスフィ
ールドには分岐命令の先頭アドレスが、またデータ部の
フェッチアドレスフィールドには分岐先アドレス+4
が、そして命令語フィールドには分岐先アドレスの命令
語1語が、それぞれ格納される。エントリの入れ換え
は、先入れ先出し形式で行われる。入れ換えの対象とさ
れる命令は分岐命令であるが、分岐アドレスがPC相対
以外で指定されるものは対象外とされる。
【0019】上記の構成において、命令の先読み時、プ
リフェッチアドレス生成部から出力されたアドレスは、
ブランチターゲットキャッシュによって検索される。こ
の検索において、ヒットした場合には、つまり上記プリ
フェッチアドレス生成部2から出力されたアドレスがブ
ランチターゲットキャッシュ5に格納されている場合に
は、命令のプリフェッチを分岐するため、以下の処理が
行われる。
【0020】すなわち、分岐命令が、命令バス15から
命令キュー4に読込まれる際に、アドレス連想部6によ
って、フラグレジスタ14にフラグがセットされる。さ
らに分岐先命令が、ブランチターゲットキャッシュ5の
分岐先命令部7から読出され、それが、マルチプレクサ
MPX3を介して命令キュー4に入力される。また、そ
のとき、ブランチターゲットキャッシュ5の分岐先アド
レス部8内の分岐先アドレスが、分岐先アドレスバッフ
ァ3に転送されるとともに、マルチプレクサMPX1を
介してプリフェッチアドレス生成部2に入力される。分
岐先アドレスバッファ3の保持アドレスは演算部12の
プログラムカウンタ12bに伝達される。上記プリフェ
ッチアドレス生成部2では、マルチプレクサMPX1を
介して取込まれた分岐先アドレスがインクリメントされ
ることによって、分岐先の次のプリフェッチアドレスが
求められる。このプリフェッチアドレスに従って、図示
されないプログラムカウンタから分岐先の命令が読出さ
れる。尚、そのようにして生成されたプリフェッチアド
レスも、マルチプレクサMPX2を介してアドレス連想
部6に伝達され、それが分岐命令であるか否かが判断さ
れる。
【0021】一方、実行部9での命令実行が進み、当該
分岐命令が実行される場合、フラグレジスタ14のフラ
グ状態が、制御部10に入力されると、制御部10は、
このフラグ状態に応じてブランチターゲットキャッシュ
5、命令読出し部1の動作を制御する。すなわち、分岐
命令が実行される場合、もしフラグレジスタ14にフラ
グがセットされている場合には、命令読出し部1に対し
て命令キュー4からの命令読出しを要求し、それを次に
実行する命令とし、分岐先アドレスバッファ3から分岐
先アドレスを読出し、プログラムカウンタ12bを更新
する。また、フラグが立っていない場合には、それはブ
ランチターゲットキャッシュ5においてミスヒットした
ことを意味し、ブランチターゲットキャッシュ5の更
新、命令キュー4の保持内容が無効とされ(パージと称
する)、分岐先アドレスの計算、分岐先命令のフェッチ
等が行われる。分岐が行われない場合には、命令キュー
4の保持内容がパージされ、プログラムカウンタ12b
の値を基に命令のプリフェッチが行われる。
【0022】図2には本実施例の動作タイミングが示さ
れる。
【0023】n番地の命令がプリフェッチされ(22
1)、それが、アドレス連想部6に入力される。次のサ
イクルでこのn番地の命令がデコードされ(223)、
さらに次のサイクルでそれが実行される(227)。
尚、このサイクルではブランチターゲットキャッシュ5
の動作は、無効(NOP)とされる。上記連想でn番地
の命令がヒットした場合には(224)、次のサイクル
で、分岐先(s番地)の命令がデコードされるとともに
(226)、分岐先(s番地)の次の命令がプリフェッ
チされる(225)。そしてこのs番地は、分岐先アド
レスバッファ3を介してプログラムカウンタ12bにセ
ットされる。さらに次のサイクルで、分岐先のs+1番
地の命令が制御部10によりデコードされる(22
9)。このとき、前サイクルで、デコードされた分岐先
(s番地)の命令が実行される(230)。また、分岐
先(s番地)の次の命令は、アドレス連想部6において
ミスヒットとされる(231)。そして、次のサイクル
で、上記分岐先の次の命令(s+1)が実行される(2
32)。図3に示されるタイミング図と比較して明らか
なように、先読みされた命令をアドレス連想部6で監視
し、それに基づいて先読みアドレスを生成することによ
り、従来方式に比べて、n番地の命令をフェッチしてか
らs+1番地の命令を先読みするまでに要するサイクル
数が1サイクル短くなる。
【0024】上記実施例によれば以下の作用効果が得ら
れる。
【0025】ブランチターゲットキャッシュ5によっ
て、命令のプリフェッチアドレスが監視され、もしヒッ
トしたなら、フラグレジスタ14にフラグが立てられ、
その後、ブランチターゲットキャッシュ5の分岐先アド
レス部8から分岐先アドレスが読出され、これに基づい
て、プリフェッチアドレス生成部2において次の命令先
読みアドレスが生成され、それにより、プログラムが分
岐している場合の命令先読みを行うことができる。実行
部9において分岐命令が実行されると、当該分岐命令に
対するブランチターゲットキャッシュ6によってセット
されたフラグが、実行部9に伝えられる。実行部9は、
このフラグにより、命令先読みについての制御を行う。
すなわち、命令が分岐され、しかもフラグレジスタ14
にフラグが立っていれば、既に先読みした命令を使用可
能であると判断し、そのとき分岐先アドレスバッファ3
に保持されている値がプログラムカウンタ12bにセッ
トされる。このように、プログラムが分岐する場合で
も、命令の先読みの段階で分岐の可能性を予測すること
が可能とされる。一般に分岐命令は反復処理に用いられ
ることが多いため、命令先読みによって有効な分岐命令
を先読みする頻度が多くなり、分岐時における命令先読
み待ちを原因とする実行待ちを短くすることができる。
【0026】以上本発明者によってなされた発明を実施
例に基づいて具体的に説明したが、本発明はそれに限定
されるものではなく、その要旨を逸脱しない範囲におい
て種々変更可能であることは言うまでもない。
【0027】以上の説明では主として本発明者によって
なされた発明をその背景となった利用分野であるシング
ルチップマイクロコンピュータについて説明したが、本
発明はそれに限定されるものではなく、通信用等に専用
化された各種マイクロプロセッサに広く適用することが
できる。
【0028】本発明は、少なくとも分岐命令を含むプロ
グラムを取扱うことを条件に適用することができる。
【0029】
【発明の効果】本願において開示される発明のうち代表
的なものによって得られる効果を簡単に説明すれば下記
の通りである。
【0030】すなわち、命令先読みアドレスが上記分岐
命令の実行履歴にヒットした場合に当該実行履歴に基づ
いて次の命令先読みのためのアドレスが生成され、それ
により、プログラムの分岐時に過渡的に生ずる上記命令
先読み効率の低下が緩和される。
【図面の簡単な説明】
【図1】本発明の一実施例であるマイクロコンピュータ
の構成ブロック図である。
【図2】上記マイクロコンピュータの主要動作タイミン
グ図である。
【図3】従来のマイクロコンピュータの主要動作タイミ
ング図である。
【図4】本実施例におけるブランチターゲットキャッシ
ュの構成説明図である。
【符号の説明】
1 命令読出し部 2 プリフェッチアドレス生成部 2a プリフェッチポインタ 2b インクリメンタ 3 分岐先アドレスバッファ 4 命令キュー 5 ブランチターゲットキャッシュ 6 アドレス連想部 7 分岐先命令部 8 分岐先アドレス部 9 実行部 10 制御部 12 演算部 12a ALU 12b プログラムカウンタ 14 フラグレジスタ 15 命令バス MPX1 マルチプレクサ MPX2 マルチプレクサ MPX3 マルチプレクサ
───────────────────────────────────────────────────── フロントページの続き (72)発明者 三浦 雅晴 東京都小平市上水本町5丁目22番1号 株 式会社日立マイコンシステム内 (72)発明者 黒岩 剛史 東京都小平市上水本町5丁目22番1号 株 式会社日立マイコンシステム内 (72)発明者 根岸 清一 東京都小平市上水本町5丁目22番1号 株 式会社日立マイコンシステム内 (72)発明者 高窪 加津治 東京都小平市上水本町5丁目22番1号 株 式会社日立マイコンシステム内 (72)発明者 橋本 幸治 東京都小平市上水本町5丁目22番1号 株 式会社日立マイコンシステム内

Claims (3)

    【特許請求の範囲】
  1. 【請求項1】 命令の実行部と、この実行部で実行され
    る命令を先読みするための命令読出し部とを含むマイク
    ロコンピュータにおいて、分岐命令の実行履歴を保持可
    能な実行履歴保持手段と、命令先読みアドレスを監視す
    るアドレス監視手段と、この命令先読みアドレスが上記
    分岐命令の実行履歴にヒットした場合に当該実行履歴に
    基づいて次の命令先読みのためのアドレスを生成するア
    ドレス生成手段とを含むことを特徴とするマイクロコン
    ピュータ。
  2. 【請求項2】 上記アドレス監視手段は、分岐命令の先
    頭アドレスを格納する手段を有し、この手段の保持情報
    に基づいて、命令先読みアドレスが分岐命令であるか否
    かを判断する請求項1記載のマイクロコンピュータ。
  3. 【請求項3】 上記アドレス生成手段は、命令先読みア
    ドレスが上記分岐命令の実行履歴にヒットした場合に、
    当該実行履歴に含まれる分岐先アドレスをインクリメン
    トすることによって、分岐先の次の命令を先読みするた
    めの命令先読みアドレスを得るインクリメンタを含む請
    求項1又は2記載のマイクロコンピュータ。
JP8273693A 1993-03-17 1993-03-17 マイクロコンピュータ Withdrawn JPH06274341A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP8273693A JPH06274341A (ja) 1993-03-17 1993-03-17 マイクロコンピュータ

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP8273693A JPH06274341A (ja) 1993-03-17 1993-03-17 マイクロコンピュータ

Publications (1)

Publication Number Publication Date
JPH06274341A true JPH06274341A (ja) 1994-09-30

Family

ID=13782710

Family Applications (1)

Application Number Title Priority Date Filing Date
JP8273693A Withdrawn JPH06274341A (ja) 1993-03-17 1993-03-17 マイクロコンピュータ

Country Status (1)

Country Link
JP (1) JPH06274341A (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO1999057642A1 (fr) * 1998-05-01 1999-11-11 Matsushita Electric Industrial Co., Ltd. Dispositif et procede de traitement de donnees
US8578135B2 (en) 2004-01-29 2013-11-05 Renesas Electronics Corporation Apparatus for calculating and prefetching a branch target address

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO1999057642A1 (fr) * 1998-05-01 1999-11-11 Matsushita Electric Industrial Co., Ltd. Dispositif et procede de traitement de donnees
US6598147B1 (en) 1998-05-01 2003-07-22 Matsushita Electric Industrial Co., Ltd. Data processing device and method
US8578135B2 (en) 2004-01-29 2013-11-05 Renesas Electronics Corporation Apparatus for calculating and prefetching a branch target address

Similar Documents

Publication Publication Date Title
JP3641327B2 (ja) データプロセッサ及びデータ処理システム
US20050278505A1 (en) Microprocessor architecture including zero impact predictive data pre-fetch mechanism for pipeline data memory
US5860107A (en) Processor and method for store gathering through merged store operations
JP3182740B2 (ja) 単一クロック・サイクルに非連続命令を取り出すための方法およびシステム。
US20060200655A1 (en) Forward looking branch target address caching
JPH10232827A (ja) 先取りキャッシュ書戻しの方法と装置
KR101048258B1 (ko) 가변 길이 명령 세트의 브랜치 명령의 최종 입도와 캐싱된 브랜치 정보의 관련
EP0655679B1 (en) Method and apparatus for controlling instruction in pipeline processor
JP2006520964A5 (ja)
JP2006520964A (ja) 分岐ターゲットに基づいて分岐予測をするための方法および装置
US5276825A (en) Apparatus for quickly determining actual jump addresses by assuming each instruction of a plurality of fetched instructions is a jump instruction
US6363471B1 (en) Mechanism for handling 16-bit addressing in a processor
JPH08221272A (ja) 命令キャッシュに命令をロードする方法
US6983359B2 (en) Processor and method for pre-fetching out-of-order instructions
JP3811140B2 (ja) 情報処理装置
US5987599A (en) Target instructions prefetch cache
US6308242B1 (en) Apparatus for adaptively controlling a prefetch queue based on various flush conditions
JP4393317B2 (ja) メモリ制御回路
CN115934170A (zh) 预取方法及装置、预取训练方法及装置、存储介质
JPH06274341A (ja) マイクロコンピュータ
US20080065870A1 (en) Information processing apparatus
JP4247132B2 (ja) 情報処理装置
JP6016689B2 (ja) 半導体装置
JP4002288B2 (ja) 情報処理装置
US5895497A (en) Microprocessor with pipelining, memory size evaluation, micro-op code and tags

Legal Events

Date Code Title Description
A300 Withdrawal of application because of no request for examination

Free format text: JAPANESE INTERMEDIATE CODE: A300

Effective date: 20000530