JPH05210645A - Parallel processing system and compiling method therefor - Google Patents

Parallel processing system and compiling method therefor

Info

Publication number
JPH05210645A
JPH05210645A JP11580592A JP11580592A JPH05210645A JP H05210645 A JPH05210645 A JP H05210645A JP 11580592 A JP11580592 A JP 11580592A JP 11580592 A JP11580592 A JP 11580592A JP H05210645 A JPH05210645 A JP H05210645A
Authority
JP
Japan
Prior art keywords
storage device
data
shared
built
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
Application number
JP11580592A
Other languages
Japanese (ja)
Inventor
Teruo Tanaka
輝雄 田中
Yasuhiro Inagami
泰弘 稲上
Yoshiko Tamaoki
由子 玉置
Katsuyoshi Kitai
克佳 北井
Tadayuki Sakakibara
忠幸 榊原
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hitachi Ltd
Original Assignee
Hitachi Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Hitachi Ltd filed Critical Hitachi Ltd
Priority to JP11580592A priority Critical patent/JPH05210645A/en
Publication of JPH05210645A publication Critical patent/JPH05210645A/en
Pending legal-status Critical Current

Links

Landscapes

  • Multi Processors (AREA)
  • Devices For Executing Special Programs (AREA)

Abstract

PURPOSE:To handle data of a large scale at a comparatively high speed by constituting the system so that data defined or referred to by only a subsystem can be secured in a built-in extension storage device in the subsystem. CONSTITUTION:A parallel computer system is constituted by preparing plural subsystems consisting of main storage devices 2, 4, and at least one set of instruction processors 8-11 connected to its main storage devices 2, 4 and for executing an instruction, connecting each of them by a shared extension storage device 3, and also, connecting built-in extension storage devices 1, 5 as secondary storage of the main storage devices 2, 4. In a compiler for such a parallel system, with regard to a declaration for arranging data in the built-in extension storage devices 1, 5 or the shared extension storage device 3, the same description is contained in a source program, a range of a subprogram defined or referred to its data is analyzed, and whether its data is secured in the built-in extension storage device 3 or the shared extension storage devices 1, 5 is determined.

Description

【発明の詳細な説明】Detailed Description of the Invention

【0001】[0001]

【産業上の利用分野】本発明は、疎結合型マルチプロセ
サシステムとそのためのコンパイル方法に関する。
BACKGROUND OF THE INVENTION 1. Field of the Invention The present invention relates to a loosely coupled multiprocessor system and a compiling method therefor.

【0002】[0002]

【従来の技術】近年スーパコンピュータの登場により科
学技術計算処理のニーズは高まり、より大規模に、より
高速にとその要求はとどまるところをしらない。たとえ
ば日立製作所のスーパコンピュータHITAC S−8
20では、計算機システム内に主記憶や命令プロセサと
同期した同一のクロックで動作する主記憶より容量の大
きい拡張記憶装置(内蔵拡張記憶装置)を備えている。
たとえば、Proc. ofIEEE International Conf. on Comp
uter Design 1984,pp.227-231参照。
2. Description of the Related Art In recent years, with the advent of supercomputers, the need for scientific and technological calculation processing has increased, and the demand for larger scales and higher speeds is unavoidable. For example, Hitachi's supercomputer HITAC S-8
In the computer system 20, the computer system is provided with an extended storage device (built-in extended storage device) having a larger capacity than that of the main storage which operates at the same clock in synchronization with the main storage and the instruction processor.
For example, Proc. Of IEEE International Conf. On Comp
See uter Design 1984, pp.227-231.

【0003】拡張記憶装置は、従来DISKが行なって
きた主記憶に対する補助記憶の役割を行ない、DISK
と比較しはるかに高速に主記憶との間のデータ転送を可
能とする。拡張記憶は主記憶とは独立にアドレス空間を
有する。拡張記憶と主記憶間で大量のデータ転送を高速
化するために、このデータ転送は4KB単位で行なう。
この拡張記憶装置上のデータを分割して、主記憶装置上
に読込み、演算処理を行い、その結果をまた拡張記憶装
置に書出すことを繰り返すことにより、主記憶装置の容
量を越える大規模なデータを扱う処理を可能としてい
る。
The extended storage device functions as an auxiliary storage for the main storage which has been conventionally performed by the DISK.
It enables data transfer to and from the main memory much faster than The expanded memory has an address space independent of the main memory. This data transfer is performed in units of 4 KB in order to speed up a large amount of data transfer between the expanded memory and the main memory.
By dividing the data in the expansion storage device, reading the data into the main storage device, performing arithmetic processing, and writing the result to the expansion storage device again, a large-scale operation exceeding the capacity of the main storage device is achieved. It is possible to process data.

【0004】また、1台の命令プロセサの高速化のみで
なく、複数の命令プロセサを同時に動作させる並列処理
が一般化しつつある。この並列処理を実現するための1
つの構成として、主記憶装置とその主記憶装置を共有す
る1台以上の命令プロセサからなるサブシステムを複数
用意し、そのサブシステム間を共有拡張記憶装置で接続
するシステムが特開平1−99141、特開昭63-305451、特
開昭63-316251、特開昭62-204361および特開昭55-18720
に開示されている。また、それぞれのサブシステム内の
内蔵拡張記憶装置間を直接接続し、共有記憶として扱う
方式が、特開平2-77867に開示されている。この場合、
2つの内蔵拡張記憶装置の区別は、一意に付けられた内
蔵記憶装置番号ESIDで区別される。
In addition to speeding up one instruction processor, parallel processing for simultaneously operating a plurality of instruction processors is becoming popular. 1 to realize this parallel processing
As one configuration, there is provided a system in which a plurality of subsystems each including a main storage device and one or more instruction processors sharing the main storage device are prepared, and the subsystems are connected by a shared expansion storage device. JP-A-63-305451, JP-A-63-316251, JP-A-62-204361 and JP-A-55-18720
Is disclosed in. Further, Japanese Patent Laid-Open No. 2-77867 discloses a system in which built-in expanded storage devices in respective subsystems are directly connected and handled as shared storage. in this case,
The two internal extended storage devices are distinguished by a uniquely attached internal storage device number ESID.

【0005】以下では、内蔵拡張記憶装置と共有拡張記
憶装置を比較する。内蔵拡張記憶装置のデータ転送先は
各サブシステム内の主記憶あるいは命令プロセサのみで
あるが、共有拡張記憶装置は複数のサブシステムと接続
するため、データ転送線が複数組必要となり、それぞれ
のサブシステムとのデータ転送線のデータ幅は細くな
る。さらに、共有拡張記憶装置は複数のサブシステムか
らアクセスされるため、各サブシステムからのアクセス
競合が発生し、各サブシステムあたりのデータスループ
ットを確保することは難しい。このアクセス競合を少し
でも抑えるために、特開昭63-305451では、共有拡張記
憶装置をサブシステムの数に分割し、拡張記憶にデータ
を書き込むときに、拡張記憶内でコピーを行ない、それ
ぞれのサブシステムからのデータ読みだしは同時に行な
えるようにしている。また、内蔵拡張記憶装置は各サブ
システム内にあり、主記憶装置あるいは命令プロセサと
同一のクロックで動作することができるのに対して、後
者の共有拡張記憶装置は、システム構成の柔軟性を確保
するために、各サブシステムとは独立した別のクロック
で動作する。そのため共有拡張記憶装置と各サブシステ
ムの間に非同期制御回路が必要となる。特開平1−99141
では、この非同期制御処理部にキューを設けることによ
り高いデータ転送スループットを確保している。なお、
共有拡張記憶装置とは記載されていないが、共有メモリ
をサブシステムに対して設けた例が特開昭64-78361に記
載されている。
In the following, the internal expansion storage device and the shared expansion storage device will be compared. The data transfer destination of the built-in expansion storage device is only the main memory or instruction processor in each subsystem, but since the shared expansion storage device is connected to multiple subsystems, multiple sets of data transfer lines are required. The data width of the data transfer line with the system becomes narrower. Further, since the shared extended storage device is accessed by a plurality of subsystems, access competition from each subsystem occurs, and it is difficult to secure the data throughput for each subsystem. In order to suppress this access conflict as much as possible, in Japanese Patent Laid-Open No. 63-305451, the shared extended storage device is divided into the number of subsystems, and when data is written to the extended storage, copying is performed in the extended storage. Data can be read from the subsystem at the same time. In addition, the internal expansion storage device is in each subsystem and can operate at the same clock as the main storage device or instruction processor, while the latter shared expansion storage device ensures flexibility in system configuration. To do so, it operates on a separate clock independent of each subsystem. Therefore, an asynchronous control circuit is required between the shared extended storage device and each subsystem. JP-A-1-99141
Then, a high data transfer throughput is secured by providing a queue in this asynchronous control processing unit. In addition,
Although it is not described as a shared extended storage device, an example in which a shared memory is provided for a subsystem is disclosed in Japanese Patent Laid-Open No. 78361/1988.

