Nothing Special   »   [go: up one dir, main page]

JPS6246026B2 - - Google Patents

Info

Publication number
JPS6246026B2
JPS6246026B2 JP4220382A JP4220382A JPS6246026B2 JP S6246026 B2 JPS6246026 B2 JP S6246026B2 JP 4220382 A JP4220382 A JP 4220382A JP 4220382 A JP4220382 A JP 4220382A JP S6246026 B2 JPS6246026 B2 JP S6246026B2
Authority
JP
Japan
Prior art keywords
processor
data
memory
processors
program
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
JP4220382A
Other languages
Japanese (ja)
Other versions
JPS58159168A (en
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 JP4220382A priority Critical patent/JPS58159168A/en
Publication of JPS58159168A publication Critical patent/JPS58159168A/en
Publication of JPS6246026B2 publication Critical patent/JPS6246026B2/ja
Granted legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/76Architectures of general purpose stored program computers
    • G06F15/80Architectures of general purpose stored program computers comprising an array of processing units with common control, e.g. single instruction multiple data processors
    • G06F15/8007Architectures of general purpose stored program computers comprising an array of processing units with common control, e.g. single instruction multiple data processors single instruction multiple data [SIMD] multiprocessors

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Theoretical Computer Science (AREA)
  • Computing Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Multi Processors (AREA)

Description

【発明の詳細な説明】[Detailed description of the invention]

〔発明の属する技術分野〕 本発明は並列処理方式、特に、データ処理装置
における並列処理方式に関する。 一般に、演算処理を高速化する方法の1つとし
て並列処理方式がある。 この並列処理方式は、処理すべきプログラムの
中で並列に実行できる部分を各々異なるプロセツ
サで実行し、N台のプロセツサで理想的にはN倍
の性能を得ようとするものである(実際には並列
に実行できない部分や並列動作を制御するための
余分な時間……オーバヘツド……のため、N倍以
下の性能しか得られない。) 〔従来技術〕 従来の並列処理方式は、制御プロセツサと、そ
れぞれがデータを記憶する複数のデータメモリ
と、前記制御プロセツサに並列に接続された複数
のプロセツサと、前記複数のプロセツサと前記複
数のデータメモリとを並行して相互に接続するた
めのメモリ スイツチとを含み、前記複数のプロ
セツサのそれぞれはプロセツサエレメントと、前
記プロセツサエレメントを前記制御プロセツサと
接続するための制御プロセツサインターフエース
と、前記プロセツサエレメントを前記メモリスイ
ツチと接続するためのメモリスイツチインターフ
エースとを含んで構成される。 次に、従来の並列処理方式について、図面を参
照に詳細に説明する。 第1図は従来の並列処理システムの一例を示す
システム構成図であり、第2図は第1図に示すプ
ロセツサの一例を示す詳細ブロツク図である。 第1図に示す並列処理方式は、制御プロセツサ
CPと、この制御プロセツサCPに専用の制御専用
メモリCPM1,CPM2と、制御プロセツサCPに
並列接続されたプロセツサPP1〜PP16と、プ
ログラムおよびデータを記憶したメモリMM1〜
MM32と16台のプロセツサと32台のメモリとを
相互に並列して接続するために16×32=512個の
接続点をもつメモリスイツチとを含んでいる。 プロセツサPP1〜PP16はいずれも同一の構
成をなし、第2図に示すように、プロセツサエレ
メントPEと、メモリスイツチインターフエース
MS1と、制御プロセツサインターフエースCP1
を含んでいる。メモリインターフエースMS1
は、プロセツサエレメントPEからデータあるい
はプログラムの読出を行なうためのアクセス要求
をメモリスイツチMSを介してメモリMM1〜MM
32に供給するとともにメモリMM1〜MM32
から読み出したデータをプロセツサエレメント
PEに供給するとともにプロセツサPEでの演算結
果などをメモリMM1〜MM32に記憶させるた
めに供給する。制御プロセツサインターフエース
CP1はインターフエースaを介して制御プロセ
ツサCPと接続され、プログラム実行開始指示
STARTやプログラム実行停止指示STOPを制御
プロセツサCPから供給されて、プロセツサエレ
メントPEに供給したり、プロセツサエレメント
PEからの処理終了通知ENDを制御プロセツサCP
に供給する。 すなわちメモリスイツチMSを介して16台のプ
ロセツサPP1〜PP16が32台のメモリMM1〜
MM32にアクセスできるようになつており、各
プロセツサPP1〜PP16は各々独立にプログラ
ムを実行することが可能である。制御プロセツサ
CPはプロセツサPP1〜PP16とのインターフエ
ースaを通してプログラム実行開始指示START
を供給したり、プロセツサが実行を完了したとき
の処理終了通知ENDを受理する。 この制御プロセツサCPの制御の元でプロセツ
サPP1〜PP16は解くべきプログラム中の並列
処理部分について分担して実行する。たとえばa1
+b1,a2+b2,……,ao+bo,という計算であ
ればi番目のプロセツサPPiがai+biを計算す
る。 このような従来の並列処理システムの性能を高
めるには各プロセツサの性能を高くするかプロセ
ツサの台数を増やす必要がある。 しかしながら、プロセツサの性能を高めるとそ
の装置寸法が大きくなり多数並べることが困難に
なる。さらに、プロセツサの台数を増やすとメモ
リを並行して使用できるようにするためにはメモ
リも拡大する必要がありメモリスイツチはプロセ
ツサの台数とメモリの台数との積で増大して複雑
大規模になりやはり実現困難になる(たとえばク
ロスバ スイツチで考えるとプロセツサ台数とメ
モリ台数を各々2倍にするとスイツチの規模は2
×2=4倍になる)。こうした欠点のため大規模
超高性能の並列処理システムはほとんど実用化さ
れていない。 すなわち、従来の並列処理方式は並列度を増大
させることが困難であるという欠点があつた。 〔発明の目的〕 本発明の目的は並列度を増大できる並列処理方
式を提供することにある。 すなわち、本発明の目的は並列処理を分担する
各プロセツサをさらに複数のプロセツサエレメン
トからなる並列処理プロセツサとすることにより
メモリスイツチの規模を大きくすることなく並列
度を高めて上記欠点を解決し大規模、超高性能を
有する並列処理システムを提供することにある。 〔発明の構成〕 本発明の並列処理方式は、制御プロセツサと、
それぞれがデータを記憶する複数のデータメモリ
と、前記制御プロセツサに並列に接続された複数
のプロセツサと、前記複数のプロセツサと前記複
数のデータメモリとを並行して相互に接続するた
めのメモリ スイツチとを含み、前記複数のプロ
セツサのそれぞれは、並列に設けられた複数のプ
ロセツサエレメントと、各プロセツサエレメント
に対応して設けられプログラムを記憶する複数の
プログラムメモリと、前記複数のプロセツサエレ
メントを前記制御プロセツサと接続するための制
御プロセツサインターフエースと、前記複数のプ
ロセツサエレメントを前記メモリスイツチと接続
するためのメモリスイツチインターフエースと、
前記メモリスイツチインターフエースに接続され
前記データメモリに記憶したデータの一部の写し
を記憶するデータ用キヤツシユメモリとを含んで
構成される。 すなわち、本発明の並列処理方式は、各々がプ
ログラムメモリを有する複数のプロセツサ エレ
メントと該複数のプロセツサ エレメントで共用
されるデータ用キヤツシユ メモリと該複数のプ
ロセツサエレメントから発生するデータメモリへ
のアクセス要求の中から各データメモリアクセス
タイミング毎に一つを選択して処理する回路とか
ら構成される演算処理装置複数台と複数のデータ
メモリと任意の上記演算処理装置から任意の上記
データメモリへのアクセスを可能にするメモリス
イツチとを備えて構成される。 さらに、本発明の並列処理方式は、上述の構成
に加えて制御プロセツサと該制御プロセツサから
上記全プロセツサエレメントにプログラム実行開
始を指示する通信手段と上記各プロセツサエレメ
ントからプログラム実行終了を上記制御プロセツ
サに通知する手段とを備え、上記制御プロセツサ
の制御下で一つのプログラム中の並列処理部分を
上記全プロセツサエレメントにより並列に実行す
るように構成される。 すなわち、本発明の並列処理方式を分担する各
プロセツサを並列に動作する複数のプロセツサエ
レメントで構成することになり、メモリスイツチ
の規模を大きくすることなく実質的な並列処理プ
ロセツサ台数を増やしている。 すなわち、本発明の並列処理システムは、n台
のプロセツサと、m台すなわち、n台あるいは
2n台などn台以上のデータメモリと、このn台
のプロセツサとm台のデータメモリとを接続する
ためのn×m個の接続点を有するメモリスイツチ
とを含みこのn台のプロセツサのそれぞれの1台
のプロセツサの内部構造をl台のプロセツサエレ
メントと、このl台のプロセツサエレメントのそ
れぞれに専用的に使用されるメモリで対応するプ
ロセツサエレメントの実行すべきプログラムを格
納したl台のプログラムメモリと、l台のプロセ
ツサエレメントのそれぞれから前記m台のデータ
メモリへのアクセス要求を受けて処理するメモリ
スイツチインターフエースとを含んでいる。すな
わち、このメモリスイツチインターフエースはメ
モリのアクセスタイミング毎にl台のプロセツサ
エレメントのうちの任意の1台以上のプロセツサ
エレメントからのアクセス要求の中から1つを選
択して選択されたアクセス要求をメモリスイツチ
を介してデータメモリへ送出する。このアクセス
要求が読出要求であればデータメモリから送られ
てくるデータを要求元のプロセツサエレメントに
渡す。このようにメモリスイツチインターフエー
スで、データメモリへのアクセス インタフエー
スを1本に絞つているのでメモリスイツチの規模
(プロセツサを接続するためのインタフエース
数)を1/lにすることができる。この場合デー
タメモリへのアクセスがl台のプロセツサエレメ
ント間で競合するのでこれが性能上のボトルネツ
クになる可能性がある。 しかし、この問題は第1に各プロセツサエレメ
ントにプログラム専用のプログラムメモリを持た
せることで軽減している。すなわち、通常のコン
ピユータではプログラムもデータも同じメモリに
格納しているが本発明に使用するプロセツサでは
プログラムは各プロセツサエレメントに専用のプ
ログラムメモリに格納されているのでメモリスイ
ツチインターフエースを介してのメモリへのアク
セスはデータに対するものに限られ、通常のコン
ピユータに比しアクセス頻度は最大1/2位に低
減される。 第2にメモリスイツチインターフエースに接続
されたデータ用キヤツシユ メモリによりデータ
メモリへのアクセス頻度をさらに軽減している。
すなわちデータ用キヤツシユ メモリにはl台の
プロセツサエレメントで共通に利用できるデータ
(たとえば定数など)や計算の途中結果などかな
らずしもデータメモリに格納しておかなくてもよ
いデータを格納して、データメモリヘアクセスす
る回数をへらす。 このためメモリスイツチインターフエースはプ
ロセツサエレメントからデータメモリへのアクセ
ス要求があつた場合そのデータがすでにデータ用
キヤツシユメモリに格納されていないかを調べ、
そこに格納されていればそこから読み出し、ない
ときのみデータメモリへ要求を出す。 〔実施例の説明〕 次に本発明の実施例について、図面を参照して
詳細に説明する。 第3図は本発明の一実施例を示すシステム構成
図、第4図は第3図に示すプロセツサの詳細ブロ
ツク図である。 プロセツサPP1′〜PP16′は内部に8台のプ
ロセツサエレメントPE1〜PE8を含む並列処理
方式のプロセツサで各々8個のプログラムを並列
に実行する能力を有しているがプロセツサの台数
やその中のプロセツサエレメントの台数はこの例
に限定されるものではない。 各プロセツサPP1′〜PP16′はメモリスイツ
チMSを介して任意のデータメモリDM1〜DM3
2に対してデータの読出、書込ができる。データ
メモリの台数は第3図では32台としているるが、
これはプロセツサの台数やデータメモリの性能、
データメモリの使用頻度によつて定められこの例
に限定されるものではない。 また、メモリスイツチMSの構成については完
全なクロスバー方式をはじめとして多数の構成法
があるがそのいずれかに限定されるものではな
い。ここでは一例として完全クロスバー方式を仮
定しており複数のプロセツサから同時にデータメ
モリへのアクセス要求が発生しても同一のデータ
メモリヘアクセスしないかぎり競合は起らないと
している。他の構成のメモリスイツチMSを用い
たとしても本発明の効果には関係しない。 制御プロセツサは制御専用メモリCPM1,
CPM2を有しさらにメモリスイツチMSを介して
データメモリDM1〜DM32へもアクセスでき
る。制御専用メモリの台数も本例では2台として
いるがこれに限定される訳ではない。制御プロセ
ツサCPはインターフエースaを介して各プロセ
ツサPP1′〜PP16′のそれぞれの制御プロセツ
サインターフエースCPI′を介して各プロセツサ
と通信することができる。 第4図は第3図に示すプロセツサの一例を示す
ブロツク図である。 プロセツサエレメントPE1〜PE8は各々プロ
グラムを実行する能力を有するプロセツサエレメ
ントでそのプログラムはプロセツサエレメント
PE1〜PE8のそれぞれに対応して接続された専
用のプログラムメモリPM1〜PM8に格納されて
いる。 メモリスイツチインターフエースMSI′は各プ
ロセツサエレメントPE1〜PE8が第3図に示す
データメモリDM1〜DM32にアクセスするた
めの制御回路で複数のプロセツサエレメントPE
1〜PE8から同時にアクセス要求があつたとき
にはそれらの中から1つを一定のアルゴリズムに
従つて選択し、選択されたアクセス要求をメモリ
スイツチMSを経てデータメモリDM1〜DM32
のいずれかへ送出する。読出動作であれば送つた
アドレスに従つて該当するデータメモリから送ら
れてくるデータを要求元のプロセツサエレメント
に引き渡す制御も行う。 データ用キヤツシユメモリDCの動作は一般の
コンピユータ用キヤツシユメモリと同様である。 すなわち、プロセツサエレメントPE1〜PE8
からデータメモリDM1〜DM32へのアクセス
要求があると、メモリスイツチインターフエース
MSI′はデータ用キヤツシユメモリDCの内容を調
べて求めるデータがすでにそこに格納されている
ときはそこから読み出してプロセツサエレメント
PE1〜PE8へ渡す。ない場合にはデータメモリ
DM1〜DM32へアクセス要求を出しデータメ
モリDM1〜DM32から送られてきたデータ要
求元のプロセツサエレメントPE1〜PE8へ引渡
すと共にメモリスイツチインターフエース
MSI′にも格納しておき、同じデータが再び要求
されたときに備える(この要求は他のプロセツサ
エレメントからでもよい)。 また、データメモリDM1〜DM32への書込
みに際しては同じデータをデータ用キヤツシユメ
モリDCにも格納しておき後で再びこれを読み出
すときに備える。キヤツシユからの追出しアルゴ
リズムなども汎用コンピユータのキヤツシユにお
ける一般的手法が適用できるが、本コンピユータ
システムが専用機的であることからプロセツサエ
レメントPE1〜PE8のプログラムによりそれを
制御させるようにしてもよいであろう。すなわ
ち、キヤツシユに格納しておきたい、データと格
納する必要のないデータをプログラムに指定させ
ることや、キヤツシユではなくアドレス指定可能
なメモリとしてしまう方法(この時はプロセツサ
エレメントPE1〜PE8からはデータメモリDM
1〜DM32と別のメモリとして見え、そこへ何
を格納するかはすべてプロセツサエレメントのプ
ログラムで指定されることになる)などが考えら
れる。 制御プロセツサインターフエースCPI′は制御
プロセツサCPと通信するための回路で各プロセ
ツサエレメントPE1〜PE8と制御プロセツサ
CP間の通信およびそのプロセツサPP1′〜PP1
6′自身と制御プロセツサCP間の通信を制御する
(本方式ではソフトウエアから見えるのは各プロ
セツサエレメントPE1〜PE8でありプロセツサ
PP1′〜PP16′は物理的なかたまり(装置単
位)としてしか意味がないので制御プロセツサ
CPとの通信も論理的にはプロセツサエレメント
と制御プロセツサCP間が主である)。 この通信の例としては各プロセツサエレメント
PE1〜PE8にプログラム実行の開始を指示する
プログラム実行開始指示STARTか、プログラム
実行停止指示STOPなどがある。プロセツサエレ
メントPE1〜PE8はプログラム実行開始指示
STARTを受けてプログラムの実行を開始し所定
の条件を満した時あるいはプログラム実行停止指
示STOPを受けたときに動作を中止する。また、
制御プロセツサインターフエースCPIはプロセツ
サエレメントPE1〜PE8から制御プロセツサ
CPへインターフエースaを介して情報を伝える
ための制御も行い、たとえば、プログラム実行開
始指示STARTを受けて実行開始後、特定のプロ
セツサエレメントPE1〜PE8が実行を終了した
などある条件か満したらそれを制御プロセツサ
CPに伝えるのも制御プロセツサインターフエー
スCPI′である。 各プロセツサエレメントPE1〜PE8の構成は
一般的なコンピユータと基本的には変らないが命
令語を対応するプログラムメモリPM1〜PM8か
ら読み出す点が異なる。一般のコンピユータでは
命令語とデータは同一のメモリに格納されるが本
発明を用いた並列処理システムではデータメモリ
DM1〜DM32へのアクセス パスの負荷を軽
減するため命令語はプログラムメモリPM1〜PM
8に格納している。これはデータについては各プ
ロセツサエレメントPE1〜PE8の相互間で受渡
しする必要があるとともに各プロセツサPP1′〜
PP16′の相互間でも受渡しの必要があるので共
通のデータメモリに格納せざるを得ないけれど、
プログラムはその必要性がなく、各プロセツサエ
レメントPE1〜PE8が専用のメモリ中に格納し
ておけるという性質を利用している。 各プロセツサエレメントPE1〜PE8はプログ
ラムメモリPM1〜PM8に格納されたプログラム
に従つてデータ用キヤツシユメモリDCあるいは
データメモリDM1〜DM32からデータを読み
出して処理し結果をデータメモリDM1〜DM3
2ならびにデータ用キヤツシユメモリDCへ戻す
という動作を繰り返すことになる。 第3図に示す並列処理システムにおいてプログ
ラムを実行する時の動作は次のようになる。 例として、各々128個のデータAi,Bi(i=1
〜128)に対して
[Technical Field to Which the Invention Pertains] The present invention relates to a parallel processing method, and particularly to a parallel processing method in a data processing device. Generally, one of the methods for speeding up arithmetic processing is a parallel processing method. This parallel processing method uses different processors to execute parts of the program that can be executed in parallel, and ideally aims to obtain N times the performance using N processors (in reality, (Because of the parts that cannot be executed in parallel and the extra time required to control the parallel operations...overhead...the performance is only N times lower.) [Prior Art] Conventional parallel processing methods have , a plurality of data memories each storing data, a plurality of processors connected in parallel to the control processor, and a memory switch for interconnecting the plurality of processors and the plurality of data memories in parallel. each of the plurality of processors includes a processor element, a control processor interface for connecting the processor element to the control processor, and a memory for connecting the processor element to the memory switch. It is configured to include a switch interface. Next, a conventional parallel processing method will be explained in detail with reference to the drawings. FIG. 1 is a system configuration diagram showing an example of a conventional parallel processing system, and FIG. 2 is a detailed block diagram showing an example of the processor shown in FIG. 1. The parallel processing method shown in Figure 1 is based on the control processor
CP, control-only memories CPM1 and CPM2 dedicated to this control processor CP, processors PP1 to PP16 connected in parallel to the control processor CP, and memories MM1 to MM1 to store programs and data.
It includes a memory switch having 16×32=512 connection points for connecting the MM 32, 16 processors, and 32 memories in parallel. Processors PP1 to PP16 all have the same configuration, and as shown in Figure 2, they have a processor element PE and a memory switch interface.
MS1 and control processor interface CP1
Contains. Memory interface MS1
sends an access request to read data or a program from the processor element PE to the memories MM1 to MM via the memory switch MS.
32 and the memories MM1 to MM32.
The data read from the processor element
In addition to supplying the data to the processor PE, the data is also supplied to the memories MM1 to MM32 to store the calculation results and the like in the processor PE. control processor interface
CP1 is connected to the control processor CP via interface a, and receives instructions to start program execution.
START and program execution stop instruction STOP are supplied from the control processor CP and supplied to the processor element PE.
Processor CP that controls processing end notification END from PE
supply to. In other words, 16 processors PP1 to PP16 are connected to 32 memories MM1 to PP16 via memory switch MS.
The MM32 can be accessed, and each of the processors PP1 to PP16 can independently execute programs. control processor
CP issues a program execution start instruction START through interface a with processors PP1 to PP16.
or receive a processing completion notification END when the processor completes execution. Under the control of the control processor CP, the processors PP1 to PP16 share and execute the parallel processing portion of the program to be solved. For example a 1
+b 1 , a 2 +b 2 , . . . , a o +b o , the i-th processor PP i calculates a i +b i . To improve the performance of such conventional parallel processing systems, it is necessary to increase the performance of each processor or increase the number of processors. However, increasing the performance of the processor increases the size of the device, making it difficult to line up a large number of processors. Furthermore, if you increase the number of processors, you will need to expand the memory so that they can be used in parallel, and the memory switch will increase in size by the product of the number of processors and the number of memory, making it large and complex. It will still be difficult to realize (for example, considering a crossbar switch, if you double the number of processors and the number of memories, the scale of the switch will double.
×2 = 4 times). Due to these drawbacks, large-scale, ultra-high-performance parallel processing systems have hardly been put into practical use. That is, the conventional parallel processing method has a drawback in that it is difficult to increase the degree of parallelism. [Object of the Invention] An object of the present invention is to provide a parallel processing method that can increase the degree of parallelism. That is, an object of the present invention is to solve the above-mentioned drawbacks by increasing the degree of parallelism without increasing the scale of the memory switch by making each processor that performs parallel processing into a parallel processing processor consisting of a plurality of processor elements. The objective is to provide a parallel processing system with high scale and ultra-high performance. [Configuration of the Invention] The parallel processing method of the present invention includes a control processor,
a plurality of data memories each storing data; a plurality of processors connected in parallel to the control processor; a memory switch for interconnecting the plurality of processors and the plurality of data memories in parallel; Each of the plurality of processors includes a plurality of processor elements provided in parallel, a plurality of program memories provided corresponding to each processor element and storing programs, and a plurality of processor elements arranged in parallel. a control processor interface for connecting to the control processor; a memory switch interface for connecting the plurality of processor elements to the memory switch;
The data cache memory is connected to the memory switch interface and stores a copy of a portion of the data stored in the data memory. That is, the parallel processing method of the present invention consists of a plurality of processor elements each having a program memory, a data cache memory shared by the plurality of processor elements, and an access request to the data memory generated from the plurality of processor elements. A plurality of arithmetic processing units, a plurality of data memories, and an access to any of the above data memories from any of the above arithmetic processing units, and a circuit that selects and processes one of the above at each data memory access timing. It is configured with a memory switch that enables Furthermore, in addition to the above configuration, the parallel processing system of the present invention includes a control processor, a communication means for instructing all of the processor elements to start program execution from the control processor, and a control processor for controlling the end of program execution from each of the processor elements. and means for notifying the processor, and is configured to execute parallel processing portions of one program in parallel by all of the processor elements under the control of the control processor. In other words, each processor that shares the parallel processing method of the present invention is composed of a plurality of processor elements that operate in parallel, and the actual number of parallel processing processors is increased without increasing the scale of the memory switch. . That is, the parallel processing system of the present invention includes n processors and m processors, i.e., n or
Each of the n processors includes n or more data memories such as 2n processors, and a memory switch having n×m connection points for connecting the n processors and the m data memories. The internal structure of one processor consists of l processor elements and l processor elements that store programs to be executed by the corresponding processor elements in memory used exclusively for each processor element. It includes a program memory and a memory switch interface that receives and processes access requests to the m data memories from each of the l processor elements. In other words, this memory switch interface selects one of the access requests from any one or more of the l processor elements at each memory access timing, and responds to the selected access request. is sent to the data memory via the memory switch. If this access request is a read request, the data sent from the data memory is passed to the requesting processor element. In this way, since the memory switch interface is limited to one interface for accessing the data memory, the scale of the memory switch (the number of interfaces for connecting the processor) can be reduced to 1/1. In this case, access to the data memory is competed among the l processor elements, which may become a performance bottleneck. However, this problem is alleviated by first providing each processor element with its own program memory. In other words, in a normal computer, programs and data are stored in the same memory, but in the processor used in the present invention, programs are stored in a dedicated program memory for each processor element, so they cannot be transferred via the memory switch interface. Access to memory is limited to data, and the access frequency is reduced to 1/2 at most compared to a normal computer. Second, a data cache memory connected to the memory switch interface further reduces the frequency of data memory access.
In other words, data that does not necessarily need to be stored in the data memory, such as data that can be commonly used by l processor elements (such as constants) and intermediate results of calculations, is stored in the data cache memory. Reduce the number of accesses. Therefore, when a processor element requests access to data memory, the memory switch interface checks whether the data is already stored in the data cache memory.
If it is stored there, it is read from there, and only when it is not, a request is made to the data memory. [Description of Embodiments] Next, embodiments of the present invention will be described in detail with reference to the drawings. FIG. 3 is a system configuration diagram showing one embodiment of the present invention, and FIG. 4 is a detailed block diagram of the processor shown in FIG. 3. Processors PP1' to PP16' are parallel processing type processors that internally contain eight processor elements PE1 to PE8, and each has the ability to execute eight programs in parallel. The number of processor elements is not limited to this example. Each processor PP1' to PP16' can access any data memory DM1 to DM3 via a memory switch MS.
Data can be read and written to 2. The number of data memories is 32 in Figure 3, but
This depends on the number of processors, data memory performance,
It is determined by the frequency of use of the data memory and is not limited to this example. Furthermore, there are many configuration methods for the configuration of the memory switch MS, including a complete crossbar type, but the configuration is not limited to any one of them. Here, as an example, a complete crossbar system is assumed, and even if multiple processors issue requests to access the data memory at the same time, no contention will occur as long as they do not access the same data memory. Even if a memory switch MS having a different configuration is used, the effects of the present invention will not be affected. The control processor has control-only memory CPM1,
It has CPM2 and can also access data memories DM1 to DM32 via memory switch MS. Although the number of control-only memories is two in this example, it is not limited to this. The control processor CP can communicate with each of the processors PP1' to PP16' via their respective control processor interface CPI' via an interface a. FIG. 4 is a block diagram showing an example of the processor shown in FIG. 3. Processor elements PE1 to PE8 each have the ability to execute a program, and the program is a processor element that has the ability to execute a program.
The programs are stored in dedicated program memories PM1 to PM8 connected to PE1 to PE8, respectively. The memory switch interface MSI' is a control circuit for each processor element PE1 to PE8 to access data memories DM1 to DM32 shown in FIG.
When access requests are received simultaneously from PEs 1 to 8, one of them is selected according to a certain algorithm, and the selected access request is sent to the data memories DM1 to DM32 via the memory switch MS.
Send to either. In the case of a read operation, control is also performed to transfer data sent from the corresponding data memory to the requesting processor element according to the sent address. The data cache memory DC operates in the same way as a general computer cache memory. That is, processor elements PE1 to PE8
When there is an access request to data memory DM1 to DM32 from
MSI' checks the contents of the data cache memory DC, and if the desired data is already stored there, it is read from there and sent to the processor element.
Pass to PE1 to PE8. If not, data memory
An access request is made to DM1 to DM32, and the data sent from the data memories DM1 to DM32 is transferred to the requesting processor elements PE1 to PE8, and the memory switch interface is
MSI' is also stored in case the same data is requested again (this request may be made from another processor element). Furthermore, when writing to the data memories DM1 to DM32, the same data is also stored in the data cache memory DC in preparation for reading it again later. Although general techniques for caches on general-purpose computers can be applied to the algorithm for eviction from the cache, since this computer system is a dedicated machine, it may be possible to control it by the programs of the processor elements PE1 to PE8. Dew. In other words, you can have the program specify the data that you want to store in the cache and the data that does not need to be stored, or you can use addressable memory instead of the cache (in this case, data is not stored in the cache from processor elements PE1 to PE8). memory DM
1 to DM32, and what is stored there is all specified by the processor element program). The control processor interface CPI' is a circuit for communicating with the control processor CP and connects each processor element PE1 to PE8 and the control processor.
Communication between CPs and their processors PP1' to PP1
6' Controls communication between itself and the control processor CP (in this method, what is visible from the software is each processor element PE1 to PE8;
PP1' to PP16' have meaning only as a physical unit (device unit), so they cannot be used as control processors.
Logically, communication with the CP is mainly between the processor element and the control processor CP). An example of this communication is each processor element.
There is a program execution start instruction START, which instructs PE1 to PE8 to start program execution, and a program execution stop instruction STOP. Processor elements PE1 to PE8 are instructed to start program execution
Upon receiving START, the program starts executing, and stops when a predetermined condition is met or when a program execution stop instruction STOP is received. Also,
The control processor interface CPI connects processor elements PE1 to PE8 to the control processor.
It also controls the transmission of information to the CP via interface a. For example, after receiving the program execution start instruction START and starting execution, if certain conditions are met, such as when specific processor elements PE1 to PE8 have finished execution, the processor that controls it
It is also the control processor interface CPI' that informs the CP. The configuration of each processor element PE1-PE8 is basically the same as that of a general computer, but the difference is that instruction words are read from the corresponding program memories PM1-PM8. In a general computer, instructions and data are stored in the same memory, but in the parallel processing system using this invention, the data memory
Access to DM1 to DM32 To reduce the load on the path, the instruction words are from program memory PM1 to PM.
It is stored in 8. This means that data must be transferred between each processor element PE1 to PE8, and each processor element PP1' to
Since it is necessary to transfer data between PP16's, it is necessary to store it in a common data memory,
This is not necessary for the program, and the program utilizes the property that each processor element PE1 to PE8 can be stored in a dedicated memory. Each processor element PE1 to PE8 reads and processes data from the data cache memory DC or data memory DM1 to DM32 according to the program stored in the program memory PM1 to PM8, and stores the results in the data memory DM1 to DM3.
2 and returning to the data cache memory DC are repeated. The operation when executing a program in the parallel processing system shown in FIG. 3 is as follows. As an example, each of 128 pieces of data A i and B i (i=1
~128)

