JPH04308929A - 並列計算機 - Google Patents

並列計算機

Info

Publication number
JPH04308929A
JPH04308929A JP7327291A JP7327291A JPH04308929A JP H04308929 A JPH04308929 A JP H04308929A JP 7327291 A JP7327291 A JP 7327291A JP 7327291 A JP7327291 A JP 7327291A JP H04308929 A JPH04308929 A JP H04308929A
Authority
JP
Japan
Prior art keywords
arithmetic processing
storage means
parallel
operations
unit
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
JP7327291A
Other languages
English (en)
Inventor
Takeshi Aikawa
健 相川
Kenji Minagawa
皆川 健二
Mitsuo Saito
斉藤 光男
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 JP7327291A priority Critical patent/JPH04308929A/ja
Publication of JPH04308929A publication Critical patent/JPH04308929A/ja
Pending legal-status Critical Current

Links

Landscapes

  • Advance Control (AREA)
  • Multi Processors (AREA)

Abstract

(57)【要約】本公報は電子出願前の出願データであるた
め要約のデータは記録されません。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は、並列処理可能な複数の
オペレーションにより複数の演算処理部での演算処理を
同時に実行可能にした並列計算機に関するものである。
【0002】
【従来の技術】例えば、科学技術計算などに用いられる
計算機は、ますます複雑な数値計算処理が要求されるよ
うになっており、これらの計算結果の信頼性、制度など
を確保するために、膨大な計算量が必要とされている。
【0003】しかして、従来、このような分野に投入さ
れ、大量データの高速処理を実現するものとして、並列
処理方式を導入した並列計算機が知られている。
【0004】このような並列計算機は、半導体技術の急
速な進歩により、1チップ上に多数のCPUを集積して
密結合に構成したもので、その一例として、演算オペレ
ーションの並列処理を行うVLIW(Very  Lo
ng  InstructionWord)型の並列計
算機が実用化されている。
【0005】このVLIW型計算機は、同時に実行可能
な演算処理部を複数個持っており、実行される各オペレ
ーション(VLIW命令)が各演算処理部に対応する演
算指定フィールドを持ち、長い固定長のフォーマットを
とるようになっている。
【0006】図3は、VLIW型の並列計算機の一例を
示すもので、同時に実行可能な演算処理部としてフロー
ティング乗算処理部(FMUL  UNIT)1、フロ
ーティング加算処理部(FADD  UNIT)2、2
個の整数演算処理部(IADDUNIT)3、4、分岐
処理部(JUMP  UNIT)5の合計5個を備えて
いる。 そして、キャッシュメモリ6のオペレーションフィール
ドに格納されるフローティング乗算オペレーションfm
ulがフローティング乗算処理部(FMULUNIT)
11で、フローティング加算オペレーションfaddが
フローティング加算処理部(FADD  UNIT)1
2で、整数加算オペレーションiaddおよびメモリア
クセスmemが整数演算処理部(IADD  UNIT
)3、4で、そして、コンディショナルジャンブオペレ
ーションjumpcが分岐処理部(JUMP  UNI
T)5で、それぞれ同時実行されるようになっている。
【0007】しかして、いま、シーケンシャルオペレー
ションコードとして、図示するようなI1〜I16のオ
ペレーション列7が与えられると、これらオペレーショ
ン列7は、オプティマイザ8により命令長一定のVLI
W命令、ここでは、フローティング乗算オペレーション
fmul、フローティング加算オペレーションfadd
、整数加算オペレーションiadd、メモリアクセスm
emおよびコンディショナルジャンプオペレーションj
umpcの各オペレーションを1つの単位とした命令長
一定のVLIW命令が生成される。
【0008】ここで、オプティマイザ8は、コンパイラ
の発生したシーケンシャルなオペレーション列を、演算
の順序依存関係、制御依存関係の制約を考慮して、同時
に実行可能なオペレーション数が最大になるように並べ
換えてVLIW命令を生成するためのソフトウェアであ
る。そして、上述のI1〜I16で与えられるオペレー
ション列7が、各オペレーション間にいくつかの演算順
序依存関係が存在し、オペレーションの並べ換えの自由
度を制限しているものとし、具体的に、矢印の出発点の
オペレーションは、必ず矢印の到達点のオペレーション
より先に実行されなくてはならず、また、jump命令
をはさんで前後に配置されるオペレーションは、当然の
ことながら同じ命令に属することはできないものとする
と、各命令単位にまとめられてメインメモリ9上にロー
ドされるそれぞれのVLIW命令は、同時実行できるオ
ペレーション数が処理部の数に満たない場合には、NO
P(no−operation)が挿入され、(I1、
I2、I4、I5、In)、(I7、I3、I6、In
、In)、(In、I8、I9、I10、In)、(I
n、In、I11、In、I12)、…のように構成さ
れることになる。
【0009】そして、メインメモリ9にロードされた各
VLIW命令は、命令キッャッシュ制御回路10の制御
によりキャッシュメモリ6のオペレーションフィールド
にフローティング乗算オペレーションfmul、フロー
ティング加算オペレーションfadd、整数加算オペレ
ーションiadd、メモリアクセスmemおよびコンデ
ィショナルジャンブオペレーションjumpcとして格
納されるとともに、それぞれフローティング乗算処理部
(FMUL  UNIT)1、フローティング加算処理
部(FADD  UNIT)2、2個の整数演算処理部
(IADD  UNIT)3、4、分岐処理部(JUM
P  UNIT)5に供給されて、同時実行されること
になる。
【0010】ところが、このようにしてメインルモリ9
上にロードされるそれぞれ各命令単位にまとめられるV
LIW命令は、同時に実行可能なオペレーション数が各
処理部の数に満たない場合にNOPが挿入されるように
なるので、オブジェクトプログラムが不必要に大きくな
ってしまい、メインメモリ9での使用効率が低下するだ
けでなく、メインメモリ9よりキャッシュメモリ6に対
して無駄なデータ転送が行われ、実質的なメモリバンド
幅を低下させるとともに、計算機としての処理時間も大
きくなってしまう欠点があった。
【0011】ちなみに、このような並列計算機では、同
時に実行できるプログラム処理の並列度は、特殊なプロ
グラムで4以上得られるが、通常のプログラムでは1.
5〜2と低くなり、効率が悪いことが知られている。
【0012】
【発明が解決しようとする課題】このように従来の並列
計算機では、メインメモリ上にロードされるVLIW命
令は、同時に実行できるオペレーション数が各処理部の
数に満たない場合に、NOPが挿入されることから、メ
インメモリでのオブジェクトプログラムが不必要に大き
くなってしまい、その使用効率が低下するだけでなく、
メインメモリよりキャッシュメモリに無駄なデータ転送
が行われるという問題点があった。
【0013】本発明は、上記事情に鑑みてなされたもの
で、メインメモリでのオブジェクトプログラムを最小限
にでき、無駄なデータ転送を防止することができる並列
計算機を提供することを目的とする。
【0014】
【課題を解決するための手段】本発明の並列計算機は、
所定のオペレーション列を並列処理可能な複数のオペレ
ーションからなるグループ単位で並べ換えるとともに、
これらオペレーショングループの先頭または最後尾に区
切り情報を付加するオペレーション並べ換え手段、この
オペレーション並べ換え手段で生成されたオペレーショ
ンプログラムが格納される第1の記憶手段、並列処理可
能な複数の演算処理部を有する演算処理手段、この演算
処理手段の各演算処理部に対応する各オペレーションを
格納するオペレーションフィールドを有する第2の記憶
手段、上記第1の記憶手段に格納されたオブジェクトプ
ログラムについて区切り情報をサーチしながら上記第2
の記憶手段のオペレーションフィールドに各グループの
対応するオペレーションを書き込むとともに、該オペレ
ーションフィールドに対応するオペレーションが見付か
らないと、当該オペレーションフィールドにnopオペ
レーションを書き込み、且つ上記第2の記憶手段のオペ
レーションフィールドに格納される複数のオペレーショ
ンを上記演算処理手段の対応する演算処理部に供給し演
算処理を実行させる制御手段により構成したものである
【0015】
【作用】この結果、本発明によれば、所定のオペレーシ
ョン列を並列処理可能な複数のオペレーションからなる
グループ単位で並べ換え、これら各オペレーショングル
ープの先頭または最後尾に区切り情報を付加したものを
オブジェクトプログラムとして第1の記憶手段に格納す
るようになるので、第1の記憶手段でのオブジェクトプ
ログラムを最小限にできる。しかも、第1の記憶手段の
オブジェクトプログラムを第2の記憶手段にロードする
には、区切り情報をサーチしながら第2の記憶手段のオ
ペレーションフィールドに各グループの対応するオペレ
ーションを書き込むとともに、該オペレーションフィー
ルドに対応するオペレーションが見付からないと、当該
オペレーションフィールドにnopオペレーションを書
き込むことでVLIW型の固定長オペレーションが得ら
れることになる。
【0016】
【実施例】以下、本発明の一実施例を図面にしたがい説
明する。
【0017】図1は、同実施例の概略的構成を示すもの
である。図において、11はメインメモリで、このメイ
ンメモリ11は、後述するオプティマイザ21によりオ
ペレーションの並べ換え、オペレーショングループの区
切り情報markが付与された命令グループ単位のオブ
ジェクトプログラムを格納するようになっている。
【0018】このメインメモリ11のオブジェクトプロ
グラムは、命令キャシュメモリ制御部12の制御により
命令キャシュメモリ13に並べ換えて格納される。この
場合、命令キャシュメモリ13は、後述するフローティ
ング乗算オペレーションfmul、フローティング加算
オペレーションfadd、整数加算オペレーションia
dd、メモリアクセスmemおよびコンディショナルジ
ャンブオペレーションjumpcの各オペレーションに
対応するオペレーションフィールドを有している。
【0019】そして、命令キャシュメモリ13のオペレ
ーションフィールドに格納されたフローティング乗算オ
ペレーションfmul、フローティング加算オペレーシ
ョンfadd、整数加算オペレーションiadd、メモ
リアクセスmemおよびコンディショナルジャンブオペ
レーションjumpcは、各別にフローティング乗算処
理部(FMUL  UNIT)14、フローティング加
算処理部(FADD  UNIT)15、2個の整数演
算処理部(IADD  UNIT)16、17、分岐処
理部(JUMP  UNIT)18に供給され実行され
るようになる。
【0020】この場合、メインメモリ11のオブジェク
トプログラムの実行は、分岐処理部(JUMP  UN
IT)18が、命令キャシュメモリ13により実行すべ
き命令のフェッチを指示するとともに、実行すべき命令
が命令キャシュメモリ13に存在するか否かをキャシュ
メモリ制御部12でチェックする。そして、存在すれば
該当する命令に対応する命令キャシュメモリ13のオペ
レーションフィールドの各オペレーションをそれぞれ処
理部に送る。一方、存在しない場合は、メインメモリ1
1より命令キャシュメモリ13に命令をロードした後に
、命令のフェッチを行ない、このときにキャシュメモリ
制御部12がメインメモリ11のオペレーションコード
をサーチして、後で説明する規則にしたがって命令キャ
シュメモリ13上の各オペレーションフィールドにそれ
ぞれのオペレーションコードを書き込むようにしている
【0021】また、これらフローティング乗算処理部(
FMUL  UNIT)14、フローティング加算処理
部(FADD  UNIT)15、整数演算処理部(I
ADDUNIT)16、17、分岐処理部(JUMP 
 UNIT)18での処理結果は、多ポートレジスタフ
