JP4118963B2 - マニホールドアレイプロセッサ - Google Patents

マニホールドアレイプロセッサ Download PDF

Info

Publication number
JP4118963B2
JP4118963B2 JP50567099A JP50567099A JP4118963B2 JP 4118963 B2 JP4118963 B2 JP 4118963B2 JP 50567099 A JP50567099 A JP 50567099A JP 50567099 A JP50567099 A JP 50567099A JP 4118963 B2 JP4118963 B2 JP 4118963B2
Authority
JP
Japan
Prior art keywords
cluster
pes
communication
torus
processing elements
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
JP50567099A
Other languages
English (en)
Other versions
JP2002507300A (ja
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.)
Altera Corp
Original Assignee
Altera 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 Altera Corp filed Critical Altera Corp
Publication of JP2002507300A publication Critical patent/JP2002507300A/ja
Application granted granted Critical
Publication of JP4118963B2 publication Critical patent/JP4118963B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • G06F15/163Interprocessor communication
    • G06F15/173Interprocessor communication using an interconnection network, e.g. matrix, shuffle, pyramid, star, snowflake
    • G06F15/17337Direct connection machines, e.g. completely connected computers, point to point communication networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • G06F15/163Interprocessor communication
    • G06F15/173Interprocessor communication using an interconnection network, e.g. matrix, shuffle, pyramid, star, snowflake
    • G06F15/17356Indirect interconnection networks
    • G06F15/17368Indirect interconnection networks non hierarchical topologies
    • G06F15/17381Two dimensional, e.g. mesh, torus
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/30076Arrangements for executing specific machine instructions to perform miscellaneous control operations, e.g. NOP

Description

