JPH0668053A - Parallel computer - Google Patents

Parallel computer

Info

Publication number
JPH0668053A
JPH0668053A JP22159292A JP22159292A JPH0668053A JP H0668053 A JPH0668053 A JP H0668053A JP 22159292 A JP22159292 A JP 22159292A JP 22159292 A JP22159292 A JP 22159292A JP H0668053 A JPH0668053 A JP H0668053A
Authority
JP
Grant status
Application
Patent type
Prior art keywords
processor
pe
processors
instruction
control
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP22159292A
Other languages
Japanese (ja)
Inventor
Hiroshige Fujii
Hisatomo Satou
Masashi Takahashi
Takashi Yoshida
寿倫 佐藤
尊 吉田
洋重 藤井
真史 高橋
Original Assignee
Toshiba 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

Links

Abstract

PURPOSE:To shorten the execution time and to effectively use processors even in the case of the degree of parallelism lower than the number of processors. CONSTITUTION:A processor array consisting of n processors 1 and a processor array controller 2 which controls the processor array and extracts two kinds of instruction strings, which can be executed in parallel, from instruction strings to supply them to the processor array are provided, and one of two kinds of instruction strings supplied from output terminals OUT0 and OUT1 of the processor array controller 2 is received by each processor 1, and two kinds of instruction strings are executed in parallel by n processors.

Description

【発明の詳細な説明】 DETAILED DESCRIPTION OF THE INVENTION

【0001】 [0001]

【産業上の利用分野】本発明は、並列計算機に関する。 The present invention relates, on the parallel computer.

【0002】 [0002]

【従来の技術】大規模な科学技術計算を高速に実行するために、並列計算機が期待されている。 BACKGROUND OF THE INVENTION a large-scale scientific computing in order to run faster, parallel computer is expected. 並列計算機の1 Of parallel computer 1
つとしてSIMD型並列計算機がある。 There are SIMD type parallel computer as a One. SIMD型並列計算機は、複数のプロセッサ上に配置された複数のデータに対して、すべてのプロセッサで同じ命令を実行する。 SIMD type parallel computer, to a plurality of data arranged on a plurality of processors, executing the same instruction at all processors. この場合、プロセッサ数分だけのデータに対する処理を並列に実行することになる。 In this case, to execute the processing for the data by the number of processors in parallel.

【0003】一般に、並列計算機上で実行しようとするプログラムには、並列度というものがあり、それ以上のプロセッサがあっても、速度は向上しない。 [0003] Generally, program to be executed by the parallel computer, there is a thing called parallelism, even if more processors, the speed is not improved. 例えば、繰り返し処理を並列実行するときに、1回の繰り返しを1 For example, when the parallel iterate once repeated for one
台のプロセッサで実行することを考えると、1000回の繰り返し処理を10000台のプロセッサで実行しても、1000倍以上には速度向上は望めない。 Given that run on the platform processor, running a 1000 times repetitive treatment with 000 units of the processor, the more than 1000-fold can not be expected speedup. したがって、プロセッサの数よりも少ない並列度の問題を解く場合には、実質的に使用されないプロセッサが多くなり、 Therefore, when solving parallelism problems less than the number of processors, the number of not substantially using a processor,
無駄である。 It is a waste.

【0004】問題の並列度が少ない場合に、実行時間の短縮とプロセッサの有効利用を考える必要がある。 [0004] If there is a small degree of parallelism of the problem, it is necessary to consider the effective use of shortening and the processor execution time. 例えば、上述の例では繰り返し処理が複数命令からなり、その複数命令の中で並列に実行できる命令があれば、その命令を複数のプロセッサで並列実行できる可能性がある。 For example, it repeated treatment of a plurality instructions in the above example, if there is an instruction that can be executed in parallel in the plurality of instructions, which may be executed in parallel the instruction to a plurality of processors. しかしながら、このような複数命令の並列実行は、 However, the parallel execution of such multiple instructions,
単一命令を全プロセッサが実行するというSIMD型並列計算機では、実現するのは困難である。 The SIMD type parallel computer that all processors of a single instruction is executed, it is difficult to achieve.

【0005】ここで、一般的な並列計算機について図6 [0005] Here, a general parallel computer 6
を用いて説明する。 It will be described with reference to.

【0006】同図で、この並列計算機は、大きく分けて、1台の制御プロセッサ(CP)11と、複数台の演算プロセッサ(PE)12から構成される。 [0006] In the figure, the parallel computer is roughly a one of the control processor (CP) 11, an arithmetic processor of multiple (PE) 12. 制御プロセッサ11には全体メモリ(M)13が接続され、演算プロセッサ12にはそれぞれローカルメモリ(LM)14 The entire control processor 11 memory (M) 13 are connected, each of the arithmetic processor 12 local memory (LM) 14
が接続される。 There is connected. 制御プロセッサ11と各演算プロセッサ12は、グローバルバス15で接続される。 Each arithmetic processor 12 and the control processor 11 is connected by a global bus 15. 演算プロセッサ12は、ネットワーク16で相互接続される。 Arithmetic processor 12 are interconnected by a network 16. ネットワーク16の形態としては、格子結合、2進nキューブ結合、木結合等、多くのものが知られている。 The form of the network 16, grating coupling, binary n-cube binding, wood bond and the like are known many things.

【0007】制御プロセッサ11は、それ自体が一つの情報処理装置であり、全体メモリ13に格納されているプログラム(機械語命令列)を読み込み、解読する。 [0007] The control processor 11 is itself is one of the information processing apparatus reads the program stored in the entire memory 13 (machine language instruction sequence), to decrypt. 解読した命令が制御プロセッサ11で実行すべき命令であれば制御プロセッサ11自身で実行する。 Decoded instruction is executed by the control processor 11 itself if instructions to be executed by the control processor 11. 解読した命令が演算プロセッサ12で実行すべき命令であれば、制御プロセッサ11はこの命令をグローバルバス15を介して全演算プロセッサ12に放送し、演算プロセッサ12 If decoded instruction is an instruction to be executed by the arithmetic processor 12, control processor 11 broadcasts the command to all processors 12 via the global bus 15, the arithmetic processor 12
でこの命令の実行が行われる。 In the execution of this instruction is carried out.

【0008】制御プロセッサ11は、グローバルバス1 [0008] The control processor 11, global bus 1
5を介して、すべての、あるいは特定の演算プロセッサ12から、データの読み出し、および書き込みを行うことができる。 5 through, all, or from a specific arithmetic processor 12 can perform data reading and writing. また、同期バス17を介して、すべての演算プロセッサ12の状態の論理和を認識することができる。 Further, it is possible to via the synchronous bus 17, recognizes the logical sum of the status of all of the processors 12.

【0009】さらに、制御プロセッサ11は、フロントエンド計算機18と結合されている。 Furthermore, the control processor 11 is coupled with the front end computer 18. フロントエンド計算機18では、制御プロセッサ11および演算プロセッサ12で実行するプログラムの開発を行ったり、処理すべきデータの入出力を行う。 In the front end computer 18, or developing a program to be executed by the control processor 11 and the arithmetic processor 12, and inputs and outputs data to be processed.

【0010】演算プロセッサ12は、制御プロセッサ1 [0010] calculation processor 12, control processor 1
1から放送される命令に従って、自ローカルメモリ14 In accordance with instructions to be broadcast from 1, the self-local memory 14
のデータに対して演算を行ったり、ネットワーク16を介して他の演算プロセッサ12とデータ通信を行ったりして処理を行う。 Or perform operations on the data, performs processing or perform other arithmetic processors 12 and the data communication through the network 16.

【0011】演算プロセッサ12は、例えば、図37に示すような構成になっている。 [0011] calculation processor 12, for example, has a structure as shown in FIG. 37.

【0012】命令レジスタ24には、制御プロセッサ1 [0012] in the instruction register 24, the control processor 1
1から放送される命令が、1クロックごとに格納される。 Instructions to be broadcast from 1 is stored in each clock. 演算プロセッサ12を構成する他のすべての要素、 All other elements of the arithmetic processor 12,
すなわち、アドレスレジスタ(AR)26、データレジスタ(DR)27、状態制御レジスタ(PSW)31、 That is, the address register (AR) 26, a data register (DR) 27, the state control register (PSW) 31,
プロセッサ番号レジスタ(PNR)32、ALU29、 Processor number register (PNR) 32, ALU29,
レジスタファイル30、通信制御部33は、命令レジスタ24の内容によって制御される。 Register file 30, the communication control unit 33 is controlled by the contents of the instruction register 24.

【0013】制御プロセッサ11からは、一時期には常に同じ命令が全演算プロセッサ12に対して放送され、 [0013] from the control processor 11 is always the same command is broadcast for all processors 12 in one time,
全演算プロセッサ12が一斉に同じ処理を行うことになる。 All processors 12 is to perform the same process simultaneously. いわゆるSIMD(Single Instruction Multiple The so-called SIMD (Single Instruction Multiple
Data Stream )方式と呼ばれるものである。 It is called a Data Stream) method. 一方、各演算プロセッサ12が独自にプログラムを持ち、各演算プロセッサ12が独立して動作する方式も提案されており、MIMD(MultipleInstructionMultiple Data Str On the other hand, the arithmetic processor 12 has its own program, type such that the arithmetic processor 12 operates independently has been proposed, MIMD (MultipleInstructionMultiple Data Str
eam)方式と呼ばれる。 eam) is referred to as a system.

【0014】図37に示したSIMD方式は、MIMD [0014] SIMD system shown in FIG. 37, MIMD
方式に比較して制御が簡単でハードウェアが少なくてすみ、多くのデータに対して同じ処理を行う必要のある場合に有効である。 Requires less simple hardware control as compared to the method is effective when it is necessary to perform the process with a number of data. しかし、データによって異なった処理が必要となる場合に、効率よく処理できないという欠点があり、この場合はMIMD方式が有利になる。 However, when different processing by the data is needed, there is a drawback that can not be processed efficiently, this case is advantageous MIMD system.

【0015】このような、並列計算機においては、各演算プロセッサ(演算要素/以下、PE:Process [0015] Such, in the parallel computer, the arithmetic processor (computing elements / less, PE: Process
ing−Elementという)間の接続方式がその並列計算機をどのようにするかがその並列計算機の特徴を出す大きな要因となっている。 Connection method between) that ing-Element is how to the parallel computer has become a major factor out the characteristics of the parallel computer. PE間接続方式は大きく分けて、静的結合と動的結合の2つがある。 PE inter connection method is roughly divided into There are two static binding and dynamic binding.

【0016】静的結合は、隣接する通信相手のPEが経路によって固定されているもので、リング結合、トーラス結合、木構造結合などがある。 The static binding, in which PE of the adjacent communication partner is immobilized by the path, the ring bond, Torus, and the like tree binding. その特徴は、通信経路が確定しているため、隣接経路のあるPE間でのデータ通信は速いが、逆に遠くのPE、すなわち他のPEを経由して通信を行わなければならない相手との通信は非常に遅くなるという問題がある。 Its features, since the communication path is established, the data communication faster between PE with adjacent paths, distant conversely PE, i.e. the opponent must communicate via another PE there is a problem that the communication is very slow.

【0017】動的結合は、通信相手が固定でなく、クロスバスイッチを多段に設けて通信時にスイッチを切り替え、通信相手を決定するもので、クロスバネット、オメガネットなどがある。 [0017] The dynamic binding, the communication partner is not fixed, switch the switch the crossbar switch at the time of communication provided in multiple stages, intended to determine the communication partner, cross Vanette, there is such as omega net. その特徴は、スイッチ群を経由することにより、ほぼ全てのPEへの通信距離が等価に見えることであり、任意のPE間の通信時間がほぼ一定となることである。 It is characterized by way of the switch group is that the communication distance to nearly every PE appear equivalent, is that the communication time between any PE is substantially constant.

【0018】また、PEが故障した場合の故障PEの切り放しも容易に行うことが出来る。 Moreover, PE is disassociate also easily performed, it is possible fault PE in the case of failure. しかし、経路の確定のためと、スイッチのディレイのために、通信のための時間がかかり、また、スイッチでのデータの衝突などが問題となる。 However, the order of determination of the path, because the switches of the delay, it takes time for communication, also such data collisions on the switch becomes a problem.

【0019】これらの結合路の使い分けとして、隣接作用問題でよく行われる隣のPEへのデータ転送では静的結合である隣接結合路を使用し、任意のPEから他の任意のPEへデータを転送するいわゆるランダム通信では動的結合の通信経路を使用する場合が多い。 [0019] selectively used for these coupling path, using the adjacent coupling path is static binding is the data transfer to the PE next performed well in the adjacent action problem, the data from any PE to any other PE in so-called random communication to be transferred is often used communication paths dynamic binding.

【0020】静的結合網の並列計算機に、サイズの合う問題を実行させる場合は効率はよいが、サイズの異なる問題を実行させる場合は、PE台数が中途半端になり、 The parallel computer of static coupling network, the efficiency is good when executing the problem size suits, the case of executing a different problem sizes, PE number is halfway,
非常に効率が落ちてしまう。 Very efficiency falls. 例えば32×32の2次元トーラス結合の並列計算機に問題サイズ32×32×1 For example 32 × 32 issues 2-dimensional torus binding of a parallel computer size 32 × 32 × 1
0の隣接作用問題を乗せる場合、x軸、y軸をそれぞれPEアレイの各辺に対応させれば効率は非常によい。 When placing a 0 in the adjacent working problems, x-axis, if correspond to the respective sides of the y-axis, respectively PE array efficiency is very good.

【0021】ところが、問題サイズ30×30×10の問題では、x,y軸をPEアレイの各辺に対応させてもそれぞれ2行分のPE列が余ってしまう。 [0021] However, in the issue of size 30 × 30 × 10 issues, x, would surplus PE column for two rows each be made to correspond to each side of the y-axis PE array. この場合は、 in this case,
各2行分が余ったことをプログラマーあるいはコンパイラが認識してこれに見合ったコードを出力しなければならない。 Each two rows programmers or compiler that surplus must output a code commensurate to recognize.

【0022】例えばリング状に隣接PEに接続されている場合、問題サイズのために使用しないPEがあれば、 [0022] For example, when connected to the adjacent PE to the ring, if there is PE is not used for problem size,
同PEを通過させるために、余分な転送動作を行う必要があり、各々のPEでは使用するPEと使用しないPE For the passage of the PE, it is necessary to perform an extra transfer operation, and without PE used in each PE PE
の判別動作も必要となってくる。 Of discriminating operation also becomes necessary. そのため問題サイズとアレイサイズが一致した場合に比べ、データ転送でのオーバーヘッドにより明らかに処理効率が落ちる。 Therefore compared with the case where the size and array size problem matches, clearly processing efficiency drops with an overhead in the data transfer.

【0023】並列計算機の他の特徴としては、各PEの演算データを保持するメモリの構成も挙げられる。 [0023] Other features of the parallel computer can also include configuration of the memory for holding the operation data of each PE. 大きく分けると。 Roughly divided into. 共有メモリ型と、分散メモリ型がある。 A shared memory type, there is a distributed memory. 共有メモリ型は、各PEとメモリ間を共有バスあるいは動的結合路で結合する場合が多く、比較的プロセッサ台数が少ない場合に有効である。 Shared memory, many cases of coupling between the PE and the memory in a shared bus or dynamic coupling path is effective when a relatively processor number is small.

【0024】一方、分散メモリ型は各々のPEにローカルメモリを付け、データの共有性を無くするかわりにデータアクセスのコンフリクトを解消している。 On the other hand, distributed memory are denoted by the local memory to each PE, and to eliminate the conflict data access instead to eliminate the sharing of data. そのため、近年のPE台数の多い並列計算機では、ほぼこの分散メモリ型で構成されている。 Therefore, on busy recent PE number parallel computer is comprised of nearly the distributed memory.

【0025】分散方式のローカルメモリでは、解く問題の並列度は低いが1台のPEで分担するデータ量が多い場合、一度に乗せることのできるデータ量は1台のPE [0025] In the local memory of the distribution method, solved if the degree of parallelism lesser amount of data shared by a single PE of problematic, one is the amount of data that can be put that time PE
のローカルメモリに依存してしまう。 Of it would depend on the local memory. 稼動しているPE PE running
よりもIDLEのPEの方が多い場合、本来1台のPE If there are more of PE of IDLE than the one originally PE
で受け持つデータを2台のPEに振り分け、2台のPE Allocated to two PE data in charge, the two PE
の連動により、疑似的に1台のPEとして処理を行う。 The interlocking of performing pseudo processed as a single PE.
この場合、2台の連動を処理するためのソフトウェアのオーバーヘッドと、隣接通信が行えないオーバーヘッドから、処理能力が低下する。 In this case, the software overhead for handling interlock the two, from not perform an adjacent communication overhead, throughput decreases.

【0026】以上のように、従来の並列計算機では問題サイズが異なることによるオーバーヘッドが大きいため、以前よりオーバーヘッドを小さくするような並列計算機が必要とされていた。 [0026] As described above, since the overhead is large due to the size problem differs in the conventional parallel computer, the parallel computer so as to reduce the overhead than before has been required.

【0027】一方、複数の演算プロセッサを相互結合する通信ネットワークは、これらの演算プロセッサを相互に結合するが、プロセッサの数は非常に多いので、任意の演算プロセッサから他の全ての演算プロセッサに結合するための通信経路を備えるのは、物理的にも経済的にも現実的ではない。 On the other hand, a communication network interconnecting a plurality of processors binds these processors to each other, the number of processors is very large, coupled from any processors to all other processors It provided with a communication path for the physically not practical economically well.

【0028】そこで、例えば図19に示すように、相互に隣接する演算プロセッサ55間の通信チャネル56だけを備えさせ、隣接せず直接に結合されていない演算プロセッサ55間では、一つ以上の中継プロセッサを介して通信を行う方法がある。 [0028] Therefore, for example, as shown in FIG. 19, let with only communication channel 56 between the processors 55 adjacent to each other, between the processors 55 which are not coupled directly to the not adjacent, one or more relay there is a method of communicating via a processor.

【0029】このようなプロセッサ間通信方式としては、例えばWJDally 他の”Deadlock-Free Message Ro [0029] As the communication method between such processors, for example WJDally other "Deadlock-Free Message Ro
uting in Multiprocessor Interconnection Networks” uting in Multiprocessor Interconnection Networks "
(IEEETrans. Comput., vol.C-6, No.5, May 1987)に開示されているワームホール・ルーティングがある。 (IEEETrans. Comput., Vol.C-6, No.5, May 1987) have wormhole routing disclosed. このワームホール・ルーティングでは、メッセージをフリットと呼ばれる小さな単位に分割して通信を行う。 This wormhole routing, communicates by dividing the message into smaller units called frit. 通信は送信側プロセッサから受信側プロセッサまでの経路を確定して開始され、その経路は通信が終了するまでそのメッセージに占有される。 Communication is initiated to confirm the path from the transmitting processor to a receiving-side processor, the path is occupied by the message until communication ends.

【0030】ワームホール・ルーティングは以上のような通信を行うので、あるメッセージの通信が行われている間は、その通信で使用されている通信チャネルを他のメッセージの通信に使用することはできない。 [0030] Since the wormhole routing communicates described above, while the communication of a certain message is being performed, it is impossible to use the communication channel used in the communication to communicate other messages . したがって、あるメッセージを構成する全てのフリットの通信が途中で停止してしまうと、その通信に使用されている通信チャネルを必要とする通信は、その間ずっと待ち続けなければならない。 Therefore, when the communication of all the flits constituting a certain message will be stopped halfway, the communication that requires a communication channel used in the communication must continue to wait all the while. すなわち、あるメッセージの通信が他のメッセージの通信を妨害してしまうという問題がある。 That is, there is a problem that the communication of a message will interfere with communication of other messages.

【0031】この問題を解決するために、例えばWJDa [0031] In order to solve this problem, for example WJDa
lly の”Virtual-Channel Flow Control”(IEEE Tran lly of "Virtual-Channel Flow Control" (IEEE Tran
s. Para. and Dist. Sys., vol.3, No.2, Mar. 1992) s. Para. and Dist. Sys., vol.3, No.2, Mar. 1992)
に開示されているように、各演算プロセッサのメッセージの受信側に複数個のフリットを蓄えることのできるバッファを設ける。 As disclosed in, providing a buffer capable of storing a plurality of frit to the receiving of the message of the processors.

【0032】こうすることで、通信が停止しているメッセージを演算プロセッサ内に蓄え、これがネットワークに広がる範囲を狭め、このメッセージがさらに他のメッセージの通信を妨害しないようにしてる。 [0032] In this way, stored messages communication is stopped in the arithmetic processor, which narrows the range extending to the network, and to communicate this message still other messages do not interfere.

【0033】このような演算プロセッサの従来例を図3 [0033] Figure 3 a conventional example of such a calculation processor
8に示す。 It is shown in 8. ルータ部51と演算処理部52から構成される。 An arithmetic processing unit 52 and the router 51. ルータ部51はフリットを蓄えるバッファ53x, Router 51 buffer 53x for storing the frit,
53y,53pと、フリットの出力先を決定するスイッチ54から構成される。 53y, and a switch 54 for determining the 53p, the frit destination.

【0034】Pin,Poutはルータ部51と演算処理部52とを接続する通信チャネルである。 [0034] Pin, Pout is a communication channel that connects the router 51 and the arithmetic processing unit 52. Xin,X Xin, X
out,Yin,Youtはそれぞれ隣接する演算プロセッサとの間の入力および出力のための通信チャネルである。 out, Yin, Yout is the communication channel for input and output between the arithmetic processor respectively adjacent.

【0035】しかしこのプロセッサを用いた場合、以下のような問題がある。 [0035] However, when using the processor, has the following problems. 図39において、55a〜55e In Figure 39, 55a-55e
は演算プロセッサであり、それそれバッファ53x,5 Is an arithmetic processor, which it buffers 53x, 5
3y,53p、スイッチ54および演算処理部52から構成される。 3y, 53p, a switch 54 and the arithmetic processing unit 52.

【0036】出力先の演算プロセッサ55bのバッファが一杯で、通信が停止しているフリット67が演算プロセッサ55aのバッファ53xに蓄えられているとする。 The buffer of the destination of the arithmetic processor 55b is in full, the frit 67 communication is stopped is stored in the buffer 53x arithmetic processors 55a. このとき演算プロセッサ55cから演算プロセッサ55aに、別のメッセージのフリット68が入力されるとする。 The arithmetic processor 55a from the arithmetic processor 55c at this time, the frit 68 of another message is input. このメッセージの出力先が演算プロセッサ55 Output destination processors of this message 55
eであるとすると、演算プロセッサ55eのバッファに空きがあれば、フリット68は出力されるべきである。 When a e, if there is a space in the buffer of the arithmetic processor 55e, the frit 68 is to be outputted.

【0037】ところが、バッファ53xに蓄えられているフリット67の通信が停止しているため、フリット6 [0037] However, since the communication of the frit 67 stored in the buffer 53x is stopped, the frit 6
8を出力することができない。 It is not possible to output the 8. すなわち、出力先の通信チャネルが空いており本来出力されるべきであるメッセージが、通信の停止している他のメッセージによって通信を妨害される。 That is, the output destination of the communication channel should be originally outputted are empty message is interfering with communication by another message that stops the communication. したがって、並列計算機全体としての通信時間は増大し、スループットも低下する。 Therefore, communication time of the entire parallel computers increases, throughput decreases.