ァイル19を介して2ポートデータキャッシュメモリ2
0に送られ、その後、メインメモリ11に格納されるよ
うになっている。
【0022】次に、図2を用いて同実施例を、さらに詳
しく説明する。
【0023】この場合も、コンパイラの発生した機械語
のシーケンシャルオペレーションコードとして、I1〜
I16のオペレーション列22が与えられる。このオペ
レーション列22についても上述と同様にしてオペレー
ション間にいくつかの演算順序依存関係が存在し、オペ
レーションの並べ換えの自由度を制限している。具体的
には、矢印の出発点のオペレーションは、必ず矢印の到
達点のオペレーションより先に実行されなくてはならず
、また、jump命令をはさんで前後に配置されるオペ
レーションは、当然のことながら同じ命令に属すること
はできないものとしている。
【0024】そして、このようなI1〜I16オペレー
ション列22は、オプティマイザ21に送られる。オプ
ティマイザ21も、上述したと同様なもので、オペレー
ショングループ単位の並べ換えと、各オペレーショング
ループに対して区切り情報markを付加するようにし
ている。ここで、オプティマイザ21によるオペレーシ
ョンの並べ換えは、オペレーション列I1〜I16の先
頭から並列処理可能なオペレーションfmul、fad
d、iadd、mem、jumpcに対応させてグルー
プとして生成するとともに、これら各オペレーションf
mul、fadd、iadd、mem、jumpcに該
当するオペレーションが存在しなければ、そのオペレー
ションを外してグループを生成するようになる。また、
生成されるオペレーショングループ内に分岐オペレーシ
ョンjumpcが存在しない場合は、命令を区切るため
の情報markをジャンプオペレーションjumpcに
代わって各グループの最後に付加するようになる。
【0025】これにより、I1〜I16オペレーション
列22に関しては、(I1、I2、I4、I5、Im)
、(I7、I3、I6、Im)、(I8、I9、I10
、Im)、(I11、I12)、(I13、I14、I
15、I16、Im)の各オペレーショングループが生
成され、メインメモリ11上にロードされる。この場合
、第1から3番目および第5番目のオペレーショングル
ープは、分岐オペレーションjumpcが存在しないた
め命令を区切る情報としてmarkが最後に付加され、
第4番目の命令グループでは、分岐オペレーションju
mpcが存在するためmarkは付加されないことにな
る。
【0026】メインメモリ11にロードされたオブジェ
クトプログラムは、命令キャシュメモリ制御部12の制
御により命令キャシュメモリ13に並べ換えて格納され
る。この場合、命令キャシュメモリ制御部12では、メ
インメモリ11中に置かれたオブジェクトプログラムに
ついて区切り情報(markまたはjumpc)をサー
チするとともに、各オペレーションがどの演算処理部で
実行可能かを解析し、命令キャシュメモリ13中の対応
するオペレーションフィールドに書き込む。この場合、
演算処理部で処理すべき命令が見付からない場合は、命
令キャシュメモリ13の対応するオペレーションフィー
ルドには、nopオペレーションを書き込むようになる
【0027】このようにしてメインメモリ11にロード
されたオブジェクトプログラムは、命令キャシュメモリ
13のローティング乗算オペレーションfmu、ローテ
ィング加算オペレーションfadd、整数加算オペレー
ションiadd、メモリアクセスmemおよびコンディ
ショナルジャンブオペレーションjumpcのオペレー
ションフィールドにVLIW型の固定長オペレーション
として書き込まれる。そして、実行指令により命令キャ
シュメモリ13の1ワードの固定長オペレーションが一
度に読み出され、それぞれフローティング乗算処理部(
FMUL  UNIT)1、フローティング加算処理部
(FADD  UNIT)2、2個の整数演算処理部(
IADD  UNIT)3、4、分岐処理部(JUMP
  UNIT)5に供給され、同時実行されるようにな
