JP2638613B2 - プログラマブル アクセラレータ及びその方法 - Google Patents

プログラマブル アクセラレータ及びその方法

Info

Publication number
JP2638613B2
JP2638613B2 JP15511488A JP15511488A JP2638613B2 JP 2638613 B2 JP2638613 B2 JP 2638613B2 JP 15511488 A JP15511488 A JP 15511488A JP 15511488 A JP15511488 A JP 15511488A JP 2638613 B2 JP2638613 B2 JP 2638613B2
Authority
JP
Japan
Prior art keywords
accelerator
processing elements
bus
programmable
signal
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 - Lifetime
Application number
JP15511488A
Other languages
English (en)
Other versions
JPS6426969A (en
Inventor
アグラワル プラシマ
ジェー.ダリー ウィリアム
エス.クリシュナクマー アンジュア
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.)
AT&T Corp
Original Assignee
AT&T 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 AT&T Corp filed Critical AT&T Corp
Publication of JPS6426969A publication Critical patent/JPS6426969A/ja
Application granted granted Critical
Publication of JP2638613B2 publication Critical patent/JP2638613B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Description

【発明の詳細な説明】 発明の技術分野 本発明は一般的にはコンピュータ シミュレーション
に、より具体的には回路設計のコンピューター シミュ
レーションに用いられる通常ハードウェア アクセラレ
ータと呼ばれる専用高速プロセッサに関する。
発明の技術的背景 ハードウェア アクセラレータは特定のアルゴリズム
或はあるクラスのアルゴリズムの効率的な使用のために
特別な設計された専用処理装置である。これら要素は広
範囲のコンピュータ支援設計問題に対する実現可能な解
決としてますます注目を集めており、これらの使用は結
果として顕著な性能の向上に結びついている。今日のシ
ミュレーション要素を用いた場合は、秒当り106以上の
ゲート評価を遂行することが可能であり、これはソフト
ウェア論理シミュレーションと比較して桁違いの向上で
ある。
シミュレーション要素はこれらの高いレベルの性能を
1つ或は複数の以下の手段を通じて達成する。つまり、
複数の同一ハードウェア ユニットが用いられ、これら
の間でシミュレーション問題が分割され、動作がこれら
ユニットを通じてパイプライニングされ、また手元のア
プリケーションに合せられた専用論理、及び処理ユニッ
ト間の専用の相互接続が用いられる。ハードウェア ア
クセラレータに関してその貴重な調査がトム ブランク
(Tom Blank)によってIEEEコンピュータの設計及びテ
スト(IEEE Desing and Test of Computers)、1984年
8月号に掲載の論文[コンピュータ支援設計に用いられ
るハードウェア アクセラレータの調査(A Surver of
Hardware accelerators used in Computer−Aided Desi
gn)]に紹介されている。更に適当な資料として、[論
理シミュレーション マシン(A Logic Simulation Mac
hine)]、マイロン アブラモビシ(Miron Abramovic
i)、IEEE、Vol−CAD−2、No.2、1983年4月号;[デ
ータ フロー アーキテクチャーを用いての論理シミュ
レーションのハードウェア アクセラレーション(Hard
ware Acceleration of Logic Simulation using a Date
Flow Architecture)]、IEEE、1985;[VLSI設計にお
けるシリコン溶液彫刻ナイチェ(Silicon Solutions Ca
rves Niche in VLSI Design)]、エレクトロニクス、1
985年8月12日号;[パワースパイスによる回路のより
高速より正確なシミュレーション(Powerspic Simulate
s Circuits Faster and More Accurately)]、エレク
トロニクス、1985年8月26日号;及びスイッチ−レベル
シミュレーションに対するハードウェア アーキテク
チャー(A Hardware Architecture for Switch−Level
Simulation)]、W.J.ダリー(W.J.Dally)その他、IEE
E、1985年を挙げることができる。
これら先行技術によるシステムに用いられるハードウ
ェア アクセラレータの殆どは、特定のタスクを非常に
効率的に遂行するために専用化された多くの処理要素、
或は要素を含み、これら要素が密着した相互作用システ
ムを形成するように相互接続される。周知のシミュレー
ション要素の全てが共通にもつ短所は、これらが処理要
素間の固定された相互接続を採用し、これによって、柔
軟性が失われ、また処理要素自体が特定のアプリケーシ
ョンに専用化され、このため異なるアプリケーションを
扱う場合に異なる設計が必要となることである。
本発明の概要 本発明はスイッチを通じてクラスタを形成するように
フレキシブルに相互接続された複数の実質的に同一の高
速専用処理要素(processing element、PE)を採用する
ことによって先行技術による回路シミュレーション技術
と比較して大きな向上を達成する。この処理要素(PE)
がプログラマブルであるのに加えて、この相互接続スイ
ッチは処理要素間の信号の経路の動的切り換えを可能と
する。この処理要素は要素間の高速非同期通信を可能と
するキュー ユニットを含む。本発明においては、複数
のクラスタがn−立体構成に相互接続され、クラスタの
全てが1つのホスト コンピュータと通信するが、この
階層構成によって追加の利点が得られる。
実施例 第1図は本発明による高速シミュレーション用マイク
ロプログラマブル アクセラレータ(Microprogrammabl
e Accelerator for Rapid Simulation、MARS)の一般ブ
ロック図である。これは双方向ライン12−24を介してブ
ーリアン 3−キューブ(Boolean 3−cube)に相互接
続された8個のクラスタ10と1つのホスト コンピュー
タ11を含む。これらはまた共通の双方向バス11を介して
相互接続される。個々のクラスタは(n−空間内の)n
−キューブ(立体)上そのクラスタの座標に対応する2
進アドレスをもつ。第1図は3−キューブ相互接続を示
すが、更に高次元にするため(15個の処理要素をもつ)
ブーリアン 4−キューブに拡張することも簡単であ
る。第2図は相互接続スイッチのノードを示す。ブーリ
アン n−キューブの説明に関しては、例えば、W.Dヒ
リス(W.D.Hillis)、サイエンティフック アメリカン
(Scientific American)、1987年6月号(ページ108−
115)による“接続マシーン(The Connectio Machin
e)”にみられる。
第1図のシステム内の個々のクラスタはn−キューブ
へのインタフェース ノード、メモリと関連する複数の
処理要素、及び相互接続スイッチを含む。
動作において、MARSによって遂行されるべきシミュレ
ーション タスクはホストプロセッサ11からクラスタに
バス25を介してダウンロードされる。バス25はクラスタ
内のメモリへの直接アクセスを提供し、バス25を通じて
データを通信するためのプロトコールは通常のDMA(dir
ect memory access、直接メモリ アクセス)プロトコ
ールである。一方、バス12−24はメッセージにて通信す
る。個々のメッセージは1つの見出し語及びこれに続く
1から16の間のデータ語から成り、本実施態様における
個々の語は16ビット長である。個々の語は事前に選択さ
れた情報の欄(Field)を異なるビット増分にて含む。
見出し語はメッセージ長、クラスタ、アドレス、メッセ
ージがそれに向けられる着信先クラスタ内の特性の処理
エンジンを指定する。クラスタアドレスはn−キューブ
が隣接クラスタのみに接続を提供するために必要であ
る。隣接クラスタ以外への接続が要求される場合は、複
数のノード インタフェースを通じての“デイジー チ
ェーン(daisy chain)”接続が必要である。
第2図は処理要素とn−キューブ相互接続網の間のク
ラスタ ノード インタフェースを示し、ここで、nは
3である。これは4つの入力及び4つの出力をもつクロ
スバースイッチ30、個々の入力に接続された入力コント
ローラ31、及び個々の出力に接続された出力バッファ32
を含む。1つの入/出力ペアがノードの所の処理要素と
インタフェースするために割り当てられ、一方他の3つ
の入/出力ペアは信号n−キューブ相互接続網に沿って
送るために用いられる。入力コントローラは従来のアド
レス計算回路であり、個々は自体のアドレス(そのコン
トローラが位置するノードのアドレス)を認識してい
る。コントローラは入力メッセージの所望のクラスタ
アドレスを読み出し、所望のアドレスを自体のアドレス
と比較することによって(ビット ワイズ排他的OR)メ
ッセージがそれにスイッチされるべき好ましい出力リン
クを計算し、結果としての経路情報をメッセージととも
にクロスバー スイッチ30に加える。バッファ32は着信
先クラスタがビジーの場合、或は所望の経路上のリンク
がブロックさらた場合、メッセージが待ち行列上に置か
れることを保証する機能をもつ。
第3図は第1図のクラスタ10のアーキテクチャーを示
す。第3図の構成は14個の処理要素(PE−0からPE−1
3)を含み、個々の処理エンジンは関連するランダム
アクセス メモリ(RAM−0からRAM−13)を含む。個々
のPEはそれと関連するRAMと専用双方向バス(例えば、3
3)を通じて通信し、これに加え、個々のPEはスイッチ4
0と通信する。RAMはまた双方向バス41と通信する。バス
41はインタフェース回路42を通じ、ホスト プロセッサ
11とバス25を介して通信する。こうして、個々のPE/RAM
セットはバス41及びスイッチ40の両方に接続される。バ
ス41にはまたハウスキーパー ブロック43、クラスタRA
M44、及び大容量記憶のためのローカル ディスク メ
モリ45が接続される。ブロック43はスイッチ40にも接続
される。最後に、スイッチ40もコントローラ31に接続さ
れ、コントローラ31はクラスタをn−キューブ網に接続
する。
スイッチ40はPEをラウンドスピーカ ブロック及び網
インタフェースと接続するローカル メッセージ スイ
ッチである。これは、第4図に示されるように、クロス
ポイントスイッチ(41)のクロスバー構成である。よる
具体的には、第4図は(ソース)PEからのロウに沿って
の16個のデータ ラインの1つ(ライン51)、別の(着
信先)PEからのカラムに沿っての16個のデータ ライン
の1つ(ライン52)、及びソースを着信先に接続する1
つのクロス ポイント41を示す。このデータ ラインに
加えて、ソースPEは、4つのアドレス ライン、1つの
出力要求(REQ)ライン、1つのアクノレッジ ライン
(64)、及び1つの要求/アクノレッジ出力ライン(RA
−アウト)を与える。着信先PEはRA−アウト ラインに
対応する要求/アクノレッジ入力ライン(RA−アウト)
を含む。クロクポイント41の個々のコラムはまた1つの
優先ライン及び1つのロック指標ラインを含む。この優
先ラインは、衝突が起った場合、どのソースPEが他のソ
ースPEに優先して所望の着信先PEへのアクセスを得るべ
きかの決定ができるように、PEに対する優先割り当てを
設定する。ロック指標ラインはソースPEが着信先へPEへ
のアクセスをいったん得ると、このアクセスがソースPE
が接続を放棄することを選択するまで維持されることを
保証する。
動作において、アドレス ラインがロウ内の個々のク
ロスポイント41内でプリワイヤード復号器53によって復
号される。適当なクロスポイントの所で、この復号され
たアドレスがREQライン(ゲート54内)を起動し、信号
がゲート55及び56に送くられる。ゲート55及び56の出力
はゲート57に加えられ、これはGRANT信号を生成するた
めにラッチされる。GRANT信号はゲート55に加えられ、
従って、GRANT信号が高値のとき、REQパルスが出現し、
このパルスがゲート55及び57を介してラッチ58に送くら
れ、ここでこれはGRANT信号のその高値の状態に保持す
るために捕獲される。GRANT信号が高値でないときは、
ゲート55は不能にされる。
ゲート56は、ゲート54によって制御されるのに加え
て、ロック指標ライン及び優先ライン エンタリング
クロスポイント(priorityline entering crosspoint)
41によって制御される。エンタリング優先ラインが高値
であるかぎり(これはより高い優先PEが接続を求めてい
ないことを意味する)そしてロック指標ラインが高値で
あるかぎり(これは他のどのPEも接続を確立してないこ
とを意味する)、REQパルスはゲート55と無関係にラッ
チ58から56に届き、GRANT信号が高値にラッチされる。
優先ラインはクロスポイント41からスイッチ61を通じて
出る。スイッチ61は優先ライン出力をGRANT信号が高値
であるか低値であるかによって、優先ライン入力かアー
スのいずれかに接続する。優先ラインをアースすること
は、そのカラム上のその後のクロスポイントがGRANT信
号を与えることを防止する。同様に、ロック指標ライン
はスイッチ60によって分枝される。これはカラム内の任
意のクロスポント41にGRANT信号が与えられたときアー
ス レベルにされ、これはそのカラム内の他の全てのク
ロスポイントがGRANT信号を得ることを防ぐ。
GRANT信号がクロスポイント41に与えられると、ゲー
ト54のREQ信号出力はこの情報をライン37上のアクノレ
ッジメント信号としてソースPEにパスする。また、ソー
スPEのデータ ラインがスイッチ35を通じて着信先PEの
データ ラインに接続され、RA−アウト ラインがスイ
ッチ36を通じてRa−イン ラインに接続される。
スイッチ60、61、35、36が第4図にGRANT信号が高値
のときに対応するモードにて示される。
RA−イン及びRA−アウト ラインが第4図にスイッチ
36を介して相互接続される単一ラインとして示される。
機能的には、これらは4つの双方向ラインとみなすこと
ができる。但し、実際には、これらの機能は1つのライ
ン、スイッチ36へのラッチング、及び1つの2フェーズ
クロックにて実現できる。RAラインはソースと着信先
PEとの間の通信を許す機能をもつ。単一ラインとの動作
においては、クロックの最初のフェーズにおいて、ソー
スPEはRA−アウト ライン上に着信先にメッセージが送
くられてくることを知らせる1つの信号を送くる。RA−
インは着信先へPEがその入力キュー(input queue)内
に空きをもつか否かを示す1つの信号を送くる。第2の
クロック パルスにおいて、RA−アウト信号が着信先PE
のRA−イン ラインに到達し、ここでこれは送られた情
報を入力キュー内に書き込むのに用いられる(入力キュ
ー内に空きがあるとき)。同時に、キュー内に空きがあ
り、データが受け入れられたという事実がソースPEに到
達し、ここでこれはメッセージ受信のアクノレッジメン
トとして用いられる。
PEは本はハードウェア アクセラレータの回路シミュ
レーションを遂行する。個々のPEは複数の論理的に分離
可能なユニット、例えば、事象スケジューラ、ファンア
ウト リスト プロセッサ、機能評価ユニット等を含む
シミュレーション パイプラインの1つの段として働く
ようにプログラムされる。ハウスキーパー ブロック43
は、従来のマイクロプロセッサ、例えば、モトローラM6
8020(Motorola M68020)である。これは基本的にシミ
ュレーション情報をPE(回路及びI/Oベクトル)内にロ
ードすること、及び例外的な事態の扱い、例えば、シス
テム クラッシュ後のタワチのチェックポイントからの
再開の任務をもつ。ハウスキーパーはクロック内の個々
のPEのローカル メモリにバス41を介して直接にアクセ
スでき、またスイッチ40を介してPEにメッセージを送る
ことができる。ハウスキーパーは回路区画(circuit pa
rtitions)を格納するためにディスク45を用いる。
本発明によるアクセラレータの最も重要の属性の1つ
は、クラスタ内の全てのPEが同一のアーキテクチャー設
計をもち、また個々のPEがアプリケーション問題を解く
ためのパイプライン段として機能するように専用化され
たマイクロプログラマブル プロセッサであることであ
る。このアーキテクチャーは、第5図に示されるよう
に、命令をレジスタ80を通じて復号器ユニット82−86に
分配するマイクロプログラムRAM71を含む。ユニット82
−86は、一方、ユニット72−76を制御する。つまり、外
部(データ)RAMインタフェース ユニット72、レジス
タ アレイ ユニット73、欄操作ユニット(field oper
ation unit、FOU)74、アドレス演算ユニット(AAU)7
5、及びメッセージ キュー ユニット76を含む。
プログラムが外部ソースからデータ バス92(16ビッ
ト)及びアドレス バス93(b+m16ビット)を介してR
AM71にロードされる。アドレス バスは外部アクセス
ライン(External Access line)94上に出現する信号の
制御下においてマルチプレクサ87に接続する。ライン94
はマルチプレクサ87に接続されているのに加えて、RAM
インタフェース コントロール82に接続される。ブロッ
ク82と関連してこの機能はRAM71がロードされていると
き、RAMインタフェース72を外部から加えられた信号か
ら分離することである。通常の動作においては、マイク
ロ命令RAM71は64ビットマイクロ命令をレジスタ80にく
ばる。この64ビットはレジスタ80によってさまざまなユ
ニット、つまり、条件ストール及びストラップ論理ブロ
ック81、RAMインタフェース制御ブロック82、レジスタ
復号器83、FOU復号器84、AAU復号器85、及びキュー復号
器86にくばられる複数の欄をもつ。要素82−86は受信さ
れたこれら欄を復号し、後に詳細に説明されるように要
素72−76に夫々適当な制御信号を加える。ブロック81も
さまざまなアラーム信号、例えば、キュー ユニット76
からのQ EMPTY及びQ FULL信号に応答し、この機能はア
ラームが発生したときPEの正常の動作を変更することに
ある。例えば、キュー76が一杯で、書込み命令が発生し
た場合、ブロック81はこの書込みを阻止するためクロッ
クの最後のフェーズを不能にする。
ユニット72−76は3つのフェーズから成るマイクロ命
令サイクルにおいて16ビット バス77、78、及び79を通
じて通信する。フェーズ1において、データがユニット
73内のレジスタからバス上に読み出される。機能ユニッ
トAAU(75)及びFOU(74)はフェーズ2においてデータ
に関して動作し、これらの結果をフェーズ3においてバ
ス上に送くる。バスの内容がフェーズ3において選択さ
れたレジスタに書き込まれる。
レジスタ アレイ73は32個のレジスタ(R0−R31)を
含む。殆どはそれらの内容をゲートし、クロックのフェ
ーズ1において3つのバスの1つに加えることができ
る。これらバスの任意の1つの上の信号はクロックのフ
ェーズ3の間にこれらレジスタ内に格納できる。幾つか
のレジスタは追加の目的、例えば、メモリのアドレシン
グ、メモリ或はメッセージ キューへのポートとしての
働き、或は機能ユニットの構成などの目的を果す。
レジスタ アレイ73内のさまざまな専用レジスタの説
明に入いる前に、PEのパラレルアーキテクチャーは(こ
れは異なる経路を通じて互いに通信でき、また幾つかの
ユニットはパラレル経路を通じて通信できるさまざまな
ユニットをもつことを特徴とするが)ある1つの特定機
能に対して1つ以上のレジスタを使用することを示唆
し、結果として利用可能なパラレリズム(parallelis
m)がより良く活用できることを意味する。これ及び後
に明白となるその他の理由から、後に説明される多くの
機能はアレイ73内の2つのレジスタによって処理され
る。
レジスタ アレイ73内のレジスタR2及びR3は、例え
ば、プログラム アドレス レジスタであり、またこれ
らは経路91を介してRAM71にアドレスするのに用いられ
る。この2つのレジスタは2つの目的に供される。第1
に、片方のレジスタがRAM71にデータを検索する指令を
行なっている間、他方のレジスタに次のRAM71アドレス
がロードできるように(或は単にプログラムのシーケン
スを通じて増分できるように)される。第2に、分岐状
況(branching situations)において、両方のアドレス
がターゲット アドレスにロードされ、分岐決定に達し
たとき、次のRAM71アドレスを決定するのにクロック
サイクルが消費されないようにされる。換言すれば、高
速分岐が通信バスを用いることなしに達成される。バス
91にR2が加えられるか或はR3が加えられるかは、復号器
83によって制御される。バス91はアドレスをRAM71にマ
ルチプレクサ87を通じて送くる。マルチプレクサ87は、
上に説明のごとく、ローディング プロセスの間はバス
94を選択するが、通常の動作においてはバス91を選択す
る。
データRAMインタフェース ユニット72は2つのレジ
スタの連結によってアドレスされる。レジスタR0或はR1
はライン99上のアドレスの16の最下位ビットを供給し、
一方、レジスタ10或は11はライン96上のアドレスの8個
の有効ビットを供給する。ライン99及び96によって供給
される24ビット アドレスは、適当なときに、夫々イン
タフェース ユニット72の出力の所のライン89及び90に
加えられる。データはバス88とバス77、78、及び79の間
をコントロール ユニット82からの信号に応答して送く
られる。レジスタ アレイ73もバス97上の外部RAMイン
タフェース ユニット72に信号を供給する。メモリから
端を発するバス97はアレイ73内のレジスタR6或はR7を選
択し、このバス上の信号は外部メモリの友好的な“アス
ペクト比(aspect ratio)”を構成するためにRAMイン
タフェース ユニット(72)を制御する。つまり、ライ
ン97はインタフェース ユニット72を制御し、ライン88
−90に接続された任意の外部メモリ、例えば、個々が16
ビットの64K語メモリがPEに対してあたかもこれが個々
が16ビットの64K語、個々が1ビットの1M語、或はこの
間の任意の他のアスペクト比を持つものとみえるように
される。24ビット アドレス(ライン99及び96)を用い
て、そのPEと関連する外部メモリは読出し及び書込みの
目的であたかもこれがレジスタ アレイ ユニット73内
のレジスタR29であるかのようにアクセスされる。メモ
リは個々のサイクルにおいて読出し或は書込みできる
が、メモリ アドレスを正しく設定することが必要であ
る。
キュー ユニット76は実際には2つのユニット;つま
り、1つの4語入力キュー、及び1つの4語出力キュー
である。両方とも循環FIFOメモリであり、両方ともレジ
スタ31としてアドレスされる。アレイ ユニット73内の
レジスタR14はメッセージ着信先アドレスをライン95を
通じて直接にキュー ユニット76に供給する。このアド
レスはキュー ユニット76の出力の所のバス62にメッセ
ージ データがバス98に配ばられるのと同時に配ばられ
る。RA−イン及びRA−アウト信号も又キュー ユニット
76によってライン66及び67上に配ばられ、これらライン
は一緒にローカル メッセージ スイッチ40に送くられ
る。Q EMPTY及びQ FULLライン(68及び69)はブロ
ック81に接続されたアラーム信号であり、これは夫々出
力キューがフルであるか否か、或は入力キューが空であ
るか否かを示す。こうして、R31への書込みによってメ
ッセージが出力キューに送くられ、一方、R31からの読
出しによって入力キューからメッセージ語が受信され
る。
レジスタ アレイ ユニット73内のレジスタR30は非
存在(non−existent)であり、このアドレスは不用デ
ータ(unwanted date)に対する情報シンクとして機能
する。この能力はこれによると命令を常にソース アド
レスと着信先アドレスによって表わることができるため
に採用されている。
レジスタ アレイ73内に提供されるもう1つの追加の
専用レジスタは欄選択レジスタ(field select regis
ter、FSR)、つまり、レジスタR4或はR5である。このレ
ジスタはその入力及び出力ビット欄の幅及び開始ビット
位置を選択することによってバス63を介して欄動作ユニ
ット74を構成する。
FOUユニット74はビット欄動作(bit field operati
on)を遂行する。つまり、これはその二つのソース オ
ペランドからビット欄を抽出し、これらビット欄に関し
て操作し、次にこの結果をそのオペランドの1つの欄
に、或は出力バスの1つの更に別の欄に挿入する。FOU
動作はADD、SUBTRACT、INCREMENT、DECREMENT、NEGATE
(演算)、AND、OR、XOR、NOT、MAX、及びMINを含む。F
OUは複数の独立した欄が同一語にパックされたパックド
構造(packed structures)の高速操作を行うことによ
ってシュミレーション アプリケーションを加速する。
1つのサイクルにおいて、FOUは2つの語から欄を抽出
し、これら欄に関して操作し、その結果を1つの語に挿
入する。可能な欄の幅は1、2、4及び8ビットであ
る。バスA、B及びCのグルーピングから、FOUがバス
A及びBにのみ接続されることがわかる。但し、FOUは
レジスタ アレイ73からのバス63にも接続され、この場
合、レジスタR4及びR5がアクセスされる。
FOUはこの入力の1つをバスからではなく、アレイ73
内の専用レジスタから取ることもできる。FOUはバス64
を介してレジスタR15にアクセスできる。これは同一サ
イクルにおいてもう1つ多くのバス関連操作を行なうこ
とを可能にする。
第6図はFOUユニットのブロック図を表わす。このユ
ニットへの1つの入力は復号器84から来る。これは遂行
されるべき所望の動作を指定するFOU−OP4ビット バ
ス;第1のオペランドのソースを決定するFOU−ASELラ
イン、つまり、AバスあるいはレジスタR15に接続され
たバス(バス64);着信先バスを指定するFOU−OSEL;ラ
イン;及び信号をバス63に配ばるためにレジスタR4或は
R5のいずれかを用いるかを指定するFSR−SELラインを含
む。バス63は回路を通じて用いられるA−START、B−S
TART、OUT−START、IN−SIZE、及びOUT−SIZE制御信号
を供給する。FOUユニットへの他の入力はAバス、Bバ
ス、及びバス64から来る。
Aバス及びバス64はセレクタ201に加えられ、ここ
で、1つがFOU−ASEL信号の制御下において選択され
る。セレクタ201の出力及びBバスはラッチ回路202に加
えられ、回路202はベーシック クロック(basic cloc
k)の第1のフェーズによって制御される。このラッチ
されたBバスは入力セレクタ203に加えられ、一方、も
う一方のラッチされたバスは入力セレクタ204に加えら
れる。セレクタ203及び204は所望の欄をIN−SIZE制御信
号及びA−START及びB−START制御信号の制御下で抽出
する。後者は抽出された欄の開始ビットを決定し、一
方、前者は欄の長さ(1、2、4或は8ビット)を決定
する。
セレクタ203及び204の出力は機能ブロック205に加え
られ、これは上に同定されたFOU動作の全て(例えば、A
DD及びINCREMENT)を実現する。これら動作はオプ コ
ード及び駆動論理ブロック(opcode and drive logic b
lock)206から派生される機能制御信号の制御下で遂行
される。ブロック206は復号器84によって供給される信
号に応答し、これは従来の組合せ回路から成る。機能ブ
ロック205は、同様に、従来の組合せ回路から成る。機
能ブロック205の出力は出力挿入論理207に加えられる。
制御信号OUT−SIZE及びOUT−STARTに応答し、ブロック2
07はブロック205によって生成された欄を所望の位置に
挿入し、これを出力セレクタ208及び209に転送する。セ
レクタは復号器84からの制御信号FOU−AEN及びFOU−BEN
に応答し、この出力を夫々A BUS(77)及びB BUS
(78)に転送する。
異なる長さの欄に関して操作するFOUと正反対に、AAU
ユニット(75)は16−ビット演算を遂行する。フェーズ
1において、2つのソース オペランド、A及びCが指
定のレジスタ、つまりキュー ユニット76及び/或はRA
Mインタフェース72からAバス(77)及びCバス(79)
上に読み出される。これらはAAUへの入力である。AAU動
作の結果はフェーズ3においてCバスにリターンされ
る。AAU命令は、ADD、SUBTRACT、INCREMENT、DECREMEN
T、MULTIPLY、DIVIDE、NEGATE(演算)、AND、OR、XO
R、NOT、BIT TEST、BIT SET、BIT CLEAR、及びROTAT
Eを含む。
AAUもまたその入力の1つをバスからでなくアレイ73
内の専用レジスタから取る。AAUはレジスタR13にバス65
を介してアクセスすることができる。これは同一サイク
ルにおいてもう1つ多くのバス関連動作を行なことを可
能にする。
フェーズ3におけるレジスタの書込みはフェーズ2に
おいて遂行されたAAU動作の結果に依存させることがで
きる。これはPE内での唯一の条件付実行メカニズムであ
る。条件付分岐は、上に説明のごとく、ターゲット ア
ドレスを2つのレジスタに書き込むことによって遂行さ
れる。
第7図はアドレス演算ユニット75のブロック図であ
る。ユニットへの1つの入力は復号器85から来る。そし
てこれは遂行されるべき動作を指定する信号AAU−OP;シ
フティングを指定する信号AAU−SH;及びAバス或はレジ
スタR13(バス65)に接続されたバスのいずれかが選択
されるべきかを指定する信号AAU−ASELを含む。
バス65及びAバスはAAU−ASEL信号によって制御され
るセレクタ211に接続される。選択されたバスは、Cバ
スと同様にラッチ212に加えられる。ラッチされたCバ
スはセレクタ231及び214に接続され、ラッチされたAバ
ス(或はバス65)はセレクタ214に接続される。セレク
タ213の出力はシフト論理ブロック215に接続される。ブ
ロック213、214及び215はAAUのBIT TEST、BIT SET、
及びBIT CLEAR動作、並びにAAUのSHIFT及びROTATE動作
を実現する働きをする。このビット操作動作はA BUS
(これはOPCODE及び駆動論理ブロック216に加えられ
る)上の制御信号及び4つの最下位ビットに応答して生
成されマスクを採用することによって実現される。論理
ブロック216はまた上に説明の復号器85の出力信号にも
応答し、機能ブロック217に加えられる制御信号を生成
する。機能ブロック217はセレクタ214及びシフット論理
215から入力信号を受信する。これは上に説明の残りのA
AU動作を遂行する。この機能は従来の組合せ論理によっ
て実現される。最後に、ブロック21の出力は出力セレク
タ218に加えられ、セレクタ218は復号器85からのAAU−E
N信号に応答する。ブロック217は又情報をブロック219
に供給するが、ブロック219は専用標識状態(specific
flag conditions)の存在を確かめる。これら状態はAAU
−EN信号に影響を与える。これら標識には、動作結果の
信号を示すAAU−SIGN;AAUキャリー標識であるAAU−CARR
Y;オーバーフロー標識であるAAU−OVF;バスA及びCが
同一情報を運ぶことを示すAAU−AEQC;及び動作結果がゼ
ロであることを示すAAU−ZEROが含まれる。
マイクロプログラムRAM(71)はデータ経路の個々の
部分を制御するマイクロ命令を提供する。個々のサイク
ルにおいて、選択されたプログラム アドレス レジス
タが次のサイクルにおいて遂行されるべきマイクロ命令
を読み出すのに用いられる。
64−ビットPEマイクロ命令は2つのフォーマット、つ
まり、コンスタント(constant)或はノーマル(norma
l)をもつ。コンスタント マイクロ命令はバスA及び
B上に2つの16−ビット コンスタントを置き、コンス
タントをレジスタにロードするのに用いることができ
る。但し、コンスタント命令の際にAAU或はFOU動作が遂
行されることはない。ノーマル マイクロ命令は全ての
他のケースにおいて用いることができ、以下を指定する
欄を含む。
1. 3つのバスの各々のためのソース レジスタ及び着
信先レジスタ。短い(5−ビット)コンスタントもまた
バスA上にマイクロ命令から直接に置くことができる。
2. AAU及びFOU動作。
3. アドレス レジスタの選択。
4. トラップ起動。
5. 条件選択及び個々のバスのこの条件へのセンシタイ
ゼーション(sensitization)。
MARSを多重遅延論理シミュレータとして用いることに
よって、個々のクラスタによって最大64Kゲートまで扱
うことができる。64Kゲート以上が存在するような用途
においては、第1図に従って、1つ以上のクラスタを採
用することができる。ここで、個々のクラスタは回路の
あらかじめ選択された部分のシミュレーションに捧げら
れる。勿論、回路の区画はクラスタ間の通信が最小化さ
れるように選択される。
クラスタ内のシミュレーションはシーケンスのタイム
ステップ及び2つのシミュレーション フェーズ:つ
まり、ファンアウト(fanout)及び評価(evaluation)
フェーズにて遂行される。ファンアウト シミュレーシ
ョン フェーズの際に、現時間ステップにおいて起こる
事象がゲートの入力に伝搬され、これらゲートが評価の
ためにスケジュールされる。次に評価フェーズにおい
て、これらゲートがシミュレートされる。2つのシミュ
レーション フェーズの使用は単一の評価サイクル内で
の単一ゲートの複数の評価を防止する。全てのゲート入
力はゲートが評価される前に更新され、このゲートは一
度のみ評価される。従って、この設計は慣性遅延モデル
に対する事象キャンセルをサポートする。
シミュレータの主な構造が第8図に流れ図にて示され
る。ここでは、シミュレーション フェーズの個々に対
して別個のパイプラインが示される。第8図内の個々の
ブロックはクラスタ内の処理要素を表わす(第3図に示
されるハウスキーパー ブロック43であるハウスキーパ
ー ブロック115を除く)。これらブロックの相互接続
はローカル メッセージ スイッチ(40)を通じて達成
される。従って、第8図の左側のファンアウト構成から
の第8図の右側の評価構成への交互のスイッチングは、
後に説明のように簡単に達成できる。第8図を通してみ
ることからわかるように、個々のPEが1シミュレーショ
ン フェーズ当たり最高でも1回使用され、PEの幾つか
は両方のシミュレーション フェーズにおいて用いられ
る。以下にファンアウト フェーズ パイプライン及び
評価パイプラインの説明が行なわれる。但し、一般的に
言うと、シミュレーションはこの2つのフェーズの間を
交互しながら進む。
ファンアウト フェーズ内の最初のブロックは信号ス
ケジューラ101であるが、これは信号値の変化をスケジ
ュールする。これはハウスキーパーがシミュレートされ
るべきステップの回数を示すサイクル カウントを送く
るとシミュレーションを開始する。サイクル カ ウン
ト レジスタ(アレイ73内のレジスタの1つ)はシミュ
レーションが終端するまでに残された時間ステップの数
を追跡し、終端すると制御がハウスキーパーに戻され
る。この信号スケジューラ データ構造は事象のリンク
リストへのポインタを含むテーブルから成る。シミュ
レーションが開始されると、信号スケジューラ評価モー
ド(後に説明)に入いり、事象をスケジュールする。ゼ
ロ メッセージを受信すると、信号スケジューラは最初
にその時間ステップ カウントを減分することによって
ファンアウト シミュレーションを開始する。このカウ
ントがゼロでない間、信号スケジューラは出力フィルタ
ブロック102に現時間に対してスケジュールされた全
てのゲートに関する現時間及びゲート識別子メッセージ
を送くる。最後のゲート メッセージが送られた後、ゼ
ロ メッセージが評価フェーズを開始するためにパイプ
ラインに送くられる。時間ステップ カウントがゼロに
達すると、制御がハウスキーパー115に逆戻りする。
出力フィルタ102は現在及び未決の信号値の追跡を行
ない、必要に応じて事象キャンセルを遂行する。ファン
アウト シミュレーション フェーズにおいて、出力フ
ィルタが時間メッセージを発振検出器ブロック103に送
くり、ゲート メッセージを処理する。個々のゲート
メッセージに対して、出力フィルタはゲート出力上の最
も最近の事象が現時間ステップに対してスケジュールさ
れているか否か決定する。現時間ステップに対してスケ
ジュールされている場合は、未決値が調べられ、ゲート
番号及び未決値を含む2語メッセージが発振検出器ブロ
ック103に送くられる。そうでない場合は、この事象が
キャンセルされる。信号スケジューラからのゼロ メッ
セージの受信は、出力フィルタを評価モードに戻す。
発振検出器ブロック103はゼロ遅延発振を検出する。
この状態はシミュレートされた回路内にフィードバック
経路が存在するときに発生する。発振状態が検出される
と、ブロック103は割込み信号をハウスキーパー115に送
くり、ここで、専用サブルーチンがインタフェース42及
びバス25(第3図)を介して例外(exception)をユー
ザ(ホスト)に送くるために開始される。発振検出器10
3は単にゼロ遅延発振を追跡し、あらかじめ選択された
発振カウントが抜かされていないことを保証する。これ
はまたこの入力信号を出力ログ ブロック104に送く
る。
ブロック104は監視されている信号の事象を記録す
る。これら信号は所望のゲート出力を同定するビット
ベクトル(1ビット/ゲート)によって同定される。
ポインタ リスト ブロック105は出力ログ104からゲ
ート値メッセージを受信し、そのゲートのファンアウト
リスト内のポインタを調べ、ポインタ及びこの値をフ
ァンアウト リスト106に送くる。このポインタ18ビッ
トである。
ファンアウト リスト ブロック106はポインタ リ
ストからポインタ106及び値メッセージを取り、このポ
インタをそのゲートに対するファンアウト リストを調
べるために用いる。個々のファンアウト項目はゲートと
入力番号のペア(gate and input number pair)から成
る。個々のファンアウトに対して、入力メッセージから
この値がこの項目に附加され、これによって入力テーブ
ル107に送くられる1つのゲート入力及び値メッセージ
(gate input and value message)が形成される。
入力テーブル ブロック107は個々のゲートに対する
入力値のリストを保持する。これがファンアウト リス
トから1つのゲート値及び入力メッセージを受信する
と、テーブルをこれに従って更新し、そしてゲート識別
子を含むメッセージをゲート スケジューラ108に送く
る。
ゲート スケジューラ ブロック108はその入力が評
価(evaluation)に対して変更されたゲートをスケジュ
ールする。入力テーブルから受信された個々のメッセー
ジに対して、このゲートはこれが既にスケジュールされ
ているかチェックし、されていない場合は、スケジュー
リング スタック上に押される。スケジュールされたゲ
ートを追跡するためにビット ベクトルが用いられる。
ブロック101−108を通じてゼロ メッセージが伝搬す
ると、評価フェーズが開始され、結果として、ゲート
スケジューラ(第8図の右側の上側ブロック)はそのス
ケジュールされたゲートを入力テーブルに送くる。
評価フェーズにおいて(第8図の右側部分)ゲート
スケジューラはそのスタックからスケジュールされたゲ
ートを取り出し、ゲートをスケジュールされていないと
マークし、ゲート メッセージを入力テーブル ブロッ
ク107上に送くる。最後のゲートがスタックから取り出
されると、ゼロ メッセージが入力テーブルに送くられ
る。
この入力テーブルはゲート メッセージを受信し、ゲ
ートに対する現入力値を調べる。受信された個々のゲー
ト メッセージに対し、ゲート識別子及びその入力値を
含む2語メッセージがゲート タイプ テーブル112上
に送られる。ゼロ メッセージは入力テーブルをファン
アウト フェーズに戻す。
ゲート タイプ テーブルはゲート タイプを調べ、
この情報を入力テーブルから受信されたメッセージに附
加する。結果としての2語メッセージが機能ユニット11
1に送くられる。
機能ユニット ブロック111は指定されたゲート機能
ユニットをシミュレートし、入りメッセージ内のゲート
タイプ及び入力値を用いてそのゲートによって生成さ
れる出力値を計算する。結果としての出力値は、ゲート
識別子とともに、遅延テーブル110に送くられる。
遅延テーブル110はゲート及び信号の変化の方向によ
って正しい遅延を調べる。こうして決定された遅延がゲ
ート値メッセージに附加され、そして入力ベクトル リ
スト ブロック109にパスされる。
入力ベクトル リスト ブロック109は遅延を時間に
変換し、メッセージを出力フィルタ(102)にパスす
る。これは次に現時間がそれに対して入力ベクトルがス
ケジュールされた最後の時間に進んだか否かチェックす
る。現時間がこのベクトル時間以上である場合は、次の
スケジュールされたベクトルがメッセージ流内に挿入さ
れ、出力フィルタ上にパスされる。
この出力フィルタはゲート評価の結果がゲート出力の
遅延を変えたか否かを調べる。変えた場合は、出力フィ
ルタが未決事象をログし、ゲート及び時間メッセージを
信号スケジューラに送くる。
信号スケジューラは出力フィルタから受信される事象
をスケジュールする。ゼロ メッセージによって、サイ
クル カウントがゼロでないことを条件として、次のフ
ァンアウト サイクルが開始される。
【図面の簡単な説明】
第1図は8個のクラスタが個々のノードに接続され、別
個のバスを通じて1つのホストコンピュータと通信する
3−キューブ通信網を示し; 第2図は個々のノードの一般構造を示し; 第3図はクラスタを構成する処理要素及び処理要素を相
互接続するローカル メッセージ スイッチを示すブロ
ック図であり; 第4図は第3図に示されるローカル メッセージ スイ
ッチの詳細なブロック図であり; 第5図は処理要素自体の詳細なブロック図であり; 第6図はFOUユニットのブロック図であり; 第7図はAAUユニットのブロック図であり;そして 第8図は論理シミユレーションを実現するためのクラス
タの使用を図解する。 <主要部分の符号の説明> 10……クラスタ 11……ホストコンピュータ 12−24……双方向ライン 25……バス 30……クロスバースイッチ 32……出力バッファ
───────────────────────────────────────────────────── フロントページの続き (72)発明者 アンジュア エス.クリシュナクマー アメリカ合衆国 07060 ニュージャー シイ,ウォーレン,マウント ホレブ ロード 205 (56)参考文献 特開 昭58−205870(JP,A) 特開 昭58−146947(JP,A)