【式】を計算する場合を とりあげる。 演算開始前にデータAi,Biを制御プロセツサ
CPがデータメモリDM1〜DM32に入れる。た
とえば、データA1〜A8はデータメモリDM1にデ
ータA9〜A16はデータメモリDM2に格納し、以
下同様にしてデータA120〜A128はデータメモリ
DM16に格納する。同様に、データB1〜B8はデ
ータメモリDM17に、データB9〜B16はデータ
メモリDM18に、……データB120〜B128はデー
タメモリDM32に格納する。 この例では、システム中には16(プロセツサ
の数)×8(各プロセツサ中のプロセツサエレメ
ントの数)=128台のプロセツサエレメントがあり
i番目のプロセツサエレメントPEiはAi×Bi
計算をして演算結果Ciをデータメモリに格納す
る。この計算をやるためのプログラムは各プロセ
ツサエレメントPE1〜PE8に付属したプログラ
ムメモリPM1〜PM8の中にそれぞれ格納されて
おり、各プロセツサエレメントPE1〜PE8の中
の命令アドレス レジスタにはそのプロセツサエ
レメントPE1〜PE8が実行すべき最初の命令語
のプログラムメモリPM1〜PM8のアドレスが設
定される。これは制御プロセツサCPの制御下で
データメモリDM1〜DM32からメモリスイツ
チMSおよびメモリスイツチインターフエース
MSI′を通して行なわれるか、あるいはインター
フエースaおよび制御プロセツサインターフエー
スCPI′を通して行なわれる。 以上の準備は制御プロセツサCPが行い完了す
るとインターフエースaを通して128台のすべて
のプロセツサエレメント宛のプログラム実行開始
指示STARTをプロセツサPP1′〜PP16′に送
出する。これによつて、すべてのプロセツサエレ
メントPE1〜PE8は各々の命令アドレスレジス
タの値に従つて、プログラムメモリPM1〜PM8
から命令語を読み出し、解読して実行する。 いま、プロセツサPP1′中のプロセツサエレメ
ントPE1を例にとれば、データメモリDM1から
読み出したデータA1とデータメモリDM17から
読み出したデータB1に対しA1×B1の計算をし
て演算結果C1をデータメモリに格納する。 同様にプロセツサエレメントPE2はA2×B2
計算をして、演算結果C2を格納し、以下同様
に、プロセツサエレメントPE8はA8×B8→C8
処理をする。これらの処理は各プロセツサエレメ
ントPE1〜PE8が並行に同時に実行する。 なお、本例ではすべてのプロセツサエレメント
が同一のプログラムを実行するとしているがそれ
は異なるプログラムであつてもよいし、たとえ同
一プログラムであつても条件分岐が入る場合には
各プロセツサエレメント毎に途中から異なる命令
シーケンスを実行することになる可能性がある。 また、各プロセツサエレメントPE1〜PE8か
ら各データメモリDM1〜DM32へのアクセス
要求(Ai,Biを読み出したり、Ciを格納するた
めの要求)はメモリスイツチインターフエース
MSI′で交通整理され、競合した場合は1つだけ
選択されて他は待たされるので、各プロセツサエ
レメントPE1〜PE8の命令実行のタイミングは
ずれてくる可能性があり、すべてのプロセツサエ
レメントPE1〜PE8がまつたく同期して同時刻
に同じ動作・処理をしている訳ではない。 演算処理Ai×Bi→Ciの処理が完了すると制御
プロセツサインターフエースCPI′およびインタ
ーフエースaを通つて制御プロセツサCPにこの
旨通知される。制御プロセツサCPは128台すべて
のプロセツサエレメントPE1〜PE8からの完了
通知を待つて
Let us consider the case of calculating [Formula]. Before starting the calculation, the data A i and B i are controlled by the processor.
The CP stores the data in the data memories DM1 to DM32. For example, data A 1 to A 8 are stored in data memory DM1, data A 9 to A 16 are stored in data memory DM2, and data A 120 to A 128 are stored in data memory DM2 in the same manner.
Store in DM16. Similarly, data B 1 to B 8 are stored in the data memory DM17, data B 9 to B 16 are stored in the data memory DM18, and data B 120 to B 128 are stored in the data memory DM32. In this example, there are 16 (number of processors) x 8 (number of processor elements in each processor) = 128 processor elements in the system, and the i-th processor element PE i is A i x B i The calculation result C i is stored in the data memory. The program for performing this calculation is stored in the program memories PM1 to PM8 attached to each processor element PE1 to PE8, and the instruction address register in each processor element PE1 to PE8 contains the processor The address of the program memory PM1-PM8 of the first instruction word to be executed by the elements PE1-PE8 is set. It connects data memories DM1 to DM32 to memory switch MS and memory switch interface under the control of control processor CP.
MSI' or through interface a and control processor interface CPI'. The control processor CP performs the above preparations, and when completed, sends a program execution start instruction START addressed to all 128 processor elements to the processors PP1' to PP16' through the interface a. As a result, all processor elements PE1 to PE8 are assigned to program memories PM1 to PM8 according to the value of each instruction address register.
Reads the instruction word from, decodes and executes it. Now, taking processor element PE1 in processor PP1' as an example, A 1 ×B 1 is calculated for data A 1 read from data memory DM1 and data B1 read from data memory DM17, and the calculation result C is obtained. Store 1 in data memory. Similarly, processor element PE2 calculates A 2 ×B 2 and stores the calculation result C 2 , and similarly, processor element PE8 processes A 8 ×B 8 →C 8 . These processes are simultaneously executed in parallel by each of the processor elements PE1 to PE8. In this example, it is assumed that all processor elements execute the same program, but it may be a different program, and even if the program is the same, if a conditional branch is included, it is assumed that each processor element executes the same program. There is a possibility that a different instruction sequence will be executed from the middle. In addition, access requests from each processor element PE1 to PE8 to each data memory DM1 to DM32 (requests for reading A i and B i or storing C i ) are handled by the memory switch interface.
Traffic is controlled by MSI', and if there is a conflict, only one is selected and the others are made to wait, so the timing of instruction execution of each processor element PE1 to PE8 may be different, and all processor elements PE1 to PE8 PE8 does not synchronize perfectly and perform the same operations and processes at the same time. When the processing A i ×B i →C i is completed, the control processor CP is notified of this through the control processor interface CPI' and the interface a. The control processor CP waits for completion notifications from all 128 processor elements PE1 to PE8.