発明の背景
発明の分野
本発明は、一般に処理システムに関し、より具体的には並列処理アーキテクチャに関する。
関連技術の説明
データを並列で処理する多くの計算タスクが展開されている。並列プロセッサの効率は、並列プロセッサのアーキテクチャと、符号化されたアルゴリズムと、並列要素におけるデータ配置とによって左右される。例えば、画像処理や、パターン認識及びコンピュータグラフィックスは、全て、通常の二次元の又は三次元のグリッドに配列されたデータを処理する応用である。データは、例えばオーディオや、ビデオや、ソナー又はレーダの信号等の広範囲な各種の信号を表してもよい。一般に、その種のデータについて実行される離散コサイン変換(DCT)や離散逆コサイン変換(IDCT)、たたみこみ(合成積、重畳:convolutions)等の処理は、異なったグリッド・セグメントで同時に実行されるので、ある時点で1台以上のプロセッサによりそのタスクを実行できるようにすることで、その種の処理を大幅に加速することができるマルチプロセッサアレイシステムが開発されてきた。並列処理は、参考までにここに組み入れられている米国特許第5,065,339号;第5,146,543号;第5,146,420号;第5,148,515号;第5,546,336号;第5,542.026号;第5,612,908号及び第5,577,262号と;ヨーロッパ公告出願第0,726,529号及び第0,726,532号を含む多数の特許の主題と成っている。
並列処理アーキテクチャに対する一つの従来のアプローチは、最隣接メッシュ接続コンピュータであり、それについては、1989年12月刊行のアコースチック、スピーチ及びシグナルの処理に関するIEEE会報(IEEE Transactions on Acoustics, Speech and Signal Processing)の第37巻第12号の2158〜2174ページに掲載されたR.サイファー(R. Cypher)氏とJ.L.C.サンズ(Sanz)氏著の画像処理用SIMD(単命令/多重データ)アーキテクチャとアルゴリズム及びコンピュータ展望(SIMD Architecture and Algorithms for Image Processing and Computer Vision)と;1980年9月刊行のコンピュータに関するIEEE会報(IEEE Transactions on Computers)の第C−29巻第9号の836−840ページに掲載されたK.E.バッチャー(Batcher)氏著の大規模並列プロセッサの設計(Design of a Massively Parallel Processor)と;1987年ニューヨーク州ニューヨークのジョンワイリ&兄弟社(John Wiley & Sons)から刊行のL.ウール(L. Uhr)氏著の人工頭脳用マルチ−コンピュータアーキテクチャ(Multi-Computer Architecture for Artificial Intelligence)の第8章97ページとに説明されている。
図1Aの最隣接トーラス(torus)接続コンピュータでは、多数の処理要素(PEs)がそれらの北、南、東及び西の隣接PEsとトーラス接続経路MPを介して接続されており、また全てのPEsは、同期した単命令/複数データ(SIMD)方式で作動される。トーラス接続コンピュータは、メッシュ接続コンピュータにラップアラウンド(wraparound:ループ状に)接続を付加することで得られるので、メッシュ接続コンピュータでラップアラウンド接続していないものは、トーラス接続コンピュータの部分集合として考えられよう。図1Bに示されているように、各経路MPはT本の送信線とR本の受信線とを有してもよく、又は図1Cに示されているように、各経路MPは、B本の双方向線を有してもよい。単方向と双方向の通信は、両方共本発明によって企図されているものであるが、経路における制御信号を除いたバスの総数は、以後一般にk本の線とし、その場合、双方向バス設計ではk=Bであり、また単方向バス設計ではk=T+Rとなっている。PEはその隣接したPEsのいずれにもデータを送信できるが、しかし一度に一つしか送信できないと想定されている。例えば、各PEは、その東隣に一回の通信サイクルでデータを送信できる。更に、データと命令は、コントローラから全てのPEsに、一つのブロードキャスト・ディスパッチ期間で同時にディスパッチされるようにブロードキャスト機構が用意されていると想定されている。
ビット−直列のPE間通信が、配線の繁雑さを最小限に抑えるために一般に採用されるが、トーラス接続アレイ配線の繁雑さは、それにもかかわらず実装上の問題を呈している。図1Aの従来のトーラス状に接続されたアレイは、PEsの4×4のアレイ10に接続された16個の処理要素を有している。各処理要素PEi,jには、各々その行と列の番号iとjが付標されている。各PEは、点と点の接続で、その最近の北(N)隣りと、南(S)隣りと、東(E)隣りと、西(W)隣とに通報する。例えば、図1Aに示されているPE0,0とPE3,0との間の接続は、PE0,0のNインタフェースとPE3,0の南インタフェースの間のラップアラウンド接続であり、アレイをトーラス構成に形成するラップアラウンド・インタフェースの一つを表わしている。そのような構成では、各行は、一組のN個の相互接続部を含んでおり、N個の行に関して、N2の水平方向の接続部が在る。同様に、各々N個の垂直方向の相互接続部を有したN列に関して、N2の垂直方向の相互接続部が在る。図1Aの例では、N=4である。ラップアラウンド接続を有したN×Nのトーラス接続コンピュータの集積回路の実装における金属被覆線のような線の総数は、従って2kN2となり、その場合、kは各相互接続部における線の数である。その数kは、ビットの直列相互接続部のものに等しくなろう。例えば、図1Aに示すように、4×4のアレイに対するk=1に関しては、2kN2=32となる。
Nが比較的小さい場合の幾つかの応用に対しては、PEアレイ全体が単一の集積回路に組み込まれているのが好ましい。本発明は、各PEが、例えば、個別のマイクロプロセッサのチップであるような実装を排除するものではない。トーラス接続コンピュータの線の総数は、かなりの数と成るために、相互接続部は、多くの貴重な集積回路の『不動産(占有地)』、又は占拠チップ面積を使ってしまう。更に、PEの相互接続経路は、互いに非常に頻繁に交差してICレイアウト処理を複雑にし、またクロストークにより通信ラインにノイズを起こす可能性がある。更に、PEsをアレイの北と南の端で、また東と西の端で接続するラップアラウンドリンクの長さは、アレイ寸法の増大と共に長くなる。この長くなった長さは、各通信ラインの静電容量を増大し、それによってラインの最大伝送ビット率を低減し、ラインに更にノイズを導入することになる。
トーラスアレイのもう一つの短所は、転置要素(行と列番号が逆)間での処理情況において生じる。ある処理要素とその転置要素は、通信経路において一つ以上の仲介処理要素によって分離されているので、転置要素を使用する動作には待ち時間が持ち込まれる。例えば、PE2,1が、その転置要素PE1,2からデータを必要とする場合、そのデータは、仲介処理要素PE1,1又PE2,2を通って移動しなければならない。当然、これにより、例えPE1,1とPE2,2が他の動作状態により占有されていない場合でも、遅れが生じることになる。しかし、PEsがマイクロプロセッサ要素として実装されている一般的な場合には、PE1,1とPE2,2が他の処理を実行することになったり、またPE1,2からPE1,1にデータ又は指令を転送するために、それらがこれらの処理を通常の方式で保留しなければならなく成ることは非常に有りそうなことである。従って、PE1,2からPE1,1にデータ又は指令を転送開始するにも幾つかの処理を伴なうであろうし、また転置データを転送するためにPE1,1が強制的に保留されていた処理も遅延されることになる。そのような遅延は、PEを仲介する毎に雪だるま式に大きくなり、また大きな待ち時間が、転置要素対の内、最も離れたものに対して持ち込まれることになる。例えば、図1AのPE3,1/PE1,3の転置要素対は、最小限3個の仲介PEsを有していて、4つの通信段階の待ち時間を必要とし、また一般的な場合では、PE3,1とPE1,3の間でデータ転送を行うために全てのそれらのPEsにおいて保留されなけらばならない全ての課題の待ち時間を更に持つことに成ろう。
トーラス状に接続されたアレイのそのような限界を認識すると、アレイに対する新しいアプローチが、ここに参考までに全体的に組み込まれている米国特許第5,612,908号と、イタリアのベニスで1993年10月25−27日に開催された応用特定アレイプロセッサに関する1993年国際会議でのG.G.ペカネック(Pechanek)氏等による大形並列の対角折り畳みアレイプロセッサ(A Massively Parallel Diagonal Fold Array Processor)の140−143ページと、ニューメキシコ州アルバカーキのニューメキシコ大学で1993年11月4−5日に開催されたVLSI設計に関する第5回NASAシンポジュウム議事録のG.G.ペカネック氏等による多重折り畳みクラスタ形プロセッサのトーラスアレイ(Multiple Fold Clustered Processor Torus Array)に開示されている。これらのトーラスアレイ組織の作動技法は、折り返しエッジとして、従来の最近隣接トーラスの対角のPEsを使ってPEsのアレイを折り畳むことである。図2のアレイ20に示されているように、これらの技法は、PE間配線を実質的に低減し、ラップアラウンド接続部の数と長さを減じ、PEsをそれらの転置PEsに極めて接近して位置決めするために採用される。このプロセッサアレイのアーキテクチャは、例えば、本発明と同じ発明者によって発明され、且つここに参考までに全体的に組み込まれている米国特許第5,577,262号と第5,612,908号及びヨーロッパ特許第0,726,532号とヨーロッパ特許第0,726,529号に開示されている。そのようなアレイは、例えば一回折りの対角折りメッシュにおけるPEの組合わせの不規則性によって、従来のトーラスアーキテクチャより優れた実質的な利益を与えてくれるが、4つのPEsと8つのPEsから成るクラスタが存在している三つ折りの対角折りメッシュにおいて、幾つかのPEは『2つずつ』にクラスタ化され、他は単一となっている。アレイの全体の形状が三角形であることによって、対角折り式アレイは、効果的で安価な集積回路の実装に対してかなりの障害となっている。更に、ヨーロッパ特許第0,726,532号とヨーロッパ特許第0,726,529号におけるような対角折りメッシュと他の従来のメッシュアーキテクチャでは、相互接続トポロジーは、本来的にPE定義の一部となっている。これで、トポロジーにおけるPEの位置を定め、結果的に、PEsのトポロジーと、実装される一定の構成へのそれらの接続性を制限することになる。かくして、プロセッサアレイ・アーキテクチャとプロセッサの相互接続において更に改良する必要がある。
発明の要約
本発明は、従来のトーラス状の処理要素アレイの配線必要条件と比較して、アレイの相互接続配線の必要条件を実質的に低減する処理要素のアレイに関している。好適な実施例では、本発明に係る一つのアレイは、転置要素間での動作の待ち時間で実質的な低下を達成する。更に、本発明のアレイは、アレイの全体の大きさからラップアラウンド配線の長さを切り離し、それによって、最も長い相互接続線の長さを短縮する。更に、通信しているPEs間で何ら衝突を起こさないアレイ通信パターンのために、1つのPE当たり、ただ一つの送信ポートと一つの受信ポートとが必要とされ、隣同士の接続数とは無関係に、特定のトポロジーは、そのPE接続点(ノード)を必要としてもよい。アレイの好適な集積回路実装は、矩形状又は正方形の輪郭を表す、組み合わされた同じ処理要素クラスタの組合わせを含んでいる。処理要素の同一性と、処理要素クラスタの同一性と、アレイの全体の輪郭の規則性は、アレイを特にコスト効果の高い集積回路の製造に適したものとする。
本発明に従って集積回路を形成するために、処理要素は、単命令多重データ(『SIMD』)処理の通信必要条件を利用するクラスタへと先ず組み合わされる。処理要素は、次に、一つのクラスタの要素が、クラスタ内で、またただ二つの他のクラスタのメンバーと通信するようにグループ化される。更に、各クラスタの組成処理要素は、ただ2つの互に相容れない方向で他のクラスタの各々の処理要素と通信する。当然、単方向に通信する能力を有したSIMDトーラスでは、北/南の方向は、東/西の方向と互に相容れない。処理要素クラスタは、名称が答えているように、好ましくは相互に物理的に非常に接近して形成されたプロセッサのグループである。例えば集積回路の実装では、クラスタの処理要素は、好ましくは相互にできるだけ接近して、且つ好ましくはアレイにおける他のいずれの処理要素よりもより互いに接近してレイアウトされるであろう。例えば、処理要素の従来の4×4トーラスアレイに相当するアレイは、各々4つの要素から成る4つのクラスタを有し、各クラスタが他の一つクラスタと北と東に向かってのみ、またもう別の一つクラスタと南と西に向かってのみ通信するか、又は他の一つクラスタと南と東に向かってのみ、またもう別の一つクラスタと北と西に向かってのみ通信する。このようにPEsをクラスタ化することで、PEクラスタ間の通信経路は、マルチプレクス(多重化)により共有され、かくしてアレイに必要とされる相互接続配線を実質的に減らすことになろう。
好適な実施例では、クラスタを構成するPEsは、処理要素とそれらの転置要素とが同じクラスタに存在し、且つクラスタ内の通信経路を介して互いに通信し、それによって従来のトーラスアレイで実行された転置要素間の処理に関連した待ち時間を排除するようにしている。更に、従来のラップアラウンド経路は、PEからPEへのいずれの経路とも同等に扱われるので、最も長い通信経路も、アレイの全体の大きさとは無関係に、クラスタ間の間隔程度に短くなるであろう。本発明によれば、N×Mのトーラスは、N個のPEsから成るM個のクラスタのアレイに、又はM個のPEsから成るN個のクラスタのアレイに変換されてもよい。
本発明のこれらの、また他の特長、局面及び長所は、添付図面も考慮して、次の詳細な説明から当業者に明らかになるであろう。
【図面の簡単な説明】
図1Aは、従来技術の4×4の最近の隣りと接続したトーラス状の処理要素(PE)アレイのブロック図である。
図1Bは、どのように図1Aの従来技術のトーラス接続経路がT本の送信とR本の受信の線を有しているかを示す図である。
図1Cは、どのように図1Aの従来技術のトーラス接続経路がB本の双方向線を有しているかを図解する図である。
図2は、従来技術の対角に折られたメッシュのブロック図である。
図3Aは、本発明のPEアレイ内に適当に採用される処理要素のブロック図である。
図3Bは、本発明のPEアレイ内で適当に採用される代替処理要素のブロック図である。
図4は、全てのトーラスのPE間通信リンクを示している4×4のトーラスのタイル貼り状配列を示す図である。
図5A乃至図5Gは、本発明に係るクラスタのグループ化のためのPEsの選定を示している4×4のトーラスのタイル貼り状配列を示す図である。
図6は、クラスタ用のPEsの代替のグループ化を示している4×4のトーラスのタイル貼り状配列を示す図である。
図7は、PEクラスタ用PEの選定を示している3×3のトーラスのタイル貼り状配列を示す図である。
図8は、PEクラスタ用PEsの選定を示している3×5のトーラスタイル貼り状配列を示す図である。
図9は、PEクラスタ用PEsの選定の代替の斜方形/円筒状アプローチを示しているブロック図である。
図10は、新しいPEクラスタのクラスタ間通信経路を示しているブロック図である。
図11Aと図11Bは、PEクラスタの選定への代替の斜方形/円筒状アプローチを示す図である。
図12は、5×4のPEアレイ用の斜方形/円筒状PE選定プロセスを示しているブロック図である。
図13は、4×5のPEアレイ用の斜方形/円筒状PE選定プロセスを示しているブロック図である。
図14は、5×5のPEアレイ用の斜方形/円筒状PE選定プロセスを示しているブロック図である。
図15A乃至15Dは、6個のPEアレイによる3、4、5及び6個のクラスタのクラスタ間通信経路を各々示しているブロック図である。
図16は、4個の4−メンバークラスタのアレイ内における東/南通信経路を示しているブロック図である。
図17は、4個の4−メンバークラスタのアレイ内における東/南及び西/北の通信を示しているブロック図である。
図18は、クラスタスイッチと、図示されたクラスタに対するそのインタフェースとをより詳細に示し、図17の実施例のクラスタの内の一つを示しているブロック図である。
図19Aと19Bは、本発明の新しいアレイプロセッサで有利に実施される例示上のコンボルージョンに採用されたコンボルージョン窓とコンボルージョン経路とを各々示す図である。
図19Cと19Dは、4×4個のブロック内の画像の一部分と、従来のトーラス位置にロードされたブロックとを各々示しているブロック図である。そして
図20A乃至24Bは、各コンボルージョン処理工程の終わりで、本発明に係るマニホールドアレイの状態を示しているブロック図である。
詳細な説明
本実施例では、本発明に係る新しいアレイプロセッサは、1つのクラスタの要素がただ2つの他のクラスタのメンバーと通信し、且つ各クラスタの構成処理要素がただ2つの互いに相容れない方向で、他のクラスタの各々の処理要素と通信するように、PEsをクラスタ又はグループで結合している。このようにPEsをクラスタ化することで、PEのクラスタ間での通信経路が共有され、かくしてアレイに必要とされる相互接続配線を実質的に減らすことができる。更に、各PEは、単一の送信ポートと単一の受信ポートとを有することができるか、又は双方向のシーケンシャル、又は時間スライスした送信/受信の通信を実行する場合に、個々のPEはアレイのトポロジーから分断される。即ち、各PEが各方向への通信に1つずつの4つの双方向通信ポートを有している従来のトーラス接続アレイとは違って、新しいアレイアーキテクチャによって採用されたPEは、ただ一つのポートを持つ必要があるだけである。単一の送信ポートと単一の受信ポートを使用したこの例では、アレイの全てのPEsは、同時に送受信することができる。従来のトーラスでは、このためには、1つのPE当たり、4つの送信ポートと4つの受信ポートを、合計で8つのポートを必要とする。これに対し本発明では、PE当り1つの送信ポートと1つの受信ポートが、合計で2つのポートが必要とされる。
好適な本実施例では、クラスタを構成するPEsは、処理要素とそれらの転置要素とは同じクラスタに位置決めされて、クラスタ内通信経路を通して互いに通信するように選定されている。説明の都合上、処理要素はそれらが従来のトーラスアレイで見受けられるように呼ばれ、例えば、処理要素PE0,0は、従来のトーラスアレイの『北西』の角に見受けられる処理要素となっている。結果的に、新しいクラスタアレイのレイアウトは、従来のアレイプロセッサのものとは実質的に異なってはいるが、同じデータは、従来のトーラスと新しいクラスタのアレイの対応した処理要素に送られるであろう。例えば、新しいクラスタアレイのPE0,0要素は、従来のトーラス接続アレイのPE0,0要素と同じ処理上のデータを受信するであろう。更に、この説明で参照されている方向は、トーラス接続アレイの方向に関係している。例えば、処理要素間の通信が北から南に行われていると言われた場合、それらの方向は、従来のトーラス接続アレイ内での通信方向を参照している。
PEsは、特定の用途のために作成された簡単な構造の単一マイクロプロセッサのチップとすることができる。次の説明に限定はされるものではないが、基本的なPEについて、関連した構想を実証するために説明する。図3Aには、本発明の新しいPEアレイの各PEに対して使用される一つの適当な実施例を図解しているPE30の基本構造が示されている。図解を簡略化するために、インタフェースロジックとバッファは図示されていない。ブロードキャスト命令のバス31は、SIMDコントローラ29からディスパッチされた命令を受け取るように接続されており、またデータバス32は、メモリ33又はPE30の外部の別のデータ源からデータを受け取るように接続されている。レジスタファイル記憶媒体34は、ソースオペランドデータを実行ユニット36に与える。命令デコーダ/コントローラ38は、ブロードキャスト命令バス31を介して命令を受け取り、レジスタファイル34内部のレジスタに制御信号21を与えるように接続されており、レジスタファイル34は、次にそれらの内容を経路22を経由してオペランドとして実行ユニット36に与える。実行ユニット36は、命令デコーダ/コントローラ38から制御信号23を受け取り、経路24を経由してレジスタファイル34に結果を与える。命令デコーダ/コントローラ38は、更に、クラスタスイッチ使用可能化信号を、出力時に、スイッチ使用可能化(Switch Enable)と付標されたライン39に与える。クラスタスイッチの機能は、図18の説明と関連して以下により詳細に説明する。データや指令のPE間通信は、受信(Receive)と付標された受信入力部37で受信され、送信(Send)と付標された送信出力部35から送信される。
図3Bは、命令デコーダ/コントローラ38から受信された制御信号25に基づいてデータフォーマット処理を行うインタフェース制御ユニット50を有した代替のPE表示手段30’を示している。このデータフォーマット処理は、各種の標準やインタフェース必要条件に合わせるために、例えば、並列から直列への変換と直列から並列への変換や、データのコード化、データフォーマット変換を有することができる。
図3Aに示されたPE30と同じタイプのPEsの従来の4×4の最隣接トーラスが、図4において自ずからのタイル貼り状態で囲まれて示されている。中央部の4×4のトーラス40は、そのトーラスのラップアラウンド接続を含んだリング42によって囲まれている。図4のタイル貼り状態は、ラップアラウンド接続を『平坦化』し、それによって、本発明の一実施例のアレイに使用される好適なクラスタ形成プロセスを説明する手助けのために使われる説明の補助となっている。例えば、ブロック42内部に示されているように、PE0,0から西へのラップアラウンド接続は、PE0,3となっており、PE1,3から東への接続はPE1,0となっている等である。この図の利便性は、図5A−5Gについての以下の説明と関連してより明らかになるであろう。
図5Aでは、基本的な4×4のPEトーラスは、もう一度、自らのタイル貼り状態によって囲まれている。本発明では、PE0,0から東と南への通信にはPE0,1とPE1,0を各々取り込むことになるのが分かる。更に、PE1,0へ東に向かって通信するPEは、PE1,3であり、またPE1,3は南に向かってPE2,3へ通信する。従って、4つのPEのPE0,0、PE1,3、PE2,2及びPE3,1を一つのクラスタに結合することでクラスタ44を形成し、そのクラスタ44からPEsは、PE0,1、PE1,0、PE2,1及びPE3,2のPEsを含んだもう一つ別のクラスタ46と南と東に向かってのみ通信する。同様に、クラスタ46のPEsは、PE0,2、PE1,1、PE2,0及びPE3,3のPEsを含んだクラスタ48のPEsと南と東に向かって通信する。クラスタ50のPE0,3、PE1,2、PE2,1及びPE3,0のPEsは、クラスタ44と南と東に向かって通信する。この組合わせで、ただ2つの他のクラスタのPEsと通信し、且つそれらのクラスタに互いに相容れない方向で通信するPEsのクラスタを作ることになる。即ち、例えば、クラスタ48のPEsは、クラスタ50のPEsと南と東に向かってのみ通信すると共に、クラスタ46のPEsと北と西に向かってのみ通信する。この例のPEsのグループ化により、本発明に係るアレイ内部でのPE間接続を、従来の最隣接トーラスアレイの必要条件と比較して実質的に減らせることができる。
多くの他の組合わせも可能である。例えば、再度、PE0,0で開始して、北と東への通信に関連してPEsをグループ化することで、図5Bのクラスタ52、54、56、58を作る。これらクラスタは、PEアレイの相互接続の必要性を大幅に低減し、且つ最長のPE間の接続の長さを短縮するように組み合わされる。しかし、これらクラスタは、図5Aのクラスタ44−50が行っているようにPEsとそれらの転置要素とを組み合わせてはいない。即ち、転置対のPE0,2/PE2,0とPE1,3/PE3,1とがクラスタ56に含まれているが、転置対のPE0,1/PE1,0はクラスタ54と58の間で分割されている。現在のところ好適な実施例に係るアレイは、クラスタ内の全てのPEsを、それらの転置要素と組み合わせた44−50のようなクラスタのみを採用している。例えば、図5Aでは、PE3,1/PE1,3の転置対はクラスタ44内に含まれており、PE3,2、PE2,3及びPE1,0/PE0,1の転置対はクラスタ46内に含まれており、PE0,2/PE2,0の転置対はクラスタ48内に含まれており、またPE3,0/PE0,3及びPE2,1/PE1,2の転置対はクラスタ50内に含まれている。図5Cのクラスタ60、62、64、68は、PE0,0で開始して、北と西に通信するPEsを組み合わせることで形成される。クラスタ60は、クラスタ44と同等であり、クラスタ62はクラスタ46と同等であり、クラスタ64はクラスタ48と同等であり、クラスタ68はクラスタ50と同等であることに注目すべきである。同様に、南と西に通信するPEsを組み合わせることで形成される図5Dのクラスタ70−76は、図5Bのクラスタ52−58に各々同等となっている。図5Eで示されるように、クラスタ45、47、49、51は、好適なクラスタ48、50、44、46と同等であるが、南と東に通信するPEsを組み合わせることでトーラス40内に、いずれの『開始点』からも得られよう。
もう一つ別のクラスタ化が、図5Fに描かれており、そこでは、クラスタ61、63、65、67は、トーラス40のタイル貼り形状に十字形パターンを形成している。このクラスタ化は、互いに相容れない方向で2つの他のクラスタと通信するクラスタを作るためにPEsをグループ化する幾つかの方法があることを実証している。即ち、クラスタ65のPE0,0とPE2,2は、クラスタ61のPE0,1及びPE2,3と東に向かって各々通信している。更に、クラスタ65のPE1,1とPE3,3は、クラスタ61のPE1,0とPE3,2と西に向かって各々通信している。以下により詳細に説明されているように、いま説明した東の方への通信経路は、即ちPE0,0とPE0,1の間及びPE2,2とPE2,3の間の経路と他のクラスタ間の経路とは、例えば多重化により、互いに相容れないクラスタ間通信経路と組み合わされてもよく、これによりPE間通信のために必要とされる相互接続線の数を半分に減らすことができる。図5Fのクラスタ化は、更にクラスタ内部で転置要素もグループ化している。
新しいアレイの大規模化の一態様が、図5Gによって示されており、そこでは4×8のトーラスアレイが、2つの4×4アレイ40A、40Bとして描かれている。4×8のトーラスアレイから、8つの4−PEクラスタを作るために、この点に対して説明してきた技法を使うことができよう。更に、4×8トーラスを2つの4×4トーラスに分割し、且つ各クラスタをクラスタ内に、即ちクラスタ44Aと44Bに、また46Aと46B等に組み合わせることで、例えば、8つの4−PEクラスタ構成に含まれた4×4サブクラスタの全ての接続性と転置関係を備えた4つの8−PEクラスタが得られる。このクラスタの組み合わせアプローチは、一般的であり、また他の規模化も可能である。
好適でしかし唯一のものではないが、クラスタ化のプロセスについても以下に説明する。i=0、1、2、・・・N−1で且つj=0、1、2、・・・N−1の場合に、N×Nの基本的トーラスPEi,jが与えられれば、好適な南−と東−通信クラスタは、PEi,j、PE(i+1)(ModN)(j+N-1)(ModN)、PE(i+2)(ModN)(j+N-2)(ModN)、…、PE(i+N-1)(ModN)(j+N-(N-1))(ModN)をグループ化することで形成されよう。この公式は、N個のPEsから成るN個のクラスタを有したN×Nのトーラスアレイに対して書き直しされ、そこでクラスタのグループ化は、iとjを選択し、次いで公式:いずれのi,jに対しても、また全てのa∈{0、1、・・・、N−1}に対してPE(i+a)(ModN),(j+N-a)(ModN)となる。
図6は、PE1,3で始まり、南と東に通信するPEsを組み合わせているクラスタ44乃至50の形成を示している。実際には、クラスタ44乃至50は、新しいアレイの4×4トーラス同等物の好適な実施例のクラスタであるが、開始点として基本のN×Nトーラス40内の何のPEが使用されるかには無関係に、南と東に通信するPEsを組み合わせることで得られる。図7と8は、3×3と3×5のトーラスを各々使っているアプローチの付加的な例を示している。
クラスタ構築プロセスを考察するもう一つ別の同等の方法が図9に示されている。これと、後続の似たような図では、ラップアラウンド線は簡明化のために図から省いてある。従来の4×4トーラスは、各行の左側へのシフトによって図示されているように、斜方形に先ず捩られている。このシフトは、斜方形の『垂直スライス』において転置PEsをグループ化する働きをする。同じ大きさのクラスタを造るために、斜方形は、基本的に円筒に形成される。即ち、一番左か又は一番西の垂直方向のスライス80は、その行の一番東のPE0,3と境界を接するように囲って包まれている。スライス80の東側の垂直方向スライス82は、PE0,0及びPE1,3と境界を接するように囲って包まれ、また次の東側の垂直方向スライス84は、PE0,1とPE1,0及びPE2,3と境界を接するように囲って包まれている。明瞭にするために、全ての接続は示されていないが、全ての接続は元の4×4トーラスの場合と同じ状態となっている。結果的にできた垂直方向スライスは、図5Aに示された好適な実施例44乃至50のクラスタを造り出し、同じクラスタが図5Aと図6に関連した説明で図解された方式で造られることになる。図10では、図9の斜方形/円筒化プロセスで造られたクラスタは、クラスタ間の接続を明らかにする図解目的のために『剥き開いてある』。例えば、クラスタ44からクラスタ46への全てのPE間接続は、クラスタ46からクラスタ48へのものや、クラスタ48からクラスタ50へのもの、クラスタ50からクラスタ44のもののように南と東とに向いている。クラスタ間通信のこの共通性は、SIMDプロセスにおけるPE間通信の性質と組み合わせて、PE間接続の数を大幅に減らせるようする。以下に、図16と17に関連してより詳細に説明するように、互いに相容ない通信、例えばクラスタ44からクラスタ46への南と東へ向かった通信は、クラスタ間に通っている共通した一組の相互接続線に対して多重化して使用される。結果的に、以下で『マニホールドアレイ(manifold array)』と称される新しいアレイのPE間接続配線は、従来の最隣接トーラスアレイに関連した相互接続線の数を約半分に減らすことができる。
マニホールドアレイを造るために使用されるクラスタ形成プロセスは、対称と成っていて、垂直方向にシフトされたトーラスの水平方向スライスを取ることで形成されたクラスタは、水平方向にシフトされたトーラスの垂直方向のスライスを取って形成されたクラスタと同じである。図11Aと図11Bは、斜方形/円筒化技法が、更に、垂直方向にシフトされたトーラスの水平方向スライスから好適なクラスタを造るのにも採用されると言う事実を示している。図11Aでは、従来の4×4トーラスアレイの列は、斜方形を造るために垂直方向にシフトされており、また図11Bでは、その斜方形は円筒内に包まれている。結果的に生じた円筒の水平方向スライスは、好適なクラスタ44乃至50を与えてくれる。この点に対して図解されたいずれの技法も、従来のトーラスアレイと同等のPE間接続性を与えてくれるマニホールド・アレイのクラスタを作り、実質的にPE間配線の必要条件を減らすために採用される。
要約で注目したように、上記のクラスタ化プロセスは一般的であり、各々N×Mのトーラスアレイから、N個のPEsを含んだM個のクラスタから成るマニホールドアレイを造るのに採用される。例えば、5×4のトーラスアレイ同等物のために、5つのPEsから成る4つのクラスタを作る斜方形/円筒化アプローチが図12に示されている。新しいPEクラスタ、例えばPE4,0、PE3,1、PE2,2、PE1,3及びPE0,0を形成する垂直方向スライスは、以前に図示した4×4アレイの転置クラスタ化関係を維持している。同様に、図13の線図に示されているように、4×5トーラスは、各々4×4トーラスで得られたものからほんの僅か変更された転置関係で、4つのPEsから成る5つのクラスタを作り出す。実際には、転置PEsは、4×4のクラスタ化されたアレイに関するものよりはほんの僅かに異なった配列で共に依然クラスタ化されている。例えば転置対のPE1,0/PE0,1とPE2,3/PE3,2は、好適な4×4マニホールドアレイ内部で同じクラスタにグループ化されていたが、しかし、それらは、依然として対を成しているのが見受けられるが、しかし、図13の4×5マニホールドアレイでは別々のクラスタにグループ化されている。図14のクラスタ選定図に示されているように、奇数アレイには奇数で、対角のPEsのPEi,j(i=jの場合)は、クラスタ当り一つだけ分配されている。
図15A乃至図15Dのブロック図は、新しいマニホールドアレイのクラスタ間接続を示している。説明を簡略化するために、以下の説明では、特に述べられていない限り、単方向接続経路が採用されている。とはいえ、明瞭化のために、本発明は、個々の線によって表された並列な相互接続経路や又はバスで説明してある。ビット−直列通信、別言すれば単一ラインを有したバスも本発明が企図するものである。バスマルチプレクサか、又はバススイッチが使用されている場合、マルチプレクサ及び/若しくはスイッチは、バスにおけるライン数に対応して複製されている。更に、PEsの適当なネットワーク接続とマイクロプロセッサチップの実装に関しては、新しいアレイが、ここに参考までに組み込まれているP.M.コゲ(Kogge)氏による「動的なマルチモードの並列プロセッサアレイアーキテクチャ(Dynamic Multi-Mode Parallel Processor Array Architecture)の名称となっている米国特許第5,475,856号に説明されているようにMIMD、SIMD及びSISDのモードの間で動的切り換えられるようにするシステムと共に採用されている。
図15Aでは、クラスタ80、82、84は、クラスタスイッチ86とクラスタ間リンク88を介して互いに接続された3つのPEクラスタとなっている。特定のトポロジーを造るためにどのようにマニホールドアレイPEsが互いに接続するのかを理解するために、PEからの接続図は、単一のPEの接続図からPEsのクラスタのメンバーとしてのPEの接続図に変更されなければならない。SIMDの単方向通信環境で作動するマニホールドアレイに対して、どのPEも、そのPEと従来のトーラスにおけるPEsの内のその直接取り付けられたいずれの隣りとの間の接続数に無関係に、ただ1つの送信ポートと1つの受信ポートとを必要としている。一般に、通信しているPEs間に何ら衝突を起こさないアレイ通信パターンに対して、ただ1つの送信と1つの受信のポートが、特定トポロジーが、そのPEsについて必要とする隣りへの接続数から独立して、PE当り必要とされている。
各々4つのPEsから成る4つのクラスタ44乃至50は、図15Bのアレイに組み合わされている。クラスタスイッチ86と通信経路88とは、以下に図16、17及び18の説明でより詳細に説明されているようにクラスタを接続している。同様に、各々5つのPEsから成る5つのクラスタ90乃至98は、図15Cのアレイに組み合わされている。実際には、クラスタ90乃至98は、集積回路のレイアウトを容易にし、且つ最長のクラスタ間接続の長さを短縮するように適切に設置されている。図15Dは、各々6つのPEsを有した6つのクラスタ99、100、101、102、104、106から成るマニホールドアレイを示している。新しいマニホールドアレイの通信経路86は、クラスタ間に存在しているので、従来のトーラスアレイのラップアラウンド接続上の問題は排除されている。即ち、どんなにアレイが大きくなろうとも、何ら相互接続経路は、接続経路88によって示されている基本的なクラスタ間空間よりも長くなる必要はない。これは、全体のアレイに及ばなければならない従来のトーラスアレイのラップアラウンド接続とは対照的になっている。
図16のブロック図は、4つのクラスタで、16個のPEのマニホールドアレイの好適な実施例をより詳細に示している。クラスタ44から50は、多くは集積回路レイアウトとなるように、矩形状又は正方形状に配列されている。接続経路88とクラスタスイッチとは、この図により詳細に示されている。南と東への接続は、PEs間の接続ライン数を減らすために、クラスタスイッチ86を介して多重化されている。例えば、PE1,2とPE2,2との間の南方向の接続は、PE2,1らPE2,2への東方向の接続のように、接続経路110を介して行われる。上記で分かるように、接続経路110のような各接続経路は、ビット−直列経路で、結果的に、単一の金属被覆ラインによって集積回路実装で行われる。更に、接続経路は、各々の制御ラインの存在が明らかにされた時にのみ使用が可能化される。これら制御ラインは、図3Aに示された各PE3,0の命令デコーダ/コントローラ38によって発生される。代わりに、これら制御ラインは、各クラスタスイッチに含まれている独立した命令デコーダ/コントローラによっても発生されてもよい。スイッチ当り多くのPEsが存在しているので、各PEによって発生された多くのエネーブル信号が比較され、何らエラーが生じないように、また全てのPEsが同期して動作するために、それらが同じ値を持つかどうか調べられる。即ち、北方向にはN、南方向にはS、東方向にはE、西方向にはWと各注記された方向経路に組み合わされた制御ラインが設けられている。これらライン上の信号は、マルチプレクサが関連データ経路上のデータを接続されたPEに該マルチプレクサを介して通せるようにするものである。この制御信号の存在が確認されない時には、関連データ経路はエネーブルにされず、データはそれら経路に沿ってマルチプレクサを介して転送されない。
図17のブロック図は、4つのクラスタ44から50をリンクする相互接続経路88とスイッチクラスタ86をより詳細に示している。この図では、西と北方向の接続は、図16に示されている東と南方向の接続に加えられる。この図では、各処理要素は2つの入力ポートと2つの出力ポートを持って示されているが、好適な実施例では、クラスタスイッチ内で多重化して使用するもう一つ別の層は、各PEの通信ポートを、入力に1つと、出力に1つとに減らすことになる。PE当り4つの隣接送信接続を有し、且つ単方向通信を行う、即ちPE当りただ1つの送信方向を使用可能化する標準的なトーラスでは、各PE当り必要とされる4つのマルチプレクサ、又はゲート制御される回路の送信経路が設けられている。このゲート制御される回路は、好適には、マルチプレクサと、ANDゲートと、エネーブルとディスエネーブルの制御信号を伴った3ステート隣接ドライバ/レシーバと、他のその種のインタフェース・エネーブル/ディスエネーブル回路とを有することができる。これは、PEの一部として規定された相互接続トポロジーによるものである。この成果は、標準トーラスには4N2個の多くの送信経路が存在していることである。マニホールドアレイでは、同等の接続性と無制限の通信を伴いつつも、ただ2N2個の多重化された、又はゲート制御される回路の送信経路が必要とされるだけである。この2N2個の送信経路への削減により、マルチプレクサと2N2個の送信経路とによって使われる面積が4N2個の送信経路によって浪費されるものよりも大幅に少なくなるので、集積回路の面積を大幅に節減することになる。
完全なクラスタスイッチ86は、図18のブロック図により詳細に示されている。北、南、東及び西方向の出力部は、既に図示されている通りである。もう一つ別の多重化層部112が、クラスタスイッチ86に付加されている。この多重化層112は、Aが付標された東/南方向の受信と、Bが付標された北/西方向の受信との間の選定を行い、それによって、各PEの通信ポートの必要条件を1つの受信ポートと1つの送りポートに減らしている。更に、転置PEsのPE1,3とPE3,1の間の多重化接続が、Tの付標されたクラスタ間の転置接続を介して行われる。特定のマルチプレクサ用のTマルチプレクサエネーブル信号が出力されると、転置PEからの通信が、そのマルチプレクサに関連したPEで受信される。好適な実施例では、全てのクラスタは、PEとその転置PEとの間のような転置経路を含んでいる。これらの図は、全体の接続組織を示しており、どのように多層集積回路の実装が、デザイン選択のおきまり事項として一般に行われるおきまりのアレイ相互接続の全部を達成するかを示めそうとするものではない。いずれの集積回路レイアウトに関しても、IC設計者は、本発明に係るアレイの実際のIC実装をレイアウトするプロセスにおいて、各種の同時に満たすことのできない条件取捨の考慮について分析するであろう。例えば、クラスタスイッチは、多数のインタフェースの配線長さを短縮するためにPEクラスタ内に分布されるかもしれない。
トーラスアレイの通信能力と、マニホールドアレイについて画像処理アルゴリズムを実行する能力に対する同等性を実証するために、図19Aの3×3の窓を使用した簡単な二次元のコンボルージョンについて以下に説明する。トーラス機構のコンボルージョンに対するリーと(Lee)アガーワル(Aggarwal)のアルゴリズムが使われる。1987年7月に刊行されたパター分析と機械知能に関するIEEE会報(IEEE Transactions on Patter Analysis and Machine Array Processor)のPAMI−9巻の第4の590−594ページのS.Y.リー氏とJ.K.アガーワル氏の著作によるメッシュ状に接続されたアレイプロセッサの並列二次元コンボルージョン(Parallel 2D Convolution on a Mesh Connected Array Processor)を見ること。図3Aの基本のPE30の内部構造は、これらPEs内の16個で4×4のマニホールドアレイについて実行されるようなコンボルージョンを実証するために使用される。この例の目的のために、命令デコーダ/コントローラも、クラスタスイッチにマルチプレクサのエネーブル信号を与える。スイッチ当り多くのPEsが在るために、多くのエネーブル信号が、確実に何らエラーが生じず、且つ全てのPEsが同期して作動するようにするために等しいかが比較される。
コンボルージョン用のS.Y.リー氏とJ.K.アガーワル氏のアルゴリズムに基づいて、マニホールドアレイは、望ましくは画像の大きさ、例えばN×Nの画像に対してはN×Nのアレイとなろう。実装の結果によって、アレイは、大きなNに対してN×Nよりも小さいものと想定されなければならない。アレイの大きさがC×Cと想定すると、画像処理は、コンボルージョン窓の大きさによって必要とされる画像ブロックの重なりを考慮しながら、複数のC×Cのブロックに区分される。N×Nの画像のエッジ効果を取り扱うために各種の技法が使用される。例えば、(N+1)×(N+1)のアレイを効果的に発生する画素複製が使用される。必要とされる処理を簡便にするために、ある応用の具体例において、非常に小さなPEが定義され得ることに注目される。結果的に、多数のPEsが、チップ上のマニホールドアレイの組織に設置されようが、それによって大きな画像寸法に対するコンボルージョンの計算の効率を改善できるであろう。
コンボルージョン・アルゴリズムは、北/東/南/西方向の最隣接通信処理の為に、トーラスアレイへのマニホールドアレイの組織化に機能的に同等であることを実証する簡単な手段を提供する。結果的に、その例はアルゴリズムの通信態様に焦点を合わせることになり、説明を簡略化するために、非常に小さい4×4の画像寸法が4×4のマニホールドアレイに使用される。各々の前の4×4のブロックが完了した後、そのアレイに新しい4×4の画像セグメントをロードすることによって、より大きなN×Nの画像が取り扱われる。4×4のアレイに対しては、何らラップアラウンドが使われず、またエッジに対しては、PEs0が、物理的実装には存在していない仮想のPEsから受け取られる。画素から成る1つの4×4のブロックに対する処理は、この処理例に含まれることに成る。
コンボルージョンの一例が開始されるために、PEsは、図3Aのコントローラ29のようなSIMDコントローラによって既に初期化されており、且つ画素から成る最初の4×4ブロックは、各PEのレジスタR1にデータバスを介してロードされているものと想定している。図19Cは、アレイ内にロードされる4×4ブロックを有した画像の一部分を示している。図19Dは、このブロックが4×4のトーラス論理的位置にロードされているのを示している。更に、各PEの累算合計レジスタR0は、零に初期化されていると想定している。このアルゴリズムにとって取るに足らないが、R2も零に初期化されているように示されている。コンボルージョン窓要素は、アルゴリズムの各段階で一度に一つづつブロードキャストされる。これら窓要素は、レジスタR2内に受信される。窓要素をブロードキャストする以前の機械の初期状態は、図20Aに示されている。全てのPEに対する3×3の隣接要素の重み付けされた画素値の合計を計算する段階が、後に続く。
このアルゴリズムは、全てのPEsへの最初の窓要素W00の伝達(ブロードキャスト)で開始する。これが一旦各PEに受信されると、PEsは、第1のR0=R0+R2×R1又はR0=R0+W×Pを計算する。その計算の結果は、次に、図19Bの選択されたコンボルージョン経路に従って最隣接PEに通信される。説明を簡便化するために、説明される各処理段階は、コントローラからディスパッチされた命令によって各々制御される3つのサブ段階に:ブロードキャスト窓要素段と、演算段と、通信段に区分される。この簡略化されたアプローチに対する改良は、主要段2で開始して、窓要素ブロードキャスト段を結果段の通信と重ねる等して展開される点に注目される。これらの点は、この説明の目的にとって必須ではなく、当業者によって認識されるであろう。上付き文字は、処理が進むにつれて合計段の値を表すために使用される。計算された値の通信をフォローする手助けとして、付標の下付き文字は、値が発生された源泉PEを示している。画素{i、j}のコンボルージョン経路は、図19Bに示されている。図20乃至図24は、各演算段の後のマニホールドアレイの状態を示している。
図20Bでは、W00が、PEsにブロードキャストされ、各PEが、R01=0+W00×R1を計算して、R01を南方向のPEに通信し、そこで受信されたR01の値が、PEsのレジスタR0に記憶される。
図21Aでは、W10が、PEsにブロードキャストされ、各PEが、R02=R01+W10×R1を計算してR02を南方向のPEに通信し、そこで受信されたR02の値が、PEsのレジスタR0に記憶される。
図21Bでは、W20が、PEsにブロードキャストされ、各PEが、R03=R02+W20×R1を計算してR03を東方向のPEに通信し、そこで受信されたR03の値が、PEsのレジスタR0に記憶される。
図22Aでは、W21が、PEsにブロードキャストされ、各PEが、R04=R03+W21×Rを計算してR04を東方向のPEに通信し、そこで受信されたR04の値が、PEsのレジスタR0に記憶される。
図22Bでは、W22が、PEsにブロードキャストされ、各PEが、R05=R04+W22×R1を計算してR05を北方向のPEに通信し、そこで受信されたR05の値が、PEsのレジスタR0に記憶される。
図23Aでは、W12が、PEsにブロードキャストされ、各PEが、R06=R05+W12×R1を計算してR06を北方向のPEに通信し、そこで受信されたR06の値が、PEsのレジスタR0に記憶される。
図23Bでは、W02が、PEsにブロードキャストされ、各PEが、R07=R06+W02×R1を計算してR07を西方向のPEに通信し、そこで受信されたR07の値が、PEsのレジスタR0に記憶される。
図24Aでは、W01が、PEsにブロードキャストされ、各PEが、R08=R07+W01×R1を計算してR08を南方向のPEに通信し、そこで受信されたR08の値が、PEsのレジスタR0に記憶される。
図24Bでは、W11が、PEsにブロードキャストされ、各PEはR09=R08+W11×R1を計算して終了する。
上記の9つの段階の終わりで、各PEi,jは、(図19Bを参照して):
Ci,j=W00Pi-1,j-1+W10Pi,j-1+W20Pi+1,j-1+W21Pi+1,j+W22Pi+1,j+1+W12Pi,j+1+W02Pi-1,j+1+W01Pi-1,j+W11Pi,j
例えば、i=5、j=6に対して、C5,6=W00P4,5+W10P5,5+W20P6,5+W21P6,6+W22P6,6+W22P6,7+W12P5,7+W02P4,7+W01P4,6+W11P5,6
この例の完了時に、もし処理上の仮定が与えられれば、4つの有効なコンボルージョン値が計算される、即ちPEs{(1,1)、(1,2)、(2,1)、(2,2)}におけるものが計算される点に注目される。これは、以前に説明したように、エッジ効果によるものである。このアルゴリズムに必要とされるPEの簡単な性質によって、多数のPEsがチップの上に組み込まれ、それによって大きな画像寸法に対するコンボルージョン計算の効率を大幅に高める。
上記例では、マニホールドアレイが、標準的なトーラスの4つの北、東、南、西方向の通信方向に対してその通信能力で同等であり、また標準的なトーラスの配線費用のほんの半分しか必要としないことを実証している。もし、整然とした接続パターンと最短線長さと最小コストで実行される転置PEs間での通信を行うマニホールドアレイ能力が与えられれば、マニホールドアレイは、標準的なトーラスを越えた付加能力を与えてくれる。マニホールドアレイの組織は、依然として転置要素間の通信と隣接要素間の通信の通信能力を与えつつも、PEsの同じ大きさのクラスタから造られているのでより整然としているために、従来技術の標準的な対角折りのトーラスに対して優れた設計を表している。
本発明の特定実施例の上記説明は、図解と説明の目的のために与えられたものである。それは、本発明に網羅的であったり、又は開示された形式そのものに限定しようとするものではなく、また多くの改造例や変形例も上記教示内で可能である。本発明の原理とその実際の応用とを最も良く説明し、それによって他の当業者が本発明を最もよく利用できるようにするために、上記実施例が選択され且つ説明してきた。本発明の技術的範囲は、これに添付された請求の範囲によってのみ制限されるものとなっている。

