JPS6153754B2 - - Google Patents

Info

Publication number
JPS6153754B2
JPS6153754B2 JP56197388A JP19738881A JPS6153754B2 JP S6153754 B2 JPS6153754 B2 JP S6153754B2 JP 56197388 A JP56197388 A JP 56197388A JP 19738881 A JP19738881 A JP 19738881A JP S6153754 B2 JPS6153754 B2 JP S6153754B2
Authority
JP
Japan
Prior art keywords
processor
instruction
processors
memory
control
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired
Application number
JP56197388A
Other languages
English (en)
Other versions
JPS5899867A (ja
Inventor
Hiroshi Hatsuda
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.)
NEC Corp
Original Assignee
Nippon Electric Co 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 Nippon Electric Co Ltd filed Critical Nippon Electric Co Ltd
Priority to JP19738881A priority Critical patent/JPS5899867A/ja
Publication of JPS5899867A publication Critical patent/JPS5899867A/ja
Publication of JPS6153754B2 publication Critical patent/JPS6153754B2/ja
Granted legal-status Critical Current

Links

Landscapes

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

Description

【発明の詳細な説明】 〔発明の属する技術分野〕 本発明はデータ処理装置における並列処理方式
に関するものである。
〔従来技術の説明〕
従来、演算処理を高速化する方法の一つとして
並列処理が広く知られている。この並列処理は処
理すべきプログラムの中で並列に実行できる部分
を各々異なるプロセツサで実行し、N台のプロセ
ツサで理想的にはN倍の性能を得ようとするもの
である(実際には並列に実行できない部分がある
のでこれ以下の性能しか得られないが)。
従来の一例を第1図に示す。この例ではN台の
プロセツサ1-1,1-2,……,1―Nがメモリス
イツチ2を介してM台のメモリ3-1,3-2,…
…,3―Mにアクセスし、各プロセツサ1―i(i
=1〜N)は各々独立にプログラムを実行できる
ように構成されている。制御プロセツサ5は通信
インタフエース6を通してプロセツサ1-1,1
-2,……,1―Nにプログラムの実行開始を指示
し、かつ通信インタフエース7を通して各プロセ
ツサ1―iからプログラムの実行終了の通知を受
理するように構成されている。この制御プロセツ
サ5の制御により、N台のプロセツサ1-1,1
-2,……,1―Nは解くべきプログラム中の並列
処理部分について分担して実行する。たとえば、 a1+b1,a2+b2,……,aN+bN という計算であればi番目のプロセツサがai
iを計算する。
従来この並列処理システムの性能を高めるには
各プロセツサの性能を高くするか、または台数を
増やす必要がある。従来、各プロセツサの性能を
高めると、プロセツサの物理的サイズが大きくな
り多数並べることが困難になるため装置の大きさ
の点で限界があり、またプロセツサの台数を増や
すと、メモリスイツチの構成が複雑になり実現が
困難になる。たとえば、完全なクロスバスイツチ
で考えると、プロセツサ台数とメモリ台数を2倍
にするとスイツチの規模は4倍になる。従来、上
記欠点のために大規模で超高性能の並列処理シス
テムはほとんど実用化されていない。
〔発明の目的〕 本発明の目的は、並列処理を分担する各プロセ
ツサに多重命令ストリームプロセツサ方式を採用
することにより、上記欠点を解決して、大規模で
超高性能の並列処理システムを提供することにあ
る。
〔発明の要旨〕
本発明は、各各が異なるプログラムを実行でき
る仮想プロセツサ複数台を含む多重命令ストリー
ム方式の演算処理装置複数台と、並列処理のため
のプログラムおよびデータが記憶される複数台の
メモリ装置と、任意の上記演算処理装置から任意
の上記メモリ装置へのアクセスを可能にするメモ
リスイツチと、このメモリスイツチおよび上記演
算処理装置を制御する制御プロセツサと、この制
御プロセツサから上記全仮想プロセツサにプログ
ラムの実行開始を指示する通信手段と、上記各仮
想プロセツサから上記制御プロセツサにプログラ
ムの実行終了を通知する通信手段とを備え、上記
制御プロセツサの制御により一つのプログラム中
の並列処理部分を上記全仮想プロセツサにより並
列に実行することを特徴とする。
〔発明の原理と作用〕
本発明では並列処理を分担する各プロセツサに
多重命令ストリーム方式を採用して1台の物理的
プロセツサ中に複数の仮想プロセツサを実現し、
物理的なプロセツサ台数を増やさずに実効的なプ
ロセツサ台数を増やしている。
ここで多重命令ストリーム方式プロセツサの原
理について簡単に説明する(詳しくはM.J.Flynn
「Shared Internal Resources in a
Multiprocessor」PP 565―569,Proc.of
Information Processing 71,North―Holland
Publishing Co.(1972)などに報告されてい
る)。この方式のプロセツサでは「命令語の取
出・解読」、「オペランドの取出」、「演算」という
命令の実行の段階がパイプラインで構成され、取
出した命令は各段階毎に独立した処理回路を通つ
て行く過程で実行される。すなわち第2図に多重
命令ストリーム方式のプロセツサの動作の一例を
示す。第2図において命令は命令取出・解読回
路で取出されて解読されると、次のオペランド取
出の処理回路にその結果がわたされ、そこでオペ
ランドが取出されると演算回路に取出されたオペ
ランドがわたされる。演算回路もパイプライン化
されていて演算1と演算2の処理を経て実行が完
了する。
ここで各段階での処理時間をΔTとすれば、上
記処理に4×ΔT時間かかることになる。一方命
令取出・解読回路は命令に対する処理を完了す
ると、次のΔT時間には命令の取出・解読をは
じめるが、このとき命令は命令と異なるプロ
グラムから取出す。この例では第3図に示すよう
に4つの独立なプログラムがあり、そのプログラ
ムの中から順番に命令を取出す。その利点は、も
し同一のプログラムから続けて次の命令(この例
では命令′)を取出すと、命令の実行が完了
するまでその命令の実行条件が定まらないことが
あるので(たとえば命令で演算した結果を次の
命令がオペランドとして使用する場合など)、そ
の命令は無条件には実行することができず、命令
を実行してよいか否かを判断するのに複雑な制御
を必要とする上、もし次の命令が前の命令の演算
結果に基づくときには、前の命令の実行が完了す
るまで待たねばならず演算回路の使用効率が低下
するのに対し、独立なプログラムの命令であれば
無条件に実行でき制御が簡単でしかも演算回路の
遊休化も避けられる点にある。
同一プログラム内ではある命令の実行が完了し
てから次の命令(第3図のプログラム#1では命
令の次に命令′)を取出すようにすれば上記
の問題がなく、この例では4個以上のプログラム
の命令を順番に実行すればその条件が満される。
その場合1台のプロセツサの中で4つの命令スト
リーム(プログラム)が並行して処理されている
ことになり、これは4台の仮想プロセツサが存在
してそれぞれのプログラムを実行していると見る
こともできる。
一般にパイプラインをS段にするとS個のプロ
グラム(命令ストリーム)を実行することがで
き、S台の仮想プロセツサが実現される。当然の
ことながらS個以上のプログラムを実行するよう
にし、S台以上の仮想プロセツサを実現すること
もできる。この場合N台のプロセツサがあればソ
フトウエア的にはN×S台の(仮想の)プロセツ
サが存在するのと等しくなる。これを並列処理シ
ステムに応用すればN台のプロセツサに対するメ
モリスイツチでS×N台のプロセツサと等価のシ
ステムを構成できることになり、従来方式のよう
にS×N台の実プロセツサを並べるのに比しメモ
リスイツチの規模がはるかに小さくなる。
これを利用した並列処理システムは、第1図に
おいてプロセツサ1-2,1-2,……,1―Nを多
重命令ストリーム方式の演算処理装置としたもの
で、この多重命令ストリームプロセツサがS台の
仮想プロセツサを含むとすれば、合計S×N台の
プロセツサ(仮想プロセツサ)による並列処理が
実現する。各仮想プロセツサは制御プロセツサ5
からの並列処理開始指示を受けて、与えられたプ
ログラムの実行を開始し、それが終了すると制御
プロセツサ5に通知する。
本システムではこのための両方向の通信手段が
必要であるが、従来方式に比し実プロセツサの台
数が少ないのでこの通信手段を実現する上でも有
利である。すなわち制御プロセツサ5から仮想プ
ロセツサへ通信する場合には実プロセツサが受け
てその中の仮想プロセツサに分配すればよく、も
しS台の仮想プロセツサが各実プロセツサ中にあ
るとすれば1/Sのインタフエースで済む。仮想
プロセツサから制御プロセツサへ通信する場合に
ついても同様である。
各演算処理装置(実プロセツサ)はメモリスイ
ツチに接続され、このメモリスイツチを介して同
じくメモリスイツチに接続されている複数のメモ
リ装置の中の任意のメモリ装置にアクセスするこ
とができる。このメモリ装置中には並列処理のた
めのプログラムやデータが格納される。
〔実施例による説明〕
次に本発明について図面を参照して詳細に説明
する。
第4図は本発明一実施例システムの構成図であ
る。第4図において各符号は第1図の各符号にそ
れぞれ対応する。本実施例の特徴ある構成は、プ
ロセツサ1の台数N=16、メモリ3の台数M=32
であつて、各プロセツサ1―i(i=1〜16)は
多重命令ストリーム方式のプロセツサである。各
プロセツサ1―iの中で8個のプログラムストリ
ームが実行される。
メモリ3―j(j=1〜32)は完全なクロスバ
ー方式により構成され、複数のプロセツサ1―i
から同時にメモリアクセスが発生しても同一のプ
ロセツサ1へアクセスしないかぎり競合は起らな
いようになつている。また制御プロセツサ5に
は、2台の専用の制御プロセツサメモリ9-1,9
-2が接続される。また制御プロセツサ5は、メモ
リスイツチ2を介してメモリ3-1,3-2,……,
-32に接続され、各メモリ3―jへもアクセスで
きるようになつている。さらに制御プロセツサ5
は通信インタフエース10を介して各プロセツサ
1―iに接続され、各プロセツサ1―iとの間で通
信できるように構成される。
第5図は、第4図に示した1台のプロセツサ1
の詳細なブロツク構成図である。11は多重(こ
の例では8個)の命令ストリームを実行するため
の制御メモリで、この制御メモリ11の内容は各
命令ストリームに対応した8個の領域に分割され
る。各分割された領域内には命令ストリームを実
行するのに必要な命令アドレス、演算用レジスタ
などが格納されている。
13はパイプライン方式で構成された演算回路
で、一定時間(ΔT)間隔でオペランドを受け演
算して結果を出力する。14はメモリスイツチ2
を介してメモリ3にアクセスするための制御回路
である。また15は通信制御回路であつて、制御
プロセツサ5との通信を制御し、通信インタフエ
ース10と接続され、制御プロセツサ5からの指
定(特定の仮想プロセツサに対するもの、あるい
はこのプロセツサ1の中の全仮想プロセツサに対
するもの)に従つて制御情報を各仮想プロセツサ
に与える。
制御情報の例としては命令ストリームの実行を
開始する「START」、止める「STOP」などがあ
る。これらの情報は各仮想プロセツサに対応した
制御メモリ11の中の領域に格納するなどの方法
により記憶され、その後のプロセツサ1(すなわ
ち各命令ストリーム)の動作を制御するのに用い
られる。プロセツサ1は「START」指令を受け
て動作を開始し、所定の条件を満したとき、ある
いは「STOP」指令を受けたときに動作を中止す
る。また通信制御回路15はプロセツサ1側から
制御プロセツサ5へ通信インタフエース10を介
して情報を伝えるためにも用いられ、たとえば
「START」指令を受けて実行開始後、特定の仮
想プロセツサが実行を終了したなどの条件を満し
たときにその実行終了を制御プロセツサ5に伝え
るのも通信制御回路15である。
この実施例では1台のプロセツサ1内で8個の
命令ストリーム(すなわちプログラム)が時分割
的に並列処理されるがそれは以下のように実現さ
れる。
まず制御回路14は制御メモリ11の中のプロ
グラム#1の命令ストリーム用の命令アドレスレ
ジスタを読出してそのアドレスに従つてメモリ3
から命令を取出し、同時に命令アドレスレジスタ
の内容を更新する。この命令は解読されて、必要
なオペランドが取出され演算回路13へ送られ
る。このオペランドはプログラム#1に対応した
演算レジスタあるいはメモリ3から取出される。
演算回路13から演算結果が出力されると、それ
は命令の指定に従つて制御メモリ11の中のプロ
グラム#1に対応した演算レジスタのいずれかに
格納される。次に再び命令アドレスレジスタを読
出し次の命令の実行に移る。
以上はプログラム#1の命令ストリームのみに
注目して述べているが、プロセツサ1は前述した
多重命令ストリーム方式のプロセツサで命令の取
出しから実行まですべてをパイプライン方式で処
理し、プログラム#2〜#8の命令ストリームも
各々ΔT時間のずれで順番に命令が取出され実行
される。したがつて一つの命令ストリームに着目
すれば8×ΔT時間で一つの命令が実行されるに
すぎないが、プロセツサ1内の8個の命令ストリ
ーム全体ではΔT時間毎に一個の命令が実行され
ていることになる。また、この動作は一つの命令
ストリームに着目してみれば、1台の通常の方式
のコンピユータで命令を実行していく場合とまつ
たく同じで、1台の8×ΔTの命令実行速度をも
つ仮想プロセツサがその命令ストリームを専門に
処理していると考えることができる。
本システムにおいてプログラムを実行するとき
の動作は次のようになる。例として各々128個の
データAi,Bi(i=1〜128)に対して を計算する場合をとりあげる。演算開始前にデー
タAi,Biを制御プロセツサ5がメモリ3―jに入
れる。たとえばA1〜A8はメモリ3-1,A9〜A16
メモリ3-2に格納し、A120〜A128はメモリ3-16
格納する。同様にB1〜B8はメモリ3-17,B9〜B16
はメモリ3-18,B120〜B128はメモリ3-32に格納
する。
各プロセツサ1―iはAi+Biを計算し結果をメ
モリ3―j中の領域Ciに格納する。これを計算す
るための命令ストリーム(すなわち各仮想プロセ
ツサのプログラム)はメモリ3―jに格納される
が、すべての仮想プロセツサはデータが異なるの
みで命令の組合わせは同じ(すなわちAi+Bi
iという動作はすべてのプロセツサ1―iが同
じ)であるので、プロセツサ1―iにインデツク
スレジスタ等アドレス修飾の機能があれば、全プ
ロセツサ1に対して一つのプログラムがあればよ
い。実際にはその部分に対してアクセスが集中
し、過負荷になるので複数コピーを持つことにな
る。
各プロセツサ1―i中の命令アドレスレジスタ
にはそのプロセツサ1―iが実行すべき命令スト
リームのアドレスが設定される。各プロセツサ1
i中には同時に実行される8つの命令ストリー
ムに対応して8つの命令アドレスレジスタ(すな
わち8台の仮想プロセツサ)があり、その各々に
設定される必要がある。これらの設定は制御プロ
セツサ5の制御の下にメモリ3―jからメモリス
イツチ2を介して行なわれるか、あるいは通信イ
ンタフエース10を介して行われる。
以上の準備は制御プロセツサ5が行い、準備が
完了すると通信インタフエース10を通して全プ
ロセツサ1に「START」指令を送出する。各プ
ロセツサ1―iは制御メモリ11の中の命令アド
レスレジスタ#1に従つて命令を取出し、以下
#2〜#8の命令アドレスレジスタの内容を順次
取出して実行していく。プロセツサ1-1を例にと
れば、A1+B1→C1の処理は命令アドレスレジス
タ#1で示される命令ストリーム(すなわち仮想
プロセツサ#1)で処理され、以下A2+B2→C2
からA8+B8→C8までの処理は仮想プロセツサ
#2〜#8により多重に処理される。
なお、本例ではすべての仮想プロセツサの命令
ストリームが同じ動作(Ai+Bi→Ci)をすると
しているが、それぞれ異なつていてもよいし、条
件分岐の入る場合には仮想プロセツサ毎に途中か
ら動作が変わつてくる可能性がある。同じ命令が
データインデツクス値は異なるが同一プロセツサ
1内の別の仮想プロセツサで実行される場合に
は、プロセツサ1内にバツフアメモリ等を設けて
ある仮想プロセツサで取出した命令をバツフアメ
モリに入れておいて、他の仮想プロセツサはその
バツフアメモリより命令を取出し、メモリ3へ命
令を取りに行く頻度を減少させることで性能改善
をはかることもできる。
i+Bi→Ciの処理を完了すると、処理の終了
通知を制御プロセツサ5に通信制御回路15およ
び通信インタフエース10を介して行う。これに
より制御プロセツサ5は全仮想プロセツサの実行
が終了したことを知つて の処理をする。Ciがメモリ3―j中にあるとすれ
ばそれを順次取出して加算していく。プロセツサ
1―iから制御プロセツサ5への終了通知は、各
仮想プロセツサで処理が終る毎に通知する方法も
考えられるが、この例の場合には各プロセツサ1
i内の全仮想プロセツサで処理が終了したとき
に制御プロセツサ5に通知すればよく、制御を簡
単化できる。
またこの例では総和の計算を制御プロセツサ5
が直列にやるとしているが、プロセツサ1―i
途中まで行えばもつと高速化できる。すなわちた
とえばC1+C2+……+C8は1台のプロセツサ1
-1の中で次のようにすればよい。(C1+C2),(C3
+C4),(C5+C6),(C7+C8)の4つの計算を4つ
の仮想プロセツサを使つて並列に行い、その結果
をそれぞれD1,D2,D3,D4とすると、次に(D1
+D2),(D3+D4)を並列に行い、その結果をE1
E2とすると最後にE1+E2を行う。これを各プロ
セツサ1―iでやれば、制御プロセツサ5は16台
のプロセツサ1の残した16の結果の総和をとるだ
けでよい(前の例では128の加算を制御プロセツ
サ5がやることになる)。
またこの例では、プロセツサの台数を16台、各
プロセツサの中で処理されるプログラムストリー
ム数を8個とする例を示したが、この数に限定さ
れるものではない。
またメモリの台数を32台としたが、これはプロ
セツサの台数やメモリのアクセスタイム、メモリ
へのアクセス頻度によつて定められ、この数に限
定されるものではない。またメモリの構成を完全
なクロスバー方式としたが、他の構成の方式によ
つてもよい。
さらに制御プロセツサメモリの台数を2台とし
たが、この数に限定されるものではない。
このようにこのシステムでは物理的に16台のプ
ロセツサで128の並列演算ができ、128台のプロセ
ツサを置いたのと同じ効果をもつている。もし実
際に128台のプロセツサを置いたとすると、メモ
リスイツチの規模は本例のように16×32でなく、
128×32以上にしなければならず、コスト、装置
の大きさ、性能などの面で装置の実現上はるかに
不利になる。
〔発明の効果〕
本発明は以上説明したように、多重命令ストリ
ーム方式のプロセツサを複数個おき、制御プロセ
ツサの制御の下に並列動作させるように構成する
ことにより、物理的な演算装置台数以上の並列処
理を行うことができ、かつ並列処理できない部分
は制御プロセツサで処理することで融通性が増
し、応用分野が拡大し大規模で超高性能の優れた
並列処理システムが得られる。
【図面の簡単な説明】
第1図は従来例並列処理プロセツサシステムの
構成図。第2図は多重命令ストリーム方式プロセ
ツサの動作原理を示す図。第3図は第2図のプロ
セツサが実行する4個のプログラムを示す図。第
4図は本発明一実施例システムの構成図。第5図
はそのプロセツサの詳細なブロツク構成図。 1…プロセツサ、2…メモリスイツチ、3…メ
モリ、5…制御プロセツサ、6,7…通信インタ
フエース、9…制御プロセツサメモリ、10…通
信インタフエース、11…制御メモリ、13…演
算回路、14…制御回路、15…通信制御回路。