【0038】ところで、図19で示した通信方法とは別に、図29に示すような、通信方法がある。 By the way, apart from the communication method shown in FIG. 19, as shown in FIG. 29, there is a communication method. この方法におけるワームホール・ルーティングでは、メッセージをフリットと呼ばれる小さな単位に分割し、中継プロセッサはメッセージが全て到達するのを待たないで、あるフリットが到着したら直ちにそのフリットを次のプロセッサに転送する。 In wormhole routing in this way, divided into small units called frit message, the relay processor without waiting for the message reaches all transfers immediately the frit When there flit arrives at the next processor.

【0039】ワームホール・ルーティングを行うプロセッサの構成例を図40に示す。 [0039] The configuration example of a processor that performs wormhole routing is shown in Figure 40. 90はルータ部で、Xi 90 is a router, Xi
n、Xoutはそれぞれ隣接するプロセッサとの間の入力および出力チャネルである。 n, Xout is the input and output channels between the processor respectively adjacent. Pin、Poutはルータ部90と演算処理部72を接続する通信チャネルである。 Pin, Pout is a communication channel that connects the router 90 and the arithmetic processing unit 72.

【0040】図29においてプロセッサ74aからプロセッサ74eへの通信を考える。 [0040] Considering the communication from the processor 74a to the processor 74e in Figure 29. ワームホール・ルーティングではハンドシェイクを行って通信を行う必要がある。 In wormhole routing it is necessary to carry out the communication by performing a handshake. ハンドシェイクのリクエストとアクノリッジとで一回のフリットの通信が成立するので、一単位時間は2と考えることができる。 Since the communication of a single frit between request and acknowledge handshake is established, it can be considered one unit time is 2. Dをプロセッサ間の距離、Lをフリットの数として、図41のD=4、L=4の場合を例にして、必要な通信時間を考察する。 D the distance between processors, the L as the number of the frit, as an example the case of D = 4, L = 4 in FIG. 41, consider the communication time required.

【0041】例えばプロセッサ74bからプロセッサ7 [0041] For example, from the processor 74b processor 7
4cへ先頭フリットを送信している間に、プロセッサ7 While sending the head flit to 4c, the processor 7
4aはプロセッサ74bに二番目のフリットを送信することができる。 4a may transmit the second frit processor 74b. 同様の考察から、プロセッサ74aからプロセッサ74eまでの通信を考える。 From the same considerations, think about the communication from the processor 74a to the processor 74e.

【0042】先頭フリットがプロセッサ74aからプロセッサ74eに到達するまでに必要な時間は2×Dであり、この間に二番目のフリットは、プロセッサ74dに到達している。 The time required for the head flit arrives from the processor 74a to the processor 74e is 2 × D, the second frit during this time has reached a processor 74d. したがって、二番目以降の全てのフリットが、プロセッサ74aから74eに到達するまでに必要な時間は2×(L−1)となる。 Therefore, all frit second later, the time required to reach from the processor 74a to 74e becomes 2 × (L-1). この結果、ワームホール・ルーティングの場合に必要なプロセッサ間の通信時間は2×(D+L−1)となる。 As a result, the communication time between processors required in the case of a wormhole routing becomes 2 × (D + L-1).

【0043】プロセッサ間通信の他の方式には、特開平2−228762に開示されているワームホール・ルーティングを変形した方法がある。 [0043] Other methods of communication between processors, there is a method of modifying the wormhole routing disclosed in JP-A-2-228762. この方法ではメッセージとともに伝達されるクロックの制御のもとに、プロセッサ間で通信が行われる。 Under the control of a clock transmitted with the message in this way, the communication between processors is performed. ワームホールでは通信を行うごとに、ハンドシェイクを行って隣接プロセッサ間で同期をとらなければならないのに対して、この方法ではいったんプロセッサ間の経路が決定してしまえば、クロック同期にしたがって通信すればよく、ハンドシェイクを行う必要がない。 Each time communicating the wormhole, whereas must be synchronized between adjacent processors perform handshaking, in this way once he has determined path between processors, by communication in accordance with a clock synchronization Bayoku, it is not necessary to perform a handshake.

【0044】この方法ではいったん経路が確定した後では、ハンドシェイクを行う必要がないので(D+L− [0044] In once the route has been determined in this way, it is not necessary to perform a handshake (D + L-
1)で通信が行える。 It can communicate with 1). しかし、経路を確定するときと、 However, in the case to determine the route,
経路の確定を送信側プロセッサへ報告するときには、ワームホール・ルーティングと同様にハンドシェイクを行わなければならず、それぞれ(2×D)の通信時間を必要とする。 When reporting definite path to the sending processor must perform a handshake as with wormhole routing, it requires a communication time of each (2 × D). したがってワームホール・ルーティングの変形を用いた場合に必要なプロセッサ間の通信時間は(5 Thus the communication time between required processors when using the deformation of wormhole routing (5
×D+L−1)となる。 × D + L-1) it becomes. 図42にD=4、L=4の場合のタイミング図を示す。 Figure 42 shows a timing diagram in the case of D = 4, L = 4.

【0045】プロセッサの数が1,000を越えるような大規模なネットワークになると、これらのDの項による影響が無視できなくなる。 [0045] As the number of processors becomes large network that exceeds 1,000, the impact of the section these D can not be ignored. このとこはDが大きくなるとそのメッセージの通信に要する時間が増大するだけではない。 The Toko is not only increases the time required to communicate larger when the message D. すなわち、通信中のメッセージがプロセッサやプロセッサ間のチャネルを占有し、他のメッセージはそのプロセッサやチャネルを利用することができなくなる。 That is, a message in the communication occupies a channel between the processors and processors, other messages will not be able to utilize the processor and channels.

【0046】そのためプロセッサやチャネルが解放されるのを待たなければならない。 [0046] must wait for the order processor or channel is released. つまり、あるメッセージの通信が他のメッセージの通信の妨げとなるわけである。 That is why communication of a message hinders communication of other messages. したがってメッセージの通信に時間がかかると、ほかのメッセージの障害となる時間も増加し、ネットワーク全体での通信時間はさらに増大することになる。 Therefore, when it takes time to communicate a message, increase the time to be a failure of the other messages, communication time in the whole network will be further increased.

【0047】 [0047]

【発明が解決しようとする課題】以上で述べたように、 As mentioned in THE INVENTION It is an object to solve the above,
従来のSIMD型並列計算機では、問題の並列度がプロセッサよりも大きい場合には、その並列度を生かして高速に問題を解くことができるが、問題の並列度がプロセッサ数よりも小さい場合には、有効に利用できるのは問題の並列度分のプロセッサのみで、それ以外のプロセッサは遊ぶことになり、問題を解く時間を短縮するのには役にたたないという問題がある。 In conventional SIMD type parallel computer, when parallelism problem is larger than the processor, which can solve problems quickly taking advantage of the parallelism, if parallelism issues is smaller than the number of processors , only by the processor of the parallel degree a matter of minutes can be effectively utilized, and the other processor is made to be played, there is a problem that it is not useless is to reduce the time to solve the problem.

【0048】また、SIMD型並列計算機は、多くのデータに対して同じ処理を行う必要のある場合に有効である。 [0048] Further, SIMD type parallel computer is effective when it is necessary to perform the process with a number of data. しかし、データによって、異なった処理が必要となる場合に、効率よく処理できないという欠点があった。 However, the data, when different processing is required, there is a drawback that can not be processed efficiently.
一方MIMD型並列計算機では、データによって異なる処理が必要な場合も柔軟に対応できるが、制御が複雑で、ハードウェアが増大するという欠点があった。 While in MIMD parallel computers, but different processes also flexible response if required by the data, the control is complicated, there is a drawback that the hardware is increased.

【0049】さらに、従来の静的結合網の並列計算機では、問題のサイズが異なる場合にPE台数がが中途半端になり、効率が低下してしまったり、データ量が多い場合に複数台数のPEを連動させるためのオーバーヘッドが大きくなるという問題があった。 [0049] Further, in the parallel computer of a conventional static interconnection network, PE number is becomes halfway when the size of the problem is different, or efficiency accidentally drop, multiple number when the data amount is large PE overhead for interlocking the there has been a problem that becomes larger.

【0050】一方、従来の並列計算機では、出力先の通信チャネルが空いており、通信が可能であるにも関わらず、通信が停止しているメッセージによって他のメッセージの通信が妨害されてしまうという問題があった。 On the other hand, in the conventional parallel computer has vacant communication channel destination, despite the possible communication is that the communication of other messages by a message communication is stopped from being interfering there was a problem.

【0051】また、ネットワークの規模がプロセッサ間通信に与える影響が大きく、大規模なネットワークでは通信に非常に時間がかかってしまうという問題もあった。 [0051] In addition, significantly affected the scale of the network is given to the communication between the processor, in a large-scale network was also a problem that very takes time to communication.

【0052】この問題を解決するために、第1の発明は、問題の並列度がプロセッサ数よりも小さい場合でも、できるだけ多くのプロセッサを効率よく利用できる並列計算機を提供することを目的とする。 [0052] To solve this problem, the first invention, parallelism problem even if less than the number of processors, and to provide a parallel computer capable of efficient use as many processors.

【0053】第2の発明は、SIMD型並列計算機に若干のハードウェアを付加するだけで、MIMD処理を可能とする並列計算機を提供することを目的とする。 [0053] The second invention, only by adding a slight hardware SIMD type parallel computer, and an object thereof is to provide a parallel computer that enables MIMD processing.

【0054】第3の発明は、問題のサイズが異なる場合に、使用されないPEをバイパスすることによって処理効率の低下を防ぎ、さらにデータ量が多い場合に、使用されないPEのローカルメモリを使用されるPEからアクセス可能にすることによってオーバーヘッドを小さくすることができる並列計算機を提供することを目的とする。 [0054] A third invention, when the size of the problem is different, if prevents decrease in processing efficiency by bypassing the unused PE, further large amount of data, are used to local memory is not used PE and to provide a parallel computer capable of reducing the overhead by enabling access from PE.

【0055】また、第4の発明は、通信可能なメッセージが妨害されずに、通信時間の短縮を可能とする並列計算機を提供することを目的とする。 [0055] A fourth aspect of the present invention is not communicable message is disturbed, and an object thereof is to provide a parallel computer that allows to shorten the communication time.

【0056】第5の発明は、通信チャネルおよび制御信号を中継プロセッサでバイパスすることにより、通信時間の短縮を可能とする並列計算機を提供することを目的とする。 [0056] The fifth invention, by bypassing the communication channel and control signals at the relay processor, an object of the invention to provide a parallel computer that allows to shorten the communication time.

【0057】 [0057]

【課題を解決するための手段】上記目的を達成するため、第1の発明は、複数個のプロセッサからなるプロセッサアレイと、そのプロセッサアレイに対して並列実行可能な複数種類の命令列を抽出して供給するなどの制御を行なうプロセッサアレイ制御手段から構成される。 To achieve To achieve the object described above, a first aspect of the present invention extracts a processor array comprising a plurality of processors, the instruction sequence of a plurality of types that can be executed in parallel for the processor array composed of the processor array control means for controlling such supply Te.

【0058】各プロセッサは、プロセッサアレイ制御手段から供給される複数種類の命令列の中の1種類ずつを受け取る機能と、受け取った命令列を他のプロセッサと並列に実行する機能とを持つ。 [0058] Each processor has a function of receiving one kind of plural kinds of instruction sequences supplied from the processor array control unit, and a function of executing an instruction string received in parallel with the other processors.

【0059】また、第2の発明の並列計算機は、大きく分けて、複数個の演算プロセッサと、これを制御する単一の制御プロセッサとから構成される。 [0059] Further, the parallel computer of the second aspect of the invention is mainly composed of a plurality of processors, a single control processor for controlling the same. さらに、演算プロセッサは、演算プロセッサでの実行を制御する命令を格納するためのレジスタと、このレジスタに、制御プロセッサからの命令を入力するか、あらかじめメモリに格納されている命令を格納するかを選択するためのマルチプレクサと、レジスタに格納されている命令にしたがって演算を実行する演算部とから構成される。 Further, the arithmetic processor includes a register for storing instructions for controlling the execution of the arithmetic processor, in this register, enter the command from the control processor, whether to store the instructions stored in the memory in advance constituted by a multiplexer for selecting an arithmetic unit for executing an operation in accordance with instructions stored in the register.

【0060】第3の発明は、個々の通信経路で接続されている複数の演算要素と、各々の演算要素と個々に結合しているローカルメモリと、解く問題のサイズに応じて演算に使用する演算要素と使用しない演算要素とを識別する識別手段と、この識別手段によって識別された、演算に使用しない演算要素をバイパスするバイパス手段と、前記識別手段によって識別された、演算に使用しない演算要素と結合しているローカルメモリを、演算に使用する演算要素から直接アクセス可能にするアクセス手段とから構成されている。 [0060] The third invention is used for the calculation in accordance with the size of the individual and the plurality of computing elements that are connected by a communication path, and a local memory that is attached to each of the computing elements and individually solve the problem identifying means for identifying a computing element that does not use the computing elements, identified by the identifying means, a bypass means for bypassing the computing elements that are not used for calculation, has been identified by the identification means, it is not used in the calculation computing element and a combined local memory has an access means for allowing direct access from the processing element used in the calculation with.

【0061】さらに、第3の発明は、前記複数の演算要素、識別手段、バイパス手段、ローカルメモリ、及びアクセス手段を1つのチップ上に配置し、前記バイパス手段及びアクセス手段を前記演算要素上に配線する。 [0061] Further, the third invention, the plurality of computing elements, identification means, the bypass means, a local memory, and access means disposed on one chip, the bypass means and the access means on said computing element wiring to.

【0062】また、第4の発明は、複数のプロセッサがN次元ネットワークで相互接続され、各プロセッサが、 [0062] A fourth aspect of the present invention is a plurality of processors interconnected by N-dimensional network, each processor,
隣接するプロセッサからメッセージを受信し、出力先を決定する出力先決定手段と、出力先ごとに設けられ、前記出力先決定手段によって出力先が決定されたメッセージを受信した順に蓄える蓄積手段と、蓄積されたメッセージを、決定された出力先のプロセッサに出力する出力手段とから構成される。 Receiving a message from a neighboring processor, and an output destination determination means for determining an output destination, provided for each output destination, a storage means for storing in the order received message destination is determined by the output destination determining means, storage composed of an output means for outputting been the message to the determined destination processor.

【0063】第5の発明は、複数のプロセッサがN次元ネットワークで相互接続され、各プロセッサが、隣接するプロセッサからメッセージおよび制御信号を受信し、 [0063] The fifth invention, a plurality of processors interconnected by an N-dimensional network, each processor receives the message and control signals from the adjacent processor,
メッセージの宛先を判定する判定手段と、判定されたメッセージが自プロセッサ以外の場合、受信したメッセージおよび制御信号を隣接するプロセッサにバイパスするバイパス手段とから構成されている。 Determination means for determining the destination of the message, the determined message is composed otherwise its own processor, a bypass means for bypassing the processor adjacent a message has been received and the control signal.

【0064】 [0064]

【作用】上記手段により、第1の発明は、対象とする問題の並列度が十分大きい場合には、従来のSIMD型並列計算機と同様の動作をさせる。 By the action above means, the first invention, when the degree of parallelism of the problem to be solved is sufficiently large, causes the same operation as the conventional SIMD type parallel computer. その場合には、プロセッサアレイ制御手段が、プロセッサアレイへ供給する複数個の命令列をすべて同一の命令列にすることによって実現できる。 In that case, the processor array control unit can be realized by all the plurality of the instruction sequence supplied to the processor array to the same instruction sequence. 各プロセッサは、プロセッサアレイ制御手段が供給する複数個の命令列の一つを受け取り実行することができるから、複数個の命令列がすべて常に同一であれば、すべてのプロセッサが常に同一命令を並列実行することになる。 Each processor, because it is the processor array control means receives executes one of a plurality of instruction sequences supplied, if always the same every a plurality of instruction sequences, all processors are always parallel the same command It will be executed.

【0065】対象とする問題の並列度がプロセッサ数より小さい場合には、以下のように制御する。 [0065] When parallelism problem of interest is smaller than the number of processors is controlled in the following way. ここで、プロセッサアレイ制御手段は、並列実行可能なm種類の命令列を抽出してプロセッサアレイへ供給できるようになっており、プロセッサはn個あるものとする。 Here, the processor array control means is adapted to be supplied to the processor array to extract the sequence of instructions can be executed in parallel m types, the processor is assumed that n pieces. そして、 And,
n個のプロセッサをm個ずつのk組に分ける(すなわち、n=m×k、n、m、kは整数とする)。 Separating the n processors in k sets of m pieces each (i.e., n = m × k, n, m, k is an integer). このm個のプロセッサからなる組をクラスタと呼ぶことにする。 It will be referred to as a set composed of the m processors and cluster.

【0066】各クラスタにはすべて同じm種類の命令列を供給し、同じ処理を行なうように制御する。 [0066] All of each cluster to provide an instruction sequence of the same m type, and controls to perform the same processing. プロセッサアレイ制御手段から供給されるm種類の命令列は、各クラスタ内のm個のプロセッサのそれぞれに1種類ずつ供給され、各プロセッサは、供給された命令列を実行する。 Instruction sequence m type supplied from the processor array control unit is supplied by one to each of the m processors in each cluster, each processor executes the supplied instruction sequence.

【0067】また、第2の発明は、通常のSIMD処理では、各演算プロセッサは、制御プロセッサから放送される命令にしたがって処理を行う。 [0067] The second invention is, in a normal SIMD processing, the arithmetic processor performs processing in accordance with instructions to be broadcast from the control processor. 制御プロセッサから指示があると、あらかじめ各演算プロセッサのローカルメモリに格納されている命令が命令レジスタに格納されるようにマルチプレクサが切り換わる。 When the control processor is instructed, the multiplexer is switched so instructions stored in advance in the local memory of the arithmetic processor is stored in the instruction register. 各演算プロセッサのローカルメモリに異なる命令を格納しておくことによって、MIMD処理を行う。 By storing the different instructions in the local memory of the arithmetic processor performs the MIMD processing.

【0068】さらに、第3の発明は、PEアレイのサイズと問題サイズが異なる場合、コンパイラあるいは他の手段により、使用するPEと、使用しないPEを予め決定し、決定されたPE情報を識別手段に送る。 [0068] Further, the third invention, if the size and problem size of PE arrays are different, the compiler or other means, and PE to be used, and predetermine the PE is not used, determined PE information identification means send to. 識別手段では、PE毎の使用する/しないの情報を保持しておく。 Identification means, holds the use Enable / Disable of information for each PE.

【0069】処理実行時に隣接通信を行う際、各PEのバイパス手段は自PEに対応する識別手段から、バイパスを行うかどうかが指示される。 [0069] When performing the next communication when processing execution, bypass means for each PE from the identification means corresponding to the own PE, whether to bypass is indicated. 稼動中のあるPEは、 PE with a running,
隣のPEが休止である場合、休止のPEのバイパス手段により、さらに先の稼動中のPEがあたかも隣のPEに見える。 If PE next is dormant, the bypass means PE pause, further PE in the previous operation is as if seen next to the PE.

【0070】以上から、処理する問題のサイズに合わせて使用するPEと使用しないPEを適切に選択することにより、解く問題に最適なハードウェアのアレイサイズを用意する。 [0070] From the above, by appropriately selecting the PE with and without PE used according to the size of the problem to be processed, providing a array size optimal hardware problems to solve.

【0071】また、アクセス手段に予め休止となるPE [0071] Further, PE as a pre-pause access means
のローカルメモリをアクセスする稼動PEの情報を与えておき、同情報と識別手段の情報から、稼動するPEは休止しているPEのローカルメモリに直接アクセスし、 Leave provide information operation PE to access the local memory, from the information of the information identification means, PE running is direct access to the local memory of the PE resting,
同ローカルメモリを稼動するPEのローカルメモリの一部として使用する。 Used as part of the local memory of PE that run the local memory.

【0072】さらに、バイパス手段とアクセス手段を、 [0072] In addition, the bypass means and the access means,
同一チップ内に納められた複数PEに適用する事により、高速な動作を保証すると共に、バイパス手段及びアクセス手段をPEの上に配線することにより配線面積を小さくし、チップ面積の縮小を行う。 By applying a plurality PE paid to a same chip, as well as ensure a high-speed operation, the bypass means and access means to reduce the wiring area by wiring on the PE, it performs reduction of chip area.

【0073】第4の発明の並列計算機によれば、メッセージの出力先の決定後にフリットをバッファに蓄えるので、出力先チャネルが空いていれば、通信が停止している他のメッセージによってそのメッセージの通信が妨害されることはない。 [0073] According to the parallel computer of the fourth invention, since storing frit after determining the destination of the message in the buffer, if empty destination channel, the message by other message communication is stopped is not the communication is disturbed. したがって、並列計算機全体として通信時間は短縮され、スループットは向上する。 Therefore, communication time as a whole parallel computer is shortened, the throughput is improved.

【0074】第5の発明の並列計算機によれば、あるプロセッサが隣接するプロセッサからメッセージを受け取り、そのメッセージが自プロセッサ宛でなければ、通信チャネルと制御信号をバイパスする。 [0074] According to a parallel computer according to the fifth invention, receives a message from a processor with a processor adjacent, if not the message is addressed to its own processor, bypassing the control signal and the communication channel. メッセージの中継を行うプロセッサで、メッセージおよび制御信号をバイパスし、通信を行っているプロセッサ間の距離を実際よりも小さくしている。 A processor which relays message to bypass the message and control signals, is smaller than the distance between the processors it is communicating actually.

【0075】 [0075]

【実施例】以下、図面を参照しながら本発明の実施例を説明する。 EXAMPLES Hereinafter, an embodiment of the present invention with reference to the drawings.

【0076】第1の発明 第1の発明の一実施例の構成を図1に示す。 [0076] The configuration of the first embodiment of the invention the first invention shown in FIG. 図1に示した並列計算機は、n個(nは整数)のプロセッサ1からなるプロセッサアレイと、プロセッサアレイに対して命令を供給するプロセッサアレイ制御装置2とからなる。 Parallel computer shown in FIG. 1, n (n is an integer) and a processor array comprising a processor 1, a processor array controller 2 for supplying instructions to the processor array.
図示していないが、プロセッサ1間およびプロセッサ1 Although not shown, between the processor 1 and processor 1
とプロセッサアレイ制御装置2間には、データ転送と制御のための通信ネットワークが存在する。 The between processor array controller 2, a communication network for control and data transfer exists.

【0077】なお、今回の実施例では、プロセッサアレイ制御装置2が2種類の命令列を供給する場合について示すが、第1の発明はこれに限らず、複数種類の命令列を供給することができるものである。 [0077] In the present embodiment, showing the case where the processor array controller 2 supplies the two kinds of the instruction sequence, the first invention is not limited thereto, to supply a plurality of types of instruction sequences it is those that can be.