Claims (43)

  1. 各々が他の処理要素(PE)と通信するための単一の入力ポートと単一の出力ポートを具備する通信ポートを有する複数の処理要素(PEs)をトーラス状に接続したPEアレイ接続する相互接続システムであって、
    クラスタにグループ分けされた処理要素同士をクラスタスイッチを介して接続し、各クラスタの処理要素が、前記クラスタスイッチ及びPE間接続経路を通して互いに排他的な方向で他の2つのクラスタの処理要素と通信可能なPE間接続経路と、
    各クラスタスイッチが1つのクラスタにグループ分けされた各処理要素の通信ポートと当該クラスタの前記PE間接続経路との間に接続され、前記クラスタスイッチを接続するPE間接続経路上でのPE間の互いに排他的な通信を多重するようにスイッチングされる複数のクラスタスイッチと、
    を有することを特徴とする相互接続システム。
  2. 所定数の処理要素は転置PEの組を形成し、前記クラスタスイッチは更に、前記転置PEの組の間で直接通信を行うクラスタ間転置接続部を具備することを特徴とする請求項1に記載の相互接続システム。
  3. 前記クラスタスイッチに接続され、前記クラスタスイッチを切替えて動作モードを選択するコントローラを更に有し、
    データ及び指令は、
    a)西側PEの通信ポートを介して西側PEからデータを受信している間に、東側PEの通信ポートを介してデータを前記東側PEに送信するための東送信/西受信モードと、
    b)南側PEの通信ポートを介して前記南側PEからデータを受信している間に、北側PEの通信ポートを介してデータを前記北側PEに送信するための北送信/南受信モードと、
    c)北側PEの通信ポートを介して前記北側PEからデータを受信している間に、南側PEの通信ポートを介してデータを前記南側PEに送信するための南送信/北受信モードと、
    d)東側PEの通信ポートを介して前記東側PEからデータを受信している間に、西側PEの通信ポートを介してデータを前記西側PEに送信するための西送信/東受信モードとの4つの選択可能なモードの内の一つにより、前記通信ポートで送信され且つ受信されることを特徴とする請求項1に記載の相互接続システム。
  4. 前記データ及び指令は、前記転置PE間で送信及び受信するための第5の選択可能な転置送信/受信モードで送信され、且つ受信されることを特徴とする請求項3に記載の相互接続システム。
  5. 各PEは、制御ポートとコントローラと通信するためのポートを有し、前記コントローラは、各PEにおけるレジスタ内にロードするために、同時に制御情報を各PEの制御ポートに送り、且つデータを各PEのデータポートに送るために各PEの制御ポートに接続されることを特徴とする請求項4に記載の相互接続システム。
  6. 前記PE間接続経路は、種々の接続経路を選択するクラスタスイッチを通して、経路エネーブル信号によって選択的に切り換えられることを特徴とする請求項5に記載の相互接続システム。
  7. 前記経路エネーブル信号は、前記コントローラからの制御情報に基づいて発生されることを特徴とする請求項5に記載の相互接続システム。
  8. 各通信ポートは、1より大きいか又は等しい整数であるBビット幅の送信及び受信の経路を有していることを特徴とする請求項4に記載の相互接続システム。
  9. 各PEは、別の制御ポートを介して受信され且つ各PEに属している制御ロジックで解読された通信命令に基づいて、もう一つ別の通信ポートを経由してデータ又は指令を受信している間に、通信ポートを介して前記データ又は指令を選択的に送信することを特徴とする請求項1に記載の相互接続システム。
  10. 前記通信命令は、前記制御ポートを介してコントローラから前記制御ロジックによって受信されることを特徴とする請求項9に記載の相互接続システム。
  11. 前記クラスタスイッチは、前記PEが前記入力ポートを通して前記データ又は指令を受信している間に、各々同時に指令又はデータを前記出力ポートを通して送る処理を支援することを特徴とする請求項9に記載の相互接続システム。
  12. 前記同時処理は、前記PEが、前記入力ポートを通してデータ又は指令を受信している間に、各々同時に指令又はデータを前記出力ポートを通して送信するように選択的に切り換えられることを特徴とする請求項11に記載の相互接続システム。
  13. クラスタにグループ分けされ、各クラスタは他の2つのクラスタと互いに排他的な方向で通信する複数の処理要素(PEs)であって、各処理要素(PE)は他のPEと通信するための単一のPE間通信ポートを有し、前記通信ポートのそれぞれは各単一の入力ポートと出力ポートとを有する複数のPEと、
    切替え制御可能なクラスタスイッチを通してPE間通信ポート同士を接続するPE間通信経路と、
    PE同士の通信のためにPE間接続経路を相互排他的に選択し、複数のPEをトーラス状に接続する切り換え制御可能なクラスタスイッチと、
    を有することを特徴とするアレイプロセッサ。
  14. 更に、直接的な転置PE通信を行うように接続されたPE間通信経路を有することを特徴とする請求項13に記載のアレイプロセッサ。
  15. それぞれ単一の入力ポートと出力ポートとを有し各PEが他のPEと通信するための通信ポートを有し、クラスタに配列された複数の処理要素(PEs)と、
    クラスタスイッチを通して前記PE同士を接続するPE間通信経路とを有し、
    当該クラスタスイッチは、PE間通信を多重化し、各クラスタのPE同士を、互いに排他的な方向において少なくとも2つの他のクラスタのPEに、前記PE間通信経路を用いて接続するように動作可能であることを特徴とするアレイプロセッサ。
  16. 各クラスタが、それぞれ合計B本の線によりデータを送信し且つ受信する通信ポートを有するM個の処理要素を含むN個のクラスタと、
    対を成した前記クラスタ間で接続されたM×B本の線数より少ないか又は等しい通信経路と、
    対の内の他方のクラスタにおける処理要素に対してトーラスの最近隣りである処理要素を含んでいる対の各クラスタと、2つの互いに排他的なトーラス方向、即ち南と東、又は南と西、又は北と東、又は北と西方向において前記クラスタの対の間での通信を許容する各経路と、
    前記トーラス全体における通信を前記クラスタ対間の前記M×B本の線数より少ないか又は等しい通信経路で行うように接続されたマルチプレクサと、
    を有することを特徴とするアレイプロセッサ。
  17. 各クラスタの処理要素は、北と西のトーラス方向に向かって一つのクラスタと、また南と東のトーラス方向に向かってもう一つ別のクラスタと通信することを特徴とする請求項16に記載のアレイプロセッサ。
  18. 各クラスタの処理要素は、北と東のトーラス方向に向かって一つのクラスタと、また南と西のトーラス方向に向かってもう一つ別のクラスタと通信することを特徴とする請求項16に記載のアレイプロセッサ。
  19. 少なくとも一つのクラスタは、N×Nのトーラス転置対を有していることを特徴とする請求項16に記載のアレイプロセッサ。
  20. クラスタスイッチはマルチプレクサを有し、また前記クラスタスイッチは、2つの互いに排他的なトーラス方向からクラスタ内部の処理要素に受信された通信を多重するように接続されていることを特徴とする請求項16に記載のアレイプロセッサ。
  21. 前記クラスタスイッチは、別の1つのクラスタに通信するためにクラスタ内部の処理要素からの通信を多重するように接続されていることを特徴とする請求項20に記載のアレイプロセッサ。
  22. 前記クラスタスイッチは、クラスタ内部の転置処理要素間の通信を多重するように接続されていることを特徴とする請求項21に記載のアレイプロセッサ。
  23. 前記Nは、前記Mよりも大きいか又は等しいことを特徴とする請求項16に記載のアレイプロセッサ。
  24. 前記Nは、前記Mよりも小さい値であることを特徴とする請求項16に記載のアレイプロセッサ。
  25. 各クラスタがM個の処理要素を有し、各々の処理要素が、合計B本の線でデータ送信し且つ受信するための通信ポートを有しており、またクラスタ内部の各々の処理要素が、クラスタ外部の処理要素に対するよりもクラスタ内部の他の処理要素に対して物理的により接近して形成されている、N個のクラスタと、
    対の各クラスタが、対の他方のクラスタにおける処理要素に対してトーラスの最近隣りとなっている処理要素を収容しており、各経路が、2つの互いに排他的なトーラス方向、即ち南と東か、又は南と西か、又は北と東か、又は北と西方向において前記クラスタ対間での通信を許容しており、前記クラスタの対の間に接続されたM×B本の線のよりも少ないか又は等しい通信経路と、
    前記トーラス全体における通信を前記クラスタ対間の前記M×B本の線数より少ないか又は等しい通信経路で行うように接続されたマルチプレクサと、
    を有することを特徴とするアレイプロセッサ。
  26. 各クラスタの処理要素は、北と西のトーラス方向において一つのクラスタと通信し、また南と東のトーラス方向において別の1つのクラスタと通信することを特徴とする請求項25に記載のアレイプロセッサ。
  27. 各クラスタの処理要素は、北と東のトーラス方向において一つのクラスタと通信し、また南と西のトーラス方向において別の1つのクラスタと通信することを特徴とする請求項25に記載のアレイプロセッサ。
  28. 少なくとも一つのクラスタは、N×Nのトーラス転置対を有していることを特徴とする請求項25に記載の請求のアレイプロセッサ。
  29. クラスタスイッチは前記マルチプレクサを具備し、また前記クラスタスイッチは、2つの互いに排他的なトーラス方向からクラスタ内部の処理要素に受信された通信を多重化して通信するように接続されていることを特徴とする請求項25に記載のアレイプロセッサ。
  30. 前記クラスタスイッチは、別の1つのクラスタに通信するためにクラスタ内部の処理要素からの通信を多重するように接続されていることを特徴とする請求項29に記載のアレイプロセッサ。
  31. 前記クラスタスイッチは、前記クラスタ内部の転置処理要素間の通信を多重するように接続されていることを特徴とする請求項30に記載のアレイプロセッサ。
  32. 前記Nは、前記Mよりも小さい又は等しいことを特徴とする請求項25に記載のアレイプロセッサ。
  33. 前記Nは、前記Mよりも大きい値であることを特徴とする請求項25に記載のアレイプロセッサ。
  34. 前記処理要素間の通信は、ビット−直列となっており、また各クラスタは、前記通信経路を介して2つの他のクラスタと通信するようになっていることを特徴とする請求項25に記載のアレイプロセッサ。
  35. 前記処理要素間の通信経路はデータバスを含むことを特徴とする請求項25に記載のアレイプロセッサ。
  36. 前記通信経路は、双方向経路となっていることを特徴とする請求項25に記載のアレイプロセッサ。
  37. 前記通信経路は、単方向信号線を含むことを特徴とする請求項25に記載のアレイプロセッサ。
  38. アレイと同じ数のPEを有するトーラス状に接続されたアレイの行数と列数をそれぞれP,Qとすると、前記PとQは、各々前記NとMに等しいことを特徴とする請求項25に記載のアレイプロセッサ。
  39. 同じ数のPEを有するトーラス状に接続されたアレイの行数と列数をそれぞれP,Qとすると、前記PとQは、各々前記MとNに等しいことを特徴とする請求項25に記載のアレイプロセッサ。
  40. iとjが、トーラス状に接続されたアレイ内の各行と列のPE位置を示しており、またi=0,1,2,…,N−1で、j=0,1,2,…,N−1となっていて、いずれのi,jに対してまた全てのa∈{0,1,…,N−1}に対してクラスタ状にPE(i+a)(ModN),(j+N-a)(ModN)が配列された処理要素(PEs)PEi,jと、
    前記クラスタ間のPE間通信経路を多重化し、それによってトーラス状に接続されたアレイのものと同等のPE間接続性を与えるように接続されたクラスタスイッチとを有し、
    前記クラスタのそれぞれは同じ数の処理要素を含んでいることを特徴とするアレイプロセッサ。
  41. 前記クラスタスイッチは、更にクラスタ内部の転置PE対におけるPEs間で直接通信を行うように接続されていることを特徴とする請求項40に記載の請求のアレイプロセッサ。
  42. 前記クラスタは、スケラーブルであることを特徴とする請求項40に記載の請求のアレイプロセッサ。
  43. 処理要素が、互いに排他的なトーラス方向においてのみ少なくとも1つの他のクラスタの処理要素と通信するように、各クラスタがM個の処理要素から成るN個のクラスタに処理要素を配列する工程と、
    前記互いに排他的なトーラス方向の通信を多重化する工程と、
    を有することを特徴とするアレイプロセッサを形成する方法。