る。
【0028】したがって、このようにすれば16オペレ
ーションで構成されていたシーケンシャルオペレーショ
ンコードがメインメモリ11で、20オペレーションで
構成されるようになるので、従来の、メインメモリ中で
のオブジェクトプログラムが24オペレーションで展開
されるものと比べ、メインメモリ11のオブジェクトプ
ログラムを小さくできることになり、メインメモリ11
の使用効率を高めることができる。このことは、メイン
メモリ11からキャッシュメモリ13への無駄なデータ
転送も防止でき、実質的なメモリバンド幅を低下を防止
し、計算機としての処理時間も短縮できる。そして、m
arkが付されたキャッシュメモリ13のオブジェクト
プログラムは、markが参照されキャッシュメモリ1
3の対応するオペレーションフィールドに書き込まれる
ので、並列演算処理のためのVLIW型の固定長オペレ
ーションを正確に得ることも可能になる。
【0029】なお、本発明は、上記実施例にのみ限定さ
れず、要旨を変更しない範囲で適宜変形して実施できる
。例えば、上述した実施例では、M(<=N)個のオペ
レーションの区切りマークとして分岐処理部に対応する
オペレーションを用いたが、本発明はこれに限らず、他
の処理部に対応するオペレーションを使用するようにし
てもよい。また、区切りマークをどの処理部とも対応さ
せない構成も可能である。さらに、各オペレーション毎
にそのオペレーションが命令の最後尾(または先頭)か
否かを示すフラグビットを付加するようにしてもよい。
【0030】
【発明の効果】本発明の並列計算機は、所定のオペレー
ション列を並列処理可能な複数のオペレーションからな
るグループ単位で並べ換え、これら各オペレーショング
ループの先頭または最後尾に区切り情報を付加したもの
をオブジェクトプログラムとして第1の記憶手段に格納
するようになるので、第1の記憶手段でのオブジェクト
プログラムを最小限にでき、第1の記憶手段の使用効率
を高めることができ、さらに、第1の記憶手段より第2
の記憶手段に無駄なデータ転送が行われるのも防止でき
ることから、実質的なメモリバンド幅を低下を防止し、
計算機としての処理時間の短縮も可能になる。また、第
1の記憶手段のオブジェクトプログラムを第2の記憶手
段にロードするには、区切り情報をサーチしながら第2
の記憶手段のオペレーションフィールドに各グループの
対応するオペレーションを書き込むとともに、該オペレ
ーションフィールドに対応するオペレーションが見付か
らないと、当該オペレーションフィールドにnopオペ
レーションを書き込むようになるので、並列演算処理の
ためのVLIW型の固定長オペレーションを正確に得ら
れることになる。
【図面の簡単な説明】
【図1】本発明による並列計算機の一実施例を示す回路
構成図。
【図2】図1に示す実施例をさらに詳細に説明するため
の図。
【図3】従来の並列計算機の一例を説明するための図。
【符号の説明】
11…メインメモリ、12…命令キャシュメモリ制御部
、13…命令キャシュメモリ、14…フローティング乗
算処理部(FMUL  UNIT)、15…フローティ
ング加算処理部(FADD  UNIT)、16、17
…整数演算処理部(IADD  UNIT)、18…分
岐処理部(JUMP  UNIT)、19…多ポートレ
ジスタファイル、20…2ポートデータキャッシュメモ
リ、21…オプティマイザ。

