JPH0644196A - 並列計算機用マイクロプロセッサ - Google Patents

並列計算機用マイクロプロセッサ

Info

Publication number
JPH0644196A
JPH0644196A JP4198746A JP19874692A JPH0644196A JP H0644196 A JPH0644196 A JP H0644196A JP 4198746 A JP4198746 A JP 4198746A JP 19874692 A JP19874692 A JP 19874692A JP H0644196 A JPH0644196 A JP H0644196A
Authority
JP
Japan
Prior art keywords
vector
fifo
data
memory
message
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
JP4198746A
Other languages
English (en)
Inventor
Noboru Tanabe
昇 田邊
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.)
Toshiba Corp
Original Assignee
Toshiba 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 Toshiba Corp filed Critical Toshiba Corp
Priority to JP4198746A priority Critical patent/JPH0644196A/ja
Publication of JPH0644196A publication Critical patent/JPH0644196A/ja
Pending legal-status Critical Current

Links

Landscapes

  • Executing Machine-Instructions (AREA)
  • Multi Processors (AREA)
  • Complex Calculations (AREA)

Abstract

(57)【要約】 【目的】 ピーク性能と実行性能との差が少なく、マル
チユーザによるプロセッサ内での並行処理ができ、低コ
スト・低消費電力を両立し得るシステムを実現すること
を目的とする。 【構成】 複数の先入れ先出しメモリ(FIFO)と、
演算に必要な全ての入力オペランドに対応するFIFO
またはスカラレジスタにデータが存在する際に演算が実
行される1以上のベクトル演算器と、他のプロセシング
エレメントとの通信を行うルーティング回路と、外部メ
モリアクセスポートとの間をLSI内で接続する可変接
続部句を具備して構成される。 【効果】 演算性能を向上させることができる。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は超並列型スーパーコンピ
ュータなどに用いることを想定し、演算性能を強化する
ためにベクトル演算器を内蔵した並列計算機用マイクロ
プロセッサに関する。
【0002】
【従来の技術】ベクトル型スーパーコンピュータはこれ
までデバイスの速度的向上を元にクロック周波数を上げ
ることにより性能向上をはかってきたが、CRAY−3
のように1GHzの周波数で動作するシステムが予定を
大幅に遅れる長い開発期間を要して実現されているのが
現状であり、このアプローチによる速度向上に対する限
界が見えてきている。
【0003】一方、スーパーコンピュータの性能に対す
るユーザーからの要求は現時点でも1テラFLOPSと
いう性能が様々な応用について要求されている。しか
し、複数の並列浮動小数演算パイプラインを備えたプロ
セッサを数台から十数台集中型共有メモリにより密結合
した従来型のベクトル型スーパーコンピュータは現時点
で30ギガFLOPS程度の性能しか達成できておら
ず、1テラFLOPSにはほど遠い。この方式では集中
型の共有メモリがプロセッサの台数を制約しているの
で、デバイスの速度向上だけでなく並列処理による高速
化にも限界がある。
【0004】このため近年、Thinking Mac
hine社のCM−5やIntel社のParagon
XP/Sなどに代表される超並列型スーパーコンピュ
ータがテラFLOPSを実現するためのアプローチとし
て注目されている。これらはi860や専用のチップを
用いたベクトル演算器を有するため単体のプロセッサの
演算能力は100メガFLOPS程度と高いので一万台
程度の構成にすればピーク性能でテラFLOPSを実現
できる。
【0005】しかしこれらの商用超並列型スーパーコン
ピュータはプロセッサ間通信部と演算部が分離していて
プロセッサ間通信には必ず一回メモリを経由し、なおか
つプロセッサ間通信を行うためにはOSなどの通信用関
数を実行する必要があるので通信オーバーヘッドが大き
い。このためピーク性能と実効性能の間に差ができやす
く、あまり頻繁に通信するような応用には向かない。
【0006】またメモリポートへの負担が大きいために
超並列計算機のように台数の多いプロセッサでは、大容
量の高速メモリを搭載してコストや消費電力を上昇させ
たり、メモリバンド幅を十分に取れずに実効性能の低下
をまねいている。
【0007】一方、並列計算機用に開発されたマイクロ
プロセッサであるトランスピューターを用いた商用超並
列マシンも存在する。トランスピュータはスカラ演算器
をコアに比較的低オーバーヘッドな通信リンクを1チッ
プ化しているので、前述の弊害が比較的少ないシステム
を構築できる。
【0008】しかしトランスピュータでも通信の際にメ
モリを必ず経由する上、プロセスに受信データが渡りそ
れを使った演算を開始するにはソフトウェアオーバーヘ
ッドは皆無ではないので、上記のi860などのベクト
ル演算器を使った方式例とは程度の差こそあれ問題は残
ったままになっている。
【0009】またトランスピュータはスカラの浮動小数
演算器しか持たないので、浮動小数演算能力がi860
などのベクトル演算器を持つマイクロプロセッサに比べ
ると、現在出荷が予告されている開発中のトランスピュ
ータであるT9000でも25MFLOPSであり、i
860などのベクトル型演算器の数分の一程度に過ぎな
い。
【0010】このためトランスピュータだけで1テラF
LOPSのピーク性能を実現するには数万台もの大規模
な構成にせざるを得ないためシステムサイズや消費電
力、コストの上で問題がある。
【0011】
【発明が解決しようとする課題】以上のように、従来の
集中共有メモリ型低並列ベクトル型スーパーコンピュー
タにはクロック周波数向上の限界と共有メモリアクセス
ボトルネックによる並列度向上に、越え難い課題があり
1テラFLOPSを実現するめどが立たない。
【0012】従来の超並列型スーパーコンピュータで
は、通信ソフトウェアオーバーヘッド、マルチユーザ時
のプロテクション処理に伴うOSのオーバーヘッド、結
合網遅延時間などによる演算器の空回り、ベクトル演算
器を用いた場合はメモリバンド幅の不足、これを補うた
めの高速SRAM使用によるコスト上昇と消費電力上
昇、スカラ演算器を用いた場合は演算能力自体の不足や
これによる使用プロセッサ数の増大などの課題が山積す
る。
【0013】このため、プロセッサ数が一万台程度の規
模でピーク性能で1テラFLOPS程度の超並列マシン
を実現する際、ピーク性能と実効性能の差が少なく、マ
ルチユーザによるプロセッサ内での並行処理ができ、低
コスト・低消費電力を両立するシステムを実現すること
は困難であった。
【0014】この発明はこのような従来の課題を解決す
るためになされたもので、その目的とするところは、ピ
ーク性能と実行性能との差が少なく、マルチユーザによ
るプロセッサ内での並行処理ができ、かつ、低コスト・
低消費電力を両立し得るシステムを実現する並列計算機
用マイクロプロセッサを提供することにある。
【0015】
【課題を解決するための手段】上記目的を達成するた
め、本発明は、複数の先入れ先出しメモリ(FIFO)
と、演算に必要な全ての入力オペランドに対応するFI
FOまたはスカラレジスタにデータが存在する際に演算
が実行される1以上のベクトル演算器と、他のプロセシ
ングエレメントとの通信を行うルーティング回路と、外
部メモリアクセスポートと、前記ベクトル演算器とFI
FOとルーティング回路と外部メモリアクセスポートと
の間をLSI内で接続する可変接続部を具備することが
特徴である。
【0016】
【作用】上述の如く構成された本発明では外部メモリア
クセスポートからFIFOにロードされたベクトルデー
タは可変接続部を介してベクトル演算器の入力ポートに
導かれ、全ベクトルがFIFOにロードされ終わる前で
も、ベクトル演算器の入力ポートに接続された全てのF
IFOに1データ以上ロードされるとそれらのFIFO
のデータ存在信号がベクトル演算器の制御部により検出
され、演算が開始される。
【0017】演算結果は可変接続部を介してFIFOに
格納され、可変接続部を介して外部メモリポートへ書き
出されたり、再びベクトル演算器にチェイニングされた
り、ルーティング回路に送られ他のプロセシングエレメ
ントとの通信を行うことができる。ベクトル演算器とF
IFOとルーティング回路と外部メモリアクセスポート
の間の接続がLSI内部で行われるので、LSI外部で
行うより配線ネックを回避しやすい。
【0018】またFIFO経由で複数のベクトル演算器
がチェイニングされると演算回数あたりの外部メモリア
クセス回数が減少するので、メモリポートへの負担を軽
くすることが可能になる。
【0019】同様に一旦メモリに演算結果を書いてか
ら、再びこれを読みだしてルーティング回路へ送り他の
プロセシングエレメントに送信するとメモリアクセスが
頻繁に起こるのに対して、FIFO経由でベクトル演算
器とルーティング回路をチェイニングすると、外部メモ
リアクセスを削減することができる。
【0020】
【実施例】以下、本発明の実施例を図面に基づいて説明
する。図1,図2は本発明の一実施例にかかる並列計算
機用マイクロプロセッサの構成を示すブロック図であ
る。
【0021】図示のように、このマイクロプロセッサ
は、複数の先入れ先出しメモリ(FIFO)と、演算に
必要な全ての入力オペランドに対応するFIFOまたは
スカラレジスタにデータが存在する時に演算が実行され
るベクトル演算器7,8と、他のプロセシングエレメン
トとの通信を行うルーティング制御部1と、上記ベクト
ル演算器7,8とFIFOとルーティング制御部1との
間をLSI内で接続する可変接続部5を具備している。
【0022】また、所定のFIFOにデータが入力され
たら送信先プロセシングエレメント宛の所定のヘッダー
情報を付けるメッセージパケット生成部3と、転送先の
プロセシングエレメントのどの回路ブロックへのデータ
であるか指定するヘッダー情報を付けるとともに、受信
したメッセージのヘッダー情報からメッセージを格納す
べき回路ブロックを選択するメッセージヘッダー解析部
2と、演算に必要な全ての入力オペランドに対応するF
IFOにデータの存在をもとに所定の条件が成立した場
合にベクトル演算器の演算種類とベクトル演算器7,8
の入力および出力に接続するFIFOまたはスカラレジ
スタを切り換える命令切り換え制御部19と、プログラ
ム上で使用されるFIFOの番号を物理的なFIFOの
番号に変換するFIFO番号変換部6と、連続アクセス
時に高速なDRAMを制御可能なRambusI/F1
3と、ベクトルのロードストアを適切なポートに振り分
けるメモリポート選択部12と、適切なブロックにベク
トルデータを区切るアクセスブロック化アドレス生成部
10とを具備している。
【0023】また、これらの他にベクトル演算器7,8
からアクセス可能なスカラレジスタ9や、ベクトル演算
器7,8への命令列を外部メモリからLSI内部に取り
込んでおく命令バッファ15や、命令バッファの所有プ
ロセス番号を設定する命令バッファアクセス権限設定部
17や、命令をフェッチし解読してベクトル演算器7,
8等を制御するベクトル演算制御部18や、メモリアク
セスがスムースに行えるようにするデータバッファ11
や、ベクトル演算器7,8を用いることが不適当である
スカラ処理を実行し、本プロセッサの管理制御用に用い
られるCPU21と接続するためのCPUインターフェ
ース16およびCPU21から発行される本プロセッサ
へのコマンドをやりとりするコマンド制御部20などを
具備する。
【0024】このように構成された本実施例では、ベク
トル演算器7,8と、ベクトルレジスタの代わりに用い
られるFIFOおよびスカラレジスタ9と、ルーティン
グ制御部1と、外部メモリポートが可変接続部5を中心
としてLSI内部で接続されている。このようにLSI
内部でこれらの回路ブロックが接続されるので、これら
をチップ間にまたがって接続する場合に比べてLSIパ
ッケージのピンネックを起こす心配がなく、より多くの
ビット幅でより多くのブロック間を密に接続することが
できる。
【0025】例えば、もし可変接続部の各ポートが倍精
度の浮動小数を1サイクルで転送できるように64ビッ
トのデータ幅を持たせるとすると、可変接続部5を単独
のLSIとして実現し他の回路ブロックを含むLSI群
とチップ間で接続するならば、ベクトル演算器7,8を
1個で3ポート、スカラレジスタへのロード1ストア1
の2ポート、FIFOバンク数を3バンクで6ポート、
ルータとの接続を送信1受信1の2ポート外部メモリか
らのデータパスとしてロード1ストア1の2ポートポー
ト数を15ポート程度に絞ったとしても、可変接続部5
に必要なピン数が1000本を越えてしまい実装が困難
になる。より高い性能を確保するためには上記のポート
数では十分とは言えない。
【0026】しかしLSI内部での接続を行えばこのよ
うな問題は回避できる。つまり現在のLSIの集積度の
現状および将来のさらなる進歩の見通しからみて、ベク
トル演算器7,8と、十数本のFIFOおよびスカラレ
ジスタ9と、ルーティング制御部1と、外部メモリポー
トを可変接続部5を介してLSI内部で接続したものを
1チップで実現することは不可能ではない。
【0027】この実施例で用いられるFIFOには、C
RAY−1などに代表される従来のベクトル型スーパー
コンピュータにおけるベクトルレジスタの代わりの働き
をさせる。従来のベクトルレジスタは、基本的には1個
のベクトルレジスタの語長分のベクトルデータをベクト
ルレジスタにロードし終わってから、それをオペランド
として用いるベクトル演算が開始される。一方、本実施
例で用いられるFIFOは可変接続部5を介して外部メ
モリポートと接続されており、これらから供給されるベ
クトルデータがFIFOに存在するかというデータ存在
信号がベクトル演算制御部18に供給されていて、ベク
トル演算の全入力オペランドに対応するFIFOにデー
タが存在するときはFIFOが一杯にならなくてもベク
トル演算が開始される。このためベクトル演算の立上が
り時間は従来型より少なくて済む。
【0028】本実施例のプロセッサではベクトル演算器
7,8を2個具備し、FIFOおよびベクトル演算器
7,8間は可変接続部5を介してチップ内で十分なデー
タ幅で接続されているので、ベクトル演算器間のFIF
Oを介した効率的なチェイニングが可能である。
【0029】例えば一方のベクトル演算器7がベクトル
乗算器、他方のベクトル演算器8がベクトル加算器とい
う構成である場合、ベクトルAおよびベクトルBの要素
ごとの積をベクトルCと要素ごとに加算し、結果をベク
トルDとする一連の演算を行うとすると、チェイニング
しなければベクトルAとベクトルBの要素ごとの積をテ
ンポラリのベクトルTとして一旦メモリに格納し、改め
てベクトルTをメモリからロードしてベクトルCと加算
して結果ベクトルDをメモリにストアすることになる。
つまり4回のベクトルロードと2回のベクトルストアと
いうメモリアクセスをしなければならないので1チップ
化されたプロセッサにとってはメモリポートへの負担が
大きすぎるため、十分な性能が得られない。
【0030】一方、上記の処理をチェイニングにより実
行すれば例えばベクトルAをFIFO00、ベクトルB
をFIFO01、ベクトルTをFIFO02、ベクトル
CをFIFO03、ベクトルDをFIFO04に割り当
てるとベクトル乗算器からの結果ベクトルTはFIFO
02を経由してベクトル加算器に供給されるので、ベク
トルTに関するメモリアクセスがベクトルロード1回
分、ベクトルストア1回分が省略されることになる。こ
のようにして、1チップ化されたプロセッサにとって貴
重なメモリバンド幅を有効に活用することが可能にな
る。また片方の演算器の結果をもう片方の演算器が使用
する上記の例のような処理でもベクトル長が十分に長け
ればチェイニングにより両方の演算器はほぼ並列に稼働
させることができる。
【0031】さらに本実施例におけるプロセッサでは可
変接続部5を介してルーティング制御部1ともFIFO
が接続可能となっているので、FIFOへのデータの入
出力を行うことができるのは外部メモリポートやベクト
ル演算器7,8ばかりでなく、別のプロセッサへのFI
FOに自分のプロセッサのFIFOからデータを転送す
ることによりチップ間にまたがるチェイニングが可能に
なる。このため本プロセッサを複数並べて接続した並列
計算機上ではプロセッサ間通信を行う際にメモリを経由
させずに行うことが可能になるので、単なるチップ内で
のチェイニングだけの場合よりも、さらにメモリアクセ
スを省略させることができる。
【0032】このように本実施例では従来ベクトル演算
器を搭載したプロセシングエレメントによる並列計算機
におけるメモリアクセスを、一連の処理開始および終了
に伴うメモリ上のデータのロードストアのような本質的
に必要な外部メモリアクセスと、ベクトル演算器間のベ
クトルデータ受け渡しに伴うチップ内通信と、プロセッ
サ間通信の3つのデータ転送に分散させ、外部メモリポ
ートへの一局集中を防止することにより演算器の効率的
な稼働を実現している。
【0033】また、可変接続部5とルーティング制御部
1との間にはメッセージパケット生成部3が設けられて
いる。図3にメッセージパケット生成部3の一実施例の
ブロック図を示す。メッセージパケット生成部3には本
実施例では4個のチャネルを持っており、送り元プロセ
ッサ番号レジスタはこれらにより共有される。
【0034】各チャネルには送り先プロセッサ番号レジ
スタ24と、プロセス番号レジスタ26と、送り先仮想
FIFO番号レジスタ27と、送り元仮想FIFO番号
レジスタ28と、残りベクトル長カウンタ29と、メッ
セージ長カウンタ30と、デフォルトメッセージ長レジ
スタ31と、比較器61と、メッセージバッファ32
と、データ読みだし制御部33と、送信制御部23が具
備される。また、レジスタ26,27,28でアクセス
権限情報設定部4bが構成される。
【0035】図4にメッセージの構成の一実施例を示
す。これらのヘッダー情報は各チャネルのレジスタやカ
ウンタなどから生成される。これらのレジスタ類にはベ
クトル送信命令の実行開始時にベクトル演算制御部18
によって命令内で指定された値が設定される。
【0036】メッセージパケット生成部3は送り元仮想
FIFO番号レジスタ28で指定されるFIFOにデー
タが入力されたら送信先プロセシングエレメント宛の所
定のヘッダー情報を付ける。上記FIFOからデータを
メッセージバッファ32に取り込むたびに残りベクトル
長カウンタ29はデクリメントされ、メッセージ長カウ
ンタ30はインクリメントされる。デフォルトメッセー
ジ長レジスタ31に設定されている長さのデータを上記
FIFOからメッセージバッファ32に取り込むか、ま
たは残りベクトル長カウンタが0になるか、メッセージ
バッファ32が一杯になった場合、送信制御を介して生
成されたメッセージをルーティング制御部1に送信す
る。
【0037】メッセージパケット生成部3は転送先のプ
ロセシングエレメントのどの回路ブロックへのデータで
あるか指定するヘッダー情報を付けるメッセージ生成部
を具備することもできるので、本実施例では転送先で何
番のFIFOに受信データを格納すれば良いかというこ
とをメッセージの中で指定できるようになっている。こ
のようにして隣接しないプロセッサへの転送に必要なヘ
ッダー情報がハードウェアにより適宜ベクトルデータに
付加されるので、ベクトルデータの送信が実行時にOS
の介在無しに行われ、隣接しないプロセッサ間の柔軟な
チェイニングの効率的実行が可能になる。
【0038】さらに、可変接続部5とルーティング制御
部1の間にはメッセージヘッダー解析部2が配置され
る。図5にメッセージヘッダー解析部2の一実施例のブ
ロック図を示す。本実施例ではルーティング制御部1か
ら4個のメッセージを並列に受信できるデータパスを持
つ直接FIFO受信成否判定部34と4個のメッセージ
ヘッダー解析チャネルが具備されるものを示す。
【0039】本実施例の直接FIFO受信成否判定部3
4はルーティング制御部1からメッセージを受信する
と、現在アイドル中のメッセージヘッダー解析チャネル
に対しヘッダー情報を流し、受信できるメッセージヘッ
ダー解析チャネルが存在するかを判定する。もし予期せ
ぬメッセージが来てメッセージヘッダー解析部でFIF
Oへの直接受信ができなかった場合、制御CPUに割り
込みをかけ、一旦外部メモリのシステム領域にメッセー
ジを取り込み、警告メッセージの返送などの処理を行わ
せる。
【0040】また、本実施例のメッセージヘッダー解析
部2は内部にアクセス権限情報設定部4aが設置され、
アクセス権限情報設定部4aには送り先仮想FIFO番
号レジスタ36とプロセス番号レジスタ37が具備され
る。これらのレジスタにはベクトル受信命令実行開始時
にベクトル演算制御部18により設定される。
【0041】この他に各メッセージヘッダー解析チャネ
ルにはアクセス権限情報設定部4aに設定された情報と
受信メッセージのヘッダー内部の情報を比較する比較器
38と、削除すべきヘッダーのデータ数を設定する削除
データ数レジスタ39を参照しながら直接FIFO受信
成否判定部34と可変接続部5の間を制御するハンドシ
ェイク制御部40が具備される。削除データ数レジスタ
39のデフォルト値はメッセージパケット生成部3が生
成する図4のメッセージのヘッダーのデータ数になって
いて、メッセージのデータ部のみがFIFOに転送され
る。
【0042】複数のユーザまたはジョブを並行処理させ
る場合、送信先のある番号のFIFOにメッセージを送
信する際、そのFIFOを他人に使用させるように割り
当てられていてそのFIFOに格納してはいけない場合
でも、受信したメッセージのヘッダー情報からメッセー
ジを格納すべき回路ブロックを選択するメッセージ受信
部を具備するので、そこでアクセス違反をチェックする
ことが可能になる。
【0043】例えば図4に示したメッセージのように
「どのプロセシングエレメントのどのプロセスIDに対
して割り当てられた何番のFIFO」という形でのアク
セス権限情報を具備したヘッダー情報を付けて送信すれ
ば、受信したメッセージのヘッダー情報からメッセージ
を格納すべき回路ブロックをメッセージヘッダー解析部
2が選択するので、他人のFIFOに誤って書き込むこ
とが排除できる。
【0044】FIFOを複数のプロセスに割り当てる場
合の割当て方法としてはFIFOにふられた番号の上位
をユーザ番号、下位をユーザーに見せるFIFO番号と
するのが簡単明瞭である。このような簡単な規則は後述
するFIFO番号変換機構を簡単化するように作用す
る。
【0045】以上のようなプロテクション機能の実施に
あたっては、FIFOや命令バッファがどのプロセスに
割り当てているかなどの情報は管理プロセッサの特権モ
ード、すなわちOSからしか変更できないようにマッピ
ングしておく。このようにするとマルチユーザ環境でメ
モリ管理ユニットのTLBに複数のユーザや複数のジョ
ブに対応するエントリどうしが保護された状態で混在で
きるように、本実施例のプロセッサでは複数のユーザや
複数のジョブに対応するFIFOや命令バッファ15ど
おしが互いに保護された形で混在できる。
【0046】また、メッセージヘッダー解析部2は受信
したメッセージのヘッダー情報からメッセージを格納す
べき回路ブロックを選択する。例えば何番のFIFOに
受信データを格納すれば良いかということをメッセージ
のヘッダー情報から読み取り、外部メモリにメッセージ
をバッファリングすることなしに受信メッセージを直接
指定されたFIFOに格納することが可能になる。
【0047】正常のメッセージが届いた場合の動作はメ
ッセージヘッダー解析部2がハードウェアにより行うの
で受信時のOSの介在が無く高速に処理される。よって
隣接しないプロセッサ間の柔軟なチェイニングの効率的
実行が可能になる。
【0048】従来の多くの並列計算機におけるプロセッ
サ間通信の大半の時間は、OSによる送信処理および受
信処理といったソフトウェアオーバーヘッドに費やされ
ていたが、メッセージパケット生成部3,メッセージヘ
ッダ解析部2により送信処理および受信処理がハードウ
ェアで高速実行する仕組みを持っているために、メッセ
ージ長がそれほど長くなくても通信オーバーヘッドのた
めに並列処理効率が激減する心配が少なくなる。
【0049】このため図6のように本プロセッサをアレ
イ状に並べそれぞれのルーティング制御部に具備される
通信ポート間を接続すると、演算器のアレイがパイプラ
イン的に処理するシストリックアレイ的な動作をも実行
可能となっている。
【0050】グローバルなクロックによりデータの入出
力のタイミングが規定されている狭義のシストリックで
はないが、本発明を適用したプロセッサではデータの到
着がFIFOのデータ存在信号によりベクトル演算制御
部18に通知され演算が実行されるので、グローバルな
クロックに動作が規定されない広義のシストリックであ
るウェーブフロントアレイのような非同期なファイング
レイン動作をすることが可能である。
【0051】次に8×8のサイズの正方行列A,Bの積
Cを4×4の二次元プロセッサアレイによる処理時の動
作例を引きながらウェーブフロントアレイ動作を説明す
る。8×8の正方行列間の積は行列A,BおよびCを図
7に示すように4×4の部分行列4個に分割し、これら
の部分行列をA11,A12,A21,A22,B1
1,B12,B21,B22およびC11,C12,C
21,C22とした場合、次のような関係が成り立つ。
【0052】 C11=A11・B11+A12・B21 C12=A11・B12+A12・B22 C21=A21・B11+A22・B21 C22=A21・B12+A22・B22 つまり行列積C=A・Bは上記のように4×4の部分行
列間の積8個とそれぞれの結果となる部分行列積間の和
4個に分解され、8個の積および4個の和の間にはそれ
ぞれ依存関係はないので並列処理(ベクトル処理)可能
である。
【0053】そこで上記の8個の処理をベクトル処理す
る場合、各プロセシングエレメントでは図8のようにパ
イプラインをチェイニングする。入力ポートW(44)
から入ったベクトルaikはFIFO0に入力され、可変
接続部5のディスティネーションをFIFO1およびF
IFO2にすることで2本のベクトルにコピーする。F
IFO1は出力ポートE(48)に接続し、入力ポート
W(44)からのベクトルをたれ流しにする。入力ポー
トN(46)から入ったベクトルbkjはFIFO3に入
力され、可変接続部のディスティネーションをFIFO
4およびFIFO5にすることで2本のベクトルにコピ
ーする。FIFO5は出力ポートS(46)に接続し、
入力ポートN(46)からのベクトルをたれ流しにす
る。
【0054】FIFO2およびFIFO4は乗算器52
に接続され、乗算結果はFIFO6へ出力される。FI
FO7には最初に0が8個入力され初期化される。FI
FO6とFIFO7は加算器53に接続され、その出力
は再びFIFO7に戻される。
【0055】FIFO8は入力ポートE(49)からの
ベクトルを出力ポートW(45)へたれ流し、最初にA
の8個の部分行列積に関連する所定の行列要素が8個ず
つ入力され初期化される。FIFO9は入力ポートS
(51)からのベクトルを出力ポートN(47)へたれ
流し、最初にBの8個の部分行列積に関連する所定の行
列要素が8個ずつ入力され初期化される。
【0056】なお、図6に示したプロセシングエレメン
ト00,01,02,03ではFIFO9の出力が図8
の点線で示されるようにFIFO3の出力の部分に接続
され、FIFO3は不要である。同様にプロセシングエ
レメント00,10,20,30ではFIFO8の出力
が図8の点線で示されるようにFIFO0の出力の部分
に接続され、FIFO0は不要である。
【0057】4×4のプロセッサアレイにおけるデータ
のマッピングは図9に示すように4×4の部分行列の各
要素をすなおに4×4のアレイ状にならぶ個々のプロセ
ッサに割り当て、各プロセッサはA,B,Cのために4
個ずつの要素を保持する。
【0058】以上のようなデータの配置におけるFIF
O8の初期化されるデータを図10に示す。2桁の番号
は行列Aの二次元インデックスを示している。同様にF
IFO9の初期化されるデータを図11に示す。
【0059】以上の初期化データは全て各プロセシング
エレメントのローカルメモリから自身のFIFOに設定
できるのでこのための通信は必要ない。以上のように初
期化が終了したらバリア同期などをとって図10や図1
1のようなデータ流の順序が保証されるようにして演算
を開始させる。すると二次元的にチェイニングされたベ
クトル演算器ネットワークの中をベクトル長32のベク
トルが流れ、効率良くベクトル処理が行われる。その結
果、部分行列間の積がFIFO7中に8個できあがる。
【0060】以上のような処理をもし本発明を用いるこ
となく通常のメッセージ交換で行うならば一回の乗算と
一回の加算を行ってすぐにメッセージ送信をしなければ
ならないという細粒度通信のため、通信にかかるソフト
ウェアオーバーヘッドが処理時間全体の大部分を占めて
しまうので性能は格段に低下してしまう。
【0061】上記の初期化を行った場合、FIFO7に
出来上がった8個の要素は一番目がA11・B11に対
応し、二番目がA12・B21に対応し、三番目がA1
1・B12に対応し、四番目がA12・B22に対応
し、五番目がA21・B11に対応し、六番目がA22
・B21に対応し、七番目がA21・B22に対応し、
八番目がA22・B22に対応する。ゆえに一番目と二
番目を加算したものがC11に対応し、三番目と四番目
を加算したものがC12に対応し、五番目と六番目を加
算したものがC21に対応し、七番目と八番目を加算し
たものがC22に対応する。これらはプロセッサごとに
スカラ演算により並列化できる。
【0062】以上に示したようなウェーブフロントアレ
イ処理は、マルチユーザー、マルチジョブのためのプロ
テクション付きでの並行処理も可能となっている。
【0063】さて、本実施例ではFIFOのデータ存在
検査信号などを入力とするベクトル命令切換制御部19
の制御の元で動作するベクトル演算制御部18を具備す
る。この命令切り換え機構は演算に必要な全ての入力オ
ペランドに対応するFIFOにデータの存在をもとに所
定の条件が成立した場合にベクトル演算器7,8の演算
種類とベクトル演算器7,8の入力および出力に接続す
るFIFOまたはスカラレジスタを切り換える。
【0064】例えば外部メモリポートが他のベクトルデ
ータのロードなどに使われていたり、他のプロセシング
エレメントからのデータの受信が結合網のブロッキング
などによって、なかなか現在ベクトル演算中の演算に必
要なデータをFIFOにロードできなかった場合に、所
定の条件、例えばある指定された期間そのような演算器
の待ち状態が続いた場合などに、別のベクトル演算命令
に対してベクトル演算器を明け渡すことが可能になる。
【0065】すると、入れ替わるベクトル演算命令のオ
ペランドに対応する全てのFIFOに既にデータが貯ま
っていた場合には、そのベクトル演算を開始することが
できる。その間に先ほど演算器を明け渡した演算に必要
なデータがFIFOにロードされることが見込まれ、や
がて逆に今度は演算器を明け渡されてベクトル命令の実
行が再開される。
【0066】つまり、結合網の遅延やメモリの高速アク
セスのためのバースト転送などに起因する外部メモリア
クセス遅延を許容し、これらに起因するベクトル演算パ
イプラインの空回りを削減し、パイプラインの有効利用
がはかられる。
【0067】また、物理的に存在する演算器の個数より
多くのベクトル演算命令を同時に発行することができる
ので十分な本数のFIFOがあればFIFOを介したチ
ェイニングの機会を多くすることができ、メモリアクセ
スの回数をさらに減らすことが可能になる。
【0068】以下に実例を引き上記の現象を説明する。
次のような演算を行う場合について考える。(A,B,
Cはベクトル、s,tはスカラー) A(i)=A(i)+s×B(i)+t×C(i) この例ではハードウェアが十分ある場合を想定すると図
12のような主記憶とベクトルレジスタと演算器の関係
が成り立つ。つまりA,B,Cのロードおよび結果Aの
ストアに対応する4つのメモリアクセスとベクトル加算
2個(57,58)、ベクトル乗算2個(54,55)
の演算が必要になる。さらにベクトルレジスタを7本、
スカラレジスタを2本必要になる。ところが本実施例の
プロセッサのように加減算器と乗除算器をそれぞれ1個
しか持っていない場合は図13,図14のように2回に
わけて実行せざるを得なかったため、メモリアクセスが
2回余計に必要になる。
【0069】つまり、本実施例のように演算器が2個
(即ち、加算器53,乗算器52)しか存在しないなら
ば、たとえ3個以上のベクトル演算命令がハードウェア
の制約を外して考えた場合に論理的にはチェイニングで
実行可能だったとしても、2個の演算器がそれぞれ1個
のベクトル演算の完了までそのベクトル演算命令に占有
されるのであれば、2演算以上のチェイニングは不可能
である。つまり2命令のみがチェイニングされ、その結
果ベクトルはメモリへ一旦格納されることになってしま
う。
【0070】一方、本実施例のプロセッサではFIFO
が足りなくなるまではたとえ演算器が2個しかなかった
としても3個以上のベクトル演算を同時に発行できる。
上記の演算の例を実行する場合はFIFOが6本以上あ
るので図12に示されている全ての処理に対応する命令
が発行され、2つのベクトル加算命令が一つの物理的な
加減算器に時分割的に割り当てられ、2つのベクトル乗
算命令が一つの物理的な乗除算器に時分割的に割り当て
られる。
【0071】その動作を示すタイムチャートの例を図1
5に示す。本実施例ではベクトルAとベクトルB,Cは
実質的に並列にアクセスできるようにメモリポートコン
フリクトが無いように主記憶上に格納されているとし、
ベクトルBとCは並列にはアクセスできなかった場合の
動作を示している。同図において、太い実線は実資源す
なわちメモリポートや演算器がそれぞれの処理に割り当
てられている期間を示し、点線は実資源が他の処理に奪
われている期間を示している。また、鋸歯状の矢印は実
資源割り当ての切換、実線矢印はデータ依存関係を示
す。
【0072】実際に演算器を割り当てられて実行可能状
態になる演算命令は物理的な演算器の個数である2個が
最大であるが、やがてチェイニング先のFIFOが一杯
になったり、入力となるFIFOが空になったりするこ
とにより、ベクトル命令切り換え機構が待たされていた
ベクトル演算命令実行のために演算器を明け渡し、条件
が満たされたベクトル演算命令の間を演算器使用権限が
回りながら演算器を共有しつつ、見た目にはあたかも3
個以上の演算器がチェイニングされているかのように実
行される。このようにして中間結果ベクトルのメモリへ
の退避・復帰がFIFOの本数が足りている間は回避さ
れ、メモリポートや演算器が暇にならないように制御さ
れる。
【0073】以上の動作例はFIFOへのデータ入力や
FIFOからのデータ出力が4個のメモリアドレス生成
部が制御する主記憶とのアクセスによって行われた場合
を示しているが、前述のとおりFIFOへアクセスでき
るのは他にもメッセージヘッダー解析部2やメッセージ
パケット生成部3が存在するので、他のプロセッサとの
間で交わされるメッセージがFIFOに入出力されるデ
ータにもなりうる。
【0074】さて、本実施例ではプログラム上で使用さ
れるFIFOの番号を物理的なFIFOの番号に変換す
るFIFO番号変換部6を具備する。このため、複数の
ユーザーまたはジョブによる並行処理が行われた場合で
も、同じ番号のFIFOをプログラム上で指定してもユ
ーザーごとに割り当てられた別のFIFOをアクセスし
てくれるので、他人から自分のFIFOをアクセスされ
ることもなく、かつプログラム中で実行時のFIFOの
割り当てを気にせずオペランドを指定できる。つまり、
多重仮想記憶システムにおいて各ユーザおよびジョブが
独立の記憶空間を持っているものと思ってプログラミン
グでき、どの物理メモリが割り当てられたかによりアド
レスを変更したり、コンパイルしなおしたりしなくても
すむように、本発明によれば各ユーザおよびジョブは独
自のFIFOレジスタセットを持っているものと思って
プログラミングでき、どの物理FIFOが割り当てられ
たかによりFIFOレジスタ番号を変更したり、コンパ
イルしなおしたりしなくてもすむ。
【0075】さらに外部メモリアクセスポートは連続ア
クセス時に高速なDRAMであるR−DRAM14を制
御可能なメモリ制御機構としてRambusインタフェ
ース13を備える。
【0076】RambusとはこれまでのDRAMとは
メモリセルは全く同様の技術を用いて大容量を安価に提
供できるメモリであるR−DRAM14のためのバス規
格である。パケット型のアクセスプロトコルを想定して
おり、連続的なアクセスに関してはデータ長を指定でき
るためにアドレス指定のオーバーヘッドが軽減され、2
50MHzという高速な転送クロックの両エッジに同期
した転送方式と相まってデータ幅9ビットながら最大転
送速度は500Mバイト/秒を実現できる。
【0077】R−DRAM14内部ではDRAMセルア
レイからページ単位で転送される2バンクのキャッシュ
が存在するので、長いベクトルの連続アクセスに対する
キャッシュのペナルティは通常のキャッシュシステムに
比べて少ないものと考えられる。
【0078】なぜなら通常のキャッシュシステムではキ
ャッシュサイズを越えるような長いベクトルを扱う処理
に関しては、再びそのデータが利用される前に後続のベ
クトルデータによってリプレースされてしまうため、ほ
ぼ常にミスヒットが生じ効果が薄い若しくは逆効果であ
るのに対し、R−DRAM14ではDRAMセルとキャ
ッシュの間がチップ内で接続された極めて高い転送バン
ド幅を持っているため、連続アクセスをしている限りミ
スヒットのペナルティは低い。
【0079】つまり以上のようなRambusおよびR
−DRAM14のもろもろの性質はベクトルデータの連
続アクセスを基本とする本発明のプロセッサの主記憶と
して好ましい性質であり、Rambusと本発明の相乗
効果により、高価で消費電力の高い高速SRAMを用い
ることなしに、実質的に高いメモリバンド幅を活用し高
い実効演算性能を実現できる並列計算機用プロセシング
エレメントが構築できる。
【0080】また図15のタイムチャートに示されてい
るようにベクトル演算制御と併用される場合、限られた
外部メモリアクセスポートに対して複数のベクトルロー
ド命令やベクトルストア命令からのアクセス要求が重な
り、長期間ベクトルロードやベクトルストアが待たされ
た場合でも、これが原因で待たされているベクトル演算
命令を切り換えて他のベクトル演算命令に演算器を割り
当てることにより、パイプラインの有効利用と連続アク
セスによる高速メモリアクセスを両立させることが可能
になる。
【0081】さらに、通常のメッセージ交換型並列プロ
グラミングを行った場合、他のプロセシングエレメント
からの受信メッセージはメモリにバッファリング時や、
メッセージ送信時には連続アドレスに対するアクセスが
生じるが、ルーティング回路1からこの高速連続アクセ
スモードで制御されるRambusメモリポートが利用
可能なので、メッセージの送受信も高速化される。
【0082】さらに、スカラ処理および制御を受け持つ
CPU21としてキャッシュを持つCPUを利用した場
合、キャッシュのリプレースは比較的短いながらも連続
アクセスとなるのでCPU21からみた実質的なメモリ
バンド幅の向上にも寄与する。
【0083】さらに本実施例ではRambusインタフ
ェース13を二系統13a,13b備え、Rambus
へのアクセスを適当なデータ長に区切るメモリアクセス
ブロック化部と、2系統のうちどちらのRambusポ
ートへアクセスするかを判定し適切なポートにアクセス
を振り分けるメモリポート選択部12を具備する。
【0084】Rambusはデータ・アドレス共有バス
幅が9bit幅なので使用ピン数が少ないため複数ポー
ト具備させたとしてもLSIのピンネックにはなりにく
い。またRambusはメモリとバスマスタとなるチッ
プが直結され通常のメモリバスのようにアドレスラッチ
やバストランシーバという類の外付け部品が無いので、
バスを複数ポート持たせたことによるコスト上昇は低
い。
【0085】Rambusプロトコルは1パケットで最
大256バイトのバーストメモリアクセスを許している
ため、256バイト以上のベクトルデータのロードまた
はストアを行う場合は、複数の256バイト以下のアク
セスパケットに分割する必要がある。
【0086】またメモリポートが空いているならば、デ
フォルトのパケット長(例えば128バイト)にストア
すべきデータが滞留していなくても、空いているほうに
FIFOに滞留しているベクトルデータの一部でもメモ
リにストアしておいたほうがメモリポートを空いたまま
にしておくよりはメモリポートのバンド幅を有効に活用
できる。
【0087】つまり、アクセスブロック化アドレス生成
部10を設けることによりメモリポートが空いているこ
とを検知して適宜ストアするベクトルデータをブロック
化し、デフォルトパケット長よりも短いライトパケット
を生成することで、メモリポートを最大限に活用するた
めの機能を実現できる。
【0088】またベクトルのロードに関してもロード先
のFIFO及び予備のデータバッファの空き領域が少な
い場合は、空き領域以上の長さのリードパケットを作っ
てしまうとデータを受け切れなくなってしまうので、ア
クセスブロック化アドレス生成部10によりデフォルト
のパケット長よりもアクセスを短くブロック化したリー
ドパケットを生成することにより、リードしそこねる事
態を防止することが可能になる。例えばデフォルトのリ
ードパケット長をFIFOの容量の半分としておき、F
IFOの容量の半分が消費された段階で発せられる警報
信号を元にリードパケット長を短く制御させるようにす
ると比較的簡単に溢れ防止制御が実現できる。
【0089】Rambusを本実施例のように2系統具
備すると、どちらのポートへのアクセスなのかに応じて
パケットの転送先を切り換える必要があるが、アクセス
ブロック化アドレス生成部10から生成されるメモリア
クセスパケットはそのアドレスによりどちらのRamb
usポートへのアクセスであるかが判定でき、メモリポ
ート選択部12はメモリアクセスパケットを所定のRa
mbusポートに転送する。
【0090】このように一つのメモリアクセスパケット
が二つのポートにまたがるようなアドレスおよびパケッ
ト長にならないように、アクセスブロック化アドレス生
成部10はパケットの生成を行うように制御する。
【0091】例えばベクトルプロセッサがアクセスする
領域が制御CPUの仮想記憶機構によりページングされ
ていない場合は、アクセスブロック化アドレス生成部1
0においてベクトルのメモリアクセスがポート境界に達
した場合にポート境界までのメモリアクセスパケットの
処理を先に完了させ、次にそれに引き続く別ポート向け
のメモリアクセスパケットを生成すれば良い。この場合
制御CPUへの割り込みは発生しない。
【0092】一方、メモリ空間が制御CPUの仮想記憶
機構によりページングされている場合は、少なくとも1
ページ分は同一のRambusポートへのアクセスとな
るようにアドレスを割り当てておけば、アクセスブロッ
ク化アドレス生成部10においてベクトルのメモリアク
セスがページ境界に達した場合には、ページ境界までの
メモリアクセスパケットの処理を完了した後に、制御C
PUに割り込みをかけ、次のページの物理アドレスを制
御CPUからコマンド制御部を介してアクセスブロック
化アドレス生成部に設定させれば、一つのメモリアクセ
スパケットが二つのポートにまたがるようなアドレス及
びパケット長にならないようにすることが可能になる。
【0093】Rambusが本実施例のように2系統具
備され、アクセスブロック化アドレス生成部が生成する
二つのメモリアクセスパケットが別ポートあてのパケッ
トとなり2系統のRambusが並列に動作した場合は
最大1Gバイト/秒のメモリバンド幅が実現できる。
【0094】通常チェイニングが可能なベクトルプロセ
ッサにおける様々なアプリケーションから解析された必
要なメモリバンド幅は1浮動小数演算(1FLOP)あ
たり浮動小数(8バイト)の転送1回といわれており、
1Gバイト/秒のメモリバンド幅は125MFLOPS
の演算性能とつり合う転送速度と言える。
【0095】つまり本実施例のプロセッサを1万台並べ
ることにより実質的に1.25TFLOPSのスーパー
コンピュータをプロセッサ間通信の無いプログラムで実
現するためのメモリバンド幅に対する一つの必要条件が
満たされるということができる。
【0096】実際にはプロセッサ間通信が行われるため
さらにメモリバンド幅が必要になることが予想される
が、本実施例のプロセッサでプロセッサ間通信を実現す
る場合はメモリを経由せずに行うことができる場合があ
るので、この機能を用いることが可能な場合はメモリバ
ンド幅に対する要求はプロセッサ間通信を行う場合でも
少なくすることができる。
【0097】
【発明の効果】以上のように本発明によれば、超並列型
のアプローチによりスーパーコンピュータを構築する場
合、通信ソフトウェアオーバーヘッド、マルチユーザ時
のプロテクション処理に伴う0Sのオーバーヘッド、結
合網遅延時間などによる演算器の空回り、従来のベクト
ル演算器を用いた場合に生じたメモリバンド幅の不足、
これを補うための高速SRAM使用によるコスト上昇と
消費電力上昇、従来のスカラ演算器を用いた場合に生じ
た演算能力自体の不足やこれによる使用プロセッサ数の
増大などの課題を解決した超並列マシン構築用のマイク
ロプロセッサを実現できる。
【0098】本発明によるプロセッサを一万台程度の規
模で並べた場合、ピーク性能で1テラFLOPS程度の
超並列スーパーコンピュータが実現でき、ピーク性能と
実効性能の差が少なく、マルチユーザによるプロセッサ
内での並行処理ができ、低コスト・低消費電力を両立す
るシステムを実現することが可能となる。
【図面の簡単な説明】
【図1】本発明が適用された並列計算機用マイクロプロ
セッサの一実施例の構成を示すブロック図の第1の分図
である。
【図2】本発明が適用された並列計算機用マイクロプロ
セッサの一実施例の構成を示すブロック図の第2の分図
である。
【図3】メッセージパケット生成部の構成を示す説明図
である。
【図4】メッセージの構成例を示す図である。
【図5】メッセージヘッダ解析部の構成を示す説明図で
ある。
【図6】本プロセッサによる並列計算機構成時のプロセ
シングエレメント間接続の例を示す図である。
【図7】部分行列に分けた正方行列間の積の説明図であ
る。
【図8】二次元ベクトルプロセッサアレイを用いたウェ
ーブフロントアレイ処理による行列積計算におけるプロ
セシングエレメント内でのパイプラインチェイニングを
示す図である。
【図9】係数行列A,B,Cのプロセッサアレイへのマ
ッピング状態を示す図である。
【図10】プロセッサアレイにおける各プロセシングエ
レメント内のFIFO8が初期化された状態を示す図で
ある。
【図11】プロセッサアレイにおける各プロセシングエ
レメント内のFIFO9が初期化された状態を示す図で
ある。
【図12】実演算器数より多くの演算器を仮想的に用い
ることができればチェイニングが行われる場合のプロセ
ッサ内でのチェイニングの例を示す図である。
【図13】実演算器数より多くの演算器を仮想的に用い
ることができない場合の動作の前半部のプロセッサ内で
のチェイニングの例を示す図である。
【図14】実演算器数より多くの演算器を仮想的に用い
ることができない場合の動作の後半部のプロセッサ内で
のチェイニングの例を示す図である。
【図15】演算器やメモリポートが仮想化された場合の
図12で示されるチェインドパイプラインの動作を示す
タイムチャートである。
【符号の説明】
1 ルーティング制御部 2 メッセージヘッダ解析部 3 メッセージパケット生成部 4a,4b アクセス権限情報設定部 5 可変接続部 6 FIFO番号変換部 7,8 ベクトル演算器 9 スカラレジスタ 10 アクセスブロック化アドレス生成部 11 データバッファ 12 メモリポート選択部 13 RambusI/F 14 R−DRAM 15 命令バッファ 16 CPUインタフェース 17 命令バッファアクセス権限設定部 18 ベクトル演算制御部 19 ベクトル命令切換制御部 20 コマンド制御部 21 CPU