JP50567099A 1997-06-30 1998-06-24 マニホールドアレイプロセッサ Expired - Fee Related JP4118963B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US08/885,310 US6023753A (en) 1997-06-30 1997-06-30 Manifold array processor
US08/885,310 1997-06-30
PCT/US1998/013111 WO1999000743A1 (en) 1997-06-30 1998-06-24 Manifold array processor

Publications (2)

Publication Number Publication Date
JP2002507300A JP2002507300A (ja) 2002-03-05
JP4118963B2 true JP4118963B2 (ja) 2008-07-16

Family

ID=25386618

Family Applications (1)

Application Number Title Priority Date Filing Date
JP50567099A Expired - Fee Related JP4118963B2 (ja) 1997-06-30 1998-06-24 マニホールドアレイプロセッサ

Country Status (10)

Country Link
US (7) US6023753A (ja)
EP (2) EP1742154B1 (ja)
JP (1) JP4118963B2 (ja)
KR (1) KR20010014381A (ja)
CN (1) CN1158616C (ja)
AT (2) ATE484028T1 (ja)
CA (1) CA2295109A1 (ja)
DE (2) DE69837335T2 (ja)
IL (1) IL133691A0 (ja)
WO (1) WO1999000743A1 (ja)

Families Citing this family (78)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6023753A (en) * 1997-06-30 2000-02-08 Billion Of Operations Per Second, Inc. Manifold array processor
US6167502A (en) * 1997-10-10 2000-12-26 Billions Of Operations Per Second, Inc. Method and apparatus for manifold array processing
US6826522B1 (en) * 1999-06-21 2004-11-30 Pts Corporation Methods and apparatus for improved efficiency in pipeline simulation and emulation
DE10001874A1 (de) * 2000-01-18 2001-07-19 Infineon Technologies Ag Multi-Master-Bus-System
US6842811B2 (en) * 2000-02-24 2005-01-11 Pts Corporation Methods and apparatus for scalable array processor interrupt detection and response
US7085285B2 (en) * 2000-03-01 2006-08-01 Realtek Semiconductor Corp. xDSL communications systems using shared/multi-function task blocks
AU2001245520A1 (en) * 2000-03-08 2001-09-17 Sun Microsystems, Inc. Vliw computer processing architecture having a scalable number of register files
RU2158319C1 (ru) * 2000-04-25 2000-10-27 Институт металлургии и материаловедения им. А.А. Байкова РАН Высокопрочная коррозионно- и износостойкая аустенитная сталь
US6826148B1 (en) 2000-07-25 2004-11-30 Sun Microsystems, Inc. System and method for implementing a routing scheme in a computer network using intention packets when fault conditions are detected
US6925056B1 (en) 2000-07-25 2005-08-02 Sun Microsystems, Inc. System and method for implementing a routing scheme using intention packets in a computer network
US6741561B1 (en) 2000-07-25 2004-05-25 Sun Microsystems, Inc. Routing mechanism using intention packets in a hierarchy or networks
SE522520C2 (sv) * 2000-11-02 2004-02-10 Ericsson Telefon Ab L M Signalbearbetningssystem
US6718428B2 (en) 2000-12-18 2004-04-06 Sun Microsystems, Inc. Storage array interconnection fabric using a torus topology
US7401161B2 (en) 2000-12-18 2008-07-15 Sun Microsystems, Inc. High performance storage array interconnection fabric using multiple independent paths
GB2370381B (en) * 2000-12-19 2003-12-24 Picochip Designs Ltd Processor architecture
US7072976B2 (en) * 2001-01-04 2006-07-04 Sun Microsystems, Inc. Scalable routing scheme for a multi-path interconnection fabric
EP1378862B1 (en) 2001-03-13 2010-10-20 Ecchandes Inc. Visual device, interlocking counter, and image sensor
US7007189B2 (en) * 2001-05-07 2006-02-28 Sun Microsystems, Inc. Routing scheme using preferred paths in a multi-path interconnection fabric in a storage network
US6909695B2 (en) * 2001-05-07 2005-06-21 Sun Microsystems, Inc. Fault-tolerant, self-healing routing scheme for a multi-path interconnection fabric in a storage network
US6883108B2 (en) * 2001-05-07 2005-04-19 Sun Microsystems, Inc. Fault-tolerant routing scheme for a multi-path interconnection fabric in a storage network
EP1402731B1 (en) * 2001-05-17 2005-07-27 Optibase Apparatus and method for multiple rich media formats video broadcasting
KR100401946B1 (ko) * 2001-08-10 2003-10-17 박종원 주소계산과 자료이동방법 및 이를 이용한 충돌회피 기억 장치
US7000033B2 (en) * 2001-09-28 2006-02-14 Sun Microsystems, Inc. Mapping of nodes in an interconnection fabric
US7027413B2 (en) * 2001-09-28 2006-04-11 Sun Microsystems, Inc. Discovery of nodes in an interconnection fabric
WO2003038645A2 (en) * 2001-10-31 2003-05-08 University Of Texas A scalable processing architecture
EP1367778A1 (en) * 2002-05-31 2003-12-03 Fujitsu Siemens Computers, LLC Networked computer system and method using dual bi-directional communication rings
JP3987782B2 (ja) * 2002-10-11 2007-10-10 Necエレクトロニクス株式会社 アレイ型プロセッサ
US20060001669A1 (en) * 2002-12-02 2006-01-05 Sehat Sutardja Self-reparable semiconductor and method thereof
US7673118B2 (en) 2003-02-12 2010-03-02 Swarztrauber Paul N System and method for vector-parallel multiprocessor communication
US7324564B2 (en) * 2003-02-20 2008-01-29 Sun Microsystems, Inc. Transmitting odd-sized packets over a double data rate link
US6950905B2 (en) * 2003-02-20 2005-09-27 Sun Microsystems, Inc. Write posting memory interface with block-based read-ahead mechanism
US7873811B1 (en) * 2003-03-10 2011-01-18 The United States Of America As Represented By The United States Department Of Energy Polymorphous computing fabric
US7581080B2 (en) * 2003-04-23 2009-08-25 Micron Technology, Inc. Method for manipulating data in a group of processing elements according to locally maintained counts
US7596678B2 (en) * 2003-04-23 2009-09-29 Micron Technology, Inc. Method of shifting data along diagonals in a group of processing elements to transpose the data
US7676648B2 (en) * 2003-04-23 2010-03-09 Micron Technology, Inc. Method for manipulating data in a group of processing elements to perform a reflection of the data
US7913062B2 (en) 2003-04-23 2011-03-22 Micron Technology, Inc. Method of rotating data in a plurality of processing elements
US7003594B2 (en) * 2003-05-12 2006-02-21 Sun Microsystems, Inc. Streaming protocol for storage devices
US7191311B2 (en) * 2003-12-13 2007-03-13 International Business Machines Corporation Method and system of interconnecting processors of a parallel computer to facilitate torus partitioning
US7937557B2 (en) * 2004-03-16 2011-05-03 Vns Portfolio Llc System and method for intercommunication between computers in an array
US20060242156A1 (en) * 2005-04-20 2006-10-26 Bish Thomas W Communication path management system
US7904695B2 (en) * 2006-02-16 2011-03-08 Vns Portfolio Llc Asynchronous power saving computer
JP3992110B2 (ja) * 2005-12-06 2007-10-17 インターナショナル・ビジネス・マシーンズ・コーポレーション 複数の通信ノードの相互通信を制御する通信システム
US7966481B2 (en) 2006-02-16 2011-06-21 Vns Portfolio Llc Computer system and method for executing port communications without interrupting the receiving computer
US7617383B2 (en) * 2006-02-16 2009-11-10 Vns Portfolio Llc Circular register arrays of a computer
US7904615B2 (en) 2006-02-16 2011-03-08 Vns Portfolio Llc Asynchronous computer communication
DE102006027181B4 (de) * 2006-06-12 2010-10-14 Universität Augsburg Prozessor mit internem Raster von Ausführungseinheiten
US8099583B2 (en) * 2006-08-23 2012-01-17 Axis Semiconductor, Inc. Method of and apparatus and architecture for real time signal processing by switch-controlled programmable processor configuring and flexible pipeline and parallel processing
US7555637B2 (en) * 2007-04-27 2009-06-30 Vns Portfolio Llc Multi-port read/write operations based on register bits set for indicating select ports and transfer directions
US8122228B2 (en) * 2008-03-24 2012-02-21 International Business Machines Corporation Broadcasting collective operation contributions throughout a parallel computer
US8484440B2 (en) 2008-05-21 2013-07-09 International Business Machines Corporation Performing an allreduce operation on a plurality of compute nodes of a parallel computer
US8181003B2 (en) * 2008-05-29 2012-05-15 Axis Semiconductor, Inc. Instruction set design, control and communication in programmable microprocessor cores and the like
US8078833B2 (en) * 2008-05-29 2011-12-13 Axis Semiconductor, Inc. Microprocessor with highly configurable pipeline and executional unit internal hierarchal structures, optimizable for different types of computational functions
US8281053B2 (en) 2008-07-21 2012-10-02 International Business Machines Corporation Performing an all-to-all data exchange on a plurality of data buffers by performing swap operations
US20100023730A1 (en) * 2008-07-24 2010-01-28 Vns Portfolio Llc Circular Register Arrays of a Computer
US8150902B2 (en) 2009-06-19 2012-04-03 Singular Computing Llc Processing with compact arithmetic processing element
US8392661B1 (en) * 2009-09-21 2013-03-05 Tilera Corporation Managing cache coherence
US8255702B1 (en) * 2009-12-03 2012-08-28 Altera Corporation Programmable logic device with improved security
US8910178B2 (en) 2011-08-10 2014-12-09 International Business Machines Corporation Performing a global barrier operation in a parallel computer
US8898432B2 (en) * 2011-10-25 2014-11-25 Geo Semiconductor, Inc. Folded SIMD array organized in groups (PEGs) of respective array segments, control signal distribution logic, and local memory
US9495135B2 (en) 2012-02-09 2016-11-15 International Business Machines Corporation Developing collective operations for a parallel computer
JP6459630B2 (ja) 2015-02-27 2019-01-30 富士通株式会社 データ転送制御装置、データ転送制御プログラム、および並列計算システム
WO2016187232A1 (en) * 2015-05-21 2016-11-24 Goldman, Sachs & Co. General-purpose parallel computing architecture
US11449452B2 (en) 2015-05-21 2022-09-20 Goldman Sachs & Co. LLC General-purpose parallel computing architecture
US11687345B2 (en) 2016-04-28 2023-06-27 Microsoft Technology Licensing, Llc Out-of-order block-based processors and instruction schedulers using ready state data indexed by instruction position identifiers
EP3735638A4 (en) * 2018-01-24 2021-03-17 Alibaba Group Holding Limited DEEP LEARNING ACCELERATOR SYSTEM AND PROCEDURES FOR IT
CN110399976B (zh) * 2018-04-25 2022-04-05 华为技术有限公司 计算装置和计算方法
EP3654247A1 (en) 2018-11-15 2020-05-20 IMEC vzw Convolution engine for neural networks
US10565036B1 (en) 2019-02-14 2020-02-18 Axis Semiconductor, Inc. Method of synchronizing host and coprocessor operations via FIFO communication
US10831691B1 (en) * 2019-05-24 2020-11-10 International Business Machines Corporation Method for implementing processing elements in a chip card
CN113867790A (zh) * 2020-06-30 2021-12-31 上海寒武纪信息科技有限公司 计算装置、集成电路芯片、板卡和计算方法
CN113867792A (zh) * 2020-06-30 2021-12-31 上海寒武纪信息科技有限公司 计算装置、集成电路芯片、板卡、电子设备和计算方法
CN113867789A (zh) * 2020-06-30 2021-12-31 上海寒武纪信息科技有限公司 计算装置、集成电路芯片、板卡、电子设备和计算方法
CN113867791B (zh) * 2020-06-30 2023-09-26 上海寒武纪信息科技有限公司 一种计算装置、芯片、板卡、电子设备和计算方法
US11635967B2 (en) 2020-09-25 2023-04-25 Advanced Micro Devices, Inc. Vertical and horizontal broadcast of shared operands
US11921668B2 (en) * 2020-09-30 2024-03-05 Beijing Tsingmicro Intelligent Technology Co., Ltd. Processor array and multiple-core processor
US20220100699A1 (en) * 2020-09-30 2022-03-31 Beijing Tsingmicro Intelligent Technology Co., Ltd. Computing array and processor having the same
US11516087B2 (en) * 2020-11-30 2022-11-29 Google Llc Connecting processors using twisted torus configurations
US20230066045A1 (en) * 2021-08-30 2023-03-02 Taiwan Semiconductor Manufacturing Co., Ltd. Diagonal torus network

