JPH10214187A - 高速分岐処理装置及びその分岐処理方法 - Google Patents

高速分岐処理装置及びその分岐処理方法

Info

Publication number
JPH10214187A
JPH10214187A JP1564297A JP1564297A JPH10214187A JP H10214187 A JPH10214187 A JP H10214187A JP 1564297 A JP1564297 A JP 1564297A JP 1564297 A JP1564297 A JP 1564297A JP H10214187 A JPH10214187 A JP H10214187A
Authority
JP
Japan
Prior art keywords
instruction
instructions
branch
read
address
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.)
Granted
Application number
JP1564297A
Other languages
English (en)
Other versions
JP3493110B2 (ja
Inventor
Yoshiji Araki
美次 荒木
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.)
Toshiba Corp
Original Assignee
Toshiba 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 Toshiba Corp filed Critical Toshiba Corp
Priority to JP01564297A priority Critical patent/JP3493110B2/ja
Publication of JPH10214187A publication Critical patent/JPH10214187A/ja
Application granted granted Critical
Publication of JP3493110B2 publication Critical patent/JP3493110B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Abstract

(57)【要約】 【課題】 動作周波数の向上を可能とし、さらに、消費
電力の削減をも実現することができる高速分岐処理装置
及びその分岐処理方法を提供することを課題とする。 【解決手段】 デコードされた命令が条件分岐命令であ
る場合には条件分岐判定の結果の如何にかかわらず、そ
の条件分岐判定の演算が行われている間にその分岐先ア
ドレスを含む複数個の命令を命令メモリから読み出して
一の命令バッファに記憶しておくことにより、分岐成立
時の命令フェッチを高速に行うことができるようにな
る。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、動作周波数の向上
を可能とする高速分岐処理装置及びその分岐処理方法に
関する。
【0002】
【従来の技術】近年、マルチメディア時代の到来と共
に、MPEG(Moving Picture ExpertsGroup)処理な
どに代表されるような動画処理において画像の実時間処
理が非常に重要となってきている。このような動画処理
は画像データを取り扱う関係上、処理すべきデータが莫
大であり、このため、マイクロプロセッサには非常に大
きな処理能力が要求される。さらに、処理のすべてをハ
ードウェアで行うとコストの増大が避けられず、そのた
め、できれば処理の一部、若しくは、全ての処理を汎用
のマイクロプロセッサを用いてソフトウェア処理した方
が望ましく、従って、益々マイクロプロセッサの処理能
力の向上が望まれる状況にある。また、PDA(Person
al Digital Assistance )などの携帯機器においても同
様に高速処理が要求されているが、これらの機器におい
てはさらに消費電力の削減も重要である。
【0003】マイクロプロセッサの処理能力を決める重
要な要因には、大別して、動作周波数、実行命令数及び
一命令当たりのサイクル数の3つがある。例えば、動作
周波数は、一般には、システムのクリティカルパス(cr
itical path )の遅延時間により決まるが、マイクロプ
ロセッサでは、特に、条件分岐命令実行時の条件成立時
における命令フェッチがクリティカルパスとなる場合が
多い。
【0004】ここで、代表的なRISC(Reduced Inst
ruction Set Computer)プロセッサであるMIPS C
omp.Systems,Inc.のR3000を例に
して上記命令フェッチがクリティカルパスとなる場合に
ついて説明する。
【0005】条件分岐命令実行時の条件成立時における
命令フェッチは、条件分岐命令(bne、beqなど)
の演算ステージでレジスタの比較を行い、比較結果が確
定した後に命令メモリから分岐先アドレスに対する命令
を読み出し、命令レジスタに取り込むことにより行われ
るが、この処理が同一サイクル内で実行されるためにク
リティカルパスとなる場合が多いのである。以下、上記
命令フェッチにおけるデータ及び制御信号の流れについ
て図面を用いて説明する。
【0006】図11は、従来の分岐処理装置のブロック
図である。この分岐処理装置は命令実行時間を短縮する
技法であるパイプライン方式を用いたものであり、現在
実行中の命令のアドレスを格納するプログラムカウンタ
1と、命令を格納する命令メモリ3と、命令メモリ3か
ら読み出された命令が取り込まれる命令レジスタ5と、
命令レジスタ5にセットされた命令をデコードし、各種
制御信号を生成する命令デコーダ7と、加算器9と、加
算器9が出力する分岐先アドレスを取り込む分岐先アド
レスレジスタ11と、条件分岐命令の比較対象である内
容を格納する複数のレジスタ(図示省略)から成るレジ
スタファイル13と、ALU(Arithmetic and Logic U
nit ;算術論理演算装置)15と、ALU15の入力レ
ジスタ17a及び17bと、セレクタ19とから構成さ
れている。
【0007】このような構成である従来の分岐処理装置
は、まず、Fステージ(フェッチステージ)において、
命令メモリ3から命令(条件分岐命令)が読み出され、
命令レジスタ5に取り込まれる。
【0008】次に、Dステージ(デコードステージ)に
おいて、命令レジスタ5中の命令を命令デコーダ7でデ
コードし、アドレス計算を行うための各制御信号を出力
する。命令中に指定されているindex値とプログラ
ムカウンタ1に格納されたアドレスを加算器9により加
算することにより分岐先アドレスが求められ、分岐先ア
ドレスレジスタ11に取り込まれる。また、同時に、命
令デコーダ7から与えられる制御信号によりレジスタフ
ァイル13から比較対象である2つのレジスタに格納さ
れた値がALU15の入力レジスタ17A及び17Bに
取り込まれる。
【0009】次に、Eステージ(実行ステージ)におい
て、ALU15は、入力レジスタ17A及び17Bに格
納された2つの値を入力し、演算結果を得る。この演算
結果は分岐判定の制御信号となり、分岐が成立しない場
合の命令メモリ3の読み出しアドレスであるプログラム
カウンタ1の示すアドレスと、分岐が成立した場合の命
令メモリ3の読み出しアドレスである分岐先アドレスレ
ジスタ11に格納された分岐先アドレスのいずれか一方
が、制御信号である演算結果に基づきセレクタ19を通
して選択される。ここで、分岐が成立した場合には、命
令メモリ3の分岐先アドレスにアクセスされ、分岐先の
命令が読み出され、上記と同様に命令レジスタ5に格納
される。
【0010】以上説明したように、従来の分岐処理装置
では、条件分岐命令が実行される場合、同一サイクル内
で分岐判定のためのALU演算と分岐が成立した場合に
おける分岐先の命令のキャッシュ読み出しの処理とを直
列に行う必要があるため、このパスの遅延が大きく、ク
リティカルパスとなる場合が多い。従って、条件分岐命
令実行時において、分岐が成立した場合の命令フェッチ
がネックとなり、動作周波数を上げることが非常に難し
かった。
【0011】
【発明が解決しようとする課題】上述したように、従来
の分岐処理装置では、同一サイクル内で分岐判定、それ
に続いて、分岐先のアドレスに対する命令をフェッチを
しなければならないようなパイプライン構成をとってい
た場合、このパスがクリティカルパスとなり、マイクロ
プロセッサ全体としての動作周波数を十分に上げること
ができなかった。
【0012】本発明は上記事情に鑑みて成されたもので
あり、その目的は、動作周波数の向上を可能とし、さら
に、消費電力の削減をも実現することができる高速分岐
処理装置及びその処理方法を提供することにある。
【0013】
【課題を解決するための手段】上記目的を達成するため
に、本発明の第1の特徴は、命令を記憶する命令メモリ
と、前記命令メモリへのアドレスを保持するプログラム
カウンタと、前記命令メモリから読み出されてデコード
される命令を格納する命令レジスタとを備えた高速分岐
処理装置において、前記命令メモリからアドレスが連続
する所定の数の命令を一度に読み出す読み出し制御手段
と、前記読み出し制御手段により前記命令メモリから読
み出された複数個の命令を一時的に記憶する2つの命令
バッファと、前記2つの命令バッファのうちいずれか一
方を選択し、さらに選択された命令バッファに記憶され
た複数個の命令のうちいずれか1個の命令を選択し、該
命令を前記命令レジスタに出力する命令バッファ選択手
段とを有し、前記プログラムカウンタにより前記複数個
の命令の先頭アドレスが指定されると、その複数個の命
令(以下、第1の複数個の命令という)を前記読み出し
制御手段が前記命令メモリから読み出し、前記第1の複
数個の命令を前記2つの命令バッファのうち最後のアク
セス時点の古い方に記憶し、前記命令バッファ選択手段
が前記第1の複数個の命令をアドレス順に前記命令バッ
ファに出力すると共に、デコードされた命令が条件分岐
命令である場合には条件分岐判定が終了する前にその分
岐先アドレスを含む連続するアドレスの複数個の命令
(以下、第2の複数個の命令という)を前記読み出し制
御手段が前記命令メモリから読み出し、前記第2の複数
個の命令を前記2つの命令バッファのうち最後のアクセ
ス時点の古い方に記憶し、前記命令バッファ選択手段が
前記第2の複数個の命令をアドレス順に前記命令バッフ
ァに出力することである。
【0014】上記構成によれば、クリティカルパスとな
る場合の多い条件分岐命令における分岐成立時の分岐先
アドレスのフェッチ処理をコストの上昇を招くことなく
高速化を図ることができる。従って、マイクロプロセッ
サの動作周波数を向上させることができる。
【0015】
【発明の実施の形態】以下、本発明の実施の形態につい
て図面を用いて説明する。
【0016】ここで、本実施の形態に係る高速分岐処理
装置は、基本的には次に示す5段(5ステージ)パイプ
ラインの構成を有し、例えばMIPS Comp.Sy
stems,Inc.のR3000のような一般的なR
ISCプロセッサにて用いられるパイプライン構成であ
る。
【0017】(1)Fステージ(フェッチステージ):
命令をメモリ(キャッシュ)からフェッチして命令レジ
スタにセットする命令を入力するステージである。 (2)Dステージ(デコードステージ):命令レジスタ
上の命令をデコードし、各制御信号を生成するステージ
である。 (3)Eステージ(実行ステージ):演算を実行する。
またはメモリ(キャッシュ)に対するアクセスのアドレ
スを生成するステージである。 (4)Mステージ(メモリステージ):メモリ(キャッ
シュ)に対するアクセスを行うステージである。 (5)WBステージ(ライトバックステージ):レジス
タへのデータの書き込みを行うステージである。
【0018】第1の実施の形態 図1は、本実施の形態に係る高速分岐処理装置のブロッ
ク図である。図1において、本実施の形態に係る高速分
岐処理装置は現在実行中の命令のアドレスを格納するプ
ログラムカウンタ1と、命令を格納する命令メモリ3
と、命令メモリ3から読み出された命令が取り込まれる
命令レジスタ5と、命令レジスタ5にセットされた命令
をデコードし、各種制御信号を生成する命令デコーダ7
と、加算器9と、加算器9が出力する分岐先アドレスを
取り込む分岐先アドレスレジスタ11と、条件分岐命令
の比較対象である内容を格納する複数のレジスタ(図示
省略)から成るレジスタファイル13と、ALU(Arit
hmetic and Logic Unit ;算術論理演算装置)15と、
ALU15の入力レジスタ17a及び17bと、プログ
ラムカウンタ1の示すアドレスと分岐先アドレスレジス
タ11に格納された分岐先アドレスのどちらか一方を選
択するセレクタ19と、命令メモリ3から読み出された
連続する複数の命令を取り込む命令バッファ21A及び
21Bと、命令バッファ21A及び21Bに取り込まれ
た複数の命令のうち一つを選択するセレクタ23A及び
23Bと、セレクタ23A及び23Bにより選択された
2つの命令のうちどちらか一方を選択するセレクタ25
と、セレクタ25の制御を行う制御回路27と、命令デ
コーダ7から出力される分岐命令フラグを取り込む分岐
命令フラグレジスタ29とから構成されている。
【0019】ここで、命令メモリ3から命令バッファ2
1A及び命令バッファ21Bへの命令の取り込みはLR
U(Least Recently Used )方式により実行される。L
RU方式は、命令バッファ21Aと21Bのうち最後の
取り込み時点の古い方のバッファに命令を取り込む方式
である。
【0020】次に、本実施の形態に係る高速分岐処理装
置の動作について説明する。まず最初に、図1に示す命
令メモリ3の読み出しについて図2を用いて説明する。
図2は、図1に示す命令メモリ3の読み出し動作を示す
概念図であり、読み出し信号がEnable状態の時に、指定
されたアドレスを含む連続したアドレスの複数個の命令
が一度に読み出される。一度に読み出される命令の数は
任意であるが、例えば、図2においては4個である。
【0021】読み出し信号がEnable状態となるのは2つ
の場合があり、一つは図1のプログラムカウンタ1に格
納されたアドレスが一度に読み出される複数個の命令の
アドレス境界に来た場合、他の一つは分岐命令による分
岐先アドレスの命令をフェッチする場合である。
【0022】プログラムカウンタ1のアドレスが一度に
読み出される複数個の命令のアドレス境界に来た場合と
は、例えば、図3(a)に示すような命令列に分岐命令
がない命令シーケンスにおいて、プログラムカウンタ1
のアドレスが「80008000」を示すと、読み出し
信号がEnable状態となり、アドレスが「8000800
0」、「80008004」、「80008008」、
「8000800c」である4個の命令が一度に読み出
される。その後パイプラインが進み、プログラムカウン
タ1のアドレスが「80008010」を示すと、再
度、読み出し信号がEnable状態となり、アドレスが「8
0008010」、「80008014」、「8000
8018」、「8000801c」である4個の命令が
同様に一度に読み出される。このように、命令メモリ3
への読み出しはプログラムカウンタ1のアドレスが一度
に読み出される4個の命令のアドレス境界に来た時に行
なわれるので、命令メモリ3へのアクセスは従来と比べ
て減少する。
【0023】一方、分岐命令による分岐先アドレスの命
令をフェッチする場合とは、例えば、次のような場合で
ある。図3(b)に示すような命令列に分岐命令がある
命令のシーケンスにおいて、プログラムカウンタ1のア
ドレスが「80008000」を示すと、図3(a)と
同様読み出し信号がEnable状態となり、アドレスが「8
0008000」、「80008004」、「8000
8008」、「8000800c」の4個の命令が一度
に読み出される。この時、読み出された命令に分岐命令
(アドレスが「80008004」の命令)があるとそ
の分岐命令が実行され分岐先の命令(図中targetで示す
アドレスが「80008104」の命令)が読み出され
るが、この場合にも読み出し信号がEnable状態となるの
である。また、その分岐先の命令が図3(a)に示すよ
うな上述したアドレス境界にない場合にはアドレスが
「80008104」である分岐先命令を含む4個の命
令、つまり、アドレス「80008100」、「800
08104」、「80008108」、「800081
c」の4個の命令が一度に読み出される。このように分
岐先命令のアドレスを先頭アドレスとして連続するアド
レスが「80008104」、「80008108」、
「800081c」、「80008200」の4個の命
令ではなく、分岐先命令を含むアドレスが「80008
100」、「80008104」、「8000810
8」、「800081c」の4個の命令を一度に読み出
すのは、それにより命令メモリ3のimplement
を容易にすることができるからである。
【0024】次に、本実施の形態に係る高速分岐処理装
置における条件分岐命令のフェッチ、条件分岐命令実
行、そして、分岐先の命令がフェッチされるまでのデー
タ及び制御信号の流れについて図1を参照しつつ説明す
る。ここで、前提条件として、現在、プログラムカウン
タ1は、一度に読み出される4個の命令の先頭アドレス
を示しているものとし、かつ、その先頭アドレスに格納
されている命令は条件分岐命令であるとする。但し、先
行する2つ前の命令は分岐命令でないとする。また、仮
想アドレスと物理アドレスは同じものとしているが、仮
にアドレス変換が必要であったとしても本願発明の内容
が変わることはない。
【0025】まず最初に、Fステージ(フェッチステー
ジ)において、プログラムカウンタ1が示すアドレスと
分岐先アドレスレジスタ11に格納された分岐先アドレ
スとがセレクタ19にそれぞれ入力され制御信号aによ
りどちらか一方が選択される。制御信号aは、先行命
令、すなわち、Eステージ(実行ステージ)にある命令
が分岐命令であるか否かを示す信号であり、セレクタ1
9は制御信号aが先行命令は分岐命令であると示す場合
には分岐先アドレスレジスタ11に格納された分岐先ア
ドレスを選択し、分岐命令ではないと示す場合にはプロ
グラムカウンタ1が示すアドレスを選択する。ここで
は、上述した前提条件により先行する2つの命令は分岐
命令ではないとしているので、制御信号aにより命令メ
モリ3にはその読み出しアドレスとしてプログラムカウ
ンタ1が示すアドレスが入力される。さらに、そのアド
レスは前提条件によりアドレス境界の先頭アドレスであ
ることから、命令メモリ3の読み出し信号はEnable状態
となり、プログラムカウンタ1の示すアドレスに続く4
個の命令が命令メモリ3から読み出される。命令メモリ
3から読み出された4個の命令は命令バッファ21Aま
たは21Bに取り込まれる。読み出された命令を取り込
む命令バッファの選択は上述したLRU方式により実行
される。例えば、命令バッファ21Aの前サイクルにお
いて最後の取り込みのほうが古い場合には、命令バッフ
ァ21Aに入力される取り込み信号cがEnable状態、命
令バッファ21Bに入力される取り込み信号dがDisabl
e 状態となり、その結果、読み出された命令は命令バッ
ファ21Aに取り込まれることになる。
【0026】そして、命令バッファ21Aに格納されて
いる4個の命令はセレクタ23Aに、命令バッファ21
Bに格納されている4個の命令はセレクタ23Bにそれ
ぞれ入力され、制御信号e及びfにより指定されたアド
レスの命令が1個選択される。各セレクタにより選択さ
れた2個の命令はセレクタ25に出力される。セレクタ
25は制御回路27から出力される制御信号gにより2
個の命令のうちどちらか一方を選択し、命令レジスタ5
に出力する。制御回路27は、Eステージ(実行ステー
ジ)におけるALU回路15の演算結果である条件分岐
判定信号hと、Eステージ(実行ステージ)の命令が分
岐命令であることを示す制御信号aと、命令バッファ2
1A、21Bのうちどちらの最後の取り込み命令が古い
かを示す制御信号iとを入力し、Eステージ(実行ステ
ージ)の命令が非分岐命令であるかもしくは、分岐命令
で分岐成立と判定された場合には、2つの命令バッファ
うち取り込みが現サイクルにおいて新しい方のバッファ
を選択し、Eステージ(実行ステージ)の命令が分岐命
令で非分岐と判定された場合には、現サイクルにおいて
古い方のバッファを選択する制御信号gを生成してセレ
クタ25に出力する。ここでは、前提条件としてEステ
ージ(実行ステージ)には分岐命令がないことを仮定し
ているので、その結果、現サイクルにおいて最後の取り
込みが新しい方である命令バッファ21Aから出力され
る命令がセレクタ25により選択され、命令レジスタ5
に取り込まれる。
【0027】次に、Dステージ(デコードステージ)に
おいて、命令レジスタ5に取り込まれている命令を命令
デコーダ7がデコードし、各種制御信号を生成する。命
令デコーダ7は命令中のindex値を加算器9に出力
し、加算器9はそのindex値とプログラムカウンタ
1の示すアドレスを加算し、分岐先アドレスを決定す
る。分岐先アドレスは分岐先アドレスレジスタ11に取
り込まれ、同時に、当該命令が分岐命令であることを示
す分岐命令フラグが分岐命令フラグレジスタ29に取り
込まれる。一方、命令デコーダ7は次のEステージ(実
行ステージ)で条件分岐判定をするためにレジスタファ
イル13に制御信号jを入力する。レジスタファイル1
3は該当する2組のレジスタの値を読み出し、ALU1
5の入力レジスタ17A及び17Bに格納する。
【0028】次に、Eステージ(実行ステージ)におい
て、ALU15において演算が実行され、演算結果hが
出力される。ここで、本発明の特徴はこの演算が行われ
ている時に同時に次に示す処理を行う点にあり、以下続
けて説明する。
【0029】上述したように命令デコーダ7は入力され
た命令が分岐命令であることを示す分岐命令フラグをレ
ジスタ29に出力するが、この分岐命令フラグを受けて
命令メモリ3の読み出し信号bはEnable状態となる。す
なわち、図7に示す従来技術では、Eステージ(実行ス
テージ)におけるALU15の演算が終了するのを待
ち、その演算結果に基づき分岐成立時のみこの読み出し
信号をEnable状態としていたが、本実施の形態では、E
ステージ(実行ステージ)の命令が分岐命令である場合
には分岐の成立・非成立にかかわらず読み出し信号bは
Enable状態となる。従って、ALU15による演算の終
了を待つことなく分岐先アドレスの命令が読み出される
ことになる。一方、分岐先アドレスレジスタ11に取り
込まれた分岐先アドレスとプログラムカウンタの示すア
ドレスは共に上記セレクタ19に入力され、分岐命令フ
ラグレジスタ29に格納された分岐命令フラグに基づき
制御信号aにより分岐先アドレスが選択され、命令メモ
リ3に出力される。従って、この分岐先アドレスが命令
メモリ3に対する読み出しアドレスとなる。そして、分
岐先アドレスを含む連続する4個の命令が命令メモリ3
から読み出される。命令メモリ3から読み出された4個
の命令は命令バッファ21Aまたは21Bに取り込まれ
る。読み出された命令を取り込む命令バッファの選択は
上述したLRU方式により実行される。命令バッファ2
1Bの方が前サイクルにおける最後の取り込みが古い場
合には、命令バッファ21Bに入力される取り込み信号
がEnable状態、命令バッファ21Aに入力される取り込
み信号がDisable 状態となり、その結果、読み出された
命令は命令バッファ21Bに取り込まれることになる。
【0030】そして、命令バッファ21Aに格納された
4個の命令はセレクタ23Aに、命令バッファ21Bに
格納された4個の命令はセレクタ23Bにそれぞれ入力
され、制御信号e及びfにより指定されたアドレスの命
令が1個選択される。各セレクタにより選択された2個
の命令はセレクタ25に出力される。セレクタ25は制
御回路29から出力される制御信号gにより2個の命令
のうちどちらか一方を選択し、命令レジスタ5に出力す
る。ここで、条件分岐が成立する場合には、制御回路2
9は2つの命令バッファのうち取り込みが新しい方のバ
ッファを選択する制御信号gを生成するので、分岐先の
命令が選択され命令レジスタ5に出力される。
【0031】このように、従来では、Eステージ(実行
ステージ)における分岐判定のためのALU演算の終了
を持ち、その演算結果により分岐成立と判定された後に
行われていた条件分岐命令の条件判定成立時のおける分
岐先アドレスの命令フェッチを、本実施の形態によれ
ば、Dステージ(デコードステージ)の命令が条件分岐
命令である場合には次のEステージ(実行ステージ)に
おけるALU演算の結果を待つことなく独立に実行し、
条件判定成立・非成立にかかわらず分岐先アドレスの命
令を命令メモリ3から読み出すようにしているので、A
LU演算がかかる命令メモリ読み出し処理に隠れるた
め、分岐先の命令のフェッチを高速に行うことが可能と
なる。従って、マイクロプロセッサにおいて、クリティ
カルパスとなりがちな条件分岐命令による分岐成立時の
分岐先命令のフェッチをコストの上昇を招くことなく高
速に実行することができるようになる。それにより、マ
イクロプロセッサの動作周波数を向上することができ
る。
【0032】ここで、図4は、分岐先命令のフェッチの
動作を示すタイミングチャートであり、(a)が図11
に示す従来の分岐処理装置の動作を示すものであり、
(b)が図1に示す本実施の形態に係る分岐処理装置の
動作を示すものである。図4(a)に示すように、従来
分岐処理装置では、時刻t1 〜t2 においてALU15
による演算、時刻t2 〜t3 においてセレクタ19によ
る選択、時刻t3 〜t4 において命令メモリ3からの命
令の読み出し、時刻t4 〜t5 において命令レジスタ5
への命令の取り込みが順次行われている。一方、図4
(b)に示すように、本実施の形態に係る分岐処理装置
では、時刻T1 〜T2 において命令メモリ3からの命令
の読み出し、時刻T2 〜T3 においてセレクタ25によ
る選択、時刻T3 〜T4 において命令レジスタ5への命
令の取り込みは順次行われているが、ALU15による
演算(図中Aで示す期間)は命令メモリ3からの命令の
読み出しが行われる期間中に実行され、見かけ上命令メ
モリ3からの命令の読み出しに隠れている。従って、図
4(a)及び(b)から明らかなように、本実施の形態
のほうが動作周波数を高くすることが可能である。
【0033】第2の実施の形態 本実施の形態に係る高速分岐処理装置は、図1に示す命
令メモリ3に格納された条件分岐命令を、命令メモリ3
の読み出し信号がEnable状態となる2つの場合、すなわ
ち、図1のプログラムカウンタ1に格納されたアドレス
が一度に読み出される複数個の命令のアドレス境界に来
た場合と分岐命令による分岐先アドレスの命令をフェッ
チする場合とが一致しないようなアドレスに配置した構
成としたものである。
【0034】命令メモリ3に格納される実行プログラム
の命令の配置を上記構成とすることにより、第1の実施
の形態では発生する、アドレス境界による読み出しと分
岐命令実行による読み出しとの競合を回避することがで
きる。従って、ハードウェアコストの上昇を招くことな
く、高速な分岐処理を実現することができる。
【0035】というのは、図5(a)に示すように分岐
命令(図中branchで示すアドレス「80008008」
の命令)が一度に読み出される複数個の命令のアドレス
境界の最後から2番目に分岐命令がある場合には、分岐
命令がEステージ(実行ステージ)に来たときに、Fス
テージ(フェッチステージ)のプログラムカウンタが示
すアドレスがアドレス境界の先頭番地に来るため、第1
の実施の形態に係る分岐処理装置では、上述したように
アドレス境界による読み出しと分岐命令実行による読み
出しとの競合が生じる。しかし、図5(b)〜(c)に
示すように、分岐命令をアドレス境界の後ろから2番目
以外に配置することにより上記競合が生じることはない
のである。
【0036】第3の実施の形態 上述した第2の実施の形態に係る高速分岐処理装置にお
いては、分岐命令をアドレス境界の後ろから2番目以外
に配置することによりアドレス境界による読み出しと分
岐命令実行による読み出しとの競合を回避するようにし
ている。図6は、上記図5(a)に示すアドレス配置を
分岐命令がアドレス境界の後ろから2番目以外に配置さ
れるようにnop(No OPeration;無操作)命令を挿入
することにより上記2つの読み出しが競合しないように
したアドレス配置を示す図である。このようにすること
により、上記競合を回避することができるが、その一方
でプログラムのコードサイズの増大を招く恐れがある。
【0037】そこで、本実施の形態では、ハードウェア
により上記2つの読み出しの競合の検出及びその競合に
対しての処理を行う構成とすることにより、上記第2の
実施の形態において起こり得るプログラムのコードサイ
ズの増大を招くことなく、上記競合を回避することを可
能とする。
【0038】図7は、本実施の形態に係る高速分岐処理
装置における実行命令のアドレス配置の一例を示す図で
あり、図7(a)は分岐が成立したと判定された場合を
示す図、図7(b)は分岐が成立しないと判定された場
合を示す図である。図7(a)及び(b)において、ま
ず、分岐命令(inst2 )のDステージ(デコードステー
ジ)で、分岐先命令(insta )の読み出しとアドレス境
界の先頭命令(inst4)の読み出しとの競合を検出す
る。ここで、この検出は、命令のアドレスと対応する命
令コードが分岐命令であるか否かをチェックすることに
より容易に行うことができる。競合が検出されると、次
のステージで分岐が成立しないと判定された場合に実行
されるアドレス境界の先頭命令(inst4 )の読み出しを
保留し、分岐先命令(insta )を読み出す。そして、分
岐が成立したと判定された場合には、図7(a)に示す
ように、そのまま処理が進む。一方、分岐が成立しない
と判定された場合には、図7(b)に示すように、さら
に、その次のステージで先に読み出された分岐先命令
(insta )を無効化(invalidate)すると共に、保留さ
れていたアドレス境界の先頭命令(inst4 )の読み出し
が実行され、その後処理が進む。
【0039】図8は、上述した処理を行う高速分岐処理
装置の一部を示すブロック図であり、この高速分岐処理
装置は、図1に示す高速分岐処理装置を構成するプログ
ラムカウンタ1とセレクタ19との間にさらにセレクタ
31と加算器33を加えた構成となっている。なお、そ
の他の部分は図1の高速分岐処理装置と全く同一であ
る。図8において、分岐命令(inst2 )のEステージ
(実行ステージ)で、プログラムカウンタ1に格納され
たアドレスと分岐先アドレスレジスタ11の格納された
分岐先アドレスがセレクタ19に入力される。ここで、
上述したように、前のDステージ(デコードステージ)
で、分岐先命令(insta )の読み出しとアドレス境界の
先頭命令(inst4 )の読み出しとの競合が検出された場
合には、制御信号lにより優先的に分岐先アドレスが選
択され、命令メモリ(図示省略)にはその読み出しアド
レスとして分岐先アドレスが入力される。また、分岐先
アドレスは加算器33にも入力され、該加算器33によ
り(ここでは4が)加算される。この加算結果とプログ
ラムカウンタ1に格納されたアドレスとがセレクタ31
に入力され、制御信号kによりそのうち一方が選択され
る。このEステージ(実行ステージ)においては同時に
条件分岐判定が行われるが、分岐が成立したと判定され
た場合(図7(a)の場合)には、制御信号kにより上
記加算結果が選択され、プログラムカウンタ1に入力さ
れ、プログラムカウンタの指示するアドレスを上記加算
結果に変更する。一方、分岐が成立しないと判定された
場合(図7(b)の場合)には、プログラムカウンタ1
の格納されているアドレスが選択され、同様にプログラ
ムカウンタ1に入力される。すなわち、プログラムカウ
ンタ1に格納されたアドレスが保持される。さらに、命
令レジスタ(図示省略)に格納されている分岐先命令を
無効化する。
【0040】第4の実施の形態 上記第3の実施の形態においては、分岐先命令(insta
)の読み出しとアドレス境界の先頭命令(inst4 )の
読み出しとの競合が生じた場合にいったん保留をするの
はアドレス境界の先頭命令(inst4 )の方であったが、
本実施の形態においては分岐先命令(insta )の読み出
しを保留する構成としたものである。
【0041】図9は、本実施の形態に係る高速分岐処理
装置における実行命令のアドレス配置の一例を示す図で
あり、図9(a)は分岐が成立したと判定された場合を
示す図、図9(b)は分岐が成立しないと判定された場
合を示す図である。図9(a)及び(b)において、ま
ず、分岐命令(inst2 )のDステージ(デコードステー
ジ)で、分岐先命令(insta )の読み出しとアドレス境
界の先頭命令(inst4)の読み出しとの競合を検出す
る。ここで、この検出は、命令のアドレスと対応する命
令コードが分岐命令であるか否かをチェックすることに
より容易に行うことができる。競合が検出されると、次
のステージで分岐先命令(insta )の読み出しを保留
し、分岐が成立しないと判定された場合に実行されるア
ドレス境界の先頭命令(inst4 )を読み出す。そして、
分岐が成立したと判定された場合には、図9(a)に示
すように、さらに、その次のステージで先に読み出され
たアドレス境界の先頭命令(inst4 )を無効化(invali
date)されると共に、保留されていた分岐先命令(inst
a )の読み出しが実行され、その後処理が進む。一方、
分岐が成立しないと判定された場合には、図9(b)に
示すように、そのまま処理が進む。
【0042】図10は、上述した処理を行う高速分岐処
理装置の一部を示すブロック図であり、この高速分岐処
理装置は、図1に示す高速分岐処理装置を構成するプロ
グラムカウンタ1とセレクタ19との間にさらにセレク
タ35と加算器37を加えた構成となっている。なお、
その他の部分は図1の高速分岐処理装置と全く同一であ
る。図9において、分岐命令(inst2 )のEステージ
(実行ステージ)で、プログラムカウンタ1に格納され
たアドレスと分岐先アドレスレジスタ11の格納された
分岐先アドレスがセレクタ19に入力される。ここで、
上述したように、前のDステージ(デコードステージ)
で、分岐先命令(insta )の読み出しとアドレス境界の
先頭命令(inst4 )の読み出しとの競合が検出された場
合には、制御信号nにより優先的にプログラムカウンタ
1に格納されたアドレスが選択され、命令メモリ(図示
省略)にはその読み出しアドレスとしてプログラムカウ
ンタ1に格納されたアドレスが入力される。また、プロ
グラムカウンタ1に格納されたアドレスは加算器37に
も入力され、該加算器37により(ここでは4)が加算
される。この加算結果と分岐先アドレスとがセレクタ3
5に入力され、制御信号mによりそのうち一方が選択さ
れる。このEステージ(実行ステージ)においては同時
に条件分岐判定が行われるが、分岐が成立したと判定さ
れた場合(図9(a)の場合)には、制御信号mにより
分岐先アドレスが選択され、プログラムカウンタ1に入
力され、プログラムカウンタの指示するアドレスを上記
分岐先アドレスに変更する。さらに、命令レジスタ(図
示省略)に格納されているアドレス境界の先頭命令(in
st4 )を無効化する。一方、分岐が成立しないと判定さ
れた場合(図9(b)の場合)には、上記加算結果が選
択され、同様にプログラムカウンタ1に入力される。
【0043】
【発明の効果】以上説明したように、本発明によれば、
マイクロプロセッサの動作周波数を律速するクリティカ
ルパスである条件分岐命令の分岐成立時の分岐先アドレ
スのフェッチ処理を高速に行うことができる。また、複
数個の命令を一度に読み出すことにより、命令メモリへ
のアクセスの回数を減少させることができ、それによ
り、消費電力の低減化を図ることができる。さらに、読
み出した複数の命令を一時的に記憶する命令バッファを
2つ設けることにより、命令メモリも2ポート読み出し
ではなく、1ポート読み出しで対処することができるの
で、コストの増大を招くこともない。
【図面の簡単な説明】
【図1】本発明の第1の実施の形態に係る高速分岐処理
装置のブロック図である。
【図2】図1に示す命令メモリの読み出し動作を示す概
念図である。
【図3】図1に示す命令メモリの読み出し動作を説明す
るための図である。
【図4】分岐先命令のフェッチの動作を示すタイミング
チャートであり、(a)が図7に示す従来の分岐処理装
置の動作を示すものであり、(b)が図1に示す第1の
実施の形態に係る高速分岐処理装置の動作を示すもので
ある。
【図5】本発明の第2の実施の形態に係る高速分岐処理
装置を説明するための図である。
【図6】本発明の第3の実施の形態に係る高速分岐処理
装置を説明するための図である。
【図7】本発明の第3の実施の形態に係る高速分岐処理
装置を説明するための他の図である。
【図8】本発明の第3の実施の形態に係る高速分岐処理
装置の一部を示すブロック図である。
【図9】本発明の第4の実施の形態に係る高速分岐処理
装置を説明するための図である。
【図10】本発明の第4の実施の形態に係る高速分岐処
理装置の一部を示すブロック図である。
【図11】従来の分岐処理装置のブロック図である。
【符号の説明】 1 プログラムカウンタ 3 命令メモリ 5 命令レジスタ 7 命令デコーダ 9、33、37 加算器 11 分岐先アドレスレジスタ 13 レジスタファイル 15 ALU(Arithmetic and Logic Unit ;算術論理
演算装置) 17A、17B 入力レジスタ 19、23A、23B、25、31、35 セレクタ 21A、21B 命令バッファ 27 制御回路 29 分岐命令フラグレジスタ

