JPH061464B2 - Multi Microprocessor Module - Google Patents

Multi Microprocessor Module

Info

Publication number
JPH061464B2
JPH061464B2 JP59257533A JP25753384A JPH061464B2 JP H061464 B2 JPH061464 B2 JP H061464B2 JP 59257533 A JP59257533 A JP 59257533A JP 25753384 A JP25753384 A JP 25753384A JP H061464 B2 JPH061464 B2 JP H061464B2
Authority
JP
Japan
Prior art keywords
processor
instruction
shared memory
processors
synchronization
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
Application number
JP59257533A
Other languages
Japanese (ja)
Other versions
JPS61136157A (en
Inventor
雅嗣 亀谷
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hitachi Ltd
Original Assignee
Hitachi Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Hitachi Ltd filed Critical Hitachi Ltd
Priority to JP59257533A priority Critical patent/JPH061464B2/en
Publication of JPS61136157A publication Critical patent/JPS61136157A/en
Publication of JPH061464B2 publication Critical patent/JPH061464B2/en
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • G06F15/163Interprocessor communication
    • G06F15/173Interprocessor communication using an interconnection network, e.g. matrix, shuffle, pyramid, star, snowflake
    • G06F15/17356Indirect interconnection networks
    • G06F15/17368Indirect interconnection networks non hierarchical topologies

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Theoretical Computer Science (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Multi Processors (AREA)

Description

【発明の詳細な説明】 〔発明の利用分野〕 本発明は種々の並列処理用ハードウエア機構を有し、高
度なMIMD(Multi-Instruction stream Multi Data strea
m)型の並列処理とプロセツサの遊び時間を利用した適応
型の並列処理とによつて、知能ロボツト等の高度知能処
理や運動制御適応制御に伴うリアルタイム処理に適した
マルチ・マイクロプロセツサに関するものである。
DETAILED DESCRIPTION OF THE INVENTION [Field of Use of the Invention] The present invention has various parallel processing hardware mechanisms and has an advanced MIMD (Multi-Instruction stream Multi Data stream).
(m) type parallel processing and adaptive parallel processing using the processor's play time, relating to multi-microprocessors suitable for advanced intelligence processing such as intelligent robots and real-time processing accompanying motion control adaptive control Is.

〔発明の背景〕[Background of the Invention]

従来のマルチ・マイクロプロセツサ・システムは、ハー
ドウエア構成自体が専用的で、汎用的な用途に向かなか
つたり、平等プロセツサ方式を採り汎用性を目指したシ
ステムでもハードウエア構成が十分検討されておらず、
データの通信やプロセツサ間の同期をとるためのフラグ
やステータス授受に多大のソフトウエアオーバヘツドを
伴い、タスクを十分細分化できず効率の良い並列処理を
実現できていない例が多い。
In the conventional multi-microprocessor system, the hardware configuration itself is dedicated, and it is suitable for general-purpose applications, and even with a system aiming at versatility by adopting the equal processor system, the hardware configuration has been thoroughly studied. No,
A lot of software overhead is involved in data communication and flag exchange for processor synchronization and status exchange, and in many cases tasks cannot be subdivided sufficiently and efficient parallel processing cannot be realized.

文献「システムと制御第28巻第4号別冊PP73〜7
6(1984)」に発表された「ブロードキヤストメモリ結合
型計算機」と題する論文を例にとつて説明する。この例
においては、プロセツサ間の通信手段として、プロセツ
サごとにブロードキヤストメモリと呼ばれる共有メモリ
を設け、読み出し処理のみ各プロセツサで独立して行
え、書き込み処理については、あるプロセツサが自分の
ブロードキヤストメモリにデータの書き込みを行うと自
動的にすべてのプロセツサのブロードキヤストメモリの
同一のアドレスにデータが転送される方式を採用して、
プロセツサ間のアクセス競合を減少させる工夫をしてい
る。この例においては、数値計算等のスタテイツクなプ
ログラムを並列処理するものとし、共有メモリへの読み
出し処理の回数の方が書き込み処理の回数より十分多い
ことを前提としているためこの様な設計が成り立つ訳で
あるが、データ領域として使用する共有メモリの場合、
読み出し処理が特に多くなるのは、共有メモリ上にステ
ータスを置きチエツクループで監視する様な場合であ
り、純粋な共有データの送受のみを考えた場合、共有メ
モリ上への書き込み処理回数の共有メモリへの全読み出
し、書き込み処理回数に占める割合は、通常の技術計算
や数値計算においても20%前後には達すると考えられ
る。また制御用途のシステムを考えた場合、センサ等か
らのたれ流しデータの書き込み処理や、大量のデータ移
動などダイナミツクな要素が多いため、書き込み処理の
割合はさらに増加すると考えられ、書き込み処理、読み
出し処理が共に高速に行えなければならない。この例に
おける共有メモリへの書き込み処理は、汎用の1つのシ
ステムバスを使用するため、ステツチ切換やアクセス競
合によるハードウエアオーバーヘツドが非常に大きいと
考えられ、制御用途に使用する際の上述した種々の問題
が考慮されていないし、また、同一内容のメモリをプロ
セツサ数台分持つことは、経済的な観点からみれば無駄
が多く、すぐれているとは言えないと考えられる。さら
に、従来のシステムにおいてもこの例においても、プロ
セツサ間同期手段等の特別な並列処理用ハードウエア機
構を有しておらず、並列処理を行う際の必要な付加的処
理は共有メモリ等の汎用通信手段を利用してすべてソフ
トウエアにより行うが一般的であり、並列処理タスク間
の接続に多大のソフトウエアオーバーヘツドを要するた
め、分割タスクを大きくしなければならず、この例の第
1表に示される様に、並列処理性の最も高い対象の1つ
であり、プロセツサ台数分の並列処理効率が得られると
考えられる行列の積の計算においてすらも、通信オーバ
ーヘツドやプロセツサ間の同期オーバーヘツド及び分割
タスクの少なさ等から、並列処理効率が使用プロセツサ
数の増加に対して直線的に向上していない。また、この
例を含む従来のマルチ・マイクロプロセツサ・システム
は、最初から並列処理性の高い処理対象に限定したり、
処理の特種性に注目してそれに合致する様にハードウエ
ア及びソフトウエアを構成する専用用途向けのシステム
が大半であり、ダイナミツクな要素を含む並列処理プロ
セツサ間での条件ジヤンプや、処理対象の並列処理性に
伴うプロセツサの遊び時間等のプロセツサの余剰能力の
利用に関しては全く考慮されていなかった。しかし、種
々のリアルタイム処理を行うことを前提とした汎用シス
テムにおいては、並列処理性の高い処理も低い処理も混
在しており、高度な処理対象においてはプロセツサ間で
の条件ジヤンプ処理や、プロセツサの遊び時間の管理と
その有効利用に関する問題が、システムの汎用性と高い
コストパーフオーマンスを維持する上で重要になると考
えられる。
Document "System and Control Vol. 28, No. 4, Supplement, PP73-7
6 (1984) ”entitled" Broadcast Memory Combining Computer "will be described as an example. In this example, as a communication means between the processors, a shared memory called a broadcast memory is provided for each processor, and only the reading process can be performed independently by each processor, and for the writing process, a certain processor can write to its own broadcast memory. Adopting the method of automatically transferring data to the same address of the Broadcast memory of all processors when writing data,
We are trying to reduce access competition between processors. In this example, a static program such as numerical calculation is processed in parallel, and it is assumed that the number of read processing to the shared memory is sufficiently larger than the number of write processing. However, in the case of shared memory used as a data area,
The number of read processes is especially large when the status is set on the shared memory and is monitored by a check loop. Considering only pure shared data transmission / reception, the shared memory of the number of write processes on the shared memory It is considered that the ratio of the total number of times of reading and writing to the memory reaches about 20% in ordinary technical calculation and numerical calculation. In addition, when considering a system for control applications, there are many dynamic elements such as the processing of writing data flowing away from sensors, etc., and the movement of large amounts of data, so the proportion of writing processing is considered to increase further. Both must be able to do it at high speed. Since the writing process to the shared memory in this example uses one general-purpose system bus, it is considered that the hardware overhead due to the switch of the switch and the access competition is very large. Is not taken into consideration, and it is considered that having a memory of the same contents for several processors is wasteful from an economical point of view and is not considered excellent. Furthermore, neither the conventional system nor this example has a special parallel processing hardware mechanism such as inter-processor synchronization means, and the additional processing required for parallel processing is general-purpose such as shared memory. It is general that all is done by software using communication means, and since a large amount of software overhead is required for connection between parallel processing tasks, the division tasks must be made large. As shown in, even in the calculation of the matrix product, which is one of the objects with the highest parallelism and is considered to have the parallelism efficiency of the number of processors, the communication overhead and the synchronization overrun between the processors Due to the small number of heads and divided tasks, parallel processing efficiency does not improve linearly with the increase in the number of processors used. In addition, the conventional multi-microprocessor system including this example is limited to the processing target with high parallel processing from the beginning,
Most of the systems are for specialized use, and the hardware and software are configured to match the special characteristics of the processing, and the condition jump between parallel processing processors including dynamic elements and the parallel processing of the processing target are included. No consideration was given to the use of excess capacity of the processor such as the play time of the processor due to the processability. However, in a general-purpose system premised on performing various kinds of real-time processing, processing with high parallel processing and processing with low parallel processing are mixed, and for advanced processing targets, conditional jump processing between processors and processing of processors are performed. The issues of managing play time and its effective use will be important in maintaining system versatility and high cost performance.

〔発明の目的〕[Object of the Invention]

本発明の目的は、高い並列処理効率と汎用性を備えるマ
ルチ・マイクロプロセツサ・モジユールを提供すること
にある。
An object of the present invention is to provide a multi-processor module having high parallel processing efficiency and versatility.

〔発明の概要〕[Outline of Invention]

本発明は高い並列処理効率の実現のため、並列処理に是
非必要と思われるプロセツサ間の並列処理用ステータス
通信ハードウエア手段と、データ通信専用に設けた複数
の高速共用メモリ通信手段とを、それぞれ独立させて設
けることにより、高い通信スループツトと、プロセツサ
からのソフトウエアによるオペレーシヨンオーバーヘツ
ドの極小化とを実現し、並列処理におけるプロセツサ間
の命令伝達、プロセツサ間の同期等のタスク接続時間に
影響を及ぼす操作のソフトウエアオーバーヘツドと、デ
ータ通信におけるプロセツサ間の競合によるハードウエ
アオーバーヘツドの最小化を図ることによつて、タスク
の細分化と多数のプロセツサへの分配を可能とし、それ
によつて高い並列処理効率を得ることができる。また、
プロセツサを任意のグループに分け、そのグループ内の
プロセツサ間で同期をとるグループ内プロセツサ間同期
手段を独立に複数設け、多重同期によつて、データフロ
ー風にスケジユールされた並列処理を、プロセツサをグ
ループ化して統一的に制御することによりMIMD(Multi-I
nstruction stream Multi-Data stream)型並列処理を機
械的にかつ効率良く実行できるばかりか、同期手段によ
り同期単位を明確化し、プロセツサの並列動作を多重、
階層的に管理及び制御することが可能となるため、各同
期単位間での条件ジヤンプ処理等の汎用的な機能を実現
できる。さらに、同期手段の同期完了割込み機能により
プロセツサ間の同期チエツクをハードウエアで監視する
ことによつて、スケジユールされた並列処理の実行中に
生ずるプロセツサの遊び時間を、並列処理のスケジユー
ルを乱すことなくバツクグラウンドオペレーシヨンに割
り当てることができ、これによつてプロセツサの遊び時
間の有効利用が可能となる。
In order to achieve high parallel processing efficiency, the present invention includes a status communication hardware means for parallel processing between processors, which is considered necessary for parallel processing, and a plurality of high-speed shared memory communication means dedicated for data communication, respectively. By providing them independently, high communication throughput and minimization of operation overhead by software from processors are realized, which affects the task connection time such as instruction transmission between processors and synchronization between processors in parallel processing. It is possible to subdivide tasks and distribute them to a large number of processors by minimizing the software overhead of the operation that affects the processing and the hardware overhead due to the competition between the processors in data communication. High parallel processing efficiency can be obtained. Also,
Divide the processors into arbitrary groups, and independently provide multiple inter-processor synchronization means to synchronize the processors in the group.By using multiple synchronization, parallel processing scheduled like a data flow can be performed by grouping the processors. MIMD (Multi-I
nstruction stream Multi-Data stream) type parallel processing can be executed mechanically and efficiently, and the synchronization unit is clarified by the synchronization means, and the parallel operation of the processor is multiplexed.
Since it is possible to manage and control in a hierarchical manner, general-purpose functions such as conditional jump processing between each synchronization unit can be realized. Furthermore, by monitoring the synchronization check between the processors by the hardware by the synchronization completion interrupt function of the synchronizing means, the processor play time generated during the execution of the scheduled parallel processing can be prevented without disturbing the parallel processing schedule. It can be assigned to the back ground operation, which allows effective use of the processor's play time.

以上により、目的の密結合型マルチ・マイクロプロセツ
サ・モジユールのハードウエア・アーキテクチユアを提
供した。なお本発明をモジユールと称したのは、本発明
のマルチ・マイクロプロセツサを多数結合し、さらに大
規模なマルチ・マイクロプロセツサ・システムを構築す
ることが最終目標であり、本発明のマルチ・マイクロプ
ロセツサは、その基礎となるプロセツサ・モジユールと
みなせるからである。
As described above, the hardware architecture of the desired tightly coupled multi-microprocessor module is provided. The present invention is called a module because the final goal is to combine a large number of multi-microprocessors of the present invention to construct a larger-scale multi-microprocessor system. Microprocessors can be regarded as the underlying processor modules.

〔発明の実施例〕Example of Invention

以下本発明の実施例を図面を参照しながら詳細に説明す
る。
Hereinafter, embodiments of the present invention will be described in detail with reference to the drawings.

第1図は、本発明のマルチ・マイクロプロセツサ・モジ
ユールのハードウエア構成の実施例を示すブロツク図で
ある。ベースとなるマイクロプロセツサ1〜13を3本
の独立した共有メモリバス73,74,75及びおもに
共通のインタフエイス95を接続するためのシステムバ
ス109とで接続している。また、並列処理のため予め
必要となると思われるフラグ,ステータス及び、任意プ
ロセツサ間で命令の送受を行うためのプロセツサ間命令
伝達手段,プロセツサ間で同期をとるためのグループ内
プロセツサ間同期手段,同期割込み機能等の遊びプロセ
ツサ管理機能及び機構等の特別に考案した並列処理用ハ
ードウエアを各プロセツサのコミユニケーシヨンコント
ローラ21〜33に格納のして共通バス76、専用と共
通の混合バス77とにより他の共通バスとは独立させ
て、各コミユニケーシヨンコントローラを接続してい
る。これにより、並列処理のために必要となるフオーマ
ツト化可能な機能及びステータス,フラグ類を、共有メ
モリ上でソフトウエアにより実現するのではなく、専用
ハードウエアによりごく簡単な操作で効率良く実現でき
るため、ソフトウエアに伴うオーバーヘツドタイムを極
小化できるばかりか、共有メモリ上で実行した場合共有
メモリを長期間専有するステータスチエツククループを
大半コミユニケーシヨンコントローラ21〜33の専用
手段上でアクセス競合によるオーバーヘツド無しで実行
できるため、共有メモリの負担を大幅に軽減し、全体の
スループツトを大幅に上昇させている。プロセツサ間命
令伝達手段及びグループ内プロセツサ間同期手段につい
ては後で詳述する。共有メモリ14,15,16は、そ
れぞれ共有メモリバス73,74,75の上にあり、プ
ロセツサ1〜13を共有メモリに接続するためのアービ
テーシヨンコントロールを行う判別回路17,18,1
9によつて各共通バス73,84,75を制御するよう
になつている。34〜46は、共有メモリ14の接続さ
れた共通バス73にプロセツサのローカルバス110〜
112をデコードして要求信号を作り出すデコーダ回路
であり、専用バス123につて共有メモリアクセス要求
信号、許可信号のやりとりを行う。共有メモリ15,1
6における47〜59と124及び60〜72と125
の関係と機能も上記と同様である。システムバス109
は、共有メモリバス程高速でない汎用バスであり、バス
アービタ94によつて制御される。96〜108は、共
有メモリの場合と同様に、バススイツチ及びデコーダ回
路からなり、専用バス126を通してバス要求及びバス
使用許可信号の送受を行う。78〜90はプロセツサ1
〜13にそれぞれ設けられたローカルメモリ及びローカ
ルインタフエイスである。本システムにおいては、通常
のプロセツサ及びプロセツサ個々に分担可能なインタフ
エイスはできるかぎり78〜90内に置く。ローカルイ
ンタフエイスには、演算用プロセツサ等の補助プロセツ
サ手段も含まれ、これに対する主プロセツサはそれら補
助プロセツサとの間でローカルな並列処理を実行する。
20は、後述するプロセツサ間同期手段の共有メモリ1
4上に設けた命令指示マトリックステーブルの解析を行
う回路であり、解析結果を共有バス77にのせて21〜
33に伝達している。本実施例においては、プロセツサ
1〜13は基本的に平等であるが、便宜上1〜10を並
列処理用、11〜13をシステムマネージメント用とし
て、11〜13にはそれぞれ外部のモジユールと通信を
行うためのデユアルポートRAMをベースとした外部通
信手段91〜93を設けている。本発明の実施例は、上
述したように、バス手段において、機能別に、データ通
信を高速で行う共通メモリバス73〜75、並列処理関
する通信を専用に行うコミユニケーシヨンコントローラ
21〜33を結ぶ共通及び専用バス76,77さらに、
汎用の共通インタフエイス95を接続するシステムバス
109とに機能分散を図ることにより、競合による損失
や無駄の少ない高いスループツトを実現することを特徴
としている。
FIG. 1 is a block diagram showing an embodiment of the hardware configuration of the multi-microprocessor module of the present invention. The base microprocessors 1 to 13 are connected to three independent shared memory buses 73, 74 and 75 and a system bus 109 for connecting mainly a common interface 95. Also, flags and statuses that are considered to be required in advance for parallel processing, inter-processor command transmission means for sending and receiving instructions between arbitrary processors, inter-processor synchronization means for synchronization between processors, synchronization A specially devised parallel processing hardware such as a play processor management function such as an interrupt function and a mechanism is stored in the communication unity controllers 21 to 33 of each processor, and the common bus 76 and the dedicated and common mixed bus 77 are used. Each communication controller is connected independently of other common buses. As a result, the functions, statuses, and flags that can be converted to the format required for parallel processing can be efficiently realized by dedicated hardware, not by software on the shared memory. In addition to minimizing the overhead time associated with software, most of the status check loops that occupy the shared memory for a long time when executed on the shared memory are overrun due to access conflicts on the dedicated means of the communication controller 21 to 33. Since it can be executed without a head, the burden on shared memory is greatly reduced, and the overall throughput is greatly increased. The inter-processor command transmission means and the intra-processor synchronization means will be described in detail later. The shared memories 14, 15 and 16 are on the shared memory buses 73, 74 and 75, respectively, and the discrimination circuits 17, 18 and 1 for performing arbitration control for connecting the processors 1 to 13 to the shared memory.
9, the common buses 73, 84, 75 are controlled. 34 to 46 are the common buses 73 connected to the shared memory 14 and the processor local buses 110 to 110.
A decoder circuit that decodes 112 to generate a request signal, and exchanges a shared memory access request signal and a permission signal with the dedicated bus 123. Shared memory 15,1
6 47-59 and 124 and 60-72 and 125
The relationship and function of are also the same as above. System bus 109
Is a general purpose bus that is not as fast as the shared memory bus and is controlled by the bus arbiter 94. As in the case of the shared memory, 96 to 108 are composed of a bus switch and a decoder circuit, and send and receive a bus request and a bus use permission signal through the dedicated bus 126. 78-90 is processor 1
13 to 13 are a local memory and a local interface, respectively. In this system, an ordinary processor and an interface which can be shared by each processor are placed within 78 to 90 as much as possible. The local interface also includes auxiliary processor means such as a processor for arithmetic operation, to which the main processor executes local parallel processing with the auxiliary processors.
Reference numeral 20 denotes a shared memory 1 of inter-processor synchronization means described later.
4 is a circuit for analyzing the instruction instruction matrix table provided on the No. 4, and the analysis result is put on the shared bus 77 to 21 to 21.
To 33. In this embodiment, the processors 1 to 13 are basically equal, but for convenience, 1 to 10 are used for parallel processing, 11 to 13 are used for system management, and 11 to 13 communicate with external modules, respectively. External communication means 91 to 93 based on a dual port RAM are provided. In the embodiment of the present invention, as described above, in the bus means, the common memory buses 73 to 75 that perform data communication at high speed and the communication units 21 to 33 that exclusively perform communication related to parallel processing are connected by function. And private buses 76 and 77,
By distributing the functions to the system bus 109 connecting the general-purpose common interface 95, it is possible to realize a high throughput with less loss and waste due to competition.

ここで特に重要な共有メモリバス、判別回路及び共有メ
モリからなる共通メモリ通信手段についてさらに詳述す
ることにする。第1図に示すように、本実施例において
は3つの独立した共有メモリ14,15,16を有して
おり、14を種々のプログラムで使用する共有ステータ
ス領域として、共有メモリ15,16は共有データ通信
領域として定義している。共有メモリ15,16は合成
アドレス空間と称し、プロセツサ1〜13に対する共有
メモリバス74,75における優先順位をそれぞれ変え
て設定し奇数ワードアドレスを15に偶数ワードアドレ
スを16に割り付けアドレス空間を合成している。本実
施例においては、15がプロセツサ1,2…13の順、
16が13,12…1の順に優先順位を設定して全体と
してほぼ平等になるように考慮しているが、優先順位の
付け方は他にも可能である。また独立した共有メモリ数
及び機能の割り振りはベースプロセツサの性能や機能に
より最適なものを選ぶようにする必要がある。共有メモ
リの高速制御手法を第2図により説明する。プロセツサ
のメモリサイクルはT1,T2,T3,T4の4つのクロツ
クから成るとし、第2図および第3図中に示している。
tはシステム全体を制御するクロツク周期である。プロ
セツサ1〜13及び共有メモリの判別回路17,18,
19はすべて同一のクロツクで動作し、そのクロツクピ
リオドを第2図および第3図中ので代表される縦線で
示している。第2図により基本的なアクセスタイミング
を説明する。g1,g2はプロセツサPm,Pnそれぞれ
のメモリサイクルgをacは共有メモリアクセス要求を
さらにiには共有メモリアクセス許可を示しており、プ
ロセツサPm,Pnは読み出しサイクルにおいてそれぞ
れa及びbのタイミングでデータをプロセツサ内に取り
込むものとする。この点から前の2クロツクを共有メモ
リのサイクルとして定義し、共有メモリサイクルごとに
共有メモリバスの獲得、放棄を行って共有メモリのアク
セス許可信号inは常にこの期間にアクテイブになる様
な制御方式を採つている。まず、共有メモリをアクセス
する際の共有メモリのアクセス要求信号hnはT1の中程
でアクテイブにされ、アクセス競合が起こらない場合
は、次のクロツクピリオドのc及びeのタイミングで判
別回路17〜19が共有メモリバスの制御を開始し、こ
の時点でプロセツサPmの場合もPnの場合も他のプロ
セツサのアクセス要求が無いので判別回路は直ちにプロ
セツサPm,Pnの共有メモリのアクセス許可信号i1
及びi2をアクテイブにする。次のクロツクピリオドの
mとnでi1,i2がアクテイブになつている状態を受け
てT3に入つたところでi1,i2を非アクテイブにし、
さらに次のクロツクピリオドのd及びfでそれぞれ共有
メモリのアクセス要求信号h1,h2が非アクテイブにな
つている状態を受けて共有メモリのアクセス許可信号i
1及びi2を非アクテイブにする。第2図におけるプロセ
ツサPmと Pnはメモリサイクルが重つているにもかかわらず、共
有メモリのアクセス要求信号h1とh2が重つていないた
め、プロセツサの動作には一切影響与えず制御されてお
り、非常に効率が良くなつているのがわかる。第3図
は、プロセツサPm及びPnの共有メモリ・アクセス要
求信号h3とh4が重つており、アクセス競合が生じてい
る状態を示している。プロセツサPmは第2図と同様で
あるが、プロセツサPnは共有メモリのアクセス要求信
号h4をT1の中程でアクテイブにし、次のクロツクピリ
オドで判定回路17〜19が共有メモリバスの制御を開
始すると、プロセツサPmの共有メモリのアクセス要求
信号h3及び許可信号i3が共にアクテイブになつてお
り、すでに共有メモリをアクセスしているので、プロセ
ツサPnの共有メモリのアクセス許可信号i4はアクテ
イブにせず、そのかわりにjのタイミングでTwを挿入
する信号をつくり出し、プロセツサのメモリサイクルを
1クロツクだけのばし、それを受けてプロセツサPnの
共有メモリのアクセス要求信号h4のアクテイブな状態
も1クロツクのばす操作を行う。これ以後クロツクピリ
オドごとに同様の操作を繰り返していく。さて、pのタ
イミングでプロセツサPmの共有メモリのアクセス要求
信号h3が非アクテイブになついているので、それとプ
ロセツサPnの共有メモリのアクセス要求信号h4のア
クテイブな状態をqで知り、判別回路17〜19は直ち
にプロセツサPmの共有メモリのアクセス許可信号i3
を非アクテイブにし、プロセツサPnの共有メモリのア
クセス許可信号i4をアクテイブにする。以後の動作は
第2図と同様であるが、共有メモリのサイクルはT3
Twの部分にずれ、プロセツサのデータ読み込みタイミ
ングは常にT4の前のクロツクピリオドkに位置する。
以上によつて必要最小限の待ち時間及び1クロツク内の
十分短かい時間で共有メモリバスの放棄、獲得処理を行
いプロセツサを共有メモリに接続していく無駄のない制
御タイミングにより、常に2クロツクだけ共有メモリを
占有し、共有メモリのアクセス要求を出しているプロセ
ツサを次々に連続アクセスさせる効率の良いバス制御を
行つている。また第3図の様に、すでにプロセツサPm
のi3がアクテイブになつている場合は、無条件に、先
にアクセスを許可されたプロセツサPmを優先するが、
いずれも共有メモリのアクセスを許可されておらず、共
有メモリのアクセス要求が重つている場合は、判別回路
18〜19がバス制御を行う際予め定められた優先順位
に基づいて、優先順位の高い方を優先する。なお、共有
メモリのサイクルを構成するクロツク数は、共有メモリ
のアクセス速度、バススイツチ時間、バツフア遅延時
間、セツトアツプ時間等を考慮して最適に決定する。
Here, the common memory communication means including a shared memory bus, a discrimination circuit, and a shared memory, which are particularly important, will be described in more detail. As shown in FIG. 1, this embodiment has three independent shared memories 14, 15 and 16, and 14 is a shared status area used by various programs, and the shared memories 15 and 16 are shared. It is defined as a data communication area. The shared memories 15 and 16 are called composite address spaces, and are set by changing the priorities of the shared memory buses 74 and 75 for the processors 1 to 13, respectively, and assign an odd word address to 15 and an even word address to 16 to combine the address spaces. ing. In this embodiment, 15 is the order of the processors 1, 2, ...
16 are set in order of 13, 12, ... 1 so that they are almost equal as a whole, but other priorities can be assigned. In addition, it is necessary to select the optimum number of shared memories and allocation of functions depending on the performance and functions of the base processor. A high-speed control method for the shared memory will be described with reference to FIG. The memory cycle of the processor is assumed to consist of four clocks T 1 , T 2 , T 3 , T 4 and is shown in FIGS. 2 and 3.
t is a clock cycle that controls the entire system. Processors 1 to 13 and shared memory discrimination circuits 17 and 18,
19 operates with the same clock, and the clock period is shown by a vertical line represented by in FIGS. 2 and 3. The basic access timing will be described with reference to FIG. g 1 and g 2 indicate a memory cycle g of each of the processors Pm and Pn, ac indicates a shared memory access request, and i indicates a shared memory access permission, and the processors Pm and Pn respectively indicate timings of a and b in the read cycle. The data shall be loaded into the processor with. Define the previous two clock as the cycle of the shared memory from this point, shared memory acquisition of the shared memory bus for each recycling, access permission signal i n of the shared memory by performing a waiver is always Akuteibu to become such control in this period The method is adopted. First, when accessing the shared memory, the access request signal h n of the shared memory is made active in the middle of T 1 , and when access conflict does not occur, the determination circuit is performed at the timings c and e of the next clock period. 17 to 19 start control of the shared memory bus, and at this point in time, neither the processor Pm nor the processor Pn has an access request from another processor. Therefore, the discrimination circuit immediately determines the access permission signal i of the shared memory of the processors Pm and Pn. 1
And i 2 are made active. In the next clock period, m and n, when i 1 and i 2 are inactive, when they enter T 3 , i 1 and i 2 are made inactive,
Further, at the next clock periods d and f, the shared memory access request signals h 1 and h 2 are inactive, and the shared memory access permission signal i is received.
Make 1 and i 2 inactive. Although the processors Pm and Pn in FIG. 2 have overlapping memory cycles, the access request signals h 1 and h 2 of the shared memory do not overlap, so they are controlled without affecting the operation of the processor. And it can be seen that it is very efficient. FIG. 3 shows a state in which the shared memory access request signals h 3 and h 4 of the processors Pm and Pn are overlapped with each other and access conflict occurs. The processor Pm is the same as that shown in FIG. 2, but the processor Pn activates the access request signal h 4 of the shared memory in the middle of T 1 , and the decision circuits 17 to 19 control the shared memory bus at the next clock period. When the access request signal h 3 of the shared memory of the processor Pm and the permission signal i 3 are both active and the shared memory has already been accessed, the access permission signal i 4 of the shared memory of the processor Pn is Instead of making it active, a signal for inserting Tw is generated at the timing of j instead, the memory cycle of the processor is extended by one clock, and in response, the active state of the access request signal h 4 of the shared memory of the processor Pn is also set to 1. Perform the spread operation of the clock. After that, the same operation is repeated for each clock period. Now, at the timing of p, the access request signal h 3 of the shared memory of the processor Pm is inactive, so that it and the active state of the access request signal h 4 of the shared memory of the processor Pn are known by q, and the discrimination circuit 17 to 19 immediately of the shared memory of the processor Pm access permission signal i 3
Is made inactive, and the access permission signal i 4 of the shared memory of the processor Pn is made active. The subsequent operation is the same as that shown in FIG. 2, but the cycle of the shared memory is deviated to the portions of T 3 and Tw, and the data read timing of the processor is always located at the clock period k before T 4 .
As a result, only two clocks are always available due to the control timing that is not wasteful, that is, the shared memory bus is abandoned and acquired and the processor is connected to the shared memory with the minimum required waiting time and a sufficiently short time within one clock. Efficient bus control is performed to occupy the shared memory and successively access the processors that are requesting access to the shared memory one after another. Moreover, as shown in FIG. 3, the processor Pm has already been
When i 3 of is active, the processor Pm that is allowed to access is given priority without any condition.
When none of the shared memory access is permitted and the shared memory access requests are overlapped, the determination circuits 18 to 19 have a high priority based on a predetermined priority when performing bus control. Give priority to one. The number of clocks forming the cycle of the shared memory is optimally determined in consideration of the access speed of the shared memory, the bus switch time, the buffer delay time, the set up time and the like.

次に第4図及び第5図を参照しながらプロセツサ時命令
伝達機構について詳細に説明する。プロセツサ間命令伝
達機構は、共有メモリ上に任意プロセツサから任意プロ
セツサへの命令伝達を可能とする命令指示マトリツクス
・テーブルを設け、命令を指示するプロセツサがそこへ
命令指示データを書き込むと自動的に命令を指示された
プロセツサへ割込みがかかり、命令を指示されたプロセ
ツサは命令指示テーブル上の命令指示データを直接受け
とりそれに従つて命令処理ルーチンの起動を行うことに
特徴がある。本実施例においては、各プロセツサ1〜1
3の割込みベクトルテーブルの一部を共有メモリ14上
に共有し命令指示マトリツクス・テーブルを構成してい
る。命令を指示するプロセツサは命令を実行させたいプ
ロセツサに対して命令指示マトリツクス・テーブルの所
定の場所に実行させたい命令処理ルーチンの先頭番地を
直接書き込み、命令を実行させたいプロセツサの割込み
応答動作中の割込みベクトル・テーブルからジヤンプ先
フエツチ動作を利用し、指示した命令処理ルーチンの先
頭番地を直接フエツチさせ、命令処理ルーチンへジヤン
プさせる手法を採つている。第4図は、共有メモリ14
上の命令指示マトリツクス・テーブルの本実施例におけ
る構成を示している。COPnは、プロセツサPnから
命令指示領域であり、COPnの中がさらにプロセツサ
0〜P15への命令指示領域であるVn0〜Pn15にわか
れている。例えば、VnmにプロセツサPnが命令を書き
込むとプロセツサPmに命令が伝達される。第5図はプ
ロセツサ間命令伝達手段のハードウエア・ブロツク図を
示している。動作シーケンスを詳述すれば、あるプロセ
ツサが命令指示を行うと、共有メモリ14上の命令指示
マトリツクステーブル148をデコーダ回路127によ
つて解析し、命令を指示したプロセツサ番号nと命令を
指示されたプロセツサ番号mに変換してそれぞれ共通バ
ス128と129上に乗せる。共通バス128及び12
9は、各プロセツサごとに設置されたコミユニケーシヨ
ンコントローラ21〜33中の命令指示回路149〜1
61内にとり込まれデコーダ回路130が共通バス12
9を解析して自分自身に命令が指示されたかどうかを知
り、もし自分自身に命令が指示されていたならデコーダ
回路131の解析結果を信号線162によつて有効にす
る。デコーダ回路131は、どのプロセツサが自分に命
令を指示したかを解析しており、デコーダ回路130か
ら有効信号を信号線162によつて受けたならば、解析
結果として命令を指示したプロセツサに対応する2進カ
ウンタ132〜144のうちいずれかをカウントさせ、
割込み制御回路145に割込み制御要求を伝達すると同
時に専用147に結果を乗せ、命令を指示したプロセツ
サにステータスとして知らせる。割込み制御回路145
はプロセツサに割込みをかけ、割込みが受け付けられた
なら命令を指示したプロセツサの属性に相当する割込み
ベクトルをプロセツサに対し発生し、それを受け取つた
プロセツサは、命令指示マトリツクス・テーブル中の命
令が書き込まれたアドレスを参照し、指示された命令ル
ーチンの先頭に直接ジヤンプする。ここで、命令を指示
されたプロセツサが命令指示マトリツクス・テーブルの
命令が指示されたアドレスを参照した際、上記と同様の
シーケンスで、2進カウンタ132〜144のうち同じ
2進カウンタをカウントさせ初期状態に戻す操作が自動
的に行われる。これにより割込み制御回路への割込み制
御要求信号がクリアされ、専用バス147へのステータ
ス信号も同時にクリアされる。命令を指示したプロセツ
サは、自分に関係する命令発動のステータスを例えばプ
ロセツサPOのステータス信号線146のごとくとり込
み監視することによつて、命令の発動及び起動状態を管
理でき、次の命令を発動できるか否かの判断が可能とな
る。以上の様にして、ごく簡単な操作により任意プロセ
ツサ間で高速な命令伝達が可能となるばかりか、命令の
起動状況の管理も可能となる。
Next, with reference to FIGS. 4 and 5, the command transmission mechanism at the time of processor will be described in detail. The inter-processor instruction transmission mechanism provides an instruction instruction matrix table that enables instruction transmission from an arbitrary processor to an arbitrary processor on the shared memory, and when the instruction instruction processor writes the instruction instruction data to it, the instruction instruction table is automatically executed. Is interrupted to the processor instructed, and the processor instructed to directly receives the instruction instruction data on the instruction instruction table and activates the instruction processing routine according to the instruction instruction data. In this embodiment, each processor 1 to 1
A part of the interrupt vector table 3 is shared on the shared memory 14 to form an instruction instruction matrix table. The processor that gives the instruction directly writes the start address of the instruction processing routine that you want to execute to the processor that you want to execute the instruction to a predetermined location in the instruction instruction matrix table, A jump destination fetch operation is used from the interrupt vector table to directly fetch the designated start address of the instruction processing routine and jump to the instruction processing routine. FIG. 4 shows the shared memory 14
The structure in this embodiment of the above instruction instruction matrix table is shown. COPn is a command instruction region from processor Pn, are divided into Vn 0 to PN 15 is a command instruction region to further processor P 0 to P 15 is in the COPn. For example, when the processor Pn writes an instruction to Vnm, the instruction is transmitted to the processor Pm. FIG. 5 shows a hardware block diagram of the instruction transfer means between processors. The operation sequence will be described in detail. When a processor issues an instruction, the decoder circuit 127 analyzes the instruction instruction matrix table 148 in the shared memory 14 and the processor number n and the instruction that issued the instruction are instructed. It is converted into a processor number m and placed on the common buses 128 and 129, respectively. Common buses 128 and 12
Reference numeral 9 is an instruction designating circuit 149-1 in the communication unit controllers 21-33 installed for each processor.
The decoder circuit 130 incorporated in the common bus 12
9 is analyzed to know whether or not an instruction is given to itself, and if the instruction is given to itself, the analysis result of the decoder circuit 131 is validated by the signal line 162. The decoder circuit 131 analyzes which processor has instructed its own instruction, and if a valid signal is received from the decoder circuit 130 through the signal line 162, it corresponds to the processor instructing the instruction as the analysis result. One of the binary counters 132 to 144 is counted,
At the same time as transmitting the interrupt control request to the interrupt control circuit 145, the result is placed on the dedicated 147, and the processor instructing the instruction is notified as the status. Interrupt control circuit 145
Interrupts the processor, and if the interrupt is accepted, generates an interrupt vector corresponding to the attribute of the processor that instructed the instruction to the processor, and the processor that receives it writes the instruction in the instruction instruction matrix table. Address, and jump directly to the beginning of the designated instruction routine. Here, when the processor instructed the instruction refers to the address instructed by the instruction in the instruction instruction matrix table, the same binary counter among the binary counters 132 to 144 is counted in the same sequence as the above. The operation to return to the state is automatically performed. As a result, the interrupt control request signal to the interrupt control circuit is cleared and the status signal to the dedicated bus 147 is also cleared at the same time. The processor instructing the command can manage the command activation and activation state by taking in and monitoring the status of the command activation related to itself, for example, as in the status signal line 146 of the processor PO, and activates the next command. It becomes possible to judge whether or not it is possible. As described above, not only is it possible to transmit a command at high speed between arbitrary processors by a very simple operation, but it is also possible to manage the activation status of the command.

最後に、グループ内プロセツサ間同期手段とそれを使用
したプロセツサ制御例について第6図,第7図及び第8
図を参照しならが詳細に説明する。グループ内プロセツ
サ間同期手段は、関連のあるタスクを処理するプロセツ
サ同志が任意にグループを構成し、グループ内のプロセ
ツサ間で同期をとりながら機械的に並列処理を進める手
段である。第6図は、グループ内プロセツサ間同期手段
177〜189のハードウエアブロツク図を示してい
る。この図をもとにその動作シーケンスについて説明す
る。まず、プロセツサは、タスク処理を終了したところ
で、そのタスク処理をどの様なプロセツサのグループで
実行したかをグループレジスタ163に対して行う。こ
れをグループ宣言GCと称し、本実施例においては、1
6bitのワード情報として表わし、そのbit番号0から1
2をプロセツサ1から13に対応させ、ビツトが1のと
きにグループに属し、0のときグループに属さないと定
義している。プロセツサが自分自身もグループに含めた
グループ宣言をグループ・レジスタ163に対して行う
とまず、信号線169により同期完了ステータス175
を出力するラツチ回路166をクリアし、次に、グルー
プ情報がグループレジスタ163にラツチされ、タスク
処理が完了したとみなされて信号線168によつてラツ
チ回路165をセツトし、セツトされた信号がタスク処
理完了ステータスとして信号線170により共通バス7
6に出力される。グループ宣言が行われると、比較回路
164が共通バス76上の各プロセツサのグループ内プ
ロセツサ間同期機構177〜189より出力されたタス
ク処理完了ステータスを監視し、グループレジスタ16
3にラツチされたbit情報と比較し、グループ内に属す
るプロセツサのタスク処理がすべて完了したかどうかを
調べている。グループ内のプロセツサのタスク処理がす
べて完了したことを知るとプロセツサ間の同期がとれた
として、比較回路164中の比較解析回路173は、信
号線171によつてラツチ回路166をセツトし、信号
線174によつてラツチ回路165をリセツトする。こ
れにより、タスク完了ステータスをクリアし、ラツチ回
路166はラツチした同期完了ステータス175をプロ
セツサに対し出力する。プロセツサは、この信号をステ
ータス・チエツク・ループで監視することによつて同期
がとれたことを知る。また、同期完了割込みが許可され
ていれば、比較解析回路173は信号線172により同
期完了割込み発生回路167をアクテイブにし、同期完
了ステータス175と共に、プロセツサに対して同期完
了割込み176を発生してグループ内のプロセツサ間の
同期がとれたことを知らせる。同期完了割込み機能を利
用すれば、ソフトウエアによるステータス・チエツクを
行う必要がなくなるので、同期がとれるまでプロセツサ
の遊び時間がある場合、バツクグラウンドオペレーシヨ
ンを実行するなど遊び時間の有効利用が可能となる。ま
た、プロセツサ間の同期が完了したら直ちに、同期完了
割込みによりメインの並列処理に引き戻され、次のプロ
セツサの遊び時間にバツクグラウンドオペレーシヨンを
実行すると処理の中断点から処理を再開する手法を採る
ので、スケジユールされた並列処理の流れを乱すことが
なく、大きな一連の連続したバツクグラウンドジヨブを
メインの並列処理を意識することなく実行できるのも大
きな特徴である。本実施例では他にも、例えば各主プロ
セツサにローカルに設置された補助プロセツサ等の補助
機構に主プロセツサが処理を依頼した際生ずる処理終了
までの主プロセツサの遊び時間を、同期完了割込みと同
様の考えに基づく処理終了割込み機能を設けることによ
り管理し、有効利用できる様考慮している。なお、本実
施例においては、同期完了割込みの許可、不許可は、グ
ループ宣言の際のbit番号15により行い、それに基づ
いてラツチ信号169によつて同期完了割込み発生回路
167の動作を有効にしたり無効にしたりする手法を採つ
ている。第7図および第8図は、グループ内プロセツサ
間の同期手段を使用して、プロセツサの処理の流れを制
御した例を示している。第7図は、まずプロセツサP
0,P1,P2とP3,P4,P5,P6,P7とP
8,P9とがそれぞれグループを構成し、CELL1を上か
ら下へかけて実行している。各グループ内のプロセツサ
は、グループ内プロセツサ間同期手段によりAで代表さ
れる横線の部分で同期がとられ、それぞれ関連したタス
ク処理を行つている。グループ間は非同期であるが、B
の点において、グループ間で情報を交換する必要が発生
し、さらに別のグループ内プロセツサ間同期手段によ
り、プロセツサP0からP9までのプロセツサをすべて
グループとみなしグループ間の同期をとつた後グループ
を編成し直してCELL2へ処理を進めている。ここで、同
期の最小単位をレベルと称し、レベル内の処理内容をタ
スクと呼んでいる。この様に、本実施例では複数のグル
ープ内プロセツサ間同期手段を設け、多重同期処理を可
能にしており、プロセツサをグループに分けて統一的に
制御することによつてスケジユールされたMIMD型並列処
理を機械的に実行できる。第8図の2は、Cで代表され
るプロセツサのタスク処理の状態とDで代表されるプロ
セツサの遊び時間の状態及び、E,F,Gで示した同期
単位間での条件ジヤンプ処理の様子を表わしている。図
に示したプロセツサの遊び時間に対して、同期完了割込
みを利用することによりバツクグラウンドオペレーシヨ
ン等の処理に利用する。条件ジヤンプについては、E,
F,Hがレベル間のジヤンプ、GがCELL間のジヤンプで
ある。この様に、ジヤンプ処理は各同期単位間で行われ
る。具体的には、グループ内のプロセツサがある同期点
で同期をとつた後、条件を判定して目的の同期へ分岐、
ループ等の処理を行うべくジヤンプする。また、判定す
べき条件が無い場合は、同期をとつた後、目的の同期点
へ無条件ジヤンプを行えば良い。すなわち、同期をと
り、レベルあるいはCBLLといつた各同期処理単位の実行
を進めていくことが、ノイマン型の単一プロセツサにお
けるプログラムカウンタの更新にあたると考えられる。
本機能により、汎用プロセツサには欠くべからざるダイ
ナミツクな要素を含む条件ジヤンプ処理を、多くの付加
的なソフトウエアの補助を必要とせず、比較的簡単に並
列処理スケジユール上で実現している。以上の様に、グ
ループ内プロセツサ間同期手段の利用は、同期処理にお
けるソフトウエアオーバーヘツドを極小化し、タスクの
細分化と多数のプロセツサへの分配を可能にして並列処
理効率を高め、さらに、プロセツサをグループに分け各
同期単位間で多重、階層的かつ統一的に管理及び制御で
きるためプロセツサの遊び時間の管理とその有効利用及
び同期単位間での条件ジヤンプ処理が可能となり、高度
で汎用性のあるMIMD型並列処理を容易にかつ効率良く実
現できる。
Finally, FIGS. 6, 7, and 8 show a synchronization means between processors within a group and a processor control example using the same.
A detailed description will be given with reference to the drawings. The in-group processor synchronization means is a means in which processors that process related tasks arbitrarily form a group, and processors in the group perform mechanical parallel processing while synchronizing with each other. FIG. 6 shows a hardware block diagram of inter-processor synchronization means 177 to 189. The operation sequence will be described with reference to this figure. First, when the processor finishes the task processing, the processor performs, on the group register 163, in which processor group the task processing was executed. This is called a group declaration GC, and in this embodiment, it is 1
It is expressed as 6-bit word information, and its bit numbers 0 to 1
2 is associated with processors 1 to 13, and it is defined that when the bit is 1, it belongs to the group, and when it is 0, it does not belong to the group. When the processor makes a group declaration including itself in the group to the group register 163, the synchronization completion status 175 is first sent through the signal line 169.
Then, the group information is latched in the group register 163, it is considered that the task processing is completed, the latch circuit 165 is set by the signal line 168, and the set signal is output. The common bus 7 is indicated by the signal line 170 as the task processing completion status.
6 is output. When the group declaration is made, the comparison circuit 164 monitors the task processing completion status output from the intra-processor synchronization mechanism 177 to 189 of each processor on the common bus 76, and the group register 16
It is checked whether or not the task processing of the processors belonging to the group has been completed by comparing with the bit information latched in 3. When it is known that the processors in the group have completed the task processing, it is determined that the processors are synchronized with each other, and the comparison analysis circuit 173 in the comparison circuit 164 sets the latch circuit 166 by the signal line 171 and sets the signal line 166. The latch circuit 165 is reset by 174. As a result, the task completion status is cleared, and the latch circuit 166 outputs the latched synchronization completion status 175 to the processor. The processor knows that synchronization has been achieved by monitoring this signal in the status check loop. If the synchronization completion interrupt is permitted, the comparison analysis circuit 173 activates the synchronization completion interrupt generation circuit 167 through the signal line 172, and together with the synchronization completion status 175, generates the synchronization completion interrupt 176 to the processor and outputs it to the group. Informs that the processors in are synchronized. By using the synchronization completion interrupt function, it is not necessary to perform a status check by software, so if there is processor idle time until synchronization is achieved, it is possible to effectively utilize the idle time by executing a backup ground operation. Become. Also, as soon as the synchronization between the processors is completed, it is returned to the main parallel processing by the synchronization completion interrupt, and if the background operation is executed during the idle time of the next processor, the processing is restarted from the interruption point. , A major feature is that a large series of continuous background jobs can be executed without disturbing the flow of scheduled parallel processing, without being aware of the main parallel processing. In addition to this, in the present embodiment, the play time of the main processor until the end of processing which occurs when the main processor requests processing to an auxiliary mechanism such as an auxiliary processor locally installed in each main processor is the same as the synchronization completion interrupt. It is managed by providing a processing end interrupt function based on the above idea, and it is considered that it can be effectively used. In the present embodiment, the synchronization completion interrupt is enabled or disabled by the bit number 15 in the group declaration, and the latch signal 169 is used to generate the synchronization completion interrupt generation circuit based on the bit number 15.
The method of enabling or disabling the operation of 167 is adopted. 7 and 8 show an example in which the processing flow of the processors is controlled by using the synchronization means between the processors in the group. Figure 7 shows processor P first.
0, P1, P2 and P3, P4, P5, P6, P7 and P
8 and P9 respectively form a group, and CELL1 is executed from top to bottom. The processors within each group are synchronized by the inter-processor synchronization means at the horizontal line portion represented by A, and perform associated task processing. The groups are asynchronous, but B
In this regard, it becomes necessary to exchange information between groups, and by means of another intra-group processor synchronization means, all processors from processors P0 to P9 are regarded as groups and synchronization is established between groups. We are doing it again and proceeding to CELL2. Here, the minimum unit of synchronization is called a level, and the processing content in the level is called a task. As described above, in the present embodiment, a plurality of intra-group processor inter-processor synchronization means are provided to enable multiple synchronization processing, and the MIMD type parallel processing scheduled by dividing the processors into groups and uniformly controlling them is performed. Can be performed mechanically. 2 in FIG. 8 shows the state of task processing of the processor represented by C, the state of the play time of the processor represented by D, and the condition jump processing between the synchronization units indicated by E, F, and G. Is represented. The idle time of the processor shown in the figure is used for processing such as background operation by utilizing the synchronization completion interrupt. For the conditional jump, E,
F and H are jumps between levels, and G is jumps between CELLs. In this way, jump processing is performed between each synchronization unit. Specifically, the processor in the group synchronizes at a certain synchronization point, then judges the condition and branches to the target synchronization,
Jump to perform processing such as looping. Further, if there is no condition to be determined, it is sufficient to carry out unconditional jump to the target synchronization point after synchronizing. That is, it is considered that updating the program counter in the Neumann-type single processor is to synchronize and proceed with the execution of each synchronization processing unit with the level or CBLL.
With this function, conditional jump processing including dynamic elements that are indispensable for general-purpose processors is realized relatively easily on the parallel processing schedule without the need for much additional software assistance. As described above, the use of synchronization means between processors within a group minimizes software overhead in synchronization processing, enables task subdivision and distribution to multiple processors, and improves parallel processing efficiency. Groups are divided into groups and can be managed and controlled in a multi-layered, hierarchical and unified manner among the synchronization units, so that it is possible to manage the idle time of the processor and its effective use, and to perform conditional jump processing between synchronization units. A certain MIMD type parallel processing can be realized easily and efficiently.

なお、ここで述べてきたハードウエア構成及び並列処理
のための種々の手段を、一部分だけ利用して小規模なマ
ルチ・プロセツサを構成することも可能であり、さらに
第1図の91,92,93に示す外部モジユールとの通
信手段により、他のマルチ・マイクロプロセツサ・モジ
ユールと結合し、さらに大規模なマルチ・プロセツサ・
システムに拡張することも可能である。
Note that it is possible to configure a small-scale multi-processor by partially utilizing the hardware configuration and various means for parallel processing described here. By means of communication with an external module shown at 93, it can be combined with other multi-microprocessor modules to create a larger multi-processor module.
It can also be extended to the system.

上述した本発明の実施例によれば、並列処理効率に大き
く影響すると考えられ、従来のマルチ・プロセツサ・シ
ステムで問題となつていたプロセツサ間の競合による通
信オーバーヘツドを、独立した複数の高速共有メモリ通
信手段を設けることにより十分小さくできるとともに、
プロセツサ間の同期手段をハードウエアで設けることに
より、同期処理に要するソフトウエア・オペレーシヨン
・オーバーヘツドを極小化できるなど、並列処理によつ
て新たに生じたハードウエア及びソフトウエア・オーバ
ーヘツドを最小化する手法によつて、並列処理タスク間
の接続時間を減少させタスクの細分化を可能にし、多数
のプロセツサに分配することによつて、安価な汎用マイ
クロプロセツサをベースにしたマルチ・マイクロプロセ
ツサにおいても高い並列処理効率を得ることが可能とな
る。また、本発明のグループ内プロセツサ間同期手段を
複数使用することによる多重同期処理によつて、プロセ
ツサをグループにまとめ統一的に制御することができ、
データフロー風にスケジユールされたMIMD(Multi-Instr
ction stream Multi-Data stream)型の並列処理を機械
的にかつ効率良く実行できるばかりか、プロセツサの同
期単位間で、従来困難であつたダイナミツクな要素を含
む条件ジヤンプ処理も容易に行えるため、プログラムに
対する汎用性を高めることができる。さらに、同期完了
割込みを利用することによつて、プロセツサ間で同期が
とれるまでのプロセツサの遊び時間にバツクグラウンド
オペレーシヨンを実行でき、それによつてシステムの余
剰処理能力の有効利用が可能となる。以上により、リア
ルタイム処理を中心とした高度制御用途に有効でかつ安
価なマルチ・マイクロプロセツサ・モジユールを提供で
きる。
According to the above-described embodiment of the present invention, it is considered that the parallel processing efficiency is greatly affected, and the communication overhead due to the competition between the processors, which is a problem in the conventional multi-processor system, is shared by a plurality of independent high speeds. It can be made small enough by providing memory communication means,
By providing the synchronization means between processors by hardware, the software operation overhead required for synchronization processing can be minimized, and the hardware and software overhead newly generated by parallel processing can be minimized. This method reduces the connection time between parallel processing tasks and enables subdivision of tasks, and by distributing them to a large number of processors, a multi-micro processor based on an inexpensive general-purpose microprocessor is used. It is possible to obtain high parallel processing efficiency even in the processor. Further, by the multiple synchronization processing by using a plurality of inter-processor synchronization means of the present invention, it is possible to collectively control the processors in a group,
MIMD (Multi-Instr
ction stream (Multi-Data stream) type parallel processing can be executed mechanically and efficiently, and conditional jump processing including dynamic elements, which has been difficult until now, can be easily performed between processor synchronization units. It is possible to improve versatility with respect to. Further, by using the synchronization completion interrupt, the background operation can be executed during the idle time of the processors until the processors are synchronized with each other, and the surplus processing capacity of the system can be effectively used. As described above, it is possible to provide a multi-microprocessor module that is effective and inexpensive for advanced control applications centered on real-time processing.

〔発明の効果〕〔The invention's effect〕

本発明によれば、高い並列処理効率と汎用性を備えるマ
ルチ・マイクロプロセツサ・モジユールを提供すること
ができる。
According to the present invention, it is possible to provide a multi-microprocessor module having high parallel processing efficiency and versatility.

【図面の簡単な説明】[Brief description of drawings]

第1図は本発明のマルチ・マイクロプロセツサ・モジユ
ールのハードウエア構成を示す図、第2図および第3図
は本発明を構成する共有メモリのアクセスタイミング
図、第4図は本発明を構成する命令指示マトリツクス・
テーブルの構成図、第5図本発明を構成するプロセツサ
間命令伝達手段のハードウエアブロツク図、第6図は本
発明を構成するグループ内プロセツサ間同期手段のハー
ドウエアブロツク図、第7図および第8図は、本発明を
構成するグループ内プロセツサ間同期手段を複数利用し
たプロセツサ制御例を示す図である。 1〜13…プロセツサ、21〜33……コミニユケーシ
ヨンコントローラ、73,74,75…共有メモリバ
ス、14,15,16…共有メモリ、17,18,19
…共有メモリバス制御用判別回路、20…命令指示マト
リツクステーブル解析回路、76,77…コミニユケー
シヨンコントローラ間共通バス及び専用バス、149〜
161…命令指示回路、177〜189…グループ内プ
ロセツサ間同期手段。
FIG. 1 is a diagram showing a hardware configuration of a multi-processor module of the present invention, FIGS. 2 and 3 are access timing diagrams of a shared memory constituting the present invention, and FIG. 4 is a diagram showing the present invention. Command instruction matrix
FIG. 5 is a block diagram of a table, FIG. 5 is a hardware block diagram of inter-processor instruction transmitting means which constitutes the present invention, and FIG. 6 is a hardware block diagram of intra-group processor synchronizing means which constitutes the present invention. FIG. 8 is a diagram showing an example of processor control using a plurality of intra-group processor synchronization means constituting the present invention. 1 to 13 ... Processor, 21 to 33 ... Communication controller, 73, 74, 75 ... Shared memory bus, 14, 15, 16 ... Shared memory, 17, 18, 19
... shared memory bus control discriminating circuit, 20 ... instruction instruction matrix table analysis circuit, 76, 77 ... common bus between dedicated controllers and dedicated bus, 149-
161 ... Instruction designating circuit, 177-189 ... Synchronizing means between processors within a group.

Claims (13)

【特許請求の範囲】[Claims] 【請求項1】複数の汎用マイクロプロセッサを平等に結
合し並列処理を行うマルチ・プロセッサ・モジュールに
おいて、 その並列処理用ハードウエア手段は、任意のプロセッサ
から共有メモリバス(73〜75)を介してアクセス可
能な高速共有メモリ通信手段(14〜16)と、 任意のプロセッサ間で命令の授受を行い、かつ命令処理
の起動状態を監視する機能を有する命令伝達手段(2
0,149〜161)と、 関連のあるタスクを処理するプロセッサ同志で任意にグ
ループを構成し、このグループ内のプロセッサ間で同期
を取り、スケジュールせれた並列処理を機械的に実行す
るためのグループ内プロセッサ間同期手段(177〜1
89)と、 前記プロセッサ間同期手段(177〜189)に連結さ
れる専用バス手段(76)と、 前記命令伝達手段(20,149〜161)に連結され
る共通バス手段(77)と を備えたことを特徴とするマルチ・マイクロプロセッサ
・モジュール。
1. A multi-processor module for equally connecting a plurality of general-purpose microprocessors for parallel processing, wherein the parallel processing hardware means is from any processor via a shared memory bus (73-75). A high-speed shared memory communication means (14 to 16) that can be accessed and an instruction transmission means (2) having a function of exchanging instructions between arbitrary processors and monitoring the activation state of instruction processing.
0, 149 to 161) and processors that process related tasks, form a group arbitrarily, synchronize the processors in this group, and mechanically execute scheduled parallel processing. Internal processor synchronization means (177-1)
89), a dedicated bus means (76) connected to the inter-processor synchronization means (177 to 189), and a common bus means (77) connected to the command transmission means (20, 149 to 161). A multi-microprocessor module characterized by that.
【請求項2】特許請求の範囲第1項記載のマルチ・マイ
クロプロセッサ・モジュールにおいて、 並列処理に必要な種々の通信手段である命令伝達手段
(20,149〜161)及び、グループ内プロセッサ
間同期手段(177〜189)を統轄するコミニュケー
ションコントローラ(21〜33)を各プロセッサ単位
で設け、 バス手段は、各プロセッサ間を、複数の独立した高速共
有メモリバス(73〜75)で接続すると共に、共有メ
モリバス(73〜75)や他のシステムバス(109)
とは独立にコミニュケーションコントローラ(21〜3
3)をバス(76,77)で接続することにより、機能
分散型の複数バス構成を有することを特徴とするマルチ
・マイクロプロセッサ・モジュール。
2. A multi-microprocessor module according to claim 1, wherein instruction communication means (20, 149 to 161), which are various communication means necessary for parallel processing, and synchronization between processors within a group. Communication controllers (21 to 33) that control the means (177 to 189) are provided for each processor unit, and the bus means connects the processors with a plurality of independent high speed shared memory buses (73 to 75). Shared memory buses (73-75) and other system buses (109)
Communication controller (21-3
A multi-microprocessor module having a function-distributed multi-bus configuration by connecting 3) with buses (76, 77).
【請求項3】特許請求の範囲第1項記載のマルチ・マイ
クロプロセッサ・モジュールにおいて、 共有メモリ通信手段は、共有メモリ(14〜16)と各
プロセッサ(1〜13)とを連結する共有メモリバス
(73〜75)と、前記各プロセッサ(1〜13)を共
有メモリ(14〜16)に接続するためのアービトレー
ションコントロールを行う判別回路(17〜19)とを
備え、 前記判別回路(17〜19)は、共有メモリ(14〜1
6)へのアクセス要求が競合していない場合には、プロ
セッサの共有メモリへのアクセス許可信号をアクティブ
にし、共有メモリ(14〜16)へのアクセス要求が競
合している場合には、優先順位の低いプロセッサの予め
定義された共有メモリサイクルをずらして、このサイク
ル中に共有メモリへのアクセス要求を出力している優先
順位の高いプロセッサに対し、共有メモリ(14〜1
6)へのアクセス許可信号をアクティブにする手段を備
えたことを特徴とするマルチ・マイクロプロセッサ・モ
ジュール。
3. The multi-microprocessor module according to claim 1, wherein the shared memory communication means connects the shared memory (14-16) to each processor (1-13). (73 to 75) and a discrimination circuit (17 to 19) for performing arbitration control for connecting the processors (1 to 13) to a shared memory (14 to 16), and the discrimination circuit (17 to 19). ) Is a shared memory (14-1)
When the access requests to 6) are not in conflict, the access permission signal to the shared memory of the processor is activated, and when the access requests to the shared memories (14 to 16) are in conflict, the priority order is set. The pre-defined shared memory cycle of the processor with a lower priority is shifted to the processor with the higher priority that outputs the access request to the shared memory during this cycle, and the shared memory (14-1
6) A multi-microprocessor module comprising means for activating an access permission signal to 6).
【請求項4】特許請求の範囲第3項記載のマルチ・マイ
クロプロセッサ・モジュールにおいて、 前記判別回路は、アクセス要求の競合により、共有メモ
リサイクルが重なった場合に、その重なったクロック数
分だけ、後からアクセスしたプロセッサ側の共有メモリ
サイクルをずらすことを特徴とするマルチ・マイクロプ
ロセッサ・モジュール。
4. The multi-microprocessor module according to claim 3, wherein, when the shared memory cycles overlap due to contention of access requests, the determination circuit is the number of the overlapping clocks. A multi-microprocessor module characterized by shifting the shared memory cycle on the processor side accessed later.
【請求項5】特許請求の範囲第1項記載のマルチ・マイ
クロプロセッサ・モジュールにおいて、 共有メモリ通信手段は、複数の共有メモリ(14〜1
6)と各プロセッサ(1〜13)とを連結する複数の共
有メモリバス(73〜75)と、前記各プロセッサ(1
〜13)を前記共有メモリ(14〜16)に接続するた
めのアービトレーションコントロールを行う複数の判別
回路(17〜19)とを備え、 前記各判別回路(17〜19)は、共有メモリ(14〜
16)へのアクセス要求の競合の緩和と、各プロセッサ
の共有メモリへのアクセス条件を全体としてほぼ平等化
するために、プロセッサに対する異なる優先順位を各判
別回路ごとに設定したことを特徴とするマルチ・マイク
ロプロセッサ・モジュール。
5. A multi-microprocessor module according to claim 1, wherein the shared memory communication means comprises a plurality of shared memories (14-1).
6) and a plurality of shared memory buses (73 to 75) connecting the processors (1 to 13), and the processors (1 to 3).
.. to 13) are connected to the shared memory (14 to 16), a plurality of discrimination circuits (17 to 19) for performing arbitration control are provided, and each of the discrimination circuits (17 to 19) includes the shared memory (14 to
16) In order to alleviate the competition of access requests to 16) and to make the access conditions to the shared memory of each processor almost equal as a whole, different priority levels for the processors are set for each discrimination circuit. -Microprocessor module.
【請求項6】特許請求の範囲第1項記載のマルチ・マイ
クロプロセッサ・モジュールにおいて、 プロセッサ間の命令伝達手段(20,149〜161)
は、共有メモリ(14)上に任意のプロセッサから任意
のプロセッサへの割込みを可能とする命令指示マトリッ
クステーブル(148)を備え、 この命令指示マトリックステーブル(148)は、プロ
セッサからの命令指示により、その命令指示データを書
き込まれる操作で、自動的に命令を指示されたプロセッ
サに割込みをかけ、そのプロセッサに共有メモリ(14
〜16)上に書かれた命令を伝達することを特徴とする
マルチ・マイクロプロセッサ・モジュール。
6. A multi-microprocessor module according to claim 1, wherein instruction transfer means (20, 149 to 161) between processors.
Includes a command instruction matrix table (148) on the shared memory (14) that enables an interrupt from any processor to any processor. This command instruction matrix table (148) is provided with a command instruction from the processor. The operation of writing the instruction instruction data automatically interrupts the processor to which the instruction is instructed, and the shared memory (14
16) A multi-microprocessor module, characterized in that it carries the instructions written above.
【請求項7】特許請求の範囲第6項のマルチ・マイクロ
プロセッサ・モジュールにおいて、 プロセッサ間の命令伝達手段(20,149〜161)
における命令指示マトリックステーブル(148)は、
各プロセッサの割込みベクトルテーブルの一部を共有メ
モリ(14)上に共有し、 前記命令指示マトリックステーブル(148)は、命令
を指示するプロセッサからの指示命令により、命令を実
行させたいプロセッサに対する命令処理ルーチンの起動
先頭番地を、前記命令指示マトリックステーブル(14
8)の所定の場所に書き込み、 命令伝達手段(20,149〜161)は、そのアクセ
スされたアドレスを解析し、命令を指示されたプロセッ
サに割込みをかけ、割込みが受信され次第、命令を指示
したプロセッサの属性を割込みベクトル情報として命令
を指示されたプロセッサに伝達することにより、命令マ
トリックステーブルに書き込まれている命令ルーチンの
起動先頭番地を、命令を指示されたプロセッサが直接読
み出し、プログラムカウンタにロードすることによっ
て、命令ルーチンの先頭に直接ジャンプして命令処理を
開始することを特徴とするマルチ・マイクロプロセッサ
・モジュール。
7. A multi-microprocessor module according to claim 6, wherein instruction transfer means (20, 149 to 161) between the processors.
The command instruction matrix table (148) in
A part of the interrupt vector table of each processor is shared on the shared memory (14), and the instruction instruction matrix table (148) is an instruction processing for the processor which wants to execute the instruction by the instruction instruction from the processor instructing the instruction. The start address of the routine is set to the instruction instruction matrix table (14
8) Writing to a predetermined place, the instruction transmission means (20, 149 to 161) analyzes the accessed address, interrupts the processor instructed to instruct, and instructs the instruction as soon as the interrupt is received. By transmitting the attribute of the specified processor as interrupt vector information to the processor instructed by the instruction, the start address of the instruction routine written in the instruction matrix table is directly read by the processor instructed by the instruction and stored in the program counter. A multi-microprocessor module characterized by jumping directly to the beginning of an instruction routine to start instruction processing by loading.
【請求項8】特許請求の範囲第1項記載のマルチ・マイ
クロプロセッサ・モジュールにおいて、 プロセッサ間の命令伝達手段(20,149〜161)
は、命令指示マトリックステーブル(148)に命令を
指示するプロセッサが命令ルーチンの起動先頭番地を書
き込んだ時点で命令の発動とみなし、命令伝達手段(2
0,149〜161)がアクセスされた番地を解析した
のち、対応する命令の発動を示すフラグをセットし、命
令を指示されたプロセッサが命令ルーチンの先頭アドレ
スを読み込むため再び命令指示マトリックステーブル
(148)の同じアドレスをアクセスした時点を命令の
起動の完了とみなし、命令伝達手段(20,149〜1
61)が同様にして上記の命令の発動を示すフラグをリ
セットし、そのフラグのセット,リセット状態をステー
タス情報として命令を指示したプロセッサに伝達するこ
とにより、命令の起動状態を知らせることを特徴とする
マルチ・マイクロプロセッサ・モジュール。
8. A multi-microprocessor module according to claim 1, wherein instruction transfer means (20, 149 to 161) between processors.
Is considered to be an instruction invocation at the time when the processor instructing the instruction in the instruction instruction matrix table (148) writes the starting address of the instruction routine, and the instruction transmitting means (2
(0, 149 to 161) analyzes the accessed address, sets a flag indicating the activation of the corresponding instruction, and the processor instructed to read the start address of the instruction routine again reads the instruction instruction matrix table (148 ) Is regarded as the completion of the start of the instruction, and the instruction transmission means (20, 149 to 1)
61) similarly resets the flag indicating the activation of the above-mentioned instruction, and transmits the set or reset state of the flag as status information to the processor instructing the instruction, thereby notifying the activation state of the instruction. Multi-microprocessor module.
【請求項9】特許請求の範囲第1項記載のマルチ・マイ
クロプロセッサ・モジュールにおいて、 グループ内プロセッサ間同期手段(177〜189)
は、プロセッサがあるタスク処理を終了した時点で、そ
のタスク処理をどういうプロセッサのグループで実行し
たかを示すグループの属性をデータとしてそのプロセッ
サを管理する同期手段中のグループレジスタ(163)
に書き込むだけの操作で、他のプロセッサを管理する同
期手段からの情報と合わせてグループ内に属するプロセ
ッサのタスク処理が終了したかどうかをチェックし、そ
の結果を同期情報としてプロセッサに知らせることを特
徴とするマルチ・マイクロプロセッサ・モジュール。
9. A multi-microprocessor module according to claim 1, wherein the inter-processor synchronization means (177 to 189) within a group.
Is a group register (163) in the synchronization means that manages the processor by using the attribute of the group indicating the group of the processor that has executed the task processing when the processor finishes the task processing.
It is a feature to check whether the task processing of the processors belonging to the group is completed together with the information from the synchronization means that manages other processors, and to notify the result as synchronization information to the processor only by writing to And a multi-microprocessor module.
【請求項10】特許請求の範囲第9項記載のマルチ・マ
イクロプロセッサ・モジュールにおいて、 グループ内プロセッサ間同期手段(177〜189)
は、シーケンスとして、あるプロセッサがグループレジ
スタ(163)にグループの属性データを書き込む操作
を行うと、ただちにそのプロセッサを管理する同期手段
は以前の同期情報を示すフラグをリセットし、そのプロ
セッサのタスク処理が終了したことを示すフラグをセッ
トして共通バス上にその情報を流した後、共通バスを通
して他のプロセッサの同期手段からのタスク処理終了情
報を入手して、グループレジスタ(163)に登録され
たグループに属するプロセッサがすべてタスク処理が終
了したかどうかを比較回路(164)により比較し、も
しグループ内のすべてのプロセッサのタスク処理が終了
しているならば、そのグループ内のプロセッサ間で同期
がとれたものとして同期情報を示すフラグをセットして
プロセッサに示し、 プロセッサは、そのフラグ情報に応答して、グループ内
の同期が完了するまで、次のタスク処理の開始を停止さ
せる手段を有することを特徴とするマルチ・マイクロプ
ロセッサ・モジュール。
10. A multi-microprocessor module according to claim 9, wherein the inter-processor synchronization means (177 to 189) within a group.
As a sequence, as soon as a processor performs an operation of writing the attribute data of a group to the group register (163), the synchronization means for managing that processor resets the flag indicating the previous synchronization information and the task processing of that processor. Is set and a flag indicating that the processing has been completed is sent to the common bus, and then the task processing completion information is obtained from the synchronization means of another processor through the common bus and registered in the group register (163). The comparison circuit (164) compares whether or not all the processors belonging to the group have completed the task processing, and if the task processing of all the processors in the group has completed, the processors in the group are synchronized. To the processor by setting a flag indicating synchronization information The processor, in response to the flag information, until the synchronization in the group is completed, the multi-microprocessor module, characterized in that it comprises means for stopping the start of the next task processing.
【請求項11】特許請求の範囲第10項記載のマルチ・マ
イクロプロセッサ・モジュールにおいて、 グループ内プロセッサ間同期手段(177〜189)
は、グループ内で同期情報を示すフラグをセットした時
点で、もし同期手段に対し割込みが許可されていれば、
プロセッサに対して同期がとれたことを示す情報を出力
し、 プロセッサは、この同期完了割込み情報によってタスク
処理が終了し同期がとれるまでの遊び時間にバックグラ
ウンドオペレーションを並行して実行し、グループ内プ
ロセッサ間の同期がとれた時点でただちに同期完了割込
みよって自動的かつ強制的にメインの並列処理に引き戻
され、次のプロセッサの遊び時間に再び中断点からバッ
クグラウンドオペレーションを実行して、並列処理中の
プロセッサの遊び時間を一連の連続したバックグラウン
ドオペレーションプログラム処理に割り当てることを可
能とする遊びプロセッサ管理手段を有することを特徴と
するマルチ・マイクロプロセッサ・モジュール。
11. A multi-microprocessor module according to claim 10, wherein inter-group processor synchronization means (177 to 189).
Is set at the time when the flag indicating the synchronization information is set in the group, and if interruption is permitted to the synchronization means,
Information indicating that synchronization has been achieved is output to the processors, and the processors execute background operations in parallel during the idle time until task processing is completed and synchronization is achieved by this synchronization completion interrupt information, As soon as the processors are synchronized, the synchronization completion interrupt automatically and forcibly pulls them back to the main parallel processing, and then executes the background operation from the interruption point again during the idle time of the next processor to execute the parallel processing. A multi-microprocessor module having idle processor management means for assigning idle time of the processor to a series of consecutive background operation program processes.
【請求項12】特許請求の範囲第10項または第11項記載
のマルチ・マイクロプロセッサ・モジュールにおいて、 グループ内プロセッサ間同期手段(177〜189)
は、グループ内プロセッサ間同期手段を独立に複数有
し、グループ間の同期をさらに別の同等の機能を持つ同
期手段により管理することを特徴とするマルチ・マイク
ロプロセッサ・モジュール。
12. The multi-microprocessor module according to claim 10 or 11, wherein the inter-group processor synchronization means (177 to 189).
Is a multi-microprocessor module characterized in that it has a plurality of means for synchronizing processors in a group independently, and the synchronization between groups is managed by another means having a similar function.
【請求項13】特許請求の範囲第1項記載のマルチ・マ
イクロプロセッサ・モジュールにおいて、 共有メモリ通信手段は、複数の共有メモリ(14〜1
6)を備え、 これらの共有メモリ(14〜16)はプロセッサから指
示された偶数アドレス値に対応してアクセス可能となる
ものと、奇数アドレス値に対応してアクセス可能となる
ものとを有し、 これらの共有メモリ(14〜16)は独立した複数の共
有メモリバス(73〜75)に接続されることを特徴と
するマルチ・マイクロプロセッサ・モジュール。
13. A multi-microprocessor module according to claim 1, wherein the shared memory communication means comprises a plurality of shared memories (14-1).
6), and these shared memories (14 to 16) include those that can be accessed corresponding to even address values indicated by the processor and those that can be accessed corresponding to odd address values. A multi-microprocessor module characterized in that these shared memories (14-16) are connected to a plurality of independent shared memory buses (73-75).
JP59257533A 1984-12-07 1984-12-07 Multi Microprocessor Module Expired - Lifetime JPH061464B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP59257533A JPH061464B2 (en) 1984-12-07 1984-12-07 Multi Microprocessor Module

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP59257533A JPH061464B2 (en) 1984-12-07 1984-12-07 Multi Microprocessor Module

