JPH06180649A - マイクロプロセッサ - Google Patents

マイクロプロセッサ

Info

Publication number
JPH06180649A
JPH06180649A JP33271592A JP33271592A JPH06180649A JP H06180649 A JPH06180649 A JP H06180649A JP 33271592 A JP33271592 A JP 33271592A JP 33271592 A JP33271592 A JP 33271592A JP H06180649 A JPH06180649 A JP H06180649A
Authority
JP
Japan
Prior art keywords
instruction
multiplication
register
addition
subtraction
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
JP33271592A
Other languages
English (en)
Inventor
Ichiro Kushima
伊知郎 久島
Masahiro Uminaga
正博 海永
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.)
Hitachi Ltd
Original Assignee
Hitachi 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 Hitachi Ltd filed Critical Hitachi Ltd
Priority to JP33271592A priority Critical patent/JPH06180649A/ja
Publication of JPH06180649A publication Critical patent/JPH06180649A/ja
Pending legal-status Critical Current

Links

Landscapes

  • Advance Control (AREA)
  • Devices For Executing Special Programs (AREA)

Abstract

(57)【要約】 【目的】 ソフトウェアパイプライニングにより並列化
されたプログラムを実行するのに好適な命令を備えるス
ーパースカラプロセッサを提供する。 【構成】 加算・乗算複合命令700は、rm1、rm
2、tm、ra、taの5つのレジスタを指定するフィ
ールドをもつ。命令が実行されると、rm1、rm2、
tm、raで指定されるレジスタの値がレジスタファイ
ル6から読み出され、データ線13を通って乗算器8
(前者2つ)および加減算器7(後者2つ)へ送られ
る。そして、乗算器8から出た演算結果データはtmで
指定されるレジスタへ、加減算器7から出た演算結果デ
ータはtaで指定されるレジスタへ、それぞれデータ線
13を通って格納される。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明はマイクロプロセッサに係
り、特に、ソフトウェアパイプライニングにより並列化
されたプログラムの高速実行に好適なスーパースカラプ
ロセッサに関する。
【0002】
【従来の技術】スーパースカラプロセッサは、連続する
複数の命令を同時にフェッチ・デコードし、その中から
並列に実行できる命令を選択して実行するプロセッサで
ある。そのため、複数の実行ユニットを備えているが、
現状では同一種類の実行ユニットを複数実装するより
も、整数演算ユニット(ALU)、浮動小数点加減算ユ
ニット、浮動小数点乗算ユニット、分岐ユニット、ロー
ド/ストアユニットなどの異なった種類の実行ユニット
のみを実装している場合が多い。なお、並列に実行可能
な命令の数(命令多重度)により、2−スカラ、3−ス
カラ、などと呼ぶことがある。命令多重度が増えるほ
ど、それを実現するハードウェアが複雑になり、コスト
がかかることはいうまでもない。
【0003】命令多重度が2、3、…となれば、実行速
度も2倍、3倍、…になるかといえば、そうではない。
スーパースカラプロセッサはあくまで並列に実行可能な
命令だけを(可能かどうかはデコード時にハードウェア
により判定される)並列に実行するからである。したが
って、スーパースカラプロセッサが有効であるために
は、実行されるプログラム(機械語)内にそれだけの並
列性が存在することが必要である。並列性が存在してい
なければ単なるスカラプロセッサと同じ実行速度しか出
ない。
【0004】FORTRANやCのような高級言語で書
かれたプログラムをコンパイルして、スーパースカラプ
ロセッサで実行しようとする場合、ソースプログラムに
並列性が陽に現れていない場合は、コンパイラが、ソー
スプログラムを機械語に翻訳する際に、並列性を引き出
さすような最適化を行うことが普通である。
【0005】例えば、以下のFORTRANプログラム
(の一部)を考えてみる。(これはSPECfpと呼ば
れるベンチマークプログラムの一部である。配列要素は
すべて倍精度浮動小数点型である。) DO 8 I=1,256 …(1) RMATRX(I,I) = 1.D0 / RMATRX(I,I) …(2) DO 8 J = I+1, 256 …(3) RMATRX(J,I) = RMATRX(J,I) * RMATRX(I,I) …(4) DO 8 K = I+1, 256 …(5) RMATRX(J,K) = RMATRX(J,K) - RMATRX(J,I) * RMATRX(I,K) …(6) 8 CONTINUE …(7) このプログラムの実行で、最も時間がかかる(実行回数
が多い)のは、最も内側のループ、すなわち(5)から(7)
内の部分である。従って、このプログラムの高速化(並
列化)を考える時は、この部分に対応する命令に着目す
るのがよい。このループ内のステートメント(6)は、配
列のアドレス計算を無視すると、次の5つの命令によっ
て実行される。
【0006】 RMATRX(J,K)のロード RMATRX(I,K)のロード RMATRX(J,I) * RMATRX(I,K) RMATRX(J,K) - の結果 の結果をRMATRX(J,K)へストア 上記のプログラムに、RMATRX(J,K)のロードが含まれて
いないのは、この式がループ不変式であり、ループ内で
実行する必要がないためである。(ループ外で一度ロー
ドしておけば、最も内側のループ内ではロードする必要
がない。)これらの5つの命令のうち、並列に実行でき
るのはとだけである。その他の命令はいずれもそれ
以前の命令の結果を使っている(フロー依存が存在す
る)ため、並列には実行できない。このようなプログラ
ムの演算構造を図にしたのが図3である。図3では、枠
で囲った部分が演算を示し、囲ってない部分がデータを
示し、矢印がデータの流れを示している。103の
「*」は乗算を、104の「−」は減算を表す。T1,
T2などは、一時的なデータ領域(レジスタと考えてよ
い)を示す。からの命令はそれぞれ図3の101、
102、103、104、105の演算に相当する。そ
して、二つの演算が矢印で繋がっている場合は、矢印の
元の演算が終ってから、矢印の先の演算が始まらなけれ
ばならない。
【0007】図4は、以下に述べるような構成を有する
想定プロセッサで、図4の103から105の各命令が
どのタイミングで発行され、命令が完了するかを示した
タイミングチャートである。想定プロセッサは、ロード
・ストアユニット1個、浮動小数点乗算器1個、浮動小
数点加減算器1個およびその他の実行ユニットを持ち、
各ユニットを最大4個まで並列実行できる、即ち、4−
スカラのスーパースカラプロセッサとしている。命令の
レイテンシィ、即ち、命令を発行してから完了するまで
にかかるサイクル数は、ロード・ストア命令は2、浮動
小数点の乗算・加減算は4としている。
【0008】さらに、個々の実行ユニットはパイプライ
ン実行できる、即ち、各サイクルごとに新たな命令を発
行できるものとしている。ただし、ロードとストアは同
じ実行ユニットを使用するので、同時には命令発行でき
ない。図4では、実行ユニットごとに命令の発行と完了
のタイミングを横線で示している。横線の上の数字は、
図3の演算の番号を示す。図4により、0サイクル目に
実行を開始すると、13サイクル目にすべての演算が完
了することがわかる。
【0009】図4から判るように、並列に(オーバーラ
ップして)実行されている命令は4つのロード命令だけ
であって、その他の命令は前の命令が終るのを待って発
行されている。従って、同時に4命令を発行できるとい
う4−スカラのスーパースカラプロセッサの特性はほと
んど活かされてないことになる。
【0010】このようなプログラムから並列性を引き出
す手法の1つが、ループ展開である。ループ展開とは、
ループ内部を複数コピーして展開し、ループ反復を減ら
すと共に、ループ内部の独立した命令を増やすことによ
り並列実行の可能性を増加させるような最適化である。
例えば、さきほどのプログラムでは、最も内側のループ
を4倍に展開することにより、次のように変型できる
(Kの値は4ずつ増えることに注意)。
【0011】 DO 8 K = I+1, 256, 4 …(8) RMATRX(J,K) = RMATRX(J,K) - RMATRX(J,I) * RMATRX(I,K) …(9) RMATRX(J,K+1) = RMATRX(J,K+1) - RMATRX(J,I) * RMATRX(I,K+1) …(10) RMATRX(J,K+2) = RMATRX(J,K+2) - RMATRX(J,I) * RMATRX(I,K+2) …(11) RMATRX(J,K+3) = RMATRX(J,K+3) - RMATRX(J,I) * RMATRX(I,K+3) …(12) 8 CONTINE …(13) ここでループ中のステートメント(9)-(12)は互いに独立
であるので、並列に実行可能である。ループ展開した場
合の、ループ内側のステートメント((9)-(12))の演算
構造を、図1と同様に図に示したものが図5である。
【0012】図5で、単に「(I,K)」等とあるのは
「RMATRX(I,K)」を略したものである。図5
によれば、8つロード、4つの乗算、4つの減算はフロ
ー依存がないので、それぞれ並列に実行可能である。従
って、プログラムの並列度が大幅に増す。
【0013】図6は、図5の演算を、想定プロセッサで
実行した場合のタイミングチャートを、図4と同様に示
したものである。図6では、各演算器が並列に動作する
部分が図4に比べて増加することがわかる。
【0014】図6によると、ループ展開したプログラム
では、繰り返しの始めで、必要とするデータをまとめて
ロードするが、その間、他の演算器が遊んでしまう。例
えば図6では、乗算器は始めの2サイクル、加減算器は
始めの6サイクルは動いていない。これは繰り返しの終
わりのストアの時も同様である。このような演算器の空
きをなくすため、さらにソフトウェアパイプライニング
というプログラム並列化の手法を使うことができる。
【0015】ソフトウェアパイプライニングは、ループ
内部をいくつかの処理部分(これをパイプラインステー
ジ、または以降単にステージと呼ぶ)に分解し、異なる
繰り返しの異なるステージを並列に実行するような変換
である。例えば、さきほど展開したループの内部を、ロ
ード、乗算、減算、及びストアの4つのステージに分け
ることにより、それらを並列に実行することが可能とな
る。すなわち、ループのi回目の(繰り返しに属する)
ロードと、(i−1)回目の乗算と、(i−2)回目の
減算と、(i−3)回目のストアは並列に動作可能であ
る。ただし、さきほど想定したプロセッサでは、ロード
とストアは同一の実行ユニットを使用するので、ロード
とストアは同時には命令発行できない。このようなソフ
トウェアパイプライニングを施した場合のタイミングチ
ャートを図7に示す。図7では、ストア、乗算および減
算が並列に実行されるので、図6に比べてさらに実行サ
イクル数が減る。
【0016】図7では、0から3サイクル目で、ストア
命令、乗算命令および減算命令の3命令を同時に発行し
いるが、これは原則的には3−スカラ以上の命令多重度
をもつスーパースカラプロセッサでのみ可能である。し
かし、たとえば1つの命令で乗算と減算を並列に実行す
るような命令があれば、2−スカラでも3つの演算を並
列に実行できる。すなわち、この命令(乗算・減算複合
命令)とストア命令の2つの命令を同時に発行すればよ
い。
【0017】1つの命令で乗算と減算または加算を並列
に実行する命令については、例えばピーエーリスク1.
1 アーキテクチャ アンド インストゥラクション
セット リファレンス マニュアル(1990)6-6
0頁から6-61頁(PA-RISC1.1 Architecture and
Instruction Set Reference Manual(1990),pp.6-60-
6-61)に記載がある。この中の、FMPYADD命令は
浮動小数点データの乗算と加算を、FMPYSUB命令
は浮動小数点データの乗算と減算を同時に行う命令であ
る。
【0018】なお、補足として付け加えると、乗算をし
た後で加減算を行う式(ax±by±cz±…)や、加
減算を行った後乗算を行う式((a+b)*x等)は、
上記の例に挙げたプログラムに限らず、科学技術計算プ
ログラム(FORTRANで書かれることが多い)に頻
繁に現れる計算であり(a,b,c,x,y,z,…は
配列要素であることが多い)、このような演算の組み合
わせだけを特別に取り扱うことは無意味なことではな
い。
【0019】
【発明が解決しようとする課題】上記従来技術で述べ
た、加算または減算と乗算を同時に実行する命令は、行
う加算(減算)と乗算が全く独立である。具体的には、
この命令は FMPYADD rm1,rm2,tm,ra,ta という命令フォーマット(ニモニック)を持ち(rm
1、rm2、tm、ra、taはそれぞれレジスタを表
す)、 tm←rm1*rm2 ta←ta+ra の2つの演算を並列に実行する。ただし、raとtm、
taとtm、taとrm1、taとrm2はそれぞれ異
なるレジスタでなければならないという制約がある。言
い換えれば、乗算と加算とで共通のレジスタを使用して
はならない、すなわち、加算と乗算は独立である。
【0020】しかしこの命令は、上記従来技術で述べた
ような、ソフトウェアパイプライニングによる並列実行
を考慮していない。ソフトウェアパイプライニングで乗
算と加算(減算)を並列に実行する場合は、乗算で使用
するレジスタと加算(減算)で使用するレジスタが一部
重なる。すなわち、乗算のデスティネーションレジスタ
が、次のパイプラインステージ、すなわち加算(減算)
のソースレジスタとなる。例えば、図7で、0サイクル
めで行われる乗算309は「T2*T3→T10」を行
い、減算313は「T1−T10→T14」を行うた
め、T10が重なっている。従って、上記命令はそのま
までは使えない。
【0021】本発明の目的は、このようなソフトウェア
パイプライニングに適した、使用するレジスタが一部重
なっているような乗算と加減算をも1命令で並列に実行
する処理装置を提供することにある。
【0022】また、逆に加減算と乗算で任意のレジスタ
を指定できるとすると、今度は命令語が長くなりすぎる
という問題が起こる。通常、3オペランドマシンでの加
減算命令は、2つのソースレジスタと1つのデスティネ
ーションレジスタの計3つのレジスタを命令語で指定す
る。乗算も同様である。従って、1命令で加減算と乗算
の2つの演算を任意に行うには6つのレジスタの指定が
必要となる。しかし、レジスタが32個用意されている
と、1つのレジスタの指定に5ビット必要であり(25
=32)、6つのレジスタでは5×6=30ビット必要
である。世の中の多くのプロセッサ、特に、RISC
(Reduced Instruction Set Computer)と呼ばれるプロ
セッサは命令語が32ビットの固定長であり、ここに6
つのレジスタ指定とオペコード指定や演算精度指定を収
めるのは殆ど不可能となる。
【0023】本発明の別の目的は、加減算と乗算を1命
令で並列に行い、しかも命令語をコンパクトな(32ビ
ット長)ままで実行できる処理装置を提供することにあ
る。
【0024】
【課題を解決するための手段】上記目的は、一つの命令
で加算または減算と乗算を並列に実行でき、しかも一方
の演算のデスティネーションレジスタが他方の演算のソ
ースレジスタの一つと一致するような命令を、スーパー
スカラプロセッサに備えることにより達成される。具体
的には、r1、r2、r3、r4、r5をレジスタとし
て、 r3←r1*r2 ‥‥(a) r5←r4±r3 ‥‥(b) という二つの操作を並列に行うような命令を備えればよ
い。さらに、乗算と加減算を逆にした場合も同様であ
る。ここで、並列とは、代入(←)の右辺の演算を
(a)と(b)で同時に行い、その後で、(a)と
(b)の代入を同時に行うことを意味する。上記の
(a)、(b)の演算は、配列内のそれぞれ異なる要素
に対して並列に実行される。従って、(a)の乗算の結
果値が(b)の加減算のオペランドとして使われるわけ
ではない。
【0025】
【作用】加減算と乗算を並列に実行でき、しかもその2
つの演算で共通のレジスタを指定することができれば、
図7で示したような乗算と減算は1命令で実行できる。
例えば、図7の0サイクル目は「T2*T3→T10」
と「T1−T10→T14」の二つの命令を同時に発行
するが、このためには、課題を解決するための手段の項
で述べた命令で、r1、r2、r3、r4、r5にそれ
ぞれT2、T3、T10、T1、T14を用いればよ
い。
【0026】この命令ではレジスタを5つしか指定しな
いので、55=25ビットしか必要とせず、32ビット
長命令語の中に十分収めることができる。
【0027】
【実施例】以下、本発明の1実施例を説明する。図2
は、本発明を適用した2−スカラ方式のスーパースカラ
プロセッサの構成を示すブロック図である。プロセッサ
1はアドレス線14および外部データ線15、16によ
ってメインメモリ2と接続されている。命令レジスタ4
は、次に実行する命令を保持する。ただし、これは2−
スカラ方式のスーパースカラプロセッサであるので、連
続する二つの命令が保持されている。二つの命令はデコ
ーダ5で解読され、解読結果は制御信号として、デコー
ダ5から制御線12aを介して各実行ユニット7〜11
へ送られる。
【0028】レジスタファイル6は32本の浮動小数点
レジスタの集まりである。レジスタファイル6のデータ
はデータ線13bを通って各実行ユニット7〜11へ送
られる。実行ユニットは、浮動小数点加減算器7、浮動
小数点乗算器8、ロードユニット9、ストアユニット1
0、その他のユニット11から成る。整数演算ユニット
や分岐ユニットなどはその他のユニットに含まれる。加
減算器7や乗算器8で行われた演算の結果はデータ線1
3aを通って再びレジスタファイル6へ送られる。ロー
ドユニット9からはアドレス線バス14を通してロード
するデータのアドレスがメインメモリ2へ送られる。メ
インメモリ2から読み出されたデータは外部データ線1
6およびデータ線13aを通ってレジスタファイル6へ
送られる。ストアユニット10からはアドレス線14と
外部データ線15を通して、ストアするデータのアドレ
スと、ストアするデータがメインメモリ2へ送られる。
【0029】レジスタファイル6は6つのリード(読み
だし)ポートを持つ。本プロセッサでは最高3個の実行
ユニットを一度に駆動することができ(加減算・乗算複
合命令と、その他の命令で計3個)、さらに各演算器は
最高2つのデータを入力とするので、計3×2=6個の
データを一度にレジスタファイル6から読み出す必要が
あるからである。また、レジスタファイル6は3つのラ
イト(書き込み)ポートを持つ。本プロセッサでは最高
3個の実行ユニットを一度に駆動することができ、各演
算器はそれぞれ1つのデータを出力するので、計3×1
=3個のデータを一度にレジスタファイル6へ書き込む
必要があるからである。
【0030】図1は、本プロセッサの特徴となる、加算
・乗算複合命令の命令フォーマットおよびその動作を示
す図である。加算・乗算複合命令700は、オペコード
部701、演算精度指定部702、レジスタ指定部70
3〜707から成る。オペコード部701は命令の種類
を6ビットで表す。演算指定部702は演算の精度(単
精度か倍精度)を1ビットで表す。レジスタ指定部は演
算に使用する5つのレジスタ番号をそれぞれ5ビットで
表わす(レジスタは32個であるので、指定には5ビッ
ト必要)。703から707で指定されるレジスタの意
味は次の通りである。
【0031】rm1…乗算のソースレジスタ rm2…乗算のソースレジスタ tm …加算のソースレジスタかつ、乗算のデスティネ
ーションレジスタ ra …加算のソースレジスタ ta …加算のデスティネーションレジスタ rm1、rm2、tm、raで指定されるレジスタは、
レジスタファイルから読み出されるレジスタ(ソースレ
ジスタ)である。従って、これらのフィールドから出た
制御信号は、制御線12bを通ってレジスタファイル6
の呼出しポートへ送られ、どのレジスタを読み出すかを
制御する。読み出されたデータ(レジスタの値)は、デ
ータ線13bを通って加減算器7および乗算器8への入
力となる。すなわち、rm1とrm2で指定されるレジ
スタの値が乗算器8へ、tmとtaで指定されるレジス
タの値が加減算器7への入力となる。
【0032】一方、tmとtaで指定されるのは、レジ
スタファイル6へ書き込むレジスタ(デスティネーショ
ンレジスタ)であるので、これらのフィールドから出た
制御信号は、制御線12bを通ってレジスタファイル6
の書き込みポートへ送られ、どのレジスタに書き込むか
を制御する。従って、tmフィールドからでた制御信号
は読み出しポートと書き込みポートの両方に送られる。
乗算器8の出力データがtmで指定されるレジスタへ書
き込まれ、加減算器7の出力データがtaで指定される
レジスタへ書き込まれる。
【0033】すなわち、この命令は、 tm←rm1*rm2 ta←ra+tm の二つの操作を並列に行う。
【0034】次に、図2を用いて図1の命令の動作を説
明する。命令レジスタ4に保持された命令が、デコーダ
5で解読され、それが加算・乗算複合命令であると判断
されると、rm1で指定されるレジスタとrm2で指定
されるレジスタの値がデータ線13bを通って浮動小数
点乗算器8へ送られると同時に、raで指定されるレジ
スタとtmで指定されるレジスタの値がデータ線13b
を通って浮動小数点加減算器7へ送られる。そして、乗
算器8から出た演算結果データはtmで指定されるレジ
スタへ、加減算器7から出た演算結果データはtaで指
定されるレジスタへ、それぞれデータ線13aを通って
格納される。以上のように、これらの演算器およびレジ
スタファイルは、デコーダ5から出される制御信号によ
り制御される。
【0035】図1では加算と乗算の複合命令について述
べたが、これは減算と乗算の複合命令でも同様である。
上記の説明で「加算」という部分を「減算」に置き換え
ればよい。
【0036】また、図1では、乗算のデスティネーショ
ンレジスタと、加算のソースレジスタの一つが一致して
いるが、これを逆にして、加算のデスティネーションレ
ジスタと乗算ソースレジスタの一つとを一致させてもよ
い。すなわち、 tm←rm1+rm2 ta←ra*tm という二つの操作を並列に行う命令についても同様に実
現できる。
【0037】
【発明の効果】本発明のプロセッサでは、一つの命令で
加算または減算と乗算を並列に実行でき、しかも一方の
演算のデスティネーションレジスタが他方の演算のソー
スレジスタの一つと一致している。これにより、ソフト
ウェアパイプライニングによるプログラムの並列化が簡
単に実現できる、すなわち、ソフトウェアパイプライニ
ングによって生じる、異なるステージに演算の並列実行
が1命令でできる、という効果がある。
【0038】またこの複合命令は、レジスタを5つしか
指定しないので、レジスタを6つ指定する場合に比べ
て、命令語をコンパクトにできるという効果もある。
【図面の簡単な説明】
【図1】加算乗算複合命令の命令フォーマット及び動作
を示す図である。
【図2】本発明を適用したスーパースカラプロセッサの
ブロック構成図である。
【図3】プログラムの演算構造を表した図である。
【図4】図3の演算の実行タイミングチャートである。
【図5】ループ展開後のプログラムの演算構造を表した
図である。
【図6】図5の演算の実行タイミングチャートである。
【図7】図5の演算にソフトウェアパイプライニングを
施した場合の実行タイミングチャートである。
【符号の説明】
1‥‥プロセッサ、4‥‥命令レジスタ、5‥‥デコー
ダ、7‥‥浮動小数点加減算器、8‥‥浮動小数点乗算
器、13‥‥データ線。