Claims (1)

    【特許請求の範囲】
  1. 1 各各が異なるプログラムを実行できる仮想プ
    ロセツサ複数台を含む多重命令ストリーム方式の
    演算処理装置複数台と、並列処理のためのプログ
    ラムおよびデータが記憶される複数台のメモリ装
    置と、任意の上記演算処理装置から任意の上記メ
    モリ装置へのアクセスを可能にするメモリスイツ
    チと、このメモリスイツチおよび上記演算処理装
    置を制御する制御プロセツサと、この制御プロセ
    ツサから上記全仮想プロセツサにプログラムの実
    行開始を指示する通信手段と、上記各仮想プロセ
    ツサから上記制御プロセツサにプログラムの実行
    終了を通知する通信手段とを備え、上記制御プロ
    セツサは、一つのプログラム中の並列処理部分を
    上記全仮想プロセツサに並列に実行させる制御手
    段を含むことを特徴とする並列処理方式。
JP19738881A 1981-12-08 1981-12-08 並列処理方式 Granted JPS5899867A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP19738881A JPS5899867A (ja) 1981-12-08 1981-12-08 並列処理方式

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP19738881A JPS5899867A (ja) 1981-12-08 1981-12-08 並列処理方式

Publications (2)

Publication Number Publication Date
JPS5899867A JPS5899867A (ja) 1983-06-14
JPS6153754B2 true JPS6153754B2 (ja) 1986-11-19