Publications (2)

Publication Number Publication Date
JPS61136157A JPS61136157A (en) 1986-06-24
JPH061464B2 true JPH061464B2 (en) 1994-01-05

Family

ID=17307606

Family Applications (1)

Application Number Title Priority Date Filing Date
JP59257533A Expired - Lifetime JPH061464B2 (en) 1984-12-07 1984-12-07 Multi Microprocessor Module

Country Status (1)

Country Link
JP (1) JPH061464B2 (en)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS6345670A (en) * 1986-08-13 1988-02-26 Hitachi Ltd Inter-processor synchronizing device
JPS6345668A (en) * 1986-08-13 1988-02-26 Hitachi Ltd Task starting device
JPH0630094B2 (en) * 1989-03-13 1994-04-20 インターナショナル・ビジネス・マシーンズ・コーポレイション Multiprocessor system
KR101064878B1 (en) * 2005-03-17 2011-09-16 엠텍비젼 주식회사 Method for sharing memory by a plurality of processors and portable terminal having structure of memory share
JP5239751B2 (en) 2008-10-31 2013-07-17 富士通株式会社 Inter-node synchronization apparatus, inter-node synchronization method, and inter-node synchronization program

Also Published As

Publication number Publication date
JPS61136157A (en) 1986-06-24