Claims (1)

    【特許請求の範囲】
  1. 【請求項1】 複数の先入れ先出しメモリ(FIFO)
    と、演算に必要な全ての入力オペランドに対応するFI
    FOまたはスカラレジスタにデータが存在する際に演算
    が実行される1以上のベクトル演算器と、他のプロセシ
    ングエレメントとの通信を行うルーティング回路と、外
    部メモリアクセスポートと、前記ベクトル演算器,FI
    FO,ルーティング回路及び外部メモリアクセスポート
    との間をLSI内で接続する可変接続部を具備すること
    を特徴とする並列計算機用マイクロプロセッサ。
JP4198746A 1992-07-24 1992-07-24 並列計算機用マイクロプロセッサ Pending JPH0644196A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP4198746A JPH0644196A (ja) 1992-07-24 1992-07-24 並列計算機用マイクロプロセッサ

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP4198746A JPH0644196A (ja) 1992-07-24 1992-07-24 並列計算機用マイクロプロセッサ

Publications (1)

Publication Number Publication Date
JPH0644196A true JPH0644196A (ja) 1994-02-18

Family

ID=16396283

Family Applications (1)

Application Number Title Priority Date Filing Date
JP4198746A Pending JPH0644196A (ja) 1992-07-24 1992-07-24 並列計算機用マイクロプロセッサ