【0006】[0006]

【発明が解決しようとする課題】したがって、複数台の
命令プロセサを同時に動作させる並列処理システムによ
り大規模科学技術計算処理を高速化するためには、共有
拡張記憶装置のみでなく、内蔵拡張記憶装置を各サブシ
ステム内に確保し、大容量データを必要に応じて2種の
拡張記憶装置に振り分ける必要がある。また、このよう
な並列処理システムでは、複数の記憶装置(主記憶装
置、内蔵拡張記憶装置、共有拡張記憶装置)を用いるこ
とになる。利用者はシステム構成を意識してデータをど
の記憶装置に格納するかを考慮する必要がでてくるが、
2次的な記憶装置である2種の拡張記憶装置を区別せず
に扱えることが望ましいと考える。
Therefore, in order to speed up large-scale scientific and technological calculation processing by a parallel processing system in which a plurality of instruction processors operate simultaneously, not only the shared expansion storage device but also the built-in expansion storage device Must be secured in each subsystem and large-capacity data must be distributed to two types of extended storage devices as needed. Further, in such a parallel processing system, a plurality of storage devices (main storage device, built-in expansion storage device, shared expansion storage device) will be used. The user needs to consider which storage device to store the data in consideration of the system configuration.
It is considered desirable to be able to handle two types of extended storage devices, which are secondary storage devices, without making a distinction.

【0007】[0007]

【課題を解決するための手段】上記課題を解決するため
には、本発明では、主記憶装置と、その主記憶装置に接
続され命令を実行する少なくとも1台の命令プロセサと
からなるサブシステムを複数用意し、それらを共有拡張
記憶装置で接続し、さらに各サブシステム内に主記憶装
置の2次記憶として内蔵拡張記憶装置を接続した並列計
算機システムを構成する。また、このような並列システ
ムのためのコンパイラにおいて、内蔵拡張記憶装置ある
いは共有拡張記憶装置にデータを配置する宣言について
同一の記述をソースプログラムに含ませ、そのデータに
対する定義あるいは参照するサブプログラムの範囲を解
析し、そのデータを内蔵拡張記憶装置に確保するか、共
有拡張記憶装置に確保するかを決定する。
In order to solve the above problems, the present invention provides a subsystem comprising a main memory and at least one instruction processor connected to the main memory for executing instructions. A parallel computer system is prepared in which a plurality of them are prepared, they are connected by a shared extended storage device, and further, an internal extended storage device is connected as a secondary storage of a main storage device in each subsystem. In a compiler for such a parallel system, the same description is included in the source program for the declaration of allocating data in the internal expansion storage device or the shared expansion storage device, and the range of the subprogram that defines or refers to that data is included. To determine whether to secure the data in the built-in extended storage device or the shared extended storage device.

【0008】[0008]

【作用】上記並列計算機では、各内蔵拡張記憶装置に保
持されたデータは、共有拡張記憶装置より高速にアクセ
スすることが可能であり、かつ、そのサブシステムのみ
からアクセスされるので他のサブシステムからのアクセ
ス競合がないため、さらに高速なアクセスが期待でき
る。また、複数のサブシステムからアクセスされるデー
タは共有拡張記憶装置に保持することによりサブシステ
ム間のデータ授受が可能となり、複数のサブシステムを
用いた並列処理が可能となる。
In the above parallel computer, the data held in each built-in extended storage device can be accessed faster than the shared extended storage device, and since it is accessed only from that subsystem, other subsystems Since there is no access conflict from, it is possible to expect even faster access. Further, by holding the data accessed from the plurality of subsystems in the shared expansion storage device, it becomes possible to exchange data between the subsystems, and parallel processing using the plurality of subsystems becomes possible.

【0009】[0009]

【実施例】以下、本発明の1実施例を図にしたがって説
明する。
An embodiment of the present invention will be described below with reference to the drawings.

【0010】図1は本発明である1実施例の並列計算機
システムの構成である。図中、1および5は内蔵拡張記
憶装置#1、#2、2および4は主記憶装置#1、#
2、3は共有拡張記憶装置、6および7はシステムコン
トローラ#1、#2、8ないし11はそれぞれ命令プロ
セサ#1、#2、#3、#4、12および13は入出力
プロセサ、14および16は固有DASD、15は共有
DASDをそれぞれ示している。命令プロセサ#1 8
および命令プロセサ#2 9はシステムコントローラ#
1 4を介して主記憶装置#1 2、内蔵拡張記憶装置
#1 1、入出力プロセサ#1 12を共有する密結合
マルチプロセサ構成を形成しているプロセササブシステ
ムである。同様に命令プロセサ#3 10および命令プ
ロセサ#411はシステムコントローラ#2 7を介し
て主記憶装置#2 4、内蔵拡張記憶装置#2 5、入
出力プロセサ#2 13を共有する密結合マルチプロセ
サ構成を形成している別のプロセササブシステムであ
る。これら2つのプロセササブシステムがさらにもう1
種の拡張記憶装置である共有拡張記憶装置3を介して疎
結合マルチプロセサシステムを構成している。
FIG. 1 shows the configuration of a parallel computer system according to an embodiment of the present invention. In the figure, 1 and 5 are internal expanded storage devices # 1, # 2, 2 and 4 are main storage devices # 1, #.
2 and 3 are shared extended storage devices, 6 and 7 are system controllers # 1, # 2, 8 to 11 are instruction processors # 1, # 2, # 3, # 4, 12 and 13 are input / output processors, 14 and Reference numeral 16 is a unique DASD, and 15 is a shared DASD. Instruction processor # 1 8
And instruction processor # 29 is system controller #
It is a processor subsystem that forms a tightly coupled multiprocessor configuration in which the main storage device # 12, the built-in expansion storage device # 11, and the input / output processor # 112 are shared via the I / O processor 14. Similarly, the instruction processor # 3 10 and the instruction processor # 411 have a tightly coupled multiprocessor configuration in which the main storage device # 2 4, the internal expansion storage device # 2 5, and the input / output processor # 2 13 are shared via the system controller # 2 7. It is another processor subsystem that is forming. One more of these two processor subsystems
A loosely coupled multiprocessor system is configured via a shared extended storage device 3 which is a kind of extended storage device.

【0011】2つのサブシステムおよび共有拡張記憶は
それぞれ独立した別のクロックで動作する。したがっ
て、それぞれ切り離して動作させることが可能である。
The two subsystems and the shared expansion memory operate with separate independent clocks. Therefore, it is possible to operate them separately.

【0012】複数の拡張記憶装置を区別するためには、
各拡張記憶装置に対して一意的に番号を付け、拡張記憶
装置をアクセスする命令の一部にこの拡張記憶装置番号
ESIDを付加する。
In order to distinguish a plurality of extended storage devices,
A number is uniquely assigned to each extended storage device, and this extended storage device number ESID is added to a part of an instruction to access the extended storage device.

【0013】本実施例では、プロセササブシステムを2
つとしたが、さらに多くのプロセササブシステムを共有
拡張記憶装置3に接続することも可能である。
In this embodiment, two processor subsystems are used.
However, it is possible to connect more processor subsystems to the shared expansion storage device 3.

【0014】図9に主記憶装置と拡張記憶装置間のデー
タ転送を実行する命令の例を示す。
FIG. 9 shows an example of an instruction for executing data transfer between the main storage device and the extended storage device.

