JP2010039625A - 並列演算装置 - Google Patents

並列演算装置 Download PDF

Info

Publication number
JP2010039625A
JP2010039625A JP2008199789A JP2008199789A JP2010039625A JP 2010039625 A JP2010039625 A JP 2010039625A JP 2008199789 A JP2008199789 A JP 2008199789A JP 2008199789 A JP2008199789 A JP 2008199789A JP 2010039625 A JP2010039625 A JP 2010039625A
Authority
JP
Japan
Prior art keywords
block
unit
blocks
basic
wiring
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.)
Withdrawn
Application number
JP2008199789A
Other languages
English (en)
Inventor
Masami Nakajima
雅美 中島
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.)
Renesas Technology Corp
Original Assignee
Renesas Technology 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 Renesas Technology Corp filed Critical Renesas Technology Corp
Priority to JP2008199789A priority Critical patent/JP2010039625A/ja
Priority to US12/480,321 priority patent/US20100031004A1/en
Publication of JP2010039625A publication Critical patent/JP2010039625A/ja
Withdrawn 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
    • 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)
  • Advance Control (AREA)
  • Multi Processors (AREA)

Abstract

【課題】複数の演算単位ブロックで構成される基本ブロックのサイズを低減するとともに、高速動作を実現する。
【解決手段】行列状に単位ブロック(400)を配置し、隣接単位ブロックを接続する。行列状に配列される単位ブロックに対し、連続ブロック番号を閉ループ曲線を描くように付す。最小分割可能単位ブロックの境界領域において、単位ブロックの入力ポートにセレクタ(450A,450B)を配置し、この境界領域において単位ブロックの出力配線を隣接単位ブロックおよび対向単位ブロックの入力セレクタに接続する。セレクタの接続経路を切換えることにより、基本ブロックのブロックサイズを変更する。
【選択図】図40

Description

