JPH0430219A - データ・リロケート処理方法 - Google Patents

データ・リロケート処理方法

Info

Publication number
JPH0430219A
JPH0430219A JP13685490A JP13685490A JPH0430219A JP H0430219 A JPH0430219 A JP H0430219A JP 13685490 A JP13685490 A JP 13685490A JP 13685490 A JP13685490 A JP 13685490A JP H0430219 A JPH0430219 A JP H0430219A
Authority
JP
Japan
Prior art keywords
page
address
copied
data
pointer
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
JP13685490A
Other languages
English (en)
Inventor
Masahiko Shiotani
晶彦 塩谷
Masayuki Goto
雅之 後藤
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.)
Fujitsu Ltd
Original Assignee
Fujitsu 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 Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP13685490A priority Critical patent/JPH0430219A/ja
Publication of JPH0430219A publication Critical patent/JPH0430219A/ja
Pending legal-status Critical Current

Links

Landscapes

  • Devices For Executing Special Programs (AREA)
  • Stored Programmes (AREA)

Abstract

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

Description

【発明の詳細な説明】 [概要〕 コンパイラが使用する中間言語のようなポインタを含む
データ群を、ある記憶領域から他の記憶領域へ再配置す
るデータ処理装置におけるデータ・リロケート処理方法
に関し ポインタを含むデータ群の再配置を、効率的に行うこと
ができるようにすることを目的とし移動または複写対象
となる記憶領域を、複数のデータが含まれる所定の大き
さのページに分割し。
ページごとの移動または複写を行い、移動または複写し
たページごとのアドレス変換情報を持つ変換テーブルを
作成し、移動または複写したページに含まれるデータ群
中のポインタを、変換チーフルに従って更新するように
構成する。
[産業上の利用分野〕 本発明は、コンパイラが使用する中間言語のようなポイ
ンタを含むデータ群を、ある記憶領域から他の記憶領域
へ再配置するデータ処理装置におけるデータ・リロケー
ト処理方法に関する。
ソースプログラムにおいて出現した変数名2手続き名、
ラヘルなどの、ソースプログラム内での使用状況のリス
トに、オブジェクトプログラム内のアドレスを埋め込ん
だり、オブジェクトプログラム内にソースプログラムに
由来するデバッグ情報を与えたりする場合に、ソースプ
ログラムに関する情報を、ソースプログラムの解析が終
了した後まで保存しなければならない。
しかしながら、このために主記憶を使用すると巨大なプ
ログラムを処理するためには、膨大な量の主記憶が必要
となる。また、無条件に外部記憶を使用すると、小規模
プログラムを処理する場合などに、主記憶に十分余裕が
あっても5翻訳速度を低下させる原因となる。
このようなソースプログラムの解析結果である中間言語
を複写して保存する場合に、処理効率および主記憶の利
用効率を向上させる手段が望まれている。
〔従来の技術〕
ポインタを含むデータにリロケータビリティを持たせる
ためには、アドレス変換が必要である。
この機能を一般的に実現するためには、特殊なハードウ
ェアと相当大規模な管理用のソフトウェアが必要であり
、これらのもたらすオーバヘンドが。
CPU自身の性能と実際の処理能力との単離を引き起こ
す場合も少なくなかった。
このような場合、オペレーティング・システムとの密接
なインタフェースを持たない処理プログラムにおいては
、ポインタを含むデータの再配置にあたって5次のよう
な方法が用いられていた。
1)同時に存在し得るあらゆるデータを、単一の線型空
間上にマツピングする方法(通常の仮想記憶方式を用い
る方法)。
11)アドレスの代わりに、単純な演算でアドレスと1
対1に対応する(それ自身はアドレスでない)データを
、アドレスデータの代わりに使用し、ポインタ参照の度
に2所定の演算を行って実際のアドレスを決定する方法
。
しかし、i)の方法は、オペレーティング・システムの
負荷が大きいうえ、オペレーティング・システムが得る
記憶領域のアクセス頻度は、あくまで“結果パであり、
ある記憶領域と他の記憶領域との間でアクセス頻度に圧
倒的な差があった場合にも、それが偶然の所産であるの
か、あるいは定性的な特徴であるのかを知ることができ
ない。
その一方で、11)の方法は処理速度が著しく低下する
という問題点があるので、実用には適さないという一面
があった。以下2具体例に従って説明する。
第4図は従来技術の例を説明するための図である。
コンパイラが、ソースプログラムの解析結果として管理
する中間言語のレコードr1.rz、・・・には第4回
(イ)に示すように、多くのポインタ(アドレスデータ
)が含まれている。このような中間言語のレコードは、
頻繁に追加、更新、削除が行われるが、後の処理のため
に、途中結果を複写して保存することが必要になる場合
がある。
例えば、第4図(ロ)に示す記憶領域S内のレコードを
、他の記憶領域S′に複写する場合を考える。このとき
、レコードrがレコードr′に移動すると、レコード「
を指す他のレコードが持つポインタ変数Xの内容を、レ
コードr′を指すように変更する必要がある。
このため、従来、レコードを複写するごとに。
複写元アドレスと複写先アドレスの対応表を作成し、全
複写が終了した時点で3作成した対応表を参照すること
により、全ポインタ変数を更新する処理を行ったり、い
わゆるハンシングなどを用いたりして、アドレス変換を
行うようにしていた。
この方法は、対応表に大きな領域を必要とするだけでな
く、対応表の検索に時間がかかり5またノ\ソシング演
算等を用いた場合には、変換の処理時間が長くかかると
いう問題がある。
また、第4図(ハ)に示すように、全レコードr’++
rz、・・・を、不要領域も含めてそのままの形で複写
し、ポインタ変数の更新は、−律に一定値を加算または
減算するというような線型空間上のマツピングも考えら
れているが、記憶領域に無駄が生じるという問題がある
。
〔発明が解決しようとする課題〕
以上のように、従来技術では、主記憶上の無駄が多くな
ったり、処理時間が長くかかるという問題があった。
本発明は上記問題点の解決を図り、ポインタを含むデー
タ群の再配置を、効率的に行うことができるようにする
ことを目的としている。
〔課題を解決するための手段] 第1図は本発明の原理説明図である。
本発明では、ポインタを含むデータ群を他の記憶領域に
再配置する場合に、第1図(イ)に示す処理10〜処理
13によって、再配置したデータ群中のポインタを更新
する。
以下、第1図(ロ)に示す記憶領域20から記憶領域2
1にデータを複写する例に従って1本発明の詳細な説明
する。
あらかじめ、移動または複写対象となる記憶領域20を
、複数のデータレコードが含まれる所定の大きさのペー
ジP I+ P t、・・・、Pfiに分割しておく 
(処理10)、1つのページ内に複数個のレコードカ存
在してもいいが、1つのレコードが複数のページにまた
がらないようにする。
記憶領域20から新しい記憶領域21に、データを複写
する場合に、処理11により、各ページごとに複写を行
う。ページ単位に複写するのでページ内における各レコ
ードのページ先頭からの相対位置は変わらない。
各ページについて複写を行うごとに、変換テーブルTに
、複写したページアドレス情報を設定する。例えば、ペ
ージP1をページP1′に複写した場合、ページP1に
対応する変換テーブルTのエントリに、ページP r’
のページアドレスを設定する。同様に、他のページにつ
いても複写する。なお、有効なレコードが1つも存在し
ないページは不要ページであるので、その複写は行わな
い。
必要なページの複写が終了したならば、処理13により
、*写した記憶領域21における各レコードのポインタ
部を検索し、そのポインタの内容を、変換テーブルTに
従って更新する。この更新では、ポインタの内容から2
元の記憶領域20におけるページアドレスを抽出し、変
換テーブルTにおけるそのページアドレスに対応するエ
ントリを参照して、記憶領域21の新しいページアドレ
スを求める。その新しいページアドレスにページ内変位
を加えたものを、新しいポインタの内容とする。
例えば、1ページの大きさを、4096ハイトとして、
レコードのアドレスを31ビツトで表す場合、第1図(
ハ)に示すように、各レコードのアドレスは、19ピン
トのページアドレスと12ビツトのページ内変位とから
構成される。
そこで、記憶領域20のベーンを、複写先の記憶領域2
1のページにマツピングする変換チーフルTを作成する
場合、記憶領域20のページアドレス情報を変換テーブ
ルT内に格納するのではなく、対象となるページが、先
頭のページP9,2から何番目のページであるかによっ
て、それを変換テーブルTを参照する際のインデックス
として使用する。
すなわち、変換テーブルTには1?x写対象となる記憶
領域20の最小アドレスのページP PIINから、最
大アドレスのページP MAXまでのページ数分のエン
トリを設け、複写対象のページが先頭から何番目のペー
ジであるかによって、複写先ページのアドレス情報を格
納するエントリを決める。
〔作用〕
第1図(ロ)に示すように、工己憶領域20のベジP1
を、記憶領域21のページP1′に複写しページP2を
ページP 2’に複写したとする。ページP2は、最小
アドレスのページP、0、から3番目のページであるの
で、変換チーフルTの3番目のエントリには、ページP
2′のアドレスが設定される。
すべての必要なページについての複写が終わった後、記
憶領域21に複写されたレコードのポインタを更新する
。例えば、レコード 、Iは、更新前には、記憶領域2
0内のレコードr2へのアドレスAを持っている。この
アドレスAを、複写後のレコードr2’のアドレスA′
に変換する必要がある。
そこでアドレスへの上位ビットにより、ページP2のア
ドレスを求め、そのアドレスから最小のページP MI
Nのアドレスを引いて、それをページサイズで割る。そ
の値を変換テーブルTのインデ/クスに利用し、ページ
P2′のアドレスを求める。
レコーF’ r zおよびレコードr2+のページ内変
位d、d’ は、同しであるので、ページP2’のアド
レスに2ペ一ジ内変位d’  (=d)を加えたものを
、レコードr2′のアドレスA′とする。この結果をレ
コード 、Iに設定する。
他のレコードが持つポインタについての更新も。
同様に実行することができる。
変換テーブルTは、記憶領域20における限られたアド
レス範囲のページ数分のエントリを持てばよく、変換テ
ーブルTに必要となる記憶容量は少ない。また、変換テ
ーブルTを検索する場合にすべてのエントリについての
複写元アドレスの照合を行う必要がなく、ページアドレ
スからダイレクトに該当エントリを参照できるので、処
理の高速化も可能になる。
〔実施例〕
第2図は本発明の詳細な説明図、第3図は本発明の一実
施例処理フローを示す。
あるソフトウェア内部で使用されるを限個のデタレコー
1−の集合R−[rs、rz、−、rs lを考える。
各レコードを″レコード内部こδ5するアドレスを表す
データのレコード内分布゛に基づいてh種類の型乙こ分
類する。この各々の型をT、とする(1≦」≦N)。
第2圓(イ)は、そのレコードの型の例を示している。
T1型レコードは、内部に3つのアドレスデータを持ち
、そのアト−レスデータのレコード内オフセットは、0
11 +  01□、013である。また下2型レコー
ドは、2つのアドレスデータを持ちそのアドレスデータ
のレコード内オフセットは0211  oz□である。
なお、各オフセyトOJ1はT、型のレコードに含まれ
る1番目のアドレスブタが、レコードの先頭からどれだ
けの距Hcこあるかを示す定数である。
このオフセットを管理するために、テンプレートt、を
定義する。テンプレート1Jは、第2図(ロ)に示すよ
うに、TJ型のレコード内のアドレスデータの分布(オ
フセットOj□)を表すチーフルで実現する。
これから、  f  (r) = fOJl、o42.
 、−1(ただし、rがT、型の場合)であるような関
数fを定義できる。「(「)の演算およびアドレスの再
決定を効率的に行うことができれば、データレコードの
移動の際のコストを低減できる。
処理の効率化のため、以下の仮定をおく。
(1)  T、と1対1に対応する識別子1.を定義し
すべてのレコードr、はIJの内の】つを内部に持つ。
複写したレコードの]、により、ポインタの変換時に利
用するテンプレートシ、を選択するためである。
(2)使用可能な記憶領域を、各々同一の寸法のL(L
=2’″)である連続領域P、(1≦k)の面相に分割
する。各々のPkを″ページ″という。また各ページの
先頭アドレスは、記憶域空間上において、Lの4=数と
する。
(3)1つのページ内に複数個のレコードが存在しても
構わない。しかし、1つのレコードが複数のページにま
たがって存在してはならない。
(4)記憶域空間内のページの分布は、記憶域空間上で
局所的であるとする。すなわち、ある領域の先頭アドレ
スを取り出す関数a (x)において  a  (P、
  )  <a  (Pz  )  <−<a  (P
h  )<a (Pk−1) <a (Pm−z )ま
たはa (P+ )>a (P2 ) >−>a (p
m ) >a (Pk、l )>a (P’w−z )
というように、各ページが、アドレスの昇順または降順
に並んでいる場合にP、、P、、・・・、Pkが使用中
であり+  P X+l、P 11.2・・・が空き領
域であるならば1次に使用する領域はPア、1であると
する。
また、P、、P、、・・・、Pl−、、P、。1.・・
・、Pkが使用中であり、P、、PK、、、Pk。2.
・・・が空き領域であるならば1次に使用する領域はP
、とする。
(5)  レコードの移動は、必ずページ単位に行う。
すなわち、あるページが他のアドレスに移動される際に
は、同一ページ内に存在するすべてのレコードも一括し
て移動される。
以上の仮定の下では、以下の規則が成立する。
(a)  あるレコードrの先頭アドレスa (r)は
a (r)÷Lの商であるBと、その剰余りとの論理的
な和に等しい。かつ、Bはいずれかのべ一ノの先頭アド
レスに等しい。
(b)1≠jである任意のP、とP、の位置関係は内部
に含まれるレコードの内容乙こ規定されない。
すなわち、P、内でa (r) −a (P、 ) +
Dであるレコードrが、PJ内のP′に移動された場合
、a (r’ )−a (PJ)+Dである。
(C)  a CPi )呻a (P、 )の変換は“
アドレス空間の幅÷L個パの要素を持つテーブルの参照
により、繰り返し演算をせずに可能になる。
ここで、上記(4)の仮定から、レコードを含むページ
の集合をSとすると、  a (P+ )→a  (P
J )の変換に必要な変換テーブルTは 要素数が (a  (P)IAX ) −a (PMIN ) )
÷L個である。
各要素の内容が。
T”t (a (P; ) −a (Pl、lIN )
 ) ÷L]=a’(PJ)である。