Claims (5)

    【特許請求の範囲】
  1. 【請求項1】複数のレジスタと、乗算器および加減算器
    を具備するマイクロプロセッサであって、前記マイクロ
    プロセッサは、乗算と加減算を一つの命令で並列に実行
    する命令を備え、さらに前記命令は、乗算結果を格納す
    るレジスタと、加減算のオペランドの一つを格納するレ
    ジスタが、一致していることを特徴とするマイクロプロ
    セッサ。
  2. 【請求項2】請求項1記載のマイクロプロセッサであっ
    て、前記マイクロプロセッサは、連続する二つの命令を
    一度にフェッチ・デコードし、その二つの命令が並列に
    実行可能ならば並列に実行する、スーパースカラプロセ
    ッサであるマイクロプロセッサ。
  3. 【請求項3】請求項1記載のマイクロプロセッサであっ
    て、前記レジスタは、浮動小数点データを格納するレジ
    スタであって、前記命令の乗算および加減算は、浮動小
    数点データを対象とする、マイクロプロセッサ。
  4. 【請求項4】請求項1記載のマイクロプロセッサであっ
    て、前記命令は、五つのレジスタ(r1,r2,r3,
    r4,r5とする)をオペランドとして指定し、r1と
    r2の乗算と、r3とr4の加算または減算を並列に行
    い、さらに乗算結果をr3に格納し、加算または減算結
    果をr5に格納する、マイクロプロセッサ。
  5. 【請求項5】請求項1記載のマイクロプロセッサであっ
    て、前記命令は、五つのレジスタ(r1,r2,r3,
    r4,r5とする)をオペランドとして指定し、r1と
    r2の加算または減算と、r3とr4の乗算を並列に行
    い、さらに加算または減算結果をr3に格納し、乗算結
    果をr5に格納する、マイクロプロセッサ。
