JPH0566994A - Multiprocessor system - Google Patents
Multiprocessor systemInfo
- Publication number
- JPH0566994A JPH0566994A JP22593391A JP22593391A JPH0566994A JP H0566994 A JPH0566994 A JP H0566994A JP 22593391 A JP22593391 A JP 22593391A JP 22593391 A JP22593391 A JP 22593391A JP H0566994 A JPH0566994 A JP H0566994A
- Authority
- JP
- Japan
- Prior art keywords
- processor
- address
- memory
- bus
- system bus
- 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
- 230000015654 memory Effects 0.000 claims abstract description 145
- 239000000872 buffer Substances 0.000 claims abstract description 24
- 238000010586 diagram Methods 0.000 description 5
- 230000008859 change Effects 0.000 description 2
- 239000011159 matrix material Substances 0.000 description 2
- 238000000034 method Methods 0.000 description 2
- 230000008569 process Effects 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 1
- 239000012141 concentrate Substances 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000002452 interceptive effect Effects 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 230000004044 response Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/16—Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
- G06F15/163—Interprocessor communication
- G06F15/17—Interprocessor communication using an input/output type connection, e.g. channel, I/O port
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/36—Handling requests for interconnection or transfer for access to common bus or bus system
- G06F13/368—Handling requests for interconnection or transfer for access to common bus or bus system with decentralised access control
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Image Processing (AREA)
- Information Transfer Systems (AREA)
- Multi Processors (AREA)
Abstract
(57)【要約】
【目的】 高速3次元画像処理等に使用可能な高性能な
マルチプロセッサシステムを構築する。
【構成】 複数のプロセッサモジュールとそれらを接続
するシステムバスとバスの使用権の制御を行うバスアー
ビタとから構成される。各プロセッサモジュール内には
所要の内部構造を有したメモリを配置し、プロセッサア
ドレスデコーダはプロセッサからのアドレスを受けてメ
モリアクセス要求信号を、またシステムバスアドレスデ
コーダはシステムバスからアドレスを受け、アドレスス
イッチで指定される領域と一致したときメモリアクセス
要求信号をメモリアービタに出力する。メモリアービタ
はこれらの信号を受け、アービトレーションを行い、2
つのバスバッファの一方を排他的に制御して開き、メモ
リをアクセスさせる。
(57) [Abstract] [Purpose] To construct a high-performance multiprocessor system that can be used for high-speed 3D image processing. [Structure] A plurality of processor modules, a system bus connecting them, and a bus arbiter for controlling the right to use the bus. A memory having a required internal structure is arranged in each processor module, and a processor address decoder receives an address from the processor and a memory access request signal, and a system bus address decoder receives an address from the system bus and an address switch. A memory access request signal is output to the memory arbiter when it matches the area specified by. The memory arbiter receives these signals and performs arbitration.
One of the two bus buffers is exclusively controlled and opened to access the memory.
Description
【0001】[0001]
【産業上の利用分野】本発明はマルチプロセッサシステ
ムに係り、特に3次元画像などの大容量のデータを高速
に処理するのに好適なマルチプロセッサシステムに関す
る。BACKGROUND OF THE INVENTION 1. Field of the Invention The present invention relates to a multiprocessor system, and more particularly to a multiprocessor system suitable for processing a large amount of data such as a three-dimensional image at high speed.
【0002】[0002]
【従来の技術】図5に従来のマルチプロセッサシステム
の構成例を示す。マルチプロセッサシステムは、複数の
プロセッサモジュール101と、大容量のデータメモリ
102と、データ伝送を行うためのシステムバス103
と、システムバス103を各プロセッサモジュール10
1が使用するとき、使用状態を制御するバスアービタ1
04とから構成される。更に、各プロセッサモジュール
101は、プロセッサ105とローカルメモリ106と
システムバス制御回路107より構成される。ここでロ
ーカルメモリ106は、プロセッサ105によってのみ
アクセスされ、他のプロセッサモジュールのプロセッサ
によってはアクセスされ得ない構成を有している。この
技術的意味で、メモリ106は「ローカルメモリ」と呼
ばれる。大容量のデータを扱う場合、システムバス10
3を通して大容量のデータメモリ102からデータを部
分的にローカルメモリ106へ転送し、処理を行い、そ
の結果をシステムバス102を介して転送し、再びデー
タメモリ102へ書き込む。このプロセッサモジュール
101を複数使用し、マルチプロセッサ構成を採った場
合、各プロセッサモジュール101がそれぞれ同様の処
理を行うので、システム全体の処理速度を向上させるこ
とができる。2. Description of the Related Art FIG. 5 shows a configuration example of a conventional multiprocessor system. The multiprocessor system includes a plurality of processor modules 101, a large-capacity data memory 102, and a system bus 103 for data transmission.
And the system bus 103 to each processor module 10
Bus arbiter 1 that controls the usage status when 1 uses
04. Further, each processor module 101 includes a processor 105, a local memory 106, and a system bus control circuit 107. Here, the local memory 106 has a configuration that can be accessed only by the processor 105 and cannot be accessed by processors of other processor modules. In this technical sense, the memory 106 is called "local memory". When handling a large amount of data, the system bus 10
3, data is partially transferred from the large-capacity data memory 102 to the local memory 106, processing is performed, the result is transferred via the system bus 102, and the data is again written to the data memory 102. When a plurality of processor modules 101 are used and a multiprocessor configuration is adopted, each processor module 101 performs the same processing, so that the processing speed of the entire system can be improved.
【0003】[0003]
【発明が解決しようとする課題】しかし、複数のプロセ
ッサモジュール101からなる従来のマルチプロセッサ
システムでは、プロセッサモジュール101の台数が増
えると、システムバス103上のデータのトラフィック
が増え、それがネックとなり性能の向上が頭打ちとな
る。特に画像処理においては、データのアクセスが頻発
するためシステムバス103上のデータのトラフィック
がボトルネックとなることが多い。例えば、2563 の
画像データを16ユニットのプロセッサモジュールで演
算する場合、各プロセッサモジュールは、256×25
6×16のデータ領域を主に演算するが、これらのデー
タはすべてデータメモリ102内にあるものを一旦ロー
カルメモリ102へ移して演算するか、又はデータメモ
リ102を直接アクセスしながら演算を行う。いずれの
場合も、16ユニットのプロセッサモジュール101か
らデータメモリ102へのアクセスが集中し、プロセッ
サモジュール101の処理性能が十分速いときは、シス
テムバス103上のデータ転送が処理時間の大半を占め
ることになる。However, in the conventional multiprocessor system composed of a plurality of processor modules 101, as the number of processor modules 101 increases, the data traffic on the system bus 103 increases, which becomes a bottleneck. The improvement of will reach the ceiling. Particularly in image processing, since data access frequently occurs, data traffic on the system bus 103 often becomes a bottleneck. For example, when calculating 256 3 image data with 16 unit processor modules, each processor module has 256 × 25
The 6 × 16 data area is mainly operated, but all the data in the data memory 102 is temporarily moved to the local memory 102 for the operation, or the operation is performed while directly accessing the data memory 102. In either case, when the 16 units of the processor module 101 concentrate access to the data memory 102 and the processing performance of the processor module 101 is sufficiently fast, the data transfer on the system bus 103 occupies most of the processing time. Become.
【0004】本発明の目的は、上記バスネックの問題を
解消し、個々のプロセッサモジュールの高速処理性能を
十分に活かすように構築された高性能なマルチプロセッ
サシステムを提供することにある。An object of the present invention is to provide a high-performance multiprocessor system constructed so as to solve the above-mentioned bus neck problem and to fully utilize the high-speed processing performance of each processor module.
【0005】[0005]
【課題を解決するための手段】本発明に係るマルチプロ
セッサシステムは、上記目的を達成するため、次のよう
に構成される。 1.プロセッサと、このプロセッサがシステムバスを通
してこのシステムバスに接続される外部メモリをアクセ
スするためのシステムバス制御回路とを有するプロセッ
サモジュールを複数備えるマルチプロセッサシステムで
あって、複数のプロセッサモジュールのそれぞれに、内
部のプロセッサからアクセス可能な内部メモリを設け、
この内部メモリとプロセッサの間をバスバッファを介し
て接続し、内部メモリとシステムバスの間を他のバスバ
ッファを介して接続し、プロセッサの側とシステムバス
の側からのアクセス要求を検知し、2つのバスバッファ
を排他的に制御して接続を行うメモリアービタを設け、
システムバスの側からも内部メモリをアクセス可能とし
た。すなわち、大容量のデータメモリを分割し、分割し
たメモリを各々のプロセッサモジュール内に実装し、各
プロセッサは、そのプロセッサモジュール内にあるメモ
リに対しては、システムバス上で他のプロセッサと競合
することなくアクセスできるようにする。これにより、
前述の例と同様に、2563 の画像データを16ユニッ
トのプロセッサモジュールで演算する場合、各プロセッ
サモジュールは256×256×16のデータ領域を主
に演算するため、このデータ領域を各プロセッサモジュ
ール内にあるメモリに割り付ければ、大半のデータアク
セスは各プロセッサモジュール内でクローズ状態で行う
ことができ、上記バスネックを解消できる。ただし、各
メモリ間の境界領域に位置するデータに対する一部のデ
ータアクセスに関しては、システムバスを経由して、他
のプロセスモジュールのメモリにアクセスすることがあ
るが、バスネックの問題は全く起こらない。 2.前記第1の構成において、好ましくは、システムバ
スの側からアクセスする場合に内部メモリのアドレスロ
ケーションを変更するアドレス変更手段を備え、同種の
複数の前記プロセッサモジュールをアドレスロケーショ
ンをずらしながら実装することにより、システムバスを
通してこれらの内部メモリが連続したアドレス空間を有
する一つのメモリと見做せる構造を構築する。かかるア
ドレス変更手段は、プロセッサの出力するアドレス情報
(ビット情報)に含まれるモジュールナンバと、基準と
なるアドレススイッチ手段と、両者のデータを比較する
比較手段とから構成される。この場合、モジュールナン
バは、好ましくはアドレス情報上のビット位置として内
部メモリアドレスの先部に配置される。 3.前記第2の構成において、更に好ましくは、内部メ
モリをより小さい複数の領域に分割し、前記のアドレス
変更手段を、複数の領域のそれぞれに個別に設け、それ
ぞれの領域が、離れたアドレスロケーションをとり、且
つシステム全体として重複なく大きな連続領域を形成す
るように構成する。この場合、アドレス変更手段にて、
前記のモジュールナンバは、前記アドレス情報において
内部メモリアドレス内に位置する。 4.前記第2又は第3の構成において、好ましくは、プ
ロセッサから見て、内部メモリはアドレスロケーション
を2つ有し、一方のアドレスロケーションでアクセスす
ると、前記のアドレス変更手段とは無関係な内部固定の
アドレスとなり、他方のアドレスロケーションでアクセ
スすると、連続領域のアドレス空間のうちアドレス変更
手段で指定した空間となるように構成される。 5.前記第2又は第3の構成において、好ましくは、プ
ロセッサが、複数のプロセッサモジュールにまたがる連
続アドレス空間上のメモリにアクセスするとき、前記ア
ドレス変更手段の設定を判定し、自己のプロセッサモジ
ュール内のメモリロケーションをアクセスすると判断し
たときは。システムバス制御回路経由でアクセスするの
でなく、内部メモリとプロセッサ間のバスバッファを通
してアクセスするように構成される。 6.前記第3の構成において、好ましくは、アドレス変
更手段をソフトウェアで変更するようにした。具体的
に、アドレス情報におけるモジュールナンバのビット位
置をソフト的に変更できるように構成される。A multiprocessor system according to the present invention is configured as follows to achieve the above object. 1. A multiprocessor system including a plurality of processor modules having a processor and a system bus control circuit for accessing an external memory connected to the system bus through the system bus, wherein each of the plurality of processor modules comprises: Providing an internal memory accessible from the internal processor,
This internal memory and the processor are connected via a bus buffer, the internal memory and the system bus are connected via another bus buffer, and access requests from the processor side and the system bus side are detected, A memory arbiter that exclusively controls the two bus buffers to establish a connection is provided.
The internal memory can be accessed from the system bus side. That is, a large-capacity data memory is divided, the divided memories are mounted in each processor module, and each processor competes with other processors on the system bus for the memory in the processor module. To be able to access without. This allows
Similar to the above example, when calculating 256 3 image data with 16 unit processor modules, each processor module mainly calculates a 256 × 256 × 16 data area, so this data area is stored in each processor module. If it is allocated to the memory at, most of the data access can be performed in each processor module in the closed state, and the bus neck can be eliminated. However, for some data access to the data located in the boundary area between each memory, the memory of another process module may be accessed via the system bus, but the problem of the bus neck does not occur at all. .. 2. In the first configuration, preferably, an address changing unit that changes an address location of the internal memory when accessing from the system bus side is provided, and a plurality of processor modules of the same type are mounted while shifting the address locations. , Construct a structure in which these internal memories can be regarded as one memory having a continuous address space through the system bus. The address changing means is composed of a module number included in the address information (bit information) output from the processor, an address switching means as a reference, and a comparing means for comparing the data of both. In this case, the module number is preferably placed at the front of the internal memory address as a bit position on the address information. 3. In the second configuration, more preferably, the internal memory is divided into a plurality of smaller areas, and the address changing means is individually provided in each of the plurality of areas, and each area has a separate address location. In addition, the entire system is configured to form a large continuous area without overlapping. In this case, the address changing means
The module number is located in the internal memory address in the address information. 4. In the second or third configuration, preferably, the internal memory has two address locations as seen from the processor, and when accessing at one address location, an internal fixed address irrelevant to the address changing means is provided. When accessed at the other address location, the address space of the continuous area is configured to be the space designated by the address changing means. 5. In the second or third configuration, preferably, when the processor accesses a memory on a continuous address space extending over a plurality of processor modules, the setting of the address changing unit is determined, and the memory in its own processor module is determined. When you decide to access the location. It is configured not to be accessed via the system bus control circuit but to be accessed through a bus buffer between the internal memory and the processor. 6. In the third configuration, preferably, the address changing means is changed by software. Specifically, the bit number of the module number in the address information can be changed by software.
【0006】[0006]
【作用】本発明によるマルチプロセッサシステムでは、
プロセッサモジュール内に内部メモリを配し、この内部
メモリとプロセッサの間及び同内部メモリとシステムバ
スの間を個別のバスバッファで接続し、またメモリアー
ビタを配置し、プロセッサ側から又はシステムバス側か
らのアクセス要求を検知して、前記2つのバスバッファ
を排他的に制御して開くことによりプロセッサ側とシス
テムバス側の双方から内部メモリをアクセスすることを
可能とした。内部メモリの競合は、プロセッサが内部メ
モリにアクセスしている時に、同時にシステムバスを通
して外部の他のプロセッサからのメモリアクセスがあっ
たときにのみ発生するが、大半のデータアクセスは各プ
ロセッサモジュール内で発生するため、僅かしか生じな
い。当該プロセッサが、システムバスを通して他のプロ
セッサモジュールの内部メモリをアクセスしようとして
いる時に、自己の内部メモリに他のプロセッサからのメ
モリアクセスがあった場合、システムバスのバスアービ
タがシステムバスのアービトレーションを行う。この
時、他のプロセッサがバスの使用権を得ると、メモリア
ービタが動作するが、当該プロセッサは自己のプロセッ
サモジュールの内部メモリへのアクセス要求は発生して
いないため、外部の他のプロセッサはメモリアクセスを
必ず実行でき、デッドロックは発生しない。In the multiprocessor system according to the present invention,
The internal memory is arranged in the processor module, and the internal memory and the processor and the internal memory and the system bus are connected by separate bus buffers, and the memory arbiter is arranged from the processor side or the system bus side. When the access request is detected and the two bus buffers are exclusively controlled and opened, the internal memory can be accessed from both the processor side and the system bus side. Internal memory contention occurs only when a processor is accessing the internal memory and at the same time there is a memory access from another external processor through the system bus, but most data access is within each processor module. Since it occurs, it occurs only slightly. When the processor attempts to access the internal memory of another processor module through the system bus and the internal memory of the processor is accessed by another processor, the bus arbiter of the system bus performs arbitration of the system bus. At this time, when the other processor obtains the right to use the bus, the memory arbiter operates, but since that processor has not issued a request to access the internal memory of its own processor module, the other external processor can use the memory. Access is guaranteed and deadlock does not occur.
【0007】システムバスを通して複数のプロセッサモ
ジュールの内部メモリが連続したアドレス空間を持つ1
つのメモリと見做せる構成を構築することにより、各々
のプロセッサでは、ソフトウェアを、メモリが含まれる
プロセッサモジュールを意識することなく、従来の大容
量メモリと同じように作成できる。Internal memory of a plurality of processor modules has a continuous address space through the system bus 1
By constructing a structure that can be regarded as one memory, software can be created in each processor in the same manner as the conventional large-capacity memory without regard for the processor module including the memory.
【0008】また内部メモリをより小さい領域に分割
し、領域のそれぞれに個別にアドレス変更手段を設け、
それぞれの領域が離れたアドレスロケーションをとり、
且つシステム全体として重複なく大きな連続領域がとれ
るようにすることにより、データサイズの異なる画像デ
ータに対しても、最適なプロセッサの配分や、ソースデ
ータとデスティネーションデータをそれぞれ連続して各
プロセッサに配分することができる。Further, the internal memory is divided into smaller areas, and each area is provided with an address changing means,
Each area has a separate address location,
In addition, by allowing a large continuous area to be created in the entire system without duplication, the optimal processor allocation is possible even for image data of different data sizes, and the source data and destination data are allocated continuously to each processor. can do.
【0009】またプロセッサから見て、自身のプロセッ
サモジュールの内部メモリがアドレスロケーションを2
つ持ち、一方のアドレスロケーションでアクセスする
と、アドレス変更手段とは無関係の内部固定のアドレス
となり、他方のアドレスロケーションでアクセスする
と、上記連続アドレス空間のうちアドレス変更手段で指
定した空間となるようにすることにより、内部メモリで
収まるデータの場合は前者のアドレスでアクセスすれば
必ず内部メモリを使用でき、且つどのプロセッサモジュ
ールでも同じ条件でプログラムが動作できる。Further, as seen from the processor, the internal memory of its own processor module has two address locations.
One of them has an internal fixed address irrelevant to the address changing means when accessed by one address location, and has a space specified by the address changing means of the above continuous address space when accessed by the other address location. As a result, if the data can be stored in the internal memory, the internal memory can be used without fail by accessing the former address, and the program can be operated under the same condition in any processor module.
【0010】またあるプロセッサモジュールのプロセッ
サが、複数のプロセッサモジュールにまたがる連続アド
レス空間上のメモリにアクセスするとき、アドレス変更
手段の設定を判定し、同プロセッサモジュール内のメモ
リロケーションをアクセスすると判断したときはシステ
ムバス制御回路経由でアクセスするのでなく、メモリと
プロセッサ間のバスバッファを通してアクセスする機構
を設けると、ソフトウェアで全く意識せずにマルチプロ
セッサ構成で大容量のメモリへアクセスするときのバス
ネックを解消できる。When a processor of a certain processor module accesses a memory in a continuous address space that spans a plurality of processor modules, the setting of the address changing means is determined, and it is determined that the memory location in the processor module is accessed. If a mechanism to access via a bus buffer between a memory and a processor is provided instead of accessing via a system bus control circuit, a bus neck when accessing a large capacity memory in a multiprocessor configuration without any awareness of software is created. It can be resolved.
【0011】またアドレス変更手段をソフトウェアで変
更できるようにすることにより、アドレス変更を、扱う
データサイズに応じてダイナミックに行うことができ
る。Further, by making it possible to change the address changing means by software, the address can be changed dynamically according to the data size to be handled.
【0012】[0012]
【実施例】以下に、本発明の実施例を添付図面に基づい
て説明する。図1において、本発明によるマルチプロセ
ッサシステムは、複数のプロセッサモジュール1と、そ
れらのプロセッサモジュール1を接続するシステムバス
2と、システムバス2の使用権の制御を行うバスアービ
タ3とにより構成される。複数のプロセッサモジュール
1は、それぞれ、プロセッサ4、メモリ5、システムバ
ス制御回路6を含んでいる。メモリ5は、プロセッサモ
ジュール1内に配置された内部メモリである。Embodiments of the present invention will be described below with reference to the accompanying drawings. In FIG. 1, the multiprocessor system according to the present invention comprises a plurality of processor modules 1, a system bus 2 connecting the processor modules 1, and a bus arbiter 3 for controlling the right to use the system bus 2. Each of the plurality of processor modules 1 includes a processor 4, a memory 5, and a system bus control circuit 6. The memory 5 is an internal memory arranged in the processor module 1.
【0013】プロセッサ4とメモリ5との間はバスバッ
ファ7を介しバスで接続され、メモリ5とシステムバス
2との間はバスバッファ8を介しバスで接続される。バ
スバッファ7,8の開閉動作は、メモリアービタ9で制
御され、競合が発生したときにはいずれか一方のバスバ
ッファが開状態となる。プロセッサ4側から、又はシス
テムバス2側からのメモリ5へのアクセスは、調整機能
を有するメモリアービタ9により排他的に選択される。
10はプロセッサアドレスデコーダ、11はシステムバ
スアドレスデコーダである。これらのプロセッサアドレ
スデコーダ10とシステムバスアドレスデコーダ11の
それぞれに対して、プロセッサ4の指令を受けてその指
定内容が変更されるアドレススイッチ12の当該指定内
容に基づき、アドレスの取扱いに関する変更が実行され
る。The processor 4 and the memory 5 are connected by a bus via a bus buffer 7, and the memory 5 and the system bus 2 are connected by a bus via a bus buffer 8. The opening / closing operation of the bus buffers 7 and 8 is controlled by the memory arbiter 9, and when contention occurs, one of the bus buffers is opened. Access to the memory 5 from the processor 4 side or the system bus 2 side is exclusively selected by the memory arbiter 9 having the adjusting function.
Reference numeral 10 is a processor address decoder, and 11 is a system bus address decoder. For each of the processor address decoder 10 and the system bus address decoder 11, a change in address handling is executed based on the specified contents of the address switch 12 whose specified contents are changed in response to a command from the processor 4. It
【0014】プロセッサ4がメモリ5をアクセスする時
の動作は、以下の通りである。プロセッサ4はプロセッ
サバス13にメモリアドレスを出力する。プロセッサア
ドレスデコーダ10は、このメモリアドレスを受け、ア
ドレススイッチ12で指定される領域と一致するとき又
はローカルにこのメモリに割り付けられたアドレス領域
であるとき、メモリアクセス要求信号14aをメモリア
ービタ9に出力する。メモリアービタ9は、メモリアク
セス要求信号14aを受け、アービトレーションを行
い、システムバス2側でメモリ5を使用していない時は
直ちに、メモリ5を使用している時はその終了を待っ
て、バスバッファ7を開き、プロセッサ4にメモリアク
セスを行わせる。プロセッサ4側からのメモリアクセス
が終了すると、メモリアービタ9はバスバッファ7を閉
じる。The operation when the processor 4 accesses the memory 5 is as follows. The processor 4 outputs the memory address to the processor bus 13. The processor address decoder 10 receives the memory address and outputs the memory access request signal 14a to the memory arbiter 9 when it matches the area designated by the address switch 12 or when the address area is locally assigned to this memory. To do. The memory arbiter 9 receives the memory access request signal 14a, performs arbitration, waits immediately when the memory 5 is not used on the system bus 2 side, waits for the end when the memory 5 is used, and waits for the bus buffer. 7 is opened, and the processor 4 is made to access the memory. When the memory access from the processor 4 side is completed, the memory arbiter 9 closes the bus buffer 7.
【0015】他のプロセスモジュールに属する外部のプ
ロセッサが、システムバス2を通してメモリ5をアクセ
スするときの動作は、以下の通りである。外部のプロセ
ッサは、システムバス2にメモリアドレスを出力する。
システムバスアドレスデコーダ11は、このメモリアド
レスを受け、アドレススイッチ12で指定される領域と
一致したときメモリアクセス要求信号14bをメモリア
ービタ9に出力する。メモリアービタ9は、このアクセ
ス要求信号14bを受け、アービトレーションを行い、
プロセッサ1の側でメモリ5を使用していないときは直
ちに、メモリ5を使用しているときはその終了を待っ
て、バスバッファ8を開き、外部のプロセッサにメモリ
アクセスを行わせる。外部プロセッサによるシステムバ
ス2の側からのメモリアクセスが終了すると、メモリア
ービタ9はバスバッファ8を閉じる。The operation when an external processor belonging to another process module accesses the memory 5 through the system bus 2 is as follows. The external processor outputs the memory address to the system bus 2.
The system bus address decoder 11 receives this memory address and outputs a memory access request signal 14b to the memory arbiter 9 when it matches the area designated by the address switch 12. The memory arbiter 9 receives the access request signal 14b, performs arbitration,
Immediately when the memory 5 is not being used on the processor 1 side, and when the memory 5 is being used, the end of the memory 5 is awaited and the bus buffer 8 is opened to allow an external processor to access the memory. When the memory access from the system bus 2 side by the external processor is completed, the memory arbiter 9 closes the bus buffer 8.
【0016】アクセス要求信号14aとアクセス要求信
号14bが同時に発生したときは、メモリアービタ9
は、予め定められた優先度に従って優先度の高い方のバ
スバッファを開き、そのメモリアクセスが終了後、優先
度の低い方のバスバッファを開き、他のメモリアクセス
を行わせる。When the access request signal 14a and the access request signal 14b are generated at the same time, the memory arbiter 9
Opens a bus buffer with a higher priority according to a predetermined priority, and after the memory access is completed, opens a bus buffer with a lower priority to perform another memory access.
【0017】プロセッサ4が他のプロセッサモジュール
の内部メモリをアクセスするときの動作を説明する。プ
ロセッサ4は、プロセッサバス13に外部メモリアドレ
スを出力する。プロセッサアドレスデコーダ10は、外
部メモリアドレスを受け、システムバスアクセス要求信
号15をシステムバス制御回路6に出力する。システム
バス制御回路6は、システムバスアービタ3にバス使用
要求を出し、システムバスアービタ3からバスの使用権
を得て、他のプロセッサモジュールの内部メモリをアク
セスする。この時、相手先のプロセッサモジュール内部
に設けられたメモリアービタに基づき、前述と同様のア
ービトレーションが行われる。The operation when the processor 4 accesses the internal memory of another processor module will be described. The processor 4 outputs the external memory address to the processor bus 13. The processor address decoder 10 receives the external memory address and outputs a system bus access request signal 15 to the system bus control circuit 6. The system bus control circuit 6 issues a bus use request to the system bus arbiter 3, obtains the bus use right from the system bus arbiter 3, and accesses the internal memory of another processor module. At this time, the same arbitration as described above is performed based on the memory arbiter provided inside the processor module of the other party.
【0018】以下に、応用例として2563 の画像デー
タに対し、33 のマトリックスのフィルタ演算を行う例
を説明する。1データを2バイトにすると、画像データ
の総量は約32Mバイトとなる。従って、プロセッサモ
ジュール1の個数を16個とすると、1つのプロセッサ
モジュール当りでは最低限2Mバイトの内部メモリが必
要となる。そこで、この実施例では、1つのプロセッサ
モジュール当りの内部メモリの容量を8Mバイトに設定
し、メモリの領域を4バンクに分けるように構成した。
システムバスアドレスビットの構成は図2に示すように
て割り付けられる。システムバスアドレスビットの構成
において、A部(220〜20 )はバンク内アドレスを表
すデータのビット位置に使用され、B部(224〜221)
はアドレススイッチ12の内容と比較されるデータ(モ
ジュールナンバ0〜15に対応)のビット位置に使用さ
れ、C部(226〜225)はバンク切替えのためのデータ
(バンクナンバ0〜3に対応)のビット位置に使用され
る。なおシステムバスアドレスビットの構成において、
更に、上位に複数のビットを有する。これらの上位ビッ
トを利用して、B部の取扱いを決定するように構成する
こともできる。すなわち、上位ビットの内容に基づき、
必要に応じて、B部のデータ内容を使用するか、又は無
視するように構成することができる。B部のデータ内容
を使用するときには、比較手段に、B部のデータと前記
アドレススイッチ12の指定データとを入力させ、当該
比較手段で2つのデータの比較を行う。As an application example, an example of performing filter calculation of 3 3 matrix on 256 3 image data will be described below. If 1 data is 2 bytes, the total amount of image data is about 32 Mbytes. Therefore, if the number of processor modules 1 is 16, one processor module requires at least 2 Mbytes of internal memory. Therefore, in this embodiment, the capacity of the internal memory per processor module is set to 8 Mbytes, and the memory area is divided into four banks.
The structure of the system bus address bits is assigned as shown in FIG. In the configuration of the system bus address bits, A section (2 20-2 0) is used in the bit position of the data representing the bank address, B section (2 24-2 21)
Is used for the bit position of the data (corresponding to the module numbers 0 to 15) to be compared with the contents of the address switch 12, and the C section (2 26 to 2 25 ) is the data for bank switching (to the bank numbers 0 to 3). Corresponding) bit position. In the system bus address bit configuration,
Further, it has a plurality of bits in the upper order. It is also possible to use these high-order bits to determine how to handle the B section. That is, based on the contents of the upper bits,
If desired, the data contents of part B can be used or can be arranged to be ignored. When using the data contents of the B section, the comparing section is made to input the B section data and the designated data of the address switch 12, and the comparing section compares the two data.
【0019】なお、アドレススイッチ12の指定内容と
比較されるB部の内容は、ソフト技術により可変にする
ことが可能である。すなわち、ソフト的に制御されるセ
レクタでモジュールナンバビットを可変とし、扱うデー
タサイズに応じてダイナミックにアドレス変更を行うこ
とができる。The contents of the portion B to be compared with the contents designated by the address switch 12 can be made variable by software technology. That is, the module number bit can be made variable by the selector controlled by software, and the address can be dynamically changed according to the data size to be handled.
【0020】上記のように割り付けると、図3に示すよ
うに、物理的には各プロセッサモジュール(PR0〜P
R15)の内部メモリに配置されているバンク0〜3の
メモリ部分が、論理的には各プロセッサモジュールの同
じ番号のバンク同士を並べた形となる。図3では、物理
的メモリ配置と論理的メモリ配置とを対比して示してい
る。When the allocation is performed as described above, as shown in FIG. 3, each processor module (PR0 to P0) is physically located.
The memory portion of banks 0 to 3 arranged in the internal memory of R15) is logically arranged such that banks having the same number in each processor module are arranged side by side. In FIG. 3, the physical memory arrangement and the logical memory arrangement are shown in contrast.
【0021】システムバスアドレス 0〜33,554,431( 0
〜1FFFFFF :16進)に2563 の原画像データを入
れ、システムバスアドレス33,554,432〜67,108,864(20
00000〜3FFFFFF :16進)に2563 の演算結果の画
像データを入れると、原画像データ、演算結果画像デー
タ共に256×256×16データずつは、各プロセッ
サモジュールのバンク0とバンク1にそれぞれ入ること
になる。この例のフィルタ演算では、ある画素を中心と
した33 =27の原画像データに対して、ある計数を掛
けて足し合せることにより、当該画素の演算結果画像デ
ータを得る。従って、大多数の演算は、各プロセッサが
自己のプロセッサモジュールの内部メモリのバンク0の
データを使って演算を行い、バンク1に結果を格納する
ため、互いに妨げ合うことなく処理を実行できる。ただ
し、プロセッサモジュール間の境界にある256×25
6のデータの演算のときにのみ、隣合うプロセッサモジ
ュールの各内部メモリのデータを使うことになる。この
状態を、図4の16で示している。System bus address 0 to 33,554,431 (0
~1FFFFFF: 16 hex) to put 256 3 of the original image data, the system bus address 33,554,432~67,108,864 (20
If the image data of 256 3 is put in (00000 to 3FFFFFF: hexadecimal), 256 × 256 × 16 data for each of the original image data and the image data for calculation result will be stored in bank 0 and bank 1 of each processor module. It will be. In the filter calculation of this example, the calculation result image data of the pixel is obtained by multiplying the original image data of 3 3 = 27 around a certain pixel by a certain count and adding them. Therefore, in the majority of operations, each processor performs an operation using the data in bank 0 of the internal memory of its own processor module and stores the result in bank 1, so that the processing can be executed without interfering with each other. However, 256 × 25 at the boundary between processor modules
Only when the data of 6 is calculated, the data of the internal memories of the adjacent processor modules are used. This state is shown by 16 in FIG.
【0022】内部メモリへのアクセスと外部のメモリへ
のアクセスとで、データのアクセス回数を比較すると、
一つのプロセッサが、演算のためにアクセスする画像デ
ータは、 原画像データ:256×256×16×27=28,3
11,552 演算結果画像データ:256×256×16=1,04
8,576 で、合計のアクセス回数は、29,360,128回で
ある。Comparing the number of data accesses between the access to the internal memory and the access to the external memory,
The image data that one processor accesses for calculation is the original image data: 256 × 256 × 16 × 27 = 28,3
11,552 Calculation result image data: 256 × 256 × 16 = 1,04
8,576, and the total number of accesses is 29,360,128.
【0023】上記のアクセス回数のうち、外部のメモリ
に対するアクセスは、図4を参照すると、 原画像データ:256×256×9×2=1,179,
648回 のみであり、全体の約4%となる。Referring to FIG. 4, among the above-mentioned access counts, the access to the external memory is as follows: Original image data: 256 × 256 × 9 × 2 = 1,179,
Only 648 times, which is about 4% of the total.
【0024】上記構成において、プロセッサ4から見
て、自身のプロセッサモジュール1内のメモリ5が、B
部のデータ内容を使用する否かで、アドレスロケーショ
ンを2つ持ち、一方のアドレスロケーションでアクセス
すると、アドレススイッチ12とは無関係の内部固定の
アドレスとなり、他方のアドレスロケーションでアクセ
スすると、上記連続アドレス空間のうちアドレススイッ
チ12で指定した空間となるようにすることができる。
これにより、メモリ5に収まるデータの場合は、前者の
アドレスでアクセスすれば、必ず内部メモリを使用で
き、且つどのプロセッサモジュールでも同じ条件でプロ
グラムが動作できる。In the above configuration, the memory 5 in the processor module 1 of the processor 4 is
It has two address locations depending on whether or not to use the data contents of the copy, and when accessing at one address location, it becomes an internal fixed address irrelevant to the address switch 12, and when accessing at the other address location, the above continuous address Of the spaces, the space specified by the address switch 12 can be used.
As a result, if the data can be stored in the memory 5, the internal memory can be used without fail if the former address is accessed, and the program can be operated under the same condition in any processor module.
【0025】またプロセッサモジュール1のプロセッサ
4が、複数のプロセッサモジュールにまたがる連続アド
レス空間上のメモリにアクセスする場合において、アド
レススイッチ12の設定を判定し、同プロセッサモジュ
ール内のメモリロケーションをアクセスすると判断した
ときはシステムバス制御回路6経由でアクセスするので
なく、メモリ5とプロセッサ4間のバスバッファ7を通
してアクセスする。これにより、ソフトウェアで全く意
識せずにマルチプロセッサ構成で大容量のメモリへアク
セスするときのバスネックを解消できる。Further, when the processor 4 of the processor module 1 accesses a memory on a continuous address space which extends over a plurality of processor modules, the setting of the address switch 12 is judged and it is judged that the memory location in the processor module is accessed. In this case, the access is not made via the system bus control circuit 6, but is made through the bus buffer 7 between the memory 5 and the processor 4. As a result, the bus neck when accessing a large-capacity memory with a multiprocessor configuration can be eliminated without the software being aware of it.
【0026】上記構成を有するマルチプロセッサシステ
ムは、特にMRI装置の画像処理におけるデータ処理に
好ましい。本システムによれば、3次元画像データ対し
て高速の各種処理を行うことができる。The multiprocessor system having the above configuration is particularly suitable for data processing in image processing of the MRI apparatus. According to this system, it is possible to perform various high-speed processing on three-dimensional image data.
【0027】[0027]
【発明の効果】以上の説明で明らかなように本発明によ
れば、マルチプロセッサの並列演算のときにメモリアク
セスのバスネックを解消し、各プロセッサモジュールの
性能を十分に活かすことができ、このためシステムの性
能を大幅に向上させることができる。またこのマルチプ
ロセッサシステムを画像処理装置に適用すれば、十分に
高速な3次元画像処理が実現できる。As is apparent from the above description, according to the present invention, the bus neck of memory access can be eliminated at the time of parallel operation of multiprocessors, and the performance of each processor module can be fully utilized. Therefore, the system performance can be significantly improved. Also, if this multiprocessor system is applied to an image processing apparatus, sufficiently high-speed three-dimensional image processing can be realized.
【図1】本発明に係るマルチプロセッサシステムの実施
例を示すブロック図である。FIG. 1 is a block diagram showing an embodiment of a multiprocessor system according to the present invention.
【図2】システムバスアドレスビットの構成を示す図で
ある。FIG. 2 is a diagram showing a configuration of a system bus address bit.
【図3】物理的メモリ配置と論理的メモリ配置の対応関
係を示す図である。FIG. 3 is a diagram showing a correspondence relationship between a physical memory arrangement and a logical memory arrangement.
【図4】33 マトリックスフィルタ演算を説明するため
の図である。FIG. 4 is a diagram for explaining a 3 3 matrix filter calculation.
【図5】従来のマルチプロセッサシステムの構成を示す
ブロック図である。FIG. 5 is a block diagram showing a configuration of a conventional multiprocessor system.
1 プロセッサモジュール 2 システムバス 3 バスアービタ 4 プロセッサ 5 メモリ 6 システムバス制御回路 7,8 バスバッファ 9 メモリアービタ 12 アドレススイッチ 1 processor module 2 system bus 3 bus arbiter 4 processor 5 memory 6 system bus control circuit 7, 8 bus buffer 9 memory arbiter 12 address switch
Claims (6)
ムバスを通してこのシステムバスに接続される外部メモ
リをアクセスするためのシステムバス制御回路とを有す
るプロセッサモジュールを複数備えるマルチプロセッサ
システムにおいて、 複数の前記プロセッサモジュールのそれぞれに、内部の
前記プロセッサからアクセス可能な内部メモリを設け、
この内部メモリと前記プロセッサの間をバスバッファを
介して接続し、前記内部メモリと前記システムバスの間
を他のバスバッファを介して接続し、前記プロセッサの
側と前記システムバスの側からのアクセス要求を検知
し、2つの前記バスバッファを排他的に制御して接続を
行うメモリアービタを設け、システムバスの側からも前
記内部メモリをアクセス可能としたことを特徴とするマ
ルチプロセッサシステム。1. A multiprocessor system comprising a plurality of processor modules having a processor and a system bus control circuit for accessing an external memory through which the processor is connected to the system bus, wherein a plurality of the processor modules are provided. In each of the, provided with an internal memory accessible from the processor inside,
The internal memory and the processor are connected via a bus buffer, the internal memory and the system bus are connected via another bus buffer, and access from the processor side and the system bus side is performed. A multiprocessor system characterized in that a memory arbiter for detecting a request and exclusively controlling the two bus buffers for connection is provided so that the internal memory can be accessed from the system bus side.
ムにおいて、前記システムバスの側からアクセスする場
合に、前記内部メモリのアドレスロケーションを変更す
るアドレス変更手段を備え、同種の複数の前記プロセッ
サモジュールをアドレスロケーションをずらしながら実
装することにより、前記システムバスを通して各プロセ
ッサモジュールの内部メモリが連続したアドレス空間を
有する一つのメモリと見做せる構造に構築されることを
特徴としたマルチプロセッサシステム。2. The multiprocessor system according to claim 1, further comprising address changing means for changing an address location of said internal memory when accessing from the side of said system bus, and addressing said plurality of processor modules of the same type. A multiprocessor system characterized in that the internal memory of each processor module is constructed through the system bus so that it can be regarded as one memory having a continuous address space by implementing by shifting the location.
ムにおいて、前記内部メモリをより小さい複数の領域に
分割し、前記アドレス変更手段は、前記領域のそれぞれ
に個別に設けられ、それぞれの前記領域が、離れたアド
レスロケーションをとり、且つシステム全体として重複
なく大きな連続領域を形成したことを特徴としたマルチ
プロセッサシステム。3. The multiprocessor system according to claim 2, wherein the internal memory is divided into a plurality of smaller areas, and the address changing means is provided individually in each of the areas, and each of the areas includes: A multiprocessor system characterized by taking large address areas apart from each other and forming a large continuous area in the entire system without duplication.
システムにおいて、プロセッサから自己のプロセッサモ
ジュール内の内部メモリを見ると、この内部メモリはア
ドレスロケーションを2つ有し、一方のアドレスロケー
ションでアクセスすると、前記アドレス変更手段とは無
関係な内部固定のアドレスとなり、他方のアドレスロケ
ーションでアクセスすると、前記連続領域のアドレス空
間のうち前記アドレス変更手段で指定した空間となるこ
とを特徴とするマルチプロセッサシステム。4. The multiprocessor system according to claim 2 or 3, wherein, when looking at the internal memory in its processor module from the processor, this internal memory has two address locations, and if one of the address locations is accessed, The multiprocessor system is characterized in that it has an internally fixed address irrelevant to the address changing unit, and when accessed at the other address location, it becomes a space designated by the address changing unit in the address space of the continuous area.
ッサシステムにおいて、前記プロセッサが、複数のプロ
セッサモジュールにまたがる連続アドレス空間上のメモ
リにアクセスするとき、前記アドレス変更手段の設定を
判定し、自己のプロセッサモジュール内のメモリロケー
ションをアクセスすると判断したときは。前記システム
バス制御回路経由でアクセスするのでなく、前記内部メ
モリとプロセッサ間の前記バスバッファを通してアクセ
スすることを特徴としたマルチプロセッサシステム。5. The multiprocessor system according to claim 2 or 3, wherein when the processor accesses a memory on a continuous address space extending over a plurality of processor modules, the setting of the address changing unit is determined. When you decide to access a memory location in your processor module. A multiprocessor system characterized by being accessed not through the system bus control circuit but through the bus buffer between the internal memory and the processor.
ムにおいて、複数の小さい領域のそれぞれに対応して設
けられた前記アドレス変更手段を、ソフトウェアで変更
するように構成したことを特徴としたマルチプロセッサ
システム。6. The multiprocessor system according to claim 3, wherein the address changing means provided corresponding to each of the plurality of small areas is configured to be changed by software. ..
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP22593391A JPH0566994A (en) | 1991-09-05 | 1991-09-05 | Multiprocessor system |
DE19924229286 DE4229286A1 (en) | 1991-09-05 | 1992-09-02 | MULTI-PROCESSOR SYSTEM |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP22593391A JPH0566994A (en) | 1991-09-05 | 1991-09-05 | Multiprocessor system |
Publications (1)
Publication Number | Publication Date |
---|---|
JPH0566994A true JPH0566994A (en) | 1993-03-19 |
Family
ID=16837173
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP22593391A Pending JPH0566994A (en) | 1991-09-05 | 1991-09-05 | Multiprocessor system |
Country Status (2)
Country | Link |
---|---|
JP (1) | JPH0566994A (en) |
DE (1) | DE4229286A1 (en) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
FR2746527B1 (en) * | 1996-03-21 | 1998-05-07 | Suisse Electronique Microtech | INFORMATION PROCESSING DEVICE COMPRISING SEVERAL PARALLEL PROCESSORS |
-
1991
- 1991-09-05 JP JP22593391A patent/JPH0566994A/en active Pending
-
1992
- 1992-09-02 DE DE19924229286 patent/DE4229286A1/en not_active Withdrawn
Also Published As
Publication number | Publication date |
---|---|
DE4229286A1 (en) | 1993-03-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP0179811B1 (en) | Interleaved set-associative memory | |
US5280598A (en) | Cache memory and bus width control circuit for selectively coupling peripheral devices | |
US7017011B2 (en) | Coherence controller for a multiprocessor system, module, and multiprocessor system with a multimodule architecture incorporating such a controller | |
JP2662603B2 (en) | Method and apparatus for filtering invalidation requests | |
JPH02186456A (en) | System and method for controlling cache of multiprocessor system | |
US6963953B2 (en) | Cache device controlling a state of a corresponding cache memory according to a predetermined protocol | |
JPH06214960A (en) | Multiprocessor system | |
KR20000036144A (en) | System and method for maintaining memory coherency in a computer system having multiple system buses | |
JP2003131946A (en) | Method and device for controlling cache memory | |
US5551000A (en) | I/O cache with dual tag arrays | |
JP4266629B2 (en) | Bus interface selection by page table attribute | |
JP2561261B2 (en) | Buffer storage access method | |
JP5439808B2 (en) | System LSI with multiple buses | |
JPH07248967A (en) | Memory control method | |
JPH0566994A (en) | Multiprocessor system | |
JPH0546473A (en) | Memory spatial expansion circuit for microprocessor | |
JPH0540694A (en) | Cache memory device | |
JPH10254775A (en) | Memory controller with shared cache memory | |
JP2573255B2 (en) | Data cache control method | |
JPH02112039A (en) | Buffer storage device | |
JP2001319470A (en) | Fifo circuit | |
JPH02226447A (en) | Computer system and memory access therefor | |
KR950013113B1 (en) | Method for the control of cache state in multi processor system | |
JPS60147861A (en) | Data processing system | |
JPS6055459A (en) | Block data transfer storage control method |