【0015】図9(a)にデータ転送命令の命令フォーマ
ットの例を示す。図中、命令コード(OP)は、この命令
が主記憶装置と拡張記憶装置間のデータ転送を実行する
命令であることを示す。オペランド(R1)、(R2)はレ
ジスタ番号を示す。図9(b)にオペランド(R1)、(R
2)で指示するレジスタの内容を示す。レジスタ(R1)
にはあらかじめ主記憶アドレスが準備されている。レジ
スタ(R2)には命令実行中の転送済みブロック数が保持
される。さらに、レジスタ((R2)+1)で示されるアド
レスの主記憶領域には、あらかじめ、拡張記憶制御パラ
メタ情報を保持した主記憶アドレスが準備されている。
この主記憶上の拡張記憶制御パラメタには、複数の拡張
記憶を区別するための番号ESID、拡張記憶上のブロ
ックアドレスおよび転送ブロック長が保持されている。
ここで、各拡張記憶のアドレスは4KB境界で指定さ
れ、この4KBを1単位としてアクセスする。ESID
は各拡張記憶にそれぞれ静的に割当てられており、この
ESIDを用いて主記憶とのデータ転送の相手が内蔵拡
張記憶であるか共有拡張記憶であるかを判別することが
できる。
FIG. 9A shows an example of the instruction format of the data transfer instruction. In the figure, an instruction code (OP) indicates that this instruction is an instruction for executing data transfer between the main storage device and the extended storage device. Operands (R1) and (R2) indicate register numbers. Operands (R1) and (R
The contents of the register designated in 2) are shown. Register (R1)
A main memory address is prepared in advance. The register (R2) holds the number of transferred blocks during the execution of the instruction. Further, in the main storage area of the address indicated by the register ((R2) +1), the main storage address holding the extended storage control parameter information is prepared in advance.
The extended storage control parameter on the main storage holds a number ESID for distinguishing a plurality of extended storages, a block address on the extended storage, and a transfer block length.
Here, the address of each extended storage is specified on a 4 KB boundary, and 4 KB is used as a unit for access. ESID
Is statically assigned to each extended memory, and it is possible to determine whether the partner of data transfer with the main memory is the built-in extended memory or the shared extended memory by using this ESID.

【0016】この図9の命令であらわす内蔵拡張記憶1
と主記憶2間のデータ転送、共有拡張記憶3と主記憶2
間のデータ転送、および主記憶2と命令プロセサ8間の
データ転送の動作の違いを図10ないし図12を用いて
説明する。
Built-in expanded memory 1 represented by the instruction of FIG.
Data transfer between the main memory 2 and the shared memory 3 and the main memory 2
Differences in data transfer operation between the main memory 2 and the instruction processor 8 will be described with reference to FIGS.