【0078】プロセッサアレイ制御装置2は、命令メモリを持ち、そこから命令を取り出し、プロセッサアレイに対して1度に2個の命令を供給することができる。 [0078] The processor array controller 2 has an instruction memory, retrieve the instructions from there can be supplied to two instructions at a time to the processor array. 各プロセッサ1は、プロセッサアレイ制御装置2から同時に供給された2個の命令のうちの1つの命令を受け取り実行する。 Each processor 1 receives executes one instruction in one of the two instructions simultaneously supplied from the processor array controller 2.

【0079】具体的には、プロセッサ番号が偶数のプロセッサ1はプロセッサアレイ制御装置2の出力端子OU [0079] Specifically, the processor 1 of the processor number is even, the output terminal OU of the processor array controller 2
T0から出力される命令列の命令を受け取り実行し、プロセッサ番号が奇数のプロセッサ1は出力端子OUT1 The instructions of the instruction sequence output from T0 to receive executed, the processor 1 of the processor number is odd the output terminal OUT1
から出力される命令列の命令を受け取り実行する。 To receive executing the instructions of the instruction sequence output from.

【0080】各プロセッサ1は、演算部、レジスタファイル、制御部、ローカルメモリ、メモリインターフェース部、プロセッサ間通信部からなる。 [0080] Each processor 1 includes an arithmetic unit, a register file, control unit, consisting of a local memory, a memory interface, inter-processor communication unit. これらのプロセッサ1には2つの動作モードがある。 These processors 1 has two modes of operation. 1つは、各プロセッサ1が独立に動作するレジスタ非共有モードであり、もう1つは、隣のプロセッサ1とレジスタを共有するレジスタ共有モードである。 One is a register non-shared mode, each processor 1 operates independently, and the other is a register shared mode that shares the processor 1 and the register next.

【0081】ここでいうレジスタの共有とは、自分のプロセッサ1内のレジスタの内容が対応する相手のレジスタの内容と常に同じようになっているということである。 [0081] The share of the register referred to here, it is that the contents of the register within your own processor 1 is in always the same way as the contents of the corresponding opponent of the register. つまり相手のプロセッサ1内のレジスタにデータを書き込んだ後に、自分の対応するレジスタを読み出すと相手のプロセッサ1が書き込んだデータと同じデータが読み出せるというものである。 That is, after writing the data in a register in the processor 1 of the other party, is that by reading their corresponding register the same data as written by the processor 1 of the other data can be read.

【0082】プロセッサ番号が偶数のプロセッサ1は、 [0082] The processor 1 of the processor number is an even number,
自分のプロセッサ番号より1つ大きい番号をもつプロセッサ1とレジスタを共有し、プロセッサ番号が奇数のプロセッサ1は、自分のプロセッサ番号より1つ小さいプロセッサ1とレジスタを共有する。 Sharing processor 1 and register with one number greater than the own processor number, the processor 1 of the processor number is odd, share one small processor 1 and the register than their processor number.

【0083】まず、プロセッサ数よりも並列度が大きい処理を実行する場合について説明する。 [0083] First, a description will be given when running parallelism is greater processing than the number of processors. この場合には、 In this case,
プロセッサ1の動作モードはレジスタ非共有モードとし、すべてのプロセッサ1に同じ処理を実行させるために同じ命令を供給するようにする。 Operation mode of the processor 1 is set to register non-shared mode, the same instruction in order to execute the same processing to all of the processor 1 so as to supply. そのためには、この実施例では、プロセッサ1ごとに供給される命令列は固定されているので、プロセッサアレイ制御装置2の2つの出力端子OUT0,1から同一の命令列を供給することにより、1つの命令列を2つの命令列として供給するように制御する。 To that end, in this embodiment, since the instruction sequence supplied to each processor 1 is fixed, by supplying the same instruction sequence from the two output terminals OUT0,1 processor array controller 2, 1 one of the controls to supply the instruction sequence as a two instruction sequence.

【0084】次にプロセッサ数よりも並列度が小さい処理を実行する場合について説明する。 [0084] Next will be described a case than the number of processors to execute the processing parallelism is small. この場合には、プロセッサ1の動作モードはレジスタ共有モードとする。 In this case, the operation mode of the processor 1 is a register shared mode.
プロセッサ番号が偶数のプロセッサ1とその番号より1 Processor processor number is an even number of 1 and 1 from the number
つ大きい番号のプロセッサ1とが1つのクラスタを構成する。 Large number processor 1 and One constitute one of the cluster.

【0085】クラスタ内の2つのプロセッサ1には、プロセッサアレイ制御装置2によって抽出された並列実行可能な2つの命令が出力端子OUT0,1からそれぞれのプロセッサ1に同時に供給され、それぞれのプロセッサ1では供給された各命令を並列に実行する。 [0085] The two processors 1 in the cluster, the two of which have been parallel-executable extracted by a processor array controller 2 command is simultaneously supplied from the output terminal OUT0,1 to each of the processors 1, in each of the processors 1 each instruction supplied to run in parallel.

【0086】ここで、図2のような式の計算をする場合について説明する。 [0086] Here, the case where the formula for the calculation, such as in Figure 2. 例えば、プロセッサ数nが1000 For example, the number of processors n 1000
であるとする。 And it is.

【0087】この計算を1000組のデータに対して行なう場合には、プロセッサ1のモードをレジスタ非共有モードにし、プロセッサアレイ制御装置2の出力端子O [0087] When the calculation is performed with respect to 1000 sets of data, and the mode of the processor 1 in the register unshared mode, the output terminal O of the processor array controller 2
UT0,1から、図3(a),(b)のような同一な命令列1,2を供給する。 From UT0,1, FIG. 3 (a), supplies the same instruction sequence 1, 2, such as (b). 各プロセッサ1に1組ずつのデータの処理を割当てることにより、1個のプロセッサ1 By allocating processing of data one set for each processor 1, one processor 1
で1000組のデータを処理するのに比べ1000分の1の時間で処理できる。 In can be processed at one time 1000 minutes compared to process 1000 sets of data.

【0088】しかし、このレジスタ共有モードで500 [0088] However, in this register shared mode 500
組のデータを処理する場合は、1個のプロセッサ1で5 When processing a set of data, 5 in one processor 1
00組のデータを処理するのと比べ、プロセッサ数が1 Compared to process the 00 sets of data, the number of processors 1
000であるのに500分の1の時間でしかなく、並列計算機の能力を十分に生かしきれない。 There is only one time of 500 minutes to a 000, it can not be sufficiently utilized the ability of a parallel computer.

【0089】一方、プロセッサ1のモードをレジスタ共有モードにし、プロセッサアレイ制御装置2から図4 [0089] On the other hand, the mode of the processor 1 in a register shared mode, FIG. 4 from the processor array controller 2
(a),(b)のような並列実行可能な2種類の命令列1,2を出力端子OUT0,1からそれぞれ供給すると、2台のプロセッサ1で1組のデータを処理することになり、1000分の1の時間で実行することが可能である。 (A), will be processed in parallel if viable two supplies respectively an instruction sequence 1, 2 from the output terminal OUT0,1, 1 set of data on two processor 1, such as in (b), however, it is possible to run at 1000 min 1 time.

【0090】図3の命令列では、1回の処理を行なうのに4命令分実行時間がかかるが、図4の場合には、2命令分の実行時間ですみ、実行時間が半分になる。 [0090] In the instruction sequence of FIG. 3, but takes 4 instructions partial execution time to perform one processing, in the case of Figure 4, requires only the execution of two instructions partial time, the execution time is halved. したがって、500組のデータに対する処理の場合でも図4の命令列で実行させれば、1個のプロセッサ1で処理する場合に比べて1000分の1の時間で実行することが可能である。 Thus, if performed in 500 sets of the instruction sequence of Figure 4 even for the case of processing data can be performed in one time 1000 minutes as compared with the case of processing in one processor 1.

【0091】なお、プロセッサアレイ制御装置2が供給する並列実行可能な複数の命令は、もともとメモリ上に並列実行可能な複数の命令列を用意しておき、それを供給するという方法と、単一の命令列を用意しプロセッサアレイ制御装置2内で並列実行可能な命令を抽出して複数命令を供給するという方法が考えられるがどちらでも良い。 [0091] Note that the method of the processor array controller 2 are a plurality of possible parallel execution supplied instructions, originally are prepared a plurality of instruction sequences that can be executed in parallel on the memory, to supply it, a single instruction sequence may be either a method is conceivable of supplying a prepared by extracting parallel executable instructions in a processor array control device 2 multiple instruction. 後者の場合には、通常のSIMD型並列計算機とのオブジェクト互換性が保たれることになるため、その点は有利である。 In the latter case, this means that the object compatibility with conventional SIMD type parallel computer is maintained, the point is advantageous.

【0092】図1に示した実施例では、複数供給される命令列のうちのどちらを各プロセッサ1が受け取るかが固定されているが、図5に示すように、いずれの命令列を受け取るかをセレクタ3で選択できるようにする構成もある。 [0092] In the embodiment shown in FIG. 1, or is one or each processor 1 receives one of the instruction sequence to be more supply is fixed, as shown in FIG. 5, receives any instruction sequence the is also configured to allow selection by the selector 3. この構成では、すべてのプロセッサ1は、プロセッサアレイ制御装置2から供給される2つの命令列のどちらでも選択して受け取ることができる。 In this configuration, all the processors 1 can be received by selecting either of the two instruction sequence supplied from the processor array controller 2.

【0093】その選択は各プロセッサ1の命令入力の前におかれているセレクタ3で行なわれ、どちらを選ぶかは、あらかじめ設定することもできるし、各プロセッサ1の演算結果からどちらを選択するかを決定することもできる。 [0093] The selection is done by the selector 3 that was set before the instruction input each processor 1, is The choice, can be preset, to choose from the calculation results of each processor 1 it is also possible to determine. クラスタを構成する際には、並列実行可能な2 When configuring the cluster, which can be executed in parallel 2
つの命令列を受け取った2つのプロセッサ1で構成すれば良い。 One of the instruction sequence may be composed of two processors 1 that received.

【0094】この場合、if−then−elseのような処理を実行するときに、then処理とelse処理を並列に実行するように2つの命令列を出力端子OU [0094] In this case, when the process to run, such as if-then-else, then processing the output terminal of the two instruction sequence to the else processing executed in parallel OU
T0,1からそれぞれ供給し、各プロセッサ1はif文の条件によりいずれかの命令列を選択するようにすれば、if−then−elseの並列実行が可能である。 Was supplied from T0,1, the processor 1 when to select one of the instruction sequence by the if statement, it is capable of parallel execution of if-then-else.

【0095】superscalarあるいはVLIW [0095] superscalar or VLIW
などの複数命令の並列実行機構を持ったプロセッサなどを要素プロセッサとして用いる場合には、並列度の高い問題を解く場合でも、問題の並列度を犠牲にして複数命令の並列実行をすることになり、必ずしも効果があがるとはかぎらないが、この第1の発明では、並列度の高い問題では、問題の並列性を利用して解くことができるので、高速に解くことが可能である。 In the case of using a such as a processor having a parallel execution mechanism of instructions, such as an element processor, even when solving the high parallelism problems, at the expense of parallelism problems would be the parallel execution of instructions , but not necessarily the effect is increased, in the first invention, the high parallelism problems, because it can be solved by utilizing the parallelism problem can be solved quickly.

【0096】第2の発明 図6は、第2の発明の並列計算機に係わる一実施例の構成を示すブロック図である。 [0096] A second invention Figure 6 is a block diagram showing a configuration of one embodiment according to the parallel computer of the second aspect of the invention.

【0097】同図に示す並列計算機は、大きく分けて、 [0097] parallel computer shown in the figure, roughly,
1台の制御プロセッサ(CP)11と、複数台の演算プロセッサ(PE)12から構成される。 And one of the control processor (CP) 11, an arithmetic processor of multiple (PE) 12. 制御プロセッサ11には全体メモリ(M)13が接続され、演算プロセッサ12にはそれぞれローカルメモリ(LM)14が接続される。 The control processor 11 across the memory (M) 13 is connected to, respectively, the arithmetic processor 12 local memory (LM) 14 is connected. 制御プロセッサ11と各演算プロセッサ12 Control processor 11 and the arithmetic processor 12
は、グローバルバス15、および同期バス17で接続される。 It is connected in the global bus 15 and the synchronization bus 17,. 演算プロセッサ12は、ネットワーク16で相互接続される。 Arithmetic processor 12 are interconnected by a network 16. ネットワーク16の形態としては、格子結合、2進nキューブ結合、木結合等、多くのものが知られており、いずれの方式でもよい。 The form of the network 16, grating coupling, binary n-cube binding, wood binding, etc., are known many things, may be any method.

【0098】制御プロセッサ11は、それ自体が一つの情報処理装置であり、全体メモリ13に格納されているプログラム(命令列)を読み込み、解読し、解読結果にしたがって、全体メモリ13に格納されているデータに対して、処理を行う機能を有する。 [0098] The control processor 11 is itself a One of the information processing apparatus reads the program stored in the entire memory 13 (instruction sequence), decrypted, in accordance with the decoded result, is stored in the entire memory 13 respect are the data, it has a function of performing processing. さらに制御プロセッサ11には、演算プロセッサ12に対して制御を行う機能が追加されている。 Further to the control processor 11 has a function of performing control on the arithmetic processor 12 is added.

【0099】全体メモリ13に格納されている制御プロセッサ11のプログラムには、制御プロセッサ11自身での処理を指示する命令の他に、演算プロセッサ12での処理を指示する命令が含まれている。 [0099] The entire program of the control processor 11 which is stored in the memory 13, in addition to the command instructing the processing in the control processor 11 itself includes a command instructing the processing in the arithmetic processor 12.

【0100】制御プロセッサ11は、メモリ13から読み出した命令を解読し、制御プロセッサ11で実行すべき命令であれば、制御プロセッサ11で実行する。 [0100] Control processor 11 decodes an instruction read out from the memory 13, if the instruction to be executed by the control processor 11 and executed by the control processor 11. 解読した命令が演算プロセッサ12で実行すべき命令であれば、グローバルバス15を介して全演算プロセッサ12 If decoded instruction is an instruction to be executed by the arithmetic processor 12, all processors 12 via the global bus 15
に放送する。 Broadcast to. ここで放送する命令は、解読済みのもの(マイクロ命令)でも解読前のもの(機械語命令)でもよいが、ここでは解読済みの命令を放送するものとして話を進める。 Instruction to broadcast here, but may be decrypted ones (micro instruction), even those of the previous decoding (machine language instruction), here advances the story as one that broadcast the decrypted instruction.

【0101】制御プロセッサ11は、グローバルバス1 [0102] The control processor 11, global bus 1
5を介して、すべての、あるいは特定の演算プロセッサ12から、データの読み出し、および書き込みを行うことができる。 5 through, all, or from a specific arithmetic processor 12 can perform data reading and writing. また、同期バス17を介して、すべての演算プロセッサ12の状態の論理和を認識することができる。 Further, it is possible to via the synchronous bus 17, recognizes the logical sum of the status of all of the processors 12.

【0102】さらに制御プロセッサ11は、フロントエンド計算機18と結合されている。 [0102] Further, the control processor 11 is coupled with the front end computer 18. フロントエンド計算機18では、制御プロセッサ11および演算プロセッサ12で実行するプログラムの開発を行ったり、処理すべきデータの入出力を行う。 In the front end computer 18, or developing a program to be executed by the control processor 11 and the arithmetic processor 12, and inputs and outputs data to be processed.

【0103】フロントエンド計算機18と制御プロセッサ11は、実行時、制御プロセッサ11で実行するべきプログラムをフロントエンド計算機18から全体メモリ13に転送する。 [0103] The front-end computer 18 and the control processor 11, when executed, transfers the program to be executed by the control processor 11 to the entire memory 13 from the front end computer 18. さらに、制御プロセッサ11で実行すべきデータをフロントエンド計算機18から全体メモリ13に転送したり、演算プロセッサ12で実行するべきデータを、フロントエンド計算機18から各演算プロセッサ12に分配したり、あるいは処理結果を各演算プロセッサ12や全体メモリ13からフロントエンド計算機18に転送したりする機能を有する。 Further, data to be executed by the control processor 11 to transfer the entire memory 13 from the front end computer 18, the data to be executed by the arithmetic processor 12, or dispensed from the front end computer 18 to the arithmetic processor 12, or the processing the results from the arithmetic processor 12 and the entire memory 13 the front end computer 18 has a function or transfer.

【0104】演算プロセッサ12は、制御プロセッサ1 [0104] calculation processor 12, control processor 1
1からグローバルバス15を介して放送される命令にしたがって、自ローカルメモリ14のデータに対して演算を行ったり、ネットワーク16を介して他の演算プロセッサ12とデータ通信を行ったりして処理を行う。 In accordance with instructions from 1 be broadcast via the global bus 15, performs self or perform operations on data in the local memory 14, the processing or performing other arithmetic processors 12 and data communication via the network 16 .

【0105】第2の発明の中心となる演算プロセッサ1 [0105] arithmetic processor 1 which is the center of the second invention
2は、図7に示すような構成になっている。 2, has a structure as shown in FIG.

【0106】まず、ローカルメモリ14と演算プロセッサ12とは、メモリアドレスバス21と、メモリデータバス22によって接続されている。 [0106] First, a local memory 14 and the arithmetic processor 12 includes a memory address bus 21, are connected by a memory data bus 22.

【0107】マルチプレクサ(MUX)23は、第2の発明において追加されたものであり、命令レジスタ24 [0107] Multiplexer (MUX) 23, which has been added in the second invention, the instruction register 24
に格納する命令として、制御プロセッサ11からグローバルバス15を介して放送される命令か、ローカルメモリ14から読み出されたデータかを選択する。 As instructions stored in the instruction or to be broadcast via the global bus 15 from the control processor 11 selects whether the data read from the local memory 14. マルチプレクサ23の一方の入力は、制御プロセッサ11からのグローバルバス15が、もう一方の入力には、メモリデータバス22がそれぞれ接続されている。 One input of the multiplexer 23, the global bus 15 from the control processor 11, the other input, a memory data bus 22 are connected.

【0108】命令レジスタ24には、マルチプレクサ2 [0108] in the instruction register 24, a multiplexer 2
3で選択された命令が格納される。 Selected instruction 3 is stored. 演算プロセッサ12 The arithmetic processor 12
を構成する他のすべての要素は、命令レジスタ24からの指示によって制御される。 All other elements of the are controlled by an instruction from the instruction register 24. ここでは説明を容易にするために、命令レジスタ24の最上位ビットでマルチプレクサ23の制御を行うこととし、最上位ビットが0ならば、制御プロセッサ11から放送される命令が命令レジスタ24に格納され、最上位ビットが1ならば、ローカルメモリ14から読み出されるデータが命令レジスタ2 Here, for ease of explanation, and it controls the multiplexer 23 in the most significant bits of the instruction register 24, if the most significant bit is 0, the instruction is broadcast from the control processor 11 is stored in the instruction register 24 , if the most significant bit is 1, data read from the local memory 14 are the instruction register 2
4に格納されるものと仮定して話を進める。 And assumed to be stored in the 4 proceed to talk.

【0109】プログラムカウンタ(PC)25は、第2 [0109] The program counter (PC) 25, the second
の発明をより効果的にするために追加されたものであり、ローカルメモリ14に格納されているMIMD処理用の命令列を読み出すために用いられる。 It has been added to the present invention more effective, is used to read an instruction sequence for MIMD processing stored in the local memory 14. プログラムカウンタにMIMD用命令列のアドレスを格納し、読み出し操作を行うことによって、メモリデータバス22に命令が読み出される。 Program counter stores the address of the MIMD for instruction sequence to, by performing a read operation, the instruction is read out to the memory data bus 22. 命令列を連続して読み出すために、 In order to read an instruction sequence in succession,
プログラムカウンタ25には、自分自身の値をインクリメントする機能を持つ。 The program counter 25 has a function to increment the value of their own.

【0110】アドレスレジスタ(AR)26、データレジスタ(DR)27は、ローカルメモリ14をアクセスするために用いられる。 [0110] Address Register (AR) 26, a data register (DR) 27 is used to access the local memory 14. アドレスレジスタ26は、内部バス28から書き込まれ、メモリアドレスバス21に値を出力する。 Address register 26 is written from the internal bus 28, and outputs a value to the memory address bus 21. データレジスタ27は、メモリデータバス22と内部バス28との間に置かれる双方向のレジスタである。 Data register 27 is a two-way register to be placed between the memory data bus 22 and an internal bus 28.

【0111】データ読み出し時は、内部バス28からアドレスレジスタ26に、読み出すべきメモリ13のアドレスが格納され、ローカルメモリ14に対して読み出し操作を行い、読み出されたデータはメモリデータバス2 [0111] During data read, the address register 26 from the internal bus 28, the storage address of the memory 13 to be read, reads operation to the local memory 14, is read data memory data bus 2
2からデータレジスタ27に格納される。 2 is stored in the data register 27 from. データ書き込み時は、アドレスレジスタ26に書き込むべきメモリ1 When writing data, the memory 1 to be written into the address register 26
3のアドレスを格納し、データレジスタ27に書き込みデータを格納し、書き込み操作を行うことにより、書き込みが行われる。 Stores third address, and stores the write data in the data register 27, by performing the write operation, writing is performed.

【0112】ALU29は、内部バス28を介して、レジスタファイル30に格納されるデータに対して、算術あるいは論理演算を行う。 [0112] ALU29 via the internal bus 28, with respect to data stored in the register file 30, performs arithmetic or logical operations.

【0113】状態制御レジスタ(PSW:Prosessor St [0113] state control register (PSW: Prosessor St
atus Word )31は、ALU29での演算状態を表示するビットと、演算プロセッサ12での演算を制御するビットから構成される。 atus Word) 31 includes a bit indicating an operation state in ALU29, consists bits that control the operation in the arithmetic processor 12. 演算を制御するビットの内訳は次の通りである。 Breakdown of bits for controlling the operation is as follows. このうち、(1)〜(3)は、演算のA Of these, (1) to (3), the operation of the A
LU29で演算が行われるたびに設定される。 Operation is set each time performed by the LU29. (4), (4),
(5)は、直接、状態制御レジスタ31を書き換えることによって設定する。 (5) it is directly set by rewriting the state control registers 31.

【0114】(1)ゼロビット:演算結果がゼロになるとセットされる。 [0114] (1) zero bits: is set when the operation result is zero.

【0115】(2)正ビット:演算結果が正のときにセットされる。 [0115] (2) Positive bits: is set when the operation result is positive.

【0116】(3)オーバーフロービット:演算でオーバーフローが発生したときにセットされる。 [0116] (3) overflow bit: is set when an overflow in operation has occurred.

【0117】(4)同期ビット:全演算プロセッサ12 [0117] (4) sync bits: all processors 12
の同期ビットはワイアード・オア接続され、制御プロセッサ11に接続される。 The synchronization bits are wired-OR connection is connected to the control processor 11. 同期を取る時点で演算プロセッサ12がこのビットをセットすると、制御プロセッサ1 When the arithmetic processor 12 sets this bit synchronization point, the control processor 1
1は、全演算プロセッサ12が同期ビットをセットしたか否かを認識できる。 1, all the processing processor 12 can recognize whether the set synchronization bit.

