Deprecated: The each() function is deprecated. This message will be suppressed on further calls in /home/zhenxiangba/zhenxiangba.com/public_html/phproxy-improved-master/index.php on line 456
JPS6211757B2 - - Google Patents
[go: Go Back, main page]

JPS6211757B2 - - Google Patents

Info

Publication number
JPS6211757B2
JPS6211757B2 JP55068044A JP6804480A JPS6211757B2 JP S6211757 B2 JPS6211757 B2 JP S6211757B2 JP 55068044 A JP55068044 A JP 55068044A JP 6804480 A JP6804480 A JP 6804480A JP S6211757 B2 JPS6211757 B2 JP S6211757B2
Authority
JP
Japan
Prior art keywords
processors
memory
processor
buffer memory
data
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
JP55068044A
Other languages
English (en)
Other versions
JPS56164464A (en
Inventor
Tatsuo Nogi
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.)
Individual
Original Assignee
Individual
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 Individual filed Critical Individual
Priority to JP6804480A priority Critical patent/JPS56164464A/ja
Publication of JPS56164464A publication Critical patent/JPS56164464A/ja
Priority to US06/579,545 priority patent/US4514807A/en
Publication of JPS6211757B2 publication Critical patent/JPS6211757B2/ja
Granted legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • G06F15/163Interprocessor communication
    • G06F15/173Interprocessor communication using an interconnection network, e.g. matrix, shuffle, pyramid, star, snowflake
    • G06F15/17356Indirect interconnection networks
    • G06F15/17368Indirect interconnection networks non hierarchical topologies
    • G06F15/17393Indirect interconnection networks non hierarchical topologies having multistage networks, e.g. broadcasting scattering, gathering, hot spot contention, combining/decombining
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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
    • G06F15/8023Two dimensional arrays, e.g. mesh, torus

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Multimedia (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • Computing Systems (AREA)
  • Multi Processors (AREA)
  • Complex Calculations (AREA)

Description

【発明の詳細な説明】 本発明は、高速計算用のMIMD形の並列処理計
算機に関するものである。
従来から、科学技術計算、とくに、偏微分方程
式の数値解を求める計算を高速に処理するため
に、アレイ値マルチプロセツサ計算機が開発され
てきた。その代表的なものがILLIAC−であ
る。それは2次元的配列のアレイプロセツサで、
主として隣接するプロセツサ間だけでバス接続さ
れているので、離れたプロセツサ間でデーター交
換を必要とする場合には、データー転送に手間ど
るという欠点をもつている。また、任意のプロセ
ツサ間でバス接続されるというクロスバータイプ
のものを考えれば、転送によるスループツトの低
下はないが、ハード量が莫大になるとして避けら
れてきた。このように、並列処理計算機を設計し
〓〓〓〓〓
ようとするとき、データー交換の様式が最大の問
題になる。本特許出願人は、先に、昭和54年特許
出願第92927号「並列処理計算機」において、任
意のプロセツサ間で直接データー交換が可能で、
しかもハード量も比較的少くて済む様に、2次元
配列のバツフアメモリー群を設ける様式の並列処
理計算機を発明した。しかし、この様式のまま、
プロセツサ数をあまりに大きくすることは、バツ
フアメモリー群のハード量が著しく増加し、やは
り問題になる。
そこで、プロセツサ数が大きくなつた場合にも
先に発明した機械の利点がそのまま生き、しかも
ハード量が少く、モジユール化が容易になる様に
工夫したのが本発明計算機である。任意のプロセ
ツサ間のデーター交換について言えば、直接には
無理だが、間に別のプロセツサ1台だけを介しさ
えすれば可能になつている。バツフアメモリー数
で言えば、N2台の従プロセツサを用いるとき、
先に発明した計算機ではN4ケになるが、本発明
計算機ではN3ケで済む。
本発明の並列処理計算機では、1台の主プロセ
ツサと複数N台の副プロセツサとN2台の従プロ
セツサからなる階層的構成をとる。主プロセツサ
は主として必要なときにシステム全体の同期をと
ることおよびプログラムやデーターの入出力を担
う。本発明の一態様において、主プロセツサには
チヤネルを通じてN台の副プロセツサが直接につ
ながる。副プロセツサは部分的なシステムの同期
をとることとプログラムやデーターの転送を仲介
する。各副プロセツサにはそれぞれ行配置又は列
配置のN台の従プロセツサが直接につながり、一
つのサブシステムを構成する。そのサブシステム
の中で、副プロセツサと従プロセツサの間でプロ
グラムやデーターの送受をするために双方側から
アクセスできる共通メモリーを設ける。従プロセ
ツサの間では、番号k=0、1、………、N−1
のそれぞれに対して、第k行配置のN台の従プロ
セツサと第k列配置のN台の従プロセツサが双方
向に或いは一方向に相手側の任意のものへデータ
ー転送ができるようにバツフアメモリーをN2
具えたもの(バツフアメモリー板と表現する)を
Nケ設ける。ここで、本発明の好ましい実施態様
においてはバツフアメモリーとしてRAM
(Random Access Memory)或いはFIFO
(First−in−First−out)シリアルメモリーが利
用される。いづれの場合にも双方向にデーターの
書き込み、読み取りができる様にハード構成する
ものと、一方向だけに書き込み読み取りが許され
るようなハード構成のものがありうる。性能から
言えば、一般的にはFIFOよりRAMを用いる方
が、また双方向にデーター転送できる方が優れて
いる。ハード量から言えば逆にRAMよりFIFOを
用いる方が、また一方向にデーター転送するだけ
の方が少くて済む。なお、FIFOを用いるときプ
ロセツサ側にDMAコントローラを設け、データ
ーをDMAチヤネルを介して転送することにすれ
ばデーター転送スピードではRAMを用いる場合
と比べて遜色ない。行配置のAUと列配置のAU
のいづれ側からもアクセスできるRAMにする場
合は、それを単に転送用のバツフアメモリーとし
てだけでなく、作業用メモリーとしても利用でき
るので都合がよい。以下では主として最後の場合
について述べていく。
図面によつて本発明計算機の具体的なバス接続
法を説明する。以下では主プロセツサをMU、副
プロセツサをSU−((k))(k=0、1、……
…、N−1;或いは単に((k)))と表わす。ま
た、従プロセツサをAU−((j、k))(j、k=
0、1、………、N−1;或いは単に((j、k
)))と表わし、k番目のバツフアメモリー板上の
バツフアメモリーを(i、j)k(i、j=0、
1、………、N−1)と表わす。
第1図では、MUとSU間およびSUとAU間のバ
ス接続の様子が示されている。ここでMMは主プ
ロセツサの主メモリー、CMはSUとAUの共通メ
モリーを示している。各AUの共通メモリーのア
クセスはSUの許可の下で可能になる。各AUから
は、SUへ行くアドレス/データーバスの外に、
2組のバスが出ているが、これらがバツフアメモ
リーへ行くものである。
第2図には、SU−((k))、第k行配置のAU−
((j、k))(j=0、1、………、N−1)、第
k列配置のAU−((k、i))(i=0、1、……
…、N−1)および第k番目のバツフアメモリー
板(i、j)k(i、j=0、1、………、N−
1)からなるサブシステムのバス接続の模様が示
してある。いづれのi、jについても、バツフア
メモリー(i、j)kには2台の従プロセツサ((
〓〓〓〓〓
j、k))と((k、i))だけがアクセスできる様に
なつている。バツフアメモリーのアクセスの競合
は((k))のコントールで避けるものとする。通常
は、すべての行配置プロセツサ((j、k))(j=
0、1、………、N−1)が一せいにバツフアメ
モリーをアクセスするときと、すべての列配置プ
ロセツサ((k、i))(i=0、1、………、N−
1)が一せいにアクセスするときに分かれる様に
コントロールする。また、必要なときには、各
AUが、それがアクセスしうるバツフアメモリー
の行配列或いは列配列に同一データーをブロード
キヤスト式に送ることも可能にする。第2図にお
いて、各AUから、もう1組のアドレス/データ
ーバスが出ているが、それらはそれぞれ別のバツ
フアメモリー板に行つている。
このバス接続法では、AU間で直接にデーター
交換ができるのは、一つ一つのバツフアメモリー
板(i、j)k(i、j=0、1、………、N−
1)につながる((j、k))(j=0、1、……
…、N−1)と((k、i))(i=0、1、……
…、N−1)と双方の相手側のものとの間だけで
ある。バツフアメモリーを介してつながる様子を
模式的に ((j、k))−(i、j)k−((k、i)) と表わす。ルールとしてまとめておけば次の様に
なる。
(i) プロセツサ名の番号対(( 、 ))において同
じ数字kが一方のプロセツサでは前に、他方の
プロセツサでは後に現れるという関係にある2
つのプロセツサ間では直接にk番目のバツフア
メモリー板を介してデーター送受が可能であ
る。
(ii) そのとき例えば2つのプロセツサ((j、k))
と((k、i))の間の転送で直接に利用されるバ
ツフアメモリーは、いづれのプロセツサ名にお
いてもkを括弧の直ぐ外に出す様にシフトし、
はみ出したkを( 、j)k或いは(i、 )k
様に下つき添字とし、ブランクとなつたところ
には相手側のプロセツサ名のkと対になつてい
る数字をいれたもの(i、j)kを名前とするも
のである。
一方、同一行或いは同一列に並んだプロセツサ
間でも、例えば((j、k))と((j−1、k))の間
でも直接にはデーター交換できない。しかし、任
意の2つのプロセツサ((j、k))と((l、m))の
間でデーターの交換を行うために仲介役として((
k、l))を用いることだけでデーター交換ができ
る。実際((j、k))からデーターを送る場合、ま
ずバツフアメモリー(l、j)kに書きそれを((
k、l))が読み、つづいて((k、l))が(m、
k)lに書き、そのあと((l、m))が読めばよい。
模式的に表わせば ((j、k))→(l、j)k→((k、l)) →(m、k)l→((l、m)) となる。このように直接に転送が可能である場合
に比べて書き−読み動作が一回多いだけである。
しかもこのことが、AU間の近さ(添字の近さ)
に関係なく、全く一様に行われるのである。
上述のバス接続法の効果を述べるために、この
種の計算機を最も必要とする、空間3次元の偏微
分方程式系を解く場合の利用法、特に計算格子点
と本発明計算機のAUの対応づけを示しておく。
第3図の空間座標(x、y、z)を離散化してで
きる離散化座標(xi、yj、zk)の番号(i、
j、k)の作る整数格子点が集つてできる立方体
をVと表わしている。そこで、各整数格子点
(i、j、k)を前記k番目のバツフアーメモリ
ー板の各要素(i、j)kに対応させた場合には、
上述したバツフアーメモリー板と従プロセツサ
AUとのバス接続関係により、立方体V内の格子
点群と、従プロセツサ群との間に一定の対応関係
が成立する。すなわち、まず立方体Vをi方向に
垂直な平面に射影してできる正方形OABCを考え
ると、その上にはV内の格子点の射影として番号
(j、k)をもつ格子点配列ができる。そのおの
おのにAU−((j、k))を対応させるものとす
る。それを第3図では点Pで表わしている。この
プロセツサPに、この位置に射影されるV内の格
子点のすべてにおける計算を担わせるのである。
それらの格子点を第3図では線分αα′で示して
いる。このような計算の分担だけでは、不十分で
あるので、AUが配列されている正方形OABC
が、Vをj方向或いはk方向にも射影してできる
正方形の位置をも占めることが可能で、各AUは
射影方向の線上に乗る格子点における計算も分担
できる様にする。すなわち、第3図で正方形
OABCが破線で示した位置に、しかも図に描かれ
た様な頂点の配置と一致する様な位置をも占めう
〓〓〓〓〓
るとする。そうすると、同じプロセツサPが、図
の線分ββ′,γγ′上の格子点における計算も担
いうることになる。結局AU群はV内の格子点を
三重にカバーすることになる。このようにしてお
くと、偏微分方程式のADI解法にとつては特に都
合よい。まずi方向の差分商についてインプリシ
ツト(Implicit)な方程式を解き、次にj方向、
最後にk方向についてインプリシツトな方程式を
解くのに便利になつている。その際、前の方向に
沿つて解いた結果が、次の方向に沿つて解くとき
に利用されるので一般にはプロセツサ間のデータ
ー転送が必要になる。それが巧妙に行われる様に
バツフアメモリーを設けている。AUとバツフア
メモリーの連結の模様を第4−a,b,c図に示
す。正方形OABCは、第3図においてと同様に
AUの2次元配列面を示している。第4−a図に
おいて正方形OLMNが一つのバツフアメモリー
板である。それが例えば下からk番目のものであ
ると、その上のバツフアメモリーは、正方形
OABC上の、OC辺からk番目の行abに位置する
プロセツサ((j、k))(j=0、1、………、N
−1)とOA辺からk番目の列a′b′に位置するプ
ロセツサ((k、i))(i=0、1、………、N−
1)につながる。各プロセツサからi方向あるい
はj方向に引かれた直線が正方形OLMN上でつ
くる網目の各結節点にバツフアメモリーを対応さ
せ、それには直線でつながる2台のプロセツサが
関与する。バツフアメモリーがRAMであればそ
の2台がアクセスできる様にしておく、FIFOで
あれば、その2台のDMAチヤネルがつながつて
いる様にしておく。こうしたバツフアメモリー板
をk=0、1、………、N−1に対してN組設け
る。そうすると、ADI解法の場合、各プロセツサ
がi方向の一次元格子点配列に対して得た結果を
それぞれ対応したバツフアメモリーに書き込め
ば、今度は第4−a図の破線位置からj方向にみ
て、一次元配列状のバツフアメモリーを読み出せ
ば、それを用いてj方向のインプリシツト方程式
が解けることになる。第4−b図には、j方向の
一次元配列データーがk方向の一次元配列データ
ーとして読み出せる模様が示されており、第4−
c図には、k方向の一次元配列データーがi方向
の一次元配列データーとして読み出せる模様が示
されている。ただし、ここで注目すべきことは、
第4−a,b,c図とも、向きは違つていても、
プロセツサAU群とバツフアメモリ群との関係は
全く同一であつて、2次元配列状のAU群と、N
組のバツフアメモリー板があれば、それによつて
三様に解して利用できることである。このように
みてくると、3次元問題のADI解法を、この機械
で解けば、AUに用いるプロセツサ単独で処理す
る時間を確実に1/N2に短縮することになる。
勿論上記アーキテクチヤは3次元問題のADI解
法の利用に限られるものではなく、その他の解法
でも高い効率で利用できることが後述の参考計算
例にも示される。
ここで、本発明の計算機の並列処理動作の理解
を容易にするため、以下に並列プログラムとその
処理の概要を説明する。この場合、取扱うべき3
次元配列デーは、それらの格子点座標を(I、
J、K)としたとき、(ただし、I、J、K=
1、2、3………N−1、N)、文字Uで代表さ
せ、通常はU(I、J、K)として表現されるべ
き変数である。本発明においては通常型のU
(I、J、K)は主プロセツサのメモリーデータ
に相当するものとし、N2台の従プロセツサAUで
は、一般に次の3種の形で保有することとする。
U(I、/J、K/)、U(I/、J、/K)、
U(/I、J/、K)、すなわち、これらの配列
変数は、前記第3図の格子点配列立方体Vにおい
て点(I=i+1、J=j+1、K=k+1)
を、2次元従プロセツサ配列OABCの三つの機能
的対面方向の各々で処理するデータであることを
意味する。したがつて、1番目のU(I、/J、
K/)とは、第3図において、i方向に立方体V
を眺める位置の機能的プロセツサ配列OABC1内
の従プロセツサ((j、k))により取り扱われる変
数であり、この場合は当該プロセツサからの視線
上でのIに関する一次元配列を処理するものであ
る。また、U(I/、J、/K)とはj方向にV
を眺める位置の機能的プロセツサ配列OABC2内
の従プロセツサ((k、i))により取り扱われる変
数であり、この場合は当該プロセツサからの視線
上でのJに関する一次元配列を処理するものであ
る。また、U(/I、J/、K)とはk方向にV
を眺める位置の機能的プロセツサ配列3内の従プ
ロセツサ((i、j))により取扱われる変数であ
り、この場合は当該プロセツサからの視線上での
〓〓〓〓〓
Kに関する一次元配列を処理するものである。
以上の前提において、並列演算は、立方体Vを
3側面から眺める三つの機能的プロセツサ配列
1,2及び3により実行されることになる。その
場合、たとえば次のような並列プログラムが完全
に実行される。
PDO10 J=1、N、K=1、N DO20 I=1、N 20U(I/、J、/K) =F(U(I−1、/J、K/)、 U(I、/J、K/)、U(I+1、/J、
K/)) 10 CONTINUE ここで、PDOはPARALLEL DO文を示し、ラ
ベル番号10までの実行分をインデツクスJ、Kの
動く範囲に相当する従プロセツサの組が並列に処
理することを指示する。インデツクスIについて
のDO文は指示された従プロセツサが共通に行う
標準的処理である。ラベル番号20の右辺にある関
数Fは、何らかの計算であることを表すために書
かれたものであり、これよりも複雑なサブルーチ
ンも存在するであろう。ただし、このPDO文中
に現れる式の右辺の配列変数はすべてU(※、/
J、K/)の形であることが要求される。これは
明快な並列動作を指示するための制約である。左
辺には別のパターンの配列変数が登場してもよい
が、そのとき、代入の=操作の中にはバツフアー
メモリーを介したデータ転送が含まれる。
このデータ転送について、第4−a〜4−c図
を参図して説照すると、まず第4−a図において
実線で示したjk面内のすべての従プロセツサは、
ラベル番号20の式の右辺(/J、K/型)の計算
結果(仮に、これをV(I、/J、K/)とす
る)が出るたびに、その従プロセツサにつながる
バツフアーメモリー列(図のi方向の列)に書き
入れていく。すなわち、((j、k))プロセツサは
j=J−1、k=K−1であることに留意して、
計算結果、V(I、/J、K/)をI番目のバツ
フアーメモリーに書き入れる。書き込みが済め
ば、同じく第4−a図の破線位置から見てすべて
の従プロセツサがそれぞれにつながるバツフアー
メモリーの内容を集めて{U(I/、J、/
K)}を得るのである。したがつて、((k、i))
(ただし、k=K−1、i=I−1)プロセツサ
がJ番目のバツフアメモリーから得るものをU
(I/、J、/K)とみなすのである。この上
で、第3図においてj方向にVを見る位置で、例
えば次のようなプログラムに移れるわけである。
PDO30 K=1、N、I=1、N D40 J=1、N 40 U(I/、J、/K) =G(U(I/、J、/K)) 30 CONTINUE ここで、代入文は転送をともなわないようにな
つており、やはり/、/で囲まれた(循環的に/
K、I/と読む)インデツクスに相当する従プロ
セツサの並列動作を指示するものである。
さらに、本発明計算機が3次元格子上の問題を
扱うだけでなく、2次元格子や1次元格子上の問
題を扱つたり、汎用計算機として有効となるため
には、本出願人による昭和54年特許願第92927号
でなされている様に、1次元配列状のプロセツサ
群と平面的バツフアメモリー群に見直せることが
必要になる。このとき、任意の2台のプロセツサ
間でデーター転送できるだけのバツフアメモリー
群は設けてないので、この計算機では利用にあた
つては一工夫必要になる。しかし、先に述べた様
に、2台のプロセツサ間では、もう1つ別のプロ
セツサを仲介させれば必ずデーター転送できるこ
とに注意すれば、効果的な転送方式が採用でき
る。実際、そのために、第5図の左側および下側
の枠外に示されている様に、j方向およびi方向
に異なる順番で二様に配置すると考える。各プロ
セツサからi方向およびj方向に引いた直線によ
り網目ができるが、その結節点にバツフアメモリ
ーがすべて対応する様にはなつていない。実際に
配置されているのは、第5図で太線の正方形で囲
まれた結節点集合のうち、右上から左下にわたる
対角線上に位置する正方形内の結節点に対してだ
けである。従つて他の結節点につながる2つのプ
ロセツサ間では直接にデーター交換ができない。
しかし、第5図の太線正方形内に示されたプロセ
ツサを仲介すればデーター交換が可能になる。な
お、プロセツサの任意の対に対してデーター転送
様式が一様になる様に、上述の対角線上の太線正
方形内の結節点につながるプロセツサ間でも太線
内に示されたプロセツサを介する様にしておく。
そこで、例えばj方向の一次元配列位置にある状
〓〓〓〓〓
態で各プロセツサがそれぞれi方向の一次元配列
格子点上のデーターを保持しているとき、プロセ
ツサ群がi方向の一次元配列位置からみて、j方
向の一次元配列格子点上のデーターとして受けと
る場合に、それが一せいの並列動作で行われる模
様を第6図に示す。それを詳しく順を追つて述べ
ると次の様になる。
(i) プロセツサ((j、k))はN2ケの一次配列格
子点上のデーターをNケづつまとめたものをN
ケのバツフアメモリー(o、j)k,………,
(l、j)k,………,(N−1、j)kに書き込
む。
(ii) プロセツサ((k、l))はNケのバツフアメモ
リー(l、o)k,………,(l、j)k,……
…,(1、N−1)kからそれぞれ第m番目をと
つてNケのデーターの組として読み出し、バツ
フアメモリー(m、k)lに書き込む。(m=
0、1、………、N−1) (iii) プロセツサ((l、m))はバツフアメモリー
(m、o)l,………,(m、k)l,………,(m、
N−1)lからNケづつのデーターを読み出す。
これでわかる様に、N2×N2の結節点にバツフ
アメモリーをおいて任意のプロセツサ間で直接デ
ーター交換できる場合に比べて、途中に介在する
プロセツサがNケのバツフアメモリーからデータ
ーを読み出し、編集しなおして再びNケのバツフ
アメモリーに書き込むという(ii)のステツプだけ余
分に時間がかかるが、これは大した時間にはなら
ない。このことにより、この計算機が2次元、一
次元格子上の問題も高能率で処理し、さらに汎用
計算機としても十分な利用範囲をもつことがわか
る。
実施例 本発明の効果を確認するために、実施例を掲げ
る。本発明の目的が、最高級の高速素子を用い、
その上に、並列処理によつて、いままでにない高
速性能を達成するところにあることは勿論である
が、実施例としては、手近な市販品を用いて試作
したものをあげ、その上での効果について述べ
る。
採用機種例には16ビツト並列処理で、浮動小数
点演算命令をもつTOSBACシリーズ7のスーパ
ーミニコンおよびLSIミニコンをあげる。プロセ
ツサ構成はMU1台、SU16台、AU256台とする。
MUとして同シリーズ7/40を用い、SUおよび
AUとして同シリーズ7/10(micro7)を用い
る。なお、MUの主記憶装置はNMOS素子でサイ
クルタイムが0.36μs/2バイト、最大容量が
512Kバイトである。MUとSUの間はセレクタチ
ヤネルとDMA装置によるDMAバスで接続する。
転送速度は1Mバイト/秒である。各SUの主記憶
装置はCMOS48Kバイト、EPROM16Kバイト
で、サイクルタイムがそれぞれ1.4μs、1.1μ
s/2バイトである。CMOSメモリー分のうち
16Kバイトを、そのSUにつながる16台のAUとの
共通メモリーとして利用する。AUの主記憶装置
はCMOS16Kバイト、EPROM16Kバイトであ
る。AUのアドレス空間の残り32Kバイトのうち
半分がSUの共通メモリー用、あと半分がバツフ
アメモリーをアクセスするためのものである。
AUが行う単精度浮動小数点演算速度をあげてお
く。
LE(レジスター←(メモリー)) 15〜38.3μs STE(メモリ←(レジスター)) 11.25μs AE(レジスター←(レジスター)+(メモリー))
38.3〜58.1μs SE(レジスター←(レジスター)−(メモリー))
40.13〜60μs ME(レジスター←(レジスター)*(メモリ
ー)) 13.1〜85.9μs DE(レジスター←(レジスター)/(メモリ
ー)) 15.4〜80.6μs バツフアメモリーとして、256×8ビツトの
MOSスタテイツクRAM F3539(アクセスタイム
650μs)を2ケ1組にして4096組設ける。各バ
ツフアメモリーは256半語分の容量をもつ。バツ
フアメモリーの実装では、16組を4×4の形にし
て1ボード上にのせる。そして4×4ボードを1
セツトにして16セツト用意する。メモリーボード
に送られるべき信号およびバスラインを第7図に
示す。これは、k番目のセツトの最も左上にあた
るボード上の最も左上にあたるバツフアメモリー
(o、F)kに入りこむコントロール信号およびア
ドレス/データーバスラインを示している。第7
図で、左側からくるラインと下側からくるライン
は、各時点において、いづれかが選ばれて入る様
にコントロールされている。バツフアメモリーに
はコントロール信号として、チツプセレクト
〓〓〓〓〓
1、アウトプツトイネーブル、入出力選択
R/が入る。(1)はAUのポート1のビ
ツト4の出力であり、横に並ぶバツフアメモリー
をすべて同時に選択するための信号である。同じ
く(1)は縦に並ぶバツフアメモリーをすべ
て同時に選択するものである。
第8図には、AUプロセツサ間で、上記信号バ
スラインの競合を避ける論理およびSUの共通メ
モリーへのアクセス方法が示されている。ここに
は、SU−((k))と、それによつてコントロール
されるAU−((j、k))(j=0、1、………、
F)とAU−((k、i))(i=0、1、………、
F)に関係するものが描いてある。典型的な利用
例において順序動作を追うことで、コントロール
の方法を明らかにする。
(i) ((j、k))(j=0、1、………、F)は、
それぞれ、すべてのバツフアメモリー(i、
j)(i=0、1、………、F)に書き込みを
終ると、ポートビツト(1)で終了信号を
発する。そのとき各((j、k))は横方向へ行く
ラインを閉じる。すべての((j、k))(j=
0、1、………、F)が書き込みを終了すれ
ば、それが((k))の(1)に受けつけられ
る。
(ii) ((k))は(P1)をクリアーして(1)
から受け付け完了合図を発する。それは((
j、k))の(1)に入る。確認後、((j、
k))は(P1)をクリアする。((k、i))
(i=0、1、………、F)の(1)にも
同じ完了合図が入る。確認後、((k、i))は
(P1)をLOWにして縦方向のラインを開
く。
(iii) ((k、i))(i=0、1、………、F)は、
それぞれ、すべてのバツフアメモリー(i、
j)k(j=0、1、………、F)に書き込みを
終ると、(1)から終了信号を発する。そ
のとき各((k、i))は縦方向へ行くラインを閉
じる。すべての((k、i))(i=0、1、……
…、F)が書き込みを終了すれば、それが((k
))の(1)に受けつけられる。
(iv) ((k))は、(P1)をクリアーして、(
1)から受け付け完了合図を発する。それは
((k、i))の(1)に入る。確認後((k、
i))は(P1)をクリアする。((j、k))
(j=0、1、………、F)の(1)にも
同じ完了合図が入る。確認後、((j、k))は
(P1)を(ロー)にして横方向のラインを
開く。そして(i)に戻ることになる。あるいは、
データーをマスターの方へ転送するときには (v) ((k))が(P0)4〜0に数値‘ij’をおくこ
とで((j、k))のラインが共通メモリーの方へ
も開かれる。((j、k))は(0)に開かれ
た合図を受けとり、転送を開始する。それが終
れば(0)に終了合図を出し、((k))はそ
の合図を(0)に受け付ける。
参考計算例 以下では具体的な計算例について、計算時間を
評価することにより、本発明計算機の有効性を確
認する。ある計算法をこの機械のプロセツサAU
群によつて並列処理させたときの計算時間と、同
じ計算法を単独AUで処理させたときの計算時間
を比較する。前者を並列処理時間Pt、後者を単独
処理時間Stと名付ける。計算時間は、プログラム
をたどつて算出された理論値である。浮動小数点
演算等で、厳密に評価できない値もあるが、それ
らは計算時間巾の中央値で代表させることにし
た。また、単独AUの計算を想定するとき、仮想
的に主記憶は必要なだけの容量をもつていると考
える。比較の指標として 時間比 r=St/Pt あるいは、N2台(256台)のAUを用いた場合
に、そのことを考慮して 効率 Rp=r/N を用いる。rは並列計算によりr倍のスピードア
ツプになつたことを意味する。N2台のAUで計算
するのだから、最も理想的な場合にはr=N2
あるが通常はr≦N2であり、どれだけの効率か
をみるのにr/N=Rpがふさわしい指標である。
まず、具体的な利用法を説明するために記号と
言葉を用意しておく。諸データー(単精度浮動小
数点数)のバツフアメモリー内に占める位置が何
番目であるかを示すために記号(m=・)を用い
る。また、空間格子に対してバツフアメモリー板
をどう対応させているかという利用状態を示すた
めに、第4−a,b,c図に示された配置をそれ
〓〓〓〓〓
ぞれa配置、b配置、c配置と呼ぶ。いづれの配
置においても、各プロセツサから辺NM、OLに
平行な方向でみたときのNケのバツフアメモリー
の一次元配列を行メモリーと呼び、辺ON、LM
に平行な方向でみたときの一次元配列を列メモリ
ーと呼ぶ。
(1) 3次元熱伝導問題 領域G:o<x、y、z<1における熱伝導
問題 u=u(x、y、z、t)、t>0 αu/αt=△u(△=∂/∂x+∂/∂y
+∂/∂z)、 u(x、y、z、t)=g(x、y、z、t)、
(x、y、z)εΓ u(x、y、z、o)=f(x、y、z) の差分解法を考える。ここでuが未知関数で、
Γは領域Gの境界である。gおよびfは与えら
れた関数である。いま、領域Gを平面 x=xi=ih、y=yj=jh、z=zk=kh、 i、j、k=0、1、………、N+1((N
+1)h=1) で区切つてできる立方体の目でおおう、これら
の平面の交点(xi、yj、zk)が計算点(格子
点)になる。計算点上で定義される近似関数を
U=Uijk=U(xi、yj、zk)と表わす。
また、時間のきざみ巾をτとし、時刻t=nτ
における関数値を上つき添数τUnと表わす。
いま、熱伝導方程式を次のDouglas−Rachford
のインプリシツト差分スキームで置き換える。
(1+τ/h)Un+1*=〔1+τ/h(△
+△ )〕Un (1) (1+τ/h)Un+1**=Un+1*−τ/h2
Un (2) (1+τ/h)Un+1*=Un+1**−τ/h3
Un (3) これは、UnからUn+1を決めるための方程式
であるが途中で、値Un+1*、Un+1**を介在
させている。ここで△i(i=1、2、3)は
差分作用素で △1Uijk=Ui+1jk−2Uijk+Ui-1
2Uijk=Uij+1k−2Uijk+Uij-
3Uijk=Uijk+1−2Uijk+Uij
k−1 を意味する。このスキームは(1)→(2)→(3)の順に
解くことで1ステツプを完了するものである
が、その特徴は、(1)、(2)、(3)のいづれの方程式
も解くべき連立方程式の係数行列が完全にブロ
ツク化されている点である。詳しく言えば、方
程式(1)では各(j、k)毎に独立に、Nケの未
知数Un+1* (i=1、2、………、N)
に関
する方程式を解けばよい。方程式(2)では各
(k、i)毎に独立に、Nケの未知数Un+1**

(j=1、2、………、N)に関する方程式を
解けばよい。方程式(3)でも各(i、j)毎に独
立に、Nケの未知数Un+1 (k=1、2、

……、N)に関する方程式を解けばよい。そし
てそれらの方程式は、係数行列がいづれも簡単
な形の3重対角行列であり、いわゆるダブルス
イープ法によつてO(N)の計算量で解けるも
のである。
本発明計算機は、上のようなスキームによる
計算にはうつてつけである。実際、簡単のため
に、領域内部にあつて一方向に並ぶ格子点の数
Nと、2次元配列プロセツサの一方向に並ぶプ
ロセツサの台数Nが一致しているものとすると
き、上述の各番号対(j、k)連立方程式(1)を
解くことをプロセツサ((j−1、k−1))に担
わせる。そうすると、N2ケの独立した問題が
全く並列して処理される。方程式(2)(3)を解く場
合も同様である。具体的手順は次の様になる。
(i) まず、各格子点にc配置のバツフアメモリ
ーを対応させた状態で、Un(m=0)、 τ/h2Un(m=1)、τ/h3Un(m=2
) がストアされ、b配置のバツフアメモリーを
対応させた状態で τ/h3Un(m=3) がストアされているとする。
(ii) 各プロセツサはc配置の列メモリー(m=
0、1、2)からUn、 τ/h2Un、τ/h3Un 〓〓〓〓〓
の値を得る。そうすると方程式(1)の右辺が決
めるので、それを解く。そのとき得られるU
n+1*と τ/h2Un の値をa配置の行メモリー(m=4、5)に
ストアする。
(iii) a配置の列メモリーからUn+1*と τ/h2Un を得て、方程式(2)を解く。その解Un+1*
b配置の行メモリー(m=6)にストアす
る。
(iv) b配置のメモリーからUn+1**(m=
6)と τ/h3Un(m=3) を得て、方程式(3)を解く。そのとき得られる
n+1をb配置の列メモリー(m=6)とc
配置の行メモリー(m=0)にストアする。
そしてb配置の列メモリー(m=6)からU
n+1を読み、 τ/h2Un+1 を計算し、行メモリー(m=3)にストアす
る。また、b配置の列メモリー(m=6、
3)からUn+1、 τ/h2Un+1 を得て、c配置の行メモリー(m=0、1)
にストアする。c配置の行メモリー(m=
0)からUn+1を読み、 τ/h3Un+1 を求め、行メモリー(m=2)にストアす
る。
そして(i)に戻ることになる。
この並列処理時間は、具体的な計算時間を評
価するまでもなく、単独のAUで処理する場合
に比べて、丁度N2分の1になる。すなわち、
100%の効率を示す。実際に、単独AUで処理
する手順を、余分なものを加えることなく完全
に並列化できているからである。
(2) (1)と同じ問題を単純なイキスプリシツト
(explicit)差分解法によつて解くことを考え
る。すなわち、差分スキーム Un+1=Un+τ/h(△1Un+△2Un+△3Un) を用いるのである。この方法を本発明計算機で
実現するには次の様にすればよい。
(i) a配置のバツフアメモリー(m=0)にU
nがストアされているとする。
(ii) a配置の行メモリー(m=0)からUn
読み、△1Unを計算して行メモリー(m=
1)にストアする。
(iii) a配置の列メモリー(m=0)からUn
読み、△2Unを計算して列メモリー(m=
2)にストアする。
(iv) a配置の行メモリー(m=0)からUn
み、c配置の列メモリー(m=3)にストア
する。c配置の行メモリー(m=3)からU
nを読み△3Unを計算し、c配置の行メモリー
(m=4)にストアする。
(v) c配置の列メモリー(m=4)から△3Un
を読み、さらに、a配置の行メモリー(m=
0、1、2)からUn、△1Un、△2Unを読
み、Un+1を決める。それをa配置の行メモ
リー(m=0)にストアする。
そして(i)に戻る。
このとき Rp=(1+LE+STE/7LE+4ME+6AE+3SE+7STE)-1=0.96 となる。ただし、ここでLEやAEとあるのは、
浮動小数点演算1回あたりの計算時間を表わ
し、実施例の冒頭にあげた命令時間の中央値を
とつている。以下でもこのことは同様である。
これまでの2例は、3次元格子点上の問題を
扱つたもので、3次元格子点の一つ一つにバツ
フアメモリーを対応させる形の利用になり、本
発明計算機に直接的に適合した問題であつた。
それだけに極めて高い効率が確認された。
以下では、AU群を一次元配列とみなす方が
都合よい問題例を扱う。この場合、AU群を第
5図の左側枠外の縦列と下側枠外の横列の二様
に配置する。これらをそれぞれ、プロセツサの
A配置、B配置と呼ぶ。先に述べた様に、各プ
〓〓〓〓〓
ロセツサからi方向およびj方向に引いた直線
によつてできる網目の結節点のそれぞれのバツ
フアメモリーに対応させるわけにはいかないの
で、バツフアメモリーおよび私メモリーの中に
結節点に対応する専用メモリーを用意すると便
利である。その場合に各プロセツサはi方向の
1次元配列結節点N2ケとj方向の1次元配列
結節点N2ケ分の専用メモリーを確保する。そ
れらをあらためて行メモリー、列メモリーと名
付ける。また結節点毎に一定深さの容量を持た
せる。該データーが何番目の深さ位置を占める
かを示すのに、再び記号(m=・)を用いる。
(3) 2次元熱伝導問題 領域G:o<x、y<1における熱伝導問題 u=u(x、y、t)、t>0 ∂u/∂t=△u(△=∂/∂x+∂/∂y
) u(x、y、t)=g(x、y、t)、(x、
y)εΓ u(x、y、o)=f(x、y) の差分解法を考える。u、f、g、Γ等は(1)の
場合と同様の意味をもつ。計算の網目も前と同
様にして導入するが、前よりもずつと細かな網
の目で考えられる: x=xi=ih、y=yj=jh i、j=0、1、………、N2+1、(N2+1)
h=1 その他の記号についても前のものを流用す
る。
いま、ADI差分解法を採用する。すなわち、
熱伝導方程式を次の差方スキームで置き換える
ものである。
(1+τ/2h)Un+1*=(1+τ/2h
)Un(1) (1+τ/2h)Un+1=2Un+1*−(1+τ/2
) Un (2) ここでもUnから(1)式を解き、Un+1*を決
め、次に(2)式を解いて、Un+1を決めることで
1ステツプが完了する。さて、プロセツサAU
は二様の配置をとるものとし、A配置で下から
j番目のプロセツサは丁度直線y=yjの格子
点での計算を担い、またB配置で左からi番目
のプロセツサは直線x=xi上の格子点での計
算を担うものとする。従つて、一つのプロセツ
サは対になつた二つの方向の座標線上の格子点
での計算を担うことになる。(1)、(2)を解く手順
は次の様になる。
(i) まず (1+τ/2h)Un の値が各プロセツサーの列メモリー(m=
0)にストアされているとする。
(ii) 第6図の矢印の反対方向に沿つて列メモリ
ーを行メモリー(m=0)に移しかえる。例
えばプロセツサ((l、m))は自らの列メモリ
ーをNケづつに区分けし、その区分けされた
ものを一組づつバツフアメモリー(m、o)
l,………,(m、k)l,………,(m、N−
1)lにストアする。次にプロセツサ((k、l
))は、バツフアメモリー(o、k)l,……
…,(m、k)l,………,(N−1、k)lにス
トアされているものを行方向メモリーのブロ
ツクに編集しなおし、バツフアメモリー
(l、o)k,………,(l、N−1)kにストア
する。最後に、プロセツサ((j、k))はバツ
フアメモリー(o、j)k,………,(N−
1、j)kにあるデーターブロツクを集めて行
メモリーにストアする。
(iii) 方程式(1)を解き、解Un+1*を行メモリー
(m=1)にストアする。それから再び第6
図の様式に従つて行メモリー(m=1)を列
メモリー(m=1)に移しかえる。
(iv) 列メモリー(m=0、1)を読んで、方程
式(2)を解く。その解Un+1を列メモリー(m
=2)にストアする。そして (1+τ/2h)Un+1 を計算し、列メモリー(m=0)にストアす
る。
そして(i)に戻る。
この計算にかかる時間を評価すると Rp=(1+6(LE+STE)/10LE+8ME+8AE+4DE+SE+10STE)-1=0.86 となる。括弧の中の分子が並列処理のための転
送のために余分にかかる時間を示している。そ
〓〓〓〓〓
のために効率は0.86になるが、それでも十分高
い値を維持している。
(4) (3)と同じ問題を単純なイキスプリシツト差分
解法によつて解くことを考える。すなわち差分
スキーム Un+1=Un+τ/2h(△1Un+△2Un) を用いる。具体的手順は次の通りである。
(i) Unが行メモリー(m=0)にストアされ
ているとする。
(ii) 第6図の様式に従つて行メモリー(m=
0)を列メモリー(m=0)にうつす。
(iii) 列メモリー(m=0)を読んで、△2Un
計算し、結果を第6図の様式(逆向き)に従
つて行メモリー(m=1)にうつす。
(iv) 行メモリー(m=0、m=1)を読んで、
n+1を決め、それを行メモリー(m=0)
にストアする。
そして(i)に戻る。
この場合には Rp=(1+6(LE+STE)/4LE+3ME+4AE+2SE+4STE)-1=0.72 となる。
(5) N2×N2行列AとBの乗算 Aの各行ベクトルa|(p)は、順番に、A配置
プロセツサの行メモリーにストアされていて、
Bの各列ベクトルb|(q)は順番にB配置プロセ
ツサの列メモリーにストアされているとする。
乗算を次の様に行う。まずb|(o)をすべての
プロセツサに転送し、それを受けたプロセツサ
は一せいに内積a|(r)b|(o)を計算する。引き続
き、b|(1)、………、b|(N)に対して同様な操
作を繰り返していく。ただし、各行ベクトル、
列ベクトルの長さはN2語(=256語)だが、各
バツフアメモリーは1/2N2全語しかないので、
a|(p)b|(q)の計算を(a|(p))前半・b|(q)前半
+(a|(p))後半・(b|(q))後半の形で行う必要が
ある。具体的な手順は次の通りである。
(i) プロセツサ((l、m))は自らの保有してい
るベクトルb|前半をバツフアメモリー(m、
k)l(k=0、………、N−1)のすべてに
それぞれストアする。((k、l))(k=0、
1、………、N−1)は対応するバツフアメ
モリー(m、k)lの内容をそのままバツフア
メモリー(l、j)k(j=0、1、………、
N−1)のすべてにそれぞれストアする。
(ii) どのプロセツサ((j、k))も対応した
(l、j)kからb|前半を読みとり、内積計算
a|前半・b|前半を行う。
(iii) 同様にa|後半・b|後半も計算し、先に得

前半部分を加える。
以上のことをl、m=0、1、………、N−
1に対して繰り返えす。
この場合には Rp=(1+2(LE+STE)/LE+ME+AE+
STE)-1=0.64 になる。この場合には、各プロセツサの実質計
算部分(上式括弧内の分母の量に相当)が単純
で短かな計算であるため、並列処理のための余
分な転送時間(同分子の量)がかなりの割合を
占めてしまう。それでも計算スピードは0.64N2
倍にはなつている。
最後に考えた(3)、(4)、(5)のような場合には、本
出願人による昭和54年特許出願第92927号の「並
列計算機」の方が、効率は高いが、そのハード量
が大変であるから、実用性の意味では、本出願の
機械の方が優れている。
総じて、本発明計算機が従来の並列処理計算機
に比して極めて高い効率となることが判明した。
【図面の簡単な説明】
第1図は、本発明並列処理計算のMU−SU間
SU−AU間結合を示す構成図、第2図はAUとバ
ツフアメモリーのバス接続を示す図、第3図は2
次元配列プロセツサが3次元格子点をどのように
分担するかを示す図、第4図はプロセツサAU間
のデーター交換のためにバツフアメモリー板をど
のように利用するかを説明するための図、空間3
方向に対応させ、3様の利用形態をa,b,c図
で示す。第5図は1次元配列したときのAU列の
2様の配置とデーター交換時の仲介プロセツサを
示す図、第6図は1次元配列にしたAU列におい
てプロセツサ間のデーター転送様式を示す図、第
7図はバツフアメモリー板に入り込むコントロー
ル信号とバスラインを明示する回路図、第8図は
バツフアメモリー、共通メモリーのアクセス競合
を避ける論理を示す回路図 〓〓〓〓〓
MU……主プロツサ、SU……副プロセツサ、
AU……従プロセツサ、MM……主メモリー、CM
……共通メモリー。 〓〓〓〓〓

Claims (1)

  1. 【特許請求の範囲】 1 1台の主プロセツサを含むホストシステム
    部、および複数N2台の従プロセツサのN行N列
    2次元配列からなる階層的アーキテクチヤをとる
    並列処理計算機において、 (イ) 前記ホストシステム部には前記N2台の従プ
    ロセツサの各々がつながり (ロ) 前記従プロセツサの間では、番号k=0、
    1、………、N−1のそれぞれについて、第k
    行配列のN台の従プロセツサと第k列配列のN
    台の従プロセツサが、相互に相手側の任意のも
    のとバツフアーメモリー配列を介してつながる
    ことを特徴とする並列処理計算機。 2 1台の主プロセツサを含むホストシステム
    部、および複数N2台の従プロセツサの2次元配
    列からなる階層的アーキテクチヤをとる並列処理
    計算機において (イ) 前記ホストシステム部は、各々前記主プロセ
    ツサに直結された複数N台の副プロセツサを有
    し、 (ロ) 前記副プロセツサの各々には、行配置又は列
    配置におけるN台づつの前記従プロセツサが直
    結し、 (ハ) 前記N台の副プロセツサにそれぞれ対応する
    N行N列のバツフアーメモリーをN組設け、前
    記2次元配列された従プロセツサのうち第k行
    (k=0、1、………、N−2、N−1)中の
    j番目(j=0、1、………、N−1)のもの
    ((j、k))と、第k列中のi番目(i=0、
    1、………、N−1)のもの((k、i))との間
    に、前記N組のバツフアメモリー配列中の第k
    組における(i、j)要素に対応するバツフア
    メモリー(i、j)kを介在させたことにより、
    任意の従プロセツサ((j、k))及び((k、i))
    間の双方向又は一方向のデータ転送を可能にし
    たことを特徴とする並列処理計算機。
JP6804480A 1980-05-21 1980-05-21 Parallel processing computer Granted JPS56164464A (en)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP6804480A JPS56164464A (en) 1980-05-21 1980-05-21 Parallel processing computer
US06/579,545 US4514807A (en) 1980-05-21 1984-02-13 Parallel computer

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP6804480A JPS56164464A (en) 1980-05-21 1980-05-21 Parallel processing computer

Publications (2)

Publication Number Publication Date
JPS56164464A JPS56164464A (en) 1981-12-17
JPS6211757B2 true JPS6211757B2 (ja) 1987-03-14

Family

ID=13362394

Family Applications (1)

Application Number Title Priority Date Filing Date
JP6804480A Granted JPS56164464A (en) 1980-05-21 1980-05-21 Parallel processing computer

Country Status (2)

Country Link
US (1) US4514807A (ja)
JP (1) JPS56164464A (ja)

Families Citing this family (95)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS59501183A (ja) * 1982-06-25 1984-07-05 ヒユ−ズ・エアクラフト・カンパニ− 機能プログラマブル短絡プレーン
JPS59172064A (ja) * 1983-03-18 1984-09-28 Fujitsu Ltd ビデオ・システムにおける並列処理方式
US4734848A (en) * 1984-07-17 1988-03-29 Hitachi, Ltd. Combination reduction processing method and apparatus
US4837676A (en) * 1984-11-05 1989-06-06 Hughes Aircraft Company MIMD instruction flow computer architecture
US5081573A (en) * 1984-12-03 1992-01-14 Floating Point Systems, Inc. Parallel processing system
US5226171A (en) * 1984-12-03 1993-07-06 Cray Research, Inc. Parallel vector processing system for individual and broadcast distribution of operands and control information
US4855903A (en) * 1984-12-20 1989-08-08 State University Of New York Topologically-distributed-memory multiprocessor computer
US4816993A (en) * 1984-12-24 1989-03-28 Hitachi, Ltd. Parallel processing computer including interconnected operation units
US5113523A (en) * 1985-05-06 1992-05-12 Ncube Corporation High performance computer system
US5729757A (en) * 1985-05-20 1998-03-17 Shekels; Howard D. Super-computer system architectures using status memory to alter program
US4720780A (en) * 1985-09-17 1988-01-19 The Johns Hopkins University Memory-linked wavefront array processor
US5003508A (en) * 1985-10-31 1991-03-26 Floating Point Systems, Inc. Linear nearest neighbor interconnect bus system
US4847755A (en) * 1985-10-31 1989-07-11 Mcc Development, Ltd. Parallel processing method and apparatus for increasing processing throughout by parallel processing low level instructions having natural concurrencies
US5021945A (en) * 1985-10-31 1991-06-04 Mcc Development, Ltd. Parallel processor system for processing natural concurrencies and method therefor
US4814980A (en) * 1986-04-01 1989-03-21 California Institute Of Technology Concurrent hypercube system with improved message passing
US4809169A (en) * 1986-04-23 1989-02-28 Advanced Micro Devices, Inc. Parallel, multiple coprocessor computer architecture having plural execution modes
US4985832A (en) * 1986-09-18 1991-01-15 Digital Equipment Corporation SIMD array processing system with routing networks having plurality of switching stages to transfer messages among processors
US6108763A (en) * 1986-09-18 2000-08-22 Grondalski; Robert S. Simultaneous parity generating/reading circuit for massively parallel processing systems
US5146606A (en) * 1986-09-18 1992-09-08 Digital Equipment Corporation Systems for interconnecting and configuring plurality of memory elements by control of mode signals
US5230079A (en) * 1986-09-18 1993-07-20 Digital Equipment Corporation Massively parallel array processing system with processors selectively accessing memory module locations using address in microword or in address register
US4933836A (en) * 1986-10-29 1990-06-12 United Technologies Corporation n-Dimensional modular multiprocessor lattice architecture
DE3889550T2 (de) * 1987-01-12 1994-09-01 Fujitsu Ltd Datenübertragungspufferschaltungen für Datenaustausch.
US4773037A (en) * 1987-02-20 1988-09-20 Gte Communication Systems Corporation Increased bandwidth for multi-processor access of a common resource
US5091845A (en) * 1987-02-24 1992-02-25 Digital Equipment Corporation System for controlling the storage of information in a cache memory
US5226170A (en) * 1987-02-24 1993-07-06 Digital Equipment Corporation Interface between processor and special instruction processor in digital data processing system
US5058001A (en) * 1987-03-05 1991-10-15 International Business Machines Corporation Two-dimensional array of processing elements for emulating a multi-dimensional network
GB8717689D0 (en) * 1987-07-25 1987-09-03 British Petroleum Co Plc Computers
US4942517A (en) * 1987-10-08 1990-07-17 Eastman Kodak Company Enhanced input/output architecture for toroidally-connected distributed-memory parallel computers
US5339396A (en) * 1987-11-18 1994-08-16 Hitachi, Ltd. Interconnection network and crossbar switch for the same
US5159686A (en) * 1988-02-29 1992-10-27 Convex Computer Corporation Multi-processor computer system having process-independent communication register addressing
US5050070A (en) * 1988-02-29 1991-09-17 Convex Computer Corporation Multi-processor computer system having self-allocating processors
US5179705A (en) * 1988-03-23 1993-01-12 Dupont Pixel Systems, Ltd. Asynchronous arbiter state machine for arbitrating between operating devices requesting access to a shared resource
US5056000A (en) * 1988-06-21 1991-10-08 International Parallel Machines, Inc. Synchronized parallel processing with shared memory
US5070446A (en) * 1988-11-13 1991-12-03 Thinking Machines Corporation Method of simulating a hexagonal array of computer processors and/or memories
DE68927474T2 (de) * 1988-12-29 1997-05-22 Sharp Kk Neuro-Rechner
US5168572A (en) * 1989-03-10 1992-12-01 The Boeing Company System for dynamic selection of globally-determined optimal data path
WO1991004528A1 (en) * 1989-09-15 1991-04-04 Intelligent Computer Engineering, Inc. Cell processor and memory-managed computer system using same
EP0424618A3 (en) * 1989-10-24 1992-11-19 International Business Machines Corporation Input/output system
US5301340A (en) * 1990-10-31 1994-04-05 International Business Machines Corporation IC chips including ALUs and identical register files whereby a number of ALUs directly and concurrently write results to every register file per cycle
DE4105193A1 (de) * 1991-02-20 1992-08-27 Bodenseewerk Geraetetech Datenschnittstelle zur ein- und ausgabe von daten bei parallelrechnern
US5257266A (en) * 1991-02-27 1993-10-26 General Dynamics Corporation, Space Systems Division Computer and communications systems employing universal direct spherics processing architectures
EP0562251A2 (en) * 1992-03-24 1993-09-29 Universities Research Association, Inc. Parallel data transfer network controlled by a dynamically reconfigurable serial network
JP2572522B2 (ja) * 1992-05-12 1997-01-16 インターナショナル・ビジネス・マシーンズ・コーポレイション コンピューティング装置
US5331315A (en) * 1992-06-12 1994-07-19 Universities Research Association, Inc. Switch for serial or parallel communication networks
US5450603A (en) * 1992-12-18 1995-09-12 Xerox Corporation SIMD architecture with transfer register or value source circuitry connected to bus
US5655131A (en) * 1992-12-18 1997-08-05 Xerox Corporation SIMD architecture for connection to host processor's bus
US5513364A (en) * 1993-03-09 1996-04-30 Matsushita Electric Industrial Co., Ltd. Data transfer device and multiprocessor system
JP2938711B2 (ja) * 1993-05-10 1999-08-25 松下電器産業株式会社 並列計算機
US6145071A (en) * 1994-03-03 2000-11-07 The George Washington University Multi-layer multi-processor information conveyor with periodic transferring of processors' states for on-the-fly transformation of continuous information flows and operating method therefor
US6606704B1 (en) * 1999-08-31 2003-08-12 Intel Corporation Parallel multithreaded processor with plural microengines executing multiple threads each microengine having loadable microcode
US6983350B1 (en) 1999-08-31 2006-01-03 Intel Corporation SDRAM controller for parallel processor architecture
US6668317B1 (en) 1999-08-31 2003-12-23 Intel Corporation Microengine for parallel processor architecture
US6427196B1 (en) * 1999-08-31 2002-07-30 Intel Corporation SRAM controller for parallel processor architecture including address and command queue and arbiter
WO2001016702A1 (en) 1999-09-01 2001-03-08 Intel Corporation Register set used in multithreaded parallel processor architecture
US7191309B1 (en) 1999-09-01 2007-03-13 Intel Corporation Double shift instruction for micro engine used in multithreaded parallel processor architecture
HK1046049A1 (zh) 1999-09-01 2002-12-20 Intel Corporation 用於多线程处理器的分支指令
US6532509B1 (en) 1999-12-22 2003-03-11 Intel Corporation Arbitrating command requests in a parallel multi-threaded processing system
US6694380B1 (en) 1999-12-27 2004-02-17 Intel Corporation Mapping requests from a processing unit that uses memory-mapped input-output space
US6631430B1 (en) * 1999-12-28 2003-10-07 Intel Corporation Optimizations to receive packet status from fifo bus
US6307789B1 (en) * 1999-12-28 2001-10-23 Intel Corporation Scratchpad memory
US6625654B1 (en) * 1999-12-28 2003-09-23 Intel Corporation Thread signaling in multi-threaded network processor
US7620702B1 (en) 1999-12-28 2009-11-17 Intel Corporation Providing real-time control data for a network processor
US6661794B1 (en) * 1999-12-29 2003-12-09 Intel Corporation Method and apparatus for gigabit packet assignment for multithreaded packet processing
US7480706B1 (en) 1999-12-30 2009-01-20 Intel Corporation Multi-threaded round-robin receive for fast network port
US6976095B1 (en) 1999-12-30 2005-12-13 Intel Corporation Port blocking technique for maintaining receive packet ordering for a multiple ethernet port switch
US6952824B1 (en) 1999-12-30 2005-10-04 Intel Corporation Multi-threaded sequenced receive for fast network port stream of packets
US6584522B1 (en) * 1999-12-30 2003-06-24 Intel Corporation Communication between processors
US6631462B1 (en) * 2000-01-05 2003-10-07 Intel Corporation Memory shared between processing threads
US7681018B2 (en) * 2000-08-31 2010-03-16 Intel Corporation Method and apparatus for providing large register address space while maximizing cycletime performance for a multi-threaded register file set
US20020053017A1 (en) * 2000-09-01 2002-05-02 Adiletta Matthew J. Register instructions for a multithreaded processor
US7020871B2 (en) * 2000-12-21 2006-03-28 Intel Corporation Breakpoint method for parallel hardware threads in multithreaded processor
US6868476B2 (en) * 2001-08-27 2005-03-15 Intel Corporation Software controlled content addressable memory in a general purpose execution datapath
US7225281B2 (en) 2001-08-27 2007-05-29 Intel Corporation Multiprocessor infrastructure for providing flexible bandwidth allocation via multiple instantiations of separate data buses, control buses and support mechanisms
US7487505B2 (en) 2001-08-27 2009-02-03 Intel Corporation Multithreaded microprocessor with register allocation based on number of active threads
US7216204B2 (en) * 2001-08-27 2007-05-08 Intel Corporation Mechanism for providing early coherency detection to enable high performance memory updates in a latency sensitive multithreaded environment
US7126952B2 (en) * 2001-09-28 2006-10-24 Intel Corporation Multiprotocol decapsulation/encapsulation control structure and packet protocol conversion method
US7158964B2 (en) * 2001-12-12 2007-01-02 Intel Corporation Queue management
US7107413B2 (en) * 2001-12-17 2006-09-12 Intel Corporation Write queue descriptor count instruction for high speed queuing
US7269179B2 (en) * 2001-12-18 2007-09-11 Intel Corporation Control mechanisms for enqueue and dequeue operations in a pipelined network processor
US7895239B2 (en) 2002-01-04 2011-02-22 Intel Corporation Queue arrays in network devices
US7181573B2 (en) * 2002-01-07 2007-02-20 Intel Corporation Queue array caching in network devices
US6934951B2 (en) 2002-01-17 2005-08-23 Intel Corporation Parallel processor with functional pipeline providing programming engines by supporting multiple contexts and critical section
US7181594B2 (en) * 2002-01-25 2007-02-20 Intel Corporation Context pipelines
US7610451B2 (en) 2002-01-25 2009-10-27 Intel Corporation Data transfer mechanism using unidirectional pull bus and push bus
US7149226B2 (en) * 2002-02-01 2006-12-12 Intel Corporation Processing data packets
US7437724B2 (en) * 2002-04-03 2008-10-14 Intel Corporation Registers for data transfers
US7471688B2 (en) * 2002-06-18 2008-12-30 Intel Corporation Scheduling system for transmission of cells to ATM virtual circuits and DSL ports
US7337275B2 (en) 2002-08-13 2008-02-26 Intel Corporation Free list and ring data structure management
US7352769B2 (en) 2002-09-12 2008-04-01 Intel Corporation Multiple calendar schedule reservation structure and method
US7433307B2 (en) * 2002-11-05 2008-10-07 Intel Corporation Flow control in a network environment
US6941438B2 (en) 2003-01-10 2005-09-06 Intel Corporation Memory interleaving
US7443836B2 (en) 2003-06-16 2008-10-28 Intel Corporation Processing a data packet
US7213099B2 (en) * 2003-12-30 2007-05-01 Intel Corporation Method and apparatus utilizing non-uniformly distributed DRAM configurations and to detect in-range memory address matches
JP5138582B2 (ja) 2005-04-28 2013-02-06 チバ ホールディング インコーポレーテッド 電子発光装置
US11054998B1 (en) * 2019-12-12 2021-07-06 Facebook, Inc. High bandwidth memory system with distributed request broadcasting masters

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4065808A (en) * 1975-01-25 1977-12-27 U.S. Philips Corporation Network computer system
IT1055645B (it) * 1975-10-24 1982-01-11 Elsag Multielaboratore elettronico associativo per elabobazioni multiple contemporanee di dati in tempo reale
JPS54140437A (en) * 1978-04-24 1979-10-31 Toshiba Corp Parallel process system
US4435758A (en) * 1980-03-10 1984-03-06 International Business Machines Corporation Method for conditional branch execution in SIMD vector processors
US4412286A (en) * 1980-09-25 1983-10-25 Dowd Brendan O Tightly coupled multiple instruction multiple data computer system

Also Published As

Publication number Publication date
US4514807A (en) 1985-04-30
JPS56164464A (en) 1981-12-17

Similar Documents

Publication Publication Date Title
JPS6211757B2 (ja)
US4809202A (en) Method and apparatus for simulating systems described by partial differential equations
JP3251421B2 (ja) 半導体集積回路
Moldovan On the analysis and synthesis of VLSI algorithms
US5070446A (en) Method of simulating a hexagonal array of computer processors and/or memories
JPH03188650A (ja) 配線経路処理方法、配線経路処理システム、及び半導体集積回路
JPS62264357A (ja) 並列プロセツサ・アレイにおけるプロセツサ付加のシミユレ−シヨン方法
US5050069A (en) Method and apparatus for simulating m-dimension connection networks in and n-dimension network where m is less than n
US5408677A (en) Vector parallel computer
Trahan et al. On the power of segmenting and fusing buses
Boo et al. VLSI implementation of an edge detector based on Sobel operator
US5842035A (en) Parallel computer utilizing less memory by having first and second memory areas
EP0201174B1 (en) Method and apparatus for addressing a memory
Mackenzie A separation between reconfigurable mesh models
KR101154286B1 (ko) 동시 다중 접근이 가능한 메모리 제어장치
JPS6155706B2 (ja)
JP2851804B2 (ja) 2次元直交変換装置
Li et al. Parallel DSP algorithms on TurboNet: an experimental system with hybrid message‐passing/shared‐memory architecture
Denning The Science of Computing: Multigrids and hypercubes
JPH04167191A (ja) 分散メモリ型並列計算機における高速データ転送方式
Ja’Ja’ et al. New VLSI architectures with reduced hardware
JPS58178532A (ja) 配線径路発見装置
Hamamura et al. Sahara: Massively parallel dedicated hardware for cycle‐based logic simulations
Vajtersic A direct block-five-diagonal system solver for the VLSI parallel model
Vajteršic Parallel multigrid algorithms