この発明は、並列演算装置に関し、特に、複数のプロセッサ(処理装置)が並列に演算処理を実行する並列演算装置の拡張性(スケーラビリティ)を改善するためのプロセッサ(処理装置)の配置に関する。
近年、携帯端末機器の普及に伴い、音声や画像などの大量のデータを高速に処理するデジタル信号処理の重要性が高くなっている。一般的に、デジタル信号処理には、専用の半導体装置としてDSP(デジタル・シグナル・プロセッサ)が用いられる。DSPは、レジスタおよび演算器を備え、1クロックサイクルで1つの演算処理を実行することができる。しかしながら、データは、逐次処理されるため、処理対象のデータ量が非常に多い場合には、専用のDSPを用いても、その処理性能を飛躍的に向上させることは困難である。たとえば、演算対象データが1万組ある場合には、1つ1つのデータに対する演算を1マシンサイクルで実行することができたとしても、最低でも、1万サイクルが演算に必要とされる。すなわち、1つ1つの処理は高速であるものの、データ処理が直列に実行されるため、データ量が大きくなると、それに比例して処理時間が大きくなる。
処理対象のデータ量が多い場合には、並列演算により、その処理性能を向上させることが可能である。すなわち、コアプロセッサを複数個用意し、これらの複数のコアプロセッサを並列に動作させ、データ処理を並行して行なう。この複数のコアプロセッサを用いるマルチコアシステムには、複数のデータに対して同じ演算を行なうSIMD(single instruction stream multiple data stream :単一命令流複数データ流)方式および複数のデータに対し異なる演算を行なうMIMD(multiple instruction stream multiple data stream:複数命令流複数データ流)方式などがある。
SIMD方式の並列演算処理装置の構成の一例が、たとえば、特許文献1(特開2006−127460号公報)に示されている。この特許文献1に示される構成においては、複数の演算処理エレメントが並列に配置され、これらの複数の演算処理エレメントに対応してメモリセルエントリが設けられる。このエントリに演算処理対象のデータが格納され、各エントリにおいてビットシリアル態様で演算処理が実行される。ビットシリアル態様は、多ビットデータを1ビットずつ処理する態様である。
演算処理が、多ビットデータに対しビットごとに実行されるため、1つの演算対象のデータの処理時間が、そのビット幅により規定される。しかしながら、複数のエントリの処理データが、対応の演算処理ユニットにおいて並列して処理されるため、結果として、演算処理速度を改善することができる。たとえば、ビットシリアル態様の演算において、演算処理対象のデータの演算処理ユニットへのロード、演算および演算結果のストアに各1マシンサイクルが割当てられた場合、各エントリの演算においては、データワードのビット幅がNの場合、4・Nマシンサイクルが必要となる(各エントリに演算対象のデータaおよびbがともに格納されていて、データaおよびbのビットを逐次ロードする場合)。エントリがM個設けられている場合、演算処理時間については、4・Nマシンサイクルで、M個のデータについての演算結果を得ることができる。
NビットのデータのM個の組をシーケンシャルに処理する場合には、演算結果を得るためには、Mマシンサイクルが必要とされる。通常、処理データは、32ビットから64ビットである。従ってエントリ数Mが、例えば128と、データビット幅よりも大きい場合には、並列演算により処理時間を短縮することができる。特に、エントリ数Mが大きくなれば、その処理性能の改善は顕著となる。たとえば、エントリ数Mが1024であり、データビット幅Nが8ビットの場合、1エントリの演算処理に必要とされる処理時間は4・8=32マシンサイクルであり、この32マシンサイクルで1024組のデータの処理結果を得ることができる。
また、マルチコアプロセッサの別の構成として、タイルと称されるタイル状のプロセッサコアを行列状に配置し、行列状に配置されるプロセッサコアの間に格子状にデータ通信バスが配置される構成が、非特許文献1(S.Bell, et al.,“TILE64 Processor : A 64-Core SoC with Mesh Interconnet,” ISSCC Dig. Tech. Papers, pp.88-89, Feb.2008)に示される。この非特許文献1に示されるタイルプロセッサ(プロセッサコア)においては、各タイルにプロセッサおよびキャッシュメモリおよび通信経路切換スイッチ(ルータ)が設けられる。
タイルプロセッサは、メッシュ状に配置される配線で相互接続される。隣接するタイルプロセッサ間のみ配線で接続し、メッシュネットワーク的な通信網で情報処理を行なう。このため、回路規模を増大する際に生じる配線遅延の問題を回避し、動作速度の低下を抑制することを図る。また、タイルプロセッサ(コアプロセッサ)間の配線が、隣接タイルプロセッサ間に限定されるため、すべてのプロセッサ間に対して通信用の配線接続経路を配置する必要性をなくし、配線面積の増大を抑制する。
またコアプロセッサをタイルとして行列状に配置する構成が、非特許文献2(S. Vangal, et al.,“An 80-Tile 1.28 TFLOPS Network-on-Chip in 65nm CMOS,” ISSCC Dig. Tech. Papers, pp.98-99, Feb, 2007)にまた示されている。この非特許文献2に示される構成においては、各タイルが、プロセッサ素子とルータとで構成される。配線が、タイルプロセッサに対しメッシュ状に配置され、各タイルプロセッサ内のルータにより、データ/命令の転送が行なわれる。このタイルプロセッサ内のルータにより、内部アクセスおよび反射タイルに対する上下左右(東西南北)の通信バスに対するデータ通信を可能にする。このルータにより、隣接プロセッサ間、のみならず、最短ルートでのタイルプロセッサ間通信および特定のタイルの迂回などのルーティングを可能にする。この非特許文献2に示される構成においても、各タイルプロセッサを、パイプライン的に隣接する単位プロセッサ間で連係させて処理を実行する。隣接するタイルプロセッサを連係させることにより、配線遅延を最小に抑制して、複数パイプラインを並列に走らせることを図る。
特開2006−127460号公報 S.Bell, et al.,"TILE64 Processor : A 64-Core SoC with Mesh Interconnet," ISSCC Dig. Tech. Papers, pp.88-89, Feb.2008 S. Vangal, et al.,"An 80-Tile 1.28 TFLOPS Network-on-Chip in 65nm CMOS," ISSCC Dig. Tech. Papers, pp.98-99, Feb, 2007
処理装置に要求される性能は、処理用途に応じて異なる。通常は、複数種類の仕様の処理装置が準備され、適用されるアプリケーションに対して最適な処理装置が選択されて使用される。
このような複数種類の仕様の要求に対応するために、個々の仕様に応じて処理装置を設計して異なる仕様の処理装置を構築する場合、設計効率が低下し、応じて、歩留まりが低下する。このため、性能が最適化された基本構成をライブラリ(マクロ)として準備し、要求された仕様に応じて、このライブラリ(マクロ)を選択的に使用して要求された仕様を満たすことができるのが、設計効率および歩留まりの観点からは好ましい。
前述の特許文献1に示される構成においては、複数の処理エレメントが並列に配置される基本ブロック(主演算回路)が複数個並列に内部データバスに結合される構成が示される。これらの複数の基本ブロックをループ状に隣接ブロック間配線により相互接続する。この隣接ブロック間配線による基本ブロックの相互接続により、基本ブロック(主演算回路)間のデータ転送の高速化を図り、また、処理システムの拡張を図る。
しかしながら、この特許文献1の構成の場合、基本ブロック(主演算回路)はループ状に隣接ブロック間配線により隣接ブロックの各処理エレメントが相互接続される構成が示されるだけであり、この場合、以下に説明するように基本ブロックの配置の自由度が制限される可能性がある。すなわち、基本ブロックを複数個用いて回路規模を増大させる場合、ループ状のブロック間配線を維持して行列状に稠密に基本ブロックを配置する構成を実現することが困難であり、拡張性の観点からまだ改良の余地があると考えられる。また、逆に、多数の基本ブロックを用いて大規模の処理システムを構築した場合、そのシステム構成およびブロック間配線の配置を維持して、小規模の処理システムに分割するのが困難となる。小規模のシステムへの分割可能な大規模のシステムを構築する場合、想定される小規模システムの配置に応じて基本ブロック間の配線を配置する必要があり、配線の占有面積が増大し、また、システム規模変更のための回路を、各配線に対応して配置する必要があり、面積が増大する。
また、非特許文献1および2に示されるようなタイルプロセッサをプロセッサコアとして用い、このプロセッサコアを行列状に配置してマルチプロセッサシステムを構成する場合、要求される仕様に応じてタイルプロセッサ(コアプロセッサ)が必要個最適配置される。このマルチコアプロセッサを、要求される仕様に応じてその規模を切換える構成、すなわち内部のタイルプロセッサの配置の切換については、非特許文献1および2においては何ら考慮されていない。
これらの非特許文献1および2に示される構成においては、タイルプロセッサ内に設けられるルータにより、マルチプロセッサ内部においては、タイルプロセッサ間の通信経路を任意に設定することができる。しかしながら、このマルチプロセッサ自体を、大規模プロセッサとして利用するための構成および小規模プロセッサとして利用するための構成を内部に配置する場合、隣接タイルプロセッサのルータに接続するメッシュ状配線(ネットワーク)を、要求される規模に応じてそれぞれ配置する必要があり、配線の占有面積が増大する。また、この配線経路を規模に応じて切換えるスイッチ構成が必要となり、また切換用スイッチの占有面積が増大するという問題が生じると考えられる。
それゆえ、この発明の目的は、マルチプロセッサ型並列演算装置の回路規模を、配線占有面積を増大させることなく、また内部配線遅延を増大させることなく容易に変更することのできる並列演算装置を提供することである。
この発明に係る並列演算装置は、第1および第2の方向に整列して配置される単位ブロックを有する基本ブロックで構成される。この基本ブロックは、最小分割可能基本ブロックに分割可能である。第1の方向における最小分割可能ブロック間に各単位ブロックに対応してセレクタを設ける。配線により、第1および第2の方向において隣接して配置される単位ブロックに対して設けられるセレクタを接続する。このセレクタの接続経路をブロックサイズに応じて切換える。
最小分割可能基本ブロックの境界領域においてセレクタを設け、このセレクタによりブロックサイズに応じて配線接続経路を切換える。最小分割可能基本ブロック内においては隣接単位ブロックが配線により結合される。従って、ブロックサイズに係わらず、単位ブロック間の配線は、隣接単位ブロック間のみに配置され、配線のレイアウト面積を低減でき、また配線遅延による信号伝搬遅延を低減することができる。
また、最小分割可能基本ブロックの接続経路を切換えるだけであり、最小分割可能基本ブロックを複数個配置して並列演算装置の規模を拡張することができ、また、逆に並列演算装置の規模を低減することができ、スケーラビリティを改善することができる。
[実施の形態1]
図1は、この発明の実施の形態1に従う並列演算装置の単位ブロックの構成の一例を概略的に示す図である。図1において、単位ブロックは、データを記憶するデータレジスタ回路1Lおよび1Rと、これらのデータレジスタ回路1Lおよび1Rの格納データに対し並列に演算を実行する演算処理部2を含む。データレジスタ回路1Lは、複数のエントリERL0−ERLnを含み、また、データレジスタ回路1Rも、複数のエントリERR0−ERRnを含む。これらのエントリERL0−ERLnおよびERR0−ERRnは、各々nビット幅に配列されるメモリセルを有し、それぞれ演算対象のデータおよび演算結果データを格納する。
演算処理部2は、エントリER0,ERR0−ERLn,ERRnそれぞれに対応して設けられる処理エレメント(プロセッサコア)PE0−PEnを含む。これらの処理エレメント(プロセッサコア)PE0−PEnの各々は、加算演算、減算演算、NOT演算、AND演算、OR演算およびXOR演算を行なう機能を有し、与えられたデータに対し、指定された演算処理を実行する。この演算処理においては、データレジスタ回路1Lおよび1RのエントリERL0−ERLnおよびERR0−ERRnからは、演算対象のデータの組が、ビット単位で処理エレメントPE0−PEnへ転送され、ビット毎の演算結果が、それぞれ指定されたエントリに格納される。
処理エレメントPE0−PEnが並列に演算処理を実行するため、エントリ数を増加させることにより、ビットシリアル態様での演算でも、高速で演算処理を実行することができる。
演算処理部2に対し、ALU間接続切換回路3として、アップALU間接続切換回路3UおよびダウンALU間接続切換回路3Dが設けられる。これらのALU間接続切換回路3Uおよび3Dは、演算処理部2に含まれる処理エレメントPE0−PEnの間のデータ転送経路を切換える。
アップALU間接続切換回路3Uは、処理エレメントPEnから処理エレメントPE0に向かってのデータ転送経路を形成し、ダウンALU間接続切換回路3Dは、処理エレメントPE0から処理エレメントPEnに向かってのデータ転送経路を形成する。これらのALU間接続切換回路3Uおよび3Dは、それぞれ1エントリ、2エントリ、4エントリ、…離れた処理エレメントに対するデータ転送経路を切換えることが可能である。これにより、たとえば処理エレメントPE0で演算処理した結果を、処理エレメントPEnへ転送することができる。
この単位ブロックにおいては、さらに制御回路5およびバスインターフェイス部6が設けられる。制御回路5内には命令メモリが設けられ、この命令メモリに格納される命令に従って、制御回路5が、データレジスタ回路1Lおよび1Rへのデータのロード/ストアおよび演算ビット位置指定を実行し、また、演算処理部2における処理演算の指定を行う。また、この制御回路5により、ALU間接続切換回路3Uおよび3Dの接続経路が設定される。
バスインターフェイス部6は、外部データバス7と内部データバス4の間のデータ転送を実行する。内部データバス4を介してデータレジスタ回路1Lおよび1Rに対するデータの書込/読出が行なわれる。バスインターフェイス部6においては、データの配列を変換する直交変換回路が設けられていても良い。この直交変換回路は、内部データバス4上のビットシリアルかつワードパラレルなデータ列を、ビットパラレルかつワードシリアルなデータ列に変換する。「ビットシリアルかつワードパラレル」は、複数のワードの同一位置のビットが並列に転送/処理される態様を示し、「ビットパラレルかつワードシリアル」は、ワードを構成するデータビットが、ワード単位で並列に転送/処理される態様を示す。
なお、図1において、データレジスタ回路1Lおよび1Rのエントリのビットを選択するための選択回路(行選択回路)が配置されるが、図1においては、図面を簡略化するために示していない。通常、複数のエントリに共通にワード線が配置され、各エントリごとにビット線が配置され、ビット線がエントリの選択ビット(メモリセル)と対応の処理エレメントの間のデータ転送路として利用される。
図2は、図1に示すALU間接続切換回路3の構成を概略的に示す図である。図2において、ALU間接続切換回路3において、アップシフトバス10Uおよびダウンシフトバス10Dが設けられる。これらのシフトバス10Uおよび10Dは、それぞれ、エントリ数の2倍に等しいビット幅、すなわち2・(n+1)ビット幅を有し、それぞれ1対1態様で、処理エレメントPE0−PEnに結合される。
エントリERL0−ERLnそれぞれに対応して、アップシフタおよびダウンシフタの組が設けられる。すなわち、エントリERL0−ERLnに対してアップシフタUSFL0−USFLnが設けられ、シフト制御信号SFTLに従って対応のエントリERL0−ERLnをアップシフトバス10Uを介して、指定されたエントリ数離れた処理エレメントに結合する。このシフト幅は、シフト制御信号SHFTLにより決定される。同様、エントリERL0−ERLnに対応してダウンシフタDSFL1−DSFLnが設けられ、同様、シフト制御信号SHFTLに従って対応のエントリERL0−ERLnをダウンシフトバス10Dを介して、指定されたビット数シフトダウンして対応の処理エレメントに結合する。
エントリERR0−ERRnに対応してもアップシフタUSFR0−USFRnおよびダウンシフタDSFR0−DSFRnがそれぞれ設けられる。アップシフタUSFR0−USFRnは、エントリERR0−ERRnを、シフト制御信号SHFTRに従ってアップシフトバス10Uを介して、設定されたエントリ数シフトアップした位置の処理エレメントに結合する。ダウンシフタDSFR−DSFRnも同様、シフト制御信号SHFTRに従ってエントリERR0−ERRnを、ダウンシフトバス10Dを介して、指定されたエントリ数シフトダウンした位置の処理エレメントに結合する。
アップシフタUSFL0−USFLn、USFR0−USFRnとアップシフトバス10Uが、図1に示すアップALU間接続切換回路3Uに対応し、ダウンシフタDSFL0−DSFLnおよびDSFR0−DSFRnおよびダウンシフトバス10Dが、図1に示すダウンALU間接続切換回路3Dに対応する。
このALU間接続切換回路3を利用することにより、単位ブロック内において、エントリ間のデータ転送を行なうことができる。
図3は、図1に示すアップシフトUSFL0−USFLnおよびダウンシフタDSFL0−DSFLnの構成の一例を概略的に示す図である。図3においては、エントリとして、8エントリERR0−ERR7が設けられる場合のアップシフタおよびダウンシフタの構成を概略的に示す。
アップシフトバス10Uにおいて、アップシフタUSFL0−USFL7に対応して左側アップシフトデータバス10ULが配置される。アップシフタUSFL0−USFL7は、各々、0ビット、1ビット、2ビットおよび4ビットのアップシフト動作を実行する。左側アップシフトデータバス10Lにおいては、図3において、矢印で示すように、各シフトエントリ数に応じて配線が配置される。図3において、●がデータ転送元を示し、矢印がデータ転送先を示す。なお、図3においては、0ビットシフトを行う部分の構成については示していない。シフタの詳細構成については、後に説明するが、各エントリに対応して内部データ出力線が配置され、この内部データ出力線上の対応のエントリのデータが、シフトバスを介して転送される。この内部データ出力線については、図3においては、図面を簡略化するために示していない。
エントリERL0−ERL7それぞれに対して、内部データ転送線15L0−15L7が設けられ、これらの内部データ転送線15L0−15L7は、それぞれ、処理エレメントPE0−PE7に接合される。このデータ転送線15L0−15L7を介して、対応のエントリからのデータを、0ビット、1ビット、2ビットおよび4ビットアップシフトして対応の処理エレメントに転送する。なお、0ビットシフト動作時においては、対応のエントリERLiが内部データ線15Liを介して対応の処理エレメントPEiに結合される。
左側アップシフトデータバス10ULにおいて、1ビットアップシフトバスUL1、2ビットアップシフトバスUL2および4ビットアップシフトバスUL4が設けられる。これらのアップシフトバスUL1、UL2およびUL4と、内部データ転送線15L0−15L7の交差部に対応して、アップシフタUSFL0−USFL7が設けられる。
1ビットアップシフトバスUL1は、エントリERL7−ERL0のデータを、エントリERL6−ERL0およびERL7に対して配置される内部データ転送線に転送する。ここで、シフト動作時においては、1つのブロック内においてサイクリックにデータのシフト動作が行なわれる。
2ビットアップシフトバスUL2においては、エントリERL7−ERL7のデータが、2エントリシフトアップされて、エントリERL5−ERL0に対応して配置される内部データ線にそれぞれ転送され、エントリERL1のデータは、エントリERL7に対応して配置される内部データ線15L7に転送され、エントリERL0のデータは、エントリERL6に対応して配置される内部データ線15L6に転送される。
4ビットアップシフトバスUL4においては、1つ離れたエントリに対するデータの転送が行なわれる。すなわち、エントリERL7−ERL4のデータが、エントリERL3−ERL0にそれぞれ転送される。エントリERL3−ERL0のデータは、それぞれ、エントリERL7−ERL4にそれぞれ転送される。
このアップシフトデータバス10Lにおいては、配線は、連続的に延在して配置され、必要なシフトエントリ数に応じて配線接続が選択的に形成されて、シフト経路が形成される。
ダウンシフトバス10Lにおいても、この左側のエントリERL0−ERL7に対応して、左側ダウンシフトデータバス10DLが設けられる。左側ダウンシフトデータバス10DLにおいても、1エントリダウンシフトバスDL1、2エントリダウンシフトバスDL2および4エントリダウンシフトバスDL4が設けられる。このダウンシフトバスDL1−DL4と内部データ転送線15L0−15L7の交差部に対応して、ダウンシフタDSFL0−DSFL7が設けられる。
このダウンシフタDSFL0−DSFL7においても、データ転送経路において、その転送元を●で示し、転送先を矢印で示す。このダウンシフタDSFL0−DSFL7それぞれにおいても、1エントリシフトエレメント、2エントリシフトエレメントおよび4エントリシフトエレメントが設けられ、それぞれ1エントリ、2エントリおよび4エントリ下方向に離れたエントリへのデータ転送を実行する。このダウンシフトのデータ転送形態は、先のアップシフタUSFL0−USFL7におけるシフト動作と転送方向が逆なだけであり、その詳細説明は行なわない。
1エントリダウンシフトバスDSL1においては、図の下方向に隣接するエントリに対応する内部データ線へのデータ転送が行なわれ、2エントリシフトバスにおいては、図の下方向に1エントリ間をおいたエントリに対応する内部データ線へのデータ転送が行なわれ、4エントリシフトバスDL4においては、図の下方向に3エントリ間をおいたエントリに対応して配置される内部データ線へのデータ転送が行なえる。すなわち、4エントリダウンシフト時、エントリERLiからエントリERL(i+4)へのデータ転送を行なうことができる。ここで、iは0から7であり、(i+4)は、モジュール7の演算で与えられる。このダウンシフト時においても、データのシフト動作はサイクリックに行われる。
この処理エレメントPE0−PE7に対応して、エントリERR0−ERR7が設けられ、このエントリERR0−ERR7に対して設けられるアップシフタESFR0−ESFR7およびダウンシフタDSFR0−DSFR7についても、同様のアップシフトおよびダウンシフト配線が配置される。
図3においては、この右側のエントリERR0−ERR7に対して設けられるアップシフタUSFR0−USFR7およびダウンシフタDSFR0−DSFR7のシフト配線の構成については示していない。
図4は、図3に示すアップシフタUSFL0−USFL7およびダウンシフタDSFL0−DSFL7の構成をより具体的に示す図である。図4においては、また、エントリERL0−ERL7の構成も合わせて示す。
エントリERL0−ERL7は、それぞれ、メモリセル列MCL0−MCL7と、センスアンプ/ライトドライバSA/WD0−SA/WD7を有する。メモリセル列MCL0−MCL7は、エントリ延在方向に整列して配置される複数ビットのメモリセルを有する。メモリセルは、一例として、SRAM(スタティック・ランダム・アクセス・メモリ)セルで構成される。
センスアンプ/ライトドライバSA/WD0−SA/WD7は、各々、データ読出用のセンスアンプおよびデータ書込用のライトドライバを含み、対応のメモリセル列MCL0−MCL7の選択メモリセルに対するデータの読出および書込を、それぞれセンスアンプおよびライトドライバにより実行する。
このセンスアンプ/ライトドライバSA/WD0−SA/WD7それぞれに対応して、内部データ転送線15L0−15Lnが置される。内部データ転送線15L0−15L7は、それぞれ、第1のデータ転送線20L0−20L7と第2のデータ転送線21L0−21L7との組を有する。第1のデータ転送線20L0−20L7は、それぞれ、スイッチング素子SW0−SW7により対応の第2のデータ転送線21L0−21L7に選択的に結合される。これらのスイッチング素子SW0−SW7は、それぞれシフト指示信号/SFTLの活性化時、非導通状態とされる。シフト指示信号/SFTLは、シフト動作時、Lレベルの活性状態に設定される。スイッチング素子SW0−SW7により0ビットシフト動作が実現される。
これらの第1のデータ転送線20L0−20L7は、また、後に説明するように、処理エレメントPE0−PE7の出力部に結合される。
アップシフタUSFL0−USFL7は、各々、1エントリシフトドライバ22a、2エントリシフトドライバ22b、および4エントリシフトドライバ22cを含む。これらのシフトドライバ22a、22bおよび22cは、それぞれ、シフト指示信号USL1−、USL2、およびUSL4に従って選択的に活性化され、対応の第1のデータ転送線20L0−20L7上のデータを、対応のエントリの第2のデータ転送線21L0−21L7に結合する。図4においては、ドライバ出力線の横にシフトエントリ数を示す。
ダウンシフタDSFL0−DSFL7は、各々、1エントリダウンシフトドライバ24a、2エントリダウンシフトドライバ24bおよび4エントリダウンシフトドライバ24cを含む。これらのダウンシフトドライバ24a、24bおよび24cは、それぞれダウンシフト指示信号DSL1、DSL2およびDSL4に従って選択的に活性化され、対応の第1のデータ転送線20L0−20L7を、指定されたエントリに対応して配置される第2のデータ転送線21L0−21L7に結合する。
この図4においては、左側のアップシフトデータバス10ULおよび左側ダウンシフトデータバス10DLに対する構成を代表的に示す。ここで、右側のアップシフタUSR0−USR7およびダウンシフタDSR0−DSR7においても、以下に説明するように、同様の構成が設けられる。
図5は、右側エントリERR0−ERR7に対して設けられるアップシフタUSFR0−USFR7およびダウンシフタDSFL0−DSFL7の構成の一例を概略的に示す図である。
エントリERR0−ERR7も、それぞれ、メモリセル列MCR0−MCR7とセンスアンプ/ライトドライバSA/WDR0−SA/WDR7とを含む。メモリセル列MCR0−MCR7においては、図4に示すメモリセル列MCL0−MCL7と同様に、メモリセルが整列して配置される。センスアンプ/ライトドライバSA/WDR0−SA/WDR7は、対応のメモリセル列MCR0−MCR7の選択メモリセルに対するデータの読出/書込を行なう。
センスアンプ/ライトドライバSA/WDR0−SA/WDR7それぞれに対応して第1のデータ転送線20R0−20R7が設けられ、また、第2の内部データ転送線21R0−21R7が、第1の内部データ転送線20R0−20R7と並行して配置される。第2の内部データ転送線21RO−21R7は、スイッチング素子SW0r−SW7rを介して第1の内部データ転送線20R0−20R7に選択的に結合される。これらのスイッチング素子SW0r−SW7rは、それぞれシフト指示信号/SFTRの活性化時、非導通状態となり、非活性化時、導通して0ビットシフト動作を実現する。データ転送線20R0−20R7および21R0−21R7の組が、右側の内部データ転送線15R0−15R7に対応する(図5には、参照番号は示さず)。
シフトデータバスは、アップシフトデータバス10URおよびダウンシフトデータバス10RDを含む。アップシフトデータバス10URは、1エントリアップシフトバスUSR1、2エントリアップシフトバスUSR2および4エントリアップシフトデータバスUSR4を含む。ダウンシフトデータバス10DRは、1エントリダウンシフトバスDSR1、2エントリダウンシフトバスDSR2および4エントリダウンシフトデータバスDSR4を含む。これらのシフトバスを介して、指定されたエントリ数のシフト動作が行われる。
アップシフタUSFR0−USFR7は、それぞれ、第1のデータ転送線20R0−20R7に対して設けられ、各々、1エントリアップシフトドライバ22ar、2エントリアップシフトドライバ22brおよび4エントリアップシフトドライバ22crを含む。1エントリアップシフトドライバ22arは、アップシフト指示信号USR0の活性化時活性化され、隣接エントリに対するデータの転送を行なう。2エントリアップシフトドライバ22brは、2エントリアップシフト指示信号USR2の活性化時活性化され、対応のエントリの第1のデータ転送線20R0−20R7上のデータを、2エントリ離れたエントリ(エントリERR2に対するエントリERR0)へ転送する。4エントリアップシフトドライバ22crは、4エントリアップシフト指示信号USR4の活性化時活性化され、対応の第1のデータ転送線20R0−20R7を、4エントリ離れた位置のエントリの第2のデータ転送線21R0−21R7に結合する。これにより、第1のデータ転送線20R0−20R7が、シフト動作時、第2のデータ転送線21R0−21R7に結合される。
ダウンシフタDSFR0−DSFR7は、各々、1エントリダウンシフトドライバ24ar、2エントリダウンシフトドライバ24brおよび4エントリダウンシフトドライバ24crを含む。1エントリダウンシフトドライバ24arは、1エントリダウンシフト指示信号DSR1の活性化時活性化され、対応の第1のデータ転送線20R0を、隣接エントリの第2のデータ転送線21R1−21R7、および21R0に結合する。2エントリダウンシフトドライバ24brは、2エントリダウンシフト指示信号DSR2の活性化時に活性化され、対応の第1のデータ転送線20Riを、2エントリ離れた位置の第2のデータ転送線21R(i+2)に結合する。
4エントリダウンシフトドライバ24crは、4エントリダウンシフト指示信号SR4の活性化時活性化され、対応の第1のデータ転送線20Riを、4エントリ離れた位置の第2のデータ転送線15R(i+4)に結合する。ここで、iは、0から7であり、(i+2)および(i+4)は、モジュール7の演算を示す。
処理エレメントPE0−PE7は、第1のデータ転送線20L0,20R0−20L7,20R7と第2のデータ転送線21L0,21R0−21L7,21R7にそれぞれ結合され、指定された演算処理を実行する。
これらの図4および図5に示すように、シフト動作が行なわれない場合には、処理エレメントPE0−PE7においては、スイッチング素子SW0−SW7およびSW0r−SW7rにより、対応の左側エントリERL0−ERL7と対応の右側エントリERR0−ERR7の選択メモリセルのデータについて演算処理を実行し、その演算結果を、対応のエントリの指定されたビット位置に格納する。
図6は、処理エレメントPEの構成の一例を示す図である。図6においては、処理エレメントPEiの構成を代表的に示す。処理エレメントPE0−PE7(PEn)は、同一の構成を有する。
図6において、処理エレメントPEiは、2つのセレクタ30および32と、セレクタ30の出力データを格納するレジスタ回路34と、レジスタ回路34の格納データとセレクタ32の出力データに対して所定の演算を行なう演算器36を含む。
セレクタ30は、選択信号SEL1に従って第2のデータ転送線21Liおよび21Ri上のデータの一方を選択してレジスタ回路34に転送する。セレクタ32は、選択信号SEL2に従って第2のデータ転送線21Liおよび21Ri上のデータの一方を選択して演算器36へ与える。演算器36は、たとえば全加算器で構成され、加減算を実行することができる。この演算器36において、また、全加算機能のみならず、他の論理演算機能(NOT演算、AND演算、およびOR演算)が、全加算器の一部の構成を利用して実現するように構成されてもよい。
図6においては、演算器36の出力データは、一例として、右および左の第1のデータ転送線20Liおよび20Ri両者に転送されるように示す。しかしながら、この演算器36の出力データは、第2のデータ転送線21Liおよび21Riに、スイッチ回路を介して選択的に転送されてもよい。この構成の場合においても、図4および図5に示すスイッチング素子SW0−SW7およびSW0r−SW7rにより、それぞれ指定されたエントリのメモリセルに演算結果データを格納することができる。また、演算結果を、左右のいずれのデータレジスタ回路に格納するかは、処理内容または用途に応じて適宜定められれば良い。左右のデータレジスタ回路の指定されたデータレジスタ回路においてメモリセル選択が行われて、演算結果のストアが行われる。
図7は、この図6に示す処理エレメントPEの演算動作態様を概略的に示す図である。処理エレメントPEiは、エントリERLaおよびERRbの格納データに所定の演算処理を施して、その処理結果を、エントリERRbに格納する。エントリERLaおよびERRbは、メモリセル列を含み、複数ビットのデータ格納領域を有する。エントリERLaのポインタpaが指定するビットaとエントリERRbのポインタpbが指定するビットbとが処理エレメントPEiへ転送される(ロードされる)。処理エレメントPEiにおいて所定の演算処理が実行され、その処理結果cが、エントリERRbのポインタpcの指定する位置に格納される(ストアされる)。この処理態様により、データが、ビットシリアル態様で演算処理される。この処理動作時、複数の処理エレメントPEにおいて並列に演算が実行される。
この図1から図7に示す並列演算装置を用いて基本ブロックをライブラリとして形成する。このライブラリを用いて、並列演算機能を拡張/縮小する。
図8は、この発明の実施の形態1に従う並列演算装置の最小分割可能サイズの基本ブロック40の構成の一例を概略的に示す図である。図8において、基本ブロック40は、4つの単位ブロック♯0−♯3で構成される。大規模基本ブロック構成時、この基本ブロック40が最小分割可能基本ブロックであり、実現可能最小ブロックサイズの基本ブロックである。
これらの単位ブロック♯0−♯3は、それぞれ、図1に示す構成を有するが、図8においては、単位ブロックの配線接続に関連するアップALU間接続切換回路、ダウンALU間接続切換回路および演算処理部の構成を代表的に示す。すなわち、単位ブロック♯0は、アップALU間接続切換回路3U0、ダウンALU間接続切換回路3D0および演算処理部2.0を有し、単位ブロック♯1は、アップALU間接続切換回路3U1、ダウンALU間接続切換回路3D1および演算処理部2.1を有する。単位ブロック♯2は、アップALU間接続切換回路3U2、ダウンALU間接続切換回路3D2および演算処理部2.2を有し、単位ブロック♯3は、アップALU間接続切換回路3U3、ダウンALU間接続切換回路3D3および演算処理部2.3を有する。
単位ブロック♯0のアップALU間接続切換回路3U0の下流部は、配線(バス)45を介して単位ブロック♯1のダウンALU間接続切換回路3D1の上流部に結合される。ここで、上流部および下流部は、接続切換回路におけるシフト動作時のシフト始端側および終端側を示す。
同様、単位ブロック♯0のダウンALU間接続切換回路3D0上流部は、配線(バス)46を介して単位ブロック♯1のアップALU間接続切換回路3U1の下流部に結合される。単位ブロック♯1のアップALU間接族切換回路3U1の上流部は、配線50を介して単位ブロック♯2のアップALU間接続切換回路3U2の下流部に結合される。また、単位ブロック♯1のダウンALU間接続切換回路3D1の下流部は、配線(バス)51を介して単位ブロック♯2のダウンALU間接続切換回路3D2の上流部に結合される。
単位ブロック♯2のアップALU間接続切換回路3U2の上流部は、配線(バス)47を介して単位ブロック♯3のダウンALU間接続切換回路3D3の下流部に結合され、単位ブロック♯2のダウンALU間接続切換回路3D2の下流部は、単位ブロック♯3のアップALU間接続切換回路3U3の上流部に配線(バス)48を介して結合される。
単位ブロック♯0において、アップALU間接続切換回路3U0の上流部に対しセレクタ60が設けられ、単位ブロック♯3のダウンALU間接続切換回路3D3の上流部に対しセレクタ62が設けられる。基本ブロックサイズの拡張時、これらのセレクタ60および62は、最小分割可能基本ブロック40全体のデータ入力部に対して配置される。単位ブロック♯0および♯3の、一方にアップALU間接族切換回路3U0に対してセレクタが配置されると、単位ブロック♯3のダウンALU間切換回路3U3に対してセレクタが配置される。このセレクタの配置の規則性については、後に詳細に説明する。
セレクタ60は、3つの入力ポートUP0、UP1およびUP2を含み、単位ブロック♯3のアップALU間接続切換回路3U3の下流部が配線54を介してセレクタ60のポートUP0に結合される。ポートUP2およびUP1は、基本ブロック40拡張時の隣接単位ブロックの出力配線と結合するために設けられる。このセレクタ60に出力配線52が、単位ブロック♯0のアップALU間接続切換回路3U0の下流部に結合される。
セレクタ62は、ポートDP0およびDP1を含み、ポートDP0が配線53を介して単位ブロック♯0のダウンALU間接続切換回路3D0の下流部に結合される。この配線53は、また、分岐配線57および59に結合される。分岐配線57および59は、拡張時に、隣接または対向して配置される単位ブロックの入力用のセレクタに結合される。ポートDP1は、図示しない隣接単位ブロックの出力配線に結合される。セレクタ62の出力部が、配線55を介して単位ブロック♯3のダウンALU間接続切換回路3D3の上流部に結合される。
基本ブロック40においては、配線45、46、47、48、42、53、54および55により、これらのアップALU間接続切換回路3U0−3U3およびダウンALU間接続切換回路3D0−3D3においてループ状に接続経路を形成することができ、また、この基本ブロック40と同一構成の基本ブロックとの接続をデータ転送方向を維持して形成することができる。これにより、単位ブロック♯0−♯3各々を超えて、遠方の処理エレメントに対しデータ転送を行なうことができる。また、セレクタ60および62の接続経路を切換えることにより、並列演算装置の基本ブロックのサイズを変更することができる。
なお、この図8に示す基本ブロック40において、単位ブロック♯0−♯3のバスインターフェイスおよび内部データバスの配置は示していない。基本ブロック40に対して配置されるグローバルデータバスの配置に応じてこれらのバスインターフェイス部の内部バスの接続態様が適宜決定されればよい。したがって、グローバルデータバスに対し並列に、これらの単位ブロック♯0−♯3のバスインターフェイスが並列に結合されてもよく、また、処理エレメントと同様、バスインターフェイスおよび内部データバスを介して、ループ状に内部データバスにバスインターフェイス部が交互に結合されてもよい。
図9は、図8に示す基本ブロック40の配線45−48および52−55の配置の一例を概略的に示す図である。図9においては、単位ブロック♯0−♯3の演算処理部2.0−2.3が、各々、8個の処理エレメントPE0−PE7を有する場合の配線の配置構成を一例として示す。また、配線45−48および50−55としては、図面の煩雑化を避けるため、4エントリシフトする部分の配線接続を代表的に示す。
図9において、配線45は、単位ブロック♯0のアップALU間接続切換回路3U0における処理エレメントPE0−PE3に対するアップシフト転送線ULを、単位ブロック♯1のダウンALU間接続切換回路3D1の処理エレメントPE0−PE3に対して設けられるダウンシフト転送線DLに接合する。このアップシフト転送線ULが、処理エレメントPEに対して設けられる第1のデータ転送線(20Rおよび20L)および第2のデータ転送線(21Lおよび21R)、および対応して配置されるアップシフトドライバを示す。●印でこのアップシフトドライバを示す。転送先は、配線の矢印で示す。
配線46は、単位ブロック♯1の処理エレメントPE0−PE3に対して設けられるアップシフト転送線ULを、単位ブロック♯0のダウンALU間接続切換回路3D0の処理エレメントPE0−PE3に対して設けられるダウンシフト転送線DLに結合する。ここで、ダウンシフト転送線DLは、アップシフト転送線ULと同様、第2の内部データ転送線21Lおよび21R、および第1のデータ転送線20Lおよび20R、および対応して配置されるダウンシフトドライバを含む。
配線48は、単位ブロック♯2の処理エレメントPE4−PE7に対して設けられるダウンシフト線DLを、単位ブロック♯3のアップALU間接続切換回路3U3の処理エレメントPE4−PE7に対して設けられるアップシフト線ULに結合する。配線49は、単位ブロック♯3のダウンALU間接続切換回路3D3の処理エレメントPE4−PE7に対して設けられるダウンシフト転送線DLを、単位ブロック♯2のアップALU間接続切換回路3U2の処理エレメントPE4−PE7に対して設けられるアップシフト転送ULに結合する。配線47は、この単位ブロック♯3のダウンALU間接続切換回路3D3の処理エレメントPE4−PE7に対して設けられるダウンシフト転送線DLを、単位ブロック♯2のアップALU間接続切換回路3U2の処理エレメントPE4−PE7に対して設けられるアップシフト転送線ULに結合する。
配線50は、単位ブロック♯2のアップALU間接続切換回路3U2の処理エレメントPE0−PE3に対して設けられるアップシフト転送線ULを単位ブロック♯1の処理エレメントPE4−PE7に対して設けられるアップシフト転送線ULにそれぞれ結合する。配線51は、この単位ブロック♯1のダウンALU間接続切換回路3D1の処理エレメントPE4−PE7に対して設けられるダウンシフト転送線DLを、単位ブロック♯2のダウンALU間接続切換回路3D2の処理エレメントPE0−PE3に対して設けられるダウンシフト転送線DLに結合する。
配線52は、セレクタ60により選択された配線を、単位ブロック♯0のアップALU間接続切換回路3U0の処理エレメントPE4−PE7に対して設けられるアップシフト転送線ULに結合する。配線53は、単位ブロック♯0のダウンALU間接続切換回路3D0の処理エレメントPE4−PE7に対して設けられるダウンシフト転送線DLをセレクタ62に結合する。
配線54は、単位ブロック♯3の処理エレメントPE0−PE3に対して設けられるアップシフト転送線ULを、セレクタ60のポート(UP0)に結合する。配線55は、セレクタ62の選択配線を、単位ブロック♯3のダウンALU間接続切換回路3D3の処理エレメントのPE0−PE3に対して設けられるダウンシフト転送線DLに結合する。
これらの配線45−48および50−55においては、それぞれシフトエントリ数に応じて配線が配置され、そのビット幅が設定される。
このリング状にシフト経路を拡張する場合、単に、1つの単位ブロック内においてサイクリックにシフトアップ/ダウンする場合の接続経路を、内部に折り返す代わりに、単位ブロック外部へ拡張する。これは、単に配線の接続切換(マスク配線による経路設定)により実現される。
図10は、図8に示す基本ブロック40を用いて8個の単位ブロックで基本ブロックを構成した場合の構成の一例を示す図である。図10において、基本ブロック40に対し、180度の回転操作を施し、第2の基本ブロック40Aを形成する。この操作により、基本ブロック40における単位ブロック♯0−♯3が180度回転操作されるため、第2の基本ブロック40Aにおいて、単位ブロック♯0−♯3が、それぞれ新たな単位ブロック♯4−♯7に対応する。単位ブロックの対応関係を図10においては、単位ブロック♯4から♯7に対してカッコ内に対応の単位ブロックを示す。
単位ブロック♯0においてセレクタ60が設けられ、単位ブロック♯3においてセレクタ62が設けられる。単位ブロック♯7においてセレクタ62が設けられ、単位ブロック♯4においてセレクタ60が設けられる。
単位ブロック♯0のセレクタ60のポート1(UP1)と、単位ブロック♯7のALU間接続切換回路3U3の下流の配線54を結合する。単位ブロック♯0のALU間接続切換回路3D0の下流の配線53から分岐した配線59を、単位ブロック♯7のセレクタ62のポート1(DP1)に結合する。単位ブロック♯3のセレクタ62のポート1(DP1)に、単位ブロック♯4のALU間接続切換回路3D0の下流の配線53から分岐した配線59を結合する。この単位ブロック♯3のALU間接続切換回路3U3の上流部の配線54を、単位ブロック♯4のセレクタ60のポート1(UP1)に結合する。
基本ブロック40の回転操作により、基本ブロック40Aが形成されており、単位ブロック♯4−♯7におけるALU間接続切換回路におけるシフト方向は、ちょうど、基本ブロック40と基本ブロック40Aとにおいて反対方向となる。単位ブロック♯0および♯4に含まれるセレクタ60のポート1(UP1)を選択する状態に設定し、単位ブロック♯3および♯7に含まれるセレクタ62を、ポート1(DP1)を選択する状態に設定する。セレクタ62および60の接続経路の設定は、基本ブロックに含まれる単位ブロック数に応じて設定される(たとえばマスク配線により)。
この図10に示す8単位ブロックで構成される基本ブロック40および40Aにおいて、セレクタ60および62を、単位ブロックのデータ入力部に配置し、単位ブロックからのデータ出力部を配線を介して隣接単位ブロックおよび対向して配置される単位ブロックのセレクタの入力に結合する。対向して配置される単位ブロックにおいてはセレクタは、一方の単位ブロックにおいてはアップALU間接族切換回路の入力部(上流部)に対して配置し、他方の単位ブロックにおいてはダウンALU間接族切換回路のデータ入力部(上流部)に対してセレクタを配置する。このセレクタ60および62の配置により、4単位ブロック構成および8単位ブロック構成において、単に接続経路を切換えるだけで、並列演算装置を構成する基本ブロックの単位ブロック数を変更することができる。
図11は、図10に示す配置のデータ転送経路を概略的に示す図である。この図11に示すように、単位ブロック♯0のセレクタ60は、単位ブロック♯7のALU間接続切換回路3U3の下流側からの出力データを選択して、単位ブロック♯0のALU間接続切換回路3U0の上流部に結合する。単位ブロック♯3のセレクタ62は、単位ブロック♯4のダウンALU間接続切換回路3D0の出力データを選択して、単位ブロック♯3のダウンALU間接続切換回路3D3の上流部に伝達する。
単位ブロック♯7のセレクタ62が、単位ブロック♯0のALU間接続切換回路3D0の出力データを選択して、単位ブロック♯7のダウンALU間接続切換回路3D3の上流部に伝達する。単位ブロック♯4のセレクタ60は、単位ブロック♯3のアップALU間接続切換回路3U3の下流側からの出力データを選択して、単位ブロック♯4のアップALU間接続切換回路3U1の上流部に伝達する。この接続経路により、アップシフトおよびダウンシフト両者についてトーラス状にデータ伝達経路が形成される。
図11に示すように、1つの最小基本ブロックの連続番号の先頭番号および最終番号が、増設基本ブロックの連続番号の最終番号および先頭番号にそれぞれ隣接するように基本ブロックを配置する。これにより、大規模基本ブロックにおいて、隣接単位ブロック間でのみデータ転送を行なう配線が必要とされるだけであり、配線レイアウト面積が低減され、また、配線距離が短く、信号データの伝搬遅延を低減することができる。また、基本ブロックのサイズを変更するためには、セレクタの接続経路を変更するだけであり、セレクタの経路設定は、基本ブロックのサイズに応じて、例えばマスク配線により、セレクタの経路設定信号の論理レベルを設定するだけであり、経路変更の制御回路が不要となる。
図12は、図8に示す最小分割可能基本ブロック40を用いて16個の単位ブロックで基本ブロックを構成した場合の構成を概略的に示す図である。この図12においては、単位ブロック♯0−♯7を1つの出発基本ブロックとして、この出発基本ブロックに対し180度回転操作を施し、新たな基本ブロック40Bおよび40Cを形成する。新たな基本ブロック40Bおよび40Cは、元の出発基本ブロックの基本ブロック40および40Aの回転操作後のブロックに対応する。
この回転操作の配置により、16個の単位ブロック♯0−♯15を形成する。この場合、出発基本ブロックの単位ブロックの先頭ブロック番号♯0および最終ブロック番号♯7に隣接して、新たな増設基本ブロックの最終ブロック番号♯15および先頭ブロック番号♯8が隣接するように配置される。最小分割可能基本ブロックの単位ブロックに対して連続番号が付される。
この配置において、基本ブロック40Aの単位ブロック♯7のALU間接続切換回路3U3の下流側の配線54が、追加単位ブロック♯8のセレクタ60のポート2(DP2)に結合される。この単位ブロック♯8のALU間接続切換回路3D0の下流の配線53が、単位ブロック♯7のセレクタ62のポート1(DP1)にまた結合される。この単位ブロック♯8のALU間接続切換回路3D0の下流の配線53は、また、単位ブロック♯0のセレクタ60のポート1(DP1)に結合される。
単位ブロック♯0のセレクタ60のポート2(DP2)に接続される部分は、単位ブロック♯15のALU間接続切換回路3U3の下流の配線54に結合される。この単位ブロック♯0−♯7の他の接続態様は、先の図10に示す接続態様と同じであり、また単位ブロック♯8−♯15の残りの配線も、この単位ブロック♯0−♯7の配線接続態様と同じ(対称的)である。図10に示す配線と対応する配線に対しては同一参照番号を付して、その詳細説明は、省略する。
回転操作を行っているため、図12に示す構成において、単位ブロック♯4から♯11においては、アップシフトALU間接続切換回路3Uのシフト方向が、図の下方向となりダウンALU間接続切換回路3Dのシフト方向が図の上方向となる。セレクタ60および62の配置の規則性は、先の図10に示す構成と同じであり、最小分割可能基本ブロック(4単位ブロックで構成される基本ブロック)においてデータ入力部にセレクタが設けられ、データ出力配線を隣接および対向する単位ブロックのセレクタに結合する。また、隣接および対向する単位ブロック間においては、異なるセレクタ(60,62)が配置される。
図13は、図12に示す演算ブロック(並列演算装置)の16単位ブロック構成時のデータ伝搬経路を概略的に示す図である。図13において、単位ブロック♯4のセレクタ60は、単位ブロック♯3のALU間接続切換回路3U3の出力データを選択して、単位ブロック♯4のALU間接続切換回路3U1の上流部に転送する。単位ブロック♯7のセレクタ62は、単位ブロック♯8のALU間接続切換回路3D0の出力データを配線53を介して受けて、単位ブロック♯7のALU間接続切換回路3D3の上流部に転送する。
単位ブロック♯8のセレクタ60は、単位ブロック♯7のALU間接続切換回路3U3の出力データを選択して、この単位ブロック♯8のALU間接続切換回路3U0の上流部に伝達する。単位ブロック♯11のセレクタ62は、単位ブロック♯12のALU間接続切換回路3E0の出力データを選択して、この単位ブロック♯11のALU間接続切換回路3D3の上流部に転送する。
単位ブロック♯12のセレクタ60は、単位ブロック♯11のALU間接続切換回路3U3の出力配線54を単位ブロック♯12のALU間接続切換回路3U0の上流部に結合する。単位ブロック♯15のセレクタ62は、単位ブロック♯0のALU間接続切換回路3D0の出力データを配線53および57を介して受けて、この単位ブロック♯15のALU間接続切換回路3D3の上流部に転送する。
この図13に示す構成において、16個の単位ブロック♯0−♯15において連続的に付されたブロック番号により、閉ループデータ転送経路が形成される。このセレクタ60および62の接続経路を、基本クロックのサイズに応じて設定することにより、各々8単位ブロックの2つの基本ブロック(基本ブロック40および40Aで構成される基本ブロックおよび基本ブロック40Cおよび40Dで構成される基本ブロック)、各々4単位ブロックの4個の基本ブロック(基本ブロック40、40A、40B、40C、および40D)に分割することができる。これらの単位ブロック♯0−♯15において、隣接単位ブロック間においてのみデータの転送経路が形成されており、配線遅延を伴うことなく、高速でデータの転送を行なうことができる。
また、単位ブロックを超えてデータの転送を行なうことができ、任意の数のエントリ間でのデータ転送をも実現することができる。
図14は、この発明の実施の形態1に従う並列演算装置のブロックサイズ拡張・縮小可能構成を実現する動作を概略的に示す図である。図14においては、4つの出発基本ブロックFBa−FBdが設けられる。出発基本ブロックFBaは、単位ブロック♯0−♯Mを有する。この出発基本ブロックFBaにおいては、単位ブロック♯0−♯Mにおいてループ状にデータ転送経路を形成することができるようにセレクタが配置されている(最小分割可能基本ブロックの境界領域において単位ブロックの入力部にセレクタ60および62が交互に配置される(隣接単位ブロックおよび対向単位ブロックにおいて異なるセレクタ60および62が配置される))。
出発基本ブロックFBaを用いて回転操作により、出発基本ブロックFBbが形成される。この場合、出発基本ブロックFBaの単位ブロックの先頭ブロック番号♯0および最終ブロック番号♯Mにそれぞれ隣接するように、出発基本ブロックFBbの最終ブロック番号♯M+K(=♯M+M+1)および先頭ブロック番号♯M+1を配置する。出発基本ブロックFBbの単位ブロック♯M+1および♯M+Kは、それぞれ、出発基本ブロックFBaの単位ブロック♯0および♯Mに対応する。
出発基本ブロックFBaにおいて、各単位ブロックの接続が隣接単位ブロック間においてのみ接続されるようにかつループを形成するようにセレクタを配置すれば、この基本ブロックFBaおよびFBbの境界領域において配線経路をセレクタを用いて変更することにより、出発基本ブロックFBaおよびFBbにおける接続経路を、閉ループを描くように形成することができる。
出発基本ブロックFBcおよびFBdは、それぞれ、出発基本ブロックFBaおよびFBbを用いて形成される。この場合、出発基本ブロックFBcおよびFBdは、出発基本ブロックFBaおよびFBbを回転操作を行なって配置したものとなる。この回転操作により、出発基本ブロックFBcの先頭単位ブロック♯M+K+1が、出発基本ブロックFBbの最終単位ブロック♯M+Kに隣接して配置される。この場合、基本ブロックFBcにおける単位ブロック♯M+K+1および♯M+Jは、それぞれ、単位ブロック♯0および♯Mの回転対称な配置を有する。
出発基本ブロックFBdにおいては、出発基本ブロックFBaの先頭単位ブロック♯0に隣接するように、その最終番号の単位ブロック♯M+L(=♯M+J+M+1)が配置される。出発基本ブロックFBdにおける単位ブロック♯M+J+1および♯M+1は、それぞれ単位ブロック♯Mおよび単位ブロック♯0に対応する。したがって、この場合においても、基本ブロックFBaおよびFBbにおいて、ループ上に隣接単位ブロックを接続するように配線が配置されるため、基本ブロックFBcおよびFBdにおいても、連続的に、ループを描くように、隣接単位ブロック間を接続するように配線を配置することができる。
これらの基本ブロックFBa−FBdにおいて、Y方向の境界領域において、データ転送経路を選択するセレクタ60および62を交互配置する。従って、基本ブロックFBcおびFBbにおいて、セレクタを用いて、単位ブロック♯M+K+1および♯M+Kにおいてそのデータ/信号伝搬経路を接続し、また、基本クロックFBdの単位ブロック♯M+Lおよび基本ブロックFBaの単位ブロック♯0のデータ転送経路を接続することができる。この接続経路により、基本ブロックFBa−FBdにおいて全体として、隣接単位ブロック間を接続するようにトーラス状の閉じた配線経路を形成することができる。
この図14に示す拡張順序により、大規模サイズの基本ブロックを最小分割可能基本ブロックにまで、配線経路を切換えるだけで、ブロックサイズを変更することができる。
図15は、この発明の実施の形態1における並列演算装置の単位ブロックの配置および配線接続の構成の一例を示す図である。図15においては、並列演算装置において、4つの単位ブロック♯0−♯3で構成される基本ブロックを16個配置する場合が一例として示される。ブロックサイズ拡張時、4単位ブロックで構成される最小分割可能基本ブロックの配置を基礎として、前述のように回転操作を行なって出発基本ブロックを構成して順次配置する。
X方向に整列する単位ブロック列においては、単位ブロック♯1および単位ブロック♯2が交互に整列して配置される単位ブロック列と、単位ブロック♯0および♯3が交互に配置される単位ブロック列がY方向に沿って交互に配置される。単位ブロック列♯1および♯2は、常時接続され、単位ブロック♯0および♯3において、配線接続が拡張のために可能である。
Y方向における最小分割可能単位ブロックの境界領域RAおよびRBに、X方向に沿って各単位ブロック♯0および♯3に対してセレクタ(60,62)が交互に配置される。Y方向における領域RAおよびRBの間の単位ブロック間領域においてはセレクタは、配置されない。
この図15に示す単位ブロックの配置において、単位ブロックA0−A3およびA4−A7により、最小サイズの4単位ブロック♯0−♯3で構成される基本ブロックが配置される。この単位ブロックA0−A7において、図示しないセレクタを用いて単位ブロックA3およびA4を結合し、また、単位ブロックA0およびA7を接続することにより、8個の単位ブロックB0−B7で構成される基本ブロックを実現することができる。
この基本ブロックB0−B7を回転操作を行なって配置し、セレクタを用いて対向および隣接する単位ブロック♯0および♯3のデータ転送経路を接続することにより、16個の単位ブロックC0−C15で構成される基本ブロックを実現することができる。図15において、括弧内において、各拡大基本ブロックとその前の出発基本ブロックの対応の単位ブロックを示す。
これは逆にいえば、16個の単位ブロックC0−C15で構成される基本ブロックを、データ転送路の接続を切換えることにより、8個の単位ブロックで構成される基本ブロックを実現することができ、また、8個の単位ブロックで構成される基本ブロックを、4個の単位ブロックで構成される基本ブロックに分割することができることを示す。単位ブロックの番号は、出発単位ブロックの位置は任意であるため、4単位ブロック構成、8単位ブロック構成および16ブロック構成のいずれにおいても各基本ブロックにおいてブロック番号が連続するようにブロック番号を配置する。
この場合においても、各出発基本ブロックの一連の連続ブロック番号の先頭ブロック番号および最終ブロック番号が、それぞれ追加の基本ブロックの最終ブロック番号および先頭ブロック番号に隣接するように配置することにより、基本ブロックの拡張および縮小を容易に実現することができる。
この16個の基本ブロックC0−C15に回転操作を施してさらに配置することにより、32個の単位ブロックD0−D31で構成される基本ブロックを実現することができる。この単位ブロックD0−D31においては、次の小ブロックサイズの基本ブロック、すなわち16単位ブロックの基本ブロックの先頭ブロック番号および最終ブロック番号が、追加の16単位ブロックのブロック番号の最終ブロック番号および先頭ブロック番号に隣接するように単位ブロック番号D0−D31を付す。図15においては、最小の初期出発単位ブロック♯0−♯3のブロック番号を併せて括弧内において示す。
どのブロックサイズの基本ブロックにおいても、隣接する2つの基本ブロックの第1の基本ブロックのブロック番号の先頭ブロック番号と最終ブロック番号とが、第2の基本ブロックのブロック番号の最終ブロック番号および先頭ブロック番号にそれぞれ隣接するように、ブロック番号を付す。最小分割可能基本ブロックにおいては単位ブロック♯0および♯3において、単位ブロックの拡張接続が可能である。従って、X方向に8行Y方向に4列に配置される単位ブロックにより、32単位ブロックで構成される基本ブロック、16単位ブロックで構成される基本ブロック、8単位ブロックで構成される基本ブロックおよび4単位ブロックで構成される基本ブロックを実現することができる。
以上のように、この発明の実施の形態1に示す構成に従えば、32個の単位ブロックで構成される基本ブロックを、それぞれ16個の単位ブロックで構成される基本ブロック、8個で構成される単位ブロック、および4個の単位ブロックで構成される基本ブロックに分割することができる。この32個の基本ブロックをさらに回転操作を行なってX方向に拡張することにより、64個の基本単位ブロックで構成される基本ブロックを実現することができる(但し、64単位ブロック構成時、32単位ブロックの境界領域においてブロック番号が先頭番号および最終ブロック番号が隣接するようにブロック番号を付す)。
したがって、大規模な数の基本ブロックで構成される並列演算装置を準備し、各単位ブロックをトーラス状に配線接続できるように配置することにより、小ブロックサイズの基本ブロックへの縮小を行なうことができる。また、処理内容に応じて、基本ブロックのブロックサイズを変更して、また、複数の基本ブロックを並行して動作させて並列に処理を実行することができる。
[変更例]
図16は、この発明の実施の形態1の変更例の並列演算装置の構成を概略的に示す図である。図16においては、単位ブロック♯0−♯3で構成される基本ブロック(最小分割可能基本ブロック)に対して回転操作を行なって、新たな単位ブロック♯4−♯7で構成される基本ブロックを配置している。
単位ブロック♯0−♯3における構成は、以下の点で図8に示す構成と異なる。すなわち、単位ブロック♯1において、アップALU間接続切換回路3U1の下流部においてセレクタ74aが設けられ、また、ダウンALU間接続切換回路3D1の上流部においてセレクタ76aが設けられる。セレクタ74aは、単位ブロック♯0のダウンALU間接続切換回路3D0に対する配線46と、この単位ブロック♯1に対して図の上部に隣接して配置される図示しない単位ブロックのダウンALU間接続切換回路からの配線の一方を選択して、単位ブロック♯1のアップALU間接続切換回路3U1に結合する。
なお、データ伝達経路切換の配線の両端にセレクタを配置することは、特に要求されない。一方側のセレクタにより、配線の接続経路が選択されれば良い。従って、各ALU間接続切換回路に対して出力経路選択用のセレクタは配置することは、特に要求されない。しかしながら、図16においては、データの伝達経路の切換を明確に示すために、各ALU間接続切換回路に対してセレクタを配置するように示す。
セレクタ76aは、単位ブロック♯1のダウンALU間接続切換回路3D1の上流部を、図示しない上部に隣接して配置される単位ブロック(♯2)のダウンALU間接続切換回路からの配線と単位ブロック♯0のアップALU間接続切換回路3U0に対するデータ転送経路との一方を選択的に結合する。
単位ブロック♯1および♯2のアップALU間接続切換回路3U1および3U2の間にセレクタ70aおよび77aが縦続して配置され、また、ダウンALU間接続切換回路3D1および3D2の間にセレクタ72aおよび79aが縦続接続態様で配置される。セレクタ77aは、単位ブロック♯2のアップALU間接続切換回路3U2の下流部からのデータを、セレクタ70aおよび単位ブロック♯2に対して対向するように隣接して配置される単位ブロック♯5(単位ブロック♯1に相当)のダウンALU間接続切換回路3D1へ伝達する。
セレクタ70aは、セレクタ77aの選択したデータおよび隣接してかつ対向して配置される単位ブロック♯6のセレクタ77bの選択するデータ伝達経路、および拡張時図の上側において隣接する単位ブロック(♯2に相当)の出力データ伝達経路のうちの一つを選択して、単位ブロック♯1のアップALU間接続切換回路3U1に伝達する。
セレクタ72aは、単位ブロック♯1においてダウンALU間接続切換回路3D1の下流側からのデータを、セレクタ79aおよび単位ブロック♯6に含まれるセレクタ79bの入力の一方に伝達する。
セレクタ77aは、単位ブロック♯2のアップALU間接続切換回路3U2の下流側からのデータを、隣接して配置される単位ブロック♯1のセレクタ70a、対向して配置される単位ブロック♯5のセレクタ70b、図示しない図の下側に隣接して配置される多にブロックのいずれかに転送する。
セレクタ79aは、セレクタ72aの出力データおよび拡張時単位ブロック♯2において図の下方向に隣接して配置される単位ブロック(♯1)のアップALU間接続切換回路の出力データ、および対向して隣接して配置される単位ブロック♯5のセレクタ72bが選択する対応のダウンALU間接続切換回路3D1からのデータのうちの一つを選択してこの単位ブロック♯2のダウンALU間接続切換回路3D2の上流部に伝達する。
図16に示す単位ブロック♯0−♯3の構成は、図8に示す基本ブロックの構成と同じであり、対応する部分には同一参照番号を付し、その詳細説明は省略する。
また、単位ブロック♯4−♯7は、単位ブロック♯0−♯3を回転操作して配置されており、セレクタ70a、72a、74a、76a、77a、および79aに対応してセレクタ70b、72b、74b、76b、77b、および79bが配置される。これらの単位ブロック♯4−♯7において、単位ブロック♯0−♯3に対応する部分には同一参照番号を付し、また、その詳細説明は省略する。
この図16に示す構成においても、セレクタの配置については、最小分割可能基本ブロック(最小サイズ基本ブロック)の境界領域において、単位ブロックの入力経路にセレクタを交互配置し、単位ブロックの出力経路を隣接単位ブロックおよび対向して配置される単位ブロックのセレクタに結合するという規則性は維持されている。従って、セレクタ72(72a、72b)および77(77a、77b)は、特に設けられなくても良い。入力側のセレクタで選択することにより接続経路は、確立される。図16においては、前述したように、接続経路を明確にするために、各ALU間接続切換回路に対してセレクタを配置するように示す。
セレクタ74a、76a、74b、および76bは、単に、単位ブロックの接続の自由度を高くするために配置されており、これらのセレクタ74および76は、特に設けられなくても良い。
図17は、図16に示す並列演算装置の配線接続をより拡大して示す図である。単位ブロック♯0−♯7においては、演算処理部2.0−2.3は、示していない。単位ブロック♯0−♯7に対して、8単位ブロック構成時の接続経路を示すために、ブロック番号E0−E7を付す。このブロック番号E0−E7は、最小分割可能基本ブロックの単位ブロックの先頭番号および最終番号が、連続するように配置される。
単位ブロック♯4−♯7においては、単位ブロック♯0−♯3の配置を回転操作しているため、アップALU間接続切換回路3U0−3U3のシフト方向およびダウンALU間接続切換回路3D0−3D3のシフト方向は、単位ブロック♯0−♯3と単位ブロック♯4−♯7とで逆方向となる。
セレクタ70aは、セレクタ77aの選択出力とセレクタ77bの出力と外部からの転送データの1つを選択して、単位ブロック♯1のアップALU間接続切換回路3U1の上流部に転送する。セレクタ72aは、単位ブロック♯1のダウンALU間接続切換回路3D1の出力データを、セレクタ79a、79bおよび図の上部に隣接して配置される単位ブロックのいずれかに転送する。
セレクタ77aは、単位ブロック♯2のアップALU間接続切換回路3U2の下流側からのデータを、セレクタ70a、および70bおよび拡張時に単位ブロック♯2に隣接して図の下部に配置される単位ブロックのいずれかに転送する。
セレクタ79aは、セレクタ72aを介して与えられるダウンALU間接続切換回路3D1からのデータと、単位ブロック♯5のセレクタ72bを介して伝達されるダウンALU間接続切換回路3D1からのデータと、拡張時に単位ブロック♯D2に隣接して配置される単位ブロックからの転送データのいずれかを選択して、単位ブロック♯2のダウンALU間接続切換回路3D2に伝達する。
セレクタ72aは、単位ブロック♯1のアップALU間接続切換回路3U1の出力データを、単位ブロック♯0のダウンALU間接続切換回路3D0と拡張時に単位ブロック♯1の上側に隣接して配置される単位ブロックのいずれかに転送する。セレクタ76aは、単位ブロック♯0のアップALU間接続切換回路3U0の出力データと拡張時に単位ブロック♯1の上側に隣接して配置される単位ブロックの出力データの一方を選択して多にブロック♯1のダウンALU間接続切換回路3D1の上流部に伝達する。
セレクタ70bは、拡張時に単位ブロック♯5に隣接して図の下側に配置される単位ブロックのデータ入力部と、単位ブロック♯2のセレクタ77aを介して与えられる単位ブロック♯2のアップALU間接続切換回路3U2の出力データとセレクタ77bを介して与えられる単位ブロック♯6のアップALU間接続切換回路3U2の出力データのいずれかを選択して、単位ブロック♯5のアップALU間接続切換回路3U1に伝達する。
セレクタ77bは、単位ブロック♯6のALU間接続切換回路3U2の下流側からのデータを、単位ブロック♯1および♯5のアップALU間接続切換回路3U1の上流部および拡張時に単位ブロック♯6の図の上側に隣接して配置される単位ブロックのデータ入力部のいずれかに転送する。
セレクタ79bは、単位ブロック♯1のセレクタ72aを介して与えられるダウンALU間接続切換回路3D1の出力データと、セレクタ72bを介して与えられる単位ブロック♯5のダウンALU間接続切換回路3D1の出力データと拡張時に単位ブロック♯6の上側に隣接して配置される単位ブロックからの出力データの一方を選択して、単位ブロック♯6のダウンALU間接続切換回路3D2に伝達する。
セレクタ74bは、単位ブロック♯5のアップALU間接続切換回路3U1の出力データを、単位ブロック♯4のダウンALU間接続切換回路3D0および拡張時に単位ブロック♯5の下側に隣接して配置される単位ブロックのいずれかに転送する。セレクタ76bは単位ブロック♯4のアップALU間接続切換回路3U0の出力データと拡張時この単位ブロック♯5に隣接して配置される単位ブロックの出力データの一方を選択してダウンALU間接続切換回路3D1のいずれかへ伝達する。
この図16および図17に示すように、最小基本ブロックの単位ブロック♯1および♯2においても、ALU間接続切換回路3U1、3D1、3U2および3D2のデータ転送経路を切換える構成を設けることにより、より柔軟に、データ転送経路を変更して、基本ブロックサイズの拡張および縮小を行なうことができる。
この図17において明らかなように、出力経路設定用のセレクタ77および79は、削除することが可能である。図17においてはデータ転送経路を明確に示すためにこれらの出力経路選択用のセレクタ77a/bおよび79a/bを示す。
図18は、図16および図17に示す並列演算装置の接続経路の一例を示す図である。図18においては、セレクタ74aおよび76bを介して単位ブロック♯1のアップALU間接続切換回路3U1およびダウンALU間接続切換回路3D1が、それぞれ、データシフト方向を維持して、単位ブロック♯0のダウンALU間接続切換回路3D0およびアップALU間接続切換回路3U0に結合される。
セレクタ70aおよび72aは、それぞれ、単位ブロック♯1のアップALU間接続切換回路3U1およびダウンALU間接続切換回路を3D1を、単位ブロック♯6のアップALU間接続切換回路3U2およびダウンALU間接続切換回路3D2に結合する。ここで、単位ブロック♯6においては、回転操作が行なわれており、そのALU間接続切換回路のシフト方向は、単位ブロック♯1におけるALU間接続切換回路のシフト方向と逆となっている。
単位ブロック♯6のアップALU間接続切換回路3U2およびダウンALU間接続切換回路3D2は、それぞれ、単位ブロック♯7のダウンALU間接続切換回路3D3およびアップALU間接続切換回路の上流部に結合される。
一方、単位ブロック♯2においては、アップALU間接続切換回路3U2の上流部はセレクタ77を介して拡張時の隣接単位ブロックに結合され、また、ダウンALU間接続切換回路3Dの上流部も、セレクタ79aを介して拡張時の隣接する単位ブロックに結合される。単位ブロック♯2のALU間接続切換回路3U2および3D2は、それぞれ、単位ブロック♯3のALU間接続切換回路3D3および3U3に結合される。
単位ブロック♯5においても、同様、セレクタ72aは、アップALU間接続切換回路3U1の上流部を、拡張時の隣接単位ブロックに結合し、また、セレクタ72bが、この単位ブロック♯5のダウンALU間接続切換回路3D1の下流部を拡張時の隣接単位ブロックに結合する。この単位ブロック♯5のアップALU間接続切換回路3U1の下流部がセレクタ74bを介して単位ブロック♯4のダウンALU間接続切換回路3D0の上流部に結合され、また単位ブロック♯5のダウンALU間接続切換回路3D1の上流部が、単位ブロック♯4のアップALU間接続切換回路3U0の下流部に結合される。
したがって、図18に示す接続経路の場合、図19に単位ブロックの接続経路を示すように、単位ブロック♯0、♯1、♯6および♯7が直列に結合され、また単位ブロック♯2および♯5が、それぞれ拡張時の隣接単位ブロックに結合される。
図20は、この変更例における並列演算装置の接続経路の第2の例を示す図である。図20に示す接続経路においては、単位ブロック♯2のアップALU間接続切換回路3U2が、単位ブロック♯5のアップALU間接続切換回路3U1にセレクタ77aおよび70bを介して結合され、また、単位ブロック♯2のダウンALU間接続切換回路3D2の上流部が、単位ブロック♯5のダウンALU間接続切換回路3D1の下流部にセレクタ72bおよび79aを介して結合される。セレクタ70a、72a、77b、79bおよび74bおよび76bの接続経路は、先の図18に示す接続経路と同じである。
したがって、図21に示すように、単位ブロック♯0、♯1、♯6、♯7、♯4、♯5、♯2および♯1がこの順に、直列に接続され、8個の単位ブロックにより、1つの基本ブロックが構成される。この8単位ブロック構成時、ブロック番号としてブロック番号E0−E7を付すことにより、単位ブロックの分割および拡張接続を明瞭に識別することができる。
なお、図22に示すように、セレクタ70a、72a、77a、79a、77b、79b、70bおよび72bの接続経路を切換えることにより、4つの単位ブロック♯0−♯3で1つの基本ブロックを構成し、また単位ブロック♯4−♯7で1つの基本ブロックを構成することもできる。従って、単位ブロック♯1および♯2においてもセレクタを配置することにより、図17および図20に接続の例を示すように、8個の単位ブロックで構成される基本ブロックを、各々が4つの単位ブロックで構成される2つの基本ブロックに分割することができる。
図23は、この発明の実施の形態1の変更例の並列演算装置の16単位ブロック構成時の接続経路を概略的に示す図である。図23において、単位ブロック♯0−♯7で構成される基本ブロックを、さらに回転操作を行なって16個の単位ブロックで構成される追加基本ブロックを形成する。この場合、単位ブロック♯0および♯7に隣接して、新たな追加の基本ブロックの先頭単位ブロック♯8および最終単位ブロック♯15が配置されるように配置する。単位ブロック♯0−♯3に対応して、単位ブロック♯8−♯11を配置し、単位ブロック♯4−♯7が、単位ブロック♯12−♯15に対応する。単位ブロック♯1および♯6に隣接して、単位ブロック♯14および♯9が配置される。
16単位ブロック構成時に最小分割可能基本ブロック(4単位ブロック)においてブロック番号が連続するようにかつ隣接する最小分割可能基本ブロックにおいてブロックが番号が連続するように、ブロック番号を付す。図23において、連続して隣接する最小分割可能基本ブロック(最小サイズ基本ブロック)において、先頭ブロック番号と最終ブロック番号とが隣接するように、ブロック番号F0−F15が、付される。このブロック番号の付与により、単位ブロックが一筆書きの経路により順次接続されるように、ブロック番号が、付される。
16個の単位ブロック♯0−♯15は、その番号は、8単位ブロック構成時のブロック番号を、回転操作して拡張して付している。16個の単位ブロックで構成される基本ブロックにおける単位ブロックの番号位置は、自由に設定することができる。小ブロックサイズへの分割を考慮して、上述のようにブロック番号F0−F15を付す。図23において、単位ブロック♯6(♯2)にブロック番号F0が付され、単位ブロック♯9(♯1)に、ブロック番号F15が割当てられる。
この16単位ブロック構成時、単位ブロックF8(♯14)およびF7(♯1)のダウンALU間接続切換回路3D2および3D1をセレクタ76bおよび72aを介して相互結合する。また、単位ブロックF8(♯14)のアップALU間接続切換回路3U2は、単位ブロックF7(♯1)のアップALU間接続切換回路3U1にセレクタ77bおよび70aを介して結合する。
同様、単位ブロックF0(♯6)のアップALU間接続切換回路3U2を、単位ブロックF15(♯9)のアップALU間接続切換回路3U1に、セレクタ70aおよび77bを介して結合する。同様、単位ブロックF15(♯9)のダウンALU間接続切換回路3D1を単位ブロックF0(♯6)のダウンALU間接続切換回路3D2にセレクタ72aおよび77bを介して結合する。
他の接続経路は、先の図17に示す接続経路と同じであり、対応する部分には同一参照番号を付し、その詳細説明は省略する。
この図23に示す16単位ブロックの接続経路を図24に示す。この図24に示すように、単位ブロック♯14および♯1(ブロック番号F7およびF8)のALU間接続切換回路3U2および3U1をセレクタを介して結合し、また、ダウンALU間接続切換回路3D2および3D1のデータ転送を、セレクタ72aおよび76bを介して結合する。同様、単位ブロック♯6および♯9(ブロック番号F0およびF15)のアップALU間接続切換回路3U1および3U2をセレクタを介して相互結合し、また、ダウンALU間接続切換回路3D1および3D2をセレクタを介して縦列に接続する。
この接続経路により、ブロック番号F0−F15の順序で、単位ブロックが逐次、接続され、16単位ブロックで1つの基本ブロックを構成し、16単位ブロックの並列演算装置を実現することができる。
この図24に示す並列演算装置において、各セレクタの接続経路を切換えることにより、先の図18から図22において説明したように、16単位ブロック構成の並列演算装置の内部構成を、各々が8単位ブロックで構成される2つの基本ブロックに分割し、また、各々が4単位ブロックで構成される4個の基本ブロックに分割することができる。各分割において、ブロック番号F0−F15が、基本ブロック内において連続して配置される。
図25は、図24に示すセレクタの接続経路のデータ伝搬経路を概略的に示す図である。図25に示すように、ブロック番号F0−F15が、順次ALU間接続切換回路を介して相互接続される。単位ブロック間配線は、隣接単位ブロック間においてのみ配置され、データ転送が隣接単位ブロック間で実行される。
特に、4単位ブロックで構成される基本ブロック(最小サイズ基本ブロック:最小分割可能基本ブロック)において単位ブロック♯1および♯2に対し、X方向およびY方向両方向に、接続配線可能なようにセレクタを配置することにより、図25において、ブロック番号F7およびF8で示されるように、隣接する4単位ブロックで構成される基本ブロック間において単位ブロック♯2および♯1の間の接続を実現することができ、基本ブロックの単位ブロックの接続の自由度が高くなる。
図26は、図25に示す16ブロック構成を利用した、32単位ブロックにより構成される並列演算装置のブロック接続構成を概略的に示す図である。この図26に示す構成において、基本ブロック♯Aの180度回転操作により、追加の基本ブロック♯Bを形成して配置する。これらの基本ブロック♯Aおよび♯Bにおいて、単位ブロック♯0−♯3がこの順に整列して配置され(Y方向において)、また、基本ブロック♯Aおよび♯Bにおいて、単位ブロック♯0−♯3の配列順序が、X方向において交互に逆転される。
ブロック番号としてブロック番号G0−G31を利用する。基本ブロック♯Aにおいてブロック番号G0−G15が与えられ、基本ブロック♯Bにおいて、ブロック番号G16−G31が単位ブロックに対して割当てられる。この場合、基本ブロック♯Aおよび♯Bにおいて、ブロック番号G0およびG15が、それぞれ基本ブロック♯Bのブロック番号G16およびG31に隣接するように番号付けを行なう。図26においては、32単位ブロック構成のブロック番号と16単位ブロック構成のブロック番号と4単位ブロックのブロック番号の対応を明確にするために、小サイズのブロック構成時のブロック番号F0−F15および♯0−♯3をカッコ内において示す。
この図26に示す32単位ブロック構成の場合、ブロック番号G15およびG16が相互接続され、またブロック番号G0およびG31の単位ブロックが相互接続されて、接続経路のループが完成する。したがってブロック番号G15およびG0に対応するもとのブロック番号F1およびF2において、単位ブロック♯3および♯0の接続経路が、セレクタ60および62により切換えられる。これは、基本ブロック♯Aおよび♯Bいずれにおいても同様である。したがって、この場合、単にブロック番号G15およびG16の単位ブロックの間およびブロック番号G0およびG31の単位ブロックの間の接続を切換えるだけで、32単位ブロックのプロセッサを、16個の単位ブロックのプロセッサにそのサイズを低減することができる。
図27は、32単位ブロック構成の並列演算装置の接続の変更例を示す図である。図27において、基本ブロック♯Cおよび♯Dは、図26に示す基本ブロック♯Aおよび♯Bを回転操作をすることにより得られる。この場合、各ブロック番号H0−H31を、各基本ブロック♯Cおよび♯Dのそれぞれの先頭ブロック番号および最終ブロック番号がそれぞれ交差的に対応するようにブロック番号を付す(先頭ブロック番号と最終ブロック番号とが隣接するように、ブロック番号を配置する)。
この図27に示す場合、ブロック番号H31およびH0の単位ブロック(♯3および♯0)は、セレクタ(60,62)を用いて相互接続する。この相互接続により、ブロック番号H31およびH16の単位ブロック(♯3および♯0)の相互接続が分離され、また、基本ブロック♯Dにおいても、ブロック番号H0およびH15の単位ブロック(♯0および♯3)の相互接続が分離される。ブロック番号H16およびH15の単位ブロックおよびブロック番号H0およびH31の単位ブロックは、それぞれ、そのセレクタ60,62の操作により相互接続する。
これにより、同様、32単位ブロックで構成される基本ブロックを実現することができ、また、16個の単位ブロックを、さらに小サイズの8単位ブロックおよび4単位ブロックの基本ブロックに分割することができる。単位ブロック♯1および♯2において、Y方向に隣接する最小サイズの基本ブロックの単位ブロック♯1および♯2を相互接続することが可能となるためである。
図28は、この発明の実施の形態1の変更例の基本ブロック構成を示す図であり、図28においては、64単位ブロックの基本ブロックの接続の配置の一例が示される。図28において、この64単位ブロックで構成される基本ブロックは、図26および図27に示す基本ブロック♯A、♯B、♯Cおよび♯Dを結合したものと等価である。すなわち、基本ブロック♯Aおよび♯Bにおけるブロック番号G0−G31に対しブロック番号J32−J63が割当てられる。基本ブロック♯Cおよび♯Dのブロック番号H0−H31の単位ブロックに対し、ブロック番号J0−J31が割当てられる。ブロック番号J32およびJ36の単位ブロック(♯0,♯3)が分離され、ブロック番号J32の単位ブロックが、ブロック番号J31の単位ブロック(♯3)に結合される。同様、ブロック番号J63の単位ブロック(♯3)が、ブロック番号J0の単位ブロック(♯0)に結合される。
したがって、32個の単位ブロックを相互接続することにより、64個の単位ブロックで構成される基本ブロックが実現される。
この64単位ブロックで構成される基本ブロックは、したがって、各々が32個の単位ブロックで構成される2個の基本ブロック、各々が16個の単位ブロックで構成される4個の基本ブロックに分割することができる。この場合、各縮小時の基本ブロック内の単位ブロックのブロック番号の先頭番号および最終番号は、それぞれ、隣接縮小基本ブロックのブロック番号の最終ブロック番号および先頭ブロック番号に隣接させて配置する。
図29は、この図28に示す64単位ブロックの基本ブロックを、8単位ブロックの基本ブロックに分割した際のデータ伝搬経路を概略的に示す図である。この図29に示すように、Y方向に隣接する単位ブロック♯1および♯2を、X方向に整列する単位ブロック♯1および♯2の接続経路に代えて接続することにより、各々が、連続番号の8単位ブロックで構成される8個の基本ブロックに分割することができる。
したがって、4つの単位ブロックで構成される基本ブロックにおいて、単位ブロック♯1および♯2においてX方向およびY方向の両方向に接続可能に配置することにより、64単位ブロックの基本ブロックを、4単位ブロックの基本ブロックにまで順次縮小分割することが可能となる。
以上のように、この発明の実施の形態1に従えば、各単位ブロックを複数個配置して基本ブロックを構成し、この基本ブロックの小ブロック内の単位ブロックの連続番号の先頭番号および最終番号が隣接するように小ブロックに分割し、この小ブロック分割の境界領域に対応してセレクタを配置する。これにより、隣接単位ブロック間でのみデータ転送非線が配置されてデータの転送が行なわれ、配線遅延が低減される。また、単にセレクタの経路を切換えるだけであり、各基本ブロック相互間のさまざまな方向に対する配線を配置する必要がなく、配線レイアウト面積が低減される。また、ブロックサイズを切換えるための回路構成は、単にセレクタだけであり、プロセッサ(並列演算装置)機能(構成)切換のための構成が簡略化され、また、占有面積を低減することができる。
[実施の形態2]
図30は、この発明の実施の形態2に従う並列演算装置の最小基本ブロックの構成を概略的に示す図である。図30において、並列演算装置は、4つの単位ブロック100A−100Dで構成される。これらの単位ブロック100A−100Dの各々は、主演算ブロック110と、内部データバス4と、バスインターフェイス(I/F)6を含む。主演算ブロック110は、図1に示すレジスタ回路、ALU間接続切換回路、演算処理部(PE群)2を含み、内部データバス4とデータの転送を行なうことができる。
この図30に示す配置においては、単位ブロック100Bおよび100Cの内部バス4が、拡張配線115により相互接続される。この図30に示す単位ブロック100A−100Dで構成される基本ブロックを、基本ブロックの最小分割可能基本ブロックとして利用する。
図31は、この発明の実施の形態2に従う基本ブロック(並列演算装置)の構成の一例を示す図である。図31においては、基本ブロックは、16個の単位ブロック100A0−100A3、100B0−100B3、100C0−100C3、100D0−100D3を含む。最小分割可能基本ブロック(最小サイズ基本ブロック)は、単位ブロック100Ai、100Bi、100Ci、および100Diにより形成される。但し、iは、0から3の整数である。
単位ブロック100Ai−100Diの内部構成は、図30に示す構成と同じであり、対応する部分には、同一参照番号を付して、その詳細説明は省略する。
この配置の場合、Y方向における最小サイズ基本ブロックの境界領域に各単位ブロックに対応してセレクタ(SEL)を配置する。図31において、単位ブロック100A0、100D0、100A1および100D1それぞれに対応して、セレクタ121、123、125および127が配置される。単位ブロック100A2、100D2、100A3、および100D3それぞれに対応してセレクタ120、122、124、および126が配置される。
Y方向において対向して配置されるセレクタを、配線L1により相互接続する。次いで、X方向に隣接するセレクタの別のポートを、配線L2により相互接続する。X方向における最小サイズ基本ブロックの境界領域に対応するセレクタ122、123、124および125に対し、さらに配線L3を配設して、X方向において隣接するセレクタのさらに別のポートを相互接続する。
セレクタ120−127の接続経路を切換えることにより、16単位ブロックの基本ブロック、8単位ブロックの基本ブロック、および4単位ブロックの基本ブロックを実現することができる。すなわち、セレクタ(SEL)120−127それぞれにおいて、配線L2に接続されるポートを選択して対応のインターフェイス(I/F)に接続することにより、4単位ブロックの基本ブロックを4つ配置することができる。セレクタ120−127において、配線L1が接続されるポートを選択して、対応のバスインターフェイス(I/F)6に結合することにより、8個の単位ブロックで構成される基本ブロックを2つ配置することができる。
セレクタ120および121において配線L1の接続されるポートを選択し、セレクタ122、123、124および125において配線L3が接続されるポートを選択し、また、セレクタ126および127において配線L1が接続されるポートを選択する。これにより、16単位ブロックで基本ブロックを構成することができる。
したがって、この図31に示すような配置においても、各最小サイズ基本単位ブロックの境界領域においてセレクタを単位ブロックに対応して配置し、セレクタのポート切換によりデータ伝搬経路を切換えることにより、大規模の基本ブロックを順次、小規模の基本ブロックに分割することができ、また、逆に、小規模サイズの基本ブロックを繰返し配置して大規模の基本ブロックを構築することができる。
[変更例]
図32は、この発明の実施の形態2に従う並列演算装置の変更例の配置を概略的に示す図である。この図32に示す配置においては、先の図31に示す構成と同様、最小分割可能基本ブロックは、4単位ブロックで構成される。この図32に示す構成においては、図31に示す構成と異なり、Y方向において、最小分割可能基本ブロックの境界領域においてさらにセレクタが、セレクタ120−127と対称的に配置される。すなわち、単位ブロック100B0、100C0、100B1および100C1に対応して、内部データバス4に対してセレクタ131、133、135および137が設けられる。
X方向において隣接するセレクタに対しては配線L2によりそのポートが結合され、図示しないY方向においてさらに隣接する単位ブロック拡張のために、配線L1が設けられる。このX方向において最小分割可能基本ブロックの単位ブロック100C0および100B1を接続可能とするために、セレクタ133および135に対して、さらに配線L3によりその第3のポートが相互接続される。
なお、単位ブロック100B2、100C2、100B3に対して、セレクタ120、122、124および126と対称的に、内部データバス4に対して、セレクタ130、132、134および136が配置される。これらのセレクタにおいては、X方向において隣接するセレクタの第1ポートが配線L2により相互接続され、またY方向において隣接する拡張用の単位ブロックとの接続用に、第1ポートが配線L1に結合される。最小分割基本ブロックの境界領域に対して設けられるセレクタ132および134の第3ポートが配線L3により相互接続される。
この図32に示す配置を、X方向およびY方向に対し繰返し配置することにより、最小分割可能基本ブロックのブロックサイズを、4単位ブロックとして、並列演算装置を構成する単位ブロック数を拡張することができる。逆に、大規模サイズの基本ブロックで構成される並列演算装置を、小ブロックサイズの基本ブロックにセレクタ120−127および130−137の接続経路を切換えることにより、縮小することができる。
なお、セレクタ120−127および130−137が、対応の単位ブロック間の経路を遮断する経路遮断機能を有する場合には、図32に示す構成において、最小サイズ基本ブロックを、2単位ブロックで構成することができる。
以上のように、この発明の実施の形態の最小分割基本ブロックの一方方向(Y方向)の境界領域に、各単位ブロックに対応してセレクタを設け、このセレクタの接続経路を、要求される基本ブロックサイズにおいて設定する。これにより、大規模サイズの並列演算装置を、配線面積を増大させることなく、小ブロックサイズの基本ブロックに分割することができる。また、この場合においても、データ伝搬経路は、隣接単位ブロック間のみであり、配線伝搬遅延を回避することができる。
[実施の形態3]
図33は、この発明の実施の形態3に従う並列演算装置の最小分割可能基本ブロックの構成を概略的に示す図である。図33においては、4つの単位ブロック150A−150Dが設けられる。これらの単位ブロック150A−150Dの各々は、図1に示す構成を有し、図33においては、これらの単位ブロック150A−150Dに含まれる演算処理部2の構成を代表的に示す。演算処理部2は、複数の処理エレメントPE0−PEnを含む。
単位ブロック150A−150Dの間に、隣接ブロック接続スイッチ回路160A−160Cが配置される。隣接ブロック接続スイッチ回路160Aは、単位ブロック150Aおよび150Bの処理エレメントPE0−PEnを、1対1態様で結合する。隣接ブロック接続スイッチ回路160Bは、単位ブロック150Bおよび150Cの処理エレメントPE0−PEnを、1対1態様で結合する。隣接ブロック接続スイッチ回路160Cは、単位ブロック150Cおよび150Dの処理エレメントPE0−PEnを1対1態様で結合する。
4個の単位ブロック150A−150Dで最小分割可能基本ブロックが構成されるため、その境界領域において、単位ブロック150Aおよび150Dに対応して選択回路170および172が設けられる。選択回路170は、第1ポートが、多ビット配線LL1を介して拡張時の対向して配置される単位ブロックに結合され、その第2ポートが、タビット配線LL2を介して選択回路172の第1ポートに結合される。選択回路170は、単位ブロック150Aの処理エレメントPE0−PEnに対し結合される配線およびスイッチ回路(またはドライバ)を有し、データ転送制御機能を有する。
選択回路172は、多ビット配線LL1により、拡張時に対向して配置される単位ブロックに結合され、また、多ビット配線LL3により、拡張時の図33の下側方向に配置される単位ブロックに配置される選択回路に結合される。選択回路172は、単位ブロック150Dの処理エレメントPE0−PEnに結合される配線を有し、データ転送制御機能を有する。
この図33に示す構成の場合、演算処理部2の単位でデータ転送を行なうことができる。この図33に示す構成を複数個配置することにより、先の実施の形態2に示す構成と同様、たとえば図31に示す構成と同様にして、16単位ブロックで1つの基本ブロックを構成し、その16単位ブロックを8単位ブロックおよび4単位ブロックにまで分割することができる。
なお、この図33に示す構成において、隣接ブロック接続スイッチ回路160Bに代えて、選択回路をこの単位ブロック150Bおよび150Cに対応して設け、選択回路170および172に対する配線と同様の配線配置を行なうことにより、図32に示す構成と同様の配置を実現することができ、より大規模の単位ブロックで構成される基本ブロックを実現することができる。また、この大規模基本ブロックの最小分割基本ブロックサイズを、4単位ブロックに設定することができる。
また、選択回路170に対して、図の上側に隣接する単位ブロックに対して設けられる選択回路との接続を別の配線により形成しても良い。さらに、大規模の基本ブロックを構成することができる。
[変更例]
図34は、この発明の実施の形態3の変更例の並列演算装置の構成を概略的に示す図である。この図34において、単位ブロック200は、行列状に配列される複数のタイル状のプロセッサコアTLを含む。図34においては、4行4列に配列されるプロセッサコアTL00−TL03からTL30−TL33を一例として示す。プロセッサコアTL00−TL03からTL30−TL33は、メッシュ状に配列されるネットワーク配線ILにより相互接続される。ネットワーク配線ILは、隣接プロセッサコアを結合する。
プロセッサコアの両側にバスインターフェイス202および204が設けられる。バスインターフェイス202は、プロセッサコアTL00、TL10、TL20、およびTL30と双方向に通信を行なうことができ、バスインターフェイス204は、プロセッサコアTL03、TL13、TL23、およびTL33と双方向に通信可能である。このメッシュ状のネットワーク配線において、最上位行のプロセッサコアTL00−TL03は、図示しないメモリと双方向に通信可能であり、また、最下位行のプロセッサコアTL30−TL33も、図示しないメモリと双方向に通信可能である。
この図34に示すような複数のプロセッサコアを有する単位ブロック(マルチコアプロセッサ)200を用いて、大規模の基本ブロック(並列演算装置)を構成する。
図35は、図34に示すプロセッサコアの構成の一例を概略的に示す図である。プロセッサコアTL00−TL03、…TL30−TL33は、同一の構成を有するため、図35においては、プロセッサコアTLにより、これらのプロセッサコアTL00−TL03、…TL30−TL33の構成を代表的に示す。
図35において、プロセッサコアTLは、プロセッサ210、ローカルメモリ212、およびルータ214を含む。プロセッサ210は、ローカルメモリ212と双方向に通信可能であり、ローカルメモリ212へアクセスして命令およびデータを取出して演算処理を実行する。これらのプロセッサ210およびローカルメモリ212は、ともにルータ214に結合される。ルータ214は、このネットワーク配線ILに含まれる配線ILN、ILE、ILSおよびILWにより、4方向に隣接して配置されるプロセッサコアのルータに結合される。隣接プロセッサコア間においてのみ通信が行なわれる配線の配置により、配線の錯綜を回避し、またデータ通信信号の伝搬遅延を回避する。
このような複数のプロセッサコアを含むマルチコアプロセッサにおいても、必要に応じて、その要求されるプロセッサコアの数が異なり、また演算の粒度が異なる。したがって、大規模の基本ブロックにおいて、図31または図32に示すようなセレクタを用いて、単位ブロックを選択的に結合することにより、大規模サイズの基本ブロックを小規模の基本ブロックに分割可能とすることができ、演算の粒度に応じた規模のプロセッサを実現することができる。
この構成においても、通信が、隣接単位ブロック間においてのみ行なわれ、また、単位ブロック間配線も隣接単位ブロック間配線のみであり、ブロックサイズ変更のための配線面積の増大を抑制することができる。
[変更例2]
図36は、この発明の実施の形態3の変更例2の単位ブロックの構成を概略的に示す図である。図36において、単位ブロック300は、演算処理部304と、この演算処理部304の入力部および出力部にそれぞれ設けられる入力インターフェイス(I/F)302および出力インターフェイス(I/F)306を含む。
単位ブロック300においては、データ/信号の流れは、入力インターフェイス302から出力インターフェイス306に向かって一方方向である。このようなデータ/信号の流れが単位ブロック300において一方方向の場合においても、単位ブロック300を複数個配置して、図31から図33に示すように、セレクタを用い単位ブロック300を選択的に結合することにより、ブロックサイズ可変の大規模基本ブロックを形成することができる。たとえば、パイプライン的に演算処理が実行される構成において、そのパイプラインステージの段数を、基本ブロックのサイズを変更することにより調整することができる。
セレクタの配置およびセレクタ間の接続、ならびに単位ブロックの番号付け順序は、実施の形態1および2の場合と同様である。
以上のように、この発明の実施の形態に従えば、単位ブロックをセレクタを介して選択的に結合して大規模サイズの基本ブロックを構成している。従って、ブロック間配線は隣接ブロック間だけであり、配線占有面積およびデータ伝播遅延を低減することができ、また、必要とされるサイズのマルチコアプロセッサを実現することができる。
[実施の形態4]
図37は、この発明の実施の形態4に従う基本ブロックのブロック構成法を概略的に示す図である。図37において、最小分割可能基本ブロック350に対するセレクタの配置が代表的に示される。この最小分割可能基本ブロック350のブロック境界領域BRGにおいて、最小分割可能基本ブロック350に含まれる単位ブロックに対応してセレクタ352a−352nを設ける。このセレクタ352a−352nそれぞれを、X方向に隣接するセレクタを配線362を用いて接続する。また、セレクタ352a−352nとブロック境界領域BRGに関して(Y方向に関して)対向して配置される単位ブロックのセレクタとを、配線360により接続する。X方向におけるブロック境界領域を越えて最小分割可能基本ブロックの隣接単位ブロックに対して設けられるセレクタに対しては、配線363により接続を行なう。
この図37に示す構成を基本構成として、X方向に繰返し配置し、またY方向に関して鏡映対称に配置することにより、必要とされるサイズの基本ブロックを実現することができる。なお、Y方向においてブロック境界領域BRGに関して対向して配置される別のブロック境界領域において、また、セレクタ352a−352nと同様に、セレクタを配置してもよい。この場合、X方向およびY方向に最小分割可能基本ブロックを繰返し配置して、必要とされるサイズの基本ブロックを実現することができる。
[ブロック構成の変更例]
図38は、この発明の実施の形態4に従う基本ブロックのブロック構成において用いられる単位ブロックの変更例の構成を概略的に示す図である。図38において、単位ブロック400は、演算部402と、演算部402の両側に対向して設けられる入力ポート404および406と、入力ポート404および406それぞれに隣接して配置される出力ポート405および407を含む。
入力ポート404および406に入力データ/信号I0およびI1がそれぞれ与えられ、出力ポート405および407は、それぞれ出力データ/信号O0およびO2を出力する。この図38に示す構成の場合、単位ブロック400において一方側から伝達されたデータ/信号は、他方側に配置されたポートを介して出力される。たとえば、入力ポート404から入力されたデータは、演算部402において処理された後、出力ポート407を介して出力される。この構成の場合においても、以下に説明するように、実施の形態1の場合と同様にしてセレクタを配置することにより、選択された基本ブロック内におけるデータの流れを一方方向に設定することができる。
図39は、この発明の実施の形態4の変更例の基本ブロックの構成を概略的に示す図である。図39において、単位ブロック400A−400Dにより、最小分割可能基本ブロックを構成する。単位ブロック400A−400Dは、図38に示す単位ブロック400と同様の構成を備える。図39においては、入力ポートおよび出力ポートを、それぞれ、図38のデータ/信号I0、I1、O0、およびO1で示す。
図39に示す構成において、Y方向における最小分割可能基本ブロックの境界領域において、単位ブロックの入力ポートに対応して入力セレクタ450を配置する。図39においては、単位ブロック400Aの入力ポートI0に対応して入力セレクタ450aが配置され、単位ブロック400Dの入力ポートに対応して入力セレクタ450bが配置される。単位ブロック400Aおよび400Dの出力ポートO0およびO1は、配線452(452a,452b)を介して、Y方向において隣接して配置される入力セレクタおよび対向して配置される単位ブロックの入力ポートに対して設けられる入力セレクタに接合される。すなわち、図39においては、単位ブロック400Aからの出力配線452aが、X方向において隣接する単位ブロック400Dに対して設けられる入力セレクタ452bの入力部に結合され、また、Y方向に関して対向して配置される単位ブロックの入力セレクタに結合される。入力セレクタ450bに対しては、また、対向する単位ブロックからの出力配線453とX方向においてさらに隣接する単位ブロックからの出力配線452(452c)が結合される。
入力セレクタ450aに対しても、対向単位ブロックからの出力配線453と隣接単位ブロック400Dの出力配線452bとが結合される。Y方向において対向する最小分割可能基本ブロックにおいては、この図39に示す配置を回転対称に配置して、最小分割可能基本ブロックが配置される。
図40は、図39に示す最小サイズ基本ブロックの構成を用いて16単位ブロックより基本ブロックを構成した場合の接続を概略的に示す図である。図40において、4行4列に単位ブロック400が配置される。4個の単位ブロック400により、最小分割可能基本ブロックが構成される。
最小分割可能基本ブロックのY方向における境界領域において入力セレクタ450Aおよび450Bが交互に配置される。この場合、ブロック境界領域において単位ブロックの出力配線452は、X方向に対して隣接する単位ブロックに対して設けられるセレクタ450(450Aまたは450B)に結合されるとともに、対向配線453として、Y方向に関して対向して配置される単位ブロックに対して設けられるセレクタ450(450Aまたは450B)に結合される。
単位ブロック400の接続においては、入力ポートI0および出力ポートO1が交互に配置され、また、入力ポートI1および出力ポートO0が交互に配置されるように、単位ブロック400が相互接続される。入力セレクタ450Aが、入力ポートI0に結合され、入力セレクタ450Bが入力ポートI1に結合される。
単位ブロック400に対して、ブロック番号を、最小サイズ基本ブロック内においてブロック番号が連続し、かつ縮小時の基本ブロックの単位ブロックの番号が、先頭および最終番号のブロックが隣接するように、番号付けを行う。図40においては、ブロック番号0から15が、連続番号の単位ブロックにより閉ループを形成可能に、すなわち、単位ブロックを一筆書きの接続経路により接続するように、単位ブロック400に付される。
このセレクタの接続構成において、セレクタ450Aを用いた場合、時計回りの方向にデータを転送する経路が形成され、一方、セレクタ450Bを利用することにより、反時計回りにデータを転送する経路が形成される。セレクタ450Aまたは450Bの接続経路を切換えることにより、この16単位ブロックの基本ブロックを、8単位ブロックの基本ブロックまたは4単位ブロックの基本ブロックに分割することができる。
図40に示すセレクタの配置は、最小サイズ基本ブロックをX方向に拡張することにより、大規模の基本ブロックを構成することができる。しかしながら、図40に示す配置において、Y方向における別の最小分割可能基本ブロックの境界領域において、同様、セレクタを配置し、出力配線を隣接単位ブロックの入力セレクタに結合するとともに、Y方向に関して対向する単位ブロックに対して配置される入力セレクタに結合するという規則を適用して、配線を配置しても良い。この構成の場合、図17に示す構成と同様、X及びY方向に最小サイズブロックを繰返し配置することができ、より大規模の基本ブロックを実現できる。また、この大規模基本ブロックを、配線レイアウトを変更することなくセレクタの接続経路の切換により、小サイズの基本ブロックに変更することができる。
以上のように、この発明の実施の形態4に従えば、複数の単位ブロックで基本ブロックが構成される場合、この最小分割可能基本ブロックの境界領域においてセレクタを配置し、各この境界領域の単位ブロックの出力配線を、隣接する単位ブロックの入力セレクタおよび対向して配置される単位ブロックの入力セレクタに結合している。これにより、所望のサイズの基本ブロックを実現して、この大規模基本ブロックを、小規模の基本ブロックに配線レイアウトを変更することなく変更することができる。
なお、これまでの実施の形態1から4においては、最小サイズ基本ブロックは、4単位ブロックで構成される。しかしながら、この最小サイズ基本ブロック(最小分割可能基本ブロック)は、2つの単位ブロックで構成されてもよい。この場合でも、セレクタの配置は、上述の規則性に従って配置する。
この発明は、一般に、並列演算装置に適用することにより、高速動作するとともに、配線レイアウト面積が低減される並列演算装置を実現することができる。この並列演算装置の単位ブロック内に含まれる処理エレメントは、処理演算機能を有するものであればその構成は任意である。
この発明の実施の形態1に従う並列演算装置の全体の構成を概略的に示す図である。 図1に示す並列演算装置のALU間接続切換回路の構成を概略的に示す図である。 図1に示すALU間接続切換回路の配線レイアウトをより具体的に示す図である。 図2に示すアップシフタおよびダウンシフタの構成の一例を概略的に示す図である。 図2に示すアップシフタおよびダウンシフタの構成の一例を示す図である。 図1に示す処理エレメントの構成の一例を概略的に示す図である。 図6に示す処理エレメントの演算処理態様を模式的に示す図である。 この発明の実施の形態1に従う並列演算装置の最小分割可能基本ブロックの構成を概略的に示す図である。 図8に示すALU間接続切換回路の配線の配置を概略的に示す図である。 この発明の実施の形態1に従う並列演算装置の8ダウンブロック構成時の接続経路を概略的に示す図である。 図10に示す並列演算装置の8単位ブロック構成時のデータ伝達経路を概略的に示す図である。 この発明の実施の形態1に従う16単位ブロック構成時の接続経路を概略的に示す図である。 図12に示す並列演算装置の16単位ブロック構成時のデータ伝搬経路を概略的に示す図である。 この発明の実施の形態1における基本演算ブロックの単位ブロックの配置態様を概略的に示す図である。 この発明の実施の形態1に従う並列演算装置の単位ブロックの接続経路をブロック番号とともに示す図である。 この発明の実施の形態1に従う並列演算装置の変更例の構成を概略的に示す図である。 図16に示す構成の配線接続を簡略化して示す図である。 図17に示す並列演算装置の接続状態の一例を示す図である。 図18に示す接続形態時の単位ブロック接続態様を概略的に示す図である。 図16に示す構成の配線データ伝搬経路接続態様を概略的に示す図である。 図20に示すデータ伝搬経路接続時の単位ブロックの接続態様を示す図である。 図17に示す配置におけるさらに他のブロック構成時の単位ブロックの接続態様を概略的に示す図である。 この発明の実施の形態1の変更例の16ブロック構成時の接続経路を概略的に示す図である。 図23に示す配置における16ブロック構成時の単位ブロック接続経路を概略的に示す図である。 図24に示す接続経路のブロック接続態様を概略的に示す図である。 図24に示す配置の32ブロック拡張時のブロック接続態様を概略的に示す図である。 図24に示す配置の32ブロック構成時のブロック接続態様の変更例を示す図である。 この発明の実施の形態1の変更例の64ブロック構成時のブロックの接続態様を概略的に示す図である。 図28に示すブロック接続態様の8ブロック接続時のブロック接続態様を概略的に示す図である。 この発明の実施の形態2に従う並列演算装置の基本ブロックの構成を概略的に示す図である。 図30に示す構成による16ブロック構成時の接続経路を概略的に示す図である。 この発明の実施の形態2の変更例のセレクタの配置を概略的に示す図である。 この発明の実施の形態3に従う並列演算装置の構成を概略的に示す図である。 この発明の実施の形態3の単位ブロックの変更例の構成を概略的に示す図である。 図34に示すプロセッサコアの構成の一例を概略的に示す図である。 この発明の実施の形態3に従う単位ブロックのさらに他の変更例の構成を概略的に示す図である。 この発明の実施の形態4に従う基本ブロック構成時のセレクタの配置を概略的に示す図である。 この発明の実施の形態4に従う並列演算装置の単位ブロックの構成を概略的に示す図である。 図38に示す構成のセレクタの配置を概略的に示す図である。 この発明の実施の形態に示す並列演算装置の16単位ブロック構成時の接続態様の一例を概略的に示す図である。
符号の説明
1L,1R データレジスタ回路、2 演算処理部、3 ALU間接続切換回路、3U アップALU間接続切換回路、3D ダウンALU間接続切換回路、4 内部データバス、6 バスインターフェイス部、USFL0−USFLn,USFR0−USFRn アップシフタ、DSFL0−DSFLn,DSFR0−DSFRn ダウンシフタ、10UL 左側アップシフトデータバス、10DL 左側ダウンシフトデータバス、15L0−15L7 内部データ転送線、20L0−20L7,20R0−20R7 第1のデータ転送線、21L0−21L7,21R0−21R7 第2のデータ転送線、PE0−PEn 処理エレメント、2.0−2.3 演算処理部、3D1−3D3 ダウンALU間接続切換回路、3U1−3U3 アップALU間接続切換回路、♯0−♯3 単位ブロック、60,62 セレクタ、45−48,50−57 接続配線、70a,70b,72a,72b,77a,77b、79a,79b、74a,76a,74b,76b セレクタ、100A−100D 単位ブロック、110 主演算ブロック(PE群)、120−127 セレクタ、100A0−100A3,100B0−100B3,100C0−100C3,100D0−100D3 単位ブロック、L1,L2,L3 接続配線、150A−150D 単位ブロック、160A−160C 隣接ブロック接続スイッチ回路、170,172 選択回路、200 単位ブロック、TL00−TL03,TL30−TL33 プロセッサコア、202,204 バスインターフェイス、300 単位ブロック、350 最小分割可能基本ブロック、352a,352n セレクタ、360,362,363 接続配線、400 単位ブロック、404,406 入力ポート、405,407 出力ポート、402 演算部、450a,450b 入力セレクタ、452a,452b,452 出力配線、453 対向出力接続配線、450A,450B セレクタ。

