JP2509678B2 - 計算処理装置 - Google Patents

計算処理装置

Info

Publication number
JP2509678B2
JP2509678B2 JP63167894A JP16789488A JP2509678B2 JP 2509678 B2 JP2509678 B2 JP 2509678B2 JP 63167894 A JP63167894 A JP 63167894A JP 16789488 A JP16789488 A JP 16789488A JP 2509678 B2 JP2509678 B2 JP 2509678B2
Authority
JP
Japan
Prior art keywords
processing
row
output
processing element
computing device
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 - Fee Related
Application number
JP63167894A
Other languages
English (en)
Other versions
JPS6428767A (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 JPS6428767A publication Critical patent/JPS6428767A/ja
Application granted granted Critical
Publication of JP2509678B2 publication Critical patent/JP2509678B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

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

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Theoretical Computer Science (AREA)
  • Computing Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Multi Processors (AREA)
  • Transforming Light Signals Into Electric Signals (AREA)

Description

【発明の詳細な説明】 本発明はパラレル計算、より詳細には、高度なパラレ
ル計算に適するプロセッサ アーキテクチャーの技術に
関する。
発明の背景 計算速度及び複雑さに対する需要の高まりから、計算
技術の注目はパラレル処理に向っている。研究が用いら
れるアルゴリズム及び使用されるハードウェア アーキ
テクチャーの両面からさまざまな方向に進められてい
る。パラレル処理分野に関しての適当な概説がR.H.クー
ン(R.H.Kuhn)らによって編集され、最初、パラレル処
理に関する第10回国際会議(Tenth International Conf
erence on Parallel Processing)、1981、8月25−28
日、ベライラ(Bellaire)、MI開催に提出された[パラ
レル処理に関する教本(Tutorial on Parallel Process
ing)]に見つけられる。
パラレル計算における主な論争点は展開されるべき十
分なパラレリズムを同定すること、さまざまなプロセッ
サを同期すること、及び処理ユニット間の通信を管理す
ることである。
パラレリズムの最初のアプリケーションはパイプライ
ンド アーキテクチャー(pipelined architecture)と
の関連であった。このアーキテクチャーにおいては、要
求される計算がサブ計算(sub−computations)の順次
セットに分割され、これらサブ計算が別個であるが相互
接続されたハードウェア内で遂行された。ある意味にお
いては、別個のハードウェア ピースの個々が一連の入
力信号に関してある特定の機能を遂行する1つのプロセ
ッサであると言うことができる。
多重プロセッサ網はパラレル コンピュータ アーキ
テクチャーのもう1つのタイプである。この網において
は、幾つかのコンピュータが問題の識別可能な異なる部
分に関して同時に働き、中間結果を送り、また全体とし
ての解をコーディネイトするために互いにメッセージを
介して相互接続網を通じて通信する。多重プロセッサ網
内におけるパラレリズムの粒度は、典型的には、非常に
粗い。問題が主な分割可能な部分に分割され、個々のプ
ロセッサはこの分割可能な部分に対する解が展開される
まで独立して動作する。問題のこの分解ラインは、通信
プロセスが複雑で、また“ハンドシェーキング(handsh
aking)”プロトコールを必要とするため、必要とされ
る通信及びコーディネーションが最小化されるように選
択される。このアーキテクチャーは、通常、高度のパラ
レリズム、比較的単純なコーディネーション、及び比較
的少い通信を必要とする問題に対して利用される。この
理由は、問題をサブ パートに分解することは、しばし
ば、このアーキテクチャーを過負荷にするような大きな
通信及びコーディネーション負担を導入するという事実
に基づく。このコンピュータ網アーキテクチャーの一例
としては、Cal Techとして実現される“ハイパーキュ
ーブ(Hypercube)”がある。
データ フロー アーキテクチャーはもう1つのタイ
プのパラレル コンピュータ アーキテクチャーを形成
する。このアーキテクチャーは、実行されるべきアルゴ
リズムが独立して処理できる複数の部分に分解できるよ
うな場合に最も多く使用される。このアーキテクチャー
はこのアルゴリズムの部分が割り当てられる複数のプロ
セッサを特徴とし、個々のプロセッサは要求される全て
の入力が到着した時点で起動される。結果として、計算
のコーディネーションはデータ流によって達成される。
あるアルゴリズムがもつ全てのパラレリズムを展開する
ことはごく普通のアプローチである。主な短所は“デッ
ドロック(deadlock)”状況に結びつくような相互依存
を阻止するために通信を管理しなければならないことで
ある。
アレイ プロセッサはもう1つのタイプのパラレル
コンピュータ アーキテクチャーを構成する。このアー
キテクチャーは単一の制御ユニットの制御下において動
作する多くの機能的に同等の処理要素(processing ele
ment、PE)から成る。このさまざまな処理要素はデータ
が処理要素間で流れることを許されるように相互接続さ
れる。この相互接続トポロジーは固定される。ただし、
異なる設計は異なるトポロジーをもつ。幾つかの相互接
続トポロジーが幾つかの論文、例えば、T.フェン(T.Fe
ng)によってIEEEトランザクションズ オン コンピュ
ーターズ(IEEE Transactions on Computers)、Vol.C
−23、No.3、1974年3月号、ページ309−318に掲載の論
文[パラレル プロセッサにおけるデータ操作機能及び
これらの実現](Data Manipuleting Functions in Par
allel Processors and Their lmplementation)、 D.H.ローリー(D.H.Lawrie)によってIEEEトランザク
ションズ オン コンピューターズ(IEEE Transaction
s on Computers)、Vol.−C24、No.1、1975年3月号、
ページ1145−1155に掲載の論文[アレイ プロセッサに
おけるアクセス及びデータの整合(Access and Alignme
nt of Data in an Array Processor)、及びC.ミード
(C.Mead)らによる著書[VLSIシステムの概説(Introd
uction to VLSI System)]、アジソン−ウエスレー出
版社(Addison−Wesley Publishing Company)、リーデ
ィング(Reading)、MA、1980年、ページ271−273にお
いて紹介されている。アレイ プロセッサ トポロジー
はさまざまなアルゴリズム演算、例えば、マトリックス
演算の規則性を利用してさまざまな処理要素間のコーデ
ィネーション及び通信を簡素化するのに適する。相互接
続構成は固定されているため、アレイ プロセッサは同
一の操作が多くのデータ項目について遂行されるような
アプリケーション、例えば、マトリックス演算を含むア
プリケーションに最も有効である。
上に説明の技術は向上された計算パワーを提供するの
にもかかわらず、今までに提案されたアーキテクチャー
には幾つかの短所がある。1つの問題点はこれらアーキ
テクチャーが非常に専用化されており、個々が狭いクラ
スの問題のみを効率的に解くように設計されていること
である。もう1つの問題は、このアーキテクチャーを最
も効率的に使用するのには任意のタスクをいかに構成す
べきであるか、あるいはこの逆の事項を教えるこれらア
ーキテクチャーに関しての指針が提供されてないことで
ある。さらにもう1つの問題は上のアーキテクチャーは
使用可能なハードウェアを最も効率的に利用するために
可能なパラレリズムを動的に割り当てる手段をもたない
ことである。発明の概要 本発明によるアーキテクチャーは先行技術によるアー
キテクチャーの多くの問題を少しの処理アレイを処理要
素の全アレイをエミュレートする単一の処理要素(追加
のメモリを含む)として使用することによって克服す
る。エミュレートされるアレイは任意の大きさをもつこ
とができる。本発明によるアーキテクチャーはアレイ
プロセッサと処理要素の大きなアレイ(ロウ及びカラ
ム)が接近して接合された遅延要素を用いてより小さな
アレイにてエミュレートされること、及びこの処理要素
がルーティングあるいはスイッチング機能も含む点が異
なる。遅延要素内の遅延(及び従ってメモリ)のコント
ロールによってアレイ内の処理要素の相互接続が決定さ
れ、エミュレートされたアレイ内の個々の処理要素が任
意の選択された機能を隣の処理要素によって遂行される
機能と独立して遂行できるようにすることによって最大
限の効率が達成される。
本発明による原理によると、実行すべきアルゴリズム
がロウ及びカラムに配列された処理要素のアレイ上に概
念的にマッピングされる。ここで、カラム内のデータ依
存は単方向であり、また処理要素のロウ内のデータ依存
は最大でも単方向できる。これは1つのあるいは複数の
実際の処理要素を時分割多重化し、概念上の全アレイを
エミュレートし、これによってこのアルゴリズムを遂行
することを可能にする。処理のスケジューリング及び通
信機能はアルゴリズムの概念上のアレイ レイアウトに
よって決定される処理要素によって遂行される。
具体的説明 第1図は上で述べられたC.ミード(C.Mead)らによる
本のページ271−273に解説される二次元長方形アーキテ
クチャーを示す、このアーキテクチャーは基本処理ユニ
ット10の長方形相互接続を特徴とする。ユニット10−1
から10−3が最初のロウ(row)内に示され、ユニット1
0−4から10−7が第2のロウ内に示され、そしてユニ
ット10−8が最後のロウ内に示される。特定のカラム
(colum)及びロウ内の個々のプロセッサ10は同一のカ
ラムの前のロウ内の処理要素から(例えば、ユニット10
5の場合はライン11を介して)入力信号を受信し、さら
同一のロウの別のカラム内の2つの隣接する処理要素、
つまり、右側の要素及び左側の要素から、(例えば、ユ
ニット10−5の場合はライン12及び13を介して)入力信
号を受信する。対応するように、個々の要素10はそのロ
ウ内の同一の隣りの処理要素に(例えば、ユニット10−
5の場合はライン14及び15を介して)出力信号を供給し
3さらにそのカラムの次のロウ内の処理要素に(例え
ば、ユニット10−5の場合はライン16を介して)出力信
号を供給する。
第1のアーキテクチャーは紹介の本の中では個々の処
理要素内のいわゆる”内積(inner product)”演算の
実現との関連で示されるが、第1図のアーキテクチャー
はこれら処理要素の個々の動作を独立的に制御し、また
1つの完全なトポロジカルカバー(topological cove
r)が達成できるように処理モジュールの通信能力を向
上させることによって任意の所望の総合機能を遂行する
ため用いることもできる。この能力が存在することは以
下の考察から理解できる。処理の全てのタスクは逐次に
遂行できる入力信号に応答する基本処理ステップの集合
に分解することができる。これら処理ステップの多く
は、パラレル処理できるようにアレンジされ、この後
に、幾らかの逐次処理にアレンジされたステップが続
く。処理ステップのパラレル実行のシーケンスは、信号
を特定の処理要素に向けるための幾つかのスイッチ手段
と相互接続された幾つかの汎用処理要素にて実行でき
る。第1図においては、パラレルにて遂行されるべき幾
つかのステップがプロセッサ10の1つのロウに割り当て
られ、パラレルにて遂行されるべき続く複数のステップ
が処理要素10の次のロウに割り当てられ、処理要素10の
次のロウへの信号のスイッチング動作が要素10の間の1
つあるいは複数のロウに割り当てられる。要素10は、原
理上、信号をパラレル接続(12、13、14、及び15)を介
してカラム間で送信することができるためスイッチング
に用いることもできる。これに加えて、第1図の構造は
個々の処理要素10がこの3つの入力の任意の1つからの
信号を3つの出力の任意の1つに向け、最低でもこの2
つの入力信号に関して1つの完全なブール カバー(Bo
olean cover)を形成するセットのブール関数(Boolean
functions)を遂行する能力があるかぎり、必要とされ
る全ての計算及び信号スイッチング機能を実現できるこ
とがわかる。前半の要件は信号の通信に関し、後半の要
件は信号の論理的相互作用に関する。この2つの要件が
揃ったとき計算が可能となる。
第1図のアーキテクチャーによると処理要素が上に記
述の要件を備える場合には全ての所望の処理が達成でき
るのに加えて、個々のロウ内での計算は直ぐ前のロウか
らの結果のみに依存することがわかる。つまり、これ
は、さまざまなロウ内で遂行される動作を多重化し、こ
れらを第2図に示されるようなプロセッサ17の1つのロ
ウに折り畳むことができることを意味する。第1図の処
理要素10と第2図の処理要素17の唯一の相違点は、要素
17があるロウの処理の結果をフィードバックし、次のロ
ウの処理に影響が与えられるように幾つかの遅延あるい
はラッチング手段(遅延ライン、フリップフロップ、レ
ジスタ等)を含むことを要求されることである。これに
加えて、個々の反復において処理要素の個々が遂行する
機能(function)を制御するための手段が要求される。
勿論、第2図のアレイの総処理スループットは第1図の
アレイの処理スループットより幾分か落ちる。ただし、
第2図のアレイは、ハードウェアが小さくてすむこと、
及びアレイの有効深さ(ロウの有効数)が固定されず可
変でコントロールできるなどの長所もある。従って、構
造サイズが実行中の特定のアルゴリズムから分離(deco
uple)される。
本発明の原理による第2図の構造の1つの大きな長所
は、ロウ内の処理要素の個々がそのロウ内の他の処理要
素内で遂行される機能と独立してある所望の機能を遂行
するように(機能制御バス18を通じて)制御できること
である。さらに、処理要素のどれもが時間に“固着(st
uck)”されず、個々の要素がアレイの異なるロウをエ
ミュレート(emulate)するとき、異なる機能を遂行す
ることができることである。
第2図のアーキテクチャーは、非常にパワフルではあ
るが、個々の処理要素17がこのロウ内の右及び左隣りの
処理要素の両方からのデータに依存するためにこれ以上
に縮小することはできない。つまり、要素17の処理は両
隣の要素内の処理が完結しない限り完結しない。従っ
て、処理を逐次的に行なうことはできない。このデータ
依存、あるいはデッドロック(deadlock)は、計算がさ
らに分解されることを阻止し、ハードウェアの縮小と処
理時間とのトレード オフ(trade off)にある限界を
与える。
より優れた構成が、例えば、第3図に示される例のよ
うに、1つのロウ内のカラム間の接続が、片方向からの
みであるあるいは全く存在しないようなアーキテクチャ
ーにて実現される。これに対応する要件は、ロウが信号
をこれらより上のロウ、あるいは下のロウのどちらかの
みに供給することである。第3図のアーキテクチャーは
ロウ及びカラムに配列された処理要素20をもち、個々の
処理要素20は2つの入力及び2つの出力を含む。第3図
内の個々の要素20の右の入力は同一カラムの前のロウ処
理要素の左の出力から派生される。個々の処理要素の左
の入力は左隣のカラムの前のロウの処理要素の右の出力
から得られる。個々のロウ内のこの隣接関係(adjacenc
y relationship)はロウ内の全ての処理要素に対して同
一である。つまり、ロウ内の全ての処理要素はこの処理
要素の左に当る前のロウ内の隣接する処理要素に接続さ
れる。ロウ内のこの隣接関係は、必ずしも右あるいは左
の関係である必要はなく。またロウ間で同一方向に保た
れる必要もない。この設計上の自由は第3図のアーキテ
クチャーにおいては具体化されてない。また、エミュレ
ーションを遅延ライン(あるいはFIFOメモリ)のみで達
成したい場合は、この設計上の自由さに幾らかの制約が
課される。第1図に示される両サイド ロウ内依存(tw
o−sided intra−row dependency)を分解すると、第3
図の構造はロウのみでなくカラムにも折り畳むことがで
きる。これに加えて、2つの入力及び2つの出力のみを
もつ処理要素20を用いることにより、プロセッサ20を最
小限の回路にて実現できる。通信部分はクロスオーバ
ー、バイパス、及びフォーク動作を実現するのみでよ
く、論理部分はNORあるいはNAND機能を実現するのみで
よい。この最小限の回路は1つの完全なトポロジカル及
びロジック カバー(topological and logic cover)
を提供する。
第4図は処理要素20に対する1つの実施態様を示す。
本質的に、これは信号を出力ライン26及び27に分配する
のに用いられるプログラマブル3入力×2出力クロスバ
ー スイッチ23に接続された入力21及び22を含む非常に
基本的なPLAである。ライン21及び22はまたNORゲート24
内で結合され、この出力はクロスバー スイッチ23に加
えられる。クロスバー スイッチ23内のクロス ポイン
トは特定の相互接続パターンを与えるように制御あるい
はプログラムすることが可能である。この制御可能なク
ロス ポイントは、示されるごとく、バス30から得られ
る“専用化(customizing)”制御信号によって制御さ
れるANDゲートにて実現できる。
第4図の処理要素は上に指定の基本セットの機能を実
現できるのみでなく、ぎりぎりの最低限度を提供する以
外はどのような要件も必要としないことが判明した。事
実、要素20は、要求される機能、動作速度(影響を与え
るスループット)、及び制御の複雑さによって現実に要
求されるだけの複雑さにされる。例えば、これは豊富な
セットの原子命令を実行する従来のCPUでも、あるいは
あらかじめ選択されたサブルーチンを実行する1つの完
全なコンピュータでもあり得る。
第2図との関連で述べられたごとく、個々の処理要素
17は幾つかの遅延あるいはメモリ手段とともに用いるこ
とが必要である。第4図の処理要素20が第3図の全アレ
イを実現するのに用いられる場合は、異なる遅延あるい
はメモリ手段が必要である。これは、この処理要素はあ
るロウ内の特定の要素の機能を実現するが、同一のロウ
内のこの特定の要素の左の要素に対して前に計算された
値及びこの要素の右の上のロウの要素に対して計算され
た値を覚えておく必要があるという事実による。
第5図はロウ及びカラムをエミュレートするように多
重化された単一の処理要素をもつ第3図のアーキテクチ
ャーを実現するための構成を示す。これは、第4図に図
解される処理要素20に加えて要素20に信号を供給するOR
ゲート31及び32並びに(上に説明の)それぞれ要素20の
2つの出力ポートから入力信号を受信する遅延要素33及
び34を含む。より具体的には、要素20の右の出力は遅延
要素33に加えられ、遅延要素33の出力はORゲート32への
入力の1つに接続される。ORゲート32の出力は要素20の
左の入力に接続される。対応するように、要素20の左の
出力は遅延要素34に加えられ、遅延要素34の出力はORゲ
ート31の入力の1つに接続される。ORゲート31の出力は
要素20は右の入力に接続される。要素33及び34はFIFO
(先入れ先出し)メモリであり、要素33及び34によって
提供される遅延は、勿論、第3図のアーキテクチャー内
のロウの“幅(width)”、つまり、エミュレートされ
たアレイのロウ内の処理要素の数と関連する。より詳細
には、要素33及び34に要求されるメモリは D34=N、 及び D33=N+1 である。ここで、Nはロウの“幅(width)”である。
第3図の回路は第5図の回路によって時分割多重を通
じてエミュレートされるため、第5図の回路の入力、出
力、及び制御は逐次である。入力信号は第1のロウがエ
ミュレートされるとき加えられ、出力信号は最後のロウ
がエミュレートされるとき抽出される。専用化制御信号
(customizing control signals)(バス30)はこのア
レイ内の個々のPEのエミュレーションとともに加えられ
る。また、時分割多重のために、入力及び制御信号は反
復的に加えることが要求され、また出力は反復的に捕捉
される。本発明によるアーキテクチャーのこの面に関し
ては、1つの例とともに後に詳細に説明される。
適当な制御下において、第5図の回路は第3図に図解
されるものと本質的に同一のアレイ アーキテクチャー
を実現する。第3図と異なる点はアレイ エッジの所で
の信号の扱いのみである。つまり、第5図のアーキテク
チャーはアレイ エッジ出力信号が他のアレイ エッジ
ポイントの所で入力信号として自然に通信できるよう
にし、また、これら接続はいつも用いられることはない
が、これらは特定の設計の実現に追加の自由度を与え
る。一例として、第6図は第5図の回路が全アレイをエ
ミュレートするのに用いられたときのアレイ エッジ
(ライン41−44)の接続を図解する。
示されるごとく、第5図の構成は1つの処理要素20を
含むが、これが遅延要素との組合せで全アレイをエミュ
レートする。逆の言い方をすれば、全アレイが1つの処
理要素に折り畳まれる。ただし、第3図のアーキテクチ
ャーの1つの大きな利点は、“折り畳み(folding)”
の程度が選択できることである。これは、実行されるア
ルゴリズム、要求される処理速度、使用できるハードウ
ェア、及びこれらの組合せの関数として決定される。つ
まり、1つの処理要素を用いることも、あるいは1つの
ロウ内に2つの処理要素、1つのカラム内の2つの処理
要素、1つのロウ内の2つの処理要素の小さなアレイ及
び1つのカラム内の2つの処理要素、あるいはロウ内の
任意の数の要素をもつ大きなアレイの処理要素及び任意
の数のロウの処理要素を用いることによってこの折り畳
みの程度を少なくすることもできる。第7図、第8図及
び第9図は、使用されるサブアレイが、同一のロウ内に
2つの処理要素を含む場合、同一のカラム内に2つの処
理要素を含む場合、及び2×2アレイの処理要素を含む
場合の例を示す。
第7図に示されるように1つのロウ内に2つの処理要
素を使用する構成は、4つの遅延要素を使用することが
要求される。ただし、個々のサイズは第5図内の遅延の
半分である。すなわち、1つはN/2+1(ここでNはロ
ウの“長さ”)の遅延をもち、残りの3つはN/2の遅延
をもつ。第8図に示されるように1つのカラム内に2つ
の処理要素を使用する構成は第5図のような2つの遅延
要素に加えて、最も上の処理要素(20−1)の最も右側
の出力を最も下の処理要素(20−2)の最も左側の入力
に接続する1つの単位遅延の遅延要素35を要求する。第
9図は1つのアレイが2×2アレイの処理要素に折り畳
まれたケースを示す。ついでながら、第8図から第9図
はカラムの相互接続の向きがロウからロウへの方向と反
対であるアレイを実現することに注意する。
本発明によるアーキテクチャーは所望のサイズのアレ
イの実現におけるフレキシビリティーを持つのに加え
て、任意のサイズの任意の数のアレイを任意の順番に
(本質的に)同時に実現できるという追加のフレキシビ
リティ及び長所をもつ。つまり、あるアプリケーション
においては、同時に起こる多数の入力が存在することが
考えられ、従って、長いロウをもつ1つのアレイを与え
ることが有利である。遅延値(例えば、D33及びD34)を
適当に選択することによって所望のアレイ幅が得られ
る。このようなアプリケーションにおいては、計算が、
おそらく、非常に速く達成されるため、要求されるロウ
の数は少ない。反対に、あるアプリケーションにおいて
は、大きなロウの幅は要求されないが、ロウの数が大き
いことを要求される。遅延をコントロールする同じ技術
によって、目的を達成するようにこのアレイを修正する
ことができる。さらに別のアプリケーションにおいて
は、同時に遂行されるべき2つあるいはそれ以上の独立
したタスクが存在し(タイム シェアリング、マルチ、
タスキング等)、ユーザが多少の処理速度を犠牲にする
覚悟があるようなケースもある。このようなアプリケー
ションにおいては、エミェレートされるアレイを遅延値
の適当な動的コントロールによって個々のプロセスに最
も適するように細分することができる。
遅延要素をコントロールすることによってエミュレー
トされるアレイの幅を簡単にコントロールできるのと同
じように、エミュレートされるロウの数をコントロール
することも非常に簡単である。所望の数は出力データが
処理要素からアクセスされる時期及び新たな入力データ
が処理要素に挿入される時期を個々の処理要素の機能を
命令する制御信号との組合せで制御することにより実現
できる。
本発明によるフレキシビリティのもう1つの根源は遅
延要素間の関係にあり、この関係はアレイの有効接続を
コントロールする。例えば、第5図との関連において、
このN、N+1の関係は“隣中間(adjacent neighbo
r)”の接続を生成する。また、例えば、遅延値の関係
がN、N+2のような場合は、“スキップ ワン(skip
one)”接続が生成される。第10図は遅延値が別個の制
御信号の影響下で調節できる構成を図解する。遅延要素
D1及びD2及びこれに続くアテンダント スイッチは、単
に、処理要素の出力と入力の間に直列に接続できる任意
の数の遅延/スイッチの組合せを代表する。個々のスイ
ッチは直接信号経路か遅延された信号経路のいずれかを
選択し、これにより選択された遅延セグメントが信号あ
るいはバス40の制御下において挿入される。遅延(D1と
D2)は同一であってもなくても良く、また遅延の上側ス
トリングに対する制御は遅延の下側ストリングに対する
制御と同じであってもなくてもよい。このフレキシビリ
ティは異なるアレイ幅及び異なる相互接続パターンの実
現を許す。
エミュレートされるべきアレイがサブアレイに折り畳
まれる場合はさらに追加のフレシビリティが得られる。
例えば、第9図において、2×2サブアレイ内の個々の
処理要素の相互接続は固定される。ただし、このサブア
レイ内の基本処理要素間の固定された関係を保持する理
由は存在せず、いったんこれが理解されると、処理時間
をパラレリズム(parallelism)に対して引き替する追
加のフレキシビリティが存在することがわかる。つま
り、処理要素を1つのカラム、1つのロウ、あるいはこ
の中間の任意の組合せを形成するように相互接続するこ
とができる。ロウを形成するようにアレンジされた場合
は、最大のパラレル処理が実現される。一方、カラムを
形成するようにアレンジされた場合は、要求の少なくと
も一部の答えとして(ラテンシーの点から)最大の処理
速度が実現される。ある意味において、これはエミュレ
ートされたアレイを通じての異なるタスクのタイプライ
ニング(pipelining)を許す。(遅延値の選択に依存し
ない)この相互接続のフレキシビリティが第11図に図解
されるが、ここでは4つの処理要素がスイッチ50通じて
この構成の入力及び出力端子と相互作用する。バス51を
介して制御されるスイッチ50は、所望の再構成フレキシ
ビリティを実現する任意のスイッチ(例えば、クロスバ
ー スイッチ)であり得る。
本発明によるアーキテクチャーを用いると本当の意味
での汎用プロセッサが実現できることが発見された。先
行技術によるパラレル プロセッサ アレイは、これら
アレイが常に汎用処理でなく特定のタスクに対して設計
されてきたためそうではなかった。この汎用プロセッサ
に対する制御は、任意の他の機能をエミュレートするた
めの本発明によるアレイの制御と同様に、基本処理要素
アレイの制御ポート、例えば、第5図のバス30を通じて
行なわれる。この制御はエミュレートされたアレイ内の
さまざまな処理要素への処理負荷の割り当てに直に続
く。事実上は設計上の方法論である“割り当て(assign
ment)”プロセスの一例が以下に示される。
本発明によるアーキテクチャーにより実現される汎用
コンピュータの制御と関連して注目すべき重要な事項は
条件付きで分岐である。従来の汎用プロセッサにおいて
は、格納されたプログラム制御が、通常、多くの分岐文
を含む。分岐が要求されると、プログラム カウンタが
幾つかの命令を前後にジャンプし、これにより幾つかの
命令が実行されなかったり、あるいは異なる順番で実行
されたりする。一見したところでは、その状態をプリセ
ットできる(“ジャンプ”を実行する)プログラム カ
ウンタをもたないプロセッサでは、条件付き分岐が困難
な問題を与えるように思える。しかし、実際には、問題
は全く存在しない。従来のコンピュータ アーキテクチ
ャーはプログラム カウンタを含み、そしてその状態を
プリセットできるカウンタは簡単に実現できる。このプ
ログラム カウンタをジャンプさせることは単にカウン
タを増分する以上のステップを要求するが、実行を必要
としない命令をジャンプすることによって、通常、これ
以上の処理時間が回復される。一方、条件付きジャンプ
を命令内に起動条件を組みこむこと、及び、この起動条
件下で個々の命令を順番に遂行することによって完全に
回避することもできる。通常、この方法は、個々の命令
が別個に起動あるいは不能にされ、また少なくとも遂行
することを試られるため、及び個々の命令がこれが条件
を組み込むためにより複雑となるために用いられない。
ただし、本発明によるアーキテクチャーによると、多量
のパラレリズムによりこの複雑な命令が単純な命令とほ
とんど同じ速度で遂行でき、従って、条件付き分岐技術
に本来用いられる条件付き実行を命令自体に組み込むこ
とが一般に有利である。
換言すれば、従来のコンピュータ及び本発明による計
算オリガミ(computational origami)の両方におい
て、解かれるべき問題はある意味でマッピングされ、ハ
ードウェア ウインドウ(従来のコンピュータの場合は
CPU;本発明による計算オリガミの場合は処理要素のサブ
アレイ)がこのマッピングされた問題にパスされる。主
な差異は本発明による処理アレイが問題をスキャンする
のに対して、CPUは分岐文を介して指令されるように問
題をジャンプする点である。スキャン法の欠点は能動で
ない領域にまで訪れなければならないことであり、一
方、ジャンピング法は分岐誘導命令パイプライン及びキ
ャッシュ欠陥並びに割り当てあるいはレジスタと関連す
るオーバーヘッドに起因する効率上の問題をもつ。スキ
ャン法の長所は任意の大きなウインドウにて、及び複数
のハードウェア ウインドウにて同時に、問題を協力し
て同時にスキャンできることである(サブアレイの縦
続)。
勿論、プログラムの幾つかのセクションがめったにア
クセスされない(例えば、エラーが検出された場合のみ
アクセスされる)ような状況が存在し、従来のアーキテ
クチャーでは、この稀にしかアクセスされないコードは
単にプログラム メモリ内に置かれる。このため計算資
源が消費されることはない。上に説明の本発明による方
法の場合は、条件が順次実行コード内に組み込まれるた
め、一見した所では、計算資源が不要に消費され、処理
速度が落される原因となるような気がする。一般にはこ
のようなことはなく、これに加えて、本発明によるアー
キテクチャーとともに用いられるプロラム メモリを遭
遇される条件に基づいてスイッチ インあるいはスイッ
チ アウトされるセクションに分割することが可能であ
る。換言すれば、プログラム メモリをスイッチするこ
とによって完全なフレキシビリティが得られる。
プログラム メモリの説明と関連し、処理要素に制御
信号を順次に提供する任意の手段を用いることができ
る。これは従来のランダム アクセス メモリでも、あ
るいは遅延ラインでも良い。好ましくは、プログラム
メモリとして機能する手段の動作速度は、処理要素(2
0)の動作速度より速いことが要求される。第4図の処
理要素の実施態様では、6つの制限信号が要求される。
これら制御信号は、例えば、6つの遅延ラインから直接
に得ることも、あるいは3つの遅延ラインからコード化
された形式にて得ることもできる。殆んどの場合、直接
制御から得られる速度の節約が追加の遅延ラインのコス
トを上回わる。勿論、これは用いられる具体的に技術に
依存する。
速度に注意が向けられたが、同期の問題にも注意を向
けるべきである。上に説明の処理要素は非同期ではある
が、遅延ラインを出力信号を格納するために使用するに
あたっては含蓄同期(implied synchronization)が存
在し、またプログラム メモリから処理要素に加えられ
る制御信号にはクロック同期される局面がある。これら
PE実現(例えば、第5図)内に用いられる遅延が桁送り
レジスタである場合は、クロックを供給することが必要
である。これら遅延がアナログ(例えば、石英遅延ライ
ン、あるいは光ファイバ ケーブル)である場合は、こ
の遅延の長さをプログラム メモリによて供給される命
令の速度と対応するように注意深く測定することが必要
である。このプログラム メモリもアナログ遅延ライン
である場合は、この遅延の長さはこのPE内の遅延ライン
の長さに良く合せられており、またこのプログラム メ
モリ遅延ライン内の信号の分配は所望の動作速度に対応
しなければならない。
機能設計例 本発明によるアーキテクチャーによる任意の処理機能
の実現は従来の開始ポイントの任意の所から開始する単
純な手順に従って進行される。これは、略ダイアグラ
ム、ブールの式、状態ダイアグラム等であり得る。以下
の例は、単に、上に説明の幾つかのアプローチによって
実現できる方法論を図解するものである。
第1図は実現されるべき略ダイヤグラムを表わす。便
宜上、このダイヤグラムは実現を楽にするような方法で
描かれている。つまり、個々のゲートはその上の回路に
よって前に計算された情報に依存する。回路がこのよう
に表わされてない場合は、これは上の条件が満されるよ
うに常に書き直すことができる。上の条件が達成できな
いような状況は、不安定(発振)の状況、あるいは不安
定と同定され結果的にこの論理の実現から除外されるメ
モリ要素の存在に対応する。“メモリ”を隔離すること
が適当でないと決定された場合は、フィードバック経路
が破られ、別個のリードがそれぞれ”最も上(トッ
プ)”及び“最も下(ボタム)に延ばされる。
第12図において、NORゲート41は入力信号“a"及び
“b"に応答し、NORゲート42は入力信号“c"及“d"に応
答し、そしてNORゲート43は入力信号“g"及び“h"に応
答する。ゲート41の出力はNORゲット44に加えられ、ゲ
ート44はNORゲート45及び出力リード“i"に信号を送く
る。ゲート42の出力はNORゲート44、46及び47に加えら
れ、ゲート44及び47の出力はゲート45に加えられる。ゲ
ート46の出力はまたはNORゲート48に加えられるが、NOR
ゲート48は入力信号“e"からの追加の入力を受信する。
ゲート46も追加の入力信号“f"を受信する。ゲート45、
47、48、及び43の出力はそれぞれ出力信号“j"、“k"、
“l"、及び“m"を形成する。出力“k"及び入力“f"は最
初にセットのリセット フリップフロップ構成を形成す
るように接続された1つのペアの信号であり得る。
第12図内の能動要素の全てはNORゲートであり、任意
のブール関数はNORゲートのみで実現できることは周知
である。第12図の構成においては、ゲート41、42及び43
が処理要素の第1のロウを形成する。ゲート46は処理要
素の第2のロウ内の存在し、ゲート44及び47は処理要素
の第3のロウ内に存在し、そしてゲート45及び48は処理
要素の第5番目のロウ内の実現される。これも第12図に
アレンジされているごとく、必要な信号スイッチング、
あるいはダイレクティングを実現するための追加のロウ
は必要でない。この状況が第13図に示されるアレイによ
る第12図の略ダイヤグラムの実現に図解される。第13図
は第9図に示されるのと同一の相互接続構造をもち、こ
のアレイ内の異なる処理要素は第13図に示される異なる
機能を引き受ける。第12図の回路は4つの基本機能、つ
まり、出力信号を処理要素の両方の出力に提供するNOR
ゲート、クロス オーバー接続、レフト フォーク接続
(leftfork connection)、及びパス スルー接続(pas
s−through connection)の4つの基本機能のみを実現
する処理要素にて実現される。第14図はこれら機能の割
り当てを強調して示すが、ここで、文字AはNORゲート
に対応し、Bはクロス オーバーに対応し、Cはレフト
フォークに対応し、Dはパス スルーに対応し、そし
てZは“ドント ケア(don′t care)”状態に対応す
る。第15図は2処理要素構成をもつ第14図の実施例態様
への入力信号及び制御信号の流れを図解する。
状態ダイアグラムが与えられたときの設計方法論を図
解するために、第16図は8個の異なる状態(O−7)を
もつ有限状態マシンに対する単純な状態ダイヤグラムを
表わす。ある状態を別の状態に接続する経路は状態の流
れの方向を示す1つの矢印及び“3/C"の形式の1つの記
号を含む。このスラッシュの左の記号はこの経路に沿っ
てのある1つの状態から次の状態への遷移を起させる入
力に関し、スラッシュの右の記号はこの遷移との関連で
発生する出力を指定する。
例えば、第16図の状態ダイヤグラムに対して、以下の
テーブルはPLA52を完全に記述し、従って、個々の出力
は明示的に記述できる。例えば、テーブルからレジスタ
53に入れられる状態の最下位ビットに対応する出力信号
Coは、以下であることがわかる。ここで、Ai、Bi、Ci、
Di、及びEiはPLAに加えられる状態及び入力に対応するP
LA52の入力信号である。
上に定義されるブールの式は従来の技術に従ってNOR
関数の実行にて表わすことができ、このように表わされ
た場合、このブール関数は第12図との関連で記述された
方法にて達成できる。
本発明によるアーキテクチャーにより汎用コンピュー
タがいかに実現されるかを解説するためには、単純なプ
ログラミング例、例えば、2つの数を加算するようなプ
ログラムについて考察すると良い。従来の汎用コンピュ
ータにおいては、Aレジスタ、Bレジスタ、演算論理ユ
ニット(ALU)、メモリ、及びこのメモリ内に常駐する
プログラムが存在する。2つの数を加えるプログラム
は、レジスタAを第1の数にセットさせ、続く命令がレ
ジスタBを第2の数にセットさせ、さらに続く命令によ
ってALUが加算機能を遂行する。
本発明によるアーキテクチャーにおいては、加えられ
るべきこの2つの数は処理要素の第1のロウ内におい
て、インタリーブ法(interleaved manner)にて生成さ
れ、続くロウによって総和が生成される。高スループッ
トを達成するために、当然パイプライン法が用いられ、
恐らく、この信号処理網内にハーフ加算器(half adde
r)を含む処理要素が用いられる。この構成が第18図に
示される。数01011と00111が網にて加えられ、処理要素
(PE)の信号処理網はハーフ加算器(HA)である。第4
図にしめされるPEが用いられる場合(NORゲートが信号
処理網に用いられた場合)、ビットAiがビットBiに加え
られる個々のハーフ加算器機能は第19図に示されるよう
に2つのロウによって実現される。
上の図面及び説明は単に本発明の原理解説するための
ものである。本発明の精神及び範囲から逸説することな
くさまざま拡張及び修正ができることは勿論である。例
えば、第4図との関連で説明された処理要素は全ての必
要な機能を実現するが、この処理要素内にこれ以上のハ
ードウェアを組み込むことができることは明白である。
また、上の殆んどの説明に対して選択された処理要素
は、2入力、2出力デバイスであるが、全てがこれに従
う必要はない。例えば、第3のリードが同一のロウ内の
処理要素を接続する、あるいは第3のリードが異なるロ
ウ内の処理要素に接続するように用いられるような場所
は、3つの入力及び3つの出力をもつデバイスが用いら
れる。事実、前の図面に示される1×2、2×1、及び
2×2アレイは、概念的には多重入/出力処理要素とみ
ることができる。
既に上に説明されたごとく、PE内の信号処理網はま
た、1つの演算ユニット、従来のコンピュータの1つの
完全なCPU、あるいはさらにはさまざまな計算アルゴリ
ズムを効率的にフォールディング(folding)及びリカ
ースティング(recasting)するための1つの完全なコ
ンピュータを含むこともできる。さまざまな信号変換ア
ルゴリズム、例えば、FFTが直ちに思い浮べられる。
処理要素は必要なメッセージング プリミティブをも
つオペレーティング システム内のプロセスでもあり得
る。従って、これはさまざまなプロセスの協力関係を編
成し、プロセスと、例えば、ディスク メモリ間の通信
を最適下するために用いることもできる。
別の方向から見ると、上に説明の複数の計算オリガミ
ある1つの計算オリガミの出力を続く計算オリガミに接
続することによって縦に接続することもできる。この縦
の接続は、結果として、問題をオリガミの間に分割し、
高いスループットを可能とする。結果的には、これはパ
イプライニングに等しい。第20図は第5図のモデルに基
づく縦続構成の編成を示す。
より一般的には、本発明によるアルゴリズムを取り、
このアルゴリズムをレギュラー フォーマットにカース
ティングし、このフォーマットをスラント アレイ(例
えば、第7図)あるいは個々のロウ内に単一方向の信号
流をもつスラント アレイ(例えば、第8図)のいずれ
かにマッピングし、次にこれを折り畳むこの方法は、ゲ
ート レベルからシステム レベルまでの全てのアルゴ
リズムに適用できるものであり;またハードウェア及び
ソフトウェアの両方に適用できる。
【図面の簡単な説明】
第1図は処理要素の二次元長方形アレイを示す図; 第2図は単一ロウの処理要素に機能的に折り畳まれた第
1図のアレイを示す図; 第3図はロウ内の処理要素がそのロウ内の他の処理要素
に対するデータの依存性をもたない二次元長方形アレイ
を示す図; 第4図は第3図の構成を実現するのに有効な処理要素の
略図; 第5図はFIFOメモリ手段を結合され全アレイをエミュレ
ートするのに用いられる単一の処理要素をもつ構成を示
す図; 第6図は第5図の構成は全アレイをエミュレートするよ
うに多重化した結果としてのアレイ接続を示す図; 第7図から第9図は異なる処理アレイ構成を示す図; 第10図は遅延値が制御可能な一例としての構成を示す
図; 第11図は処理アレイ内の相互接続フレキシビリティーを
示す図; 第12図は任意の機能を実現する方法を図解するために提
供される1つの例の略図; 第13図及び第14図は第12図の例のアレイへのマッピング
を示す図; 第15図は第7図に示されるタイプの多重化された処理ア
レイによる第14図のアレイの実現を示す図; 第16図は本発明の原理を利用する方法を図解するために
提供されるもう1つの例の状態ダイヤグラムを示す図; 第17図は状態ダイヤグラムを本発明の原理に従って実現
可能なレギュラー アレイにマッピングすることを助け
る第16図の状態ダイヤグラムのプログラマブル論理アレ
イの実現を示す図; 第18図は処理要素がハーフ加算器である計算オリガミ内
で2つの数を加えるための構成を示す図; 第19図は第5図に示されるタイプの基本処理要素にてハ
ーフ加算器を実現するための1つの手段を示す図;そし
て 第20図は縦続された構成を示す図である。 <主要部分の符号の説明> 処理要素……10、20 プロセッサ……17

Claims (19)

    (57)【特許請求の範囲】
  1. 【請求項1】第1および第2の入力ポート、第1および
    第2の出力ポート、および制御ポートを有し、そしてル
    ーティング機能および計算機能の両方を遂行する処理要
    素を含む計算装置において、 該第1の出力ポートおよび該計算装置の第1の出力に接
    続され、該第1の出力ポートの予め選択された数の出力
    信号を格納するための第1の遅延手段; 該第1の遅延手段の出力信号を該計算装置に加えられた
    信号と結合し、これを該第2の入力ポートに加えるため
    の第1の手段; 該第2の出力ポートおよび該計算装置の第2の出力に接
    続され、該第2の出力ポートの別の予め選択された数の
    出力信号を格納するための第2の遅延手段; 該第2の遅延手段の出力信号と該計算装置に加えられた
    信号を結合し、これを該第1の入力ポートに加えるため
    の第2の手段;および 該制御ポートに制御信号を加え、該諸利要素に予め選択
    された処理機能および信号ルーティング機能を実行させ
    るための手段を含むことを特徴とする計算装置。
  2. 【請求項2】該処理要素が該第1および第2の入力ポー
    トに接続された該計算機能を遂行するための信号処理
    網、および 該第1および第2の入力ポートのところの入力信号およ
    び該信号処理網の出力信号に応答して該ルーティング機
    能を遂行するための信号ルーティング網を含むことを特
    徴とする請求項1記載の計算装置。
  3. 【請求項3】該信号ルーティング網が該入力信号の任意
    の1つを該出力ポートの1つあるいは両方にスイッチす
    る能力をもつことを特徴とする請求項1記載の計算装
    置。
  4. 【請求項4】ロウおよびカラムのアレイに配列された複
    数の処理要素を有する計算装置であって、ロウおよびカ
    ラム内の個々の処理要素が同一カラムの前のロウ内の処
    理要素の1つの出力ポートに接続された1つの入力ポー
    トおよび別のカラムの前のロウ内の処理要素のもう1つ
    の出力ポートに接続されたもう1つの入力ポートをも
    ち、該アレイの最初のロウ内の処理要素の入力ポートが
    該計算装置への入力信号をうけ、該アレイの最後のロウ
    内の処理要素の出力ポートが該計算装置の出力信号を供
    給している計算装置において、 個々が該処理要素の異なる1つの出力ポートに接続さ
    れ、個々がそれ自体が予め選択した数のクロック同期さ
    れた出力信号を格納する複数の遅延手段; 該複数の遅延手段の出力信号を該処理要素の該入力ポー
    トに加えるための手段;および 該処理要素の個々の動作機能をクロック同期された方法
    にて制御するための手段を含むことを特徴とする計算装
    置。
  5. 【請求項5】該動作を制御するための手段が該アレイ内
    の該処理要素の個々に対して、選択された処理機能を他
    の処理要素によって遂行されるように選択された機能の
    処理と独立して遂行するように指令することを特徴とす
    る請求項4記載の計算装置。
  6. 【請求項6】該遅延手段が相互接続された処理要素の大
    きなエミュレートされたアレイ内の選択された相互接続
    パターンを実現するために用いられる信号遅延値を提供
    することを特徴とする請求項4記載の計算装置。
  7. 【請求項7】該遅延手段が加えられた制御信号によって
    制御される値をもつことを特徴とする請求項4記載の計
    算装置。
  8. 【請求項8】該遅延手段制御信号が該エミュレートされ
    たアレイの幅をコントロールするために動的に可変であ
    ることを特徴とする請求項7記載の計算装置。
  9. 【請求項9】相互接続されたロウおよびカラムに配列さ
    れた複数の処理要素を含む計算装置であって、ロウおよ
    びカラム内の該処理要素の個々が該処理要素の片側ある
    いは両側の同一ロウ内の隣接処理要素、および該処理要
    素の片側あるいは両側の同一カラム内の隣接処理要素を
    有している計算処理装置において、 該処理要素の個々が、該処理要素の右あるいは左のいず
    れか一方の同一ロウ内の処理要素に接続され、該処理要
    素の個々が該処理要素の上あるいは下のいずれか一方の
    異なるロウ内の処理要素に信号を提供しており;そして 該処理要素の個々が選択された処理動作を該計算装置内
    の他の処理要素によって遂行されるために選択された動
    作の処理と独立して遂行するために使用されることを特
    徴とする計算装置。
  10. 【請求項10】ロウiおよびカラムj内の個々の処理要
    素が該処理要素をロウi+1およびカラムj内の処理要
    素に接続する1つの出力リード、および該処理要素をロ
    ウi+1およびカラムj+(−1)iK内の処理要素に接
    続する1つの出力リードをもち、ここでKが個々のロウ
    に対する定数であることを特徴とする請求項9記載の計
    算装置。
  11. 【請求項11】ロウiおよびカラムj内の個々の処理要
    素が該処理要素をロウi+1およびカラムj内の処理要
    素に接続する1つの出力リード、および該処理要素をロ
    ウi+1およびカラムj−(−1)iK内の処理要素に接
    続する1つの出力リードをもち、ここでKが個々のロウ
    に対する定数であることを特徴とする請求項9記載の計
    算装置。
  12. 【請求項12】ロウiおよびカラムj内の個々の処理要
    素が該処理要素をロウi+1およびカラムj内の処理要
    素に接続する1つの出力リード、および該処理要素をロ
    ウi+1およびカラムj−K内の処理要素に接続する1
    つの出力リードをもち、ここでKが個々のロウに対する
    定数であることを特徴とする請求項9記載の計算装置。
  13. 【請求項13】該予め選択された数と該別の予め選択さ
    れた数が互いに関連をもつことを特徴とする請求項1記
    載の計算装置。
  14. 【請求項14】該第1の遅延手段がN個の出力信号を格
    納し、該第2の遅延手段がN+1個の出力信号を格納
    し、ここでNは予め選択された定数であることを特徴と
    する請求項1記載の計算装置。
  15. 【請求項15】該信号処理網が1つの完全なブール カ
    バーを構成するセットの計算を遂行する手段からなるこ
    とを特徴とする請求項2記載の計算装置。
  16. 【請求項16】該信号処理網がCPUからなることを特徴
    とする請求項2記載の計算装置。
  17. 【請求項17】該信号処理網がコンピュータからなるこ
    とを特徴とする請求項2記載の計算装置。
  18. 【請求項18】該信号処理網がNANDゲートあるいはNOR
    ゲートからなることを特徴とする請求項4記載の計算装
    置。
  19. 【請求項19】縦に相互接続された計算オリガミからな
    る計算装置において、個々の計算オリガミが2つの入力
    および2つの出力を含み、該縦に相互接続された1つの
    オリガミの出力が該縦に相互接続された別のオリガミの
    入力に接続され、該計算オリガミ個々がさらに、 該2つの入力と該2つの出力の間に挿入された1つの処
    理要素、 該第1の出力と該第2の入力の間に接続された第1の遅
    延要素、および 該第2の出力と該第1の入力の間に接続された第2の遅
    延要素を含み、 該第1および該第2の遅延要素が異なる遅延を提供する
    ことを特徴とする計算装置。
JP63167894A 1987-07-08 1988-07-07 計算処理装置 Expired - Fee Related JP2509678B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US71,105 1987-07-08
US07/071,105 US4943909A (en) 1987-07-08 1987-07-08 Computational origami

Publications (2)

Publication Number Publication Date
JPS6428767A JPS6428767A (en) 1989-01-31
JP2509678B2 true JP2509678B2 (ja) 1996-06-26

Family

ID=22099290

Family Applications (1)

Application Number Title Priority Date Filing Date
JP63167894A Expired - Fee Related JP2509678B2 (ja) 1987-07-08 1988-07-07 計算処理装置

Country Status (5)

Country Link
US (1) US4943909A (ja)
EP (1) EP0298658B1 (ja)
JP (1) JP2509678B2 (ja)
CA (1) CA1292577C (ja)
DE (1) DE3856015T2 (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008502029A (ja) * 2004-03-16 2008-01-24 テクノロジー プロパティーズ リミテッド コンピュータ・プロセッサ・アレイ
US7904615B2 (en) 2006-02-16 2011-03-08 Vns Portfolio Llc Asynchronous computer communication
US7904695B2 (en) 2006-02-16 2011-03-08 Vns Portfolio Llc Asynchronous power saving computer

Families Citing this family (53)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5339396A (en) * 1987-11-18 1994-08-16 Hitachi, Ltd. Interconnection network and crossbar switch for the same
JPH01175660A (ja) * 1987-12-29 1989-07-12 Matsushita Electric Ind Co Ltd マルチプロセッサシステム
US5101480A (en) * 1989-05-09 1992-03-31 The University Of Michigan Hexagonal mesh multiprocessor system
AU644141B2 (en) * 1990-01-05 1993-12-02 Maspar Computer Corporation A method of controlling a router circuit
GB9018048D0 (en) * 1990-08-16 1990-10-03 Secr Defence Digital processor for simulating operation of a parallel processing array
JP2785155B2 (ja) * 1990-09-10 1998-08-13 富士通株式会社 ニューロコンピュータの非同期制御方式
US5301284A (en) * 1991-01-16 1994-04-05 Walker-Estes Corporation Mixed-resolution, N-dimensional object space method and apparatus
US5471623A (en) * 1991-02-26 1995-11-28 Napolitano, Jr.; Leonard M. Lambda network having 2m-1 nodes in each of m stages with each node coupled to four other nodes for bidirectional routing of data packets between nodes
US5153757A (en) * 1991-02-27 1992-10-06 At&T Bell Laboratories Network control arrangement
US5172259A (en) * 1991-02-27 1992-12-15 At&T Laboratories Embedded control network
US6282583B1 (en) * 1991-06-04 2001-08-28 Silicon Graphics, Inc. Method and apparatus for memory access in a matrix processor computer
US5452468A (en) * 1991-07-31 1995-09-19 Peterson; Richard E. Computer system with parallel processing for information organization
US5659778A (en) * 1992-02-03 1997-08-19 Tm Patents, L.P. System and method of mapping an array to processing elements
JP2647330B2 (ja) * 1992-05-12 1997-08-27 インターナショナル・ビジネス・マシーンズ・コーポレイション 超並列コンピューティングシステム
DE69430822T2 (de) * 1994-03-28 2002-10-02 Mark D Estes Polymorphe netzwerkverfahren und geräte
US5838908A (en) * 1994-11-14 1998-11-17 Texas Instruments Incorporated Device for having processors each having interface for transferring delivery units specifying direction and distance and operable to emulate plurality of field programmable gate arrays
US20020133688A1 (en) * 2001-01-29 2002-09-19 Ming-Hau Lee SIMD/MIMD processing on a reconfigurable array
TWI234737B (en) * 2001-05-24 2005-06-21 Ip Flex Inc Integrated circuit device
US7383421B2 (en) * 2002-12-05 2008-06-03 Brightscale, Inc. Cellular engine for a data processing system
US7376811B2 (en) * 2001-11-06 2008-05-20 Netxen, Inc. Method and apparatus for performing computations and operations on data using data steering
US7340585B1 (en) * 2002-08-27 2008-03-04 Xilinx, Inc. Method and system for fast linked processor in a system on a chip (SoC)
KR100877138B1 (ko) * 2004-03-29 2009-01-09 고쿠리츠 다이가쿠 호진 교토 다이가쿠 데이터 처리장치, 데이터 처리 프로그램, 및 데이터 처리프로그램을 기록한 기록매체
US7676661B1 (en) * 2004-10-05 2010-03-09 Xilinx, Inc. Method and system for function acceleration using custom instructions
US8555286B2 (en) * 2004-10-27 2013-10-08 International Business Machines Corporation Method, system, and apparatus for establishing a software configurable computing environment
KR20080094005A (ko) * 2006-01-10 2008-10-22 브라이트스케일, 인크. 병렬 프로세싱 시스템에서 멀티미디어 데이터의 서브블록들을 프로세싱하기 위한 방법 및 장치
US7966481B2 (en) 2006-02-16 2011-06-21 Vns Portfolio Llc Computer system and method for executing port communications without interrupting the receiving computer
CN103646009B (zh) 2006-04-12 2016-08-17 索夫特机械公司 对载明并行和依赖运算的指令矩阵进行处理的装置和方法
US20080059763A1 (en) * 2006-09-01 2008-03-06 Lazar Bivolarski System and method for fine-grain instruction parallelism for increased efficiency of processing compressed multimedia data
WO2008027567A2 (en) * 2006-09-01 2008-03-06 Brightscale, Inc. Integral parallel machine
CN101627365B (zh) 2006-11-14 2017-03-29 索夫特机械公司 多线程架构
US8751211B2 (en) 2008-03-27 2014-06-10 Rocketick Technologies Ltd. Simulation using parallel processors
US9032377B2 (en) * 2008-07-10 2015-05-12 Rocketick Technologies Ltd. Efficient parallel computation of dependency problems
CN103250131B (zh) 2010-09-17 2015-12-16 索夫特机械公司 包括用于早期远分支预测的影子缓存的单周期多分支预测
WO2012135050A2 (en) 2011-03-25 2012-10-04 Soft Machines, Inc. Memory fragments for supporting code block execution by using virtual cores instantiated by partitionable engines
CN103547993B (zh) 2011-03-25 2018-06-26 英特尔公司 通过使用由可分割引擎实例化的虚拟核来执行指令序列代码块
TWI518504B (zh) 2011-03-25 2016-01-21 軟體機器公司 使用可分割引擎實體化的虛擬核心以支援程式碼區塊執行的暫存器檔案節段
CN103649931B (zh) 2011-05-20 2016-10-12 索夫特机械公司 用于支持由多个引擎执行指令序列的互连结构
TWI603198B (zh) 2011-05-20 2017-10-21 英特爾股份有限公司 以複數個引擎作資源與互連結構的分散式分配以支援指令序列的執行
WO2013077875A1 (en) 2011-11-22 2013-05-30 Soft Machines, Inc. An accelerated code optimizer for a multiengine microprocessor
EP2783281B1 (en) 2011-11-22 2020-05-13 Intel Corporation A microprocessor accelerated code optimizer
WO2014150971A1 (en) 2013-03-15 2014-09-25 Soft Machines, Inc. A method for dependency broadcasting through a block organized source view data structure
US9569216B2 (en) 2013-03-15 2017-02-14 Soft Machines, Inc. Method for populating a source view data structure by using register template snapshots
WO2014150806A1 (en) 2013-03-15 2014-09-25 Soft Machines, Inc. A method for populating register view data structure by using register template snapshots
US9811342B2 (en) 2013-03-15 2017-11-07 Intel Corporation Method for performing dual dispatch of blocks and half blocks
US9886279B2 (en) 2013-03-15 2018-02-06 Intel Corporation Method for populating and instruction view data structure by using register template snapshots
EP2972836B1 (en) 2013-03-15 2022-11-09 Intel Corporation A method for emulating a guest centralized flag architecture by using a native distributed flag architecture
US9904625B2 (en) 2013-03-15 2018-02-27 Intel Corporation Methods, systems and apparatus for predicting the way of a set associative cache
US10275255B2 (en) 2013-03-15 2019-04-30 Intel Corporation Method for dependency broadcasting through a source organized source view data structure
KR101708591B1 (ko) 2013-03-15 2017-02-20 소프트 머신즈, 인크. 블록들로 그룹화된 멀티스레드 명령어들을 실행하기 위한 방법
US9891924B2 (en) 2013-03-15 2018-02-13 Intel Corporation Method for implementing a reduced size register view data structure in a microprocessor
US10140138B2 (en) 2013-03-15 2018-11-27 Intel Corporation Methods, systems and apparatus for supporting wide and efficient front-end operation with guest-architecture emulation
WO2014150991A1 (en) 2013-03-15 2014-09-25 Soft Machines, Inc. A method for implementing a reduced size register view data structure in a microprocessor
EP4354282A1 (en) * 2022-10-10 2024-04-17 Huawei Technologies Co., Ltd. Data processing method and apparatus, processor, and network device

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3340388A (en) * 1965-07-12 1967-09-05 Ibm Latched carry save adder circuit for multipliers
US3509330A (en) * 1966-11-25 1970-04-28 William G Batte Binary accumulator with roundoff
NL7712367A (nl) * 1977-11-10 1979-05-14 Philips Nv Digitaal optelrekenorgaan.
US4553203A (en) * 1982-09-28 1985-11-12 Trw Inc. Easily schedulable horizontal computer
JPS5971561A (ja) * 1982-10-18 1984-04-23 Nippon Telegr & Teleph Corp <Ntt> 情報処理方式
US4591980A (en) * 1984-02-16 1986-05-27 Xerox Corporation Adaptive self-repairing processor array
US4740894A (en) * 1985-09-27 1988-04-26 Schlumberger Systems And Services, Inc. Computing processor with memoryless function units each connected to different part of a multiported memory

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008502029A (ja) * 2004-03-16 2008-01-24 テクノロジー プロパティーズ リミテッド コンピュータ・プロセッサ・アレイ
US7984266B2 (en) 2004-03-16 2011-07-19 Vns Portfolio Llc Integrated computer array with independent functional configurations
JP4856053B2 (ja) * 2004-03-16 2012-01-18 ブイエヌエス ポートフォリオ エルエルシー コンピュータ・プロセッサ・アレイ
US7904615B2 (en) 2006-02-16 2011-03-08 Vns Portfolio Llc Asynchronous computer communication
US7904695B2 (en) 2006-02-16 2011-03-08 Vns Portfolio Llc Asynchronous power saving computer
US8825924B2 (en) 2006-02-16 2014-09-02 Array Portfolio Llc Asynchronous computer communication

Also Published As

Publication number Publication date
CA1292577C (en) 1991-11-26
EP0298658B1 (en) 1997-09-03
EP0298658A3 (en) 1990-07-11
DE3856015D1 (de) 1997-10-09
DE3856015T2 (de) 1998-04-02
JPS6428767A (en) 1989-01-31
EP0298658A2 (en) 1989-01-11
US4943909A (en) 1990-07-24

Similar Documents

Publication Publication Date Title
JP2509678B2 (ja) 計算処理装置
US5684980A (en) FPGA virtual computer for executing a sequence of program instructions by successively reconfiguring a group of FPGA in response to those instructions
Ebeling et al. RaPiD—Reconfigurable pipelined datapath
US6092174A (en) Dynamically reconfigurable distributed integrated circuit processor and method
Ben-Asher et al. The power of reconfiguration
EP0268435B1 (en) Multinode reconfigurable pipeline computer
JP2020522825A (ja) 再構成可能並列処理
JPH07152722A (ja) Simdマルチプロセッサ用動的再構成可能スイッチ装置
JP2005165961A (ja) 動的再構成論理回路装置、割込制御方法、及び、半導体集積回路
JPH0619862A (ja) スケーラブル超並列グループ分割対角線折畳みスイッチング・ツリー型コンピューティング装置
JP2009059346A (ja) 複数のマルチモードプロセッサに接続するための方法および装置
Brebner et al. Runtime reconfigurable routing
Browne Parallel architectures for computer systems
WO1986007174A1 (en) Super-computer system architectures
JP2004503872A (ja) 共同利用コンピュータシステム
Pechanek et al. ManArray processor interconnection network: an introduction
Ito et al. The plastic cell architecture for dynamic reconfigurable computing
Denholm et al. A unified approach for managing heterogeneous processing elements on FPGAs
US6768336B2 (en) Circuit architecture for reduced-synchrony on-chip interconnect
Ligon et al. Evaluating multigauge architectures for computer vision
JP2655243B2 (ja) 複合化ベクトル並列計算機
Dadda The evolution of computer architectures
Moreno et al. A reconfigurable architecture for emulating large-scale bio-inspired systems
Bolotski et al. Transit Note# 95 Unifying FPGAs and SIMD Arrays
Aggarwal et al. A novel reconfigurable co-processor architecture

Legal Events

Date Code Title Description
LAPS Cancellation because of no payment of annual fees