JPH03257534A - メモリ割り当て方式 - Google Patents
メモリ割り当て方式Info
- Publication number
- JPH03257534A JPH03257534A JP5699290A JP5699290A JPH03257534A JP H03257534 A JPH03257534 A JP H03257534A JP 5699290 A JP5699290 A JP 5699290A JP 5699290 A JP5699290 A JP 5699290A JP H03257534 A JPH03257534 A JP H03257534A
- Authority
- JP
- Japan
- Prior art keywords
- parallel processing
- intermediate text
- processing part
- program
- memory
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Landscapes
- Devices For Executing Special Programs (AREA)
- Multi Processors (AREA)
Abstract
(57)【要約】本公報は電子出願前の出願データであるた
め要約のデータは記録されません。
め要約のデータは記録されません。
Description
【発明の詳細な説明】
〔産業上の利用分野〕
本発明はメモリ割り当て方式に関し、特にマルチプロセ
ッサによる並列処理に対するコン1<イラのメモリ割り
合て方式に関する。
ッサによる並列処理に対するコン1<イラのメモリ割り
合て方式に関する。
従来、マルチプロセッサシステムに対して、高級プログ
ラミング言語で記述された原始プログラムを入力し、並
列処理を行う目的プログラムを生成するコンパイラにお
いて、マルチプロセッサにより並列処理を実行する場合
に対して、原始プログラム中の並列処理の実行が可能な
処理部分で各プロセッサが局所的に使用するデータのメ
モリ上の割り当て位置を決定するときに、プロセッサ間
でバンク競合が発生するか否かを考慮せず、自由に割り
当てている。
ラミング言語で記述された原始プログラムを入力し、並
列処理を行う目的プログラムを生成するコンパイラにお
いて、マルチプロセッサにより並列処理を実行する場合
に対して、原始プログラム中の並列処理の実行が可能な
処理部分で各プロセッサが局所的に使用するデータのメ
モリ上の割り当て位置を決定するときに、プロセッサ間
でバンク競合が発生するか否かを考慮せず、自由に割り
当てている。
このような従来のメモリ割り当て方式は、コンパイラに
おいて、原始プログラムを入力し、並列処理を行う目的
プログラムを生成する場合に、原始プログラム中の並列
処理の実行が可能な処理部分で各プロセッサが局所的に
使用するデータのメモリ上の割り当て位置を決定すると
きに、並列処理の実行時にプロセッサ間でバンク競合が
発生するか否かを考慮しない為に、バンク競合か発生し
ないようにメモリ上に割り当てることができる場合ても
、バンク競合が発生するようにメモリに割り当ててしま
うので、マルチブロセ・ソサによる並列処理の実行時に
、特に並列処理開始直後や同期した直後の並列処理の再
開時などに、プロセ・フサ間でバンク競合が発生し、目
的プログラムを高速に実行することができないという欠
点を有している。
おいて、原始プログラムを入力し、並列処理を行う目的
プログラムを生成する場合に、原始プログラム中の並列
処理の実行が可能な処理部分で各プロセッサが局所的に
使用するデータのメモリ上の割り当て位置を決定すると
きに、並列処理の実行時にプロセッサ間でバンク競合が
発生するか否かを考慮しない為に、バンク競合か発生し
ないようにメモリ上に割り当てることができる場合ても
、バンク競合が発生するようにメモリに割り当ててしま
うので、マルチブロセ・ソサによる並列処理の実行時に
、特に並列処理開始直後や同期した直後の並列処理の再
開時などに、プロセ・フサ間でバンク競合が発生し、目
的プログラムを高速に実行することができないという欠
点を有している。
本発明のメモリ割り当て方式は、マルチプロセッサシス
テムに対して、高級プログラミング言語で記述された原
始プログラムを入力し、並列処理を行う目的プログラム
を生成するコンパイラのメモリ割当て方式において、 高級プログラミング言語で記述された原始プログラムを
入力し、構文解析を行って第1の中間子キストを生成す
る構文解析部と、 前記構文解析部により生成された第1の中間テキストを
入力し、原始プログラム中の並列処理の実行が可能な処
理部分を検出し、検出した処理部分の中で各プロセッサ
が局所的に使用するデータを並列処理部分情報テーブル
に登録する並列処理部分情報抽出部と、 前記並列処理部分情報抽出部により作成された並列処理
部分情報テーブルから並列処理部分の中で各プロセッサ
が局所的に使用するデータを入力し、並列処理部分をマ
ルチプロセッサで並列実行する場合に各プロセッサが局
所的に使用するデータのメモリ上の割り当て位置をプロ
セッサ間でメモリのバンク競合が発生しないように決定
し、決定した割り合て位置情報をデータ割り当て情報テ
ーブルに登録するデータ割り当て部と、前記構文解析部
により生成された第1の中間テキスト中の並列処理部分
を入力し、前記データ割り当て部で作成されたデータ割
り当て情報テーブル中の割り当て位置情報に従って、第
1の中間テキストを変形して第2の中間テキストを生成
する中間テキスト変形部と、 前記中間テキスト変形部で生成された第2の中間テキス
トを入力し、目的プログラムを生成する目的プログラム
生成部とを前記コンパイラに含んでm戒されている。
テムに対して、高級プログラミング言語で記述された原
始プログラムを入力し、並列処理を行う目的プログラム
を生成するコンパイラのメモリ割当て方式において、 高級プログラミング言語で記述された原始プログラムを
入力し、構文解析を行って第1の中間子キストを生成す
る構文解析部と、 前記構文解析部により生成された第1の中間テキストを
入力し、原始プログラム中の並列処理の実行が可能な処
理部分を検出し、検出した処理部分の中で各プロセッサ
が局所的に使用するデータを並列処理部分情報テーブル
に登録する並列処理部分情報抽出部と、 前記並列処理部分情報抽出部により作成された並列処理
部分情報テーブルから並列処理部分の中で各プロセッサ
が局所的に使用するデータを入力し、並列処理部分をマ
ルチプロセッサで並列実行する場合に各プロセッサが局
所的に使用するデータのメモリ上の割り当て位置をプロ
セッサ間でメモリのバンク競合が発生しないように決定
し、決定した割り合て位置情報をデータ割り当て情報テ
ーブルに登録するデータ割り当て部と、前記構文解析部
により生成された第1の中間テキスト中の並列処理部分
を入力し、前記データ割り当て部で作成されたデータ割
り当て情報テーブル中の割り当て位置情報に従って、第
1の中間テキストを変形して第2の中間テキストを生成
する中間テキスト変形部と、 前記中間テキスト変形部で生成された第2の中間テキス
トを入力し、目的プログラムを生成する目的プログラム
生成部とを前記コンパイラに含んでm戒されている。
次に、本発明の一実施例について図面を参照して説明す
る。
る。
第1図は本発明のメモリ割り当て方式の一実施例を示す
機能ブロック図である。
機能ブロック図である。
第1図に示すように、コンパイラ2の構文解析部21は
、原始プログラム1を入力して構文解析を行い、第1の
中間テキスト3を生成する。
、原始プログラム1を入力して構文解析を行い、第1の
中間テキスト3を生成する。
次に、並列処理部分情報抽出部22は、第1の中間テキ
スト3を入力し、原始プログラム1中の並列処理の実行
が可能な処理部分を検出し、検出した処理部分の中で各
プロセッサが局所的に使用するデータを並列処理部分情
報テーブル4に登録する。
スト3を入力し、原始プログラム1中の並列処理の実行
が可能な処理部分を検出し、検出した処理部分の中で各
プロセッサが局所的に使用するデータを並列処理部分情
報テーブル4に登録する。
次に、データ割り当て部23は、並列処理部分情報テー
ブル4から並列処理部分の中で各プロセッサが局所的に
使用するデータを入力し、並列処理部分をマルチプロセ
ッサで並列実行する場合番こ各プロセッサが局所的に使
用するデータのメモリ上の割り当て位置をプロセッサ間
でメモリのノくンク競合が発生しないように決定し、決
定した割り当て位置情報をデータ割り当て情報テーブル
5に登録する。
ブル4から並列処理部分の中で各プロセッサが局所的に
使用するデータを入力し、並列処理部分をマルチプロセ
ッサで並列実行する場合番こ各プロセッサが局所的に使
用するデータのメモリ上の割り当て位置をプロセッサ間
でメモリのノくンク競合が発生しないように決定し、決
定した割り当て位置情報をデータ割り当て情報テーブル
5に登録する。
次に、中間テキスト変形部24は、第1の中間テキスト
3中の並列処理部分を入力し、データ割り当て情報テー
ブル5中の割り当て位置情報に従って、第1の中間テキ
スト3を変形して第2の中間テキスト6を生成する。
3中の並列処理部分を入力し、データ割り当て情報テー
ブル5中の割り当て位置情報に従って、第1の中間テキ
スト3を変形して第2の中間テキスト6を生成する。
次に、目的プログラム生成部25は、中間テキスト変形
部24で生成した第2の中間テキスト6を入力して、目
的プログラム7を生成する。
部24で生成した第2の中間テキスト6を入力して、目
的プログラム7を生成する。
第2図は本発明を適用した場合に効果のあるFORTR
AN原始プログラムの例を示す図である。
AN原始プログラムの例を示す図である。
第2図<7)FORTRAN原始プログラム100を従
来のコンパイラにより翻訳すると、この原始プログラム
中の並列処理の実行が可能な処理部分で各プロセッサが
局所的に使用する配列Aのメモリ上の割り当て位置を決
定するときに、並列処理の実行時にプロセッサ間でバン
ク競合が発生するか否かを考慮しない為に、配列Aのメ
モリ上の割り当て位置をバンク競合が発生するように割
り当てている。
来のコンパイラにより翻訳すると、この原始プログラム
中の並列処理の実行が可能な処理部分で各プロセッサが
局所的に使用する配列Aのメモリ上の割り当て位置を決
定するときに、並列処理の実行時にプロセッサ間でバン
ク競合が発生するか否かを考慮しない為に、配列Aのメ
モリ上の割り当て位置をバンク競合が発生するように割
り当てている。
従って、マルチプロセッサによる並列処理の実行時に、
同期をとる為の外部サブルーチン呼び出し120の実行
の直後に、並列処理部分130において、プロセッサ間
でバンク競合が発生し、目的プログラムを高速に実行す
ることができない。
同期をとる為の外部サブルーチン呼び出し120の実行
の直後に、並列処理部分130において、プロセッサ間
でバンク競合が発生し、目的プログラムを高速に実行す
ることができない。
第3図は第2図のFORTRANi始プログラム100
中の並列処理部分130に対して本発明を適用したコン
パイラにより生成された目的プログラムが実行する処理
の一例を示す図である。
中の並列処理部分130に対して本発明を適用したコン
パイラにより生成された目的プログラムが実行する処理
の一例を示す図である。
第2図のFORTRAN原始プログラム100を本発明
を適用したコンパイラで翻訳すると、第3図に示すよう
に、ステップ210で、並列処理部分130の実行時に
、実行するプロセッサの番号によりそれぞれ分岐し、ス
テップ220−0で、プロセッサ#0が実行する並列処
理部分130中の配列Aの先頭番地に対して0番目のバ
ンクを使用し、ステップ220−1で、プロセッサ#1
が実行する並列処理部分130中の配列Aの先頭番地に
対して1番目のバンクを使用し、・・・・・ステップ2
20−Nで、プロセッサ#Nが実行する並列処理部分1
30中の配列Aの先頭番地に対してN番目のバンクを使
用するFORT:RAN目的プログラム200を生成す
る。
を適用したコンパイラで翻訳すると、第3図に示すよう
に、ステップ210で、並列処理部分130の実行時に
、実行するプロセッサの番号によりそれぞれ分岐し、ス
テップ220−0で、プロセッサ#0が実行する並列処
理部分130中の配列Aの先頭番地に対して0番目のバ
ンクを使用し、ステップ220−1で、プロセッサ#1
が実行する並列処理部分130中の配列Aの先頭番地に
対して1番目のバンクを使用し、・・・・・ステップ2
20−Nで、プロセッサ#Nが実行する並列処理部分1
30中の配列Aの先頭番地に対してN番目のバンクを使
用するFORT:RAN目的プログラム200を生成す
る。
従って、マルチプロセッサによる並列処理の実行時に、
同期をとる為の外部サブルーチン呼び出し120の実行
の直後に、並列処理部分130において、プロセッサ間
でバンク競合が発生しない為に、FORTRAN目的プ
ログ−ラム200を高速に実行することができる。
同期をとる為の外部サブルーチン呼び出し120の実行
の直後に、並列処理部分130において、プロセッサ間
でバンク競合が発生しない為に、FORTRAN目的プ
ログ−ラム200を高速に実行することができる。
以上説明したように、本発明のメモリ割り当て方式は、
コンパイラで原始プログラムを入力して並列処理を行う
目的プログラムを生成する場合に、原始プログラム中の
並列処理の実行が可能な処理部分に対して、各プロセッ
サが局所的に使用するデータのメモリ上の割り当て位置
を決定するときに、並列処理の実行時にプロセッサ間で
バンク競合が発生するか否かを考慮し、バンク競合が発
生しないようにメモリ上に割り当てる為に、マルチプロ
セッサによる並列処理の実行時に、特に並列処理の開始
直後や同期した直後の並列処理の再開時などに、プロセ
ッサ間でバンク競合が発生せず、目的プログラムを高速
に実行することができるという効果を有している。
コンパイラで原始プログラムを入力して並列処理を行う
目的プログラムを生成する場合に、原始プログラム中の
並列処理の実行が可能な処理部分に対して、各プロセッ
サが局所的に使用するデータのメモリ上の割り当て位置
を決定するときに、並列処理の実行時にプロセッサ間で
バンク競合が発生するか否かを考慮し、バンク競合が発
生しないようにメモリ上に割り当てる為に、マルチプロ
セッサによる並列処理の実行時に、特に並列処理の開始
直後や同期した直後の並列処理の再開時などに、プロセ
ッサ間でバンク競合が発生せず、目的プログラムを高速
に実行することができるという効果を有している。
第1図は本発明のメモリ割り当て方式の一実施例を示す
機能ブロック図、第2図は本発明を適用した場合に効果
のあるFORTRAN原始プログラムの例を示す図、第
3図は第2図のFORTRAN原飴プログラム100中
の並列処理部分130に対して本発明を適用したコンパ
イラにまり生成された目的プログラムが実行する処理の
一例を示す図である。 1・・・原始プログラム、2・・・コンパイラ、3・・
・第1の中間テキスト、4・・・並列処理部分情報テー
ブル、5・・・データ割り当て情報テーブル、6・・・
第2の中間テキスト、7・・・目的プログラム、21・
・・構文解析部、22・・・並列処理部分情報抽出部、
23・・・データ割り当て部、24・・・中間テキスト
変形部、25・・・目的プログラム生成部、100・・
・FORTRAN原始プログラム、110・・・並列処
理で実行する外部サブルーチン、120・・・同期をと
る為の外部サブルーチン呼び出し、130・・・同期直
後の並列処理の実行再開時に配列Aに関してバンク競合
する可能性がある並列処理部分、200・・・FORT
RAN目的プログラム、210・・・並列処理の実行時
に実行するプロセッサの番号により分岐する、220−
0・・・配列Aの先頭番地は0番目のバンクを使用する
、220−1・・・配列Aの先頭番地は1番目のバンク
を使用する。
機能ブロック図、第2図は本発明を適用した場合に効果
のあるFORTRAN原始プログラムの例を示す図、第
3図は第2図のFORTRAN原飴プログラム100中
の並列処理部分130に対して本発明を適用したコンパ
イラにまり生成された目的プログラムが実行する処理の
一例を示す図である。 1・・・原始プログラム、2・・・コンパイラ、3・・
・第1の中間テキスト、4・・・並列処理部分情報テー
ブル、5・・・データ割り当て情報テーブル、6・・・
第2の中間テキスト、7・・・目的プログラム、21・
・・構文解析部、22・・・並列処理部分情報抽出部、
23・・・データ割り当て部、24・・・中間テキスト
変形部、25・・・目的プログラム生成部、100・・
・FORTRAN原始プログラム、110・・・並列処
理で実行する外部サブルーチン、120・・・同期をと
る為の外部サブルーチン呼び出し、130・・・同期直
後の並列処理の実行再開時に配列Aに関してバンク競合
する可能性がある並列処理部分、200・・・FORT
RAN目的プログラム、210・・・並列処理の実行時
に実行するプロセッサの番号により分岐する、220−
0・・・配列Aの先頭番地は0番目のバンクを使用する
、220−1・・・配列Aの先頭番地は1番目のバンク
を使用する。
Claims (1)
- 【特許請求の範囲】 マルチプロセッサシステムに対して、高級プログラミン
グ言語で記述された原始プログラムを入力し、並列処理
を行う目的プログラムを生成するコンパイラのメモリ割
り当て方式において、高級プログラミング言語で記述さ
れた原始プログラムを入力し、構文解析を行って第1の
中間テキストを生成する構文解析部と、 前記構文解析部により生成された第1の中間テキストを
入力し、原始プログラム中の並列処理の実行が可能な処
理部分を検出し、検出した処理部分の中で各プロセッサ
が局所的に使用するデータを並列処理部分情報テーブル
に登録する並列処理部分情報抽出部と、 前記並列処理部分情報抽出部により作成された並列処理
部分情報テーブルから並列処理部分の中で各プロセッサ
が局所的に使用するデータを入力し、並列処理部分をマ
ルチプロセッサで並列実行する場合に各プロセッサが局
所的に使用するデータのメモリ上の割り当て位置をプロ
セッサ間でメモリのバンク競合が発生しないように決定
し、決定した割り合て位置情報をデータ割り当て情報テ
ーブルに登録するデータ割り当て部と、 前記構文解析部により生成された第1の中間テキスト中
の並列処理部分を入力し、前記データ割り当て部で作成
されたデータ割り当て情報テーブル中の割り当て位置情
報に従って、第1の中間テキストを変形して第2の中間
テキストを生成する中間テキスト変形部と、前記中間テ
キスト変形部で生成された第2の中間テキストを入力し
、目的プログラムを生成する目的プログラム生成部とを
前記コンパイラに含むことを特徴とするメモリ割り当て
方式。
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP5699290A JPH03257534A (ja) | 1990-03-07 | 1990-03-07 | メモリ割り当て方式 |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP5699290A JPH03257534A (ja) | 1990-03-07 | 1990-03-07 | メモリ割り当て方式 |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| JPH03257534A true JPH03257534A (ja) | 1991-11-18 |
Family
ID=13042990
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP5699290A Pending JPH03257534A (ja) | 1990-03-07 | 1990-03-07 | メモリ割り当て方式 |
Country Status (1)
| Country | Link |
|---|---|
| JP (1) | JPH03257534A (ja) |
Cited By (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2008545187A (ja) * | 2005-06-30 | 2008-12-11 | アンテルユニヴェルシテール・ミクロ−エレクトロニカ・サントリュム・ヴェー・ゼッド・ドゥブルヴェ | マルチプロセッサシステムのためのメモリ配列 |
-
1990
- 1990-03-07 JP JP5699290A patent/JPH03257534A/ja active Pending
Cited By (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2008545187A (ja) * | 2005-06-30 | 2008-12-11 | アンテルユニヴェルシテール・ミクロ−エレクトロニカ・サントリュム・ヴェー・ゼッド・ドゥブルヴェ | マルチプロセッサシステムのためのメモリ配列 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| JPH0830561A (ja) | プログラムの並列化実行方法及び並列化実行コンパイラ | |
| JP2009151645A (ja) | 並列処理装置及びプログラム並列化装置 | |
| US20170168790A1 (en) | Parallelization method, parallelization tool, and in-vehicle apparatus | |
| JPH03126133A (ja) | コンパイラ処理方法 | |
| JPH03257534A (ja) | メモリ割り当て方式 | |
| JPH09293057A (ja) | 階層構造型マルチプロセッサシステムにおけるタスク割り当て方法 | |
| JPH01118931A (ja) | プログラム変換方式 | |
| US20200409746A1 (en) | Information processing apparatus and recording medium | |
| JPH03122722A (ja) | 目的プログラム生成方式 | |
| JP2005332370A (ja) | 制御装置 | |
| JPH10111857A (ja) | マルチプロセッサ | |
| JPH03250336A (ja) | メモリ割り当て方式 | |
| JP4122212B2 (ja) | マルチプロセッサシステム | |
| JP2000020482A (ja) | ループ並列化方法 | |
| JP2809073B2 (ja) | 配列のメモリ割り付け方式 | |
| JP3006505B2 (ja) | 並列プロセスを含むプログラムの修正装置、修正方法、および修正プログラムを記憶する記憶媒体 | |
| JP3072772B2 (ja) | コンパイル装置 | |
| JPS62205434A (ja) | 再帰呼出し可能プログラムのコンパイル処理方式 | |
| JPS63163636A (ja) | 並列処理実行方式 | |
| JPH04107638A (ja) | リテラル定数割り付け方式 | |
| JPH0991151A (ja) | コンパイル装置及びプロセッサ装置 | |
| JPH047748A (ja) | 参照順による自動配列要素割付処理方式 | |
| JP2001184320A (ja) | 分散実行装置および記録媒体 | |
| Tanus | Exploring parallelism on pure functional languages with ACQuA | |
| JP2000222218A (ja) | コンパイル装置および記録媒体 |