【0017】図10ないし図12は、それぞれ図1に示
した、命令プロセサ(#1)8の詳細構成、システムコン
トローラ(#1)6の詳細構成、共有拡張記憶装置3の詳
細構成を示している。
10 to 12 show the detailed structure of the instruction processor (# 1) 8, the detailed structure of the system controller (# 1) 6 and the detailed structure of the shared expansion storage device 3 shown in FIG. 1, respectively. There is.

【0018】図10では、801は命令バッファ、80
2は命令レジスタ、803は命令デコーダ、804はオ
ペランドアクセス回路、805はレジスタ群、806は
演算器、807はベクトルオペランドアクセス回路、8
08はベクトルレジスタ、809はベクトル演算器群を
それぞれ示す。
In FIG. 10, 801 is an instruction buffer, and 80
2 is an instruction register, 803 is an instruction decoder, 804 is an operand access circuit, 805 is a register group, 806 is a computing unit, 807 is a vector operand access circuit, 8
Reference numeral 08 denotes a vector register, and 809 denotes a vector arithmetic unit group.

【0019】図11では、601は内蔵拡張記憶制御、
602は主記憶制御、610、611はAND回路、6
12は比較回路、613はESIDを保持するレジス
タ、614は+mカウンタ、615はアドレス生成回
路、620、623、624はAND回路、612、6
22はNOT回路、625、626は比較回路、62
7、628はESIDを保持するレジスタ、629はプ
ライオリティ回路、630は+mカウンタ、631はア
ドレス生成回路、632は+m’カウンタ、633はア
ドレス生成回路、634、635はセレクタをそれぞれ
示す。
In FIG. 11, reference numeral 601 denotes a built-in extended storage control,
602 is main memory control, 610 and 611 are AND circuits, 6
12 is a comparison circuit, 613 is a register for holding the ESID, 614 is a + m counter, 615 is an address generation circuit, 620, 623 and 624 are AND circuits, 612 and 6
22 is a NOT circuit, 625 and 626 are comparison circuits, 62
Reference numerals 7 and 628 are registers for holding ESID, 629 is a priority circuit, 630 is a + m counter, 631 is an address generation circuit, 632 is a + m ′ counter, 633 is an address generation circuit, and 634 and 635 are selectors.

【0020】図12では、301はメモリ、302は共
有拡張記憶制御、310はプライオリティ回路、31
1、312はAND回路、313、314は比較回路、
315はESIDを保持するレジスタ、316、318
は+m’カウンタ、317、319はアドレス生成回
路、320、321はセレクタをそれぞれ示す。
In FIG. 12, 301 is a memory, 302 is a shared extended storage control, 310 is a priority circuit, 31
1, 312 are AND circuits, 313 and 314 are comparison circuits,
315 is a register holding the ESID, 316, 318
Is a + m 'counter, 317 and 319 are address generation circuits, and 320 and 321 are selectors.

【0021】内蔵拡張記憶制御601(図11)、共有拡
張記憶302(図12)には、それぞれレジスタ613、
315があり、システム構成時に、あらかじめ拡張記憶
の番号ESIDが一意にセットされている。ここでは、
あらかじめレジスタ613にはESID#1が、レジス
タ315にはESID#0がセットされているとする。
主記憶制御602(図11)には、レジスタ627、62
8があり、システム構成時に、あらかじめ接続している
拡張記憶の番号ESIDがセットされている。ここで
は、レジスタ627にESID#0が、レジスタ628
にESID#1がセットされている。
The internal extended storage control 601 (FIG. 11) and the shared extended storage 302 (FIG. 12) have registers 613 and
315, and the extended storage number ESID is uniquely set in advance during system configuration. here,
It is assumed that ESID # 1 is set in the register 613 and ESID # 0 is set in the register 315 in advance.
The main memory control 602 (FIG. 11) includes registers 627 and 62.
8 is set, and the number ESID of the extension storage connected in advance is set when the system is configured. Here, the ESID # 0 is stored in the register 627 and the register 628 is stored.
Is set to ESID # 1.

【0022】内蔵拡張記憶1と主記憶2との間は、連続
した4KB単位でデータ転送が行なわれる。この連続し
た4KB単位のデータ転送をmバイト(1ないし数10)
ごとに分割して、線L5をデータ転送路に用いて行な
う。同様に、共有拡張記憶3と主記憶2との間も、連続
した4KB単位でデータ転送が行なう。この連続した4
KB単位のデータ転送をm’バイト(1ないし数10)ご
とに分割して、線L6をデータ転送路に用いて行なう。
共有拡張記憶3は、複数のサブシステムからアクセスさ
れるために、1つのサブシステムとの間のデータ線の幅
を広くとることはできない。したがって、一般にm>
m’であり、内蔵記憶の方のがスループットを確保する
ことができる。
Data is transferred between the built-in expanded memory 1 and the main memory 2 in continuous 4 KB units. This continuous 4KB unit data transfer is m bytes (1 to several tens)
The line L5 is used for the data transfer path. Similarly, data is transferred between the shared extended storage 3 and the main storage 2 in units of continuous 4 KB. This 4 in succession
Data transfer in KB units is divided into m'bytes (1 to several tens) and the line L6 is used as a data transfer path.
Since the shared extended memory 3 is accessed by a plurality of subsystems, the width of the data line with one subsystem cannot be wide. Therefore, in general m>
m ′, and the built-in storage can secure the throughput.

【0023】まず、図10を用いて、命令プロセッサ8
からのデータアクセス方法を示す。スカラデータはオペ
ランドアクセス回路804を介して主記憶2にアクセス
する。また、ベクトルデータはベクトルオペランドアク
セス回路807を用いて主記憶2にアクセスする。スカ
ラデータは命令プロセッサで処理したロード/ストア系
の命令により、8/4Byteの単位でデータをアクセスす
る。ベクトルデータはベクトルロード/ベクトルストア
系の命令により、1から数100の要素からなるベクト
ルデータをアクセスする。
First, the instruction processor 8 will be described with reference to FIG.
The data access method from is shown. The scalar data accesses the main memory 2 via the operand access circuit 804. For vector data, the vector memory access circuit 807 is used to access the main memory 2. Scalar data is accessed in units of 8/4 bytes by load / store type instructions processed by the instruction processor. As for vector data, vector data consisting of 1 to several 100 elements is accessed by a vector load / vector store system instruction.

【0024】次に、拡張記憶と主記憶間のデータ転送を
説明する。例として、内蔵拡張記憶1から主記憶2への
データ転送を用いる。ここでは、命令プロセッサ8、内
蔵拡張記憶制御601、主記憶制御602の順に説明す
る。
Next, the data transfer between the expanded memory and the main memory will be described. As an example, data transfer from the built-in expanded memory 1 to the main memory 2 is used. Here, the instruction processor 8, the internal expanded storage control 601, and the main storage control 602 will be described in this order.

【0025】図10を用いて、命令プロセッサ8の動作
を説明する。図9に示すデータ転送命令は、命令バッフ
ァ801を経由し、命令レジスタ802にセットされ、
命令コードの部分は命令デコーダ803で解読される。
解読されたデータ転送指令は、線L1を介して、必要な
主記憶制御602、内蔵拡張記憶制御601、共有拡張
記憶制御302に送られる。また、命令レジスタ802
内のデータ転送命令のオペランド部の2つのレジスタ番
号の指定により、レジスタ群805がアクセスされる。
レジスタ(R1)では、主記憶アドレスが指定され、オペ
ランドアクセス回路804を介して、主記憶制御602
に送られる。レジスタ((R2)+1)には、拡張記憶制御
パラメタを保持されている主記憶アドレスが確保されて
いる。データ転送処理に先立ち、この拡張記憶制御パラ
メタを主記憶から取り出し、拡張記憶装置番号ESI
D、拡張記憶ブロックアドレス、転送ブロック長に分割
し,それぞれ線L2ないし線L4を用いて必要な主記憶
制御602、内蔵拡張記憶制御601、共有拡張記憶制
御302に送られる。
The operation of the instruction processor 8 will be described with reference to FIG. The data transfer instruction shown in FIG. 9 is set in the instruction register 802 via the instruction buffer 801.
The instruction code portion is decoded by the instruction decoder 803.
The decrypted data transfer command is sent to the required main memory control 602, built-in extended storage control 601, and shared extended storage control 302 via line L1. Also, the instruction register 802
The register group 805 is accessed by designating two register numbers in the operand part of the data transfer instruction in the above.
The main memory address is designated in the register (R1), and the main memory control 602 is executed via the operand access circuit 804.
Sent to. The main storage address holding the extended storage control parameter is secured in the register ((R2) +1). Prior to the data transfer processing, this extended storage control parameter is fetched from the main storage and the extended storage device number ESI
D, extended storage block address, and transfer block length are divided and sent to the main storage control 602, built-in extended storage control 601, and shared extended storage control 302 using lines L2 to L4, respectively.

【0026】図11を用いて、データ転送元の内蔵拡張
記憶制御601の動作を説明する。内蔵拡張記憶制御6
01には、システム構成時に、あらかじめレジスタ61
3にESID#1がセットされている。命令プロセサ8
から送られてきた情報である拡張記憶装置番号ESI
D、拡張記憶ブロックアドレスおよび転送ブロック長
は、比較回路612、アドレス生成回路615、+mカ
ウンタ614で受け付けられる。比較回路612では、
あらかじめセットされているレジスタ613のESID
#1と命令プロセサ8から送られてきたESIDを比較
する。この例では、一致が確認され、その結果をAND
回路611に送る。AND回路611では、命令プロセ
サ8からの指示が読みだしか書き込みかをチェックす
る。アドレス生成回路615では、命令プロセサ8から
送られてきた拡張記憶ブロックアドレスを初期値とし、
順次内蔵拡張記憶上のアドレスを生成する。このアドレ
スはm byteおきに生成され、転送データは、m Byte単
位で、線L5を介して主記憶制御602に送られる。+
mカウンタ614では転送データ量を順次カウントし、
命令プロセサ8から送られてきた転送ブロック長のデー
タ転送が終わったときは、アドレス生成回路615に指
示しアドレス生成を終了させる。この内蔵拡張記憶1
は、他のサブシステムからはアクセスされないので、ア
クセス競合の制御が必要ない。
The operation of the internal extended storage control 601 of the data transfer source will be described with reference to FIG. Built-in extended memory control 6
01 indicates a register 61 when the system is configured.
ESID # 1 is set to 3. Instruction processor 8
Extended storage device number ESI which is the information sent from
The comparison circuit 612, the address generation circuit 615, and the + m counter 614 receive D, the extended storage block address, and the transfer block length. In the comparison circuit 612,
ESID of preset register 613
# 1 is compared with the ESID sent from the instruction processor 8. In this example, a match is confirmed and the result is ANDed
Send to circuit 611. The AND circuit 611 checks whether the instruction from the instruction processor 8 is read or written. In the address generation circuit 615, the extended storage block address sent from the instruction processor 8 is used as an initial value,
Addresses in the built-in expanded memory are sequentially generated. This address is generated every m bytes, and the transfer data is sent in units of m Byte to the main memory control 602 via the line L5. +
The m counter 614 sequentially counts the transfer data amount,
When the data transfer of the transfer block length sent from the instruction processor 8 is completed, the address generation circuit 615 is instructed to end the address generation. This built-in extended memory 1
Does not need access control because it is not accessed by other subsystems.

【0027】データ転送先の主記憶制御602の動作を
説明する。主記憶制御602には、システム構成時に、
あらかじめ、接続する拡張記憶装置のESIDが保持さ
れている。この例では、レジスタ627に共有拡張記憶
番号ESID0が、レジスタ628に内蔵拡張記憶番号
ESID1がセットされている。命令プロセサ8から送
られてきた情報である拡張記憶装置番号ESID、拡張
記憶ブロックアドレスおよび転送ブロック長は、比較回
路625ないし626、アドレス生成回路631ないし
633、+mカウンタ630、+m’カウンタ632で
受け付けられる。比較回路625および626では、あ
らかじめセットされているレジスタ627ないし628
の内容と命令プロセサ8から送られてきたESIDを比
較する。この例では、比較回路626で一致が確認さ
れ、その結果をAND回路624に送る。AND回路6
24では、命令プロセサ8からの指示が読みだしか書き
込みかをチェックする。この結果は、プライオリティ回
路629に送られる。プライオリティ回路629では、
種々の主記憶1へのアクセス要求に対する競合を制御す
る。アドレス生成回路631では、命令プロセサ8から
送られてきた主記憶アドレスを初期値とし、順次主記憶
上のアドレスを生成する。このアドレスはm byteおき
に生成され、転送データは、m Byte単位で、線L5を
介して内蔵拡張記憶制御601から送られてくる。+m
カウンタ630では転送データ量を順次カウントし、命
令プロセサ8から送られてきた転送ブロック長のデータ
転送が終わったときは、アドレス生成回路631に指示
しアドレス生成を終了させる。同様の処理をアドレス生
成回路633、+m’カウンタ632でも行なう。違い
は、mByte単位のアドレス生成、カウントアップ処理を
m’Byte単位とすることである。主記憶制御602と共
有拡張記憶制御302間の転送データ幅もm’byteにな
る。
The operation of the main memory control 602 of the data transfer destination will be described. The main memory control 602 includes
The ESID of the extended storage device to be connected is held in advance. In this example, the shared extended storage number ESID0 is set in the register 627, and the built-in extended storage number ESID1 is set in the register 628. The extended storage device number ESID, the extended storage block address, and the transfer block length, which are the information sent from the instruction processor 8, are accepted by the comparison circuits 625 to 626, the address generation circuits 631 to 633, the + m counter 630, and the + m ′ counter 632. Be done. Comparing circuits 625 and 626 include preset registers 627 through 628.
And the ESID sent from the instruction processor 8 are compared. In this example, the comparison circuit 626 confirms the match and sends the result to the AND circuit 624. AND circuit 6
At 24, it is checked whether the instruction from the instruction processor 8 is read or write. The result is sent to the priority circuit 629. In the priority circuit 629,
Controls contention for access requests to various main memories 1. The address generation circuit 631 uses the main memory address sent from the instruction processor 8 as an initial value, and sequentially generates addresses on the main memory. This address is generated every m bytes, and the transfer data is sent in m Byte units from the built-in extended storage control 601 via the line L5. + M
The counter 630 sequentially counts the transfer data amount, and when the data transfer of the transfer block length sent from the instruction processor 8 is completed, instructs the address generation circuit 631 to end the address generation. Similar processing is performed by the address generation circuit 633 and the + m ′ counter 632. The difference is that the address generation and count-up processing in mByte units are performed in m'Byte units. The transfer data width between the main memory control 602 and the shared extended memory control 302 is also m'byte.

【0028】なお、AND回路620の出力は、命令で
指定されたESIDがこの主記憶8に接続されていない
ことを示しており、この結果は命令プロセサ8に戻さ
れ、転送命令は終了する。
The output of the AND circuit 620 indicates that the ESID designated by the instruction is not connected to the main memory 8. The result is returned to the instruction processor 8 and the transfer instruction ends.

【0029】以上で、内蔵拡張記憶1から主記憶2への
データ転送処理を完了する。
This completes the data transfer process from the internal expansion storage 1 to the main storage 2.

【0030】最後に、内蔵拡張記憶制御610と比べる
ため、共有拡張記憶制御302の動作を図12を用いて
説明する。共有拡張記憶制御302は複数のサブシステ
ムからアクセス要求がある。ここでは、命令プロセサ8
からのアクセス要求に対する処理を説明する。他のサブ
システムからのアクセス処理も同様である。
Finally, the operation of the shared extended storage control 302 will be described with reference to FIG. 12 for comparison with the internal extended storage control 610. The shared extended storage control 302 has access requests from a plurality of subsystems. Here, the instruction processor 8
A process for an access request from the user will be described. The same applies to access processing from other subsystems.

【0031】共有拡張記憶制御302には、システム構
成時に、あらかじめレジスタ315にESID#0がセ
ットされている。命令プロセサ8から送られてきた情報
である拡張記憶装置番号ESID、拡張記憶ブロックア
ドレスおよび転送ブロック長は、比較回路313、アド
レス生成回路317、+m’カウンタ316で受け付け
られる。比較回路313では、あらかじめセットされて
いるレジスタ315のESID#0と命令プロセサ8か
ら送られてきたESIDを比較する。その結果をAND
回路311に送る。AND回路311では、命令プロセ
サ8からの指示が読みだしか書き込みかをチェックす
る。その結果は、プライオリティ回路310に送られ、
複数のサブシステムからのアクセス要求との競合を制御
される。アドレス生成回路317では、命令プロセサ8
から送られてきた拡張記憶ブロックアドレスを初期値と
し、順次内蔵拡張記憶上のアドレスを生成する。このア
ドレスはm’byteおきに生成され、転送データは、m’
Byte単位で、線L6を介して主記憶制御602に送られ
る。+m’カウンタ316では転送データ量を順次カウ
ントし、命令プロセサ8から送られてきた転送ブロック
長のデータ転送が終わったときは、アドレス生成回路3
17に指示しアドレス生成を終了させる。アドレス生成
回路319、+m’カウンタ318は他のサブシステム
からのアクセス要求に対し、同様の処理を行なう。
In the shared extended storage control 302, ESID # 0 is set in the register 315 in advance during system configuration. The extended storage device number ESID, the extended storage block address, and the transfer block length, which are the information sent from the instruction processor 8, are received by the comparison circuit 313, the address generation circuit 317, and the + m ′ counter 316. The comparison circuit 313 compares the ESID # 0 of the register 315 set in advance with the ESID sent from the instruction processor 8. AND the result
Send to circuit 311. The AND circuit 311 checks whether the instruction from the instruction processor 8 is read or written. The result is sent to the priority circuit 310,
Controls contention with access requests from multiple subsystems. In the address generation circuit 317, the instruction processor 8
The expanded storage block address sent from the device is used as an initial value to sequentially generate addresses on the internal expanded storage. This address is generated every m'byte, and the transfer data is m '
Byte units are sent to the main memory control 602 via the line L6. The + m 'counter 316 sequentially counts the transfer data amount, and when the transfer of the transfer block length data sent from the instruction processor 8 is completed, the address generation circuit 3
Instructing 17 to end the address generation. The address generation circuit 319 and the + m ′ counter 318 perform the same processing in response to access requests from other subsystems.

【0032】以上に示した内蔵拡張記憶1から主記憶2
へのデータ転送処理、共有拡張記憶3のアクセス処理方
法により、内蔵拡張記憶1が共有拡張記憶3より、高速
にアクセスできることがわかる。したがって、内蔵拡張
記憶1と共有拡張記憶3とを両方持つシステムを実現
し、サブシステム内のみでアクセスするデータは内蔵拡
張記憶1に、サブシステム間で共有するデータは共有拡
張記憶3に格納するように、拡張記憶を使いわけるとこ
とにより、高速な大規模計算を実現することができる。
From the internal expansion memory 1 to the main memory 2 shown above
It is understood that the built-in extended storage 1 can be accessed faster than the shared extended storage 3 by the data transfer processing to the shared extended storage 3 and the access processing method of the shared extended storage 3. Therefore, a system having both the built-in expanded memory 1 and the shared expanded memory 3 is realized, and data accessed only within the subsystem is stored in the built-in expanded memory 1 and data shared between subsystems is stored in the shared expanded memory 3. As described above, by using the extended storage properly, high-speed large-scale calculation can be realized.

【0033】この並列計算機システム上で大規模科学技
術計算処理を実行するために、各記憶装置にデータある
いはプログラム(オブジェクトプログラム)が分散配置
されている。命令プロセサ#1 8を含むプロセササブ
システムでは、主記憶装置#1 2上にこのプロセササ
ブシステムで処理を行うオブジェクトプログラムとデー
タが、内蔵拡張記憶装置1 #1には、主記憶装置2
#1に格納しきれず、かつプロセササブシステム内での
みアクセスされるデータが保持されている。他方のプロ
セササブシステムも同様である。共有拡張記憶装置3に
は、両方のプロセササブシステムからアクセスされるデ
ータが格納されており、プロセササブシステム間のデー
タの受渡し時に使用する。
In order to execute a large-scale scientific and technological calculation process on this parallel computer system, data or programs (object programs) are distributed and arranged in each storage device. In the processor subsystem including the instruction processor # 18, the object program and data to be processed by this processor subsystem are stored in the main storage device # 1 2 in the internal expansion storage device 1 # 1.
Data that cannot be stored in # 1 and is accessed only within the processor subsystem is held. The same applies to the other processor subsystem. The shared extended storage device 3 stores data accessed by both processor subsystems and is used when data is transferred between the processor subsystems.

【0034】この並列計算機システム上での大規模科学
技術計算処理の実行を例を用いて説明する。
Execution of large-scale scientific and technological calculation processing on this parallel computer system will be described using an example.

【0035】例として、3次元熱拡散方程式(ポアソン
方程式)を差分化し得られた連立線形方程式を並列解法
の1つであるR/B SOR(Red/Black Successive O
ver-Relaxation)法で解くことを考える。このR/B
SOR法は村田、小国、三好、小柳著「工学における数
値シミュレーション」に記載されている。図5に差分化
で得られた3次元格子分割領域を示す。ここでは、領域
をX軸方向に2つに分け、右半分を1つのプロセササブ
システム、左半分をもう1つのプロセササブシステムで
実行することにする。全体の格子点数をX軸、Y軸、Z
軸方向それぞれ2000,1000,1000とする
と、各プロセササブシステムでは8GBのデータ領域を
必要とし、主記憶装置のみではデータの保持は不可能で
ある。そのため、データは拡張記憶装置に確保される。
各R/B SOR法では、各格子点の計算を行うために
隣接した格子点の情報を必要とする。そのために分割時
の境界となる図中のUB1,UB2の各y−z面のデー
タは共有拡張記憶装置に保持する必要がある。このデー
タ領域をUB1,UB2とあらわす。これはプロセササ
ブシステム間での受渡しの対象となるデータ領域であ
る。また、その他の領域はそれぞれサブシステム内のみ
でアクセスされるため、それぞれの内蔵拡張記憶装置に
保持される。このデータ領域をそれぞれUA1,UA2
とする。
As an example, the simultaneous linear equations obtained by differentiating the three-dimensional heat diffusion equation (Poisson's equation) are R / B SOR (Red / Black Successive O) which is one of the parallel solution methods.
(Ver-Relaxation) method. This R / B
The SOR method is described in "Numerical Simulation in Engineering" by Murata, Oguni, Miyoshi, and Koyanagi. FIG. 5 shows a three-dimensional lattice division area obtained by the difference. Here, the region is divided into two in the X-axis direction, and the right half is executed by one processor subsystem and the left half is executed by another processor subsystem. The total number of grid points is X-axis, Y-axis, Z
If the axial directions are 2000, 1000, and 1000, each processor subsystem requires a data area of 8 GB, and data cannot be held only by the main storage device. Therefore, the data is secured in the extended storage device.
Each R / B SOR method requires information on adjacent grid points in order to calculate each grid point. Therefore, it is necessary to hold the data of the yz planes of UB1 and UB2 in the drawing, which are boundaries at the time of division, in the shared extended storage device. This data area is represented as UB1 and UB2. This is the data area to be passed between the processor subsystems. Since the other areas are accessed only within the subsystems, they are held in the respective built-in extended storage devices. This data area is UA1 and UA2 respectively
And

【0036】図6に並列演算手順の概要を示す。ここで
は、1つのプロセササブシステムで親タスクが、他方の
プロセササブシステムで子タスクがそれぞれ実行され
る。まず、親タスクが実行を開始し、この親タスクが子
タスクを起動する(70)。以下、親タスクと子タスク
は同様の処理を行う。まず、共有DASD15(図1)
からデータを内蔵拡張記憶装置(内蔵ES)に取込む
(71)。次にプロセササブシステム内の命令プロセサ
を用いて担当する領域の演算処理を行う。このとき、プ
ロセササブシステム内に複数の命令プロセサがある場合
は主記憶共有型の並列処理が行われる(72ないし7
3)。各命令プロセサは次の処理を行う。まず、内蔵E
Sから主記憶装置(MS)にデータを読込む(74)。
このときの1回の処理単位(扱う格子点数)は、MS容
量およびプロセササブシステム内の命令プロセサ数によ
りプログラム上決定されている。次に担当する領域に関
して演算処理を行う(75)。最後にMSから内蔵ES
に計算結果データを格納する(76)。サブシステムで担当
する領域の計算がすべて終了すると、プロセササブシス
テム間で共有拡張記憶装置(共有ES)を介してデータ
の受渡しを行う(77ないし78)。ここでは、境界領
域であるデータUB1、UB2(図5)および収束判定
のための情報(図示せず、各プロセササブシステムごと
に収束判定処理を可能とするための情報、たとえば各プ
ロセササブシステムの残差ノルムの部分積和値)の受渡
しを行う。このとき、共有ES上でのデータアクセスの
順序関係を保証するためにMSから共有ESにデータを
書込み後に共有ESに対してPost処理、共有ESからM
Sにデータを読出す前に共有ESに対してWait処理を行
う必要がある。さらに、収束判定処理を行い(80)、
収束判定条件が成立するまで(72)から(80)の処
理を繰り返す。収束判定条件が成立すると内蔵ES上に
ある結果データをDASDに格納し(81)、子タスク
は処理を終了し(83)、親タスクは子タスクの終了を確
認した後に全体の処理を終了する(82)。
FIG. 6 shows an outline of the parallel operation procedure. Here, a parent task is executed by one processor subsystem, and a child task is executed by the other processor subsystem. First, the parent task starts execution, and this parent task activates the child task (70). Hereinafter, the parent task and the child task perform the same processing. First, shared DASD 15 (Figure 1)
The data is fetched from the device into the built-in extended storage device (built-in ES) (71). Next, the instruction processor in the processor subsystem is used to perform arithmetic processing of the area in charge. At this time, if there are a plurality of instruction processors in the processor subsystem, main memory sharing type parallel processing is performed (72 to 7).
3). Each instruction processor performs the following processing. First, built-in E
Data is read from S into the main memory (MS) (74).
At this time, one processing unit (the number of lattice points to be handled) is determined by the program according to the MS capacity and the number of instruction processors in the processor subsystem. Next, arithmetic processing is performed on the area in charge (75). Finally from MS to built-in ES
The calculation result data is stored in (76). When the calculation of the area in charge of the subsystem is completed, the data is transferred between the processor subsystems via the shared extended storage device (shared ES) (77 to 78). Here, data UB1 and UB2 (FIG. 5), which are boundary regions, and information for convergence determination (not shown, information for enabling convergence determination processing for each processor subsystem, for example, for each processor subsystem) The partial product sum of the residual norm) is passed. At this time, in order to guarantee the order relation of data access on the shared ES, post processing is performed on the shared ES after writing data from the MS to the shared ES, and the shared ES to M
It is necessary to perform a Wait process on the shared ES before reading data to S. Further, a convergence determination process is performed (80),
The processing from (72) to (80) is repeated until the convergence determination condition is satisfied. When the convergence determination condition is satisfied, the result data on the built-in ES is stored in DASD (81), the child task ends the processing (83), and the parent task confirms the end of the child task and then ends the entire processing. (82).

【0037】次に、拡張記憶装置上へのデータ配置のた
めのプログラム記述方法に関して示す。
Next, a program description method for arranging data on the extended storage device will be described.

【0038】図7にソースプログラムから見たシステム
構成を示す。図中、91および92は主記憶、90は共
有記憶、93ないし96は命令プロセサである、ここで
はソースプログラム上での内蔵拡張記憶装置(内蔵E
S)あるいは共有拡張記憶装置(共有ES)上のデータ
領域の宣言を同一とし共有記憶90とする。この共有記
憶上にデータを宣言するために、ここでは、Fortranの
文法のCOMMON宣言を拡張したECOMMON 宣言(拡張COMMON
宣言)を定義する。
FIG. 7 shows the system configuration viewed from the source program. In the figure, 91 and 92 are main memories, 90 is a shared memory, and 93 to 96 are instruction processors. In this case, an internal extended memory device (internal E) on the source program is used.
S) or the shared extended storage device (shared ES) has the same data area declaration and is set as the shared storage 90. In order to declare data on this shared memory, here, the ECOMMON declaration (extended COMMON declaration), which is an extension of the COMMON declaration of the Fortran grammar, is used.
Declaration) is defined.

