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
Application number
JP9234357A
Other languages
English (en)
Inventor
Nobuo Higaki
信生 桧垣
Tetsuya Tanaka
哲也 田中
Shuichi Takayama
秀一 高山
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.)
Panasonic Holdings Corp
Original Assignee
Matsushita Electric Industrial Co 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 Matsushita Electric Industrial Co Ltd filed Critical Matsushita Electric Industrial Co Ltd
Priority to JP9234357A priority Critical patent/JPH1173301A/ja
Priority to US09/143,943 priority patent/US6282632B1/en
Publication of JPH1173301A publication Critical patent/JPH1173301A/ja
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/30007Arrangements for executing specific machine instructions to perform operations on data operands
    • G06F9/30021Compare instructions, e.g. Greater-Than, Equal-To, MINMAX
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/3005Arrangements for executing specific machine instructions to perform operations for flow control
    • G06F9/30058Conditional branch instructions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30094Condition code generation, e.g. Carry, Zero flag

Abstract

(57)【要約】 【課題】 本発明は、複数の演算フラグレジスタを持つ
場合でも、オペレーション指定フィールドを増加させず
に、コードサイズの増加を抑止し、かつ、命令解読器の
ハードウェア量の増加を抑止する情報処理装置を提供す
ることを目的とする。 【解決手段】 ANDゲート207〜208、反転ゲー
ト209は、命令解読器102が出力するフラグを更新
する命令であること示す信号と比較命令であることを示
す信号に従って、選択的にラッチ201〜206をイネ
ーブルにする。これにより、各命令でどの演算フラグレ
ジスタを更新するかを指定する必要がなく、コードサイ
ズの増加を抑制することができ、かつ比較命令であるか
を判断するだけで、更新する演算フラグレジスタを特定
できるので、命令解読器のハードウェアは増大せずに低
コストで実現できる。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、複数の演算フラグ
レジスタに対し、演算フラグを更新する情報処理装置に
関する。
【0002】
【従来の技術】近年、マイクロコンピュータなどの情報
処理装置の処理能力が飛躍的に向上し、あらゆる分野で
用いられいる。一般に情報処理装置では、複数の命令を
並列に実行させることにより、処理能力を向上させてい
る。
【0003】従来の情報処理装置では、演算フラグを生
成し演算フラグレジスタを更新した後、その演算フラグ
を条件分岐命令などで使用し必要なくなるまで、演算フ
ラグを破壊する後続の命令を実行しないように、命令を
スケジューリング(並び換え)しなければならなかっ
た。しかしながら、処理能力の向上のために並列命令実
行を行うと、この命令スケジューリングが極めて困難と
なる。そこで、演算フラグレジスタを複数個持ち、各命
令毎にどの演算フラグレジスタの演算フラグを更新させ
るかを指定することにより、演算フラグを破壊しないよ
うに容易に命令スケジューリングできるようにした情報
処理装置が提案されている。例えば、PowerPC601 User'
s Manual、IBM Microelectronics参照。
【0004】図5は従来の情報処理装置の加算命令仕
様、および演算フラグレジスタのレジスタ構成を示す図
である。この情報処理装置は、同じ演算を行う命令が4
種類ずつ(図5では加算命令のみを示している)存在
し、ニモニックにおいてピリオド”.”が付加されてい
る命令は、演算結果の大小およびゼロを示すCR内の演
算フラグを更新し、アルファベット”o”が付加されて
いる命令はキャリー、オーバーフローを示すXER内の
演算フラグを更新する。
【0005】このように、容易に命令スケジューリング
できるように、各命令において、どの演算フラグレジス
タを更新するかを直交して指定するようにしていた。
【0006】
【発明が解決しようとする課題】しかしながら上記従来
技術によれば、各命令に対して、どの演算フラグレジス
タを更新するかを指定しなければならず、命令割付けに
おいてオペレーションを指定するフィールドが長くな
り、コードサイズが増加するという課題を有していた。
【0007】また、各命令において、複数の演算フラグ
更新方法が存在するために、命令解読器のハードウェア
量が増加するという課題も有していた。本発明はかかる
課題に鑑み、複数の演算フラグレジスタを持つ場合で
も、オペレーション指定フィールドを増加させずに、コ
ードサイズの増加を抑止し、かつ、命令解読器のハード
ウェア量の増加を抑止する情報処理装置を提供すること
を目的とする。
【0008】
【課題を解決するための手段】この課題を解決するため
本発明の情報処理装置は、複数の命令を格納する記憶装
置から命令を読出す命令読出し手段と、前記命令読出し
手段により読出された命令を解読する解読手段と、前記
命令解読手段に従って命令を実行する実行手段と、前記
実行手段における実行結果の状態を表す情報の格納が択
一的に行われ、互いに重複する情報を含む第1と第2の
フラグレジスタと、前記解読手段により第1の命令が解
読された場合にのみ、前記実行手段における前記第1の
命令の実行結果の状態を表す情報を前記第1のフラグレ
ジスタに格納するように制御し、前記解読手段により前
記第1の命令以外の命令が解読された場合には、前記実
行手段における該命令の実行結果の状態を表す情報を前
記第2のフラグレジスタに格納するように制御するフラ
グ生成手段とを備えることを特徴とする。
【0009】これにより、実行結果の状態を表す情報が
格納されるフラグレジスタは命令によって一意に決ま
る。ここで前記第1の命令は、比較を行う命令であると
してもよい。上記の各情報処理装置において、前記第2
のフラグレジスタに含み得る情報は全て前記第1のフラ
グレジスタに含まれ、かつ、前記第1のフラグレジスタ
には前記第2のフラグレジスタに含まれない情報を含み
得るとしても良い。
【0010】さらに、前記第2のフラグレジスタに含み
得る情報は、前記実行手段においてキャリーが発生した
ことを示すキャリー情報と、前記実行手段においてオー
バーフローが発生したことを示すオーバーフロー情報と
であるとしてもよい。またさらに、前記第1の命令は、
比較を行う命令であり、前記第1のフラグレジスタに含
み得る情報は、前記キャリー情報と、前記オーバーフロ
ー情報と、前記実行手段における実行結果の正負を示す
符号情報と、前記実行手段における実行結果がゼロであ
ることを示すゼロ情報とであるとしてもよい。
【0011】また上記の各情報処理装置において、前記
命令は、命令のフォーマットを指定するフォーマットコ
ードが置かれるフォーマットフィールドと、並列実行さ
せるオペレーションを指定する複数のオペレーションフ
ィールドとを含むVLIW方式の命令であるとしてもよ
い。
【0012】
【発明の実施の形態】以下、本発明の実施の形態につい
て、図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の時分岐する条件分
岐命令を示す機械語命令である。
【0013】「add」、「sub」、「cmp」、「mov」、
「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」は分岐先アドレスを
示している。
【0014】図1(b)において、演算フラグレジスタ
(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命令では
いずれのフラグも更新されず、演算フラグレジスタは変
化しない。
【0015】図2は、本発明の実施の形態における情報
処理装置の主要部の構成を示すブロック図である。本情
報処理装置は、命令レジスタ101、命令解読器10
2、レジスタファイル103、演算器群104、演算フ
ラグ生成手段105、ラッチ106〜108、バス10
9〜110から構成されている。
【0016】命令レジスタ101は、メモリからフェッ
チされた命令を順次保持する。命令解読器102は、命
令レジスタ101に保持された命令を解読し、その命令
実行、および演算フラグ生成を制御する各種制御信号を
出力する。特に命令解読器102は、図1(a)に示し
たadd命令、sub命令およびcmp命令といった演算フラグ
を更新する命令の解読時には、演算フラグを更新するこ
とを許可するフラグ更新許可信号307を有効にし、cm
p命令解読時には、cmp命令であることを示すcmp命令指
示信号308を有効にし、演算フラグ更新を制御する。
【0017】レジスタファイル103は、32ビット長
の複数の汎用レジスタから構成され、命令解読器102
の制御に従って、レジスタに格納されたデータの読み出
しや、演算結果およびロードしたデータのレジスタへの
格納を行う。レジスタファイル103はバス109にデ
ータを出力し、バス110上のデータを取込む。演算器
群104は、複数の演算器を備え、命令解読器102の
制御に従って、命令のOPコードで指定された演算を行
い、同時に演算フラグ生成に必要なフラグ生成情報を出
力する。データはバス109とラッチ107、108を
経由して取込まれ、演算結果はバス110に出力され
る。またフラグ生成情報はラッチ106で一旦保持され
る。ラッチ106に保持されたフラグ生成情報は4ビッ
トからなり、それぞれ、演算実行時にキャリーが発生し
たことを示すキャリー情報303、演算実行時にオーバ
ーフローが発生したことを示すオーバーフロー情報30
4、演算結果が負であることを示すネガティブ情報30
5、演算結果がゼロであることを示すゼロ情報305を
示している。
【0018】演算フラグ生成手段105は、命令解読器
102より出力されたフラグ更新許可信号307、cmp
命令指示信号308の2つの制御信号に従って、演算器
群104およびラッチ106より出力するフラグ生成情
報303〜306に基づき、演算フラグレジスタの6ビ
ットの何れかの演算フラグを生成し更新する。図3は、
図2の演算フラグ生成手段105の内部構成を示すブロ
ック図である。
【0019】この演算フラグ生成手段105は、ラッチ
201〜206、ANDゲート207〜208、反転ゲ
ート209より構成されている。ラッチ201〜206
は、それぞれ演算フラグレジスタのCフラグ、Vフラ
グ、Nフラグ、Zフラグ、CAフラグ、OVフラグを保
持する。各ラッチはイネーブル端子(図3における”
E”)を有しており、クロック210の立ち上がり時
に、イネーブル端子が”1”の場合のみデータをラッチ
する。
【0020】ANDゲート207は、フラグ更新許可信
号307が有効でかつ、cmp命令指示信号308が有効
でない場合に、ラッチ205、ラッチ206をイネーブ
ルにする信号を出力する。すなわち、演算フラグを更新
する命令でかつ、cmp命令でない場合、即ちand命令もし
くはsub命令の場合に、CAフラグ、OVフラグを更新
するように信号を出力する。
【0021】ANDゲート208は、フラグ更新許可信
号307が有効でかつ、cmp命令指示信号308も有効
である場合に、ラッチ201〜204をイネーブルにす
る信号を出力する。すなわち、cmp命令の場合に、Cフ
ラグ、Vフラグ、Nフラグ、Zフラグを更新するように
信号を出力する。反転ゲート209は、cmp命令指示信
号308が有効な間、ANDゲート207が出力するラ
ッチ205、ラッチ206をイネーブルにする信号を抑
止する。
【0022】ラッチ201はキャリー情報303をデー
タ入力として、Cフラグ309を出力する。ラッチ20
2はオーバーフロー情報304をデータ入力として、V
フラグ310を出力する。ラッチ203はネガティブ情
報305をデータ入力として、Nフラグ311を出力す
る。ラッチ204はゼロ情報305をデータ入力とし
て、Zフラグ312を出力する。ラッチ205はキャリ
ー情報303をデータ入力として、CAフラグ313を
出力する。ラッチ206はオーバーフロー情報304を
データ入力として、OVフラグ314を出力する。
【0023】以上のように構成された情報処理装置につ
いて、その動作を説明する。図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としている。
【0024】まず、命令「add D,A,B」を実行した場合
の動作を説明する。マシンサイクルT1において、命令
「add D,A,B」が命令レジスタ101にラッチされ、命
令解読器102で解読される。解読している命令のOPコ
ードが「add」であるので、命令解読器102は、演算
器群104に対して、加算を行うよう各種制御信号を出
力する。また、解読している命令のオペランドが
「D」、「A」、「B」であるので、命令解読器102
は、レジスタファイル103に対して、レジスタA、レ
ジスタBの内容を演算器群104に入力し、演算終了後
に演算結果をレジスタDに書き込むよう各種制御信号を
出力する。
【0025】マシンサイクルT2において、演算器群1
04は、加算を行い、演算結果、およびフラグ生成情報
を出力する。マシンサイクルT3において、演算フラグ
生成手段105は、命令解読器102が出力したフラグ
更新許可信号307とcmp命令指示信号308とを入力
し、どの演算フラグを更新するかを判断する。この時、
命令解読器102で解読した命令は「add」であり、こ
の命令はフラグを更新する命令であるので、フラグ更新
許可信号307は有効となっている。また、この命令は
cmp命令ではないので、cmp命令指示信号308は有効に
なっていない。このため、ANDゲート207の出力
が”1”、ANDゲート208の出力が”0”となり、
CAフラグ、OVフラグを保持するラッチ205、ラッ
チ206のみがイネーブルになる。
【0026】マシンサイクルT4において、T4のクロ
ック立ち上がりで、ラッチ205、ラッチ206がイネ
ーブルになっているので、フラグ生成情報のキャリー情
報303、オーバーフロー情報304をラッチ205、
ラッチ206にラッチする。これにより、「add D,A,
B」命令実行時には、演算フラグレジスタのCAフラ
グ、OVフラグのみが更新され、Cフラグ、Vフラグ、
Nフラグ、Zフラグは更新されない。
【0027】次に、命令「cmp A,B」を実行した場合の
動作を説明する。マシンサイクルT2において、命令
「cmp A,B」が命令レジスタ101にラッチされ、命令
解読器102で解読される。解読している命令のOPコー
ドが「cmp」であるので、命令解読器102は、演算器
群104に対して、減算を行うよう各種制御信号を出力
する。また、解読している命令のオペランドが「A」、
「B」であるので、命令解読器102は、レジスタファ
イル103に対して、レジスタA、レジスタBの内容を演
算器群104に入力し、演算終了後に演算結果を何れの
レジスタにも書き込まないよう各種制御信号を出力す
る。
【0028】マシンサイクルT3において、演算器群1
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の
みがイネーブルになる。
【0029】マシンサイクルT5において、T5のクロ
ック立ち上がりで、ラッチ201〜204がイネーブル
になっているので、フラグ生成情報のキャリー情報30
3、オーバーフロー情報304、ネガティブ情報30
5、ゼロ情報306をラッチ201、ラッチ202、ラ
ッチ203、ラッチ204にラッチする。これにより、
「cmp A,B」命令実行時には、演算フラグレジスタのC
フラグ、Vフラグ、Nフラグ、Zフラグのみが更新さ
れ、CAフラグ、OVフラグは更新されない。
【0030】引き続いて、命令「mov (A),B」を実行し
た場合の動作を説明する。マシンサイクルT3におい
て、命令「mov (A),B」が命令レジスタ101にラッチ
され、命令解読器102で解読される。解読している命
令のOPコードが「mov」であるので、命令解読器102
は、演算器群104に対して、アドレス計算を行うよう
各種制御信号を出力する。また、解読している命令のオ
ペランドが「(A)」、「B」であるので、命令解読器10
2は、レジスタファイル103に対して、レジスタAの
内容を演算器群104に入力し、ロード終了後にロード
結果をレジスタBに書き込むよう各種制御信号を出力す
る。
【0031】マシンサイクルT4において、演算器群1
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の何れもイネ
ーブルになっていない。
【0032】マシンサイクルT6において、T6のクロ
ック立ち上がりで、ラッチ201〜206の何れもがイ
ネーブルになっていないので、フラグ生成情報はラッチ
201〜206の何れにもラッチしない。これにより、
「mov (A),B」命令実行時には、演算フラグレジスタの
Cフラグ、Vフラグ、Nフラグ、Zフラグ、CAフラ
グ、OVフラグの何れもが更新されない。
【0033】最後に、命令「sub D,A,B」を実行した場
合の動作を説明する。マシンサイクルT4において、命
令「sub D,A,B」が命令レジスタ101にラッチされ、
命令解読器102で解読される。解読している命令のOP
コードが「sub」であるので、命令解読器102は、演
算器群104に対して、減算を行うよう各種制御信号を
出力する。また、解読している命令のオペランドが
「D」、「A」、「B」であるので、命令解読器102
は、レジスタファイル103に対して、レジスタA、レ
ジスタBの内容を演算器群104に入力し、演算終了後
に演算結果をレジスタDに書き込むよう各種制御信号を
出力する。
【0034】マシンサイクルT5において、演算器群1
04は、減算を行い、演算結果、およびフラグ生成情報
を出力する。マシンサイクルT6において、演算フラグ
生成手段105は、命令解読器102が出力したフラグ
更新許可信号307とcmp命令指示信号308を入力
し、どの演算フラグを更新するかを判断する。この時、
命令解読器102で解読した命令は「sub」であり、こ
の命令はフラグを更新する命令であるので、フラグ更新
許可信号307は有効となっている。また、この命令は
cmp命令ではないので、cmp命令指示信号308は有効に
なっていない。このため、ANDゲート207の出力
が”1”、ANDゲート208の出力が”0”となり、
CAフラグ、OVフラグを保持するラッチ205、ラッ
チ206のみがイネーブルになる。
【0035】マシンサイクルT7において、T7のクロ
ック立ち上がりで、ラッチ205、ラッチ206がイネ
ーブルになっているので、フラグ生成情報のキャリー情
報303、オーバーフロー情報304をラッチ205、
ラッチ206にラッチする。これにより、「sub D,A,
B」命令実行時には、演算フラグレジスタのCAフラ
グ、OVフラグのみが更新され、Cフラグ、Vフラグ、
Nフラグ、Zフラグは更新されない。
【0036】以上のように本発明の実施の形態によれ
ば、通常、大小関係や一致関係を判断する時に参照する
Nフラグ、Zフラグの更新をcmp命令のみに限定するこ
とにより、従来の情報処理装置における命令のように1
つの演算について複数のフラグ更新方法を指定する必要
がなくなり、命令割付けにおいてオペレーションを指定
するフィールドに数多くのオペレーションを割り付ける
ことができる。また、命令の長さの増加を抑えることが
でき、プログラムサイズ(コードサイズ)を小さくする
ことができる。
【0037】また、どの演算フラグレジスタを更新する
かは、解読している命令がcmp命令であるかを区別する
だけでよいので、各命令毎にどの演算フラグレジスタを
更新するかを指定しなければならない従来の技術に比べ
て、命令解読器などは少ないハードウェア量で済む。そ
の上、もともと命令解読器では演算器を制御する各種制
御信号を生成する目的で、解読中の命令がcmp命令であ
ることを識別する回路は設けられているためその信号を
利用すればよく、フラグ生成の目的で新たに信号を生成
する必要がない。従って、極めて少ないハードウェア量
で済むので、ハードウェア量を削減できる。
【0038】以上、本発明に係るプロセッサについて、
実施の形態に基づいて説明したが、本発明はこれら実施
の形態に限られないことは勿論である。即ち、 (1)上記の実施の形態では、cmp命令実行時に更新す
る演算フラグをCフラグ、Vフラグ、Nフラグ、Zフラ
グの4種類、cmp命令以外のフラグ更新を行う命令の実
行時に更新する演算フラグをCAフラグ、OVフラグの
2種類としているが、後者の命令実行時に更新する演算
フラグの種類をcmp命令と同様に4種類としてもよい。
このようにしても、命令解読器は、実施の形態と同様に
解読している命令がcmp命令であるかを判断するだけな
ので、命令解読器のハードウェア量は増大しない。
【0039】特に、後者をCAフラグとOVフラグとす
ることは実用上好適な形態である。何故ならば、演算キ
ャリーと演算オーバーフロー(例えば加算においては、
それぞれ符号なし桁あふれと符号付き桁あふれを意味す
る)が生じたか否かは比較命令では検出できないからで
ある。 (2)また上記の実施の形態では、、CAフラグおよび
OVフラグを更新する命令がadd命令とsub命令との2つ
であるが、他のcmp命令以外の命令、例えば乗算や除算
などの算術演算命令、論理和や論理積などの論理演算命
令、シフト命令、ビット操作命令などを加えてもよい。 (3)また上記の実施の形態では、Cフラグ、Vフラ
グ、NフラグおよびZフラグを更新する命令をcmp命
令、CAフラグおよびOVフラグを更新する命令をadd
命令とsub命令としているが、これらの命令の組合せは
何でもよく、前者4つのフラグを更新する命令と後者2
つのフラグを更新する命令とが排他的な関係にあれば同
様に目的を達成することができる。
【0040】特に、cmp命令などの比較を行う命令とそ
うでない命令とに分けることは実用上好適な形態であ
る。比較を行う命令には他に、ビット比較命令、ビット
フィールド比較命令、ストリング比較命令などがある。
比較を行う命令とそれ以外に分ける理由は、上記の通り
比較とそれ以外とでフラグの機能が異なる場合があるか
らでる。 (4)また、上記実施の形態では、add命令やcmp命令の
ように1つの命令で1つの操作を定義する命令を実行し
ているが、命令のフォーマットを指定するフォーマット
コードが置かれるフォーマットフィールドと、並列実行
させるオペレーションを指定する複数のオペレーション
フィールドとを含むいわゆるVLIW(Very Long Inst
ruction Word)方式の命令を実行するようにしてもよ
い。VLIW形式の命令に基づく情報処理装置では命令
のスケジューリングによる命令並列度が性能決定上、極
めて重要な要素になるため、本発明によって達成される
ところのコスト上昇を伴わない演算フラグの多重化は極
めて有用である。
【0041】
【発明の効果】以上の説明から明らかなように、本発明
の情報処理装置は、複数の命令を格納する記憶装置から
命令を読出す命令読出し手段と、前記命令読出し手段に
より読出された命令を解読する解読手段と、前記命令解
読手段に従って命令を実行する実行手段と、前記実行手
段における実行結果の状態を表す情報の格納が択一的に
行われ、互いに重複する情報を含む第1と第2のフラグ
レジスタと、前記解読手段により第1の命令が解読され
た場合にのみ、前記実行手段における前記第1の命令の
実行結果の状態を表す情報を前記第1のフラグレジスタ
に格納するように制御し、前記解読手段により前記第1
の命令以外の命令が解読された場合には、前記実行手段
における該命令の実行結果の状態を表す情報を前記第2
のフラグレジスタに格納するように制御するフラグ生成
手段とを備えることを特徴とする。
【0042】これにより、実行結果の状態を表す情報が
格納されるフラグレジスタは命令によって一意に決ま
る。従って、各命令でどの演フラグレジスタを更新する
かを指定する必要がなく、機械語命令のオペレーション
指定フィールドが少なくでき、コードサイズの増加を抑
制することができるという効果がある。また、第1の命
令であるか否かを判断するだけで、更新するフラグレジ
スタを特定できるので、解読手段のハードウェアは増大
せずに低コストで実現できるという効果がある。
【0043】ここで前記第1の命令は、比較を行う命令
であるとしてもよい。上記の各情報処理装置において、
前記第2のフラグレジスタに含み得る情報は全て前記第
1のフラグレジスタに含まれ、かつ、前記第1のフラグ
レジスタには前記第2のフラグレジスタに含まれない情
報を含み得るとしても良い。こうすれば、上記の効果に
加えて、第2のフラグレジスタの演算フラグの種類が少
なくでき、フラグレジスタ自身のハードウェア量を削減
することができる。
【0044】さらに、前記第2のフラグレジスタに含み
得る情報は、前記実行手段においてキャリーが発生した
ことを示すキャリー情報と、前記実行手段においてオー
バーフローが発生したことを示すオーバーフロー情報と
であるとしてもよい。こうすれば、比較を行う命令では
検出できない演算キャリーおよび演算オーバーフローが
生じたかの情報のみが第2のフラグレジスタに含まれる
ため効率がよい。
【0045】またさらに、前記第1の命令は、比較を行
う命令であり、前記第1のフラグレジスタに含み得る情
報は、前記キャリー情報と、前記オーバーフロー情報
と、前記実行手段における実行結果の正負を示す符号情
報と、前記実行手段における実行結果がゼロであること
を示すゼロ情報とであるとしてもよい。また上記の各情
報処理装置において、前記命令は、命令のフォーマット
を指定するフォーマットコードが置かれるフォーマット
フィールドと、並列実行させるオペレーションを指定す
る複数のオペレーションフィールドとを含むVLIW方
式の命令であるとしてもよい。
【0046】このようにしたVLIW形式の命令に基づ
く情報処理装置では、ハードウェアを増大させることな
く複数のフラグレジスタを扱うことができ、命令のスケ
ジューリングにより高い命令並列度が達成される。以上
のように本発明の技術の実用的価値は大きい。
【図面の簡単な説明】
【図1】本発明の一実施の形態における情報処理装置の
命令仕様と、演算フラグを格納するフラグレジスタの構
成を示す図
【図2】同実施形態における情報処理装置の主要部の構
成を示すブロック図
【図3】同実施形態における演算フラグ生成手段105
の内部構成を示すブロック図
【図4】同実施形態における「add D,A,B」、「cmp A,
B」、「mov (A),B」、「sub D,A,B」の順に実行した場
合のタイミングチャート
【図5】従来の情報処理装置の加算命令仕様、および演
算フラグレジスタのレジスタ構成を示す図
【符号の説明】
101 命令レジスタ 102 命令解読器 103 レジスタファイル 104 演算器群 105 演算フラグ生成手段 106〜108 ラッチ 109、110 バス 201〜206 ラッチ 207〜208 ANDゲート 209 反転ゲート 210 クロック 303 キャリー情報 304 オーバーフロー情報 305 ネガティブ情報 306 ゼロ情報 307 フラグ更新許可信号 308 cmp命令指示信号 309 Cフラグ 310 Vフラグ 311 Nフラグ 312 Zフラグ 313 CAフラグ 314 OVフラグ

Claims (6)

    【特許請求の範囲】
  1. 【請求項1】 複数の命令を格納する記憶装置から命令
    を読出す命令読出し手段と、 前記命令読出し手段により読出された命令を解読する解
    読手段と、 前記命令解読手段に従って命令を実行する実行手段と、 前記実行手段における実行結果の状態を表す情報の格納
    が択一的に行われ、互いに重複する情報を含む第1と第
    2のフラグレジスタと、 前記解読手段により第1の命令が解読された場合にの
    み、前記実行手段における前記第1の命令の実行結果の
    状態を表す情報を前記第1のフラグレジスタに格納する
    ように制御し、前記解読手段により前記第1の命令以外
    の命令が解読された場合には、前記実行手段における該
    命令の実行結果の状態を表す情報を前記第2のフラグレ
    ジスタに格納するように制御するフラグ生成手段とを備
    えることを特徴とする情報処理装置。
  2. 【請求項2】 前記第1の命令は、比較を行う命令であ
    ることを特徴とする請求項1記載の情報処理装置。
  3. 【請求項3】 前記第2のフラグレジスタに含み得る情
    報は全て前記第1のフラグレジスタに含まれ、 かつ、前記第1のフラグレジスタには前記第2のフラグ
    レジスタに含まれない情報を含み得ることを特徴とする
    請求項1または2記載の情報処理装置。
  4. 【請求項4】 前記第2のフラグレジスタに含み得る情
    報は、前記実行手段においてキャリーが発生したことを
    示すキャリー情報と、前記実行手段においてオーバーフ
    ローが発生したことを示すオーバーフロー情報とである
    ことを特徴とする請求項3記載の情報処理装置。
  5. 【請求項5】 前記第1の命令は、比較を行う命令であ
    り、 前記第1のフラグレジスタに含み得る情報は、前記キャ
    リー情報と、前記オーバーフロー情報と、前記実行手段
    における実行結果の正負を示す符号情報と、前記実行手
    段における実行結果がゼロであることを示すゼロ情報と
    であることを特徴とする請求項4記載の情報処理装置。
  6. 【請求項6】 前記命令は、命令のフォーマットを指定
    するフォーマットコードが置かれるフォーマットフィー
    ルドと、並列実行させるオペレーションを指定する複数
    のオペレーションフィールドとを含むVLIW方式の命
    令であることを特徴とする請求項1から5のいずれか記
    載の情報処理装置。
JP9234357A 1997-08-29 1997-08-29 情報処理装置 Pending JPH1173301A (ja)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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

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