JP33271592A 1992-12-14 1992-12-14 マイクロプロセッサ Pending JPH06180649A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP33271592A JPH06180649A (ja) 1992-12-14 1992-12-14 マイクロプロセッサ

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP33271592A JPH06180649A (ja) 1992-12-14 1992-12-14 マイクロプロセッサ

Publications (1)

Publication Number Publication Date
JPH06180649A true JPH06180649A (ja) 1994-06-28

Family

ID=18258060

Family Applications (1)

Application Number Title Priority Date Filing Date
JP33271592A Pending JPH06180649A (ja) 1992-12-14 1992-12-14 マイクロプロセッサ

Country Status (1)

Country Link
JP (1) JPH06180649A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6014683A (en) * 1996-12-20 2000-01-11 Nec Corporation Arithmetic operation system for arithmetically operating a first operand having an actual point and a second operand having no actual point

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6014683A (en) * 1996-12-20 2000-01-11 Nec Corporation Arithmetic operation system for arithmetically operating a first operand having an actual point and a second operand having no actual point

Similar Documents

Publication Publication Date Title
US7376812B1 (en) Vector co-processor for configurable and extensible processor architecture
US8161266B2 (en) Replicating opcode to other lanes and modifying argument register to others in vector portion for parallel operation
US7937559B1 (en) System and method for generating a configurable processor supporting a user-defined plurality of instruction sizes
US8443170B2 (en) Apparatus and method for performing SIMD multiply-accumulate operations
KR102413832B1 (ko) 벡터 곱셈 덧셈 명령
US5764943A (en) Data path circuitry for processor having multiple instruction pipelines
Yu et al. Vector processing as a soft-core CPU accelerator
US20020169942A1 (en) VLIW processor
US20070150706A1 (en) Reducing data hazards in pipelined processors to provide high processor utilization
JP2002007141A (ja) パイプライン化マイクロプロセッサ用ループ・キャッシュ・メモリとキャッシュ制御器
US8166467B2 (en) Automatic identification of application-specific functional units with architecturally visible storage
CN107357552B (zh) 基于bwdsp芯片实现浮点复数向量求和的优化方法
Schlansker et al. Height reduction of control recurrences for ILP processors
US6092184A (en) Parallel processing of pipelined instructions having register dependencies
JP2874351B2 (ja) 並列パイプライン命令処理装置
Finlayson et al. An overview of static pipelining
Steven et al. HARP: A parallel pipelined RISC processor
US7437544B2 (en) Data processing apparatus and method for executing a sequence of instructions including a multiple iteration instruction
JPH06180649A (ja) マイクロプロセッサ
JP2001504956A (ja) データ処理システム・レジスタ制御
Finlayson et al. Improving low power processor efficiency with static pipelining
JPH06290057A (ja) ループ最適化方法
JP2000029696A (ja) プロセッサおよびパイプライン処理制御方法
JP3743155B2 (ja) パイプライン制御型計算機
JP2861234B2 (ja) 命令処理装置