【0039】図8に親タスク、子タスクそれぞれについ
てのソースプログラム中のECOMMON宣言の例を示す。こ
こでは、図5に示したUA1,UB1,UA2,UB2
の各領域を共有記憶90上に確保するためにECOMMON 文
で宣言している。また、図中、105あるいは115の
COMMON文で宣言された配列WKは主記憶上に確保された
配列領域であり、共有記憶90上のデータを主記憶に取
り込む時のワーク領域として使用する。
FIG. 8 shows an example of the ECOMMON declaration in the source program for each of the parent task and the child task. Here, UA1, UB1, UA2, UB2 shown in FIG.
, Is declared in the ECOMMON statement in order to secure each area in the shared memory 90. Also, in the figure, 105 or 115
The array WK declared by the COMMON statement is an array area secured in the main memory and is used as a work area when the data in the shared memory 90 is fetched in the main memory.

【0040】このとき、ECOMMON で宣言されたデータを
内蔵拡張記憶装置(内蔵ES)あるいは共有拡張記憶装
置(共有ES)どちらに格納するかをコンパイラで判断
する方法を図2から図4を用いて説明する。
At this time, a method of determining whether the data declared by ECOMMON is to be stored in the built-in extended storage device (built-in ES) or the shared extended storage device (shared ES) with the compiler will be described with reference to FIGS. 2 to 4. explain.