【式】の処理をする。演算線果Ci はデータメモリDM1〜DM32の中に格納され
ているから制御プロセツサCPはメモリスイツチ
MSを介してデータメモリDM1〜DM32にアク
セスして演算結果Ciを読出順に加算する。この
動作は一般的コンピユータにおける加算と同じで
制御プロセツサCP内のプログラムにより、演算
結果C1,C2,…,C128を逐一読み出して加算す
る。この加算が終了すれば求める答となる。 各プロセツサエレメントPE1〜PE8から制御
プロセツサCPへの通知は上記のように各プロセ
ツサエレメントPE1〜PE8が終る毎に制御プロ
セツサCPに通知してもよいがプロセツサPP1′
〜PP16′の内でまとめて通知することで制御プ
ロセツサCPとの間の通信量を減らすことも考え
られよう。 また、上記のように
Process [expression]. Since the calculation line product C i is stored in the data memories DM1 to DM32, the control processor CP switches the memory switch.
The data memories DM1 to DM32 are accessed via the MS and the calculation results C i are added in the order of reading. This operation is the same as addition in a general computer, and the calculation results C 1 , C 2 , . . . , C 128 are read out one by one and added by a program in the control processor CP. When this addition is completed, the desired answer is obtained. The notification from each processor element PE1 to PE8 to the control processor CP may be notified to the control processor CP every time each processor element PE1 to PE8 finishes, as described above, but
It may also be possible to reduce the amount of communication with the control processor CP by notifying all of them within PP16'. Also, as above

