JPH03250336A - メモリ割り当て方式 - Google Patents

メモリ割り当て方式

Info

Publication number
JPH03250336A
JPH03250336A JP4828990A JP4828990A JPH03250336A JP H03250336 A JPH03250336 A JP H03250336A JP 4828990 A JP4828990 A JP 4828990A JP 4828990 A JP4828990 A JP 4828990A JP H03250336 A JPH03250336 A JP H03250336A
Authority
JP
Japan
Prior art keywords
memory allocation
memory
program
bank
task
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
JP4828990A
Other languages
English (en)
Inventor
Takashi Kaneko
孝 金子
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.)
NEC Corp
Original Assignee
NEC Corp
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 NEC Corp filed Critical NEC Corp
Priority to JP4828990A priority Critical patent/JPH03250336A/ja
Publication of JPH03250336A publication Critical patent/JPH03250336A/ja
Pending legal-status Critical Current

Links

Landscapes

  • Devices For Executing Special Programs (AREA)

Abstract

(57)【要約】本公報は電子出願前の出願データであるた
め要約のデータは記録されません。

Description

【発明の詳細な説明】 〔産業上の利用分野〕 本発明は並列処理が可能なマルチプロセッサシステムで
実行される並列処理プログラム中で使用される局所的な
データに対するメモリ割り当て方式に関するものである
〔従来の技術〕
処理の高速性が要求されるコンピュータシステムでは、
メモリのアクセス速度を高めるため、メモリを独立動作
可能な複数のバンクに分け、連続したアドレスをほぼ同
時に読み出すようにしている。
ところで、マルチプロセッサシステムにおいて、並列処
理プログラムの実行時に各タスクが使用する局所的なデ
ータのためのメモリ領域を確保し、メモリ上の割り当て
位置を決定する場合、従来はプロセッサ間でバンク競合
が発生するか否かを特に考慮せず、所定の規則に基づい
てメモリ割り当てを行っていた。なお、バンク競合とは
、同じバンクに対して複数のタスクから同時にアクセス
要求があることをいい、アクセスが許可されたタスク以
外はアクセス可能となるまで待たされることになる。
〔発明が解決しようとする課庇〕
上述したように、従来のメモリ割り当て方式では、ハン
グ競合について特に考慮していなかったため、バンク競
合が発生しないようにメモリ割り当てができる場合であ
っても、バンク競合が発生するようにメモリ割り当てが
行われることが多く、バンク競合による待ちの発生によ
って目的プログラムを高速に実行することができないと
いう欠点があった。なお、バンク競合はマルチプロセッ
サによる並列処理開始直後や同期した直後の並列処理再
開時等に特に生ずる。
本発明は上記の点に鑑み提案されたものであり、その目
的とするところは、バンク競合となる可能性を低減させ
て目的プログラムを高速に実行することを可能としたメ
モリ割り当て方式を提供することにある。
〔課題を解決するための手段〕
本発明は上記の目的を達成するため、目的プログラム中
の並列処理を行う部分の開始部に、メモリ割り当て実行
時ルーチン呼び出し命令を挿入する機能を有するコンパ
イラと、 前記目的プログラムの実行時に呼び出されるメモリ割り
当て実行時ルーチン内にあって、当該タスクの局所的な
データを割り当てるためのメモリ領域を他のタスクとバ
ンク競合を起こさないように確保するメモリ割り当て処
理部とを備えるようにしている。
〔作用〕
本発明のメモリ割り当て方式にあっては、コンパイラが
目的プログラム中の並列処理を行う部分の開始部に、メ
モリ割り当て実行時ルーチン呼び出し命令を挿入し、前
記目的プログラムの実行時に呼び出されるメモリ割り当
て実行時ルーチン内のメモリ割り当て処理部が当該タス
クの局所的なデータを割り当てるためのメモリ領域を他
のタスクとバンク競合を起こさないように確保する。
〔実施例〕
以下、本発明の実施例につき図面を参照して説明する。
第1図は本発明のメモリ割り当て方式の一実施例を示す
構成図である。第1図において、本実施例は、原始プロ
グラム1から目的プログラム5を生成し、構文解析部2
1.中間テキスト変形部22、目的プログラム生成部2
3から構成されるコンパイラ2と、コンパイラ2の処理
の過程で生成される第1中間テキスト3および第2中間
テキスト4と、目的プログラム5を実行するプログラム
並列処理実行部6と、プログラム実行時に呼び出され、
メモリ割り当て処理部71を含むメモリ割り当て実行時
ルーチン7と、メモリ割り当て処理部71により管理・
参照されるメモリ割り当て情報テーブル8とから構成さ
れている。なお、各部の機能は以下の動作を通して説明
することとする。
以下、上記の実施例の動作を場合を分けて説明する。
【1)目的プログラムの生成 原始プログラム1が与えられてコンパイラ2が起動され
ると、コンパイラ2の構文解析部21は原始プログラム
1を入力して構文解析を行い、第1中間テキスト3を生
成する。
次いで、中間テキスト変形部22は第1中間テキスト3
を入力し、並列処理を行う部分の開始部にメモリ割り当
て実行時ルーチン呼び出し命令に相当する中間テキスト
を挿入し、第2中間テキス)・4を生成する。
次いで、目的プログラム生成部23は第2中間子キス)
・4を入力し、目的プログラム5を生成する。なお、目
的プログラム5の並列処理を行う部分の開始部には、中
間テキストに応してメモリ割り当て実行時ルーチン呼び
出し命令が埋め込まれている。
(2)目的プログラムの実行 目的プログラム5の実行が指示されると、プログラム並
列処理実行部6は目的プログラム5を実行する。
この際、並列処理を行う部分の開始部に埋め込まれたメ
モリ割り当て実行時ルーチン呼び出し命令が実行される
と、メモリ割り当て実行時ルーチン7が呼び出される。
呼び出されたメモリ割り当て実行時ルーチン7では、メ
モリ割り当て処理部71がメモリ割り当て情報テーブル
8を参照して他の実行中のタスクが使用している局所的
なデータに割り当てられているメモリのバンク開始位置
を認識し、新たにメモリ割り当てを行うタスクの局所的
なデータに対して、他の実行中のタスクとバンク競合が
発生しないように、異なるハングを開始位置としてメモ
リ割り当てを行う。そして、決定したバンク開始位置を
そのタスクと対応付けてメモリ割り当て情報テーブル8
に格納する。
次に、具体例をもって説明する。
第2図はFORTRAN言語で記述された原始プログラ
ム1の例を示すものであり、外部サブルーチン11が並
列実行される部分であり、局所的なデータとして配列A
の宣言を伴っている。
しかして、本発明を適用しない従来のメモリ割り当て方
式にあっては、バンク競合を特に考慮せずにメモリ割り
当てを行っていたので、同期をとるための外部サブルー
チン呼び出し文12の後の配列へを参照する並列処理部
分13の実行時にバンク競合を生ずる可能性が高かった
これに対し、本発明にあっては、第3図に示すように、
目的プログラム5中の並列処理を行う部分の開始部にメ
モリ割り当て実行時ルーチン呼び出し命令51が埋め込
まれ、呼び出されたメモリ割り当て実行時ルーチン(7
)では、第4図に示す如きその時点のメモリ割り当て情
報テーブル8を参照し、既にタスクTl、T2が実行さ
れており、タスクTIの局所的なデータのバンク開始位
置が0番目、タスクT2の局所的なデータのバンク開始
位置が1番目であることを認識すると、新たに実行を開
始するタスクT3の局所的なデータについてはバンク開
始位置をそれらと異なる2番目と定め、第5図に示すよ
うにメモリ割り当て情報テーブル8にその旨を追加する
従って、各タスクにおいて局所的なデータに対して同時
にアクセスが開始されても、開始のバンクが異なるため
、バンク競合が生ずる可能性がほとんどなく、待ちによ
る実行速度の低下がなくなるものである。
〔発明の効果〕
以上説明したように、本発明のメモリ割り当て方式にあ
っては、目的プログラムの実行時に呼び出されるメモリ
割り当て実行時ルーチン内のメモリ割り当て処理部によ
り、当該タスクの局所的なデータに対し、他のタスクと
バンク競合を起こさないようにメモリ頭載が割り当てら
れるため、並列処理開始直後や同期した直後の並列処理
再開時等においてもバンク競合が発生することが少なく
なり、バンク競合による待ちの発生が減少して目的プロ
グラムの実行速度を大幅に向上できる効果がある。
【図面の簡単な説明】
第1図は本発明のメモリ割り当て方式の一実施例を示す
構成図、 第2図は原始プログラムの例を示す図、第3図は目的プ
ログラムの概念図ならびに、第4図および第5図はメモ
リ割り当て情報テーブルの例を示す図である。 図において、 1・・・・・・原始プログラム 11・・・外部サブルーチン 12・・・外部サブルーチン呼び出し文13・・・並列
処理部分 2・・・・・・コンパイラ 21・・・構文解析部 22・・・中間テキスト変形部 23・・・目的プログラム生成部 3・・・・・・第1中間テキスト 4・・・・・・第2中間テキスト 5・・・・・・目的プログラム 51・・・メモリ割り当て実行時ルーチン呼び出し命令 6・・・・・・プログラム並列処理実行部7・・・・・
・メモリ割り当て実行時ルーチン71・・・メモリ割り
当て処理部