Family Cites Families (26)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3308436A (en) * 1963-08-05 1967-03-07 Westinghouse Electric Corp Parallel computer system control
US4270170A (en) * 1978-05-03 1981-05-26 International Computers Limited Array processor
US4509187A (en) * 1982-06-14 1985-04-02 At&T Bell Laboratories Time warp signal recognition processor using recirculating and/or reduced array of processor cells
US4644496A (en) * 1983-01-11 1987-02-17 Iowa State University Research Foundation, Inc. Apparatus, methods, and systems for computer information transfer
US5280474A (en) * 1990-01-05 1994-01-18 Maspar Computer Corporation Scalable processor to processor and processor-to-I/O interconnection network and method for parallel processing arrays
US5577262A (en) * 1990-05-22 1996-11-19 International Business Machines Corporation Parallel array processor interconnections
US5146420A (en) * 1990-05-22 1992-09-08 International Business Machines Corp. Communicating adder tree system for neural array processor
WO1991018351A1 (en) * 1990-05-22 1991-11-28 International Business Machines Corporation Pyramid learning architecture neurocomputer
US5148515A (en) * 1990-05-22 1992-09-15 International Business Machines Corp. Scalable neural array processor and method
US5146543A (en) * 1990-05-22 1992-09-08 International Business Machines Corp. Scalable neural array processor
US5065339A (en) * 1990-05-22 1991-11-12 International Business Machines Corporation Orthogonal row-column neural processor
US5590345A (en) * 1990-11-13 1996-12-31 International Business Machines Corporation Advanced parallel array processor(APAP)
JP2601591B2 (ja) * 1991-11-26 1997-04-16 富士通株式会社 並列計算機およびその全対全通信方法
CA2073516A1 (en) * 1991-11-27 1993-05-28 Peter Michael Kogge Dynamic multi-mode parallel processor array architecture computer system
JP2647327B2 (ja) * 1992-04-06 1997-08-27 インターナショナル・ビジネス・マシーンズ・コーポレイション 大規模並列コンピューティング・システム装置
DE4214621C1 (ja) 1992-05-02 1993-06-03 Bundesrepublik Deutschland, Vertreten Durch Den Bundesminister Der Verteidigung, Dieser Vertreten Durch Den Praesidenten Des Bundesamtes Fuer Wehrtechnik Und Beschaffung, 5400 Koblenz, De
JP2572522B2 (ja) * 1992-05-12 1997-01-16 インターナショナル・ビジネス・マシーンズ・コーポレイション コンピューティング装置
US5644517A (en) * 1992-10-22 1997-07-01 International Business Machines Corporation Method for performing matrix transposition on a mesh multiprocessor architecture having multiple processor with concurrent execution of the multiple processors
WO1994027216A1 (en) * 1993-05-14 1994-11-24 Massachusetts Institute Of Technology Multiprocessor coupling system with integrated compile and run time scheduling for parallelism
US6173387B1 (en) * 1994-05-11 2001-01-09 Intel Corporation Interleaved exchange in a network mesh
US5566342A (en) * 1994-08-31 1996-10-15 International Business Machines Corporation Scalable switch wiring technique for large arrays of processors
US5682491A (en) * 1994-12-29 1997-10-28 International Business Machines Corporation Selective processing and routing of results among processors controlled by decoding instructions using mask value derived from instruction tag and processor identifier
US5546336A (en) * 1995-01-19 1996-08-13 International Business Machine Corporation Processor using folded array structures for transposition memory and fast cosine transform computation
US5659785A (en) * 1995-02-10 1997-08-19 International Business Machines Corporation Array processor communication architecture with broadcast processor instructions
US6023753A (en) * 1997-06-30 2000-02-08 Billion Of Operations Per Second, Inc. Manifold array processor
US7596678B2 (en) * 2003-04-23 2009-09-29 Micron Technology, Inc. Method of shifting data along diagonals in a group of processing elements to transpose the data