Claims (5)

  1. 第1および第2の方向に整列して配置される複数の単位ブロックを含む基本ブロックを備え、前記基本ブロックは、複数の最小分割可能基本ブロックに分割可能であり、かつ前記最小分割可能基本ブロックにおいては隣接単位ブロックが配線により接続され、
    前記第1の方向における前記最小分割可能基本ブロックの境界領域において、各最小分割可能基本ブロックの単位ブロックに対応して設けられ、対応の単位ブロックの接続経路をブロックサイズに応じて切換える複数のセレクタ、および
    前記複数のセレクタにおいて、前記第1および第2の方向において隣接して配置される単位ブロックに対して設けられるセレクタを接続する配線を備える、並列演算装置。
  2. 各前記単位ブロックは、データ入力部とデータ出力部とを有し、
    前記セレクタは、対応の単位ブロックの入力部に対応して設けられ、
    前記配線は、前記対応の単位ブロックのデータ出力部を前記第1および第2の方向において隣接する単位ブロックのセレクタに結合するように配置される、請求項1記載の並列演算装置。
  3. 前記セレクタは、前記配線が、前記最小分割化可能基本ブロックにおいて1箇所の隣接単位ブロック間の配線接続経路を除いて前記最小分割可能基本ブロック各々において単位ブロックをすべて接続する際の接続経路と同じ接続経路を有するようにブロックサイズに応じて配線接続経路を確立する、請求項1記載の並列演算装置。
  4. 前記基本ブロックは、2のN乗個の単位ブロックを備え、前記2のN乗個の単位ブロックは、各々が2の(N−1)乗個の単位ブロックを含む縮小基本ブロックに分割可能とされ、
    前記セレクタは、前記単位ブロックの配線レイアウトを隣接縮小基本ブロック間での隣接単位ブロック部を除いて配線接続経路を維持するように配線を選択し、
    前記2つの縮小基本ブロックは、単独で用いられて小規模並列演算装置を構成する場合には、同一態様の配線接続経路を有する、請求項1記載の並列演算装置。
  5. 各前記縮小基本ブロックにおいては、接続経路に沿って順次単位ブロックに対してブロック番号が付され、
    前記2つの縮小基本ブロックにおいて、第1の縮小基本ブロックの単位ブロックの先頭および最終ブロック番号の単位ブロックが、第2の縮小基本ブロックの最終および先頭ブロック番号の単位ブロックとそれぞれ隣接して配置されるように、前記基本ブロックにおいて配線接続経路が形成される、請求項4記載の並列演算装置。