【0041】図2は本発明の1実施例のコンパイラの構
成を機能ブロックで示している。図中、30はコンパイ
ラ、31はECOMMON 名称抽出部、32はECOMMON 名称の
割付け先ES決定部、33はオブジュクトプログラム生
成部、34は親タスク用あるいは子タスク用のソースプ
ログラム群、35はECOMMON 名称テーブル、36は割付
け先ES決定後のソースプログラム、37は各タスク用
オブジュクトプログラムである。コンパイラ30は各タ
スク用ソーズプログラム34を入力して、最後に各タス
ク用オブジェクトプログラム37を出力する。
FIG. 2 is a functional block diagram showing the configuration of the compiler according to the first embodiment of the present invention. In the figure, 30 is a compiler, 31 is an ECOMMON name extraction unit, 32 is an ECOMMON name allocation destination ES determination unit, 33 is an object program generation unit, 34 is a source program group for parent task or child task, and 35 is ECOMMON name table, 36 is a source program after the allocation ES is determined, and 37 is an object program for each task. The compiler 30 inputs the task source program 34 for each task, and finally outputs the task object program 37.

【0042】本発明では、新しい機能ECOMMON 名称抽出
部31、ECOMMON 名称の割付け先ES決定部32をコン
パイラの一部としたが、この機能をコンパイラと独立な
コンパイラより前に実行するプリプロセサとしてもよ
い。
In the present invention, the new function ECOMMON name extraction unit 31 and the ECOMMON name allocation destination ES determination unit 32 are part of the compiler, but this function may be a preprocessor that is executed before the compiler independent of the compiler. ..