〔発明の効果〕〔Effect of the invention〕

本発明の並列処理方式は、制御プロセツサに並
列接続され複数のデータメモリとメモリスイツチ
を介して相互に並行して接続されるプロセツサの
それぞれが、単一のプロセツサエレメントからな
る代りに、並列に動作する複数のプロセツサエレ
メントを並列に設けることにより、メモリスイツ
チ側から見た場合には単一のプロセツサエレメン
トしか有していないように見えながら時分割で複
数のプロセツサエレメントをメモリスイツチに接
続することができるため、並列度を増大できると
いう効果がある。 すなわち、本発明の並列処理方式は、複数のプ
ロセツサエレメントを内蔵するプロセツサを並列
におき、制御プロセツサの制御下に並列動作され
るように構成することで大きな並列度の並列演算
を実現容易にし、かつ並列演算できない部分は制
御プロセツサで処理することで融通性が増し応用
分野が拡大するという効果を有する。
The parallel processing method of the present invention is such that each of the processors connected in parallel to the control processor and connected to each other in parallel via a plurality of data memories and memory switches is configured in parallel, instead of consisting of a single processor element. By providing multiple operating processor elements in parallel, when viewed from the memory switch side, it appears to have only a single processor element, but multiple processor elements can be connected to the memory switch in a time-sharing manner. Since it can be connected, it has the effect of increasing the degree of parallelism. In other words, the parallel processing method of the present invention facilitates the realization of parallel operations with a large degree of parallelism by arranging processors containing a plurality of processor elements in parallel and configuring them to operate in parallel under the control of a control processor. , and the parts that cannot be computed in parallel can be processed by a control processor, which has the effect of increasing flexibility and expanding the field of application.