【0118】(5)マスクビット:このビットがセットされると、以後、制御プロセッサ11からマスク解除命令が発行されるまで、命令レジスタ24の内容にかかわらず、演算プロセッサ12は動作しない。 [0118] (5) mask bit: If this bit is set, and thereafter, the control processor 11 to the mask cancel command is issued, regardless of the contents of the instruction register 24, the arithmetic processor 12 does not operate.

【0119】プロセッサ番号レジスタ(PNR:Porces [0119] processor number register (PNR: Porces
sor Number Register )32は、各演算プロセッサ固有のプロセッサ番号が格納されるレジスタである。 sor Number Register) 32 is a register for each operation processor specific processor number is stored. このレジスタを読み出すことによつて、自分のプロセッサ番号を知ることができる。 Yotsute that reading this register, it is possible to know their processor number. このレジスタはハードウェア的に設定する方法や、システム立ち上がり時に制御プロセッサ11が設定する方法等が考えられる。 This register and how to configure hardware, and a method of control processor 11 when the system rise set is considered. ここではハードウェア的に設定されているものとするが、他の方法でも差し支えない。 Here, it is assumed to be set by hardware, but no problem in other ways.

【0120】通信制御部33は、ネットワーク16を介して他の演算プロセッサ12と通信したり、グローバルバス15を介して制御プロセッサ11との通信を行うためのレジスタや外部の通信プロトコル制御装置から構成される。 [0120] The communication control unit 33, configured to communicate with other processors 12 via the network 16, from the register and an external communication protocol control apparatus for communicating with the control processor 11 via the global bus 15 It is. 演算プロセッサ12は、この通信制御部33によって、制御プロセッサ11や他の演算プロセッサ12 Arithmetic processor 12 by the communication control unit 33, the control processor 11 and other processors 12
と通信を行うことができる。 It can communicate with.

【0121】命令レジスタ24への命令の格納は、前述したように、次の2通りの方法で行われる。 [0121] storing instructions to the instruction register 24, as described above, is carried out in two ways. 第一の方法は、制御プロセッサ11より放送されるものである。 The first method is to be broadcast from the control processor 11. 制御プロセッサ11から全演算プロセッサ12に同一の命令が放送されるため、マスクビットがセットされていない演算プロセッサ12は、すべて同じ処理を行う。 Since the same instruction to all processors 12 from the control processor 11 is broadcast, the arithmetic processor 12 in which the mask bit is not set, it performs all the same process. すなわち、SIMD方式の並列処理が行われる。 That is, the parallel processing of a SIMD method is performed.

【0122】第2の方法は、ローカルメモリ14にあらかじめ格納されている命令を読み出して、命令レジスタ24に格納するものである。 [0122] The second method reads an instruction which is previously stored in the local memory 14, and stores in the instruction register 24. この命令は、あらかじめ各演算プロセッサ12で異なったものを格納しておくことにより、各演算プロセッサ12で異なった処理を行うことができる。 This instruction, by storing different ones previously in the arithmetic processor 12 can perform different processing in the arithmetic processor 12. すなわち、MIMD方式の並列処理となる。 That is, the parallel processing of the MIMD system.

【0123】以下では、SIMD方式とMIMD方式の2つの処理方式、およびこの2つの処理方式間の以降を中心に、本並列計算機での処理手順について説明する。 [0123] In the following, two processing methods SIMD system and MIMD system, and mainly since between the two processing method, a procedure of the present parallel computer.

【0124】まず、第2の発明の並列計算機で実行するプログラムについて説明する。 [0124] First, a description will be given programs executing parallel computer of the second aspect of the invention. このプログラムは、大きく次の3つに分けられる (1)逐次処理される部分。 This program largely divided into the following three (1) sequentially processed in part.

【0125】ループ制御等、並列処理できない部分で、 [0125] loop control, etc., in the part that can not be parallel processing,
制御プロセッサ11で実行される。 Executed by the control processor 11. (2)各演算プロセッサ12が一斉に処理を行う部分(SIMD処理)。 (2) the portion the arithmetic processor 12 performs a process at once (SIMD processing).

【0126】制御プロセッサ11により、各演算プロセッサ12が同じ処理を行う。 [0126] The control processor 11, the arithmetic processor 12 performs the same processing.

【0127】(3)各演算プロセッサ12で異なった処理を行う部分(MIMD処理)。 [0127] (3) part for performing different processing in the arithmetic processor 12 (MIMD processing).

【0128】制御プロセッサ11の制御を離れて、各演算プロセッサ12が独自に実行する。 [0128] off the control of control processor 11, the arithmetic processor 12 is independently executed.

【0129】このうち、(1)と(2)は、制御プロセッサ用プログラムとしてコンパイルされ、機械語命令列が全体メモリ13にロードされる。 [0129] Of this, and (1) (2) is compiled as a program for controlling the processor, the machine language instruction sequence is loaded into the entire memory 13. そして、制御プロセッサ11が解読、実行あるいは実行制御を行う。 Then, the control processor 11 decrypts, the execution or execution control. (3) (3)
は各演算プロセッサ用としてコンパイルされ、さらにマイクロ命令列に展開された後、実行される演算プロセッサ12のローカルメモリ14にロードされる。 It is compiled for the respective processors, after being further expanded into microinstructions are loaded into the local memory 14 of the arithmetic processor 12 to be executed.

【0130】次に、初期データのマッピング処理について説明する。 [0130] Next, a description will be given of the mapping process of the initial data.

【0131】全体メモリ13に、制御プロセッサ11で実行される命令とデータがフロントエンド計算機18から転送される。 [0131] The entire memory 13, instructions and data executed by the control processor 11 is transferred from the front-end computer 18.

【0132】次に、各演算プロセッサ12のローカルメモリ14に、演算データと、MIMD動作されるべき命令とが格納される。 [0132] Then, the local memory 14 of the arithmetic processor 12, and operation data, instructions and be MIMD operation are stored. これらのデータは、各演算プロセッサ12によって異なるため、演算プロセッサ12ごとに逐次的に行われる。 These data is different by each arithmetic processor 12, it is sequentially performed for each arithmetic processor 12. 処理手順は次の通りである。 Processing procedure is as follows.

【0133】(1)制御プロセッサ11は、全演算プロセッサ12に対して、データを転送する演算プロセッサ番号と、マスク命令を放送する。 [0133] (1) The control processor 11, the total computation processor 12, the arithmetic processor number to transfer data, broadcasts a mask instruction.

【0134】(2)各演算プロセッサ12は、制御プロセッサ11からの命令に従って、制御プロセッサ11から放送されるプロセッサ番号と、自分のプロセッサ番号とを比較し、一致していなければマスクビットをセットする。 [0134] (2) the arithmetic processor 12 in accordance with instructions from the control processor 11 compares the processor number that is broadcast from the control processor 11, and their processor number, sets a mask bit must match . したがって以後の処理は、制御プロセッサ11が指定した番号の演算プロセッサ12のみで行われる。 Thus subsequent treatment, control processor 11 is performed only by the arithmetic processor 12 for a specified number.

【0135】(3)制御プロセッサ11は、データを格納するべきローカルメモリ14の領域の先頭アドレスを演算プロセッサ12に転送し、DMAモードと、制御プロセッサ11から転送するデータのメモリ13への書き込みを指示する命令を発行する。 [0135] (3) the control processor 11 transfers the start address of the area of ​​the local memory 14 to store the data to the arithmetic processor 12, a DMA mode, the writing from the control processor 11 to the memory 13 of the data to be transferred to issue an instruction to the instruction.

【0136】(4)制御プロセッサ11は、指定した演算プロセッサ12に転送するデータをフロントエンド計算機18から取得し、グローバルバス15を用いて演算プロセッサ12に順次転送する。 [0136] (4) The control processor 11 obtains the data to be transferred to the specified arithmetic processor 12 from the front end computer 18 sequentially transfers to the arithmetic processor 12 with the global bus 15.

【0137】(5)指定された演算プロセッサ12は、 [0137] (5) given arithmetic processor 12,
制御プロセッサ11から転送されるデータを、指定されたローカルメモリ14の領域に、DMAモードで順次書き込む。 The data transferred from the control processor 11, to the designated area of ​​the local memory 14 are sequentially written in DMA mode.

【0138】(6)転送が終了すると、制御プロセッサ11は、DMA中止命令と、マスク解除命令を全演算プロセッサ12に対して発行する。 [0138] (6) When the transfer is completed, the control processor 11, a DMA stop command, to issue a mask cancel command for all processors 12.

【0139】(7)以上で述べた(1)〜(6)の処理を全演算プロセッサ12に対して行う。 [0139] (7) mentioned above (1) performs - processing (6) for all processors 12.

【0140】MIMD方式の並列処理を行うにあたって、MIMD用命令アドレステーブルを作成する必要がある。 [0140] In performing the parallel processing of the MIMD system, it is necessary to create the instruction address table for MIMD. このアドレステーブルの作成方法を下記に示す。 It shows how to create the address table below.

【0141】MIMD動作される命令列は、初期データマッピング時は、演算データと区別されることなくローカルメモリ14に格納される。 [0141] MIMD operation is the instruction sequence, when initial data mapping is stored in the local memory 14 without being distinguished from the operation data. 連続した命令列は、ローカルメモリ14の連続したアドレスに格納されることが望ましい。 Sequential instruction sequence is preferably stored in consecutive addresses in the local memory 14. また、同一時刻にMIMD処理される命令列の開始アドレスは、各演算プロセッサ12で同じであることが望ましいが、異なっていても実行可能である。 Also, the starting address of the instruction sequence to be MIMD processed at the same time is desirably the same in each arithmetic processor 12 can be performed also be different.

【0142】MIMD動作される命令列の開始アドレスは、各演算プロセッサ12で同一の場合は制御プロセッサ11または演算プロセッサ12が、各演算プロセッサ12で異なる場合は演算プロセッサ12が認識しておく必要がある。 [0142] Start address of the instruction sequence to be MIMD operation, control processor 11 or the arithmetic processor 12 in the case the same in each arithmetic processor 12, be different for each operation processor 12 needs the arithmetic processor 12 is aware is there.

【0143】図8に、各演算プロセッサ12でMIMD [0143] Figure 8, in the arithmetic processor 12 MIMD
動作命令開始アドレスが同一の場合の制御プロセッサ1 Control processor when the operation instruction start address is the same 1
1のアドレステーブルの一例を示す。 It shows an example of 1 of the address table. アドレステーブルはどの領域に作成してもよいが、ここでは全体メモリ1 Address table may be created in any region, but overall here memory 1
3の0番地から作成されるものと仮定する。 It assumed to be created from address 0 of 3. 同一時期にMIMD動作される命令列の開始アドレスが、各演算プロセッサ12で異なる場合は、各演算プロセッサ12がローカルメモリ14中にアドレステーブルを作成する必要がある。 Start address of the instruction sequence to be MIMD operation in the one time is, be different for each arithmetic processor 12, it is necessary to the arithmetic processor 12 creates an address table in the local memory 14.

【0144】以下に、SIMD方式による処理を説明する。 [0144] In the following, a description will be given of processing by the SIMD system.

【0145】第2の発明の並列計算機における制御プロセッサ11から放送される命令により、全演算プロセッサ12が同一の処理を行う方式である。 [0145] The instructions to be broadcast from the control processor 11 in the parallel computer of the second aspect of the invention, all the processing processor 12 is a method of performing the same processing. 制御プロセッサ11は、全体メモリ13から命令を読み込み、解読した結果、それが演算プロセッサ12で実行すべきものならば、グローバルバス15を介して全演算プロセッサ12 The control processor 11 reads an instruction from the overall memory 13, a deciphered result, if it should be executed by the operation processor 12, all processors 12 via the global bus 15
に放送する。 Broadcast to. 各演算プロセッサ12では、制御プロセッサ11から放送される命令を命令レジスタ24に入力するように、マルチプレクサ23を制御する。 In the arithmetic processor 12, so as to input a command to be broadcast from the control processor 11 to the instruction register 24 to control the multiplexer 23.

【0146】マルチプレクサ23の制御は、命令レジスタ24の最上位ビットで行われ、最上位ビットが0ならば、制御プロセッサ11から放送される命令が命令レジスタ24に格納される。 [0146] Control of the multiplexer 23 is carried out in the most significant bits of the instruction register 24, if the most significant bit is 0, the instruction is broadcast from the control processor 11 is stored in the instruction register 24. したがって、制御プロセッサ1 Thus, the control processor 1
1から放送されるSIMD処理用の命令は、最上位ビットは常に'0'となるように制御プロセッサ11を設計する必要がある。 Instructions for SIMD processing broadcasted from 1, it is necessary to design the control processor 11 so that the most significant bit is always '0'. 命令レジスタ24の各ビットが、演算プロセッサ12の他の構成要素を制御することによって処理が行われる。 Each bit in the instruction register 24, processing is performed by controlling the other components of processors 12.

【0147】次に、SIMD方式からMIMD方式へ移行する処理手順を説明する。 [0147] Next, a description will be given of processing steps for migrating from the SIMD system to MIMD system.

【0148】制御プロセッサ11の命令には、各演算プロセッサ12のローカルメモリ14に格納されている命令列に実行を移行するための命令が用意されている。 [0148] The command of the control processor 11, the instruction for moving an execution instruction sequence stored in the local memory 14 of the arithmetic processor 12 is prepared. この命令は、図8に示すアドレステーブルの番号を指定するフィールドを持つ。 This instruction has a field that specifies the number of the address table shown in FIG. この命令が制御プロセッサ11で実行されると、次のような手順で各演算プロセッサ12 When this instruction is executed by the control processor 11, the arithmetic processor 12 in the following steps
のMIMD用命令列に処理が移行される。 Processing of the MIMD for the instruction sequence is migrated.

【0149】(1)アドレステーブルから命令列の開始アドレス読み出され、グローバルバス15を介して全演算プロセッサ12に放送される。 [0149] (1) from the address table is read starting address of the instruction sequence, to be broadcast via the global bus 15 to all processors 12.

【0150】(2)制御プロセッサ11からの命令による制御で、各演算プロセッサ12で、(1)で転送されたアドレスが、プログラムカウンタ25に格納される。 [0150] (2) under the control of commands from the control processor 11, in the arithmetic processor 12, the address transferred in (1), stored in the program counter 25.

【0151】(3)制御プロセッサ11からの命令による制御で、各演算プロセッサ12で、プログラムカウンタ25で示されるローカルメモリ14のアドレスから、 [0151] (3) under the control of commands from the control processor 11, in the arithmetic processor 12, the address of the local memory 14 shown in the program counter 25,
MIMD処理のための命令が読み出される。 Instructions for MIMD processing are read. このときの制御プロセッサ11からの命令は、最上位ビットが'1'になっている。 Command from the control processor 11 at this time is the most significant bit is '1'. したがって、次の命令レジスタ2 Therefore, the next instruction register 2
4の入力は、ローカルメモリ14から読み出されたMI Input 4 is read from the local memory 14 MI
MD用命令が選択されるよう、マルチプレクサ23が切り換わる。 So that for the MD instruction is selected, the multiplexer 23 is switched.

【0152】(4)ローカルメモリ14から読み出された命令は、命令レジスタ24に格納され、命令レジスタ24からの指示によって処理が行われる。 [0152] (4) read from the local memory 14 instructions stored in the instruction register 24, the processing is performed by an instruction from the instruction register 24. この処理は、 This process,
各演算プロセッサ12で異なっていても良いため、MI Since it is different in each arithmetic processor 12, MI
MD処理となる。 The MD processing.

【0153】次に、MIMD方式に移行した後の処理を以下に示す。 [0153] Next, the following processing after shifting to MIMD mode.

【0154】前述したように、MIMD処理が開始されたとき、プログラムカウンタ25には、MIMD用命令列の先頭アドレスが格納されている。 [0154] As described above, when the MIMD processing is started, the program counter 25, the head address of the MIMD for instruction string is stored. プログラムカウンタ25は、命令レジスタ24からの制御によってインクリメントされる機能を備えている。 Program counter 25 has a function which is incremented by the control of the instruction register 24. これによって、ローカルメモリ14に格納されたMIMD用命令列を順次読み出すことができる。 This can sequentially read the instruction sequence for MIMD stored in the local memory 14.

【0155】また、命令レジスタ24に格納される命令の選択は、現在の命令レジスタ24の最上位ビットで決定される。 [0155] Further, the selection of instructions stored in the instruction register 24 is determined by the most significant bits of the current instruction register 24. すなわち最上位ビットが'1'ならば、ローカルメモリ14から読み出した命令が命令レジスタ24 That, the highest-order bit is "1", the instruction read from the local memory 14 by the instruction register 24
に格納される。 It is stored in.

【0156】したがって、ローカルメモリ14に格納されるMIMD処理用命令列は、最上位ビットを'1'にし、さらにプログラムカウンタ25をインクリメントしながらローカルメモリ14を読み出すように制御コードを設定しておけば、ローカルメモリ14の命令列を順次命令レジスタ24にロードして、MIMD処理が可能である。 [0156] Thus, MIMD processing instruction string stored in the local memory 14, the most significant bit to '1', by setting the control codes to read the local memory 14 while further incrementing the program counter 25 if, then loaded into the sequential instruction register 24 to the instruction sequence of the local memory 14, it is possible to MIMD processing. 命令列の最後尾は、最上位ビットを'0'にしておけば、MIMD処理終了後、制御プロセッサ11からの命令が命令レジスタ24にロードされるように、マルチプレクサ23が制御される。 End of the instruction sequence, if the most significant bit '0', after the MIMD processing is completed, as an instruction from the control processor 11 is loaded into the instruction register 24, multiplexer 23 is controlled.

【0157】もちろん、単一の命令に、上記の最後尾の命令の設定を行っておけば、単一の命令のMIMD動作も可能である。 [0157] Of course, in a single instruction, if after the setting of the last instruction of the above, it is also possible to MIMD operation of a single instruction.

【0158】最後に、MIMD方式からSIMD方式への移行処理を説明する。 [0158] Finally, to explain the transition process to the SIMD system from MIMD system.

【0159】MIMD処理の終了は、各演算プロセッサ12でまちまちであるため、制御プロセッサ11は、全演算プロセッサ12でのMIMD処理の終了を確認してからSIMD処理を開始する必要がある。 [0159] End of MIMD processing is the mixed with the arithmetic processor 12, control processor 11, it is necessary to start the SIMD processing after checking the completion of the MIMD processing in all processors 12.

【0160】(1)制御プロセッサ11は、各演算プロセッサ12でのMIMD処理を起動した後、待ち状態に入る。 [0160] (1) The control processor 11, after starting the MIMD processing in each arithmetic processor 12 enters a wait state. この状態では、制御プロセッサ11は、演算プロセッサ12に対してNOP(No Operation)コードを発行し続ける。 In this state, the control processor 11 continues to issue a NOP (No Operation) code for arithmetic processor 12.

【0161】(2)演算プロセッサ12はMIMD処理を行うが、MIMD処理用命令列の最後尾の命令として、状態制御レジスタ31の同期ビットをセットし、さらに最上位ビットを'0'にした命令を挿入しておく。 [0161] (2) arithmetic processor 12 performs the MIMD processing, as the last instruction in the MIMD processing instruction sequence, sets the sync bit in the status control register 31, and further the most significant bit '0' instructions keep inserts.

【0162】(3)各演算プロセッサ12では、MIM [0162] (3) In each of processors 12, MIM
D処理用命令列の最後のコードを実行すると、状態制御レジスタ31の同期ビットがセットされ、さらに命令レジスタ24への入力が、以後は制御プロセッサ11が発行する命令を選択するようにマルチプレクサ23が切り換わる。 Running the last code D processing instruction sequence, the synchronization bit is set in the state control registers 31, further input to the instruction register 24, multiplexer 23, as hereinafter selects the instruction control processor 11 issues It switched. 各演算プロセッサ12の同期ビットはワイヤード・オア接続され、制御プロセッサ11は、全演算プロセッサ12で同期ビットが1にセットされたか否かを認識できる。 Synchronization bits of the arithmetic processor 12 is wired-OR connection, the control processor 11 synchronization bits in all processors 12 can recognize whether it is set to 1.

【0163】(4)制御プロセッサ11は、(1)で演算プロセッサ12のMIMD処理を起動した後、全演算プロセッサ12で同期ビットに1がセットされたことを認識するまでNOP命令を発行し続ける。 [0163] (4) The control processor 11 continues to issue a NOP instruction to recognize that after starting the MIMD processing arithmetic processors 12, one in sync bit in all processors 12 is set at (1) . 早く処理が終わった演算プロセッサ12は、制御プロセッサ11からNOPコードを受け取って実行するが、副作用はない。 Arithmetic processor 12 processing earlier is over, run from the control processor 11 receives the NOP code, but side effects. (5)制御プロセッサ11は、全演算プロセッサ12の同期ビットに1がセットされたこと、すなわち全演算プロセッサ12でMIMD処理が終了したことを確認したら、NOPコードの発行を中止し、SIMD処理用の命令の発行を開始する。 (5) the control processor 11, the 1 in the synchronization bits of all processors 12 is set, i.e. After verifying that the MIMD processing in all processors 12 is completed, stop the issuance of NOP code for SIMD processing to start the issuance of the instruction.

【0164】(6)以降は、制御プロセッサ11からの命令にしたがって、全演算プロセッサ12でSIMD処理が行われる。 [0164] (6) Thereafter, in accordance with an instruction from the control processor 11, SIMD processing in all processors 12 is performed.

【0165】以上で述べたように、SIMD型並列計算機にわずかなハードウェア(マルチプレクサ23,プログラムカウンタ25)を追加するだけで、MIMD動作が可能となる。 [0165] As noted above, minor hardware SIMD type parallel computer (multiplexer 23, the program counter 25) by simply adding, it is possible to MIMD operation.

【0166】なお、以上の実施例は、第2の発明を実現するための一例を示したものであり、これに限定されるものではない。 [0166] The above examples are merely examples for implementing the second invention, it is not limited thereto. 例えば、命令レジスタ24への入力の選択は、命令レジスタ24の最上位の1ビットを用いて行ったが、状態制御レジスタ31の1ビットを用いて行うようにすることもできる。 For example, the selection of input to the instruction register 24 has been performed using the most significant bit of the instruction register 24, can also be performed using a 1-bit status control register 31. この場合の構成図を図9に示す。 It shows a block diagram of the case in FIG.

【0167】図7と異なる点は、命令レジスタ24への入力データを選択するマルチプレクサ23の制御を、状態制御レジスタ31の1ビットを用いて行うことである。 [0167] Figure 7 differs, the control of the multiplexer 23 for selecting input data to the instruction register 24 is to perform using a 1-bit status control register 31. このような構成で、MIMD動作を行うための手順を次に示す。 In such a configuration, following the procedure for performing MIMD operation. なお、図7の実施例と共通の処理は、記述を省略した。 The common treatment as in Example 7 was omitted descriptions.

【0168】1. [0168] 1. SIMD処理 状態制御レジスタ31の、マルチプレクサ23を制御するビットを、制御プロセッサ11からの命令を命令レジスタ24に入力するように設定する。 Of SIMD processing state control register 31, a bit for controlling the multiplexer 23 is set to enter an instruction from the control processor 11 to the instruction register 24. 以後、状態制御レジスタ31のマルチプレクサ23を制御するビットを書き換えない限り、演算プロセッサ12は制御プロセッサ11からの命令にしたがって処理を行う。 Hereinafter, unless rewritten bits to control the multiplexer 23 in the state control registers 31, the arithmetic processor 12 performs processing in accordance with instructions from the control processor 11.

【0169】2. [0169] 2. MIMD処理への移行 制御プロセッサ11の命令には、各演算プロセッサ12 The instruction of the transition control processor 11 to the MIMD processing, the arithmetic processor 12
のローカルメモリ14に格納されている命令列に実行を移行するための命令が用意されている。 Instructions for migrating an execution instruction sequence stored in the local memory 14 are prepared. この命令は、図8に示すような命令列の開始アドレスの格納されている番地を指定するフィールドを持つ。 This instruction has a field specifying the address stored in the start address of the instruction sequence shown in FIG. この命令が制御プロセッサ11で実行されると、次のような手順で各演算プロセッサ12の命令列に処理が移行される。 When this instruction is executed by the control processor 11, processing the instruction sequence of the arithmetic processor 12 in the following procedure it is migrated.

【0170】(1)指定されたアドレステーブルに格納されている命令列の開始アドレスがグローバルバス15 [0170] (1) global bus 15 start address of the instruction sequence stored in the specified address table
を介して全演算プロセッサ12に放送される。 Is broadcast to all processors 12 via the.

【0171】(2)制御プロセッサ11からの命令による制御で、各演算プロセッサ12で、(1)で放送されたMIMD用命令列の開始アドレスが、プログラムカウンタ25に格納される。 [0171] (2) under the control of commands from the control processor 11, in the arithmetic processor 12, the start address of the MIMD for instruction stream broadcast by (1), stored in the program counter 25.

【0172】(3)制御プロセッサ11からの命令による制御で、各演算プロセッサ12で、プログラムカウンタ25で示されるローカルメモリ14の開始アドレスから、MIMD処理のための命令が読み出され、命令レジスタ24に格納される。 [0172] (3) under the control of commands from the control processor 11, in the arithmetic processor 12, the start address of the local memory 14 shown in the program counter 25, instruction for MIMD processing is read, the instruction register 24 It is stored in.

【0173】(4)状態制御レジスタ31の、マルチプレクサ23を制御するビットを、命令レジスタ24への入力データとして、ローカルメモリ14から読み出したデータを選択するように設定する。 [0173] (4) of the state control register 31, a bit for controlling the multiplexer 23 as input data to the instruction register 24, is set to select the data read from the local memory 14.

【0174】(5)命令レジスタ24からの指示によって処理が行われる。 [0174] (5) processing is performed by an instruction from the instruction register 24. この処理は、各演算プロセッサ12 This process, the arithmetic processor 12
で異なっていても良いため、MIMD処理となる。 For good it is different, the MIMD processing.

【0175】3. [0175] 3. MIMD方式による処理 前実施例と同様に、プログラムカウンタ25には、MI Similar to the pretreatment embodiment according MIMD mode, the program counter 25, MI
MD用命令列の先頭アドレスが格納されており、この値をインクリメントさせながら、ローカルメモリ14から命令列を順次読み出すことができる。 The start address of the MD instruction sequence is stored, while incrementing the value, it is possible to sequentially read an instruction sequence from the local memory 14. 状態制御レジスタの設定により、ローカルメモリ14から読み出された命令列は、命令レジスタ24に格納されるようにマルチプレクサ23が制御される。 By setting the state control registers, instruction sequence read from the local memory 14, the multiplexer 23 is controlled so as to be stored in the instruction register 24. これによって、ローカルメモリ14に格納された命令列を順次読み出し、実行することができる。 Thus, sequentially reads instruction sequence stored in the local memory 14 can be executed.

【0176】4. [0176] 4. MIMD方式からSIMD方式への移行 MIMD処理の終了は、各演算プロセッサ12でまちまちであるため、制御プロセッサ11は、全演算プロセッサ12でのMIMD処理の終了を確認してからSIMD End of transition MIMD processing to SIMD mode from MIMD mode are the mixed in the arithmetic processor 12, control processor 11, SIMD After confirming completion of the MIMD processing in all processors 12
処理を開始する必要がある。 It is necessary to start the process.

【0177】(1)制御プロセッサ11は、MIMD処理を起動した後、待ち状態に入る。 [0177] (1) The control processor 11, after starting the MIMD processing, enters a wait state. この状態では、制御プロセッサ11は、演算プロセッサ12に対してNOP In this state, the control processor 11, NOP respect arithmetic processor 12
(No Operation)コードを発行する。 To issue (No Operation) code.

【0178】(2)各演算プロセッサ12のMIMD処理用命令列の最後尾に、状態制御レジスタ31の同期ビットをセットし、かつ、マルチプレクサ23を制御するビットを制御プロセッサ11からの命令を命令レジスタ24に入力するように設定する命令を挿入しておく。 [0178] (2) the end of MIMD processing instruction sequence of the arithmetic processor 12 sets the synchronization bit status control register 31, and instruction register instructions from the control processor 11 bits that control the multiplexer 23 keep inserting an instruction to set to enter the 24.

【0179】(3)各演算プロセッサ12では、MIM [0179] (3) In each of processors 12, MIM
D処理用命令列の最後のコードを実行すると、状態制御レジスタ31の同期ビットがセットされ、さらに命令レジスタ24への入力が、以後は制御プロセッサ11が放送する命令を入力するようにマルチプレクサ23が切り換わる。 Running the last code D processing instruction sequence, the synchronization bit is set in the state control registers 31, further input to the instruction register 24, multiplexer 23, as hereinafter inputs instructions to control the processor 11 broadcasts It switched.

【0180】(4)制御プロセッサ11は、(1)で演算プロセッサ12のMIMD処理を起動した後、全演算プロセッサ12で同期ビットに1がセットされたことを認識するまでNOP命令を発行し続ける。 [0180] (4) The control processor 11 continues to issue a NOP instruction to recognize that after starting the MIMD processing arithmetic processors 12, one in sync bit in all processors 12 is set at (1) . 早く処理が終わった演算プロセッサ12は、制御プロセッサ11からNOPコードを受け取って実行するが、副作用はない。 Arithmetic processor 12 processing earlier is over, run from the control processor 11 receives the NOP code, but side effects. (5)制御プロセッサ11は、全演算プロセッサ12の同期ビットに1がセットされたこと、すなわち全演算プロセッサ12でMIMD処理が終了したことを確認したら、NOPコードの発行を中止し、SIMD処理用の命令の発行を開始する。 (5) the control processor 11, the 1 in the synchronization bits of all processors 12 is set, i.e. After verifying that the MIMD processing in all processors 12 is completed, stop the issuance of NOP code for SIMD processing to start the issuance of the instruction.

【0181】(6)以降は、制御プロセッサ11からの命令にしたがって、全演算プロセッサ12でSIMD処理が行われる。 [0181] (6) Thereafter, in accordance with an instruction from the control processor 11, SIMD processing in all processors 12 is performed.

【0182】このように、命令レジスタ24への命令の入力の選択を、状態制御レジスタによって設定することもできる。 [0182] Thus, the selection of the input of the instruction to the instruction register 24 may be set by the state control registers. この方法では、制御レジスタの設定のために命令が必要となるが、演算結果によって、制御プロセッサ11からの命令列か、メモリ13に格納されている命令列かのどちらかを実行するかを選択することも可能で、より柔軟性の高い処理が実現できる。 In this way, it becomes necessary instructions for the setting of the control register, selected by the operation result, or sequence of instructions from the control processor 11, whether to perform either or instruction sequence stored in the memory 13 is also possible, more flexible process that can be achieved.

【0183】以上で述べた実施例では、制御プロセッサ11は解読済みの命令、すなわちマイクロ命令を各演算プロセッサ12に放送する方法を示した。 In the embodiment described in [0183] above, the control processor 11 shown decrypted instruction, i.e. a method of broadcasting a microinstruction to the arithmetic processor 12. これに対して、解読する前の機械語命令をそのまま放送することも可能である。 On the other hand, it is also possible to broadcast the machine language instructions before to decipher it. この場合、各演算プロセッサ12に、機械語を解読したマイクロ命令を発生するための機能を設ける必要があり、ハードウェア量は増加する。 In this case, each arithmetic processor 12, it is necessary to provide a function for generating a microinstruction decodes the machine language, the amount of hardware is increased.

【0184】しかし、近年開発されているRISC(Re [0184] However, RISC, which have been developed in recent years (Re
duced Instruction Set Computer)プロセッサでは、機械語の解読は比較的簡単に行われるため、それほどハードウェア量は増加しないと考えられる。 In duced Instruction Set Computer) processor, since the decoding of the machine language are relatively easily performed, would not increase that much amount of hardware. もちろん、このような場合でも、第2の発明で示したように、SIMD Of course, even in this case, as shown in the second invention, SIMD
処理とMIMD処理の両方を可能にする構成が可能である。 Configuration allowing both processing and MIMD processing are possible.

【0185】第3の発明 図10は、第3の発明の並列計算機に係わる一実施例の構成を示す図である。 [0185] A third invention Figure 10 is a diagram showing the structure of an embodiment according to the parallel computer of the third aspect of the present invention. 同図には、簡単なモデルとして1 In the figure, 1 as a simple model
次元リング結合の並列計算機を示した。 It showed parallel computer dimension ring binding. この図に示す通り、16個のPE0〜15がリング状に配置され、各々のPE0〜15は隣のPEと通信を行うものとする。 As shown in this figure, 16 PE0~15 are arranged in a ring, each of PE0~15 shall communicate with neighboring PE.

【0186】問題サイズが16の倍数の時、分割されたタスクのPEへの割り付けは容易である。 [0186] When the size is 16 multiples of problems, assignment to PE split task is easy. すなわち例えばサイズが16の場合、PE0には1番目のタスクを割り当て、PE1には2番目のタスクの割り付けを行い、 Thus, for example if the size is 16, assigns the first task in PE0, the PE1 performs allocation of the second task,
PE15には16番目のタスクを割り付ける。 The PE15 allocate 16 th task. この場合、各PEに均等にタスクが割り付けられ、バランス良く処理を実行できる。 In this case, equally the task is assigned to each PE, it can perform well-balanced treatment.

【0187】しかし、問題サイズが10の場合、16台のPE0〜15の内の10台にタスクを割り付けるが、 [0187] However, if the size is 10 problems, but assign the task to the 10 units of the 16 units PE0~15,
例えばPE0からPE9までに割り付けるとする。 For example, to allocate to the PE0 to PE9. この時PE10からPE15までは休止となるので、識別回路にPE0からPE9までが稼動であり、PE10からPE15までが休止である情報をセットする。 At this time from the PE10 becomes dormant until PE15, from PE0 to the identification circuit to the PE9 is is operated to set information from PE10 to PE15 are dormant. 各PEのバイパス回路は識別回路からの情報により通信時のバイパスを行う。 Bypass circuit for each PE performs a bypass for communication by the information from the identification circuit.

【0188】本例ではPE10からPE15のバイパス回路がバイパスを行う。 [0188] bypass circuit from PE10 in PE15 in this example performs the bypass. これによりソフトから見たハードウェアの構成はPE0からPE9までがリング状に接続された10台並列の1次元接続の並列計算機となる。 Thus the hardware configuration as viewed from the software from PE0 to PE9 becomes parallel computer of a one-dimensional connection of the parallel ten connected in a ring.
左から順にPE0、PE1…PE9と並んでいる場合、 If you are side by side with the order to PE0, PE1 ... PE9 from the left,
PE9の右の通信バスはPE0の左側の通信バスに接続される。 PE9 right communication bus is connected to the left side of the communication bus PE0.

【0189】図11,12にバイパス回路の詳解図を示す。 [0189] A detailed explanation diagram of the bypass circuit in FIGS. 11 and 12. 図11はPE間が双方向バスで通信を行う場合のアドレス/データバスである。 Figure 11 is an address / data bus if the inter-PE performs bidirectional communication bus. バイパス経路はPEを飛び越すように、PEの右側バスと左側バスに接続する。 Bypass path to skip over PE, is connected to the right bus and the left bus PE. 双方向バスには双方向3−stateバッファ41を挿入する。 The bi-directional bus inserts an interactive 3-state buffer 41. 3−ステートバッファには識別回路42から自P Self P from the identification circuit 42 in the 3-state buffer
Eの稼動/休止情報が送られる。 Operation / pause information of E is sent. PEが稼動の場合は3 If PE is running 3
−stateとなり、休止の場合はバッファがオープンとなり、通信可能となる。 -state, and the buffer becomes open when resting, can communicate.

【0190】双方向バッファ41の方向制御は並列計算機の仕様による。 [0190] direction control of the bidirectional buffer 41 according to the specification of a parallel computer. 例えばSIMD型並列計算機で、同期的に処理を実行する場合、データの転送方向は全てのP For example, SIMD type parallel computer, to perform synchronous processing, the data transfer direction all P
Eで同じであるため、PEの制御を行うACU(Arr Is the same in E, ACU for controlling the PE (Arr
ay Control Unit)から転送方向を指定するだけでよい。 Need only specify the transfer direction from ay Control Unit).

【0191】一方、MIMD型並列計算機では、隣接通信は非同期である場合が多く、そのためハンドシェイクを行う必要がある。 [0191] On the other hand, in the MIMD parallel computers, the adjacent communication if it is asynchronous many, it is necessary to perform this reason handshake. ハンドシェイクには要求信号と許可信号の信号線が必要となる。 The handshake is required signal lines request signal and authorization signal. この場合、双方向バッファ41の方向は、アクセス要求を出した側とアクセスが読み出しか書き込みかに依存してくる。 In this case, the direction of the bidirectional buffer 41, the side access come depending on whether a write read that issued the access request. そのため、バッファ41の方向はバッファ41に付属の制御回路で要求信号とRead/Write信号から決定する。 Therefore, the direction of the buffer 41 is determined from the request signal and the Read / Write signal control circuit supplied with the buffer 41.

【0192】MIMD型並列計算機で必要となる要求信号、許可信号、Read/Write信号などは一方向の信号である場合が多い。 [0192] request signal required by MIMD parallel computers, enabling signal, such as Read / Write signal is often one-way signals. 特に今問題としているPE間での転送は通信相手が固定できるためなおさらである。 Transfer between PE that are particularly now the problem is even more because the communication partner can be fixed.
通信方向が1方向の場合の詳解図が図12である。 Detailed explanation diagram in the case the communication direction is one direction is 12. 例えば右方向への要求信号を考えると、自PEの左のPEから自PEに向けられた要求信号と、自PEから右のPE For example, consider a request signal to the right, and the request signal from the PE to the left of the self PE directed to the own PE, from the own PE the right PE
に送る要求信号を識別回路42からの稼動/休止の信号により、セレクタ43aで選択して右のPEへ送る。 The signal operation / pause from the identification circuit 42 a request signal sent to the send and selected by the selector 43a to the right of the PE.

【0193】例えば自PEが稼動の場合、右のPEに送る要求信号は自PEからの要求信号をセレクタ43aで選択して送り、自PEが休止している場合は左のPEから自PEに送られてくる要求信号を右のPEに送る。 [0193] For example, when the own PE is running, the request signal sent to the right of the PE sends selects the request signal from the self PE in the selector 43a, the own PE from the left PE if the own PE is suspended Send sent come request signal to the right of the PE. これにより、自PEが休止の場合は左のPEからの要求信号は直接右のPEに送られることになり、バイパスを行うことが出来る。 Thus, the request signal from the left of PE in the case of the self PE is resting will be sent directly to the right of PE, it is possible to perform the bypass.

【0194】上記例ではPE10からPE15のかたまりを休止とした。 [0194] In the above example was with the rest of the lump from PE10 PE15. しかし、このように局地的にかたまって休止にした場合、バイパスする距離が大きくなる。 However, if you rest solidified Thus the local distance to bypass increases. 上記例では6PE分の距離をバイパスすることになる。 In the above example would be to bypass the distance 6PE minute. 図11の場合、バイパスの際にはバッファ41を通過する。 For Figure 11, when the bypass passes the buffer 41. 連続してバイパスする数が増えればそれだけ通過するバッファ41の数は増え、なおかつ物理的な距離も遠くなり、通信の為の時間が増加してしまう。 The number of buffers 41 in which the number of continuously bypassing to the more passes the more increases and yet physical distance becomes farther, the time for communication increases.

【0195】上記MIMD型並列計算機でのハンドシェイク方式ならば、多少通信時間に誤差が生じても防ぐことが出来るが、SIMD型並列計算機での同期方式では、各PE間での通信所要時間にばらつきがあると、問題が生ずる。 [0195] If handshaking in the MIMD parallel computers, but can be prevented even if some error occurs in the communication time, the synchronization method in the SIMD type parallel computer, the communication time required between each PE When there is a variation, a problem arises.

【0196】実際には、転送命令が40nsで実行しなければならず、隣接PE間で転送する場合25ns必要な場合、バイパス1段を通るのに5nsの遅延が生ずるとすると、15÷5で最大3PE分のバイパスしか許されず、上記例での6個のPEのバイパスは不可能となる。 [0196] In practice, the transfer instruction must run at 40 ns, if when transferring between adjacent PE 25 ns necessary, when a 5ns delay for passing through the first stage bypass occurs, at 15 ÷ 5 only allowed not bypassed up 3PE fraction, bypass six PE in the above example is impossible.

【0197】そのためバイパスするPEを選択する必要がある。 [0197] it is necessary to select the PE to bypass therefor. 例えば休止にするPEを1つおきにすれば、P For example, if the PE to pause every other one 1, P
E間には1PE分の遅延しか生じなくなる。 Does not occur only delay of 1PE worth is between E. 上記例では休止するPEを例えばPE5,PE7,PE9,PE1 The PE to pause for example in the above example PE5, PE7, PE9, PE1
1,PE13,PE15と選択することにより可能となる。 1, PE13, made possible by choosing the PE15. 上記遅延の制約がある場合、上記16台並列の計算機では、4台並列から、16台並列まで自由に並列台数を変えることの出来る1次元リング結合並列計算機が実現できる。 If there is a restriction of the delay, in the sixteen parallel computers, the four parallel one-dimensional ring coupled parallel computer can be realized that can be changed freely parallel number up to 16 parallel.

【0198】また、上記例では各PE0〜15の保有するPE番号(0〜15)を固定としているが、これだと休止するPEがある場合、稼動PEの番号が連続とならない。 [0198] Further, in the above example is set to fix the PE number (0 to 15) held by each PE0~15 but, if there is a PE to rest with it which, the number of operating PE is not a continuous. 実行するプログラムが連続したPE番号を必要とする場合は、PE番号を、稼動するPEに与えるデータの一変数の値とすることで連続したPE番号とすることができる。 If the program to be executed requires continuous PE number, the PE number, it can be a continuous PE number by the univariate value of the data to be supplied to PE running.

【0199】第3の発明は仮想プロセッサの概念にも応用できる。 [0199] The third invention can be applied to the concept of virtual processors. すなわち、16台並列のPE0〜15に問題サイズが16以上のタスクを割り付ける場合を考える。 That is, consider the case where the size problem sixteen parallel PE0~15 allocates the 16 or more tasks.
タスクの数が16の倍数の場合、各PE0〜15に均等に割り付けることが出来る。 If the number of tasks in multiple of 16 can be assigned equally to each PE0~15. 例えば32のタスクを割り付ける場合、各PE0〜15に2タスクずつ割り付ければ、通常の仮想プロセッサの処理で何等問題ない。 For example, when assigning the 32 tasks By allocating each two tasks each PE0~15, no any problem in the process of normal virtual processors.

【0200】すなわち各PE内部の2つのタスクを処理するとき、それぞれのタスクを処理するために2つの状態を示す状態保持手段を用い、タスク1とタスク2を各々実行するとき上記状態を切り替えることにより、現在どちらの処理を実行しているかを認識し、仮想プロセッサを実現し、16台で32のタスクを処理する。 [0200] That is when processing two tasks within each PE, using the state holding means for indicating the two states in order to process each task, to switch the state when executing each of tasks 1 and 2 by recognizes whether you are running process currently realized virtual processors, to process 32 tasks in 16 units.

【0201】しかし、例えばタスク数が26の場合、各PE0〜15に均等に割り付けようとすると、タスクを1個受け持つPEと、2個受け持つPEとができる。 [0202] However, for example, when the number of tasks is 26, when try to allocate equally each PE0~15, can and PE responsible one task, and PE responsible two is. 各PEが受け持つ2つのタスクをタスク1とタスク2とすると、タスク1を実行する場合は16台のPEが一斉に行えば良いが、タスク2を実行する際は10台のPEが稼動となり、残り6台のPEが休止となる。 When two tasks that each PE responsible for the tasks 1 and 2, although the sixteen PE may be performed simultaneously when performing tasks 1, when executing the task 2 becomes operational the ten PE, the remaining six PE becomes dormant.

【0202】つまりタスク2を実行する際は、上記例での10個のタスクを実行する場合と同様の状態となる。 [0202] That is when executing task 2 is the same state as when running 10 tasks in the example above.
そのため、タスク1を実行する場合は16台全てが稼動し、タスク2を実行する場合はバイパス回路を使用して10台並列の計算機に切り替えて実行を行えば仮想マシンとして26台並列の並列計算機として使用できる。 Therefore, if you run a task 1 is running all 16 cars, 26 units parallel parallel computer as a virtual machine by performing the execution switch to ten parallel computer using a bypass circuit when performing tasks 2 It can be used as. バイパス回路の使用/非使用は、上記状態保持手段に、上記識別回路42を連動することにより実現できる。 Use / non-use of the bypass circuit, the state holding means can be realized by interlocking the identification circuit 42. すなわちタスク1を処理する状態の時、識別回路42は全てのPE0〜15が稼動であるとしてバイパス回路を用いず、タスク2を処理する状態の時、識別回路42は与えられているPEの使用/非使用の情報からPEの稼動/ That is, when the state of processing the task 1, the identification circuit 42 does not use the bypass circuit as all PE0~15 is operated, the use of PE in which the state for processing the task 2, the identification circuit 42 is given / from non-use of information of the PE operation /
休止を決定し、バイパス回路の使用/非使用を決定する。 Determining a pause, determining the use / non-use of the bypass circuit.

【0203】次に2次元格子トーラス結合の場合を示す。 [0203] The following cases of two-dimensional grating Torus. 基本的には1次元リング結合と同様であり、バイパスの方向が列方向と行方向の2方向になる。 Is basically the same as the one-dimensional ring bond, the direction of the bypass is in two directions of the column and row directions. このため、 For this reason,
図11,12で示した双方向バッファ41あるいはセレクタ43も、列方向と行方向の2方向分必要となる。 Bidirectional buffer 41 or the selector 43 shown in FIG. 11 and 12 also requires two directions fraction of column and row directions. 制御の簡単化を考えると、1次元リング結合で1PEが休止の対象となったのに対し、2次元格子トーラス結合では行あるいは列が休止の対象となる。 Considering the simplification of the control, whereas 1PE in one dimension ring bond is subject to rest, row or column is subject to rest at a two-dimensional grid Torus.

【0204】図13に8×8のアレイに問題サイズが6 [0204] problem size in the array of FIG. 13 to 8 × 8 6
×5の処理を割り付けた場合を示す。 × shows the case in which allocation processing 5. まず行方向に関しては、8行のPE列のうち、6行を稼動とする。 For the first row, among the PE sequence of eight rows, and run the six rows. 各PE Each PE
を(X,Y)で表すとすると、1次元リング結合の場合と同様に、局所的に休止PEを固めないようにすると、 The (X, Y) When expressed, as in the case of one-dimensional ring binding and to avoid hardened locally resting PE,
PE(0,Y)、PE(1,Y)、PE(2,Y)、P PE (0, Y), PE (1, Y), PE (2, Y), P
E(3,Y)、PE(4,Y)、PE(6,Y)の6行がそれぞれ稼動となる(図中、丸印)。 E (3, Y), PE (4, Y), 6 rows of PE (6, Y) is operated, respectively (in the figure, circles).

【0205】列方向に関してはPE(X,0)、PE [0205] With respect to the column direction PE (X, 0), PE
(X,1)、PE(X,2)、PE(X,4)、PE (X, 1), PE (X, 2), PE (X, 4), PE
(X,6)の5列がそれぞれ稼動となる。 5 rows of (X, 6) becomes the operation, respectively. 休止となったPE列のPE(5,Y)、PE(7,Y)(図中、× Pause and became PE sequence of PE (5, Y), PE (7, Y) (in the figure, ×
印)は行方向のバイパスを行い、PE(X,3)、PE Perform bypass mark) row direction, PE (X, 3), PE
(X,5)、PE(X,7)はそれぞれ列方向のバイパスを行う。 (X, 5), PE (X, 7) performs the bypass in the column direction, respectively.

【0206】特に休止の行と列の交差にあるPE(3, [0206] Particularly at the intersection of rows and columns resting PE (3,
5)、PE(3,7)等は縦方向と横方向の双方をバイパスする。 5), PE (3,7), etc. bypasses both the vertical and horizontal directions. 2次元格子トーラス結合において、仮想プロセッサを実現する際も、1次元リング結合で挙げた例と同様にして行うことが出来る。 In a two-dimensional grid Torus, also when realizing the virtual processors can be performed in the same manner as the examples listed in one-dimensional ring binding.

【0207】3次元格子トーラス結合の場合は、休止の対象が2次元の行/列に対し、面が対象となる。 [0207] When the three-dimensional lattice Torus, compared object is a two-dimensional row / column rest, the surface is subject.

【0208】上記バイパス回路はPEと同一チップに納めたときに有効となる。 [0208] The bypass circuit is effective when placed in PE and the same chip. すなわち1方向に複数のチップをバイパスする場合、バイパス経路がチップ外にある場合よりもはるかに高速にバイパスを行うことが出来る。 That is, when the bypass plurality of chips in one direction, much more bypass can be performed faster than the bypass path is outside the chip.
特に複数PE/chipの場合、さらにバイパスの高速化を行うことが出来る。 Particularly in the case of multiple PE / Chip, it is possible to further carry out the speed of the bypass.

【0209】次にメモリアクセスに関して説明する。 [0209] will now be described with respect to memory access. 例としてまず16台並列の1次元リング結合の並列計算機を挙げる。 First mentioned sixteen parallel one-dimensional ring coupling of a parallel computer as an example. 上記例で16台並列の1次元リング結合型計算機で問題サイズ10の処理を行う場合を挙げたが、この時上記並列計算機が分散メモリ型であり、各PE0〜 Cited a case in which the processing of the problem size 10 in one-dimensional ring linked calculator 16 sets parallel in the example above, but this time the parallel computer is distributed memory, each PE0~
15がローカルメモリ(LM)を持つ場合、休止となっているPEのローカルメモリも使用されないことになる。 If 15 has a local memory (LM), so that even local memory of PE which is the rest is not used.

【0210】例えば問題サイズは4だが、1つのタスクが必要とするメモリ量が1PEの持つメモリの数倍の容量を必要とする場合もある。 [0210] For example problem size is 4 but may require several times the capacity of the memory with the amount of memory a task is required the 1PE. 通常この場合は1つのタスクのデータを複数に分け、おおもとのデータ保持部から随時転送する方法をとる。 In this case, usually divided into a plurality of single task data, employ a method of any time transferred from the data holding unit of Omoto. しかしこの場合、データを分割したためにデータが分割されていることを意識したプログラムが必要となる。 However, in this case, the program realized that is divided data to the divided data is necessary.

【0211】そこで、休止しているPEがある場合、同PEのローカルメモリを、稼動しているPEが使用できるようにすることにより、1PEあたりのメモリ容量を増やすことができる。 [0211] Therefore, when there is a PE that at rest, the local memory of the PE, by PE running to be able to use, it is possible to increase the memory capacity per 1PE.

【0212】図14に16台並列1次元リング結合の並列計算機の例を示す。 [0212] Figure 14 shows an example of a parallel computer of sixteen parallel one-dimensional ring binding. 同例で、上記バイパスに関する実施例を条件とすると、本並列計算機は4台から16台までのスケーラブル並列計算機となる。 In the example, when the condition of examples relating to the bypass, the parallel computer becomes scalable parallel computer from four to sixteen.

【0213】今、問題サイズが8とすると、稼動するP [0213] Now, when the size of the problem and 8, P running
EはPE0,2,4,6,8,10,12,14の8台となる。 E is the eight PE0,2,4,6,8,10,12,14. 各PEが自PEの右側のローカルメモリ(L Right of the local memory of each PE self PE (L
M)44を切り換えスイッチ45で直接アクセス出来るようにすると、8台並列で、各PEのローカルメモリ4 If you allow direct access by the switch 45 switches the M) 44, in eight parallel, the local memory 4 for each PE
4の容量が2倍となる。 4 of the capacity is doubled.

【0214】問題サイズが5の場合は、稼動PEをPE [0214] If the size problem is 5, the operation PE PE
0,3,6,9,12とし、PE0はPE1,2のローカルメモリ44を、PE3はPE4,5のローカルメモリ44を使用することにより、3倍のメモリ容量となる。 And 0,3,6,9,12, a local memory 44 of PE0 PE1,2, PE3 is by using the local memory 44 of the PE4,5, tripled memory capacity. 4台のPEが稼動の場合は4倍のメモリ容量となる。 Four PE if the operation is four times the memory capacity. アクセスのためのアドレス空間は、キャッシュメモリで用いるようなバンク方式あるいはウィンドウ方式も考えられるが、連続したアドレス空間として使用しても良い。 Address space for access is considered even bank system or window system as used in the cache memory, it may be used as a continuous address space.

【0215】ここで、どのPEを休止とし、どの稼動P [0215] In this case, to which PE and the rest, which runs P
Eがどの休止PEのローカルメモリ44を使用できる用にするかを決定することが問題となる。 Determining whether to use the E is a local memory 44 of which rest PE can be used becomes a problem. まず稼動PEをPE0,1,2,3,4,5,6,7とし、PE8〜1 The first operation PE and PE0,1,2,3,4,5,6,7, PE8~1
5を休止として、PE0がPE8のメモリを、PE7がPE15のメモリを使用することにしても良いが、まず稼動するPEは上記バイパスにおける制約条件もあるが、各PEが番号順に左から順に実装されている場合、 As 5 a pause, the PE0 memory of PE8, PE7 but may choose to use the memory of PE15, although PE that first runs some constraints in the bypass, mounted in order from left to each PE numerical order If it is,
PE0からPE8への物理的距離が遠くなる。 Physical distance from PE0 to PE8-boggling. そのためアクセス対象は実装時のモジュール間の距離を考慮して決定すべきである。 Therefore accessed should be determined by considering the distance between the time of mounting the module.

【0216】上記例では、割り付けられるタスクの大きさが均等の場合を念頭に述べたが、タスクの大きさすなわち必要となるメモリ量が異なっても良い。 [0216] In the above example, the size of the allocated tasks stated in mind in the case of uniform, may have different amount of memory the size of the task i.e. needed. すなわち今6個のタスクがあり、それぞれ必要となるメモリ量が4,2,3,4,1,2であった場合、稼動PEはPE That there are six tasks now if the memory amount required each were 4,2,3,4,1,2, operating the PE PE
0,4,6,9,13,14となり、PE0はPE1, 0,4,6,9,13,14 next, it is PE0 PE1,
2,3をPE4はPE5を、PE6はPE7,8を、P PE4 is a PE5 the 2,3, PE6 is a PE7,8, P
E9はPE10,11,12を、PE14はPE15のローカルメモリ44をそれぞれ使用する。 E9 is a PE10,11,12, PE14 uses each local memory 44 of PE15.

【0217】このように、単純にタスクを左から割り付けるとすると、タスクの大きさに適応するためには、前述した通信時間の関係から、全てのPEが他の少なくとも3つのPEにアクセスする経路を設けなければならず、回路/配線の増大を招く。 [0217] pathway Thus, when simply an assigned task from the left, in order to adapt to the size of the task, the relationship between the communication time mentioned above, that all the PE accesses other at least three PE the must be provided, causing an increase in circuit / wiring. これを解消するため、例えばPE0,4,8,12の各PEは自PEの右隣3P To solve this problem, for example, each PE of PE0,4,8,12 the right 3P of the self PE
Eへの経路をもち、他の偶数番号PEは隣のPEへの経路を持つように限定し、大きさの異なるタスクの割り付けはスケジューリングを行い対処する。 It has a route to E, the other even-numbered PE limited to have a route to an adjacent PE, allocation of different tasks in size to deal schedules. すなわちPEをグループ化する。 That grouping PE.

【0218】これは複数PEを1つのチップに載せた場合にも有利となる。 [0218] It is also advantageous when carrying a plurality PE into one chip. 例えば、4PEを1つのチップに配置し、上記切り換えスイッチ45などのアクセス回路もチップ内に納める。 For example, place the 4PE into one chip, the access circuitry such as the changeover switch 45 is also kept within the chip. これにより、アクセス回路の切り換えによる速度低下を防ぐことが出来る。 Thus, it is possible to prevent a speed reduction due to switching of the access circuit. 同一チップ上ならば、多少の回路/配線が増加しても速度の低下は防ぐことが出来る。 If the same chip, reduction in the rate be increased somewhat in the circuit / wiring it can be prevented. そのため、同一チップに配置したPE内では、全てのPEが他のPEのローカルメモリ44を使用できるようにしても良い。 Therefore, within the PE placed on the same chip, all the PE may be a local memory 44 of the other PE can be used. こうすることにより、大きさの異なるタスクへの対処の柔軟性は上がる。 Thereby, the flexibility to cope with different sizes task increases.

【0219】次に2次元格子トーラス結合のメモリアクセスの場合を示す。 [0219] The following cases of two-dimensional grating Torus memory accesses. 2次元の場合、休止の対象は行/列である。 The two-dimensional case, the object of the rest is a row / column. そのため、アクセス回路も行方向と列方向に設ける。 Therefore, the access circuit also provided in the row and column directions. 上記1次元リング結合で、チップに載せることも考慮して、PEをグルーピングしたが、2次元の場合でも同様のことがいえる。 In the one-dimensional ring binding, also consider placing the chip has been grouped PE, the same applies to the two-dimensional case is true.

【0220】図15に2×2のグループを考える。 [0220] Consider a group of 2 × 2 in Figure 15. PE PE
(0,0)は他のPEのローカルメモリ44が使用できる。 (0,0) is the local memory 44 of the other PE can be used. PE(1,0)とPE(0,1)はPE(1,1) PE (1, 0) and PE (0, 1) is PE (1, 1)
のローカルメモリ44が使用できるようにする。 Local memory 44 to be able to use the. これにより列方向、行方向のスケーリングを利用してメモリ容量の増加を行うことが出来る。 Thus the column, the row direction of the scaling can be performed an increase in memory capacity by using. また、PE(1,0)とPE(0,1)は休止するため、バスパス回路46を設けている。 Also, PE (1, 0) and PE (0, 1) is to rest, is provided with a bus pass circuit 46.

【0221】3次元格子結合に関しても上記例と同様にすることにより、メモリ容量の増加を行うことが出来る。 [0221] By also in the same manner as above Example respect the three-dimensional lattice bond can be performed an increase in memory capacity.

【0222】次にハイパーキューブでのメモリアクセスについて説明する。 [0222] will be described memory access in the hypercube. 並列計算機の静的結合方式の1つであるハイパーキューブは、通信距離の半径が小さいなどの利点が挙げられるが、スケーラビリティの点でも有利である。 Is one hypercube static coupling type parallel computer is advantages such as a small radius of the communication distance and the like, is advantageous in terms of scalability. すなわちハイパーキューブの次元を1つ下げるには、余分な次元に対応する通信経路を使用しなければよく、特別な回路は必要ない。 That is, lower one dimension of the hypercube, may have to use a communication path corresponding to the extra dimension, no special circuitry is needed.

【0223】例として4次元から3次元にする例を図1 [0223] An example of the three-dimensional four-dimensional examples 1
6に示す。 It is shown in 6. 稼動するPEをPE0〜7とし、稼動しないPEをPE8〜15とすると、容易に1次元下がったハイパーキューブ結合の並列計算機となる。 The PE running a PE0~7, When PE8~15 the PE is not running, it is easy one-dimensionally lowered hypercube coupled parallel computer. 今、PE8〜 Now, PE8~
15が休止であるので上記メモリアクセス路の例で述べたように、休止のPEのローカルメモリ44を、稼動するPEのメモリとして使用することが出来る。 Since 15 is in resting as described in the above example the memory access path, the local memory 44 of PE pause, can be used as a memory of PE running.

【0224】すなわちPE8のローカルメモリ44をP [0224] that is, the local memory 44 of PE8 P
E0が使用し、PE9のローカルメモリ44をPE1が使用する。 E0 is used, using the local memory 44 of PE9 PE1 is. 通信経路0−8,1−9,2−10,3−1 Communication path 0-8,1-9,2-10,3-1
1,4−12,5−13,6−14,7−15を使用しないので、メモリアクセス用バスとして上記通信経路を使用しても良い。 It does not use 1,4-12,5-13,6-14,7-15, as the memory access bus may also be used the communication path.

【0225】次に複数PEを1つのチップに配置する場合の配線について説明する。 [0225] Next will be described wiring When a plurality PE into one chip. 図17に2×2の4つのP Four P of 2 × 2 in FIG. 17
E47a,bを1つのチップ48に載せた場合の例を示す。 E47a, showing an example of a case loaded with b on one chip 48. PE47のモジュールをチップ48内に配置する場合、各PE間の通常の通信路の配線が場所を取る。 When placing the PE47 modules in the chip 48, the wiring of the normal communication paths between the PE takes place. そこで、アルミ等の配線層を複数化する近年のチップ製造技術を用い、休止PE47aをバイパスする経路を休止P Therefore, pause a path using a recent chip manufacturing technology of a plurality of wiring layers, such as aluminum, bypassing the rest PE47a P
E47aの上を通過するように配線する。 Wired so as to pass over the E47a. これにより、 As a result,
配線領域を縮小することが出来、余分な配線の引き回しによる遅延の増大を防ぐことが出来る。 Can reduce the wiring area can be prevented an increase in the delay due to routing of extra wiring.

【0226】同様に、休止PE47aのローカルメモリ44へのアクセス経路もPE47aの上を通過するように配線することにより、配線領域の縮小が行える。 [0226] Similarly, by wiring as access path to the local memory 44 of the rest PE47a also passes over the PE47a, allows the reduced wiring area.

【0227】第4の発明 図18は、第4の発明の並列計算機で用いられる演算プロセッサの実施例である。 [0227] A fourth invention Figure 18 is an embodiment of the arithmetic processor for use in a parallel computer according to the fourth invention.

【0228】ルータ部51と演算処理部52から構成される。 [0228] configured router 51 from the arithmetic processing unit 52. ルータ部51はフリットを蓄えるバッファ53x Buffer router 51 stores the frit 53x
〜53pと、フリットの出力先を決定するスイッチ54 Switch 54 for determining the ~53P, frit destination
から構成される。 It consists of.

【0229】Pin,Poutはルータ部51と演算処理部52とを接続する通信チャネルである。 [0229] Pin, Pout is a communication channel that connects the router 51 and the arithmetic processing unit 52. Xin,X Xin, X
out,Yin,Youtはそれぞれ隣接する演算プロセッサとの間の入力および出力のための通信チャネルである。 out, Yin, Yout is the communication channel for input and output between the arithmetic processor respectively adjacent. 上記の演算プロセッサを用いて、例えば図19に示すような並列計算機が構築される。 Using the above processors, for example, a parallel computer such as that shown in FIG. 19 is constructed. 各演算プロセッサ55は、互いに通信チャネル56で接続される。 The arithmetic processor 55 is connected by a communication channel 56 with each other.

【0230】図20は本実施例で通信されるメッセージのフォーマットの一例である。 [0230] Figure 20 is an example of the format of messages communicated in the present embodiment. 一つのメッセージは複数のフリットに分割される。 One message is divided into a plurality of frits. 先頭の二つのフリットは図2 The head of two of the frit Figure 2
0(a)のフォーマットをしており、図中addres 0 has the format of (a), addres in Fig.
sで表されるメッセージの宛先が書かれている。 Destination of the message represented by s is written. 左右方向の宛先が書かれたフリットに上下方向の宛先が書かれたフリットが続く。 Frit destination is written in the vertical direction in the horizontal direction the destination is written frit followed. 各方向の宛先は送信側プロセッサと受信側プロセッサとの間の相対距離で表される。 Each direction of the destination is represented by the relative distance between the receiver-side processor and the transmission-side processor.

【0231】3つめのフリットからメッセージの本体となる。 [0231] the body of the message from the third frit. そのフォーマットは、図20(b)および(c) Its format is FIG 20 (b) and (c)
に示すとおりである。 It is as shown in FIG. フリットは図中dataで表されるメッセージの格納されている部分と、図中右端のメッセージの継続あるいは終了を表す終了ビット(end End bit frit representing the stored and are part of the message represented by the figure data, the continuation or termination of the right end of the message in Figure (end
bit)からなる。 Consisting of bit). メッセージが継続する場合は図20 If the message is to continue Figure 20
(b)のフォーマットのようにent ent as the format of the (b) bitは0であり、メッセージが終了する場合は図3(c)のフォーマットのようにend bit is 0, end The as format of FIG. 3 (c) If the message is completed bitは1となる。 bit is 1.

【0232】図21は本実施例のルータ部51で行われるルーティング方法である。 [0232] Figure 21 is a routing method performed in the router 51 of the present embodiment. まず左右方向の宛先が一致するまで左右方向に隣接する演算プロセッサ間で通信を行う(ステップ100,101)。 First communicating between processors to the left and right directions destination are adjacent in the lateral direction until it matches (step 100, 101). 続いて上下方向の宛先が一致するまで上下方向に隣接する演算プロセッサ間で通信を行う(ステップ102,103)。 Subsequently vertical destination communicating between processors adjacent vertically until it matches (step 102, 103). 第4の発明はこのルーティング方法に限定されず、いかなるアルゴリズムにも適応可能である。 The fourth invention is not limited to this routing method is adaptable to any algorithm.

【0233】図22はスイッチ54の内部構成例である。 [0233] Figure 22 is an internal configuration of the switch 54. 図19における左右方向のスイッチ57と上下方向のスイッチ58とからなる。 Comprising a lateral direction of the switch 57 vertical switch 58. in Figure 19. 左右方向のスイッチ57と上下方向のスイッチ58は同じ構成で実現される。 A lateral direction of the switch 57 vertical switch 58 is implemented in the same configuration. それを図23に示す。 This is shown in Figure 23. 二つの出力先決定回路61と、二入力二出力のクロスバスイッチ62から構成される。 And two output destination determination circuit 61, and a two-input two output crossbar switch 62. クロスバスイッチ62には複数の方向から入力が与えられるので、これらが衝突する場合は調停が行われる。 Since the crossbar switch 62 is given an input from a plurality of directions, if they collide arbitration is performed.

【0234】図24は出力先決定回路61の構成例である。 [0234] FIG. 24 is a configuration example of an output destination determination circuit 61. 入力されたフリットのaddress部が宛先比較部63で比較される。 address portion of the input flit is compared with the destination comparator unit 63. 内部状態保存部64に記憶されている現在の状態stateで、先頭フリットか否かが判定される。 In the current state state stored in the internal state storage unit 64, or the top frit or not it is determined. X方向あるいはY方向における宛先が自演算プロセッサと同じメッセージであれば信号eqlを、そうでなければ信号neqを出力先決定部65に出力する。 The X direction or signal eql if the destination is the same message as its own arithmetic processor in the Y direction, and outputs a signal neq the destination decision block 65 otherwise. 出力先決定部65では、これらの制御信号とフリットのend The output destination determination section 65, end The of these control signals and the frit bit,そして内部状態stateから出力先制御信号を発生する。 bit, and it generates an output destination control signal from the internal state state.

【0235】ctl [0235] ctl inは自プロセッサ(スイッチ5 in the self-processor (switch 5
8の場合)あるいは次のスイッチ58(スイッチ57の場合)を、ctl In the case of 8) or the next switch 58 (in the case of switch 57), ctl outは隣接するプロセッサを出力先に選択するための制御信号である。 out is the control signal for selecting the output destination of adjacent processors. ctl ctl in、c in, c
tl tl outはいずれもクロスバスイッチ62に入力される。 out none is input to the crossbar switch 62.

【0236】出力先決定部65は次状態を決定し、内部状態保存部64に記憶する。 [0236] The output destination determining unit 65 determines the next state and stores the internal state storage unit 64. さらに出力先決定部65はデクリメンタ66への制御信号ctl Further, the output destination determination section 65 and the control signal ctl to decrementer 66 remove、 remove,
ctl ctl decも発生する。 dec also occur. ctl ctl removeはメッセージから先頭のフリットを取り除くための制御信号で、ctl remove the control signal to remove the top of the frit from the message, ctl decはaddressを1減ずるための信号である。 dec is a signal for reducing 1 address.

【0237】デクリメンタ66はこれらの制御信号にしたがって、宛先が自演算プロセッサと同じ場合は先頭のフリットを取り除き、そうでないときは先頭のフリットに書かれたaddressを1減ずる。 [0237] decrementer 66 in accordance with these control signals, the destination is the same as its own arithmetic processor removes the head of the frit reduce 1 address written at the beginning of the frit otherwise. 先頭フリットでない場合は、何も操作は行わないでフリットを通過させる。 If not the first frit, nothing operation passes the frit not perform. デクリメンタ66はまた、リクエスト信号reqを発生する。 Decrementer 66 also generates a request signal req.

【0238】図25は内部状態保存部64の状態遷移の様子を表している。 [0238] Figure 25 represents a state of the state transition of the internal state storage unit 64. 初期状態S0にいる時にフリットを受け取った場合には、このフリットは先頭であるので、 If you receive a frit when you are in the initial state S0, since the frit is a top
addressにしたがってS1あるいはS2に遷移する。 A transition to S1 or S2 in accordance with address. addressが自演算プロセッサと同じ場合にはS1に遷移する。 address transitions to S1 if it is the same as its own processors. メッセージが続いている場合にはS1 If the message is followed by the S1
あるいはS2の状態を継続し、end Or continues the state of S2, end The bitによりメッセージの終了を検出すると初期状態S0に戻る。 Back to the initial state S0 when it detects the end of the message by bit.

【0239】第4の発明を用いた場合に、従来の問題が解決することを図26を用いて説明する。 [0239] When using the fourth invention, the conventional problems described with reference to FIG. 26 to solve. 図26において、55a〜55eは演算プロセッサであり、それぞれバッファ53x,53y,53p、スイッチ54および演算処理部52から構成される。 In Figure 26, 55a-55e is an arithmetic processor, respectively buffer 53x, 53y, 53p, a switch 54 and the arithmetic processing unit 52.

【0240】出力先の演算プロセッサ55bのバッファが一杯で通信が停止しているフリット67が演算プロセッサ55aのバッファ53xに蓄えられているとする。 [0240] the buffer output destination of the operational processor 55b is to communicate with full frit 67 is stopped is stored in the buffer 53x arithmetic processors 55a.
このとき演算プロセッサ55cから別のメッセージのフリット68が入力されるとする。 In this case the frit 68 of another message from the arithmetic processor 55c is input.

【0241】このメッセージの出力先が演算プロセッサ55eとすると、演算プロセッサ55eのバッファに空きがあれば、フリット68は出力されるべきである。 [0241] When the output destination of the message is an arithmetic processor 55e, if there is a space in the buffer of the arithmetic processor 55e, the frit 68 is to be outputted. フリット68はバッファ53yに入力されるので、バッファ53xには関係なく演算プロセッサ55eに出力することができる。 Frit 68 since the input to the buffer 53y, the buffer 53x can be output to regardless arithmetic processor 55e.

【0242】すなわち、出力先の通信チャネルが空いてさえいれば、通信の停止している他のメッセージに妨害されることなく、出力可能である。 [0242] That is, as long empty output destination of communication channels, without interference to other messages is stopped communication can output. したがって、並列計算機全体としての通信時間が短縮し、スループットも向上する。 Therefore, to shorten the communication time of the entire parallel computer, throughput is also improved.

【0243】従来例の場合では、先にバッファに蓄えられているフリットの通信が停止してしまうと、それ以降にバッファに蓄えられたフリットは、たとえ出力先のチャネルが空いていても出力されなかった。 [0243] In the conventional example, the communication of the frit stored in the buffer above will be stopped, frit stored in the buffer since it is output even if vacant if the destination of the channel There was no. しかし第4の発明では、受信されたフリットは、先に出力先を決定しバッファに蓄えられる。 However, in the fourth invention, the received flit is stored in the buffer to determine the destination earlier. したがって、ブロックされている通信チャネルのメッセージだけが通信を停止し、他のメッセージは通信を妨害されることはない。 Therefore, only the message of the communication channels that are blocked to stop communication, other messages will not be interfering with communication.

【0244】本実施例では二次元のネットワークの場合を説明したが、ルータ部51にスイッチ57を増設するだけで高次元のネットワークに拡張可能である。 [0244] In this embodiment explained the case of the two-dimensional network, but can be extended to higher dimensional network simply by adding a switch 57 to the router 51. たとえば三次元の場合は図27のようにスイッチ39を増設すればよい。 For example, in the case of three-dimensional can be added to the switch 39 as shown in FIG. 27. また通信ネットワークは、本実施例のようなトーラス構造に限らず、ハイパーキューブ構造など、他のいかなる構造にも適応可能である。 The communications network is not limited to a torus structure of this embodiment, such as hypercube structure, it is also applicable to any other structure.

【0245】さらに第4の発明は、ワームホール・ルーティングに限らず、ストア・アンド・フォワード・ルーティングなど、他のいかなる通信方式にも適応可能である。 [0245] Furthermore fourth invention is not limited to wormhole routing, store-and-forward routing, etc., it is also applicable to any other communication systems.

【0246】第5の発明 図28は第5の発明の並列計算機で用いられるプロセッサの構成図である。 [0246] The fifth invention Figure 28 is a block diagram of a processor used in the parallel computer of the fifth invention. Xin、Xoutはそれぞれ隣接するプロセッサとの間の入力および出力チャネルである。 Xin, Xout is the input and output channels between the processor respectively adjacent.
Pin、Poutはルータ部71と演算処理部72を接続する通信チャネルである。 Pin, Pout is a communication channel that connects the router 71 and the arithmetic processing unit 72. ルータ部71はXin、P Router section 71 Xin, P
inから受信したメッセージの転送先を決定し、Xou To determine the destination of the message received from the in, Xou
tあるいはPoutに出力するものである。 And outputs it to the t or Pout. バイパススイッチ73は、第5の発明のために追加された構成であり、Xinからの入力をルータ部71をバイパスして、 Bypass switch 73 is an additional configurations for the fifth invention, by bypassing the router 71 input from Xin,
直接Xoutに出力するブロックである。 A block for outputting directly to Xout.

【0247】図29は、図28のプロセッサで構成される並列計算機である。 [0247] Figure 29 is a parallel computer comprised of a processor in FIG. 28. 各プロセッサ74a〜74eが通信チャネル75によって接続されている。 Each processor 74a~74e are connected by a communication channel 75. 図示していないが、リクエスト信号とアクノリッジ信号も接続されている。 Although not shown, it is also connected request signal and the acknowledge signal.

【0248】本実施例で通信されるメッセージのフォーマットは、図20で示したものと同様である。 [0248] The format of the messages communicated in this embodiment is the same as that shown in FIG. 20.

【0249】図30はルータ部71の内部構成例である。 [0249] Figure 30 is an internal configuration of the router 71. プロセッサはXin方向のプロセッサからリクエスト信号を受けると、ラッチ76にフリットを受け取る。 When the processor receives a request signal from Xin direction of the processor, receiving a frit latch 76.
このフリットがメッセージの先頭であれば、転送先決定ブロック77で自プロセッサに取り込むか、バイパスするか、あるいは隣接するプロセッサに転送するかを決定する。 If the top of the frit message, or incorporated into its own processor on the destination decision block 77, bypass, or to determine whether to forward to the adjacent processor. 転送先決定ブロック77は同時に出力先へのリクエスト信号を生成する。 Destination decision block 77 produces a request signal to the destination at the same time. クロスバスイッチ78にはメッセージとリクエスト信号、そして転送先決定ブロック7 Message and the request signal to the crossbar switch 78 and the destination decision block 7,
7からメッセージの出力先を示す信号が与えられる。 7 signal is provided indicating the destination of the message from. この信号は2方向から与えられるので、これらが衝突した場合には調停を行って、メッセージとリクエスト信号を出力先へスイッチする。 This signal is given from two directions, if they collide performing arbitration, to switch the message and the request signal to the destination. その結果、フリットはバッファ79に入れられる。 As a result, the frit is placed in the buffer 79. 同時に転送先決定ブロック77の発したリクエスト信号は出力先のプロセッサに与えられる。 At the same time the request signal emitted in the destination decision block 77 is provided to the destination processor.

【0250】図31は転送先決定ブロック77を構成するブロック図である。 [0250] Figure 31 is a block diagram constituting the transfer destination decision block 77. 入力されたフリットが、メッセージの先頭である場合は宛先比較ブロック81で宛先を比較する。 Input frit, if the head of the message compares the destination in the destination comparison block 81. 先頭フリットであるか否かは、状態記憶ブロック82に記憶されている現在の状態stateで判定される。 Whether it is the top frit it is determined by the current state state stored in the state storage block 82. 宛先はプロセッサ間の相対距離で表されるので、 Since the destination is represented by the relative distance between processors,
宛先が0ならば自プロセッサ宛、0以外ならば他のプロセッサ宛である。 Destination 0, addressed to itself processor, which is another addressed processors if nonzero.

【0251】自プロセッサ宛ならば信号eqlを、他のプロセッサ宛ならば信号neqを、出力先決定ブロック83に出力する。 [0251] The signal eql if addressed to the own processor, a signal neq if addressed to another processor, to the output destination determination block 83. 出力先決定ブロック83はこれらの制御信号と内部ステートにしたがって出力先制御信号を発生する。 Destination decision block 83 generates an output destination control signals in accordance with these control signals and internal state.

【0252】ctl [0252] ctl bypassはバイパスするための制御信号で、ctl bypass the control signal for bypassing, ctl out1、ctl out1, ctl out2はそれぞれ、バイパスしない場合の出力先としてXou Each out2, Xou as an output destination when not bypassed
t、Poutを選択するための制御信号である。 t, which is a control signal for selecting the Pout.

【0253】ctl [0253] ctl bypassは第5の発明において特徴となる制御信号であり、バイパススイッチ73に入力されて、バイパス動作を行う。 bypass is a control signal which characterizes Aspect 5, is input to the bypass switch 73, performs the bypass operation. ctl ctl out1、 out1,
ctl ctl out2はいずれもクロスバスイッチ78に入力されて、出力先を要求する。 out2 are both entered in the crossbar switch 78, and requests the destination. また出力先決定ブロック83は次の状態next In addition, the output destination determination block 83 is the next state next stateを決定し、状態記憶ブロック82に記憶する。 It determines the state, stored in the state storage block 82. さらに出力先決定ブロック83はデクリメンタ124に対する制御信号ctl Further, the output destination determination block 83 is the control signal ctl for decrementer 124 r
emove、ctl emove, ctl decも発生する。 dec also occur.

【0254】crl [0254] crl removeは、デクリメンタ8 remove the decrementer 8
4に入力される宛先を取り除くための制御信号で、ct The control signal for removing the destination that is input to 4, ct
l decは宛先を1減ずるため制御信号である。 dec is a control signal for reducing 1 destination. デクリメンタ84はこれらの制御信号にしたがって、宛先が自プロセッサであるときには宛先を取り除き、そうでないときには宛先を1減ずる。 Decrementer 84 in accordance with these control signals, the destination is removed destination when it is its own processor, it will reduce 1 destination otherwise. 先頭フリットでない場合は、何もしないでフリットを通過させる。 If not the first frit is passed through a frit without anything. デクリメンタ84はまたリクエスト信号reqを発生する。 Decrementer 84 also generates a request signal req.

【0255】図32は状態記憶ブロック82の状態遷移を表す図である。 [0255] Figure 32 is a diagram illustrating a state transition of the state storage block 82. 初期状態S0のときにフリットを受け取ると、このフリットはメッセージの先頭であるので、 Upon receipt of the frit in an initial state S0, since the frit is at the beginning of the message,
宛先にしたがってS1、S2あるいはS3に状態を遷移する。 Transition state in S1, S2 or S3 according to the destination. 例えば、メッセージをバイパスする場合はS1 For example, to bypass the message S1 is
に、Xoutに出力する場合はS2に、Poutに出力する場合はS3に遷移する。 To, to S2 if the output to Xout, when outputting the Pout shifts to S3.

【0256】メッセージが続いている間はS1〜S3の状態に留まり、end [0256] While the message is followed by stays in the state of S1~S3, end bitによりメッセージの終了を検出すると初期状態S0に戻る。 Back to the initial state S0 when it detects the end of the message by bit. S1からS0に状態が遷移するとバイパスは解除される。 When the state transitions from S1 to the S0 bypass is released. すなわちバイパスしている状態でも、メッセージはルータ部71に取り込まれている。 That even in the state that the bypass, the message is taken into the router 71. ただし、取り込まれるメッセージは終了を検出する目的だけに用いられ、中継されたりはしない。 However, message is captured is used only for the purpose of detecting the end, do not or relayed.

【0257】第5の発明のバイパス動作を以下に説明する。 [0257] illustrating the bypass operation of the fifth invention will be described below. 図33は図28で示したプロセッサを用いて構成した並列計算機である。 Figure 33 is a parallel computer configured by using the processor shown in FIG. 28. 85aから85eはメッセージを通信するためのチャネル(図中、data)、86aから86eはリクエスト信号、87aから87eはアクノリッジ信号である。 85e channels for communicating messages from 85a (in the figure, data), 87e from 86e may request signal, from 87a 86a is a acknowledge signal. 本実施例ではメッセージは単方向に通信されるが、双方向通信の場合も本質的な違いはない。 Messages in this embodiment are communicated unidirectionally, essential difference is not the case of two-way communication. 各プロセッサは図33(a)に示すように隣接するプロセッサ74とチャネルおよび信号で接続される。 Each processor is connected with the processor 74 and the channel and adjacent signals as shown in FIG. 33 (a).

【0258】本実施例で、プロセッサ74aからプロセッサ74eに中継プロセッサを全てバイパスしてメッセージを送信する場合を説明する。 [0258] In this embodiment, the case where all the relay processor from the processor 74a to the processor 74e bypass to send a message. プロセッサ74aはプロセッサ74bへリクエスト信号86aを発し、宛先を持ったフリットを74bに送信する。 The processor 74a issues a request signal 86a to the processor 74b, and transmits the flit having a destination 74b. プロセッサ74b Processor 74b
はリクエスト信号を受け取るとフリットを受信し、フリットに書かれている宛先を読みだす。 Receives the frit receives a request signal, reads the destination written in the frit.

【0259】プロセッサ74bは宛先ではないので、次の転送先プロセッサ74cを選択する。 [0259] Since the processor 74b is not the destination, to select the next transfer destination processor 74c. 同時にプロセッサ74bは通信チャネル85aと85b、リクエスト信号86aと86b、およびアクノリッジ信号87aと8 At the same time the processor 74b communications channels 85a and 85b, the request signal 86a and 86b, and an acknowledge signal 87a and 8
7bをバイパスする。 7b to bypass. リクエスト信号86aと86bがバイパスされることにより、プロセッサ74cにリクエスト信号が要求されることになる。 By request signal 86a and 86b are bypassed, so that the request signal to the processor 74c is required.

【0260】同様な操作がプロセッサ74c及びプロセッサ74dで実行され、図33(b)のように経路が確定される。 [0260] Similar operations are performed in the processor 74c and processor 74d, the path is established as shown in FIG. 33 (b). プロセッサ74eはリクエスト信号を受けると、フリットを受信して宛先を読む。 When the processor 74e receives the request signal, reading the destination receives the frit. プロセッサ74e Processor 74e
は受信側プロセッサであるので、プロセッサ74dに対してアクノリッジ信号を返す。 Since is a receiving-side processor, and returns an acknowledge signal to the processor 74d. このときプロセッサ74 At this time, the processor 74
bからプロセッサ74dの内部でアクノリッジ信号87 Acknowledge signal 87 from the b inside the processor 74d
aから87dはバイパスされているので、図33(c) Since 87d is bypassed from a, FIG. 33 (c)
のようにアクノリッジ信号は直ちにプロセッサ74aに到達する。 Acknowledge signals as immediately reaches the processor 74a.

【0261】こうしてプロセッサ74aとプロセッサ7 [0261] Thus, processor 74a and the processor 7
4eとの間のハンドシェイクが完成し、メッセージを転送する経路が確立される。 Handshake is completed between 4e, route for transferring messages is established. 以後は図33(d)のようにプロセッサ74aとプロセッサ74eの間で2つめ以降のフリットの通信が行われる。 Thereafter Communication second subsequent frit between the processor 74a and the processor 74e is performed as in FIG. 33 (d). この間プロセッサ74b During this time processor 74b
〜74dは、終了検出を行うためにバイパスしているフリットを監視しつづける。 ~74d continues to monitor the frit are bypassed to the termination detection. そしてメッセージの終了を検出すると初期状態に戻る。 And returns to the initial state when it detects the end of the message.

【0262】この方法を用いた場合に転送に必要な時間は、経路を確立するためのリクエスト信号の伝達にD、 [0262] The time required for the transfer in the case of using this method, D in the transmission of the request signal for establishing a path,
アクノリッジ信号の伝達に1、経路確立後のメッセージの送信に2×(L−1)必要で、全体で(D+2×L− 1 the transmission of the acknowledge signal, 2 × to send messages after path establishment (L-1) required in total (D + 2 × L-
1)となる。 1) it becomes. このようにプロセッサ間の通信時間が短縮される。 The communication time between the processor is reduced to. D=4、L=4の場合のタイミング図を図34 FIG timing diagram in the case of D = 4, L = 4 34
に示す。 To show.

【0263】以上はプロセッサ間でのメッセージの通信をハンドシェイクで行った場合であるが、さらに通信を高速にするために、図33(b),(c)の処理によって経路を確立せさたのち、図33(e)のようにプロセッサ74aとプロセッサ74eをクロック同期させて通信を行う方法が考えられる。 [0263] The foregoing is a case of performing communication of messages between processors in a handshake, to further communicate at high speed, FIG. 33 (b), was of not establishing a route by treatment (c) later, a method of performing communication processor 74a and the processor 74e to clock synchronization as shown in FIG. 33 (e) are considered. この場合、メッセージの送信に必要な時間は(L−1)となって、全体では(D+ In this case, the time required for the transmission of messages becomes (L-1), the entire (D +
L)となる。 L) to become. これは従来のワームホール・ルーティングのほぼ1/2の時間で、プロセッサ間の通信にかかる時間は大いに短縮される。 This is almost half the time of conventional wormhole routing, time required for communication between the processors is greatly shortened. D=4、L=4の場合のタイミング図を図35に示す。 The timing diagram in the case of D = 4, L = 4 is shown in Figure 35.

【0264】同期通信の場合は、プロセッサ間の距離が非常に大きいと、1クロックではフリットが到達できない可能性がある。 [0264] For synchronous communication, the distance between processors is very large, there may not be reached frit in one clock. このような場合を考慮して、通信を行っているプロセッサの間に存在するプロセッサの一部でメッセージを中継することを考える。 In such a case into consideration, considering that relay messages part of the processor existing between it is communicating processor. すなわち、上述した実施例では、自プロセッサ宛でないメッセージは全てバイパスしていたが、転送先への距離に応じてバイパスと中継を分けるように、宛先比較ブロック81および出力先決定クロック83を変更する。 That is, in the embodiment described above, the message is not addressed to its own processor but had all bypassed, to divide the relayed bypass depending on the distance to the destination, to change the destination comparator block 81 and an output destination determination clock 83 .

【0265】本実施例を用いて、例えば1クロックで到達可能な距離を8とした場合を考える。 [0265] Using the present example, consider the case of a 8 reachable distance example 1 clock. 先頭のフリットに書かれているデータは、受信側プロセッサまでの相対距離であるので、この宛先が8の倍数であるときには中継し、そうでないときにはバイパスするように、宛先比較ブロック81と出力先決定ブロック83を変更する。 Data written to the beginning of the frit, since it is the relative distance to the receiver-side processor, this destination is relayed when a multiple of 8, so as to bypass the otherwise, the destination determined to destination comparator block 81 to change the block 83.

【0266】こうして1クロックで到達できる距離毎に中継プロセッサが選択される。 [0266] Thus the relay processor for each of the range that can be reached in one clock is selected. このような変更で、非常に規模の大きなネットワークでも、従来例よりも高速にプロセッサ間通信を行うことができる。 In such changes, even very large-scale networks, it is possible to perform inter-processor communication at higher speed than the conventional example.

【0267】なお、本実施例では一次元の場合を説明したが、第5の発明は一次元に限らず、容易に多次元に拡張可能である。 [0267] Incidentally, a case has been described a one-dimensional in the present embodiment, the fifth invention is not limited to one-dimensional, it can be readily extended to multidimensional. 図36は二次元の場合のプロセッサ構成図である。 Figure 36 is a processor configuration diagram of the two-dimensional case. Xin、Yin、Pinからの入力を、Xo Xin, Yin, the input from the Pin, Xo
ut、Yout、Poutに出力する。 Output ut, Yout, to Pout. バイパススイッチ88はバイパススイッチ73に比べてバイパスする信号が一つ増えたブロックである。 Bypass switch 88 is a block signal is increased one to bypass as compared to the bypass switch 73.

【0268】このように次元を拡張するには、次元数N [0268] To extend this way the dimension, the number of dimensions N
分だけルータ部71とバイパススイッチ73を用意する。 Minute only to prepare the router part 71 and the bypass switch 73. これで各次元でバイパスが可能になるが、異なる次元間でもバイパス可能にするためには、バイパススイッチ88のように他の次元からのバイパスも選択できるように、スイッチの入力を増やす。 Although it is possible to bypass in each dimension in which, in order to also enable bypass between different dimensions, so as also can be selected bypassed from the other dimension of the bypass switches 88, increase the input of the switch.

【0269】 [0269]

【発明の効果】以上のように、第1の発明の並列計算機は、並列度がプロセッサの数よりも大きい場合は通常のSIMD型並列計算機と同様に実行することができ、並列度がプロセッサの数よりも少ない場合には、複数命令の並列実行を行なうことにより、実行時間の短縮とプロセッサの有効利用を図ることができる。 As described above, according to the present invention, the parallel computer of the first invention, if the degree of parallelism is greater than the number of processors can be executed in the same manner as conventional SIMD type parallel computer, the parallel degree of the processor If less than the number, by performing parallel execution of instructions, it is possible to effectively utilize the shortening and processor execution time. また、通常のS In addition, the normal S
IMD型並列計算機とオブジェクト互換をもつようにすることが可能である。 It can be to have the object compatible IMD parallel computers.

【0270】また、第2の発明の並列計算機によれば、 [0270] Further, according to the parallel computer of the second aspect of the invention,
SIMD型並列計算機にわずかなハードウェアを付加するだけで、MIMD処理が可能になり、より柔軟性の高い処理が可能になる。 Only by adding a slight hardware SIMD type parallel computer enables MIMD processing, allowing more flexible process.

【0271】第3の発明の並列計算機によれば、処理する問題サイズに応じて使用しないPEをバイパスする事により、結合形態を維持したまま、問題サイズに最適な構成を取ることが出来る。 [0271] According to a parallel computer of the third aspect of the present invention, by bypassing the PE is not used in accordance with the problem size to be processed, while maintaining the bound form, it can take an optimal arrangement in problem size. 使用しないPEのメモリを、 The memory of PE is not used,
使用するPEがアクセスできるようにすることにより、 By PE used to access,
各PEのメモリ容量を増やすことが出来る。 It is possible to increase the memory capacity of each PE.

【0272】さらに、同一チップ内において、バイパス経路、メモリアクセス経路をPEの上を通過するように配線することにより、配線領域の縮小、遅延増大の防止を行うことが出来る。 [0272] Further, in the same chip, the bypass path, by wiring the memory access path to pass over the PE, the reduction of wiring area can be carried out to prevent delays increase.

【0273】第4の発明の並列計算機によれば、フリットは出力先毎に出力側のバッファに蓄えられるので、通信可能なメッセージは、通信が停止している他のメッセージによって妨害されることはない。 [0273] According to the parallel computer of the fourth invention, since the frit is stored in a buffer on the output side for each destination, can communicate messages, the communication is disturbed by other messages are stopped Absent. その結果、通信時間が短縮され、スループットが向上する。 As a result, it reduces the communication time, the throughput is improved.

【0274】さらに、第5の発明の並列計算機によれば、中継プロセッサをバイパスすることにより、通信に必要な時間を大いに短縮することができる。 [0274] Further, according to a parallel computer according to the fifth invention, by bypassing the relay processor, it is possible to greatly reduce the time required for communication. このため、 For this reason,
特にネットワークの規模が非常に大きくプロセッサ間の距離が大きな場合に有効である。 In particular the distance between the scale is very large processor network is effective when a large.

【図面の簡単な説明】 BRIEF DESCRIPTION OF THE DRAWINGS

【図1】第1の発明における並列計算機の一実施例の構成図。 Figure 1 is a configuration diagram of an embodiment of a parallel computer in the first aspect of the present invention.

【図2】第1の発明における実施例で用いた処理の一例。 [Figure 2] An example of a process used in the examples in the first invention.

【図3】並列度が大きい場合の図2の処理を行なうために供給される命令列。 [3] the instruction string supplied to perform the process in FIG. 2 when parallelism is large.

【図4】並列度が小さい場合の図2の処理を行なうために供給される命令列。 [4] instruction string supplied to perform the process of Figure 2 when parallelism is small.

【図5】第1の発明の図1と異なる実施例の構成図。 Figure 5 is a configuration diagram of FIG. 1 with a different embodiment of the first invention.

【図6】第2の発明の並列計算機に係わる一実施例の構成を示すブロック図。 FIG. 6 is a block diagram showing a configuration of one embodiment according to the parallel computer of the second aspect of the invention.

【図7】第2の発明の中心となる演算プロセッサの構成例を示す図。 7 is a diagram showing a configuration example of a center to become operational processor of the second aspect of the invention.

【図8】図7で示したローカルメモリ中に作成されるアドレステーブルのメモリマップ図。 [8] Memory map diagram of an address table that is created in the local memory shown in FIG.

【図9】図7と異なる演算プロセッサの構成例を示す図。 9 is a diagram showing a configuration example of a different processors and FIG.

【図10】第3の発明における1次元リング結合並列計算機のバイパスに関する一例の構成図。 [10] An exemplary configuration of a related-pass one-dimensional ring coupled parallel computer according to the third aspect of the present invention.

【図11】第3の発明においてバイパス回路として用いた双方向バスの詳解図。 [11] detailed explanation diagram of a bidirectional bus used as a bypass circuit in the third invention.

【図12】第3の発明においてバイパス回路として用いたハンドシェイク用信号線の詳解図。 [12] detailed explanation view of a handshake signal line used as a bypass circuit in the third invention.

【図13】第3の発明における2次元トーラス結合並列計算機のバイパスに関する一例の構成図。 [13] An exemplary configuration of a related-pass 2D Torus parallel computer according to the third aspect of the present invention.

【図14】第3の発明における1次元リング結合並列計算機のメモリアクセスに関する一例の構成図。 [14] An example block diagram of a memory access of a one-dimensional ring coupled parallel computer according to the third aspect of the present invention.

【図15】第3の発明における2次元トーラス結合並列計算機のバイパス及びメモリアクセスに関する一例の構成図。 [15] An exemplary configuration of a related bypass and memory access of the two-dimensional torus coupled parallel computer according to the third aspect of the present invention.

【図16】第3の発明におけるハイパーキューブ結合並列計算機のメモリアクセスに関する一例の構成図。 [16] An example block diagram of a memory access hypercube coupling a parallel computer according to the third aspect of the present invention.

【図17】第3の発明におけるバイパス経路及びアクセス経路のチップ上での配線例。 [17] example of wiring on the chip of the bypass path and access path of the third invention.

【図18】第4の発明における演算プロセッサの一実施例を表す構成図。 Figure 18 is a configuration diagram showing an example of the arithmetic processor in the fourth aspect of the present invention.

【図19】図18で示した演算プロセッサで構成される並列計算機の構成図。 Figure 19 is a configuration diagram of a parallel computer comprised of processors shown in FIG. 18.

【図20】第4の発明において通信されるメッセージのフォーマット例。 [20] example of the format of messages communicated in the fourth invention.

【図21】第4の発明におけるルーティング方法を表すフローチャート。 Figure 21 is a flow chart of a routing method in the fourth aspect of the present invention.

【図22】図18で示したスイッチの内部構成図。 [22] internal structure of the switch shown in FIG. 18.

【図23】図22で示した一方向のスイッチの内部構成図。 [Figure 23] internal structure of the one-way switch shown in FIG. 22.

【図24】図23で示した出力先決定回路の内部構成図。 [Figure 24] internal configuration diagram of an output destination determination circuit shown in FIG. 23.

【図25】図23で示した出力先決定回路の状態遷移図。 [Figure 25] state transition diagram of an output destination determination circuit shown in FIG. 23.

【図26】図18で示した演算プロセッサを用いた通信方法を表す図。 Figure 26 is a diagram representing a communication method using the arithmetic processor shown in FIG. 18.

【図27】第4の発明における3次元ネットワークの場合の一実施例を示す構成図。 Figure 27 is a configuration diagram showing an embodiment of the three-dimensional case the network in the fourth invention.

【図28】第5の発明におけるプロセッサの一実施例の構成を示す構成図。 Figure 28 is a configuration diagram showing the structure of an embodiment of a processor in the fifth invention.

【図29】図28で示したプロセッサを用いた並列計算機の構成図。 Figure 29 is a configuration diagram of a parallel computer using a processor shown in FIG. 28.

【図30】図28で示したルータ部の一例を示す図。 Figure 30 is a view showing an example of a router unit shown in FIG. 28.

【図31】図30で示した転送先決定ブロックの構成図。 Figure 31 is a configuration diagram of a transfer destination determination block shown in FIG. 30.

【図32】図30で示した転送先決定ブロックの状態遷移図。 [Figure 32] state transition diagram of a transfer destination determination block shown in FIG. 30.

【図33】第5の発明におけるバイパス動作を表す図。 Figure 33 is a diagram representing a bypass operation in the fifth invention.

【図34】第5の発明におけるバイパス動作時の転送時間を表すタイミング図。 Figure 34 is a timing diagram illustrating the transfer time during the bypass operation in the fifth invention.

【図35】第5の発明におけるクロック同期による転送時間を表すタイミング図。 Figure 35 is a timing diagram illustrating the transfer time by the clock synchronization in the fifth invention.

【図36】第5の発明における2次元の場合のプロセッサ構成図。 [Figure 36] processor configuration diagram of the two-dimensional case in the invention of the fifth.

【図37】第2の発明に対する従来の演算プロセッサの構成を示す図。 Figure 37 is a view showing a structure of a conventional arithmetic processor to the second invention.

【図38】第4の発明に対する従来の演算プロセッサの構成図。 Figure 38 is a configuration diagram of a conventional arithmetic processor for the fourth aspect of the present invention.

【図39】図38で示した演算プロセッサを用いた従来の通信方法を表す図。 Figure 39 is a diagram representing a conventional communications method using the arithmetic processor shown in FIG. 38.

【図40】第5の発明に対する従来のプロセッサ構成図。 [Figure 40] conventional processor configuration diagram for the invention of the fifth.

【図41】第5の発明に対する従来のバイパス動作時の転送時間を表すタイミング図。 Figure 41 is a timing diagram illustrating the transfer time when the conventional bypass operation to the fifth invention.

【図42】第5の発明に対する従来のクロック同期による転送時間を表すタイミング図。 Figure 42 is a timing diagram illustrating the transfer time prior by the clock synchronization to the fifth aspect of the present invention.

【符号の説明】 DESCRIPTION OF SYMBOLS

1 プロセッサ 2 プロセッサアレイ制御装置 3 セレクタ OUT0,1 出力端子 11 制御プロセッサ 12 演算プロセッサ 13 全体メモリ 14 ローカルメモリ 15 グローバルバス 16 ネットワーク 17 同期バス 18 フロントエンド計算機 21 メモリアドレスバス 22 メモリデータバス 23 マルチプレクサ 24 命令レジスタ 25 プログラムカウンタ 26 アドレスレジスタ 27 データレジスタ 28 内部バス 29 ALU 30 レジスタファイル 31 状態制御レジスタ 32 プロセッサ番号レジスタ 33 通信制御部 41 双方向バッファ 42 識別回路 43 セレクタ 44 ローカルメモリ 45 切り換えスイッチ 46 バスパス回路 47 PE(演算要素) 48 チップ 51 実施例のルータ部 52 演算処理部 53x,53y, 1 processor 2 processor array controller 3 selector OUT0,1 output terminal 11 the control processor 12 processors 13 across the memory 14 local memory 15 global bus 16 network 17 synchronous bus 18 the front end computer 21 memory address bus 22 the memory data bus 23 the multiplexer 24 instructions register 25 the program counter 26 the address register 27 the data register 28 internal bus 29 ALU 30 register file 31 state control register 32 processor number register 33 communication control unit 41 bidirectional buffer 42 identify circuit 43 selector 44 local memory 45 changeover switch 46 bus pass circuit 47 PE (computing element) 48 chip 51 embodiment of router 52 operation processing unit 53x, 53y, 53p バッファ 54 スイッチ 55a〜55e 演算プロセッサ 56 通信チャネル 57,58,69 一方向のスイッチ 61 出力先決定回路 62 クロスバスイッチ 63 出力先選択部 64 内部状態保存部 65 出力先決定部 66 デクリメンタ 71 ルータ部 72 演算処理部 73,88 バイパススイッチ 74a〜74e プロセッサ 75,85a〜85e 通信チャネル 76 ラッチ 77 転送先決定ブロック 78 クロスバスイッチ 79 バッファ 81 宛先比較ブロック 82 状態記憶ブロック 83 出力先決定ブロック 84 デクリメンタ 86a〜86e リクエスト信号 87a〜87e アクノリッジ信号 53p buffer 54 switches 55a~55e arithmetic processor 56 communication channels 57,58,69 unidirectional switch 61 output destination determining circuit 62 crossbar switch 63 output destination selecting section 64 internal status storage unit 65 destination decision block 66 decrementer 71 router 72 processing unit 73 and 88 bypass switch 74a~74e processor 75,85a~85e communication channel 76 the latch 77 the destination decision block 78 crossbar switch 79 buffers 81 destination comparator block 82 state storage block 83 the output destination decision block 84 decrementer 86a~86e request signal 87a~87e acknowledge signal

───────────────────────────────────────────────────── フロントページの続き (72)発明者 高橋 真史 神奈川県川崎市幸区小向東芝町1 株式会 社東芝総合研究所内 ────────────────────────────────────────────────── ─── of the front page continued (72) inventor Takahashi, Masashi Kawasaki-shi, Kanagawa-ku, Saiwai Komukaitoshiba-cho 1 stock company Toshiba Research Institute in

Claims (5)

    【特許請求の範囲】 [The claims]
  1. 【請求項1】 複数個のプロセッサからなるプロセッサアレイと、 このプロセッサアレイを制御すると共に、並列実行可能な複数種類の命令列を前記プロセッサアレイに供給するプロセッサアレイ制御手段とを備え、 前記プロセッサアレイ制御手段から供給される複数種類の命令列の中の1種類ずつを各プロセッサが受け取り、 A processor array of claim 1 A plurality of processors, controls the processor array, and a processor array control unit supplies the instruction sequence of a plurality of types that can be executed in parallel to the processor array, wherein the processor array one by one among a plurality of types of instruction sequences supplied from the control unit receives the respective processor,
    前記複数種類の命令列を前記複数個のプロセッサで並列実行することを特徴とする並列計算機。 Parallel computer, wherein the parallel execution of the plurality of types of instruction sequences in the plurality of processors.
  2. 【請求項2】 単一の制御プロセッサと、 該制御プロセッサからアクセス可能な第1のメモリと、 制御プロセッサから転送される命令情報にしたがって、 2. A single control processor, a first memory accessible from the control processor, according to the instruction information transmitted from the control processor,
    処理を行う複数個の演算プロセッサと、 該演算プロセッサからアクセス可能な第2のメモリとから構成され、 さらに前記演算プロセッサには、 演算プロセッサでの実行を制御する命令情報の格納手段と、 該格納手段に、前記制御プロセッサからの命令情報を入力するか、第2のメモリに格納されている命令情報を格納するかを選択する手段と、 前記格納手段に格納されている命令情報にしたがって演算を実行する手段とを備えることを特徴とする並列計算機。 A plurality of processors for performing processing, is composed of a second memory accessible by the processors, and more the processors, and storage means of the instruction information for controlling the execution of the arithmetic processor, said storage the means, enter the command information from the control processor, and means for selecting whether to store command information stored in the second memory, the operation according to the instruction information stored in said storage means parallel computer, characterized in that it comprises means for performing.
  3. 【請求項3】 個々の通信経路で接続されている複数の演算要素と、 解く問題のサイズに応じて演算に使用する演算要素と使用しない演算要素とを識別する識別手段と、 この識別手段によって識別された、演算に使用しない演算要素をバイパスするバイパス手段とを備えることを特徴とする並列計算機。 A plurality of arithmetic elements wherein are connected by individual communication paths, and identifying means for identifying a calculation element and not using arithmetic elements used in the calculation according to the size of the problem solved by the identification means parallel computer, characterized in that it comprises a bypass means for bypassing identified, not used in the computation computing element.
  4. 【請求項4】 個々の通信経路で接続されている複数の演算要素と、 各々の演算要素と個々に結合しているローカルメモリと、 解く問題のサイズに応じて演算に使用する演算要素と使用しない演算要素とを識別する識別手段と、 この識別手段によって識別された、演算に使用しない演算要素と結合しているローカルメモリを、演算に使用する演算要素から直接アクセス可能にするアクセス手段とを備えることを特徴とする並列計算機。 4. A each communication path plurality of processing elements connected in a local memory that is attached to each of the computing elements and the individual, the calculation elements used in the calculation depending on the size of the problem solving using comprising identification means for identifying a computing elements that do not, have been identified by the identifying means, a local memory which joins the computing elements that are not used for calculation, and an access means for enabling direct access from the processing element used in the calculation parallel computer, characterized in that.
  5. 【請求項5】 複数のプロセッサがN次元ネットワークで相互接続され、 各プロセッサが、 隣接するプロセッサからメッセージを受信し、出力先を決定する出力先決定手段と、 出力先ごとに設けられ、前記出力先決定手段によって出力先が決定されたメッセージを受信した順に蓄える蓄積手段と、 蓄積されたメッセージを、決定された出力先のプロセッサに出力する出力手段とを備えたことを特徴とする並列計算機。 5. A plurality of processors are interconnected in N-dimensional network, each processor receives a message from a neighboring processor, and an output destination determination means for determining an output destination, provided for each output destination, the output parallel computer to a storage means for storing the message destination by previously determining means is determined in the order received, characterized in that an output means for the stored message, and outputs the determined destination processor.
JP22159292A 1992-08-20 1992-08-20 Parallel computer Granted JPH0668053A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP22159292A JPH0668053A (en) 1992-08-20 1992-08-20 Parallel computer

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP22159292A JPH0668053A (en) 1992-08-20 1992-08-20 Parallel computer

Publications (1)

Publication Number Publication Date
JPH0668053A true true JPH0668053A (en) 1994-03-11

Family

ID=16769176

Family Applications (1)

Application Number Title Priority Date Filing Date
JP22159292A Granted JPH0668053A (en) 1992-08-20 1992-08-20 Parallel computer

Country Status (1)

Country Link
JP (1) JPH0668053A (en)

Cited By (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002099350A (en) * 2000-09-21 2002-04-05 Cybernetics Technology Co Ltd Combination type computer
JP2002541586A (en) * 1999-04-09 2002-12-03 クリアスピード・テクノロジー・リミテッド Parallel data processing apparatus
JPWO2006049331A1 (en) * 2004-11-05 2008-05-29 日本電気株式会社 Simd Parallel computing device, the processing element, the control method of simd Parallel computing device
US7383421B2 (en) 2002-12-05 2008-06-03 Brightscale, Inc. Cellular engine for a data processing system
JP2009048637A (en) * 2007-08-15 2009-03-05 Nvidia Corp Shared readable and writable global values in graphics processor unit pipeline
JP2010520519A (en) * 2007-03-06 2010-06-10 日本電気株式会社 Data transfer network and a control apparatus for a system having a pe arrays autonomous or common control
WO2010122746A1 (en) * 2009-04-22 2010-10-28 パナソニック株式会社 Information processor
US7853775B2 (en) 2006-08-23 2010-12-14 Nec Corporation Processing elements grouped in MIMD sets each operating in SIMD mode by controlling memory portion as instruction cache and GPR portion as tag
JP2011514016A (en) * 2008-03-03 2011-04-28 日本電気株式会社 Controller for high-speed data exchange between the processing units in the architecture of a processor having a processing unit connected different bandwidths in the pipeline ring bus
JP2011086158A (en) * 2009-10-16 2011-04-28 Mitsubishi Electric Corp Parallel signal processing apparatus
JP2011145759A (en) * 2010-01-12 2011-07-28 Mitsubishi Electric Corp Parallel signal processing processor
JP2012003594A (en) * 2010-06-18 2012-01-05 Renesas Electronics Corp Parallel computer
JP2012252374A (en) * 2011-05-31 2012-12-20 Renesas Electronics Corp Information processor
JP5708634B2 (en) * 2010-02-24 2015-04-30 日本電気株式会社 Simd processor
WO2015136686A1 (en) * 2014-03-14 2015-09-17 株式会社日立製作所 Method and apparatus for processing information
US9563433B1 (en) 2006-09-01 2017-02-07 Allsearch Semi Llc System and method for class-based execution of an instruction broadcasted to an array of processing elements

Cited By (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002541586A (en) * 1999-04-09 2002-12-03 クリアスピード・テクノロジー・リミテッド Parallel data processing apparatus
JP2011023036A (en) * 1999-04-09 2011-02-03 Rambus Inc Parallel data processing apparatus
JP2011023037A (en) * 1999-04-09 2011-02-03 Rambus Inc Parallel data processing apparatus
JP2002099350A (en) * 2000-09-21 2002-04-05 Cybernetics Technology Co Ltd Combination type computer
US7383421B2 (en) 2002-12-05 2008-06-03 Brightscale, Inc. Cellular engine for a data processing system
JP5240424B2 (en) * 2004-11-05 2013-07-17 日本電気株式会社 Simd Parallel computing device, the processing element, the control method of simd Parallel computing device
JPWO2006049331A1 (en) * 2004-11-05 2008-05-29 日本電気株式会社 Simd Parallel computing device, the processing element, the control method of simd Parallel computing device
US8112613B2 (en) 2006-08-23 2012-02-07 Nec Corporation Selecting broadcast SIMD instruction or cached MIMD instruction stored in local memory of one of plurality of processing elements for all elements in each unit
US8051273B2 (en) 2006-08-23 2011-11-01 Nec Corporation Supplying instruction stored in local memory configured as cache to peer processing elements in MIMD processing units
US7853775B2 (en) 2006-08-23 2010-12-14 Nec Corporation Processing elements grouped in MIMD sets each operating in SIMD mode by controlling memory portion as instruction cache and GPR portion as tag
US9563433B1 (en) 2006-09-01 2017-02-07 Allsearch Semi Llc System and method for class-based execution of an instruction broadcasted to an array of processing elements
JP2010520519A (en) * 2007-03-06 2010-06-10 日本電気株式会社 Data transfer network and a control apparatus for a system having a pe arrays autonomous or common control
JP2009048637A (en) * 2007-08-15 2009-03-05 Nvidia Corp Shared readable and writable global values in graphics processor unit pipeline
JP2011514016A (en) * 2008-03-03 2011-04-28 日本電気株式会社 Controller for high-speed data exchange between the processing units in the architecture of a processor having a processing unit connected different bandwidths in the pipeline ring bus
US8683106B2 (en) 2008-03-03 2014-03-25 Nec Corporation Control apparatus for fast inter processing unit data exchange in an architecture with processing units of different bandwidth connection to a pipelined ring bus
WO2010122746A1 (en) * 2009-04-22 2010-10-28 パナソニック株式会社 Information processor
US8719551B2 (en) 2009-04-22 2014-05-06 Panasonic Corporation Processor with arbiter sending simultaneously requested instructions from processing elements in SIMD / MIMD modes
JP5379223B2 (en) * 2009-04-22 2013-12-25 パナソニック株式会社 The information processing apparatus
JP2011086158A (en) * 2009-10-16 2011-04-28 Mitsubishi Electric Corp Parallel signal processing apparatus
JP2011145759A (en) * 2010-01-12 2011-07-28 Mitsubishi Electric Corp Parallel signal processing processor
JP5708634B2 (en) * 2010-02-24 2015-04-30 日本電気株式会社 Simd processor
JP2012003594A (en) * 2010-06-18 2012-01-05 Renesas Electronics Corp Parallel computer
JP2012252374A (en) * 2011-05-31 2012-12-20 Renesas Electronics Corp Information processor
WO2015136686A1 (en) * 2014-03-14 2015-09-17 株式会社日立製作所 Method and apparatus for processing information

Similar Documents

Publication Publication Date Title
US3614742A (en) Automatic context switching in a multiprogrammed multiprocessor system
US5325493A (en) System for distributing command/data packets tagged by their unit identifier for parallel processing by a ready processing unit and recombination
US4875161A (en) Scientific processor vector file organization
US4724520A (en) Modular multiport data hub
US5239629A (en) Dedicated centralized signaling mechanism for selectively signaling devices in a multiprocessor system
US6363453B1 (en) Parallel processor with redundancy of processor pairs
US7595659B2 (en) Logic cell array and bus system
US5208914A (en) Method and apparatus for non-sequential resource access
US5377333A (en) Parallel processor system having computing clusters and auxiliary clusters connected with network of partial networks and exchangers
US5842038A (en) Optimized input/output memory access request system and method
US4481572A (en) Multiconfigural computers utilizing a time-shared bus
US5214769A (en) Multiprocessor control system
US5898881A (en) Parallel computer system with error status signal and data-driven processor
US5247613A (en) Massively parallel processor including transpose arrangement for serially transmitting bits of data words stored in parallel
US5664214A (en) Parallel processing computer containing a multiple instruction stream processing architecture
US5682491A (en) Selective processing and routing of results among processors controlled by decoding instructions using mask value derived from instruction tag and processor identifier
US5859981A (en) Method for deadlock-free message passing in MIMD systems using routers and buffers
US5710935A (en) Advanced parallel array processor (APAP)
US5495619A (en) Apparatus providing addressable storage locations as virtual links and storing predefined destination information for any messages transmitted on virtual links at these locations
US5588152A (en) Advanced parallel processor including advanced support hardware
US4630258A (en) Packet switched multiport memory NXM switch node and processing method
US5963745A (en) APAP I/O programmable router
US5243704A (en) Optimized interconnect networks
US6678801B1 (en) DSP with distributed RAM structure
US4942517A (en) Enhanced input/output architecture for toroidally-connected distributed-memory parallel computers

Legal Events

Date Code Title Description
R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

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

Free format text: PAYMENT UNTIL: 20080721

Year of fee payment: 8

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

Free format text: PAYMENT UNTIL: 20090721

Year of fee payment: 9

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

Free format text: PAYMENT UNTIL: 20090721

Year of fee payment: 9

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

Free format text: PAYMENT UNTIL: 20100721

Year of fee payment: 10