【0043】まず、ECOMMON 名称抽出部31では、各タ
スク用ソースプログラム34を入力して、ECOMMON 名称
テーブル35を生成する。ECOMMON 名称テーブル35は
ECOMMON 名称ごとに共有記憶上に確保したデータ領域を
どのタスクがアクセスするかを示すテーブルである。次
に、ECOMMON 名称の割付け先ES決定部32では、各タ
スク用ソースプログラム34およびECOMMON 名称テーブ
ル35を入力して割付け先ES決定後のソースプログラ
ム36を出力する。最後に、オブジュクトプログラム生
成部33では、割付け先ES決定後のソースプログラム
36を入力して各タスク用オブジュクトプログラム37
を出力する。オブジュクトプログラム生成33はコンパ
イル技術として公知なのでここでは省略する。
First, the ECOMMON name extraction unit 31 inputs each task source program 34 and generates an ECOMMON name table 35. ECOMMON name table 35
It is a table showing which task accesses the data area secured on the shared storage for each ECOMMON name. Next, the ECOMMON name allocation destination ES determination unit 32 inputs the source program 34 for each task and the ECOMMON name table 35 and outputs the source program 36 after the allocation destination ES is determined. Finally, the object program generation unit 33 inputs the source program 36 after the allocation destination ES is determined and inputs the object program 37 for each task.
Is output. Since the object program generation 33 is known as a compilation technique, it is omitted here.

【0044】新しい機能の詳細について説明する。Details of the new function will be described.

【0045】図3を用いてECOMMON 名称抽出部31の処
理について説明する。
The processing of the ECOMMON name extraction unit 31 will be described with reference to FIG.

【0046】まず、各タスク用ソースプログラム34
(図2)からソースプログラムを1つ読込み(42)、
以下、そのソースプログラム内の文Sを解析し、文Sが
ECOMMON 宣言文か否かを調べ(45)、もしそうであれ
ばECOMMON 名称をテーブル35(図2)に登録する(4
8)。そうでなければ、文SがECOMMON で宣言された変
数をアクセスする実行文か否かを調べ(46)、もし、
そうであればテーブルに登録した対応するECOMMON 名称
のアクセスタスク名のフィールドに印を付ける(4
7)。これにより、対象とするECOMMON 名称内のデータ
が対象とするタスクからアクセスすることが登録され
る。以上の処理を読み込むべきソースプログラムがなく
なるまでつづける。
First, the source program 34 for each task
Read one source program from (Fig. 2) (42),
Below, the sentence S in the source program is analyzed, and the sentence S
It is checked whether it is an ECOMMON declaration statement (45), and if so, the ECOMMON name is registered in the table 35 (FIG. 2) (4
8). If not, check whether the statement S is an executable statement that accesses the variable declared by ECOMMON (46), and if
If so, mark the access task name field of the corresponding ECOMMON name registered in the table (4
7). As a result, the data in the target ECOMMON name is registered to be accessed from the target task. The above processing is continued until there is no source program to read.

【0047】次に、図4を用いてECOMMON 名称の割付け
先ES決定部32の処理について説明する。
Next, the processing of the ECOMMON name assignment destination ES determination section 32 will be described with reference to FIG.

【0048】まず、各タスク用ソースプログラム34
(図2)からソースプログラムを1つ読込み(51)、
ECOMMON 宣言文を抽出し(54)、ECOMMON 名称テーブ
ル35(図2)内から対応するECOMMON 名称の行を調
べ、もし、そのECOMMON 名称が複数のタスクからアクセ
スされる場合はそのECOMMON を共有ESに割付け(5
7)、もし、そのECOMMON 名称が1つのタスクのみから
アクセスされている場合はそのアクセスするタスクを実
行するサブシステムの内蔵ESに割付ける(58)。以
上の処理を読み込むべきソースプログラムがなくなるま
でつづける。
First, the source program 34 for each task
Read one source program from (Fig. 2) (51),
Extract the ECOMMON declaration statement (54), check the row of the corresponding ECOMMON name from the ECOMMON name table 35 (Fig. 2), and if the ECOMMON name is accessed by multiple tasks, make the ECOMMON a shared ES. Allocation (5
7) If the ECOMMON name is accessed by only one task, it is assigned to the built-in ES of the subsystem that executes the accessed task (58). The above processing is continued until there is no source program to read.

【0049】以上、ECOMMON 名称抽出部31(図3)お
よびECOMMON 名称の割付け先ES決定部32(図4)の
処理により、ECOMMON 宣言されたデータを内蔵ESある
いは共有ESに割付けるかを決定することができる。
As described above, by the processing of the ECOMMON name extraction unit 31 (FIG. 3) and the ECOMMON name allocation destination ES determination unit 32 (FIG. 4), it is determined whether the ECOMMON declared data is allocated to the built-in ES or the shared ES. be able to.

【0050】[0050]

【発明の効果】本発明によれば、サブシステムでのみ定
義あるいは参照されるデータはサブシステム内の内蔵拡
張記憶装置に確保することにより、大規模なデータを比
較的高速に扱うことが可能となり、また、サブシステム
間で共有するデータは共有拡張記憶装置に確保すること
により、サブシステム間でデータの受渡しが可能とな
る。また、内蔵拡張記憶装置あるいは共有拡張記憶装置
へのデータの配置に対して、利用者のプログラム記述を
同一にすることを可能とすることにより、利用者から
は、内蔵拡張記憶装置と共有拡張記憶装置の区別を必要
としないため、プログラム記述が簡便になる。
According to the present invention, data defined or referenced only in the subsystem is secured in the internal expansion storage device in the subsystem, so that large-scale data can be handled at a relatively high speed. Further, by securing the data shared between the subsystems in the shared expansion storage device, the data can be transferred between the subsystems. Further, by making it possible to make the user's program description the same with respect to the arrangement of data in the built-in extended storage device or the shared extended storage device, the user can make the built-in extended storage device and the shared extended storage device Since it is not necessary to distinguish the devices, the program description becomes simple.

【図面の簡単な説明】[Brief description of drawings]

【図1】並列計算機システムの構成を示す図。FIG. 1 is a diagram showing a configuration of a parallel computer system.

【図2】コンパイラのフローチャート。FIG. 2 is a flowchart of the compiler.

【図3】ECOMMON 名称抽出処理部のフローチャート。FIG. 3 is a flowchart of an ECOMMON name extraction processing unit.

【図4】ECOMMON 名称の和割付け先ES決定処理部のフ
ローチャート。
FIG. 4 is a flowchart of an ECOMMON name sum allocation destination ES determination processing unit.

【図5】3次元格子分割領域の例を示す図。FIG. 5 is a diagram showing an example of a three-dimensional lattice division area.

【図6】並列演算処理手順のフローチャート例。FIG. 6 is a flowchart example of a parallel operation processing procedure.

【図7】プログラムが想定しているシステム構成図。FIG. 7 is a system configuration diagram assumed by the program.

【図8】プログラム内ECOMMON 宣言部の例を示す図。FIG. 8 is a diagram showing an example of an ECOMMON declaration part in a program.

【図9】主記憶−拡張記憶間データ転送命令フォーマッ
トを示す図。
FIG. 9 is a diagram showing a data transfer instruction format between main memory and extended memory.

【図10】命令プロセッサの詳細構成図。FIG. 10 is a detailed configuration diagram of an instruction processor.

【図11】システムコントローラ部の詳細構成図。FIG. 11 is a detailed configuration diagram of a system controller unit.

【図12】共有拡張記憶装置の詳細構成図。FIG. 12 is a detailed configuration diagram of a shared extended storage device.

