JPH0619863A - 超並列対角線折畳みツリー・アレイ・プロセッサ - Google Patents

超並列対角線折畳みツリー・アレイ・プロセッサ

Info

Publication number
JPH0619863A
JPH0619863A JP5084959A JP8495993A JPH0619863A JP H0619863 A JPH0619863 A JP H0619863A JP 5084959 A JP5084959 A JP 5084959A JP 8495993 A JP8495993 A JP 8495993A JP H0619863 A JPH0619863 A JP H0619863A
Authority
JP
Japan
Prior art keywords
tree
instruction
data
processor
instructions
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.)
Granted
Application number
JP5084959A
Other languages
English (en)
Other versions
JP2572522B2 (ja
Inventor
Gerald G Pechanek
ジー. ペチャネク ジェラルド
Stamatis Vassiliadis
ヴァジリアディス スターマティス
Jose Guadelupe Delgado-Frias
グアドループ デルガド−フライアス ホセ
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.)
International Business Machines Corp
Original Assignee
International Business Machines 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 International Business Machines Corp filed Critical International Business Machines Corp
Publication of JPH0619863A publication Critical patent/JPH0619863A/ja
Application granted granted Critical
Publication of JP2572522B2 publication Critical patent/JP2572522B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime 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)
  • Advance Control (AREA)

Abstract