Claims (7)

    (57)【特許請求の範囲】
  1. 【請求項1】プログラマブル アクセラレータにおい
    て、該アクセラレータが: 情報を該アクセラレータに向けてあるいはこれから伝送
    するための通信網;及び該通信網に応答する複数のプロ
    グラマブル処理要素を含み、個々の該処理要素が 複数のデータ バス 該バスと該通信網の間でメッセージを通信するための入
    力及び出力キューブロック、及び 該バス上の信号に応答して1つのバス上のメッセージの
    選択された1つの欄及び別のバス上のメッセージの選択
    された別の欄を選択し、これら2つの選択されたメッセ
    ージの欄に関して操作し、その操作結果を該バスの1つ
    の上のメッセージのあらかじめ選択された欄内に置くた
    めの欄操作ユニットをもつことを特徴とするプログラマ
    ブル アクセラレータ。
  2. 【請求項2】該キューが空或いはフルのとき選択された
    動作を中断するためのストール手段がさらに含まれるこ
    とを特徴とする請求項1記載のプログラマブル アクセ
    ラレータ。
  3. 【請求項3】1つのメモリ及び該メモリを任意の所望の
    語幅に構成するための手段がさらに含まれることを特徴
    とする請求項1記載のプログラマブル アクセラレー
    タ。
  4. 【請求項4】ハードウェア アクセラレータにおいて、
    該アクセラレータが: 第1の複数のクラスタ; 第2の複数のノード及び第3の複数の通信リンクをも
    ち、該リンクが該ノードを相互接続し、該ノードが該ク
    ラスタを該リンクに接続する通信網; 該ノードに接続されたクラスタに対する入力信号の所定
    の経路を該入力信号の所定の着信先に基づいて評価する
    ためのコントローラ要素、 該コントローラに加えられた該信号の経路を該信号の該
    着信先に基づいて決定するためのスイッチ、及び 該スイッチに応答して該信号を該ノードに接続された出
    力リンク及び該ノードに接続された該クラスタに送るた
    めのバッファを含み; 該クラスタが更に 専用のランダム アクセス メモリをもつ複数のプログ
    ラマブル処理要素、及び 該プロセッサを1つのノード及び互いに相互接続しパイ
    プライン構成を形成するためのスイッチを含むことを特
    徴とするプログラマブル アクセラレータ。
  5. 【請求項5】グラフ処理用のプログラマブル アクセラ
    レータにおいて、該アクセラレータが: 複数の実質的に同一のプログラマブル処理要素; 該処理要素をパイプライン構成に相互接続し、該処理要
    素の間でメッセージをパスするための通信網;及び 該処理要素の個々にプログラム及びアクセラレータによ
    って遂行されるべき所定のタスクの特性であるデータ情
    報をロードするための手段を含むことを特徴とするプロ
    グラマブル アクセラレータ。
  6. 【請求項6】グラフ処理用のプログラマブル アクセラ
    レータにおいて、該アクセラレータが: 複数の処理要素;及び 各々が複数のデータ欄からなる語によって構成されてい
    るメッセージを介して該処理要素との及び処理要素間の
    通信を行なうための手段を含み、該個々の処理要素がデ
    ータ欄の選択されたいくつかに対して操作するように構
    成されていることを特徴とするプログラマブル アクセ
    ラレータ。
  7. 【請求項7】複数の実質的に同一の処理要素、及び語か
    らなるメッセージを介して該処理要素との及び該処理要
    素間の通信を行なうための手段を含むシステムにて論理
    回路のシミュレーションを展開するためにシミュレーシ
    ョン アルゴリズムを実行するための方法において、該
    個々の処理要素がデータ欄の選択されたいくつかに対し
    て操作するように構成され、該方法が 該処理要素をバイプラインに構成するステップ、及び 個々の該処理要素にて該シミュレーション アルゴリズ
    ムのあらかじめ指定された部分を実行するステップを含
    むことを特徴とする方法。
