JP2851192B2 - 並列演算処理装置におけるキャリー付き加減算処理方式 - Google Patents

並列演算処理装置におけるキャリー付き加減算処理方式

Info

Publication number
JP2851192B2
JP2851192B2 JP3286259A JP28625991A JP2851192B2 JP 2851192 B2 JP2851192 B2 JP 2851192B2 JP 3286259 A JP3286259 A JP 3286259A JP 28625991 A JP28625991 A JP 28625991A JP 2851192 B2 JP2851192 B2 JP 2851192B2
Authority
JP
Japan
Prior art keywords
instruction
carry
subtraction
addition
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.)
Expired - Fee Related
Application number
JP3286259A
Other languages
English (en)
Other versions
JPH05127902A (ja
Inventor
隆二 境
陽一郎 竹内
郁夫 内堀
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 JP3286259A priority Critical patent/JP2851192B2/ja
Publication of JPH05127902A publication Critical patent/JPH05127902A/ja
Application granted granted Critical
Publication of JP2851192B2 publication Critical patent/JP2851192B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Landscapes

  • Executing Machine-Instructions (AREA)
  • Advance Control (AREA)

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】この発明は、複数の命令を並列に
処理することが可能な並列演算処理装置におけるキャリ
ー付き加減算処理方式に関する。
【0002】
【従来の技術】近年、VLIW(Very Long Instructio
n Word)方式の計算機で代表されるパイプライン方式の
並列演算処理装置が提案、開発されている。この種の並
列演算処理装置では、複数の命令を並列(同時)に処理
することが可能なため、処理の高速化が図れるという特
長がある。
【0003】さて、上記した並列演算処理装置で実行さ
れる演算処理の1つに、キャリー付き加減算がある。こ
のキャリー付き加減算は、例えば加算であれば、第1の
ソースデータ(オペランドデータ)と第2のソースデー
タ(オペランドデータ)とキャリービットとを加算する
処理である。従来、キャリー付き加減算の対象となるキ
ャリービットは、専用のレジスタ(例えば、条件コード
レジスタ)またはフラグ(フラグレジスタ)に格納され
ていた。
【0004】このため従来は、キャリー付き加減算を実
行するのに、条件分岐命令でキャリービットを参照して
処理を分けるか、あるいはキャリービットを暗黙のオペ
ランドとして参照する専用のキャリー付き加減算命令を
用意することによって対処していた。
【0005】ところが、並列演算処理装置では、前記し
たように同一サイクルで複数の命令が実行可能なため、
例えば図3のように、2つのキャリー付き加減算命令
(ADDC命令)1,2を含む複数命令からなるVLI
W命令3が実行される場合には、各ADDC命令1,2
により同一サイクルでそれぞれキャリーが生成される可
能性がある。この場合、キャリー値格納先(キャリー値
格納フラグ)4が1つしかないと、ADDC命令1,2
を同時に実行できないことになる。
【0006】そこで、図4(a)に示すように、並列に
演算可能な命令単位(演算パイプライン単位)でキャリ
ー値格納フラグ4を用意することが考えられる。しか
し、このような構成としても、例えば演算回路で処理可
能なデータ幅の倍の幅の加減算を、図4(b)に示すよ
うに下位データと上位データとに分けて行うために、図
4(c)に示すように、下位データ加減算用のADDC
命令1と、この命令1の実行で生成されたキャリーを用
いたADDC命令5とを同一演算パイプラインで実行し
ようとした場合には、次のような問題があった。
【0007】まずパイプラインのタイミングによって
は、キャリー値格納フラグ4に書込む前に、読出しが行
われる可能性もあるが、従来はキャリー値格納フラグ4
を暗黙のオペランドとして書込みあるいは参照していた
ため、タイミングの制御が不可能であった。また、AD
DC命令1とADDC命令5との間に、キャリー値を書
込む命令を配置できなかった。
【0008】
【発明が解決しようとする課題】上記したように従来の
並列演算処理装置では、同一サイクルで複数のADDC
命令(キャリー付き加減算命令)が実行可能なように、
キャリー値格納先を演算パイプライン毎に用意しても、
その格納先を暗黙のオペランドとして使用していたため
に、パイプライン処理でキャリーのセット/リセットの
タイミングを意識したコーディングをしなければならな
かった。勿論、複数のキャリー値格納先を用意し、AD
DC命令中で任意の格納先を指定するようにすることも
考えられる。しかし、加減算の対象となる2つのソース
データ(オペランドデータ)および加減算結果の格納先
の他に、2つのソースデータに加えるキャリーの格納元
およびキャリー付き加減算により生成されるキャリーの
格納先を1つのADDC命令で指定すること、即ち1命
令中で5つのオペランドを指定することは、命令長の点
で実現困難であった。
【0009】この発明は上記事情に鑑みてなされたもの
でその目的は、並列演算処理装置における複数命令の並
列処理機能に着目して、並列に処理される複数の命令の
うちの2命令(第1の命令および第2の命令)により1
つのADDC命令(キャリー付き加減算命令)を定義
し、加減算の対象となる2つのソースデータおよび加減
算結果の格納先を指定する他、キャリー付き加減算処理
に際して参照すべきキャリービットの格納元およびキャ
リー付き加減算によって生成されるキャリービットの格
納先としてそれぞれ任意の汎用レジスタを指定すること
で、複数のADDC命令を同一サイクルで実行でき、し
かもADDC命令を演算パイプラインのタイミングを意
識することなく配置できる並列演算処理装置におけるキ
ャリー付き加減算命令処理方式を提供することにある。
【0010】
【課題を解決するための手段】この発明は、キャリー付
き加減算を指定する第1の命令の補助命令となる第2の
命令であって、第1の命令で指定されたキャリー付き加
減算処理に際して参照すべきキャリービットの格納元と
して任意の汎用レジスタを指定するソース指定フィール
ド並びにキャリー付き加減算によって生成されるキャリ
ービットの格納先として任意の汎用レジスタを指定する
デスティネーション指定フィールドを持つ第2の命令を
定義する手段と、並列に処理すべき複数の命令のデコー
ド処理を司るデコード手段であって、上記の第1の命令
および第2の命令を含む複数の命令が並列に処理すべき
命令として与えられた場合に、第2の命令のソース指定
フィールドで指定される汎用レジスタ中のキャリービッ
トを読出して、第1の命令の位置に対応する演算回路に
供給するデコード手段とを設け、この演算回路による第
1の命令に従うキャリー付き加減算により同演算回路か
ら出力されるキャリービットを第2の命令のデスティネ
ーション指定フィールドで指定される汎用レジスタに書
込むようにしたことを特徴とするものである。
【0011】
【作用】上記の構成によれば、キャリー付き加減算のた
めに、並列に処理される複数の命令のうちの2命令(第
1および第2の命令)により1つのADDC命令(キャ
リー付き加減算命令)が定義され、補助命令である第2
の命令により、参照すべきキャリービットの格納元とキ
ャリー付き加減算で生成されるキャリービットの格納先
とが指定され、しかもその格納元,格納先に汎用レジス
タが指定される。そして、この第1および第2の命令を
含む複数の命令が命令レジスタに保持された場合に、デ
コード手段は各命令のデコード処理を行う。この際デコ
ード手段は、第2の命令については、そのソース指定フ
ィールドで指定される汎用レジスタ中のキャリービット
を読出して、複数の命令のそれぞれの位置に対応して設
けられた同数の演算回路のうち、主命令(主たるADD
C)である第1の命令の位置に対応して設けられ、この
第1の命令に従うキャリー付き加減算を行う演算回路に
供給する。これにより、この演算回路において、第1の
命令で指定された2つのソースデータと第2のの命令で
指定されたキャリーとのキャリー付き加減算が行われ
る。この演算回路のキャリー付き加減算結果は第1の命
令でデスティネーション指定された結果格納先に書込ま
れ、このキャリー付き加減算で生成されるキャリーは第
2の命令でデスティネーション指定された汎用レジスタ
に書込まれる。
【0012】
【実施例】図1はこの発明を適用するVLIW方式で且
つパイプライン制御方式の並列演算処理装置の一実施例
を示すブロック構成図である。なお、図1の処理装置
は、4命令を並列に処理可能な構成となっているものと
する。
【0013】図1において、10は並列に処理すべき4
命令を保持するための例えば32ビット幅の4つのフィ
ールド11〜14を有する128ビット命令レジスタ、
20は命令レジスタ10に保持された128ビット長の
VLIW命令である。VLIW命令20は、並列に処理
される4つの32ビット長命令からなる。
【0014】図1のVLIW命令20には、キャリー付
き加減算を指定する32ビット長のキャリー付き加減算
主命令(以下、単に主命令と称する)21と、この主命
令21の拡張命令としての32ビット長のキャリー付き
加減算補助命令(以下、単に補助命令と称する)22と
が含まれているものとする。この主命令21および補助
命令22の2命令は、1つのADDC命令(キャリー付
き加減算命令)23を構成している。ここでは、主命令
21と補助命令22とが隣接しているが、これに限るも
のではなく、また主命令21が補助命令22より前に配
置される必要もない。
【0015】ADDC命令23は後述するように5つの
オペランド指定フィールドを有している。そこで、この
命令23を、5オペランド型ADDC命令23と呼ぶ。
ここでは、主命令21は命令レジスタ10のフィールド
11に、補助命令22は命令レジスタ10のフィールド
12に保持されているものとする。
【0016】図2は図1の5オペランド型ADDC命令
23のフォーマットを示す。まず、ADDC命令23の
主命令21は、キャリー付き加減算を指定する命令コー
ド(オペレーションコード)OP1(10ビット)、キ
ャリー付き加減算結果の格納先(ここでは汎用レジス
タ)を指定するデスティネーションrd1(6ビッ
ト)、およびキャリー付き加減算の被演算データの格納
元(ここでは汎用レジスタ)を指定するソースrs1,
rs2(いずれも6ビット)の各フィールドを有してい
る。この主命令21のフォーマットは図4に示したよう
な従来のADDC命令1,2と同一である。
【0017】次に、ADDC命令23の補助命令22
は、ADDC命令の補助命令であることを示す補助命令
コードOP2(10ビット)、キャリー付き加減算にて
生成されたキャリー(carry′)の格納先(ここで
は汎用レジスタ)を指定するデスティネーションrd2
(6ビット)、およびキャリー付き加減算の被演算デー
タとなるキャリー(carry)の格納元(ここでは汎
用レジスタ)を指定するソースrs3(6ビット)の各
フィールドを有している。
【0018】再び図1を参照すると、30は汎用レジス
タの群からなる(汎用の)レジスタファイルである。本
実施例では、キャリー付き加減算で生成されるキャリー
の格納先としてレジスタファイル30内の汎用レジスタ
が用いられるようになっている。
【0019】41〜44は命令レジスタ10のフィール
ド11〜14に保持されている32ビット長の命令の解
読を司るデコード回路である。デコード回路41〜44
は、フィールド11〜14に保持されている命令でレジ
スタファイル30内汎用レジスタがソース指定されてい
る場合に、そのレジスタ内容をリードするリード機能を
有している。またデコード回路41〜44は、通常は、
そのリードデータを同回路41〜44に対応して設けら
れるALU(演算回路)の被演算データとして出力する
ようになっている。またデコード回路41〜44のうち
のデコード回路42〜44は、解読した命令の命令コー
ドが補助命令コードOP2の場合には、レジスタファイ
ル30からのリードデータの例えば最下位ビットを、デ
コード回路41〜43に対応して設けられるALUのキ
ャリー入力として出力するようになっている。
【0020】51はデコード回路41に対応して設けら
れ、同デコード回路41の解読結果に応じて演算を行う
ALUである。なお図1では、デコード回路42〜44
にそれぞれ対応して設けられるALUは省略されてい
る。
【0021】次に、この発明の一実施例の動作を、図1
に示すように5オペランド型ADDC命令23を含むV
LIW命令20が命令レジスタ10に保持された場合を
例に説明する。
【0022】まず、命令レジスタ10に保持されたVL
IW命令20中の先頭の命令、即ち5オペランド型AD
DC命令23の主命令21はデコード回路41に導か
れ、2番目の命令、即ち5オペランド型ADDC命令2
3の補助命令22はデコード回路42に導かれ、命令解
読に供される。また、補助命令22の後続の2命令は、
それぞれデコード回路43,44に導かれ、命令解読に
供される。
【0023】デコード回路41は、主命令21の命令コ
ードOP1によりキャリー付き加減算が指定されている
場合、ALU51にてキャリー付き加減算を行うための
制御信号を生成する。またデコード回路41は、主命令
21のソースrs1,rs2の両フィールドで指定され
るレジスタファイル30内の汎用レジスタ(rs1,r
s2)の内容をリードし、キャリー付き加減算の被演算
データとしてALU51に出力する(キャリー付き加算
の場合)。なお、キャリー付き減算の場合には、rs2
ではなく、その補数値が被演算データとしてALU51
に出力される。
【0024】一方、デコード回路42は、補助命令22
の補助命令コードOP2によりADDC命令の補助命令
であることが示されている場合、同回路42に対応して
設けられるALU(図示せず)を用いた演算処理をNO
P(ノー・オペレーション)とする。またデコード回路
42は、補助命令22のソースrs3のフィールドで指
定されるレジスタファイル30内の汎用レジスタ(rs
3)の内容をリードし、その最下位ビットをキャリー付
き加減算に用いるキャリー(carry)として、(補
助命令22と対をなす主命令21の解読を行っているデ
コード回路41に対応して設けられた)ALU51のキ
ャリー入力端子に出力する。なお従来は、このキャリー
入力端子には、専用のレジスタまたはフラグに格納され
ているキャリー値が暗黙の指定で入力される。
【0025】以上のデコード回路41,42の命令解読
に伴うALU51の制御、およびレジスタファイル30
からのレジスタリードデータのALU51への出力動作
により、ALU51では、キャリー(rs3で指定され
た汎用レジスタの最下位ビット)も合せて、 rs1+rs2+rs3の最下位ビット のキャリー付き加減算(上記の例は加算の場合)が行わ
れる。
【0026】このALU51でのキャリー付き加減算の
結果は、デコード回路41の解読結果に従い、主命令2
1のデスティネーションrd1で指定されるレジスタフ
ァイル30内汎用レジスタ(rd1)に書込まれる。こ
のとき、ALU51でのキャリー付き加減算で生成され
る(演算結果の)キャリー(carry′)は、デコー
ド回路42の解読結果に従い、補助命令22のデスティ
ネーションrd2で指定されるレジスタファイル30内
汎用レジスタ(rd2)の最下位ビットに書込まれる
(carry′→rd2)。
【0027】このように本実施例によれば、5オペラン
ド型ADDC命令(キャリー付き加減算命令)により、
キャリー値格納先としてレジスタファイル30内の任意
の汎用レジスタを陽に指定できるため、命令レジスタ1
0に保持されるVLIW命令として、2つの5オペラン
ド型ADDC命令を用いることで、2つのキャリー付き
加減算を並列に実行することができる。
【0028】また、図4に示したように1つのキャリー
付き加減算を2つのADDC命令により下位データと上
位データとに分けて行う場合にも、キャリー値格納先を
5オペランド型ADDC命令中で汎用レジスタとして陽
に指定できることから、下位データの加減算で生成され
るキャリーが指定の汎用レジスタに書込まれる前に、そ
の汎用レジスタのキャリー値を用いた上位データのキャ
リー付き加減算が行われないように演算パイプラインを
制御することが簡単に行える。また、同様の理由によ
り、下位データ用のADDC命令と上位データ用のAD
DC命令との間に、キャリー値をライトする命令を配置
することも可能となる。
【0029】以上は、4命令を並列に処理する並列演算
処理装置に実施した場合について説明したが、本発明は
複数の命令を並列に処理する並列演算処理装置全般に適
用可能である。
【0030】
【発明の効果】以上詳述したようにこの発明によれば、
並列演算処理装置における複数命令の並列処理機能に着
目して、並列に処理される複数の命令のうちの2命令
(第1の命令および第2の命令)により1つのADDC
命令(キャリー付き加減算命令)を定義し、加減算の対
象となる2つのソースデータおよび加減算結果の格納先
を指定する他、キャリー付き加減算処理に際して参照す
べきキャリービットの格納元およびキャリー付き加減算
によって生成されるキャリービットの格納先としてそれ
ぞれ任意の汎用レジスタを陽に指定可能な構成とすると
共に、第2の命令でソース指定される汎用レジスタから
キャリービットを読出して、第1の命令に従うキャリー
付き加減算を行う演算回路に供給する構成としたので、
次に列挙する効果を得ることができる。
【0031】(1)キャリーが汎用レジスタに格納され
ることから、演算回路の加減算で生成されるキャリーを
ソフトウェア(汎用レジスタ読出し命令)により容易に
参照することができる。 (2)キャリー格納先が陽に指定できることから、キャ
リーのセットを伴う命令を並列に実行できる。 (3)上記(2)と同様の理由により、パイプライン処
理でのキャリーのセット/リセットのタイミングを意識
したコーディングが不要となる。
【0032】(4)並列に処理される複数の命令のうち
の2命令により1つのADDC命令を定義して、その中
でキャリー格納先を陽に指定しているので、その指定フ
ィールドを確保するために各命令の命令長を広げる必要
がない。
【0033】(5)並列に処理される複数の命令のうち
の2命令により1つのADDC命令として実現している
ことから、キャリー付き加減算のための特別のハードウ
ェアを必要としない。 (6)上記(2),(3)により命令スケジューリング
が効率的に行える。
【図面の簡単な説明】
【図1】この発明を適用する並列演算処理装置の一実施
例を示すブロック構成図。
【図2】図1の5オペランド型ADDC命令23のフォ
ーマットを示す図。
【図3】従来のキャリー付き加減算の問題を説明するた
めの図。
【図4】従来のキャリー付き加減算の問題を説明するた
めの図。
【符号の説明】
10…命令レジスタ、20…VLIW命令、21…主命
令(第1の命令)、22…補助命令(第2の命令)、2
3…5オペランド型ADDC命令(キャリー付き加減算
命令)、30…レジスタファイル(汎用レジスタ群)、
41〜44…デコード回路、51…ALU(演算回
路)。
フロントページの続き (58)調査した分野(Int.Cl.6,DB名) G06F 9/38 G06F 7/50 G06F 9/30

Claims (1)

    (57)【特許請求の範囲】
  1. 【請求項1】 並列に動作可能な複数の演算回路と、こ
    の複数の演算回路の演算対象データおよび演算結果デー
    タ等を格納するのに用いられる汎用レジスタ群とを備
    え、複数の命令を並列に処理することが可能な並列演算
    処理装置において、 キャリー付き加減算を指定する第1の命令の補助命令と
    なる第2の命令であって、前記第1の命令で指定された
    キャリー付き加減算処理に際して参照すべきキャリービ
    ットの格納元として前記汎用レジスタ群内レジスタを指
    定するソース指定フィールド並びにキャリー付き加減算
    によって生成されるキャリービットの格納先として前記
    汎用レジスタ群内レジスタを指定するデスティネーショ
    ン指定フィールドを持つ第2の命令を定義する手段と、 並列に処理すべき複数の命令のデコード処理を司るデコ
    ード手段であって、前記第1の命令および第2の命令を
    含む複数の命令が並列に処理すべき命令として与えられ
    た場合に、前記第2の命令のソース指定フィールドで指
    定される汎用レジスタ中のキャリービットを読出して、
    前記複数の演算回路のうち前記第1の命令に従うキャリ
    ー付き加減算を行う演算回路に供給するデコード手段と
    を具備し、 前記第1の命令に従う前記演算回路のキャリー付き加減
    算によって同演算回路から出力されるキャリービットを
    前記第2の命令のデスティネーション指定フィールドで
    指定される汎用レジスタに書込むようにしたことを特徴
    とする並列演算処理装置におけるキャリー付き加減算処
    理方式。
JP3286259A 1991-10-31 1991-10-31 並列演算処理装置におけるキャリー付き加減算処理方式 Expired - Fee Related JP2851192B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP3286259A JP2851192B2 (ja) 1991-10-31 1991-10-31 並列演算処理装置におけるキャリー付き加減算処理方式

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP3286259A JP2851192B2 (ja) 1991-10-31 1991-10-31 並列演算処理装置におけるキャリー付き加減算処理方式

Publications (2)

Publication Number Publication Date
JPH05127902A JPH05127902A (ja) 1993-05-25
JP2851192B2 true JP2851192B2 (ja) 1999-01-27

Family

ID=17702056

Family Applications (1)

Application Number Title Priority Date Filing Date
JP3286259A Expired - Fee Related JP2851192B2 (ja) 1991-10-31 1991-10-31 並列演算処理装置におけるキャリー付き加減算処理方式

Country Status (1)

Country Link
JP (1) JP2851192B2 (ja)

Also Published As

Publication number Publication date
JPH05127902A (ja) 1993-05-25

Similar Documents

Publication Publication Date Title
US6484255B1 (en) Selective writing of data elements from packed data based upon a mask using predication
US7506137B2 (en) Methods and apparatus for initiating and resynchronizing multi-cycle SIMD instructions
US5269007A (en) RISC system capable of simultaneously executing data interlocked shift and arithmetic/logic instructions in one clock cycle by bypassing register
JPH117387A (ja) Vliwプロセッサ
US4967338A (en) Loosely coupled pipeline processor
US7546442B1 (en) Fixed length memory to memory arithmetic and architecture for direct memory access using fixed length instructions
EP0378415A2 (en) Multiple instruction dispatch mechanism
JPH07120278B2 (ja) データ処理装置
US5307300A (en) High speed processing unit
US5742801A (en) Microprocessor to which additional instructions are added and instructions addition method thereof
JPH05150979A (ja) 即値オペランド拡張方式
JPH1165839A (ja) プロセッサの命令制御機構
JPH0673105B2 (ja) 命令パイプライン方式のマイクロプロセッサ
KR960011683A (ko) 연산 코드의 일부로 사용되는 부분을 포함한 오퍼랜드 필드를 갖는 명령어를 실행하는 마이크로프로세서
JP2851192B2 (ja) 並列演算処理装置におけるキャリー付き加減算処理方式
US6275925B1 (en) Program execution method and program execution device
US7430573B2 (en) Processor
US4775933A (en) Address generation system
JP3019818B2 (ja) データ処理方法
JP2843844B2 (ja) 並列演算処理装置
JP2667810B2 (ja) ベクトル処理装置
JP2859921B2 (ja) 命令キュー制御装置
US20050228970A1 (en) Processing unit with cross-coupled alus/accumulators and input data feedback structure including constant generator and bypass to reduce memory contention
JPS62251930A (ja) 情報処理装置
JPH0758459B2 (ja) マイクロプログラム制御装置

Legal Events

Date Code Title Description
LAPS Cancellation because of no payment of annual fees