(57)【要約】 (修正有) 【目的】 組み合わされた通信ALUツリーと相互接続
された、PEの配列を使用して、完全に接続されたルー
ト・ツリー・プロセッサをサポートする、超並列対角線
折畳みツリー・アレイ・プロセッサを提供する。 【構成】 N2 個のプロセッシング・エレメント(処理
要素)(PE)を備え、各PEは命令およびデータ記憶
ユニットを有し、命令およびデータを受信して命令を実
行する。N2 の構造は、N個の通信ALUツリー、N個
のプログラム可能なルート・ツリー・プロセッサ・ユニ
ット、ならびに命令、データ、およびルート・ツリー・
プロセッサの出力を通信する装置を有する。Nルート・
ツリー・プロセッサ・システム構造は、対角線セルおよ
び汎用セルからなる、折畳まれたNxN個のPEにより
プロセッサ・アレイよりなり、PE列、行と識別される
2 個のPEを有する。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明はコンピュータ、および特
に超並列アレイプロセッサに関するものである。
【0002】
【従来の技術】本出願に関連する他の特許出願 本出願は以下の特許出願に関連する。
【0003】1.米国特許出願第07/526,866号, 199
0年5月22日出願,発明者バシリアディス(S. Vassi
liadis)外; 発明の名称「直角行−列ニューラル・プ
ロセッサ(Orthogonal Row-Column Neural Processo
r)」1991年11月12日に発行された米国特許第
5,065,339 号、および以下に示す出願係属中の分割特許
出願 2.米国特許出願第07/740,355号, 1991年8月5日
出願,発明者バシリアディス(S. Vassiliadis)外;
発明の名称「スケーラブル・ニューラル・アレイ・プロ
セッサ(Scalable Neural Array Processor )」(現在
出願係属中) 3.米国特許出願第07/740,556号, 1991年8月5日
出願,発明者バシリアディス(S. Vassiliadis)外;
発明の名称「ニューラル・アレイ・プロセッサ用加算器
ツリー(Adder Tree for a Neural Array Processor
)」(現在出願係属中) 4.米国特許出願第07/740,568号, 1991年8月5日
出願,発明者バシリアディス(S. Vassiliadis)外;
発明の名称「ニューラル・プロセッサのための装置およ
び方法(Apparatus and Method for Neural Processor
)」(現在出願係属中) 5.米国特許出願第07/740,266号, 1991年8月5日
出願,発明者バシリアディス(S. Vassiliadis)外;
発明の名称「スケーラブル・ニューラル・アレイ・プロ
セッサおよび方法(Scalable Neural Array Processor
and Method)」(現在出願係属中) 6.米国特許出願第07/682,786号, 1991年4月8日
出願,発明者ペシャネック(G.G. Pechanek )外; 発
明の名称「三角型スケーラブル・ニューラル・アレイ・
プロセッサ(Triangular Scalable Neural Array Proce
ssor)」(現在出願係属中) 7.米国特許出願第07/681,842号, 1991年4月8日
出願,発明者ペシャネック(G.G. Pechanek )外; 発
明の名称「SPIN;シーケンシャル・パイプライン化ニュ
ーロコンピュータ(A Sequential Pipelined Neurocomp
uter)」(現在出願係属中) 8.米国特許出願第07/702,261号, 1991年5月17
日出願,発明者ペシャネック(G.G. Pechanek )外;
発明の名称「学習マシン・シナプス・プロセッサ・シス
テム・装置(A Learning Machine Synapse Processor S
ystem Apparatus )」(現在出願係属中) 9.米国特許出願第07/702,260号, 1991年5月17
日出願,発明者ペシャネック(G.G. Pechanek )外;
発明の名称「ニューラル・ネットワーク用仮想ニューロ
コンピュータ・アーキテクチャ(Virtual Neurocompute
r Architectures for Neural Networks )」(現在出願
係属中) 10.米国特許出願第07/702,262号, 1991年5月1
7日出願,発明者ペシャネック(G.G. Pechanek )外;
発明の名称「スケーラブル・フロウ仮想学習ニューロ
コンピュータ(Scalable Flow Virtual Learning Neuro
computer)」(現在出願係属中) 11.米国特許出願第07/702,263号, 1991年5月1
7日出願,発明者ペシャネック(G.G. Pechanek )外;
発明の名称「PLAN;ピラミッド学習アーキテクチャ・
ニューロコンピュータ(Pyramid Learning Architectur
e Neurocomputer )」(現在出願係属中) 12.米国特許出願第07/864,112号, 1992年4月6
日出願,発明者ペシャネック(G.G. Pechanek )外;
発明の名称「超並列アレイ・プロセッサ(Massively Pa
rallel Array Processor)」(現在出願係属中)さらに
加えて、同時に出願された関連特許出願としては下記の
出願がある。 13.米国特許出願第07/ 号,1992年5月1
5日出願,発明者ペシャネック(G.G. Pechanek )外;
発明の名称「スケーラブル超並列グループ分割対角線
折畳みスイッチング・ツリー型コンピューティング装置
(Scalable Massively Parallel Group Partitioned Di
agonal-Fold Switching Tree Computing Apparatus)」
(IBM Docket EN9-92-065 ) これらの出願、および本出願は唯一のかつ同一の出願人
であるニューヨーク州アーモンクのインターナショナル
・ビジネス・マシーンズ・コーポレーションにより所有
されている。
【0004】これらの上記出願に記載された説明は、こ
こにおいてその出願番号を参照することで本出願の一部
を構成するものとする。
【0005】なお、本明細書の記述は本件出願の優先権
の基礎たる米国特許出願第07/881,597号の明細書の記載
に基づくものであって、当該米国特許出願の番号を参照
することによって当該米国特許出願の明細書の記載内容
が本明細書の一部分を構成するものとする。
【0006】本明細書で引用されている公知文献 以下の詳細な説明の中では、読者の理解を助けるために
下記の文献を参照する。これらの追加の参考文献は、次
の通りである。
【0007】1.米国特許出願第07/799,602号, 199
1年11月27日出願,発明者オルノウィッチ(H. Oln
owich ); 発明の名称「並列ネットワーク、ならびに
異種および同種のコンピュータ・システム用マルチメデ
ィア・シリアル回線スイッチング・アダプタ(Multi-Me
dia Serial Line Switching Adapter for Parallel Net
works and Heterogenous and Homologous Computer Sys
tems)」 2.米国特許出願第07/798,788号, 1991年11月2
7日出願, 発明者コッジ(P.M. Kogge); 発明の名称
「ダイナミック・マルチ・モード並列プロセッサ・アレ
イ・アーキテクチャ(構造)(Dynamic Multi-Mode Par
allel Processor Array Architecture)」(MIMD、
SIMDおよびSISDの間のダイナミックなスイッチ
ングを可能とするシステム) 3.ルーメルハート(D.E. Rumelhart)、マックレラン
ド( J.L. McClelland)、およびPDP研究グループ
(PDP Research Group)共著「並列分散処理 Vol.1:基
礎(Parallel Distributed Processing )Vol. 1」;
マサチューセッツ州ケンブリッジ(Cambridgr, Massach
usetts); MIT プレス1986年発行(本明細書中で
は、「ルーメルハート86(Rumelhart 86)」として参照
する。) 4.ニューラル・プロセッサ用の装置および方法(APPA
RATUS AND METHOD FORNEURAL PROCESSOR )、バシリア
デス(S. Vassiliadis)およびペシャネック(G.G. Pec
hanek )、米国特許出願第07/526,866号, 1990年5
月18日出願(本明細書中では、時々「SNAP」または
「バシリアディス(Vassiliadis )SNAP 90 」として参
照する。) 5.三角型スケーラブル・ニューラル・アレイ・プロセ
ッサ(A TRIANGULAR SCALABLE NEURAL ARRAY PROCESSO
R)、ペシャネック(G.G. Pechanek )、およびバシリ
アディス(S. Vassiliadis)、米国特許出願第07/682,7
85号, 1991年4月8日出願(本明細書中では時々
「T−SNAP」として参照する。) 6.学習マシン・シナプス・プロセッサ・システム装置
(A LEARNING MACHINESYNAPSE PROCESSOR SYSTEM APPAR
ATUS )、ペシャネック(G.G. Pechanek )外の米国特
許出願第07/702,261号, 1991年5月17日出願(本
明細書中では時々「学習マシン(Learning Machine)」
として参照する。) 7.アイシェルバーガー(E.B. Eichelberger )および
ウイリアムズ(T.W. Williams )による「試験性のため
の論理デザイン構造(A Logic Design Structure for T
estability)」1977年 第14回 IEEE設計自動化
会議会報(Proceedings 14th Design Automation Confe
rence IEEE) (本明細書中では「アイシェルバーガー77
(Eichelberger 77 )」として参照する。) 8.ホップフィールド(J.J.Hopfield)著「2状態ニュ
ーロンのごとき集合的計算特性を有する勾配応答のある
ニューロン(Neurons With Graded Response Have Coll
ective Computational Properties Like Those of Two-
State Neurons)」ナショナル・アカデミー・オブ・サ
イエンスの会報81(Proceedings of theNational Acade
my of Science 81 )、1984年5月発行、第3088-30
92 頁(本明細書中では「ホップフィールド84(Hopfile
d 84 )」として参照する。) 9.マックレランド(J.L. McClelland )およびルーメ
ルハート(D.E. Rumelhart)の「並列分散処理における
探求(Explorations in Parallel DistributedProcessi
ng ;モデル、プログラム、および練習のハンドブック
( A handbookof Models, Programs and Exercises
)」ケンブリッジ、マサチューセッツ;1988年MIT
プレス発行(本明細書中では、「マックレランド88(M
cClelland 88 )」として参照する。) 10.ホップフィールド(J.J.Hopfield)の「エマージ
ェント・コレクティブ計算能力をもったニューラル・ネ
ットワークスおよび物理的システム(Neural Networks
and Physical Systems with Emergent Collective Comp
utational Abilities )」, ナショナル・アカデミー・
オブ・サイエンス79の会報,1982年発行, 第2554-2
558 頁(本明細書中では「ホップフィールド82(Hopfie
ld 82 )」として参照する。) 11.フリン(M.J. Flynn)、ジョンソン(J.D. Johns
on)、およびウェイクフィールド(S.P. Wakefield)の
「命令セットおよびそれらのフォーマットについて(On
Instruction Sets and Their Formats )」1985年
3月、IEEE トランザクションズ・オン・コンピュータ
ス Vol. C-34, No. 3, 第242-254 頁(本明細書中では
「フリン85(Flynn 85)」として参照する。) これらの追加の参考文献は、それらを参照することによ
って、本明細書の一部を構成するものとする。
【0008】コンピュータ高速化のための限りのない追
求において、エンジニアは、数100台、あるいは数1
000台もの低コスト・マイクロプロセッサを並列に結
合して、現代のマシン(計算機)が難問としている複雑
な問題を征服するために除算を行う超スーパコンピュー
タを構築しようとしている。この種のマシンは超並列
(massively parallel)と呼ばれて
いる。並列に動作する多重コンピュータは数10年前か
ら存在している。初期の並列マシンとしては、1960
年代に始まったILLIACがある。他の多重プロセッ
サとしては、Cedar、Sigma−1、Butte
rflyとMonarch、Intel社ipsc、コ
ネクション・マシン(Connection Mach
ine)、Caltech社COSMIC、N Cub
e、IBM社RP3、IBM社GF11、NYUウルト
ラ・コンピュータ、インテル社Delta、Touch
stoneなどがある(シュー(Xu)外に対して19
90年12月4日に発行された米国特許第4,975,
834号中の部分的要約を参照)。
【0009】ILLIACから始まった大規模多重プロ
セッサはスーパコンピュータと考えられていた。最大の
商業的成功を収めたスーパコンピュータは、Cray
Research社Y−MPシステム、IBM 309
0、およびAmdahl、Hitachi、Fujit
su、NECを含む他メーカのマシンで代表される多重
ベクトル・プロセッサをベースにしている。
【0010】超並列(MP)プロセッサは、現在では、
スーパコンピュータとなる能力を持つものと考えられて
いる。これらのコンピュータは非常に多数のマイクロプ
ロセッサを相互結合ネットワークで結合し、並列に動作
するようにプログラムしている。これらのコンピュータ
は2つのモードで動作している。これらの一部のマシン
はMIMDモード・マシンであり、一部のマシンはSI
MDモード・マシンである。これらのマシンの中で最も
成功を収めたといわれているのが、Thinking
Machines,Inc.のコネクション・マシン
(connection machine)シリーズ1
と2である。これらのマシンは基本的にはSIMDマシ
ンである。超並列マシンの多くは並列に相互結合された
マイクロプロセッサを使用して、並列性(concur
rency)、つまり、並列動作の機能を実現してい
る。i860のようなインテル・マイクロプロセッサは
インテル社や他のメーカで使用されている。N Cub
e社は、インテル社の´386マイクロプロセッサを搭
載したマシンを提供している。他のマシンは、「トラン
スピュータ」(transputer)と呼ばれるチッ
プを利用して作られている。その例として、Inmos
Transputer IMS T800がある。I
nmos Transputer T800は32ビッ
ト・マシンであり、高速浮動小数点プロセッサを内蔵し
ている。この種のシステムの構築例として1つを示す
と、複数のInmos Transputer T80
0チップは各々が32個の通信リンク入力と32個のリ
ンク出力を実装している。各チップはシングル・プロセ
ッサと、小容量メモリと、ローカル(局所)メモリおよ
び外部インタフェースとを結ぶ通信リンクとを実装して
いる。さらに、システム通信リンクを構築するために、
IMS C011およびC012のようなアダプタが接
続されている。さらに、IMS C004のようなスイ
ッチは、例えば、32個のリンク入力と32個のリンク
出力間のクロスバー・スイッチの機能を備え、追加のト
ランスピュータ・チップ間をポイント・ツー・ポイント
(2地点間)で接続することができる。さらに、トラン
スピュータ用の特殊な回路とインタフェース・チップが
実装されれば、特定の装置、グラフィックまたはディス
ク・コントローラの要件に合った特殊な目的にトランス
ピュータを適応させて、使用することが可能になる。I
nmos IMS M212は16ビット・プロセッサ
であり、オンチップ・メモリと通信リンクを備えてい
る。このプロセッサはディスク・デバイスを制御するた
めのハードウェアとロジックを備えているので、プログ
ラマブル・ディスク・コントローラとしても、汎用イン
タフェースとしても使用できる。並列性(並列動作)を
利用するために、Inmos社はトランスピュータ用に
特殊な言語、Occamを開発している。プログラマ
は、トランスピュータ・ネットワークをOccamプロ
グラムで直接に記述する必要がある。
【0011】これらのMPマシンの一部は、プロセッサ
・チップからなる並列プロセッサ・アレイを使用し、こ
れらは異なるトポロジー構造で相互結合されている。ト
ランスピュータはIMS C004チップを追加するこ
とにより、クロスバー・ネットワークを実現している。
また、他の一部のシステムはハイパーキューブ(hyp
ercube)結合を使用している。他のシステムはマ
イクロプロセッサとその関連回路を接続するためにバス
またはメッシュを使用している。一部は、スイッチを使
用する回路スイッチ・プロセッサによって、プロセッサ
・アドレス可能ネットワークとして相互結合されてい
る。一般的に、複数のマシンを1つに配線することによ
ってLawarence Livermoreで昨年秋
に相互結合された14台のRISC/6000の場合と
同様に、プロセッサ・アドレス可能ネットワークは、粗
い(Coarse−grained)マルチプロセッサ
と考えられている。
【0012】データ処理における「偉大な挑戦(gra
nd challenge)」と呼ばれているものに取
りかかるために、いくつかの超大規模マシンが、現在イ
ンテル社、nCube社、その他のメーカによって製造
されているが、これらのコンピュータは非常に高価であ
る。最新の見積コストは、この「偉大な挑戦」に取りか
かるために米国政府の補助金を得て開発されたコンピュ
ータの場合、米国ドル30,000,000.00〜7
5,000,000.00(テラ・コンピュータ)のオ
ーダに達している。これらの偉大な挑戦には、気候モデ
ル化、流体の乱れ、汚染分散、人ゲノムと大洋循環のマ
ッピング、量子クロモ力学、半導体とスーパコンピュー
タのモデル化、燃焼システム、視覚と認識といった問題
が含まれている。
【0013】本発明の超並列対角線折畳みツリー・アレ
イ・プロセッサ(Massively Paralle
l Diagonal−Fold Tree Arra
yProcessor)のアーキテクチャは、高度な計
算用並列データ・アルゴリズムのモデリンク、たとえば
行列処理および高度接続性ニューラル・ネットワークの
ために適用できる。本発明のシステムの一般的な処理能
力を説明するために、行列の掛け算の例を記載する。
【0014】本発明を詳細に説明するにあたって、本出
願の発明者の未公表文献をも含めて、本明細書の冒頭に
列挙した文献を引用する。本発明の背景となる、これら
の引用文献はそれらの参照により本明細書の一部を構成
するものとする。
【0015】
【発明の解決しようとする課題】本発明によるMP対角線折畳みツリー・アレイ・プロセ
ッサが解決しようとする問題 本発明の目的は、現在、存在する行列処理の問題を適切
に克服することのできる超並列対角線折畳みツリー・ア
レイ・プロセッサを提供することにある。
【0016】
【課題を解決するための手段】このような目的を解決す
るために、 請求項1に記載の発明は、マトリクス処理を
含む汎用アプリケーションのためのコンピュータ・シス
テム装置において、ルート・ツリー・プロセッサと、通
信ALUツリーと、プロセッシング・エレメント(P
E)と、命令およびデータの双方をルート・ツリー・プ
ロセッサおよびプロセッシング・エレメントの間で通信
する手段とを備え、各プロセッサが命令およびデータの
記憶ユニットを有し、命令およびデータを受信し、およ
び命令を実行することを特徴とする。
【0017】請求項2に記載の発明は、請求項1に記載
のコンピュータ・システム装置においてNxNマトリク
スの形態に配置され、
【0018】
【外2】
【0019】対角線に沿って折畳まれ、ならびに対角線
セルおよび汎用セルより構成されたN2 個のプロセッシ
ング・エレメントをさらに備えたことを特徴とする。
【0020】請求項3に記載の発明は、請求項2に記載
のコンピュータ・システム装置において、PEi,j とし
て識別される前記対角線セルはそれぞれ単一のPEを備
え、および汎用セルは、それぞれ、PEi,j およびPE
j,i として識別され、一緒に組み合わされる2つの処理
要素を備えたことを特徴とする。
【0021】請求項4に記載の発明は、請求項3に記載
のコンピュータ・システム装置において、前記対角線セ
ルの単一のPEは、それぞれ、タグ・マッチング・ユニ
ットと、命令/データ・デコーディング機構、データ・
パス記憶ユニット、および分配器ユニットによる、外部
から受信した命令およびデータのための行き先パス制御
機構と、ゼロをX命令に格納する命令バッファを有し、
および1つの命令記憶ユニットが命令のデコードおよび
演算の制御のために用いられ命令記憶ユニットと、複数
データ記憶ユニットと、命令デコード機構、選択ユニッ
ト、およびデコードされた命令の記憶ユニットに対する
アドレス指定手段により制御された記憶ユニット・オペ
ランド選択機構と、命令デコーディング機構および分配
器ユニットにより制御された、結果の行き先パスを制御
する機構と、プログラマブル実行ユニットとを備えたこ
とを特徴とする。
【0022】請求項5に記載の発明は、請求項3に記載
のコンピュータ・システム装置において、前記対角線セ
ルのPEより、PEが接続された通信ALUツリーに結
果を供給し、および該通信ALUツリーから命令および
データを受け取ることを特徴とする。
【0023】請求項6に記載の発明は、請求項3に記載
のコンピュータ・システム装置において、一緒に組み合
わされる前記汎用セルの2つのPE、PEi,j およびP
j,i は、2つのタグ・マッチング・ユニットと、2つ
の命令/データ・デコーディング機構、2つのデータ・
パス記憶ユニット、2つの命令パス・ビット、および共
通の分配器ユニットによる、外部から受信した命令およ
びデータのための共通の行き先パス制御機構と、ゼロを
X命令のそれぞれに格納する2つの命令バッファを有
し、および2つの命令記憶ユニットが命令のデコードお
よび演算の制御のために用いられる命令記憶ユニット
と、一緒に組み合わされたPEのそれぞれにより共有さ
れる複数のデータ記憶ユニットと、2つの命令デコーデ
ィング機構、共通の選択ユニット、および2つのデコー
ドされた命令の記憶ユニットに対するアドレス指定手段
により制御された2つの記憶ユニット・オペランド選択
機構と、2つの命令デコーディング機構および共通の分
配器ユニットにより制御された、2つの結果の行き先パ
ス制御機構と、2つのプログラマブル実行ユニットとを
備えたことを特徴とする請求項3に記載のコンピュータ
・システム装置において、前記対角線セルの、PEが接
続された通信ALUツリーに対して結果を与え、ならび
に命令およびデータを受け取ることを特徴とする。
【0024】請求項3に記載のコンピュータ・システム
装置において、前記汎用セルの2つの一緒に組み合わさ
れたPEを、記号的に上部PE(PEi,j )および下部
PE(PEj,i として組織し、当該上部および下部のP
Eの各々より、接続されたALUツリーに対して結果を
供給し、および該ALUツリーから命令およびデータを
受信することとしてもよい。
【0025】請求項1に記載のコンピュータ・システム
装置において、前記PEの前記データ記憶ユニットが、
条件付き実行ビットを、データ記憶ユニット毎に1ビッ
トづつ有し、前記ビットはデータの使用およびデータが
上書きされ得るか否かを制御することとしてもよい。
【0026】請求項1に記載のコンピュータ・システム
装置において、前記ルート・ツリー・プロセッサが、機
能実行モードにおいて、通信ALUツリーから供給され
たデータに機能の実行を提供し、および通信モードにお
いて、命令/データを通信ALUツリーに与えることと
してもよい。
【0027】請求項7に記載の発明は、請求項1に記載
のコンピュータ・システム装置において、2進通信AL
Uツリーがlog2 N個の2入力1出力の通信ALUス
テージを有することを特徴とする。
【0028】請求項7に記載のコンピュータ・システム
装置において、前記通信ALUツリーにおける各ステー
ジは、2入力1出力のALUと、ALUの実行のために
用いられる方向と反対の方向に、値を通信する目的のた
めのALUバイパス路と、ALU機能および通信のパス
の間の切り替え手段とを有する2入力1出力の通信AL
Uを備えてもよい。
【0029】請求項1に記載のコンピュータ・システム
装置において、前記通信ALUツリーは、各々、通信A
LUツリーの出力と共に外部入力の値を処理する追加の
ALUステージに接続し、および前記追加のALUステ
ージは結果をルート・ツリー・プロセッサに与えること
としてもよい。
【0030】請求項8に記載の発明は、請求項1に記載
のコンピュータ・システム装置において、前記ルート・
ツリー・プロセッサおよびそれらのホスト・コンピュー
タ・インタフェースは、通信ALUツリー制御手段と、
PE初期化手段と、PE命令発行手段と、アルゴリズム
・データ計算手段と、PEデータ発行手段と、PEを同
期して開始して実行モードにする手段と、PEを同期し
て停止する手段とを備えたことを特徴とする。
【0031】請求項8に記載のコンピュータ・システム
装置において、PE記憶ユニットに対応し、初期化手
順、結果記憶、およびトレース動作をサポートする複数
の記憶アレイを備えることとしてもよい。
【0032】請求項9に記載の発明は、請求項1に記載
のコンピュータ・システム装置において、N2 個のP
E、N個の通信ALUツリー、およびNアレイ構造のN
個のルート・ツリー・プロセッサを備えたことを特徴と
する。
【0033】請求項10に記載の発明は、請求項9に記
載のコンピュータ・システム装置において、各通信AL
Uツリーが、ツリーのリーフ・ノードにおけるN個のP
E、およびホスト・インタフェースに結果を提供するツ
リーのルートに接続する1つのルート・ツリー・プロセ
ッサを接続し、ならびに前記通信ALUツリー、PE、
およびNアレイ構造を構成するルート・ツリー・プロセ
ッサは、各PEに対してデータの値を入力する入力手段
と、タグの付いた命令およびデータを、ルート・ツリー
処理ユニットからPEに通信する手段と、各PEにおけ
る命令およびデータの行き先を制御する手段と、各PE
において受信した命令を実行する手段と、自動モードに
おいて、次の演算において用いられるべくデータが受信
されたときに、あらかじめ受信されていた命令を実行す
る手段と、オペランドを選択し、および行き先のパスを
制御して、結果が各PEにローカル的に留まり、または
付属の通信ALUツリーに送られることを可能とする手
段と、複数のPEから受信した値の、集中した機能を実
行する手段と、外部データ値を各ルート・ツリー・プロ
セッサに入力する手段と、新たな命令およびデータを生
成する手段とを備えたことを特徴とする。
【0034】請求項10に記載のコンピュータ・システ
ム装置において、各PEにデータの値を入力する前記入
力手段は、ルート・ツリー・プロセッサの形態のホスト
・インタフェース制御機構と、各PEにおける各データ
値記憶ユニットに対してアクセスするプログラマブル・
プロセッサ制御装置とを備えることとすることができ
る。
【0035】請求項10に記載のコンピュータ・システ
ム装置において、タグの付いた命令およびデータをルー
ト・ツリー・プロセッサからPEに通信する手段は、通
信モードにおいて動作する通信ALUツリーと、各PE
におけるタグ・マッチング・ユニットとを備え、前記タ
グはブロードキャスト・ビットおよびタグ・アドレス・
フィールドを有することとしてもよい。
【0036】請求項11に記載の発明は、請求項10に
記載のコンピュータ・システム装置において、各PEに
おける命令およびデータの行き先を制御する手段は、命
令に対しては、命令デコーディング機構、命令パス・ビ
ット、および汎用セルにおける分配器ロジックで構成
し、ならびに、命令デコーディング機構、汎用セルが特
定したレジスタを対角線セル・レジスにマッピングする
レジスタマッピングロジック、および対角線セルにおけ
る分配器ロジックで構成し、ならびに、データについて
は、対角線セルおよび汎用セルの双方におけるデータ・
デコーディング機構およびデータ・パス記憶ユニットで
構成したことを特徴とする。
【0037】請求項11に記載のコンピュータ・システ
ム装置において、YINモードと呼ばれる汎用セルの動
作の1つのモードにおいては、データ・パス記憶ユニッ
トおよび命令パス・ビットを適切に構成して、上部通信
ALUツリーから受信した命令が上部PEの命令記憶ユ
ニットに向けられ、および下部の通信ALUツリーから
受信した命令が下部PEの命令記憶ユニットに向けら
れ、および上部通信ALUツリーから受信したデータが
上部PEの特定された記憶ユニットに向けられ、および
下部通信ALUツリーから受信したデータが下部PEの
特定された命令記憶ユニットに向けられるようにしても
よい。
【0038】請求項11に記載のコンピュータ・システ
ム装置において、YOUTモードと呼ばれる汎用セルの
動作の第2のモードにおいては、データ・パス記憶ユニ
ットおよび命令パス・ビットを適切に構成して、上部通
信ALUツリーから受信した命令が下部PEの命令記憶
ユニットに向けられ、および下部通信ALUツリーから
受信した命令が上部PEの命令記憶ユニットに向けら
れ、および上部通信ALUツリーから受信したデータが
下部PEの特定された記憶ユニットに向けられ、および
下部通信ALUツリーから受信したデータが上部PEの
特定された命令記憶ユニットに向けられるようにしても
よい。
【0039】請求項10に記載のコンピュータ・システ
ム装置において、各PEにおいて受信された命令を実行
するための手段は、NOP、PATH、算術演算、論理
演算、シフト、比較、および自動操作モードの仕様、ソ
ース・オペランド、結果の行き先、および即値データの
仕様を有するデータ記憶移動命令に応答するプログラマ
ブル実行ユニットを介して行なわれることとしてもよ
い。
【0040】請求項10に記載のコンピュータ・システ
ム装置において、自動モードにおいて、データが次の動
作で使用されるために受信されたときに、前もって受信
した命令を実行する手段が、自動モードを設定する能力
を有する受信した命令により設定される自動モードフラ
グと、同期機構が通信ALUの使用と競合がないことを
保証した後に送られる、有効データの受信により構成さ
れ、前記同期機構は、時間遅延制御または通信ALUツ
リーの使用もしくはPE実行状態と通信するための、代
わりの信号発生手段を有することとしてもよい。
【0041】請求項10に記載のコンピュータ・システ
ム装置において、結果が各PEにローカル的に留まり、
または接続された通信ALUツリーに送られることを可
能とする、オペランド選択および行き先パスの制御手段
が、命令デコーディング機構と、時間遅延制御同期機構
の下でまたは通信ALUツリーもしくは代わりの信号発
生手段による通信PE実行状態により与えられる動作完
了の表示のない分配器ロジックとで構成してもよい。
【0042】請求項10に記載のコンピュータ・システ
ム装置において、複数のPEから受信した値の集中した
機能の実行手段は、機能実行モードにおいて動作する接
続された通信ALUツリーによることとしてもよい。
【0043】請求項10に記載のコンピュータ・システ
ム装置において、外部入力値を各ルート・ツリー・プロ
セッサに入力する手段は、通信ALUツリーの出力に配
置された最終総和ステージに外部から入力を供給するこ
とで構成としてもよい。
【0044】請求項10に記載のコンピュータ・システ
ム装置において、新たな命令およびデータを生成する手
段は、ルート・ツリー・プロセッサ、および接続された
ホスト・コンピュータおよびN個の通信ALUツリーに
対してインタフェースするプログラマブル制御装置で構
成してもよい。
【0045】ここで、タイムアウト状態マシン制御機構
を命令およびデータの発行機構に用いて構造のハザード
を回避するようにしてもよい。
【0046】請求項10に記載のコンピュータ・システ
ム装置において、データがビット・シリアルのフォーマ
ットであり、そのフォーマットは、データに対して、対
角線セルまたは汎用セルに受信されたビットの順であ
り、まずブロードキャスト・ビット、次がタグ・フィー
ルド、次がエラー取扱ビットであり、さらにインアクテ
ィブ状態にセットされ、データを示す命令ビット、スペ
ア・ビット、データ・フィールドが続き、およびエラー
取扱ビットで終ることとしてもよい。
【0047】請求項10に記載のコンピュータ・システ
ム装置において、命令がビット・シリアルのフォーマッ
トであり、そのフォーマットは、命令に対して、対角線
セルまたは汎用セルに受信されたビットの順であり、ま
ずブロードキャスト・ビット、次がタグ・フィールド、
次がエラー取扱ビットであり、さらにアクティブ状態に
セットされ、命令を示す命令ビット、自動ビット、命令
のタイプを示す命令フィールド、第1のオペランドを示
すソース1フィールド、第2のオペランドを示すソース
2フィールド、結果の行き先を示す行き先フィールド、
即値データ・フィールドが続き、およびエラー取扱ビッ
トで終ることとしてもよい。
【0048】請求項12に記載の発明は、請求項10に
記載のコンピュータ・システム装置において、1つはW
マトリクスと呼ばれ、他方はYマトリクスと呼ばれる、
2つのNxNマトリクスのマトリクス乗算を順次に実行
する手段を備え、前記乗算によりZマトリクスと呼ばれ
る第3のNxNマトリクスを生成し、およびレジスタを
記憶ユニットに用い、MPYが乗算命令を示す時に処理
を可能とし、ALUTREEの行き先が結果を接続され
た通信ALUツリーに送信し、前記ルート・ツリー・プ
ロセッサはホスト・インタフェース機能を有し、前記処
理は、 a)Wマトリクスをロードする(ルート・ツリー・プロ
セッサあてにN個のW値を仮定する)ステップと、 b)通信ALUツリーを通してY値と通信することによ
り第1のY行をロードするステップと、 c)MPYA R1*R2→ALU TREE(ここ
で、ALUツリーは総和処理のために初期化されてい
る。)のステップと、 d)結果としてのZマトリクスの第1の行を計算する、
すなわち総和ツリーが続くYおよびWレジスタの乗算を
行なうステップと、 e)N個のZの値をルート・ツリー・プロセッサに格納
するステップと、 f)第2のY行と通信ALUツリーを通じて通信するス
テップと、 g)新たなY値が受信されたときに、結果としてのZマ
トリクスの第2の行を 計算する、すなわち総和ツリーが続くYおよびWレジス
タの乗算を行なうステップと、 h)ルート・ツリー・プロセッサにN個のZ値を格納す
るステップと、 i)行の計算を次のj)の実行まで継続するステップ
と、 j)N番目のY行と通信するステップと、 k)新たなY値が受信されたときに、結果としてのZマ
トリクスのN番目の行を計算する、すなわち総和ツリー
が続くYおよびWレジスタの乗算を行なうステップと、 l)ルート・ツリー・プロセッサに結果としてのZマト
リクスの最後の行を格納するステップとを有することを
特徴とする。
【0049】請求項10に記載のコンピュータ・システ
ム装置において、1つはWマトリクスと呼ばれ、他方は
Yマトリクスと呼ばれる、2つのNxNマトリクスのマ
トリクス加算を順次に実行する手段を備え、前記加算
は、Zマトリクスと呼ばれ、PEの一時記憶ユニットに
内部的に格納される第3のNxNマトリクスを生成し、
次にYおよびWマトリクスが初期化され、または以前の
計算による適切な値となり、およびN2 個の一意的なの
YおよびW記憶ユニットが構造の中に存在すると仮定し
て、そのシステムは、YおよびW記憶ユニット上で、ロ
ーカルな加算を実行するが可能となり、該加算は、PE
の一時的記憶ユニットに対して送られた結果と共にPE
内で行なわれ、前記加算の完了の後に、元のYおよびW
マトリクスはその構造の中にそのまま残り、およびその
一時記憶ユニットは、読み出されることまたは次の演算
のために使用されることが可能な、加算結果のマトリク
スを有することとしてもよい。
【0050】請求項10に記載のコンピュータ・システ
ム装置において、1つはWマトリクスと呼ばれ、他方は
Yマトリクスと呼ばれる、2つのNxNマトリクス上の
マトリクスブール演算を順次に実行する手段を有し、前
記ブール演算は、PEの内部の一時記憶ユニット中に格
納され、Zマトリクスと呼ばれる、第3のNxNマトリ
クスを生成し、次にYおよびWマトリクスの双方が初期
化され、または以前の計算による適切な値となり、およ
びN2 個の一意的なYおよびW記憶ユニットが構造の中
に存在すると仮定して、そのシステムは、YおよびW記
憶ユニット上で、ローカルなブール演算を実行すること
が可能となり、該ブール演算は、PEの一時的記憶ユニ
ットに対して送られた結果と共にPE内で行なわれ、前
記ブール演算の完了の後に、元のYおよびWマトリクス
はその構造の中にそのまま残り、およびその一時記憶ユ
ニットは、読み出されることまたは次の演算のために使
用されることが可能な、ブール演算の結果のマトリクス
を有することとしてもよい。
【0051】
【作用】本発明による新たに開発されたコンピュータ・
システムは、超並列(Massively Paral
lel)(MP)対角線折畳みツリー・アレイ・プロセ
ッサ(Diagonal−Fold Tree Arr
ay Processor)と表現でき、単一命令複数
データ流(Single Instruction M
ultiple Data)(SIMD)方式で動作
し、汎用のアプリケーション能力をもつ。私達が好まし
いと考えるMPシステムは、N2 個のプロセッサ・エレ
メント(Processor Element)(P
E)構造を有し、ここで、各PEは命令およびデータ記
憶ユニットを有し、命令およびデータを受取り、ならび
に命令を実行する。N2 PE構造は、N個の通信ALU
ツリー、N個のツリー・ルート・プロセッサ(Tree
Root Processor)(TRP)、ならび
に通信ALUツリーにより、PEに対して命令およびデ
ータを返信する機構を有する必要がある。
【0052】以下に述べる好適な装置は、NxNマトリ
クスの形に配置されたN2 個のPEを有する。ここで、
【0053】
【外3】
【0054】対角線に沿って折畳みされ、および対角線
PEおよび汎用PEにより構成される。
【0055】本発明の好適なシステムにおいては、対角
線PE(Diagonal−PE)は単一のプロセッシ
ング・エレメント(処理要素)PEijを有し、ならびに
汎用PE(General−PE)は、2つの対称的な
プロセッシング・エレメントPEijおよびPEjiを有す
る。これらは、共に結合されて、折畳み前のNxNPE
アレイの同一のPEエレメントに関連付けられる。
【0056】本発明のPEおよび新たなPEアーキテク
チャの構成を、マトリクス乗算の実施例、ならびにニュ
ーラル・ネットワークのエミュレーション、マトリクス
加算、およびブール代数演算に関する検討によって、本
発明による改良を実施するために我々が知る最良の方法
で記述する。
【0057】以下では、これらおよび他の改良について
詳しく説明する。本発明を、その利点および特徴と共に
より良く理解するために、以下の説明では、この分野で
発明者が行なってきた他の開発に関する他の共に係属中
の特許出願を参照することもある。しかし、特にここに
記載の改良、利点および特徴については、記載中で参照
を行なう。
【0058】
【実施例】以下、図面を参照して本発明の実施例を詳細
に説明する。
【0059】マトリクス処理の背景 本発明の好適なMP組織に特に適した積の和計算を利用
する、i列j行のベクトルマトリクス乗算の演算を示
す。入力マトリクスzi は、次式のように定義される。
【0060】 zi =Y1i1+Y2i2+...+YNiN これは、マトリクス乗算の一般的な場合のサブセットで
ある。図2に示すように、i列j行を有し、
【0061】
【外4】
【0062】Y,Wおよび(Y*W)よりマトリクスZ
が得られる。以下に仮定する能力を有する、MP対角線
折畳みツリー・アレイ・プロセッサが可能であると仮定
する。
【0063】* N個のルート・ツリー・プロセッサ:
各々が、NY値のY値メモリ容量およびN個の結果値
に対する追加メモリ容量を有する。
【0064】* 内部PEレジスタ中に格納されるべき
W値をもつN2 個のPE * ルート・ツリー・プロセッサ複合システムは同報通
信(ブロードキャスト)モードで全ての命令を発行す
る。
【0065】記載するアルゴリズム・プロシージャは、
多くの可能性の1つのみを示し、およびアプリケーショ
ンとして「最適」なプロシージャであるとは限らない。
それは、本発明による対角線折畳みツリー・アレイ・プ
ロセッサの能力を説明することを意味する。基本的プロ
シージャは、N個のルート・ツリー・プロセッサにYマ
トリクスの行および乗算命令を、自動モード(Auto
mode)を特定してPEに送信させ、これらPEが
乗算を実行しおよび結果を求和のためにCATに送信
し、結果として得られるマトリクスの行をルート・ツリ
ー・プロセッサに記憶のために返信する。次に、ルート
・ツリー・プロセッサは、Yマトリクスの新たな行を読
みだし、それをPEに返信し、結果として得られるすべ
ての行が計算されるまで、CATの出力において結果と
して得られるマトリクスの行を生成しおよびメモリにそ
の行を格納し続ける。W値マトリクスは、いったんPE
において初期化されると、マトリクス乗算動作中はずっ
とPEに対して固定され、内部状態となり続ける。
【0066】3.プロセッサエレメント構造 T−SNAP−はPE更新修正機構をなんらもっていな
かったので、T−SNAP−において記載されているよ
うなTSNAP構造は、ニューラル・ネットワーク・モ
デルによる要求に従って、ホスト・プロセッサがPEに
格納されたデータに対して更新された動作を行うことを
要求した。加えて、T−SNAPは、本発明のアーキテ
クチャにより提供されるルート・ツリー・プロセッサ機
能の能力を備えていない。「学習マシン」に記載されて
いるような学習マシンは、バックプロパゲーション学習
(Back−Propagation learnin
g)に対する例により立証されたように、ニューラル・
ネットワーク・エミュレーションのために特別にあつら
えられたマシンにより可能になった能力、および高い接
続性のホープフィールド・ニューラル・ネットワーク
(Hopfieldneural network)を
特に指向する。複数のPEに並列に記憶されたデータを
「汎用的」な更新ルールに適応させ、および「汎用的
な」ルート・ツリー・プロセッサ能力を提供するため
に、T−SNAPおよび学習マシンの双方に主な修正を
施すことが必要である。これらの修正によって、ニュー
ラル・ネットワークのパラダイムに通常関連する能力を
越えた能力を提供する。T−SNAP中で提供される固
定した乗算機能および学習マシンの限定された命令セッ
ト・アーキテクチャに代えて、より一般的なプロセッサ
・アーキテクチャが拡張された命令セット・アーキテク
チャを備えて実現され、および拡張されたデータ記憶が
可能となる。ワード並列およびビット・シリアル動作モ
ードが、問題の特定の要求に応じて可能であり、どちら
も排除されない。
【0067】内部的には、T−SNAP構造は2つのタ
イプの“セル”構造、すなわち対角線セル(Diago
nal−Cell)および汎用セル(General−
Cell)を利用して、ニューラルの積和機能を直接エ
ミュレートし、そして、例えばルーメルハート86(R
umelhart86)に見られる学習アルゴリズムに
より要求されるように、ローカルに格納されたデータの
処理を指向しなかった。プログラマブル性のない基本的
な乗算エレメントの構造を、図3の(A)および(B)
に繰り返す。命令セット・アーキテクチャにより提供さ
れる追加のローカル・データ操作能力を有する新たな
“セル”処理構造を、図4および図5に示す。以下の記
載中で用いる用語「エレメント(要素)(elemen
t)」は、TSNAPニューラル・エミュレーション能
力に要求される最小限に構成された機能ユニットであ
る。すなわち、重みレジスタ、Y値レジスタ、およびW
ijjという記号で示される乗算器である。“Y”およ
びWijj のレジスタ用語を、レジスタの使用をニュー
ラル・エミュレーションの例に限ることなく、一般的な
プロセッサの説明中で常に用いる。図3の(A)の第1
の「セル」は、対角線のエレメントWiji に関連付け
られており、および図3の(B)の第2の「セル」、汎
用セル(General−Cell)は、エレメントW
ijj の残りに関連付けられており、および上部および
下部のマトリクスに示す、汎用セルの中に置かれた2つ
のエレメントを含む。一般に、プロセッサ・エレメント
(PE)と称されるプロセッサ・セルの新たな形態は、
対角線PE(Diagonal−PE)および汎用PE
(General−PE)を有する。基本的な処理構造
(図3の(A)および(B)に対する変更)は、図4お
よび図5に示され、追加として、タグ比較機能、オプシ
ョンの命令バッファ、命令レジスタ(INSTR)、拡
張レジスタ・ファイル、各データ・レジスタにおける条
件付き実行ビット(Conditional Exec
ution Bits)(CEB)、データ・パス・レ
ジスタ、命令パス・ビット、セレクタおよび分配器制御
構造、および乗算に加えて、アプリケーションにより指
定され、実行ユニット(EXecution Unit
i)(EXU)ブロックにより表わされる除算、平方根
などの拡張した機能を有する。このような変更は種々の
理由から必要とされる。まず、プロセッシング・エレメ
ント(処理要素)が命令およびデータの双方を同一のソ
ース・パス、すなわちセルに取りつけられた通信ALU
ツリー(Communicating ALU Tre
e)(CAT)から受信するので、データから命令を区
別する方法が用いられなければならない。固定したフォ
ーマットが命令およびデータに用いられ、固定した単一
のビットフィールドが命令をデータから区別するために
用いられることが許容されていると仮定する。第2に、
フロント・エンド・デコーディングおよび分配機構に関
連して、プログラマブル・データ・パス・レジスタおよ
び命令パス・レジスタを利用することにより、受信した
命令またはデータの行き先が特定される。第3に、タグ
比較機能により、命令およびデータの行き先ポイントの
特定をさらに行うことができる。第4に、命令は複数の
機能を特定するかも知れないので、命令レジスタおよび
命令デコーディング、オペランド選択、機能選択、行き
先選択、および実行機構を設けることが必要である。第
5に、アルゴリズムの能力に柔軟性を与えるために、条
件付き実行ビット(Conditional Exec
ution Bits)(CEB)を有するレジスタ・
ファイルを、CEBを扱う能力と共に設ける。結果の行
き先がローカルPEレジスタである命令の実行は、行き
先レジスタのCEBの状態(state)に基づき条件
付きである。CEBは、レジスタを変更できるか否かを
示す。いずれかのオプションの命令バッファから、また
は命令バッファなしに通信モードにある付属の通信AL
Uツリーから受信され、PE命令レジスタにおいてデコ
ードされる命令を通じて、PEのプログラム性が得られ
る。各PEは、命令レジスタにおける命令を受信すると
きに、その命令で特定される処理を実行する。命令のタ
イプには、データ/命令パス仕様、データ移動、算術
的、および論理的命令が含まれる。各PEは、各プロセ
ッシング・エレメントに対して、ソースおよび行き先パ
スならびにEXU機能を特定する命令レジスタを有す
る。対角線PEは1つの命令レジスタを有し、汎用PE
は2つの命令レジスタを有する。
【0068】T−SNAPセルの変更は、類似の能力を
要求する他のアプリケーションと同様に、ニューラル・
エミュレーションをサポートするために、元のセルによ
り提供された機能的な能力を保存しなくてはならない。
T−SNAP乗算器セルにより提供される、新たなプロ
セッサ・セル構造中において維持されなくてはならな
い、必須の、新規な、および汎用の機能的能力は、完全
に接続されたプロセッサ、例えばホップフィールド82
(Hopfield82)およびホップフィールド84
(Hopfield84)のような、完全に接続された
ネットワークに対して用いられるようなニューロン・プ
ロセッサのエミュレーションに関するものである。この
重要な機能を、元のT−SNAPセルの図3の(A)お
よび(B)を用いて簡単に再検討する。例えば、実行モ
ードにおけるニューラル・ネットワーク・モデルを用い
て、各処理セルにおいて乗算動作を行うものとすると、
対角線セルはその格納した重みを、その格納したYの値
と乗算し、および乗算結果を取りつけられた加算ツリー
に供給する。対角線セルのための通信モードにおいて
は、Yの値を取りつけられた加算ツリーから受けとり、
およびY値レジスタに格納する。その構造の「汎用セル
(General−Cell)」はまた、重みをかけた
Yの値を発生し、その積をそれらに取りつけられた加算
ツリーに供給する。これらの「汎用セル」のための通信
モードにおいては、底部の乗算器加算ツリーから受信し
たYj の値を、頂部のY値レジスタに格納し、および同
様に、頂部の乗算器加算ツリーから受信したYi の値を
底部のY値レジスタに格納する。このY値の格納の切り
替えは、完全な接続性を支援する必須の特性である。図
4および図5の、変更された処理セルに対しては、この
パスの切り替えは、プログラム可能であり、処理のため
のさらに特有のアーキテクチャ的特徴を可能とする。こ
れについては、この章のプロセッサ・エレメント命令セ
ットのセクションで記載する。元のT−SNAPセルの
内部パス切り替え機能を保持するために、新たなプロセ
ッサ・セルは、データ・パス・レジスタは、ツリーから
のデータの受信に先だって特定される(ロードされる)
ことを必要とする。このデータ・パス・レジスタは、底
部のツリーから受信したYj データの行き先を頂部のY
j レジスタに定め、および頂部の加算ツリーから受信し
たYi データの行き先を底部のYi レジスタに定め、こ
れにより完全な接続性機能を維持する。
【0069】図6の左に、各ステージのALUを文字A
により表した、記号的な総和ツリーを示す。図6の右手
側に、使用される通信ALUツリー構造のより詳細な表
現を示す。パイプライン・ラッチは、より明瞭にするた
めに省いてある。特定のアプリケーションのためには、
ALU機能は、ビット・シリアルの加算器のように単純
であってもよく、または命令セット・アーキテクチャを
必要とするより複雑なプログラマブル機能を提供しても
よい。機能の実行および通信動作を記述する目的のため
に、本テキストの中では総和動作を参照する。総和機能
を用いるのは、説明の簡易化のためであり、通信ALU
ツリーが提供することのできる機能を限定することを意
味することを意図するのではない。加えて、ノードの動
作モードおよび機能を決定するツリー・ノードの制御機
構は、個別の制御線またはタグの付されたツリー・ノー
ド命令を用いることができる。加算のような単一のノー
ド機能および2つの動作モード、すなわち通信および機
能実行のためには、単一の制御線で実施することが実行
可能である。もし、ツリー・ノードにおいて、より拡張
した機能をサポートしようとする場合は、追加の制御機
構が必要とされるだけではなく、記憶要素がツリー・ノ
ードにおいて必要とされる。加えて、もし複数の機能が
ツリー・ノードにおいて提供される場合は、同期してツ
リー動作を制御する方法が用いられなければならない。
機能を実行するタイミングを変化させることが各ツリー
・ノードにおいて許される場合は、ツリー・ステージの
間に非同期インターフェース方法が提供されなくてはな
らない。同期制御を保証する実施を単純にするために、
各ツリー・ステージに対して同一の動作を特定するとい
う制限を行うものとする。図6に、3つのALU要素
(エレメント)を2つのステージにパイプライン化した
ツリー配置として示す。ALU要素は出力側にスイッチ
1、SW1ブロックを有し、およびALUをバイパスす
る2つのスイッチ2、SW2ブロックを有する。通信A
LUツリーは2つのモード、すなわち機能実行モードお
よびバイパス・モードとも呼ばれる通信モードのうちの
1つに置くことができる。ツリーの全てのノードが同一
の動作モードを提供することを保証するように、共通の
制御信号が各ALU要素において用いられる。ツリー制
御信号、これに付随するタグ信号または共通の分配され
た信号により特定される機能の1つは、ALUバイパス
である。SW1およびSW2の両方のスイッチがオン/
オフ制御を有する。このオン/オフ制御は、“オフ”の
状態のときに、スイッチを開放、すなわち高インピーダ
ンス状態に保ち、“オン”の状態のときに、低いインピ
ーダンスの通路を通じてALU(ノード機能)をバイパ
スする。SW1がイネーブルされると、SW2はディス
エーブルされ、逆もまた同じである。このようにしてA
LUツリーは総和機能を提供することができる。例えば
一方向において、SW1がオンでSW2がオフであり、
一方で主にALUバイパス・モードにおいては通信パス
として動作しており、SW1はオフであり、SW2はオ
ンである。2入力1出力の機能要素、例えば2入力1出
力(2−1)の加算器を用いるALUツリーはlog2
N個のステージを必要とする。あるいはまた、ALU機
能および通信モードを、3−1,4−1,…,N−1加
算器およびそれらのバイパススイッチのような、3−
1,4−1,…,N−1機能要素とともに、全て同一の
要素タイプまたはそれらの組み合わせを用いて実施する
ことで、特定の機能を作ることができる。注意すべき点
は、図6の通信ALUはその論理機能を表し、従って、
例えば技術によっては、SW1の機能は各ALU要素の
最終内部ステージにおいて用いられるゲート・デバイス
に組み込まれてもよく、それによって追加の遅延をAL
U機能に加えないようにできる。あるいはまた、別個の
通信ツリー・パスを設けて、ALU機能が進展中に通信
が行われるのを可能としてもよい。
【0070】図7ないし図9に、16個のPEを4つの
CATで接続し、および4個のルート・ツリー・プロセ
ッサをホスト・インタフェースで接続して、超並列対角
線折畳みツリー・アレイ・プロセッサ(Massive
ly Parallel Diagonal−Fold
Tree Array Processor)におい
て用いられるマシン組織の完全な構成を与えるルート・
ツリー・プロセッサの例を示す。CATはALU実行モ
ードにおいて総和機能を提供すると仮定する。第3のル
ート・ツリー・プロセッサRTP3 のための“W*Y”
レジスタ積の合計の計算に携わる要素の例を、次式に記
載し、および図7ないし図9中にアンダーラインを付し
て示す。
【0071】RTP3 =F(W3,11 +W3,22
3,33 +W3,44 ) ホスト・インタフェースはPEのアレイのための中央制
御ポイントを表わし、たとえば、初期パラメータW,
Y,など、計算された値、およびトレースされた値を有
する可能性のあるルート・ツリー・プロセッサの内部記
憶に、ホストがアクセスすることを可能とする。各通信
/機能実行ツリーおよびそれらに付属するN個のPEに
対してルート・ツリー・プロセッサがあると仮定する。
各ルート・ツリー・プロセッサは、ツリー動作の通信モ
ードを介して、命令およびデータをツリーに付属するN
個のPEに対して発行する。ルート・ツリー・プロセッ
サおよびホスト・インタフェースが有する追加の機能
は、以下の通りである。
【0072】1.全てのプロセッサの初期化 2.システムの開始 3.システムの停止 4.ALUツリー制御の通信 5.PE命令およびデータの発行 動作にあたっては、N2 個のPE構造は、あるレジスタ
の初期化を必要とするかもしれない。PEのタグが付け
られた値を個々のプロセッサに一意的に送信することに
より、特定のレジスタを初期化することができるにもか
かわらず、N2個の動作が必要とされる。他の代わりの
構造は、PEレジスタをLSSDスキャニングのための
直列ディージー・チェインの形態に接続することであろ
う。これについてはアイチェルバーガー77(Eich
elberger77)を参照。LSSDスキャニング
は、検査およびレジスタの初期化をサポートする。各ル
ート・ツリー・プロセッサおよびその付属のN個のPE
は、1つまたは実施する技術に応じた複数の走査ストリ
ングを有する。例えば、各ルート・ツリー・プロセッサ
に対して“W”レジスタのみを有する個別の走査パスが
与えられ、その結果、初期化の目的のために用いられ得
るN個の“W”レジスタの走査パスができる。他の初期
化機構も明らかに可能であり、適切な方法が実施化設計
プロセスにおいて選択され得るものと考えられる。ルー
ト・ツリー・プロセッサのN個の付属PEに共通のパラ
メータ値を、通信ALUツリーを介してロードすること
ができる。
【0073】4.プロセッサ・エレメント命令セット 本セクションでは、先に論じた能力を提供する1つの例
の命令セットを再検討する。まず第一に、命令およびデ
ータのためのフォーマットの例の提示からはじめ、1つ
の例の命令セットの記述に続く。
【0074】処理エレメントのためのアーキテクチャを
決定するために、1セットの決定を行なうことが必要で
ある。1つの主な決定セットは、命令およびデータのフ
ォーマットに関連し(選択可能なフォーマットの範囲お
よびそのコストと性能に及ぼす影響の概観のためには、
フリン85(Flynn85)を参照)、および他の主
な決定セットは、そのアーキテクチャにより実行される
機能に関連する。各ルート・ツリー・プロセッサは命令
およびデータをN個のプロセッサ・エレメントに対して
発行するので、高度なプログラミング柔軟性のための望
ましい能力は、命令およびデータのフォーマットを、プ
ロセッサ・グループ識別フィールドを含むように拡張す
ることにある。その結果、その命令フォーマットはプロ
セッサまたはプロセッサ・グループを識別し、命令をデ
ータから分離し、オペランドを識別し、および行き先を
求める要求を有する。他のフォーマットも明らかに可能
であるが、ここでは図10に示した例のフォーマットを
選択する。特定のプロセッサ・エレメントおよびPEの
グループの双方を、全ての通信に加えられたタグ・ビッ
トおよび同報通信(ブロードキャスト)“B”ビットの
付加により識別でき、そしてタグおよび“B”ビットは
各PEにおいて機能を比較する。1つの“B”ビットが
第1のビットとしてフィールドに加えられ、B=1に対
するブロードキャスト命令/データ、およびB=0に対
するタグの付いた命令/データを示す。ブロードキャス
ト・メッセージ/データは、TAGとは独立に、特定の
i ルート・ツリー・プロセッサに結合されたN個のプ
ロセッサ・エレメントの全てへ行く。もし1つのルート
・ツリー・プロセッサに属する全てのプロセッサ・エレ
メントに、特定の識別子が伴われている場合は、TAG
フィールドは少なくともlog2 Nビットの長さをもつ
必要がある。あるいはまた、プロセッサ・エレメントの
グループが同一のタグの値を用い、これによりPEのグ
ループを一意的に識別することができる。受信したタグ
は各PE中に格納されたタグとビット毎に比較される。
最後のタグ・ビットの比較が完了した後に、それに続く
命令/データ(INSTR/DATA)がその特定のP
Eにより受信されるべきものか否かが分かる。タグが一
致した結果、命令INSTRまたはデータDATAが受
信され、一方で不一致状態によって命令INSTRまた
はデータDATAの受信を防止する。図11に示すよう
に、エラーを取り扱うという理由のために、Pで示され
るパリティー・ビット、すなわちエラー訂正ビットをも
タグ・フィールドに含めることができる。
【0075】通信された命令またはデータもまた、その
ビット・ストリングがデータかまたは命令かを示す単一
のビット(INSTR)、ならびに命令に対しては、自
動実行モード(AUTO)、命令オペコード(INST
R)、オペランド・セレクション(SOURCE1およ
びSOURCE2)、および結果の行き先(DESTI
NATION)を特定する追加のフィールドを有する。
エラー訂正/検知ビット(ECC)は、エラー取り扱い
の理由から、命令およびデータの双方に含まれ得る。命
令およびデータのビット長は同一であると仮定する。図
12ないし図14に現在の命令セット機能を列挙する。
【0076】命令セットは、算術演算、例えば、加算、
減算、乗算、除算、平方根など、論理演算、例えば、A
ND、OR、EX−OR、反転など、比較、シフト、お
よびデータ記憶移動動作を含んでもよい。命令セット
は、主として、アプリケーションに特定の目的により決
定される。
【0077】自動実行モードを表すAUTOビットを一
意的に加えて、比較的に標準的な命令フォーマットが用
いられる。自動実行モードは、PEの実行モードを命令
実行のみのモードからデータに依存する実行モードに切
り替える能力を表す。制御フロー実行モードからデータ
・フロー実行モードへの切り替えの制御は、AUTOビ
ットの使用によりプログラマブルであって、データ・フ
ロー・モードおよび制御フロー命令実行モードへ戻るこ
とを許容する規則を有する。AUTOビットをアクティ
ブにする命令は、まず通常の命令制御フロー実行シーケ
ンスにより実行され、次に有効なデータが処理ユニット
において受信される度毎に実行される。データ・フロー
の実行は、新たな命令が受信されるまで続き、それ以前
の“AUTO”命令の実行を中止させ、新たに受信した
命令の実行を開始させる。それもまた、他のAUTO命
令であってよい。
【0078】処理のためのAUTOモードの重要性を示
すために、ホッフィールド・ニューラル・ネットワーク
を用いた簡単な例を示す。本論では、図12ないし図1
4の命令セット・アーキテクチャの例で示したような命
令ニーモニックを用いる。ネットワーク・ニューロン
の、接続ニューロンの出力の値に接続重みを乗じた値の
総和の直接エミュレーションのために、ホップフィール
ド・ニューラル・ネットワーク・モデル(ホップフィー
ルド84(Hopfield84)を参照)を例として
用いると仮定する。各ネットワークの更新サイクルは、
重みを乗じたY値を乗算演算、乗算結果の合計、非直線
性シグモイド(シー字型)ニューロン出力のY値の生
成、および生成されたY値をプロセッシング・エレメン
トに対して通信することを含む。ネットワークの更新
は、ネットワークが最小に達するまで続く。説明を単純
化するために、ネットワークの集中性(converg
ence)は、全てのサイクル毎にテストされるのでは
なく、いくつかの複数サイクルの後にのみ行なわれるも
のと仮定する。プロセッサ・エレメントを用いたネット
ワークのエミュレーションのために、自動モードが特定
され、ここで、次のネットワークサイクルを初期化する
ために、各ネットワーク実行サイクルの後にPEに対す
る乗算命令を繰返し送信することを要求する代わりに、
自動モードは、新たに計算されたYの値を受信した後
に、次の更新サイクルを自動的に開始する。この自動モ
ードは、ホップフィールド・ネットワークの例において
乗算(MPY)を用いたように、所望の命令中のAUT
Oビットを“1”にセットすることにより開始され、こ
れによりPE中の自動モードフラグをセットする。この
最初の動作作は、AUTOビットが“1”にセットされ
た命令の受取りにより開始され、およびその命令は、N
OP命令の受取りのように、自動モードを終了する新た
な命令が受信されるまで続く新たなデータの受取りによ
り繰返し実行される。大文字Aが、命令ニーモニックに
加えられて、例えばMPYAのように、自動ビットを
“1”にセットすることを示す。
【0079】図12ないし図14に特定されたソースお
よび行き先のアドレスは、命令を受信した命令レジスタ
に関係する。この相対アドレスを図5に示す。ここで上
部の命令レジスタINSTR TREGの相対アドレス
を、レジスタ・ブロックの右に配置された縦欄式に示
す。一方、下部の命令レジスタINSTR BREGの
相対アドレスを、レジスタ・ブロックの左側に配置され
た縦欄式に示す。“k”一時的すなわちワーキング・レ
ジスタに対しては、例えば、下部の命令レジスタR2は
上部の命令レジスタR(2+k+1)と同一であること
に注意すべきである。ALUツリーから受信したビット
・ストリングは、もしそれが命令であれば、INSTR
PATH BITによる指示によって、各汎用セル中
の、2つのINSTRレジスタの1つに直列に渡され
る。ALUツリーから受信したデータ・ビット・ストリ
ングは、DATA PATHレジスタによる区分けに従
って、汎用セルにおいて利用可能なK+4個の他のレジ
スタの1つ、および対角線セルにおいて利用可能なk/
2+2個の他のレジスタの1つに直列に渡される。対称
構造に対しては、対角線セルは、汎用セルと比較して半
分の個数の命令およびデータを有すると仮定する。対角
線セルにおいては、R(2+k/2+1)からR(2+
k+2)およびCR2のソースまたは行き先アドレスは
次のようにマップとして示される。
【0080】 * R(2+k/2+1) → R(2+k/2) * R(2+k/2+2) → R(2+k/2−1) * 続く * R(2+k/2+k/2+2)=R(2+k+2) → R(2+k/2−k/2−1)=R1 * CR2 → CR1 例えば、汎用セルの中のk=2のワーキング・レジス
タ、および3ビットのソースまたは行き先のアドレスを
仮定し、従って汎用セルが3ビットすべてを用い、およ
び対角線セルが2つの最下位ビットのみを使用すると仮
定すると、適切なマッピングは以下のように与えられ
る。
【0081】*000 → CR1 *001 → R1 *010 → R2 *011 → R3 *100 → CR2 *101 → R6 *110 → R5 *111 → R4 PATH命令は、他の命令から区別して扱われる。その
理由は、PATH命令が命令パス(命令路)の選択機構
を制御するからである。PATH命令は、分配器ロジッ
クに先だってデコードされ(図3〜図5)、およびDA
TA PATHレジスタまたはINSTR PATH
BITは、行き先フィールドに従ってロードされる。P
ATH命令の行き先フィールドの1つの可能なフォーマ
ットは、CR1/2に対して第1のビット位置を用い、
パスの選択に対しては他のビットを用いることであり、
他のフォーマットが可能であることは明らかである。P
ATH命令は、もし異なるパスが望まれる場合は、再発
行する必要がある。デフォルト(省略時)パスが初期化
の目的のためのアーキテクチャにより特定される。例え
ば、DATA PATH レジスタがR5に初期化さ
れ、Y値レジスタが完全に接続されたネットワークをサ
ポートし、ならびにINSTR PATH BITが
“1”にセットされて命令切り替えパスをも示す。全て
のPEデータ・レジスタは、各データ・レジスタ中の条
件付き実行ビットにより、(D=L+1)ビットの長さ
を有する。命令およびデータのフォーマットを示す図1
0を参照のこと。もしCEBが命令行き先レジスタにお
いて“ゼロ”にセットされると、その命令はNOP命令
として扱われる。すなわち、行き先レジスタの内容は変
更されず、加算ツリーに“ゼロ”が与えられる。もしC
EBが“1”にセットされると、レジスタの内容を変更
することができる。例えば、このビットはWレジスタ上
で値が存在するかまたは存在しないかを識別するために
用いられる。その理由は、ゼロの値はこれを達成するの
に常に充分ではないからである。加算ツリーには、もし
その加算ツリーが行き先ポイントでなければ、またはN
OP状態が起こっていれば、“ゼロ”が常に与えられ
る。CEBはチップスキャニング設備(機能)、パス命
令、またはツリーから受信されるデータの値により初期
化状態にセットされ得る。
【0082】命令パスおよびデータ・パスをプログラマ
ブルとすることにより、ネットワーク・エミュレーショ
ンのための2つの動作モードが可能となる。YINモー
ドと呼ばれる第1のモードでは、全てのプロセッサに対
して、下部の加算ツリーから受信した命令がINSTR
BREG(CR1)に送信され、および上部の加算ツ
リーから受信した命令がINSTR TREG(CR
1)に送信される。次にYINモードでは、各PEは命
令フィールドにおいて特定されたように機能する。この
形態で、各ルート・ツリー・プロセッサが、そのルート
・ツリー・プロセッサに対する全てのPE入力に対して
共通な、異なる入力PE処理機能を以て特定される。例
えば図7ないし図10を参照すると、ルート・ツリー・
プロセッサ4に対する全ての入力を、(Wレジスタの値
*Yの値)乗算演算で特定でき、他方、ルート・ツリー
・プロセッサ2に対する全ての入力を一時レジスタの値
*Yの値の演算で特定できる。全ての通信ALUツリー
はお互いに独立なので、各PE入力機能は、異なるルー
ト・ツリー・プロセッサに対して、YINモードにおい
て、異なる実行時間を有することができ、これは総和の
結果が異なる時間に生じることを意味し、正しく取り扱
わなけば、ルート・ツリー・プロセッサに対するインタ
フェースにおいて同期の問題を生じ得る。YINモード
は、ルート・ツリー・プロセッサおよびそのPEのセッ
トを、処理のために非同期に選択するために用いられ
る。YOUTモードと呼ばれる第2のモードにおいて
は、全てのルート・ツリー・プロセッサに対して、下部
の加算ツリーから受信した命令はINSTR TREG
(CR2)に送信され、および上部のツリーから受信し
た命令はINSTR BREG(CR2)に送られる。
その結果、YOUTモードでは、全てのルート・ツリー
・プロセッサの値の出力は、それらの入力行き先PEに
おいて同一の機能を有する。このようにして、各ルート
・ツリー・プロセッサはその入力PEにおいて複数の機
能を有することができる。例えば、図7ないし図10を
参照すると、全てのY4の行き先PEは(Wレジスタの
値*Yの値)乗算演算で特定され、他方、全てのY2の
行き先PEは(一時レジスタの値*Yの値)演算で特定
される。PE入力において特定された全ての機能は、機
能が異なったとしても、同一の長さの時間中に行なわれ
なくてはならない。一般的には、単一のモデルまたは問
題構造内では、競合(コンフリクト)が生じるので、Y
INモードおよびYOUTモードをルート・ツリー・プ
ロセッサ間で交換することができない。単純なホップフ
ィールド・ネットワーク・エミュレーションの例に対し
ては、ニューロンとして機能しているルート・ツリー・
プロセッサは、全てのルート・ツリー・プロセッサでY
OUTモードを特定して、同一の命令を全てのPEに対
して発行する。
【0083】個別のプロセッサ・エレメントに対してロ
ーカルな行き先を多くの命令により特定する。このロー
カル処理は、もし正しく扱われなければ同期の問題を引
き起こし得る。同期機構を構造全体に拡張する代わり
に、ローカル処理の同期の問題はそのルート・ツリー・
プロセッサに局在させることができる。例えば、もしそ
のPEからローカル処理の完了が通知されなければ、固
定のハードウエア機構をそのルート・ツリー・プロセッ
サに設けて、動作の安全性を保証することができる。問
題を、プロセッサ・エレメントの中の待ちマトリクス
(queue)の手段を介して「解決」することも望ま
しくない。これはPEの大きさを増加させ、単一のチッ
プ上に置かれ得るPE個数を制限するからである。むし
ろ、その命令を発行するポイントは、全てのハザードを
解決しおよび避けるために用いられるべきである。同一
のPEに対するどのようなローカル処理命令も、その同
一のPEに対する次の命令から、特定のプロセッサ命令
実行時間だけ分離されるようにすることが必要である。
例えば、もし乗算が2Lクロックで実行される場合は、
次の命令を送るのに先立って、2Lのタイム・アウトが
保証されなくてはならない。これは、命令レジスタ・バ
ッファを必要としないために必要であり、これにより各
命令が、その命令された機能の動作中、PEにおいて一
定に保たれることを可能とする。このようにして、各ル
ート・ツリー・プロセッサには同期機構がセットアップ
され、各PEに対して最大の速度で命令を安全に発行す
ることができる。ローカルでない命令、すなわち、行き
先が加算ツリー(ADD TREE)である命令は、集
中したツリーの結果がそのルート・ツリー・プロセッサ
に到着したときに、動作の完了通知を発行する。ローカ
ルでない命令に対しては、ルート・ツリー・プロセッサ
は、そのツリーに接続されたPEに対して新たな命令を
送信する前に、結果が受信されるまで待機する。
【0084】最終ノードでは、これまでに記述した命令
セットを用いたプログラムにおいて、行き先の競合が生
じないことを保証する必要がある。
【0085】8.マトリクス処理の例 詳細な手順を以下に記す。PE命令セットの例を参照の
こと(PE命令はPE命令ニーモニックで示され、
(x)で示される状態に配慮しないことに注意)。
【0086】1.CATSが通信モードに置かれる。
【0087】2.WマトリクスをPEレジスタに初期化
する。
【0088】3.各ルート・ツリー・プロセッサ・メモ
リは以下のように初期化される。
【0089】* ルート・ツリー・プロセッサ1がY1
1,Y12,…,Y1Nで初期化される。
【0090】* ルート・ツリー・プロセッサ2がY2
1,Y22,…,Y1Nで初期化される。
【0091】 * . * . * . * ルート・ツリー・プロセッサNがYN1,YN2,…,YNNで初期化 される。
【0092】4.ルート・ツリー・プロセッサおよびP
E PATHレジスタを初期化する。
【0093】* PE INSTR PATH ビット
をYOUTモードを示すCR2にセットする。
【0094】* PEデータパスをR2にセットする。
【0095】5.全てのルート・ツリー・プロセッサは
アクティブである。
【0096】6.ルート・ツリー・プロセッサがYの値
の第1の行をPEに送る。
【0097】7.ルート・ツリー・プロセッサが、その
命令をPEに送った後に、PE−MPYA R1*R2
→ADD TREEを送る。ルート・ツリー・プロセッ
サはCATを求和モード中に置く。
【0098】8.ルート・ツリー・プロセッサはそのC
ATルート(root)から総和の結果を受け取る。
【0099】9.ルート・ツリー・プロセッサはPEに
対してYの値の第2の行を送る。
【0100】10.PEおよびCATが、その結果のマト
リクスの次の行を計算している間に、ルート・ツリー・
プロセッサはその結果のマトリクスの第1の行をこの例
では存在すると仮定した追加の記憶容量は格納すること
ができる。
【0101】11.AUTOモードがPE−MPYA命令
において特定されたので、PEは第2の行のYの値の受
取り時に、ルート・ツリー・プロセッサにおいて受け取
るべきCATの結果により、PE−MPY R1*R2
→ADD TREEを自動的に実行する。
【0102】12.ルート・ツリー・プロセッサは、Yの
値の第3の行を送り、およびその結果のマトリクスの第
2の行を格納する。そのプロセッサは次の13まで動作
を続ける。
【0103】13.ルート・ツリー・プロセッサはその結
果のマトリクスの最後の行を格納する。
【0104】操作の完了時に、元のYマトリクスおよび
Wマトリクスはそのままで、および結果のマトリクスは
ルート・ツリー・プロセッサの追加の記憶エリアにロー
ドされ、次にルート・ツリー・プロセッサまたはホスト
・システムによりさらに演算され得る。
【0105】マトリクスの追加およびブール演算もま
た、その構造によりサポートされ得る。図2で与えたの
と同一の形態のマトリクスを仮定すると、N2 個の一意
的なYおよびWレジスタがその構造中に存在するので、
YマトリクスおよびWマトリクスの双方をPEアレイ中
にロードすることができる。YレジスタおよびWレジス
タ上でのローカルな追加またはブール演算は、一時レジ
スタに送られた結果により、その構造の中で行なうこと
ができる。その動作の完了時に、元のYマトリクスおよ
びWマトリクスはその構造内でそのまま残り、および一
時レジスタは結果のマトリクスを有する。その結果は、
プロセッサエレメントから走査されて取り出され、また
は個々に読み出されることができ、またはさらに他の動
作のために用いられること(命令の連鎖(chaini
ng)または連結(linking))ができる。
【0106】以上に本発明の好適な実施例を記載してき
たが、現在および将来の双方における当業者は、これら
の記載を理解した後、特許請求の範囲に含まれる範囲内
で種々の改良および向上を行なうことを理解するであろ
う。特許請求の範囲の各項は、最初に開示された本発明
に対する適切な保護を維持するためのものと解釈される
べきである。
【0107】
【発明の効果】以上の説明から明らかなように、本発明
超並列対角線折畳みツリー・アレイ・プロセッサのアー
キテクチャによれば、マトリクス処理および高度接続性
ニューラル・ネットワークなどの、高度な計算用並列デ
ータ・アルゴリズムのモデリンクに適用でき、しかもま
た、マトリクス処理の従来の問題を適切に克服すること
ができる。
【0108】以上、本発明の好適実施例について述べて
きたが、これらの記述を理解すれば、特許請求の範囲内
に該当するこれら実施例に対する種々の改良および改善
を現在および将来の双方の当業者が行うであろうことは
理解されよう。特許請求の範囲に記載の請求項は、最初
に開示された本発明に対する適切な保護を維持するもの
として解決されるものである。
【図面の簡単な説明】
【図1】ベクトルマトリクス乗算の演算を示す説明図で
ある。
【図2】汎用のマトリクス乗算を示す説明図である。
【図3】(A)は本発明における対角線セルの、T−S
NAPの最初の重み* Yの値の乗算構造を示す説明図、
(B)は本発明における汎用セルの、2つの値の乗算構
造を示す説明図である。
【図4】本発明における対角線PEの好適なプロセッサ
構造を示す説明図である。
【図5】本発明における汎用PEの好適なプロセッサ構
造を示す説明図である。
【図6】本発明の好適な通信ALUツリーの説明図であ
る。
【図7】42 個のPEおよび4−ルート・ツリー・プロ
セッサの、本発明超並列対角線折畳みツリー・アレイ・
プロセッサを図8および図9と共に示す説明図である。
【図8】42 個のPEおよび4−ルート・ツリー・プロ
セッサの、本発明超並列対角線組み合せツリー・アレイ
・プロセッサを図7および図9と共に示す説明図であ
る。
【図9】42 個のPEおよび4−ルート・ツリー・プロ
セッサの、本発明超並列対角線組み合せツリー・アレイ
・プロセッサを図7および図8と共に示す説明図であ
る。
【図10】図7,図8および図9の相互関係を示す説明
図である。
【図11】本発明プロセッサ要素の、タグが付いた命令
データ/フォーマットの説明図である。
【図12】図13および図14の相互関係を示す説明図
である。
【図13】PEの命令セットの構造例を示す説明図であ
る。
【図14】PEの命令セットの構造例を示す説明図であ
る。
【符号の説明】
CEB 条件付き実行ビット REG レジスタ DREG データ・レジスタ CPATH コマンドパス DPATH データ・パス INSTR 命令レジスタ EXU 実行ユニット CAT 通信ALUツリー
───────────────────────────────────────────────────── フロントページの続き (72)発明者 スターマティス ヴァジリアディス アメリカ合衆国 13850 ニューヨーク州 ヴェスタル ヴェスタル ロード 717 (72)発明者 ホセ グアドループ デルガド−フライア ス アメリカ合衆国 13760 ニューヨーク州 エンドウェル レイシー ドライブ 612