Claims (1)

    【特許請求の範囲】
  1. 【請求項1】  所定のオペレーション列を並列処理可
    能な複数のオペレーションからなるグループ単位で並べ
    換えるとともにこれらオペレーショングループの先頭ま
    たは最後尾に区切り情報を付加するオペレーション並べ
    換え手段と、このオペレーション並べ換え手段で生成さ
    れたオペレーションプログラムが格納される第1の記憶
    手段と、並列処理可能な複数の演算処理部を有する演算
    処理手段と、この演算処理手段の各演算処理部に対応す
    る各オペレーションを格納するオペレーションフィール
    ドを有する第2の記憶手段と、上記第1の記憶手段に格
    納されたオブジェクトプログラムについて区切り情報を
    サーチしながら上記第2の記憶手段のオペレーションフ
    ィールドに各グループの対応するオペレーションを書き
    込むとともに該オペレーションフィールドに対応するオ
    ペレーションが見付からないと当該オペレーションフィ
    ールドにnopオペレーションを書き込み且つ上記第2
    の記憶手段のオペレーションフィールドに格納される複
    数のオペレーションを上記演算処理手段の対応する演算
    処理部に供給して演算処理を実行させる制御手段とを具
    備したことを特徴とする並列計算機。
JP7327291A 1991-04-05 1991-04-05 並列計算機 Pending JPH04308929A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP7327291A JPH04308929A (ja) 1991-04-05 1991-04-05 並列計算機

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP7327291A JPH04308929A (ja) 1991-04-05 1991-04-05 並列計算機

