JPH077338B2 - Parallel processor - Google Patents
Parallel processorInfo
- Publication number
- JPH077338B2 JPH077338B2 JP63122918A JP12291888A JPH077338B2 JP H077338 B2 JPH077338 B2 JP H077338B2 JP 63122918 A JP63122918 A JP 63122918A JP 12291888 A JP12291888 A JP 12291888A JP H077338 B2 JPH077338 B2 JP H077338B2
- Authority
- JP
- Japan
- Prior art keywords
- instruction
- address
- branch
- programmable counter
- timing
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Lifetime
Links
Description
【発明の詳細な説明】 産業上の利用分野 本発明はマイクロプロセッサの命令処理機構の構成に関
するものである。BACKGROUND OF THE INVENTION 1. Field of the Invention The present invention relates to a structure of an instruction processing mechanism of a microprocessor.
従来の技術 近年、ソフトウェアプログラミング方式のマイクロプロ
セッサはあらゆる方面で多用されており、その構成とし
ては、順次実行される命令群からなるプログラムを格納
するプログラム格納手段と、複数のアドレスを有し、該
アドレスが前記プログラム格納手段に格納された命令に
よって特定されるデータ入出力手段と、前記プログラム
格納手段から送出される命令に基づいてデータの演算を
実行する演算手段と、前記データ入出力手段(データメ
モリや入出力ポートが該当する。)と前記演算手段の間
を結合するデータバスを備えていることに特徴づけられ
る。また、その代表的な構成が特公昭58-33584号公報に
示されている。2. Description of the Related Art In recent years, software programming type microprocessors have been widely used in all fields, and as a configuration thereof, a program storage means for storing a program including a group of instructions to be sequentially executed and a plurality of addresses are provided. Data input / output means whose address is specified by an instruction stored in the program storage means, arithmetic means for executing data arithmetic based on the instruction transmitted from the program storage means, and the data input / output means (data A memory or an input / output port corresponds thereto) and a data bus for coupling between the arithmetic means are provided. A typical structure thereof is shown in Japanese Patent Publication No. 58-33584.
このようなソフトウェアプログラミング方式のマイクロ
プロセッサはあらゆる用途に利用できるが、その反面、
処理の高速性を要求される一部の機器のコントローラと
して用いるには、ワイヤードロジックで構成された専用
のコントローラに比較して、リアルタイム処理能力に欠
けるという問題があった。マイクロプロセッサの処理能
力を高めるためにパイプライン処理方式が採用された
り、あるいは、米国特許第3,980,992号公報や特許出願
公開第62-69351号公報に示されるような多重処理構成の
マイクロプロセッサが提案されてきた。Such a software programming type microprocessor can be used for all purposes, but on the other hand
In order to use it as a controller for some devices that require high-speed processing, there is a problem in that it lacks real-time processing capability as compared with a dedicated controller configured with a wired logic. A pipeline processing method is adopted to increase the processing capability of the microprocessor, or a microprocessor having a multi-processing configuration as shown in U.S. Pat.No. 3,980,992 and Japanese Patent Application Publication No. 62-69351 is proposed. Came.
発明が解決しようとする課題 しかしながら、パイプライン処理方式は、あらかじめ命
令を先読みしておいて命令の実行効率を向上させるもの
であるが、条件分岐命令などが含まれていると、その例
外処理が複雑になったり、先読みの効果が得られなくな
るなどの不都合を生じる。また、多重処理構成のマイク
ロプロセッサではALU(算術論理演算ユニット)やデー
タバスなどの資源を共有するために複数の処理ループが
時分割で実行されることになり、処理のリアルタイム性
は向上するものの処理効率は向上しないという問題点を
有していた。However, although the pipeline processing method pre-reads an instruction in advance to improve the execution efficiency of the instruction, if a conditional branch instruction or the like is included, the exception processing is performed. There are inconveniences such as complication and inability to obtain the look-ahead effect. Also, in a microprocessor with a multi-processing configuration, a plurality of processing loops are executed in a time-sharing manner in order to share resources such as an ALU (arithmetic-logical operation unit) and a data bus, but real-time processing is improved. There was a problem that the processing efficiency was not improved.
本発明は上記問題点に鑑み、多重処理構成のマイクロプ
ロセッサにおいて、従来以上に処理効率を向上させるこ
とにある。In view of the above problems, the present invention aims to improve the processing efficiency of a microprocessor having a multi-processing configuration, more than ever before.
課題を解決するための手段 前記した課題を解決するために本発明の並列処理プロセ
ッサは、第1の命令選択手段による命令の選択に続いて
第2の命令選択手段による命令の選択を行なわせしめ、
これらの命令選択手段によって選択された命令の実行サ
イクルを交互に割り当てるコンテキストコントローラ
と、一方の命令選択手段によって選択された命令が、命
令コードの次にアドレス情報を有するオペランドを伴な
う分岐命令であるかを判別する命令判別器と、前記命令
判別器から分岐命令の検知信号を受けて、当該命令選択
手段による次の実行サイクルまでに、その分岐命令が有
するアドレス情報を当該命令選択手段に伝達して分岐先
のアドレスからの命令の実行に備える命令取り出しコン
トローラを備えている。Means for Solving the Problems In order to solve the above-mentioned problems, the parallel processor of the present invention causes the second instruction selecting unit to select the instruction subsequent to the instruction selecting by the first instruction selecting unit,
A context controller that alternately allocates the execution cycles of the instructions selected by these instruction selecting means, and an instruction selected by one instruction selecting means is a branch instruction with an operand having address information next to the instruction code. An instruction discriminator for discriminating whether or not there is a branch instruction detection signal from the instruction discriminator, and the address information of the branch instruction is transmitted to the instruction selection means by the next execution cycle by the instruction selection means. An instruction fetch controller is provided for executing an instruction from the branch destination address.
作用 本発明では前記した構成によって、第2の命令選択手段
から取り出された命令が分岐アドレスを伴っていれば、
第1の命令選択手段から取り出された命令の実行中に、
すなわち、第2の命令選択手段から取り出された命令の
実行開始時までに第2命令選択手段のアドレスを更新さ
せることにより、実質的にマイクロプロセッサの処理効
率を向上させる。In the present invention, with the above-mentioned configuration, if the instruction fetched from the second instruction selecting means is accompanied by the branch address,
During execution of the instruction fetched from the first instruction selecting means,
That is, the processing efficiency of the microprocessor is substantially improved by updating the address of the second instruction selecting means by the time the execution of the instruction fetched from the second instruction selecting means is started.
実施例 以照、本発明の実施例について図面を参照しながら説明
する。Embodiments Hereinafter, embodiments of the present invention will be described with reference to the drawings.
第1図は本発明の一実施例における並列処理プロセッサ
の構成図を示したものであり、順次実行される命令群か
らなるプログラムが格納される命令ROM1から、第1のプ
ログラマブルカウンタ(PC1)2あるいは第2のプログ
ラマブルカウンタ(PC2)3によって選択された命令
は、命令の保持ならびに先読みのための命令キュー4に
送られる。前記命令キュー4はいったん保持された命令
は命令デコーダ5に送出されるとともに、そのアドレス
インデックス部はアドレスバス6と前記第1のプログラ
マブルカウンタ2および前記第2のプログラマブルカウ
ンタ3に送出される。前記命令デコーダ5によって作り
出された制御信号群はコントロールバス7を介してマイ
クロプロセッサを構成する各ブロックに供給される。ま
た、タイミングジェネレータ(TG)8においてマイクロ
プロセッサの処理のための複数のタイミング信号が作り
出され、これらのタイミング信号は前記コントロールバ
ス7を介して各ブロックに供給される。前記アドレスバ
ス6と第1のアドレスレジスタ(ADR1)9、第2のアド
レスレジスタ(ADR1)10、データバス11の間は相互にア
ドレスデータを受け渡すように連結されている。前記第
1のアドレスレジスタ9および前記第2のアドレスレジ
スタ10はRAM(スタック領域も含まれる。)12、汎用パ
ラレル入出力ポート(PIO)13のアドレスを保持する。
前記汎用パラレル入出力ポート13の3群の入出力線は、
それぞれ、A0〜A15端子、B0〜B15端子、C0〜C15端子に
よって構成されたA,B,C群の入出力端子群に接続されて
いる。さらに、前記データバス11には第1のレジスタ
(AX)14と第2のレジスタ(AY)15を介してALU16の入
力部が接続され、前記ALUの出力はアキュムレータユニ
ット(ACC)(フラグ群も含まれる。)17に供給され
る。前記アキュムレータユニット17と前記データバス11
の間も双方向のバスで連結されている。FIG. 1 is a block diagram of a parallel processor according to an embodiment of the present invention, in which a first programmable counter (PC1) 2 from an instruction ROM 1 in which a program including an instruction group to be sequentially executed is stored. Alternatively, the instruction selected by the second programmable counter (PC2) 3 is sent to the instruction queue 4 for holding and prefetching the instruction. In the instruction queue 4, the instruction once held is sent to the instruction decoder 5, and the address index portion thereof is sent to the address bus 6, the first programmable counter 2 and the second programmable counter 3. The control signal group generated by the instruction decoder 5 is supplied to each block forming the microprocessor via the control bus 7. Further, a plurality of timing signals for processing of the microprocessor are generated in the timing generator (TG) 8, and these timing signals are supplied to each block via the control bus 7. The address bus 6, the first address register (ADR1) 9, the second address register (ADR1) 10, and the data bus 11 are connected to each other so as to exchange address data. The first address register 9 and the second address register 10 hold addresses of a RAM (including a stack area) 12 and a general-purpose parallel input / output port (PIO) 13.
The three groups of input / output lines of the general-purpose parallel input / output port 13 are
They are connected to the input / output terminal groups of the A, B, and C groups, which are composed of terminals A0 to A15, terminals B0 to B15, and terminals C0 to C15, respectively. Further, the input part of the ALU 16 is connected to the data bus 11 via a first register (AX) 14 and a second register (AY) 15, and the output of the ALU is an accumulator unit (ACC) (also a flag group). Included.) Supplied to 17. The accumulator unit 17 and the data bus 11
Between the two are also connected by a bidirectional bus.
一方、前記タイミングジェネレータ8からのタイミング
信号はコンテキストコントローラ18にも供給され、前記
コンテキストコントローラ18の出力信号は命令の実行サ
イクル識別信号として前記アキュムレータユニット17と
命令取り出しコントローラ20に供給され、アドレス設定
の動作イネイブル信号として前記第2のアドレスレジス
タ10に供給され、インバータ19を介した反転信号が前記
第1のアドレスレジスタ9に供給されている。前記命令
取り出しコントローラ20からは前記第1のプログラマブ
ルカウンタ2、前記第2のプログラマブルカウンタ3に
カウントクロック信号とプリセット信号がそれぞれ供給
されている。また、前記命令ROM1からの命令は命令判別
器21にも供給され、前記命令取り出しコントローラ20に
は前記命令判別器21からカウント更新指令信号が供給さ
れるとともに、前記命令デコーダ5からプリセット指令
信号が、前記アキュムレータユニット17からゼロフラグ
とキャリーフラグの内容がそれぞれ供給されている。さ
らに、命令キュー4は、第1バッファ4A、第2バッファ
4B、第3バッファ4C、第4バッファ4Dを有しており、第
1バッファ4Aと第2バッファ4BはFIFO(ファーストイン
ファーストアウト)形式のスタックを形成していて、第
1のプログラマブルカウンタ2によって取り出された命
令の第1バイト目と、第2のプログラマブルカウンタ3
によって取り出された命令の第1バイト目が、次々と交
互に格納されるように構成されている。On the other hand, the timing signal from the timing generator 8 is also supplied to the context controller 18, and the output signal of the context controller 18 is supplied to the accumulator unit 17 and the instruction fetch controller 20 as an instruction execution cycle identification signal for address setting. It is supplied to the second address register 10 as an operation enable signal, and an inverted signal via the inverter 19 is supplied to the first address register 9. A count clock signal and a preset signal are supplied from the instruction fetch controller 20 to the first programmable counter 2 and the second programmable counter 3, respectively. The command from the command ROM 1 is also supplied to the command discriminator 21, and the command fetch controller 20 is supplied with a count update command signal from the command discriminator 21 and a preset command signal from the command decoder 5. The contents of the zero flag and carry flag are supplied from the accumulator unit 17, respectively. Further, the instruction queue 4 includes a first buffer 4A and a second buffer 4A.
4B, a third buffer 4C, a fourth buffer 4D, the first buffer 4A and the second buffer 4B form a FIFO (first in first out) type stack, and by the first programmable counter 2 The first byte of the fetched instruction and the second programmable counter 3
The first byte of the instruction fetched by is stored alternately one after another.
なお、各ブロックのデータ出力部がいずれも3ステート
構成になっていて、データの出力を要求されない期間は
ハイインピーダンス状態に保持されるものとする。ま
た、各ブロックにはコントロールバス7を介して必要な
タイミング信号と制御信号が供給されるものとする。It is assumed that the data output section of each block has a 3-state configuration and is held in a high impedance state during a period in which data output is not required. Further, each block is supplied with necessary timing signals and control signals via the control bus 7.
以上のように構成された並列処理プロセッサについて、
第1図に示した構成図と、第2図に示した主要部のタイ
ミングチャートによりその動作を説明する。第2図Aは
第1図のCLK端子に供給される外部クロック信号波形、
第2図Bは命令デコーダ5による命令解読期間、第2図
Caは命令取り出しコントローラ20が第1のプログラマブ
ルカウンタ2をプリセットするタイミング、第2図Cbは
命令取り出しコントローラ20が第2のプログラマブルカ
ウンタ3をプリセットするタイミング、第2図Dは命令
ROM1に対する第1のプログラマブルカウンタ2の作用期
間、第2図Eは命令ROM1のデコーダ部のプリチャージ期
間、第2図Fは命令ROM1から命令キュー4の第2バッフ
ァ4Bへの命令コードの転送タイミング、第2図Gは2バ
イト命令読み込み時における第1のプログラマブルカウ
ンタ2あるいは第2のプログラマブルカウンタ3のイン
クリメントのタイミング、第2図Hは命令ROM1から命令
キュー4の第4バッファ4Dへの命令オペランドの転送タ
イミング、第2図Iは命令キュー4の第2バッファ4Bか
ら第1バッファ4Aへの命令コードの転送タイミング、第
2図Jは命令キュー4の第4バッファ4Dから第3バッフ
ァ4Cへの命令オペランドの転送タイミング、第2図Kは
命令キュー4の第3バッファ4Cから第1のプログラマブ
ルカウンタ2および第2のプログラマブルカウンタ3に
供給されるプリセットデータの変化、第2図Lはコンテ
キストコントローラ18から出力される実行サイクル識別
信号をそれぞれ示したものである。Regarding the parallel processor configured as above,
The operation will be described with reference to the configuration diagram shown in FIG. 1 and the timing chart of the main part shown in FIG. 2A shows an external clock signal waveform supplied to the CLK terminal of FIG. 1,
2B is an instruction decoding period by the instruction decoder 5, FIG.
Ca is the timing when the instruction fetch controller 20 presets the first programmable counter 2, FIG. 2Cb is the timing when the instruction fetch controller 20 presets the second programmable counter 3, and FIG. 2D is the instruction
The operation period of the first programmable counter 2 with respect to the ROM1, FIG. 2E is the precharge period of the decoder section of the instruction ROM1, and FIG. 2F is the transfer timing of the instruction code from the instruction ROM1 to the second buffer 4B of the instruction queue 4. 2G shows the timing of increment of the first programmable counter 2 or the second programmable counter 3 when reading a 2-byte instruction, and FIG. 2H shows the instruction operand from the instruction ROM 1 to the fourth buffer 4D of the instruction queue 4. 2 is the transfer timing of the instruction code from the second buffer 4B to the first buffer 4A of the instruction queue 4, and FIG. 2J is the transfer timing of the fourth buffer 4D to the third buffer 4C of the instruction queue 4. The transfer timing of the instruction operand, FIG. 2K is from the third buffer 4C of the instruction queue 4 to the first programmable counter 2 and the second programmable counter 2. Change in the preset data supplied to grammar table counter 3, FIG. 2 L is an illustration of each execution cycle identification signal outputted from the context controller 18.
さて、第1図の並列処理プロセッサにおいて、命令ROM1
から取り出された命令は命令キュー4にいったん保持さ
れたあと命令デコーダ5によって処理内容が解釈されて
実行される。Now, in the parallel processor of FIG.
The instruction fetched from is temporarily held in the instruction queue 4, and then the instruction decoder 5 interprets the processing contents and executes the instruction.
ここで、第2図のa区間が第1のプログラマブルカウン
タ2によって取り出された命令の実行区間に割り当てら
れ、b区間が第2のプログラマブルカウンタ3によって
取り出された命令の実行区間に割り当てられる。なお、
アキュムレータユニット17には、a区間で使用されるア
キュムレータとフラグ群ならびにb区間で使用されるア
キュムレータとフラグ群が別々に用意され、これらの選
択はコンテキストコントローラ18から供給される実行サ
イクル識別信号による。また、第1のアドレスレジスタ
9と第2のアドレスレジスタ10の切り換えもコンテキス
トコントローラ18によって行なわれる。Here, the section a in FIG. 2 is allocated to the execution section of the instruction fetched by the first programmable counter 2, and the section b is allocated to the execution section of the instruction fetched by the second programmable counter 3. In addition,
The accumulator unit 17 is separately provided with an accumulator and a flag group used in the section a and an accumulator and a flag group used in the section b, and their selection is based on the execution cycle identification signal supplied from the context controller 18. The context controller 18 also switches between the first address register 9 and the second address register 10.
時刻t0において条件分岐命令の実行を開始して時刻t2か
らは分岐先の命令を実行するためには、時刻t2までの間
に、命令の解読と、分岐条件の判定、分岐先アドレスの
第1のプログラマブルカウンタ2へのプリセット、命令
ROM1から命令キュー4の第2バッファ4Bへの命令コード
の転送ならびに第2バッファ4Bから第1バッファ4Aへの
命令コードの転送を完了すればよい。第1図の並列処理
プロセッサでは、第2図Bのタイミングにおいて命令の
解読を行ない、それが条件分岐命令であれば命令デコー
ダ5から命令取り出しコントローラ20に対してプリセッ
ト指令信号が送出される。命令取り出しコントローラ20
はアキュムレータユニット17から供給されるゼロフラグ
とキャリーフラグの内容を判別して分岐条件が成立すれ
ば、第2図Caのタイミングにおいて、第1のプログラマ
ブルカウンタ2に命令キュー4の第3バッファ4Cから供
給されるアドレス情報(分岐先絶対アドレスもしくは相
対アドレス情報であって、第2図Kのタイミングで供給
される。)をもとに、第1のプログラマブルカウンタ2
をプリセットする。さらに、第2図Dのタイミングにお
いて命令ROM1のデコーダ部にカウント値を供給するカウ
ンタが第1のプログラマブルカウンタ2に切り換えら
れ、新たなプリセット値をもとに、第2図Eの実線で示
したタイミングで、命令ROM1のデコーダ部のプリチャー
ジ(セットアップ)が行なわれる。プリチャージが完了
すると、第2図Fのタイミングにおいて命令ROM1から命
令コードの第1バイト目が取り出されて命令キュー4の
第2バッファ4Bに格納されるとともに命令判別器21にも
供給される。命令判別器21は供給された命令コードを判
別して、それが分岐命令であって、アドレス情報を有す
るオペランドを伴う命令であれば、命令判別器21は分岐
命令の検知信号として、命令取り出しコントローラ20に
対してカウント更新指令を送出し、その結果、第2図G
のタイミングで命令取り出しコントローラ20が第1のプ
ログラマブルカウンタ2もしくは第2のプログラマブル
カウンタ3をインクリメントさせ、第2図Eの一点鎖線
のタイミングにおいて、命令ROM1のデコーダ部の2度目
のプリチャージが行なわれる。2度目のプリチャージが
完了すると、第2図Hのタイミングにおいて、命令ROM1
から命令コードの第2バイト目が取り出されて命令キュ
ー4の第4バッファ4Dに格納される。第4バッファ4Dに
格納された第2バイト目の命令コードは第2図Jのタイ
ミングにおいて命令キュー4の第3バッファ4Cに転送さ
れ、その直後から、第2図Kに示したように、第1のプ
ログラマブルカウンタ2に新たなプリセットデータが供
給される。一方、命令キュー4の第2バッファ4Bに格納
された命令コードは、第2図Iのタイミングにおいて、
第1バッファ4Aに転送され、続く時刻t2からの命令解読
に備える。In order to start the execution of the conditional branch instruction at time t0 and execute the instruction at the branch destination from time t2, the instruction decoding, the determination of the branch condition, the first branch destination address Preset, command to programmable counter 2
The transfer of the instruction code from the ROM 1 to the second buffer 4B of the instruction queue 4 and the transfer of the instruction code from the second buffer 4B to the first buffer 4A may be completed. The parallel processor of FIG. 1 decodes the instruction at the timing of FIG. 2B, and if it is a conditional branch instruction, the instruction decoder 5 sends a preset instruction signal to the instruction fetch controller 20. Instruction fetch controller 20
If the branch condition is satisfied by determining the contents of the zero flag and the carry flag supplied from the accumulator unit 17, the third buffer 4C of the instruction queue 4 supplies the first programmable counter 2 at the timing of Ca in FIG. The first programmable counter 2 based on the address information (branch destination absolute address or relative address information, which is supplied at the timing of FIG. 2K).
Preset. Further, at the timing of FIG. 2D, the counter that supplies the count value to the decoder section of the instruction ROM 1 is switched to the first programmable counter 2, and based on the new preset value, it is shown by the solid line in FIG. 2E. At the timing, the decoder section of the instruction ROM1 is precharged (set up). When the precharge is completed, the first byte of the instruction code is fetched from the instruction ROM 1 at the timing of FIG. 2F, stored in the second buffer 4B of the instruction queue 4, and supplied to the instruction discriminator 21. The instruction discriminator 21 discriminates the supplied instruction code, and if it is a branch instruction and is an instruction accompanied by an operand having address information, the instruction discriminator 21 uses the instruction fetch controller as a branch instruction detection signal. A count update command is sent to 20 and, as a result, FIG.
At this timing, the instruction fetch controller 20 increments the first programmable counter 2 or the second programmable counter 3 and the second precharge of the decoder section of the instruction ROM 1 is performed at the timing indicated by the alternate long and short dash line in FIG. 2E. . When the second precharge is completed, at the timing of FIG.
The second byte of the instruction code is extracted from and stored in the fourth buffer 4D of the instruction queue 4. The instruction code of the second byte stored in the fourth buffer 4D is transferred to the third buffer 4C of the instruction queue 4 at the timing of FIG. 2J, and immediately after that, as shown in FIG. 2K, New preset data is supplied to the programmable counter 1 of 1. On the other hand, the instruction code stored in the second buffer 4B of the instruction queue 4 is
It is transferred to the first buffer 4A and prepared for instruction decoding from the subsequent time t2.
したがって、時刻t2からは分岐先の命令を実行すること
ができる。すなわち、第1図に示した並列処理プロセッ
サでは、第1のプログラマブルカウンタ2によって取り
出された命令の実行区間であるa区間とa区間の間に、
第2のプログラマブルカウンタ3によって取り出された
命令の実行区間であるb区間が存在することを利用し
て、a区間にとっては命令の実行の裏サイクルにあたる
b区間が終了するまでに、分岐先の命令を実行するため
に必要な準備を完了させている。Therefore, the instruction at the branch destination can be executed from time t2. That is, in the parallel processor shown in FIG. 1, between the a section which is the execution section of the instruction fetched by the first programmable counter 2 and the a section,
By utilizing the existence of the b section which is the execution section of the instruction fetched by the second programmable counter 3, for the a section, the instruction at the branch destination is completed by the end of the b section which is the back cycle of the instruction execution. You have completed the necessary preparations to do.
なお、以上の説明では条件分岐命令について述べたが、
無条件分岐命令の場合には条件判別が不要になるだけ
で、同様にして、命令の実行の裏サイクルにおいて分岐
アドレスを確定させることができ、サブルーチンコール
命令についても同様である。Although the conditional branch instruction has been described in the above description,
In the case of an unconditional branch instruction, only the condition determination is not necessary, and the branch address can be fixed in the back cycle of the instruction execution in the same manner, and the same applies to the subroutine call instruction.
このようにして、第1図に示した並列処理プロセッサで
は、第1のプログラマブルカウンタ2もしくは第2のプ
ログラマブルカウンタ3から取り出された命令が、いわ
ゆる2サイクル命令の、プログラマブルカウンタのプリ
セット動作を伴う分岐命令であっても、各区間の次の実
行サイクルの開始時までに、分岐先の命令を実行する準
備を完了することができ、実質的にマイクロプロセッサ
の処理効率を向上させることができる。In this way, in the parallel processor shown in FIG. 1, the instruction fetched from the first programmable counter 2 or the second programmable counter 3 is a so-called 2-cycle instruction, which is accompanied by a preset operation of the programmable counter. Even with an instruction, the preparation for executing the instruction at the branch destination can be completed by the start of the next execution cycle of each section, and the processing efficiency of the microprocessor can be substantially improved.
ところで、第1図に示した実施例では、第1および第2
のプログラマブルカウンタを有する2重の処理機構を有
する並列処理プロセッサについて説明したが、それ以上
の多重処理機構を有する並列処理プロセッサにおいて
も、同様にして本発明が適用できることは言うまでもな
い。By the way, in the embodiment shown in FIG. 1, the first and second
Although the parallel processing processor having the double processing mechanism having the programmable counter has been described, it goes without saying that the present invention can be similarly applied to the parallel processing processor having the multiple processing mechanism.
第3図は本発明の別の実施例を示したもので、この例で
は3重の処理機構を有する並列処理プロセッサに本発明
を適用している。第3図の装置ではコンテキストコント
ローラ18が、アキュムレータユニット17と、第1のアド
レスレジスタ9、第2のアドレスレジスタ10、第3のア
ドレスレジスタ22と、命令取り出しコントローラ20に対
して第4図La,Lb,Lcに示すような3種類の識別信号を送
出する。これらの識別信号に基づいて命令取り出しコン
トローラ20は第1のプログラマブルカウンタ2、第2の
プログラマブルカウンタ3、第3のプログラマブルカウ
ンタ23に対して必要なタイミングでカウントクロック信
号とプリセット信号を供給する。なお、第4図は第3図
に示したマイクロプロセッサの主要部のタイミングチェ
ートで、第2図に対比させたものである。FIG. 3 shows another embodiment of the present invention. In this example, the present invention is applied to a parallel processor having a triple processing mechanism. In the apparatus of FIG. 3, the context controller 18 is connected to the accumulator unit 17, the first address register 9, the second address register 10, the third address register 22, and the instruction fetch controller 20 in FIG. Three types of identification signals such as Lb and Lc are transmitted. Based on these identification signals, the instruction fetch controller 20 supplies the count clock signal and the preset signal to the first programmable counter 2, the second programmable counter 3, and the third programmable counter 23 at necessary timings. Note that FIG. 4 is a timing chain of the main part of the microprocessor shown in FIG. 3, which is compared with FIG.
第4図からもわかるように、第3図に示した並列処理プ
ロセッサでは、a区間が始まる時刻t0において条件分岐
命令の実行を開始した場合、次のa区間が開始される時
刻t3からは分岐先の命令を実行することができ、第1図
に示した並列処理プロセッサと同様にマイクロプロセッ
サの処理効率を向上させることができる。As can be seen from FIG. 4, in the parallel processor shown in FIG. 3, when the execution of the conditional branch instruction is started at the time t0 when the a section starts, the branch is started from the time t3 when the next a section is started. The above instruction can be executed, and the processing efficiency of the microprocessor can be improved similarly to the parallel processor shown in FIG.
発明の効果 本発明の並列処理プロセッサは以上の説明からも明らか
なように、順次実行される命令群からなるプログラムを
格納するプログラム格納手段(命令ROM1)と、前記プロ
グラム格納手段に格納された特定の命令を選択する前記
プログラム格納手段に対してアドレスを指定して当該ア
ドレスに格納された命令を選択する少なくとも第1およ
び第2の命令選択手段(第1のプログラマブルカウンタ
2および第2のプログラマブルカウンタ3)と、前記プ
ログラム格納手段から送出される命令に基づいてデータ
の演算を実行する演算手段(ALU16)と、命令の実行サ
イクルを発生するタイミングジェネレータ8と、前記第
1の命令選択手段による命令の選択に続いて前記第2の
命令選択手段による命令の選択を行なわせしめ、これら
の命令選択手段によって選択された命令の実行サイクル
を交互に割り当てるコンテキストコントローラ18と、一
方の命令選択手段によって選択された命令が、命令コー
ドの次にアドレス情報を有するオペランドを伴なう分岐
命令であるかを判別する命令判別器と、前記命令判別器
から分岐命令の検知信号を受けて、当該命令選択手段に
よる次の実行サイクルまでに、その分岐命令が有するア
ドレス情報を当該命令選択手段に伝達して分岐先のアド
レスからの命令の実行に備える命令取り出しコントロー
ラ20を備えたことを特徴とするもので、従来以上に処理
効率の向上する並列処理プロセッサを得ることができ、
大なる効果を奏する。As is apparent from the above description, the parallel processor of the present invention includes a program storage unit (instruction ROM 1) for storing a program including a group of instructions to be sequentially executed, and a specific storage unit stored in the program storage unit. At least first and second instruction selecting means (first programmable counter 2 and second programmable counter) for designating an address to the program storing means for selecting the instruction and selecting the instruction stored at the address. 3), an arithmetic means (ALU16) for executing arithmetic operation of data based on the instruction sent from the program storing means, a timing generator 8 for generating an instruction execution cycle, and an instruction by the first instruction selecting means. Selection of the instructions by the second instruction selecting means, and the selection of these instructions is performed. The context controller 18 for alternately allocating the execution cycles of the instructions selected by the means, and whether the instruction selected by one of the instruction selecting means is a branch instruction with an operand having address information next to the instruction code. An instruction discriminator for discriminating and a branch instruction detection signal from the instruction discriminator, and by the next execution cycle by the instruction selecting means, transmits the address information of the branch instruction to the instruction selecting means and branches. It is characterized by including an instruction fetch controller 20 for executing an instruction from the previous address, and it is possible to obtain a parallel processing processor whose processing efficiency is improved more than ever before.
It has a great effect.
第1図は本発明の一実施例における並列処理プロセッサ
の構成図、第2図は第1図の主要部のタイミングチャー
ト、第3図は本発明の別の実施例における並列処理プロ
セッサの構成図、第4図は第3図の主要部のタイミング
チャートである。 1……命令ROM、2……第1のプログラマブルカウン
タ、3……第2のプログラマブルカウンタ、8……タイ
ミングジェネレータ、16……ALU、18……コンテキスト
コントローラ、20……命令取り出しコントローラ。FIG. 1 is a block diagram of a parallel processor in one embodiment of the present invention, FIG. 2 is a timing chart of the main part of FIG. 1, and FIG. 3 is a block diagram of a parallel processor in another embodiment of the present invention. , FIG. 4 is a timing chart of the main part of FIG. 1 ... Instruction ROM, 2 ... First programmable counter, 3 ... Second programmable counter, 8 ... Timing generator, 16 ... ALU, 18 ... Context controller, 20 ... Instruction fetch controller.
Claims (1)
を格納するプログラム格納手段と、 前記プログラム格納手段に対してアドレスを指定して当
該アドレスに格納された命令を選択する少なくとも第1
および第2の命令選択手段と、 前記プログラム格納手段から送出される命令に基づいて
データの演算を実行する演算手段と、 命令の実行サイクルを発生するタイミングジェネレータ
と、 前記第1の命令選択手段による命令の選択に続いて前記
第2の命令選択手段による命令の選択を行なわせしめ、
これらの命令選択手段によって選択された命令の実行サ
イクルを交互に割り当てるコンテキストコントローラ
と、 一方の命令選択手段によって選択された命令が、命令コ
ードの次にアドレス情報を有するオペランドを伴なう分
岐命令であるかを判別する命令判別器と、 前記命令判別器から分岐命令の検知信号を受けて、当該
命令選択手段による次の実行サイクルまでに、その分岐
命令が有するアドレス情報を当該命令選択手段に伝達し
て分岐先のアドレスからの命令の実行に備える命令取り
出しコントローラを具備してなる並列処理プロセッサ。1. A program storage means for storing a program consisting of a group of instructions to be sequentially executed, and at least a first one for designating an address to the program storage means and selecting an instruction stored at the address.
And a second instruction selecting means, a computing means for performing a data operation based on the instruction sent from the program storing means, a timing generator for generating an instruction execution cycle, and a first instruction selecting means. Instructing the instruction to be selected by the second instruction selecting means after the instruction is selected,
A context controller that alternately allocates the execution cycles of the instructions selected by these instruction selection means, and an instruction selected by one instruction selection means is a branch instruction with an operand having address information next to the instruction code. An instruction discriminator for discriminating whether or not there is a branch instruction detection signal from the instruction discriminator and transmitting the address information of the branch instruction to the instruction selection means by the next execution cycle by the instruction selection means. And a parallel processing processor including an instruction fetch controller for executing an instruction from a branch destination address.
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP63122918A JPH077338B2 (en) | 1988-05-19 | 1988-05-19 | Parallel processor |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP63122918A JPH077338B2 (en) | 1988-05-19 | 1988-05-19 | Parallel processor |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| JPH01292430A JPH01292430A (en) | 1989-11-24 |
| JPH077338B2 true JPH077338B2 (en) | 1995-01-30 |
Family
ID=14847821
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP63122918A Expired - Lifetime JPH077338B2 (en) | 1988-05-19 | 1988-05-19 | Parallel processor |
Country Status (1)
| Country | Link |
|---|---|
| JP (1) | JPH077338B2 (en) |
Family Cites Families (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JPS54138354A (en) * | 1978-04-20 | 1979-10-26 | Oki Electric Ind Co Ltd | Microprocessor unit |
-
1988
- 1988-05-19 JP JP63122918A patent/JPH077338B2/en not_active Expired - Lifetime
Also Published As
| Publication number | Publication date |
|---|---|
| JPH01292430A (en) | 1989-11-24 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US5353418A (en) | System storing thread descriptor identifying one of plural threads of computation in storage only when all data for operating on thread is ready and independently of resultant imperative processing of thread | |
| KR920006279B1 (en) | Processor with multiple arithematic units for one or more programs | |
| US4897787A (en) | Data processing system | |
| JP2884831B2 (en) | Processing equipment | |
| US5117387A (en) | Microprogrammed timer processor | |
| US4758949A (en) | Information processing apparatus | |
| EP0240606B1 (en) | Pipe-line processing system and microprocessor using the system | |
| JPH03233630A (en) | Information processor | |
| US5175827A (en) | Branch history table write control system to prevent looping branch instructions from writing more than once into a branch history table | |
| JP2514963B2 (en) | Data processing device | |
| JPH077338B2 (en) | Parallel processor | |
| WO1995006280A2 (en) | Data transfer accelerating apparatus and method | |
| US5187782A (en) | Data processing system | |
| JP2583506B2 (en) | Data processing device | |
| JPS6349938A (en) | Instruction prefetch control device | |
| JPH0654471B2 (en) | Parallel processor | |
| JPH0317135B2 (en) | ||
| EP0015276B1 (en) | A digital pipelined computer | |
| JPH0338727A (en) | Resources interference controller and data processor | |
| US5524221A (en) | Next instruction pointer calculation system for a microcomputer | |
| JP2825315B2 (en) | Information processing device | |
| JPH0667896A (en) | Single chip microcomputer | |
| JPH05233283A (en) | Parallel instruction execution method | |
| JPH0340075A (en) | Microcomputer | |
| JPH05250318A (en) | Microprocessor |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20080130 Year of fee payment: 13 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090130 Year of fee payment: 14 |
|
| EXPY | Cancellation because of completion of term | ||
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090130 Year of fee payment: 14 |