Similar Documents

Publication Publication Date Title
US11567780B2 (en) Apparatus, systems, and methods for providing computational imaging pipeline
US6363453B1 (en) Parallel processor with redundancy of processor pairs
US4760518A (en) Bi-directional databus system for supporting superposition of vector and scalar operations in a computer
US4989131A (en) Technique for parallel synchronization
US5367690A (en) Multiprocessing system using indirect addressing to access respective local semaphore registers bits for setting the bit or branching if the bit is set
US4754398A (en) System for multiprocessor communication using local and common semaphore and information registers
US5448732A (en) Multiprocessor system and process synchronization method therefor
JP2569323B2 (en) Coprocessors-Architecture
JP2511397B2 (en) Multiprocessor data processing system and operating method thereof
JPS6319904B2 (en)
JPH04348451A (en) Parallel computer
JP2002163239A (en) Multi-processor system and control method for it
CN104714846A (en) Resource processing method, operating system and equipment
JP2009515246A (en) Method and system for real-time execution of centralized multitasking and multiflow processing
US20140068625A1 (en) Data processing systems
US20060015876A1 (en) Light weight context switching technique
KR20140030260A (en) Decentralized allocation of resources and interconnect structures to support the execution of instruction sequences by a plurality of engines
JPH061464B2 (en) Multi Microprocessor Module
CA1272295A (en) Multi-channel shared resource processor
CN116382861A (en) Self-adaptive scheduling method, system and medium for server network process of NUMA architecture
KR20140030261A (en) An interconnect structure to support the execution of instruction sequences by a plurality of engines
Tudruj Multi-layer reconfigurable transputer systems with distributed control of link connections
JPH0642234B2 (en) Parallel processing system
CN117234674A (en) Method for performing task scheduling and related products
JPS6143369A (en) Multi-processor system

Legal Events

Date Code Title Description
EXPY Cancellation because of completion of term