Publications (1)

Publication Number Publication Date
JPH04308929A true JPH04308929A (ja) 1992-10-30

Family

ID=13513359

Family Applications (1)

Application Number Title Priority Date Filing Date
JP7327291A Pending JPH04308929A (ja) 1991-04-05 1991-04-05 並列計算機

Country Status (1)

Country Link
JP (1) JPH04308929A (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002323982A (ja) * 2001-04-25 2002-11-08 Fujitsu Ltd 命令処理方法
JP2016510455A (ja) * 2013-01-11 2016-04-07 テカン・トレーディング・アクチェンゲゼルシャフトTECAN Trading AG 実験システム、及び実験システムを制御する方法

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002323982A (ja) * 2001-04-25 2002-11-08 Fujitsu Ltd 命令処理方法
JP2016510455A (ja) * 2013-01-11 2016-04-07 テカン・トレーディング・アクチェンゲゼルシャフトTECAN Trading AG 実験システム、及び実験システムを制御する方法

Similar Documents

Publication Publication Date Title
US7418575B2 (en) Long instruction word processing with instruction extensions
EP0454985B1 (en) Scalable compound instruction set machine architecture
US7558945B2 (en) System and method for register renaming
US5197137A (en) Computer architecture for the concurrent execution of sequential programs
US5974538A (en) Method and apparatus for annotating operands in a computer system with source instruction identifiers
US5710902A (en) Instruction dependency chain indentifier
EP1582980B1 (en) Context switching method, device, program, recording medium, and central processing unit
EP0454984B1 (en) General purpose compounding technique for instruction-level processors
US5303356A (en) System for issuing instructions for parallel execution subsequent to branch into a group of member instructions with compoundability in dictation tag
US5333280A (en) Parallel pipelined instruction processing system for very long instruction word
KR101702651B1 (ko) 하드웨어 포인터를 이용한 simd 코어 내 분기 해법
KR100852563B1 (ko) 디지털 신호 처리 장치 및 방법
KR100638703B1 (ko) 데이터 프로세싱 시스템용 셀룰러 엔진
US4745547A (en) Vector processing
Bala et al. Efficient instruction scheduling using finite state automata
US5892963A (en) System and method for assigning tags to instructions to control instruction execution
US9965275B2 (en) Element size increasing instruction
JPH1097423A (ja) ループ処理の並列実行制御に適したレジスタ構成を有するプロセッサ
JPH06236275A (ja) スーパースカラ・プロセッサ・システムにおける非逐次命令ディスパッチおよび実行のための方法およびシステム
EP3690639B1 (en) Information processing apparatus, program, and information processing method
JPH1185513A (ja) プロセッサ
JPH04308929A (ja) 並列計算機
US6115807A (en) Static instruction decoder utilizing a circular queue to decode instructions and select instructions to be issued
US5961615A (en) Method and apparatus for queuing data
US20020156992A1 (en) Information processing device and computer system