JP15511488A 1987-06-25 1988-06-24 プログラマブル アクセラレータ及びその方法 Expired - Lifetime JP2638613B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US6692187A 1987-06-25 1987-06-25
US066,921 1987-06-25

Publications (2)

Publication Number Publication Date
JPS6426969A JPS6426969A (en) 1989-01-30
JP2638613B2 true JP2638613B2 (ja) 1997-08-06

Family

ID=22072584

Family Applications (1)

Application Number Title Priority Date Filing Date
JP15511488A Expired - Lifetime JP2638613B2 (ja) 1987-06-25 1988-06-24 プログラマブル アクセラレータ及びその方法

Country Status (1)

Country Link
JP (1) JP2638613B2 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
USRE48845E1 (en) 2002-04-01 2021-12-07 Broadcom Corporation Video decoding system supporting multiple standards

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7003758B2 (en) 2003-10-07 2006-02-21 Brion Technologies, Inc. System and method for lithography simulation
US7444276B2 (en) 2005-09-28 2008-10-28 Liga Systems, Inc. Hardware acceleration system for logic simulation using shift register as local cache
CN114489506B (zh) * 2022-01-21 2024-02-27 杭州海康存储科技有限公司 存储访问控制装置、方法及存储设备

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
USRE48845E1 (en) 2002-04-01 2021-12-07 Broadcom Corporation Video decoding system supporting multiple standards

