JPH0424748A - Parallel processing processor - Google Patents
Parallel processing processorInfo
- Publication number
- JPH0424748A JPH0424748A JP2125022A JP12502290A JPH0424748A JP H0424748 A JPH0424748 A JP H0424748A JP 2125022 A JP2125022 A JP 2125022A JP 12502290 A JP12502290 A JP 12502290A JP H0424748 A JPH0424748 A JP H0424748A
- Authority
- JP
- Japan
- Prior art keywords
- child process
- memory
- processor
- starter
- instruction
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Landscapes
- Multi Processors (AREA)
Abstract
Description
【発明の詳細な説明】
産業上の利用分野
本発明はマイクロプロセッサの命令処理機構の構成に関
するものである。DETAILED DESCRIPTION OF THE INVENTION Field of the Invention The present invention relates to the structure of an instruction processing mechanism of a microprocessor.
従来の技術
近年、ソフトウェアプログラミング方式のマイクロプロ
セッサはあらゆる方面で多用されており、その構成とし
ては、順次実行される命令群からなるプログラムを格納
するプログラム格納手段と、複数のアドレスを有し、該
アドレスが前記プログラム格納手段に格納された命令に
よって特定されるデータ入出力手段(データメモリや入
出力ポートが該当する。)と、前記プロ(ラム格納手段
から送出される命令に基づいてデータの演算を実行する
演算手段と、前記データ入出力手段と前記演算手段の間
を結合するデータバスとを備えていることに特徴づけら
れる。また、その代表的な構成が特公昭58−3358
4号公報に示されている。2. Description of the Related Art In recent years, software programming type microprocessors have been widely used in various fields. Data input/output means (corresponding to data memory and input/output ports) whose addresses are specified by instructions stored in the program storage means, and data calculation based on instructions sent from the program storage means (data memory and input/output ports). It is characterized by comprising a calculation means for executing the above, and a data bus connecting the data input/output means and the calculation means.A typical configuration thereof is disclosed in Japanese Patent Publication No. 58-3358.
This is shown in Publication No. 4.
このようなソフトウェアプログラミング方式のマイクロ
プロセッサはあらゆる用途に利用できるが、その反面、
処理の高速性を要求される一部の機器のコントローラと
して用いるには、ワイヤードロジックで構成された専用
のコントローラに比較して、リアルタイム処理能力に欠
けるという開明62−69351号公報に示されるよう
な多重処理構成のマイクロプロセッサが提案されてきた
。Microprocessors with this software programming method can be used for a variety of purposes, but on the other hand,
When used as a controller for some devices that require high-speed processing, it lacks real-time processing ability compared to a dedicated controller configured with wired logic, as shown in Japanese Patent Application No. 62-69351. Microprocessors with multiprocessing configurations have been proposed.
多重処理構成のマイクロプロセッサでは複数の処理プロ
セスが並行して進行するためにリアルタイム処理能力は
格段に向上するが、その反面、プロセスの処理順序や各
プロセス間の調歩性が問題になるという難点があった。Microprocessors with multi-processing configurations have multiple processing processes running in parallel, which greatly improves real-time processing ability, but on the other hand, there are problems with the processing order of processes and the ability to keep pace between each process. there were.
発明が解決しよう、とする課題
したがって、本発明の課題は、多重処理構成のマイクロ
プロセッサにおいて、従来以上にプロセス間の調歩性を
向上させることにある。Problems to be Solved by the Invention Accordingly, an object of the present invention is to improve the synchronization between processes in a microprocessor having a multiprocessing configuration more than ever before.
課題を解決するための手段
前記した課題を解決するために本発明の並列処理プロセ
ッサは第1の構成として、順次実行される命令群からな
るプログラムを格納するプログラム格納手段と、前記プ
ログラム格納手段に格納された命令を順次選択する第1
.第2.第3の命令選択手段と、複数のアドレスを有す
るとともにその内容が読み書き可能なメモリと、前記メ
モリと前記プログラム格納手段の間を結合するデータバ
スと、前記第1.第2.第3の命令選択手段によって選
択された命令の実行サイクルを順次割り当てるコンテキ
ストコントローラと、前記第1の命令選択手段を介した
命令によって前記メモリ上に子プロセスの開始アドレス
情報を格納して予約テーブルを形成するテーブル形成手
段と、前記第2あるいは前記第3の命令選択手段を介し
た命令によって前記予約テーブルに格納された開始アド
レス情報を検索して子プロセスを実行する第1および第
2の子プロセススタータとを備えている。Means for Solving the Problems In order to solve the problems described above, the parallel processing processor of the present invention has a first configuration including a program storage means for storing a program consisting of a group of instructions to be executed sequentially, and a program storage means for storing a program consisting of a group of instructions to be executed sequentially. The first step is to sequentially select the stored instructions.
.. Second. a third instruction selection means; a memory having a plurality of addresses and whose contents are readable and writable; a data bus coupling between the memory and the program storage means; Second. a context controller that sequentially allocates execution cycles of the instructions selected by the third instruction selection means; and a context controller that stores the start address information of the child process in the memory according to the instructions via the first instruction selection means and creates a reservation table. first and second child processes that execute a child process by searching start address information stored in the reservation table according to an instruction via the second or third instruction selection means; Equipped with a starter.
また、前記した課題を解決するために本発明のA”!1
1%狸?口jl tyゴは第2の構成として、順次実行
される命令群からなるプログラムを格納)−るプログラ
ム格納手段と、複数のアドレスを有するとともにその内
容が読み書き可能なメモリと、前記メモリと前記プログ
ラム格納手段の間を結合するデータバスと、少なくとも
前記メモリを共有する第1.第2.第3のプロセッサと
、前記第1のプロセッサによって前記メモリ上に子プロ
セスの開始アドレス情報を格納して予約テーブルを形成
するテーブル形成手段と、前記予約テーブルに格納され
た開始アドレス情報を検索して子プロセスを前記第2.
第3のプロセッサに実行させる第1゜第2の子プロセス
スタータと、一方の子プロセススタータが動作中は他方
の動作を抑制するプロセス分配器とを備えている。In addition, in order to solve the above-mentioned problems, A"!1 of the present invention
1% raccoon dog? As a second configuration, the tygo has a program storage means for storing a program consisting of a group of instructions to be executed sequentially, a memory having a plurality of addresses and whose contents can be read and written, and the memory and the program. a data bus coupling between the storage means; and a first. Second. a third processor; table forming means for storing start address information of a child process on the memory by the first processor to form a reservation table; The child process is the second.
The apparatus includes first and second child process starters that are executed by a third processor, and a process distributor that suppresses the operation of one of the child process starters while the other child process starter is in operation.
さらに、前記した課題を解決するために本発明の黍別処
理?0−□、ッ雪は第3の構成として、第2の構成に加
えて、前記第1のプロセッサの動作開始時に、前記プロ
セス分配器に前記第1の子プロセススタータが動作中で
あることを示す擬似信号を与える初期化手段を備えてい
る。Furthermore, in order to solve the above-mentioned problems, the present invention has a method for separating grains. 0-□, as a third configuration, in addition to the second configuration, when the first processor starts operating, the process distributor is configured to inform the process distributor that the first child process starter is operating. and initialization means for providing a pseudo signal shown in FIG.
作用
本発明では前記した第1の構成によって、第1のプロセ
ッサ部から第2.第3のプロセッサ部に予約テーブルを
介して子プロセスの処理を委託するように作用するので
、プロセスの処理順序が損なわれる恐れがなく、子プロ
セスの処理を委託する側の処理能力も高まる。Operation In the present invention, by the above-described first configuration, from the first processor section to the second processor section. Since the processing of the child process is entrusted to the third processor section via the reservation table, there is no fear that the processing order of the processes will be impaired, and the processing capacity of the side to which the processing of the child process is entrusted is increased.
また、前記した第2の構成によって、第2.第3のプロ
セッサの競合が抑制され、その結果、プロセス間の調歩
性が高まる。Furthermore, the above-mentioned second configuration allows the second. Contention of the third processor is suppressed, and as a result, inter-process synchronization is improved.
さらに、前記した第3の構成によって、第1のプロセッ
サ部は第2.第3のプロセッサ部のプロセッサ部の一方
に対して優先的に最初の処理を託するように作用し、プ
ロセッサ間の処理順序も定められる。Further, according to the third configuration described above, the first processor section is connected to the second processor section. The first processing is entrusted to one of the processor sections of the third processor section preferentially, and the processing order among the processors is also determined.
実施例
以下、本発明の実施例について図面を参照しながら説明
する。EXAMPLES Hereinafter, examples of the present invention will be described with reference to the drawings.
第1図は本発明の第1の実施例における並列処理プロセ
ッサの構成図を示したものであり、順次実行される命令
群からなるプログラムが格納される命令ROM 100
から、第1〜第3のプログラマブルカウンタ1〜3によ
って選択された命令は、命令の保持ならびに先読みのた
めの命令キュー4に送られる。前記命令キュー4に一旦
保持された命令は命令デコーダ5に送出されるとともに
、そのアドレスインデックス部はアドレスバス10に送
出される。命令デコーダ5によって作り出された制御信
号群はコントロールバス20を介してマイクロプロセッ
サを構成する各ブロックに供給される。また、タイミン
グジェネレータ6においてマイクロプロセッサの処理の
ための複数のタイミング信号が作り出され、これらのタ
イミング信号はフントロールバス20を介して各ブロッ
クに供給される。アドレスバス10と第1〜第3のプロ
グラマブルカウンタ1〜3.第1〜第3のアドレスレジ
スタ11〜13.データバス30の間は相互にアドレス
データを送出し合うように連結されている。第1〜第3
のアドレスレジスタ11〜13は、RAM200.
汎用パラレル入出力ポート300のアドレスを保持する
。汎用パラレル入出力ポート300の3群の入出力線は
それぞれ、AO〜A15端子、 BO〜B15端子、
CO〜C15端子によって構成されたA、 B、
C群の入出力端子群に接続されている。さらに、デー
タバス30には第1のレジスタ14と第2のレジスタ1
5を介してALUleの入力部が接続され、ALUle
の出力はアキュムレータユニット(フラグ群も含まれる
。)17に供給される。アキュムレータユニット17と
データバス30の間も双方向のバスで連結されている。FIG. 1 shows a configuration diagram of a parallel processing processor according to a first embodiment of the present invention, and includes an instruction ROM 100 in which a program consisting of a group of instructions to be executed sequentially is stored.
The instructions selected by the first to third programmable counters 1 to 3 are sent to an instruction queue 4 for holding and pre-reading instructions. The instruction once held in the instruction queue 4 is sent to the instruction decoder 5, and its address index part is sent to the address bus 10. A group of control signals produced by the instruction decoder 5 are supplied via a control bus 20 to each block making up the microprocessor. Further, a plurality of timing signals for processing by the microprocessor are generated in the timing generator 6, and these timing signals are supplied to each block via the controller bus 20. Address bus 10 and first to third programmable counters 1 to 3. First to third address registers 11 to 13. The data buses 30 are connected to each other so as to send address data to each other. 1st to 3rd
The address registers 11 to 13 of the RAM 200.
Holds the address of the general-purpose parallel input/output port 300. The three groups of input/output lines of the general-purpose parallel input/output port 300 are AO to A15 terminals, BO to B15 terminals,
A, B, configured by CO to C15 terminals
It is connected to the input/output terminal group of group C. Furthermore, the data bus 30 includes a first register 14 and a second register 1.
The input part of ALUle is connected through 5, and the ALUle
The output of is supplied to an accumulator unit 17 (which also includes a group of flags). The accumulator unit 17 and data bus 30 are also connected via a bidirectional bus.
一方、タイミングジェネレータ6からのタイミング信号
はコンテキストコントローラ7にも供給され、コンテキ
ストコントローラ7の第1の出力信号f1は動作イネイ
ブル信号として、第1のプログラマブルカウンタ1と第
1のアドレスレジスタ11に供給され、第2の出力信号
f2は第2のプログラマブルカウンタ2と第2のアドレ
スレジスタ12に供給され、第3の出力信号f3は第3
のプログラマブルカウンタ3と第3のアドレスレジスタ
13に供給されている。On the other hand, the timing signal from the timing generator 6 is also supplied to the context controller 7, and the first output signal f1 of the context controller 7 is supplied to the first programmable counter 1 and the first address register 11 as an operation enable signal. , the second output signal f2 is supplied to the second programmable counter 2 and the second address register 12, and the third output signal f3 is supplied to the third
is supplied to the programmable counter 3 and the third address register 13.
第1図に示したマイクロプロセッサは、第1のプログラ
マブルカウンタ1とそれによって取り出される命令群を
中心として構成される第1のプロセッサ部と、第2のプ
ログラマブルカウンタ2とそれによって取り出される命
令群を中心として構成される第2のプロセッサ部と、第
3のプログラマブルカウンタ3とそれによって取り出さ
れる命令群を中心として構成される第3のプロセッサ部
を有しており、第1.第2.第3のプロセッサ部はいず
れも、命令ROM100. アドレスバス10、デー
タバス30.RAM200. 汎用パラレル入出カポ
−)300.ALUleなどを共有している。The microprocessor shown in FIG. 1 includes a first processor section mainly composed of a first programmable counter 1 and a group of instructions retrieved by it, and a second programmable counter 2 and a group of instructions retrieved by it. It has a second processor section configured as a center, and a third processor section configured mainly around a third programmable counter 3 and a group of instructions fetched by the third programmable counter 3. Second. Each of the third processor sections includes an instruction ROM 100. Address bus 10, data bus 30. RAM200. General purpose parallel input/output capo) 300. We share ALUle etc.
さて、RAM200の内部には子プロセスの開始アドレ
ス情報を格納する予約テーブル40を形成するための予
約ポインタ8と、予約テーブル40に開始アドレス情報
が格納された子プロセスを実行するための実行ポインタ
9と、第2のプロセッサ部によって起動される第1の子
プロセススタータ21と、第3のプロセッサ部によって
起動される第1の子プロセススタータ22が形成され、
予約ポインタ8はコンテキストコントローラ7の第3の
出力信号f3によって、実行ポインタ9はコンテキスト
コントローラ7の第1あるいは第2の出力信号fl、f
2によって動作が許可されるようにそれぞれ構成されて
いる。Now, inside the RAM 200, there is a reservation pointer 8 for forming a reservation table 40 that stores the start address information of the child process, and an execution pointer 9 for executing the child process whose start address information is stored in the reservation table 40. A first child process starter 21 activated by the second processor unit and a first child process starter 22 activated by the third processor unit are formed,
The reservation pointer 8 is activated by the third output signal f3 of the context controller 7, and the execution pointer 9 is activated by the first or second output signal fl, f of the context controller 7.
2, each is configured such that its operation is permitted.
なお、各ブロックのデータ出力部はいずれも3ステート
構成になっていて、データの出力を要求されない期間は
ハイインピーダンス状態に保持されるものとする。また
、各ブロックにはコントロールバス20を介して必要な
タイミング信号と制御信号が供給されるものとする。It is assumed that the data output section of each block has a three-state configuration, and is maintained in a high impedance state during a period when data output is not required. Further, it is assumed that necessary timing signals and control signals are supplied to each block via the control bus 20.
以上のように構成された並列処理プロセ・ソサについて
、第1図に示した構成図と、第2図に示した主要部のタ
イミングチャートによりその動作を説明する。The operation of the parallel processing processor configured as described above will be explained with reference to the configuration diagram shown in FIG. 1 and the timing chart of the main parts shown in FIG. 2.
まず、第2図Aは第1図の外部クロック入力端子CLK
に供給されるクロック信号波形を示したものであり、第
2図B、 C,D、 Eはそれぞれ、タイミングジ
ェネレータ6から出力される基本タイミング信号の信号
波形を示したものであり、第2図F1〜F3は、それぞ
れコンテキストコントローラ7の第1〜第3の出力信号
f1〜f3を示したものである。First, Figure 2A is the external clock input terminal CLK in Figure 1.
2B, C, D, and E each show the signal waveform of the basic timing signal output from the timing generator 6. F1 to F3 indicate first to third output signals f1 to f3 of the context controller 7, respectively.
さて、第1図の並列処理プロセッサにおいて、命令RO
M 100から取り出された命令は、命令キュー4に一
旦保持されたあと命令デコーダ5によって処理内容が解
釈されて実行される。命令キュー4は、第1〜第3バツ
フア4A〜4Cを有しており、第1バツフア4Aと第2
バツフア4BはFIFO(ファーストインファーストア
ウト)形式のスタックを形成していて、第1のプログラ
マブルカウンタ1によって取り出された命令の第1バイ
トめと、第2のプログラマブルカウンタ2によって取り
出された命令の第1バイトめ、さらには第3のプログラ
マブルカウンタ2によって取り出された命令の第1バイ
トめが、順次格納されるように構成されている。また、
第2バ・ソファ4Bに格納された命令コードの第1バイ
トめから判断して第2バイトめを伴う命令であれば、第
3 /’ yノア4Cにその命令の第2バイトめが格納
される。Now, in the parallel processing processor shown in Fig. 1, the instruction RO
The instruction taken out from M100 is temporarily held in the instruction queue 4, and then the instruction decoder 5 interprets the processing content and executes it. The instruction queue 4 has first to third buffers 4A to 4C, the first buffer 4A and the second buffer 4A to 4C.
The buffer 4B forms a FIFO (first-in-first-out) stack, and stores the first byte of the instruction taken out by the first programmable counter 1 and the first byte of the instruction taken out by the second programmable counter 2. The first byte, and further the first byte of the instruction taken out by the third programmable counter 2, is configured to be stored sequentially. Also,
Judging from the first byte of the instruction code stored in the second bus 4B, if the instruction involves a second byte, the second byte of the instruction is stored in the third /'y node 4C. Ru.
第2図Bの信号はRAM200に含まれるアドレスデコ
ーダをプリチャージして選択アドレスを確定させるため
のタイミング信号として用いられ、第2図Cの信号はR
AM200あるいは汎用パラレル入出力ポート300の
データをデータバス30に読み出すタイミング信号とし
て用いられる。The signal in FIG. 2B is used as a timing signal to precharge the address decoder included in the RAM 200 to determine the selected address, and the signal in FIG.
It is used as a timing signal for reading data from the AM 200 or the general-purpose parallel input/output port 300 onto the data bus 30.
また、第2図りの信号はデータバス30からRAM20
0あるいは汎用パラレル入出力ポート300にデータを
書き込むタイミング信号として用いられ、第2図Eのタ
イミング信号のリーディングエツジ(前縁)が読み出し
タイミングとなり、トレイリングエツジ(後縁)が書き
込みタイミングとなる。Further, the signal in the second diagram is transmitted from the data bus 30 to the RAM 20.
The leading edge of the timing signal shown in FIG. 2E is the read timing, and the trailing edge is the write timing.
ここで、第2図のC区間が第1のプログラマブルカウン
タ1によって取り出された命令の実行区間に割り当てら
れ、b区間が第2のプログラマブルカウンタ2によって
取り出された命令の実行区間に割り当てられ、C区間が
第3のプログラマブルカウンタ3によって取り出された
命令の実行区間に割り当てられるものとすると、時刻t
1からのb区間においてRAM200の特定のアドレス
のデータをアキュムレータユニット17に転送させるた
めには、時刻t1以前に第2のアドレスレジスタ12に
そのアドレスが保持されている必要がある。第1図の並
列処理プロセッサでは、時刻10から時刻t1までのC
区間において、すなわち、命令キュー4の第1バツフア
4Aに格納されている命令を実行している間に、コンテ
キストコントローラ7から第2図Fに示した動作イネイ
ブル信号を第2のアドレスレジスタ12に供給し、命令
キュー4の第2バツフア4Bに格納されている命令がそ
の第2バイトめRAM200もしくは汎用ハラレル入出
力ポート300のアドレス情報を含んでいる命令であれ
ば、第3バツフア4Cならびにアドレスバス10を介し
て供給される新たなアドレスを第2のアドレスレジスタ
12に書き込む。また、コンテキストコントローラ7か
らの動作イネイブル信号は第1〜第3のプログラマブル
カウンタ1〜3にも供給されて、第2図のC区間あるい
はb区間もしくはC区間が到来するごとに、第1〜第3
のプログラマブルカウンタ1〜3のカウント値を更新さ
せるためにも利用される。Here, the C interval in FIG. 2 is assigned to the execution interval of the instruction fetched by the first programmable counter 1, the b interval is assigned to the execution interval of the instruction fetched by the second programmable counter 2, and C Assuming that the interval is assigned to the execution interval of the instruction taken out by the third programmable counter 3, at time t
In order to transfer data at a specific address in the RAM 200 to the accumulator unit 17 in the period b from time t1, that address must be held in the second address register 12 before time t1. In the parallel processing processor of FIG. 1, C from time 10 to time t1 is
During the interval, that is, while executing the instruction stored in the first buffer 4A of the instruction queue 4, the context controller 7 supplies the operation enable signal shown in FIG. 2F to the second address register 12. However, if the instruction stored in the second buffer 4B of the instruction queue 4 is an instruction whose second byte includes address information of the RAM 200 or the general-purpose Halal input/output port 300, the third buffer 4C and the address bus 10 The new address supplied via the address register 12 is written to the second address register 12. Further, the operation enable signal from the context controller 7 is also supplied to the first to third programmable counters 1 to 3, and each time the C interval, b interval, or C interval in FIG. 3
It is also used to update the count values of programmable counters 1 to 3.
このようにして、第1図に示した並列処理プロセッサで
は、実質的には3種類のプロセッサが命令ROM100
から命令を読み出して順次に実行するので、刻々と変化
する外部の事象に対する処理のリアルタイム性が向上す
る。In this way, in the parallel processing processor shown in FIG.
Since instructions are read from the computer and executed sequentially, the real-time performance of processing in response to ever-changing external events is improved.
さて、第1図に示した並列処理プロセッサでは、予約テ
ーブル40を介して、第1のプロセッサ部から、第2.
第3のプロセッサ部に対して子プロセスの形で処理の委
託が行われるが、このもようについて説明する。Now, in the parallel processing processor shown in FIG.
Processing is entrusted to the third processor unit in the form of a child process, and this process will be explained.
第3図は第1図の予約テーブル40の詳細な構成を示し
たもので、16ビツトのメモリ上の0番地から3番地ま
での4個のエリアが子プロセスの予約テーブルとして割
り当てられ、4番地が予約ポインタ8および実行ポイン
タ9として割り当てられている。また、予約テーブル4
0の第1〜第4エリアのMSB(D15)が予約フラグ
として用いられ、第1のプロセッサ部からの子プロセス
の委託時にセットされるとともに、第2のプロセッサ部
によってその子プロセスの実行が開始された時点にリセ
ットされる。一方、第1〜第4エリアのそれぞれの残り
の15ビツトには子プロセスの開始アドレスが格納され
る。FIG. 3 shows the detailed structure of the reservation table 40 in FIG. 1. Four areas from address 0 to address 3 on the 16-bit memory are allocated as a reservation table for the child process. are assigned as a reservation pointer 8 and an execution pointer 9. Also, reserved table 4
The MSB (D15) of the first to fourth areas of 0 is used as a reservation flag, and is set when a child process is entrusted from the first processor unit, and when execution of the child process is started by the second processor unit. It will be reset when On the other hand, the remaining 15 bits in each of the first to fourth areas store the start address of the child process.
第1のプロセッサ部が、第2あるいは第3のプロセッサ
部に子プロセスの実行を委託する際には、第1〜第4エ
リアの中で予約ポインタ8の示すエリアのMSBを調べ
、MSBがセットされていなければ、子プロセスの開始
アドレスを格納するとともにMSBをセットし、さらに
予約ポインタ8の値をインクリメントする。When the first processor section entrusts the execution of a child process to the second or third processor section, it checks the MSB of the area indicated by the reservation pointer 8 among the first to fourth areas, and the MSB is set. If not, the start address of the child process is stored, the MSB is set, and the value of reservation pointer 8 is incremented.
一方、第2のプロセッサ部では、第4図に示したフロー
チャートに基づいた動作が行われる。第4図の処理ブロ
ック51およびブランチ52では、実行ポインタ9の示
すエリアのMSBを調べ、MSBがセットされていれば
それをリセットするとともに、実行ポインタ9の値をイ
ンクリメントしたうえで、インクリメント前のポインタ
が示すエリアに開始アドレスが格納されている子プロセ
スの実行を開始する。子プロセスは命令ROM上にサブ
ルーチンの形式で記述されており、処理が完了すると、
第2のプロセッサ部は、第4図の処理ブロック51とブ
ランチ52によって構成される子プロセススタータの動
作を再開する。第1図の第1の子プロセススタータ21
と対等に第2の子プロセススタータ22が配置されてい
ることからもわかるように、第3のプロセッサ部もまた
、第4図に示した子プロセスの起動ルーチンを有してい
る。なお、予約テーブル40の第1〜第4エリ乙 予約
ポインタ8.実行ポインタ9はマイクロプロセッサの初
期化ルーチンにおいてクリアされる。On the other hand, the second processor section performs operations based on the flowchart shown in FIG. In the processing block 51 and branch 52 in FIG. 4, the MSB of the area indicated by the execution pointer 9 is checked, and if the MSB is set, it is reset, the value of the execution pointer 9 is incremented, and the value before the increment is Starts execution of the child process whose start address is stored in the area pointed to by the pointer. A child process is written in the form of a subroutine on the instruction ROM, and when processing is completed,
The second processor section resumes the operation of the child process starter constituted by processing block 51 and branch 52 in FIG. The first child process starter 21 in FIG.
As can be seen from the fact that the second child process starter 22 is placed equally with the second child process starter 22, the third processor section also has the child process startup routine shown in FIG. In addition, the first to fourth areas of the reservation table 40 Reservation pointer 8. Execution pointer 9 is cleared in the microprocessor's initialization routine.
このようにして、第1図に示した並列処理プロセッサで
は、第1のプロセッサ部から第2のプロセッサ部に予約
テーブル40を介して子プロセスの処理を委託するので
、プロセスの処理順序が損なわれる恐れがない。In this way, in the parallel processing processor shown in FIG. 1, the processing of the child process is entrusted from the first processor section to the second processor section via the reservation table 40, so that the processing order of the processes is impaired. There is no fear.
ところで、このように第1のプロセッサが託した子プロ
セスを対等に配置された複数のプロセッサによって実行
していく場合には、プロセッサの競合が発生する可能性
があり、同じ子プロセスが異なるプロセッサによって同
時に実行されて、重複処理によって全体としての処理効
率が悪化する危険性を有している。By the way, when a child process entrusted by a first processor is executed by multiple processors arranged equally, processor contention may occur, and the same child process is executed by different processors. There is a risk that the overall processing efficiency will deteriorate due to overlapping processing that is executed simultaneously.
おいては、第1の子プロセススタータ21と第2の子プ
ロセススタータ22の一方が動作中は他方の子プロセス
スタータの動作を抑制するプロセス分配器23を備えて
いる。第5図に示された子プロセス管理機構の動作を、
第6図に示した予約テーブルの構成図と第7図に示した
フローチャートにより説明する。The device includes a process distributor 23 that suppresses the operation of the other child process starter while one of the first child process starter 21 and the second child process starter 22 is in operation. The operation of the child process management mechanism shown in FIG.
This will be explained with reference to the configuration diagram of the reservation table shown in FIG. 6 and the flowchart shown in FIG.
第6図は第5図の予約テーブル40の詳細な構成を示し
たもので、16ビツトのメモリ上の0番地から3番地ま
での4個のエリアが子プロセスの予約テーブルとして割
り当てられ、4番地が予約ポインタ8および実行ポイン
タ9、ならびに、第1の子プロセススタータ21によっ
て予約テーブルの検索期間中にセットされる第1のスタ
ータフラグ21aと、第2の子プロセススタータ22に
よって予約テーブルの検索期間中にセットされる第2の
スタータフラグ22aとして割り当てられている。また
、予約テーブル40の第1〜第4エリアのMSBが予約
フラグとして用いられ、第1のプロセッサ部からの子プ
ロセスの委託時にセットされるとともに、第2のプロセ
ッサ部によってその子プロセスの実行が開始された時点
にリセットされる。一方、第1〜第4エリアのそれぞれ
の残りの15ビツトには子プロセスの開始アドレスが格
納される。FIG. 6 shows the detailed structure of the reservation table 40 in FIG. 5. Four areas from address 0 to address 3 on the 16-bit memory are allocated as a reservation table for the child process, are the reservation pointer 8 and the execution pointer 9, the first starter flag 21a set by the first child process starter 21 during the reservation table search period, and the second child process starter 22 during the reservation table search period. This flag is assigned as the second starter flag 22a, which is set within the flag. Furthermore, the MSBs of the first to fourth areas of the reservation table 40 are used as reservation flags, which are set when the first processor entrusts a child process, and the second processor starts executing the child process. It will be reset at the time when On the other hand, the remaining 15 bits in each of the first to fourth areas store the start address of the child process.
一方、第2のプロセッサ部では、第7図に示したフロー
チャートに基づいた動作が行われる。ブランチ71およ
び処理ブロック72に示すよっに、第3のプロセッサ部
によってセットされる第2のスタータフラグの内容をチ
エツクし、セットされていればリセットされるまで待機
する。リセットされていれば、第1のスタータフラグを
セットしたうえで、子プロセススタータに処理を移す。On the other hand, the second processor section performs operations based on the flowchart shown in FIG. As shown in branch 71 and processing block 72, the contents of the second starter flag set by the third processor section are checked, and if set, the program waits until it is reset. If it has been reset, the first starter flag is set and processing is transferred to the child process starter.
子プロセススタータはその処理が終了するときに処理ブ
ロック73に示すように第1のスタータフラグをリセッ
トする。第7図において、ブランチ71および処理ブロ
ック72が第5図のプロセス分配器23の2個の論理積
ゲートの一方、つまり、プロセス分配器23の半分を構
成している。When the child process starter completes its processing, it resets the first starter flag as shown in processing block 73. In FIG. 7, branch 71 and processing block 72 constitute one of the two AND gates of process distributor 23 of FIG. 5, that is, one half of process distributor 23. In FIG.
第3のプロセッサ部でも、第7図に示したフローチャー
トと同様の動作が行われる。The third processor section also performs the same operation as in the flowchart shown in FIG.
このようにして、第5図に示した並別%qrローE1.
’7は、プログラム格納手段と、複数のアドレスを有す
るとともにその内容が読み書き可能なメモリと、前記メ
モリと前記プログラム格納手段の間を結合するデータバ
スと、少なくとも前記メモリを共有する第1.第2.第
3のプロセッサと、前記第1のプロセッサによって前記
メモリ上に子プロセスの開始アドレス情報を格納して予
約テーブル40を形成するテーブル形成手段と、前記子
プロセス予約テーブル40に格納された開始アドレス情
報を検索して子プロセスを前記第2.第3のプロセッサ
に実行させる第1.第2の子プロセススタータ21.2
2と、一方の子プロセススタータが動作中は他方の子プ
ロセススタータの動作を抑制するプロセス分配器23に
よって構成され、前記プロセス分配器23によって子プ
ロセッサの競合が抑制されるので、プロセス間の調歩性
が高まる。In this way, the normal %qr row E1. shown in FIG.
'7 includes a program storage means, a memory having a plurality of addresses and whose contents are readable and writable, a data bus coupling between the memory and the program storage means, and a first memory that shares at least the memory. Second. a third processor; a table forming means for storing start address information of a child process on the memory by the first processor to form a reservation table 40; and start address information stored in the child process reservation table 40. Search for the child process in the second . The first command executed by the third processor. Second child process starter 21.2
2, and a process distributor 23 that suppresses the operation of the other child process starter while one child process starter is operating, and since the process distributor 23 suppresses competition between child processors, there is no synchronization between processes. Sexuality increases.
の動作開始時に、初期化ブロック24によってプロセス
分配器23に第1の子プロセススタータ21が動作中で
あることを示す擬似信号を与えるように構成されている
。At the start of operation, the initialization block 24 is configured to provide the process distributor 23 with a pseudo signal indicating that the first child process starter 21 is in operation.
具体的には、第9図に示したフローチャートのように、
第1のプロセッサの初期化ルーチンにおいて、第6図に
示した第1のスタータフラグ21aをセットしく処理ブ
ロック91)、第2のスタータフラグ22aをリセット
する(処理ブロック92)ように構成される。これによ
って、プロセス分配器23は第1のプロセッサから委託
された最初の子プロセスを優先的に第2のプロセッサに
実行させるように作動する。なお、第9図のフローチャ
ートにおいて、初期化ブロックの処理を終えると1 第
1のプロセッサは、事象変化の検出(ブー77チ93)
と、すでに説明したような子プロセスの予約処理(処理
ブロック94)を継続して続ける。Specifically, as shown in the flowchart shown in Figure 9,
In the initialization routine of the first processor, the first starter flag 21a shown in FIG. 6 is set (processing block 91) and the second starter flag 22a is reset (processing block 92). Thereby, the process distributor 23 operates so that the first child process delegated from the first processor is executed by the second processor with priority. In addition, in the flowchart of FIG. 9, when the processing of the initialization block is completed, the first processor detects an event change (boo 77 chi 93).
Then, the child process reservation processing (processing block 94) as described above continues.
以上に説明した本発明の実施例ではいずれも3種類のプ
ロセッサ部を有する例を示したが、4種類以上のプロセ
ッサ部を有する場合においても本発明が適用できること
はいうまでもない。In each of the embodiments of the present invention described above, an example is shown in which three types of processor units are provided, but it goes without saying that the present invention is also applicable to cases in which four or more types of processor units are included.
発明の効果
本発明の並列処理プロセッサは以上の説明がらも明らか
なように、プログラム格納手段(命令ROM100)と
、前記プログラム格納手段に格納された命令を順次選択
する第1.第2.第3の命令選択手段(第1〜第3のプ
ログラマブルカウンタ1〜3)と、複数のアドレスを有
するとともにその内容が読み書き可能なメモリ(RAM
200)と、前記メモリと前記プログラム格納手段の間
を結合するデータバス30と、前記第1.第2.第3の
命令選択手段によって選択された命令の実行サイクルを
順次割り当てるコンテキストコントローラ7と、前記第
1の命令選択手段を介した命令によって前記メモリ上に
子プロセスの開始アドレス情報を格納して予約テーブル
40を形成するテーブル形成手段(予約ポインタ8)と
、前記第2あるいは前記第3の命令選択手段を介した命
令によって前記予約テーブルに格納された開始アドレス
情報を検索して子プロセスを実行する第1および第2の
子プロセススタータ(子プロセススタータ21.22)
を備えているので、プロセスの処理順序が損なわれる恐
れがなく、子プロセスの処理として、プログラム格納手
段(命令ROM100)と、複数のアドレスを有すると
ともにその内容が読み書き可能なメモIJ(RAM20
0)と、前記メモリと前記プログラム格納手段の間を結
合するデータバス30と、少なくとも前記メモリを共有
する第1.第2.第3のプロセッサ(第1〜第3のプロ
グラマブルカウンタ1〜3ならびにこれらによって取り
出される命令群を中心にして構成される。)と、前記第
1のプロセッサによって前記メモリ上に子プロセスの開
始アドレス情報を格納して予約テーブル40を形成する
テーブル形成手段(予約ポインタ8)と、前記予約テー
ブルに格納された開始アドレス情報を検索して子プロセ
スを前記第2.第3のプロセッサに実行させる第1.第
2の子フロセススタータ(子プロセススタータ2L
22)と、一方の子プロセススタータが動作中は他方の
子プロセススタータの動作を抑制するプロセス分配器2
3を備えているので、従来以上にプロセス間の調歩性を
高めることができる。Effects of the Invention As is clear from the above description, the parallel processing processor of the present invention includes a program storage means (instruction ROM 100) and a first ROM for sequentially selecting instructions stored in the program storage means. Second. a third instruction selection means (first to third programmable counters 1 to 3); a memory (RAM) having a plurality of addresses and whose contents can be read and written;
200), a data bus 30 coupling between the memory and the program storage means, and the first . Second. a context controller 7 that sequentially allocates execution cycles of the instructions selected by the third instruction selection means; and a reservation table for storing start address information of child processes in the memory according to the instructions via the first instruction selection means. 40, and a table forming means (reservation pointer 8) that searches the start address information stored in the reservation table according to an instruction via the second or third instruction selection means and executes the child process. 1 and the second child process starter (child process starter 21.22)
Since it is equipped with a program storage means (instruction ROM 100) and a memory IJ (RAM 20) which has multiple addresses and whose contents can be read and written, there is no fear that the processing order of the process will be impaired.
0), a data bus 30 coupling between the memory and the program storage means, and a first .0) that shares at least the memory. Second. a third processor (consisting mainly of the first to third programmable counters 1 to 3 and a group of instructions taken out by these); and the first processor stores start address information of a child process on the memory. table forming means (reservation pointer 8) that stores the reservation table 40 by storing the reservation table 40, and retrieves the start address information stored in the reservation table to set the child process to the second. The first command executed by the third processor. Second child process starter (child process starter 2L)
22), and a process distributor 2 that suppresses the operation of one child process starter while the other child process starter is operating.
3, it is possible to improve the synchronization between processes more than before.
00)と、複数のアドレスを有するとともにその内容が
読み書き可能なメモリ(RAM200)と、前記メモリ
と前記プログラム格納手段の間を結合するデータバス3
0と、少なくとも前記メモリを共有する第1.第2.第
3のプロセッサと、前記第1のプロセッサによって前記
メモリ上に子プロセスの開始アドレス情報を格納して予
約テーブル40を形成するテーブル形成手段(予約ポイ
ンタ8)と、前記予約テーブルに格納された開始アドレ
ス情報を検索して子プロセスを前記第2.第3のプロセ
ッサに実行させる第1.第2の子プロセススタータ(子
プロセススタータ21.22)と、一方の子プロセスス
タータが動作中は他方の子プロセススタータの動作を抑
制するプロセス分配器23と、前記第1のプロセッサの
動作開始時に、前記プロセス分配器に前記第1の子プロ
セススタータが動作中であることを示す擬似信号を与え
る初期化手段初期化ブロック24を備えているので、第
1のプロセッサ部は第2.第3のプロセッサ部のプロセ
ッサ部の一方に対して優先的に最初の処理を託すること
ができ、プロセッサ間の処理順序も定めることができる
。00), a memory (RAM 200) having a plurality of addresses and whose contents can be read and written, and a data bus 3 connecting the memory and the program storage means.
0 and the first .0 sharing at least the memory. Second. a third processor; table forming means (reservation pointer 8) for storing start address information of child processes on the memory by the first processor to form a reservation table 40; The address information is searched to locate the child process in the second. The first command executed by the third processor. a second child process starter (child process starter 21, 22), a process distributor 23 that suppresses the operation of the other child process starter while one of the child process starters is in operation; , an initialization means initialization block 24 for providing a pseudo signal to the process distributor indicating that the first child process starter is in operation, so that the first processor section is configured to provide a pseudo signal indicating that the first child process starter is in operation. One of the processor units of the third processor unit can be entrusted with the initial processing preferentially, and the processing order among the processors can also be determined.
ロセッサの構成図、第2図は第1図の主要部のタイミン
グチャート、第3図は予約テーブルの構成図、第4図は
子プロセススタータの動作を示すフチ−プルの構成図、
第7図はプロセス分配器と子会椿蕎ツ希構成図、第9図
は第1のプロセッサの動作を示すフローチャートである
。FIG. 2 is a timing chart of the main part of FIG. 1, FIG. 3 is a configuration diagram of a reservation table, FIG. 4 is a border configuration diagram showing the operation of a child process starter,
FIG. 7 is a block diagram of the process distributor and the subsidiary Tsubaki Sobuki, and FIG. 9 is a flowchart showing the operation of the first processor.
1・・・第1のプログラマブルカウンタ、 2・・・
第2のプログラマブルカウンタ、 3・・・第3のプ
ログラマブルカウンタ、 7・・・コンテキストコン
トローラ、 8・・・予約ポインタ、 9・・・実
行ボイン夕、 21・・・第1の子プロセススタータ
、22・・・第1の子プロセススタータ、 23・・
・プロセス分配器、 24・・・初期化ブロック、
30・・・データバス、 40・・・予約テーブル
、 100・・・命令ROM、 200・・・R
AM。1... first programmable counter, 2...
2nd programmable counter, 3... Third programmable counter, 7... Context controller, 8... Reserve pointer, 9... Execution pointer, 21... First child process starter, 22 ...first child process starter, 23...
・Process distributor, 24... initialization block,
30...Data bus, 40...Reservation table, 100...Instruction ROM, 200...R
A.M.
代理人の氏名 弁理士 粟野 重孝 はか18第 図 第 図 第 図 5約ざイ ツタ 実f’iざインタ 第1の子ブ0セススタータ V2の子ブOセススタータ ブ0セス分&!器 予約ラーウル 第 図 箪 図 葛3のブOウラマラルカウンタ 5約プインタ 亨行〆インタ 1141の子プot+フスダータ 1!l12Φ子プロセススタータ ブot’ス9!に’器 初@ leプロ1.り 予約テーウル 第 図Name of agent: Patent attorney Shigetaka Awano Haka18th figure No. figure No. figure 5 Ivy Real f’iza inter 1st baby 0 cess starter V2 child O process starter Bu0 ses minutes &! vessel reservation raul No. figure chest of drawers figure Kuzu 3's buo uramalaruka counter 5 approx. Tokoyuki〆inter 1141 child ot + Fusdata 1! l12Φ child process starter Boot's 9! ni’ vessel First @ le pro 1. the law of nature reservation table No. figure
Claims (3)
するプログラム格納手段と、 前記プログラム格納手段に格納された命令を順次選択す
る第1、第2、第3の命令選択手段と、複数のアドレス
を有するとともにその内容が読み書き可能なメモリと、 前記メモリと前記プログラム格納手段の間を結合するデ
ータバスと、 前記第1、第2、第3の命令選択手段によって選択され
た命令の実行サイクルを順次割り当てるコンテキストコ
ントローラと、 前記第1の命令選択手段を介した命令によって前記メモ
リ上に子プロセスの開始アドレス情報を格納して予約テ
ーブルを形成するテーブル形成手段と、 前記第2あるいは前記第3の命令選択手段を介した命令
によって前記予約テーブルに格納された開始アドレス情
報を検索して子プロセスを実行する第1および第2の子
プロセススタータとを具備してなる並列処理プロセッサ
。(1) A program storage means for storing a program consisting of a group of instructions to be executed sequentially; first, second, and third instruction selection means for sequentially selecting instructions stored in the program storage means; and a plurality of addresses. a memory whose contents are readable and writable; a data bus that connects the memory and the program storage means; and a data bus that connects the memory and the program storage means; a context controller for allocating sequentially; a table forming means for storing start address information of a child process on the memory according to an instruction via the first instruction selecting means to form a reservation table; A parallel processing processor comprising first and second child process starters that execute a child process by searching start address information stored in the reservation table according to an instruction via an instruction selection means.
するプログラム格納手段と、 複数のアドレスを有するとともにその内容が読み書き可
能なメモリと、 前記メモリと前記プログラム格納手段の間を結合するデ
ータバスと、 少なくとも前記メモリを共有する第1、第2、第3のプ
ロセッサと、 前記第1のプロセッサによって前記メモリ上に子プロセ
スの開始アドレス情報を格納して予約テーブルを形成す
るテーブル形成手段と、 前記予約テーブルに格納された開始アドレス情報を検索
して子プロセスを前記第2、第3のプロセッサに実行さ
せる第1、第2の子プロセススタータと、 一方の子プロセススタータが動作中は他方の子プロセス
スタータの動作を抑制するプロセス分配器とを具備して
なる並列処理プロセッサ。(2) a program storage means for storing a program consisting of a group of instructions to be executed sequentially; a memory having a plurality of addresses and whose contents can be read and written; and a data bus connecting the memory and the program storage means; , first, second, and third processors that share at least the memory; table forming means for storing start address information of a child process on the memory by the first processor to form a reservation table; first and second child process starters that search for start address information stored in a reservation table and cause the second and third processors to execute the child processes; and when one of the child process starters is running, the other child process starter A parallel processing processor comprising a process distributor that suppresses the operation of a process starter.
器に第1の子プロセススタータが動作中であることを示
す擬似信号を与える初期化手段を具備してなる請求項2
記載の並列処理プロセッサ。(3) Claim 2, further comprising initialization means for supplying a pseudo signal to the process distributor when the first processor starts operating, indicating that the first child process starter is in operation.
Parallel processing processor as described.
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2125022A JP2532719B2 (en) | 1990-05-15 | 1990-05-15 | Parallel processor |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2125022A JP2532719B2 (en) | 1990-05-15 | 1990-05-15 | Parallel processor |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| JPH0424748A true JPH0424748A (en) | 1992-01-28 |
| JP2532719B2 JP2532719B2 (en) | 1996-09-11 |
Family
ID=14899921
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP2125022A Expired - Fee Related JP2532719B2 (en) | 1990-05-15 | 1990-05-15 | Parallel processor |
Country Status (1)
| Country | Link |
|---|---|
| JP (1) | JP2532719B2 (en) |
Citations (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JPS5887634A (en) * | 1981-11-20 | 1983-05-25 | Fujitsu Ltd | Processing sequential managing system |
| JPH02110739A (en) * | 1988-10-20 | 1990-04-23 | Yamaha Corp | Central processing unit for multi-task |
-
1990
- 1990-05-15 JP JP2125022A patent/JP2532719B2/en not_active Expired - Fee Related
Patent Citations (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JPS5887634A (en) * | 1981-11-20 | 1983-05-25 | Fujitsu Ltd | Processing sequential managing system |
| JPH02110739A (en) * | 1988-10-20 | 1990-04-23 | Yamaha Corp | Central processing unit for multi-task |
Also Published As
| Publication number | Publication date |
|---|---|
| JP2532719B2 (en) | 1996-09-11 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| JP2664663B2 (en) | Microcomputer and method of operating simultaneous processes | |
| US7305500B2 (en) | Sram controller for parallel processor architecture including a read queue and an order queue for handling requests | |
| EP1247168B1 (en) | Memory shared between processing threads | |
| JPS5911943B2 (en) | Trap mechanism for data processing equipment | |
| JPS646488B2 (en) | ||
| KR880001170B1 (en) | Microprocessor | |
| JPH0248931B2 (en) | ||
| US5696939A (en) | Apparatus and method using a semaphore buffer for semaphore instructions | |
| JPS62115542A (en) | Information processor | |
| CA1285654C (en) | Instruction control mechanism for a computing system | |
| JP2532719B2 (en) | Parallel processor | |
| JP2558945B2 (en) | Parallel processor | |
| JPS6032220B2 (en) | information processing equipment | |
| EP0183877B1 (en) | Microcomputer for time dependent processes | |
| JPS6120906B2 (en) | ||
| US5579495A (en) | Information processing in which a simulation of parallelism is achieved | |
| JP2883465B2 (en) | Electronic computer | |
| JP2002278774A (en) | Method and apparatus for generating an instruction word when controlling a functional unit in a processor | |
| JP2511063B2 (en) | Pipeline control method | |
| JPH0756633B2 (en) | Task switching method | |
| JP3012444B2 (en) | Process dispatch method | |
| JPH01274240A (en) | parallel processing processor | |
| JPH0766336B2 (en) | Parallel processor | |
| JPS5942331B2 (en) | Prosetsusasouchinoseigiohoshiki | |
| JPS5897759A (en) | Memory access system |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| LAPS | Cancellation because of no payment of annual fees |