Claims (2)

    【特許請求の範囲】
  1. (1)目的プログラム中の並列処理を行う部分の開始部
    に、メモリ割り当て実行時ルーチン呼び出し命令を挿入
    する機能を有するコンパイラと、前記目的プログラムの
    実行時に呼び出されるメモリ割り当て実行時ルーチン内
    にあって、当該タスクの局所的なデータを割り当てるた
    めのメモリ領域を他のタスクとバンク競合を起こさない
    ように確保するメモリ割り当て処理部とを備えたことを
    特徴とするメモリ割り当て方式。
  2. (2)メモリ割り当て処理部は、メモリ割り当て情報テ
    ーブルを使用して各タスクの局所的なデータに割り当て
    られたメモリのバンク開始位置を管理し、バンク競合の
    有無を判断することを特徴とする請求項1記載のメモリ
    割り当て方式。
JP4828990A 1990-02-28 1990-02-28 メモリ割り当て方式 Pending JPH03250336A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP4828990A JPH03250336A (ja) 1990-02-28 1990-02-28 メモリ割り当て方式

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP4828990A JPH03250336A (ja) 1990-02-28 1990-02-28 メモリ割り当て方式

Publications (1)

Publication Number Publication Date
JPH03250336A true JPH03250336A (ja) 1991-11-08

