JP2004070692A - System for multiprocessing - Google Patents
System for multiprocessing Download PDFInfo
- Publication number
- JP2004070692A JP2004070692A JP2002229667A JP2002229667A JP2004070692A JP 2004070692 A JP2004070692 A JP 2004070692A JP 2002229667 A JP2002229667 A JP 2002229667A JP 2002229667 A JP2002229667 A JP 2002229667A JP 2004070692 A JP2004070692 A JP 2004070692A
- Authority
- JP
- Japan
- Prior art keywords
- register file
- source data
- processor
- storage memory
- 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.)
- Pending
Links
Images
Landscapes
- Advance Control (AREA)
- Multi Processors (AREA)
Abstract
Description
【0001】
【発明の属する技術分野】
本発明は、複数のプロセッサにより並行処理を行うマルチプロセッサシステムに関する。
【0002】
【従来の技術】
従来、複数のプロセッサにより並行処理を行うマルチプロセッサシステムは図2のようになっている。
図2は従来技術を示すマルチプロセッサシステムのブロック図である。
図2において、202は第1プロセッサ、203は第2プロセッサ、212は第1プロセッサ202と第2プロセッサ203を接続するデータアドレスバスである。また、第2プロセッサ203の内部回路として、204は命令格納メモリ、205は制御回路、206は第1演算器、207は第2演算器、208は出力セレクタ、209はレジスタファイル、210は出力レジスタ、211はソースデータである。
第1プロセッサ202の内部は第2プロセッサ203と同様の回路を含んでおり、第1プロセッサ202と第2プロセッサ203は独立して命令を実行している。ただし、2つのプロセッサは片方をマスタ、他方をスレーブとして動作し、マスタのアドレスにスレーブの内部領域がマッピングされている。
【0003】
次に、例えば、第1プロセッサ202がマスタ、第2プロセッサ203がスレーブとした場合の動作を説明する。
第1プロセッサ202は第2プロセッサ203のレジスタファイル209に保持された演算結果を参照し、レジスタファイル209にデータを書き込むことで新たな演算結果を得る。また、命令格納メモリ204が書換え可能なメモリである場合は、第1プロセッサ202は命令格納メモリ204に命令を書き込むことも行う。第2プロセッサ203では、命令格納メモリ204から出力された命令を制御回路205で解読し、制御回路205ではその命令に応じたデータをレジスタファイル209からソースデータ211として出力するよう指令する。ソースデータ211は第1演算器206と第2演算器207に入力され、それぞれの演算結果が出力セレクタ208に入力される。第1演算器206と第2演算器207はそれぞれ別の演算を行う回路であり、例えば算術演算や論理演算、乗算、テーブルROM等の場合が有り得る。
【0004】
また、ここでは演算器が2つの場合の例を示しているが、さらに多数の演算器が含まれることも有る。出力セレクタ208ではそのときの命令が第1演算器206と第2演算器207のどちらの演算を行うものであるかを制御回路205から指令を受けて対応する演算結果を出力する。出力セレクタ208の出力はレジスタファイル209や出力レジスタ210に入力されており、その時の命令によって制御回路205から指令を受けて演算結果が保持される。レジスタファイル209に保持された演算結果は以降の命令でソースデータ211として使用される。出力レジスタ210に保持された演算結果は第2プロセッサ203の外部への演算結果に応じた出力となる。
【0005】
【発明が解決しようとする課題】
しかしながら、上記マルチプロセッサシステムでは、それぞれのプロセッサで実行する命令に偏りが有ると、処理能力の違いによりそれぞれのプロセッサのスループットにばらつきが生じるため、システムの処理能力の向上を妨げるという問題が有った。
また、演算器の回路規模が演算の種類によって制御回路やセレクタと比較して非常に大きくなる場合が有る。このようなとき、個々のプロセッサがその演算を行う演算器を持たなければならないため演算資源の重複があり、ハードウエアのコストが増大するという問題も有った。
【0006】
本発明は上記課題を解決するためになされたものであり、システムの処理能力を向上することができ、ハードウエアのコストを減少することが可能なマルチプロセッサシステムを提供することを目的とする。
【0007】
【課題を解決するための手段】
上記課題を解決するために、本発明は、複数のプロセッサにより並行処理を行うマルチプロセッサシステムにおいて、自身の実行する命令を格納する第1命令格納メモリと、他のプロセッサから実行を移行された命令を格納する第2命令格納メモリと、該第1命令格納メモリと該第2命令格納メモリとからの命令に基づき内部動作の制御と演算終了信号を発生する制御回路と、自身の演算結果の保持と第1ソースデータの出力を行う第1レジスタファイルと、他のプロセッサから実行を移行された演算結果の保持と第2ソースデータの出力を行う第2レジスタファイルと、該第1ソースデータと該第2ソースデータの選択を行う入力セレクタと、該入力セレクタからの出力値に応じた演算を行う複数の演算器と、該複数の演算器からの出力を該第1レジスタファイルと該第2レジスタファイルとに振り分ける出力セレクタを具備したものである。
【0008】
【発明の実施の形態】
以下、本発明の実施例を図に基づいて説明する。
図1は本発明の実施例を示すマルチプロセッサシステムのブロック図である。
図1において、102は第1プロセッサ、103は第2プロセッサ、117は第1プロセッサ102と第2プロセッサ103を接続するデータアドレスバスである。また、第2プロセッサ103の内部回路として、104は命令格納メモリ、105は制御回路、106は演算器1、107は演算器2、108は出力セレクタ、109はレジスタファイル、110は出力レジスタ、111は第1ソースデータ、112は第2命令格納メモリ、113は第2レジスタファイル、114は入力セレクタ、115は演算終了信号、116は第2ソースデータである。
【0009】
本発明が従来技術と異なる点は、自身の実行する命令を格納する第1命令格納メモリ104とは別に、他のプロセッサから実行を移行された命令を格納する第2命令格納メモリ112を設けた点、また、自身の演算結果の保持と第1ソースデータの出力を行う第1レジスタファイル109とは別に、他のプロセッサから実行を移行された演算結果の保持と第2ソースデータの出力を行う第2レジスタファイル113を設けた点、さらに、第1ソースデータ111と該第2ソースデータ116の選択を行う入力セレクタ114を設けた点である。
なお、第1プロセッサ102の内部は第2プロセッサ103と同様の回路を含んでおり、第1プロセッサ102と第2プロセッサ103は独立して命令を実行している。ただし、第1演算器106または第2演算器107については必ずしも共通ではなく、片方だけが持つ演算器もある。また、2つのプロセッサは片方をマスタ、他方をスレーブとし動作し、マスタのアドレスにスレーブの内部領域がマッピングされている。
【0010】
次に動作について説明する。
第1プロセッサ102がマスタ、第2プロセッサ103がスレーブとした場合に、第1プロセッサ102は第2プロセッサ103の第1レジスタファイル109に保持された演算結果を参照し、第1レジスタファイル109にデータを書き込むことで新たな演算結果を得る。また、第1命令格納メモリ104が書換え可能なメモリである場合は、第1プロセッサ102は第1命令格納メモリ104に命令を書き込むことも行う。第2命令格納メモリ112は書換え可能なメモリであり、第1プロセッサ102での処理が第2プロセッサ103での処理に比べて多い場合、そのうちのいくつかの命令を第2命令格納メモリ112に転送する。また、第1プロセッサ102の演算器では演算できない命令であって、第2プロセッサ103の演算器で演算可能な命令がある場合も第2命令格納メモリ112に転送する。第2プロセッサ103では、第1命令格納メモリ104から出力された命令を制御回路105で解読し、同時に第2命令格納メモリ112の出力も監視している。第1命令格納メモリ104から出力された命令で使用する演算器が、第2命令格納メモリ112の出力の命令で使用する演算器と異なる場合、制御回路105ではその命令に応じたデータを第1レジスタファイル109から第1ソースデータ111として出力するよう指令する。同時に第2レジスタファイル113からも第2命令格納メモリ112の出力の命令に応じたデータを第2ソースデータ116として出力するように指令する。第1ソースデータ111と第2ソースデータ116は入力セレクタ114に入力される。入力セレクタ114では制御回路105からの指令を受けて、第1ソースデータ111と第2ソースデータ116を第1演算器106と第2演算器107のどちらの演算器への入力として使用するかを選択する。第1演算器106と第2演算器107のそれぞれの演算結果は出力セレクタ108に入力される。第1演算器106と第2演算器107はそれぞれ別の演算を行う回路であり、例えば算術演算や論理演算、乗算、テーブルROM等の場合が有り得る。
【0011】
また、ここでは演算器が2つの場合の例を示しているが、さらに多数の演算器が含まれることも有る。出力セレクタ108では第1演算器106と第2演算器107の演算結果が、レジスタファイル109や出力レジスタ110もしくは第2レジスタファイル113で保持するのかという指令を制御回路105から受けて、それに応じた出力に振り分ける。レジスタファイル109や出力レジスタ110及び第2レジスタファイル113は、出力セレクタ108からの出力を制御回路105からの指令に応じて保持する。レジスタファイル109および第2レジスタファイル113に保持された演算結果は以降の命令で第1ソースデータ111もしくは第2ソースデータ116として使用される。出力レジスタ110に保持された演算結果は第2プロセッサ103の外部への演算結果に応じた出力となる。第2命令格納メモリ112の命令がすべて完了すると、制御回路105は演算終了信号115を発生し、第1プロセッサ102に処理の終了を通知する。この際、演算終了信号115は第1プロセッサ102の割込み信号として使用される場合や、第1プロセッサ102のアドレスに割り付けられたステータスビットとしてポーリングによる監視で使用される場合が有る。命令格納メモリ104から出力された命令と第2命令格納メモリ112から出力された命令で使用する演算器が同じ場合は、命令格納メモリ104から出力された命令を優先して行う。また、第2命令格納メモリ112に命令が格納されていない場合は従来のマルチプロセッサシステムと同様に命令格納メモリ104の命令だけが処理される。
【0012】
したがって、本実施例に係るマルチプロセッサシステムは、自身の実行する命令を格納する第1命令格納メモリ104と、他のプロセッサから実行を移行された命令を格納する第2命令格納メモリ112と、該第1命令格納メモリ104と該第2命令格納メモリ112とからの命令に基づき内部動作の制御と演算終了信号115を発生する制御回路105と、自身の演算結果の保持と第1ソースデータの出力を行う第1レジスタファイル109と、他のプロセッサから実行を移行された演算結果の保持と第2ソースデータの出力を行う第2レジスタファイル113と、該第1ソースデータと該第2ソースデータの選択を行う入力セレクタ114と、該入力セレクタ114からの出力値に応じた演算を行う複数の演算器106、107と、該複数の演算器106、107からの出力を該第1レジスタファイル109と該第2レジスタファイル113とに振り分ける出力セレクタ108を具備する構成にしたので、一方のプロセッサで使用していない演算器を他方のプロセッサで使用することで、それぞれのプロセッサで実行する命令の偏りを平均化できることから、システムの処理能力を向上することができる。
また、一方のプロセッサと他方のプロセッサの間で演算器の重複を減らすことができるので、ハードウエアコストを減少することができる。
【0013】
【発明の効果】
以上述べたように、本発明によれば、マルチプロセッサシステムにおいて、自身の実行する命令を格納する第1命令格納メモリと、他のプロセッサから実行を移行された命令を格納する第2命令格納メモリと、該第1命令格納メモリと該第2命令格納メモリとからの命令に基づき内部動作の制御と演算終了信号を発生する制御回路と、自身の演算結果の保持と第1ソースデータの出力を行う第1レジスタファイルと、他のプロセッサから実行を移行された演算結果の保持と第2ソースデータの出力を行う第2レジスタファイルと、該第1ソースデータと該第2ソースデータの選択を行う入力セレクタと、該入力セレクタからの出力値に応じた演算を行う複数の演算器と、該複数の演算器からの出力を該第1レジスタファイルと該第2レジスタファイルとに振り分ける出力セレクタを具備する構成にしたため、一方のプロセッサで使用していない演算器を他方のプロセッサで使用することで、それぞれのプロセッサで実行する命令の偏りを平均化できることから、システムの処理能力を向上することができる。
また、一方のプロセッサと他方のプロセッサの間で演算器の重複を減らすことができるので、ハードウエアコストを減少することができる。
【図面の簡単な説明】
【図1】本発明の実施例を示すマルチプロセッサシステムのブロック図である。
【図2】従来技術を示すマルチプロセッサシステムのブロック図である。
【符号の説明】
101 本発明のマルチプロセッサシステム
102 第1プロセッサ
103 第2プロセッサ
104 第1命令格納メモリ
105 制御回路
106 第1演算器
107 第2演算器
108 出力セレクタ
109 第1レジスタファイル
110 出力レジスタ
111 第1ソースデータ
112 第2命令格納メモリ
113 第2レジスタファイル
114 入力セレクタ
115 演算終了信号
116 第2ソースデータ
117 データアドレスバス[0001]
TECHNICAL FIELD OF THE INVENTION
The present invention relates to a multiprocessor system that performs parallel processing by a plurality of processors.
[0002]
[Prior art]
2. Description of the Related Art Conventionally, a multiprocessor system in which a plurality of processors perform parallel processing is as shown in FIG.
FIG. 2 is a block diagram of a multiprocessor system showing the prior art.
In FIG. 2,
The inside of the
[0003]
Next, for example, an operation in a case where the
The
[0004]
Although an example in which there are two arithmetic units is shown here, a larger number of arithmetic units may be included. The
[0005]
[Problems to be solved by the invention]
However, in the above-described multiprocessor system, if the instructions executed by the respective processors are biased, the throughput of each processor varies due to the difference in the processing capability, which hinders the improvement of the processing capability of the system. Was.
Further, there is a case where the circuit scale of the arithmetic unit becomes very large as compared with the control circuit or the selector depending on the type of operation. In such a case, since each processor must have an operation unit for performing the operation, there is a problem that operation resources are duplicated and hardware cost is increased.
[0006]
The present invention has been made to solve the above problems, and has as its object to provide a multiprocessor system capable of improving the processing capability of a system and reducing hardware costs.
[0007]
[Means for Solving the Problems]
In order to solve the above-mentioned problem, the present invention provides a multi-processor system in which a plurality of processors perform parallel processing, a first instruction storage memory for storing instructions to be executed by itself, and an instruction whose execution has been shifted from another processor. And a control circuit for controlling internal operations and generating an operation end signal based on instructions from the first and second instruction storage memories, and holding its own operation result And a first register file for outputting the first source data, a second register file for holding an operation result shifted to execution from another processor and outputting the second source data, and a first register file for outputting the first source data. An input selector for selecting the second source data, a plurality of arithmetic units for performing an operation in accordance with an output value from the input selector, and an output from the plurality of arithmetic units. It is obtained by having an output selector for distributing to the first register file and said second register file.
[0008]
BEST MODE FOR CARRYING OUT THE INVENTION
Hereinafter, embodiments of the present invention will be described with reference to the drawings.
FIG. 1 is a block diagram of a multiprocessor system showing an embodiment of the present invention.
In FIG. 1, reference numeral 102 denotes a first processor, 103 denotes a second processor, and 117 denotes a data address bus connecting the first processor 102 and the second processor 103. Further, as internal circuits of the second processor 103, 104 is an instruction storage memory, 105 is a control circuit, 106 is a
[0009]
The present invention differs from the prior art in that a second instruction storage memory 112 for storing an instruction whose execution has been shifted from another processor is provided separately from the first instruction storage memory 104 for storing an instruction to be executed by itself. In addition, separately from the
Note that the inside of the first processor 102 includes the same circuit as the second processor 103, and the first processor 102 and the second processor 103 execute instructions independently. However, the first arithmetic unit 106 or the second arithmetic unit 107 is not necessarily common, and there is an arithmetic unit which only one has. The two processors operate with one as a master and the other as a slave, and the internal area of the slave is mapped to the address of the master.
[0010]
Next, the operation will be described.
When the first processor 102 is the master and the second processor 103 is the slave, the first processor 102 refers to the operation result held in the
[0011]
Although an example in which there are two arithmetic units is shown here, a larger number of arithmetic units may be included. The output selector 108 receives an instruction from the control circuit 105 as to whether the operation results of the first and second operation units 106 and 107 are held in the
[0012]
Therefore, the multiprocessor system according to the present embodiment includes a first instruction storage memory 104 for storing instructions to be executed by itself, a second instruction storage memory 112 for storing instructions whose execution has been shifted from another processor, and A control circuit 105 for controlling internal operations and generating an operation end signal 115 based on instructions from the first instruction storage memory 104 and the second instruction storage memory 112, holding its own operation result, and outputting first source data A
In addition, since duplication of arithmetic units can be reduced between one processor and the other processor, hardware costs can be reduced.
[0013]
【The invention's effect】
As described above, according to the present invention, in a multiprocessor system, a first instruction storage memory for storing an instruction to be executed by itself and a second instruction storage memory for storing an instruction whose execution has been shifted from another processor A control circuit for controlling internal operations and generating an operation end signal based on instructions from the first instruction storage memory and the second instruction storage memory, and holding its own operation result and outputting the first source data A first register file to be executed, a second register file to hold an operation result shifted to execution from another processor and output the second source data, and select the first source data and the second source data. An input selector, a plurality of operation units for performing an operation according to an output value from the input selector, and outputs from the plurality of operation units to the first register file and the second register Since the configuration is provided with an output selector for distributing the data to the files, by using an arithmetic unit that is not used by one processor in the other processor, the bias of instructions executed by each processor can be averaged. Processing capacity can be improved.
In addition, since duplication of arithmetic units can be reduced between one processor and the other processor, hardware costs can be reduced.
[Brief description of the drawings]
FIG. 1 is a block diagram of a multiprocessor system showing an embodiment of the present invention.
FIG. 2 is a block diagram of a multiprocessor system showing a conventional technique.
[Explanation of symbols]
101 Multiprocessor system of the present invention 102 First processor 103 Second processor 104 First instruction storage memory 105 Control circuit 106 First operator 107 Second operator 108
Claims (1)
自身の実行する命令を格納する第1命令格納メモリと、
他のプロセッサから実行を移行された命令を格納する第2命令格納メモリと、
該第1命令格納メモリと該第2命令格納メモリとからの命令に基づき内部動作の制御と演算終了信号を発生する制御回路と、
自身の演算結果の保持と第1ソースデータの出力を行う第1レジスタファイルと、
他のプロセッサから実行を移行された演算結果の保持と第2ソースデータの出力を行う第2レジスタファイルと、
該第1ソースデータと該第2ソースデータの選択を行う入力セレクタと、
該入力セレクタからの出力値に応じた演算を行う複数の演算器と、
該複数の演算器からの出力を該第1レジスタファイルと該第2レジスタファイルとに振り分ける出力セレクタを具備したことを特徴とするマルチプロセッサシステム。In a multiprocessor system that performs parallel processing by a plurality of processors,
A first instruction storage memory for storing instructions to be executed by itself,
A second instruction storage memory for storing an instruction whose execution has been shifted from another processor;
A control circuit for controlling internal operations and generating an operation end signal based on instructions from the first instruction storage memory and the second instruction storage memory;
A first register file for holding its own operation result and outputting the first source data;
A second register file for holding an operation result whose execution has been shifted from another processor and outputting the second source data;
An input selector for selecting the first source data and the second source data;
A plurality of computing units that perform computations according to output values from the input selector;
A multiprocessor system comprising an output selector for distributing outputs from the plurality of arithmetic units to the first register file and the second register file.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2002229667A JP2004070692A (en) | 2002-08-07 | 2002-08-07 | System for multiprocessing |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2002229667A JP2004070692A (en) | 2002-08-07 | 2002-08-07 | System for multiprocessing |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2004070692A true JP2004070692A (en) | 2004-03-04 |
Family
ID=32015977
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2002229667A Pending JP2004070692A (en) | 2002-08-07 | 2002-08-07 | System for multiprocessing |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2004070692A (en) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2012008622A (en) * | 2010-06-22 | 2012-01-12 | Fujitsu Ltd | Calculation unit |
-
2002
- 2002-08-07 JP JP2002229667A patent/JP2004070692A/en active Pending
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2012008622A (en) * | 2010-06-22 | 2012-01-12 | Fujitsu Ltd | Calculation unit |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6708552B2 (en) | Pipelined configurable processor | |
US20060294344A1 (en) | Computer processor pipeline with shadow registers for context switching, and method | |
CN109997113B (en) | Method and device for data processing | |
JPH1027102A (en) | Arithmetic processor | |
US8738890B2 (en) | Coupled symbiotic operating system | |
KR20100069551A (en) | Mulicore processor and method of use that configures core functions based on executing instructions | |
KR100288170B1 (en) | Data processor with a compute unit that shares a set of register files | |
JPH09138778A (en) | Device and method using semaphore buffer for semaphore instruction | |
JPS62221732A (en) | Register saving and recovery system | |
JP2008217061A (en) | Simd microprocessor | |
JP2021108104A (en) | Partially readable/writable reconfigurable systolic array system and method | |
JP2004070692A (en) | System for multiprocessing | |
JP2013161484A (en) | Reconfigurable computing apparatus, first memory controller and second memory controller therefor, and method of processing trace data for debugging therefor | |
JP2006018411A (en) | Processor | |
JP2004021426A (en) | Computer system and hardware/software logic suitable thereto and caching method | |
JP2007334819A (en) | Vector renaming method and vector type calculator | |
JPS60160443A (en) | Data processor | |
JP2008225710A (en) | Computer system and process-switching method used in the system | |
JP4208149B2 (en) | Method and apparatus for efficient control of a processor | |
JPH04184535A (en) | Parallel arithmetic units | |
JP4580879B2 (en) | Reconfigurable circuit | |
JPH033047A (en) | Memory with arithmetic function | |
JPH09106346A (en) | Parallel computer | |
JP2004070869A (en) | Calculating system | |
CN116635841A (en) | Near memory determination of registers |