【図面の簡単な説明】[Brief explanation of the drawing]

第1図は従来の一例を示すシステム構成図、第
2図は第1図に示すプロセツサの詳細ブロツク
図、第3図は本発明の一実施例を示すシステム構
成図、第4図は第3図に示すプロセツサの詳細ブ
ロツク図である。 CP……制御プロセツサ、PP1〜PP16,PP
1′〜PP16′……プロセツサ、CPM1,CPM2
……制御専用メモリ、MS……メモリスイツチ、
MM1〜MM32……メモリ、MSI,MSI′……メ
モリスイツチインターフエース、CPI,CPI′……
制御プロセツサインターフエース、PE,PE1〜
PE8……プロセツサエレメント、DM1〜DM3
2……データメモリ、DC……データ用キヤツシ
ユメモリ、PM1〜PM8……プログラムメモリ、
a……インターフエース。
FIG. 1 is a system configuration diagram showing a conventional example, FIG. 2 is a detailed block diagram of the processor shown in FIG. 1, FIG. 3 is a system configuration diagram showing an embodiment of the present invention, and FIG. FIG. 2 is a detailed block diagram of the processor shown in the figure. CP...Control processor, PP1 to PP16, PP
1' to PP16'...Processor, CPM1, CPM2
...control-only memory, MS...memory switch,
MM1 to MM32...Memory, MSI, MSI'...Memory switch interface, CPI, CPI'...
Control processor interface, PE, PE1~
PE8...Processor element, DM1 to DM3
2...Data memory, DC...Data cache memory, PM1 to PM8...Program memory,
a...interface.