Family

ID=16373674

Family Applications (1)

Application Number Title Priority Date Filing Date
JP19738881A Granted JPS5899867A (ja) 1981-12-08 1981-12-08 並列処理方式

Country Status (1)

Country Link
JP (1) JPS5899867A (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS63231362A (ja) * 1987-03-19 1988-09-27 Ricoh Co Ltd 複写機
JP2003006173A (ja) * 2001-04-18 2003-01-10 Matsushita Electric Works Ltd 情報処理装置

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4916652A (en) * 1987-09-30 1990-04-10 International Business Machines Corporation Dynamic multiple instruction stream multiple data multiple pipeline apparatus for floating-point single instruction stream single data architectures

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
IEEE CATALOG=1978 *

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS63231362A (ja) * 1987-03-19 1988-09-27 Ricoh Co Ltd 複写機
JP2003006173A (ja) * 2001-04-18 2003-01-10 Matsushita Electric Works Ltd 情報処理装置

Also Published As

Publication number Publication date
JPS5899867A (ja) 1983-06-14

Similar Documents

Publication Publication Date Title
US5872987A (en) Massively parallel computer including auxiliary vector processor
US20080301414A1 (en) Efficient Complex Multiplication and Fast Fourier Transform (FFT) Implementation on the ManArray Architecture
JPS6161436B2 (ja)
JPS62245442A (ja) 情報処理装置
US4967338A (en) Loosely coupled pipeline processor
JPS6313215B2 (ja)
JP2653037B2 (ja) データ処理システム
JP3237858B2 (ja) 演算装置
EP0521486B1 (en) Hierarchical structure processor
JPS6153754B2 (ja)
JP2004503872A (ja) 共同利用コンピュータシステム
JP2680828B2 (ja) ディジタル装置
JPS5899868A (ja) 並列処理方式
JP2744152B2 (ja) データ駆動型データ処理装置
JP2545594B2 (ja) オペランドデータ先取り方式
JP2551163B2 (ja) 命令処理制御方式
JP3102399B2 (ja) データ処理装置及び方法
CN121478350A (zh) 一种指令执行设备、执行方法及电子装置
JPS5899869A (ja) 並列処理方式
JPS5899846A (ja) 並列処理方式
JPS6134188B2 (ja)
JPH0218732B2 (ja)
JPS58114250A (ja) 共有マイクロプロセツサ
JPS63318635A (ja) デ−タ処理装置
Katz et al. PIPE: A HIGH PERFORMANCE VLSI PROCESSOR IMPLEMENTATION GL Craig JR Goodman