Claims (7)

    【特許請求の範囲】
  1. 【請求項1】 命令を記憶する命令メモリと、前記命令
    メモリへのアドレスを保持するプログラムカウンタと、
    前記命令メモリから読み出されてデコードされる命令を
    格納する命令レジスタとを備えた高速分岐処理装置にお
    いて、 前記命令メモリからアドレスが連続する所定の数の命令
    を一度に読み出す読み出し制御手段と、 前記読み出し制御手段により前記命令メモリから読み出
    された複数個の命令を一時的に記憶する2つの命令バッ
    ファと、 前記2つの命令バッファのうちいずれか一方を選択し、
    さらに選択された命令バッファに記憶された複数個の命
    令のうちいずれか1個の命令を選択し、該命令を前記命
    令レジスタに出力する命令バッファ選択手段とを有し、 前記プログラムカウンタにより前記複数個の命令の先頭
    アドレスが指定されると、その複数個の命令(以下、第
    1の複数個の命令という)を前記読み出し制御手段が前
    記命令メモリから読み出し、前記第1の複数個の命令を
    前記2つの命令バッファのうち最後のアクセス時点の古
    い方に記憶し、前記命令バッファ選択手段が前記第1の
    複数個の命令をアドレス順に前記命令バッファに出力す
    ると共に、 デコードされた命令が条件分岐命令である場合には条件
    分岐判定が終了する前にその分岐先アドレスを含む連続
    するアドレスの複数個の命令(以下、第2の複数個の命
    令という)を前記読み出し制御手段が前記命令メモリか
    ら読み出し、前記第2の複数個の命令を前記2つの命令
    バッファのうち最後のアクセス時点の古い方に記憶し、
    前記命令バッファ選択手段が前記第2の複数個の命令を
    アドレス順に前記命令バッファに出力することを特徴と
    する高速分岐処理装置。
  2. 【請求項2】 前記読み出し制御手段は、 前記プログラムカウンタにより前記第1の複数個の命令
    の先頭アドレスが指定されるとその先頭アドレスを読み
    出しアドレスとして前記命令メモリに出力すると共に、 デコードされた命令が条件分岐命令である場合には条件
    分岐判定が終了する前に前記第2の複数個の命令の先頭
    アドレスを読み出しアドレスとして前記命令メモリに出
    力する第1のセレクタとを有することを特徴とする請求
    項1記載の高速分岐処理装置。
  3. 【請求項3】 前記命令バッファ選択手段は、 前記2つの命令バッファそれぞれに対応して設けられ、
    それぞれの命令バッファに記憶された前記第1の複数個
    の命令又は前記第2の複数個の命令の全部を入力し、ア
    ドレス順に各命令を出力する第2のセレクタ及び第3の
    セレクタと、 前記第2、第3のセレクタから出力された命令のうち最
    後のアクセス時点の新しい命令バッファに記憶されてい
    た方の命令を選択し、前記命令レジスタに出力すると共
    に、デコードされた命令が条件分岐命令であり、かつ、
    その条件分岐判定の結果が分岐非成立の場合にのみ最後
    のアクセス時点の古い命令バッファに記憶されていた方
    の命令を選択する第4のセレクタとを有することを特徴
    とする請求項1記載の高速分岐処理装置。
  4. 【請求項4】 前記命令メモリに格納された命令のアド
    レス配置は、前記第1の複数個の命令の読み出しと前記
    第2の複数個の命令の読み出しとが一致しないものとな
    っていることを特徴とする請求項1記載の高速分岐処理
    装置。
  5. 【請求項5】 前記高速分岐処理装置は、さらに、前記
    第1の複数個の命令の読み出しと前記第2の複数個の命
    令の読み出しとの競合を検出する競合検出手段と、 前記競合検出手段により読み出しの競合が検出された場
    合には、条件分岐判定の終了前に、前記第1の複数個の
    命令の読み出しを保留し、前記第2の複数個の命令の読
    み出しを優先的に行うと共に、条件分岐判定の結果、分
    岐非成立の場合には読み出された前記第2の複数個の命
    令を無効とし、保留していた前記第1の複数個の命令の
    読み出しを行う第1の読み出し手段とを有することを特
    徴とする請求項1〜3記載の高速分岐処理装置。
  6. 【請求項6】 前記高速分岐処理装置は、さらに、前記
    第1の複数個の命令の読み出しと前記第2の複数個の命
    令の読み出しとの競合を検出する競合検出手段と、 前記競合検出手段により読み出しの競合が検出された場
    合には、条件分岐判定の終了前に、前記第2の複数個の
    命令の読み出しを保留し、前記第1の複数個の命令の読
    み出しを優先的に行うと共に、条件分岐判定の結果、分
    岐成立の場合には読み出された前記第1の複数個の命令
    を無効とし、保留していた前記第2の複数個の命令の読
    み出しを行う第2の読み出し手段とを有することを特徴
    とする請求項1〜3記載の高速分岐処理装置。
  7. 【請求項7】 複数個の命令を命令メモリから読み出
    し、さらに、デコードされた命令が条件分岐命令である
    場合には条件分岐判定が終了する前に、その分岐先アド
    レスを含む前記複数個の命令を命令メモリから読み出す
    第1のステップと、 前記第1のステップで読み出された前記複数個の命令を
    2つの命令バッファのうち最後のアクセス時点の古い方
    に記憶する第2のステップと、 前記第2のステップで2つの命令バッファに記憶された
    2つの前記複数個の命令をアドレス順に出力する第3の
    ステップと、 前記第3のステップで出力された命令のうち最後のアク
    セス時点の新しい命令バッファに記憶されていた方の命
    令を選択して命令レジスタに出力し、さらに、デコード
    された命令が条件分岐命令であり、かつ、その条件分岐
    判定の結果が分岐非成立の場合には最後のアクセス時点
    の古い命令バッファに記憶されていた方の命令を選択し
    て命令レジスタに出力する第4のステップとを少なくと
    も有することを特徴とする分岐処理方法。
