(57)【要約】【課題】複数の演算単位ブロックで構成される基本ブロックのサイズを低減するとともに、高速動作を実現する。【解決手段】行列状に単位ブロック（４００）を配置し、隣接単位ブロックを接続する。行列状に配列される単位ブロックに対し、連続ブロック番号を閉ループ曲線を描くように付す。最小分割可能単位ブロックの境界領域において、単位ブロックの入力ポートにセレクタ（４５０Ａ，４５０Ｂ）を配置し、この境界領域において単位ブロックの出力配線を隣接単位ブロックおよび対向単位ブロックの入力セレクタに接続する。セレクタの接続経路を切換えることにより、基本ブロックのブロックサイズを変更する。【選択図】図４０
2010039625.tif 000002
【特許請求の範囲】
【請求項１】
第１および第２の方向に整列して配置される複数の単位ブロックを含む基本ブロックを備え、前記基本ブロックは、複数の最小分割可能基本ブロックに分割可能であり、かつ前記最小分割可能基本ブロックにおいては隣接単位ブロックが配線により接続され、
前記第１の方向における前記最小分割可能基本ブロックの境界領域において、各最小分割可能基本ブロックの単位ブロックに対応して設けられ、対応の単位ブロックの接続経路をブロックサイズに応じて切換える複数のセレクタ、および
前記複数のセレクタにおいて、前記第１および第２の方向において隣接して配置される単位ブロックに対して設けられるセレクタを接続する配線を備える、並列演算装置。
【請求項２】
各前記単位ブロックは、データ入力部とデータ出力部とを有し、
前記セレクタは、対応の単位ブロックの入力部に対応して設けられ、
前記配線は、前記対応の単位ブロックのデータ出力部を前記第１および第２の方向において隣接する単位ブロックのセレクタに結合するように配置される、請求項１記載の並列演算装置。
【請求項３】
前記セレクタは、前記配線が、前記最小分割化可能基本ブロックにおいて１箇所の隣接単位ブロック間の配線接続経路を除いて前記最小分割可能基本ブロック各々において単位ブロックをすべて接続する際の接続経路と同じ接続経路を有するようにブロックサイズに応じて配線接続経路を確立する、請求項１記載の並列演算装置。
【請求項４】
前記基本ブロックは、２のＮ乗個の単位ブロックを備え、前記２のＮ乗個の単位ブロックは、各々が２の（Ｎ−１）乗個の単位ブロックを含む縮小基本ブロックに分割可能とされ、
前記セレクタは、前記単位ブロックの配線レイアウトを隣接縮小基本ブロック間での隣接単位ブロック部を除いて配線接続経路を維持するように配線を選択し、
前記２つの縮小基本ブロックは、単独で用いられて小規模並列演算装置を構成する場合には、同一態様の配線接続経路を有する、請求項１記載の並列演算装置。
【請求項５】
各前記縮小基本ブロックにおいては、接続経路に沿って順次単位ブロックに対してブロック番号が付され、
前記２つの縮小基本ブロックにおいて、第１の縮小基本ブロックの単位ブロックの先頭および最終ブロック番号の単位ブロックが、第２の縮小基本ブロックの最終および先頭ブロック番号の単位ブロックとそれぞれ隣接して配置されるように、前記基本ブロックにおいて配線接続経路が形成される、請求項４記載の並列演算装置。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、並列演算装置に関し、特に、複数のプロセッサ（処理装置）が並列に演算処理を実行する並列演算装置の拡張性（スケーラビリティ）を改善するためのプロセッサ（処理装置）の配置に関する。
【背景技術】
【０００２】
近年、携帯端末機器の普及に伴い、音声や画像などの大量のデータを高速に処理するデジタル信号処理の重要性が高くなっている。一般的に、デジタル信号処理には、専用の半導体装置としてＤＳＰ（デジタル・シグナル・プロセッサ）が用いられる。ＤＳＰは、レジスタおよび演算器を備え、１クロックサイクルで１つの演算処理を実行することができる。しかしながら、データは、逐次処理されるため、処理対象のデータ量が非常に多い場合には、専用のＤＳＰを用いても、その処理性能を飛躍的に向上させることは困難である。たとえば、演算対象データが１万組ある場合には、１つ１つのデータに対する演算を１マシンサイクルで実行することができたとしても、最低でも、１万サイクルが演算に必要とされる。すなわち、１つ１つの処理は高速であるものの、データ処理が直列に実行されるため、データ量が大きくなると、それに比例して処理時間が大きくなる。
【０００３】
処理対象のデータ量が多い場合には、並列演算により、その処理性能を向上させることが可能である。すなわち、コアプロセッサを複数個用意し、これらの複数のコアプロセッサを並列に動作させ、データ処理を並行して行なう。この複数のコアプロセッサを用いるマルチコアシステムには、複数のデータに対して同じ演算を行なうＳＩＭＤ（single instruction stream multiple data stream ：単一命令流複数データ流）方式および複数のデータに対し異なる演算を行なうＭＩＭＤ（multiple instruction stream multiple data stream：複数命令流複数データ流）方式などがある。
【０００４】
ＳＩＭＤ方式の並列演算処理装置の構成の一例が、たとえば、特許文献１（特開２００６−１２７４６０号公報）に示されている。この特許文献１に示される構成においては、複数の演算処理エレメントが並列に配置され、これらの複数の演算処理エレメントに対応してメモリセルエントリが設けられる。このエントリに演算処理対象のデータが格納され、各エントリにおいてビットシリアル態様で演算処理が実行される。ビットシリアル態様は、多ビットデータを１ビットずつ処理する態様である。
【０００５】
演算処理が、多ビットデータに対しビットごとに実行されるため、１つの演算対象のデータの処理時間が、そのビット幅により規定される。しかしながら、複数のエントリの処理データが、対応の演算処理ユニットにおいて並列して処理されるため、結果として、演算処理速度を改善することができる。たとえば、ビットシリアル態様の演算において、演算処理対象のデータの演算処理ユニットへのロード、演算および演算結果のストアに各１マシンサイクルが割当てられた場合、各エントリの演算においては、データワードのビット幅がＮの場合、４・Ｎマシンサイクルが必要となる（各エントリに演算対象のデータａおよびｂがともに格納されていて、データａおよびｂのビットを逐次ロードする場合）。エントリがＭ個設けられている場合、演算処理時間については、４・Ｎマシンサイクルで、Ｍ個のデータについての演算結果を得ることができる。
【０００６】
ＮビットのデータのＭ個の組をシーケンシャルに処理する場合には、演算結果を得るためには、Ｍマシンサイクルが必要とされる。通常、処理データは、３２ビットから６４ビットである。従ってエントリ数Ｍが、例えば１２８と、データビット幅よりも大きい場合には、並列演算により処理時間を短縮することができる。特に、エントリ数Ｍが大きくなれば、その処理性能の改善は顕著となる。たとえば、エントリ数Ｍが１０２４であり、データビット幅Ｎが８ビットの場合、１エントリの演算処理に必要とされる処理時間は４・８＝３２マシンサイクルであり、この３２マシンサイクルで１０２４組のデータの処理結果を得ることができる。
【０００７】
また、マルチコアプロセッサの別の構成として、タイルと称されるタイル状のプロセッサコアを行列状に配置し、行列状に配置されるプロセッサコアの間に格子状にデータ通信バスが配置される構成が、非特許文献１（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）にまた示されている。この非特許文献２に示される構成においては、各タイルが、プロセッサ素子とルータとで構成される。配線が、タイルプロセッサに対しメッシュ状に配置され、各タイルプロセッサ内のルータにより、データ／命令の転送が行なわれる。このタイルプロセッサ内のルータにより、内部アクセスおよび反射タイルに対する上下左右（東西南北）の通信バスに対するデータ通信を可能にする。このルータにより、隣接プロセッサ間、のみならず、最短ルートでのタイルプロセッサ間通信および特定のタイルの迂回などのルーティングを可能にする。この非特許文献２に示される構成においても、各タイルプロセッサを、パイプライン的に隣接する単位プロセッサ間で連係させて処理を実行する。隣接するタイルプロセッサを連係させることにより、配線遅延を最小に抑制して、複数パイプラインを並列に走らせることを図る。
【特許文献１】特開２００６−１２７４６０号公報
【非特許文献１】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
【発明の開示】
【発明が解決しようとする課題】
【００１０】
処理装置に要求される性能は、処理用途に応じて異なる。通常は、複数種類の仕様の処理装置が準備され、適用されるアプリケーションに対して最適な処理装置が選択されて使用される。
【００１１】
このような複数種類の仕様の要求に対応するために、個々の仕様に応じて処理装置を設計して異なる仕様の処理装置を構築する場合、設計効率が低下し、応じて、歩留まりが低下する。このため、性能が最適化された基本構成をライブラリ（マクロ）として準備し、要求された仕様に応じて、このライブラリ（マクロ）を選択的に使用して要求された仕様を満たすことができるのが、設計効率および歩留まりの観点からは好ましい。
【００１２】
前述の特許文献１に示される構成においては、複数の処理エレメントが並列に配置される基本ブロック（主演算回路）が複数個並列に内部データバスに結合される構成が示される。これらの複数の基本ブロックをループ状に隣接ブロック間配線により相互接続する。この隣接ブロック間配線による基本ブロックの相互接続により、基本ブロック（主演算回路）間のデータ転送の高速化を図り、また、処理システムの拡張を図る。
【００１３】
しかしながら、この特許文献１の構成の場合、基本ブロック（主演算回路）はループ状に隣接ブロック間配線により隣接ブロックの各処理エレメントが相互接続される構成が示されるだけであり、この場合、以下に説明するように基本ブロックの配置の自由度が制限される可能性がある。すなわち、基本ブロックを複数個用いて回路規模を増大させる場合、ループ状のブロック間配線を維持して行列状に稠密に基本ブロックを配置する構成を実現することが困難であり、拡張性の観点からまだ改良の余地があると考えられる。また、逆に、多数の基本ブロックを用いて大規模の処理システムを構築した場合、そのシステム構成およびブロック間配線の配置を維持して、小規模の処理システムに分割するのが困難となる。小規模のシステムへの分割可能な大規模のシステムを構築する場合、想定される小規模システムの配置に応じて基本ブロック間の配線を配置する必要があり、配線の占有面積が増大し、また、システム規模変更のための回路を、各配線に対応して配置する必要があり、面積が増大する。
【００１４】
また、非特許文献１および２に示されるようなタイルプロセッサをプロセッサコアとして用い、このプロセッサコアを行列状に配置してマルチプロセッサシステムを構成する場合、要求される仕様に応じてタイルプロセッサ（コアプロセッサ）が必要個最適配置される。このマルチコアプロセッサを、要求される仕様に応じてその規模を切換える構成、すなわち内部のタイルプロセッサの配置の切換については、非特許文献１および２においては何ら考慮されていない。
【００１５】
これらの非特許文献１および２に示される構成においては、タイルプロセッサ内に設けられるルータにより、マルチプロセッサ内部においては、タイルプロセッサ間の通信経路を任意に設定することができる。しかしながら、このマルチプロセッサ自体を、大規模プロセッサとして利用するための構成および小規模プロセッサとして利用するための構成を内部に配置する場合、隣接タイルプロセッサのルータに接続するメッシュ状配線（ネットワーク）を、要求される規模に応じてそれぞれ配置する必要があり、配線の占有面積が増大する。また、この配線経路を規模に応じて切換えるスイッチ構成が必要となり、また切換用スイッチの占有面積が増大するという問題が生じると考えられる。
【００１６】
それゆえ、この発明の目的は、マルチプロセッサ型並列演算装置の回路規模を、配線占有面積を増大させることなく、また内部配線遅延を増大させることなく容易に変更することのできる並列演算装置を提供することである。
【課題を解決するための手段】
【００１７】
この発明に係る並列演算装置は、第１および第２の方向に整列して配置される単位ブロックを有する基本ブロックで構成される。この基本ブロックは、最小分割可能基本ブロックに分割可能である。第１の方向における最小分割可能ブロック間に各単位ブロックに対応してセレクタを設ける。配線により、第１および第２の方向において隣接して配置される単位ブロックに対して設けられるセレクタを接続する。このセレクタの接続経路をブロックサイズに応じて切換える。
【発明の効果】
【００１８】
最小分割可能基本ブロックの境界領域においてセレクタを設け、このセレクタによりブロックサイズに応じて配線接続経路を切換える。最小分割可能基本ブロック内においては隣接単位ブロックが配線により結合される。従って、ブロックサイズに係わらず、単位ブロック間の配線は、隣接単位ブロック間のみに配置され、配線のレイアウト面積を低減でき、また配線遅延による信号伝搬遅延を低減することができる。
【００１９】
また、最小分割可能基本ブロックの接続経路を切換えるだけであり、最小分割可能基本ブロックを複数個配置して並列演算装置の規模を拡張することができ、また、逆に並列演算装置の規模を低減することができ、スケーラビリティを改善することができる。
【発明を実施するための最良の形態】
【００２０】
［実施の形態１］
図１は、この発明の実施の形態１に従う並列演算装置の単位ブロックの構成の一例を概略的に示す図である。図１において、単位ブロックは、データを記憶するデータレジスタ回路１Ｌおよび１Ｒと、これらのデータレジスタ回路１Ｌおよび１Ｒの格納データに対し並列に演算を実行する演算処理部２を含む。データレジスタ回路１Ｌは、複数のエントリＥＲＬ０−ＥＲＬｎを含み、また、データレジスタ回路１Ｒも、複数のエントリＥＲＲ０−ＥＲＲｎを含む。これらのエントリＥＲＬ０−ＥＲＬｎおよびＥＲＲ０−ＥＲＲｎは、各々ｎビット幅に配列されるメモリセルを有し、それぞれ演算対象のデータおよび演算結果データを格納する。
【００２１】
演算処理部２は、エントリＥＲ０，ＥＲＲ０−ＥＲＬｎ，ＥＲＲｎそれぞれに対応して設けられる処理エレメント（プロセッサコア）ＰＥ０−ＰＥｎを含む。これらの処理エレメント（プロセッサコア）ＰＥ０−ＰＥｎの各々は、加算演算、減算演算、ＮＯＴ演算、ＡＮＤ演算、ＯＲ演算およびＸＯＲ演算を行なう機能を有し、与えられたデータに対し、指定された演算処理を実行する。この演算処理においては、データレジスタ回路１Ｌおよび１ＲのエントリＥＲＬ０−ＥＲＬｎおよびＥＲＲ０−ＥＲＲｎからは、演算対象のデータの組が、ビット単位で処理エレメントＰＥ０−ＰＥｎへ転送され、ビット毎の演算結果が、それぞれ指定されたエントリに格納される。
【００２２】
処理エレメントＰＥ０−ＰＥｎが並列に演算処理を実行するため、エントリ数を増加させることにより、ビットシリアル態様での演算でも、高速で演算処理を実行することができる。
【００２３】
演算処理部２に対し、ＡＬＵ間接続切換回路３として、アップＡＬＵ間接続切換回路３ＵおよびダウンＡＬＵ間接続切換回路３Ｄが設けられる。これらのＡＬＵ間接続切換回路３Ｕおよび３Ｄは、演算処理部２に含まれる処理エレメントＰＥ０−ＰＥｎの間のデータ転送経路を切換える。
【００２４】
アップＡＬＵ間接続切換回路３Ｕは、処理エレメントＰＥｎから処理エレメントＰＥ０に向かってのデータ転送経路を形成し、ダウンＡＬＵ間接続切換回路３Ｄは、処理エレメントＰＥ０から処理エレメントＰＥｎに向かってのデータ転送経路を形成する。これらのＡＬＵ間接続切換回路３Ｕおよび３Ｄは、それぞれ１エントリ、２エントリ、４エントリ、…離れた処理エレメントに対するデータ転送経路を切換えることが可能である。これにより、たとえば処理エレメントＰＥ０で演算処理した結果を、処理エレメントＰＥｎへ転送することができる。
【００２５】
この単位ブロックにおいては、さらに制御回路５およびバスインターフェイス部６が設けられる。制御回路５内には命令メモリが設けられ、この命令メモリに格納される命令に従って、制御回路５が、データレジスタ回路１Ｌおよび１Ｒへのデータのロード／ストアおよび演算ビット位置指定を実行し、また、演算処理部２における処理演算の指定を行う。また、この制御回路５により、ＡＬＵ間接続切換回路３Ｕおよび３Ｄの接続経路が設定される。
【００２６】
バスインターフェイス部６は、外部データバス７と内部データバス４の間のデータ転送を実行する。内部データバス４を介してデータレジスタ回路１Ｌおよび１Ｒに対するデータの書込／読出が行なわれる。バスインターフェイス部６においては、データの配列を変換する直交変換回路が設けられていても良い。この直交変換回路は、内部データバス４上のビットシリアルかつワードパラレルなデータ列を、ビットパラレルかつワードシリアルなデータ列に変換する。「ビットシリアルかつワードパラレル」は、複数のワードの同一位置のビットが並列に転送／処理される態様を示し、「ビットパラレルかつワードシリアル」は、ワードを構成するデータビットが、ワード単位で並列に転送／処理される態様を示す。
【００２７】
なお、図１において、データレジスタ回路１Ｌおよび１Ｒのエントリのビットを選択するための選択回路（行選択回路）が配置されるが、図１においては、図面を簡略化するために示していない。通常、複数のエントリに共通にワード線が配置され、各エントリごとにビット線が配置され、ビット線がエントリの選択ビット（メモリセル）と対応の処理エレメントの間のデータ転送路として利用される。
【００２８】
図２は、図１に示すＡＬＵ間接続切換回路３の構成を概略的に示す図である。図２において、ＡＬＵ間接続切換回路３において、アップシフトバス１０Ｕおよびダウンシフトバス１０Ｄが設けられる。これらのシフトバス１０Ｕおよび１０Ｄは、それぞれ、エントリ数の２倍に等しいビット幅、すなわち２・（ｎ＋１）ビット幅を有し、それぞれ１対１態様で、処理エレメントＰＥ０−ＰＥｎに結合される。
【００２９】
エントリＥＲＬ０−ＥＲＬｎそれぞれに対応して、アップシフタおよびダウンシフタの組が設けられる。すなわち、エントリＥＲＬ０−ＥＲＬｎに対してアップシフタＵＳＦＬ０−ＵＳＦＬｎが設けられ、シフト制御信号ＳＦＴＬに従って対応のエントリＥＲＬ０−ＥＲＬｎをアップシフトバス１０Ｕを介して、指定されたエントリ数離れた処理エレメントに結合する。このシフト幅は、シフト制御信号ＳＨＦＴＬにより決定される。同様、エントリＥＲＬ０−ＥＲＬｎに対応してダウンシフタＤＳＦＬ１−ＤＳＦＬｎが設けられ、同様、シフト制御信号ＳＨＦＴＬに従って対応のエントリＥＲＬ０−ＥＲＬｎをダウンシフトバス１０Ｄを介して、指定されたビット数シフトダウンして対応の処理エレメントに結合する。
【００３０】
エントリＥＲＲ０−ＥＲＲｎに対応してもアップシフタＵＳＦＲ０−ＵＳＦＲｎおよびダウンシフタＤＳＦＲ０−ＤＳＦＲｎがそれぞれ設けられる。アップシフタＵＳＦＲ０−ＵＳＦＲｎは、エントリＥＲＲ０−ＥＲＲｎを、シフト制御信号ＳＨＦＴＲに従ってアップシフトバス１０Ｕを介して、設定されたエントリ数シフトアップした位置の処理エレメントに結合する。ダウンシフタＤＳＦＲ−ＤＳＦＲｎも同様、シフト制御信号ＳＨＦＴＲに従ってエントリＥＲＲ０−ＥＲＲｎを、ダウンシフトバス１０Ｄを介して、指定されたエントリ数シフトダウンした位置の処理エレメントに結合する。
【００３１】
アップシフタＵＳＦＬ０−ＵＳＦＬｎ、ＵＳＦＲ０−ＵＳＦＲｎとアップシフトバス１０Ｕが、図１に示すアップＡＬＵ間接続切換回路３Ｕに対応し、ダウンシフタＤＳＦＬ０−ＤＳＦＬｎおよびＤＳＦＲ０−ＤＳＦＲｎおよびダウンシフトバス１０Ｄが、図１に示すダウンＡＬＵ間接続切換回路３Ｄに対応する。
【００３２】
このＡＬＵ間接続切換回路３を利用することにより、単位ブロック内において、エントリ間のデータ転送を行なうことができる。
【００３３】
図３は、図１に示すアップシフトＵＳＦＬ０−ＵＳＦＬｎおよびダウンシフタＤＳＦＬ０−ＤＳＦＬｎの構成の一例を概略的に示す図である。図３においては、エントリとして、８エントリＥＲＲ０−ＥＲＲ７が設けられる場合のアップシフタおよびダウンシフタの構成を概略的に示す。
【００３４】
アップシフトバス１０Ｕにおいて、アップシフタＵＳＦＬ０−ＵＳＦＬ７に対応して左側アップシフトデータバス１０ＵＬが配置される。アップシフタＵＳＦＬ０−ＵＳＦＬ７は、各々、０ビット、１ビット、２ビットおよび４ビットのアップシフト動作を実行する。左側アップシフトデータバス１０Ｌにおいては、図３において、矢印で示すように、各シフトエントリ数に応じて配線が配置される。図３において、●がデータ転送元を示し、矢印がデータ転送先を示す。なお、図３においては、０ビットシフトを行う部分の構成については示していない。シフタの詳細構成については、後に説明するが、各エントリに対応して内部データ出力線が配置され、この内部データ出力線上の対応のエントリのデータが、シフトバスを介して転送される。この内部データ出力線については、図３においては、図面を簡略化するために示していない。
【００３５】
エントリＥＲＬ０−ＥＲＬ７それぞれに対して、内部データ転送線１５Ｌ０−１５Ｌ７が設けられ、これらの内部データ転送線１５Ｌ０−１５Ｌ７は、それぞれ、処理エレメントＰＥ０−ＰＥ７に接合される。このデータ転送線１５Ｌ０−１５Ｌ７を介して、対応のエントリからのデータを、０ビット、１ビット、２ビットおよび４ビットアップシフトして対応の処理エレメントに転送する。なお、０ビットシフト動作時においては、対応のエントリＥＲＬｉが内部データ線１５Ｌｉを介して対応の処理エレメントＰＥｉに結合される。
【００３６】
左側アップシフトデータバス１０ＵＬにおいて、１ビットアップシフトバスＵＬ１、２ビットアップシフトバスＵＬ２および４ビットアップシフトバスＵＬ４が設けられる。これらのアップシフトバスＵＬ１、ＵＬ２およびＵＬ４と、内部データ転送線１５Ｌ０−１５Ｌ７の交差部に対応して、アップシフタＵＳＦＬ０−ＵＳＦＬ７が設けられる。
【００３７】
１ビットアップシフトバスＵＬ１は、エントリＥＲＬ７−ＥＲＬ０のデータを、エントリＥＲＬ６−ＥＲＬ０およびＥＲＬ７に対して配置される内部データ転送線に転送する。ここで、シフト動作時においては、１つのブロック内においてサイクリックにデータのシフト動作が行なわれる。
【００３８】
２ビットアップシフトバスＵＬ２においては、エントリＥＲＬ７−ＥＲＬ７のデータが、２エントリシフトアップされて、エントリＥＲＬ５−ＥＲＬ０に対応して配置される内部データ線にそれぞれ転送され、エントリＥＲＬ１のデータは、エントリＥＲＬ７に対応して配置される内部データ線１５Ｌ７に転送され、エントリＥＲＬ０のデータは、エントリＥＲＬ６に対応して配置される内部データ線１５Ｌ６に転送される。
【００３９】
４ビットアップシフトバスＵＬ４においては、１つ離れたエントリに対するデータの転送が行なわれる。すなわち、エントリＥＲＬ７−ＥＲＬ４のデータが、エントリＥＲＬ３−ＥＲＬ０にそれぞれ転送される。エントリＥＲＬ３−ＥＲＬ０のデータは、それぞれ、エントリＥＲＬ７−ＥＲＬ４にそれぞれ転送される。
【００４０】
このアップシフトデータバス１０Ｌにおいては、配線は、連続的に延在して配置され、必要なシフトエントリ数に応じて配線接続が選択的に形成されて、シフト経路が形成される。
【００４１】
ダウンシフトバス１０Ｌにおいても、この左側のエントリＥＲＬ０−ＥＲＬ７に対応して、左側ダウンシフトデータバス１０ＤＬが設けられる。左側ダウンシフトデータバス１０ＤＬにおいても、１エントリダウンシフトバスＤＬ１、２エントリダウンシフトバスＤＬ２および４エントリダウンシフトバスＤＬ４が設けられる。このダウンシフトバスＤＬ１−ＤＬ４と内部データ転送線１５Ｌ０−１５Ｌ７の交差部に対応して、ダウンシフタＤＳＦＬ０−ＤＳＦＬ７が設けられる。
【００４２】
このダウンシフタＤＳＦＬ０−ＤＳＦＬ７においても、データ転送経路において、その転送元を●で示し、転送先を矢印で示す。このダウンシフタＤＳＦＬ０−ＤＳＦＬ７それぞれにおいても、１エントリシフトエレメント、２エントリシフトエレメントおよび４エントリシフトエレメントが設けられ、それぞれ１エントリ、２エントリおよび４エントリ下方向に離れたエントリへのデータ転送を実行する。このダウンシフトのデータ転送形態は、先のアップシフタＵＳＦＬ０−ＵＳＦＬ７におけるシフト動作と転送方向が逆なだけであり、その詳細説明は行なわない。
【００４３】
１エントリダウンシフトバスＤＳＬ１においては、図の下方向に隣接するエントリに対応する内部データ線へのデータ転送が行なわれ、２エントリシフトバスにおいては、図の下方向に１エントリ間をおいたエントリに対応する内部データ線へのデータ転送が行なわれ、４エントリシフトバスＤＬ４においては、図の下方向に３エントリ間をおいたエントリに対応して配置される内部データ線へのデータ転送が行なえる。すなわち、４エントリダウンシフト時、エントリＥＲＬｉからエントリＥＲＬ（ｉ＋４）へのデータ転送を行なうことができる。ここで、ｉは０から７であり、（ｉ＋４）は、モジュール７の演算で与えられる。このダウンシフト時においても、データのシフト動作はサイクリックに行われる。
【００４４】
この処理エレメントＰＥ０−ＰＥ７に対応して、エントリＥＲＲ０−ＥＲＲ７が設けられ、このエントリＥＲＲ０−ＥＲＲ７に対して設けられるアップシフタＥＳＦＲ０−ＥＳＦＲ７およびダウンシフタＤＳＦＲ０−ＤＳＦＲ７についても、同様のアップシフトおよびダウンシフト配線が配置される。
【００４５】
図３においては、この右側のエントリＥＲＲ０−ＥＲＲ７に対して設けられるアップシフタＵＳＦＲ０−ＵＳＦＲ７およびダウンシフタＤＳＦＲ０−ＤＳＦＲ７のシフト配線の構成については示していない。
【００４６】
図４は、図３に示すアップシフタＵＳＦＬ０−ＵＳＦＬ７およびダウンシフタＤＳＦＬ０−ＤＳＦＬ７の構成をより具体的に示す図である。図４においては、また、エントリＥＲＬ０−ＥＲＬ７の構成も合わせて示す。
【００４７】
エントリＥＲＬ０−ＥＲＬ７は、それぞれ、メモリセル列ＭＣＬ０−ＭＣＬ７と、センスアンプ／ライトドライバＳＡ／ＷＤ０−ＳＡ／ＷＤ７を有する。メモリセル列ＭＣＬ０−ＭＣＬ７は、エントリ延在方向に整列して配置される複数ビットのメモリセルを有する。メモリセルは、一例として、ＳＲＡＭ（スタティック・ランダム・アクセス・メモリ）セルで構成される。
【００４８】
センスアンプ／ライトドライバＳＡ／ＷＤ０−ＳＡ／ＷＤ７は、各々、データ読出用のセンスアンプおよびデータ書込用のライトドライバを含み、対応のメモリセル列ＭＣＬ０−ＭＣＬ７の選択メモリセルに対するデータの読出および書込を、それぞれセンスアンプおよびライトドライバにより実行する。
【００４９】
このセンスアンプ／ライトドライバＳＡ／ＷＤ０−ＳＡ／ＷＤ７それぞれに対応して、内部データ転送線１５Ｌ０−１５Ｌｎが置される。内部データ転送線１５Ｌ０−１５Ｌ７は、それぞれ、第１のデータ転送線２０Ｌ０−２０Ｌ７と第２のデータ転送線２１Ｌ０−２１Ｌ７との組を有する。第１のデータ転送線２０Ｌ０−２０Ｌ７は、それぞれ、スイッチング素子ＳＷ０−ＳＷ７により対応の第２のデータ転送線２１Ｌ０−２１Ｌ７に選択的に結合される。これらのスイッチング素子ＳＷ０−ＳＷ７は、それぞれシフト指示信号／ＳＦＴＬの活性化時、非導通状態とされる。シフト指示信号／ＳＦＴＬは、シフト動作時、Ｌレベルの活性状態に設定される。スイッチング素子ＳＷ０−ＳＷ７により０ビットシフト動作が実現される。
【００５０】
これらの第１のデータ転送線２０Ｌ０−２０Ｌ７は、また、後に説明するように、処理エレメントＰＥ０−ＰＥ７の出力部に結合される。
【００５１】
アップシフタＵＳＦＬ０−ＵＳＦＬ７は、各々、１エントリシフトドライバ２２ａ、２エントリシフトドライバ２２ｂ、および４エントリシフトドライバ２２ｃを含む。これらのシフトドライバ２２ａ、２２ｂおよび２２ｃは、それぞれ、シフト指示信号ＵＳＬ１−、ＵＳＬ２、およびＵＳＬ４に従って選択的に活性化され、対応の第１のデータ転送線２０Ｌ０−２０Ｌ７上のデータを、対応のエントリの第２のデータ転送線２１Ｌ０−２１Ｌ７に結合する。図４においては、ドライバ出力線の横にシフトエントリ数を示す。
【００５２】
ダウンシフタＤＳＦＬ０−ＤＳＦＬ７は、各々、１エントリダウンシフトドライバ２４ａ、２エントリダウンシフトドライバ２４ｂおよび４エントリダウンシフトドライバ２４ｃを含む。これらのダウンシフトドライバ２４ａ、２４ｂおよび２４ｃは、それぞれダウンシフト指示信号ＤＳＬ１、ＤＳＬ２およびＤＳＬ４に従って選択的に活性化され、対応の第１のデータ転送線２０Ｌ０−２０Ｌ７を、指定されたエントリに対応して配置される第２のデータ転送線２１Ｌ０−２１Ｌ７に結合する。
【００５３】
この図４においては、左側のアップシフトデータバス１０ＵＬおよび左側ダウンシフトデータバス１０ＤＬに対する構成を代表的に示す。ここで、右側のアップシフタＵＳＲ０−ＵＳＲ７およびダウンシフタＤＳＲ０−ＤＳＲ７においても、以下に説明するように、同様の構成が設けられる。
【００５４】
図５は、右側エントリＥＲＲ０−ＥＲＲ７に対して設けられるアップシフタＵＳＦＲ０−ＵＳＦＲ７およびダウンシフタＤＳＦＬ０−ＤＳＦＬ７の構成の一例を概略的に示す図である。
【００５５】
エントリＥＲＲ０−ＥＲＲ７も、それぞれ、メモリセル列ＭＣＲ０−ＭＣＲ７とセンスアンプ／ライトドライバＳＡ／ＷＤＲ０−ＳＡ／ＷＤＲ７とを含む。メモリセル列ＭＣＲ０−ＭＣＲ７においては、図４に示すメモリセル列ＭＣＬ０−ＭＣＬ７と同様に、メモリセルが整列して配置される。センスアンプ／ライトドライバＳＡ／ＷＤＲ０−ＳＡ／ＷＤＲ７は、対応のメモリセル列ＭＣＲ０−ＭＣＲ７の選択メモリセルに対するデータの読出／書込を行なう。
【００５６】
センスアンプ／ライトドライバＳＡ／ＷＤＲ０−ＳＡ／ＷＤＲ７それぞれに対応して第１のデータ転送線２０Ｒ０−２０Ｒ７が設けられ、また、第２の内部データ転送線２１Ｒ０−２１Ｒ７が、第１の内部データ転送線２０Ｒ０−２０Ｒ７と並行して配置される。第２の内部データ転送線２１ＲＯ−２１Ｒ７は、スイッチング素子ＳＷ０ｒ−ＳＷ７ｒを介して第１の内部データ転送線２０Ｒ０−２０Ｒ７に選択的に結合される。これらのスイッチング素子ＳＷ０ｒ−ＳＷ７ｒは、それぞれシフト指示信号／ＳＦＴＲの活性化時、非導通状態となり、非活性化時、導通して０ビットシフト動作を実現する。データ転送線２０Ｒ０−２０Ｒ７および２１Ｒ０−２１Ｒ７の組が、右側の内部データ転送線１５Ｒ０−１５Ｒ７に対応する（図５には、参照番号は示さず）。
【００５７】
シフトデータバスは、アップシフトデータバス１０ＵＲおよびダウンシフトデータバス１０ＲＤを含む。アップシフトデータバス１０ＵＲは、１エントリアップシフトバスＵＳＲ１、２エントリアップシフトバスＵＳＲ２および４エントリアップシフトデータバスＵＳＲ４を含む。ダウンシフトデータバス１０ＤＲは、１エントリダウンシフトバスＤＳＲ１、２エントリダウンシフトバスＤＳＲ２および４エントリダウンシフトデータバスＤＳＲ４を含む。これらのシフトバスを介して、指定されたエントリ数のシフト動作が行われる。
【００５８】
アップシフタＵＳＦＲ０−ＵＳＦＲ７は、それぞれ、第１のデータ転送線２０Ｒ０−２０Ｒ７に対して設けられ、各々、１エントリアップシフトドライバ２２ａｒ、２エントリアップシフトドライバ２２ｂｒおよび４エントリアップシフトドライバ２２ｃｒを含む。１エントリアップシフトドライバ２２ａｒは、アップシフト指示信号ＵＳＲ０の活性化時活性化され、隣接エントリに対するデータの転送を行なう。２エントリアップシフトドライバ２２ｂｒは、２エントリアップシフト指示信号ＵＳＲ２の活性化時活性化され、対応のエントリの第１のデータ転送線２０Ｒ０−２０Ｒ７上のデータを、２エントリ離れたエントリ（エントリＥＲＲ２に対するエントリＥＲＲ０）へ転送する。４エントリアップシフトドライバ２２ｃｒは、４エントリアップシフト指示信号ＵＳＲ４の活性化時活性化され、対応の第１のデータ転送線２０Ｒ０−２０Ｒ７を、４エントリ離れた位置のエントリの第２のデータ転送線２１Ｒ０−２１Ｒ７に結合する。これにより、第１のデータ転送線２０Ｒ０−２０Ｒ７が、シフト動作時、第２のデータ転送線２１Ｒ０−２１Ｒ７に結合される。
【００５９】
ダウンシフタＤＳＦＲ０−ＤＳＦＲ７は、各々、１エントリダウンシフトドライバ２４ａｒ、２エントリダウンシフトドライバ２４ｂｒおよび４エントリダウンシフトドライバ２４ｃｒを含む。１エントリダウンシフトドライバ２４ａｒは、１エントリダウンシフト指示信号ＤＳＲ１の活性化時活性化され、対応の第１のデータ転送線２０Ｒ０を、隣接エントリの第２のデータ転送線２１Ｒ１−２１Ｒ７、および２１Ｒ０に結合する。２エントリダウンシフトドライバ２４ｂｒは、２エントリダウンシフト指示信号ＤＳＲ２の活性化時に活性化され、対応の第１のデータ転送線２０Ｒｉを、２エントリ離れた位置の第２のデータ転送線２１Ｒ（ｉ＋２）に結合する。
【００６０】
４エントリダウンシフトドライバ２４ｃｒは、４エントリダウンシフト指示信号ＳＲ４の活性化時活性化され、対応の第１のデータ転送線２０Ｒｉを、４エントリ離れた位置の第２のデータ転送線１５Ｒ（ｉ＋４）に結合する。ここで、ｉは、０から７であり、（ｉ＋２）および（ｉ＋４）は、モジュール７の演算を示す。
【００６１】
処理エレメントＰＥ０−ＰＥ７は、第１のデータ転送線２０Ｌ０，２０Ｒ０−２０Ｌ７，２０Ｒ７と第２のデータ転送線２１Ｌ０，２１Ｒ０−２１Ｌ７，２１Ｒ７にそれぞれ結合され、指定された演算処理を実行する。
【００６２】
これらの図４および図５に示すように、シフト動作が行なわれない場合には、処理エレメントＰＥ０−ＰＥ７においては、スイッチング素子ＳＷ０−ＳＷ７およびＳＷ０ｒ−ＳＷ７ｒにより、対応の左側エントリＥＲＬ０−ＥＲＬ７と対応の右側エントリＥＲＲ０−ＥＲＲ７の選択メモリセルのデータについて演算処理を実行し、その演算結果を、対応のエントリの指定されたビット位置に格納する。
【００６３】
図６は、処理エレメントＰＥの構成の一例を示す図である。図６においては、処理エレメントＰＥｉの構成を代表的に示す。処理エレメントＰＥ０−ＰＥ７（ＰＥｎ）は、同一の構成を有する。
【００６４】
図６において、処理エレメントＰＥｉは、２つのセレクタ３０および３２と、セレクタ３０の出力データを格納するレジスタ回路３４と、レジスタ回路３４の格納データとセレクタ３２の出力データに対して所定の演算を行なう演算器３６を含む。
【００６５】
セレクタ３０は、選択信号ＳＥＬ１に従って第２のデータ転送線２１Ｌｉおよび２１Ｒｉ上のデータの一方を選択してレジスタ回路３４に転送する。セレクタ３２は、選択信号ＳＥＬ２に従って第２のデータ転送線２１Ｌｉおよび２１Ｒｉ上のデータの一方を選択して演算器３６へ与える。演算器３６は、たとえば全加算器で構成され、加減算を実行することができる。この演算器３６において、また、全加算機能のみならず、他の論理演算機能（ＮＯＴ演算、ＡＮＤ演算、およびＯＲ演算）が、全加算器の一部の構成を利用して実現するように構成されてもよい。
【００６６】
図６においては、演算器３６の出力データは、一例として、右および左の第１のデータ転送線２０Ｌｉおよび２０Ｒｉ両者に転送されるように示す。しかしながら、この演算器３６の出力データは、第２のデータ転送線２１Ｌｉおよび２１Ｒｉに、スイッチ回路を介して選択的に転送されてもよい。この構成の場合においても、図４および図５に示すスイッチング素子ＳＷ０−ＳＷ７およびＳＷ０ｒ−ＳＷ７ｒにより、それぞれ指定されたエントリのメモリセルに演算結果データを格納することができる。また、演算結果を、左右のいずれのデータレジスタ回路に格納するかは、処理内容または用途に応じて適宜定められれば良い。左右のデータレジスタ回路の指定されたデータレジスタ回路においてメモリセル選択が行われて、演算結果のストアが行われる。
【００６７】
図７は、この図６に示す処理エレメントＰＥの演算動作態様を概略的に示す図である。処理エレメントＰＥｉは、エントリＥＲＬａおよびＥＲＲｂの格納データに所定の演算処理を施して、その処理結果を、エントリＥＲＲｂに格納する。エントリＥＲＬａおよびＥＲＲｂは、メモリセル列を含み、複数ビットのデータ格納領域を有する。エントリＥＲＬａのポインタｐａが指定するビットａとエントリＥＲＲｂのポインタｐｂが指定するビットｂとが処理エレメントＰＥｉへ転送される（ロードされる）。処理エレメントＰＥｉにおいて所定の演算処理が実行され、その処理結果ｃが、エントリＥＲＲｂのポインタｐｃの指定する位置に格納される（ストアされる）。この処理態様により、データが、ビットシリアル態様で演算処理される。この処理動作時、複数の処理エレメントＰＥにおいて並列に演算が実行される。
【００６８】
この図１から図７に示す並列演算装置を用いて基本ブロックをライブラリとして形成する。このライブラリを用いて、並列演算機能を拡張／縮小する。
【００６９】
図８は、この発明の実施の形態１に従う並列演算装置の最小分割可能サイズの基本ブロック４０の構成の一例を概略的に示す図である。図８において、基本ブロック４０は、４つの単位ブロック♯０−♯３で構成される。大規模基本ブロック構成時、この基本ブロック４０が最小分割可能基本ブロックであり、実現可能最小ブロックサイズの基本ブロックである。
【００７０】
これらの単位ブロック♯０−♯３は、それぞれ、図１に示す構成を有するが、図８においては、単位ブロックの配線接続に関連するアップＡＬＵ間接続切換回路、ダウンＡＬＵ間接続切換回路および演算処理部の構成を代表的に示す。すなわち、単位ブロック♯０は、アップＡＬＵ間接続切換回路３Ｕ０、ダウンＡＬＵ間接続切換回路３Ｄ０および演算処理部２．０を有し、単位ブロック♯１は、アップＡＬＵ間接続切換回路３Ｕ１、ダウンＡＬＵ間接続切換回路３Ｄ１および演算処理部２．１を有する。単位ブロック♯２は、アップＡＬＵ間接続切換回路３Ｕ２、ダウンＡＬＵ間接続切換回路３Ｄ２および演算処理部２．２を有し、単位ブロック♯３は、アップＡＬＵ間接続切換回路３Ｕ３、ダウンＡＬＵ間接続切換回路３Ｄ３および演算処理部２．３を有する。
【００７１】
単位ブロック♯０のアップＡＬＵ間接続切換回路３Ｕ０の下流部は、配線（バス）４５を介して単位ブロック♯１のダウンＡＬＵ間接続切換回路３Ｄ１の上流部に結合される。ここで、上流部および下流部は、接続切換回路におけるシフト動作時のシフト始端側および終端側を示す。
【００７２】
同様、単位ブロック♯０のダウンＡＬＵ間接続切換回路３Ｄ０上流部は、配線（バス）４６を介して単位ブロック♯１のアップＡＬＵ間接続切換回路３Ｕ１の下流部に結合される。単位ブロック♯１のアップＡＬＵ間接族切換回路３Ｕ１の上流部は、配線５０を介して単位ブロック♯２のアップＡＬＵ間接続切換回路３Ｕ２の下流部に結合される。また、単位ブロック♯１のダウンＡＬＵ間接続切換回路３Ｄ１の下流部は、配線（バス）５１を介して単位ブロック♯２のダウンＡＬＵ間接続切換回路３Ｄ２の上流部に結合される。
【００７３】
単位ブロック♯２のアップＡＬＵ間接続切換回路３Ｕ２の上流部は、配線（バス）４７を介して単位ブロック♯３のダウンＡＬＵ間接続切換回路３Ｄ３の下流部に結合され、単位ブロック♯２のダウンＡＬＵ間接続切換回路３Ｄ２の下流部は、単位ブロック♯３のアップＡＬＵ間接続切換回路３Ｕ３の上流部に配線（バス）４８を介して結合される。
【００７４】
単位ブロック♯０において、アップＡＬＵ間接続切換回路３Ｕ０の上流部に対しセレクタ６０が設けられ、単位ブロック♯３のダウンＡＬＵ間接続切換回路３Ｄ３の上流部に対しセレクタ６２が設けられる。基本ブロックサイズの拡張時、これらのセレクタ６０および６２は、最小分割可能基本ブロック４０全体のデータ入力部に対して配置される。単位ブロック♯０および♯３の、一方にアップＡＬＵ間接族切換回路３Ｕ０に対してセレクタが配置されると、単位ブロック♯３のダウンＡＬＵ間切換回路３Ｕ３に対してセレクタが配置される。このセレクタの配置の規則性については、後に詳細に説明する。
【００７５】
セレクタ６０は、３つの入力ポートＵＰ０、ＵＰ１およびＵＰ２を含み、単位ブロック♯３のアップＡＬＵ間接続切換回路３Ｕ３の下流部が配線５４を介してセレクタ６０のポートＵＰ０に結合される。ポートＵＰ２およびＵＰ１は、基本ブロック４０拡張時の隣接単位ブロックの出力配線と結合するために設けられる。このセレクタ６０に出力配線５２が、単位ブロック♯０のアップＡＬＵ間接続切換回路３Ｕ０の下流部に結合される。
【００７６】
セレクタ６２は、ポートＤＰ０およびＤＰ１を含み、ポートＤＰ０が配線５３を介して単位ブロック♯０のダウンＡＬＵ間接続切換回路３Ｄ０の下流部に結合される。この配線５３は、また、分岐配線５７および５９に結合される。分岐配線５７および５９は、拡張時に、隣接または対向して配置される単位ブロックの入力用のセレクタに結合される。ポートＤＰ１は、図示しない隣接単位ブロックの出力配線に結合される。セレクタ６２の出力部が、配線５５を介して単位ブロック♯３のダウンＡＬＵ間接続切換回路３Ｄ３の上流部に結合される。
【００７７】
基本ブロック４０においては、配線４５、４６、４７、４８、４２、５３、５４および５５により、これらのアップＡＬＵ間接続切換回路３Ｕ０−３Ｕ３およびダウンＡＬＵ間接続切換回路３Ｄ０−３Ｄ３においてループ状に接続経路を形成することができ、また、この基本ブロック４０と同一構成の基本ブロックとの接続をデータ転送方向を維持して形成することができる。これにより、単位ブロック♯０−♯３各々を超えて、遠方の処理エレメントに対しデータ転送を行なうことができる。また、セレクタ６０および６２の接続経路を切換えることにより、並列演算装置の基本ブロックのサイズを変更することができる。
【００７８】
なお、この図８に示す基本ブロック４０において、単位ブロック♯０−♯３のバスインターフェイスおよび内部データバスの配置は示していない。基本ブロック４０に対して配置されるグローバルデータバスの配置に応じてこれらのバスインターフェイス部の内部バスの接続態様が適宜決定されればよい。したがって、グローバルデータバスに対し並列に、これらの単位ブロック♯０−♯３のバスインターフェイスが並列に結合されてもよく、また、処理エレメントと同様、バスインターフェイスおよび内部データバスを介して、ループ状に内部データバスにバスインターフェイス部が交互に結合されてもよい。
【００７９】
図９は、図８に示す基本ブロック４０の配線４５−４８および５２−５５の配置の一例を概略的に示す図である。図９においては、単位ブロック♯０−♯３の演算処理部２．０−２．３が、各々、８個の処理エレメントＰＥ０−ＰＥ７を有する場合の配線の配置構成を一例として示す。また、配線４５−４８および５０−５５としては、図面の煩雑化を避けるため、４エントリシフトする部分の配線接続を代表的に示す。
【００８０】
図９において、配線４５は、単位ブロック♯０のアップＡＬＵ間接続切換回路３Ｕ０における処理エレメントＰＥ０−ＰＥ３に対するアップシフト転送線ＵＬを、単位ブロック♯１のダウンＡＬＵ間接続切換回路３Ｄ１の処理エレメントＰＥ０−ＰＥ３に対して設けられるダウンシフト転送線ＤＬに接合する。このアップシフト転送線ＵＬが、処理エレメントＰＥに対して設けられる第１のデータ転送線（２０Ｒおよび２０Ｌ）および第２のデータ転送線（２１Ｌおよび２１Ｒ）、および対応して配置されるアップシフトドライバを示す。●印でこのアップシフトドライバを示す。転送先は、配線の矢印で示す。
【００８１】
配線４６は、単位ブロック♯１の処理エレメントＰＥ０−ＰＥ３に対して設けられるアップシフト転送線ＵＬを、単位ブロック♯０のダウンＡＬＵ間接続切換回路３Ｄ０の処理エレメントＰＥ０−ＰＥ３に対して設けられるダウンシフト転送線ＤＬに結合する。ここで、ダウンシフト転送線ＤＬは、アップシフト転送線ＵＬと同様、第２の内部データ転送線２１Ｌおよび２１Ｒ、および第１のデータ転送線２０Ｌおよび２０Ｒ、および対応して配置されるダウンシフトドライバを含む。
【００８２】
配線４８は、単位ブロック♯２の処理エレメントＰＥ４−ＰＥ７に対して設けられるダウンシフト線ＤＬを、単位ブロック♯３のアップＡＬＵ間接続切換回路３Ｕ３の処理エレメントＰＥ４−ＰＥ７に対して設けられるアップシフト線ＵＬに結合する。配線４９は、単位ブロック♯３のダウンＡＬＵ間接続切換回路３Ｄ３の処理エレメントＰＥ４−ＰＥ７に対して設けられるダウンシフト転送線ＤＬを、単位ブロック♯２のアップＡＬＵ間接続切換回路３Ｕ２の処理エレメントＰＥ４−ＰＥ７に対して設けられるアップシフト転送ＵＬに結合する。配線４７は、この単位ブロック♯３のダウンＡＬＵ間接続切換回路３Ｄ３の処理エレメントＰＥ４−ＰＥ７に対して設けられるダウンシフト転送線ＤＬを、単位ブロック♯２のアップＡＬＵ間接続切換回路３Ｕ２の処理エレメントＰＥ４−ＰＥ７に対して設けられるアップシフト転送線ＵＬに結合する。
【００８３】
配線５０は、単位ブロック♯２のアップＡＬＵ間接続切換回路３Ｕ２の処理エレメントＰＥ０−ＰＥ３に対して設けられるアップシフト転送線ＵＬを単位ブロック♯１の処理エレメントＰＥ４−ＰＥ７に対して設けられるアップシフト転送線ＵＬにそれぞれ結合する。配線５１は、この単位ブロック♯１のダウンＡＬＵ間接続切換回路３Ｄ１の処理エレメントＰＥ４−ＰＥ７に対して設けられるダウンシフト転送線ＤＬを、単位ブロック♯２のダウンＡＬＵ間接続切換回路３Ｄ２の処理エレメントＰＥ０−ＰＥ３に対して設けられるダウンシフト転送線ＤＬに結合する。
【００８４】
配線５２は、セレクタ６０により選択された配線を、単位ブロック♯０のアップＡＬＵ間接続切換回路３Ｕ０の処理エレメントＰＥ４−ＰＥ７に対して設けられるアップシフト転送線ＵＬに結合する。配線５３は、単位ブロック♯０のダウンＡＬＵ間接続切換回路３Ｄ０の処理エレメントＰＥ４−ＰＥ７に対して設けられるダウンシフト転送線ＤＬをセレクタ６２に結合する。
【００８５】
配線５４は、単位ブロック♯３の処理エレメントＰＥ０−ＰＥ３に対して設けられるアップシフト転送線ＵＬを、セレクタ６０のポート（ＵＰ０）に結合する。配線５５は、セレクタ６２の選択配線を、単位ブロック♯３のダウンＡＬＵ間接続切換回路３Ｄ３の処理エレメントのＰＥ０−ＰＥ３に対して設けられるダウンシフト転送線ＤＬに結合する。
【００８６】
これらの配線４５−４８および５０−５５においては、それぞれシフトエントリ数に応じて配線が配置され、そのビット幅が設定される。
【００８７】
このリング状にシフト経路を拡張する場合、単に、１つの単位ブロック内においてサイクリックにシフトアップ／ダウンする場合の接続経路を、内部に折り返す代わりに、単位ブロック外部へ拡張する。これは、単に配線の接続切換（マスク配線による経路設定）により実現される。
【００８８】
図１０は、図８に示す基本ブロック４０を用いて８個の単位ブロックで基本ブロックを構成した場合の構成の一例を示す図である。図１０において、基本ブロック４０に対し、１８０度の回転操作を施し、第２の基本ブロック４０Ａを形成する。この操作により、基本ブロック４０における単位ブロック♯０−♯３が１８０度回転操作されるため、第２の基本ブロック４０Ａにおいて、単位ブロック♯０−♯３が、それぞれ新たな単位ブロック♯４−♯７に対応する。単位ブロックの対応関係を図１０においては、単位ブロック♯４から♯７に対してカッコ内に対応の単位ブロックを示す。
【００８９】
単位ブロック♯０においてセレクタ６０が設けられ、単位ブロック♯３においてセレクタ６２が設けられる。単位ブロック♯７においてセレクタ６２が設けられ、単位ブロック♯４においてセレクタ６０が設けられる。
【００９０】
単位ブロック♯０のセレクタ６０のポート１（ＵＰ１）と、単位ブロック♯７のＡＬＵ間接続切換回路３Ｕ３の下流の配線５４を結合する。単位ブロック♯０のＡＬＵ間接続切換回路３Ｄ０の下流の配線５３から分岐した配線５９を、単位ブロック♯７のセレクタ６２のポート１（ＤＰ１）に結合する。単位ブロック♯３のセレクタ６２のポート１（ＤＰ１）に、単位ブロック♯４のＡＬＵ間接続切換回路３Ｄ０の下流の配線５３から分岐した配線５９を結合する。この単位ブロック♯３のＡＬＵ間接続切換回路３Ｕ３の上流部の配線５４を、単位ブロック♯４のセレクタ６０のポート１（ＵＰ１）に結合する。
【００９１】
基本ブロック４０の回転操作により、基本ブロック４０Ａが形成されており、単位ブロック♯４−♯７におけるＡＬＵ間接続切換回路におけるシフト方向は、ちょうど、基本ブロック４０と基本ブロック４０Ａとにおいて反対方向となる。単位ブロック♯０および♯４に含まれるセレクタ６０のポート１（ＵＰ１）を選択する状態に設定し、単位ブロック♯３および♯７に含まれるセレクタ６２を、ポート１（ＤＰ１）を選択する状態に設定する。セレクタ６２および６０の接続経路の設定は、基本ブロックに含まれる単位ブロック数に応じて設定される（たとえばマスク配線により）。
【００９２】
この図１０に示す８単位ブロックで構成される基本ブロック４０および４０Ａにおいて、セレクタ６０および６２を、単位ブロックのデータ入力部に配置し、単位ブロックからのデータ出力部を配線を介して隣接単位ブロックおよび対向して配置される単位ブロックのセレクタの入力に結合する。対向して配置される単位ブロックにおいてはセレクタは、一方の単位ブロックにおいてはアップＡＬＵ間接族切換回路の入力部（上流部）に対して配置し、他方の単位ブロックにおいてはダウンＡＬＵ間接族切換回路のデータ入力部（上流部）に対してセレクタを配置する。このセレクタ６０および６２の配置により、４単位ブロック構成および８単位ブロック構成において、単に接続経路を切換えるだけで、並列演算装置を構成する基本ブロックの単位ブロック数を変更することができる。
【００９３】
図１１は、図１０に示す配置のデータ転送経路を概略的に示す図である。この図１１に示すように、単位ブロック♯０のセレクタ６０は、単位ブロック♯７のＡＬＵ間接続切換回路３Ｕ３の下流側からの出力データを選択して、単位ブロック♯０のＡＬＵ間接続切換回路３Ｕ０の上流部に結合する。単位ブロック♯３のセレクタ６２は、単位ブロック♯４のダウンＡＬＵ間接続切換回路３Ｄ０の出力データを選択して、単位ブロック♯３のダウンＡＬＵ間接続切換回路３Ｄ３の上流部に伝達する。
【００９４】
単位ブロック♯７のセレクタ６２が、単位ブロック♯０のＡＬＵ間接続切換回路３Ｄ０の出力データを選択して、単位ブロック♯７のダウンＡＬＵ間接続切換回路３Ｄ３の上流部に伝達する。単位ブロック♯４のセレクタ６０は、単位ブロック♯３のアップＡＬＵ間接続切換回路３Ｕ３の下流側からの出力データを選択して、単位ブロック♯４のアップＡＬＵ間接続切換回路３Ｕ１の上流部に伝達する。この接続経路により、アップシフトおよびダウンシフト両者についてトーラス状にデータ伝達経路が形成される。
【００９５】
図１１に示すように、１つの最小基本ブロックの連続番号の先頭番号および最終番号が、増設基本ブロックの連続番号の最終番号および先頭番号にそれぞれ隣接するように基本ブロックを配置する。これにより、大規模基本ブロックにおいて、隣接単位ブロック間でのみデータ転送を行なう配線が必要とされるだけであり、配線レイアウト面積が低減され、また、配線距離が短く、信号データの伝搬遅延を低減することができる。また、基本ブロックのサイズを変更するためには、セレクタの接続経路を変更するだけであり、セレクタの経路設定は、基本ブロックのサイズに応じて、例えばマスク配線により、セレクタの経路設定信号の論理レベルを設定するだけであり、経路変更の制御回路が不要となる。
【００９６】
図１２は、図８に示す最小分割可能基本ブロック４０を用いて１６個の単位ブロックで基本ブロックを構成した場合の構成を概略的に示す図である。この図１２においては、単位ブロック♯０−♯７を１つの出発基本ブロックとして、この出発基本ブロックに対し１８０度回転操作を施し、新たな基本ブロック４０Ｂおよび４０Ｃを形成する。新たな基本ブロック４０Ｂおよび４０Ｃは、元の出発基本ブロックの基本ブロック４０および４０Ａの回転操作後のブロックに対応する。
【００９７】
この回転操作の配置により、１６個の単位ブロック♯０−♯１５を形成する。この場合、出発基本ブロックの単位ブロックの先頭ブロック番号♯０および最終ブロック番号♯７に隣接して、新たな増設基本ブロックの最終ブロック番号♯１５および先頭ブロック番号♯８が隣接するように配置される。最小分割可能基本ブロックの単位ブロックに対して連続番号が付される。
【００９８】
この配置において、基本ブロック４０Ａの単位ブロック♯７のＡＬＵ間接続切換回路３Ｕ３の下流側の配線５４が、追加単位ブロック♯８のセレクタ６０のポート２（ＤＰ２）に結合される。この単位ブロック♯８のＡＬＵ間接続切換回路３Ｄ０の下流の配線５３が、単位ブロック♯７のセレクタ６２のポート１（ＤＰ１）にまた結合される。この単位ブロック♯８のＡＬＵ間接続切換回路３Ｄ０の下流の配線５３は、また、単位ブロック♯０のセレクタ６０のポート１（ＤＰ１）に結合される。
【００９９】
単位ブロック♯０のセレクタ６０のポート２（ＤＰ２）に接続される部分は、単位ブロック♯１５のＡＬＵ間接続切換回路３Ｕ３の下流の配線５４に結合される。この単位ブロック♯０−♯７の他の接続態様は、先の図１０に示す接続態様と同じであり、また単位ブロック♯８−♯１５の残りの配線も、この単位ブロック♯０−♯７の配線接続態様と同じ（対称的）である。図１０に示す配線と対応する配線に対しては同一参照番号を付して、その詳細説明は、省略する。
【０１００】
回転操作を行っているため、図１２に示す構成において、単位ブロック♯４から♯１１においては、アップシフトＡＬＵ間接続切換回路３Ｕのシフト方向が、図の下方向となりダウンＡＬＵ間接続切換回路３Ｄのシフト方向が図の上方向となる。セレクタ６０および６２の配置の規則性は、先の図１０に示す構成と同じであり、最小分割可能基本ブロック（４単位ブロックで構成される基本ブロック）においてデータ入力部にセレクタが設けられ、データ出力配線を隣接および対向する単位ブロックのセレクタに結合する。また、隣接および対向する単位ブロック間においては、異なるセレクタ（６０，６２）が配置される。
【０１０１】
図１３は、図１２に示す演算ブロック（並列演算装置）の１６単位ブロック構成時のデータ伝搬経路を概略的に示す図である。図１３において、単位ブロック♯４のセレクタ６０は、単位ブロック♯３のＡＬＵ間接続切換回路３Ｕ３の出力データを選択して、単位ブロック♯４のＡＬＵ間接続切換回路３Ｕ１の上流部に転送する。単位ブロック♯７のセレクタ６２は、単位ブロック♯８のＡＬＵ間接続切換回路３Ｄ０の出力データを配線５３を介して受けて、単位ブロック♯７のＡＬＵ間接続切換回路３Ｄ３の上流部に転送する。
【０１０２】
単位ブロック♯８のセレクタ６０は、単位ブロック♯７のＡＬＵ間接続切換回路３Ｕ３の出力データを選択して、この単位ブロック♯８のＡＬＵ間接続切換回路３Ｕ０の上流部に伝達する。単位ブロック♯１１のセレクタ６２は、単位ブロック♯１２のＡＬＵ間接続切換回路３Ｅ０の出力データを選択して、この単位ブロック♯１１のＡＬＵ間接続切換回路３Ｄ３の上流部に転送する。
【０１０３】
単位ブロック♯１２のセレクタ６０は、単位ブロック♯１１のＡＬＵ間接続切換回路３Ｕ３の出力配線５４を単位ブロック♯１２のＡＬＵ間接続切換回路３Ｕ０の上流部に結合する。単位ブロック♯１５のセレクタ６２は、単位ブロック♯０のＡＬＵ間接続切換回路３Ｄ０の出力データを配線５３および５７を介して受けて、この単位ブロック♯１５のＡＬＵ間接続切換回路３Ｄ３の上流部に転送する。
【０１０４】
この図１３に示す構成において、１６個の単位ブロック♯０−♯１５において連続的に付されたブロック番号により、閉ループデータ転送経路が形成される。このセレクタ６０および６２の接続経路を、基本クロックのサイズに応じて設定することにより、各々８単位ブロックの２つの基本ブロック（基本ブロック４０および４０Ａで構成される基本ブロックおよび基本ブロック４０Ｃおよび４０Ｄで構成される基本ブロック）、各々４単位ブロックの４個の基本ブロック（基本ブロック４０、４０Ａ、４０Ｂ、４０Ｃ、および４０Ｄ）に分割することができる。これらの単位ブロック♯０−♯１５において、隣接単位ブロック間においてのみデータの転送経路が形成されており、配線遅延を伴うことなく、高速でデータの転送を行なうことができる。
【０１０５】
また、単位ブロックを超えてデータの転送を行なうことができ、任意の数のエントリ間でのデータ転送をも実現することができる。
【０１０６】
図１４は、この発明の実施の形態１に従う並列演算装置のブロックサイズ拡張・縮小可能構成を実現する動作を概略的に示す図である。図１４においては、４つの出発基本ブロックＦＢａ−ＦＢｄが設けられる。出発基本ブロックＦＢａは、単位ブロック♯０−♯Ｍを有する。この出発基本ブロックＦＢａにおいては、単位ブロック♯０−♯Ｍにおいてループ状にデータ転送経路を形成することができるようにセレクタが配置されている（最小分割可能基本ブロックの境界領域において単位ブロックの入力部にセレクタ６０および６２が交互に配置される（隣接単位ブロックおよび対向単位ブロックにおいて異なるセレクタ６０および６２が配置される））。
【０１０７】
出発基本ブロックＦＢａを用いて回転操作により、出発基本ブロックＦＢｂが形成される。この場合、出発基本ブロックＦＢａの単位ブロックの先頭ブロック番号♯０および最終ブロック番号♯Ｍにそれぞれ隣接するように、出発基本ブロックＦＢｂの最終ブロック番号♯Ｍ＋Ｋ（＝♯Ｍ＋Ｍ＋１）および先頭ブロック番号♯Ｍ＋１を配置する。出発基本ブロックＦＢｂの単位ブロック♯Ｍ＋１および♯Ｍ＋Ｋは、それぞれ、出発基本ブロックＦＢａの単位ブロック♯０および♯Ｍに対応する。
【０１０８】
出発基本ブロックＦＢａにおいて、各単位ブロックの接続が隣接単位ブロック間においてのみ接続されるようにかつループを形成するようにセレクタを配置すれば、この基本ブロックＦＢａおよびＦＢｂの境界領域において配線経路をセレクタを用いて変更することにより、出発基本ブロックＦＢａおよびＦＢｂにおける接続経路を、閉ループを描くように形成することができる。
【０１０９】
出発基本ブロックＦＢｃおよびＦＢｄは、それぞれ、出発基本ブロックＦＢａおよびＦＢｂを用いて形成される。この場合、出発基本ブロックＦＢｃおよびＦＢｄは、出発基本ブロックＦＢａおよびＦＢｂを回転操作を行なって配置したものとなる。この回転操作により、出発基本ブロックＦＢｃの先頭単位ブロック♯Ｍ＋Ｋ＋１が、出発基本ブロックＦＢｂの最終単位ブロック♯Ｍ＋Ｋに隣接して配置される。この場合、基本ブロックＦＢｃにおける単位ブロック♯Ｍ＋Ｋ＋１および♯Ｍ＋Ｊは、それぞれ、単位ブロック♯０および♯Ｍの回転対称な配置を有する。
【０１１０】
出発基本ブロックＦＢｄにおいては、出発基本ブロックＦＢａの先頭単位ブロック♯０に隣接するように、その最終番号の単位ブロック♯Ｍ＋Ｌ（＝♯Ｍ＋Ｊ＋Ｍ＋１）が配置される。出発基本ブロックＦＢｄにおける単位ブロック♯Ｍ＋Ｊ＋１および♯Ｍ＋１は、それぞれ単位ブロック♯Ｍおよび単位ブロック♯０に対応する。したがって、この場合においても、基本ブロックＦＢａおよびＦＢｂにおいて、ループ上に隣接単位ブロックを接続するように配線が配置されるため、基本ブロックＦＢｃおよびＦＢｄにおいても、連続的に、ループを描くように、隣接単位ブロック間を接続するように配線を配置することができる。
【０１１１】
これらの基本ブロックＦＢａ−ＦＢｄにおいて、Ｙ方向の境界領域において、データ転送経路を選択するセレクタ６０および６２を交互配置する。従って、基本ブロックＦＢｃおびＦＢｂにおいて、セレクタを用いて、単位ブロック♯Ｍ＋Ｋ＋１および♯Ｍ＋Ｋにおいてそのデータ／信号伝搬経路を接続し、また、基本クロックＦＢｄの単位ブロック♯Ｍ＋Ｌおよび基本ブロックＦＢａの単位ブロック♯０のデータ転送経路を接続することができる。この接続経路により、基本ブロックＦＢａ−ＦＢｄにおいて全体として、隣接単位ブロック間を接続するようにトーラス状の閉じた配線経路を形成することができる。
【０１１２】
この図１４に示す拡張順序により、大規模サイズの基本ブロックを最小分割可能基本ブロックにまで、配線経路を切換えるだけで、ブロックサイズを変更することができる。
【０１１３】
図１５は、この発明の実施の形態１における並列演算装置の単位ブロックの配置および配線接続の構成の一例を示す図である。図１５においては、並列演算装置において、４つの単位ブロック♯０−♯３で構成される基本ブロックを１６個配置する場合が一例として示される。ブロックサイズ拡張時、４単位ブロックで構成される最小分割可能基本ブロックの配置を基礎として、前述のように回転操作を行なって出発基本ブロックを構成して順次配置する。
【０１１４】
Ｘ方向に整列する単位ブロック列においては、単位ブロック♯１および単位ブロック♯２が交互に整列して配置される単位ブロック列と、単位ブロック♯０および♯３が交互に配置される単位ブロック列がＹ方向に沿って交互に配置される。単位ブロック列♯１および♯２は、常時接続され、単位ブロック♯０および♯３において、配線接続が拡張のために可能である。
【０１１５】
Ｙ方向における最小分割可能単位ブロックの境界領域ＲＡおよびＲＢに、Ｘ方向に沿って各単位ブロック♯０および♯３に対してセレクタ（６０，６２）が交互に配置される。Ｙ方向における領域ＲＡおよびＲＢの間の単位ブロック間領域においてはセレクタは、配置されない。
【０１１６】
この図１５に示す単位ブロックの配置において、単位ブロックＡ０−Ａ３およびＡ４−Ａ７により、最小サイズの４単位ブロック♯０−♯３で構成される基本ブロックが配置される。この単位ブロックＡ０−Ａ７において、図示しないセレクタを用いて単位ブロックＡ３およびＡ４を結合し、また、単位ブロックＡ０およびＡ７を接続することにより、８個の単位ブロックＢ０−Ｂ７で構成される基本ブロックを実現することができる。
【０１１７】
この基本ブロックＢ０−Ｂ７を回転操作を行なって配置し、セレクタを用いて対向および隣接する単位ブロック♯０および♯３のデータ転送経路を接続することにより、１６個の単位ブロックＣ０−Ｃ１５で構成される基本ブロックを実現することができる。図１５において、括弧内において、各拡大基本ブロックとその前の出発基本ブロックの対応の単位ブロックを示す。
【０１１８】
これは逆にいえば、１６個の単位ブロックＣ０−Ｃ１５で構成される基本ブロックを、データ転送路の接続を切換えることにより、８個の単位ブロックで構成される基本ブロックを実現することができ、また、８個の単位ブロックで構成される基本ブロックを、４個の単位ブロックで構成される基本ブロックに分割することができることを示す。単位ブロックの番号は、出発単位ブロックの位置は任意であるため、４単位ブロック構成、８単位ブロック構成および１６ブロック構成のいずれにおいても各基本ブロックにおいてブロック番号が連続するようにブロック番号を配置する。
【０１１９】
この場合においても、各出発基本ブロックの一連の連続ブロック番号の先頭ブロック番号および最終ブロック番号が、それぞれ追加の基本ブロックの最終ブロック番号および先頭ブロック番号に隣接するように配置することにより、基本ブロックの拡張および縮小を容易に実現することができる。
【０１２０】
この１６個の基本ブロックＣ０−Ｃ１５に回転操作を施してさらに配置することにより、３２個の単位ブロックＤ０−Ｄ３１で構成される基本ブロックを実現することができる。この単位ブロックＤ０−Ｄ３１においては、次の小ブロックサイズの基本ブロック、すなわち１６単位ブロックの基本ブロックの先頭ブロック番号および最終ブロック番号が、追加の１６単位ブロックのブロック番号の最終ブロック番号および先頭ブロック番号に隣接するように単位ブロック番号Ｄ０−Ｄ３１を付す。図１５においては、最小の初期出発単位ブロック♯０−♯３のブロック番号を併せて括弧内において示す。
【０１２１】
どのブロックサイズの基本ブロックにおいても、隣接する２つの基本ブロックの第１の基本ブロックのブロック番号の先頭ブロック番号と最終ブロック番号とが、第２の基本ブロックのブロック番号の最終ブロック番号および先頭ブロック番号にそれぞれ隣接するように、ブロック番号を付す。最小分割可能基本ブロックにおいては単位ブロック♯０および♯３において、単位ブロックの拡張接続が可能である。従って、Ｘ方向に８行Ｙ方向に４列に配置される単位ブロックにより、３２単位ブロックで構成される基本ブロック、１６単位ブロックで構成される基本ブロック、８単位ブロックで構成される基本ブロックおよび４単位ブロックで構成される基本ブロックを実現することができる。
【０１２２】
以上のように、この発明の実施の形態１に示す構成に従えば、３２個の単位ブロックで構成される基本ブロックを、それぞれ１６個の単位ブロックで構成される基本ブロック、８個で構成される単位ブロック、および４個の単位ブロックで構成される基本ブロックに分割することができる。この３２個の基本ブロックをさらに回転操作を行なってＸ方向に拡張することにより、６４個の基本単位ブロックで構成される基本ブロックを実現することができる（但し、６４単位ブロック構成時、３２単位ブロックの境界領域においてブロック番号が先頭番号および最終ブロック番号が隣接するようにブロック番号を付す）。
【０１２３】
したがって、大規模な数の基本ブロックで構成される並列演算装置を準備し、各単位ブロックをトーラス状に配線接続できるように配置することにより、小ブロックサイズの基本ブロックへの縮小を行なうことができる。また、処理内容に応じて、基本ブロックのブロックサイズを変更して、また、複数の基本ブロックを並行して動作させて並列に処理を実行することができる。
【０１２４】
［変更例］
図１６は、この発明の実施の形態１の変更例の並列演算装置の構成を概略的に示す図である。図１６においては、単位ブロック♯０−♯３で構成される基本ブロック（最小分割可能基本ブロック）に対して回転操作を行なって、新たな単位ブロック♯４−♯７で構成される基本ブロックを配置している。
【０１２５】
単位ブロック♯０−♯３における構成は、以下の点で図８に示す構成と異なる。すなわち、単位ブロック♯１において、アップＡＬＵ間接続切換回路３Ｕ１の下流部においてセレクタ７４ａが設けられ、また、ダウンＡＬＵ間接続切換回路３Ｄ１の上流部においてセレクタ７６ａが設けられる。セレクタ７４ａは、単位ブロック♯０のダウンＡＬＵ間接続切換回路３Ｄ０に対する配線４６と、この単位ブロック♯１に対して図の上部に隣接して配置される図示しない単位ブロックのダウンＡＬＵ間接続切換回路からの配線の一方を選択して、単位ブロック♯１のアップＡＬＵ間接続切換回路３Ｕ１に結合する。
【０１２６】
なお、データ伝達経路切換の配線の両端にセレクタを配置することは、特に要求されない。一方側のセレクタにより、配線の接続経路が選択されれば良い。従って、各ＡＬＵ間接続切換回路に対して出力経路選択用のセレクタは配置することは、特に要求されない。しかしながら、図１６においては、データの伝達経路の切換を明確に示すために、各ＡＬＵ間接続切換回路に対してセレクタを配置するように示す。
【０１２７】
セレクタ７６ａは、単位ブロック♯１のダウンＡＬＵ間接続切換回路３Ｄ１の上流部を、図示しない上部に隣接して配置される単位ブロック（♯２）のダウンＡＬＵ間接続切換回路からの配線と単位ブロック♯０のアップＡＬＵ間接続切換回路３Ｕ０に対するデータ転送経路との一方を選択的に結合する。
【０１２８】
単位ブロック♯１および♯２のアップＡＬＵ間接続切換回路３Ｕ１および３Ｕ２の間にセレクタ７０ａおよび７７ａが縦続して配置され、また、ダウンＡＬＵ間接続切換回路３Ｄ１および３Ｄ２の間にセレクタ７２ａおよび７９ａが縦続接続態様で配置される。セレクタ７７ａは、単位ブロック♯２のアップＡＬＵ間接続切換回路３Ｕ２の下流部からのデータを、セレクタ７０ａおよび単位ブロック♯２に対して対向するように隣接して配置される単位ブロック♯５（単位ブロック♯１に相当）のダウンＡＬＵ間接続切換回路３Ｄ１へ伝達する。
【０１２９】
セレクタ７０ａは、セレクタ７７ａの選択したデータおよび隣接してかつ対向して配置される単位ブロック♯６のセレクタ７７ｂの選択するデータ伝達経路、および拡張時図の上側において隣接する単位ブロック（♯２に相当）の出力データ伝達経路のうちの一つを選択して、単位ブロック♯１のアップＡＬＵ間接続切換回路３Ｕ１に伝達する。
【０１３０】
セレクタ７２ａは、単位ブロック♯１においてダウンＡＬＵ間接続切換回路３Ｄ１の下流側からのデータを、セレクタ７９ａおよび単位ブロック♯６に含まれるセレクタ７９ｂの入力の一方に伝達する。
【０１３１】
セレクタ７７ａは、単位ブロック♯２のアップＡＬＵ間接続切換回路３Ｕ２の下流側からのデータを、隣接して配置される単位ブロック♯１のセレクタ７０ａ、対向して配置される単位ブロック♯５のセレクタ７０ｂ、図示しない図の下側に隣接して配置される多にブロックのいずれかに転送する。
【０１３２】
セレクタ７９ａは、セレクタ７２ａの出力データおよび拡張時単位ブロック♯２において図の下方向に隣接して配置される単位ブロック（♯１）のアップＡＬＵ間接続切換回路の出力データ、および対向して隣接して配置される単位ブロック♯５のセレクタ７２ｂが選択する対応のダウンＡＬＵ間接続切換回路３Ｄ１からのデータのうちの一つを選択してこの単位ブロック♯２のダウンＡＬＵ間接続切換回路３Ｄ２の上流部に伝達する。
【０１３３】
図１６に示す単位ブロック♯０−♯３の構成は、図８に示す基本ブロックの構成と同じであり、対応する部分には同一参照番号を付し、その詳細説明は省略する。
【０１３４】
また、単位ブロック♯４−♯７は、単位ブロック♯０−♯３を回転操作して配置されており、セレクタ７０ａ、７２ａ、７４ａ、７６ａ、７７ａ、および７９ａに対応してセレクタ７０ｂ、７２ｂ、７４ｂ、７６ｂ、７７ｂ、および７９ｂが配置される。これらの単位ブロック♯４−♯７において、単位ブロック♯０−♯３に対応する部分には同一参照番号を付し、また、その詳細説明は省略する。
【０１３５】
この図１６に示す構成においても、セレクタの配置については、最小分割可能基本ブロック（最小サイズ基本ブロック）の境界領域において、単位ブロックの入力経路にセレクタを交互配置し、単位ブロックの出力経路を隣接単位ブロックおよび対向して配置される単位ブロックのセレクタに結合するという規則性は維持されている。従って、セレクタ７２（７２ａ、７２ｂ）および７７（７７ａ、７７ｂ）は、特に設けられなくても良い。入力側のセレクタで選択することにより接続経路は、確立される。図１６においては、前述したように、接続経路を明確にするために、各ＡＬＵ間接続切換回路に対してセレクタを配置するように示す。
【０１３６】
セレクタ７４ａ、７６ａ、７４ｂ、および７６ｂは、単に、単位ブロックの接続の自由度を高くするために配置されており、これらのセレクタ７４および７６は、特に設けられなくても良い。
【０１３７】
図１７は、図１６に示す並列演算装置の配線接続をより拡大して示す図である。単位ブロック♯０−♯７においては、演算処理部２．０−２．３は、示していない。単位ブロック♯０−♯７に対して、８単位ブロック構成時の接続経路を示すために、ブロック番号Ｅ０−Ｅ７を付す。このブロック番号Ｅ０−Ｅ７は、最小分割可能基本ブロックの単位ブロックの先頭番号および最終番号が、連続するように配置される。
【０１３８】
単位ブロック♯４−♯７においては、単位ブロック♯０−♯３の配置を回転操作しているため、アップＡＬＵ間接続切換回路３Ｕ０−３Ｕ３のシフト方向およびダウンＡＬＵ間接続切換回路３Ｄ０−３Ｄ３のシフト方向は、単位ブロック♯０−♯３と単位ブロック♯４−♯７とで逆方向となる。
【０１３９】
セレクタ７０ａは、セレクタ７７ａの選択出力とセレクタ７７ｂの出力と外部からの転送データの１つを選択して、単位ブロック♯１のアップＡＬＵ間接続切換回路３Ｕ１の上流部に転送する。セレクタ７２ａは、単位ブロック♯１のダウンＡＬＵ間接続切換回路３Ｄ１の出力データを、セレクタ７９ａ、７９ｂおよび図の上部に隣接して配置される単位ブロックのいずれかに転送する。
【０１４０】
セレクタ７７ａは、単位ブロック♯２のアップＡＬＵ間接続切換回路３Ｕ２の下流側からのデータを、セレクタ７０ａ、および７０ｂおよび拡張時に単位ブロック♯２に隣接して図の下部に配置される単位ブロックのいずれかに転送する。
【０１４１】
セレクタ７９ａは、セレクタ７２ａを介して与えられるダウンＡＬＵ間接続切換回路３Ｄ１からのデータと、単位ブロック♯５のセレクタ７２ｂを介して伝達されるダウンＡＬＵ間接続切換回路３Ｄ１からのデータと、拡張時に単位ブロック♯Ｄ２に隣接して配置される単位ブロックからの転送データのいずれかを選択して、単位ブロック♯２のダウンＡＬＵ間接続切換回路３Ｄ２に伝達する。
【０１４２】
セレクタ７２ａは、単位ブロック♯１のアップＡＬＵ間接続切換回路３Ｕ１の出力データを、単位ブロック♯０のダウンＡＬＵ間接続切換回路３Ｄ０と拡張時に単位ブロック♯１の上側に隣接して配置される単位ブロックのいずれかに転送する。セレクタ７６ａは、単位ブロック♯０のアップＡＬＵ間接続切換回路３Ｕ０の出力データと拡張時に単位ブロック♯１の上側に隣接して配置される単位ブロックの出力データの一方を選択して多にブロック♯１のダウンＡＬＵ間接続切換回路３Ｄ１の上流部に伝達する。
【０１４３】
セレクタ７０ｂは、拡張時に単位ブロック♯５に隣接して図の下側に配置される単位ブロックのデータ入力部と、単位ブロック♯２のセレクタ７７ａを介して与えられる単位ブロック♯２のアップＡＬＵ間接続切換回路３Ｕ２の出力データとセレクタ７７ｂを介して与えられる単位ブロック♯６のアップＡＬＵ間接続切換回路３Ｕ２の出力データのいずれかを選択して、単位ブロック♯５のアップＡＬＵ間接続切換回路３Ｕ１に伝達する。
【０１４４】
セレクタ７７ｂは、単位ブロック♯６のＡＬＵ間接続切換回路３Ｕ２の下流側からのデータを、単位ブロック♯１および♯５のアップＡＬＵ間接続切換回路３Ｕ１の上流部および拡張時に単位ブロック♯６の図の上側に隣接して配置される単位ブロックのデータ入力部のいずれかに転送する。
【０１４５】
セレクタ７９ｂは、単位ブロック♯１のセレクタ７２ａを介して与えられるダウンＡＬＵ間接続切換回路３Ｄ１の出力データと、セレクタ７２ｂを介して与えられる単位ブロック♯５のダウンＡＬＵ間接続切換回路３Ｄ１の出力データと拡張時に単位ブロック♯６の上側に隣接して配置される単位ブロックからの出力データの一方を選択して、単位ブロック♯６のダウンＡＬＵ間接続切換回路３Ｄ２に伝達する。
【０１４６】
セレクタ７４ｂは、単位ブロック♯５のアップＡＬＵ間接続切換回路３Ｕ１の出力データを、単位ブロック♯４のダウンＡＬＵ間接続切換回路３Ｄ０および拡張時に単位ブロック♯５の下側に隣接して配置される単位ブロックのいずれかに転送する。セレクタ７６ｂは単位ブロック♯４のアップＡＬＵ間接続切換回路３Ｕ０の出力データと拡張時この単位ブロック♯５に隣接して配置される単位ブロックの出力データの一方を選択してダウンＡＬＵ間接続切換回路３Ｄ１のいずれかへ伝達する。
【０１４７】
この図１６および図１７に示すように、最小基本ブロックの単位ブロック♯１および♯２においても、ＡＬＵ間接続切換回路３Ｕ１、３Ｄ１、３Ｕ２および３Ｄ２のデータ転送経路を切換える構成を設けることにより、より柔軟に、データ転送経路を変更して、基本ブロックサイズの拡張および縮小を行なうことができる。
【０１４８】
この図１７において明らかなように、出力経路設定用のセレクタ７７および７９は、削除することが可能である。図１７においてはデータ転送経路を明確に示すためにこれらの出力経路選択用のセレクタ７７ａ／ｂおよび７９ａ／ｂを示す。
【０１４９】
図１８は、図１６および図１７に示す並列演算装置の接続経路の一例を示す図である。図１８においては、セレクタ７４ａおよび７６ｂを介して単位ブロック♯１のアップＡＬＵ間接続切換回路３Ｕ１およびダウンＡＬＵ間接続切換回路３Ｄ１が、それぞれ、データシフト方向を維持して、単位ブロック♯０のダウンＡＬＵ間接続切換回路３Ｄ０およびアップＡＬＵ間接続切換回路３Ｕ０に結合される。
【０１５０】
セレクタ７０ａおよび７２ａは、それぞれ、単位ブロック♯１のアップＡＬＵ間接続切換回路３Ｕ１およびダウンＡＬＵ間接続切換回路を３Ｄ１を、単位ブロック♯６のアップＡＬＵ間接続切換回路３Ｕ２およびダウンＡＬＵ間接続切換回路３Ｄ２に結合する。ここで、単位ブロック♯６においては、回転操作が行なわれており、そのＡＬＵ間接続切換回路のシフト方向は、単位ブロック♯１におけるＡＬＵ間接続切換回路のシフト方向と逆となっている。
【０１５１】
単位ブロック♯６のアップＡＬＵ間接続切換回路３Ｕ２およびダウンＡＬＵ間接続切換回路３Ｄ２は、それぞれ、単位ブロック♯７のダウンＡＬＵ間接続切換回路３Ｄ３およびアップＡＬＵ間接続切換回路の上流部に結合される。
【０１５２】
一方、単位ブロック♯２においては、アップＡＬＵ間接続切換回路３Ｕ２の上流部はセレクタ７７を介して拡張時の隣接単位ブロックに結合され、また、ダウンＡＬＵ間接続切換回路３Ｄの上流部も、セレクタ７９ａを介して拡張時の隣接する単位ブロックに結合される。単位ブロック♯２のＡＬＵ間接続切換回路３Ｕ２および３Ｄ２は、それぞれ、単位ブロック♯３のＡＬＵ間接続切換回路３Ｄ３および３Ｕ３に結合される。
【０１５３】
単位ブロック♯５においても、同様、セレクタ７２ａは、アップＡＬＵ間接続切換回路３Ｕ１の上流部を、拡張時の隣接単位ブロックに結合し、また、セレクタ７２ｂが、この単位ブロック♯５のダウンＡＬＵ間接続切換回路３Ｄ１の下流部を拡張時の隣接単位ブロックに結合する。この単位ブロック♯５のアップＡＬＵ間接続切換回路３Ｕ１の下流部がセレクタ７４ｂを介して単位ブロック♯４のダウンＡＬＵ間接続切換回路３Ｄ０の上流部に結合され、また単位ブロック♯５のダウンＡＬＵ間接続切換回路３Ｄ１の上流部が、単位ブロック♯４のアップＡＬＵ間接続切換回路３Ｕ０の下流部に結合される。
【０１５４】
したがって、図１８に示す接続経路の場合、図１９に単位ブロックの接続経路を示すように、単位ブロック♯０、♯１、♯６および♯７が直列に結合され、また単位ブロック♯２および♯５が、それぞれ拡張時の隣接単位ブロックに結合される。
【０１５５】
図２０は、この変更例における並列演算装置の接続経路の第２の例を示す図である。図２０に示す接続経路においては、単位ブロック♯２のアップＡＬＵ間接続切換回路３Ｕ２が、単位ブロック♯５のアップＡＬＵ間接続切換回路３Ｕ１にセレクタ７７ａおよび７０ｂを介して結合され、また、単位ブロック♯２のダウンＡＬＵ間接続切換回路３Ｄ２の上流部が、単位ブロック♯５のダウンＡＬＵ間接続切換回路３Ｄ１の下流部にセレクタ７２ｂおよび７９ａを介して結合される。セレクタ７０ａ、７２ａ、７７ｂ、７９ｂおよび７４ｂおよび７６ｂの接続経路は、先の図１８に示す接続経路と同じである。
【０１５６】
したがって、図２１に示すように、単位ブロック♯０、♯１、♯６、♯７、♯４、♯５、♯２および♯１がこの順に、直列に接続され、８個の単位ブロックにより、１つの基本ブロックが構成される。この８単位ブロック構成時、ブロック番号としてブロック番号Ｅ０−Ｅ７を付すことにより、単位ブロックの分割および拡張接続を明瞭に識別することができる。
【０１５７】
なお、図２２に示すように、セレクタ７０ａ、７２ａ、７７ａ、７９ａ、７７ｂ、７９ｂ、７０ｂおよび７２ｂの接続経路を切換えることにより、４つの単位ブロック♯０−♯３で１つの基本ブロックを構成し、また単位ブロック♯４−♯７で１つの基本ブロックを構成することもできる。従って、単位ブロック♯１および♯２においてもセレクタを配置することにより、図１７および図２０に接続の例を示すように、８個の単位ブロックで構成される基本ブロックを、各々が４つの単位ブロックで構成される２つの基本ブロックに分割することができる。
【０１５８】
図２３は、この発明の実施の形態１の変更例の並列演算装置の１６単位ブロック構成時の接続経路を概略的に示す図である。図２３において、単位ブロック♯０−♯７で構成される基本ブロックを、さらに回転操作を行なって１６個の単位ブロックで構成される追加基本ブロックを形成する。この場合、単位ブロック♯０および♯７に隣接して、新たな追加の基本ブロックの先頭単位ブロック♯８および最終単位ブロック♯１５が配置されるように配置する。単位ブロック♯０−♯３に対応して、単位ブロック♯８−♯１１を配置し、単位ブロック♯４−♯７が、単位ブロック♯１２−♯１５に対応する。単位ブロック♯１および♯６に隣接して、単位ブロック♯１４および♯９が配置される。
【０１５９】
１６単位ブロック構成時に最小分割可能基本ブロック（４単位ブロック）においてブロック番号が連続するようにかつ隣接する最小分割可能基本ブロックにおいてブロックが番号が連続するように、ブロック番号を付す。図２３において、連続して隣接する最小分割可能基本ブロック（最小サイズ基本ブロック）において、先頭ブロック番号と最終ブロック番号とが隣接するように、ブロック番号Ｆ０−Ｆ１５が、付される。このブロック番号の付与により、単位ブロックが一筆書きの経路により順次接続されるように、ブロック番号が、付される。
【０１６０】
１６個の単位ブロック♯０−♯１５は、その番号は、８単位ブロック構成時のブロック番号を、回転操作して拡張して付している。１６個の単位ブロックで構成される基本ブロックにおける単位ブロックの番号位置は、自由に設定することができる。小ブロックサイズへの分割を考慮して、上述のようにブロック番号Ｆ０−Ｆ１５を付す。図２３において、単位ブロック♯６（♯２）にブロック番号Ｆ０が付され、単位ブロック♯９（♯１）に、ブロック番号Ｆ１５が割当てられる。
【０１６１】
この１６単位ブロック構成時、単位ブロックＦ８（♯１４）およびＦ７（♯１）のダウンＡＬＵ間接続切換回路３Ｄ２および３Ｄ１をセレクタ７６ｂおよび７２ａを介して相互結合する。また、単位ブロックＦ８（♯１４）のアップＡＬＵ間接続切換回路３Ｕ２は、単位ブロックＦ７（♯１）のアップＡＬＵ間接続切換回路３Ｕ１にセレクタ７７ｂおよび７０ａを介して結合する。
【０１６２】
同様、単位ブロックＦ０（♯６）のアップＡＬＵ間接続切換回路３Ｕ２を、単位ブロックＦ１５（♯９）のアップＡＬＵ間接続切換回路３Ｕ１に、セレクタ７０ａおよび７７ｂを介して結合する。同様、単位ブロックＦ１５（♯９）のダウンＡＬＵ間接続切換回路３Ｄ１を単位ブロックＦ０（♯６）のダウンＡＬＵ間接続切換回路３Ｄ２にセレクタ７２ａおよび７７ｂを介して結合する。
【０１６３】
他の接続経路は、先の図１７に示す接続経路と同じであり、対応する部分には同一参照番号を付し、その詳細説明は省略する。
【０１６４】
この図２３に示す１６単位ブロックの接続経路を図２４に示す。この図２４に示すように、単位ブロック♯１４および♯１（ブロック番号Ｆ７およびＦ８）のＡＬＵ間接続切換回路３Ｕ２および３Ｕ１をセレクタを介して結合し、また、ダウンＡＬＵ間接続切換回路３Ｄ２および３Ｄ１のデータ転送を、セレクタ７２ａおよび７６ｂを介して結合する。同様、単位ブロック♯６および♯９（ブロック番号Ｆ０およびＦ１５）のアップＡＬＵ間接続切換回路３Ｕ１および３Ｕ２をセレクタを介して相互結合し、また、ダウンＡＬＵ間接続切換回路３Ｄ１および３Ｄ２をセレクタを介して縦列に接続する。
【０１６５】
この接続経路により、ブロック番号Ｆ０−Ｆ１５の順序で、単位ブロックが逐次、接続され、１６単位ブロックで１つの基本ブロックを構成し、１６単位ブロックの並列演算装置を実現することができる。
【０１６６】
この図２４に示す並列演算装置において、各セレクタの接続経路を切換えることにより、先の図１８から図２２において説明したように、１６単位ブロック構成の並列演算装置の内部構成を、各々が８単位ブロックで構成される２つの基本ブロックに分割し、また、各々が４単位ブロックで構成される４個の基本ブロックに分割することができる。各分割において、ブロック番号Ｆ０−Ｆ１５が、基本ブロック内において連続して配置される。
【０１６７】
図２５は、図２４に示すセレクタの接続経路のデータ伝搬経路を概略的に示す図である。図２５に示すように、ブロック番号Ｆ０−Ｆ１５が、順次ＡＬＵ間接続切換回路を介して相互接続される。単位ブロック間配線は、隣接単位ブロック間においてのみ配置され、データ転送が隣接単位ブロック間で実行される。
【０１６８】
特に、４単位ブロックで構成される基本ブロック（最小サイズ基本ブロック：最小分割可能基本ブロック）において単位ブロック♯１および♯２に対し、Ｘ方向およびＹ方向両方向に、接続配線可能なようにセレクタを配置することにより、図２５において、ブロック番号Ｆ７およびＦ８で示されるように、隣接する４単位ブロックで構成される基本ブロック間において単位ブロック♯２および♯１の間の接続を実現することができ、基本ブロックの単位ブロックの接続の自由度が高くなる。
【０１６９】
図２６は、図２５に示す１６ブロック構成を利用した、３２単位ブロックにより構成される並列演算装置のブロック接続構成を概略的に示す図である。この図２６に示す構成において、基本ブロック♯Ａの１８０度回転操作により、追加の基本ブロック♯Ｂを形成して配置する。これらの基本ブロック♯Ａおよび♯Ｂにおいて、単位ブロック♯０−♯３がこの順に整列して配置され（Ｙ方向において）、また、基本ブロック♯Ａおよび♯Ｂにおいて、単位ブロック♯０−♯３の配列順序が、Ｘ方向において交互に逆転される。
【０１７０】
ブロック番号としてブロック番号Ｇ０−Ｇ３１を利用する。基本ブロック♯Ａにおいてブロック番号Ｇ０−Ｇ１５が与えられ、基本ブロック♯Ｂにおいて、ブロック番号Ｇ１６−Ｇ３１が単位ブロックに対して割当てられる。この場合、基本ブロック♯Ａおよび♯Ｂにおいて、ブロック番号Ｇ０およびＧ１５が、それぞれ基本ブロック♯Ｂのブロック番号Ｇ１６およびＧ３１に隣接するように番号付けを行なう。図２６においては、３２単位ブロック構成のブロック番号と１６単位ブロック構成のブロック番号と４単位ブロックのブロック番号の対応を明確にするために、小サイズのブロック構成時のブロック番号Ｆ０−Ｆ１５および♯０−♯３をカッコ内において示す。
【０１７１】
この図２６に示す３２単位ブロック構成の場合、ブロック番号Ｇ１５およびＧ１６が相互接続され、またブロック番号Ｇ０およびＧ３１の単位ブロックが相互接続されて、接続経路のループが完成する。したがってブロック番号Ｇ１５およびＧ０に対応するもとのブロック番号Ｆ１およびＦ２において、単位ブロック♯３および♯０の接続経路が、セレクタ６０および６２により切換えられる。これは、基本ブロック♯Ａおよび♯Ｂいずれにおいても同様である。したがって、この場合、単にブロック番号Ｇ１５およびＧ１６の単位ブロックの間およびブロック番号Ｇ０およびＧ３１の単位ブロックの間の接続を切換えるだけで、３２単位ブロックのプロセッサを、１６個の単位ブロックのプロセッサにそのサイズを低減することができる。
【０１７２】
図２７は、３２単位ブロック構成の並列演算装置の接続の変更例を示す図である。図２７において、基本ブロック♯Ｃおよび♯Ｄは、図２６に示す基本ブロック♯Ａおよび♯Ｂを回転操作をすることにより得られる。この場合、各ブロック番号Ｈ０−Ｈ３１を、各基本ブロック♯Ｃおよび♯Ｄのそれぞれの先頭ブロック番号および最終ブロック番号がそれぞれ交差的に対応するようにブロック番号を付す（先頭ブロック番号と最終ブロック番号とが隣接するように、ブロック番号を配置する）。
【０１７３】
この図２７に示す場合、ブロック番号Ｈ３１およびＨ０の単位ブロック（♯３および♯０）は、セレクタ（６０，６２）を用いて相互接続する。この相互接続により、ブロック番号Ｈ３１およびＨ１６の単位ブロック（♯３および♯０）の相互接続が分離され、また、基本ブロック♯Ｄにおいても、ブロック番号Ｈ０およびＨ１５の単位ブロック（♯０および♯３）の相互接続が分離される。ブロック番号Ｈ１６およびＨ１５の単位ブロックおよびブロック番号Ｈ０およびＨ３１の単位ブロックは、それぞれ、そのセレクタ６０，６２の操作により相互接続する。
【０１７４】
これにより、同様、３２単位ブロックで構成される基本ブロックを実現することができ、また、１６個の単位ブロックを、さらに小サイズの８単位ブロックおよび４単位ブロックの基本ブロックに分割することができる。単位ブロック♯１および♯２において、Ｙ方向に隣接する最小サイズの基本ブロックの単位ブロック♯１および♯２を相互接続することが可能となるためである。
【０１７５】
図２８は、この発明の実施の形態１の変更例の基本ブロック構成を示す図であり、図２８においては、６４単位ブロックの基本ブロックの接続の配置の一例が示される。図２８において、この６４単位ブロックで構成される基本ブロックは、図２６および図２７に示す基本ブロック♯Ａ、♯Ｂ、♯Ｃおよび♯Ｄを結合したものと等価である。すなわち、基本ブロック♯Ａおよび♯Ｂにおけるブロック番号Ｇ０−Ｇ３１に対しブロック番号Ｊ３２−Ｊ６３が割当てられる。基本ブロック♯Ｃおよび♯Ｄのブロック番号Ｈ０−Ｈ３１の単位ブロックに対し、ブロック番号Ｊ０−Ｊ３１が割当てられる。ブロック番号Ｊ３２およびＪ３６の単位ブロック（♯０，♯３）が分離され、ブロック番号Ｊ３２の単位ブロックが、ブロック番号Ｊ３１の単位ブロック（♯３）に結合される。同様、ブロック番号Ｊ６３の単位ブロック（♯３）が、ブロック番号Ｊ０の単位ブロック（♯０）に結合される。
【０１７６】
したがって、３２個の単位ブロックを相互接続することにより、６４個の単位ブロックで構成される基本ブロックが実現される。
【０１７７】
この６４単位ブロックで構成される基本ブロックは、したがって、各々が３２個の単位ブロックで構成される２個の基本ブロック、各々が１６個の単位ブロックで構成される４個の基本ブロックに分割することができる。この場合、各縮小時の基本ブロック内の単位ブロックのブロック番号の先頭番号および最終番号は、それぞれ、隣接縮小基本ブロックのブロック番号の最終ブロック番号および先頭ブロック番号に隣接させて配置する。
【０１７８】
図２９は、この図２８に示す６４単位ブロックの基本ブロックを、８単位ブロックの基本ブロックに分割した際のデータ伝搬経路を概略的に示す図である。この図２９に示すように、Ｙ方向に隣接する単位ブロック♯１および♯２を、Ｘ方向に整列する単位ブロック♯１および♯２の接続経路に代えて接続することにより、各々が、連続番号の８単位ブロックで構成される８個の基本ブロックに分割することができる。
【０１７９】
したがって、４つの単位ブロックで構成される基本ブロックにおいて、単位ブロック♯１および♯２においてＸ方向およびＹ方向の両方向に接続可能に配置することにより、６４単位ブロックの基本ブロックを、４単位ブロックの基本ブロックにまで順次縮小分割することが可能となる。
【０１８０】
以上のように、この発明の実施の形態１に従えば、各単位ブロックを複数個配置して基本ブロックを構成し、この基本ブロックの小ブロック内の単位ブロックの連続番号の先頭番号および最終番号が隣接するように小ブロックに分割し、この小ブロック分割の境界領域に対応してセレクタを配置する。これにより、隣接単位ブロック間でのみデータ転送非線が配置されてデータの転送が行なわれ、配線遅延が低減される。また、単にセレクタの経路を切換えるだけであり、各基本ブロック相互間のさまざまな方向に対する配線を配置する必要がなく、配線レイアウト面積が低減される。また、ブロックサイズを切換えるための回路構成は、単にセレクタだけであり、プロセッサ（並列演算装置）機能（構成）切換のための構成が簡略化され、また、占有面積を低減することができる。
【０１８１】
［実施の形態２］
図３０は、この発明の実施の形態２に従う並列演算装置の最小基本ブロックの構成を概略的に示す図である。図３０において、並列演算装置は、４つの単位ブロック１００Ａ−１００Ｄで構成される。これらの単位ブロック１００Ａ−１００Ｄの各々は、主演算ブロック１１０と、内部データバス４と、バスインターフェイス（Ｉ／Ｆ）６を含む。主演算ブロック１１０は、図１に示すレジスタ回路、ＡＬＵ間接続切換回路、演算処理部（ＰＥ群）２を含み、内部データバス４とデータの転送を行なうことができる。
【０１８２】
この図３０に示す配置においては、単位ブロック１００Ｂおよび１００Ｃの内部バス４が、拡張配線１１５により相互接続される。この図３０に示す単位ブロック１００Ａ−１００Ｄで構成される基本ブロックを、基本ブロックの最小分割可能基本ブロックとして利用する。
【０１８３】
図３１は、この発明の実施の形態２に従う基本ブロック（並列演算装置）の構成の一例を示す図である。図３１においては、基本ブロックは、１６個の単位ブロック１００Ａ０−１００Ａ３、１００Ｂ０−１００Ｂ３、１００Ｃ０−１００Ｃ３、１００Ｄ０−１００Ｄ３を含む。最小分割可能基本ブロック（最小サイズ基本ブロック）は、単位ブロック１００Ａｉ、１００Ｂｉ、１００Ｃｉ、および１００Ｄｉにより形成される。但し、ｉは、０から３の整数である。
【０１８４】
単位ブロック１００Ａｉ−１００Ｄｉの内部構成は、図３０に示す構成と同じであり、対応する部分には、同一参照番号を付して、その詳細説明は省略する。
【０１８５】
この配置の場合、Ｙ方向における最小サイズ基本ブロックの境界領域に各単位ブロックに対応してセレクタ（ＳＥＬ）を配置する。図３１において、単位ブロック１００Ａ０、１００Ｄ０、１００Ａ１および１００Ｄ１それぞれに対応して、セレクタ１２１、１２３、１２５および１２７が配置される。単位ブロック１００Ａ２、１００Ｄ２、１００Ａ３、および１００Ｄ３それぞれに対応してセレクタ１２０、１２２、１２４、および１２６が配置される。
【０１８６】
Ｙ方向において対向して配置されるセレクタを、配線Ｌ１により相互接続する。次いで、Ｘ方向に隣接するセレクタの別のポートを、配線Ｌ２により相互接続する。Ｘ方向における最小サイズ基本ブロックの境界領域に対応するセレクタ１２２、１２３、１２４および１２５に対し、さらに配線Ｌ３を配設して、Ｘ方向において隣接するセレクタのさらに別のポートを相互接続する。
【０１８７】
セレクタ１２０−１２７の接続経路を切換えることにより、１６単位ブロックの基本ブロック、８単位ブロックの基本ブロック、および４単位ブロックの基本ブロックを実現することができる。すなわち、セレクタ（ＳＥＬ）１２０−１２７それぞれにおいて、配線Ｌ２に接続されるポートを選択して対応のインターフェイス（Ｉ／Ｆ）に接続することにより、４単位ブロックの基本ブロックを４つ配置することができる。セレクタ１２０−１２７において、配線Ｌ１が接続されるポートを選択して、対応のバスインターフェイス（Ｉ／Ｆ）６に結合することにより、８個の単位ブロックで構成される基本ブロックを２つ配置することができる。
【０１８８】
セレクタ１２０および１２１において配線Ｌ１の接続されるポートを選択し、セレクタ１２２、１２３、１２４および１２５において配線Ｌ３が接続されるポートを選択し、また、セレクタ１２６および１２７において配線Ｌ１が接続されるポートを選択する。これにより、１６単位ブロックで基本ブロックを構成することができる。
【０１８９】
したがって、この図３１に示すような配置においても、各最小サイズ基本単位ブロックの境界領域においてセレクタを単位ブロックに対応して配置し、セレクタのポート切換によりデータ伝搬経路を切換えることにより、大規模の基本ブロックを順次、小規模の基本ブロックに分割することができ、また、逆に、小規模サイズの基本ブロックを繰返し配置して大規模の基本ブロックを構築することができる。
【０１９０】
［変更例］
図３２は、この発明の実施の形態２に従う並列演算装置の変更例の配置を概略的に示す図である。この図３２に示す配置においては、先の図３１に示す構成と同様、最小分割可能基本ブロックは、４単位ブロックで構成される。この図３２に示す構成においては、図３１に示す構成と異なり、Ｙ方向において、最小分割可能基本ブロックの境界領域においてさらにセレクタが、セレクタ１２０−１２７と対称的に配置される。すなわち、単位ブロック１００Ｂ０、１００Ｃ０、１００Ｂ１および１００Ｃ１に対応して、内部データバス４に対してセレクタ１３１、１３３、１３５および１３７が設けられる。
【０１９１】
Ｘ方向において隣接するセレクタに対しては配線Ｌ２によりそのポートが結合され、図示しないＹ方向においてさらに隣接する単位ブロック拡張のために、配線Ｌ１が設けられる。このＸ方向において最小分割可能基本ブロックの単位ブロック１００Ｃ０および１００Ｂ１を接続可能とするために、セレクタ１３３および１３５に対して、さらに配線Ｌ３によりその第３のポートが相互接続される。
【０１９２】
なお、単位ブロック１００Ｂ２、１００Ｃ２、１００Ｂ３に対して、セレクタ１２０、１２２、１２４および１２６と対称的に、内部データバス４に対して、セレクタ１３０、１３２、１３４および１３６が配置される。これらのセレクタにおいては、Ｘ方向において隣接するセレクタの第１ポートが配線Ｌ２により相互接続され、またＹ方向において隣接する拡張用の単位ブロックとの接続用に、第１ポートが配線Ｌ１に結合される。最小分割基本ブロックの境界領域に対して設けられるセレクタ１３２および１３４の第３ポートが配線Ｌ３により相互接続される。
【０１９３】
この図３２に示す配置を、Ｘ方向およびＹ方向に対し繰返し配置することにより、最小分割可能基本ブロックのブロックサイズを、４単位ブロックとして、並列演算装置を構成する単位ブロック数を拡張することができる。逆に、大規模サイズの基本ブロックで構成される並列演算装置を、小ブロックサイズの基本ブロックにセレクタ１２０−１２７および１３０−１３７の接続経路を切換えることにより、縮小することができる。
【０１９４】
なお、セレクタ１２０−１２７および１３０−１３７が、対応の単位ブロック間の経路を遮断する経路遮断機能を有する場合には、図３２に示す構成において、最小サイズ基本ブロックを、２単位ブロックで構成することができる。
【０１９５】
以上のように、この発明の実施の形態の最小分割基本ブロックの一方方向（Ｙ方向）の境界領域に、各単位ブロックに対応してセレクタを設け、このセレクタの接続経路を、要求される基本ブロックサイズにおいて設定する。これにより、大規模サイズの並列演算装置を、配線面積を増大させることなく、小ブロックサイズの基本ブロックに分割することができる。また、この場合においても、データ伝搬経路は、隣接単位ブロック間のみであり、配線伝搬遅延を回避することができる。
【０１９６】
［実施の形態３］
図３３は、この発明の実施の形態３に従う並列演算装置の最小分割可能基本ブロックの構成を概略的に示す図である。図３３においては、４つの単位ブロック１５０Ａ−１５０Ｄが設けられる。これらの単位ブロック１５０Ａ−１５０Ｄの各々は、図１に示す構成を有し、図３３においては、これらの単位ブロック１５０Ａ−１５０Ｄに含まれる演算処理部２の構成を代表的に示す。演算処理部２は、複数の処理エレメントＰＥ０−ＰＥｎを含む。
【０１９７】
単位ブロック１５０Ａ−１５０Ｄの間に、隣接ブロック接続スイッチ回路１６０Ａ−１６０Ｃが配置される。隣接ブロック接続スイッチ回路１６０Ａは、単位ブロック１５０Ａおよび１５０Ｂの処理エレメントＰＥ０−ＰＥｎを、１対１態様で結合する。隣接ブロック接続スイッチ回路１６０Ｂは、単位ブロック１５０Ｂおよび１５０Ｃの処理エレメントＰＥ０−ＰＥｎを、１対１態様で結合する。隣接ブロック接続スイッチ回路１６０Ｃは、単位ブロック１５０Ｃおよび１５０Ｄの処理エレメントＰＥ０−ＰＥｎを１対１態様で結合する。
【０１９８】
４個の単位ブロック１５０Ａ−１５０Ｄで最小分割可能基本ブロックが構成されるため、その境界領域において、単位ブロック１５０Ａおよび１５０Ｄに対応して選択回路１７０および１７２が設けられる。選択回路１７０は、第１ポートが、多ビット配線ＬＬ１を介して拡張時の対向して配置される単位ブロックに結合され、その第２ポートが、タビット配線ＬＬ２を介して選択回路１７２の第１ポートに結合される。選択回路１７０は、単位ブロック１５０Ａの処理エレメントＰＥ０−ＰＥｎに対し結合される配線およびスイッチ回路（またはドライバ）を有し、データ転送制御機能を有する。
【０１９９】
選択回路１７２は、多ビット配線ＬＬ１により、拡張時に対向して配置される単位ブロックに結合され、また、多ビット配線ＬＬ３により、拡張時の図３３の下側方向に配置される単位ブロックに配置される選択回路に結合される。選択回路１７２は、単位ブロック１５０Ｄの処理エレメントＰＥ０−ＰＥｎに結合される配線を有し、データ転送制御機能を有する。
【０２００】
この図３３に示す構成の場合、演算処理部２の単位でデータ転送を行なうことができる。この図３３に示す構成を複数個配置することにより、先の実施の形態２に示す構成と同様、たとえば図３１に示す構成と同様にして、１６単位ブロックで１つの基本ブロックを構成し、その１６単位ブロックを８単位ブロックおよび４単位ブロックにまで分割することができる。
【０２０１】
なお、この図３３に示す構成において、隣接ブロック接続スイッチ回路１６０Ｂに代えて、選択回路をこの単位ブロック１５０Ｂおよび１５０Ｃに対応して設け、選択回路１７０および１７２に対する配線と同様の配線配置を行なうことにより、図３２に示す構成と同様の配置を実現することができ、より大規模の単位ブロックで構成される基本ブロックを実現することができる。また、この大規模基本ブロックの最小分割基本ブロックサイズを、４単位ブロックに設定することができる。
【０２０２】
また、選択回路１７０に対して、図の上側に隣接する単位ブロックに対して設けられる選択回路との接続を別の配線により形成しても良い。さらに、大規模の基本ブロックを構成することができる。
【０２０３】
［変更例］
図３４は、この発明の実施の形態３の変更例の並列演算装置の構成を概略的に示す図である。この図３４において、単位ブロック２００は、行列状に配列される複数のタイル状のプロセッサコアＴＬを含む。図３４においては、４行４列に配列されるプロセッサコアＴＬ００−ＴＬ０３からＴＬ３０−ＴＬ３３を一例として示す。プロセッサコアＴＬ００−ＴＬ０３からＴＬ３０−ＴＬ３３は、メッシュ状に配列されるネットワーク配線ＩＬにより相互接続される。ネットワーク配線ＩＬは、隣接プロセッサコアを結合する。
【０２０４】
プロセッサコアの両側にバスインターフェイス２０２および２０４が設けられる。バスインターフェイス２０２は、プロセッサコアＴＬ００、ＴＬ１０、ＴＬ２０、およびＴＬ３０と双方向に通信を行なうことができ、バスインターフェイス２０４は、プロセッサコアＴＬ０３、ＴＬ１３、ＴＬ２３、およびＴＬ３３と双方向に通信可能である。このメッシュ状のネットワーク配線において、最上位行のプロセッサコアＴＬ００−ＴＬ０３は、図示しないメモリと双方向に通信可能であり、また、最下位行のプロセッサコアＴＬ３０−ＴＬ３３も、図示しないメモリと双方向に通信可能である。
【０２０５】
この図３４に示すような複数のプロセッサコアを有する単位ブロック（マルチコアプロセッサ）２００を用いて、大規模の基本ブロック（並列演算装置）を構成する。
【０２０６】
図３５は、図３４に示すプロセッサコアの構成の一例を概略的に示す図である。プロセッサコアＴＬ００−ＴＬ０３、…ＴＬ３０−ＴＬ３３は、同一の構成を有するため、図３５においては、プロセッサコアＴＬにより、これらのプロセッサコアＴＬ００−ＴＬ０３、…ＴＬ３０−ＴＬ３３の構成を代表的に示す。
【０２０７】
図３５において、プロセッサコアＴＬは、プロセッサ２１０、ローカルメモリ２１２、およびルータ２１４を含む。プロセッサ２１０は、ローカルメモリ２１２と双方向に通信可能であり、ローカルメモリ２１２へアクセスして命令およびデータを取出して演算処理を実行する。これらのプロセッサ２１０およびローカルメモリ２１２は、ともにルータ２１４に結合される。ルータ２１４は、このネットワーク配線ＩＬに含まれる配線ＩＬＮ、ＩＬＥ、ＩＬＳおよびＩＬＷにより、４方向に隣接して配置されるプロセッサコアのルータに結合される。隣接プロセッサコア間においてのみ通信が行なわれる配線の配置により、配線の錯綜を回避し、またデータ通信信号の伝搬遅延を回避する。
【０２０８】
このような複数のプロセッサコアを含むマルチコアプロセッサにおいても、必要に応じて、その要求されるプロセッサコアの数が異なり、また演算の粒度が異なる。したがって、大規模の基本ブロックにおいて、図３１または図３２に示すようなセレクタを用いて、単位ブロックを選択的に結合することにより、大規模サイズの基本ブロックを小規模の基本ブロックに分割可能とすることができ、演算の粒度に応じた規模のプロセッサを実現することができる。
【０２０９】
この構成においても、通信が、隣接単位ブロック間においてのみ行なわれ、また、単位ブロック間配線も隣接単位ブロック間配線のみであり、ブロックサイズ変更のための配線面積の増大を抑制することができる。
【０２１０】
［変更例２］
図３６は、この発明の実施の形態３の変更例２の単位ブロックの構成を概略的に示す図である。図３６において、単位ブロック３００は、演算処理部３０４と、この演算処理部３０４の入力部および出力部にそれぞれ設けられる入力インターフェイス（Ｉ／Ｆ）３０２および出力インターフェイス（Ｉ／Ｆ）３０６を含む。
【０２１１】
単位ブロック３００においては、データ／信号の流れは、入力インターフェイス３０２から出力インターフェイス３０６に向かって一方方向である。このようなデータ／信号の流れが単位ブロック３００において一方方向の場合においても、単位ブロック３００を複数個配置して、図３１から図３３に示すように、セレクタを用い単位ブロック３００を選択的に結合することにより、ブロックサイズ可変の大規模基本ブロックを形成することができる。たとえば、パイプライン的に演算処理が実行される構成において、そのパイプラインステージの段数を、基本ブロックのサイズを変更することにより調整することができる。
【０２１２】
セレクタの配置およびセレクタ間の接続、ならびに単位ブロックの番号付け順序は、実施の形態１および２の場合と同様である。
【０２１３】
以上のように、この発明の実施の形態に従えば、単位ブロックをセレクタを介して選択的に結合して大規模サイズの基本ブロックを構成している。従って、ブロック間配線は隣接ブロック間だけであり、配線占有面積およびデータ伝播遅延を低減することができ、また、必要とされるサイズのマルチコアプロセッサを実現することができる。
【０２１４】
［実施の形態４］
図３７は、この発明の実施の形態４に従う基本ブロックのブロック構成法を概略的に示す図である。図３７において、最小分割可能基本ブロック３５０に対するセレクタの配置が代表的に示される。この最小分割可能基本ブロック３５０のブロック境界領域ＢＲＧにおいて、最小分割可能基本ブロック３５０に含まれる単位ブロックに対応してセレクタ３５２ａ−３５２ｎを設ける。このセレクタ３５２ａ−３５２ｎそれぞれを、Ｘ方向に隣接するセレクタを配線３６２を用いて接続する。また、セレクタ３５２ａ−３５２ｎとブロック境界領域ＢＲＧに関して（Ｙ方向に関して）対向して配置される単位ブロックのセレクタとを、配線３６０により接続する。Ｘ方向におけるブロック境界領域を越えて最小分割可能基本ブロックの隣接単位ブロックに対して設けられるセレクタに対しては、配線３６３により接続を行なう。
【０２１５】
この図３７に示す構成を基本構成として、Ｘ方向に繰返し配置し、またＹ方向に関して鏡映対称に配置することにより、必要とされるサイズの基本ブロックを実現することができる。なお、Ｙ方向においてブロック境界領域ＢＲＧに関して対向して配置される別のブロック境界領域において、また、セレクタ３５２ａ−３５２ｎと同様に、セレクタを配置してもよい。この場合、Ｘ方向およびＹ方向に最小分割可能基本ブロックを繰返し配置して、必要とされるサイズの基本ブロックを実現することができる。
【０２１６】
［ブロック構成の変更例］
図３８は、この発明の実施の形態４に従う基本ブロックのブロック構成において用いられる単位ブロックの変更例の構成を概略的に示す図である。図３８において、単位ブロック４００は、演算部４０２と、演算部４０２の両側に対向して設けられる入力ポート４０４および４０６と、入力ポート４０４および４０６それぞれに隣接して配置される出力ポート４０５および４０７を含む。
【０２１７】
入力ポート４０４および４０６に入力データ／信号Ｉ０およびＩ１がそれぞれ与えられ、出力ポート４０５および４０７は、それぞれ出力データ／信号Ｏ０およびＯ２を出力する。この図３８に示す構成の場合、単位ブロック４００において一方側から伝達されたデータ／信号は、他方側に配置されたポートを介して出力される。たとえば、入力ポート４０４から入力されたデータは、演算部４０２において処理された後、出力ポート４０７を介して出力される。この構成の場合においても、以下に説明するように、実施の形態１の場合と同様にしてセレクタを配置することにより、選択された基本ブロック内におけるデータの流れを一方方向に設定することができる。
【０２１８】
図３９は、この発明の実施の形態４の変更例の基本ブロックの構成を概略的に示す図である。図３９において、単位ブロック４００Ａ−４００Ｄにより、最小分割可能基本ブロックを構成する。単位ブロック４００Ａ−４００Ｄは、図３８に示す単位ブロック４００と同様の構成を備える。図３９においては、入力ポートおよび出力ポートを、それぞれ、図３８のデータ／信号Ｉ０、Ｉ１、Ｏ０、およびＯ１で示す。
【０２１９】
図３９に示す構成において、Ｙ方向における最小分割可能基本ブロックの境界領域において、単位ブロックの入力ポートに対応して入力セレクタ４５０を配置する。図３９においては、単位ブロック４００Ａの入力ポートＩ０に対応して入力セレクタ４５０ａが配置され、単位ブロック４００Ｄの入力ポートに対応して入力セレクタ４５０ｂが配置される。単位ブロック４００Ａおよび４００Ｄの出力ポートＯ０およびＯ１は、配線４５２（４５２ａ，４５２ｂ）を介して、Ｙ方向において隣接して配置される入力セレクタおよび対向して配置される単位ブロックの入力ポートに対して設けられる入力セレクタに接合される。すなわち、図３９においては、単位ブロック４００Ａからの出力配線４５２ａが、Ｘ方向において隣接する単位ブロック４００Ｄに対して設けられる入力セレクタ４５２ｂの入力部に結合され、また、Ｙ方向に関して対向して配置される単位ブロックの入力セレクタに結合される。入力セレクタ４５０ｂに対しては、また、対向する単位ブロックからの出力配線４５３とＸ方向においてさらに隣接する単位ブロックからの出力配線４５２（４５２ｃ）が結合される。
【０２２０】
入力セレクタ４５０ａに対しても、対向単位ブロックからの出力配線４５３と隣接単位ブロック４００Ｄの出力配線４５２ｂとが結合される。Ｙ方向において対向する最小分割可能基本ブロックにおいては、この図３９に示す配置を回転対称に配置して、最小分割可能基本ブロックが配置される。
【０２２１】
図４０は、図３９に示す最小サイズ基本ブロックの構成を用いて１６単位ブロックより基本ブロックを構成した場合の接続を概略的に示す図である。図４０において、４行４列に単位ブロック４００が配置される。４個の単位ブロック４００により、最小分割可能基本ブロックが構成される。
【０２２２】
最小分割可能基本ブロックのＹ方向における境界領域において入力セレクタ４５０Ａおよび４５０Ｂが交互に配置される。この場合、ブロック境界領域において単位ブロックの出力配線４５２は、Ｘ方向に対して隣接する単位ブロックに対して設けられるセレクタ４５０（４５０Ａまたは４５０Ｂ）に結合されるとともに、対向配線４５３として、Ｙ方向に関して対向して配置される単位ブロックに対して設けられるセレクタ４５０（４５０Ａまたは４５０Ｂ）に結合される。
【０２２３】
単位ブロック４００の接続においては、入力ポートＩ０および出力ポートＯ１が交互に配置され、また、入力ポートＩ１および出力ポートＯ０が交互に配置されるように、単位ブロック４００が相互接続される。入力セレクタ４５０Ａが、入力ポートＩ０に結合され、入力セレクタ４５０Ｂが入力ポートＩ１に結合される。
【０２２４】
単位ブロック４００に対して、ブロック番号を、最小サイズ基本ブロック内においてブロック番号が連続し、かつ縮小時の基本ブロックの単位ブロックの番号が、先頭および最終番号のブロックが隣接するように、番号付けを行う。図４０においては、ブロック番号０から１５が、連続番号の単位ブロックにより閉ループを形成可能に、すなわち、単位ブロックを一筆書きの接続経路により接続するように、単位ブロック４００に付される。
【０２２５】
このセレクタの接続構成において、セレクタ４５０Ａを用いた場合、時計回りの方向にデータを転送する経路が形成され、一方、セレクタ４５０Ｂを利用することにより、反時計回りにデータを転送する経路が形成される。セレクタ４５０Ａまたは４５０Ｂの接続経路を切換えることにより、この１６単位ブロックの基本ブロックを、８単位ブロックの基本ブロックまたは４単位ブロックの基本ブロックに分割することができる。
【０２２６】
図４０に示すセレクタの配置は、最小サイズ基本ブロックをＸ方向に拡張することにより、大規模の基本ブロックを構成することができる。しかしながら、図４０に示す配置において、Ｙ方向における別の最小分割可能基本ブロックの境界領域において、同様、セレクタを配置し、出力配線を隣接単位ブロックの入力セレクタに結合するとともに、Ｙ方向に関して対向する単位ブロックに対して配置される入力セレクタに結合するという規則を適用して、配線を配置しても良い。この構成の場合、図１７に示す構成と同様、Ｘ及びＹ方向に最小サイズブロックを繰返し配置することができ、より大規模の基本ブロックを実現できる。また、この大規模基本ブロックを、配線レイアウトを変更することなくセレクタの接続経路の切換により、小サイズの基本ブロックに変更することができる。
【０２２７】
以上のように、この発明の実施の形態４に従えば、複数の単位ブロックで基本ブロックが構成される場合、この最小分割可能基本ブロックの境界領域においてセレクタを配置し、各この境界領域の単位ブロックの出力配線を、隣接する単位ブロックの入力セレクタおよび対向して配置される単位ブロックの入力セレクタに結合している。これにより、所望のサイズの基本ブロックを実現して、この大規模基本ブロックを、小規模の基本ブロックに配線レイアウトを変更することなく変更することができる。
【０２２８】
なお、これまでの実施の形態１から４においては、最小サイズ基本ブロックは、４単位ブロックで構成される。しかしながら、この最小サイズ基本ブロック（最小分割可能基本ブロック）は、２つの単位ブロックで構成されてもよい。この場合でも、セレクタの配置は、上述の規則性に従って配置する。
【産業上の利用可能性】
【０２２９】
この発明は、一般に、並列演算装置に適用することにより、高速動作するとともに、配線レイアウト面積が低減される並列演算装置を実現することができる。この並列演算装置の単位ブロック内に含まれる処理エレメントは、処理演算機能を有するものであればその構成は任意である。
【図面の簡単な説明】
【０２３０】
【図１】この発明の実施の形態１に従う並列演算装置の全体の構成を概略的に示す図である。
【図２】図１に示す並列演算装置のＡＬＵ間接続切換回路の構成を概略的に示す図である。
【図３】図１に示すＡＬＵ間接続切換回路の配線レイアウトをより具体的に示す図である。
【図４】図２に示すアップシフタおよびダウンシフタの構成の一例を概略的に示す図である。
【図５】図２に示すアップシフタおよびダウンシフタの構成の一例を示す図である。
【図６】図１に示す処理エレメントの構成の一例を概略的に示す図である。
【図７】図６に示す処理エレメントの演算処理態様を模式的に示す図である。
【図８】この発明の実施の形態１に従う並列演算装置の最小分割可能基本ブロックの構成を概略的に示す図である。
【図９】図８に示すＡＬＵ間接続切換回路の配線の配置を概略的に示す図である。
【図１０】この発明の実施の形態１に従う並列演算装置の８ダウンブロック構成時の接続経路を概略的に示す図である。
【図１１】図１０に示す並列演算装置の８単位ブロック構成時のデータ伝達経路を概略的に示す図である。
【図１２】この発明の実施の形態１に従う１６単位ブロック構成時の接続経路を概略的に示す図である。
【図１３】図１２に示す並列演算装置の１６単位ブロック構成時のデータ伝搬経路を概略的に示す図である。
【図１４】この発明の実施の形態１における基本演算ブロックの単位ブロックの配置態様を概略的に示す図である。
【図１５】この発明の実施の形態１に従う並列演算装置の単位ブロックの接続経路をブロック番号とともに示す図である。
【図１６】この発明の実施の形態１に従う並列演算装置の変更例の構成を概略的に示す図である。
【図１７】図１６に示す構成の配線接続を簡略化して示す図である。
【図１８】図１７に示す並列演算装置の接続状態の一例を示す図である。
【図１９】図１８に示す接続形態時の単位ブロック接続態様を概略的に示す図である。
【図２０】図１６に示す構成の配線データ伝搬経路接続態様を概略的に示す図である。
【図２１】図２０に示すデータ伝搬経路接続時の単位ブロックの接続態様を示す図である。
【図２２】図１７に示す配置におけるさらに他のブロック構成時の単位ブロックの接続態様を概略的に示す図である。
【図２３】この発明の実施の形態１の変更例の１６ブロック構成時の接続経路を概略的に示す図である。
【図２４】図２３に示す配置における１６ブロック構成時の単位ブロック接続経路を概略的に示す図である。
【図２５】図２４に示す接続経路のブロック接続態様を概略的に示す図である。
【図２６】図２４に示す配置の３２ブロック拡張時のブロック接続態様を概略的に示す図である。
【図２７】図２４に示す配置の３２ブロック構成時のブロック接続態様の変更例を示す図である。
【図２８】この発明の実施の形態１の変更例の６４ブロック構成時のブロックの接続態様を概略的に示す図である。
【図２９】図２８に示すブロック接続態様の８ブロック接続時のブロック接続態様を概略的に示す図である。
【図３０】この発明の実施の形態２に従う並列演算装置の基本ブロックの構成を概略的に示す図である。
【図３１】図３０に示す構成による１６ブロック構成時の接続経路を概略的に示す図である。
【図３２】この発明の実施の形態２の変更例のセレクタの配置を概略的に示す図である。
【図３３】この発明の実施の形態３に従う並列演算装置の構成を概略的に示す図である。
【図３４】この発明の実施の形態３の単位ブロックの変更例の構成を概略的に示す図である。
【図３５】図３４に示すプロセッサコアの構成の一例を概略的に示す図である。
【図３６】この発明の実施の形態３に従う単位ブロックのさらに他の変更例の構成を概略的に示す図である。
【図３７】この発明の実施の形態４に従う基本ブロック構成時のセレクタの配置を概略的に示す図である。
【図３８】この発明の実施の形態４に従う並列演算装置の単位ブロックの構成を概略的に示す図である。
【図３９】図３８に示す構成のセレクタの配置を概略的に示す図である。
【図４０】この発明の実施の形態に示す並列演算装置の１６単位ブロック構成時の接続態様の一例を概略的に示す図である。
【符号の説明】
【０２３１】
１Ｌ，１Ｒ  データレジスタ回路、２  演算処理部、３  ＡＬＵ間接続切換回路、３Ｕ  アップＡＬＵ間接続切換回路、３Ｄ  ダウンＡＬＵ間接続切換回路、４  内部データバス、６  バスインターフェイス部、ＵＳＦＬ０−ＵＳＦＬｎ，ＵＳＦＲ０−ＵＳＦＲｎ  アップシフタ、ＤＳＦＬ０−ＤＳＦＬｎ，ＤＳＦＲ０−ＤＳＦＲｎ  ダウンシフタ、１０ＵＬ  左側アップシフトデータバス、１０ＤＬ  左側ダウンシフトデータバス、１５Ｌ０−１５Ｌ７  内部データ転送線、２０Ｌ０−２０Ｌ７，２０Ｒ０−２０Ｒ７  第１のデータ転送線、２１Ｌ０−２１Ｌ７，２１Ｒ０−２１Ｒ７  第２のデータ転送線、ＰＥ０−ＰＥｎ  処理エレメント、２．０−２．３  演算処理部、３Ｄ１−３Ｄ３  ダウンＡＬＵ間接続切換回路、３Ｕ１−３Ｕ３  アップＡＬＵ間接続切換回路、♯０−♯３  単位ブロック、６０，６２  セレクタ、４５−４８，５０−５７  接続配線、７０ａ，７０ｂ，７２ａ，７２ｂ，７７ａ，７７ｂ、７９ａ，７９ｂ、７４ａ，７６ａ，７４ｂ，７６ｂ  セレクタ、１００Ａ−１００Ｄ  単位ブロック、１１０  主演算ブロック（ＰＥ群）、１２０−１２７  セレクタ、１００Ａ０−１００Ａ３，１００Ｂ０−１００Ｂ３，１００Ｃ０−１００Ｃ３，１００Ｄ０−１００Ｄ３  単位ブロック、Ｌ１，Ｌ２，Ｌ３  接続配線、１５０Ａ−１５０Ｄ  単位ブロック、１６０Ａ−１６０Ｃ  隣接ブロック接続スイッチ回路、１７０，１７２  選択回路、２００  単位ブロック、ＴＬ００−ＴＬ０３，ＴＬ３０−ＴＬ３３  プロセッサコア、２０２，２０４  バスインターフェイス、３００  単位ブロック、３５０  最小分割可能基本ブロック、３５２ａ，３５２ｎ  セレクタ、３６０，３６２，３６３  接続配線、４００  単位ブロック、４０４，４０６  入力ポート、４０５，４０７  出力ポート、４０２  演算部、４５０ａ，４５０ｂ  入力セレクタ、４５２ａ，４５２ｂ，４５２  出力配線、４５３  対向出力接続配線、４５０Ａ，４５０Ｂ  セレクタ。
【図１】
2010039625.tif 000003
【図２】
2010039625.tif 000004
【図３】
2010039625.tif 000005
【図４】
2010039625.tif 000006
【図５】
2010039625.tif 000007
【図６】
2010039625.tif 000008
【図７】
2010039625.tif 000009
【図８】
2010039625.tif 000010
【図９】
2010039625.tif 000011
【図１０】
2010039625.tif 000012
【図１１】
2010039625.tif 000013
【図１２】
2010039625.tif 000014
【図１３】
2010039625.tif 000015
【図１４】
2010039625.tif 000016
【図１５】
2010039625.tif 000017
【図１６】
2010039625.tif 000018
【図１７】
2010039625.tif 000019
【図１８】
2010039625.tif 000020
【図１９】
2010039625.tif 000021
【図２０】
2010039625.tif 000022
【図２１】
2010039625.tif 000023
【図２２】
2010039625.tif 000024
【図２３】
2010039625.tif 000025
【図２４】
2010039625.tif 000026
【図２５】
2010039625.tif 000027
【図２６】
2010039625.tif 000028
【図２７】
2010039625.tif 000029
【図２８】
2010039625.tif 000030
【図２９】
2010039625.tif 000031
【図３０】
2010039625.tif 000032
【図３１】
2010039625.tif 000033
【図３２】
2010039625.tif 000034
【図３３】
2010039625.tif 000035
【図３４】
2010039625.tif 000036
【図３５】
2010039625.tif 000037
【図３６】
2010039625.tif 000038
【図３７】
2010039625.tif 000039
【図３８】
2010039625.tif 000040
【図３９】
2010039625.tif 000041
【図４０】
2010039625.tif 000042