JPH04123230A - データ処理装置 - Google Patents

データ処理装置

Info

Publication number
JPH04123230A
JPH04123230A JP24417990A JP24417990A JPH04123230A JP H04123230 A JPH04123230 A JP H04123230A JP 24417990 A JP24417990 A JP 24417990A JP 24417990 A JP24417990 A JP 24417990A JP H04123230 A JPH04123230 A JP H04123230A
Authority
JP
Japan
Prior art keywords
program
instructions
instruction
programs
parallel
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
JP24417990A
Other languages
English (en)
Other versions
JP2934003B2 (ja
Inventor
Shoji Suzuki
昭二 鈴木
Shinichiro Yamaguchi
伸一郎 山口
Kenichi Kurosawa
黒沢 憲一
Yoshiki Kobayashi
芳樹 小林
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 JP24417990A priority Critical patent/JP2934003B2/ja
Publication of JPH04123230A publication Critical patent/JPH04123230A/ja
Application granted granted Critical
Publication of JP2934003B2 publication Critical patent/JP2934003B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Landscapes

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

Abstract

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

Description

【発明の詳細な説明】 [産業上の利用分野] 本発明は、データ処理装置に関し、特に、命令の並列処
理の技術に関するものである。
[従来の技術] 従来の並列計算機システムにおいては、主に以下の2つ
の方式を用いて性能向上を図っている。
第1は、1つのプログラム内で並列性を抽出する方式で
あり、具体的には1つのプログラム内の連続する複数命
令を同時に実行することにより、演算速度向上を図る方
法である。
第2は、プログラムを複数個並列に実行することにより
、性能向上を図る方法である。
前者には、スーパースカラプロセッサ、VLIW計算機
といった技術が含まれる。また後者はマルチプロセッサ
と呼ばれるものである。
なお、これらの装置は、高橋義造編「並列処理機構」マ
ルゼン・アドバンスト・テクノロジー(1989)や、
富田ヌ治著「並列処理機構成論」昭晃堂(1986)で
詳説されている。
特に、前者のスーパースカラプロセッサに関シては、S
IMP計算機がr並列処理機構」の第157頁から第1
62頁に、VLIW計算機に関しては、同第134頁か
ら第142頁に詳説されている。
[発明が解決しようとする課題] 前記従来技術前者のスーパースカラプロセッサ、VLI
W計算機に関しては、近年のVLSI集積化技術の発展
により、lチップ内で8命令、16命令等の多重命令同
時処理可能なスーパースカラプロセッサが実現される可
能性が高いが、しかし実際的には同時に8命令、16命
令処理可能な並列性の高いプログラムは、はとんど存在
しないため、そのようなハードウェアの性能を十分に活
かし得ることは非常に困難である。
これは、そもそもプログラムの並列性は、プログラムの
処理形態によって、変動するものであり、配列演算等の
極く一部の処理を除いては、高い並列性は期待できない
からである。
そのため、高度な動的スケジューリング機能を内部に有
するプロセッサは、プログラムを正常に動作させるため
に、命令間のデータ依存関係を解析し、実行中の命令を
頻繁に一時停止させたり、あるいは、VLIWに用いら
れるような高機能のコンパイラによって、プログラム中
の並列性の低い部分には、何も実行しない空白の命令コ
ードを補充する必要が生し、演算性能向上が望めなくな
ってしまう。
また、前記従来技術後者のマルチプロセッサに関しては
、マルチプロセッサを構成するプロセッサをスーパース
カラプロセッサとした場合、先の問題点とは逆に、プロ
グラムの並列性が高いのにもかかわらず、プロセッサの
側で同時処理できる命令数が少ないことが問題となる。
すなわち、別の観点よりは、処理すべきプログラム数が
充分ある場合は良いが、プログラム数が少ない場合は使
用されないプロセッサが生じ、これを活用することがで
きないことになる。
さらに、前記従来技術前者は、一般に同時処理命令数分
の独立したパイプライン構成になっているが、個々のパ
イプラインが、汎用な処理を実行できるように、汎用な
演算器を各パイプラインに持たせる場合には、演算器の
数もパイプライン数だけ必要になり、ハード量が増加す
るといった問題が生し、他方、VLIWのように、各パ
イプラインの処理する機能を限定すれば、パイプライン
の汎用性を失なわせる構成になってしまうという問題が
生じる。
そこで、本発明は、複数のプログラムを高速に効率良く
実行可能なデータ処理装置を提供することを目的とする
また、併せて、このデータ処理装置において、ハードウ
ェア量を、さほど増加することなく、パイプラインの汎
用性を保つことを目的とする。
[課題を解決するための手段] 前記目的を達成するために、本発明は、複数命令を並列
に実行可能なスーパースカラプロセッサとマルチプロセ
ッサの融合を図り、以下のデータ処理装置を提供するも
のである。
すなわち、本発明は、前記目的達成のために、並列実行
可能な複数の命令を、複数のプログラムより並列に抽出
する手段と、抽出した複数の命令を並列に実行する。前
記複数プログラムにより共用される複数の演算器とを有
することを特徴とする第1のデータ処理装置を提供する
このデータ処理装置は、観点を変えれば、相互に演算器
を共用する、複数命令を並列に実行可能な複数のスカラ
プロセッサよりなることを特徴とするマルチプロセッサ
システムとしてとらえることができる。
また、本発明は、前記目的達成のために、並列実行可能
である命令数を示すシステム制御命令を含むプログラム
を複数格納するメモリと。
システム制御命令に応じて、並列実行可能である1以上
の命令よりなる命令列を、メモリに格納された複数のプ
ログラムの各プログラムより、並列に取り出す命令列読
み出し手段と、 並列に動作する複数のデコーダと。
前記命令列読み出し手段が並列に取り出した複数の命令
列を構成する、複数の命令を、前記複数のデコーダに分
配する分配手段と、 デコードされた命令を並列に実行する複数種の前記複数
の演算器と、 前記複数のデコーダと複数の演算器とを、各デコーダが
デコードした命令種に応じて、各々接続する演算器接続
手段と、 並列に実行する命令の属する各プログラムに対応じて設
けられた複数のレジスタファイルと、演算器よりの接続
要求に応じ、前記複数の演算器と複数のレジスタファイ
ルとを、各演算器が実行した命令の属するプログラムに
応じて接続するレジスタファイル接続手段と、 を有することを特徴とする第2のデータ処理装置を提供
する。
なお、この第2のデータ処理装置においては、前記演算
器接続手段に代えて、 並列実行する各プログラムに対応じて設けられた、前記
複数のデコーダがデコードした複数の命令の、各プログ
ラム内における命令間の依存関係を解析して命令実行を
制御する複数の動的スケジューリング手段と、 前記複数のデコーダと複数の動的スケジューリング手段
とを、各デコーダがデコードした命令の属するフログラ
ムに応じ各々で接続する動的スケジューリング手段接続
手段と、 前記複数の動的スケジューリング手段と複数の演算器と
を、動的スケジューリング手段がスケジューリングした
命令の命令種に応じて、各々接続する第2の演算器接続
手段と、 を備えるようにしても良い。
また、前記命令列読み出し手段を、並列に実行する複数
のプログラムに対応じて設けられた、対応するプログラ
ムのシステム制御命令に応じて、各プログラムの、前記
並列実行可能である命令よりなる命令列の先頭読み出し
アト1ノスと、並列実行可能な命令数である読み出し命
令数とを、順次、それぞれ発生する、複数の、カラン1
−単位幅可変なプログラムカウンタとしても良い。
また、前記レジスタファイル接続手段は、前記複数のデ
コーダでデコードされた命令に該命令の属するプログラ
ムを識別するプログラム番号を付与する手段と、前記演
算器に備えられた、実行する命令に付与されたプログラ
ム番号を接続要求に付加する手段と、接続要求と付加さ
れたプログラム番号に応じて演算器とレジスタファイル
を接続するスイッチマトリックスとより構成しても良い
また、このようにデコードされた命令に該命令の薦する
プログラムを識別するプログラム番号を付与する代わり
に、前記メモリに格納された複数のプログラムは、各シ
ステム制御命令内に、自プログラムが必要とする演算器
数の情報をも含み、かつ、システム制御命令に応じて、
前記各接続手段の接続を統一的に制御する構成制御手段
を備えるようにしても良い。
また、望ましくは、前記分配手段に、複数の命令より抽
出した並列実行可能な複数の命令数が、備えた複数のデ
コーダ数より多い場合に、これをプログラム単位に、優
先制御して複数のデコーダに分配する優先制御手段を備
えるのが良い。
また、さらには、前記複数のデコーダが並列にデコード
した複数の命令を、プログラム単位に、演算器種毎に優
先制御して実行するのが好ましい。
[作用] 本発明に係るデータ処理装置によれば、複数のプログラ
ムより並列実行可能な複数の命令を抽出し、抽出した複
数の命令を、複数の演算器を複数のプログラムで共用し
て、並列に実行する。
したがい、複数のプログラムを高速に効率良く実行でき
、また、演算器を共用するため、ハードウェア量を、さ
ほど増加することなく、パイプラインの汎用性を保つこ
とができる。
また、本発明に係る第2のデータ処理装置によれば、命
令列読み呂し手段は、メモリに格納された複数のプログ
ラムの各プログラムよりシステム制御命令に応じて並列
実行可能である命令よりなる命令列を、並列に取り出し
、分配手段は、命令列読み出し5手段が並列に取り出し
た複数の命令列を構成する、複数の命令を、前記複数の
デコーダに分配し、演算器接続手段は、複数のデコーダ
と複数の演算器とを、各デコーダがデコードした命金種
に応じて、各々接続し、レジスタファイル接続手段は、
演算器よりの接続要求に応じ、前記複数の演算器と複数
のレジスタファイルとを、各演算器が実行した命令の属
するプログラムに応じて接続する。
これにより、複数のプログラムの独立性を保ちつつ、複
数の演算器をプログラム間で共用し、複数のプログラム
を高速に効率良く実行する。
なお、この第2のデータ処理装置において、前記のよう
に、動的スケジューリング手段を備えた場合、動的スケ
ジューリング手段接続手段は、前記複数のデコーダと複
数の動的スケジューリング手段とを、各デコーダがデコ
ードした命令の属するプログラムに応じ各々接続し、第
2の演算器接続手段は、前記複数の動的スケジューリン
グ手段と複数の演算器とを、動的スケジューリング手段
がスケジューリングした命令の命金種に応じて、各々接
続することにより、動的スケジューリング手段による、
各プログラム内における命令間の依存関係の解析および
命令実行の制御を可能とする。
[実施例] 本実施例においては、説明の便宜上、4つのプログラム
を同時に実行可能で、トータルで8つの命令同時処理可
能なデータ処理装置を例にとり、説明する。
(第1実施例) 以下、本発明に係るデータ処理装置の第1の実施例につ
いて説明する。
第1図に、本第1実施例に係るデータ処理装置の構成を
示す。
図中、101は、4ボート構成マルチポートインストラ
クシヨンキヤツシユメモリ、1021〜1024は可変
プログラムカウンタvPCで、それぞれプログラム1〜
プログラム4に対応する。
15は複数プログラム命令列フェッチ制御装置、45は
プログラム番号供給ユニット、601〜608はデコー
ダ、69は命令実行ユニット接続装置、911〜914
はLOAD/5TOREユニットL/S、921〜92
8は整数演算器IALU、931〜934は浮動小数点
加算器FADD、941〜944は浮動小数点乗算器F
MUL、75はレジスタファイル接続装置、81〜84
は12ポート構成マルチボートレジスタフアイルで、そ
れぞれプログラム1〜プログラム4に対応する。70は
4ボート構成マルチポートデータキヤツシユメモリを表
す。
また、1031〜1034.41〜44.51〜54は
制御信号線で、それぞれがプログラム1〜プログラム4
に対応する。
401〜408.61〜68.211〜214゜221
〜228.231〜234,241〜244は制御信号
線、11〜14は36バイト幅信号線で、そ九ぞれがプ
ログラム1〜プログラム4に対応じ、21〜28は4バ
イト幅データ信号線、701〜704,711〜714
は制御信号線+4バイト幅データ信号線、721〜72
8゜731〜734,741〜744は制御信号線+4
バイト幅データ信号線3本、8101〜8112.82
01〜8212.8301〜8312.8401〜84
12は4バイト幅データ信号線を表す。
次に、その動作を説明する。
可変プログラムカウンタ1o21〜1024が、命令列
取り出し信号を1031〜1034の信号線を通じて1
01のメモリに送り、マルチポートインストラクション
キャッシュ101より、複数個の同時実行可能なプログ
ラム命令と1個のシステム制御命令から成る命令列を、
4プログラム分取り出す。
取り出された4つの命令列は、それぞれ11〜14の信
号線を通って、15の複数プログラム命令列フェッチ制
御装置に入る。
複数プログラム命令列フェッチ制御装置15は送られて
きた4つの命令列番々より、プログラム実行命令を、そ
れぞれ21〜28の信号線により601から608のデ
コーダに送り、更にシステム制御命令をもとに51〜5
4の信号線により、可変プログラムカウンタ1021〜
1024の更新を行い、41〜44の信号線により45
のプログラム番号供給ユニットに、各プログラムの並列
度情報を送る。
プログラム番号供給ユニット45では送られてきた信号
により、デコーダ601〜608に渡された各命令に、
それの所属するプログラムを示すプログラム番号を供給
する。
デコーダ601〜608では、送られてきた命令をデコ
ードし、かつ、その命令を実行するのに必要な命令実行
ユニット番号を求め、命令実行ユニット接続装置に送出
する。命令実行ユニットはデコードした命令種別より求
まる。
デコーダ601〜608でデコードされた各命令は信号
線61〜68を通って、69の命令実行ユニット接続装
置により、その命令を実行するのに必要な命令実行ユニ
ットと接続される。
デコーダと接続された命令実行ユニットからは、データ
にアクセスするために、そのユニットと75のレジスタ
ファイル接続装置を結ぶ制御/データ信号線によりレジ
スタファイル接続装置75に接続要求が発せられる。
レジスタファイル接続装置75では、制御/データ信号
線より送られる接続要求のプログラム番号、接続要求種
類(READ/WRITE)により、該当するレジスタ
ファイルのポートにつながる信号線と制御/データ信号
線のデータ信号線を接続する。
たとえば、92]のIALUが命令を実行する場合、7
21−の信号線により、プログラム番号1、RE A 
D要求の接続要求を発すると、レジスタファイル接続装
置75はレジスタファイル81のポート入出力線810
1.8102と、721内の2本のデータREAD!と
を接続する。
また、911〜914のLOAD/5TOREユニット
L/Sでは、制御/データ信号線701〜704.91
1〜914により70のマルチボートデータギャッシュ
メモリとレジスタファイル81〜84の間のデータのL
OAD/5TOREを行う。
ここで、第2図に、メモリ103内のプログラムの命令
列構成の1例を示す。
図中、1011はプログラム1の命令列、1012はプ
ログラム2の命令列、101.3はプログラム3の命令
列、1014はプログラム4の命令列を表す。
各プログラム内の、同時実行可能な命令列は、システム
制御命令と、並列度数個のプログラム実行命令より構成
され、システム制御命令は上位1バイトにそのプログラ
ムの並列度情報を含む。また各命令は4バイトで構成さ
れる。
たとえば、第2図1011のプログラム1において、C
1,1〜12の12バイトが1つの命令列を構成し、C
1lは上位1バイトに並列度2を含むシステム制御命令
、11.12は同時実行可能なプログラム実行命令を表
す。
次に、第3図に、1021 (第1図参照)の可変プロ
グラムカウンタ■PCの構成を示す。
図中、501は加算器、502はレジスタ、51は入力
制御信号線、1031は出力制御信号線、503は制御
信号線を表す。
VPC1021においては、15の複数プログラム命令
列フェッチ制御装置から命令列のバイト数が信号線51
により入力し1、また502のレジスタより前回計算し
た命令列の先頭アドレスが503の信号線に送られ1両
者が1031の出力となり、更に51の加算機の2人力
値となって、その結果がレジスタ502に格納される。
次に、この可変プログラムカウンタによる、メモリ10
1からのプログラムの命令列取り出しの動作例を説明す
る。
VPCi021は、メモリ101に対して、第2図にお
ける1011のプログラム1の命令列のIIの先頭アド
レスと、取り出しデータバイト数として12バイトを指
定することによって、先頭命令11から次の命令列の制
御命令C12までを取り畠す。
このとき、取り出す命令列の並列度、すなわち、は、取
り出しデータバイト数は、前回取り出した制御命令C1
lより得られる。
次に、15(第1図参照)の複数プログラム命令列フェ
ッチ制御装置の構成を、第4図に示す。
図中、151は入力線と出力線の格子上のスイッチによ
り任意の入力線と出力線が接続可能なスイッチマトリッ
クス網である。
152は複数プログラム制御装置、153はスイッチ制
御装置である。
11.12.13.14は、36バイト幅のデータ入力
線で、スイッチマトリックス網151につながり、さら
に各線は、4バイト幅構成のデータ線9本より構成され
る(すなわち、データ入力線11は、信号線111〜1
19.12は121〜129.13は131〜139.
14は141〜149より構成される)。
21〜28は、4バイト幅のデータ出力線で、151よ
り出て、それぞれ8台のデコーダ601〜608につな
がる。
41〜44と51〜54は、制御信号出力線で152よ
り畠で、前者はプログラム番号供給ユニット103と1
53につながり、後者は可変プログラムカウンタ102
1〜1024につながる。
また、31〜34は4バイト幅のデータ信号線、154
は制御信号線である。
次に複数プログラム命令列フェッチ制御装置15の動作
を説明する。
メモリ101より取り呂されたプログラム1の命令列の
各命令は、データ入力線111.112、・・を、プロ
グラム2の命令列の各命令は121.122、・・・を
、プログラム3の命令列の各命令は131.132.・
・・を、プログラム4の命令列の各命令は141,14
2、・・・を通ってスイッチマトリックス網151に入
る。
151では、153のスイッチ制御装置により、プログ
ラム1〜プログラム4の順番に、プログラム実行命令が
送られきたデータ入力線を21〜28の出力線に、順に
接続する。また、プログラム1〜プログラム4のシステ
ム制御命令が送られてきたデータ入力線を31〜34の
出力線にそれぞれ接続する。
152の複数プログラム制御装置では、31〜34によ
って送られてきた各プログラムのシステム制御命令内の
、プログラムの並列度情報をもとに、4プログラム間で
のスケジューリングを行い、実行可となったプログラム
に対しては、そのプログラムの並列度情報を、41〜4
4の出力線のうち、そのプログラムに対応する信号線を
使って送出する。
実行停止となったプログラムに対しては、何も送出しな
い。
さらに、実行可となったプログラムに対してはそのプロ
グラムの並列度情報により求めた、可変プログラムカウ
ンタvPCの更新度(命令列フェッチバイト幅)を、5
1〜54の出力線のうち、そのプログラムに対応する信
号線を使って送出する。
実行停止となったプログラムに対しては、何も出力せず
、その可変プログラムカウンタは動作しないことになる
なお、実行停止となったプログラムのシステム制御命令
は、次回のスケジューリングに使われることになる。
153のスイッチ制御装置では、41〜44によって送
られてきた各プログラムの並列度情報をもとに、制御!
154によって151を制御する。
第5図は、複数プログラム命令列フェッチ制御装置15
の構成要素の1つである、152の複数プログラム制御
装置の構成を示したものである。
図中、301〜304は4バイトの入力データのうち、
上位1バイトを取り出すユニット、30はスケジューリ
ング制御装置、331〜334はスイッチ、341〜3
44は入力値を4倍して、さらに4を加算する演算器で
ある。
31〜34は、4バイト幅データ入力線で、それぞれユ
ニット301〜304につながる。
41〜44.51〜54は制御信号出力線であり、41
〜44はそれぞれスイッチ331〜334より出て、3
41〜344の演算器、スイッチ制御装置153と、プ
ログラム番号供給ユニットにつながる。51〜54はそ
れぞれ演算器341〜344を出て、1021〜102
4の可変プログラムカウンタvPCにつながる。
311〜314,321〜324は制御信号線である。
次に、複数プログラム制御装置152の動作を説明する
各プログラムのシステム制御命令が31〜34を通って
ユニット301〜304に入り、そこで並列度情報の上
位1バイトが取り出され、311〜314に出力され、
それぞれ331〜334のスイッチと30のスケジュー
リング制御装置に入る。
30では311〜314の入力線によって入ってきた、
4プログラムの並列度情報をもとに、4プログラムのス
ケジューリングを行い、実行可となったプログラムに対
しては321〜324の制御出力線のうちそのプログラ
ムに対応するものにスイッチON信号を出力し、実行停
止となったプログラムは、対応する制御出力線に何も出
力しない(OFF)。
331〜334のスイッチでは、装置30よりそれぞれ
制御信号線321〜324によって制御され、入力線3
11〜314と出力線41〜44を接続する動作をする
そして実行可となったプログラムに対応するスイッチは
ONになり、並列度情報が送出されることになる。
実行停止となったプログラムに対応するスイッチはOF
Fのままで、並列度情報は出力線に送出されない。
スイッチ331〜334の出力線41〜44は、複数プ
ログラム制御装置152から外部への出力線となり、3
41〜342の演算器の入力線となって、その演算器で
並列度を4倍し、かつ4を加算することにより、対応す
る可変プログラムカウンタvPCの更新度(命令列フェ
ッチバイト)を求め、51〜54によって出力する。
第6図は装置152の構成要素の1つである、30のス
ケジューリング制御装置の構成を示したものである。
9011.9012は4人力48カスイッチマトリック
ス網、9021〜9023は、演算ユニット、90はス
イッチ制御装置を表わす。
311〜314は制御信号入力線で、それぞれユニット
301〜304を出てスイッチ9011につながる。
321〜324は制御信号出力線でそれぞれスイッチ9
012を出てスイッチ331〜334を制御する。90
01.9002.9031〜9036.9041〜90
44は制御信号線である。
第7図は、スイッチ制御装置90によるスイッチ901
1.9012の動作を表にしたものである。
9011の入力線311〜314出力線9031〜90
34.9012の出力線321〜324と入力線904
1〜9o44の接続は、両スイッチ共、1マシンサイク
ル毎にラウントロピンに対称的に接続を切り替える。
これによって、各プログラムの優先順位も、表のように
ラウントロピンに切り替わる。本実施例ではスイッチ切
り替えの1サイクルは、同時に実行されるプログラム数
に相当する4マシンサイクルとなる。
第8図はユニット9021の動作を表にしたものである
9041がON時には、9031.9032からの入力
をそれぞれa、  bとすると出力は、9035は入力
の加算結果a+b、9042には9035の出力が本発
明システムの同時命令処理実行数(本実施例では8)以
下ならばON、それより大きけ九ばOFFになる。
また、9041がOFFの時は9021は動作しない。
なお、ユニット9022.9023の動作も同様に、制
御信号線と2人力に応じて、出力値を決定する。
第9図はユニット30内部のユニット9021〜902
3による動作をフローチャートで表したものである。
図示するように、パラメータの初期値を設定した後、ス
イッチ制御装[90により、9041をONにして、ユ
ニット9021を動作させる。
ユニット9021では、2人力値を加算し、その値を9
035に出力し、さらにその値が8より大きかったら終
了、8より小さければ9042をONにして、ユニット
9022を動作させる。以後同様の動作をユニット90
23まで行なわせる。
このように、各ユニットの入力をラウントロピンに切り
替え、2人力値の加算値が8より小さい場合に、順次、
次のユニットを動作させることにより、ラウントロピン
にプログラムの優先度付けを行う。
以上の動作により、スケリューリング制御装置30には
、311〜314を通って各プログラムの並列度が入力
され、スイッチ9011により、311〜314と90
31〜9034の接続を行い、プログラムの優先度付け
が行なわれ、優先度の高いプログラムの順に、各プログ
ラムの並列度の和が、同時命令処理実行数である8を越
えない範囲で、9041〜9044の制御線をONにす
る。
そして、スイッチ9012により、9041〜9044
と321〜324の接続を行い、321〜324からス
イッチ接続制御信号(○N10FF)が送出されること
になる。
第10図は、複数プログラム命令フェッチ制御装置15
の構成要素の1つである153のスイッチ制御装置(第
4図参照)の、制御信号線154によるスイッチマトリ
ックス網151を制御する動作をフローチャートで表わ
したものである。
スイッチマトリックス網151の入力線11〜14によ
って送られてくる各プログラムの命令列は、同時実行可
能な、すなわち並列炭分のプログラム実行命令と、シス
テム制御命令より構成されているので、11〜14それ
ぞれの36バイト幅入力線を構成する9本の4バイト幅
入力線のうち、先頭より(並列度数+1)本に命令列が
流れることになる。
スイッチ制御装W153は、プログラム1より順番に処
理を行うが、まず、プログラムlについては、入力線4
1より送られてくる。プログラムの並列度をもとに、1
1を構成する111〜119の最初の並列度数分の入力
線を、それぞれ151の出力llA21〜28の頭から
順番に接続する。そして(並列度数+1)番目の入力線
には、システム制御装置が流れているので、これは15
1の出力線31と接続する。
プログラム2、プログラム3、プログラム4、に対して
も同様に処理し、順番に、それぞれ入力線42.43.
44より送られてくる各プログラムの並列度をもとに、
−プログラム実行命令の流れる入力線を、21から28
の出力線で、まだ未接続のもののうち、先頭から順に接
続し、システム制御命令の流れる入力線を、プログラム
2に対しては151の出力線32に、プログラム3に対
しては33に、プログラム4に対しては34にそれぞれ
接続する。
次に、複数プログラム命令フェッチ制御装置15の動作
を処理の具体例をもって示す。
第2図においてメモリ101よりプログラム1の命令列
として11、工2、C12が、プログラム2の命令列と
してJl、J2、C22が、プログラム3の命令列とし
てに1、K2、C32が、プログラム4の命令列として
LL、L2.C42が、取り出されたとすると、第4図
において、各プログラムの命令列はそれぞれ111〜1
13゜121〜123、131〜133,141〜14
3を通って151のスイッチマトリックス網に入る。
153のスイッチ制御装置は、前回命令列を取り出した
ときの各プログラムのシステム制御命令C11、C21
、C31、C41によって、41〜44より入力した各
プログラムの並列度情報2.2.2.2をもとに、15
1内で111は21゜112は22,113は31,1
21は23゜122は24.123は32.131は2
5゜132は26,133は33,141は27゜14
2は28.143は34に接続する。
31〜34に接続されて152の複数プログラム制御装
置に送られた。各プログラムのシステム制御装置C12
、C22、C32、C42は第5図において、ユニット
301から304で各プログ−ラムの並列度情報2.2
.1.8を取り出す。
取り出された並列度情報はそれぞれ311〜314によ
ってスイッチ331〜334と30のスケジューリング
制御装置に送ら九る6スケジユーリング制御装置30で
は、第7図のマシンサイクルで2番目の、プログラム優
先順位が、4.1.2.3の順であったとすると、第5
図の30の出力線321〜324のうち324のみOK
倍信号発し、スイッチ334、演算器344、プログラ
ムカウンタ1024のみ動作し、メモリ101よりプロ
グラム4の命令列L3、L4、L5、L6、L7. L
8、L9、LIO1C43のみを取り出す。
取り出された命令列は141〜149を通って151の
スイッチマトリックス網に入る。
153のスイッチ制御装置は、41〜44のうち44の
みより入力されるプログラム4の並列度情報8をもとに
、151内で141は21.142は22.143は2
3,144は24゜145は25,146は26.14
7は27.148は28.149は34に接続する。
・・以下、同様の動作が行なわれる。
第11図は45のプログラム番号供給ユニット(第1図
参照)の動作をフローチャートで表したものである。
入力線41より送られて来るプログラム1の並列度分だ
け、プログラム番号供給ユニットの出力線401〜40
8に対し、頭から順に、プログラム番号rlJ を出力
する。同様に、入力線42より得られるプログラム2の
並列度分だけ、出力線401〜408の未使用分に頭か
ら順にプログラム番号「2」を出力し、同様の動作をプ
ログラム3、プログラム4に対しても行う。
第12図は、69の命令実行ユニット接続装置(第1図
参照)の構成を示したものである。
図中、691はスイッチマトリックス網、692はスイ
ッチ制御装置、61〜68はそれぞれデコーダ601〜
608でデコードされた命令と、プログラム番号と、命
令実行ユニット番号が送られてくる入力線で、前の2つ
はそれぞれ612〜682の信号線によりスイッチマト
リックス網691につながり、後の1つはそ九ぞれ61
1〜681の信号線によりスイッチ制御装置692につ
ながる。
出力線211〜214はそれぞれLOAD/5TORE
ユニット911〜914と、221〜228はそれぞれ
IALU921〜928と、231〜234はそれぞれ
FADD931〜934と、241〜244はそれぞれ FMUL941〜944とつながる。
693は、スイッチ制御袋M692がスイッチマトリッ
クス網691を制御するための制御信号線である。
次に、命令実行ユニット接続装置69の動作を説明する
第13図はスイッチ制御装置692の、制御信号線69
3によるスイッチマトリックス網691を制御する動作
をフローチャートで表わしたものである。
611〜681により、デコードされた各命令を実行す
るのに必要な命令実行ユニット番号が、スイッチ制御装
置692に送られる。
692では、611より順番に、それより得られる命令
実行ユニット番号をもとに、その番号が1  (L/S
)なら出力線211〜214に対し、2 (IALU)
なら221〜228に対し、3(FADD)なら231
〜234に対し、4(FMUL)なら241〜244に
対し、612〜682を頭から順々に接続する。
第14図は、75のレジスタファイル接続装置(第1図
参照)の構成図を示したものである。
図中、751はスイッチマトリックス網、752はスイ
ッチ制御装置を表す。
711〜714は各L/Sがら75への入出力線で、そ
のうち7111〜7141は各L/Sよリプログラム番
号、接続要求を752へ送り、7112〜7142は4
バイト幅入出力線で751とつながる。同様に721〜
744は各演算実行ユニットIALU、FADD、FM
ULから75への入出力線で、そのうち、7211〜7
441は各演算実行ユニットよりプログラム番号、接続
要求を752へ送り、721a〜744a、721b 
〜744b、4バイト幅出力線、721c〜744cは
4バイト幅入力線で751とつながる。
8101〜8112.8201〜8212゜8301〜
8312.8401〜8412はそれぞれプログラム1
、プログラム2、プログラム3、プログラム4に対応す
るマルチポートレジスタファイル81.82.83.8
4の各ポートと接続する入出力線である。
753は、752が751を制御するための制御信号線
である。
次にレジスタファイル接続装置75の動作を説明する。
第15図は752の、制御信号線753によるスイッチ
マトリックス網751を制御する動作をフローチャート
で表わしたものである。図中U(1) 、U (2)、
U (3)、U (4)はそれぞれL/S、IALU、
FADD、FMULの個数を表す。
7111〜7441により、命令実行ユニットからプロ
グラム番号、接続要求が、スイッチ制御装置752に送
られる。
752では、7111より順番に、もしそれが要求を発
していたならば、それより得られるプログラム番号、接
続要求をもとに、プログラム番号が1なら入出力線81
01〜8112に対し、2なら8201〜8212に対
し、3なら8301〜8312に対し、4なら8401
〜8412に対し、先頭から順々に、接続要求による必
要な本数だけ接続する。
ここで言う必要な本数とは、L/Sに関してはREAD
/WRITEの要求に対して1本、その他の命令実行ユ
ニットに対しては2本、WRITE要求に対しては1本
となる。
なお、本第1実施例においては、VLIW計算機を基本
とし、レジスタ競合は全てコンパイラによって調査、解
消され、実行時にレジスタ競合をチエツクしないものと
して説明した。
しかし、実行時にレジスタ競合を調べるスーパースカラ
プロセッサを基本とすることも可能であり、この場合、
次に述べる第2実施例で示すように同時実行可能なプロ
グラム数分のスケジューラ(本実施例では4)を設け、
各スケジューラが。
各プログラムについて、プログラム供給ユニット45か
ら供給されるプログラム番号に基づいて。
デコーダ601〜608がデコードした命令間のスケジ
ューリングを行うようにすれば良い。
(以下余白) (第2実施例) 以下本発明に係るデータ処理装置の第2の実施例につい
て説明する。
第16図に、本実施例に係るデータ処理装置の全体構成
を示す。
図中、2101は、4ポート構成マルチボートインスト
ラクシヨンキヤツシユメモリ、21021〜21024
は可変プログラムカウンタvPcで、それぞれ個別のプ
ログラムの命令を読み出すために使用される。2601
〜2608は命令デコーダ。
2041〜2044はスーパースカラプロセッサの動的
スケジューラを表す。2911〜2914はLOAD/
5TORE:Lニー ット(L/S)、2921〜29
28は整数演算器(IALU)、2931〜2934は
浮動小数点加算器(FADD)、2941〜2944は
浮動小数点乗算器(FMUL)、2081〜2084は
24ポート構成(16人力、8出力)マルチポートレジ
スタファイルで、それぞれ個別のプログラムのデータを
一時的に保持する。
2070は4ポート構成マルチポー1〜データキヤツシ
ユメモリを表す。
2015〜2o18はスイッチ回路で、スイッチ201
5はメモリ2101と命令デコーダ2601〜2608
とを接続し、スイッチ2016は命令デコーダ2601
〜2608と動的スケジューラ204]−〜2044と
を接続し、スイッチ2017は動的スケジューラ204
1〜2044と各種ALU2911〜2914゜292
1〜2928、2931〜2934.2941〜294
4とを接続し、スイッチ18は各種ALU2911〜2
944とレジスタファイル2081〜2084とを接続
する。
2050は該システム構成を変更する、構成制御ユニッ
トを表す。
また、21031〜21034.2511〜2514は
制御信号線で、それぞれが個別のプログラムに対応する
2061〜2068はデコードされた命令を伝える信号
線、4111〜4118と4121〜4128 、 4
2 ] 1 〜4218  と  4221 〜422
8 、  4311 〜 4318  と  4321
 〜4328 、  4411 〜 4418  と 
 4421 〜4428も同様の信号線で、それぞれが
