JPH05108345A - 分岐命令処理装置 - Google Patents
分岐命令処理装置Info
- Publication number
- JPH05108345A JPH05108345A JP3267954A JP26795491A JPH05108345A JP H05108345 A JPH05108345 A JP H05108345A JP 3267954 A JP3267954 A JP 3267954A JP 26795491 A JP26795491 A JP 26795491A JP H05108345 A JPH05108345 A JP H05108345A
- Authority
- JP
- Japan
- Prior art keywords
- branch
- instruction
- output
- selection circuit
- 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.)
- Pending
Links
Classifications
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02E—REDUCTION OF GREENHOUSE GAS [GHG] EMISSIONS, RELATED TO ENERGY GENERATION, TRANSMISSION OR DISTRIBUTION
- Y02E60/00—Enabling technologies; Technologies with a potential or indirect contribution to GHG emissions mitigation
- Y02E60/30—Hydrogen technology
- Y02E60/50—Fuel cells
Landscapes
- Executing Machine-Instructions (AREA)
- Advance Control (AREA)
Abstract
(57)【要約】
【目的】 分岐命令実行をハードウエアで実現できるよ
うにし、データ処理速度および処理効率を高める。 【構成】 分岐命令の場合に、プログラムカウンタ10
0の出力でこの出力に対応する分岐先アドレスを検索し
て出力する分岐アドレス格納用連想メモリ611〜61
3を分岐先数分備える。分岐命令の場合、命令デコーダ
310の出力によりプログラムカウンタのインクリメン
トを停止し、この分岐アドレス格納用連想メモリ611
〜613から出力される分岐アドレスを分岐条件に従っ
て選択してプログラムカウンタ100に与える。プログ
ラムカウンタ100の出力は命令格納用メモリ200に
与えられる。
うにし、データ処理速度および処理効率を高める。 【構成】 分岐命令の場合に、プログラムカウンタ10
0の出力でこの出力に対応する分岐先アドレスを検索し
て出力する分岐アドレス格納用連想メモリ611〜61
3を分岐先数分備える。分岐命令の場合、命令デコーダ
310の出力によりプログラムカウンタのインクリメン
トを停止し、この分岐アドレス格納用連想メモリ611
〜613から出力される分岐アドレスを分岐条件に従っ
て選択してプログラムカウンタ100に与える。プログ
ラムカウンタ100の出力は命令格納用メモリ200に
与えられる。
Description
【0001】
【産業上の利用分野】本発明は、ストアードプログラム
方式の演算処理装置に利用する。本発明は特にマルチウ
エイ分岐を効率的に実行する分岐命令処理装置に関す
る。
方式の演算処理装置に利用する。本発明は特にマルチウ
エイ分岐を効率的に実行する分岐命令処理装置に関す
る。
【0002】
【従来の技術】LSI製造技術の発達により、処理能力
の高いマイクロプロセッサが安価に利用できるようにな
ってきた。処理能力の高いマイクロプロセッサを実現す
るために、動作周波数を高速化したり、ハードウエアの
高集積化がはかられている。
の高いマイクロプロセッサが安価に利用できるようにな
ってきた。処理能力の高いマイクロプロセッサを実現す
るために、動作周波数を高速化したり、ハードウエアの
高集積化がはかられている。
【0003】特に、近年のマイクロプロセッサは、デコ
ーダの負担軽減を狙って命令体系をワード固定長とし、
性能向上を図っている。この一つのワード固定長命令
は、複数のサブ命令からなり、同時に複数のハードウエ
ア動作を指定することができるものである。例えば、一
つのワード固定長命令においてALU演算、データ転送
命令、その他のマイクロプロセッサ内制御のすべてを同
時に行うことが可能である。サブ命令としては、他にも
分岐命令や即値ロード命令などを用いることができる。
しかし、これら2つの命令はオペランドとして、それぞ
れ分岐アドレス部分、即値データ部分を保持する。その
ため、分岐命令と即値ロード命令は、ビット長の短い限
られたサブ命令としか同時に実行できない。これは、1
命令のビット長が限られている場合の欠点である。
ーダの負担軽減を狙って命令体系をワード固定長とし、
性能向上を図っている。この一つのワード固定長命令
は、複数のサブ命令からなり、同時に複数のハードウエ
ア動作を指定することができるものである。例えば、一
つのワード固定長命令においてALU演算、データ転送
命令、その他のマイクロプロセッサ内制御のすべてを同
時に行うことが可能である。サブ命令としては、他にも
分岐命令や即値ロード命令などを用いることができる。
しかし、これら2つの命令はオペランドとして、それぞ
れ分岐アドレス部分、即値データ部分を保持する。その
ため、分岐命令と即値ロード命令は、ビット長の短い限
られたサブ命令としか同時に実行できない。これは、1
命令のビット長が限られている場合の欠点である。
【0004】一方、ソフトウエアの生産性を向上させる
ため、マイクロプロセッサの命令体系に対しては、高級
言語とのセマンティックギャップを小さくすることが望
まれている。科学技術計算に幅広く使用されているFO
RTRANの分岐文に、 IF(K) 分岐先1,分岐先2,分岐先3 というものがある。これは条件式Kを評価し、その値が
「負」、「0」、「正」のいずれであるかにより、実行
をそれぞれ分岐先1、2、3のうちの一つに移すという
3方向分岐を行う文である。この文をマイクロプロセッ
サのアセンブラレベルで実現するにあたって、まず始め
に分岐先が2方向である場合について図12を用いて説
明する。
ため、マイクロプロセッサの命令体系に対しては、高級
言語とのセマンティックギャップを小さくすることが望
まれている。科学技術計算に幅広く使用されているFO
RTRANの分岐文に、 IF(K) 分岐先1,分岐先2,分岐先3 というものがある。これは条件式Kを評価し、その値が
「負」、「0」、「正」のいずれであるかにより、実行
をそれぞれ分岐先1、2、3のうちの一つに移すという
3方向分岐を行う文である。この文をマイクロプロセッ
サのアセンブラレベルで実現するにあたって、まず始め
に分岐先が2方向である場合について図12を用いて説
明する。
【0005】図12に示す数値演算処理装置における分
岐処理を行う装置では、プログラムカウンタ100、こ
のプログラムカウンタ100のインクリメンタ150、
プログラムカウンタ100の出力する現在の値101に
よって命令201を出力する命令格納用メモリ200、
この命令201をデコードする命令デコーダ300、数
値演算処理装置のALUの演算結果に応じて変化するフ
ラグ400、フラグ400の出力するフラグの値401
によってインクリメンタ150の出力151と命令デコ
ーダ300の出力301のいずれかを選択する選択回路
500を備えている。
岐処理を行う装置では、プログラムカウンタ100、こ
のプログラムカウンタ100のインクリメンタ150、
プログラムカウンタ100の出力する現在の値101に
よって命令201を出力する命令格納用メモリ200、
この命令201をデコードする命令デコーダ300、数
値演算処理装置のALUの演算結果に応じて変化するフ
ラグ400、フラグ400の出力するフラグの値401
によってインクリメンタ150の出力151と命令デコ
ーダ300の出力301のいずれかを選択する選択回路
500を備えている。
【0006】次にこの装置における分岐処理動作を説明
する。命令格納用メモリ200中の条件分岐命令が命令
デコーダ300に出力されると、命令文中の分岐先アド
レス301と、インクリメンタ150の出力151が選
択回路500に与えられる。選択回路500は、その2
つの入力のうち、フラグ400の値が条件分岐命令中の
条件を満たす場合には、分岐先アドレス301を、満た
さない場合には、インクリメンタ150の出力151を
値を選択する。選択回路500の出力501は、次に実
行されるべきアドレスとしてプログラムカウンタ100
に入力される。
する。命令格納用メモリ200中の条件分岐命令が命令
デコーダ300に出力されると、命令文中の分岐先アド
レス301と、インクリメンタ150の出力151が選
択回路500に与えられる。選択回路500は、その2
つの入力のうち、フラグ400の値が条件分岐命令中の
条件を満たす場合には、分岐先アドレス301を、満た
さない場合には、インクリメンタ150の出力151を
値を選択する。選択回路500の出力501は、次に実
行されるべきアドレスとしてプログラムカウンタ100
に入力される。
【0007】これを3方向に拡張するには、この条件分
岐命令を3個組み合わせて実行することになる。実際に
プログラムを作成すると次のようになる。
岐命令を3個組み合わせて実行することになる。実際に
プログラムを作成すると次のようになる。
【0008】 cmp rl,0 … 条件式r1と0を比較 jz 1000h … r1が0の時1000hへ js 2000h … r1が負の時2000hへ jl 3000h … r1が正の時3000hへ cmp d,s … 比較命令、比較結果が等しいとき
ゼロフラグをセット、d<sの時キャリフラグをセッ
ト、 jz D … 条件分岐命令、ゼロフラグがセットされ
ているとき、分岐、 js D … 条件分岐命令、キャリフラグがセットさ
れているとき、分岐、 jl D … 条件分岐命令、ゼロフラグとキャリフラ
グがセットされていないとき、分岐、
ゼロフラグをセット、d<sの時キャリフラグをセッ
ト、 jz D … 条件分岐命令、ゼロフラグがセットされ
ているとき、分岐、 js D … 条件分岐命令、キャリフラグがセットさ
れているとき、分岐、 jl D … 条件分岐命令、ゼロフラグとキャリフラ
グがセットされていないとき、分岐、
【0009】
【発明が解決しようとする課題】3方向への分岐を実現
するためには、このプログラムに示すように、比較命令
と3個の条件分岐命令を組み合わせて実行する必要があ
った。しかし、この方法では実行ステップ数、命令格納
用メモリへのアクセス回数が多くなり、データ処理速度
と処理効率を低下させていた。
するためには、このプログラムに示すように、比較命令
と3個の条件分岐命令を組み合わせて実行する必要があ
った。しかし、この方法では実行ステップ数、命令格納
用メモリへのアクセス回数が多くなり、データ処理速度
と処理効率を低下させていた。
【0010】本発明は上述の欠点を解決するもので、分
岐アドレス格納用連想メモリを複数設けることにより、
3方向への分岐命令を1命令で実現できるようにし、デ
ータ処理速度および処理効率を増加させることができる
分岐命令処理装置を提供することを目的とする。
岐アドレス格納用連想メモリを複数設けることにより、
3方向への分岐命令を1命令で実現できるようにし、デ
ータ処理速度および処理効率を増加させることができる
分岐命令処理装置を提供することを目的とする。
【0011】
【課題を解決するための手段】本発明は、実行される命
令を格納する命令格納用メモリと、この命令をデコード
して条件分岐命令を出力する命令デコーダと、分岐条件
が設定されるレジスタと、このレジスタに設定された分
岐条件にしたがって分岐先アドレスを選択して出力する
第一の選択回路と、この選択された分岐先アドレスが入
力され次に実行すべき命令格納アドレスを上記命令格納
用メモリに出力するプログラムカウンタと、このプログ
ラムカウンタの出力をインクリメントするインクリメン
タとを備えた分岐命令処理装置において、分岐先数に対
応して複数個設けられ上記命令格納用メモリに与えられ
る上記プログラムカウンタの出力をキーとして対応する
分岐先アドレスを記憶し分岐先アドレスを上記第一の選
択回路に出力する分岐アドレス格納用連想メモリと、上
記第一の選択回路の出力と上記インクリメンタの出力と
を上記命令デコーダの出力にしたがって選択する第二の
選択回路とを備えたことを特徴とする。
令を格納する命令格納用メモリと、この命令をデコード
して条件分岐命令を出力する命令デコーダと、分岐条件
が設定されるレジスタと、このレジスタに設定された分
岐条件にしたがって分岐先アドレスを選択して出力する
第一の選択回路と、この選択された分岐先アドレスが入
力され次に実行すべき命令格納アドレスを上記命令格納
用メモリに出力するプログラムカウンタと、このプログ
ラムカウンタの出力をインクリメントするインクリメン
タとを備えた分岐命令処理装置において、分岐先数に対
応して複数個設けられ上記命令格納用メモリに与えられ
る上記プログラムカウンタの出力をキーとして対応する
分岐先アドレスを記憶し分岐先アドレスを上記第一の選
択回路に出力する分岐アドレス格納用連想メモリと、上
記第一の選択回路の出力と上記インクリメンタの出力と
を上記命令デコーダの出力にしたがって選択する第二の
選択回路とを備えたことを特徴とする。
【0012】なお、プログラムカウンタの出力と各分岐
アドレス格納用連想メモリの出力とをそれぞれ加算する
加算器を備えることができる。
アドレス格納用連想メモリの出力とをそれぞれ加算する
加算器を備えることができる。
【0013】
【作用】命令格納用メモリから出力された命令は命令デ
コーダでデコードされる。同時に分岐アドレス格納用連
想メモリはプログラムカウンタの値をキーとして分岐ア
ドレスを検索してそれぞれ出力する。この複数の分岐ア
ドレス格納用連想メモリの出力する分岐アドレスの何れ
かをレジスタの出力に基づいて第一の選択回路で選択す
る。この選択された分岐アドレスは、命令デコーダの出
力にしたがって、この分岐アドレスかインクリメンタ出
力のいずれかを選択してプログラムカウンタに与えられ
る。このため分岐命令を実行しているときはレジスタの
出力する値によってそれぞれの分岐アドレス格納用連想
メモリから出力される分岐アドレスがプログラムカウン
タに入力されて分岐命令を実行する。分岐命令でない場
合はプログラムカウンタはインクリメントされる。
コーダでデコードされる。同時に分岐アドレス格納用連
想メモリはプログラムカウンタの値をキーとして分岐ア
ドレスを検索してそれぞれ出力する。この複数の分岐ア
ドレス格納用連想メモリの出力する分岐アドレスの何れ
かをレジスタの出力に基づいて第一の選択回路で選択す
る。この選択された分岐アドレスは、命令デコーダの出
力にしたがって、この分岐アドレスかインクリメンタ出
力のいずれかを選択してプログラムカウンタに与えられ
る。このため分岐命令を実行しているときはレジスタの
出力する値によってそれぞれの分岐アドレス格納用連想
メモリから出力される分岐アドレスがプログラムカウン
タに入力されて分岐命令を実行する。分岐命令でない場
合はプログラムカウンタはインクリメントされる。
【0014】
【実施例】以下図面を参照して本発明実施例を説明す
る。
る。
【0015】図1は本発明の第一実施例の分岐処理装置
の構成を示すものである。この第一実施例装置は、実行
される命令を格納する命令格納用メモリ200と、この
命令をデコードして条件分岐命令を出力する命令デコー
ダ310と、分岐条件が設定されるレジスタ800と、
このレジスタ800に設定された分岐条件にしたがって
分岐先アドレスを選択して出力する第一の選択回路51
0と、この選択された分岐先アドレスが入力され次に実
行すべき命令格納アドレスを上記命令格納用メモリに出
力するプログラムカウンタ100と、プログラムカウン
タ100の出力をインクリメントするインクリメンタ1
50とを備えた分岐命令処理装置において、本発明の特
徴とする分岐先数に対応して複数個設けられ命令格納用
メモリ200に与えられるプログラムカウンタ100の
出力をキーとして対応する分岐先アドレスを記憶し分岐
先アドレスを上記第一の選択回路に出力する分岐アドレ
ス格納用連想メモリ611、612、613と、上記第
一の選択回路510の出力と上記インクリメンタ150
の出力とを上記命令デコーダ310の出力にしたがって
選択する第二の選択回路550とを備えている。
の構成を示すものである。この第一実施例装置は、実行
される命令を格納する命令格納用メモリ200と、この
命令をデコードして条件分岐命令を出力する命令デコー
ダ310と、分岐条件が設定されるレジスタ800と、
このレジスタ800に設定された分岐条件にしたがって
分岐先アドレスを選択して出力する第一の選択回路51
0と、この選択された分岐先アドレスが入力され次に実
行すべき命令格納アドレスを上記命令格納用メモリに出
力するプログラムカウンタ100と、プログラムカウン
タ100の出力をインクリメントするインクリメンタ1
50とを備えた分岐命令処理装置において、本発明の特
徴とする分岐先数に対応して複数個設けられ命令格納用
メモリ200に与えられるプログラムカウンタ100の
出力をキーとして対応する分岐先アドレスを記憶し分岐
先アドレスを上記第一の選択回路に出力する分岐アドレ
ス格納用連想メモリ611、612、613と、上記第
一の選択回路510の出力と上記インクリメンタ150
の出力とを上記命令デコーダ310の出力にしたがって
選択する第二の選択回路550とを備えている。
【0016】なお、151はインクリメンタ150の出
力、201は命令格納用メモリ200から選び出された
命令、301は命令デコーダ310の出力、601、6
02、603は分岐アドレス格納用連想メモリ611、
612、613の出力、511は選択回路510の出
力、551は選択回路550の出力である。
力、201は命令格納用メモリ200から選び出された
命令、301は命令デコーダ310の出力、601、6
02、603は分岐アドレス格納用連想メモリ611、
612、613の出力、511は選択回路510の出
力、551は選択回路550の出力である。
【0017】次に本第一実施例の動作を説明する。
【0018】命令デコーダ310は、3方向分岐命令が
与えられると、選択回路550に、3方向分岐命令が与
えられたことを知らせる信号312を出力する。
与えられると、選択回路550に、3方向分岐命令が与
えられたことを知らせる信号312を出力する。
【0019】選択回路510は、レジスタ800の値が
「負」、「0」、「正」のいずれかによって出力データ
を選択するため、図2に示すように構成されている。図
2において、符号521は、レジスタ800の値が
「正」の場合のみ開き、そのゲートに入力されたアドレ
スを通すゲート、符号522は、レジスタ800の値が
「0」の場合のみ同様の働きをするゲート、符号523
は、レジスタ800の値が「負」の場合のみ同様の働き
をするゲートである。この図2においては、「2」の補
数表現を用い、利用するレジスタのビット幅が5ビット
であるものとしている。
「負」、「0」、「正」のいずれかによって出力データ
を選択するため、図2に示すように構成されている。図
2において、符号521は、レジスタ800の値が
「正」の場合のみ開き、そのゲートに入力されたアドレ
スを通すゲート、符号522は、レジスタ800の値が
「0」の場合のみ同様の働きをするゲート、符号523
は、レジスタ800の値が「負」の場合のみ同様の働き
をするゲートである。この図2においては、「2」の補
数表現を用い、利用するレジスタのビット幅が5ビット
であるものとしている。
【0020】命令格納用メモリ200には、図3に示す
ような命令が格納されているとする。分岐アドレス格納
用連想メモリ611、612、613には、それぞれ図
4、図5、図6に示すようなデータが格納されているも
のとする。図3において、‘IF K’とはFORTR
ANの ‘IF (K) 分岐先1,分岐先2,分岐先3’ の文と同等の命令であるとする。
ような命令が格納されているとする。分岐アドレス格納
用連想メモリ611、612、613には、それぞれ図
4、図5、図6に示すようなデータが格納されているも
のとする。図3において、‘IF K’とはFORTR
ANの ‘IF (K) 分岐先1,分岐先2,分岐先3’ の文と同等の命令であるとする。
【0021】プログラムカウンタ100の値101が
「10」のとき、命令格納用メモリ200から出力され
た命令201は、命令デコーダ310でデコードされ
る。これと同時に分岐アドレス格納用連想メモリ61
1、612、613では、プログラムカウンタ100の
値「10」をキーとしてそれぞれ検索され、分岐アドレ
ス「1000000h」、分岐アドレス「200000
0h」、分岐アドレス「3000000h」をそれぞれ
選択回路510へ出力する。選択回路510では、レジ
スタ800の値にしたがって、各分岐アドレスのいずれ
かを選択し、さらに選択回路550へ出力する。選択回
路550は、命令デコーダ310の出力312にしたが
って、選択回路510からの出力511とインクリメン
タ150の出力151のいずれかをプログラムカウンタ
100に与える。
「10」のとき、命令格納用メモリ200から出力され
た命令201は、命令デコーダ310でデコードされ
る。これと同時に分岐アドレス格納用連想メモリ61
1、612、613では、プログラムカウンタ100の
値「10」をキーとしてそれぞれ検索され、分岐アドレ
ス「1000000h」、分岐アドレス「200000
0h」、分岐アドレス「3000000h」をそれぞれ
選択回路510へ出力する。選択回路510では、レジ
スタ800の値にしたがって、各分岐アドレスのいずれ
かを選択し、さらに選択回路550へ出力する。選択回
路550は、命令デコーダ310の出力312にしたが
って、選択回路510からの出力511とインクリメン
タ150の出力151のいずれかをプログラムカウンタ
100に与える。
【0022】例えば、レジスタ800の値が「正」の場
合、分岐アドレス格納用連想メモリ611から出力され
た値「1000000h」とインクリメンタ150の出
力151の値「11」が選択回路550に与えられる。
しかし、選択回路550は、命令デコーダ310の出力
312が3方向分岐命令実行中であることを示している
ため、分岐格納用連想メモリ611の出力した値「10
00000h」をプログラムカウンタ100に出力す
る。またレジスタ800の値が「0」である場合も同様
にして、分岐アドレス格納用メモリ612から出力され
た値「2000000h」が選択回路510、550を
介してプログラムカウンタ100に出力される。レジス
タ800の値が「負」の場合も同様で、分岐アドレス格
納用メモリ613から出力された値「3000000
h」が選択回路510、550を介してプログラムカウ
ンタ100に出力される。
合、分岐アドレス格納用連想メモリ611から出力され
た値「1000000h」とインクリメンタ150の出
力151の値「11」が選択回路550に与えられる。
しかし、選択回路550は、命令デコーダ310の出力
312が3方向分岐命令実行中であることを示している
ため、分岐格納用連想メモリ611の出力した値「10
00000h」をプログラムカウンタ100に出力す
る。またレジスタ800の値が「0」である場合も同様
にして、分岐アドレス格納用メモリ612から出力され
た値「2000000h」が選択回路510、550を
介してプログラムカウンタ100に出力される。レジス
タ800の値が「負」の場合も同様で、分岐アドレス格
納用メモリ613から出力された値「3000000
h」が選択回路510、550を介してプログラムカウ
ンタ100に出力される。
【0023】次に本発明第二実施例を図7ないし図11
に基づいて説明する。
に基づいて説明する。
【0024】この第二実施例は第一実施例と比べると、
プログラムカウンタ100の出力と分岐アドレス格納用
連想メモリ611の出力601の値とを加算し選択回路
510に与える加算器711、プログラムカウンタ10
0の出力と分岐アドレス格納用連想メモリ612の出力
602の値とを加算し選択回路510に与える加算器7
12、プログラムカウンタ100の出力と分岐アドレス
格納用連想メモリ613の出力603の値とを加算し選
択回路510に与える加算器712とを備えている点が
異なる。
プログラムカウンタ100の出力と分岐アドレス格納用
連想メモリ611の出力601の値とを加算し選択回路
510に与える加算器711、プログラムカウンタ10
0の出力と分岐アドレス格納用連想メモリ612の出力
602の値とを加算し選択回路510に与える加算器7
12、プログラムカウンタ100の出力と分岐アドレス
格納用連想メモリ613の出力603の値とを加算し選
択回路510に与える加算器712とを備えている点が
異なる。
【0025】この第二実施例の動作を説明する。
【0026】選択回路510は、レジスタ800の値が
「負」、「0」、「正」のいずれであるかによって、デ
ータを選択するため、図2に示したように構成する。
「負」、「0」、「正」のいずれであるかによって、デ
ータを選択するため、図2に示したように構成する。
【0027】命令格納用メモリ200には図8に示すよ
うな命令が格納されているとする。分岐アドレス格納用
連想メモリ611、612、613にはそれぞれ図9、
図10、図11に示すようなデータが格納されていると
する。図8において、‘IFK’とはFORTRANの ‘IF (K) 分岐先1,分岐先2,分岐先3’ の文と同等の命令であるとする。
うな命令が格納されているとする。分岐アドレス格納用
連想メモリ611、612、613にはそれぞれ図9、
図10、図11に示すようなデータが格納されていると
する。図8において、‘IFK’とはFORTRANの ‘IF (K) 分岐先1,分岐先2,分岐先3’ の文と同等の命令であるとする。
【0028】プログラムカウンタ100の値が「10」
のとき、命令201は、命令デコーダ310でデコード
される。これと同時に分岐アドレス格納用連想メモリ6
11、612、613では、プログラムカウンタの値
「10」をキーとしてそれぞれ検索され、分岐アドレス
「100h」、分岐アドレス「200h」、分岐アドレ
ス「300h」をそれぞれ加算器711、712、71
3に出力する。加算器711では、分岐アドレス格納用
連想メモリ611の出力601の値とプログラムカウン
タ100の出力101とを加算して選択回路510に出
力する。加算器712、加算器713も同様である。選
択回路510では、レジスタ800の保持する値にした
がって、加算器711、712、713それぞれからの
出力701、702、703のいずれかを選択し、選択
回路550に出力する。選択回路550は命令デコーダ
310の出力312にしたがって、選択回路510の出
力511とインクリメンタ150の出力151とのいず
れかをプログラムカウンタ100に出力する。
のとき、命令201は、命令デコーダ310でデコード
される。これと同時に分岐アドレス格納用連想メモリ6
11、612、613では、プログラムカウンタの値
「10」をキーとしてそれぞれ検索され、分岐アドレス
「100h」、分岐アドレス「200h」、分岐アドレ
ス「300h」をそれぞれ加算器711、712、71
3に出力する。加算器711では、分岐アドレス格納用
連想メモリ611の出力601の値とプログラムカウン
タ100の出力101とを加算して選択回路510に出
力する。加算器712、加算器713も同様である。選
択回路510では、レジスタ800の保持する値にした
がって、加算器711、712、713それぞれからの
出力701、702、703のいずれかを選択し、選択
回路550に出力する。選択回路550は命令デコーダ
310の出力312にしたがって、選択回路510の出
力511とインクリメンタ150の出力151とのいず
れかをプログラムカウンタ100に出力する。
【0029】例えば、レジスタ800の値が「正」の場
合、加算器711から出力された「110h」とインク
リメンタ150の出力151の値が選択回路550に与
えられる。しかし選択回路550は、命令デコーダ31
0からの出力312が、3方向分岐命令を実行中である
ことを示しているため、加算器711の出力701の値
「110h」をプログラムカウンタ100に出力する。
レジスタ800の値が「0」の場合も同様に、加算器7
12の出力702の値「210h」が選択回路550を
通してプログラムカウンタ100に出力される。レジス
タ800の値が「負」の場合も同様で、加算器713の
出力703の値「310h」がプログラムカウンタ10
0に出力される。
合、加算器711から出力された「110h」とインク
リメンタ150の出力151の値が選択回路550に与
えられる。しかし選択回路550は、命令デコーダ31
0からの出力312が、3方向分岐命令を実行中である
ことを示しているため、加算器711の出力701の値
「110h」をプログラムカウンタ100に出力する。
レジスタ800の値が「0」の場合も同様に、加算器7
12の出力702の値「210h」が選択回路550を
通してプログラムカウンタ100に出力される。レジス
タ800の値が「負」の場合も同様で、加算器713の
出力703の値「310h」がプログラムカウンタ10
0に出力される。
【0030】この第二実施例が第一実施例と異なるとこ
ろは、分岐先が相対アドレスでも指定することができる
ことにある。
ろは、分岐先が相対アドレスでも指定することができる
ことにある。
【0031】なお、上記実施例では、選択回路の制御を
「2」の補数であり、かつ扱うデータが5ビットである
として説明した。しかし、「1」の補数を用いたり、デ
ータのビット数が16ビット幅や32ビット幅を用いた
場合でも同様の効果が得られることは明らかである。
「2」の補数であり、かつ扱うデータが5ビットである
として説明した。しかし、「1」の補数を用いたり、デ
ータのビット数が16ビット幅や32ビット幅を用いた
場合でも同様の効果が得られることは明らかである。
【0032】
【発明の効果】このように、本発明は、分岐アドレス格
納用連想メモリを複数設けることにより、従来4命令で
あった3方向への分岐命令を1命令で実現できる。この
ことにより、マイクロプロセッサのデータ処理速度およ
び処理効率を増加させることができる。また、高級言語
とのセマンティックギャップを減少させることができ
る。
納用連想メモリを複数設けることにより、従来4命令で
あった3方向への分岐命令を1命令で実現できる。この
ことにより、マイクロプロセッサのデータ処理速度およ
び処理効率を増加させることができる。また、高級言語
とのセマンティックギャップを減少させることができ
る。
【0033】さらに、従来1命令中の分岐アドレス値を
保持させていたビット部分には他のサブ命令を指定する
ことができるため、その分、処理効率を上げることがで
きる。なお、分岐アドレス格納用メモリの容量は分岐命
令の分岐先数の総和だけあれば十分であり、その容量が
増大することはない。
保持させていたビット部分には他のサブ命令を指定する
ことができるため、その分、処理効率を上げることがで
きる。なお、分岐アドレス格納用メモリの容量は分岐命
令の分岐先数の総和だけあれば十分であり、その容量が
増大することはない。
【図1】本発明第一実施例を示すブロック図。
【図2】選択回路510の構成図。
【図3】第一実施例命令格納用メモリの内容を示す図。
【図4】第一実施例分岐アドレス格納用連想メモリの内
容を示す図。
容を示す図。
【図5】第一実施例分岐アドレス格納用連想メモリの内
容を示す図。
容を示す図。
【図6】第一実施例分岐アドレス格納用連想メモリの内
容を示す図。
容を示す図。
【図7】本発明第二実施例を示すブロック図。
【図8】第二実施例命令格納用メモリの内容を示す図。
【図9】第二実施例分岐アドレス格納用連想メモリの内
容を示す図。
容を示す図。
【図10】第二実施例分岐アドレス格納用連想メモリの
内容を示す図。
内容を示す図。
【図11】第二実施例分岐アドレス格納用連想メモリの
内容を示す図。
内容を示す図。
【図12】従来例を示すブロック図。
100 プログラムカウンタ 101 プログラムカウンタの出力 150 インクリメンタ 151 インクリメンタの出力 200 命令格納用メモリ 201 実行される命令 300、310 命令デコーダ 301 命令デコーダ300の出力 400 フラグ 401 フラグの値 500、510、550 選択回路 501 選択回路500の出力 511 選択回路510の出力 521、522、523 選択用ゲート 551 選択回路550の出力 601、602、603 分岐アドレス格納用連想メモ
リの出力 611、612、613 分岐アドレス格納用連想メモ
リ 701、702、703 加算器の出力 711、712、713 加算器 800 レジスタ
リの出力 611、612、613 分岐アドレス格納用連想メモ
リ 701、702、703 加算器の出力 711、712、713 加算器 800 レジスタ
Claims (2)
- 【請求項1】 実行される命令を格納する命令格納用メ
モリと、 この命令をデコードして条件分岐命令を出力する命令デ
コーダと、 分岐条件が設定されるレジスタと、 このレジスタに設定された分岐条件にしたがって分岐先
アドレスを選択して出力する第一の選択回路と、 この選択された分岐先アドレスが入力され次に実行すべ
き命令格納アドレスを上記命令格納用メモリに出力する
プログラムカウンタと、 このプログラムカウンタの出力をインクリメントするイ
ンクリメンタとを備えた分岐命令処理装置において、 分岐先数に対応して複数個設けられ上記命令格納用メモ
リに与えられる上記プログラムカウンタの出力をキーと
して対応する分岐先アドレスを記憶し分岐先アドレスを
上記第一の選択回路に出力する分岐アドレス格納用連想
メモリと、 上記第一の選択回路の出力と上記インクリメンタの出力
とを上記命令デコーダの出力にしたがって選択する第二
の選択回路とを備えたことを特徴とする分岐命令処理装
置。 - 【請求項2】 上記分岐アドレス格納用連想メモリの出
力する分岐アドレスと上記プログラムカウンタの出力と
をそれぞれ加算し上記第一の選択回路に与える複数の加
算器を備える請求項1記載の分岐命令処理装置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP3267954A JPH05108345A (ja) | 1991-10-16 | 1991-10-16 | 分岐命令処理装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP3267954A JPH05108345A (ja) | 1991-10-16 | 1991-10-16 | 分岐命令処理装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
JPH05108345A true JPH05108345A (ja) | 1993-04-30 |
Family
ID=17451906
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP3267954A Pending JPH05108345A (ja) | 1991-10-16 | 1991-10-16 | 分岐命令処理装置 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JPH05108345A (ja) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5724563A (en) * | 1995-04-12 | 1998-03-03 | Matsushita Electric Industrial Co., Ltd. | Pipeline processsor |
US6334184B1 (en) | 1998-03-24 | 2001-12-25 | International Business Machines Corporation | Processor and method of fetching an instruction that select one of a plurality of decoded fetch addresses generated in parallel to form a memory request |
KR100381876B1 (ko) * | 1995-07-03 | 2003-07-18 | 텍사스 인스트루먼츠 인코포레이티드 | 프로그램카운팅시스템및카운터의동작방법 |
JP2005018191A (ja) * | 2003-06-24 | 2005-01-20 | Yokogawa Electric Corp | 不揮発性メモリ装置及び不揮発性メモリ装置のアクセス方法 |
JP2020505674A (ja) * | 2017-01-19 | 2020-02-20 | インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Machines Corporation | 間接的に指定された位置への条件付き分岐 |
-
1991
- 1991-10-16 JP JP3267954A patent/JPH05108345A/ja active Pending
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5724563A (en) * | 1995-04-12 | 1998-03-03 | Matsushita Electric Industrial Co., Ltd. | Pipeline processsor |
KR100381876B1 (ko) * | 1995-07-03 | 2003-07-18 | 텍사스 인스트루먼츠 인코포레이티드 | 프로그램카운팅시스템및카운터의동작방법 |
US6334184B1 (en) | 1998-03-24 | 2001-12-25 | International Business Machines Corporation | Processor and method of fetching an instruction that select one of a plurality of decoded fetch addresses generated in parallel to form a memory request |
JP2005018191A (ja) * | 2003-06-24 | 2005-01-20 | Yokogawa Electric Corp | 不揮発性メモリ装置及び不揮発性メモリ装置のアクセス方法 |
JP2020505674A (ja) * | 2017-01-19 | 2020-02-20 | インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Machines Corporation | 間接的に指定された位置への条件付き分岐 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US4578750A (en) | Code determination using half-adder based operand comparator | |
US5619664A (en) | Processor with architecture for improved pipelining of arithmetic instructions by forwarding redundant intermediate data forms | |
KR100254008B1 (ko) | 2개의 명령을 동시에 실행할 수 있는 데이타 프로세서 | |
KR940009095B1 (ko) | 데이터 처리시스템 | |
JPS61122747A (ja) | デ−タ処理装置 | |
JPH0659861A (ja) | 3−1論理演算装置 | |
US4954947A (en) | Instruction processor for processing branch instruction at high speed | |
US20030037085A1 (en) | Field processing unit | |
US5349671A (en) | Microprocessor system generating instruction fetch addresses at high speed | |
JPH05108345A (ja) | 分岐命令処理装置 | |
JP2928680B2 (ja) | 複合条件処理方式 | |
US7058678B2 (en) | Fast forwarding ALU | |
JPS63111535A (ja) | デ−タ処理装置 | |
JPH0375932A (ja) | 数値演算処理装置 | |
US6757813B1 (en) | Processor | |
US5774740A (en) | Central processing unit for execution of orthogonal and non-orthogonal instructions | |
JPS6116334A (ja) | デ−タ処理装置 | |
JPH0322028A (ja) | 数値演算処理装置 | |
JP3431503B2 (ja) | 情報処理装置およびプログラム制御方法 | |
JPH04137169A (ja) | 情報処理装置 | |
JPS63276126A (ja) | 命令デコ−ド回路 | |
JPH0758459B2 (ja) | マイクロプログラム制御装置 | |
JPH05165639A (ja) | 並列処理装置におけるレジスタ読み出し方法およびレジスタ読み出し装置 | |
JPH0635669A (ja) | 中央演算処理装置 | |
JPH01147723A (ja) | 情報処理装置のパイプライン処理方式 |