JP2906819B2 - Parallel computer and data exchange controller - Google Patents
Parallel computer and data exchange controllerInfo
- Publication number
- JP2906819B2 JP2906819B2 JP4092783A JP9278392A JP2906819B2 JP 2906819 B2 JP2906819 B2 JP 2906819B2 JP 4092783 A JP4092783 A JP 4092783A JP 9278392 A JP9278392 A JP 9278392A JP 2906819 B2 JP2906819 B2 JP 2906819B2
- Authority
- JP
- Japan
- Prior art keywords
- memory
- data
- processor
- processing element
- address
- 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 - Fee Related
Links
Landscapes
- Advance Control (AREA)
- Multi Processors (AREA)
Description
【0001】[0001]
【産業上の利用分野】この発明は、複数のプロセッシン
グエレメントを備えた並列計算機に関するものである。BACKGROUND OF THE INVENTION 1. Field of the Invention The present invention relates to a parallel computer having a plurality of processing elements.
【0002】[0002]
【従来の技術】図7は例えば「特願平3−04956
5」に示された従来の分散共有メモリ方式並列計算機を
示すシステム構成図である。図において、1はプロセッ
シングエレメント(以下、PEともいう)である。PE
は並列計算機の基本単位であり、並列計算機は任意個の
PEにより構成される。2はプロセッサ(MPU)であ
り、5は各PEに分散配置された分散共有メモリであ
る。6はシステム全体のPEを接続するシステムバスで
ある。29はPEからの出力データをバッファすると共
に転送タイミングを制御する機能を持ったFIFOレジ
スタ(以下、FIFOともいう)である。30はシステ
ム全体のデータ転送を制御するデータ転送制御用プロセ
ッサ(以下、転送用PEともいう)である。この構成に
おいて、分散配置された共有メモリは全てのPEが全て
のアドレスをアクセスできるが、同じPE内に配置され
たメモリアドレスは高速にアクセスできる。2. Description of the Related Art FIG.
5 is a system configuration diagram showing the conventional distributed shared memory type parallel computer shown in FIG. In the figure, reference numeral 1 denotes a processing element (hereinafter, also referred to as PE). PE
Is a basic unit of a parallel computer, and the parallel computer is composed of an arbitrary number of PEs. Reference numeral 2 denotes a processor (MPU), and reference numeral 5 denotes a distributed shared memory distributed to each PE. A system bus 6 connects the PEs of the entire system. Reference numeral 29 denotes a FIFO register (hereinafter, also referred to as FIFO) having a function of buffering output data from the PE and controlling transfer timing. Reference numeral 30 denotes a data transfer control processor (hereinafter, also referred to as a transfer PE) that controls data transfer of the entire system. In this configuration, in the distributed shared memory, all PEs can access all addresses, but memory addresses arranged in the same PE can be accessed at high speed.
【0003】次に動作について説明する。このシステム
においては、各PEがプログラムを実行する際に必要と
するデータは自PE内の分散共有メモリ内に置くことを
基本としている。この方針により、演算とデータの関係
が自PE内に閉じている限りは、データをシステムバス
経由でアクセスする必要がないので、メモリを高速にア
クセスできる。しかし、1つのプロセスを複数PEで分
担して実行する際にはほとんどの場合にPE間でのデー
タ交換が必要となる。このシステムでは、このデータ交
換を効率良く実行するために、専用に設けたデータ転送
制御用プロセッサ30がPE間のデータ転送を全て担当
している。まず、各PEでの演算結果を他のPEに転送
する必要が生じるとMPUはそのデータをFIFO29
に格納する。転送用PE30にはあらかじめ各PEがデ
ータをFIFOに格納する順番とそのデータの転送先が
転送用プログラムにより示されており、各演算担当PE
のMPUの動作とは非同期にデータ転送動作を実行でき
る。また、FIFO29は転送用PE30に対し要求さ
れたデータの有無を示す割り込み制御機構を備えている
ので、転送用PE30は最小限の同期オーバヘッドで転
送を行うことができる。Next, the operation will be described. In this system, data required when each PE executes a program is basically stored in a distributed shared memory in its own PE. With this policy, it is not necessary to access data via the system bus as long as the relationship between the operation and the data is closed within the own PE, so that the memory can be accessed at high speed. However, when one process is shared and executed by a plurality of PEs, data exchange between the PEs is required in most cases. In this system, a dedicated data transfer control processor 30 is in charge of all data transfer between PEs in order to efficiently execute this data exchange. First, when it becomes necessary to transfer the operation result in each PE to another PE, the MPU transfers the data to the FIFO 29.
To be stored. In the transfer PE 30, the order in which each PE stores data in the FIFO and the transfer destination of the data are indicated in advance by the transfer program.
Can perform a data transfer operation asynchronously with the operation of the MPU. Further, since the FIFO 29 has an interrupt control mechanism for indicating the presence or absence of the requested data to the transfer PE 30, the transfer PE 30 can perform the transfer with the minimum synchronous overhead.
【0004】このシステムを従来の集中配置型共有メモ
リ+キャッシュ方式(以下、集中方式と呼ぶ)と比較す
ると、集中方式ではPE間のデータ転送にキャッシュか
らメモリへの書き戻しと、メモリからキャッシュへの書
き込みの2回のバス上のデータ転送が必要となってい
た。また、集中方式では各PEの演算にデータが必要に
なってからメモリからキャッシュへの転送が発生するた
めに転送タイミングが固定的で、転送動作が競合する可
能性が高く、その競合が直接演算の待ちにつながってい
た。それに対し、ここに示した分散共有メモリ方式では
データ転送の回数が半分になると共に、データ転送のタ
イミングの自由度が向上し、実質的なバス性能が向上す
る。When this system is compared with the conventional centralized arrangement type shared memory + cache system (hereinafter referred to as a centralized system), in the centralized system, data transfer between PEs is performed by writing back from the cache to the memory and from the memory to the cache. It is necessary to transfer data on the bus twice for writing data. In the centralized system, the transfer from the memory to the cache occurs after the data is required for the operation of each PE. Therefore, the transfer timing is fixed, and there is a high possibility that the transfer operation conflicts. Was waiting for. On the other hand, in the distributed shared memory system shown here, the number of data transfers is halved, the degree of freedom in data transfer timing is improved, and the actual bus performance is improved.
【0005】[0005]
【発明が解決しようとする課題】従来の分散共有メモリ
方式並列計算機におけるデータ転送制御プロセッサ方式
では、転送動作のためには各アプリケーションごとに専
用のデータ転送用プログラムが必要であり、プログラム
設計が複雑になるという問題と、データ転送用プログラ
ムを作成するために、あらかじめスタティックに負荷分
散法を定義しておく必要があり、実行中のダイナミック
な負荷分散が困難であるという問題があった。In the conventional data transfer control processor system in the distributed shared memory system parallel computer, a dedicated data transfer program is required for each application for the transfer operation, and the program design is complicated. In addition, there is a problem that it is necessary to statically define a load distribution method in advance in order to create a data transfer program, and that dynamic load distribution during execution is difficult.
【0006】この発明は、並列計算機におけるPE間の
負荷分散によるデータ転送先のアドレス指定をアドレス
マッピング方式により行い、更にメモリの一部をブロー
ドキャスト領域として用いることにより、コンパイラの
設計を容易にし、また、アプリケーションプログラムの
設計における複雑さを低減することを目的としている。The present invention facilitates the design of a compiler by designating an address of a data transfer destination by a load distribution among PEs in a parallel computer by an address mapping method and further using a part of a memory as a broadcast area. It aims to reduce the complexity in designing application programs.
【0007】また、この発明はブロードキャスト手段と
非同期アクセス手段を備えたデータ交換制御装置の実現
可能な方式を得ることを目的としている。Another object of the present invention is to provide a system which can realize a data exchange control device having a broadcast unit and an asynchronous access unit.
【0008】[0008]
【課題を解決するための手段】この発明に係る並列計算
機は、データ処理を行なうプロセッサを有する複数のプ
ロセッシングエレメントを有し、データを記憶する複数
のメモリを上記複数のプロセッシングエレメントにそれ
ぞれ配置して、配置した各メモリを他のプロセッシング
エレメントと共有する分散共有メモリとして使用する並
列計算機において、 各プロセッシングエレメントは、 デ
ータが配置される分散共有メモリのデータ領域に対しア
ドレスマッピングを行うアドレスマッピング手段と、 上
記アドレスマッピング手段によりマッピングされる分散
共有メモリのデータ領域の特定の領域を各プロセッシン
グエレメントに共通のブロードキャスト領域として扱う
ブロードキャスト手段と、 上記アドレスマッピング手段
およびブロードキャスト手段に基づく自プロセッシング
エレメント内および他プロセッシングエレメント内のプ
ロセッサのメモリアクセス要求を受けて、その要求に対
応する実際のメモリアクセスを要求元のプロセッサの命
令実行動作とは非同期に実行する非同期アクセス手段と
を有するとともに、 上記並列計算機は、 上記ブロードキ
ャスト領域として、各プロセッシングエレメントに配置
された各メモリの特定の領域を各プロセッシングエレメ
ント毎にそれぞれ物理的に確保し、 上記ブロードキャス
ト領域に対する書き込みは、上記各プロセッシングエレ
メント毎にそれぞれ物理的に確保された各メモリの特定
の領域に対して各非同期アクセス手段によりそれぞれ行
われ、 上記ブロードキャスト領域に対する読み出しは、
読み出しを行なうプロセッシングエレメント毎にそれぞ
れで物理的に確保されたメモリの特定の領域に対して該
プロセッシングエレメントの非同期アクセス手段により
行われることを特徴とする。 A parallel computer according to the present invention includes a plurality of processing elements having a processor for performing data processing, and a plurality of processing elements for storing data.
Memory to multiple processing elements
Each memory is allocated to other processing.
Normally used as a distributed shared memory shared with elements
In column computer, each processing element, de
Data to the data area of the distributed shared memory where
Address mapping means for performing dress mapping ;
Distribution mapped by the address mapping means
A specific area of the shared memory data area is assigned to each processor.
Group as a common broadcast area
Broadcasting means and the address mapping means
Processing based on broadcast and broadcast means
Within the element and other processing elements.
Receives a memory access request from the processor and responds to the request.
Request the actual memory access
Command execution operation and asynchronous access means to execute asynchronously
And the parallel computer has the broad key
Placed on each processing element as a custom area
A specific area of each processed memory to each processing element.
Physically secured for each broadcast and the broadcast
Writing to the flash memory area is performed by the processing elements described above.
Identification of each physically reserved memory for each element
For each area by each asynchronous access means
The reading from the broadcast area is
Each processing element for reading
The specified area of the physically secured memory is
By the asynchronous access means of the processing element
It is characterized by being performed.
【0009】また、この発明に係るデータ交換制御装置
は、以下の要素を有するものである。 (a)自プロセッシングエレメントのプロセッサからの
メモリアクセス要求を受け、ブロードキャストアクセス
要求か否かを判断してアドレスマッピングを行なうとと
もに、プロセッサと非同期にメモリアクセス要求を完了
させる自プロセッシングエレメントマスタ要求制御手
段、(b)他プロセッシングエレメントのプロセッサか
らのメモリアクセス要求を受け、ブロードキャストアク
セス要求か否かを判断してアドレスマッピングを行なう
とともに、プロセッサと非同期にメモリアクセス要求を
完了させる他プロセッシングエレメントマスタ要求制御
手段、(c)上記自プロセッシングエレメントマスタ要
求制御手段及び他プロセッシングエレメントマスタ要求
制御手段によるデータ転送路経由のデータ交換を制御す
る通信制御手段。A data exchange control device according to the present invention has the following elements. (A) a self-processing element master request control means for receiving a memory access request from a processor of the self-processing element, determining whether or not the request is a broadcast access request, performing address mapping, and completing the memory access request asynchronously with the processor; (B) another processing element master request control means for receiving a memory access request from a processor of another processing element, determining whether the request is a broadcast access request, performing address mapping, and completing the memory access request asynchronously with the processor; (C) Communication control means for controlling data exchange via the data transfer path by the own processing element master request control means and the other processing element master request control means.
【0010】[0010]
【作用】この発明における並列計算機は、各PEへのデ
ータ分割をアドレスマッピングにより制御する。また、
配列など論理アドレス上は一つにまとまったデータを複
数のPEに分割する場合には、メモリ上に置いたブロー
ドキャスト領域にマッピングすることにより、データ分
割の変更によるアドレスマッピングの変更が発生しな
い。たとえば、各PE内に分散配置された共有メモリの
メモリアドレスが、PEアドレスを含む上位アドレスと
オフセットアドレスを用いた下位アドレスで表されるよ
うなシステムにおいて、各PEを示すそれぞれのPEア
ドレスの他にあらかじめ定めた特定の1つのPEアドレ
スをブロードキャストアドレスとして認識することによ
り、アドレスマッピング機能と組み合わせてブロードキ
ャスト機能を実現する。The parallel computer according to the present invention controls the data division to each PE by address mapping. Also,
In the case of dividing one set of data on a logical address such as an array into a plurality of PEs, by mapping the data to a broadcast area placed on a memory, a change in address mapping due to a change in data division does not occur. For example, in a system in which the memory address of the shared memory distributed in each PE is represented by an upper address including the PE address and a lower address using the offset address, each of the PE addresses indicating each PE is added. The broadcast function is realized by recognizing one specific PE address determined in advance as a broadcast address in combination with the address mapping function.
【0011】また、この発明におけるデータ交換制御装
置は、上記ブロードキャスト手段と非同期アクセス手段
を実現するためのもので、プロセッサからのアクセス要
求の制御およびデータ交換制御装置間の通信制御を自分
のプロセッサの演算動作と非同期に行うとともに、ブロ
ードキャストアクセス要求か否かを判断して、ブロード
キャストアクセス要求のための通信制御およびメモリア
クセスを行なう。The data exchange control device according to the present invention realizes the broadcast means and the asynchronous access means, and controls the access request from the processor and the communication control between the data exchange control devices of its own processor. performs the arithmetic operation asynchronously, it is determined whether a broadcast access request, the communication control and Memoria for broadcast access request
Access .
【0012】[0012]
実施例1.以下、この発明の一実施例を図について説明
する。図1において、1はプロセッシングエレメント
(PE)で、ここでは4個のPEが記載されているが、
実際には任意個数のPEで並列計算機が構成される。ま
た、各PEはそれぞれ以下の2から5の要素で構成され
る。2はプロセッサ(MPU)である。3はメモリ管理
ユニット(MMU)で論理アドレスから物理アドレスへ
のアドレス変換を担当する。4はデータ交換制御装置
(DXU)でメモリアクセスの制御を全て担当する。5
は分散共有メモリである。分散共有メモリは計算機シス
テム全体で1つのリニアな物理アドレスを持つ共有メモ
リである。しかし、各PEに分散して配置されているた
め、ローカルメモリ的な性質を兼ね備えており、各MP
Uにとって、自PE内のメモリは他のPEのメモリより
高速にアクセスできる。6はシステムバスで並列計算機
内の全てのPEを接続する。本システムではDXU4が
このシステムバスと接続されている。Embodiment 1 FIG. An embodiment of the present invention will be described below with reference to the drawings. In FIG. 1, reference numeral 1 denotes a processing element (PE), in which four PEs are described,
Actually, a parallel computer is composed of an arbitrary number of PEs. Each PE is composed of the following 2 to 5 elements. 2 is a processor (MPU). Reference numeral 3 denotes a memory management unit (MMU) which performs address conversion from a logical address to a physical address. Reference numeral 4 denotes a data exchange control unit (DXU) which controls all memory accesses. 5
Is a distributed shared memory. The distributed shared memory is a shared memory having one linear physical address in the entire computer system. However, since it is distributed in each PE, it has the property of a local memory, and each MP
For U, the memory in its own PE can be accessed faster than the memory in other PEs. A system bus 6 connects all the PEs in the parallel computer. In the present system, the DXU 4 is connected to this system bus.
【0013】次に図2はDXU4の内部構成を示すブロ
ック図である。7は自分のPE内のマスタ(MPU2お
よびMMU3)からのアクセス要求に伴なう制御を担当
する自PEマスタ要求制御部である。8は同じく他のP
Eのマスタからのアクセス要求を制御する他PEマスタ
要求制御部である。9はアクセス要求の種類によってそ
の優先度の判断をする優先度制御部である。10は自分
のPE内の分散共有メモリ5を実際にアクセスするメモ
リアクセス制御部である。11はバスを経由したDXU
間通信を制御するDXU間通信制御部である。これらは
内部に適宜バッファを持つ。また、自PEマスタ要求制
御部7、他PEマスタ要求制御部8、DXU間通信制御
部11は、自分のPE内のマスタ(MPU2およびMM
U3)及び他のPEのマスタと非同期に動作するように
設計されている。FIG. 2 is a block diagram showing the internal configuration of the DXU 4. As shown in FIG. Reference numeral 7 denotes a self-PE master request control unit which is in charge of control accompanying an access request from a master (MPU 2 and MMU 3) in its own PE. 8 is another P
This is another PE master request control unit that controls an access request from the master of E. Reference numeral 9 denotes a priority control unit that determines the priority according to the type of the access request. Reference numeral 10 denotes a memory access control unit that actually accesses the distributed shared memory 5 in its own PE. 11 is DXU via bus
DXU communication control unit for controlling inter-communication. These have an appropriate buffer inside. In addition, the own PE master request control unit 7, the other PE master request control unit 8, and the DXU communication control unit 11 transmit the master (MPU2 and MM) in their own PE.
U3) and is designed to operate asynchronously with the masters of other PEs.
【0014】次に動作について説明する。まず、図1の
4個のPEがひとまとまりの処理を分担する場合につい
て説明する。この場合に論理アドレス空間はシステム全
体で1つである。各MPUはそれぞれ独自のMMUを持
っているがそのアドレスマッピングテーブルはOSより
システム全体で一元的に管理されている。このOSによ
り管理されるアドレスマッピングテーブルはプロセスの
起動前に設定したものを実行中固定的に使用してもよい
し、プロセスの実行中にダイナミックスケジューリング
に伴い変更しても良い。Next, the operation will be described. First, a case where four PEs in FIG. 1 share a group of processes will be described. In this case, there is one logical address space in the whole system. Each MPU has its own MMU, but its address mapping table is centrally managed by the OS from the entire system. The address mapping table managed by the OS may be fixedly used during the execution of the process, or may be changed during the execution of the process according to the dynamic scheduling.
【0015】メモリは分散配置されているが、共有メモ
リなので、図3に示すように論理アドレス空間12の各
領域はそれぞれ物理アドレス空間13のどこかの領域に
1対1に割り当てられる。この方式において、たとえ
ば、「論理アドレス空間でのアドレス」15はインデッ
クス番号(上位アドレス)とオフセットアドレス(下位
アドレス)で構成される。MMUはこの「論理アドレス
空間でのアドレス」15のインデックス番号をページ番
号に変換することにより、「物理アドレス空間でのアド
レス」16を生成する。この「物理アドレス空間でのア
ドレス」16におけるページ番号は、たとえば、PE番
号とページ番号から構成することもでき、このようにP
E番号とページ番号から上位アドレスを構成することに
より、「分散配置された物理アドレス空間でのアドレ
ス」17が構成できる。PE番号は、PEのアドレスを
示すものであり、たとえば、4個のPEがある場合、P
E番号(PEアドレスともいう)は、“00”、“0
1”、“10”、“11”を用いることができる。この
ように、物理アドレスの上位ビットはPEを特定するP
Eアドレスとして使われる。したがって、全てのMPU
は特定のデータが自PEの物理アドレス空間に割り当て
られているか他PEの物理アドレス空間に割り当てられ
ているかを意識する必要はなく、どちらの場合でも自由
にアクセスすることができる。但し、アクセス速度は異
なるので従来方式同様に必要なデータをなるべく自PE
の領域に置くようにする。Although the memories are arranged in a distributed manner, since the memories are shared memories, each area of the logical address space 12 is assigned to one of the areas of the physical address space 13 on a one-to-one basis as shown in FIG. In this method, for example, "address in logical address space" 15 is composed of an index number (upper address) and an offset address (lower address). The MMU generates an “ address in the physical address space” 16 by converting the index number of the “address in the logical address space” 15 into a page number. The page number in the “address in the physical address space” 16 can be composed of, for example, a PE number and a page number.
By composing the upper address from the E number and the page number, the “address in the distributed physical address space” 17 can be composed. The PE number indicates the address of the PE. For example, when there are four PEs, P
E number (also called PE address) is “00”, “0”
1 "," 10 ", and" 11 "As described above, the upper bits of the physical address are assigned to the P specifying the PE.
Used as E address. Therefore, all MPU
Does not need to be aware of whether specific data is allocated to the physical address space of its own PE or to the physical address space of another PE, and can freely access in either case. However, since the access speed is different, necessary data should be
In the area.
【0016】まず、プロセスの実行を通して常に特定の
PEだけに係わるデータはそのPEのメモリにマッピン
グする。問題はプロセスの実行中にPE間で大規模なデ
ータ交換を行わざるを得ない場合の対処法である。その
様な例を図4に示す。これは配列データに対する演算で
ある。まず、配列Aに対して処理1を実行する場合に図
に示すように行単位に分割して各PEに割り当てたとす
る。ここでアクセスを高速化するために処理の分割と同
様に配列データも行単位に各PEに割り当てると処理1
の実行中は互いにデータ交換の必要なく処理を実行でき
る。次にこの処理の結果として配列Bができる。この場
合にデータはB−1のように各PEの分散共有メモリに
分割されている。ここで次の処理2がこの配列のデータ
をB−2のように分割して各PEで処理する必要がある
場合にPE間で大規模なデータ交換が発生する。First, data relating to only a specific PE throughout the execution of the process is mapped to the memory of that PE. The problem is how to handle large-scale data exchange between PEs during the execution of the process. FIG. 4 shows such an example. This is an operation on array data. First, it is assumed that when the process 1 is performed on the array A, the data is divided into rows and allocated to each PE as shown in the figure. Here, in order to speed up access, array data is allocated to each PE in units of rows as in the case of processing division.
Can be performed without the need for data exchange. Next, array B is created as a result of this processing. In this case, the data is divided into the distributed shared memories of the PEs as indicated by B-1. Here, when the next processing 2 needs to divide the data of this array as shown in B-2 and process it in each PE, large-scale data exchange occurs between the PEs.
【0017】この様な場合について、PE間データ交換
を高速に実行する方法と、配列A、配列B、配列Cなど
を各PEに分割する際のアドレスマッピング法を以下に
説明する。まず、図3に示すように、PEが4個ある場
合を例にPE間データ交換を高速に実行する方法を説明
する。「処理1」が演算結果を順次出力する際に配列B
−1のように出力するのではなく、次の「処理2」に合
わせて分割された配列B−2のように直接出力する。す
なわち、処理1の出力として、PE1は、データX11
をPE1の分散共有メモリに出力し、データX12をP
E2の分散共有メモリに直接出力し、データX13をP
E3の分散共有メモリに直接出力し、データX14をP
E4の分散共有メモリに直接出力する。同様に、PE2
は、データX21をPE1の分散共有メモリに出力し、
データX22をPE2の分散共有メモリに直接出力し、
データX23をPE3の分散共有メモリに直接出力し、
データX24をPE4の分散共有メモリに直接出力す
る。以下、データX31〜X44についても同様であ
る。その結果、データ転送は次の処理にデータが必要に
なってからではなく、前の処理が終わったらすぐに、前
倒しに転送することができる。また、この時DXUの各
制御部はMPUと非同期に動作する機能を持っているの
で、バスネックによる転送待ちが発生しても、それが直
ちにMPUのオーバヘッドにはならない。その結果、バ
スのデータ転送性能が実質的に向上する。In such a case, a method for executing the data exchange between PEs at a high speed and an address mapping method for dividing the array A, the array B, the array C, etc. into each PE will be described below. First, as shown in FIG. 3, when there are four PEs,
How to perform a focus inter-PE data exchange at high speed will be described. Array B when "Process 1" sequentially outputs the operation results
Instead of being output as −1, it is directly output as an array B-2 divided according to the next “processing 2”. That is, as an output of the processing 1, the PE1 stores the data X11
Is output to the distributed shared memory of PE1, and data X12 is
E2 is directly output to the distributed shared memory, and data X13 is
E3 is directly output to the distributed shared memory, and data X14 is
Output directly to the E4 distributed shared memory. Similarly, PE2
Outputs data X21 to the distributed shared memory of PE1,
Output data X22 directly to the distributed shared memory of PE2,
Output data X23 directly to the distributed shared memory of PE3,
Data X24 is directly output to the distributed shared memory of PE4. Hereinafter, the same applies to the data X31 to X44. As a result, the data can be forwarded immediately after the previous processing is completed, not when data is needed for the next processing. At this time, since each control unit of the DXU has a function of operating asynchronously with the MPU, even if a transfer wait occurs due to a bus neck, this does not immediately become an overhead of the MPU. As a result, the data transfer performance of the bus is substantially improved.
【0018】次に図5に示すように、PEアドレスが4
個分あってPEが3個ある場合を例に、配列を各PEに
分割する際のアドレスマッピング法を説明する。このよ
うに、以下に示す方式では実際のPE数より1個多いP
Eアドレスが必要である。一般的に配列は論理アドレス
上では一塊に配置される。これを複数のPEに分割する
のに、ここに示す方式では論理アドレスから物理アドレ
スへのアドレスマッピングを利用する。しかし、このア
ドレスマッピングはページ単位で行われるため希望する
分割法を実現するのは容易ではなく、論理アドレス上で
あらかじめ特殊な配置をするなどの工夫が必要となる。
この様な問題を解決するため、このシステムではメモリ
にブロードキャスト領域を導入する。まず、論理アドレ
ス上の特定領域をブロードキャスト領域と定義し、コン
パイラなどが配列をこの領域に配置することでOS等に
対してこの配列を物理的に各PEの分散共有メモリにブ
ロードキャストすることを指定する。このアドレスとし
て、本実施例では4個目のPEアドレス、すなわち、
“11”を割り当てるものとする。MMUにより論理ア
ドレスをリニアな物理アドレスにマッピングする際に、
このブロードキャスト領域だけはPEアドレスが固定で
同じPEアドレス“11”にマッピングされる。ただし
ページアドレスは一般領域と競合しない範囲で自由にマ
ッピングできる。更に図に示すように物理アドレス上の
この領域はDXUの機能により、実際の物理メモリに対
しては全PEの同じページに同時にマッピングされる。Next, as shown in FIG.
An address mapping method for dividing an array into each PE will be described by taking an example where there are three PEs. This
Thus, in the method shown below, P which is one more than the actual number of PEs
E-address required. In general, arrays are arranged in blocks on logical addresses. To divide this into a plurality of PEs, the method shown here uses address mapping from logical addresses to physical addresses. However, since this address mapping is performed on a page basis, it is not easy to realize a desired division method, and it is necessary to devise a special arrangement in advance on a logical address.
In order to solve such a problem, this system introduces a broadcast area in a memory. First, a specific area on a logical address is defined as a broadcast area, and a compiler or the like assigns an array in this area, and specifies that this array is physically broadcast to the OS or the like to the distributed shared memory of each PE. I do. As this address, in this embodiment, the fourth PE address, that is,
It is assumed that “11” is assigned. When mapping a logical address to a linear physical address using the MMU,
Only the broadcast area has a fixed PE address.
It is mapped to the same PE address “11”. However, the page address can be freely set as long as it does not conflict with the general area.
You can ping. Further, as shown in the figure, this area on the physical address is simultaneously mapped to the same page of all PEs with respect to the actual physical memory by the function of the DXU.
【0019】この機能を実現するDXUの動作を具体的
に説明する。図5はPEが3個ある場合のアドレスマッ
ピングを示す図であり、各PE内のメモリアドレスは図
3の17に示したようにPE番号(PEアドレス)が異
なるだけで、ページ番号、オフセットアドレス(下位ア
ドレス)は全く同様に設定されているものとする。DX
UはこのPEアドレスを判断して自分の担当メモリであ
れば行動を起こす。特定のPEアドレス、例えば、“1
1”を持つアドレスをブロードキャストアドレスと定義
し、このアドレスの場合は全DXUがアクセス動作を起
こし、このブロードキャスト領域への書き込みを各PE
の分散共有メモリのブロードキャストアドレスのページ
及びオフセットアドレスと同じアドレスへの書き込みと
する(書き込みの場合)。これによってブロードキャス
トができる。但し、このPEアドレスに対する読み出し
を命令された場合は自PE内でローカルに処理する。す
なわちブロードキャスト領域に割り当てられた配列など
に対して、書き込みは全PEの分散共有メモリに行わ
れ、読み出しは自分の分散共有メモリから行なう。な
お、論理アドレス割り付け時に、PEアドレスを11と
することによってOSに対してブロードキャスト要求の
意思表示を行うことができることを示したが、PEがど
れだけ増えてもブロードキャスト領域の最大容量は各P
Eの最大メモリ量と等しく一定なのでこの方式で対応で
きる。また、この方式では書き込み動作は直ちに全メモ
リに反映されるのでコヒーレンシが保たれる。また、ア
クセスの種類についての優先度付けを定義することによ
りコヒーレンシの質を高く保ち、また、性能を向上させ
ることができる。The operation of the DXU for realizing this function will be specifically described. FIG. 5 is a diagram showing address mapping when there are three PEs, and the memory addresses in each PE have different PE numbers (PE addresses) as shown at 17 in FIG.
It is assumed that the page number and the offset address (lower address) are set exactly the same. DX
U determines this PE address and takes action if it is its own memory. A specific PE address, for example, “1”
An address having "1" is defined as a broadcast address. In the case of this address, all DXUs perform an access operation and write to this broadcast area is performed by each PE.
Distributed Shared Memory Broadcast Address Page
And writing to the same address as the offset address (in the case of writing). This allows broadcasting. However, when a command to read the PE address is issued, the processing is performed locally in the own PE. That is, writing to the array or the like assigned to the broadcast area is performed in the distributed shared memory of all PEs, and reading is performed from its own distributed shared memory. It has been shown that when the logical address is assigned, the broadcast address can be indicated to the OS by setting the PE address to 11. However, the maximum capacity of the broadcast area is limited to each P regardless of how many PEs increase.
Since it is constant and equal to the maximum memory amount of E, this method can be used. Also, in this method, the write operation is immediately reflected in all memories, so that coherency is maintained. In addition, by defining priorities for the types of access, the quality of coherency can be kept high and the performance can be improved.
【0020】実施例2.なお、DXUにバッファを設け
ることにより、非同期アクセスの機能がより向上し、さ
らに自由度を高めることができる。Embodiment 2 FIG. By providing a buffer in the DXU, the function of asynchronous access can be further improved, and the degree of freedom can be further increased.
【0021】実施例3. また、このブロードキャスト領域は論理アドレス空間で
の領域割り付けにより0からシステムの全領域までペー
ジ単位でその適応範囲を変更することができる。Embodiment 3 FIG. This broadcast area is a logical address space.
It may change its application range in page units by the region assignment from 0 to a total area of the system.
【0022】実施例4.また、上記実施例では、PEが
4個又は3個の場合を示したが、その数に制限はない。Embodiment 4 FIG. In the above embodiment, the case where the number of PEs is four or three is described, but the number is not limited.
【0023】実施例5.次に複数のプロセスが同時に走
る場合について説明する。この場合は論理アドレス空間
が複数存在し、それが一つの物理アドレス空間にマッピ
ングされる。これはアドレスマッピングテーブルをその
様に作成するだけで、シングルプロセスの場合とまった
く同様に扱うことができる。Embodiment 5 FIG. Next, a case where a plurality of processes run simultaneously will be described. In this case, there are a plurality of logical address spaces, which are mapped to one physical address space. This can be handled in exactly the same way as for a single process, just by creating an address mapping table in that way.
【0024】実施例6.上記実施例1では並列計算機全
体を1本のシステムバスで接続した場合について説明し
たが、図6に示すように複数のバスに分割して接続され
ていても良い。これは前述の「特願平3−04956
5」で示されている多重クラスタバスを用いた並列計算
機の構成図である。実施例1で示した方式は、図6のよ
うにシステム内に複数のクラスタが形成された場合にも
適用することができる。アドレスマッピングテーブルは
システム全体を通して一元的に管理し、各プロセスをそ
れぞれ1つのクラスタ内に閉じるように割り付ける。こ
のようにするとブロードキャストアクセス要求の適用範
囲を物理的にクラスタ内に制限できるので、各クラスタ
ごとに同じオフセット領域を別の配列の格納に利用でき
る。また、バス負荷を低減できるという利点もある。Embodiment 6 FIG. In the first embodiment, the case where the entire parallel computers are connected by one system bus has been described. However, as shown in FIG. 6, the parallel computers may be divided and connected to a plurality of buses. This is described in the above-mentioned “Japanese Patent Application No. Hei 3-04956.
FIG. 5 is a configuration diagram of a parallel computer using a multiple cluster bus indicated by No. 5; The method described in the first embodiment can be applied to a case where a plurality of clusters are formed in the system as shown in FIG. The address mapping table is centrally managed throughout the system, and each process is allocated so as to be closed in one cluster. In this way, the applicable range of the broadcast access request can be physically limited within the cluster, so that the same offset area can be used for storing another array for each cluster. Another advantage is that the bus load can be reduced.
【0025】[0025]
【発明の効果】以上のように、この発明によれば並列計
算機において各PEにデータを分割する場合のアドレス
指定をアドレスマッピングにより行うようにし、かつ、
ブロードキャスト機能を設けたので、配列のような論理
アドレス上ではひとかたまりのものとして扱われるデー
タを複数のPEに分割する場合に、プログラム設計時に
そのデータを格納する変数をブロードキャスト変数とし
て指定するだけで任意の分割に対応でき、また、実行時
にダイナミックにデータ分割を変更することもできると
いう効果がある。また、上記に加えてDXUがMPUと
非同期にデータ転送動作を実行するように構成したの
で、従来同様転送の自由度を保持し、バスの実効的な性
能を高く保つことができる。As described above, according to the present invention, in the case of dividing data into PEs in a parallel computer, address designation is performed by address mapping, and
A broadcast function is provided, so if data that is treated as a group on a logical address such as an array is divided into multiple PEs, any variable that stores that data can be specified only as a broadcast variable when designing a program. And the data division can be dynamically changed at the time of execution. Further, in addition to the above, since the DXU is configured to execute the data transfer operation asynchronously with the MPU, it is possible to maintain the degree of freedom of the transfer and to keep the effective performance of the bus high as in the conventional case.
【図1】この発明の一実施例による並列計算機のシステ
ム構成図である。FIG. 1 is a system configuration diagram of a parallel computer according to an embodiment of the present invention.
【図2】この発明の一実施例におけるデータ交換制御装
置の構成図である。FIG. 2 is a configuration diagram of a data exchange control device according to an embodiment of the present invention.
【図3】この発明の一実施例におけるアドレスマッピン
グを示す説明図である。FIG. 3 is an explanatory diagram showing address mapping in one embodiment of the present invention.
【図4】この発明が課題としているPE間のデータ交換
を示す説明図である。FIG. 4 is an explanatory diagram showing data exchange between PEs, which is an object of the present invention.
【図5】この発明の一実施例におけるブロードキャスト
領域のマッピング法を示す説明図である。FIG. 5 is an explanatory diagram showing a broadcast area mapping method according to an embodiment of the present invention.
【図6】従来の並列計算機のシステム構成図であり、こ
の発明の適用可能な一実施例を示す並列計算機のシステ
ム構成図でもある。FIG. 6 is a system configuration diagram of a conventional parallel computer, and is also a system configuration diagram of a parallel computer showing one embodiment to which the present invention can be applied.
【図7】従来の並列計算機のシステム構成図である。FIG. 7 is a system configuration diagram of a conventional parallel computer.
1 プロセッシングエレメント(PE) 2 プロセッサ(MPU) 3 メモリ管理ユニット(MMU) 4 データ交換制御装置(DXU) 5 分散共有メモリ 6 システムバス 7 自PEマスタ要求制御部 8 他PEマスタ要求制御部 9 優先度制御部 10 メモリアクセス制御部 11 DXU間通信制御部 DESCRIPTION OF SYMBOLS 1 Processing element (PE) 2 Processor (MPU) 3 Memory management unit (MMU) 4 Data exchange control unit (DXU) 5 Distributed shared memory 6 System bus 7 Own PE master request control unit 8 Other PE master request control unit 9 Priority Control unit 10 Memory access control unit 11 Inter-DXU communication control unit
───────────────────────────────────────────────────── フロントページの続き (58)調査した分野(Int.Cl.6,DB名) G06F 15/16 645 G06F 9/38 370 G06F 15/177 682 ──────────────────────────────────────────────────続 き Continued on the front page (58) Field surveyed (Int.Cl. 6 , DB name) G06F 15/16 645 G06F 9/38 370 G06F 15/177 682
Claims (2)
複数のプロセッシングエレメントを有し、データを記憶
する複数のメモリを上記複数のプロセッシングエレメン
トにそれぞれ配置して、配置した各メモリを他のプロセ
ッシングエレメントと共有する分散共有メモリとして使
用する並列計算機において、 各プロセッシングエレメントは、 データが配置される分散共有メモリのデータ領域に対し
アドレスマッピングを行うアドレスマッピング手段と、 上記アドレスマッピング手段によりマッピングされる分
散共有メモリのデータ領域の特定の領域を各プロセッシ
ングエレメントに共通のブロードキャスト領域として扱
うブロードキャスト手段と、 上記アドレスマッピング手段およびブロードキャスト手
段に基づく自プロセッシングエレメント内および他プロ
セッシングエレメント内のプロセッサのメモリアクセス
要求を受けて、その要求に対応する実際のメモリアクセ
スを要求元のプロセッサの命令実行動作とは非同期に実
行する非同期アクセス手段とを有するとともに、 上記並列計算機は、 上記ブロードキャスト領域として、各プロセッシングエ
レメントに配置された各メモリの特定の領域を各プロセ
ッシングエレメント毎にそれぞれ物理的に確保し、 上記ブロードキャスト領域に対する書き込みは、上記各
プロセッシングエレメント毎にそれぞれ物理的に確保さ
れた各メモリの特定の領域に対して各非同期アクセス手
段によりそれぞれ行われ、 上記ブロードキャスト領域に対する読み出しは、読み出
しを行なうプロセッシングエレメント毎にそれぞれで物
理的に確保されたメモリの特定の領域に対して該プロセ
ッシングエレメントの非同期アクセス手段により行われ
ることを特徴とする並列計算機。 A plurality of processing elements having a processor for performing data processing , and storing data;
A plurality of memories to be processed by the plurality of processing elements.
On each memory, and allocate each allocated memory to other processes.
Used as distributed shared memory shared with the
In the parallel computer used, each processing element is assigned to the data area of the distributed shared memory where the data is located.
An address mapping means for performing address mapping, minutes mapped by the address mapping means
A specific area of the shared memory data area is assigned to each processor.
As a common broadcast area for
Broadcasting means, the address mapping means and the broadcasting means.
Step-based self-processing elements and other processes
Processor memory access in the processing element
When a request is received, the actual memory access
Is executed asynchronously with the instruction execution operation of the requesting processor.
Which has a asynchronous access means for rows, the parallel computer, as the broadcast area, the processing error
A specific area of each memory located in the
Each physical element is physically secured, and writing to the broadcast area is
Physically reserved for each processing element
Each asynchronous access to a specific area of
Performed respectively by stage, reading from the broadcast region, read out
For each processing element that performs
The process for a specific area of physically secured memory.
By the asynchronous access means of the
A parallel computer characterized by the following.
列計算機に用いられるデータ交換制御装置 (a)自プロセッシングエレメントのプロセッサからの
メモリアクセス要求を受け、ブロードキャストアクセス
要求か否かを判断してアドレスマッピングを行なうとと
もに、プロセッサと非同期にメモリアクセス要求を完了
させる自プロセッシングエレメントマスタ要求制御手
段、 (b)他プロセッシングエレメントのプロセッサからの
メモリアクセス要求を受け、ブロードキャストアクセス
要求か否かを判断してアドレスマッピングを行なうとと
もに、プロセッサと非同期にメモリアクセス要求を完了
させる他プロセッシングエレメントマスタ要求制御手
段、 (c)上記自プロセッシングエレメントマスタ要求制御
手段及び他プロセッシングエレメントマスタ要求制御手
段によるデータ転送路経由のデータ交換を制御する通信
制御手段。2. A parallel first of claims have the following elements
Data exchange control device used for column computer (a) Receives a memory access request from the processor of its own processing element, determines whether it is a broadcast access request, performs address mapping, and completes the memory access request asynchronously with the processor. (B) receiving a memory access request from a processor of another processing element, determining whether the request is a broadcast access request, performing address mapping, and completing the memory access request asynchronously with the processor. The other processing element master request control means, and (c) the data transfer path by the own processing element master request control means and the other processing element master request control means. Communication control means for controlling the data exchange.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP4092783A JP2906819B2 (en) | 1992-04-13 | 1992-04-13 | Parallel computer and data exchange controller |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP4092783A JP2906819B2 (en) | 1992-04-13 | 1992-04-13 | Parallel computer and data exchange controller |
Publications (2)
Publication Number | Publication Date |
---|---|
JPH05290000A JPH05290000A (en) | 1993-11-05 |
JP2906819B2 true JP2906819B2 (en) | 1999-06-21 |
Family
ID=14064021
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP4092783A Expired - Fee Related JP2906819B2 (en) | 1992-04-13 | 1992-04-13 | Parallel computer and data exchange controller |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2906819B2 (en) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2003006177A (en) * | 1995-03-14 | 2003-01-10 | Mitsubishi Electric Corp | Distributed shared memory monitoring device, distributed shared memory network tracking device and distributed shared memory network setting supporting device |
JP3661235B2 (en) * | 1995-08-28 | 2005-06-15 | 株式会社日立製作所 | Shared memory system, parallel processor and memory LSI |
JP5241384B2 (en) | 2008-08-29 | 2013-07-17 | ルネサスエレクトロニクス株式会社 | Distributed shared memory multiprocessor and data processing method |
CN103152394B (en) | 2013-02-06 | 2016-09-28 | 华为技术有限公司 | Data access arrangement, internal memory share equipment and method for reading data |
JP2019079175A (en) * | 2017-10-23 | 2019-05-23 | 日本電気株式会社 | Information processing system and control method by information processing system |
-
1992
- 1992-04-13 JP JP4092783A patent/JP2906819B2/en not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JPH05290000A (en) | 1993-11-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US5940870A (en) | Address translation for shared-memory multiprocessor clustering | |
US5263169A (en) | Bus arbitration and resource management for concurrent vector signal processor architecture | |
US7360035B2 (en) | Atomic read/write support in a multi-module memory configuration | |
US5729714A (en) | Shared memory access method and apparatus with address translation | |
JP2002500395A (en) | Optimal multi-channel storage control system | |
JPH04348451A (en) | Parallel computer | |
US5761455A (en) | Dynamic bus reconfiguration logic | |
JP2906819B2 (en) | Parallel computer and data exchange controller | |
JPH10187631A (en) | Extended symmetrical multiprocessor architecture | |
JPH08235143A (en) | Parallel computer of cluster constitution | |
JP2002163228A (en) | External bus deciding technology for multi-core dsp device | |
US20030229721A1 (en) | Address virtualization of a multi-partitionable machine | |
JPH09146904A (en) | Address space sharing system | |
JPH04288643A (en) | Memory mapping system for multi-processor system | |
JP2780662B2 (en) | Multiprocessor system | |
JP2602241B2 (en) | Parallel computer | |
JP3304445B2 (en) | Program generation processing device | |
JPH08339326A (en) | Multiprocessor device | |
JPH0330175B2 (en) | ||
Masko | Atomic operations for task scheduling for systems based on communication on-the-fly between SMP clusters | |
JP2000067020A (en) | Multi-processor system | |
JP2823663B2 (en) | Multiprocessor system | |
JPS6345669A (en) | Multi-processor system | |
JP4214521B2 (en) | Information processing system and multiprocessor system | |
JP2001273191A (en) | Computer system |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
LAPS | Cancellation because of no payment of annual fees |