Family

ID=12799280

Family Applications (1)

Application Number Title Priority Date Filing Date
JP4828990A Pending JPH03250336A (ja) 1990-02-28 1990-02-28 メモリ割り当て方式

Country Status (1)

Country Link
JP (1) JPH03250336A (ja)

Similar Documents

Publication Publication Date Title
JP2866241B2 (ja) コンピュータシステムおよびスケジューリング方法
JPH05204656A (ja) スレッド固有データ保持方法
KR100893527B1 (ko) 재구성 가능 멀티 프로세서 시스템에서의 매핑 및 스케줄링방법
US20050066302A1 (en) Method and system for minimizing thread switching overheads and memory usage in multithreaded processing using floating threads
JPH11259318A (ja) ディスパッチ方式
US20030097395A1 (en) Executing irregular parallel control structures
US20030069916A1 (en) Predictive resource allocation in computing systems
US20020029800A1 (en) Multiple block sequential memory management
EP0362903A2 (en) A special purpose processor for off-loading many operating system functions in a large data processing system
JPH03250336A (ja) メモリ割り当て方式
JPH02210542A (ja) 仮想計算機システムにおける実行制御方式
JPS62163148A (ja) 共通領域参照制御方式
JPH0324643A (ja) データベースのページ割当て方式
JPH03257534A (ja) メモリ割り当て方式
JPH11249917A (ja) 並列型計算機及びそのバッチ処理方法及び記録媒体
JP4122212B2 (ja) マルチプロセッサシステム
JP3239963B2 (ja) マルチ・プロセッサ計算機システム
JP2000029783A (ja) プロセッサ及び計算機
JPH09330232A (ja) 動的記憶域割り付け方式
JPH1153327A (ja) マルチプロセッサシステム
JPH02242363A (ja) 共用資源制御方式
JPH02125335A (ja) 並列論理型言語処理系におけるゴール管理処理方式
JPH03182945A (ja) 主記憶内データ転送方式
Buy et al. Liveness Analysis and the Automatic Generation of Concurrent Programs.
Beer Pipelined execution of sequential Prolog