JPH05257687A - 並列演算機能を有する計算機 - Google Patents

並列演算機能を有する計算機

Info

Publication number
JPH05257687A
JPH05257687A JP4347929A JP34792992A JPH05257687A JP H05257687 A JPH05257687 A JP H05257687A JP 4347929 A JP4347929 A JP 4347929A JP 34792992 A JP34792992 A JP 34792992A JP H05257687 A JPH05257687 A JP H05257687A
Authority
JP
Japan
Prior art keywords
instruction
length
register
program counter
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.)
Granted
Application number
JP4347929A
Other languages
English (en)
Other versions
JP3146707B2 (ja
Inventor
Takashi Hotta
多加志 堀田
Yasuhiro Nakatsuka
康弘 中塚
Shigeya Tanaka
成弥 田中
Hiromichi Yamada
弘道 山田
Hideo Maejima
英雄 前島
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 JP34792992A priority Critical patent/JP3146707B2/ja
Publication of JPH05257687A publication Critical patent/JPH05257687A/ja
Application granted granted Critical
Publication of JP3146707B2 publication Critical patent/JP3146707B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Landscapes

  • Devices For Executing Special Programs (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Advance Control (AREA)
  • Executing Machine-Instructions (AREA)

Abstract

(57)【要約】 【目的】RISプロセットにおいて、コードサイズを小
さく、またハードウェアを複雑にせず、1マシンサイク
ルに複数の演算を実行し、性能を高める。 【構成】単一演算を指示する命令長の短い命令をN個実
行するか、M個(N<M)の演算を指示する命令長の長い
命令を実行することを可能にし、並列に実行できる演算
数が大の時には長い命令を、小の時には短い命令を用い
る。また、長い命令間の競合はソフトウェアで検出し、
短い命令間の競合のみをハードウェアで検出する。 【効果】ハードウェア容易化によるマシンサイクルの向
上,コードサイズ縮小によるコードキャッシュヒット率
向上、及び並列に実行できる演算数の向上により、性能
が高められる。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は、並列演算を実行する計
算機に係り、特にスーパスカラ方式とVLIW方式とを混在
させて実行する並列演算機能を有する計算機に関する。
【0002】
【従来の技術】計算機アーキテクチャは、半導体技術の
進歩等に支えられ、年々進歩している。1980年代に
は、これまでの複雑な命令をマイクロ命令を使って複数
サイクルにかけて処理するCISC(Complex Instructi
on Set Computer)に代って、簡単な命令を1サイクルで
実行するRISC(Reduced Instruction Set Computer)
が現れた。
【0003】さらに、演算方式の高速化技術として、ス
ーパスカラ方式とVLIW(VeryLong Instruction Wor
d)方式が提案されている。
【0004】スーパスカラ方式とは、命令実行時にハー
ドウェアで命令間の競合を調べ、競合が無ければ1マシ
ンサイクルに複数命令を実行する方式で、特願昭63−28
3673号(従来技術1)や、J-Hennessy and D.A Patterson
“Computer Architecture AQuantitative Approach”Mo
rgan Kantmann Publishers, Inc1990.P.318
(従来技術2)に記載されている。
【0005】またVLIW方式とは、複数演算器の動作
を制御するフィールドを持った長い命令を用いる方式で
ある。通常のRISCプロセッサの命令長が32bit な
のに対し、64,128,256以上といった長さの命
令を持つ。この方式についての説明も、前記J−Henness
y and D.A Patterson(従来技術1)による文献に記され
ている。
【0006】VLIW方式の改良技術として、1語長命
令と3語長命令を混在させて、VLIW方式で処理すること
により、コードサイズの大きさを改善する技術が、Robe
rtCohn et al.“Architecture and Compiler Tradeoffs
a Long Instruction WordMicroprocessor”Third Inte
rnational Conference on Architectual Supportfor Pr
ogramming Languages and Operating System, 198
9,P.2−14(従来技術3)に記載されている。
【0007】
【発明が解決しようとする課題】以下に、スーパスカラ
方式とVLIW方式の特徴について述べる。
【0008】スーパスカラ方式の利点は、単一演算を指
示する命令長の短い命令で、有効演算のみを指示するた
めコードサイズが小さくできる。
【0009】命令を追加する必要がないので前機種との
互換性が保たれることである。
【0010】これに対して、スーパスカラ方式の第1の
問題点は、並列実行する演算内の競合を検出しなくては
ならないことである。並列演算する演算の数が多くなれ
ばなる程、競合検出に要するハードウェア量は大とな
る。
【0011】また、第2の問題点は、現サイクル以前に
実行した命令と現サイクルに実行する命令との間の競合
検出,待合わせが複雑であることである。並列演算する
演算の数が多くなればなる程、現サイクルの命令と競合
する可能性のある命令が多くなり、第2の問題点である
両者の競合検出,待合わせのハードウェアは複雑にな
る。
【0012】また、第3の問題点は命令長が短いため、
命令によって指定できるレジスタの数が少ないことであ
る。16〜32本が典型例である。J−Hennessy and D.
A Pattersonの文献のP.325に示されているように、
並列して実行可能な演算を増やすためのソフトウェア上
の工夫として、ループアンローリングやソフトウェアパ
イプラインを用いようとすると、レジスタの数が不足す
る。逆に言えば、存在するレジスタの範囲でしか最適化
できない。
【0013】この改善策として、上記従来技術1の文献
のE−21〜22に、演算結果を次の命令にすぐには反
映させないようにすることで、レジスタの数の不足を改
善することができると記載されている。
【0014】また、David Callahan et al.“Software
Prefetching"Fourth InternationalConference on Arch
itectual Support for Programming Languages and
Operating System, 1991,P.40〜52の文
献に、スーパスカラマシンにおいて命令によりメインメ
モリからキャッシュメモリにデータをプリフェッチする
ことが記載されている。
【0015】以上から、スーパスカラ方式では、命令実
行の並列度を増すと上記第1,第2の問題点である競合
検出の複雑さからマシンサイクルを高めることができ
ず、処理速度が向上しないという問題を有している。
【0016】次に、VLIW方式の第1の利点は、命令
長が長く、1命令の中に複数の演算が指定でき、かつ、
命令内での演算間の競合がないため、実行時にハードウ
ェアで、並列実行する演算間の競合を検出しなくてもよ
いことである。
【0017】第2の利点は、命令長が長いため、多くの
レジスタが指定可能なことである。次にVLIW方式の
第1の問題点は、前述の命令内での演算間の競合を避け
るため、全てのフィールドに有効な演算を指定できると
は限らず、コードサイズが大きくなってしまうことであ
る。
【0018】第2の問題点は現サイクル以前に実行した
命令と現サイクルに実行する命令との間の競合検出,待
合わせが複雑なことである。これは、スーパスカラ方式
の第2の問題点と同じである。
【0019】これについて、ハードウェアでは競合検出
を行わず、コンパイラによって予め競合回避を行う技術
が、Andrew Wolf and John P. Shen“A Variable
InstructionStream Extension to the VLIW Archit
ecture”,Fourth International Conference
on Architectual Support for Programming Lang
uages and Operating System, 1991,P.2〜14
に記載されている。また、VLIW方式の第3の問題点
は、前機種との互換性が取れないことである。これは、
スーパスカラ方式が、従来の1語長命令をハードウェア
で並列実行するのに対し、VLIW方式では、命令の再
定義が必要となるからである。
【0020】これまでに述べてきたように、スーパスカ
ラ方式とVLIW方式の利点を活かしながら、スーパス
カラ方式とVLIW方式の欠点を補う計算機は存在しな
かった。
【0021】本発明の第1の目的は、スーパスカラ方式
とVLIW方式を混在させて演算実行可能な計算機を提
供することにある。これは、単一演算を指示する命令長
の短い命令よりなる従来アーキテクチャを持つ計算機の
上位互換性を保ちながら、処理速度を向上させることで
ある。
【0022】
【課題を解決するための手段】上記目的を達成するため
に、本発明によれば、第1に、レジスタとメモリとプロ
グラムカウンタを有し、上記プログラムカウンタで指示
される上記メモリに格納されている命令を読み出し、上
記命令の指示する演算を上記レジスタと上記メモリと上
記プログラムカウンタに対して実行する並列演算機能を
有する計算機において、上記命令は単一演算を指示する
命令長の短い命令又は複数演算を指示する命令長の長い
命令であって、上記プログラムカウンタで指示された上
記命令が上記命令長の短い命令か上記命令長の長い命令
かを判定する命令語長判定手段と、上記命令語長判定手
段によって上記プログラムカウンタで指示された上記命
令が命令長の長い命令であれば上記レジスタに上記命令
を設定し、上記プログラムカウンタで指示された上記命
令が命令長の短い命令であれば所定のレジスタに上記命
令を設定する命令選択手段とを有する。
【0023】本発明の第2の特徴によれば、レジスタと
メモリとプログラムカウンタを有し、上記プログラムカ
ウンタで指示される上記メモリに格納される命令を読み
出し、上記命令の指示する演算を上記レジスタと上記メ
モリと上記プログラムカウンタに対して実行する並列演
算機能を有する計算機において、上記命令は単一演算を
指示する命令長の短い命令又は複数演算を指示する命令
長の長い命令であって、上記プログラムカウンタで指示
された上記命令が上記命令長の短い命令か上記命令長の
長い命令かを判定する命令語長判定手段と、上記命令長
の短い命令間の競合を検出する競合検出手段と、上記命
令語長判定手段によって上記命令長の短い命令と判定さ
れると上記レジスタに上記命令を設定し、上記命令長の
短い命令と判定され、かつ、上記競合検出手段によって
競合がないと判定されると所定のレジスタに上記命令を
設定する命令選択手段とを有する。
【0024】本発明の第3の特徴によれば、レジスタと
メモリとプログラムカウンタを有し、上記プログラムカ
ウンタで指示される上記メモリに格納される命令を読み
出し、上記命令の指示する演算を上記レジスタと上記メ
モリと上記プログラムカウンタに対して実行する並列演
算機能を有する計算機において、上記命令は単一演算を
指示する命令長の短い命令又は複数演算を指示する命令
長の長い命令であって、上記プログラムカウンタで指示
された命令が上記命令長の短い命令か上記命令長の長い
命令かを判定する命令語長判定手段と、上記命令語長判
定手段によって上記命令長の短い命令と判定されると、
上記命令長の短い命令間の競合を検出する競合検出手段
と、上記命令語長判定手段によって上記命令長の短い命
令と判定されると、上記競合検出手段の内容に応じて上
記命令長の短い命令を1マシンサイクルに所定の数実行
し、上記命令長の長い命令と判定されると、命令長の長
い命令を1マシンサイクルに所定の数実行する演算手段
とを有する。
【0025】
【作用】本発明によれば、1マシンサイクルに単一演算
を指示する命令長の短い命令を複数個、あるいは、複数
演算を指示する命令長の長い命令を1個実行できるの
で、演算が並列処理され性能が高められる。
【0026】本発明の一態様によれば、並列して実行で
きる演算の多い時のみ命令長の長い命令を用いることに
より、命令長の長い命令の中の無効フィールドを少なく
することができ、コードサイズを小さくすることができ
る。これにより、主メモリ及びキャッシュメモリの使用
効率が上がり、処理速度の向上が図れる。
【0027】本発明の他の一態様によれば、命令長の長
い命令の中で指定する複数の演算内の競合はあり得ず、
ハードウェアでこれを検出する必要はない。ハードウェ
アは同一サイクルに実行する命令長の短い命令間の競合
のみを検出すればよい。本発明によれば、1マシンサイ
クルで実行される命令長の短い命令の数を、命令長の長
い命令の中に指示される演算の数より小さくすることに
より、平均的に1マシンサイクルに実行される演算数が
高い割に、並列に実行する演算間の競合検出を容易にす
ることができる。
【0028】本発明の他の一態様によれば、命令長の長
い命令と、それ以前の命令長の長い命令との競合が無い
ようにコンパイラで命令列を生成することが可能であ
り、ハードウェアでこれを検出する必要はない。
【0029】本発明の他の一態様によれば、有効な命令
長の短い命令実行後、有効な命令長の長い命令を実行す
る時、及び、有効な命令長の長い命令の実行後、有効な
命令長の短い命令を実行する時には、両者の間に必要な
だけの無効命令を挿入することによりソフト的に両者の
競合を解消できるのでハードウェアで両者の競合を検出
する必要はない。ハードウェアが検出しなくてはならな
いのは、現サイクル以前に実行した命令長の短い命令と
現サイクルに実行する命令長の短い命令との間の競合だ
けである。故に、本発明によれば1マシンサイクルで実
行される命令長の短い命令の数を命令長の長い命令の中
に指示される演算の数より小さくすることにより、平均
的に1マシンサイクルに実行される演算数が高い割に、
現サイクル以前に実行した、現サイクルに実行した命令
との間のハードウェアによる競合検出を容易にできる。
【0030】本発明の他の一態様によれば、命令によっ
て指示された演算結果は直ちに次命令に反映されず、一
定数後の命令から反映されるので、命令実行後、その結
果が反映されるまでに実行される命令は、書き込まれる
前のレジスタの値を読むことができ、ソフトウェアが使
うレジスタの数を実質的に多くし、ソフトウェア上の最
適化により演算の並列度をあげることができる。
【0031】本発明の他の一態様によれば、競合検出の
ためのハードウェアが簡単になり、マシンサイクルの向
上が図られ、処理速度を高めることができる。
【0032】本発明の他の一態様によれば、単一演算を
指示する命令長の短い従来アーキテクチャの命令に、複
数演算を指示する命令長の長い命令を追加して新アーキ
テクチャとできるので新アーキテクチャに従来アーキテ
クチャを含ませ、上位互換性を保つことができる。
【0033】
【実施例】次に本発明の好ましい一実施例について述べ
る。発明の本質と無関係な詳細は省略してある。
【0034】図1に全体ブロック図を示す。1200は
メモリ、1300は命令キャッシュ、1303は命令制
御ユニット、160は演算ユニット、150は命令長判
定手段、109は競合検出手段である。命令制御ユニッ
ト1303は、インタフェース170を用いて、命令キ
ャッシュより命令を読み出し、デコードし、インタフェ
ース180を通じて演算ユニット160を制御する。演
算ユニット160は複数の演算を並列に処理することが
できる。本計算機は単一演算を指示する4バイト長命令
と、複数演算を指示する16バイト長命令を有し、命令
キャッシュ1300には、16バイト長命令間、及び、16
バイト長命令と4バイト長命令の間の競合は無いよう
に、16バイト長命令と4バイト長命令が混在しておか
れている。競合検出手段109は、4バイト長命令間の
みの競合を検出する。命令制御ユニット1303は、命
令長判定手段150を具備し、16バイト長命令実行時
は競合検出手段109の出力を無視し、4バイト長命令
実行時には、競合検出手段109の出力に応じて、セレ
クタ110は並列して実行できる演算を選びデコード
し、インタフェース180を通じて演算ユニット160
を制御する。尚、ここでは、演算ユニットが2つの場合
を示しているが、2つ以上でも良い。
【0035】以下、レジスタ構成,命令フォーマットを
説明し、さらにパイプライン、及び、動作タイミングを
説明し、最後に図1の全体ブロック図の詳細を述べる。
【0036】図2にレジスタ構成を示す。FR0〜FR
31は64ビット長の浮動小数点レジスタ、R0〜R3
1は32ビット長の整数レジスタである。簡単のため、
浮動小数点データは全て倍精度で64ビット長とする。
また、アドレスは32ビット毎に振られているものとす
る。
【0037】本実施例では、命令長の短い命令の命令長
を1語長,命令の長い命令の命令長を4語長とする。
【0038】図3に、命令形式を示す。1語は32ビッ
トである。基本命令,分岐命令,ロード・ストア命令は
1語長命令、複合命令は4語長命令である。基本命令は
全てレジスタ・レジスタ間演算である。本実施例では、
命令長の長い命令の命令長を4語長としたが、実施例に
よっては、もっと長いことも短いこともあり得る。
【0039】本実施例では、簡単のため4語長命令は必
ず4語長境界で区切られた4語に配置されると仮定する
が、この仮定をはずすことは容易である。
【0040】まず基本命令について説明する。OPフィ
ールドはオペコードの種類を、S1とS2フィールドは
2つのソースレジスタの番号を、Tフィールドはターゲ
ットレジスタの番号を、CCフィールドは、フラグの立
て方を示すフィールドである。即ち、S1とS2で示さ
れるレジスタが、OPで示される演算をほどこされ、T
で示されるレジスタに結果が書き込まれる。詳細を図4
に示す。
【0041】次に分岐命令について説明する。dはディ
スプレースメントを示す。分岐命令では、プログラムカ
ウンタPCにdの値が加算される。
【0042】次にロード・ストア命令について説明す
る。Fフィールドは、ロード、又は、ストアするデータ
が浮動小数点データであるか、整数データであるかを示
す。
【0043】SIZEフィールドは、図4に示すよう
に、ロード、又は、ストアするデータの語長を示す。整
数については、1ワードのみが定義され、浮動小数点に
ついては、2〜16ワードが定義されているものとす
る。図4に示すように、FST命令では、FR(S1)が
R(S2)番地に書き込まれる。SIZEが16ワードの
時には、FR(S1)〜FR(S1+7)が、R(S2)番地
から始まる連続する16ワードに書き込まれるものとす
る。また、FLD命令では、R(S1)+R(S2)番地の
データを、FR(T)に書き込む。SIZEが16ワード
の時には、R(S1)+R(S2)番地から始まる連続する
16ワードが、FR(T)〜FR(T+7)に書き込まれ
る。
【0044】次に、図3,図5を用いて、4語長の複合
命令について説明する。この命令では、I1,I2,I
T,SIZE,Fフィールドで示される、ロード・スト
ア操作と、J1,J2,JT,Jフィールドで示される
整数演算と、M1,M2,MTフィールドで示される第
1浮動小数点演算と、A1,A2,AT,Aフィールド
で示される第2浮動小数点演算と、N1,N2,NTフ
ィールドで示される第3浮動小数点演算と、B1,B
2,BT,Bフィールドで示される第4浮動小数点演算
と、CC,d,Nフィールドで示されるフロー制御の計
7つの演算が指示できる。各フィールドの詳細について
は、図5に示す。第1浮動小数点演算と、第3浮動小数
点演算は乗算、第2浮動小数点演算と第4浮動小数点演
算は加減算である。Nフィールドは、本命令に続き、挿
入したい無効サイクルの数を示す。使用方法については
後で述べる。
【0045】整数演算について説明する。Jフィ−ルド
≠1111のときは、図5に示すように通常の演算を行
う。しかし、Jフィ−ルド=1111のときは、データ
の格納されているメモリからキャッシュメモリへのプリ
フェッチを行う。すなわち、R(J1)+R(J2)をアド
レスとしてキャッシュメモリをアクセスして、該当する
データが無ければメモリからキャッシュへデータを転送
する。
【0046】また、1語長命令では、演算結果は次命令
に直ちに反映されるが、4語長命令では、演算結果は3
つ後の命令に初めて反映される。この仕様を好ましく利
用したパイプライン構成と、プログラム例について以下
述べる。
【0047】図6に示すようにパイプライン構成は、I
F,D,E,F,Sの5段である。IFステージでは、
命令の読み出し、Dステージでは、命令のデコード、E
ステージではレジスタの読み出しと演算の一部、Fステ
ージでは、演算、Sステージでは、演算の残りとレジス
タへの演算結果の書き込みが行われる。パイプライン構
成は、整数演算と浮動小数演算で同じとする。
【0048】図7に1語長命令の本実施例による処理フ
ローを示す。1マシンサイクルに2命令処理されるスー
パスカラ方式である。命令1と2,命令3と4,命令5
と6,命令7と8のそれぞれが、特に競合の無い限り、
並列に処理される。このスーパスカラ方式については、
特願昭63−283673号に詳細に記されている。
【0049】次に図8は、命令2の結果を命令3が使う
場合の処理の様子を示したものである。命令3と4のE
ステージは、命令2のSステージが終了するまで引き伸
ばされる。前命令の結果が次命令に反映するという命令
仕様を満足するため、ハードウェアは上記競合を検出
し、図8に示す処理を行わなくてはならない。
【0050】4語長命令の処理の様子を図9に示す。4
語長命令は、1マシンサイクルに1命令ずつ処理され
る。命令1の演算結果は先に述べた仕様により、命令
2,3には反映されず、命令4になって初めて反映され
る。命令1のレジスタ書き込みステージであるSステー
ジは、命令4のレジスタ読み出しステージであるDステ
ージの1つ前にちょうど終了しているので、図8を用い
て説明した様なハードウェアによる競合制御は必要な
い。本実施例では、演算ステージはE,F,Sの3段で
あるが、一般に、演算結果を書き込む前に行う次命令の
数Nとパイプライン段数Mの間にN≧M−1であればハ
ードウェアによる競合制御は不要である。本実施例では
N=2,M=3のケースである。
【0051】また、1語長命令と次の有効な4語長命令
の間には必ず無効な4語長命令を2つおくものとする。
同様に有効な4語長命令と次の1語長命令の間には必ず
無効な4語長命令を2つおくものとする。
【0052】次にこの4語長命令の好ましいプログラム
例について図10,図11,図12を用いて述べる。次
式の計算をする場合を考える。
【0053】 A(i)=A(i)+C×B(i) , 124 但し、Cは定数、A(i),B(i)は、メモリ上に、図1
0のように配置されている64ビットの浮動小数点デー
タである。
【0054】図11は、A(i)の計算をするのに、各サ
イクルに、どんな演算がされるかを説明する図である。
横軸は時刻で、単位はマシンサイクルである。図に書か
れた横長の箱は、処理されるデータの通る演算器のE,
F,Sの3ステージを示す。(1)〜(10)について説明
する。演算は、インデックスiについて4つずつ行われ
る。(1)〜(10)はA(9)〜A(12)を計算するための
処理である。以下、各処理について説明する。定数Cは
FR31にあるものとする。
【0055】(1)A(1)〜A(4)をFR4〜FR7,
B(7)〜B(10)をFR0〜FR3にロードする。
【0056】(2)FR0×FR31をFR8に格納。
【0057】(3)FR1×FR31をFR9に格納。
【0058】(4)FR4+FR8をFR12に格納。
【0059】(5)FR5+FR9をFR13に格納。
【0060】(6)FR2×FR31をFR10に格
納。
【0061】(7)FR3×FR31をFR11に格
納。
【0062】(8)FR6+FR10をFR14に格
納。
【0063】(9)FR7+FR11をFR15に格
納。
【0064】(10)FR12〜FR15をA(9)〜A
(12)にストアする。
【0065】(1)〜(10)の演算スケジューリングに
関しては、1つの演算に、図10を用いて説明した様に
3サイクルかかることが考慮されている。A(9)〜A
(12)の処理について説明したが、A(13)〜A(1
6),A(17)〜A(20)…の処理も全く同様に行われ
る。各演算器は1サイクルピッチでパイプラインされて
おり、A(13)〜A(16),A(17)〜A(20)…の処
理をA(9)〜A(12)の処理に重ねて、図11のように
処理可能である。
【0066】さて、図11に示した処理を実現する4語
長命令列を示したのが図12である。A(1)〜A(24)
の演算は、図12に示す命令1〜命令22の22命令で
実現できる。使用するレジスタはFR0〜FR15,F
R31の17本である。命令1,3,5,7,9,1
1,13,15でどのデータがロードされるか、又、命
令12,14,16,18,20,22でどのデータが
ストアされるかを、図10に示した。命令3はFR0〜
FR3に値を書き込むか、その結果が反映するのは命令
6以降であるので、命令1でロードしたFR0〜FR3
の値を命令4で使用することが可能である。命令1の結
果が、命令2にすぐに反映する従来の方式で図11と同
じ処理を行おうとすると、命令3でFR0〜FR3に書
き込みを行うことはできず、FR16〜FR19等、新
たなレジスタが必要となる。ところが、使用できるレジ
スタの数には限りがあり、レジスタの数がネックにな
り、処理サイクル数が伸びてしまう。図12のプログラ
ムは、現命令の結果が3命令後にしか反映しないという
遅延書き込みを生かした結果、17本のレジスタを使う
だけで、演算が可能となったのである。
【0067】本例で示した様に遅延書き込みは、レジス
タを指定するオペコードのフィールドを増加させずに、
実質的に使用できるレジスタの数を増やす効果がある。
【0068】図12上で、“X”印は何も演算するもの
がない為、空いてしまったフィールドであるが、特に、
処理の開始時の命令1〜6,終了時の命令17〜22に
空フィールドが多い。しかし、これらの空フィールド
は、コンパイラにより、次の一連の処理の開始処理と、
現在の一連の処理の終了処理を重ねることにより、減ら
すことができる。また、全くすることのない、命令2,
4,21は、命令1,3,20のNフィールドを“0
1”にすることにより、省略することができる。
【0069】本発明では、演算結果を書き込むレジスタ
の指定は、演算を指定する命令で行うので、命令4,2
1が初めて省略できる。演算結果を書き込むレジスタの
指定を、書き込みが行われるステージに発行される命令
で指定する方式では、命令4,21では命令1,18で
演算した結果の書き込み指定が必要であり、省略不可で
ある。
【0070】また、図12のプログラムの前に1語長命
令があった時に、図12の命令1の前に2つの4語長の
無効命令を挿入しなくてはならないが、これは、Nフィ
ールドが“01”である4語長の無効命令を1つ入れれ
ばよい。また、図12のプログラムの後に1語長命令が
来る場合、図12の命令22のNフィールドを“10”に
すればよい。
【0071】このように命令を長くしてNフィールドを
設け、有効に使用することにより、コードサイズを削減
することが可能である。また、1語長命令では4語で4
つの演算しか指示できないのに比べ、4語長命令では4
語で、図5に示すように7つの演算が指示できる。
【0072】次に、プログラム作成方法について述べ
る。プログラムは FORTRAN,Cなどの高級言語で記述
し、コンパイラにより命令列に変換する。
【0073】図26に本発明に関するコンパイラの処理
フローを示す。高級言語によるプログラムは、字句解析
部,構文解析部,意味解析部を経て、中間コードに変換
される。中間コードは、最適化部によって最適化され、
コード生成部により図3に示した命令列に変換される。
ここで、最適化部とコード生成部を合わせて合成部とい
う。この合成部に本願発明に関する特徴がある。すなわ
ち、この合成部では、中間コードを見て並列してできる
演算ができるだけ多くなるように命令列を生成する並列
化部を有する。この並列化部では、並列してできる演算
数が多いときには4語長命令を用い、並列してできる演
算数の少ないときには1語長命令を用いる。ここで、4
語長命令を用いるか1語長命令を用いるかの判断基準
は、並列して実行できる演算数により決まるが、この演
算数はシステムによって異なるので、プログラムを作成
するときにパラメータとしてコンパイラに指定できるよ
うになっている。上述のようにすることにより、コード
サイズが小さくなり、主メモリ、及び、キャッシュメモ
リの使用効率が上がり、処理速度が高められる。
【0074】次に、合成部の特徴としてレジスタの割当
てがある。4語長命令はその演算結果が3つ後の命令に
初めて反映されるので、特別な配慮が必要になる。例え
ば、図12において命令1の結果は命令4に初めて反映
されるので、命令2,3では命令1の結果を使用せずに
できる演算をできるだけたくさん割り付けておく。この
時、演算できる命令が1つも無いときは、無効命令生成
部によって無効命令を挿入しておく。また、合成部で
は、1語長命令と次の有効な4語長命令との間には必ず
無効な4語長命令を2つ挿入しておく。逆に、有効な4
語長命令と次の1語長命令との間にも必ず無効な4語長
命令を2つ挿入しておく。ここで、先に述べたように無
効命令はNフィールドを用いることによって省略でき
る。すなわち、本実施例のコンパイラは、長い命令間の
競合を検出し、Nフィールドを用いて、命令実行後に挿
入すべき無効サイクルの数を指定できるので、ハードウ
ェアで長い命令間の競合を検出したり、処理をする必要
が無い。
【0075】次に、これまでに説明した命令の処理を行
うハードウェアの一実施例について説明する。図13は
図1を詳細化した全体構成である。1300は命令キャ
ッシュ、1301は命令キャッシュコントローラ、13
02は命令処理フローを制御する分岐ユニット、130
3は、命令をデコードする命令制御ユニット、1304は整
数演算ユニット、1307は浮動小数点演算ユニット、
1306はデータキャッシュ、1305はデータキャッ
シュコントローラ、1308はメモリインタフェースユ
ニットである。
【0076】命令制御ユニット1303は、命令キャッ
シュ1300より実行すべき命令をバス1310を通し
て受け取り、命令をデコードし、整数演算ユニット制御
信号1318を整数演算ユニット1304に、浮動小数
点演算ユニット制御信号1314を浮動小数点演算ユニット
1307に、分岐ユニット制御信号1312を分岐ユニ
ット1302に送出する。さらにプログラムカウンタ3
500の制御のためにモード信号110も、分岐ユニッ
ト1302に送出する。また、整数演算ユニット130
4より、フラグ1317を、浮動小数点演算ユニットよ
りフラグ1315を受け取る。
【0077】整数演算ユニット1304は、オペランド
アドレス1319をデータキャッシュ1306と、デー
タキャッシュコントローラ1305に送出する。データ
キャッシュより読み出されたデータは、データバス13
20を通して、整数演算ユニット1304、又は、浮動
小数点演算ユニット1307に送出される。データキャ
ッシュの中に所望のデータが無い時には、データキャッ
シュコントローラ1305が、メモインタフェースユニット
1308にインタフェース信号1321を通して起動を
かけ、主メモリよりデータを読み出す。この間の待合わ
せ制御を、信号1316を通して、命令制御ユニット1
303と行う。
【0078】分岐ユニットは、次に読み出すべき命令の
アドレス1309を、命令キャッシュ1300と、命令
キャッシュコントローラ1301に送出する。所望の命
令が命令キャッシュ1300の中に無い時には、命令キ
ャッシュコントローラ1301は、メモリインタフェースユ
ニット1308にインタフェース信号1313を通して
起動をかけ、主メモリより、命令を読み出す。この間の
待合わせ制御を信号1311を通して、命令制御ユニッ
ト1303と行う。
【0079】整数演算ユニット1304の詳細を示した
のが、図14である。1400はデコーダ、1401は
第1ALU、1402は第2ALU、1403は整数レ
ジスタである。第1ALUにはソースバス1406,1
407を通して、整数レジスタファイル1403からデ
ータが送られ、演算結果は、ターゲットバス1322を
通して、整数レジスタファイル1403に返される。ま
た、第2ALUには、ソースバス1408,1409を
通して、整数レジスタファイル1403からデータが送
られ、演算結果は、ターゲットバス1319を通して整
数レジスタファイル1403に返される。1317−1
は、第1ALUより出力されるフラグ、1317−2は
第2ALUより出力されるフラグである。バス131
9,1322は、ロードストア及びプリフェッチ時のアドレ
スとしてデータキャッシュ1306に送出される。
【0080】図13の浮動小数点演算ユニット1307
の詳細を示したのが、図15である。1501はデコー
ダ、1502は浮動小数点レジスタファイル、1503
は第1乗算器、1504は第2乗算器、1505は第1
加算器、1506は第2加算器である。第1乗算器15
03には、ソースバス1517,1518を通して、第
2乗算器1504には、ソースバス1515,1516
を通して、第1加算器1505には、ソースバス151
3,1514を通して、第2加算器1506には、ソー
スバス1511,1512を通して、浮動小数点レジス
タファイル1502よりデータが送られ、演算結果はそれぞ
れ、ターゲットバス1507,1508,1509,1
510を通して浮動小数点レジスタファイルに書き込ま
れる。
【0081】1315−1は、第1乗算器1503のフ
ラグ、1315−2は第2乗算器1504のフラグ、1
315−3は第1加算器1505のフラグ、1315−
4は第2加算器1506のフラグである。
【0082】図15の浮動小数点レジスタファイル15
02の詳細を示したのが、図16である。1600〜1
608は浮動小数点レジスタ、1314−1〜1314
−9はそれぞれ浮動小数点レジスタ1600〜1608
の制御信号である。1610はロードアライナ、160
9はストアアライナである。1611〜1618は、浮
動小数点レジスタ1600〜1608を、メモリと結ぶ
バスである。バス1611は、FR0,16,24に、バス
1612は、FR1,9,17,25に接続されてい
る。バス1613,1614,1615,1616,1
617も同様で、バス1618にはFR7,15,2
3,31が接続されている。ロード命令実行時には、バ
ス1320を通して、送られてきたデータを、ロードア
ライナ1610により、1611〜1618の内、所望のバ
スに乗せかえ、所望のレジスタに書き込む。またストア
命令実行時には、1611〜1618にレジスタよりデ
ータが読み出され、ストアアライナ1609により、バ
ス1320の所望の位置にデータが出力される。
【0083】図16の浮動小数点レジスタ1600の第
1の実施例を記したのが、図17である。レジスタ16
00について示したが、1601〜1608も同様であ
る。図17に示すようにレジスタ1600は64ビット
のレジスタの集まりである。1700〜1763はそれ
ぞれ1ビットのレジスタである。1511−00〜15
18−00はレジスタ1700の読み出しバス、150
7−00〜1510−00はレジスタ1700の書き込
みバス、1611−00はレジスタ1700の読み書き
バスである。レジスタ1763のバス構成も同様であ
る。
【0084】図28は、図13のデータキャッシュの詳
細を図示したものである。2801はデータを保持する
データアレイ、2800はロードストア演算用のアドレ
スアレイ、2802はプリフェッチ用のアドレスアレイ
である。アドレスアレイ2800と2802は同じ内容のデ
ータを保持している。1語長命令のロードストア命令実
行時には、バス1319または1322を用いてアドレ
スアレイ2800とデータアレイ2801がアクセスさ
れる。4語長命令実行時には、バス1322を用いてア
ドレスアレイ2800とデータアレイ2801がアクセ
スされる。また、バス1319を用いてプリフェッチの
ためにアドレスアレイ2802がアクセスされる。
【0085】図29は、ロードストア演算でキャッシュ
ミスを生じたときのパイプラインを示す図である。パイ
プラインは、データがメモリからキャッシュメモリへ転
送される間ロックされる。図29でφで示されるのがロ
ックされる期間である。
【0086】一方、プリフェッチ演算のときには、アド
レスアレイ2802がヒットすれば何も行わない。ミス
すれば、そのアドレスを含むブロックがメモリよりデー
タアレイ2801にバスを通して転送される。但し、こ
の時はパイプラインはロックされない。コンパイラによ
り、ミスする可能性のあるロードストア演算の前にプリ
フェッチを設定しておけば、メモリからキャッシュメモ
リへの転送を他の演算と並列に行うことができる。その
ために、図29で示したパイプラインロックによる性能
低下を避けることができる。
【0087】図17のレジスタ1700の回路構成例を
記したのが、図18である。1816と1817はインバー
タ、1802〜1815はクロックドインバータであ
る。
【0088】1314−1−1〜8がhighになると、そ
れぞれバス1511−00〜1518−00にレジスタ
の値が出力される。また、1314−1−10〜14が
highになると、バス1510−00〜1507−00の
値がレジスタに書き込まれる。また、1314−1−9
がhighになるとレジスタの値がバス1611−00に出
力され、1314−1−10がhighになると、バス16
11−00がレジスタに書き込まれる。信号1800は
予備の読み出しポート、1801は予備の書き込みポー
トである。1800と1801の用途については後に説
明する。
【0089】図19は、図16の浮動小数点レジスタ1
600の第2の実施例を示したものである。図19の実
施例は、図17の実施例と比較して1900〜1963
の第1シャドウレジスタ,2000〜2063の第2シ
ャドウレジスタが付加されている点が異なっている。第
1シャドウレジスタ1900は信号1800を通して、
レジスタ1700の値を読み取ることができる。また、
信号1964を通して第2シャドウレジスタ2000
に、第1シャドウレジスタ1900の値を送出する。第
2シャドウレジスタ2000は、自分の値を信号180
1を通してレジスタ1700に送出する。即、レジスタ
1700〜1763,第1シャドウレジスタ1900〜
1963,第2シャドウレジスタ2000〜2063は
リング状のシフトレジスタを構成している。更に第1シ
ャドウレジスタ1900〜1963,第2シャドウレジ
スタ2000〜2063は、レジスタ1700〜176
3と同様に、バス1611−00〜1611−63を通
して、読み書きができる。
【0090】1314−1−15は、第1シャドウレジ
スタ1900〜1963の制御信号、1314−1−1
6は、第2シャドウレジスタ2000〜2063の制御
信号である。
【0091】シャドウレジスタの目的は、4語長命令実
行時の割込みからの復帰を可能にすることである。図2
0〜図22を用いてその動作を説明する。W′ステージ
は、レジスタから、第1シャドウレジスタFRS1に書
き込むステージ、W″は第1シャドウレジスタFRS1
から第2シャドウレジスタFRS2に書き込むステージ
である。
【0092】図20は割込みのない通常時の4語長命令
の動作である。FR,FRS1,FRS2のタイムチャ
ート上の数字は、どの命令の演算結果が各レジスタに入
っているかを示す。図20の通り、通常時は、FRから
FRS1へ、FRS1からFRS2へと1サイクルピッ
チで演算結果がシフトされる。
【0093】図21は、命令3と命令4の間に割込みが
入った時の動作を示す図である。命令4,5,6,7は
無効化される。各レジスタは割込み発生後値の更新を止
め、FRは命令3の結果を、FRS1は命令2の結果
を、FRS2は命令1の結果を保持する。また、プログ
ラムカウンタには割込みベクタがセットされる。割込み
ベクタから始まる割込み処理プログラムで、FR,FR
S1,FRS2の値をメモリ上に退避する図22は、割
込み処理からの復帰時の動作を説明する図である。ま
ず、割込み処理プログラムの最後に、図22に示すよう
に命令1の結果をFRに、命令2の結果をFRS2に、
命令3の結果をFRS1に復帰する。こうすることによ
り、命令4のレジスタ読み出しステージのEステージ
で、命令1の結果を見ることができる。命令4のEステ
ージ終了後、FRの値をFRS1に、FRS1の値をF
RS2に、FRS2の値をFRへコピーする。この結
果、命令5のEステージでは命令2の結果を見ることが
できる。命令5のレジスタ読み出しステージのEステー
ジ終了後も、同じ動作をさせることにより、命令6のレ
ジスタ読み出しステージのEステージで、命令3の結果
を見ることができる。以後の処理は通常通りで、1命令
実行毎にFRの値をFRS1へ、FRS1の値をFRS
2へコピーし、FRS2の値は捨てる。
【0094】以上、説明した様に、シャドウレジスタを
設けることにより、遅延書き込み命令実行時でも割込み
を受け付け復帰することができる。シャドウレジスタの
無い場合は、図21で命令3の結果しか退避できず、図
22の割込み復帰時の命令4で、命令1の結果を見るこ
とができない。これは、命令2,3が命令1と同じレジ
スタに値を書き込む場合があるからである。例えば図1
2のプログラムでも、命令1と同じレジスタに命令3で
書き込む。
【0095】次に、シャドウレジスタ付加によるハード
ウェアの増加量について述べる。レジスタの大きさは、
ポート数にほぼ比例する。図17と図19を比べれば分
かるように、シャドウレジスタのポート数は3と、レジ
スタのポート数13に比べてずっと小さいので、シャド
ウレジスタ付加によるハードウェアの増加量は小さい。
【0096】図41は、図13の命令制御ユニット13
03の実施例である。150は命令語長判定手段、10
1は第1命令レジスタ、102は第2命令レジスタ、1
03は第3命令レジスタ、104は第4命令レジスタで
ある。4100はモードレジスタである。100はモー
ド制御回路、105はレジスタ読み出し制御回路、10
6はレジスタ書き込み制御回路、107はファンクショ
ン制御回路、108はパイプライン制御回路、109は
競合検出回路である。
【0097】4語長命令は、必ず4語境界をまたがない
様に配置されているものとする。また、1語長命令は、
2語境界に囲まれた2語が同時に実行されるものとす
る。本実施例では命令語長判定は、図3で説明した様に
オペコードの中の最も左のビット、即、図41の信号1
310−1−1(C000)そのものを見ることにより行
われる。
【0098】モード制御回路100の詳細を示したのが
図27である。2700は制御回路、2701はNフィ
ールド1310−4−1を保持するレジスタ、2702
はディクリメンタ、2703はコンパレータである。コ
ンパレータの出力信号VALID(2704)は、制御回路
2700に送り出される。レジスタ2701にセットさ
れたNフィールドの値は、ディクリメンタ2702によ
り1サイクルごとに1減算され、00になったときに信
号VALID(2704)がアサートされる。信号VAL
IDはネゲート時に無効サイクルの挿入を指示し、アサ
ート時に命令の実行を指示する信号である。
【0099】制御回路2700は、競合検出回路出力1
16(BUB)と、命令アドレスの下位から2ビット目1
309−1(CA30)と、オペコード中の4語長命令か
どうかを示すビット1310−1−1(C000)と信号
2704(VALID)を見て5つのモードの内、どれ
であるかを判定し、図23に示すように第1〜4命令レ
ジスタへのオペコードのセット,プログラムカウンタの
インクリメントを信号110により行う。また、現サイ
クルがどのモードであるかを示す信号110は、モード
レジスタ4100にラッチされ、その出力信号130は
レジスタ読み出し制御回路105,レジスタ書き込み制
御回路106,ファンクション制御回路107,パイプ
ライン制御回路108,競合検出回路109に送出され
る。図23で、C0〜3は、4語境界内にある4語で、
若いアドレスよりC0,C1,C2,C3と命令が並ん
でいるものとする。C0の最左ビットC000により、
図3に示すように、1語長命令か4語長命令かが判定で
きる。1語命令モード1は、4語境界内の左の2つの命
令(C0,C1)を実行するモードで、第1命令レジスタ
にC0が、第2命令レジスタにC1がセットされプログ
ラムカウンタPCは+2される。また、1語命令モード
2は、4語長境界内の右の2つの命令(C2,C3)を実
行するモードで、第1命令レジスタにC2,第2命令レ
ジスタにC3がセットされ、プログラムカウンタPCは
+2される。即ち、1語長命令実行時には、第1命令レ
ジスタと、第2命令レジスタのみ用い、第3命令レジス
タと第4命令レジスタは用いない。4語長命令モード
は、4語長命令(C0,C1,C2,C3)実行するモ
ードで、第1〜4命令レジスタにC0〜C3がセットさ
れ、プログラムカンタPCは+4される。競合モードと
は、競合検出回路109が競合を検出した場合で、第1
〜4命令レジスタ及び、モードレジスタ4100は前サ
イクルの値を保持する。また、プログラムカウンタPC
の更新は行わない。無効命令モードは、現サイクル以前
に実行した4語長命令のNフィールドで、現サイクルに
ハードウェアで無効命令(NOP)を挿入することを指示
されている場合で、命令レジスタには無効命令がセット
され、プログラムカウンタPCは更新されない。これに
より、無効サイクルが1サイクル挿入されることにな
る。
【0100】1語長命令実行時にはC0、又は、C2の
実行の為に、第1ALU1401(図14),第1乗算器150
3(図15),第1加算器1505(図15)を用いる。一
方、C1、又は、C3の実行の為に、第2ALU1402(図1
4),第2乗算器1504(図15),第2加算器150
6(図15)を用いる。また、4語長命令実行時には、ロ
ードストア演算のアドレス計算を第1ALU1401(図14)
で、整数演算を第2ALU1402(図14)で、第1浮動小数
点演算を第1乗算器1503(図15)で、第2浮動小数
点演算を第1加算器1505(図15)で、第3浮動小数
点演算を第2乗算器1504(図15)で、第4浮動小数
点演算を第2加算器1506(図15)で行う。
【0101】図41のレジスタ読み出し制御回路10
5,レジスタ書き込み回路106,ファンクション制御
回路107は、モード制御回路出力のモード指定信号1
10と第1〜4命令レジスタの値により、上述の演算器
割当て規則に従い、整数演算ユニット1304(図13)
の制御信号1318を生成する。レジスタ読み出し制御
回路について、更に詳細に説明したのが図24である。
6つの演算器のそれぞれの2つの入力に入れるレジスタ
の指定を、オペコードのどのフィールドで行うかを示し
ている。フィールドの略号については、図3の複合命令
の欄に示す。4語長命令のJ1とA1は、1語長命令の
S2と、4語長命令のJ2とA2は、1語長命令のS2
と同じ位置であることを利用し、図24上のフィールド
指定には、1語長命令時も、J1,J2,A1,A2を
用いて述べている。これは、C0とC1の区別の為であ
る。
【0102】次に図41の競合検出回路109について
述べる。図7〜図9を用いて説明したように、本実施例
では4語長命令間の競合を検出する必要はない。また、
本実施例では、1語長命令実行用の全ての演算器を2重
化している為、同時に実行する2つの1語長命令間の演
算器による競合はあり得ない。簡単のためにレジスタ競
合も無いものとする。本実施例をレジスタ競合がある場
合に拡張することは、例えば、特願昭63−283673号のよ
うに容易である。前に述べたように、1語長命令と次の
有効な4語長命令の間に、必ず無効な4語長命令が2つ
入り、同様に、有効な4語長命令と次の1語長命令との
間には必ず無効な4語長命令が2つ入っているので、4
語長命令と1語長命令間の競合も有り得ない。故に、競
合検出回路109は、現サイクルの1語長命令と、それ
以前に実行された1語長命令間の競合のみを検出すれば
よい。モード制御回路100の制御により、1語長命令
は、第1命令レジスタ101と第2命令レジスタ102
にのみセットされるので、競合検出回路109は、第1
命令レジスタ101と第2命令レジスタ102のみを見
ればよく、第3命令レジスタ103,第4命令レジスタ
104は見る必要はない。
【0103】図25は、競合検出回路109の実施例の
ブロック図である。2501〜2504はレジスタ、250
5はマスク回路、2506〜2521はコンパレータで
ある。図7において、命令7,8を現命令とし、命令3
〜6との競合検出を考える。命令1,2のSステージの
次に命令7,8のEステージが来るので、命令1,2と
命令7,8の間の競合はない。図25のレジスタ250
1には、命令5が書き込むレジスタの番号が、レジスタ
2503には、命令6が書き込むレジスタの番号が、レ
ジスタ2502には、命令3が書き込むレジスタの番号
が、レジスタ2504には命令4が書き込むレジスタの
番号が記憶されている。上記4つのレジスタと、命令7
及び命令8が読み出す4つのレジスタの番号を、250
6〜2521の16個のコンパレータで比較し、結果を
マスク回路2505に送出する。マスク回路2505
は、モード制御回路100の出力130や、パイプライ
ン制御回路108の出力115を見て、コンパレータの
ヒット信号が有効であるかどうかを判定し、有効であれ
ば競合を示す信号116をアサートする。即、コンパレ
ータの出力がレジスタの一致を示していてもその命令が
無効化される場合は、信号116をネゲートする。この
マスク回路2505により、モード信号130が4語長
モードであることを示している時には、信号116をネ
ゲートする。
【0104】次にパイプライン制御回路108について
説明する。パイプライン制御回路は、モード信号13
0,図13の整数演算ユニット1304からのフラグ信
号1317,図13の浮動小数点演算ユニット1307から
のフラグ信号1315,図13のデータキャッシュコン
トローラとのインタフェース1316,図13の命令キ
ャッシュコントローラとのインタフェース1311を用
いて、図13の分岐ユニット1302制御信号1312
を送出し、分岐ユニットを制御する。即ち、有効な分岐
命令が来た時には、分岐を行い、それ以外の時には、モ
ード信号110を用いて、図23のように分岐ユニット
内にあるプログラムカウンタを制御する。またパイプラ
イン制御回路108は、信号115を、レジスタ読み出
し制御回路105,パイプライン書き込み制御回路10
6,ファンクション制御回路107,競合検出回路10
9を送出し、パイプラインの状態を制御する。即ち、命
令キャッシュ、あるいはデータキャッシュのアクセスに
際してミスを生じた時に図29に示すようにパイプライ
ンをロックする。
【0105】次に上記実施例の第1の変形例について述
べる。上記実施例において、4語長命令は演算結果を3
つ後の命令に初めて反映することにより、4語長命令間
の競合検出部が不要になった。同様の効果を達成するた
めに、4語長命令でも演算結果を次の命令に反映する
が、4語長命令間での競合をコンパイラで避けるように
することもできる。具体的には、ある4語長命令が書き
込むレジスタを次の4語長命令と次の次の4語長命令と
で読まないようにするのである。このようにすることに
よって、第1の実施例のレジスタ数を実質的に増やす効
果は失われるが、図19で示したシャドウレジスタは不
要になる。
【0106】さらに、上記実施例の第2の変形例につい
て述べる。図3で示した実施例では、命令の中に1語長
命令か4語長命令かを示すビットを持っていたが、計算
機の中に1語長命令か4語超命令かを示すフラグを持
ち、このフラグを命令で制御することも可能である。こ
れによって、フラグを制御する命令が必要になるが、1
度フラグを切り換えれば毎回命令の中で語長を示す必要
が無くなるという利点がある。
【0107】図30〜図32を用いて、上記実施例の第
3の変形例について述べる。
【0108】本変形例では、図30の様に浮動小数点レ
ジスタを32本から128本に拡張している。図31に
命令フォーマット,図32に命令の説明を示す。FR0
〜31は基本命令,複合命令の両者で使用可であるが、
FR32〜FR127は、複合命令でのみ使用するレジ
スタである。レジスタを指定するI1,IT,MT,A
1,AT,N1,NT,B1,BTの各フィールドは図
31に示すように、各7ビットと増加する。本変形例で
は、ソースレジスタの片方をターゲットレジスタと一致
させることにより、全体を4語に収めているが、そうし
たくなければ、全体の語長をさらに長くすることも可能
である。
【0109】本変形例では、基本命令に複合命令を追加
し、複合命令で基本命令が使えるレジスタの数よりも、
多くのレジスタを使えるようにすることにより、全体と
して、使用可能なレジスタ数を増やせるという効果があ
る。本変形例ではFR0〜31は基本命令と複合命令の
両方でアクセス可であるが代案として、基本命令用の3
2本と、複合命令用の128本のレジスタを独立のもの
とすることも可能である。
【0110】さらに本変形例では、図32に示すよう
に、メモリからキャッシュへのプリフェッチの際にプリ
フェッチする語数をJTフィールドで指定可となってい
る。これにより一度に複数のブロック転送を行うよう命
令で指示でき、効率があがるという利点がある。
【0111】図33,図34を用いて上記実施例の第4
の変形例について述べる。本変形例では、データのプリ
フェッチをJ1,J2,JTといった整数演算フィール
ドで行わずに、1ビットのPフィールドで行っている点
が異なる。P=1の時には、ロード・ストア演算に用い
られたアドレスを含むブロックの次のブロックがプリフ
ェッチされる。こうすることにより、プリフェッチに要
するフィールドが節約でき、ロード・ストア演算,整数
演算,プリフェッチの3動作が並列指定可となるという
利点が生まれる。
【0112】図35はもう1つの実施例について説明す
る全体ブロック図である。
【0113】3500はプログラムカウンタ、3501
は命令を格納するメモリ手段、3502はマスク・スイッチ
回路、3503〜3506はM個のnバイト長の命令レ
ジスタ、3507はデコーダ、3508,3509はL
個(L1)の演算ユニット、150は命令長判定手
段、109は競合検出回路、100はモード制御回路、
4100はモードレジスタである。
【0114】プログラムカウンタ3500は命令アドレ
ス3513を、命令を格納するメモリ手段3501に送
出する。3501の中には、nバイト長の命令とn×M
バイト長(M>1)の命令が混在しており、命令アドレ
ス3513で指定された命令を含む複数の命令をマスク
・スイッチ回路3502に送出する。マスク・スイッチ
回路3502はnバイト命令であればM個の命令レジス
タの内N個(1N<M)の命令レジスタ3503〜3
504の内の少なくとも1つにセットし、n×Mバイト
令命であれば命令レジスタ3503〜3506にセット
する。デコーダ3507は命令レジスタ3503〜35
06よりの命令3519〜3522をデコードし、L個
の演算ユニットを制御信号3523,3524を用いて
制御する。命令長判定手段150は、少なくとも命令3
514の一部を見て、命令長を示す信号3526をモー
ド制御回路100に送出する。競合検出回路109は、
命令レジスタ3503〜3504を見て、nバイト命令
間の競合の有無を知らせる信号116をモード制御回路
100に送出する。モード制御回路は、命令長,競合の
有無,プログラムカウンタの値によりモードを判定し、
制御信号110により、プログラムカウンタ,マスク・
スイッチ回路,デコーダを制御する。
【0115】本実施例と、図1〜図29及び図41の実
施例との対応を説明する。図1〜図29の実施例は、n
=4,M=4,N=2,L=2の場合である。また演算
ユニットは整数演算ユニットと浮動小数点演算ユニット
であった。また、図35のマスク・スイッチ回路は、図
41の第1〜4命令レジスタ101〜104にセットす
る命令を生成しているセレクタや、NOPによるマスク
等に対応する。また図35の競合検出回路109は、図
41の競合検出回路109に対応する。図35の命令長
判定手段150は図41の命令長判定手段150に対応
する。図35のモード制御回路100は、図41のモー
ド制御回路100に対応する。
【0116】図3,図5,図10,図11,図12で示
した実施例では、図10の様にメモリ上でのデータ配置
が制約されるという欠点があった。これを解決したのが
図36〜図40に示す実施例である。本実施例の複合命
令では、図36,図37に示すように、1命令でロード
・ストア等のメモリ演算を2個実行できる。ハードウェ
アとしてはキャッシュを2ポート化するか、あるいは、
1マシンサイクルに2度アクセス可能な構成にすればよ
い。図39,図40に図11,図12に示したものと同
じ問題を解くプログラムを示す。
【0117】これまでに説明した実施例では、命令長の
短い命令と長い命令を混在した計算機において、長い命
令の演算結果を、以後の任意の命令から反映する。ある
いは、長い命令は、次命令以降に続く無効命令の数を任
意に指定できる。あるいは、長い命令は、メモリまたは
キャッシュメモリからレジスタへデータを転送する第1
のフィールドと、メモリからキャッシュメモリへデータ
を転送する第2のフィールドを設けるといった工夫を行
ったが、これらの工夫は、長い命令のみを有するVLI
W型計算機に対しても有効である。
【0118】
【発明の効果】以上説明したように、本実施例では、4
語長命令を用いて、4語で7つの演算を指定できるが、
競合検出は、4×4=16個のコンパレータで行うこと
ができる。4語長命令間の競合検出をハードウェアで行
おうとすると、前サイクルの分岐演算を除く、6個の演
算の書き込みレジスタと前々サイクルの同じく6個の書
き込みレジスタと、現サイクルの12個の読み出しレジ
スタとの間の競合検出が必要で、(6+6)×12=14
4個のコンパレータが必要となる。本実施例では、これ
に比して16/144のハードウェアで済むという利点
がある。
【0119】本実施例では、4語長命令で指示される演
算数7に対して、1マシンサイクルで処理される命令長
の短い命令が2である。これにより、2演算分の競合検
出回路で最大7演算の並列処理が得られるという効果が
ある。
【0120】本発明によれば、並列に実行する演算の数
を増やし、性能を高めることができる。
【0121】本発明によれば、コードサイズを小さくす
ることができる。これによりコードキャッシュのヒット
率が高まり、性能を高めることができる。
【0122】本発明によれば、並列に実行する演算内の
ハードウェアによる競合検出を容易にすることができ
る。これにより、マシンサイクルを高めること、ハード
物量を減らし、コストを下げることができる。特に、長
い命令の中で指定する演算数が大の時、この効果は著し
い。
【0123】本発明によれば、現サイクル以前に実行し
た命令と、現サイクルに実行する命令との間のハードウ
ェアによる競合検出,待合わせを容易にすることができ
る。これにより、マシンサイクルを高めること、ハード
物量を減らし、コストを下げることができる。
【0124】本発明によれば、ソフトウェアが用いられ
るレジスタの数を実質的に多くし、ソフトウェア上の最
適化により演算の並列度をあげ、性能を高めることがで
きる。
【0125】本発明によれば、従来アーキテクチャとの
上位互換性を保つことができる。
【図面の簡単な説明】
【図1】命令制御ユニットの全体図である。
【図2】レジスタ構成を示す図である。
【図3】命令形式を説明する図である。
【図4】1語長命令の動作を説明する図である。
【図5】4語長命令の動作を説明する図である。
【図6】パイプラインステージを説明する図である。
【図7】競合無の時の1語長命令処理のパイプラインを
示す図である。
【図8】競合有の時の1語長命令処理のパイプラインを
示す図である。
【図9】4語長命令のパイプラインを示す図である。
【図10】データのメモリ上での配置を示す図である。
【図11】4語長命令を用いた時の演算の様子を説明す
る図である。
【図12】4語長命令を用いたプログラムを説明する図
である。
【図13】全体ブロック図である。
【図14】整数演算ユニットのブロック図である。
【図15】浮動小数点演算ユニットのブロック図であ
る。
【図16】浮動小数点レジスタファイルのブロック図で
ある。
【図17】浮動小数点レジスタのブロック図である。
【図18】浮動小数点レジスタ1ビット分の回路図であ
る。
【図19】浮動小数点レジスタのブロック図である。
【図20】シャドウレジスタの動作を説明する図であ
る。
【図21】シャドウレジスタの動作を説明する図であ
る。
【図22】シャドウレジスタの動作を説明する図であ
る。
【図23】モード制御回路の動作を説明する図である。
【図24】レジスタ読み出し制御回路の動作を説明する
図である。
【図25】競合検出回路のブロック図である。
【図26】コンパイラの処理フローである。
【図27】モード制御回路の詳細を示した図である。
【図28】データキャッシュの詳細を示したものであ
る。
【図29】ロードストア演算でキャッシュミスを生じた
ときのパイプラインを示す図である。
【図30】その他の実施例を示す図である。
【図31】その他の実施例を示す図である。
【図32】その他の実施例を示す図である。
【図33】その他の実施例を示す図である。
【図34】その他の実施例を示す図である。
【図35】その他の実施例を示す図である。
【図36】その他の実施例を示す図である。
【図37】その他の実施例を示す図である。
【図38】その他の実施例を示す図である。
【図39】その他の実施例を示す図である。
【図40】その他の実施例を示す図である。
【図41】図1を詳細化した図である。
【符号の説明】
100…モード制御部、101…第1命令レジスタ、1
02…第2命令レジスタ、103…第3命令レジスタ、
104…第4命令レジスタ、105…レジスタ読み出し
制御、106…レジスタ書き込み制御、107…ファン
クション制御、108…パイプライン制御、109…競
合検出部。
───────────────────────────────────────────────────── フロントページの続き (72)発明者 山田 弘道 茨城県日立市久慈町4026番地 株式会社日 立製作所日立研究所内 (72)発明者 前島 英雄 茨城県日立市久慈町4026番地 株式会社日 立製作所日立研究所内

Claims (17)

    【特許請求の範囲】
  1. 【請求項1】レジスタとメモリとプログラムカウンタを
    有し、上記プログラムカウンタで指示される上記メモリ
    に格納されている命令を読み出し、上記命令の指示する
    演算を上記レジスタと上記メモリと上記プログラムカウ
    ンタに対して実行する並列演算機能を有する計算機にお
    いて、 上記命令は単一演算を指示する命令長の短い命令又は複
    数演算を指示する命令長の長い命令であって、上記プロ
    グラムカウンタで指示された上記命令が上記命令長の短
    い命令か上記命令長の長い命令かを判定する命令語長判
    定手段と、上記命令語長判定手段によって上記プログラ
    ムカウンタで指示された上記命令が命令長の長い命令で
    あれば上記レジスタに上記命令を設定し、上記プログラ
    ムカウンタで指示された上記命令が命令長の短い命令で
    あれば所定のレジスタに上記命令を設定する命令選択手
    段とを有することを特徴とする並列演算機能を有する計
    算機。
  2. 【請求項2】レジスタとメモリとプログラムカウンタを
    有し、上記プログラムカウンタで指示される上記メモリ
    に格納される命令を読み出し、上記命令の指示する演算
    を上記レジスタと上記メモリと上記プログラムカウンタ
    に対して実行する並列演算機能を有する計算機におい
    て、 上記命令は単一演算を指示する命令長の短い命令又は複
    数演算を指示する命令長の長い命令であって、上記プロ
    グラムカウンタで指示された上記命令が上記命令長の短
    い命令か上記命令長の長い命令かを判定する命令語長判
    定手段と、上記命令長の短い命令間の競合を検出する競
    合検出手段と、上記命令語長判定手段によって上記命令
    長の短い命令と判定されると上記レジスタに上記命令を
    設定し、上記命令長の短い命令と判定され、かつ、上記
    競合検出手段によって競合がないと判定されると所定の
    レジスタに上記命令を設定する命令選択手段とを有する
    ことを特徴とする並列演算機能を有する計算機。
  3. 【請求項3】レジスタとメモリとプログラムカウンタを
    有し、上記プログラムカウンタで指示される上記メモリ
    に格納される命令を読み出し、上記命令の指示する演算
    を上記レジスタと上記メモリと上記プログラムカウンタ
    に対して実行する並列演算機能を有する計算機におい
    て、 上記命令は単一演算を指示する命令長の短い命令又は複
    数演算を指示する命令長の長い命令であって、上記プロ
    グラムカウンタで指示された命令が上記命令長の短い命
    令か上記命令長の長い命令かを判定する命令語長判定手
    段と、上記命令語長判定手段によって上記命令長の短い
    命令と判定されると、上記命令長の短い命令間の競合を
    検出する競合検出手段と、上記命令語長判定手段によっ
    て上記命令長の短い命令と判定されると、上記競合検出
    手段の内容に応じて上記命令長の短い命令を1マシンサ
    イクルに所定の数実行し、上記命令長の長い命令と判定
    されると、命令長の長い命令を1マシンサイクルに所定
    の数実行する演算手段とを有することを特徴とする並列
    演算機能を有する計算機。
  4. 【請求項4】請求項1,2又は3において、 上記命令は、並列して実行できる演算の多い時には上記
    命令長の長い命令を、並列して実行できる演算の少ない
    時には上記命令長の短い命令であることを特徴とする並
    列演算機能を有する計算機。
  5. 【請求項5】請求項1,2,3又は4において、 上記命令長の長い命令と上記命令長の短い命令との使い
    分けをコンパイラで生成した上記命令を実行することを
    特徴とする並列演算機能を有する計算機。
  6. 【請求項6】請求項1,2又は3において、 上記命令長の長い命令の中で指定できる演算数は、1マ
    シンサイクルで処理される上記命令長の短い命令の数よ
    りも大きいことを特徴とする並列演算機能を有する計算
    機。
  7. 【請求項7】請求項1,2又は3において、 命令長の長い命令と、それ以前の命令長の長い命令との
    競合が無いようにコンパイラで命令列を生成し、上記コ
    ンパイラの出力に基づいて処理を行うことを特徴とする
    並列演算機能を有する計算機。
  8. 【請求項8】請求項1,2又は3において、 有効な命令長の短い命令実行後有効な命令長の長い命令
    を実行する時、及び、有効な命令長の長い命令の実行後
    有効な命令長の短い命令を実行する時には、両者の間に
    一定数の無効命令を挿入することを特徴とする並列演算
    機能を有する計算機。
  9. 【請求項9】請求項1,2又は3において、 命令長の長い命令は、次命令以降に続く無効命令の数を
    任意に指定できることを特徴とする並列演算機能を有す
    る計算機。
  10. 【請求項10】請求項1,2又は3において、 命令長の長い命令の演算結果は、以後の任意の命令から
    反映することを特徴とする並列演算機能を有する計算
    機。
  11. 【請求項11】請求項10において、 演算結果を反映する一定数後の命令の一定数をN,パイ
    プライン段数をMとした時に、N≧Mとすることを特徴
    とする並列演算機能を有する計算機。
  12. 【請求項12】請求項10において、 過去のレジスタの内容を一定サイクル分保存しておく記
    憶手段を有することを特徴とする並列演算機能を有する
    計算機。
  13. 【請求項13】レジスタとメモリとプログラムカウンタ
    を有し、上記プログラムカウンタで示される上記メモリ
    上の命令を読み出し、上記命令の指示する演算を上記レ
    ジスタと上記メモリと上記プログラムカウンタに対して
    実行する並列演算機能を有する計算機において、 命令長の長い命令の演算結果は、以後の任意の命令から
    反映することを特徴とする並列演算機能を有する計算
    機。
  14. 【請求項14】請求項13において、 過去のレジスタの内容を一定サイクル分保存しておく記
    憶手段を有することを特徴とした並列演算機能を有する
    計算機。
  15. 【請求項15】レジスタとメモリとプログラムカウンタ
    を有し、上記プログラムカウンタで示される上記メモリ
    上の命令を読み出し、上記命令の指示する演算を上記レ
    ジスタと上記メモリと上記プログラムカウンタに対して
    実行する並列演算機能を有する計算機において、 上記命令には、単一演算を指示する命令長の短い命令と
    複数演算を指示する命令長の長い命令とを有し、 上記プログラムカウンタで指示された命令が上記命令長
    の短い命令か命令長の長い命令かを判定する手段と、 上記判定手段の結果が上記命令長の短い命令なら1マシ
    ンサイクル中に任意の数の命令を実行し、上記命令長の
    長い命令なら1マシンサイクル中に1個の命令を実行す
    る手段とを有することを特徴とする並列演算機能を有す
    る計算機。
  16. 【請求項16】レジスタとメモリとプログラムカウンタ
    を有し、上記プログラムカウンタで示される上記メモリ
    上の命令を読み出し、上記命令の指示する演算を上記レ
    ジスタと上記メモリと上記プログラムカウンタに対して
    実行する並列演算機能を有する計算機において、 上記命令には、単一演算を指示する命令長の短い命令と
    複数演算を指示する命令長の長い命令とを有し、 上記プログラムカウンタで指示された命令が上記命令長
    の短い命令か命令長の長い命令かを判定する命令長判定
    手段と、 上記命令長の短い命令間の競合を検出する競合検出手段
    と、 上記判定手段の結果が上記命令長の長い命令なら1マシ
    ンサイクル中に1個の命令を実行し、上記命令長の短い
    命令なら上記競合検出手段の結果に応じて、競合が検出
    されれば、競合が解消されるまで待ってから命令を任意
    の数実行し、競合が検出されなければ命令を任意の数実
    行することを特徴とする並列演算機能を有する計算機。
  17. 【請求項17】レジスタとメモリとキャッシュメモリと
    プログラムカウンタを有し、上記プログラムカウンタで
    示される上記メモリ上の命令を読み出し、上記命令の指
    示する演算を上記レジスタと上記メモリと上記プログラ
    ムカウンタに対して実行する並列演算機能を有する計算
    機において、 上記命令は、上記メモリまたは上記キャッシュメモリか
    ら上記レジスタへデータ転送を指示する第1のフィール
    ドと、 上記メモリから上記キャッシュメモリへデータ転送を指
    示する第2のフィールドを有することを特徴とする並列
    演算機能を有する計算機。
JP34792992A 1992-01-06 1992-12-28 並列演算機能を有する計算機 Expired - Fee Related JP3146707B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP34792992A JP3146707B2 (ja) 1992-01-06 1992-12-28 並列演算機能を有する計算機

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP2992 1992-01-06
JP4-29 1992-01-06
JP34792992A JP3146707B2 (ja) 1992-01-06 1992-12-28 並列演算機能を有する計算機

Publications (2)

Publication Number Publication Date
JPH05257687A true JPH05257687A (ja) 1993-10-08
JP3146707B2 JP3146707B2 (ja) 2001-03-19

Family

ID=26332937

Family Applications (1)

Application Number Title Priority Date Filing Date
JP34792992A Expired - Fee Related JP3146707B2 (ja) 1992-01-06 1992-12-28 並列演算機能を有する計算機

Country Status (1)

Country Link
JP (1) JP3146707B2 (ja)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH09292991A (ja) * 1996-04-30 1997-11-11 Nec Corp 命令処理方法及び命令処理装置
JP2000330790A (ja) * 1999-05-03 2000-11-30 Stmicroelectronics Sa コンピュータシステム動作方法、コンピュータシステムにおける命令スケジューリング方法およびコンピュータシステム
JP2000353091A (ja) * 1999-05-03 2000-12-19 Stmicroelectronics Sa コンピュータシステムにおける命令実行方法およびコンピュータシステム
JP2001092663A (ja) * 1999-09-17 2001-04-06 Sanyo Electric Co Ltd データ処理装置
US7127594B2 (en) 2001-09-03 2006-10-24 Matsushita Electric Industrial Co., Ltd. Multiprocessor system and program optimizing method
JP2010257199A (ja) * 2009-04-24 2010-11-11 Renesas Electronics Corp プロセッサ及びプロセッサにおける命令発行の制御方法

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7358322B2 (en) 2004-03-09 2008-04-15 Eastman Chemical Company High IV melt phase polyester polymer catalyzed with antimony containing compounds
US20060047102A1 (en) 2004-09-02 2006-03-02 Stephen Weinhold Spheroidal polyester polymer particles
US7935399B2 (en) 2004-09-02 2011-05-03 Grupo Petrotemex, S.A. De C.V. Low melting polyester polymers
US8557950B2 (en) 2005-06-16 2013-10-15 Grupo Petrotemex, S.A. De C.V. High intrinsic viscosity melt phase polyester polymers with acceptable acetaldehyde generation rates
US9267007B2 (en) 2005-09-16 2016-02-23 Grupo Petrotemex, S.A. De C.V. Method for addition of additives into a polymer melt
US8431202B2 (en) 2005-09-16 2013-04-30 Grupo Petrotemex, S.A. De C.V. Aluminum/alkaline or alkali/titanium containing polyesters having improved reheat, color and clarity
US7932345B2 (en) 2005-09-16 2011-04-26 Grupo Petrotemex, S.A. De C.V. Aluminum containing polyester polymers having low acetaldehyde generation rates
US7838596B2 (en) 2005-09-16 2010-11-23 Eastman Chemical Company Late addition to effect compositional modifications in condensation polymers
US7655746B2 (en) 2005-09-16 2010-02-02 Eastman Chemical Company Phosphorus containing compounds for reducing acetaldehyde in polyesters polymers
US8901272B2 (en) 2007-02-02 2014-12-02 Grupo Petrotemex, S.A. De C.V. Polyester polymers with low acetaldehyde generation rates and high vinyl ends concentration
CN103066727B (zh) * 2012-09-06 2015-06-03 哈尔滨工业大学 一种新型电机冷却及电涡流抑制结构

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH09292991A (ja) * 1996-04-30 1997-11-11 Nec Corp 命令処理方法及び命令処理装置
US6023756A (en) * 1996-04-30 2000-02-08 Nec Corporation Instruction processing method and system for variable-length instructions
JP2000330790A (ja) * 1999-05-03 2000-11-30 Stmicroelectronics Sa コンピュータシステム動作方法、コンピュータシステムにおける命令スケジューリング方法およびコンピュータシステム
JP2000353091A (ja) * 1999-05-03 2000-12-19 Stmicroelectronics Sa コンピュータシステムにおける命令実行方法およびコンピュータシステム
JP2001092663A (ja) * 1999-09-17 2001-04-06 Sanyo Electric Co Ltd データ処理装置
US7127594B2 (en) 2001-09-03 2006-10-24 Matsushita Electric Industrial Co., Ltd. Multiprocessor system and program optimizing method
JP2010257199A (ja) * 2009-04-24 2010-11-11 Renesas Electronics Corp プロセッサ及びプロセッサにおける命令発行の制御方法

Also Published As

Publication number Publication date
JP3146707B2 (ja) 2001-03-19

Similar Documents

Publication Publication Date Title
EP0996057B1 (en) Data processor with an instruction unit having a cache and a ROM
JP3499252B2 (ja) コンパイル装置及びデータ処理装置
US5860000A (en) Floating point unit pipeline synchronized with processor pipeline
JP3146707B2 (ja) 並列演算機能を有する計算機
JP4230504B2 (ja) データプロセッサ
US9329866B2 (en) Methods and apparatus for adapting pipeline stage latency based on instruction type
KR100277386B1 (ko) 병렬 연산기능을 가지는 계산기 및 데이터 프로세서
JP2816248B2 (ja) データプロセッサ
US20050010743A1 (en) Multiple-thread processor for threaded software applications
US20140101415A1 (en) Reducing data hazards in pipelined processors to provide high processor utilization
JPH07114469A (ja) データ処理装置
US5889985A (en) Array prefetch apparatus and method
JP2004171573A (ja) 新規な分割命令トランズアクションモデルを使用して構築したコプロセッサ拡張アーキテクチャ
JPH0496825A (ja) データ・プロセッサ
US6405303B1 (en) Massively parallel decoding and execution of variable-length instructions
JPH10232821A (ja) データ処理装置
JP2004038753A (ja) プロセッサ及び命令制御方法
JP2556182B2 (ja) デ−タ処理装置
JPH1165840A (ja) 演算処理装置およびその方法
JPH117389A (ja) プロセサ用の命令を処理するシステム及び方法
JP2636821B2 (ja) 並列処理装置
JP2927281B2 (ja) 並列処理装置
JP2785820B2 (ja) 並列処理装置
WO1998006041A1 (en) Array prefetch apparatus and method
JPH081600B2 (ja) データ処理装置

Legal Events

Date Code Title Description
FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20080112

Year of fee payment: 7

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20080112

Year of fee payment: 7

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20090112

Year of fee payment: 8

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20090112

Year of fee payment: 8

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20100112

Year of fee payment: 9

LAPS Cancellation because of no payment of annual fees