個別のプログラムに対応する。2052〜2055は制
御信号線である。
2011〜2014は32バイト幅信号線で、それぞ九
が個別のプログラムに対応する。
2021〜2028は4バイト幅データ信号線、270
1〜2704.2711〜2714は制御信号線+4バ
イト幅データ信号線、2721〜2728、2731〜
2734.2741〜2744は制御信号線+4バイト
幅データ信号線×3本(入力2、出力1)、8101〜
8124.8201〜8224、8301〜8324.
840]〜8424は制御信号線+4バイト幅データ信
号線を表す。
次に、本第2実施例に係るデータ処理装置の標準的な動
作を説明する。
V P C21021〜21024が、命令取り出し信
号を信号線2]031〜21.034を通じてメモリ2
101に送り、メモリ2101からそれぞれ1個以上の
命令を、4プログラム分取り出す。
取り出された命令は、それぞれ信号線2011=201
4を介して、スイッチ2015に送られる。
スイッチ2015では信号線2011〜2014と20
21〜2028との回路接続を行い、メモリ2101よ
り取り呂された命令を命令デコーダ2601〜2608
に送る。
命令デコーダ2601〜2608では、送られてきた命
令を解釈する。
デコードされた各命令は、信号!2061〜2068を
介して、スイッチ2016に送られる。
スイッチ2016では信号線2061〜2068と41
11〜4118.4211〜4218.4311〜43
18.4411〜4418との回路接続を行い、命令デ
コーダ2601〜2608より取り出されたデコード済
み命令を、各プログラムに対応する動的スケジューラ2
041〜2044に送る。
動的スケジューラ2041〜2044では、それぞれ送
られてきたデコード済み命令のデータ依存関係等をチエ
ツクし、レジスタ競合を起こさない範囲で複数個の命令
を同時に実行させる。
具体的には、レジスタ競合を起こす命令の実行を遅延さ
せる。動的スケジューラ2041〜2044で同時実行
可能もしくは遅延実行可能と判断された各プログラムの
命令は、それぞれのプログラムに対応するレジスタファ
イル2081〜2084を用いて命令を実行する。
この時、演算装置として、スイッチ2017.2018
によって各プログラムに割り当てられたALU2911
〜2914.2921〜2928.2931〜2934
.2941〜2944を使用する。
なお、本第2実施例においては、実行時にレジスタ競合
を調べるスーパースカラプロセッサを仮定しているが、
実行時にレジスタ競合をチエツクしないVLIW計算機
を基本として考えることもできる。この場合は、動的ス
ケジューラ41〜44は必要とならない。レジスタ競合
は全てコンパイラによって調査、解消されることになる
以下、本データ処理装置の構成変更動作について説明す
る。
第17図は、メモリ101内のプログラムの命令列構成
の1例を示したものである。
21011はプログラム1の実行命令、21012はプ
ログラム2の実行命令、21013はプログラム3の実
行命令、21014はプログラム4の実行命令を表わす
各命令は4バイトで構成される。
図中、Ill、112・・・はプログラム命令をC1l
、C41はシステム制御命令を表す。
本第2実施例において、システム制御命令は、そのプロ
グラムの並列度情報と共に必要なALU種別および、そ
の数を含む。
図中、命令列21011はシステム制御命令C1lによ
り並列度2が指定され、Illと112、I21とI2
2.I31とI32、・・・は同時実行可能な命令列を
意味する。
命令列21012はシステム制御命令を持たない命令列
の例である。
命令列21013はシステム制御命令C31により並列
度4が指定され、K21〜に24は同時実行可能な命令
列を意味する。
命令列21014はシステム制御命令C41により並列
度8が指定され、Lll〜L18は同時実行可能な命令
列を意味する。
なおユーザプログラム内でシステム制御命令を使用する
場合は、プログラムの構成が変更される毎にシステム制
御命令を挿入する方法や、あるいは読み出される命令列
中に毎回システム制御命令を挿入する方法等を用いるこ
とができる第18図は、V P C21021の構成図
である。なおV P C21022〜21024も同様
の構成をとる。
図中、2500は2ビツトシフタ、2501は加算器、
2502.2503はレジスタを表す。
構成変更時には、構成制御ユニット2050から信号線
2511を介して送られてくる実行命令数の値をシフタ
2500により2ビツトシフトして(4倍して)、レジ
スタ2503に記憶されている命令読み出しバイト数を
書き換える。
また、レジスタ2502には前回計算した命令読み出し
先頭アドレスが格納されており、この両レジスタの出力
がV P C21021の出力となり、信号1s210
31を介してメモリ21o1に送られる6即ちV P 
C21021は、命令の読み出し先頭アドレスと読み出
し命令数とを出力するプログラムカウンタである。
さらに、両レジスタの出力は、加算器2501の2人力
値となり、その演算結果が次回命令読み呂し先頭アドレ
スとしてレジスタ2502に格納される。
第19図に、構成制御ユニット2050の構成を示す。
2551〜2554は、システム制御命令から並列度と
必要ALU数を取り出すユニット、5631〜5634
は各プログラムの並列度情報を格納するレジスタ、56
41〜5644は各プログラムの必要ALU数情報を格
納するレジスタ、2571は、各プログラムから同時に
読み出す命令数を制御する複数プログラム制御ユニット
、2572は、各プログラムに必要なALUを割り当て
るALU割り当て制御ユニットである6 2581.2582.2583はスイッチ制御ユニット
で、それぞれスイッチ2o15、スイッチ2016、ス
イッチ2017.2018171切り替え制御を行う。
2059は、実行中の4つのプログラム間で優先順位を
決定し、該優先順位に従ってプログラムの実行順序を制
御するプログラム間スケジューリングユニットである。
次に、構成制御ユニット2050の動作を説明する。
動的スケジューラ2041〜2o44の何れかにおいて
、システム制御命令が検出されると、対応する信号lI
2541〜3544によって、ユニット2551〜25
54に伝えられる。命令中に含まれる並列度と必栗AL
U数はユニット2531〜2534において取り出され
、取り出された並列度は、信号線5611〜5614に
より、必要A L U数は、信号線5621〜5624
により、対応するレジスタ5631〜5634.564
1〜5644に格納される。
複数プログラム制御ユニット2571、ALU割り猫で
制御ユニット2572は、プログラム間スケジューリン
グユニット2059によって制御される。
複数プログラム制御ユニット2571は、レジスタ56
31〜5634に格納されている各プログラムの並列度
をもとに、各プログラムの読み出し命令数を決定し、そ
の読み出し命令数を制御線2511〜2514により出
力し、V P C21021〜21024、スイッチ制
御ユニット2581.2582に伝える。
ALU割り当て制御ユニット2572は、レジスタ56
41〜5644に格納さ九ている各プログラムの必要A
、 L U数をもとに、各プログラムのALU使用数情
報を決定し、スイッチ制御ユニット2583に伝える。
複数プログラム制御ユニット2571は、実行される各
プログラムの読み出し命令数、すなわち各プログラムに
対して割り当てら九る命令デコーダ数を求めるユニット
である。
すなわち、複数プログラム制御ユニット2571は、プ
ログラム間スケジューリングユニット2059によって
示される優先順位の高いプログラムから順番に、プログ
ラムの並列度を調べる。その総和が命令デコーダ数(本
実施例ではn=8)を越えない範囲で、各プログラムに
おいて取り出すべき命令数を決定し、該命令数を信号線
2511〜2514に出力する。命令デコーダを割り当
てることの出来ないプログラムは、実行が一時的に凍結
される。実行が凍結されたプログラムは、その後、優先
順位が高くなれば、凍結が解除される。
第20図は、複数プログラム制御ユニット2571の動
作を表すフローチャートである。
実行すべきプログラムが、VLIW計算機を基本とした
システム用のコンパイラで変換されたものならば(図中
、コンパイルモード○N)、プログラムの優先度の高い
順に指定された並列炭分だけ、プログラムに対して命令
デコーダを割り当てる。
またスーパースカラを基本としたシステム用のプログラ
ムに対しては、基本的にはVLIWと同様であるが、余
った命令デコーダも優先度の高い順に割り当てる。
ALU割り当て制御ユニット2572は、実行される各
プログラムに対して、必要なALUを割り当てる。複数
プログラム制御ユニット2571と同様、プログラム間
スケジューリングユニット2059によって示される優
先順位の高いプログラムから順番に、各種ALUの必要
個数を調べる。
その総和が各種ALU総数を越えない範囲で、各プログ
ラムに対して割り当てるALU数を決定し、その情報を
信号線2540に出力する。
必要なALUを割り当てることの出来ないプログラムは
、実行が凍結される。実行が凍結されたプログラムは、
その後、必要なALUが使用可能となれば、凍結が解除
される。
第21図は、ALU割り当て制御ユニット2572の動
作を表すフローチャートである。
実行すべきプログラムが、VLIW計算機を基本とした
システム用のコンパイラで変換されたものならば(図中
、コンパイルモードON)、プログラムの優先度の高い
順に、指定さtたALU数分だけALUを割り当てる。
またスーパースカラを基本としたシステム用のプログラ
ムに対しては、最低各種ALUを1つずつ与え、余った
ALUを優先度の高い順に1つずつ割り当てる。
スイッチ制御ユニット2581は、制御線2052を介
して、スイッチ2015を切り替え、各プログラムにお
いて取り呂された命令を命令デコーダ2601〜260
8に伝える。
スイッチ制御ユニット2582は、制御線2053を介
して、スイッチ2016を切り替え、命令デコーダ26
01〜2608でデコードされた命令を、対応するプロ
グラムの動的スケジューラ2041〜2044に伝える
スイッチ制御ユニット2583は、制御線2055を介
して、スイッチ2017.2018を切り替え、各種A
LU2911〜2914.2921〜2928、293
1〜2934.2941〜2944を、対応するプログ
ラムの動的スケジューラ2041〜2044、レジスタ
ファイル2081〜2084と接続する。
第22図は、スイッチ2017の構成図である。
1701〜1704はALU選択スイッチ、175はA
LU接続スイッチを表す。
図中、4121〜4128.4221〜4228、43
21〜4328、4421〜4428は、動的スケジュ
ーラからの入力線、2055は構成制御ユニット205
0からの入力線、17101〜17120.17201
〜17220.17301〜17320.17401〜
17420は、各ALU選択スイッチとALU接続スイ
ッチを結ぶ信号線で、2211〜2214.2221〜
2228.2231〜2234.2241〜2244は
、各種ALU2911〜2914.2921〜2928
.2931〜2934.2941〜2944に接続され
る出力線である。
各A L U選択スイッチ1701〜l704からの出
力線の本数はALU総数に等しく、信号線17101〜
17120.17201〜17220.17301〜1
7320.17401〜17420は、それぞれALU
2911〜2944と一対一に対応する6 ALU接続スイッチ2175は、構成制御ユニット20
50からの制御線2055を介して、切り替え制御が行
われる。
各ALtJ選択スイッチ1701〜1704と、各種A
LU2911〜2914.2921〜2928.293
1〜2934.2941〜2944の中から必要なAL
Uを接続することにより、動的スケジューラ2041〜
2044と命令を実行するために必要なALUとの接続
が行われる。
第23図は、スイッチ2018の構成図である。
1801〜1804はボート選択スイッチ、2185は
ALU接続スイッチを表す。
2711〜2714. 27.21〜2728.273
1〜2734.2741〜2744は、各種ALU29
11〜2914.2921〜2928、 2931〜2
934、 2941〜2944とALU接続スイッチ2
185を結ぶ信号線、2055は構成制御ユニット20
50からの入力線、18 ]、01〜18120.18
201〜18220.18301〜18320.184
01〜18420は、ALU接続スイッチ2185とボ
ート選択スイッチ1801〜1804を結ぶ信号線、8
101〜8124.8201〜8224.8301〜8
324.8401〜8424は、各レジスタファイル2
081〜2084のボートに接続するデータ線である。
各ボート選択スイッチ1801〜1804とALU接続
スイッチ2185とを結ぶ信号線の本数はALU総数に
等しく、信号線18101〜18120.18201〜
18220.18301〜18320.18401〜1
8420は、それぞれA、LU2911〜2944と一
対一に対応する。
ALU接続スイッチ2185も、スイッチ2017内の
ALU接続スイッチ2175と同様。
構成制御ユニット2050からの制御線2055を介し
て切り替え制御が行われる。そして、各レジスタファイ
ルボート選択スイッチと、各種ALU2911〜291
4.2921〜2928.2931〜2934.294
1〜2944の中から必要なALUを接続することによ
り、レジスタファイル2081〜2084と命令を実行
するために必要なALUとの接続が行われる。
以上のように、本第2実施例においては、ALU291
i〜2914.2921〜2928.2931〜293
4.2941〜944を、各プログラムに固定してデコ
ーダに接続する。
しかし、前記第1実施例と同様に、ALUをプログラム
に固定せず、各プログラムの命令実行時に必要なALU
を判断して接続する方式も考えられる。
以下、この場合について説明する。
この場合、動的スケジューラ2041〜2044は命令
出力時に、各命令に対してどのプログラムに所属するか
を示すプログラム番号と。
どの種類のALUを使用するかを示すALU番号を付加
する。
なお、この方式の場合、前記第1実施例と同様、システ
ム制御命令において必要ALU数を示す:イールドは必
要ない。
さらに、構成制御ユニット2050内におい1もALU
割り当て制御ユニット3572、スイッチ制御ユニット
2583が不要となる。
また、スイッチ2017.2018内に、ALU選択−
L ニー ッh 1701〜1704、]−801〜1
804 (7) f’わりに、スイッチ制御ユニット2
176.2186を導入し、スイッチ2017a、20
18aとする。
第24図に、スイッチ2017aの構成を示す。
図中、2175はALU接続スイッチ、2176はスイ
ッチ制御ユニットである。
4121〜4128、4221〜4228.4321〜
4328.4421〜4428は、それぞれ動的スケジ
ューラ2041〜2044からの入力線である。
各人力線には、デコード済み命令、プログラム番号、A
LU番号が流れる。
デコード済み命令とプログラム番号の2つは41212
〜41282.42212〜42282.43212〜
43282.44212〜44282の信号線によりA
LU接続スイッチ2175に入力され、ALU番号は4
1211〜41281゜42211〜42281.43
211〜43281.44211〜44281の信号線
により、スイッチ制御ユニット2176に入力される。
出力線2211〜2214.2221〜2228、22
31〜2234、2241〜2244は、それぞれAL
U2911〜2914.2921〜2928、2931
〜2934.2941〜2944と接続される。
2177は、スイッチ制御ユニット2176がALU接
続スイッチ2175を制御するための制御信号線である
次に、このスイッチ2017の動作を説明する。
第25図は、ALU接続スイッチ175の動作を表すフ
ローチャートである。信号線41211〜44281に
より、スイッチ制御ユニット2176に対して、各命令
を実行するのに必要なALU番号が与えられる。
スイッチ制御ユニット2176では、信号線41211
〜44281によって示されるALtJ番号が1(L/
S)ならば出力線2211〜2214に対し、2 (I
ALU)ならば2221〜2228に対し、3 (FA
DD)ならば2231〜2234に対し、4 (FMU
L)ならば2241〜2244に対し、信号4!412
12〜44282を接続する。
第26図は、スイッチ2018aの構成図を示したもの
である。2185はALU接続スイッチ、2186はス
イッチ制御ユニットを表す。
2711〜2714は各L/Sからスイッチ2018へ
の入出力線であり、そのうち7111〜7141は各L
/Sよりプログラム番号、接続要求をスイッチ制御ユニ
ット2186へ送る信号線で、7112〜7142は制
御信号線+4バイト幅入出力線である。同様に2721
〜2744はIALU、FADD、FMULがらスイッ
チ2018aへの入出力線であり、そのうち、 721
1〜7441は各ALUよりプログラム番号、接続要求
をスイッチ制御ユニット2186へ送る信号線で、27
21a  −2744a、  2721b 〜2744
bは制御信号線+4バイト幅出力線、2721c〜27
44cは制#信号線+4バイト襠入力線である。810
1〜8124.8201〜8224.83o1〜832
4.8401〜8424はそれぞ九マルチポートレジス
タファイ/l/ 2081.2082.2083.20
84(7)各ボートと接続される入出力線である。
2187は、スイッチ制御ユニット2186がALU接
続スイッチ2185を制御するための制御信号線である
次にスイッチ2018aの動作を説明する。
第27図は、ALU接続スイッチ2185の動作を表す
フローチャートである。
信号線7111〜7441によって、スイッチ制御ユニ
ット2186に対して、各ALUからプログラム番号、
接続要求が伝えられる。
スイッチ制御ユニット2186では、信号線7111〜
7441から得られるプログラム番号。
接続要求をもとに、プログラム番号が1ならば入出力線
8101〜8124に対し、2ならば入出力uA820
1〜8224に対し、3ならば入出力線8301〜83
24に対し、4ならば入出力線8401〜8424に対
し、接続要求によって示される本数分だけの信号線を接
続する。
なお、ここで言う示す信号線の本数とは、前記第1実施
例と同様、L/Sに関してはREAD/WRITEの要
求に対して1本、その他の命令実行ユニットに対しては
、READ要求に対しては2本、WRITE要求に対し
ては1本である。
以上のように本発明の第1、第2実施例によれば、デー
タ処理装置内に、処理するプログラムの並列性に応じて
、逐次構造を変化させる、マルチプロセッサ構成を実現
し、該データ処理装置内で、同時に処理できる命令数を
複数のプログラムで補償することにより、データ処理装
置の稼動率を向上させることにより、ハードウェアの性
能を十分に活かすことが可能となる。
すなわち、スーパースカラプロセッサ、もしくはV L
、I W計算機上において、処理するプログラムの並列
性に応じて、動的に構造を変化させるマルチプロセッサ
構成を実現し、同時に処理できる命令数を複数のプログ
ラムで増やすことにより、データ処理装置内の並列処理
機構の稼動率を向上させることができる。
また、コンパイラも、ハードウェア上の定まった並列度
に無理に合致させる必要がなく、個々のプログラムが有
する並列度に応じた、複数命令処理オブジェクトファイ
ルを作れば良く、コンパイラの負担を減少させることが
できる。
さらに、種々のALU資源を共有することにより、資源
の節約、および、高速専用演算器導入による処理の高速
化を図ることができる。
また、スーパースカラを基本としたシステム構成におい
ては、プロセッサ内の同時処理可能な命令数が増減した
場合でも、同じアーキテクチャを維持している限り、ソ
フトウェアの互換性は保持できる。
(以下余白) 〔発明の効果〕 以上のように、本発明によれば、複数のプログラムより
、同時処理可能な命令を取りだし、同時に実行するため
、複数のプログラムを高速に効率良く実行することがで
きる。
また、このデータ処理装置において、複数プログラムの
実行に、演算器を共用することにより、ハードウェア量
を、さほど増加することなく、パイプラインの汎用性を
保つことができる。
【図面の簡単な説明】
第1図は本発明の第1実施例に係るデータ処理装置の全
体構成を示すブロック図、第2図はプログラムの命令列
の構成を示す説明図、第3図は可変プログラムカウンタ
の構成を示すブロック図、第4図は複数プログラム命令
列フェッチ制御装置の構成を示すブロック図、第5図は
複数プログラム制御装置の構成を示すブロック図、第6
図はスケジューリング制御装置の構成を示すブロック図
、第7図はスイッチの動作およびプログラムの優先順位
を示す説明図、第8図はスケジューリング制御装置内の
ユニットの動作を示す説明図、第9図はスケジューリン
グ制御装置内のユニットの動作アルゴリズムを示すフロ
ーチャート、第10図はスイッチ制御装置のスイッチマ
トリックス網制御アルゴリズムを示すフローチャート、
第11図はプログラム番号供給ユニットの動作アルゴリ
ズムを示すフローチャート、第12図は命令実行ユニッ
ト接続装置の構成を示すブロック図、第13図はスイッ
チ制御装置のスイッチマトリックス網制御アルゴリズム
を示すのフローチャート、第14図はレジスタファイル
接続装置の構成を示すブロック図、第15図はスイッチ
制御装置のスイッチマトリックス網制御アルゴリズムを
示すのフローチャート、第16図は本発明の第2実施例
に係るデータ処理装置の全体構成を示すブロック図、第
17図はプログラム命令の構成を示す説明図、第18図
は可変プログラムカウンタの構成を示す説明図、第19
図は構成制御ユニットの構成を示すブロック図、第20
図は複数プログラム制御ユニットの動作アルゴリズムを
示すフローチャート、第21図はALU割り当て制御ユ
ニットの動作;ルゴリズムを示すフローチャート、第2
2図は負的スケジューラとA L Uを接続するスイッ
チの構成を示すブロック図、第23図はALUとマルチ
ポートレジスタファイルを接続するスイッチの有酸を示
すブロック図、第24図は動的スケジューラとALUを
接続するスイッチの他の構成を示1ブロック図、第25
図は他の構成における動的2ケシユーラとALUを接続
するスイッチの動作アルゴリズムを示すフローチャート
、第26図(jALUとマルチポートレジスタファイル
を接続するスイッチの他の構成を示すブロック図、第2
7図は他の構成におけるALUとマルチポートレジスタ
ファイルを接続するスイッチの動作アルゴリズムを示す
フローチャートである。 15・・・複数プログラム命令列フェッチ制御装置。 30・・スケジューリング制御装置、45 ・プログラ
ム番号供給ユニット、69・・・命令実行ユニット接続
装置、70・マルチポートデータキャッシュメモリ、7
5・ レジスタファイル接続装置、81〜84・・・マ
ルチポートレジスタファイル、10]・・マルチポート
インストラクションキャッシュメモ  リ  、   
151 、  691 、  751.   9011
 .9o12・・スイッチマトリックス網、152・・