Claims (12)

    【特許請求の範囲】
  1. 【請求項1】 マトリクス処理を含む汎用アプリケーシ
    ョンのためのコンピュータ・システム装置において、 ルート・ツリー・プロセッサと、 通信ALUツリーと、 プロセッシング・エレメント(PE)と、 命令およびデータの双方をルート・ツリー・プロセッサ
    およびプロセッシング・エレメントの間で通信する手段
    とを備え、各プロセッサが命令およびデータの記憶ユニ
    ットを有し、命令およびデータを受信し、および命令を
    実行することを特徴とするコンピュータ・システム装
    置。
  2. 【請求項2】 NxNマトリクスの形態に配置され、 【外1】 対角線に沿って折畳まれ、ならびに対角線セルおよび汎
    用セルより構成されたN2 個のプロセッシング・エレメ
    ントをさらに備えたことを特徴とする請求項1に記載の
    コンピュータ・システム装置。
  3. 【請求項3】 PEi,j として識別される前記対角線セ
    ルはそれぞれ単一のPEを備え、および汎用セルは、そ
    れぞれ、PEi,j およびPEj,i として識別され、一緒
    に組み合わされる2つの処理要素を備えたことを特徴と
    する請求項2に記載のコンピュータ・システム装置。
  4. 【請求項4】 前記対角線セルの単一のPEは、それぞ
    れ、 タグ・マッチング・ユニットと、 命令/データ・デコーディング機構、データ・パス記憶
    ユニット、および分配器ユニットによる、外部から受信
    した命令およびデータのための行き先パス制御機構と、 ゼロをX命令に格納する命令バッファを有し、および1
    つの命令記憶ユニットが命令のデコードおよび演算の制
    御のために用いられ命令記憶ユニットと、 複数データ記憶ユニットと、 命令デコード機構、選択ユニット、およびデコードされ
    た命令の記憶ユニットに対するアドレス指定手段により
    制御された記憶ユニット・オペランド選択機構と、 命令デコーディング機構および分配器ユニットにより制
    御された、結果の行き先パスを制御する機構と、 プログラマブル実行ユニットとを備えたことを特徴とす
    る請求項3に記載のコンピュータ・システム装置。
  5. 【請求項5】 前記対角線セルのPEより、PEが接続
    された通信ALUツリーに結果を供給し、および該通信
    ALUツリーから命令およびデータを受け取ることを特
    徴とする請求項3に記載のコンピュータ・システム装
    置。
  6. 【請求項6】 一緒に組み合わされる前記汎用セルの2
    つのPE、PEi,jおよびPEj,i は、 2つのタグ・マッチング・ユニットと、 2つの命令/データ・デコーディング機構、2つのデー
    タ・パス記憶ユニット、2つの命令パス・ビット、およ
    び共通の分配器ユニットによる、外部から受信した命令
    およびデータのための共通の行き先パス制御機構と、 ゼロをX命令のそれぞれに格納する2つの命令バッファ
    を有し、および2つの命令記憶ユニットが命令のデコー
    ドおよび演算の制御のために用いられる命令記憶ユニッ
    トと、 一緒に組み合わされたPEのそれぞれにより共有される
    複数のデータ記憶ユニットと、 2つの命令デコーディング機構、共通の選択ユニット、
    および2つのデコードされた命令の記憶ユニットに対す
    るアドレス指定手段により制御された2つの記憶ユニッ
    ト・オペランド選択機構と、 2つの命令デコーディング機構および共通の分配器ユニ
    ットにより制御された、2つの結果の行き先パス制御機
    構と、 2つのプログラマブル実行ユニットとを備えたことを特
    徴とする請求項3に記載のコンピュータ・システム装
    置。
  7. 【請求項7】 2進通信ALUツリーがlog2 N個の
    2入力1出力の通信ALUステージを有することを特徴
    とする請求項1に記載のコンピュータ・システム装置。
  8. 【請求項8】 前記ルート・ツリー・プロセッサおよび
    それらのホスト・コンピュータ・インタフェースは、 通信ALUツリー制御手段と、 PE初期化手段と、 PE命令発行手段と、 アルゴリズム・データ計算手段と、 PEデータ発行手段と、 PEを同期して開始して実行モードにする手段と、 PEを同期して停止する手段とを備えたことを特徴とす
    る請求項1に記載のコンピュータ・システム装置。
  9. 【請求項9】 N2 個のPE、N個の通信ALUツリ
    ー、およびNアレイ構造のN個のルート・ツリー・プロ
    セッサを備えたことを特徴とする請求項1に記載のコン
    ピュータ・システム装置。
  10. 【請求項10】 各通信ALUツリーが、ツリーのリー
    フ・ノードにおけるN個のPE、およびホスト・インタ
    フェースに結果を提供するツリーのルートに接続する1
    つのルート・ツリー・プロセッサを接続し、ならびに前
    記通信ALUツリー、PE、およびNアレイ構造を構成
    するルート・ツリー・プロセッサは、 各PEに対してデータの値を入力する入力手段と、 タグの付いた命令およびデータを、ルート・ツリー処理
    ユニットからPEに通信する手段と、 各PEにおける命令およびデータの行き先を制御する手
    段と、 各PEにおいて受信した命令を実行する手段と、 自動モードにおいて、次の演算において用いられるべく
    データが受信されたときに、あらかじめ受信されていた
    命令を実行する手段と、 オペランドを選択し、および行き先のパスを制御して、
    結果が各PEにローカル的に留まり、または付属の通信
    ALUツリーに送られることを可能とする手段と、 複数のPEから受信した値の、集中した機能を実行する
    手段と、 外部データ値を各ルート・ツリー・プロセッサに入力す
    る手段と、 新たな命令およびデータを生成する手段とを備えたこと
    を特徴とする請求項9に記載のコンピュータ・システム
    装置。
  11. 【請求項11】 各PEにおける命令およびデータの行
    き先を制御する手段は、命令に対しては、命令デコーデ
    ィング機構、命令パス・ビット、および汎用セルにおけ
    る分配器ロジックで構成し、ならびに、命令デコーディ
    ング機構、汎用セルが特定したレジスタを対角線セル・
    レジスにマッピングするレジスタマッピングロジック、
    および対角線セルにおける分配器ロジックで構成し、な
    らびに、データについては、対角線セルおよび汎用セル
    の双方におけるデータ・デコーディング機構およびデー
    タ・パス記憶ユニットで構成したことを特徴とする請求
    項10に記載のコンピュータ・システム装置。
  12. 【請求項12】 1つはWマトリクスと呼ばれ、他方は
    Yマトリクスと呼ばれる、2つのNxNマトリクスのマ
    トリクス乗算を順次に実行する手段を備え、前記乗算に
    よりZマトリクスと呼ばれる第3のNxNマトリクスを
    生成し、およびレジスタを記憶ユニットに用い、MPY
    が乗算命令を示す時に処理を可能とし、ALU TRE
    Eの行き先が結果を接続された通信ALUツリーに送信
    し、前記ルート・ツリー・プロセッサはホスト・インタ
    フェース機能を有し、 前記処理は、 a)Wマトリクスをロードする(ルート・ツリー・プロ
    セッサあてにN個のW値を仮定する)ステップと、 b)通信ALUツリーを通してY値と通信することによ
    り第1のY行をロードするステップと、 c)MPYA R1*R2→ALU TREE(ここ
    で、ALUツリーは総和処理のために初期化されてい
    る。)のステップと、 d)結果としてのZマトリクスの第1の行を計算する、
    すなわち総和ツリーが続くYおよびWレジスタの乗算を
    行なうステップと、 e)N個のZの値をルート・ツリー・プロセッサに格納
    するステップと、 f)第2のY行と通信ALUツリーを通じて通信するス
    テップと、 g)新たなY値が受信されたときに、結果としてのZマ
    トリクスの第2の行を計算する、すなわち総和ツリーが
    続くYおよびWレジスタの乗算を行なうステップと、 h)ルート・ツリー・プロセッサにN個のZ値を格納す
    るステップと、 i)行の計算を次のj)の実行まで継続するステップ
    と、 j)N番目のY行と通信するステップと、 k)新たなY値が受信されたときに、結果としてのZマ
    トリクスのN番目の行を計算する、すなわち総和ツリー
    が続くYおよびWレジスタの乗算を行なうステップと、 l)ルート・ツリー・プロセッサに結果としてのZマト
    リクスの最後の行を格納するステップとを有することを
    特徴とする請求項10に記載のコンピュータ・システム
    装置。
