JPH02140832A - Parallel processor - Google Patents

Parallel processor

Info

Publication number
JPH02140832A
JPH02140832A JP29520888A JP29520888A JPH02140832A JP H02140832 A JPH02140832 A JP H02140832A JP 29520888 A JP29520888 A JP 29520888A JP 29520888 A JP29520888 A JP 29520888A JP H02140832 A JPH02140832 A JP H02140832A
Authority
JP
Japan
Prior art keywords
instruction
units
instructions
pcs
instruction units
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.)
Pending
Application number
JP29520888A
Other languages
Japanese (ja)
Inventor
Hitoshi Ishida
仁志 石田
Seisuke Kazama
風間 成介
Minoru Shiga
稔 志賀
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.)
Mitsubishi Electric Corp
Original Assignee
Mitsubishi Electric Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Mitsubishi Electric Corp filed Critical Mitsubishi Electric Corp
Priority to JP29520888A priority Critical patent/JPH02140832A/en
Publication of JPH02140832A publication Critical patent/JPH02140832A/en
Pending legal-status Critical Current

Links

Landscapes

  • Advance Control (AREA)
  • Multi Processors (AREA)

Abstract

PURPOSE:To effectively use plural function units by providing plural instruction units which simultaneously fetches plural instructions as one set, decodes instructions in accordance with the previously decided order of performance, and giving the result to function units. CONSTITUTION:Instructions fetched and decoded by M pcs. of (2<=M<=N) instruction units 507, 104 and 105 and transferred to N pcs. of (N>=2) function units 101-103 are treated as one set in the descending order of a program. Namely, M pcs. of instruction units simultaneously fetch M pcs. of instructions of one group in the descending order and then respective instruction units perform decoding in accordance with flags showing the order of performance. A control part 106 indicates the fetch of a subsequent group when M pcs. of instruction units have started decoding. Since M pcs. of instruction units are constituted in such a way that they can be operated in serial or in parallel, a processing speed can be improved by efficiently using plural function units in accordance with the parallelism of the program.

Description