Also Published As

Publication number Publication date
JP2002507300A (ja) 2002-03-05
US20020069343A1 (en) 2002-06-06
CN1261966A (zh) 2000-08-02
EP1742154B1 (en) 2010-10-06
DE69841929D1 (de) 2010-11-18
EP1742154A3 (en) 2007-07-11
CN1158616C (zh) 2004-07-21
US6892291B2 (en) 2005-05-10
ATE484028T1 (de) 2010-10-15
WO1999000743A1 (en) 1999-01-07
DE69837335D1 (de) 2007-04-26
KR20010014381A (ko) 2001-02-26
DE69837335T2 (de) 2007-12-20
US8341381B2 (en) 2012-12-25
US20080052491A1 (en) 2008-02-28
US20130019082A1 (en) 2013-01-17
US9390057B2 (en) 2016-07-12
CA2295109A1 (en) 1999-01-07
IL133691A0 (en) 2001-04-30
EP1002279B1 (en) 2007-03-14
US6023753A (en) 2000-02-08
US20070150698A1 (en) 2007-06-28
US20040168040A1 (en) 2004-08-26
US6338129B1 (en) 2002-01-08
ATE357021T1 (de) 2007-04-15
EP1002279A1 (en) 2000-05-24
EP1742154A2 (en) 2007-01-10
US7197624B2 (en) 2007-03-27
US7631165B2 (en) 2009-12-08
EP1002279A4 (en) 2004-03-31