JP5084959A 1992-05-12 1993-04-12 コンピューティング装置 Expired - Lifetime JP2572522B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US88159792A 1992-05-12 1992-05-12
US881597 1992-05-12

Publications (2)

Publication Number Publication Date
JPH0619863A true JPH0619863A (ja) 1994-01-28
JP2572522B2 JP2572522B2 (ja) 1997-01-16

Family

ID=25378796

Family Applications (1)

Application Number Title Priority Date Filing Date
JP5084959A Expired - Lifetime JP2572522B2 (ja) 1992-05-12 1993-04-12 コンピューティング装置

Country Status (3)

Country Link
US (2) US5682544A (ja)
EP (1) EP0569763A3 (ja)
JP (1) JP2572522B2 (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH06259831A (ja) * 1993-10-06 1994-09-16 Hitachi Ltd 光磁気情報記録装置
JP2007317179A (ja) * 2006-05-08 2007-12-06 Nvidia Corp 帯域幅要件が軽減された行列乗算

Families Citing this family (42)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6128720A (en) * 1994-12-29 2000-10-03 International Business Machines Corporation Distributed processing array with component processors performing customized interpretation of instructions
US7266725B2 (en) 2001-09-03 2007-09-04 Pact Xpp Technologies Ag Method for debugging reconfigurable architectures
JPH1040223A (ja) * 1996-06-17 1998-02-13 Internatl Business Mach Corp <Ibm> 分散並列システムにおける集合通信認識の最適化方法
DE19654595A1 (de) 1996-12-20 1998-07-02 Pact Inf Tech Gmbh I0- und Speicherbussystem für DFPs sowie Bausteinen mit zwei- oder mehrdimensionaler programmierbaren Zellstrukturen
US6542998B1 (en) 1997-02-08 2003-04-01 Pact Gmbh Method of self-synchronization of configurable elements of a programmable module
US6023753A (en) * 1997-06-30 2000-02-08 Billion Of Operations Per Second, Inc. Manifold array processor
KR100269174B1 (ko) * 1997-09-19 2000-11-01 윤종용 인다이렉트 로테이터 그래프 네트워크
US8686549B2 (en) * 2001-09-03 2014-04-01 Martin Vorbach Reconfigurable elements
US6167502A (en) * 1997-10-10 2000-12-26 Billions Of Operations Per Second, Inc. Method and apparatus for manifold array processing
DE19861088A1 (de) 1997-12-22 2000-02-10 Pact Inf Tech Gmbh Verfahren zur Reparatur von integrierten Schaltkreisen
WO2000077652A2 (de) 1999-06-10 2000-12-21 Pact Informationstechnologie Gmbh Sequenz-partitionierung auf zellstrukturen
AUPQ542900A0 (en) * 2000-02-04 2000-02-24 Bisinella, Richard Microprocessor
EP2226732A3 (de) 2000-06-13 2016-04-06 PACT XPP Technologies AG Cachehierarchie für einen Multicore-Prozessor
US8058899B2 (en) 2000-10-06 2011-11-15 Martin Vorbach Logic cell array and bus system
US9037807B2 (en) 2001-03-05 2015-05-19 Pact Xpp Technologies Ag Processor arrangement on a chip including data processing, memory, and interface elements
US7444531B2 (en) 2001-03-05 2008-10-28 Pact Xpp Technologies Ag Methods and devices for treating and processing data
US7844796B2 (en) 2001-03-05 2010-11-30 Martin Vorbach Data processing device and method
US7996827B2 (en) 2001-08-16 2011-08-09 Martin Vorbach Method for the translation of programs for reconfigurable architectures
US6957318B2 (en) * 2001-08-17 2005-10-18 Sun Microsystems, Inc. Method and apparatus for controlling a massively parallel processing environment
US7434191B2 (en) 2001-09-03 2008-10-07 Pact Xpp Technologies Ag Router
US8686475B2 (en) * 2001-09-19 2014-04-01 Pact Xpp Technologies Ag Reconfigurable elements
DE10392560D2 (de) 2002-01-19 2005-05-12 Pact Xpp Technologies Ag Reconfigurierbarer Prozessor
US8914590B2 (en) 2002-08-07 2014-12-16 Pact Xpp Technologies Ag Data processing method and device
US20110161977A1 (en) * 2002-03-21 2011-06-30 Martin Vorbach Method and device for data processing
WO2004021176A2 (de) 2002-08-07 2004-03-11 Pact Xpp Technologies Ag Verfahren und vorrichtung zur datenverarbeitung
AU2003289844A1 (en) 2002-09-06 2004-05-13 Pact Xpp Technologies Ag Reconfigurable sequencer structure
EP1676208A2 (en) * 2003-08-28 2006-07-05 PACT XPP Technologies AG Data processing device and method
US8443169B2 (en) * 2005-03-28 2013-05-14 Gerald George Pechanek Interconnection network connecting operation-configurable nodes according to one or more levels of adjacency in multiple dimensions of communication in a multi-processor and a neural processor
US8250503B2 (en) 2006-01-18 2012-08-21 Martin Vorbach Hardware definition method including determining whether to implement a function as hardware or software
US20100281235A1 (en) * 2007-11-17 2010-11-04 Martin Vorbach Reconfigurable floating-point and bit-level data processing unit
EP2217999A2 (de) * 2007-11-28 2010-08-18 Krass, Maren Compiler für rekonfigurierbare architekturen mit besonderem zwischenformat
EP2235627A1 (en) * 2007-12-07 2010-10-06 Krass, Maren Using function calls as compiler directives
WO2011044398A2 (en) * 2009-10-07 2011-04-14 Qsigma, Inc. Computer for amdahl-compliant algorithms like matrix inversion
TW201116256A (en) * 2009-11-09 2011-05-16 Charder Electronic Co Ltd Device for measuring human body composition by using biolectrical impedance method and artificial neural network
US10552126B2 (en) * 2013-03-15 2020-02-04 Teradata Us, Inc. Transitioning between code-based and data-based execution forms in computing systems and environments
US9846623B2 (en) 2015-08-20 2017-12-19 Qsigma, Inc. Simultaneous multi-processor apparatus applicable to acheiving exascale performance for algorithms and program systems
US11132599B2 (en) * 2017-02-28 2021-09-28 Microsoft Technology Licensing, Llc Multi-function unit for programmable hardware nodes for neural network processing
EP3602278B1 (en) 2017-03-20 2022-09-28 Intel Corporation Systems, methods, and apparatuses for tile matrix multiplication and accumulation
KR102414583B1 (ko) 2017-03-23 2022-06-29 삼성전자주식회사 머신 러닝을 수행하는 전자 장치 및 머신 러닝 수행 방법
US11275588B2 (en) 2017-07-01 2022-03-15 Intel Corporation Context save with variable save state size
WO2020220935A1 (zh) * 2019-04-27 2020-11-05 中科寒武纪科技股份有限公司 运算装置
US11054998B1 (en) * 2019-12-12 2021-07-06 Facebook, Inc. High bandwidth memory system with distributed request broadcasting masters

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS56164464A (en) * 1980-05-21 1981-12-17 Tatsuo Nogi Parallel processing computer
US4633392A (en) * 1982-04-05 1986-12-30 Texas Instruments Incorporated Self-configuring digital processor system with logical arbiter
US4720780A (en) * 1985-09-17 1988-01-19 The Johns Hopkins University Memory-linked wavefront array processor
DE3533800C1 (de) * 1985-09-21 1987-02-05 Hans-Werner Lang Verfahren zum Betreiben eines hochintegrierten Wellenfront-Feldrechners sowie entsprechender Wellenfront-Feldrechner
US4907148A (en) * 1985-11-13 1990-03-06 Alcatel U.S.A. Corp. Cellular array processor with individual cell-level data-dependent cell control and multiport input memory
US4942517A (en) * 1987-10-08 1990-07-17 Eastman Kodak Company Enhanced input/output architecture for toroidally-connected distributed-memory parallel computers
GB2219106B (en) * 1988-05-26 1992-04-15 Secr Defence Processor for constrained least squares computations
EP0486684A1 (en) * 1990-05-22 1992-05-27 International Business Machines Corporation Virtual neurocomputer architectures for neural networks
US5224100A (en) * 1991-05-09 1993-06-29 David Sarnoff Research Center, Inc. Routing technique for a hierarchical interprocessor-communication network between massively-parallel processors
US5414827A (en) * 1991-12-19 1995-05-09 Opti, Inc. Automatic cache flush
US5321639A (en) * 1992-03-02 1994-06-14 Regents Of The University Of California Dual-scale topology optoelectronic matrix algebraic processing system
US5249231A (en) * 1992-05-04 1993-09-28 Motorola, Inc. Memory tagging for object reuse protection

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH06259831A (ja) * 1993-10-06 1994-09-16 Hitachi Ltd 光磁気情報記録装置
JP2539585B2 (ja) * 1993-10-06 1996-10-02 株式会社日立製作所 光磁気情報記憶方法
JP2007317179A (ja) * 2006-05-08 2007-12-06 Nvidia Corp 帯域幅要件が軽減された行列乗算

Also Published As

Publication number Publication date
EP0569763A2 (en) 1993-11-18
US5784632A (en) 1998-07-21
EP0569763A3 (en) 1994-07-13
JP2572522B2 (ja) 1997-01-16
US5682544A (en) 1997-10-28

Similar Documents

Publication Publication Date Title
JPH0619863A (ja) 超並列対角線折畳みツリー・アレイ・プロセッサ
US20200142851A1 (en) Processor With Reconfigurable Pipelined Core And Algorithmic Compiler
Batcher Design of a massively parallel processor
US5204938A (en) Method of implementing a neural network on a digital computer
Adeli Parallel processing in computational mechanics
JPH05500429A (ja) スケーラブル・フロー仮想学習ニューロコンピュータ
JP2647330B2 (ja) 超並列コンピューティングシステム
JP2021507352A (ja) メモリ装置及びそれを制御するための方法
Ienne et al. Special-purpose digital hardware for neural networks: An architectural survey
Verdoscia et al. A Data‐Flow Soft‐Core Processor for Accelerating Scientific Calculation on FPGAs
Treleaven Parallel architecture overview
Jesshope et al. Design of SIMD microprocessor array
Tavangarian Flag-oriented parallel associative architectures and applications
Rice et al. A formal model for SIMD computation
Yousefzadeh et al. Reconfiguration of embedded accelerators by microprogramming for intensive loop computations
RU2819403C1 (ru) Векторное вычислительное ядро
US11829321B2 (en) General-purpose systolic array
Chen Instruction set architecture (isa) for processing-in-memory dnn accelerators
Mário et al. Implementing cnns using a linear array of full mesh cgras
Shapiro Programming parallel vision algorithms: a dataflow language approach
Annexstein et al. Achieving multigauge behavior in bit-serial SIMD architectures via emulation
Jungjarassub et al. A Performance Optimization of Quantum Computing Simulation using FPGA
Dowling et al. A Multi-purpose VLSI Floating-point Array Processor
Kolinummi et al. Designing a digital neurocomputer
Basu A cursory look at parallel architectures and biologically inspired computing