JPH0277870A - 並列計算機システム - Google Patents

並列計算機システム

Info

Publication number
JPH0277870A
JPH0277870A JP27216388A JP27216388A JPH0277870A JP H0277870 A JPH0277870 A JP H0277870A JP 27216388 A JP27216388 A JP 27216388A JP 27216388 A JP27216388 A JP 27216388A JP H0277870 A JPH0277870 A JP H0277870A
Authority
JP
Japan
Prior art keywords
cpu
cpus
parallel
processing
task
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
JP27216388A
Other languages
English (en)
Inventor
Takahide Oogami
貴英 大上
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.)
Mitsubishi Electric Corp
Original Assignee
Mitsubishi Electric 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 Mitsubishi Electric Corp filed Critical Mitsubishi Electric Corp
Priority to JP27216388A priority Critical patent/JPH0277870A/ja
Publication of JPH0277870A publication Critical patent/JPH0277870A/ja
Pending legal-status Critical Current

Links

Abstract

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

Description

【発明の詳細な説明】 [産業上の利用分野コ 本発明は、複数のCPU (中央処理装置)とそれらの
CPUに共有されるメモリ(記憶装置)を持つマルチプ
ロセッサ構成のハードウェアと、これを制御するための
OS(オペレーティング・システム)及び関連するシス
テム・ソフトフェアから成る並列計算機システムに関す
るものである。
[従来の技術] 従来、計算機システムの多くはcPUを1つしか持たな
いものであったが、処理の高速化を月掛して複数のCP
Uを接続したマルチプロセッサ構成の計算機システムが
使われるようになってきた。
マルチプロセッサ構成の計算機システムによる処理はマ
ルチプロセッシングとして知られ、例えば、K、l(w
ang and F、A、Br1gg5著1°Comp
ute+−Architec−Lure and  P
arallel Processing ” (McG
raw−HillBook Company、1984
>の第7章” MultiprocessorArcl
+1tecture and Programming
”に詳しく述べられている。この文献においては、マル
チプロセッサ構成のアーキテクチャとプログラミングに
ついて、機能的な構造、接続ネットワーク、並列メモリ
の構成、オペレーティング・システム、並列性の利用、
という項目について述べている、また、K、Hwang
著の+A+Jvanced Pat−allel Pr
ocessingwith  Supercomput
、er  Arcl+it、ectures”  (P
roceedi−ngs  of  the  IEE
E、  Vol、75.No、10. 0ctober
  1987)には、マルチプロセ・ソサ構成の並列計
算機システムを含む多くの新しい並列計算機システムに
ついて、アーキテクチャ、ハードウェア、ソフトフェア
の特徴が記述されている4 また、従来、1つのCPUから成る計算機システムを制
御するOSは、タスク(または、「プロセス」と呼はれ
るが、以下「タスクJを使う)を処理の単位として、時
分割により効率良く処理を行っていた、一般に、1つの
ブロクラムは複数のタスクにより構成される。タスクを
単位としたプロクラムの時分割処理方式はマルチタスキ
ング(歴史的には、マルチプログラミング)として知ら
れ、確立された技術である。例えば、H,M、DeiL
el著の’ An Introduct、ion t、
o OperatingSystems” (Revi
sed First、 Edition、  Addi
son−Wesley PublishingComp
any、1984)の第3章” Process Co
ncept、s”には、プロセスの基本的な概念が説明
されているし、また、A、S、Tanenbaum著の
”Operaljng Systems:Design
 and Implemen−tation” (Pr
entice−Hall、 Inc、、 1987)の
第2章”Processes ”には、プロセス間の通
信やプロセスのスケジューリングといったプロセスの管
理において非常に貴重な問題について説明している。
従来のマルチプロセッサ構成の並列計算機システムにお
いては、上記のようなタスク単位のOSの処理方式を拡
張し、1つのプログラムを複数のタスクに分割し、並列
に処理できるタスクは異なるCPUに割り当てて並列に
(同時に)実行させていた。すなわち、マルチプロセッ
シングとマルチタスキングを組み合わせた処理が行われ
ていた。
例えば、K、Hwang著のAdvanced Pat
−allel Proce−ssing with S
upercomputer Architecture
s”(Proceedings of t、he IE
EE、 Vol、75.No、10,0ct−ober
 1987)にはこの様な並列計算機システムが紹介さ
れているし、また、H,M、Deitel著の” An
 Tn−troduction  t、o  0per
at、ing  Systems  ”  (Revi
sedFirst  Edit、ion、  Addi
son−1’1esley  PublishingC
ompany、1984)の第11章” Multip
rocessing ”には、マルチプロセッシングの
特徴とマルチプロセ・Iシング用オペレーティング・シ
ステムの形態について述べられている、−船釣には、タ
スクはOSが実行制御を行う際の基本的な処理単位であ
り、スケジューリングの対象となるものである。
全く独立したタスク同士ではお互いに通信する必要は無
いか、データを共有するなどの関係がタスク間にある場
合には、タスク間の通信が必要で、この場合にはOSが
タスク間の通信の仲介を行っていた。これはタスク間通
信として、例えば、A、S、Tanen!Jaum著の
’ Operating Systems:De、si
gnand  Implementation”  (
Prentice−Hall、  Inc、。
1987)の第2章 ” Processes ”に詳
しく述べられている。
このような従来の並列計算機システムにおいては、シス
テムの構成要素であるCPUは、通常、基本的には同じ
構成で、マルチプロセッサ構成を支援するための同期命
令とタスクの切り替えを支援、するための機能がハード
ウェアによって提供されていた。これらはいずれもOS
の基本的な管理単位であるタスクに対する支援機能であ
り、1つのタスクが1つのCPUを使用して実行される
という処理形態を効率良く支援する機能であった。
一方、高速処理のために開発されたキャッシュ・メモリ
技術はCPUが参照するメモリに階層楕。
造を作ることにより。実効的に比較的容量の大きい主メ
モリを参照する速度を向上させようとするもので、A、
L、S+n1th著の” Cache Memorie
s” (ACMComputing 5urveys、
Vol、14.No、3.September 198
2>に記述されているように、コンピュータ・アーキテ
クチャの分野においては確立された練術となっている。
[発明が解決しようとする課題] このような従来のマルチプロセッサ構成の並列計算機シ
ステムでは、1つのタスクを1台のCPUを使用して実
行する処理形態を前提としており、1つのタスクを複数
のCPUを使用して細分割して実行する処理形態に対し
ては考慮されていないため、処理を効率良く行うには限
界があった。さらに詳しく言えば、これは、従来のマル
チプロセッサ構成の並列計算機システムの構成要素とな
っているCPUには、1つのタスクを1つのCPUに割
り当て、並列に処理することを支援する機械命令や機能
が含まれてはいたが、1つのタスクが複数台のCPUを
使用する処理形態に対してのハードウェア及びソフトフ
ェアの機能はなかった。
従って、1つのタスクに関する処理をこれ以上効率良く
行うことができないという問題点である。
この問題はそもそも、従来OSに1つのタスクが複数の
CPUを使って処理されるような処理形態を支援する機
能が無いために生じた問題である。
近年、1つのタスクを1つのCPUで実行するという処
理形態のタスク草位の実行制御では、タスクの生成や消
去、及び、タスク間の通信に要するオーバーへヴドが大
きいことから、システムの十分な並列性を活かせないこ
とが認識されはじめ、1つのタスクを複数のCPUを使
用して実行する処理形態で、タスクよりも細かな処理単
位で実行制御する方式が試みられている。例えば、P、
Carnevali 、P、 Sguazzero、 
and V、 Zecca著の”Microtaski
ng on IBM Multiprocessors
 ”(IBM  Journal  of  Re5e
arch  and  Development。
Vol、30.No、6.November、 198
6)には、並列処理の単位をマイクロタスクと名付け、
複数の異なるCPUを使用して、1タスク/CPUとい
うOSの基本的な管理の枠を越えて行った並列処理の実
験について述べられている。また、D、A、Padua
D、J、Kuck、and D、H,Lawrie著の
パ旧gh −3peedMultiprocessor
s and Compilation Techniq
ues”(IEEE Transactions on
 Computers、 Vol、C−29゜No、9
. September 1980)には、逐次的に記
述されたプログラムで並列実行可能な部分を自動的に検
出し、マルチプロセッサで並列に実行できるように、自
動並列化するコンパイラの技術について述べられている
が、ここでもタスクという枠を越え、もっときめの細か
い並列処理を前提にしている。
しかしながらこれらの試みも今だ実用に供するほど確立
したものではなかった。
一般に、CPUは自己のキャッシュ・メモリと共有メモ
リとの間でデータの転送を常時行うものであり、複数の
C’PUが共有メモリ中の特定のメモリ領域を頻繁にア
クセスする傾向にあり、時として衝突や無矛盾性を保証
できないことがあった。かくしてキャッシュ・メモリの
無効化が頻繁に発生し、システムの性能を低下させると
いう問題点があった6R,、J、Br1l著の” On
 Cacheabilityof Lock−Vari
al+Ies in Tight、Iy−Couple
dMultiprocessor Systems” 
(ACM 5IGARCHComputeArchit
ect、ure News、Vol、15.No、3.
Jun  1987)では、密結合のマルチプロセッサ
・システムにおいて、同期用ロック変数をキャッシュ・
メモリに格納した時に無矛盾性を保証できない場合が発
生する問題について詳しく述べている9また、K、Hw
angand F、A、Br1gg5著の” Comp
ut、er Architectrureand Pa
rallel Proce−ssing ” 0.lc
Graw−Hill BookCompany、 19
84)の第7章” Multiprocessor A
rch−it、ecture and Progr−a
mming ”には、キャッシュ・メモリの頻繁な無効
化による性能の低下につい為  て述べられている。
本発明は、この様な従来の計算機システムにおける問題
点を解決するためになされたもので、1のタスクを複数
のCPUで並列処理させて処理の高速[ヒを図るととも
に、同一タスクを並列処理しているCPU同士に連係性
を持たせて、より一層処理能力の向上を図ることを目的
とする。更にキャッシュ・メモリ使用による共有メモリ
のアクセスの衝突を防止して、プロクラムの処理をより
高速化することを目的とする。
[課題を解決するための手段] この発明においては、複数のcpu (中央処理装置)
200a 〜200hとこれらのcpuに共有されるメ
モリ300(記憶装置)を持つマルチプロセッサ構成に
バー1〜ウエアと、これを制御すめたのO3(オペレー
ティング・システム)および関連するシステム ソフト
フェアから成る並列計算機システム100において、 該システム100て処理される分割可能なプロクラムに
予め識別子000〜111等を定め、各CPU200a
 〜20Oh内に設けた命令実行ユニッl−210と、
この命令実行ユニット210内に設けられた並列処理モ
ード レジスタ215とを備え、プログラムの分割され
た部分を当該CPU200a 〜2(10hが処理する
場合は該CPU200a〜20 Oh内の並列処理モー
ト レジスタ215に識別子000〜111等を夫々登
録するとともに、登録されているC P Ll同士を互
いに検知して、互いに関連付けて小環を実行するように
した。更に前記CP[J200a〜20Oh内に設けら
れ該命令実行ユニ・川・210とデータ転送可能なキャ
ッシュ メモリ220と、このキャッシュ・メモリ22
0と該命令ユニ・ソ1〜210とを択一的に選択するハ
スセレクタ230とを備え。
プロクラムの分割された部分を当該CPU20Qa〜2
0011か処理する場合は該CPU200a〜200h
内の並列処理モート レジスタ215に識別子OOO〜
111等を夫々登録するとともに、パスセレクタ230
が命令実行ユニット210を選択するようにした。
[作用] 本発明においては、各CPUに並列処理モード・レジス
タ215を調べることにより、1つのCPUて1つのプ
ログラムを実行する形態と、複数のCPUで200a〜
200hで1つのプログラム実行する形態とを区別し、
共同する複数CPU200a、200c、200dが同
一プログラムを並列に実行する場合は同一の識別子10
1を示すようになるので、このようなCPU200a、
200c、200dを1つのグループとして扱えるよう
になる。この同一グループのCPU200a、200c
、200dは互いに認識し合って、処理の協同動作をよ
り有効的に行うことができる。又並列処理モード・レジ
スタ215に識別子101が登録されているときには、
各CPUはキャッシュ・メモリ220を使用しないので
、共有メモリ300をキャッシュ・メモリ220のため
にアクセスすることかなく、共有メモリ300上で起こ
りうる衝突を防止する。
[実施例] 以下、この発明を図面を参照して説明する。
第1図は、8台のCPUから成るマルチプロセッサ構成
の並列計算機システムの全体を示したもので、図中、1
00は並列計算機システム全体、200a、200b、
200c、200d、200e、20Of、200g、
200hは後述する第2図に示されるCPU200と同
し構成を持つCPU、300はこれらCPU200a〜
20011に共有されるシステム・メモリ、400は入
出力装置、500はメモリ ハスを示す。
第1図に示される並列処理計算機システムでは、8台の
CPU200a 〜200hがそれぞれ、単独に処理を
行うこともあるし、また、いくつかのCPUがグループ
となって1つの処理を行うこともある。このような処理
の実現には、第2図に示される並列処理モード・レジス
タによって示される状態を、システムの制御を行うO3
(オペレーティング・システム)が利用することによっ
て可能になる。以下、これについて詳しく述べる。
第2図は、CPU2ooa〜2oohのうち代表として
1つのCPUの構造を示したもので、図中、200はC
PU、21oは命令実行ユニット、215は並列処理モ
ード・フラグを保持する並列処理モード・レジスタ、2
16,217,218はそれぞれ並列処理モード・フラ
グの第0ビツト、第1ビツト第2ビツト、22oはキャ
ッシュ・メモリ・ユニット、230はバス・セレクタ、
291.292はそれぞれ内部バス、295は制御信号
、500は前述したメモ1月バスである。なお、第2図
には本発明を示すのに十分な部分のみを示した。
第2図のCPUにおいては、命令実行ユニット210が
メモリ・バス500を介してシステム・メモリ300に
ある機械命令を読み出し、必要に応じて、データをシス
テム・メモリ300がら読み込んだり、処理結果を該シ
ステム・メモリ3゜Oに格納しなりする。命令実行ユニ
ット210が該システム・メモリ300ヘアクセスを行
う時には内部バス291を使う。内部バス291はキャ
ッシュ・メモリ・ユニット220とバス・セレクタ23
0に接続されている。また、バス・セレノ      
′り230にはキャッシュ・メモリ・ユニット220か
らの内部バス292も接続されている。バス・セレクタ
230は、キ六・・ンシュ・メモリ・ユニッl−220
を使用する場合と使用しない場合とでメモリ・バス50
0に接続する内部バス291と292とを選択変更する
。すなわち、キャッシュ・メモリ・ユニツl−220を
使用する場合には、内部バス292をメモリ・バス50
0に接続し、使用しない場合には、内部バス291をメ
モリ・バス500に接続する、 第2図において、並列処理モード・レジスタ215は3
ビツト(216,217,218>によって並列処理モ
ード・フラグを表現し、CPU200が1つのタスクに
対して単独で処理を行っているか、あるいは、他のCP
Uと共同して処理を行っているか、ということを、3ビ
ツト全てが0(ゼロ)か、そうでないかによって区別す
る。池のCPUと共同して処理を行っている場合には、
予め定めたタスクの識別番号を3ビツト上で示し、同一
タスクを並列に分担した各CPUは同一ビットを示し、
結果としてそのCPUグループの識別子を格納すること
になる。すなわち、3ビツトで表現できる場合の数は8
通りであり、0(2通表現で000)はCPU200が
1つのタスクに対して単独で処理を行っていることを示
し、それ以外の場合(1〜7)はCPUグループで1つ
のタスクを行っていることを示す。従って、並列処理モ
ード・フラグの値が0の時は並列処理モードはオフであ
り、0以外の時は並列処理モードはオンである。
並列処理モード・レジスタ215からO以外の有意な制
御信号295が出力され、このオン信号は第1図の各C
PU’200a〜200hの間で互いに検知され、同一
タスクを共同に並列に処理しているCPU同士が処理を
連係して行うようにする。又このオン信号はキャッシュ
・メモリ・ユニット220を非活性化し、かつバス・セ
レクタ2−17= 30に内部バス291を選択させるようにする。
並列処理モードがオフの時には、逆にキャッシュ・メモ
リ・ユニット220を活性化し、バス・セレクタ230
に内部バス292を選択させるようにする7 第3図は、第1図に示された並列処理システムで行われ
ている処理の一例を示したものである。
図中、A、B、C,D、Eはそれぞれ異なった処理A、
B、C,D、Eを示す。これらの処理はそれぞれ、OS
によりタスクA、B、C,D、Eとして独立の処理とし
て認識され実行される。この時、処理Aは分割可能でA
O,Al、A2に、処理BはそのままBO5処理処理分
割可能でC09C1に、処理りはそのままDO1処理E
はEOの実行単位からなる。これらの実行単位はそれぞ
れ異なったCPUで並列に実行可能である。この様にこ
れまでのタスクより小さな実行単位を異なったCPUで
並列に処理されるものを、マイクロタスクと称する。
第3図に示した例では、タスクA、Cが複数のCPUで
並列に実行され、分割されるタスクA。
Cについて固有のビット番号を夫々与え、タスクB、D
、Eはその中にそれぞれ1つのマイクロタスクしかない
ため、ビット番号界えず結果的には1つのCPUで逐次
的に処理される。
第4図は、第3図に示した処理を行っている時、各CP
Uにおける並列処理モード・フラグ(第2図のレジスタ
215に保持されたフラグ)の状態の一例を示したもの
である。ここでは、各cPUでは、次に示すようなマイ
クロタスクの実行が行われている。
CPU  O(200a)  −AO CPU  1  (200b)  −BOCPU  2
  (200c)  −AlCPU  3  (200
d)  −A2CPU  4  (200e)  −C
0CPU  5  (20Of>  −D。
CPU  6  (200g>  −ClCPU  7
  (200h)  −EOCPUI、CPU5.CP
U7ではそれぞれ、単独の処理B。、Do及びEoを行
っているため、フラグの値は000となっている。これ
に対し、CPU0.CPU2.CPU3は共同してタス
クA=Ao+A、+A2を処理し、フラグの値は101
くタスクAに対する識別子)にとなっており、CPU4
.CPU6は共同してタスクC−co十01を処理し、
フラグの値は110(タスクCに対する識別子)となっ
ている、 この様に、並列処理モード・レジスタ215に保持され
た並列処理モーI・・フラグのオン/オフを並列処理モ
ードレジスタ215の状態に基ついてハードウェア的に
直接参照する手段を設けることにより、−のCPU20
0が他のCPUとグループを形成して共同で処理を行っ
ている場合には、同し処理を行っているcpu <プロ
セッサ)群の中に異種のCPU(プロセッサ)かあるが
否かをチエツクできる。
通常、この「異種CPUJは特定の処理を高速に行う目
的で設けられる専用のCPUであり、アレイ処理CPU
ストリング処理CPUなどが考えられる。
通常のCPU (汎用CPU)は割り当てられたマイク
ロタスクの処理を始める前に、そのCPUの属するグル
ープに当該処理の専用CPUが入っているか否かを命令
によって(ハードウェアで実現)チエツクし、もし、入
っていれば、当該処理をそのCPUに任せ更なる高速化
を実現し、入っていなけば当初に決められた如く自らそ
の処理を行う。又、−のCPUが他のCPUと共同で処
理を行っている場合、キャッシュ・メモリ220を切り
離すことにより、複数のキャッシュ・メモリが共有メモ
リをアクセスするとき生じ得る矛盾の発生を防止し、ま
た、CPU間で共有されるメモリ領域に対する頻繁な更
新によるキャッシュ・メモリの無効化操作のオーバーヘ
ッドを無くすことができる。
第3図に示した処理の中で、タスクA−Ao+A1+A
2あるいはタスクc=co+C,のように、複数のCP
Uを使用して並列処理を行うもののプログラムの構造を
、タスクA=Ao十A、 十2l− A2を例として第5図に示す。
第5図においては、マイクロタスクAOがまず実行され
、マイクロタスクAI、A2がAOから生成されるよう
になっている。マイクロタスクAOのプロクラムは、B
lock 1がらBlock 6までの6つのブロック
から成り、旧ock 1ては主に初期化行い、Bloc
k 2ではA1とA2を生成し、Blo−ck3では指
定された処理を行い、Block 4ではA1とA2の
終了を確認し、旧ock 5ではA1とA2に関する後
処理を行い、Block 6では処理A全体の後処理を
行う。A1とA2はそれぞれAOがら生成された後、指
定された処理をBlock3a、Block 3 bで
行う。タスクCにおいてはBlock 2はC1を生成
し他のプログラムの構造は同様である。
次に、第6図にて並列処理のプログラムについて具体的
に説明する。
タスクA=Ao’+Al+A2で実行されるプログラム
として、2つの3次元ベクタの内積を計算するプログラ
ムを考える。2つのベクタ7と7は並列処理できるよう
に3つに分け、2次元のアレイとして定義されている。
第6図にこの様子を示し、マ、り7の部分積は2[0コ
、z[1コ。
Z[2]に格納される。
第7図に上記処理Aの擬似プログラムを示す。
これは上記のマイクロタスクAOに相当するプログラム
である。行3−7はアレイを含む変数の定義である。行
10からメイン・ルーチンの記述である。行14ではc
pu  getO関数により3つのCPUが確保される
。このなかにはAOが使用しているCPUも含まれるた
め、実際には2つのCPUが確保される。確保されなC
PUの番号はアレイcpu[3]に返される。処理Aの
場合には、第4図に従うと、CPU0.CPU2.CP
U3というが確保されたことになる。この時同時に、そ
れらのCPUの並列処理モード・レジスタには第4図に
示すような処理の識別子が設定される。
cpu  get()関数はシステム関数でOSにより
直接実行されるものである。
行15および16ではmt  5tartO関数により
A1とA2がCPU2とCPU3で実行される。
mt  5tart()関数は、UNIXのforkO
関数のようになっており、マイクロタスクの生成を行う
。forkO関数はタスク(プロセス)を生成するのに
対し、mt 5tart (>関数はマイクロタスクを
生成する点が異なる。mt、 5tartO関数は、呼
び出し側には生成されたマイクロタスクの識別子が返さ
れ、生成されたマイクロタスク側には値0が返される。
マイクロタスクAO,AIではそれぞれ、行25から始
まる部分内積のルーチンpiρ()が実行される。一方
、mt 5tartO関数を呼び出したマイクロタスク
AOでは、mu 5yncO関数により、マイクロタス
クA1とA2の実行終了を待ち、変数ipに最終結果と
してのベクタx、yの内積を格納する。ここで、rat
、 5tartO関数もmu syncm関数もOSで
直接サポートされるシステム関数である。また、ここで
は、マイクロタスクAOが終了した時、OSにより確保
された3つのCPUは解放されるものとしている。
以上のようなマイクロタスクの並列処理を支援するため
には、osに、1つのタスクに複数のCPUが割り当て
、かつ、割り当てられた各CPUでそれぞれ実行される
マイクロタスクを管理する機構が必要になる。OSにお
けるタスクの管理には、タスクの属性を格納したタスク
制御ブロックを用いる。タスク制御ブロックの処理を行
うために拡張したものを第8図に示す。
第8図では、TIDはタスク識別子、NCPUは割り付
けられたCPUの数、CPUGはCPUグループの識別
子、CPU0−CPU3は割り付けられたCPUの番号
、MTIDO’)4TID3はマイクロタスク識別子を
示す。
NCPUで示された数だけがこのタスクに割り当てられ
ていることを示し、その時に各CPUの並列処理モード
・フラグに設定されたCPUのグループ識別子がCP 
UGに格納される。CPUNiとMTIDi(i=o。
1.2.3)はペアで使用され、それぞれCPUの番号
とそこで実行されているマイクロタスクの識別子を格納
する。ここでは4つまでのペアしか格納できないが、こ
れは単に一例にすぎない。ここで示されたタスク制御ブ
ロックを使用することにより、1つのタスクをマイクロ
タスクに分割し、複数のCPUを使い、複数のマイクロ
タスクを並列に実行できる。マイクロタスクのスケジュ
ーリングは複数のCPUを確保しなければならず、複数
のCPUを空ける必要があり、最も簡単な方法の1つと
してまず適当に必要数のCPUを決め、そこでの処理が
全て終了するまで待つということが考えられる。
以上、本発明の一実施例を示したが、ここに示した構成
や方法に限らず、本発明の主旨を活したシステムで同様
の効果を奏するものであればよい。
並列処理モード・スラグは、池のレジスタの一部であっ
てもよいし、ピッ)・数も3ビツトに限らす1ビット以
上何ビットでもよく、さらに、このフラグのオン/オフ
の表現も任意でよい。
[発明の効果] 以上、説明してきたように、この発明によれば、並列計
算機システムで処理される分割可能なプログラムに予め
識別子を定め、各CPU内に設けた命令実行ユニットと
、この命令実行ユニット内に26一 設けられた並列処理モード・レジスタとを備え、プログ
ラムの分割された部分を当該CPUが処理する場合は該
CPU内の並列処理モード・レジスタに該識別子を登録
するとともに、該CPU同士を互いに検知して、互いに
関連付けたので、更に各CPU内にデータ転送可能なキ
ャッシュ メモリと、このキャッシュ・メモリと該命令
ユニットとを択一的に選択するバスセレクタとを備え、
プログラムの分割された部分を当該CPUが処理する場
合は該CPU内の並列処理モード・レジスタに該識別子
を登録するとともに、パスセレクタが命令実行ユニッl
−を選択するようにしたので、複数のCPUを使用して
1つのプログラムを実行する処理形態をソフトフェアの
面から、又ハードウェアの面からも支援することができ
るという効果を有する。
効果を有する。
また、本発明による並列処理モード・フラグにより、O
Sに1つのタスクを、複数のCPUを用いて複数のマイ
クロタスクに分割したものを並列に処理することを支援
する機能を付加することができるという効果を有する。
さらに、本発明による並列処理モード・フラグのオン/
′オフにより、キャッシュ・メモリの使用7′不使用を
動的に制御てき、複数のCPUが特定のメモリ領域を頻
繁にアクセスした時に発生するキャッシュ・メモリの無
効[ヒのオーバーヘットを無くすことができるという効
果を有する。
【図面の簡単な説明】
第1図はマイクロプロセッサ構成の並列計算機システム
の全体ブロック図を示し、第2図は本発明に係る並列処
理モート・レジスタを含むCPUの内部構造を示し、第
3図はタスクの分割の状態を示し、第4図はCPUの並
列処理時の並列処理モード・フラグの状態を示し、第5
図は並列処理を行うプログラムの分割・統合の状態を示
し、第6図は2つのベクタの内積を計算する様子を示し
、第7図は並列処理を行うプログラムの擬似コードを示
し、第8図はOS″′c’i用するタスク制御ブロック
を示す、 図中、 100・・・・・並列計算機システム、200,200
a、200b、200c、200d、200e。 20Of、200g、200h・・・・・・CPU、2
10・・・・・・命令実行ユニット、215・・・・・
・並列処理モード・レジスタ、216,217,218
・・・・・・ビット・フラグ、220・・・・・・キャ
ッシュ・メモリ・ユニ・7 ト、230・・・・・・バ
ス・セレクタ、291.292・・・・・・内部バス、
295・・・・・・制御信号、300・・・・・・シス
テム・メモリ、400・・団・入出力装置、500・・
・・・・メモリ・バス、を示す。なお、図中、同一符号
は同〒または相当部分を示す。

Claims (3)

    【特許請求の範囲】
  1. (1)複数のCPUと、これらのCPUに、共有される
    メモリを持つマルチプロセッサ構成のハードウェアと、
    これを制御するためのOS(オペレーティング・システ
    ム)および関連するシステム・ソフトフェアから成る並
    列計算機システムにおいて、該システムで処理される分
    割可能なプログラムに予め識別子を定め、前記各CPU
    内に設けた命令実行ユニットと、この命令実行ユニット
    内に設けられた並列処理モード・レジスタとを備え、前
    記プログラムの分割された部分を当該CPUが処理する
    場合は該CPU内の前記並列処理モード・レジスタに前
    記識別子を登録するようにしたことを特徴とする並列計
    算機システム。
  2. (2)前記識別子が登録された各CPU同士を互いに検
    知して、互いに関連付けて処理を実行するようにしたこ
    とを特徴とする第1項記載の並列計算機システム。
  3. (3)複数のCPUと、これらのCPUに、共有される
    メモリを持つマルチプロセッサ構成のハードウェアと、
    これを制御するためのOS(オペレーティング・システ
    ム)および関連するシステム・ソフトフェアから成る並
    列計算機システムにおいて、該システムで処理される分
    割可能なプログラムに予め識別子を定め、前記各CPU
    内に設けた命令実行ユニットと、この命令実行ユニット
    内に設けられた並列処理モード・レジスタと、前記CP
    U内に設けられた該命令実行ユニットとデータ転送可能
    なキャッシュ・メモリと、このキャッシュ・メモリと該
    命令ユニットとを択一的に選択するバスセレクタとを備
    え、前記プログラムの分割された部分を当該CPUが処
    理する場合は該CPU内の前記並列処理モード・レジス
    タに前記識別子を登録するとともに、前記バスセレクタ
    が前記命令ユニットを選択するようにしたことを特徴と
    する並列計算機システム。
JP27216388A 1988-06-30 1988-10-28 並列計算機システム Pending JPH0277870A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP27216388A JPH0277870A (ja) 1988-06-30 1988-10-28 並列計算機システム

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP63-163405 1988-06-30
JP16340588 1988-06-30
JP27216388A JPH0277870A (ja) 1988-06-30 1988-10-28 並列計算機システム

Publications (1)

Publication Number Publication Date
JPH0277870A true JPH0277870A (ja) 1990-03-16

Family

ID=26488854

Family Applications (1)

Application Number Title Priority Date Filing Date
JP27216388A Pending JPH0277870A (ja) 1988-06-30 1988-10-28 並列計算機システム

Country Status (1)

Country Link
JP (1) JPH0277870A (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002134867A (ja) * 2000-10-19 2002-05-10 Daikin Ind Ltd 電装品ユニット
JP2004280293A (ja) * 2003-03-13 2004-10-07 Nec Corp グループ単位ギャングスケジューリング方式

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS62221732A (ja) * 1986-03-24 1987-09-29 Nec Corp 情報処理装置
JPS6345670A (ja) * 1986-08-13 1988-02-26 Hitachi Ltd プロセツサ間同期装置

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS62221732A (ja) * 1986-03-24 1987-09-29 Nec Corp 情報処理装置
JPS6345670A (ja) * 1986-08-13 1988-02-26 Hitachi Ltd プロセツサ間同期装置

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002134867A (ja) * 2000-10-19 2002-05-10 Daikin Ind Ltd 電装品ユニット
JP2004280293A (ja) * 2003-03-13 2004-10-07 Nec Corp グループ単位ギャングスケジューリング方式

Similar Documents

Publication Publication Date Title
US7484043B2 (en) Multiprocessor system with dynamic cache coherency regions
US7469321B2 (en) Software process migration between coherency regions without cache purges
Scheurich et al. Correct memory operation of cache-based multiprocessors
US6591355B2 (en) Distributed shared memory system with variable granularity
US6832298B2 (en) Server system operation control method
US4914570A (en) Process distribution and sharing system for multiple processor computer system
US5056000A (en) Synchronized parallel processing with shared memory
JP3206914B2 (ja) 多重プロセッサ・システム
US5933598A (en) Method for sharing variable-grained memory of workstations by sending particular block including line and size of the block to exchange shared data structures
US5787480A (en) Lock-up free data sharing
US5734817A (en) Method for making a data base available to a user program during data base recovery
US20140143368A1 (en) Distributed Symmetric Multiprocessing Computing Architecture
JPH04348451A (ja) 並列計算機
US20030131214A1 (en) Masterless building block binding to partitions using identifiers and indicators
JPH01246656A (ja) プロセッサ間共有メモリ管理方式
JP2009515246A (ja) 集中特化したマルチタスク及びマルチフロー処理をリアルタイム実行する手法及びシステム
US6665700B1 (en) Distributed-memory multiprocessor system utilizing plural multiprocessors with virtual storage space
US8578130B2 (en) Partitioning of node into more than one partition
JPH11259318A (ja) ディスパッチ方式
KR20230121884A (ko) 어드레스 매핑 인식 태스킹 메커니즘
US20080134187A1 (en) Hardware scheduled smp architectures
Kirrmann et al. Poolpo—a pool of processors for process control applications
JPH0277870A (ja) 並列計算機システム
JP3639366B2 (ja) アドレス空間共有システム
US6934835B2 (en) Building block removal from partitions