JPH03265936A - コンパイル処理方式 - Google Patents

コンパイル処理方式

Info

Publication number
JPH03265936A
JPH03265936A JP6519290A JP6519290A JPH03265936A JP H03265936 A JPH03265936 A JP H03265936A JP 6519290 A JP6519290 A JP 6519290A JP 6519290 A JP6519290 A JP 6519290A JP H03265936 A JPH03265936 A JP H03265936A
Authority
JP
Japan
Prior art keywords
block
data
base register
blocks
area
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
JP6519290A
Other languages
English (en)
Inventor
Hiroaki Nakamura
宏明 中村
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.)
Toshiba Corp
Original Assignee
Toshiba 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 Toshiba Corp filed Critical Toshiba Corp
Priority to JP6519290A priority Critical patent/JPH03265936A/ja
Publication of JPH03265936A publication Critical patent/JPH03265936A/ja
Pending legal-status Critical Current

Links

Landscapes

  • Devices For Executing Special Programs (AREA)

Abstract

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

Description

【発明の詳細な説明】 [発明の目的] (産業上の利用分野) この発明は主記憶域管理にセグメント方式をとり、デー
タ参照に於けるベースレジスタの数とオフセットとして
取り得る値に制限のあるコンピュータシステムに用いら
れるコンパイル処理方式(従来の技術) 従来、コンパイラがデータを参照する手続き部コードを
生成するとき、第4図に示すように、連続した領域に割
り当てられるデータ1.2毎に、その先頭アドレスを指
し示すポインタ3.4を生成する(このポインタは、リ
ンクプログラムにより値が設定される)。そして、デー
タの参照は、ポインタ値からのオフセットと、ポインタ
値をロードしたベースレジスタ5により行なう。ところ
で、オフセットとして取り得る値には制限(オフセット
の上限値)があるので、データ領域のサイズがオフセッ
トの上限値を上回る場合、データ領域をオフセットの上
限値で複数のブロックに分割し、それぞれのブロックの
先頭へのポインタ6゜7を生成する。そして、個々のブ
ロック内に定義されたデータの参照は、そのブロックへ
のポインタ値からのオフセットと、そのブロックへのポ
インタ値をロードしたベースレジスタ8により行なう。
この際、ベースレジスタには数に限りがあるので、参照
データが定義されたブロックのポインタが、レジスタに
ロードされていないことがある。
この場合、そのブロックのポインタを、ベースレジスタ
にロードしなくてはならない。セグメント方式をとるシ
ステムでは、一般的に手続き部とデータ部は異なるセグ
メントに割り当てられ、また異なるセグメントのポイン
タのロードはオーバヘッドが大きいので、従来の方式で
は、参照回数の多いブロックのポインタが何度もレジス
タにロードされる可能性があり、ポインタのレジスタロ
ードが占めるオーバヘッドが無視できなくなるという問
題があった。
(発明が解決しようとする課題) 上記したように従来では、主記憶域管理にセグメント方
式をとり、データ参照に於けるベースレジスタの数とオ
フセットとして取り得る値に制限のあるコンピュータシ
ステムに於いて、参照回数の多いブロックのポインタが
屡ベースレジスタにロードされる可能性があり、このた
めポインタのレジスタロードに占めるオーバヘッドが無
視できなくなるという問題があった。
本発明は上記実情に鑑みなされたもので、ブロックのポ
インタをベースレジスタにロードする回数を減らし、シ
ステムオーバヘッドを最小限に抑えるために、データの
ブロック分割を最適化できるコンパイル処理方式を提供
することを目的とする。
[発明の構成コ (課題を解決するための手段及び作用)本発明は、デー
タ定義情報を抽出する手段と、一つのベースレジスタで
参照するデータ領域が一定の拡張領域の範囲内で可変定
義できる手段を有して、参照されるデータが可能な限り
多く含まれるようにブロック分割する手段と、ブロック
単位のデータ参照回数を記憶する手段と、分割されたブ
ロックとベースレジスタを効率よく対応付ける手段を設
けてなる構成として、ブロックへのポインタをベースレ
ジスタにロードする回数を減じ、システムオーバヘッド
の減少を実現する。
上記したように本発明に於いては、データ領域の先頭か
らオフセットの上限値で単純にブロック分割するのでは
なく、参照の多いデータを可能な限り一つのブロックと
して分割する構成としたので、ブロック内のデータを参
照するためのポインタのロード回数が減り、それに伴う
システムオーバヘッドも減少する。
(実施例) 以下図面を参照して本発明の一実施例を説明する。
第1図は本発明の一実施例を示すブロック図である。
第1図に於いて、11はデータ定義情報抽出部であり、
データを定義する領域の属性(コモンデータ、ローカル
データ等)、データ領域の先頭からのオフセット等の情
報を抽出し、データ定義情報テーブルを作成する。12
はデータ参照情報抽出部であり、データの参照がある毎
に、データ定義情報テーブルから、データの属性と、デ
ータ領域の先頭からのオフセットを取り出す。13はブ
ロックテーブル作成部であり、データ参照情報抽出部1
2で取り出した情報をもとに、ブロック分割を最適に行
なうために必要な情報を記憶するブロックテーブルを作
成する。14はベースレジスタ割当て部であり、ブロッ
クテーブル作成部13で作成したブロックテーブルをも
とに、ブロックとベースレジスタの最適な対応付けを行
なう。
第2図は本発明の一実施例に於けるデータ領域のブロッ
ク分割処理手順を示すフローチャートである。第2図に
於いて、SLはブロックテーブルを検索するステップで
あり、参照されたデータを包含できるブロックが存在す
るか否かを判定する。
S2はブロックテーブルを作成するステップであり、参
照されたデータを包含できるブロックが存在しない場合
、新たにブロックを定義し、そのブロックテーブルを作
成する。S8はブロック範囲を変更するステップであり
、参照されたデータが、あるブロックのブロック範囲を
可能な範囲で拡張することによりブロックに包含される
ならば、そのブロックの範囲を変更する。S4はブロッ
ク参照回数を更新するステップであり、参照されたデー
タを包含するブロックテーブルのブロック参照回数を更
新(+1)する。S5はブロックとベースレジスタを対
応付けするステップであり、ブロックの参照回数と、使
用可能なベースレジスタの数により、適切な対応付けを
行なう。
第3図は、本発明の実施例に於けるブロックテーブルを
示す図である。第3図に於いて、aはブロックテーブル
ポインタであり、ブロックテーブルが複数ある場合、次
のブロックテーブルをポインタする。bはブロック基準
値であり、データ領域に於ける、そのブロックの開始ア
ドレスを記憶する。Cはブロックサイズであり、管理し
ているブロックのその時点でのブロックサイズを記憶す
る。dはデータ領域属性であり、ブロックが対象とする
データ領域の属性(コモンデータ、ローカルデータ等)
を記憶する。eはブロック参照回数であり、ブロックが
包含するデータの参照回数を記憶する。hはブロック領
域であり、一つのブロックが包含している領域全体であ
る。g及びiはブロック拡張可能領域であり、(オフセ
ットの上限値−ブロックサイズ)により求まる値の範囲
内の領域である。fは他のブロックで包含される領域で
あり、異なるブロックテーブルで管理される。
jは未だブロックによって管理されていない領域である
。k及び1はブロック最大値であり、kはブロック基準
値から下位アドレス方向に拡張した場合のブロック最大
値、lはブロック基準値から上位アドレス方向に拡張し
た場合のプロ・ツク最大値である。
ここで上記第1図乃至第3図を参照して本発明の一実施
例に於ける動作を説明する。
コンパイラ10は、データを定義する度毎に、その定義
情報をデータ定義情報テーブル15に記憶する。データ
が参照されたとき、データ定義情報テーブル15からデ
ータ情報(属性、オフセット)を取り出した後、ブロッ
クテーブル1B(第3図参照)を検索し、参照されたデ
ータを包含できるブロックが存在するか否かを判定する
(第2図ステップS2)。この際、ブロックテーブル1
6のプロ・ツク基準値(第3固持号b)は、データ領域
をブロック分割したときの最下位アドレスを示し、ブロ
ック中の参照データの中で最下位アドレスを持つ領域に
設定する。ブロックの最上位アドレスはブロック中の参
照データの中で、最上位アドレスを持つデータアドレス
に設定し、[ブロック最上位アドレス−ブロック最下位
アドレスコで計算された値が、ブロックサイズ(第3固
持号C)となる。
[ブロック最大値−ブロックサイズコで計算された値が
、ブロック拡張可能サイズであり、そのサイズ分だけブ
ロックを、下位アドレス方向(第3固持号g)、又は上
位アドレス方向(第3固持号i)に拡張可能であり、そ
の領域をブロック拡張可能領域と呼ぶことにする。尚、
ブロック最大値とは、ベースレジスタを利用したデータ
参照に於いて、オフセットとして取り得る値の上限値で
あり、固有値である。又、参照されたデータを包含でき
るブロックとは、データ領域の属性が一致し、データの
アドレスがブロック領域(第3回行号h)、又はブロッ
ク拡張可能領域(第3固持号g。
i)に含まれるブロックである。データを包含できるブ
ロックが存在した場合、ブロック範囲の変更処理(第2
図ステップS3)を行なう。データのアドレスがブロッ
ク領域内に含まれるとき、ブロック範囲の変更(即ち、
ブロック基準値、ブロックサイズの変更)はない。デー
タのアドレスがブロック領域の下位にあるブロック拡張
可能領域(第3固持号g)内に含まれる場合、ブロック
の基準値はそのデータアドレスとし、ブロックサイズは
[旧ブロックサイズ+(旧ブロック基準値−新ブロック
基準値)コとする。
データのアドレスが、ブロック領域の上位にあるブロッ
ク拡張可能領域(第3固持号i)内に含まれる場合、ブ
ロック基準値に変更はなく、ブロックサイズは[データ
アドレス−ブロック基準値]とする。
参照されたデータを包含できるブロックがない場合(第
3固持号j)、ブロックテーブルを新たに作成する(第
2図ステップS2)。即ち、ブロック基準値は、そのデ
ータのアドレスとし、ブロツクサイズは0とする(即ち
、ブロック最大値サイズ分だけ、ブロック基準値から下
位アドレス方向、又は上位アドレス方向に、ブロック拡
張可能領域が定義される)。
データを包含するブロックを作成した後、そのブロック
の参照回数を1増やす(第3回持号e。
第2図ステップS4)。
以上の処理を、未処理のデータ参照が存在する間、繰り
返すことにより、すべてのデータは、どこかのブロック
に属し、ブロック参照回数により、′そのブロックの参
照頻度を知ることができる。
ブロック参照回数により、ブロックとベースレジスタの
対応付けを行なう(第2図ステップS5)。使用可能ベ
ースレジスタが一つの場合、すべてブロックと対応付け
る。即ち、異なるブロックのデータが参照される毎に、
ブロックのポインタをベースレジスタにロードする。使
用可能ベースレジスタが二つ以上の場合、[使用可能ベ
ースレジスター1コの数だけ、参照回数の多いブロック
から順に、ブロックとベースレジスタを固定的に対応付
け、それらのブロックへのポインタは、−度だけベース
レジスタにロードする。固定的に対応付けられたブロッ
ク以外のデータが参照される場合、残る一つのベースレ
ジスタにそのブロックのポインタがロードされていない
ならば、ポインタをロードする。
上記したように本発明の実施例によれば、参照の多いデ
ータを可能な限り一つのブロックとして分割するので、
ブロック内のデータを参照するためのポインタのロード
回数が減り、それに伴うシステムオーバヘッドも減少す
る。
[発明の効果] 以上詳記したように本発明によれば、データ定義情報を
抽出する手段と、参照されるデータが可能な限り多く含
まれるようにブロック分割する手段と、ブロック単位の
データ参照回数を記憶する手段と、分割されたブロック
とベースレジスタを効率よく対応付ける手段を設けてな
る構成としたことにより、ブロックへのポインタをベー
スレジスタにロードする回数を減じて、システムオーバ
ヘッドを減少できる。
【図面の簡単な説明】
′Is1図は本発明の一実施例を示すブロック図、第2
図は上記実施例に於けるデータ領域のブロック分割処理
手順を示すフローチャート、第3図は上記実施例に於け
るブロックテーブルの構成を示す図、第4図はコンパイ
ラの処理を説明するための図である。 lO・・・コンパイラ、11・・・データ定義情報抽出
部、12・・・データ参照情報抽出部、13・・・ブロ
ックテーブル作成部、14・・・ベースレジスタ割当て
部、15・・・データ定義テーブル、1B・・・ブロッ
クテーブル。

Claims (1)

    【特許請求の範囲】
  1. 主記憶域管理にセグメント方式をとり、ベースレジスタ
    の数とオフセットとして取り得る値に制限のあるコンピ
    ュータシステムに於いて、一つのベースレジスタで参照
    するデータ領域が所定拡張領域の範囲内で可変定義でき
    る手段を有して上記データ領域を参照データが可能な限
    り多く含まれるように決定する手段と、ベースレジスタ
    の数によってデータ領域とベースレジスタを対応付ける
    手段とを具備してなることを特徴とするコンパイル処理
    方式。
JP6519290A 1990-03-15 1990-03-15 コンパイル処理方式 Pending JPH03265936A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP6519290A JPH03265936A (ja) 1990-03-15 1990-03-15 コンパイル処理方式

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP6519290A JPH03265936A (ja) 1990-03-15 1990-03-15 コンパイル処理方式

Publications (1)

Publication Number Publication Date
JPH03265936A true JPH03265936A (ja) 1991-11-27

Family

ID=13279812

Family Applications (1)

Application Number Title Priority Date Filing Date
JP6519290A Pending JPH03265936A (ja) 1990-03-15 1990-03-15 コンパイル処理方式

Country Status (1)

Country Link
JP (1) JPH03265936A (ja)

Similar Documents

Publication Publication Date Title
US5548751A (en) Dynamic data storage system allowing variable size records and fields by using linked record segments
JP3216708B2 (ja) 多段式知能的文字列比較方法
JP3510042B2 (ja) データベース管理方法及びシステム
JP2004518226A (ja) データベースシステムおよびクエリオプティマイザ
JP2888188B2 (ja) 情報検索装置
JPH03265936A (ja) コンパイル処理方式
JPH08190571A (ja) 文書検索方法
US8849866B2 (en) Method and computer program product for creating ordered data structure
JPH09292986A (ja) 部品抽出方法
JPH02156348A (ja) 複数のハッシュ表のあふれ領域管理方法
JPH03109642A (ja) コンパイル装置
JPH05165619A (ja) 標準名付与システム
JPH02171831A (ja) コンパイラのデータ接近方式
JPH04323748A (ja) アドレス変換方法および装置
JPH04157533A (ja) 翻訳システムにおける名標テーブルの管理方式
JPS6261118A (ja) 木構造インデクスの検索方式
JPH04170643A (ja) 最適セグメンテーション決定システム
JP2002530785A (ja) ディジタル・メモリ構造と装置及びそれの管理方法
JPH0395678A (ja) データパス表示装置
JPH0553886A (ja) テーブルアクセス管理方式
JP2003186715A (ja) データベース管理方法及びシステム並びにデータベース管理プログラム
JPS62163145A (ja) コンパイラ装置
JPH0397343A (ja) データモニタ装置
JPH038074A (ja) 登録文字パターンの管理方式
JP2002183070A (ja) メモリ使用効率の最適化方法及び情報処理装置並びに記録媒体