Country Status (1)

Country Link
JP (1) JPH0644196A (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2020246598A1 (ja) * 2019-06-07 2020-12-10 国立研究開発法人理化学研究所 演算装置、演算方法、および演算プログラム
JP2021508125A (ja) * 2017-12-29 2021-02-25 ホアウェイ・テクノロジーズ・カンパニー・リミテッド 行列乗算器

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2021508125A (ja) * 2017-12-29 2021-02-25 ホアウェイ・テクノロジーズ・カンパニー・リミテッド 行列乗算器
US11334648B2 (en) 2017-12-29 2022-05-17 Huawei Technologies Co., Ltd. Matrix multiplier
US11934481B2 (en) 2017-12-29 2024-03-19 Huawei Technologies Co., Ltd. Matrix multiplier
WO2020246598A1 (ja) * 2019-06-07 2020-12-10 国立研究開発法人理化学研究所 演算装置、演算方法、および演算プログラム
JP2020201659A (ja) * 2019-06-07 2020-12-17 国立研究開発法人理化学研究所 演算装置、演算方法、および演算プログラム

Similar Documents

Publication Publication Date Title
US4636942A (en) Computer vector multiprocessing control
JP2501419B2 (ja) 多重プロセッサメモリシステム及びメモリ参照競合解決方法
US4933846A (en) Network communications adapter with dual interleaved memory banks servicing multiple processors
US9411778B2 (en) Multiprocessor system and synchronous engine device thereof
US4901230A (en) Computer vector multiprocessing control with multiple access memory and priority conflict resolution method
US7406086B2 (en) Multiprocessor node controller circuit and method
US20120079155A1 (en) Interleaved Memory Access from Multiple Requesters
US5032985A (en) Multiprocessor system with memory fetch buffer invoked during cross-interrogation
US10210117B2 (en) Computing architecture with peripherals
US6092136A (en) Multi-processor central processing unit
KR20240024188A (ko) 네트워크 인터페이스 디바이스
Ang et al. Message passing support on StarT-Voyager
Keller et al. Realization of PRAMs: Processor Design
Aschenbrenner et al. Intrinsic multiprocessing
US20030229721A1 (en) Address virtualization of a multi-partitionable machine
JPH0644196A (ja) 並列計算機用マイクロプロセッサ
JP2736237B2 (ja) 遠隔メモリアクセス制御装置
Tuazon et al. Mark IIIfp hypercube concurrent processor architecture
May The next generation transputers and beyond
Hofmann et al. MEMSY: a modular expandable multiprocessor system
Verschueren et al. Arbitration in a multi-processor to multi-coprocessor connection switch
Aude et al. MULTIPLUS: A modular high-performance multiprocessor
KR950008838B1 (ko) 멀티미디어 지식처리를 위한 병렬처리 컴퓨터의 노드 컴퓨터 구조
Ikedo Aizu supercomputer: a massively parallel system for virtual reality problems
Pai Development of a low-latency scalar communication routine on message-passing architectures