ただし、  PMAXはS中で先頭アドレスが最大のペ
ージであり、P、l1llはS中で先頭アドレスが最小
のページである。
S内に未使用ページPuが存在する場合、当然a (P
MIN )≦a(P、)≦a (Psax ) T:あ
るが、 T C(a (PLI )  a (PMIN
 ) )÷l lの値は任意である。
ページの再配置が行われる際に1 この変換テーブルT
を用意する。物理的な再配置が完了し、すべてのページ
移動後のアドレスが確定した時点で。
以下の処理を行う。
(1)内部のレコードr、の各々について、IJを調べ
、テンプレートtJからオフセントの集合f ojl+
  oj□、・・・)を決定する。
(ii)a (r、)+OJkの示すアドレスの内容を
dijk とするとき、a;ibをB 、Jk+ D 
rikに分解する。
(■) T[(B;=h −a (Pl、llN ) 
) +Li +D1Jkを新しいアドレスとする。
例えば1第2図(ハ)に示す記憶領域20のP。
を、記11!領域21のPJに再配置したとする。元の
レコードr。が、このP1中のレコード「3に対するポ
インタを持っているとすると、それに対応する再配置後
のレコード「。′が持つポインタを、レコードrお′を
指すように変換する必要かある。
この場合、元のP、のアドレスa (P、 )からPM
IN(図示省略)のア)レスa (PMIN )を弓き
、それを1−で割った値を添字として変換チーフルTを
参照する。そこから得た値a (P、 )とレコードr
kのページ内変位dを加えて、変更すべきa (rk’
 )を求める。