Claims (1)

【特許請求の範囲】[Claims] 1 制御プロセツサと、それぞれがデータを記憶
する複数のデータメモリと、前記制御プロセツサ
に並列に接続された複数のプロセツサと、前記複
数のプロセツサと前記複数のデータメモリとを並
行して相互に接続するためのメモリ スイツチと
を含み、前記複数のプロセツサのそれぞれは、並
列に設けられた複数のプロセツサエレメントと、
各プロセツサエレメントに対応して設けられプロ
グラムを記憶する複数のプログラムメモリと、前
記複数のプロセツサエレメントを前記制御プロセ
ツサと接続するための制御プロセツサインターフ
エースと、前記複数のプロセツサエレメントを前
記メモリスイツチと接続するためのメモリスイツ
チインターフエースと、前記メモリスイツチイン
ターフエースに接続され前記データメモリに記憶
したデータの一部の写しを記憶するデータ用キヤ
ツシユメモリとを含むことを特徴とする並列処理
方式。
1. A control processor, a plurality of data memories each storing data, a plurality of processors connected in parallel to the control processor, and the plurality of processors and the plurality of data memories are interconnected in parallel. each of the plurality of processors includes a plurality of processor elements provided in parallel;
a plurality of program memories for storing programs provided corresponding to each processor element; a control processor interface for connecting the plurality of processor elements to the control processor; and a control processor interface for connecting the plurality of processor elements to the control processor. a memory switch interface for connecting to a memory switch; and a data cache memory connected to the memory switch interface and storing a copy of a portion of the data stored in the data memory. Processing method.
JP4220382A 1982-03-17 1982-03-17 Parallel processing system Granted JPS58159168A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP4220382A JPS58159168A (en) 1982-03-17 1982-03-17 Parallel processing system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP4220382A JPS58159168A (en) 1982-03-17 1982-03-17 Parallel processing system

