JPS61224042A - 仮想記憶システムにおける配列要素接近に関する最適化コ−ド生成方式 - Google Patents

仮想記憶システムにおける配列要素接近に関する最適化コ−ド生成方式

Info

Publication number
JPS61224042A
JPS61224042A JP60065338A JP6533885A JPS61224042A JP S61224042 A JPS61224042 A JP S61224042A JP 60065338 A JP60065338 A JP 60065338A JP 6533885 A JP6533885 A JP 6533885A JP S61224042 A JPS61224042 A JP S61224042A
Authority
JP
Japan
Prior art keywords
segment
segments
switching
loop
array
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
JP60065338A
Other languages
English (en)
Inventor
Minoru Okui
奥居 稔
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 JP60065338A priority Critical patent/JPS61224042A/ja
Publication of JPS61224042A publication Critical patent/JPS61224042A/ja
Pending legal-status Critical Current

Links

Landscapes

  • Devices For Executing Special Programs (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

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

Description

【発明の詳細な説明】 (技術分野) 本発明は仮想記憶システムにおける配列要素接近に関す
る最適化コード生成方式に関し、特にセグメンテーシ曽
ンにより仮想記憶システムt−賽現しているシステムの
コンパイラのループ中の配列要素接近の最適化手法に関
するものである。
(従来技術) セグメンテーシヨンにより仮想記憶システムを表現して
いるシステムでは、一つのセグメント長よりも大きな配
列を複数のセグメントにより表現している。このような
配列要素を引用する場合は添字(配列の先頭から相対位
置)を評価し、その添字の値により、どのセグメントに
含まれるか判定し、さらに選択されtセグメントの何番
目に位置しているかを求める必要がある。つまり、添字
計算の命令の後、セグメント選択の命令とセグメント内
相対位置を求める命令を実行しなければならない。
たとえば、複数のセグメントで表現される一つの配列を
ループ中で使用する場合は第1図に示すフォートラン(
FORTRAN)言語で記述されるが。
この言語を従来の処理方式について処理する場合第4図
に示すステップにて行なわれる。
すなわち、ステップ1では添字の値Iからセグメント内
相対アドレスを求める。
゛ステップ2では添字の値工からセグメント番号を求め
る。
ステップ3ではセグメントベーステーブルと。
ステップ2で得られたセグメント番号工りセグメント記
述語を求め、それをセグメントベースレジスタ(BRk
)にロードする。
ステップ4ではセグメントペースレジスタ(BRk)と
セグメント内相対アドレス(XRn)の修飾に工9、配
列要素A (I)の実効アドレスを求め、8=8+A(
1)を実行する。
ステップ5ではI、にルーズの増分値1を加算する。
ステップ6ではループ終了の判定を行う。ループ終了条
件を満tさなければステップ1に分岐する。
このように従−米の方式ではループの繰シ返し毎にステ
ップ1からステップ6を実行するので、各ステップの命
令実行時間を加算するとそデル計算機の基本命令の実行
速度を1としたとき、全体の実行時間47となり、可成
長い時間が費される。
一般にこの種の従来の方式ではセグメント切り換える命
令が他の命令に比べて実行速度が遅いので、ループ中で
、このような配列要素の引用がある場合、1セグメント
に納まる配列の配列IEHの接近に比べると、セグメン
ト選択をループの外側で実行できないので、繰り返し毎
にセグメント選択、セグメント内相対位置を求める命令
が実行される。つまり、従来の方式は通常の添字計算に
比べ、余分でしかも実行速度の遅い命令が繰り返し毎に
実行されかつ性能が低下する等の欠点があつt。
(発明の目的) 本発明の目的は、従来方式におけるかかる欠点を改善す
ると共に、添字の値の変化から笑際にセグメントを切り
換える必要のある場合を検出する命令の速度がセグメン
ト切シ換えの命令速度よりも速いことを利用して繰返し
毎に変化する添字の値の変分が、セグメント長に比べて
小さい場合は。
繰り返し毎にセグメントを切り換えるか否かの判定を入
れて、実際にセグメント選択を行う命令は必要な繰シ返
しでのみ実行する工うにし、ループ中の複数セグメント
で表現される配列の効果的データ接近の方式を提供する
ことにある。
(発明の構成) 本発明によれば、セグメンテーシ冒ンにより。
仮想記憶システムを表現しているシステムに於て、一つ
のセグメント長Lす゛も大きな配列管複数のセグメント
で表現する場合、セグメントの切シ換えを必要とすると
きのみセグメント切り換えの命令を実行するオブジェク
トコードを生成することを特徴とする仮想記憶システム
における配列要素接近に関する最適化コード生成方式が
得られる。
(5j!施例) 次に本発明の実施例について図面を参照して説明する。
第1図は本発明の一実施例における言語を7オートラン
(FORTRAN)で示したものである。第1図におい
て、この実施例に用いられるフォートラン言語は複数の
セグメントで表現される一つの配列をループ中で使用す
る場合が記述されている。
第2図t′i、IEI図に示すフォートラン言語に記述
され友配列へのメモリ配置と、コンパイラが生成するセ
グメントベーステーブルを示したものである。WE2図
において、本実施例におけるセグメン)[を256に語
と想定したので、配列人のメモリ配置10は、最大炎の
四つのセグメントで表現される。セグメントベーステー
ブル20に、セグメントの開始番地を示す記述語群で、
個々のセグメント毎に一つ作成され、配列人を構成する
セグメントの順に並べられて登録されている。セグメン
トの切り換えは、セグメントベーステーブルを参照して
行われる。
第3図は、!1図のFORTRANプログラムのループ
部分の処理を示したものである。第3図において、実行
時間の欄の数値は、従来の方式と同様にモデル計算機の
基本命令の実行速度t−1としたときの各ステップの実
行に要する時間を表現したものであり、処理欄の@GO
TO”の後の数値は、ステップ番号を示す。XRnは指
標レジスタ、BRnはセグメントベースレジスタである
本実施例をステップ毎に説明すると、ループの開始前に
I=1に対するセグメント内相対アドレスがXRnに、
セグメント記述語がセグメントベースレジスタBRkK
設定されている。
ステップlではセグメントベースレジスタ(BRk)と
セグメント内相対アドレスを示すXRnの修飾により、
配列A (1)の実効アドレスを求め、8=S+A(I
)t−実行する。
ステップ2で1XRnにループの増分値1を加算する。
ステップ3ではX Rn がセグメント長を超えていな
ければステップ7に分岐し、超えていればステップ4を
実行する。
ステップ4で[XRn  からセグメント長を減算する
7これが次のセグメント内相対アドレスを示す。本実施
例の方式による計算機ではステップ3の実行により、次
のセグメント内相対アドレスは自動的に求まり、ステッ
プ4の!行は必要ない。
ステップ5ではセグメント番号を1加算する。
ステップ6ではセグメントベーステーブルとステップ2
で得られたセグメント番号によりセグメント記述語を求
め、それをセグメントベースレジスタBRkにロードす
る。
ステップ7.8ではループ終了の判定を行う。
ループ終了条件を満たさなければ、ステップ1に分岐す
る。
このように本実施例では1通常のループの繰り返しでス
テップ1,2.3.7,8の実行で良く。
ステップlからステップ8をすべて実行するのにgt図
に示す例で言えば4個にすぎず、Cの実行時間が、ルー
プ全体の実行時間からみれば殆んど無視できる値である
従って1本実施例は従来方式のループの繰り返し毎にス
テップ1からステップ6t−実行することにより得られ
る実行時間47に対し%実行時間22で良く、ループ全
体の実行時間も従来の50%以下に改善される。
この工うに本発明はセグメンテーシ冒ンにより仮想記憶
システムヲ表現しているシステムにおいて一つのセグメ
ント長よりも大きな配列を複数のセグメントで表現する
場合、配列要素接近を行うために配列の先頭からの相対
位置を求めた後、セグメントの選択とセグメント内アド
レスを求める必要が生じるが、ループ繰り返し毎に連続
的に配列要素をアクセスする場合、繰り返し毎にアクセ
スするセグメントが変わることはまれなので、セグメン
ト切り換えの命令を常に実行するのではなく、必要にな
っ九場合のみ実行することによシ、処理効率を同上させ
ることを特徴とする配列要素接近に関する最適化コード
生成方式が得られる。
(発明の効果) 以上説明し友ように、本発明はセグメンテーシ璽ンによ
り仮想記憶システムを表現しているシステムにおいて、
複数セグメントからなる配列のループ中での引用に対す
るデータ接近が効率良くなるため、プログラムの実行効
率が大幅に向上する効果がある。
【図面の簡単な説明】
第1図は、本発明の一実施例の説明に使用したプログラ
ムを示す図、第2図は第1図で使用した配列のメモリ配
置図とそれに関連するセグメントベーステーブルを図示
した図、第3図は、@1図で示したプログラムのステッ
プを示し九本実施例を示す図、第4図は、第1図で示し
たプログラムのステップを示した従来の方式を示す図で
ある。 10・・・・・・配列人のメモリ配置、20・・・・・
・セグメントベーステーブル。 代理人 弁理士  内 原   野   t   ”+
111.ノ ー、・′ 爵、3 図 方4図

Claims (1)

    【特許請求の範囲】
  1. セグメンテーシヨンにより、仮想記憶システムを表現し
    ているシステムに於て、一つのセグメント長よりも大き
    な配列を複数のセグメントで表現する場合、セグメント
    の切り換れを必要とするときのみセグメント切り換えの
    命令を実行するオブジェクトコードを生成することを特
    徴とする仮想記憶システムにおける配列要素接近に関す
    る最適化コード生成方式。
JP60065338A 1985-03-29 1985-03-29 仮想記憶システムにおける配列要素接近に関する最適化コ−ド生成方式 Pending JPS61224042A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP60065338A JPS61224042A (ja) 1985-03-29 1985-03-29 仮想記憶システムにおける配列要素接近に関する最適化コ−ド生成方式

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP60065338A JPS61224042A (ja) 1985-03-29 1985-03-29 仮想記憶システムにおける配列要素接近に関する最適化コ−ド生成方式

Publications (1)

Publication Number Publication Date
JPS61224042A true JPS61224042A (ja) 1986-10-04

Family

ID=13284044

Family Applications (1)

Application Number Title Priority Date Filing Date
JP60065338A Pending JPS61224042A (ja) 1985-03-29 1985-03-29 仮想記憶システムにおける配列要素接近に関する最適化コ−ド生成方式

Country Status (1)

Country Link
JP (1) JPS61224042A (ja)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS56127986A (en) * 1980-03-10 1981-10-07 Nec Corp Computer of virtual storage system
JPS5852752A (ja) * 1981-09-24 1983-03-29 Fujitsu Ltd セクション決定方式
JPS5858652A (ja) * 1981-09-30 1983-04-07 Fujitsu Ltd 最適な変位の決定方法

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS56127986A (en) * 1980-03-10 1981-10-07 Nec Corp Computer of virtual storage system
JPS5852752A (ja) * 1981-09-24 1983-03-29 Fujitsu Ltd セクション決定方式
JPS5858652A (ja) * 1981-09-30 1983-04-07 Fujitsu Ltd 最適な変位の決定方法

Similar Documents

Publication Publication Date Title
JPH06103463B2 (ja) コード生成方法
CN109791492B (zh) 流水线相关树查询优化器和调度器
US6226790B1 (en) Method for selecting optimal parameters for compiling source code
EP0847022A2 (en) Method for designing an architectural system
US6567976B1 (en) Method for unrolling two-deep loops with convex bounds and imperfectly nested code, and for unrolling arbitrarily deep nests with constant bounds and imperfectly nested code
CN105487911A (zh) 一种基于编译指导的众核数据分片方法
JPS61224042A (ja) 仮想記憶システムにおける配列要素接近に関する最適化コ−ド生成方式
JPH04263331A (ja) コンピュータ用大域命令スケジューラ
Roh et al. Generation and quantitative evaluation of dataflow clusters
CN115004150A (zh) 用于预测和调度软件流水化循环中的复制指令的方法和装置
US7093260B1 (en) Method, system, and program for saving a state of a task and executing the task by a processor in a multiprocessor system
JPS6055864B2 (ja) ベクトルプロセツサ
JPH0659908A (ja) プログラム実行装置
Ortiz et al. An array language for data parallelism: Definition, compilation, and applications
Brezany et al. Parallelization of irregular out-of-core applications for distributed-memory systems
CN112558978B (zh) 支撑异构众核全芯片视角的加速编程和编译方法
WO2024065868A1 (zh) 一种用于图计算并行执行的中间表示方法及装置
CN112559031B (zh) 基于数据结构的众核程序重构方法
Kuper et al. Improving GPU Utilization in ML Workloads Through Finer-Grained Synchronization
JPH0784797A (ja) ロードモジュールへのソースコード行番号登録方法および装置
Das et al. A survey on bit dimension optimization strategies of microprograms
Moon et al. Hardware implementation of a general multi-way jump mechanism
CN117075903A (zh) 基于张量的编译方法、设备及其计算机可读存储介质
Geβner et al. Synthesis of control units in a design environment for chip architecture
JPS5846439A (ja) 計算機のプログラム編集方法