Also Published As

Publication number Publication date
JPS6426969A (en) 1989-01-30

Similar Documents

Publication Publication Date Title
US5093920A (en) Programmable processing elements interconnected by a communication network including field operation unit for performing field operations
EP0102242B1 (en) Data processing apparatus
EP0733234B1 (en) Barrier synchronization for distributed memory massively parallel processing systems
JP2502960B2 (ja) マイクロコンピュ−タ、ならびにマイクロコンピユ−タおよびマイクロコンピユ−タ・ネットワ−クを動作させる方法
US7487302B2 (en) Service layer architecture for memory access system and method
EP0172038B1 (en) Information processor
JPS60218138A (ja) 事象駆動形アルゴリズムを実行するコンピユータ装置
WO1994003860A1 (en) Massively parallel computer including auxiliary vector processor
JPH0243212B2 (ja)
US4584642A (en) Logic simulation apparatus
Agrawal et al. MARS: A multiprocessor-based programmable accelerator
US4541045A (en) Microprocessor architecture employing efficient operand and instruction addressing
EP0217922A1 (en) NETWORK FOR SIMULATION OF COMPUTER FUNCTIONS OF VAST COMPUTER SYSTEMS.
US5907693A (en) Autonomously cycling data processing architecture
US5848297A (en) Control apparatus for maintaining order and accomplishing priority promotion in a computer interconnect
JP2638613B2 (ja) プログラマブル アクセラレータ及びその方法
US5034879A (en) Programmable data path width in a programmable unit having plural levels of subinstruction sets
Agrawal et al. Architecture and design of the MARS hardware accelerator
US4975837A (en) Programmable unit having plural levels of subinstruction sets where a portion of the lower level is embedded in the code stream of the upper level of the subinstruction sets
US4814983A (en) Digital computer for implementing event driven simulation algorithm
JPH01500065A (ja) 複数制御ストアを有するミクロプログラム情報処理システムの装置と方法
EP0177268B1 (en) Programmable data path width in a programmable unit having plural levels of subinstructions sets
EP0314342B1 (en) Parallel pipelined computer processor
JP2717850B2 (ja) 高速通信機構を持った並列計算機
JP3704367B2 (ja) スイッチ回路