Publications (2)

Publication Number Publication Date
JPS58159168A JPS58159168A (en) 1983-09-21
JPS6246026B2 true JPS6246026B2 (en) 1987-09-30

Family

ID=12629447

Family Applications (1)

Application Number Title Priority Date Filing Date
JP4220382A Granted JPS58159168A (en) 1982-03-17 1982-03-17 Parallel processing system

Country Status (1)

Country Link
JP (1) JPS58159168A (en)

Also Published As

Publication number Publication date
JPS58159168A (en) 1983-09-21

Similar Documents

Publication Publication Date Title
US4809169A (en) Parallel, multiple coprocessor computer architecture having plural execution modes
US4951193A (en) Parallel computer with distributed shared memories and distributed task activating circuits
US5367690A (en) Multiprocessing system using indirect addressing to access respective local semaphore registers bits for setting the bit or branching if the bit is set
AU714681B2 (en) Parallel processor with redundancy of processor pairs
US3447135A (en) Peripheral data exchange
JPH04348451A (en) Parallel computer
JPH04246745A (en) Memory access system
US5339397A (en) Hardware primary directory lock
US3728682A (en) Computer input-output chaining system
JPS6246026B2 (en)
JPS6259345B2 (en)
JPS6259347B2 (en)
JPS6259346B2 (en)
JPS6136845A (en) Single-chip microcomputer
JPS61136157A (en) Multi-microprocessor module
JPH0215152Y2 (en)
JP3038257B2 (en) Electronic computer
Ghosal et al. SHAMP: an experimental shared memory multimicroprocessor system for performance evaluation of parallel algorithms
JPH01263858A (en) Multi-processor system
JPS61234447A (en) Bus acuisition controller
JPS63231668A (en) Interruption queue control system
JPH0573518A (en) Memory mapped cpu system
JPS60129865A (en) Communication device
Chaudhry et al. Cache interleaving in multiprocessor systems
JPH05225147A (en) Multiprocessor type data processing system