【発明の詳細な説明】 (産業上の利用分野〕 この発明は、複数の機能ユニットを持つ並列処理装置に
係り、特に演算の高速化を図った並列処理装置に関する
ものである。
DETAILED DESCRIPTION OF THE INVENTION (Field of Industrial Application) The present invention relates to a parallel processing device having a plurality of functional units, and more particularly to a parallel processing device designed to speed up calculations.

(従来の技術) この種の従来の並列処理装置として、例えば、雑誌VL
SI SYSTEM DESIGN (VOL、IX、
 NO,5May1988、pp24−3)に発表され
、第5図に示す構成を有するMotrola社の32ビ
ツト・マイクロプロセッサがある。図において(501
)は整数の加減算およびビット・フィールド処理などを
行なう整数ユニット、(502)は浮動小数点の加減算
、除算、型変換および比較を行なう浮動小数点ユニット
、(503)は浮動小数点の乗算および整数の乗算を行
なう浮動小数点ユニット、(504)は最大6個まで組
み込める特殊機能ユニット、(505)はメモリからの
データ読み出し/書き込み処理を行なうデータ・ユニッ
ト、(506)は機能ユニット、即ち、整数ユニット(
501)、浮動小数点ユニット(502)、(503)
、および特殊機能ユニット(504)が演算を実行する
のに使うレジスタ・ファイル、(507)はメモリから
命令をフェッチし、復号する命令ユニット、(50B)
はバスである。
(Prior Art) As a conventional parallel processing device of this type, for example, a magazine VL
SI SYSTEM DESIGN (VOL, IX,
There is a 32-bit microprocessor manufactured by Motorola, which was announced in 1988, May 1988, pp. 24-3, and has the configuration shown in FIG. In the figure (501
) is an integer unit that performs integer addition/subtraction and bit field processing, (502) is a floating point unit that performs floating point addition/subtraction, division, type conversion, and comparison, and (503) is a floating point unit that performs floating point multiplication and integer multiplication. (504) is a special function unit that can be installed up to six times; (505) is a data unit that performs data read/write processing from memory; (506) is a functional unit, that is, an integer unit (
501), floating point unit (502), (503)
, and a register file used by the special function unit (504) to perform operations; (507) is an instruction unit that fetches and decodes instructions from memory; (50B);
is a bus.

次に動作について説明する。命令ユニット(507)は
命令のフェッチと復号の2つのステージにパイプライン
化されていて、1クロツク・サイクルで1つの命令を復
号し、機能ユニットである整数ユニット(501) 、
浮動小数点ユニット(502)、(503)および特殊
機能ユニット(504)に渡す。各機能ユニットもいく
つかのパイプライン・ステージを持ち、それぞれ内蔵し
ているステージの数だけ命令を同時に扱うことができる
。命令を受は取った機能ユニットはレジスタ・ファイル
(50B)を使って1クロツク・サイクルで1つの命令
を実行する。
Next, the operation will be explained. The instruction unit (507) is pipelined into two stages: instruction fetch and decode, and decodes one instruction in one clock cycle, and the integer unit (501), which is a functional unit,
Pass to floating point units (502), (503) and special function unit (504). Each functional unit also has several pipeline stages, and can simultaneously handle as many instructions as the number of stages it has. The functional unit that receives the instruction uses the register file (50B) to execute one instruction in one clock cycle.

〔発明が解決しようとする課題〕[Problem to be solved by the invention]

従来の並列処理装置は以上のように構成されているので
、機能ユニットがいかに速く命令を処理できたとしても
、命令ユニットは1クロツタ・サイクルで1つの命令し
か復号することができないために、プログラムの並列性
や複数の機能ユニットを十分に活用することができない
という課題があった。
Conventional parallel processing devices are configured as described above, so no matter how fast the functional unit can process instructions, the instruction unit can only decode one instruction in one clock cycle, so the program There were issues with parallelism and inability to fully utilize multiple functional units.

この発明は上記のような課題を解消するためになされた
もので、プログラムの並列性に応じて複数の機能ユニッ
トを効率よく活用できる並列処理装置を得ることを目的
とする。
This invention was made to solve the above-mentioned problems, and an object thereof is to obtain a parallel processing device that can efficiently utilize a plurality of functional units depending on the parallelism of a program.

〔課題を解決するための手段〕[Means to solve the problem]

この発明に係る並列処理装置は 、機能ユニ・ントの個
数がNであったとするとN以下で且つ2以上の整数をM
とし、プログラムの上からM個を1組として同時にフェ
ッチし、各命令間の並列性により予め定められた実行順
序に従って命令を復号して機能ユニットに渡すM個の命
令ユニットを設けると共に、これらの命令ユニットの全
てが復号を開始したことを判別して次の命令のフェッチ
を指示する制御部を設けたものである。
If the number of functional units is N, the parallel processing device according to the present invention can process an integer that is less than or equal to N and greater than or equal to M.
In addition, M instruction units are provided, which simultaneously fetch M instructions from the top of the program as a set, decode the instructions according to a predetermined execution order due to the parallelism between each instruction, and pass them to the functional units. A control section is provided that determines that all of the instruction units have started decoding and instructs to fetch the next instruction.

(作用) この発明におけるM個の命令ユニットは、プログラムの
上から順にM個ずつの組にされた命令を同時にフェッチ
し、各組内の命令の並列性により1命令長の先頭の数ビ
ット(log2 M以上の最小の整数ビット)を使って
予めつけられたフラッグに従って並列または直列に命令
を復号するようにしたので、N個の機能ユニットを効率
よく活用できる。
(Operation) The M instruction units in this invention simultaneously fetch M sets of instructions from the top of the program, and due to the parallelism of the instructions in each set, the first few bits of one instruction length ( Since the instructions are decoded in parallel or serially according to a preset flag using the smallest integer bit of log2M or more, N functional units can be used efficiently.

(実施例) 以下、この発明の一実施例を第1図に基づいて説明する
。第1図において、(101)〜(103)はN個(N
22)の機能ユニット(ここでは具体的な機能は問わな
い) 、(506)は機能ユニットが演算を実行する時
に使うレジスタ・ファイル、(507)、(104)、
〜(105)はメモリから命令をフェッチし復号するM
i(2≧M≧N)の命令ユニット、(106)はM個の
命令ユニットの復号開始を確認して次の命令のフェッチ
を指示する制御部、(508)はバスである。
(Example) Hereinafter, an example of the present invention will be described based on FIG. 1. In Figure 1, there are N (101) to (103) (N
22) functional unit (the specific function does not matter here), (506) is a register file used when the functional unit executes an operation, (507), (104),
~(105) is M that fetches and decodes instructions from memory.
i (2≧M≧N) instruction units, (106) a control unit that confirms the start of decoding of M instruction units and instructs to fetch the next instruction, and (508) a bus.

M個の命令ユニットでフェッチ・復号される命令は、プ
ログラムの上から順にM個を1組として扱われ、個々の
命令は第2図に示されるように固定長命令であり、先頭
の数ビット(logiM以上の最小の整数ビット)はM
個の命令の実行順序を示すフラッグをたてるために使わ
れる。
The instructions fetched and decoded by M instruction units are treated as a set of M instructions from the top of the program, and each instruction is a fixed-length instruction as shown in Figure 2, and the first few bits are (the smallest integer bit greater than or equal to logiM) is M
It is used to set a flag indicating the execution order of instructions.

次に動作について説明する。M個の命令ユニットは全て
フェッチと復号の2つのステージにパイプライン化され
ていて、N個1組の命令を上から順にかつ同時にフェッ
チする。全ての命令ユニットは、1クロツク・サイクル
でフェッチを完了した後、命令な復号ステージに渡す。
Next, the operation will be explained. All M instruction units are pipelined into two stages: fetch and decode, and a set of N instructions are fetched sequentially and simultaneously from the top. All instruction units complete their fetches in one clock cycle before passing to the instruction decode stage.

個々の命令ユニットは、先頭の実行順序を示すフラッグ
に従って復号を行なう。例えば、2番目に実行される命
令は1クロツク・サイクルだけウェイトした後復号を開
始するし、5番目に実行される命令であれば4クロツク
・サイクルの間復号がベンディングされねばならない。
Each instruction unit performs decoding according to a flag indicating the starting order of execution. For example, the second instruction to be executed waits one clock cycle before starting decoding, and the fifth instruction to be executed requires decoding to bend for four clock cycles.

次の命令は、M個の命令ユニットが全て復号を開始する
までフェッチされない上に、メモリ・リソースなどの関
係からM個の命令の中で一番最後にある命令が必ずしも
最後に実行されるとは限らないので、制御部はM個の命
令ユニットが全て復号を開始したか否かを判定して、全
てが復号を開始したときに、次の命令のフェッチを指示
する。
The next instruction will not be fetched until all M instruction units have started decoding, and due to memory resources, etc., the last instruction among M instructions will not necessarily be executed last. Therefore, the control unit determines whether all M instruction units have started decoding, and when all M instruction units have started decoding, instructs to fetch the next instruction.

第3図は、具体的な実施例として命令ユニットが4つの
場合を表わしている。同図で(101)〜(103)は
N個の機能ユニット、(506)はレジスタ・ファイル
、(507)、(301)〜(303)は4個の機能ユ
ニット、(106)は制御部、(304)はプログラム
、(SOa)はバスである。
FIG. 3 shows a specific example in which there are four instruction units. In the figure, (101) to (103) are N functional units, (506) is a register file, (507), (301) to (303) are four functional units, (106) is a control unit, (304) is a program, and (SOa) is a bus.

4個の命令ユニットでフェッチ・復号される命令は、4
個を1組とし、先頭の2ビツトがフラッグ専用ビットと
して使われる。
The number of instructions fetched and decoded by four instruction units is 4.
The first two bits are used as flag-only bits.

次に動作について説明する。4個の命令ユニットは、プ
ログラムの上から4個を1組として同時にフェッチする
動作を順に繰返す。各命令は、1クロツク・サイクルで
フェッチされた後復号ステージに渡される。各命令ユニ
ットは、先頭のフラッグに従って復号を開始する。第4
図は3つ典型的な復号のパターンを表わしている。最初
の命令の組は4つの命令が同時に復号される場合で、2
番目は4つの命令が連続的に復号される場合、3番目は
命令セット2に最も遅い実行順序を持つ命令がフェッチ
された場合である。
Next, the operation will be explained. The four instruction units sequentially repeat the operation of simultaneously fetching the top four programs as a set. Each instruction is fetched in one clock cycle and then passed to the decode stage. Each instruction unit starts decoding according to the first flag. Fourth
The figure represents three typical decoding patterns. The first set of instructions is when 4 instructions are decoded simultaneously, 2
The third case is when four instructions are decoded consecutively, and the third case is when the instruction with the slowest execution order is fetched into instruction set 2.

命令の復号が完了すると、M個の命令ユニットは命令を
機能ユニットに渡す。各機能ユニットは、いくつかのス
テージにパイプライン化されていて、その機能ユニット
が内蔵しているステージの数だけ命令を同時に扱うこと
ができる。命令を渡された機能ユニットは、レジスタ・
ファイルを使って1クロツク・サイクルで1つの命令を
実行するので、最大M個の演算結果を同時に得ることが
できる。
Once the instruction decoding is complete, the M instruction units pass the instruction to the functional units. Each functional unit is pipelined into several stages and can simultaneously handle as many instructions as the functional unit has stages. The functional unit to which the instruction is passed will register the
Since one instruction is executed in one clock cycle using a file, a maximum of M operation results can be obtained simultaneously.

〔発明の効果〕〔Effect of the invention〕

以上のように、この発明によればM個の命令ユニットを
並列または直列に動作できるように構成したので、プロ
グラムの並列性に応じて複数の機能ユニットを効率よく
使って、処理速度を向上させる効果がある。
As described above, according to the present invention, since M instruction units are configured to operate in parallel or serially, multiple functional units can be used efficiently depending on the parallelism of the program to improve processing speed. effective.

【図面の簡単な説明】[Brief explanation of the drawing]

第1図はこの発明の一実施例の構成を示すブロック図、
第2図は同実施例の動作を説明するための命令フォーマ
ットの態様図、第3図は同実施例の具体的な構成を示す
ブロック図、第4図は第3図に示した装置の動作を説明
するためのタイムチャート、第5図は従来の並列処理装
置の構成を示すブロック図である。 (101)〜(103)  :機能ユニット(106)
  :制御部 (304)  ニブログラム (301)〜(303)、 (507)  :命令ユニ
ット(501i)  :レジスタ・ファイルなお、各図
中、同一符号は同一または相当部分を示す。
FIG. 1 is a block diagram showing the configuration of an embodiment of the present invention.
FIG. 2 is a diagram of an instruction format for explaining the operation of the embodiment, FIG. 3 is a block diagram showing the specific configuration of the embodiment, and FIG. 4 is the operation of the device shown in FIG. 3. FIG. 5 is a block diagram showing the configuration of a conventional parallel processing device. (101) to (103): Functional unit (106)
: Control unit (304) Niprograms (301) to (303), (507) : Instruction unit (501i) : Register file Note that in each figure, the same reference numerals indicate the same or corresponding parts.

Claims (1)

【特許請求の範囲】[Claims] 複数の機能ユニットを持つ並列処理装置において、前記
機能ユニットの個数をNとしたとき、N以下で且つ2以
上の整数をMとしプログラムの上からM個を1組として
同時にフェッチし、各命令間の並列性により予め決めら
れた実行順序に従って命令を複合して前記機能ユニット
に渡すM個の命令ユニットと、これらの命令ユニットの
全てが複合を開始したことを判別して次の命令のフェッ
チを指示する制御部とを備えたことを特徴とする並列処
理装置。
In a parallel processing device having multiple functional units, when the number of functional units is N, M is an integer less than N and greater than or equal to 2, and M units from the top of the program are simultaneously fetched as a set, and between each instruction M instruction units combine instructions according to a predetermined execution order due to parallelism and pass them to the functional unit, and determine that all of these instruction units have started combining and fetch the next instruction. 1. A parallel processing device comprising: a control section for giving instructions.
JP29520888A 1988-11-22 1988-11-22 Parallel processor Pending JPH02140832A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP29520888A JPH02140832A (en) 1988-11-22 1988-11-22 Parallel processor

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP29520888A JPH02140832A (en) 1988-11-22 1988-11-22 Parallel processor

Publications (1)

Publication Number Publication Date
JPH02140832A true JPH02140832A (en) 1990-05-30

Family

ID=17817605

Family Applications (1)

Application Number Title Priority Date Filing Date
JP29520888A Pending JPH02140832A (en) 1988-11-22 1988-11-22 Parallel processor

Country Status (1)

Country Link
JP (1) JPH02140832A (en)

Similar Documents

Publication Publication Date Title
JP6930702B2 (en) Processor
JP3741551B2 (en) Data processing device
KR100831472B1 (en) Method and apparatus for shuffling data
US7366874B2 (en) Apparatus and method for dispatching very long instruction word having variable length
EP2524303B1 (en) Mapping between registers used by multiple instruction sets
JP3541669B2 (en) Arithmetic processing unit
JP2002333978A (en) Vliw type processor
JPH09231070A (en) Information processing circuit, semiconductor integrated circuit device, microcomputer and electronic equipment
WO2015114305A1 (en) A data processing apparatus and method for executing a vector scan instruction
JPH1091443A (en) Information processing circuit, microcomputer and electronic equipment
US7139899B2 (en) Selected register decode values for pipeline stage register addressing
WO2012040552A2 (en) Method and apparatus for universal logical operations
EP3329363B1 (en) Vector arithmethic instruction
JP3669884B2 (en) Processing equipment
JP3212213B2 (en) Data processing device
JPH02140832A (en) Parallel processor
JP2002073325A (en) Data processing device and method
JPS6389932A (en) Data processor
JPH07244588A (en) Data processor
JPS59160239A (en) Information processing device
JPH0784783A (en) Central processing unit
JPH0340013A (en) Central arithmetic processing unit
JPH0421128A (en) Instruction reading circuit
JPH04287227A (en) Operation processor
JPH01147723A (en) Pipe line processing system for information processor