JPH0471028A - マイクロプロセッサ - Google Patents

マイクロプロセッサ

Info

Publication number
JPH0471028A
JPH0471028A JP18630290A JP18630290A JPH0471028A JP H0471028 A JPH0471028 A JP H0471028A JP 18630290 A JP18630290 A JP 18630290A JP 18630290 A JP18630290 A JP 18630290A JP H0471028 A JPH0471028 A JP H0471028A
Authority
JP
Japan
Prior art keywords
instruction
address
branch
information
instructions
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
JP18630290A
Other languages
English (en)
Inventor
Koichi Hanamura
花村 公一
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.)
Mitsubishi Electric Corp
Original Assignee
Mitsubishi Electric 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 Mitsubishi Electric Corp filed Critical Mitsubishi Electric Corp
Priority to JP18630290A priority Critical patent/JPH0471028A/ja
Publication of JPH0471028A publication Critical patent/JPH0471028A/ja
Pending legal-status Critical Current

Links

Abstract

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

Description

【発明の詳細な説明】 〔産業上の利用分野] 本発明はパイプライン制御構造を持つマイクロプロセッ
サに関し、特に命令先読みの制御技術の改良に関する。
(従来の技術〕 第2図は基本的なパイプライン構造を持つマイクロプロ
セッサの一例を示すブロック図であり、図において1は
命令コード及びそのオペランドデータを含む命令を格納
した外部の命令メモリ12を外部ハス13を介してアク
セスするハスインクフェイスユニットであり、該バスイ
ンタフェイスユニット1が読出した命令は命令ブリフェ
ッチキュー2にブリフェッチされる。ブリフェッチされ
た命令は命令デコーダ3に与えられ、そこでデコードさ
れて、制御信号として実行ユニット8に与えられ、命令
が実行される。実行される命令が条件分岐命令であった
場合、分岐条件が成立するか否かは実行ユニット8で判
断される。分岐条件成立時、その間、命令ブリフェッチ
キュー2にプリフェッチされた命令は無駄となり、再度
分岐先番地から命令をプリフェッチする必要があり、こ
の間パイプラインが停止して乱れ、結果として動作速度
の低下を引き起こす。
これを改善する方法の1つとして分岐予測方式がある。
第3図は分岐予測方式を用いた従来のパイプライン制御
構造を持つマイクロプロセッサの一例を示すブロック図
である。図において符号12.3,8,12.13は第
2図と同様であり、説明を略す。但し、命令デコーダ3
は命令のデコード及びオペランドデータの解析を行い、
分岐先アドレスに関する分岐先データBDを後述する条
件分岐予測部5bに与えると共に条件分岐命令の検出を
行う。
命令デコーダ3で条件分岐命令を検出した場合、その検
出信号CBSが条件分岐予測部5bに送られる。
条件分岐予測部5bは、命令メモ1月2のアドレスデコ
ーダであるnビットのプログラムカウンタ7の下位ビッ
ト (i≦n)の値をデコードするアドレスデコーダ2
3、デコードされた値をアドレスとしてアクセスされる
履歴記憶部22並びに履歴記憶部22の内容及び命令デ
コーダ3からの分岐先データBDが与えられ、それらに
基づいてプログラムカウンタ7の値を制御するアドレス
制御回路21から構成される。
履歴記憶部22は2”×1ヒントのアドレス空間を有し
、各アドレスには過去にそのアドレスの分岐命令が分岐
条件を満足した場合に“1”が書込まれている。この書
込みは実行ユニット8が分岐命令の分岐条件の成立を判
断すると、そのことを示す条件成立信号CSSを条件分
岐予測部5bに出力することにより行われる。
履歴記憶部22の内容は命令ブリフェッチ制御回路6及
びアドレス制御回路21にて読出される。アドレス制御
回路21は履歴記憶部22の内容及び命令デコーダ3か
ら与えられる分岐先データBDに基づき、プログラムカ
ウンタ7の値を制御する。命令フェッチ制御回路6は履
歴記憶部22の内容に基づき命令ブリフェッチキュー2
及びハスインクフェイスユニ、ト1を制御する。
次にこのように構成された分岐予測方式を用いた従来の
マイクロプロセッサの動作について説明する。
外部ハス13及びハスインタフェイスユニット1を介し
て、命令メモリ12から命令が命令ブリフェッチキュー
2にプリフェッチされ、命令デコーダ3でデコードされ
るとき命令デコーダ3が分岐命令であることを検出する
と、そのことを示す検出信号CBSを条件分岐予測部5
bに出力する。
条件分岐予測部5bは検出信号CBSが与えられると、
プログラムカラン〜り7からその値の下位iビットを読
出し、アドレスデコーダ23に入力し、デコードする。
そして命令ブリフェッチ制御回路6及びアドレス制御回
路21はデコードされた値をアドレスとして履歴記憶部
22をアクセスする。
その内容が“1”のときは既に分岐条件を過去に満足し
ているので、アドレス制御回路21は命令デコーダ3で
の分岐先データBDの値に基づき分岐先アドレスの値を
プログラムカウンタ7に設定する。また命令ブリフェッ
チ制御回路6は命令ブリフェッチキュー2の内容をクリ
アし、ハスインタフェイスユニット1に対してプログラ
ムカウンタ7に設定された値の命令メモリ12のアドレ
スをアクセスするように指示する。
また履歴記憶部22の内容が“0”のときは未だ分岐条
件を満足していないので、アドレス制御回路21及び命
令ブリフェッチ制御回路6は何も処理を行わず、プログ
ラムカウンタ7は前の値を1インクリメントし、命令ブ
リフェッチキュー2は引続くアドレスの命令を取込む。
一方実行ユニット8が分岐条件を満足したと判断すると
、そのことを示す条件成立信号CSSを条件分岐予測部
5bに送る。条件分岐予測部5bは前記検出信号CBS
のときと同様にそのときのプログラムカウンタ7の下位
iビットの値をデコードし、履歴記憶部22のデコード
されたアドレスをアクセスし、そこにデータ“1″を書
込む。
このような構成及び動作により、分岐予測が的中した場
合、パイプラインの乱れを低減し、動作速度を向上でき
る。
(発明が解決しようとする課題〕 しかしながら分岐予測方式の従来のマイクロブロセ、す
では分岐予測用の種々のハードウェア(アドレスデコー
ダ、履歴記憶部、アドレス制御回路)等が必要となり、
回路面積が増大すると共に、履歴記憶部のアドレス空間
が命令メモリのアドレス空間に比べ小さいので予測がは
ずれる場合が生しるという問題があった。即ち、履歴記
憶部は命令メモリの下位iビットのアドレスに過去に条
件が成立したか否かの履歴を記憶しているので、命令メ
モリの上位n−iピントが異なるアドレスに他の分岐命
令が格納されている場合、予測がはずれることがあるの
である。
従って予測の的中率を上げるためにはアドレスデコーダ
及び履歴記憶部の容量を大きくする必要があり、さらに
回路面積が増大してしまうという問題があった。
本発明゛は斯かる事情に鑑みなされたものであり、先読
みアドレスを命令により任意に設定することにより、少
量のハードウェアで分岐命令を多(使用したプログラム
であっても条件分岐命令の実行により生しる虞のあるパ
イプラインの乱れを制御できるマイクロプロセッサを得
ることを目的にする。
(課題を解決するための手段〕 本発明に係るマイクロプロセッサは記憶手段にフェッチ
する命令のアクセスアドレスに関する情報を書込む命令
の実行により前記情報を書込み、条件分岐命令を検出し
たときに書込まれた情報を読出し、読出した情報に基づ
き先読みするアドレスを制御するようにしたものである
〔作用〕
本発明においては例えばプログラマが条件分岐命令をプ
ログラム中に記述する場合に、その条件分岐命令の分岐
条件が成立するか否かを予測し、予測に基づき分岐条件
が成立するか否かによりフェッチするアクセスアドレス
をいずれにするかを示す情報を実行する命令をその分岐
命令の前に記述しておく。そしてその命令が実行される
とその情報が記憶手段に書込まれる。
次に分岐命令がデコードされると、分岐命令であること
が検出され、それにより記ta手段の情報が読出され、
それに基づきフェッチするアクセスアドレスが制御され
る。例えば情報が分岐条件が成立すると予測しているこ
とを示している場合は、先読みアドレスを分岐先アドレ
スとし、逆の場合は先読みアドレスを引続くアドレスと
して制御部する。
〔実施例〕
以下、本発明をその実施例を示す図面に基づいて説明す
る。第1図は本発明に係るマイクロプロセッサの構成を
示すブロック図である。図において1は命令コード及び
オペランドデータを含む命令を格納した外部の命令メモ
リ12を外部ハス13を介してアクセスするハスインタ
フェイスユニットであり、該バスインタフェイスユニッ
ト1が読出した命令は命令ブリフェッチキュー2にブリ
フェッチされる。命令メモリ12に格納された命令には
条件分岐命令、該条件分岐命令の成立の予測に基づき先
読みアドレスを制御するアドレス制御命令等の命令があ
る。また命令メモリ12のアドレスは外部ハス13を介
して与えられたプログラムカウンタ7の値により指定さ
れる。ブリフェッチされた命令は命令デコーダ3にてデ
コー■されて制御信号として実行ユニット8に与えられ
、命令が実行される。また命令デコーダ3はデコード結
果により条件分岐命令を検出し、それを検出するとその
ことを示す検出信号CBSを後述するブリフェッチアト
レス制御部5aに与える。さらに条件分岐命令のオペラ
ンドデータを解析し、それに基づき分岐先アドレスを示
す分岐先データBDをブリフェッチアドレス制御部5a
に与える。実行される命令が条件分岐命令であった場合
、分岐条件が成立するが否かは実行ユニット8で判断さ
れる。また実行ユニット8は後述するアドレス制御命令
を実行すると、アドレス制御信号ADSをブリフェッチ
アドレス制御部5aに与える。
ブリフェッチアドレス制御部5・はアドレス制御信号A
DSに基づく先読みアドレスに関するアドレス情報を格
納する1ビツトのレジスタからなる記憶部11を備え、
そこに格納されたlビットのアドレス情報に基づきプロ
グラムカウンタ7の値を設定すると共に、命令ブリフェ
ッチ制御回路6に記憶部11のアドレス情報を与える。
命令ブリフェッチ制御回路6はアドレス情報に基づき命
令ブリフェッチキュー2及びハスインクフェイスユニッ
ト1を制御する。
次にこのように構成された本発明のマイクロプロセッサ
の動作について説明する。
外部バス13を介して命令メモリ12に格納された命令
がパスインタフェイスユニット1、命令ブリフェッチキ
ュー2をとおり命令デコーダ3に与えられると、命令が
デコードされると共にそのオペランドデータが解析され
る。そして条件分岐命令がデコードされるとそのことを
検出し、検出信号CBS及び分岐先データBDをブリフ
ェッチアドレス制御部5aに与える。ブリフェッチアド
レス制御部5aはこれらの信号CBS、BDを受取ると
記憶部11に格納されたアドレス情報に基づきプログラ
ムカウンタ7の値を設定すると共に命令ブリフェッチ制
御回路6にアドレス情報を与える。アドレス情報はアド
レス制御命令が実行ユニット8て実行されることにより
出力されるアドレス制御信号ADSに基づき書込まれ、
例えば条件分岐命令の分岐条件が成立すると予測される
場合は、アドレス制御命令は分岐先アドレスをブリフェ
ッチアトレスとすることを示しており、そのことを示す
アドレス制御信号ADSが実行ユニット8から出力され
、記憶部11にアドレス情報“1”が書込まれ、分岐条
件が成立しないと予測される場合は逆に“0”が書込ま
れる。
命令ブリフェッチ制御回路6はアドレス情報が“1”の
ときブリフェッチされた命令をクリアすべく命令ブリフ
ェッチキュー2を制御すると共に、ハスインクフェイス
ユニット1をプログラムカウンタ7の値で示されるアド
レスからの命令をアクセスするように制御する。
またこのときブリフェッチアドレス制御部5aはプログ
ラムカウンタ7の値を分岐先データBDの内容に基づき
分岐先アドレスの値に設定する。
一方、分岐条件が成立しないと予測したアドレス情報に
“0”が書込まれているときは、命令ブリフェッチ制御
回路6は命令プリフェッチキュー2がプリフェ・ソチし
た命令をそのままにし、引続くアドレスからプリフェッ
チするように制御し、ブリフェッチアドレス制御部5a
はプログラムカウンタ7の値を1インクリメントする。
このように記憶部11の内容(アドレス情報)はアドレ
ス制御命令を用いて自在に設定することができるので、
プログラム中の適当な位置にこの命令を置くことにより
プログラマは任意の先読みアドレスでプリフェッチを行
うように制御できる。
なお本実施例では命令デコーダより条件分岐命令の検出
信号が出るものとしたが、命令を先にデコードする命令
プリデコーダを設け、それにより検出信号が出るものと
すればさらに高速に先読みアドレスが制御でき、動作速
度がさらに速くなる。
また本実施例では命令により先読みアドレスを制御した
が、本発明はこれに限るものではなく、先読みアドレス
は例えばコンパイラがループの回数を判断し、それによ
り先読みアドレスを制御するようにしてもよく、命令に
よる制御に限定されるものではないことは言うまでもな
い。
〔発明の効果〕
以上説明したとおり、本発明においては条件分岐命令が
デコードされる前に記憶手段にアクセスアドレスをいず
れにするかで示す情報を書込み、条件分岐命令がデコー
ドされる際に書込まれた情報に基づき、それが一方のと
きには分岐先アドレスからプリフェッチし、他方のとき
は引続(アドレスからプリフェッチするように先読みア
ドレスを制御できるので、プログラマ又はコンパイラが
分岐条件が成立するか否かを予測し、確立の高い方に先
読みアドレスを制御でき、少量のハードウェアで分岐予
測の的中率が高くなり、パイプラインの乱れを低減し、
動作速度を高速化できる等価れた効果を奏する。
【図面の簡単な説明】 第1図は本発明に係るマイクロプロセッサの構造を示す
ブロック図、第2図はパイプライン構造の基本構成を示
すブロック図、第3図は分岐予測方式を持つ従来のマイ
クロプロセッサの構成を示すブロック図である。 1・・・ハスインクフェイスユニット 2・・・命令ブリフェッチキュー 3・・・命令デコー
ダ5a・・・ブリフェッチアトレス制御部6・・・命令
ブリフェッチ制御回路 8・・・実行ユニット 11・・・記憶部 12・・・
命令メモリなお、図中、同一符号は同一、又は相当部分
を示す。 代理人  大  岩  増  雄 書(自発) 20発明の名称 マイクロプロセッサ 3、補正をする者 (601)三菱電機株式会社 代表者 志 岐 守 5、補正の対象 明細書の「発明の詳細な説明」の欄 6、補正の内容 明細書の第14頁第1〜6行に「また本実施例では・・
・(中略)・・・言うまでもない。」とあるのを削除す
る。 以上

Claims (1)

    【特許請求の範囲】
  1. (1)命令を格納するメモリをアクセスするアクセス手
    段と、アクセスされた命令をフェッチするフェッチ手段
    と、該フェッチ手段にフェッチされた命令をデコードす
    る命令デコード手段と、デコードされた命令を実行する
    命令実行手段とを備えるパイプライン構造で命令を処理
    するマイクロプロセッサにおいて、 デコードされた命令により、その命令が条件分岐命令で
    あるか否かを検出する条件分岐命令検出手段と、 前記メモリのアクセスアドレスをいずれにするかの情報
    を記憶する記憶手段と、 前記条件分岐命令検出手段が条件分岐命令を検出したと
    き、前記記憶手段に記憶された情報を読出し、読出した
    情報に基づきフェッチする命令のアクセスアドレスを制
    御するフェッチアドレス制御手段と、 前記記憶手段に前記情報を書込む手段と を備えることを特徴とするマイクロプロセッサ。
JP18630290A 1990-07-11 1990-07-11 マイクロプロセッサ Pending JPH0471028A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP18630290A JPH0471028A (ja) 1990-07-11 1990-07-11 マイクロプロセッサ

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP18630290A JPH0471028A (ja) 1990-07-11 1990-07-11 マイクロプロセッサ

Publications (1)

Publication Number Publication Date
JPH0471028A true JPH0471028A (ja) 1992-03-05

Family

ID=16185949

Family Applications (1)

Application Number Title Priority Date Filing Date
JP18630290A Pending JPH0471028A (ja) 1990-07-11 1990-07-11 マイクロプロセッサ

Country Status (1)

Country Link
JP (1) JPH0471028A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100263674B1 (ko) * 1997-05-09 2000-08-01 김영환 페치명령어저장장치를포함한프로세서

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100263674B1 (ko) * 1997-05-09 2000-08-01 김영환 페치명령어저장장치를포함한프로세서

Similar Documents

Publication Publication Date Title
KR101016713B1 (ko) 데이터 처리 시스템 내의 예측 명령
JP3760041B2 (ja) 分岐予測する情報処理装置
JP2695157B2 (ja) 可変パイプラインプロセッサ
KR20010075258A (ko) 간접 분기 목적지 산출 방법
JPS6393038A (ja) 計算機
JP2560889B2 (ja) マイクロプロセッサ
KR20010025123A (ko) 프리디코드 정보를 저장하기위한 ecc/페리티 비트들의이용
KR100682635B1 (ko) 동일한 논리 공간을 점유하는 다중 레지스터 파일을 포함하는 마이크로프로세서
JP3977931B2 (ja) データプロセッサにおける条件分岐実行を制御するための方法および装置
JP2773471B2 (ja) 情報処理装置
JPH02306341A (ja) マイクロプロセッサ
US7877578B2 (en) Processing apparatus for storing branch history information in predecode instruction cache
JP3867427B2 (ja) プロセッサ装置および集積回路
US20040172518A1 (en) Information processing unit and information processing method
JP4393317B2 (ja) メモリ制御回路
KR100206350B1 (ko) 중앙처리장치
JPH0471028A (ja) マイクロプロセッサ
JP2002342075A (ja) マイクロプロセッサ
JP4002288B2 (ja) 情報処理装置
JPH0481218B2 (ja)
JP2534674B2 (ja) 情報処理装置
JPH027128A (ja) 情報処理装置
JPH08286914A (ja) メモリ制御装置
JPS62194544A (ja) 命令先読み制御方式
JP2902847B2 (ja) 自己変更コード実行方式