・複数プログラム制御装置、153.692.7522
.90・・・スイッチ制御装置、601〜608・・命
令デコーダ、1021〜1024・・可変プログラムカ
ウンタ、1701〜1704〜ALU選択スイッチ、1
801〜18o4・・ポート選択スイッチ、2015〜
2018・・・スイッチ回路、2041〜2044・・
動的スケジューラ、2050・・・構成制御ユニット、
2059・・・プログラム間スケジューリングユニット
、2070・・・マルチポートデータキャッシュメモリ
、2081〜2084・・・マルチポートレジスタファ
イル、2101・・マルチポートインストラクションキ
ャッシュメモリ、2175.2185・・・ALU接続
スイッチ、2186・・スイッチ制御ユニット、257
1・・・複数プログラム制御ユニット、2572・・・
ALU割す当て制御ユニット、2581.2582.2
583.2176.2601〜2608−・命令デコー
ダ、2911〜2914.2921〜2928.293
1〜2334.2941〜2944・・・演算器、 2
1021〜21024・・・可変プログラムカウンタ。 出願人 株式会社 日 立 製 作 所代理人 弁理士
  富 1)和子 第 図 第12図 第13図 第14図 第 図 ハ

Claims (1)

  1. 【特許請求の範囲】 1、並列実行可能な複数の命令を、複数のプログラムよ
    り抽出する手段と、抽出した複数の命令を並列に実行す
    る、前記複数プログラムにより共用される複数の演算器
    とを有することを特徴とするデータ処理装置。 2、並列実行可能である命令数を示すシステム制御命令
    を含むプログラムを複数格納するメモリと、 システム制御命令に応じて、並列実行可能である1以上
    の命令よりなる命令列を、メモリに格納された複数のプ
    ログラムの各プログラムより、並列に取り出す命令列読
    み出し手段と、並列に動作する複数のデコーダと、 前記命令列読み出し手段が並列に取り出した複数の命令
    列を構成する、複数の命令を、前記複数のデコーダに分
    配する分配手段と、 デコードされた命令を並列に実行する複数種の複数の演
    算器と、 前記複数のデコーダと複数の演算器とを、各デコーダが
    デコードした命令種に応じて、各々接続する演算器接続
    手段と、 並列に実行する命令の属する各プログラムに対応して設
    けられた複数のレジスタファイルと、演算器よりの接続
    要求に応じ、前記複数の演算器と複数のレジスタファイ
    ルとを、各演算器が実行した命令の属するプログラムに
    応じて接続するレジスタファイル接続手段と、 を有することを特徴とするデータ処理装置。 3、請求項2記載のデータ処理装置であって、前記演算
    器接続手段に代えて、 並列実行する各プログラムに対応して設けられた、前記
    複数のデコーダがデコードした複数の命令の、各プログ
    ラム内における命令間の依存関係を解析して命令実行を
    制御する複数の動的スケジューリング手段と、 前記複数のデコーダと複数の動的スケジューリング手段
    とを、各デコーダがデコードした命令の属するプログラ
    ムに応じ各々て接続する動的スケジューリング手段接続
    手段と、 前記複数の動的スケジューリング手段と複数の演算器と
    を、動的スケジューリング手段がスケジューリングした
    命令の命令種に応じて、各々接続する第2の演算器接続
    手段と、 を有することを特徴とするデータ処理装置。 4、請求項2または3記載のデータ処理装置であって、 前記命令列読み出し手段は、並列に実行する複数のプロ
    グラムに対応して設けられた、対応するプログラムのシ
    ステム制御命令に応じて、各プログラムの、前記並列実
    行可能である命令よりなる命令列の先頭読み出しアドレ
    スと、並列実行可能な命令数である読み出し命令数とを
    、順次、それぞれ発生する、複数の、カウント単位幅可
    変なプログラムカウンタであることを特徴とするデータ
    処理装置。 5、請求項2、3または4記載のデータ処理装置であっ
    て、 前記レジスタファイル接続手段は、前記複数のデコーダ
    でデコードされた命令に該命令の属するプログラムを識
    別するプログラム番号を付与する手段と、前記演算器に
    備えられた、実行する命令に付与されたプログラム番号
    を接続要求に付加する手段と、接続要求と付加されたプ
    ログラム番号に応じて、演算器とレジスタファイルを接
    続するスイッチマトリックスとより構成されることを特
    徴とするデータ処理装置。 6、請求項2、3または4記載のデータ処理装置であっ
    て、 前記メモリに格納された複数のプログラムは、各システ
    ム制御命令内に、自プログラムが必要とする演算器数の
    情報をも含み、 かつ、システム制御命令に応じて、前記各接続手段の接
    続を統一的に制御する構成制御手段を備えたことを特徴
    とするデータ処理装置。 7、請求項2、3、4、5または6記載のデータ処理装
    置であって、 前記分配手段に、複数の命令より抽出した並列実行可能
    な複数の命令数が、備えた複数のデコーダ数より多い場
    合に、これをプログラム単位に、優先制御して複数のデ
    コーダに分配する優先制御手段を備えたことを特徴とす
    るデータ処理装置。 8、請求項2、3、4、5、6または7記載のデータ処
    理装置であって、 前記複数のデコーダが並列にデコードした複数の命令を
    、プログラム単位に、演算器種毎に優先制御して実行す
    ることを特徴とするデータ処理装置。 9、相互に演算器を共用する、複数命令を並列に実行可
    能な複数のプロセッサよりなることを特徴とするマルチ
    プロセッサシステム。 10、並列実行可能な複数の命令を複数のプログラムよ
    り抽出し、複数の演算器を前記複数のプログラムにより
    共用して、抽出した複数の命令を並列に実行することを
    特徴とする複数プログラムの並列実行方法。