JP01564297A 1997-01-29 1997-01-29 高速分岐処理装置 Expired - Fee Related JP3493110B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP01564297A JP3493110B2 (ja) 1997-01-29 1997-01-29 高速分岐処理装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP01564297A JP3493110B2 (ja) 1997-01-29 1997-01-29 高速分岐処理装置

Publications (2)

Publication Number Publication Date
JPH10214187A true JPH10214187A (ja) 1998-08-11
JP3493110B2 JP3493110B2 (ja) 2004-02-03

Family

ID=11894378

Family Applications (1)

Application Number Title Priority Date Filing Date
JP01564297A Expired - Fee Related JP3493110B2 (ja) 1997-01-29 1997-01-29 高速分岐処理装置

Country Status (1)

Country Link
JP (1) JP3493110B2 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN100343800C (zh) * 2004-06-15 2007-10-17 精工爱普生株式会社 信息处理装置、微型计算机及电子设备

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN100343800C (zh) * 2004-06-15 2007-10-17 精工爱普生株式会社 信息处理装置、微型计算机及电子设备

Also Published As

Publication number Publication date
JP3493110B2 (ja) 2004-02-03

Similar Documents

Publication Publication Date Title
US5961637A (en) Split branch system utilizing separate set branch, condition and branch instructions and including dual instruction fetchers
US5404552A (en) Pipeline risc processing unit with improved efficiency when handling data dependency
US5850543A (en) Microprocessor with speculative instruction pipelining storing a speculative register value within branch target buffer for use in speculatively executing instructions after a return
JP3599409B2 (ja) 分岐予測装置
JPH05143336A (ja) デジタル・コンピユータ及び分岐命令実行方法
JPH02130634A (ja) プロセッサシステム、コンピュータシステム及び命令処理方法
JPH1124929A (ja) 演算処理装置およびその方法
KR100259306B1 (ko) 분기 명령 버퍼를 갖는 데이타 프로세서
JP2006520964A (ja) 分岐ターゲットに基づいて分岐予測をするための方法および装置
JPH08320788A (ja) パイプライン方式プロセッサ
JP3345787B2 (ja) データ処理装置
JPH06266556A (ja) データ処理装置
JP2001060152A (ja) 分岐予測を抑止する情報処理装置および方法
US20080065870A1 (en) Information processing apparatus
JP3708022B2 (ja) プロセッサ
JP3493110B2 (ja) 高速分岐処理装置
JPH10124312A (ja) 中央処理装置
JP3765111B2 (ja) 分岐登録命令を有するプロセッサ
JP2001022577A (ja) 情報処理装置
JP2591325B2 (ja) 分岐制御装置
JPH06131180A (ja) 命令処理方式および命令処理装置
JP2944563B2 (ja) パイプライン型情報処理装置
JP3558481B2 (ja) データ処理装置
JP3568737B2 (ja) 条件実行命令を備えるマイクロプロセッサ
JP3147884B2 (ja) 記憶装置及び情報処理装置

Legal Events

Date Code Title Description
FPAY Renewal fee payment (prs date is renewal date of database)

Free format text: PAYMENT UNTIL: 20071114

Year of fee payment: 4

FPAY Renewal fee payment (prs date is renewal date of database)

Year of fee payment: 5

Free format text: PAYMENT UNTIL: 20081114

FPAY Renewal fee payment (prs date is renewal date of database)

Year of fee payment: 6

Free format text: PAYMENT UNTIL: 20091114

FPAY Renewal fee payment (prs date is renewal date of database)

Free format text: PAYMENT UNTIL: 20101114

Year of fee payment: 7

FPAY Renewal fee payment (prs date is renewal date of database)

Year of fee payment: 7

Free format text: PAYMENT UNTIL: 20101114

FPAY Renewal fee payment (prs date is renewal date of database)

Year of fee payment: 8

Free format text: PAYMENT UNTIL: 20111114

FPAY Renewal fee payment (prs date is renewal date of database)

Free format text: PAYMENT UNTIL: 20121114

Year of fee payment: 9

LAPS Cancellation because of no payment of annual fees