【符号の説明】[Explanation of symbols]

1,5…内蔵拡張記憶装置、2,4…主記憶装置、3…
共有拡張記憶装置、6,7…システムコントローラ、8
〜11…命令プロセサ、12,13…入出力プロセサ、
14、16…DASD、15…共有DASD、30…コ
ンパイラの構成、31…ECOMMON 名称抽出部、32…EC
OMMON 名称の割付け先ES決定部、33…オブジュクト
プログラム生成部、34…各タスク用ソースプログラ
ム、35…ECOMMON 名称テーブル、36…ECOMMON 名称
の割付け先ES決定後の各タスク用ソースプログラム、
37…各タスク用オブジェクトプログラム、302…共
有拡張記憶制御、601…内蔵拡張記憶制御、602…
主記憶制御。
1, 5 ... Built-in extended storage device, 2, 4 ... Main storage device, 3 ...
Shared extended storage device, 6, 7 ... System controller, 8
... 11 ... Instruction processor, 12, 13 ... Input / output processor,
14, 16 ... DASD, 15 ... Shared DASD, 30 ... Compiler configuration, 31 ... ECOMMON name extraction unit, 32 ... EC
OMMON name assignment destination ES determination unit, 33 ... Object program generation unit, 34 ... Source program for each task, 35 ... ECOMMON name table, 36 ... Source program for each task after determination of ECOMMON name assignment destination ES,
37 ... Object program for each task, 302 ... Shared extended storage control, 601 ... Built-in extended storage control, 602 ...
Main memory control.

───────────────────────────────────────────────────── フロントページの続き (72)発明者 北井 克佳 東京都国分寺市東恋ケ窪1丁目280番地 株式会社日立製作所中央研究所内 (72)発明者 榊原 忠幸 東京都国分寺市東恋ケ窪1丁目280番地 株式会社日立製作所中央研究所内 ─────────────────────────────────────────────────── ─── Continuation of the front page (72) Inventor Katsuka Kitai 1-280, Higashi Koikeku, Kokubunji, Tokyo Inside Central Research Laboratory, Hitachi, Ltd. (72) Inventor Tadayuki Sakakibara 1-280, Higashi Koikeku, Kokubunji, Tokyo Hitachi, Ltd. Central Research Laboratory

Claims (3)

【特許請求の範囲】[Claims] 【請求項1】主記憶装置と該主記憶装置に接続され命令
を実行する少なくとも1つの命令実行手段とからなる複
数のサブシステムと、 ランダムアクセスメモリから構成され上記サブシステム
間で共有される共有拡張記憶装置と、 ランダムアクセスメモリから構成され上記各サブシステ
ム内で該主記憶装置の2次記憶として接続される内蔵拡
張記憶装置とを有する並列処理システム。
1. A plurality of subsystems each comprising a main memory device and at least one instruction executing means connected to the main memory device for executing an instruction; and a shared shared among the subsystems, comprising a random access memory. A parallel processing system having an expansion storage device and a built-in expansion storage device which is composed of a random access memory and is connected as a secondary storage of the main storage device in each subsystem.
【請求項2】上記サブシステムにおいて、1つのプログ
ラムを該サブシステムごとに分割したサブプログラムを
上記主記憶装置に格納し、 該サブプログラムで必要とするデータを上記内蔵拡張記
憶装置に格納し、 上記命令実行手段は該サブプログラムを該主記憶装置か
ら読出して解読し、 その解読した内容にしたがい、該内蔵拡張記憶装置から
データを読出し、あるいは他のサブシステムが上記共有
拡張記憶装置に書込んだデータを読出し、あるいは演算
処理を行い、あるいはその結果データを該内蔵拡張記憶
装置に書込み、あるいは他のサブシステムが必要とする
結果データを該共有拡張記憶装置に書込むステップから
なる特許請求項1の並列処理システムにおけるプログラ
ム実行方法。
2. In the subsystem, a subprogram obtained by dividing one program for each subsystem is stored in the main storage device, and data required by the subprogram is stored in the built-in expansion storage device, The instruction executing means reads the subprogram from the main storage device, decodes it, and reads data from the built-in expansion storage device according to the decoded contents, or writes it in the shared expansion storage device by another subsystem. A data read operation or an arithmetic process, or write the result data to the internal expansion storage device, or write the result data required by another subsystem to the shared expansion storage device. 1. A program execution method in the parallel processing system of 1.
【請求項3】上記並列処理システムで実行されるための
ソースプログラムをコンパイルする方法であって、 上記内蔵拡張記憶装置あるいは共有拡張記憶装置にデー
タを配置する宣言を同一形式で記述したソースプログラ
ム中において宣言されたデータを定義あるいは参照する
範囲を解析し、 その解析した結果を用いて該データを該内蔵拡張記憶装
置あるいは該共有拡張記憶装置のどちらに配置するかを
決定するステップからなる特許請求項2の並列処理シス
テムのためのコンパイル方法。
3. A method of compiling a source program to be executed by the parallel processing system, wherein a declaration for allocating data in the internal expansion storage device or shared expansion storage device is described in the same format. Claims comprising the step of analyzing a range that defines or refers to the data declared in, and using the analysis result to determine whether to allocate the data to the internal expansion storage device or the shared expansion storage device. A compiling method for the parallel processing system according to item 2.
JP11580592A 1991-05-08 1992-05-08 Parallel processing system and compiling method therefor Pending JPH05210645A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP11580592A JPH05210645A (en) 1991-05-08 1992-05-08 Parallel processing system and compiling method therefor

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP10248091 1991-05-08
JP3-102480 1991-05-08
JP11580592A JPH05210645A (en) 1991-05-08 1992-05-08 Parallel processing system and compiling method therefor

Publications (1)

Publication Number Publication Date
JPH05210645A true JPH05210645A (en) 1993-08-20

Family

ID=26443207

Family Applications (1)

Application Number Title Priority Date Filing Date
JP11580592A Pending JPH05210645A (en) 1991-05-08 1992-05-08 Parallel processing system and compiling method therefor

Country Status (1)

Country Link
JP (1) JPH05210645A (en)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2009008086A1 (en) * 2007-07-12 2009-01-15 Fujitsu Limited Calculation device, calculation method and calculation program
WO2009034652A1 (en) 2007-09-14 2009-03-19 Fujitsu Limited Information processing unit and method for controlling the same

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2009008086A1 (en) * 2007-07-12 2009-01-15 Fujitsu Limited Calculation device, calculation method and calculation program
JP5240196B2 (en) * 2007-07-12 2013-07-17 富士通株式会社 Calculation apparatus, calculation method, and calculation program
WO2009034652A1 (en) 2007-09-14 2009-03-19 Fujitsu Limited Information processing unit and method for controlling the same

Similar Documents

Publication Publication Date Title
US5339429A (en) Parallel processing system and compiling method used therefor
Watson et al. A practical data flow computer
Dally et al. The message-driven processor: A multicomputer processing node with efficient mechanisms
Weiss et al. Instruction issue logic for pipelined supercomputers
US4215400A (en) Disk address controller
US4875161A (en) Scientific processor vector file organization
EP0449661B1 (en) Computer for Simultaneously executing plural instructions
US5872987A (en) Massively parallel computer including auxiliary vector processor
US4968977A (en) Modular crossbar interconnection metwork for data transactions between system units in a multi-processor system
KR900002435B1 (en) Digital controller
US5347636A (en) Data processor which efficiently accesses main memory and input/output devices
US20060259744A1 (en) Method for information processing
US5165038A (en) Global registers for a multiprocessor system
JPH0769818B2 (en) Data processing device
JPH11249897A (en) Method and device for selecting super scholar provided with n-way branch or succeeding instruction in very long instruction word computer
JPS62243058A (en) Control method of interruption for multi-processor system
JP2826028B2 (en) Distributed memory processor system
Kodama et al. A prototype of a highly parallel dataflow machine EM-4 and its preliminary evaluation
US5524255A (en) Method and apparatus for accessing global registers in a multiprocessor system
US5530889A (en) Hierarchical structure processor having at least one sub-sequencer for executing basic instructions of a macro instruction
JPH07319710A (en) Compiling processing method
JPH05210645A (en) Parallel processing system and compiling method therefor
Schorr Design principles for a high-performance system
CN116802605A (en) Circuit and method for executing instructions according to trigger conditions
Bhandarkar et al. VAX vector architecture