JP24417990A 1990-09-14 1990-09-14 データ処理装置 Expired - Lifetime JP2934003B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP24417990A JP2934003B2 (ja) 1990-09-14 1990-09-14 データ処理装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP24417990A JP2934003B2 (ja) 1990-09-14 1990-09-14 データ処理装置

Publications (2)

Publication Number Publication Date
JPH04123230A true JPH04123230A (ja) 1992-04-23
JP2934003B2 JP2934003B2 (ja) 1999-08-16

Family

ID=17114942

Family Applications (1)

Application Number Title Priority Date Filing Date
JP24417990A Expired - Lifetime JP2934003B2 (ja) 1990-09-14 1990-09-14 データ処理装置

Country Status (1)

Country Link
JP (1) JP2934003B2 (ja)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH08161168A (ja) * 1994-12-01 1996-06-21 Matsushita Electric Ind Co Ltd データ処理装置
JP2005182791A (ja) * 2003-12-12 2005-07-07 Sharp Corp 汎用組込みプロセッサ
JP2008015720A (ja) * 2006-07-05 2008-01-24 Nec Electronics Corp プロセッサシステム及びプロセッサシステムを動作させるオペレーティングシステムプログラムの処理方法
WO2009107462A1 (ja) * 2008-02-26 2009-09-03 日本電気株式会社 低コストに複数命令流を実行するプロセッサ、その方法及びそのプログラム
JP2013516006A (ja) * 2009-12-29 2013-05-09 エンパイア テクノロジー ディベロップメント エルエルシー エネルギー効率のよいマルチコアプロセッサのための共用メモリ
JP2013214331A (ja) * 2013-07-22 2013-10-17 Panasonic Corp コンパイラ

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH08161168A (ja) * 1994-12-01 1996-06-21 Matsushita Electric Ind Co Ltd データ処理装置
JP2005182791A (ja) * 2003-12-12 2005-07-07 Sharp Corp 汎用組込みプロセッサ
JP2008015720A (ja) * 2006-07-05 2008-01-24 Nec Electronics Corp プロセッサシステム及びプロセッサシステムを動作させるオペレーティングシステムプログラムの処理方法
WO2009107462A1 (ja) * 2008-02-26 2009-09-03 日本電気株式会社 低コストに複数命令流を実行するプロセッサ、その方法及びそのプログラム
JP5333433B2 (ja) * 2008-02-26 2013-11-06 日本電気株式会社 低コストに複数命令流を実行するプロセッサ、その方法及びそのプログラム
US8745359B2 (en) 2008-02-26 2014-06-03 Nec Corporation Processor for concurrently executing plural instruction streams
JP2013516006A (ja) * 2009-12-29 2013-05-09 エンパイア テクノロジー ディベロップメント エルエルシー エネルギー効率のよいマルチコアプロセッサのための共用メモリ
US9367462B2 (en) 2009-12-29 2016-06-14 Empire Technology Development Llc Shared memories for energy efficient multi-core processors
JP2013214331A (ja) * 2013-07-22 2013-10-17 Panasonic Corp コンパイラ