第3図は1本発明の一実施例シこ係るデータ再配置の処
理フローを示している。以下の説明における■〜■は、
第30に示す処理■〜■に対応する。
■ (PMAX −PH1,) /L個の要素を持つ大
きさの変換テーブルTを用意する。
■ 処理対象のページPを、P′で始まる領域に複写す
る。
■ P′のアドレスを、変換テーブルTの先頭から[(
P−P□11)/LJ番百のエントリに設定する。
■ まだ、複写していないページがあれば、処理■へ戻
り、すべて複写したならば、処理■へ移る。
■ P′で始まる領域から未処理ページを取り出す。
■ 取り出した未処理ページから、未処理レコードを取
り出す。
■ レコード中の型の識別子から、テンプレートを決定
する。
■ テンプレートから得たオフセントで示されるポイン
タ変数Aについて、変換テーブルTの[(A−P□s)
/L]番目のエントリから得た値と、Aをして割った剰
余とを合わせて、新しいポイント値A′を求め3元のポ
インタ変数に代入する。
■ レコード内のすべてのポインタ変数について処理し
たかどうかを判定し、未処理データがあれば1次のオフ
セントについて処理■を繰り返す。
aOl)ルコードについての処理が終了したならばペー
ジ内に未処理レコードがあるかどうかを判定する。未処
理レコードがあれば、処理■へ戻って同様に処理を繰り
返す。
@ 1ページについての処理が終了したならば。
他に未処理ページがあるかどうかを判定する。
未処理ページが残っていれば、処理■へ戻って次のペー
ジについて同様に処理を繰り返す。全ページについての
処理が終了したならば、データの再配置処理を終了する
。
以上のデータ再配置におけるアドレス変換は。
オペレーティング・システムにおけるメモリ管理のよう
に、非常に高い頻度でデータの主記憶上での移動が起こ
る場合には不適当であるが、マルチフェーズ構成のコン
パイラ、あるいは類f以の構造を持つソフトウェアのよ
うに、記憶域へのアクセス頻度の変動が時系列的かつ定
性的な場合には。
オペレーティング・システムによるアクセス頻度の監視
よりは少ないコストで実現が可能である。
〔発明の効果〕
以上説明したように、本発明によれば、データの再配置
に伴う静的なアドレス変換を一括して高速に行うことが
でき、また、大量の作業域を必要としないので、王記憶
の有効利用を回ることが可能になる。
【図面の簡単な説明】
第1図は本発明の原理説明図 第2図は本発明の詳細な説明図 第3図は本発明の一実施例処理フロー 第4図は従来技術の例を示す。 図中、10〜13は本発明に係る処理、20゜21は記
憶領域、Tは変換テーブルを表す。 特許出1人 富士通株式会社 代 理 人  弁理士 小笠原吉義(外2名)本部II
Plり片理詰1図 第 1 区 すシフ0レート デンフルート 崎 大L 口[■]石ニー 区口面T口 (CI) 勇′了ドレスデ2夕r【 滲光明の一亥他任1を光門図 ≧ト奈aR/14!イラ・1ヌ四iす1フロー$ 3 
図

