JPH1173301A - 情報処理装置 - Google Patents
情報処理装置Info
- Publication number
- JPH1173301A JPH1173301A JP9234357A JP23435797A JPH1173301A JP H1173301 A JPH1173301 A JP H1173301A JP 9234357 A JP9234357 A JP 9234357A JP 23435797 A JP23435797 A JP 23435797A JP H1173301 A JPH1173301 A JP H1173301A
- Authority
- JP
- Japan
- Prior art keywords
- instruction
- flag
- information
- execution
- processing apparatus
- 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30003—Arrangements for executing specific machine instructions
- G06F9/30007—Arrangements for executing specific machine instructions to perform operations on data operands
- G06F9/30021—Compare instructions, e.g. Greater-Than, Equal-To, MINMAX
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30003—Arrangements for executing specific machine instructions
- G06F9/3005—Arrangements for executing specific machine instructions to perform operations for flow control
- G06F9/30058—Conditional branch instructions
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30094—Condition code generation, e.g. Carry, Zero flag
Abstract
場合でも、オペレーション指定フィールドを増加させず
に、コードサイズの増加を抑止し、かつ、命令解読器の
ハードウェア量の増加を抑止する情報処理装置を提供す
ることを目的とする。 【解決手段】 ANDゲート207〜208、反転ゲー
ト209は、命令解読器102が出力するフラグを更新
する命令であること示す信号と比較命令であることを示
す信号に従って、選択的にラッチ201〜206をイネ
ーブルにする。これにより、各命令でどの演算フラグレ
ジスタを更新するかを指定する必要がなく、コードサイ
ズの増加を抑制することができ、かつ比較命令であるか
を判断するだけで、更新する演算フラグレジスタを特定
できるので、命令解読器のハードウェアは増大せずに低
コストで実現できる。
Description
レジスタに対し、演算フラグを更新する情報処理装置に
関する。
処理装置の処理能力が飛躍的に向上し、あらゆる分野で
用いられいる。一般に情報処理装置では、複数の命令を
並列に実行させることにより、処理能力を向上させてい
る。
成し演算フラグレジスタを更新した後、その演算フラグ
を条件分岐命令などで使用し必要なくなるまで、演算フ
ラグを破壊する後続の命令を実行しないように、命令を
スケジューリング(並び換え)しなければならなかっ
た。しかしながら、処理能力の向上のために並列命令実
行を行うと、この命令スケジューリングが極めて困難と
なる。そこで、演算フラグレジスタを複数個持ち、各命
令毎にどの演算フラグレジスタの演算フラグを更新させ
るかを指定することにより、演算フラグを破壊しないよ
うに容易に命令スケジューリングできるようにした情報
処理装置が提案されている。例えば、PowerPC601 User'
s Manual、IBM Microelectronics参照。
様、および演算フラグレジスタのレジスタ構成を示す図
である。この情報処理装置は、同じ演算を行う命令が4
種類ずつ(図5では加算命令のみを示している)存在
し、ニモニックにおいてピリオド”.”が付加されてい
る命令は、演算結果の大小およびゼロを示すCR内の演
算フラグを更新し、アルファベット”o”が付加されて
いる命令はキャリー、オーバーフローを示すXER内の
演算フラグを更新する。
できるように、各命令において、どの演算フラグレジス
タを更新するかを直交して指定するようにしていた。
技術によれば、各命令に対して、どの演算フラグレジス
タを更新するかを指定しなければならず、命令割付けに
おいてオペレーションを指定するフィールドが長くな
り、コードサイズが増加するという課題を有していた。
更新方法が存在するために、命令解読器のハードウェア
量が増加するという課題も有していた。本発明はかかる
課題に鑑み、複数の演算フラグレジスタを持つ場合で
も、オペレーション指定フィールドを増加させずに、コ
ードサイズの増加を抑止し、かつ、命令解読器のハード
ウェア量の増加を抑止する情報処理装置を提供すること
を目的とする。
本発明の情報処理装置は、複数の命令を格納する記憶装
置から命令を読出す命令読出し手段と、前記命令読出し
手段により読出された命令を解読する解読手段と、前記
命令解読手段に従って命令を実行する実行手段と、前記
実行手段における実行結果の状態を表す情報の格納が択
一的に行われ、互いに重複する情報を含む第1と第2の
フラグレジスタと、前記解読手段により第1の命令が解
読された場合にのみ、前記実行手段における前記第1の
命令の実行結果の状態を表す情報を前記第1のフラグレ
ジスタに格納するように制御し、前記解読手段により前
記第1の命令以外の命令が解読された場合には、前記実
行手段における該命令の実行結果の状態を表す情報を前
記第2のフラグレジスタに格納するように制御するフラ
グ生成手段とを備えることを特徴とする。
格納されるフラグレジスタは命令によって一意に決ま
る。ここで前記第1の命令は、比較を行う命令であると
してもよい。上記の各情報処理装置において、前記第2
のフラグレジスタに含み得る情報は全て前記第1のフラ
グレジスタに含まれ、かつ、前記第1のフラグレジスタ
には前記第2のフラグレジスタに含まれない情報を含み
得るとしても良い。
得る情報は、前記実行手段においてキャリーが発生した
ことを示すキャリー情報と、前記実行手段においてオー
バーフローが発生したことを示すオーバーフロー情報と
であるとしてもよい。またさらに、前記第1の命令は、
比較を行う命令であり、前記第1のフラグレジスタに含
み得る情報は、前記キャリー情報と、前記オーバーフロ
ー情報と、前記実行手段における実行結果の正負を示す
符号情報と、前記実行手段における実行結果がゼロであ
ることを示すゼロ情報とであるとしてもよい。
命令は、命令のフォーマットを指定するフォーマットコ
ードが置かれるフォーマットフィールドと、並列実行さ
せるオペレーションを指定する複数のオペレーションフ
ィールドとを含むVLIW方式の命令であるとしてもよ
い。
て、図1から図4を用いて説明する。図1は、本発明の
実施の形態における情報処理装置の命令仕様と、演算フ
ラグを格納するフラグレジスタの構成を示す図である。
図1(a)において「add D,A,B」は加算命令を示す機
械語命令であり、ニモニック形式で表している。同様
に、「sub D,A,B」、「cmp A,B」、「mov (A),B」、「m
ov A,(B)」、「bzs target」、「bzc target」、「bns
target」、「bnctarget」、「bcs target」、「bcc tar
get」、「bvs target」、「bvc target」、「bcas targ
et」、「bcac target」、「bovs target」、「bovc tar
get」はそれぞれ、減算命令、比較命令、メモリからレ
ジスタへのロード命令、レジスタからメモリへのストア
命令、Zフラグが1の時分岐する条件分岐命令、Zフラグ
が0の時分岐する条件分岐命令、Nフラグが1の時分岐
する条件分岐命令、Nフラグが0の時分岐する条件分岐
命令、Cフラグが1の時分岐する条件分岐命令、Cフラグ
が0の時分岐する条件分岐命令、Vフラグが1の時分岐
する条件分岐命令、Vフラグが0の時分岐する条件分岐
命令、CAフラグが1の時分岐する条件分岐命令、CAフラ
グが0の時分岐する条件分岐命令、OVフラグが1の時分
岐する条件分岐命令、OVフラグが0の時分岐する条件分
岐命令を示す機械語命令である。
「bzs」、「bzc」、「bns」、「bnc」、「bcs」、「bc
c」、「bvs」、「bvc」、「bcas」、「bcac」、「bov
s」、「bovc」はOPコードであり、命令の演算の種類を
示し、それぞれ異なるコードが割り付けられている。
「D」、「A」、「B」、「(A)」、「(B)」、「target」
は演算を実行する時のオペランドであり、「D」、
「A」、「B」はレジスタを、「(A)」、「(B)」はレジス
タA、Bが示すメモリを、「target」は分岐先アドレスを
示している。
(FR)は、MSBよりCフラグ、Vフラグ、Nフラ
グ、Zフラグ、CAフラグ、OVフラグの6ビットの演
算フラグで構成されている。Cフラグ、Vフラグ、Nフ
ラグ、Zフラグはcmp命令実行時のみ更新される演算フ
ラグであり、それぞれキャリー発生時、オーバーフロー
発生時、演算結果が負の時、演算結果がゼロの時にセッ
トされる。CAフラグ、OVフラグはcmp命令以外の命
令でかつ、演算フラグを更新する命令を実行した時にの
み更新される演算フラグであり、それぞれキャリー発生
時、オーバーフロー発生時にセットされる。すなわち、
図1(a)に示した機械語命令では、add命令および、s
ub命令実行時にCAフラグ、OVフラグが更新され、cm
p命令実行時にCフラグ、Vフラグ、Nフラグ、Zフラ
グが更新される。それ以外のmov命令、bzs命令、bzc命
令、bns命令、bnc命令、bcs命令、bcc命令、bvs命令、b
vc命令、bcas命令、bcac命令、bovs命令、bovc命令では
いずれのフラグも更新されず、演算フラグレジスタは変
化しない。
処理装置の主要部の構成を示すブロック図である。本情
報処理装置は、命令レジスタ101、命令解読器10
2、レジスタファイル103、演算器群104、演算フ
ラグ生成手段105、ラッチ106〜108、バス10
9〜110から構成されている。
チされた命令を順次保持する。命令解読器102は、命
令レジスタ101に保持された命令を解読し、その命令
実行、および演算フラグ生成を制御する各種制御信号を
出力する。特に命令解読器102は、図1(a)に示し
たadd命令、sub命令およびcmp命令といった演算フラグ
を更新する命令の解読時には、演算フラグを更新するこ
とを許可するフラグ更新許可信号307を有効にし、cm
p命令解読時には、cmp命令であることを示すcmp命令指
示信号308を有効にし、演算フラグ更新を制御する。
の複数の汎用レジスタから構成され、命令解読器102
の制御に従って、レジスタに格納されたデータの読み出
しや、演算結果およびロードしたデータのレジスタへの
格納を行う。レジスタファイル103はバス109にデ
ータを出力し、バス110上のデータを取込む。演算器
群104は、複数の演算器を備え、命令解読器102の
制御に従って、命令のOPコードで指定された演算を行
い、同時に演算フラグ生成に必要なフラグ生成情報を出
力する。データはバス109とラッチ107、108を
経由して取込まれ、演算結果はバス110に出力され
る。またフラグ生成情報はラッチ106で一旦保持され
る。ラッチ106に保持されたフラグ生成情報は4ビッ
トからなり、それぞれ、演算実行時にキャリーが発生し
たことを示すキャリー情報303、演算実行時にオーバ
ーフローが発生したことを示すオーバーフロー情報30
4、演算結果が負であることを示すネガティブ情報30
5、演算結果がゼロであることを示すゼロ情報305を
示している。
102より出力されたフラグ更新許可信号307、cmp
命令指示信号308の2つの制御信号に従って、演算器
群104およびラッチ106より出力するフラグ生成情
報303〜306に基づき、演算フラグレジスタの6ビ
ットの何れかの演算フラグを生成し更新する。図3は、
図2の演算フラグ生成手段105の内部構成を示すブロ
ック図である。
201〜206、ANDゲート207〜208、反転ゲ
ート209より構成されている。ラッチ201〜206
は、それぞれ演算フラグレジスタのCフラグ、Vフラ
グ、Nフラグ、Zフラグ、CAフラグ、OVフラグを保
持する。各ラッチはイネーブル端子(図3における”
E”)を有しており、クロック210の立ち上がり時
に、イネーブル端子が”1”の場合のみデータをラッチ
する。
号307が有効でかつ、cmp命令指示信号308が有効
でない場合に、ラッチ205、ラッチ206をイネーブ
ルにする信号を出力する。すなわち、演算フラグを更新
する命令でかつ、cmp命令でない場合、即ちand命令もし
くはsub命令の場合に、CAフラグ、OVフラグを更新
するように信号を出力する。
号307が有効でかつ、cmp命令指示信号308も有効
である場合に、ラッチ201〜204をイネーブルにす
る信号を出力する。すなわち、cmp命令の場合に、Cフ
ラグ、Vフラグ、Nフラグ、Zフラグを更新するように
信号を出力する。反転ゲート209は、cmp命令指示信
号308が有効な間、ANDゲート207が出力するラ
ッチ205、ラッチ206をイネーブルにする信号を抑
止する。
タ入力として、Cフラグ309を出力する。ラッチ20
2はオーバーフロー情報304をデータ入力として、V
フラグ310を出力する。ラッチ203はネガティブ情
報305をデータ入力として、Nフラグ311を出力す
る。ラッチ204はゼロ情報305をデータ入力とし
て、Zフラグ312を出力する。ラッチ205はキャリ
ー情報303をデータ入力として、CAフラグ313を
出力する。ラッチ206はオーバーフロー情報304を
データ入力として、OVフラグ314を出力する。
いて、その動作を説明する。図4は、本情報処理装置で
図1(a)に示す命令のうち、「add D,A,B」、「cmp
A,B」、「mov (A),B」、「sub D,A,B」を順に実行した
場合のタイミングチャートを示す。図中のT1〜T8
は、それぞれ1マシンサイクルの時間を示しており、時
刻順にT1から順にT2、T3、T4、T5、T6、T
7、T8としている。
の動作を説明する。マシンサイクルT1において、命令
「add D,A,B」が命令レジスタ101にラッチされ、命
令解読器102で解読される。解読している命令のOPコ
ードが「add」であるので、命令解読器102は、演算
器群104に対して、加算を行うよう各種制御信号を出
力する。また、解読している命令のオペランドが
「D」、「A」、「B」であるので、命令解読器102
は、レジスタファイル103に対して、レジスタA、レ
ジスタBの内容を演算器群104に入力し、演算終了後
に演算結果をレジスタDに書き込むよう各種制御信号を
出力する。
04は、加算を行い、演算結果、およびフラグ生成情報
を出力する。マシンサイクルT3において、演算フラグ
生成手段105は、命令解読器102が出力したフラグ
更新許可信号307とcmp命令指示信号308とを入力
し、どの演算フラグを更新するかを判断する。この時、
命令解読器102で解読した命令は「add」であり、こ
の命令はフラグを更新する命令であるので、フラグ更新
許可信号307は有効となっている。また、この命令は
cmp命令ではないので、cmp命令指示信号308は有効に
なっていない。このため、ANDゲート207の出力
が”1”、ANDゲート208の出力が”0”となり、
CAフラグ、OVフラグを保持するラッチ205、ラッ
チ206のみがイネーブルになる。
ック立ち上がりで、ラッチ205、ラッチ206がイネ
ーブルになっているので、フラグ生成情報のキャリー情
報303、オーバーフロー情報304をラッチ205、
ラッチ206にラッチする。これにより、「add D,A,
B」命令実行時には、演算フラグレジスタのCAフラ
グ、OVフラグのみが更新され、Cフラグ、Vフラグ、
Nフラグ、Zフラグは更新されない。
動作を説明する。マシンサイクルT2において、命令
「cmp A,B」が命令レジスタ101にラッチされ、命令
解読器102で解読される。解読している命令のOPコー
ドが「cmp」であるので、命令解読器102は、演算器
群104に対して、減算を行うよう各種制御信号を出力
する。また、解読している命令のオペランドが「A」、
「B」であるので、命令解読器102は、レジスタファ
イル103に対して、レジスタA、レジスタBの内容を演
算器群104に入力し、演算終了後に演算結果を何れの
レジスタにも書き込まないよう各種制御信号を出力す
る。
04は、減算を行い、フラグ生成情報を出力する。マシ
ンサイクルT4において、演算フラグ生成手段105
は、命令解読器102が出力したフラグ更新許可信号3
07とcmp命令指示信号308を入力し、どの演算フラ
グを更新するかを判断する。この時、命令解読器102
で解読した命令は「cmp」であり、この命令はフラグを
更新する命令であるので、フラグ更新許可信号307は
有効となっている。また、この命令はcmp命令であるの
で、cmp命令指示信号308も有効になっている。この
ため、ANDゲート207の出力が”0”、ANDゲー
ト208の出力が”1”となり、Cフラグ、Vフラグ、
Nフラグ、Zフラグを保持するラッチ201〜204の
みがイネーブルになる。
ック立ち上がりで、ラッチ201〜204がイネーブル
になっているので、フラグ生成情報のキャリー情報30
3、オーバーフロー情報304、ネガティブ情報30
5、ゼロ情報306をラッチ201、ラッチ202、ラ
ッチ203、ラッチ204にラッチする。これにより、
「cmp A,B」命令実行時には、演算フラグレジスタのC
フラグ、Vフラグ、Nフラグ、Zフラグのみが更新さ
れ、CAフラグ、OVフラグは更新されない。
た場合の動作を説明する。マシンサイクルT3におい
て、命令「mov (A),B」が命令レジスタ101にラッチ
され、命令解読器102で解読される。解読している命
令のOPコードが「mov」であるので、命令解読器102
は、演算器群104に対して、アドレス計算を行うよう
各種制御信号を出力する。また、解読している命令のオ
ペランドが「(A)」、「B」であるので、命令解読器10
2は、レジスタファイル103に対して、レジスタAの
内容を演算器群104に入力し、ロード終了後にロード
結果をレジスタBに書き込むよう各種制御信号を出力す
る。
04は、アドレス計算を行い、フラグ生成情報を出力す
る。マシンサイクルT5において、演算フラグ生成手段
105は、命令解読器102が出力したフラグ更新許可
信号307とcmp命令指示信号308を入力し、どの演
算フラグを更新するかを判断する。この時、命令解読器
102で解読した命令は「mov」であり、この命令はフ
ラグを更新しない命令であるので、フラグ更新許可信号
307は有効になっていない。また、この命令はcmp命
令ではないので、cmp命令指示信号308も有効になっ
ていない。このため、ANDゲート207の出力が”
0”、ANDゲート208の出力が”0”となり、Cフ
ラグ、Vフラグ、Nフラグ、Zフラグ、CAフラグ、O
Vフラグを保持するラッチ201〜206の何れもイネ
ーブルになっていない。
ック立ち上がりで、ラッチ201〜206の何れもがイ
ネーブルになっていないので、フラグ生成情報はラッチ
201〜206の何れにもラッチしない。これにより、
「mov (A),B」命令実行時には、演算フラグレジスタの
Cフラグ、Vフラグ、Nフラグ、Zフラグ、CAフラ
グ、OVフラグの何れもが更新されない。
合の動作を説明する。マシンサイクルT4において、命
令「sub D,A,B」が命令レジスタ101にラッチされ、
命令解読器102で解読される。解読している命令のOP
コードが「sub」であるので、命令解読器102は、演
算器群104に対して、減算を行うよう各種制御信号を
出力する。また、解読している命令のオペランドが
「D」、「A」、「B」であるので、命令解読器102
は、レジスタファイル103に対して、レジスタA、レ
ジスタBの内容を演算器群104に入力し、演算終了後
に演算結果をレジスタDに書き込むよう各種制御信号を
出力する。
04は、減算を行い、演算結果、およびフラグ生成情報
を出力する。マシンサイクルT6において、演算フラグ
生成手段105は、命令解読器102が出力したフラグ
更新許可信号307とcmp命令指示信号308を入力
し、どの演算フラグを更新するかを判断する。この時、
命令解読器102で解読した命令は「sub」であり、こ
の命令はフラグを更新する命令であるので、フラグ更新
許可信号307は有効となっている。また、この命令は
cmp命令ではないので、cmp命令指示信号308は有効に
なっていない。このため、ANDゲート207の出力
が”1”、ANDゲート208の出力が”0”となり、
CAフラグ、OVフラグを保持するラッチ205、ラッ
チ206のみがイネーブルになる。
ック立ち上がりで、ラッチ205、ラッチ206がイネ
ーブルになっているので、フラグ生成情報のキャリー情
報303、オーバーフロー情報304をラッチ205、
ラッチ206にラッチする。これにより、「sub D,A,
B」命令実行時には、演算フラグレジスタのCAフラ
グ、OVフラグのみが更新され、Cフラグ、Vフラグ、
Nフラグ、Zフラグは更新されない。
ば、通常、大小関係や一致関係を判断する時に参照する
Nフラグ、Zフラグの更新をcmp命令のみに限定するこ
とにより、従来の情報処理装置における命令のように1
つの演算について複数のフラグ更新方法を指定する必要
がなくなり、命令割付けにおいてオペレーションを指定
するフィールドに数多くのオペレーションを割り付ける
ことができる。また、命令の長さの増加を抑えることが
でき、プログラムサイズ(コードサイズ)を小さくする
ことができる。
かは、解読している命令がcmp命令であるかを区別する
だけでよいので、各命令毎にどの演算フラグレジスタを
更新するかを指定しなければならない従来の技術に比べ
て、命令解読器などは少ないハードウェア量で済む。そ
の上、もともと命令解読器では演算器を制御する各種制
御信号を生成する目的で、解読中の命令がcmp命令であ
ることを識別する回路は設けられているためその信号を
利用すればよく、フラグ生成の目的で新たに信号を生成
する必要がない。従って、極めて少ないハードウェア量
で済むので、ハードウェア量を削減できる。
実施の形態に基づいて説明したが、本発明はこれら実施
の形態に限られないことは勿論である。即ち、 (1)上記の実施の形態では、cmp命令実行時に更新す
る演算フラグをCフラグ、Vフラグ、Nフラグ、Zフラ
グの4種類、cmp命令以外のフラグ更新を行う命令の実
行時に更新する演算フラグをCAフラグ、OVフラグの
2種類としているが、後者の命令実行時に更新する演算
フラグの種類をcmp命令と同様に4種類としてもよい。
このようにしても、命令解読器は、実施の形態と同様に
解読している命令がcmp命令であるかを判断するだけな
ので、命令解読器のハードウェア量は増大しない。
ることは実用上好適な形態である。何故ならば、演算キ
ャリーと演算オーバーフロー(例えば加算においては、
それぞれ符号なし桁あふれと符号付き桁あふれを意味す
る)が生じたか否かは比較命令では検出できないからで
ある。 (2)また上記の実施の形態では、、CAフラグおよび
OVフラグを更新する命令がadd命令とsub命令との2つ
であるが、他のcmp命令以外の命令、例えば乗算や除算
などの算術演算命令、論理和や論理積などの論理演算命
令、シフト命令、ビット操作命令などを加えてもよい。 (3)また上記の実施の形態では、Cフラグ、Vフラ
グ、NフラグおよびZフラグを更新する命令をcmp命
令、CAフラグおよびOVフラグを更新する命令をadd
命令とsub命令としているが、これらの命令の組合せは
何でもよく、前者4つのフラグを更新する命令と後者2
つのフラグを更新する命令とが排他的な関係にあれば同
様に目的を達成することができる。
うでない命令とに分けることは実用上好適な形態であ
る。比較を行う命令には他に、ビット比較命令、ビット
フィールド比較命令、ストリング比較命令などがある。
比較を行う命令とそれ以外に分ける理由は、上記の通り
比較とそれ以外とでフラグの機能が異なる場合があるか
らでる。 (4)また、上記実施の形態では、add命令やcmp命令の
ように1つの命令で1つの操作を定義する命令を実行し
ているが、命令のフォーマットを指定するフォーマット
コードが置かれるフォーマットフィールドと、並列実行
させるオペレーションを指定する複数のオペレーション
フィールドとを含むいわゆるVLIW(Very Long Inst
ruction Word)方式の命令を実行するようにしてもよ
い。VLIW形式の命令に基づく情報処理装置では命令
のスケジューリングによる命令並列度が性能決定上、極
めて重要な要素になるため、本発明によって達成される
ところのコスト上昇を伴わない演算フラグの多重化は極
めて有用である。
の情報処理装置は、複数の命令を格納する記憶装置から
命令を読出す命令読出し手段と、前記命令読出し手段に
より読出された命令を解読する解読手段と、前記命令解
読手段に従って命令を実行する実行手段と、前記実行手
段における実行結果の状態を表す情報の格納が択一的に
行われ、互いに重複する情報を含む第1と第2のフラグ
レジスタと、前記解読手段により第1の命令が解読され
た場合にのみ、前記実行手段における前記第1の命令の
実行結果の状態を表す情報を前記第1のフラグレジスタ
に格納するように制御し、前記解読手段により前記第1
の命令以外の命令が解読された場合には、前記実行手段
における該命令の実行結果の状態を表す情報を前記第2
のフラグレジスタに格納するように制御するフラグ生成
手段とを備えることを特徴とする。
格納されるフラグレジスタは命令によって一意に決ま
る。従って、各命令でどの演フラグレジスタを更新する
かを指定する必要がなく、機械語命令のオペレーション
指定フィールドが少なくでき、コードサイズの増加を抑
制することができるという効果がある。また、第1の命
令であるか否かを判断するだけで、更新するフラグレジ
スタを特定できるので、解読手段のハードウェアは増大
せずに低コストで実現できるという効果がある。
であるとしてもよい。上記の各情報処理装置において、
前記第2のフラグレジスタに含み得る情報は全て前記第
1のフラグレジスタに含まれ、かつ、前記第1のフラグ
レジスタには前記第2のフラグレジスタに含まれない情
報を含み得るとしても良い。こうすれば、上記の効果に
加えて、第2のフラグレジスタの演算フラグの種類が少
なくでき、フラグレジスタ自身のハードウェア量を削減
することができる。
得る情報は、前記実行手段においてキャリーが発生した
ことを示すキャリー情報と、前記実行手段においてオー
バーフローが発生したことを示すオーバーフロー情報と
であるとしてもよい。こうすれば、比較を行う命令では
検出できない演算キャリーおよび演算オーバーフローが
生じたかの情報のみが第2のフラグレジスタに含まれる
ため効率がよい。
う命令であり、前記第1のフラグレジスタに含み得る情
報は、前記キャリー情報と、前記オーバーフロー情報
と、前記実行手段における実行結果の正負を示す符号情
報と、前記実行手段における実行結果がゼロであること
を示すゼロ情報とであるとしてもよい。また上記の各情
報処理装置において、前記命令は、命令のフォーマット
を指定するフォーマットコードが置かれるフォーマット
フィールドと、並列実行させるオペレーションを指定す
る複数のオペレーションフィールドとを含むVLIW方
式の命令であるとしてもよい。
く情報処理装置では、ハードウェアを増大させることな
く複数のフラグレジスタを扱うことができ、命令のスケ
ジューリングにより高い命令並列度が達成される。以上
のように本発明の技術の実用的価値は大きい。
命令仕様と、演算フラグを格納するフラグレジスタの構
成を示す図
成を示すブロック図
の内部構成を示すブロック図
B」、「mov (A),B」、「sub D,A,B」の順に実行した場
合のタイミングチャート
算フラグレジスタのレジスタ構成を示す図
Claims (6)
- 【請求項1】 複数の命令を格納する記憶装置から命令
を読出す命令読出し手段と、 前記命令読出し手段により読出された命令を解読する解
読手段と、 前記命令解読手段に従って命令を実行する実行手段と、 前記実行手段における実行結果の状態を表す情報の格納
が択一的に行われ、互いに重複する情報を含む第1と第
2のフラグレジスタと、 前記解読手段により第1の命令が解読された場合にの
み、前記実行手段における前記第1の命令の実行結果の
状態を表す情報を前記第1のフラグレジスタに格納する
ように制御し、前記解読手段により前記第1の命令以外
の命令が解読された場合には、前記実行手段における該
命令の実行結果の状態を表す情報を前記第2のフラグレ
ジスタに格納するように制御するフラグ生成手段とを備
えることを特徴とする情報処理装置。 - 【請求項2】 前記第1の命令は、比較を行う命令であ
ることを特徴とする請求項1記載の情報処理装置。 - 【請求項3】 前記第2のフラグレジスタに含み得る情
報は全て前記第1のフラグレジスタに含まれ、 かつ、前記第1のフラグレジスタには前記第2のフラグ
レジスタに含まれない情報を含み得ることを特徴とする
請求項1または2記載の情報処理装置。 - 【請求項4】 前記第2のフラグレジスタに含み得る情
報は、前記実行手段においてキャリーが発生したことを
示すキャリー情報と、前記実行手段においてオーバーフ
ローが発生したことを示すオーバーフロー情報とである
ことを特徴とする請求項3記載の情報処理装置。 - 【請求項5】 前記第1の命令は、比較を行う命令であ
り、 前記第1のフラグレジスタに含み得る情報は、前記キャ
リー情報と、前記オーバーフロー情報と、前記実行手段
における実行結果の正負を示す符号情報と、前記実行手
段における実行結果がゼロであることを示すゼロ情報と
であることを特徴とする請求項4記載の情報処理装置。 - 【請求項6】 前記命令は、命令のフォーマットを指定
するフォーマットコードが置かれるフォーマットフィー
ルドと、並列実行させるオペレーションを指定する複数
のオペレーションフィールドとを含むVLIW方式の命
令であることを特徴とする請求項1から5のいずれか記
載の情報処理装置。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP9234357A JPH1173301A (ja) | 1997-08-29 | 1997-08-29 | 情報処理装置 |
US09/143,943 US6282632B1 (en) | 1997-08-29 | 1998-08-31 | Information processor having duplicate operation flags |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP9234357A JPH1173301A (ja) | 1997-08-29 | 1997-08-29 | 情報処理装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
JPH1173301A true JPH1173301A (ja) | 1999-03-16 |
Family
ID=16969746
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP9234357A Pending JPH1173301A (ja) | 1997-08-29 | 1997-08-29 | 情報処理装置 |
Country Status (2)
Country | Link |
---|---|
US (1) | US6282632B1 (ja) |
JP (1) | JPH1173301A (ja) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7782873B2 (en) * | 2005-08-23 | 2010-08-24 | Slt Logic, Llc | Omni-protocol engine for reconfigurable bit-stream processing in high-speed networks |
US8189599B2 (en) * | 2005-08-23 | 2012-05-29 | Rpx Corporation | Omni-protocol engine for reconfigurable bit-stream processing in high-speed networks |
US8825715B1 (en) * | 2010-10-29 | 2014-09-02 | Google Inc. | Distributed state/mask sets |
US11269661B2 (en) * | 2019-03-04 | 2022-03-08 | Micron Technology, Inc. | Providing, in a configuration packet, data indicative of data flows in a processor with a data flow manager |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4809169A (en) * | 1986-04-23 | 1989-02-28 | Advanced Micro Devices, Inc. | Parallel, multiple coprocessor computer architecture having plural execution modes |
US5125092A (en) * | 1989-01-09 | 1992-06-23 | International Business Machines Corporation | Method and apparatus for providing multiple condition code fields to to allow pipelined instructions contention free access to separate condition codes |
JP2832899B2 (ja) * | 1993-05-31 | 1998-12-09 | 松下電器産業株式会社 | データ処理装置およびデータ処理方法 |
US5625835A (en) * | 1995-05-10 | 1997-04-29 | International Business Machines Corporation | Method and apparatus for reordering memory operations in a superscalar or very long instruction word processor |
US5805850A (en) * | 1997-01-30 | 1998-09-08 | International Business Machines Corporation | Very long instruction word (VLIW) computer having efficient instruction code format |
-
1997
- 1997-08-29 JP JP9234357A patent/JPH1173301A/ja active Pending
-
1998
- 1998-08-31 US US09/143,943 patent/US6282632B1/en not_active Expired - Lifetime
Also Published As
Publication number | Publication date |
---|---|
US6282632B1 (en) | 2001-08-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US6334176B1 (en) | Method and apparatus for generating an alignment control vector | |
US4449184A (en) | Extended address, single and multiple bit microprocessor | |
US5996057A (en) | Data processing system and method of permutation with replication within a vector register file | |
KR100571325B1 (ko) | 어레이 처리 동작 | |
KR100571322B1 (ko) | 파이프라인식 프로세서에서의 예외 취급 방법, 장치 및시스템 | |
JP2818249B2 (ja) | 電子計算機 | |
US5896529A (en) | Branch prediction based on correlation between sets of bunches of branch instructions | |
US4539635A (en) | Pipelined digital processor arranged for conditional operation | |
US6338134B1 (en) | Method and system in a superscalar data processing system for the efficient processing of an instruction by moving only pointers to data | |
US7546442B1 (en) | Fixed length memory to memory arithmetic and architecture for direct memory access using fixed length instructions | |
EP3166015A1 (en) | Fetch ahead branch target buffer | |
EP0094535B1 (en) | Pipe-line data processing system | |
EP0093430A2 (en) | Pipeline data processing system | |
CN111782270A (zh) | 一种数据处理方法及装置、存储介质 | |
US8285976B2 (en) | Method and apparatus for predicting branches using a meta predictor | |
US5349671A (en) | Microprocessor system generating instruction fetch addresses at high speed | |
US4028670A (en) | Fetch instruction for operand address calculation | |
US20020078333A1 (en) | Resource efficient hardware loops | |
JPH1173301A (ja) | 情報処理装置 | |
US7415599B1 (en) | Instruction operation and operand memory location determined based on preceding instruction operation and operand memory location | |
KR100328141B1 (ko) | 적게변경된현존하는하드웨어에의해구현되는2진승산 | |
US6886091B1 (en) | Replacing VLIW operation with equivalent operation requiring fewer issue slots | |
JP2781779B2 (ja) | 分岐制御回路 | |
JPH04168526A (ja) | ループ制御方式 | |
JPH06162067A (ja) | ベクトル命令制御装置および制御方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20040830 |
|
RD01 | Notification of change of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7421 Effective date: 20040914 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20041005 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20050214 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20050222 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20050621 |