JP2008199789A 2008-08-01 2008-08-01 並列演算装置 Withdrawn JP2010039625A (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2008199789A JP2010039625A (ja) 2008-08-01 2008-08-01 並列演算装置
US12/480,321 US20100031004A1 (en) 2008-08-01 2009-06-08 Arithmetic device

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2008199789A JP2010039625A (ja) 2008-08-01 2008-08-01 並列演算装置

Publications (1)

Publication Number Publication Date
JP2010039625A true JP2010039625A (ja) 2010-02-18

Family

ID=41609518

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2008199789A Withdrawn JP2010039625A (ja) 2008-08-01 2008-08-01 並列演算装置

Country Status (2)

Country Link
US (1) US20100031004A1 (ja)
JP (1) JP2010039625A (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011008773A (ja) * 2009-05-22 2011-01-13 Canon Inc 情報処理装置、回路、情報処理方法、及びプログラム
JP2021114353A (ja) * 2017-06-02 2021-08-05 ウルトラメモリ株式会社 半導体モジュール

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10175980B2 (en) * 2016-10-27 2019-01-08 Google Llc Neural network compute tile

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6167502A (en) * 1997-10-10 2000-12-26 Billions Of Operations Per Second, Inc. Method and apparatus for manifold array processing
IL135953A0 (en) * 1997-11-07 2001-05-20 Bops Inc Methods and apparatus for efficient synchronous mimd operations with ivliw pe-to-pe communication
US6185667B1 (en) * 1998-04-09 2001-02-06 Teranex, Inc. Input/output support for processing in a mesh connected computer
JP2006127460A (ja) * 2004-06-09 2006-05-18 Renesas Technology Corp 半導体装置、半導体信号処理装置、およびクロスバースイッチ

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011008773A (ja) * 2009-05-22 2011-01-13 Canon Inc 情報処理装置、回路、情報処理方法、及びプログラム
JP2021114353A (ja) * 2017-06-02 2021-08-05 ウルトラメモリ株式会社 半導体モジュール

Also Published As

Publication number Publication date
US20100031004A1 (en) 2010-02-04

Similar Documents

Publication Publication Date Title
US11609769B2 (en) Configuration of a reconfigurable data processor using sub-files
US11983140B2 (en) Efficient deconfiguration of a reconfigurable data processor
US20230289310A1 (en) Top level network and array level network for reconfigurable data processors
US10282338B1 (en) Configuring routing in mesh networks
US11580056B2 (en) Control barrier network for reconfigurable data processors
CN112395819A (zh) 统一的可编程计算存储器和配置网络
US8769458B2 (en) Prototype verification system and verification method for high-end fault-tolerant computer
EP3729261B1 (en) A centralized-distributed mixed organization of shared memory for neural network processing
US11750195B2 (en) Compute dataflow architecture
US7409529B2 (en) Method and apparatus for a shift register based interconnection for a massively parallel processor array
JP2010039625A (ja) 並列演算装置
TWI764105B (zh) 經排列環網互連計算架構
CN103914429A (zh) 用于粗粒度动态可重构阵列的多模式数据传输互连器
Romashikhin Implementation of Regular Topologies for NoCs Based on schoolMIPS Soft-Processor Cores
JP2008085864A (ja) 半導体装置
JPWO2012056547A1 (ja) 情報処理システム、ルーティング方法及びプログラム
JPH04225483A (ja) 情報処理装置

Legal Events

Date Code Title Description
A711 Notification of change in applicant

Free format text: JAPANESE INTERMEDIATE CODE: A712

Effective date: 20100602

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20110331

A761 Written withdrawal of application

Free format text: JAPANESE INTERMEDIATE CODE: A761

Effective date: 20120117