Similar Documents

Publication Publication Date Title
JP4118963B2 (ja) マニホールドアレイプロセッサ
JP4447770B2 (ja) 相互接続システム及び並列プロセッサとその形成方法
US6041398A (en) Massively parallel multiple-folded clustered processor mesh array
EP0085520B1 (en) An array processor architecture utilizing modular elemental processors
US5682491A (en) Selective processing and routing of results among processors controlled by decoding instructions using mask value derived from instruction tag and processor identifier
JPH0922404A (ja) 同報通信プロセッサ命令を備えたアレイ・プロセッサ通信アーキテクチャ
JPH0230535B2 (ja)
JPH07152722A (ja) Simdマルチプロセッサ用動的再構成可能スイッチ装置
EP0112885A1 (en) CONNECTION LEVEL USED IN A MODULAR DATA FIELD PROCESSOR.
Barry Methods and apparatus for manifold array processing
JP2533282B2 (ja) 並列アレイ・プロセッサ
MXPA99011982A (en) Manifold array processor
MXPA00003003A (es) Metodos y aparatos para el procesamiento de una matriz de distribucion

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20050420

A711 Notification of change in applicant

Free format text: JAPANESE INTERMEDIATE CODE: A711

Effective date: 20051205

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20061121

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20070221

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20070417

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20070712

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20070827

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20070815

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20070921

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20070913

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20080401

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20080424

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110502

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110502

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120502

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130502

Year of fee payment: 5

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees