JPH02733B2 - - Google Patents
Info
- Publication number
- JPH02733B2 JPH02733B2 JP59006581A JP658184A JPH02733B2 JP H02733 B2 JPH02733 B2 JP H02733B2 JP 59006581 A JP59006581 A JP 59006581A JP 658184 A JP658184 A JP 658184A JP H02733 B2 JPH02733 B2 JP H02733B2
- Authority
- JP
- Japan
- Prior art keywords
- data
- synchronization
- address
- array
- indicator
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Lifetime
Links
- 230000015654 memory Effects 0.000 claims description 43
- 238000004891 communication Methods 0.000 claims description 30
- 239000002131 composite material Substances 0.000 claims description 7
- 238000012546 transfer Methods 0.000 description 60
- 238000010586 diagram Methods 0.000 description 22
- 238000000034 method Methods 0.000 description 15
- 230000001360 synchronised effect Effects 0.000 description 13
- 238000012545 processing Methods 0.000 description 10
- 238000001514 detection method Methods 0.000 description 9
- 239000011159 matrix material Substances 0.000 description 8
- 230000002093 peripheral effect Effects 0.000 description 6
- 238000006243 chemical reaction Methods 0.000 description 5
- 230000006870 function Effects 0.000 description 5
- 230000007423 decrease Effects 0.000 description 2
- 241000985610 Forpus Species 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 238000007796 conventional method Methods 0.000 description 1
- 230000008878 coupling Effects 0.000 description 1
- 238000010168 coupling process Methods 0.000 description 1
- 238000005859 coupling reaction Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 208000003580 polydactyly Diseases 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/16—Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
- G06F15/163—Interprocessor communication
- G06F15/173—Interprocessor communication using an interconnection network, e.g. matrix, shuffle, pyramid, star, snowflake
- G06F15/17337—Direct connection machines, e.g. completely connected computers, point to point communication networks
Landscapes
- Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Multi Processors (AREA)
Description
【発明の詳細な説明】
〔発明の技術分野〕
本発明は、複合コンピユータシステムに関する
ものであり、特にその中でも並列配置されたコン
ピユータに対する通信および制御を効率的に行な
う手段に関する。DETAILED DESCRIPTION OF THE INVENTION [Technical Field of the Invention] The present invention relates to a complex computer system, and particularly to means for efficiently communicating and controlling computers arranged in parallel.
科学技術上の問題には、物理空間内に分布する
多数の点からなり、各点が近傍の点との間に相互
作用をもつような系において、与えられた条件の
もとに各点の値の時間的な変化を計算することが
必要とされるものが少なくない。たとえば、気象
や洪水の予測問題などもその1つである。しかし
これらの問題は、膨大な量の計算を伴うものであ
るため、特にその処理用コンピユータには高速性
が要求される。
Scientific and technological problems include solving problems for each point under given conditions in a system consisting of many points distributed in physical space, where each point has interactions with neighboring points. In many cases, it is necessary to calculate changes in values over time. For example, weather and flood prediction problems are one example. However, since these problems involve an enormous amount of calculation, the processing computers are particularly required to be high-speed.
ところで、多数のコンピユータを2次元配列し
て、隣接するコンピユータ同士を結合可能にした
複合コンピユータシステムは、このような問題を
処理するのに適しており、上記した物理空間内の
各点を2次元配列された各要素コンピユータに対
応させて同時に並列動作させることにより、高速
処理を可能にする。しかし、従来のこの種の複合
コンピユータシステムは、全体を統括するホスト
コンピユータと2次元配列されて各要素コンピユ
ータとの間の通信、および各要素コンピユータ間
の通信に多くの時間を要して、システム全体の処
理の高速化に一定の制約があり、さらには各要素
コンピユータの同期制御などに技術的に改善すべ
き点をもつていた。 By the way, a composite computer system in which a large number of computers are arranged in a two-dimensional array and adjacent computers can be connected to each other is suitable for processing such problems, and each point in the physical space described above can be arranged in two dimensions. High-speed processing is made possible by allowing each element computer in the array to operate simultaneously in parallel. However, in conventional composite computer systems of this type, communication between a host computer that controls the whole system and each element computer arranged in a two-dimensional array, and communication between each element computer takes a lot of time. There were certain restrictions on speeding up the overall processing, and there were also technical points that needed to be improved, such as the synchronization control of each element computer.
本発明の目的は、2次元配列された複数のコン
ピユータからなる複合コンピユータシステムにお
いて、通信および同期制御方式を改良し、より高
速で信頼性の高いシステムを実現することにあ
る。
An object of the present invention is to improve communication and synchronization control methods in a complex computer system consisting of a plurality of computers arranged in a two-dimensional array, and to realize a faster and more reliable system.
〔発明の構成および実施例〕
以下に、本発明の構成を1実施例にしたがつて
説明する。[Configuration and Examples of the Invention] The configuration of the present invention will be described below based on one example.
(1) システムの全体構成
第1図は、本発明を実施した複合コンピユータ
システムの全体構成図である。図中、1は32個の
処理ユニツトPUを8行4列に2次元配列したPU
アレイ、2は制御ユニツト、3はホストコンピユ
ータ、4はデジタル入出力線DI/O、5はデイ
スクパツク記憶装置DP、6は磁気テープ装置
MT、7および8はデイスプレイ端末装置CRT、
9はラインプリンタLP、10は通信制御装置
COM、11はデイスプレイ装置CRT、12はキ
ーボード入力装置KB、13はプリンタPR、1
4はカセツトテープ装置CMTを示す。(1) Overall configuration of the system FIG. 1 is an overall configuration diagram of a composite computer system in which the present invention is implemented. In the figure, 1 is a PU with 32 processing units PU arranged two-dimensionally in 8 rows and 4 columns.
array, 2 is a control unit, 3 is a host computer, 4 is a digital input/output line DI/O, 5 is a disk pack storage device DP, 6 is a magnetic tape device
MT, 7 and 8 are display terminal devices CRT,
9 is a line printer LP, 10 is a communication control device
COM, 11 is the display device CRT, 12 is the keyboard input device KB, 13 is the printer PR, 1
4 indicates a cassette tape device CMT.
PUアレイ1は、複数のタスクを並列に実行す
る。各PUは、後述されるように、本質的には単
一ボードのマイクロコンピユータと同じ機能をも
つている。なおアレイを構成するPUの個数は32
個に限られるものではなく、一般には任意の適当
な個数が選択される。m行n列目のPUは(m,
n)で表わされる。 The PU array 1 executes multiple tasks in parallel. Each PU has essentially the same functionality as a single-board microcomputer, as described below. The number of PUs that make up the array is 32.
The number is not limited to 1, and in general, any suitable number can be selected. The PU at row m and column n is (m,
n).
制御ユニツト2は1つのマイクロコンピユータ
であり、PUアレイ1を制御するとともに、デジ
タル入出力線DI/Oを介して、ホストコンピユ
ータ3あるいは入出力装置7乃至10との間でデー
タ通信を行なう。 The control unit 2 is a microcomputer that controls the PU array 1 and also performs data communication with the host computer 3 or the input/output devices 7 to 10 via the digital input/output line DI/O.
ホストコンピユータ3は、汎用のミニコンピユ
ータであり、ソースプログラムをコンパイル/ア
センブルし、得られたオブジエクトプログラムを
制御ユニツト2およびPUへロードする。さらに
並列タスクを開始させ、制御ユニツト2との間で
必要なデータの転送を行ない、処理結果を出力さ
せる。 The host computer 3 is a general-purpose minicomputer, compiles/assembles source programs, and loads the obtained object programs into the control unit 2 and PU. Furthermore, parallel tasks are started, necessary data is transferred to and from the control unit 2, and processing results are output.
(2) PUアレイの構成
第2図は、PUアレイ1におけるm行n列目の
1つの処理ユニツトPUの細部構成図である。図
中、16はマイクロプロセツサMPU、17は算
術演算ユニツトAPU、18は制御レジスタCR、
19は状態レジスタSR、20はローカルメモリ
LM、21はプログラムメモリPM、22は結果
メモリRM、22aは同期レジスタSC、23は
前方の通信メモリCM、24は後方の通信メモリ
CM、25は左方の通信メモリCM、26は右方
の通信メモリCMを示す。(2) Configuration of PU array FIG. 2 is a detailed configuration diagram of one processing unit PU in the m-th row and n-th column in the PU array 1. In the figure, 16 is a microprocessor MPU, 17 is an arithmetic operation unit APU, 18 is a control register CR,
19 is status register SR, 20 is local memory
LM, 21 is program memory PM, 22 is result memory RM, 22a is synchronization register SC, 23 is front communication memory CM, 24 is rear communication memory
CM, 25 indicates the left communication memory CM, and 26 indicates the right communication memory CM.
マイクロプロセツサMPU16は、応用プログ
ラムを実行し、8ビツトの固定小数点算術演算お
よび論理演算、メモリ間のデータ転送、算術演算
ユニツトAPU17の制御などを行なう。 The microprocessor MPU 16 executes application programs, performs 8-bit fixed-point arithmetic operations and logical operations, transfers data between memories, controls the arithmetic operation unit APU 17, and the like.
算術演算ユニツトAPUは、16ビツトおよび32
ビツト幅の固定小数点算術演算と32ビツト幅の浮
動小数点算術演算、対数や平方根などの基本関数
計算などを行なう。APU17に対する転送およ
びその動作開始は、MPU16により完全に制御
される。ただし、これらのデータについては、
MPUのレジスタを介さずに、直接APUとメモリ
との間でデータ転送を行なうことができる。 The arithmetic unit APU has 16-bit and 32-bit
It performs bit-width fixed-point arithmetic operations, 32-bit wide floating-point arithmetic operations, and basic function calculations such as logarithms and square roots. Transfer to the APU 17 and the start of its operation are completely controlled by the MPU 16. However, regarding these data,
Data can be transferred directly between the APU and memory without going through MPU registers.
制御レジスタCR18は、制御ユニツト2から
PUへ、制御語を転送するために使用される。 Control register CR18 is connected to control register CR18 from control unit 2.
Used to transfer control words to the PU.
状態レジスタSR19は、PUの状態を制御ユニ
ツト2へ通知するために使用される。このレジス
タはPUによつて書き込まれ、制御ユニツト2の
みによつて読み出されることができる。 The status register SR19 is used to notify the control unit 2 of the status of the PU. This register is written by the PU and can only be read by the control unit 2.
ローカルメモリLM20は、PUのローカルデ
ータおよびプログラムを記憶するために使用され
る。 Local memory LM20 is used to store local data and programs of the PU.
プログラムメモリPM21は、プログラムおよ
び読み出し専用データを記憶するために使用され
る。 Program memory PM21 is used to store programs and read-only data.
結果メモリRM22は、PUと制御ユニツト2
によつて共有され、これらの間でデータ転送を行
なうために使用される。 The result memory RM22 is connected to the PU and control unit 2.
and is used to transfer data between them.
同期レジスタ22aは、PUアレイ内の各PUの
処理の同期をとるために使用される。 The synchronization register 22a is used to synchronize the processing of each PU in the PU array.
通信メモリCM23乃至26は、それぞれ前、
後、左、右の隣接するPUとの間で共有され、そ
れぞれのPUとの間のデータ通信のために使用さ
れる。 The communication memories CM23 to CM26 are connected to the front,
It is shared between the rear, left and right adjacent PUs, and used for data communication between each PU.
各PUは、システムクロツクによつて同期化さ
れている。システムクロツクは制御ユニツト2に
よつて供給される。隣接するPU間のCMに対す
るアクセスは、PU同士の競合を避けるため、シ
ステムクロツクの半サイクルで偶数番目のPUが
アクセスし、他の半サイクルで奇数番目のPUが
アクセスするように制御される。 Each PU is synchronized by a system clock. The system clock is supplied by control unit 2. Access to the CM between adjacent PUs is controlled so that even-numbered PUs access it in half a system clock cycle and odd-numbered PUs access it in the other half cycle to avoid contention between PUs. .
(3) 隣接PU間のデータ転送
隣接するPU同士の間でのデータ転送は、上記
した前後左右の通信メモリCM23乃至26を用
いて行なわれる。従来は、ローカルメモリLM2
0中のデータを他の隣接PUに転送したい場合、
MPU16によりLM20中のデータを読み出し
てそれを通信メモリCM23,24,25,26
に順次格納することにより行なつていた。(3) Data transfer between adjacent PUs Data transfer between adjacent PUs is performed using the above-mentioned front, rear, left and right communication memories CM23 to 26. Conventionally, local memory LM2
If you want to transfer the data in 0 to another adjacent PU,
MPU16 reads data in LM20 and stores it in communication memory CM23, 24, 25, 26
This was done by storing them sequentially.
しかし、これでは、通信に要する時間がかかり
すぎるため、本発明では、MPU16がLM20
にデータを格納する際、それが隣接するPUに転
送すべきデータである場合には、特別のアドレス
(またはアドレス領域)を指定してCM23乃至
26にも同時に書き込むようにしている。 However, this takes too much time for communication, so in the present invention, the MPU 16 is
When storing data in the CM 23 to CM 26, if the data is to be transferred to an adjacent PU, a special address (or address area) is designated and the data is written in the CMs 23 to 26 at the same time.
第3図は、ある1つのPUのMPU16からみた
LMおよびCMのアドレス空間の1例を示す。ア
ドレス0〜99はLM20のみにアクセスが行なわ
れる領域、アドレス100〜199は前方のCM23と
LM20とに共通にアクセスが行なわれる領域、
アドレス200〜299は後方のCM24とLM20と
に共通にアクセスが行なわれる領域、アドレス
300〜399とアドレス400〜499は、それぞれ左方お
よび右方のCM25,26とLM20とに共通に
アクセスが行なわれる領域、そしてアドレス500
〜599は前後左右のCM23乃至26とLM20と
に共通にアクセスが行なわれる領域である。 Figure 3 is seen from MPU16 of one PU.
An example of LM and CM address spaces is shown. Addresses 0 to 99 are areas that are accessed only to the LM20, addresses 100 to 199 are areas that are accessed only to the CM23 in front.
Areas that are commonly accessed with LM20,
Addresses 200 to 299 are areas commonly accessed by the rear CM24 and LM20, addresses
Addresses 300 to 399 and addresses 400 to 499 are areas commonly accessed by the left and right CM25, 26 and LM20, respectively, and address 500
599 is an area that is commonly accessed by the CMs 23 to 26 on the front, rear, left and right sides and the LM 20.
これにより、各PUにおいて、MPU16は、デ
ータを転送すべき隣接PUの方向に応じてLM2
0への書き込みアドレス領域を選択することによ
り、自由に隣接するPUとの間で通信を行なうこ
とができる。 As a result, in each PU, the MPU 16 selects the LM2 according to the direction of the adjacent PU to which data should be transferred.
By selecting the write address area to 0, communication can be freely performed between adjacent PUs.
この場合、PUアレイの配列は2次元に限らず、
1次元、3次元など任意の次元のものに適用する
ことができる。 In this case, the arrangement of the PU array is not limited to two dimensions;
It can be applied to objects of any dimension, such as one dimension or three dimensions.
(4) 複数のPUのメモリ間あるいはPUのメモリと
周辺装置との間のデータ転送
PUアレイ1中の複数のPUのメモリ間、あるい
はメモリと周辺装置との間で、直接メモリアクセ
ス(DMA)方式によりデータ転送を行なう。(4) Data transfer between the memories of multiple PUs or between the memory of a PU and a peripheral device Direct memory access (DMA) between the memories of multiple PUs in PU array 1 or between the memory and a peripheral device Data transfer is performed according to the method.
従来のDMAコントローラは、1つのPUのメ
モリと周辺装置との間のデータ転送を行なうよう
に作製されていたため、複数のPUに対して用い
るためには、これまで次のような方法がとられて
いた。 Conventional DMA controllers were created to transfer data between the memory of one PU and peripheral devices, so the following methods have been used to use them for multiple PUs: was.
第4図はその概要図であり、図中、1はPUア
レイ、2は制御ユニツト、27はPU接続切換回
路、28は共通バス、29はDMAコントローラ
機能をもつデータ転送制御装置を示している。制
御ユニツト2は、そのソフトウエアにより、各
PUに対して設けられているPU接続切換回路27
を制御し、データを読み書きするべきPUまたは
PU群を選択指定する。例として、PU(01)のメ
モリの内容をPU(00)乃至PU(73)の全PUのメ
モリへ放送する場合を以下に示す。 Figure 4 is a schematic diagram of the system. In the figure, 1 is a PU array, 2 is a control unit, 27 is a PU connection switching circuit, 28 is a common bus, and 29 is a data transfer control device with a DMA controller function. . The control unit 2 uses its software to
PU connection switching circuit 27 provided for PU
PU or
Select and specify the PU group. As an example, a case where the contents of the memory of PU (01) are broadcast to the memories of all PUs from PU (00) to PU (73) is shown below.
まず制御ユニツト2は、PU接続切換回路2
7を制御し、共通バス28とPU(01)を接続す
る。 First, the control unit 2 is connected to the PU connection switching circuit 2.
7 and connects the common bus 28 and PU (01).
次に、DMAコントローラ機能をもつデータ
転送制御装置29に読み出しを開始するべきメ
モリのアドレス、データの量などの値を知ら
せ、この装置29に制御権を移す。 Next, the data transfer control device 29 having a DMA controller function is informed of values such as the address of the memory to start reading and the amount of data, and the control right is transferred to this device 29.
すると、データ転送制御装置29はPU(01)
のメモリからデータを読み出し、制御ユニツト
2のメモリなどに一時貯え、制御ユニツト2に
制御権を戻す。 Then, the data transfer control device 29 transfers PU (01)
The data is read from the memory of the control unit 2, temporarily stored in the memory of the control unit 2, and the control right is returned to the control unit 2.
制御ユニツト2はPU接続切換回路27を制
御して、共通バス28を全PR(00)乃至PU
(73)と接続する。 The control unit 2 controls the PU connection switching circuit 27 to switch the common bus 28 from all PR (00) to PU
Connect with (73).
つづいて、制御ユニツト2はデータ転送制御
装置29にデータを書き込むべきアドレスなど
を知らせ、制御権を移す。 Next, the control unit 2 notifies the data transfer control device 29 of the address to which the data should be written, and transfers control.
データ転送制御装置29は、先程貯えたデー
タを全PUのメモリに同時に書き込んだ後、制
御権を放す。 The data transfer control device 29 releases the control right after writing the previously stored data into the memories of all PUs at the same time.
以上6回の手順により、PU(01)のメモリの内
容が全PUのメモリにコピーされる。 Through the above six steps, the contents of the memory of PU (01) are copied to the memories of all PUs.
しかしこの方法は、比較的自由なPUの選択・
指定が可能である反面、制御のために時間がかか
り、システム全体の効率が低下する欠点があつ
た。 However, this method provides relatively free PU selection and
Although it is possible to specify this, it has the disadvantage that it takes time to control and the efficiency of the entire system decreases.
本発明では、上記のような従来方式の欠点を解
決するために、データ転送制御装置29内にある
データの読み書きのアドレス指示器、データ数計
数器に連動させ、自動的にデータの読み書きを行
なうべきPUまたはPU群の選択制御を行なうため
の指示示器を設け、データ転送のための制御に必
要な時間を短縮して、PUアレイの処理効率を向
上させている。 In order to solve the drawbacks of the conventional method as described above, the present invention automatically reads and writes data in conjunction with the data read/write address indicator and data counter in the data transfer control device 29. An indicator is provided to select and control the desired PU or PU group, thereby reducing the time required for data transfer control and improving the processing efficiency of the PU array.
第5図は、本発明に基づくデータ転送制御装置
の1実施例の構成図である。図中、31は読み出
しPU指示器、32は書き込みPU指示器、33は
読み出しアドレス指示器、34は書き込みアドレ
ス指示器、35はデータラツチ、36は読み書き
切り替え器、37は転送データ数指示器、38は
転送データ数計数器、39は比較器、40は命令
レジスタ、41は命令解釈器、42乃至45は演
算器、46乃至48はスイツチを示す。以下に、
各部の機能を説明する。 FIG. 5 is a configuration diagram of one embodiment of a data transfer control device based on the present invention. In the figure, 31 is a read PU indicator, 32 is a write PU indicator, 33 is a read address indicator, 34 is a write address indicator, 35 is a data latch, 36 is a read/write switch, 37 is a transfer data number indicator, 38 39 is a transfer data number counter, 39 is a comparator, 40 is an instruction register, 41 is an instruction interpreter, 42 to 45 are arithmetic units, and 46 to 48 are switches. less than,
Explain the functions of each part.
読み出しPU指示器31、書き込みPU指示器
32:それぞれ、データが読み出されるPUと、
書き込まれるPUを指定するコードを格納して
おくレジスタで、そのコードがPU選択バスに
出力されると指定されたPUにアドレスバスと
データバスが接続され、そのPUのデータを読
み書きすることが可能となる。読み出しPU指
示器31と書き込みPU指示器32に付属して
いる演算器42,43は、あるPUの読み出し
や書き込みが終了したあと、次に読み出し書き
込みを行なうPUのコードを求めるための計算
を行なうものである。 Read PU indicator 31, write PU indicator 32: PU from which data is read, and
A register that stores a code that specifies the PU to be written to. When that code is output to the PU selection bus, the address bus and data bus are connected to the specified PU, making it possible to read and write data from that PU. becomes. Arithmetic units 42 and 43 attached to the read PU indicator 31 and the write PU indicator 32 perform calculations to obtain the code of the next PU to be read and written after reading or writing from a certain PU is completed. It is something.
読み出しアドレス指示器33、書き込みアド
レス指示器34:それぞれ、データが読み出さ
れるアドレスと、書き込まれるアドレスを格納
しておくレジスタである。読み出しアドレス指
示器33と書き込みアドレス指示器34に付属
している演算器44,45は、あるアドレスの
読み出しや書き込みが終了したあと、次に読み
出し書き込みを行なうアドレスのコードを求め
るための計算を行なうものである。 Read address indicator 33, write address indicator 34: These are registers that store an address from which data is read and an address where data is written, respectively. Arithmetic units 44 and 45 attached to the read address indicator 33 and the write address indicator 34 perform calculations to obtain the code of the next address to be read or written after reading or writing to a certain address is completed. It is something.
データラツチ35;転送されるデータを一時
蓄えておくものである。 Data latch 35: Temporarily stores data to be transferred.
読み書き切り替え器36:この装置がデータ
転送を行なう際に、データを読む動作と書く動
作を交互に切り替える制御をおこなう。データ
を読む時には、スイツチ46,47,48を上
に倒し、読み出しPU指示器をPU選択バスに、
読み出しアドレス指示器をアドレスバスに接続
し、データラツチ35を入力状態に、
READ/WRITE信号をREAD状態にする。こ
の状態でデータはPUから読み出され、データ
ラツチ35に一時蓄えられる。次にデータを書
く時には、スイツチ46,47,48を下に倒
し、書き込みPU指示器をPU選択バスに、書き
込みアドレス指示器をアドレスバスに接続し、
データラツチを出力状態に、READ/WRITE
信号をWRITE状態にする。この状態でデータ
はデータラツチ35からPUへと転送される。 Read/write switcher 36: When this device transfers data, it performs control to alternately switch between reading and writing data. When reading data, flip switches 46, 47, and 48 upward, and set the read PU indicator to the PU selection bus.
Connect the read address indicator to the address bus, put the data latch 35 in the input state,
Set the READ/WRITE signal to READ state. In this state, data is read from the PU and temporarily stored in the data latch 35. Next, when writing data, turn down the switches 46, 47, and 48, connect the write PU indicator to the PU selection bus, and connect the write address indicator to the address bus.
Set data latch to output state, READ/WRITE
Set the signal to WRITE state. In this state, data is transferred from the data latch 35 to the PU.
転送データ数指示器37:転送されるべきデ
ータの数を格納しておくレジスタ。 Transfer data number indicator 37: A register that stores the number of data to be transferred.
転送データ数計数器38:転送されたデータ
の数をかぞえ、格納しておくレジスタ。 Transfer data number counter 38: A register that counts and stores the number of transferred data.
比較器39:転送データ数指示器37の内容
と転送データ数計数器38の内容、即ち転送さ
れるべきデータの数と転送されたデータの数を
比較し、必要なだけの数のデータが転送された
ことを検出する。 Comparator 39: Compares the contents of the transfer data number indicator 37 and the contents of the transfer data number counter 38, that is, the number of data to be transferred and the number of transferred data, and transfers the necessary number of data. Detect what has happened.
命令レジスタ40:どのような手順のデータ
転送を行なうかを指示した命令を格納しておく
レジスタである。この命令は命令解釈器41に
よりデコードされ、各演算器42乃至45に対
してどのような演算を行なうかを適切なタイミ
ングで指示する。 Instruction register 40: This is a register that stores an instruction that instructs what procedure to perform data transfer. This command is decoded by the command interpreter 41 and instructs each of the calculation units 42 to 45 at appropriate timing what kind of calculation to perform.
例えば、5番、10番、15番の各PUのメモリの
100番地からの8個のデータを、全PUのメモリの
300番地に移したいときは、読み出しPU指示器3
1に5を、書き込みPU指示器32に全PUを表わ
すコードをそれぞれ格納し、読み出しアドレス指
示器33、書き込みアドレス指示器34にそれぞ
れ100,300を格納し、転送データ数指示器37に
8を格納しておく。次に命令レジスタ40にこの
手順のデータ転送を行なうことを指示した命令を
格納すると、この命令は命令解釈器によりデコー
ドされ、実行が始まる。 For example, the memory of each PU No. 5, No. 10, and No. 15
The 8 data from address 100 are stored in the memory of all PUs.
If you want to move to address 300, read PU indicator 3
1, store a code representing all PUs in the write PU indicator 32, store 100 and 300 in the read address indicator 33 and write address indicator 34, respectively, and set 8 to the transfer data number indicator 37. Store it. Next, when an instruction instructing data transfer of this procedure is stored in the instruction register 40, this instruction is decoded by the instruction interpreter and execution begins.
まず転送データ数計数器38がクリアされ、5
番のPUの100番地からデータが読み出され、全
PUの300番地に書き込まれる。その後、読み出し
アドレス指示器33、書き込みアドレス指示器3
4、転送データ数計数器38の値が+1される。
読み出しアドレス指示器33、書き込みアドレス
指示器の値が+1されて、それぞれ101,301にな
つたので、次は5番のPUの101番地から全PUの
301番地へデータ転送が行なわれる。これを8回
繰り返すと、転送データ数指示器37と転送デー
タ数計数器38の値が等しくなり、比較器39に
より一致が検出されて、命令解釈器41に伝えら
れる。命令解釈器41は、このタイミングで、読
み出しPU指示器31を+5し、読み出しアドレ
ス指示器33に元の値100を格納し、転送データ
数計数器38をクリアし、実行を続ける。15番の
PUからのデータ転送が終了すれば全命令の完了
を検出し、バスの占有権を放す。 First, the transfer data number counter 38 is cleared and 5
Data is read from address 100 of the numbered PU, and all
Written to address 300 of PU. After that, read address indicator 33, write address indicator 3
4. The value of the transfer data number counter 38 is incremented by 1.
The values of the read address indicator 33 and the write address indicator have been incremented by 1 and become 101 and 301, respectively, so next, start from address 101 of the 5th PU to all PUs.
Data is transferred to address 301. When this is repeated eight times, the values of the transfer data number indicator 37 and the transfer data number counter 38 become equal, a match is detected by the comparator 39, and the result is transmitted to the command interpreter 41. At this timing, the instruction interpreter 41 increments the read PU indicator 31 by +5, stores the original value 100 in the read address indicator 33, clears the transfer data number counter 38, and continues execution. number 15
When the data transfer from the PU is completed, the completion of all instructions is detected and the bus is released.
また複合コンピユータシステムでは、各PUに
散在している数個ずつのデータを全PUに複写す
る必要が生じることも少なくない。このような複
写を行なうデータ転送制御装置の他の実施例構成
を第6図に示す。 Furthermore, in complex computer systems, it is often necessary to copy several pieces of data scattered across each PU to all PUs. FIG. 6 shows another embodiment of the configuration of a data transfer control device that performs such copying.
第6図において、第5図と異なる要素のみを示
すと、49は読み出し開始アドレスラツチ、50
は書き込み開始アドレスラツチ、51は転送PU
数指示器、52は転送PU数計数器、53は比較
器、54乃至56は+1加算器である。以下に、
装置の動作を説明する。 In FIG. 6, only the elements different from those in FIG. 5 are shown: 49 is a read start address latch;
is the write start address latch, 51 is the transfer PU
52 is a transfer PU number counter, 53 is a comparator, and 54 to 56 are +1 adders. less than,
The operation of the device will be explained.
読み出しPU指示器31に読み出しを開始す
るPUの番号(コード)を、書き込みPU指示器
32に全PUを表わすコードをそれぞれ格納し、
読み出し開始アドレスラツチ49、書き込み開
始アドレスラツチ50にそれぞれ読み出しを開
始するアドレス、書き込みを開始するアドレス
を格納し、転送データ数指示器37にデータ
数、転送PU数指示器51に全PU数を格納して
おき、命令レジスタ40に複写の命令を格納す
る。 The number (code) of the PU to start reading is stored in the read PU indicator 31, the code representing all PUs is stored in the write PU indicator 32, and
The read start address latch 49 and the write start address latch 50 store the address to start reading and the address to start writing, respectively, the number of data to be transferred is stored in the number indicator 37, and the total number of PUs is stored in the number of transfer PUs indicator 51. Then, a copy instruction is stored in the instruction register 40.
命令の格納により実行が始まる。書き込み開
始アドレスを書き込みアドレス指示器34に転
送する。 Execution begins when the instruction is stored. The write start address is transferred to the write address indicator 34.
転送データ数計数器38をクリアし、読み出
し開始アドレスを読み出しアドレス指示器33
に転送する。 Clear the transfer data number counter 38, read the read start address, and read the address indicator 33.
Transfer to.
読み出しPU指示器31で指示されるPUの読
み出しアドレス指示器33で指定されるアドレ
スからデータを読み出し、書き込みPU指示器
32で指定されるPU内の、書き込みアドレス
指示器34で指定されるアドレスに書き込む。 Read data from the address specified by the read address indicator 33 of the PU specified by the read PU indicator 31, and read data from the address specified by the write address indicator 34 in the PU specified by the write PU indicator 32. Write.
読み出しアドレス指示器33、書き込みアド
レス指示器34、転送データ数計数器の値を+
1する。転送データ数指示器37と転送データ
数計数器38の値が等しくなければに戻る。 The values of the read address indicator 33, write address indicator 34, and transfer data number counter are +
Do 1. If the values of the transfer data number indicator 37 and the transfer data number counter 38 are not equal, the process returns to step.
転送データ数指示器37と転送データ数計数
器38の値が等しくなつたら、読み出しPU指
示器31、転送PU数計数器52の値を+1す
る。転送PU数指示器51と転送PU数計数器5
2の値が等しくなければに戻る。 When the values of the transfer data number indicator 37 and the transfer data number counter 38 become equal, the values of the read PU indicator 31 and the transfer PU number counter 52 are incremented by 1. Transfer PU number indicator 51 and transfer PU number counter 5
If the values of 2 are not equal, return to step 2.
転送PU数指示器51と転送PU数計数器52
の値が等しければ転送を終了し、バスを解放
し、制御を親コンピユータあるいはPUアレイ
に戻す。 Transfer PU number indicator 51 and transfer PU number counter 52
If the values are equal, the transfer ends, the bus is released, and control is returned to the parent computer or PU array.
読み出しPU指示器31、書き込みPU指示器3
2により、制御ユニツト内のコンピユータも指定
可能とすることができる。このようにして、任意
のPUと制御ユニツトのメモリ、または周辺装置
との間で、データの構造をPUアレイの構造に合
わせて合理的に転送することができる。 Read PU indicator 31, write PU indicator 3
2, the computer within the control unit can also be specified. In this way, the structure of data can be rationally transferred between any PU and the memory of the control unit or the peripheral device according to the structure of the PU array.
(5) PUアレイとホストコンピユータとの結合
本発明では、第1図に示すようなPUアレイ1
とホストコンピユータ3との間のデータ参照のた
めに、簡単で高速なバスの結合手段が使用され
る。PUアレイについては、実際に物理的にPU相
互間にどのような結合がなされているかというこ
ととは別に、ホストコンピユータから見た論理的
なPUアレイの構造を考えることができる。(5) Connection between PU array and host computer In the present invention, a PU array 1 as shown in FIG.
For data reference between the computer 3 and the host computer 3, simple and fast bus coupling means are used. Regarding the PU array, apart from considering how the PUs are actually physically connected to each other, it is possible to consider the logical structure of the PU array as seen from the host computer.
第7図は8個のPU、すなわちPU(0)乃至PU
(7)が1列に並んだ1次元構造のPUアレイ例であ
る。一方、ホストコンピユータの中で扱うデータ
にも論理的な構造が考えられる。第8図は8×8
の2次元の行列データの例である。このデータを
第7図のPUアレイで分割して処理をする場合、
分割の仕方をいろいろとることができる。たとえ
ばa11〜a81の1列をPU(0)が分担し、a12〜a82
の1列をPU(1)が分担し、……というように各PU
が1列ずつを分担するということが考えられる。
このような場合、ホストコンピユータの中では、
データは第8図の行列中の()で番号付けされた
ような順にメモリまたは周辺装置に格納されてい
る。他方、PUアレイにおいては、(0)〜(7)の8
個のアドレスの各PUに、その順に格納される。 Figure 7 shows 8 PUs, PU(0) to PU
(7) is an example of a PU array with a one-dimensional structure arranged in a row. On the other hand, data handled within a host computer can also have a logical structure. Figure 8 is 8x8
This is an example of two-dimensional matrix data. When this data is divided and processed using the PU array shown in Figure 7,
There are various ways of dividing. For example, PU (0) will share one column from a 11 to a 81 , and a 12 to a 82
PU(1) shares one column of , and so on, each PU
It is conceivable that each column is divided into two columns.
In such a case, in the host computer,
The data is stored in the memory or peripheral device in the order numbered in parentheses in the matrix of FIG. On the other hand, in the PU array, 8 of (0) to (7)
are stored in each PU at addresses in that order.
もう少し複雑な例としては、第9図に示すよう
に、2×4の2次元構造のPUアレイを考える。
この場合、8×8の行列データを、4×2の小行
列8個に分割して、各PUに割当てることができ
る。この時、たとえばPU(0)とPU(1)に割当て
られたデータの順序(アドレス)は、それぞれ第
10図イ,ロのようにずれる。同様にして、他の
PUにおけるデータ順序にもホストコンピユータ
でのデータの順序に対して一定のずれが生じる。 As a more complex example, consider a PU array with a two-dimensional structure of 2 x 4, as shown in Figure 9.
In this case, the 8×8 matrix data can be divided into eight 4×2 small matrices and assigned to each PU. At this time, for example, the order (address) of data assigned to PU(0) and PU(1) is shifted as shown in FIG. 10A and B, respectively. Similarly, other
There is also a certain deviation in the data order in the PU from the data order in the host computer.
本発明では、このずれをアドレスラインとPU
選択ラインの信号との簡単な演算により自動的に
発生する変換回路を用いて、高速に対応するデー
タをホストコンピユータとPUアレイとの間で参
照可能にする。 In the present invention, this misalignment is corrected between the address line and the PU
Using a conversion circuit that is automatically generated by simple calculations with the signal on the selection line, the corresponding data can be referenced between the host computer and the PU array at high speed.
第11図は、ホストコンピユータにおける第8
図に示す8×8の行列データを第9図に示す2×
4のPUアレイ構造に対して割当てる場合のアド
レス変換回路の実施例を示す。図中、1はPUア
レイ、3はホストコンピユータ、61はアドレス
ライン、62はアドレスラインの信号からホスト
コンピユータ3におけるa11のアドレスすなわち
先頭アドレスを差引く減算回路、63は除算回
路、64は加算回路、65はPU選択ライン、6
6はPUアドレスラインである。62,63,6
4の回路が変換回路を構成し、制御ユニツト2内
に置かれる。除算回路63は、アドレス信号を1
つのPU中のデータの行数、すなわち第10図に
より“4”で割つた商b1と余りb0を求め、さらに
その商b1をPUの縦の個数すなわち“2”で割つ
た商b3と余りb2を求め、さらにその商b3を1つの
PU中のデータの列数、すなわち第10図により
“2”で割つた商b5と余りb4とを求め、b0,b2,
b4,b5を出力する。 Figure 11 shows the eighth
The 8×8 matrix data shown in the figure is converted to the 2× matrix data shown in FIG.
4 shows an example of an address conversion circuit for allocation to a PU array structure of 4. In the figure, 1 is a PU array, 3 is a host computer, 61 is an address line, 62 is a subtraction circuit that subtracts the address of a11 in the host computer 3, that is, the start address, from the address line signal, 63 is a division circuit, and 64 is an addition circuit. Circuit, 65 is PU selection line, 6
6 is the PU address line. 62,63,6
The circuit No. 4 constitutes a conversion circuit and is placed within the control unit 2. The division circuit 63 divides the address signal into 1
The number of rows of data in one PU, i.e., the quotient b 1 divided by "4" according to Figure 10, and the remainder b 0 are calculated, and the quotient b 1 is divided by the vertical number of PUs, i.e. "2", b 3 and the remainder b 2 , and then divide the quotient b 3 into one
Find the number of columns of data in the PU, that is, the quotient b 5 divided by "2" and the remainder b 4 according to Figure 10, and calculate b 0 , b 2 ,
Output b 4 and b 5 .
一般的にPUアレイ中のm行n列目のPUをPU
(m,n)で表わしたとき、b5,b2によりPU(b5,
b2)が選択される。しかし、第11図に示すよう
に、PUの番号付けを0乃至7のように一次元的
に行なつた場合には、その番号は、
b5×(PUアレイの行数)+b2
となる。 Generally, the PU in the m row and n column in the PU array is
When expressed as (m, n), b 5 , b 2 gives PU(b 5 ,
b 2 ) is selected. However, as shown in Figure 11, if the PUs are numbered one-dimensionally from 0 to 7, the number will be b 5 × (number of rows in the PU array) + b 2 . .
b4,b0は、上記のようにb5,b2により選択され
たPU内の選択されたデータの2次元的な位置が、
(b4,b0)、すなわちb4行b0列目であることを表わ
す。これを一次元的なアドレスとして表わせば、
b4×(PU内データ配列の行数)+b0
+(PU内のベースアドレス)
となる。 b 4 and b 0 are the two-dimensional positions of the selected data in the PU selected by b 5 and b 2 as described above.
(b 4 , b 0 ), that is, b 4th row and b 0th column. If this is expressed as a one-dimensional address, it becomes b 4 × (number of rows of data array in PU) + b 0 + (base address in PU).
ここで第11図に示すように、アドレスライン
61のアドレス値をA0減算回路62の出力アド
レス値をA1,b4およびb0の値をA2,b5およびb2
の値をA3、PU選択ライン65の値をA3、PUア
ドレスライン66の値をA4とすると、A1,A2,
A3,A4は次のような式で与えられる。 Here, as shown in FIG. 11, the address value of the address line 61 is A 0 , the output address value of the subtraction circuit 62 is A 1 , b 4 and b 0 , and the values of A 2 , b 5 and b 2 are
Assuming that the value of is A 3 , the value of the PU selection line 65 is A 3 , and the value of the PU address line 66 is A 4 , A 1 , A 2 ,
A 3 and A 4 are given by the following formulas.
A1=A0−(ホストコンピユータ先頭アドレス)
b0:A1/(1つのPU内のデータ配列の行数)
の余り
b1:A1/(1つのPU内のデータ配列の行数)
の商
b2:b1/(PUアレイの縦方向行数)の余り
b3:b1/(PUアレイの縦方向行数)の商
b4:b2/(1つのPU内のデータ配列の列数)
の余り
b5:b3/(1つのPU内のデータ配列の列数)
の商
A2=b4×(1つのPU内のデータ配列の行数)+
b0
A3=b5×(1つのPU内のデータ配列の行数)+
b2
A4=A2+PUのベースアドレス
第11図の実施例の場合、アドレスライン61
の最下位2ビツトは、b0として、第10図イ,ロ
に示すような各PUに割当てられる4×2の行列
データ中の各列における4個のデータ位置(順
序)の1つを指定する。A 1 = A 0 - (host computer start address) b 0 :A 1 / (number of rows of data array in one PU)
Remainder b 1 :A 1 / (number of rows of data array in one PU)
The quotient of b 2 : b 1 / (the number of vertical rows in the PU array) is the remainder b 3 : the quotient of b 1 / (the number of vertical rows in the PU array) b 4 : b 2 / (the data array in one PU) number of columns)
Remainder b 5 :b 3 / (number of columns of data array in one PU)
Quotient of A 2 = b 4 × (number of rows of data array in one PU) +
b 0 A 3 = b 5 × (number of rows of data array in one PU) +
b 2 A 4 = A 2 + PU base address In the case of the embodiment shown in Fig. 11, address line 61
The lowest two bits of b0 specify one of the four data positions (order) in each column of the 4x2 matrix data assigned to each PU as shown in Figure 10 A and B. do.
アドレスライン61の下位から3ビツト目は、
b2として、2×4配列のPUアレイの第1行のPU
か第2行のPUかを指定する。 The third bit from the bottom of address line 61 is
b 2 , the PU in the first row of the 2×4 PU array
or the second line PU.
アドレスライン61の下位から4ビツト目は、
b4として、各PUにおける4×2行列データの第
1列か第2列かを指定する。 The fourth bit from the bottom of address line 61 is
As b 4 , specify whether it is the first column or the second column of the 4×2 matrix data in each PU.
アドレスライン61の下位から5,6ビツト目
の2ビツトは、b5として、PUアレイ中の4つの
列位置の1つを指定する。 The 5th and 6th bits from the bottom of the address line 61 specify one of the four column positions in the PU array as b5 .
この実施例では、データの行、列、PUの行、
列の数がすべて2のベキ乗であるので、上記除算
回路63の演算は、単なるアドレスラインの入れ
換えだけで済ますことができる。しかし一般的な
行、列数の場合、上記のような除算が必要であ
る。演算により得られたb5,b2をPUの選択ライ
ン信号として使用し、b4,b0にPU内でのこのデ
ータ群のベースアドレスの加算を加算回路64に
おいて行なつて、その出力をPUのアドレスライ
ン信号として使用する。以上の対応付けにより、
ホストコンピユータ3は、PUアレイ中に分散し
ているデータを、第8図に表わされた構造として
すばやく参照することができる。 In this example, the data row, column, PU row,
Since the number of columns is all a power of 2, the operation of the division circuit 63 can be completed by simply replacing the address lines. However, in the case of general numbers of rows and columns, the above division is necessary. b 5 and b 2 obtained by the calculation are used as selection line signals of the PU, and the base address of this data group in the PU is added to b 4 and b 0 in the adder circuit 64, and the output is Used as PU address line signal. With the above correspondence,
The host computer 3 can quickly refer to the data distributed in the PU array as the structure shown in FIG.
上記の方式は一般的なアドレスの変換方式を与
えるものであるから、上記の例以外のデータ構造
(3次元データなど)と他のPUアレイ構造につい
ても適用できる。 Since the above method provides a general address conversion method, it can also be applied to data structures other than the above example (such as three-dimensional data) and other PU array structures.
(6) PU間の同期
PUアレイ中の各PUに次の処理を実行させるた
めには、他のPUの現在の処理の結果が必要であ
る場合がある。そのような場合には、PUアレイ
中の各PUが次の処理を開始する前に、全てのPU
が現在の処理を終了している必要がある。従来の
同期制御回路は、第12図に示すように各PUが
1桁のフラグレジスタ67をもち、いつもは
“0”を設定しておき、同期化要求がある状態
(モード)では、各PUが現在の動作を終了したと
きにそれぞれ“1”を書き込むようにして、これ
らのフラグの一致をANDゲート68で検出し、
制御装置69は、ANDゲート68の出力が“1”
になつた後で各PUへ割り込みをかけて同期をと
るようにしていた。(6) Synchronization between PUs In order for each PU in the PU array to execute the next process, the results of the current process of the other PUs may be required. In such a case, all PUs in the PU array must be
must have finished its current processing. In the conventional synchronization control circuit, as shown in FIG. 12, each PU has a one-digit flag register 67, which is normally set to "0". "1" is written to each flag when the current operation is completed, and the match of these flags is detected by the AND gate 68.
The control device 69 determines that the output of the AND gate 68 is “1”
After that, I tried to synchronize by interrupting each PU.
しかし、プログラム中の複数箇所において、同
期をとる必要がある場合、各箇所ごとに同期をと
らなければならないが、第12図の方式ではこの
ような複数個の同期要求について各同期点を識別
することができないので、エラーにより異なる同
期点にあるPUに対しても同期制御を行なう可能
性がある。このような不都合が生じないようにす
るには、フラグレジスタの出力が“1”となつて
後、制御装置が各PUの同期要求が同種類のもの
であるかを調べる必要がある。これは、制御装置
が各PUを順次調べることにより行なわれるので、
システム全体の性能低下をきたす。 However, if it is necessary to synchronize multiple locations in a program, synchronization must be achieved at each location, but the method shown in Figure 12 identifies each synchronization point for such multiple synchronization requests. Therefore, there is a possibility that synchronization control may be performed even for PUs at different synchronization points due to an error. In order to prevent such a problem from occurring, after the output of the flag register becomes "1", the control device needs to check whether the synchronization requests of each PU are of the same type. This is done by the controller examining each PU in turn, so
This will cause a decline in the performance of the entire system.
このため本発明の同期制御回路では、1桁のフ
ラグレジスタの代りに複数桁をもつ同期レジスタ
を設け、異なる同期点に対して別々の同期コード
を設定することにより識別可能にしている。 Therefore, in the synchronization control circuit of the present invention, a synchronization register having multiple digits is provided instead of a single-digit flag register, and different synchronization codes are set for different synchronization points to enable identification.
第13図はその概要図であり、70は同期レジ
スタ、71は一致検出回路を示す。 FIG. 13 is a schematic diagram thereof, in which 70 indicates a synchronization register and 71 indicates a coincidence detection circuit.
一致検出回路71は、各同期レジスタ70に書
き込まれた同期コードが一致したとき、一致した
ことと、同期コードとを制御装置69に通知す
る。制御装置69は各PUに再スタートを指示す
ることにより同期をとる。これにより、同期点が
複数個ある場合も、各同期点ごとに確実高速に同
期をとることができる。 When the synchronization codes written in each synchronization register 70 match, the match detection circuit 71 notifies the control device 69 of the match and the synchronization code. The control device 69 achieves synchronization by instructing each PU to restart. As a result, even if there are multiple synchronization points, synchronization can be achieved reliably and quickly at each synchronization point.
また、一致した同期コードを制御装置に知らせ
ることにより、制御装置は単なる同期のみでな
く、PUの停止など他の制御を行なうことができ
る。 Furthermore, by notifying the control device of the matched synchronization code, the control device can perform not only simple synchronization but also other controls such as stopping the PU.
第14図は、同期制御回路の1実施例の構成図
であり、DMA要求を用いたPUの同期制御の例
を示す。図中、2は制御ユニツト、72はPU、
73はORゲート、74は同期要求フラグレジス
タSF、75は通信要求フラグレジスタCF、76
は同期レジスタSC、77は一致検出回路、78
はORおよびNORゲート、79はANDおよびOR
ゲート、80はタイマ、81および82はAND
ゲートである。次に回路の動作機能を説明する。 FIG. 14 is a block diagram of one embodiment of a synchronous control circuit, and shows an example of synchronous control of a PU using a DMA request. In the figure, 2 is a control unit, 72 is a PU,
73 is an OR gate, 74 is a synchronization request flag register SF, 75 is a communication request flag register CF, 76
is a synchronization register SC, 77 is a coincidence detection circuit, 78
are OR and NOR gates, 79 is AND and OR
Gate, 80 is timer, 81 and 82 are AND
It is a gate. Next, the operational functions of the circuit will be explained.
同期は、プログラム上の同期点まで実行を行
なつたPUが自分自身にHALT,WAITなどを
かけるハードウエアをセツトすることにより一
時実行を停止し、全PUがこの状態になつたこ
とを検出して一斉にPUに実行を再開させると
いう方法を用いて行なう。しかしHALT状態
の無いマイクロプロセツサを用いる場合は、
DMA要求によるPUの停止方法を用いる。同
期点まで実行を行なつたPUが自分自身に
HALT,WAITの代わりにDMAをかけるハー
ドウエアをセツトすることにより一時実行を停
止し、全PUがこの状態になつたことを検出し
て一斉にPUにDMA要求を解除することによ
り一斉に実行を開始させるという方法を用いて
行なう。 In synchronization, the PU that has executed up to the synchronization point in the program temporarily stops execution by setting hardware that applies HALT, WAIT, etc. to itself, and detects that all PUs have entered this state. This is done by having the PUs all at once resume execution. However, when using a microprocessor that does not have a HALT state,
Use the method of stopping the PU using a DMA request. The PU that executed up to the synchronization point
By setting hardware that applies DMA instead of HALT or WAIT, execution is temporarily stopped, and when all PUs are detected to be in this state, execution is stopped at once by releasing DMA requests to the PUs all at once. This is done using the method of starting.
PUごとに同期点がずれていないことを確か
にする為に、PUは複数ビツトの同期コードを
同期レジスタSCに書き込み、全PUの同期コー
ドが一致した事を検出した後、HALT要求を
解除する。 In order to make sure that the synchronization point does not shift for each PU, the PU writes a multi-bit synchronization code to the synchronization register SC, and releases the HALT request after detecting that the synchronization codes of all PUs match. .
同期によつては、一致を検出してもすぐに
HALTを解除せずに、制御ユニツト2に通知
する場合もあるので、その場合には通信要求フ
ラグレジスタCFを用いて制御ユニツトへの通
知要求を発生する。 Depending on the synchronization, even if a match is found, the
There is a case where the control unit 2 is notified without releasing HALT, so in that case, the communication request flag register CF is used to generate a notification request to the control unit.
HALT,WAITの代わりにDMA要求を用い
る場合、一般にDMAはデータ転送のために用
いられるので、同期のためのDMA要求をデー
タ転送のためのそれと区別する必要がある。そ
のためには、データ転送のためのDMAのフラ
グと同期のためのDMAのフラグ(同期要求フ
ラグレジスタSF)を互いに独立に設け、両者
の論理和(ORゲート73)により実際のPU
へのDMA要求が生じるようにする。 When using DMA requests instead of HALT and WAIT, since DMA is generally used for data transfer, it is necessary to distinguish DMA requests for synchronization from those for data transfer. To do this, the DMA flag for data transfer and the DMA flag for synchronization (synchronization request flag register SF) are provided independently from each other, and the logical sum (OR gate 73) of the two is used to determine whether the actual PU
cause a DMA request to occur.
同期エラーの検出。同期要求が少なくとも一
つ有るにもかかわらず、各同期レジスタSCの
内容が不一致のまま一定時間が経過すれば、タ
イマ80がこれを検出して制御ユニツトに通知
する。この一定時間の設定、ENABLE/
DISABLEは制御ユニツトからソフトウエアで
行なう。 Detection of synchronization errors. Even though there is at least one synchronization request, if the contents of each synchronization register SC remain inconsistent for a certain period of time, the timer 80 detects this and notifies the control unit. This fixed time setting, ENABLE/
DISABLE is performed by software from the control unit.
同期要求フラグレジスタSFは、同期レジスタ
SCへの書き込みによつてセツトされ、PU自身に
HALT(またはWAIT,DMA)要求を発生する。
そして同期をとるためのHALT解除によりリセ
ツトされる。特別にフリツプフロツプのようなフ
ラグのためのハードウエアを設けずに、同期レジ
スタSCのデフオールト(普段の値)をあらかじ
め決めておいて、その値以外になつたとき同期要
求があるものと解釈する回路によることもでき
る。 The synchronization request flag register SF is a synchronization register.
Set by writing to SC and written to PU itself.
Generates a HALT (or WAIT, DMA) request.
Then, it is reset by releasing HALT for synchronization. A circuit that predetermines the default (usual value) of the synchronization register SC without providing special hardware for a flag such as a flip-flop, and interprets it as a synchronization request when it becomes a value other than that value. It can also be done by
制御ユニツトへの通信要求フラグCFは、同期
レジスタSCへの書き込みによつてセツト/リセ
ツトされ、制御ユニツトへの通知要求を発生す
る。 The communication request flag CF to the control unit is set/reset by writing to the synchronization register SC, and generates a notification request to the control unit.
同期レジスタSCはPUからのみ同期コードを書
き込まれる。 A synchronization code is written to the synchronization register SC only from the PU.
この同期回路では、全SFが1で、且つ、全SC
が一致し、且つ、CFが0のとき、全PUの同期用
HALT要求及びフラグを解除する。CFが1のと
き、制御ユニツトに割り込みをかける。 In this synchronous circuit, all SF is 1 and all SC
matches and CF is 0, for synchronization of all PUs
Cancel HALT request and flag. When CF is 1, interrupts the control unit.
第15図は、同期をとるためにDMA要求とは
別のHALT,WAIT等の信号を用いることが可
能な場合にそれを用いた例で、同期要求フラグの
代わりに同期コードが普段の値で無い事を検出し
て同期制御を行なう方式である。図示の回路で
は、同期コードの普段の値として零を用いてお
り、そのため全てのPUの同期レジスタSCが同じ
非零の値をとつたとき同期制御を行なうようにす
る。図中の83は、全入力が同じ非零値であるこ
とを検出する一致検出回路である。 Figure 15 shows an example of using signals such as HALT and WAIT that are separate from the DMA request when possible to achieve synchronization, and the synchronization code is set to the usual value instead of the synchronization request flag. This is a method that detects the absence and performs synchronous control. In the illustrated circuit, zero is used as the normal value of the synchronization code, so synchronization control is performed when the synchronization registers SC of all PUs take the same non-zero value. 83 in the figure is a coincidence detection circuit that detects that all inputs are the same non-zero value.
第15図の回路の動作を説明する。まず、プロ
グラムの実行が同期点に到達したPUが同期レジ
スタSCに零でない同期コードを書き込む。SCの
書き込みに連動して、PUにHALTがかかる。各
PUが次々に同期コードを書き込みそして停止し、
一般検出回路によりすべての同期コードが一致
し、且つそれが零でないことが検出されると、そ
の出力信号により全SCがクリアされる。さらに
それに連動してPUのHALTが解除され、全PU
が一斉に実行を再開する。 The operation of the circuit shown in FIG. 15 will be explained. First, the PU whose program execution has reached a synchronization point writes a non-zero synchronization code to the synchronization register SC. HALT is applied to PU in conjunction with writing to SC. each
PU writes synchronous code one after another and stops,
When the general detection circuit detects that all synchronization codes match and are not zero, its output signal clears all SCs. Furthermore, HALT of PU is canceled in conjunction with this, and all PU
will resume execution all at once.
なお、第14図および第15図の回路では、同
期制御の条件の組み合わせを換えて用いることが
可能である。すなわち、同期要求フラグと
HALTその他を用いることも、同期コードの普
段の値とDMAを用いることもできる。またこれ
らや、第15図の回路に通信要求を付加すること
もできる。同期要求フラグ、WAIT信号を用い、
且つ同期コードの値がある範囲の場合に通信要求
を発生する回路の例を第16図に示す。 Note that the circuits shown in FIGS. 14 and 15 can be used with different combinations of synchronous control conditions. That is, the synchronization request flag and
You can use HALT or something like that, or you can use the normal value of the synchronization code and DMA. It is also possible to add a communication request to these circuits or the circuit shown in FIG. Using the synchronization request flag and WAIT signal,
FIG. 16 shows an example of a circuit that generates a communication request when the value of the synchronization code is within a certain range.
第16図において、84は全入力の一致とその
正、負を識別する一致検出回路である。次に第1
6図の回路の動作を説明する。まず、プログラム
の実行が同期点に到達したPUが同期レジスタSC
に同期コードを書き込む。このとき、通信の必要
のある同期点では負の同期コードを書き込み、そ
うでない同期点では正の同期コードを書き込む。
SCの書き込みに連動して同期要求フラグ(SF)
がセツトされ、PUにWAITがかかり、PUは停
止する。各PUが次々に同期コードを書き込み、
停止し、一致検出回路84によりすべての同期コ
ードが一致し、且つそれが正であることが検出さ
れると、その出力信号により全SFがクリアされ
る。それに連動しPUのWAITが解除され、全
PUが一斉に実行を再開する。同期コードが負で
あるときは、一致検出回路84により親コンピユ
ータの制御ユニツトに通信要求が伝えられる。 In FIG. 16, 84 is a coincidence detection circuit that identifies coincidence of all inputs and whether it is positive or negative. Next, the first
The operation of the circuit shown in FIG. 6 will be explained. First, the PU whose program execution has reached the synchronization point registers the synchronization register SC.
Write the synchronous code in. At this time, negative synchronization codes are written at synchronization points where communication is necessary, and positive synchronization codes are written at synchronization points where communication is not necessary.
Synchronous request flag (SF) in conjunction with SC writing
is set, WAIT is applied to the PU, and the PU stops. Each PU writes synchronization code one after another,
When the synchronization detection circuit 84 detects that all synchronization codes match and are positive, all SFs are cleared by the output signal. In conjunction with this, PU WAIT is canceled and all
PUs resume execution all at once. When the synchronization code is negative, the coincidence detection circuit 84 transmits a communication request to the control unit of the parent computer.
以上のように、本発明によれば、複合コンピユ
ータシステムにおける各要素コンピユータ間ある
いは周辺装置と要素コンピユータ間の通信時間が
短縮され、また同期制御を確実に行なうことが可
能となり、システム全体の性能を向上させること
ができる。
As described above, according to the present invention, the communication time between each element computer or between a peripheral device and an element computer in a composite computer system is shortened, and synchronization control can be performed reliably, thereby improving the performance of the entire system. can be improved.
第1図は本発明による複合コンピユータシステ
ムの全体構成図、第2図はPUアレイ内の1つの
PUの細部構成図、第3図は通信メモリCMのア
ドレス空間の説明図、第4図はPUアレイに対す
るデータ転送の従来例を説明するための概要図、
第5図はデータ転送制御装置の1実施例構成図、
第6図はデータ転送制御装置の他の実施例の構成
図、第7図は1次元構造のPUアレイの1例を示
す図、第8図は8×8の2次元の行列データの説
明図、第9図は2×4の2次元構造のPUアレイ
の説明図、第10図イ,ロはそれぞれ第9図にお
けるPU(0),PU(1)内のデータ配列を示す説明
図、第11図はアドレス変換回路の1実施例の構
成図、第12図は従来の同期制御回路の1例を示
す図、第13図は本発明による同期制御回路の概
要図、第14図は同期制御回路の1実施例の構成
図、第15図および第16図はそれぞれ同期制御
回路の他の実施例の構成図である。
図中、1はPUアレイ、2は制御ユニツト、3
はホストコンピユータ、16はマイクロプロセツ
サMPU、20はローカルメモリLM、22aは
同期レジスタSC、23乃至26は通信メモリCM
を示す。
Figure 1 is an overall configuration diagram of a composite computer system according to the present invention, and Figure 2 is a diagram of one of the components in the PU array.
A detailed configuration diagram of the PU, Figure 3 is an explanatory diagram of the address space of the communication memory CM, and Figure 4 is a schematic diagram to explain a conventional example of data transfer to the PU array.
FIG. 5 is a configuration diagram of one embodiment of a data transfer control device.
Figure 6 is a block diagram of another embodiment of the data transfer control device, Figure 7 is a diagram showing an example of a PU array with a one-dimensional structure, and Figure 8 is an explanatory diagram of 8x8 two-dimensional matrix data. , Fig. 9 is an explanatory diagram of a PU array with a two-dimensional structure of 2 × 4, Fig. 10 A and B are explanatory diagrams showing the data arrays in PU (0) and PU (1) in Fig. 9, respectively. Fig. 11 is a block diagram of one embodiment of an address conversion circuit, Fig. 12 is a diagram showing an example of a conventional synchronous control circuit, Fig. 13 is a schematic diagram of a synchronous control circuit according to the present invention, and Fig. 14 is a synchronous control circuit. A block diagram of one embodiment of the circuit, and FIGS. 15 and 16 are block diagrams of other embodiments of the synchronous control circuit, respectively. In the figure, 1 is the PU array, 2 is the control unit, and 3 is the PU array.
is a host computer, 16 is a microprocessor MPU, 20 is a local memory LM, 22a is a synchronization register SC, and 23 to 26 are communication memories CM.
shows.
Claims (1)
る2つのコンピユータ同士の間で通信可能にした
複合コンピユータシステムにおいて、各コンピユ
ータにはローカルメモリを、そして各隣接する2
つのコンピユータ間には通信メモリを設け、各コ
ンピユータごとにローカルメモリおよび通信メモ
リのそれぞれの少なくとも一部には共通のアドレ
ス領域を設定し、各コンピユータは隣接コンピユ
ータと通信を行なう際に上記共通アドレス領域を
使用してローカルメモリおよび通信メモリの双方
に同時に同一のデータを書き込むことを特徴とす
る複合コンピユータシステム。1 In a composite computer system in which multiple computers are arranged in parallel and communication is possible between two adjacent computers, each computer has a local memory, and each adjacent two
A communication memory is provided between two computers, and a common address area is set in at least a part of the local memory and communication memory for each computer, and each computer uses the common address area when communicating with an adjacent computer. A composite computer system characterized in that the same data is simultaneously written to both local memory and communication memory using .
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP59006581A JPS60151776A (en) | 1984-01-18 | 1984-01-18 | Composite computer system |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP59006581A JPS60151776A (en) | 1984-01-18 | 1984-01-18 | Composite computer system |
Publications (2)
Publication Number | Publication Date |
---|---|
JPS60151776A JPS60151776A (en) | 1985-08-09 |
JPH02733B2 true JPH02733B2 (en) | 1990-01-09 |
Family
ID=11642290
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP59006581A Granted JPS60151776A (en) | 1984-01-18 | 1984-01-18 | Composite computer system |
Country Status (1)
Country | Link |
---|---|
JP (1) | JPS60151776A (en) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4809169A (en) * | 1986-04-23 | 1989-02-28 | Advanced Micro Devices, Inc. | Parallel, multiple coprocessor computer architecture having plural execution modes |
US5339396A (en) * | 1987-11-18 | 1994-08-16 | Hitachi, Ltd. | Interconnection network and crossbar switch for the same |
JPH086777B2 (en) * | 1991-02-14 | 1996-01-29 | 東海ゴム工業株式会社 | Manufacturing method of fluid-filled mount device |
JP2579594Y2 (en) * | 1991-05-09 | 1998-08-27 | 鹿島建設株式会社 | shelter |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS5755445A (en) * | 1980-09-18 | 1982-04-02 | Nippon Telegr & Teleph Corp <Ntt> | Communication control processor |
JPS58201166A (en) * | 1982-05-19 | 1983-11-22 | Okuma Mach Works Ltd | Multiprocessor system |
-
1984
- 1984-01-18 JP JP59006581A patent/JPS60151776A/en active Granted
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS5755445A (en) * | 1980-09-18 | 1982-04-02 | Nippon Telegr & Teleph Corp <Ntt> | Communication control processor |
JPS58201166A (en) * | 1982-05-19 | 1983-11-22 | Okuma Mach Works Ltd | Multiprocessor system |
Also Published As
Publication number | Publication date |
---|---|
JPS60151776A (en) | 1985-08-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US4674032A (en) | High-performance pipelined stack with over-write protection | |
US6070003A (en) | System and method of memory access in apparatus having plural processors and plural memories | |
US5239654A (en) | Dual mode SIMD/MIMD processor providing reuse of MIMD instruction memories as data memories when operating in SIMD mode | |
EP0605401B1 (en) | Parallel computer system using a SIMD method | |
EP0211614A2 (en) | Loop control mechanism for a scientific processor | |
JPS62208158A (en) | Multiprocessor system | |
EP0410435A2 (en) | Simplified synchronous mesh processor | |
CA1264493A1 (en) | Digital computer with parallel processors | |
EP0172522B1 (en) | Data processing machine suitable for high-speed processing | |
JPH0233191B2 (en) | ||
JPH03144783A (en) | Simd processor and input/output system and method therefor | |
EP0147857A2 (en) | Parallel data processing system | |
US4251859A (en) | Data processing system with an enhanced pipeline control | |
US3340513A (en) | Instruction and operand processing | |
US3710349A (en) | Data transferring circuit arrangement for transferring data between memories of a computer system | |
JPH02733B2 (en) | ||
US3354430A (en) | Memory control matrix | |
US5765012A (en) | Controller for a SIMD/MIMD array having an instruction sequencer utilizing a canned routine library | |
Gilmore | The massively parallel processor (MPP): A large scale SIMD processor | |
RU2066067C1 (en) | Central processor for multiple-processor computer system | |
Siegel et al. | Parallel memory system for a partitionable SIMD/MIMD machine | |
JPH0646380B2 (en) | Information processing equipment | |
JPS6376028A (en) | Method for controlling execution of instruction step in virtual computer system | |
JPH05143447A (en) | Digital processor and control method for the processor | |
EP0570741A2 (en) | Controller for a SIMD/MIMD processor array |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
EXPY | Cancellation because of completion of term |