Also Published As

Publication number Publication date
JP2934003B2 (ja) 1999-08-16

Similar Documents

Publication Publication Date Title
US10983800B2 (en) Reconfigurable processor with load-store slices supporting reorder and controlling access to cache slices
US11734010B2 (en) Parallel slice processor having a recirculating load-store queue for fast deallocation of issue queue entries
US6058465A (en) Single-instruction-multiple-data processing in a multimedia signal processor
KR100236527B1 (ko) 벡터 레지스터의 복수 뱅크를 사용한 단일 명령복수 데이터 처 리
Colwell et al. A VLIW architecture for a trace scheduling compiler
Kapasi et al. The Imagine stream processor
US5872987A (en) Massively parallel computer including auxiliary vector processor
EP2336879B1 (en) Methods and apparatus for dynamically merging an array controller with an array processing element
RU2427895C2 (ru) Оптимизированная для потоков многопроцессорная архитектура
US5752071A (en) Function coprocessor
US5121502A (en) System for selectively communicating instructions from memory locations simultaneously or from the same memory locations sequentially to plurality of processing
US5083267A (en) Horizontal computer having register multiconnect for execution of an instruction loop with recurrance
KR19980703033A (ko) 프로세서
US5036454A (en) Horizontal computer having register multiconnect for execution of a loop with overlapped code
Karim et al. A multilevel computing architecture for embedded multimedia applications
US5481736A (en) Computer processing element having first and second functional units accessing shared memory output port on prioritized basis
EP0982655A2 (en) Data processing unit and method for executing instructions of variable lengths
US20030221086A1 (en) Configurable stream processor apparatus and methods
US6327648B1 (en) Multiprocessor system for digital signal processing
KR100267089B1 (ko) 스칼라/벡터연산이조합된단일명령복수데이터처리
JPH04123230A (ja) データ処理装置
KR100267092B1 (ko) 멀티미디어신호프로세서의단일명령다중데이터처리
JPH09212362A (ja) マイクロプロセッサ
JP2861234B2 (ja) 命令処理装置
Ito et al. Reconfigurable instruction-level parallel processor architecture