Claims (1)

  1. 【特許請求の範囲】 1、ポインタを含むデータ群を、ある記憶領域から他の
    記憶領域へ移動または複写し、移動または複写したデー
    タ群中のポインタを移動または複写結果に合わせて更新
    するデータ処理装置におけるデータ・リロケート処理方
    法において、 移動または複写対象となる記憶領域を、複数のデータが
    含まれる所定の大きさのページに分割しておき(10)
    、 ページごとの移動または複写を行い(11)、移動また
    は複写したページごとのアドレス変換情報を持つ変換テ
    ーブル(T)を作成し(12)、移動または複写したペ
    ージに含まれるデータ群中のポインタを、変換テーブル
    (T)に従って更新する(13)ことを特徴とするデー
    タ・リロケート処理方法。 2、前記変換テーブル(T)は、移動または複写対象と
    なる記憶領域における先頭のページアドレスから最終の
    ページアドレスまでの大きさを、1ページの大きさで割
    った数分のエントリを有し、各エントリに、対応する移
    動または複写先のページアドレスを設定するようにした
    ことを特徴とする請求項1記載のデータ・リロケート処
    理方法。
JP13685490A 1990-05-25 1990-05-25 データ・リロケート処理方法 Pending JPH0430219A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP13685490A JPH0430219A (ja) 1990-05-25 1990-05-25 データ・リロケート処理方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP13685490A JPH0430219A (ja) 1990-05-25 1990-05-25 データ・リロケート処理方法

Publications (1)

Publication Number Publication Date
JPH0430219A true JPH0430219A (ja) 1992-02-03

Family

ID=15185062

Family Applications (1)

Application Number Title Priority Date Filing Date
JP13685490A Pending JPH0430219A (ja) 1990-05-25 1990-05-25 データ・リロケート処理方法

Country Status (1)

Country Link
JP (1) JPH0430219A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102023109756A1 (de) 2022-04-22 2023-10-26 Fuji Corporation Bauteilversorgungsvorrichtung

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS5567989A (en) * 1978-11-17 1980-05-22 Fujitsu Ltd Relocation processing method for data base
JPS6158059A (ja) * 1984-08-29 1986-03-25 Fujitsu Ltd デ−タポインタ部の変更方式

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS5567989A (en) * 1978-11-17 1980-05-22 Fujitsu Ltd Relocation processing method for data base
JPS6158059A (ja) * 1984-08-29 1986-03-25 Fujitsu Ltd デ−タポインタ部の変更方式

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102023109756A1 (de) 2022-04-22 2023-10-26 Fuji Corporation Bauteilversorgungsvorrichtung

Similar Documents

Publication Publication Date Title
Arge et al. Optimal external memory interval management
Baker Jr List processing in real time on a serial computer
Campbell et al. Dynamic octree load balancing using space-filling curves
US7480661B2 (en) Query services for database system
CN113434482A (zh) 数据迁移方法、装置、计算机设备及存储介质
US4807120A (en) Temporal garbage collector with indirection cells
US20140351239A1 (en) Hardware acceleration for query operators
Bender et al. Exponential structures for efficient cache-oblivious algorithms
CN114090695A (zh) 分布式数据库的查询优化的方法和装置
WO2024078122A1 (zh) 数据库表扫描的方法、装置以及设备
Hanson A portable storage management system for the Icon programming language
Connor et al. Type Equivalence Checking in Persistent Object Systems.
JPS63156256A (ja) データ管理方法
CN111125216A (zh) 数据导入Phoenix的方法及装置
JPH08235033A (ja) オブジェクト指向データベース管理システムにおける結合演算方式
CN119376733A (zh) 编译算子的方法和装置
US6961839B2 (en) Generation of native code to enable page table access
Nimako et al. Chunked extendible dense arrays for scientific data storage
CN121935252A (zh) 基于索引对齐的医疗数据重构方法、系统、设备及介质
JP2988304B2 (ja) 文字列管理装置
Peck et al. The construction of a portable editor
JPH07334366A (ja) グラフリダクション機構の最適化方法および装置
Uy A network data base management system
Ke et al. A Graph-Based Design of an Open Database for 3D Models with Versioning
CN121705377A (zh) 一种面向中医药领域知识图谱众包查询的存储优化方法和系统