JPS63177223A - システム生成時におけるアドレス空間編成方式 - Google Patents

システム生成時におけるアドレス空間編成方式

Info

Publication number
JPS63177223A
JPS63177223A JP941587A JP941587A JPS63177223A JP S63177223 A JPS63177223 A JP S63177223A JP 941587 A JP941587 A JP 941587A JP 941587 A JP941587 A JP 941587A JP S63177223 A JPS63177223 A JP S63177223A
Authority
JP
Japan
Prior art keywords
data
source program
address
segment
code
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
JP941587A
Other languages
English (en)
Inventor
Yukiko Hashimoto
橋本 ユキ子
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 JP941587A priority Critical patent/JPS63177223A/ja
Publication of JPS63177223A publication Critical patent/JPS63177223A/ja
Pending legal-status Critical Current

Links

Landscapes

  • Devices For Executing Special Programs (AREA)

Abstract

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

Description

【発明の詳細な説明】 〔産業上の利用分野〕 本発明は、データがそのデータに関する属性情報を有し
、その属性情報をデータを指すポインタデータ側に含め
るようなデータ構造をとるシステムに関し、特にデータ
を指すアドレス表現の一部を属性情報として兼用し、ア
ドレス空間を同一の固定の大きさを持つ複数のセグメン
トに分け、各セグメント内にそのシステムを構成してい
る命令コードも含めた予め定められた種類のデータを定
められた場所へ配置する方式に関する。
〔従来の技術〕
リスト処理システムのリスト表現を扱うような処理方式
において、システムで扱う個々のデータに関する属性情
報(タグ)を、その個々のデータに関連して付与する場
合、そのデータ自身にその属性情報を付加すると、その
データをアクセスするまでは属性を知ることができず処
理速度が低下する。そこで、通常は、上記データのアド
レス空間内の位置を示すポインタデータ内に上記データ
の属性情報を付加し、ポインタデータ取得の段階で上記
データの属性が分かるようにしている。
そして、従来におけるこの種の方式は、ポインタデータ
の全てのビットをアドレスデータとせず、ポインタデー
タの左端の数ビットを残りのビットで表現されるアドレ
スデータが指すデータに関する属性情報を表わすフィー
ルドとして使用するものであった。例えば、ポインタデ
ータが第7図に示すように32ビツトで構成される場合
、ポインタデータの左端の8ビツト(b24〜b31)
を、残りの24ビツト(bo〜b23)のアドレス部A
Dで指示されるデータに関する属性情報を格納するフィ
ールドATとするものである。
しかし、上述した従来の方式では、データに関する属性
情報を格納するフィールドATを、そのデータを指示す
るポインタデータ中のアドレス部ADとは別に確保する
ため、アクセスできるアドレス空間の大きさが属性情報
フィールドATの大きさによって制限される0例えば第
7図に示したように、ポインタデータが32ビツト構造
であり、属性情報フィールドとして8ビツトのフィール
ドATを使用すると、アドレス部ADは24ビツトにな
るので、アクセス可能なアドレス空間は16メガバイト
に制限されることになる。
このような問題は、アドレス部ADのビット数を、利用
するアドレス空間の大きさに見合うだけ増加させること
で、一応解消されるであろうが、その分ポインタデータ
のビット数が多くなるので、メモリの利用効率が低下し
、却って好ましくない。
そこで、ポインタデータのビット数を増加させなくても
、そのポインタデータで指示することができるアドレス
空間を拡張し得るようにした方式%式% この方式は、ポインタデータ自身をアクセスしたとき、
そのポインタデータが指すデータをアクセスすることな
しにそれが指すデータの属性をそのポインタデータ内の
情報によって識別し得るようにする為に、例えば第8図
に示すように、計算機システムのアドレス空間1を、ポ
インタデータ2に含まれるLビットのアドレスデータ3
の下位Nビット中の上位Mビットで定まる大きさのセグ
メントS0,31,32.・・・・・・、に分割し、各
セグメントにおける前記下位Nビット中の上位Mビット
で定まる2吋個のエリアEO,El、・・・・・・。
のうち、全てのセグメントSO,St、32.・・・・
・・、において同一位置のエリアには予め定められた同
一の属性を有するデータ(A種データ、8種データ等)
を配置するようにしておき、ポインタデータ2に含まれ
るアドレスデータ3の下位Nビット中の上位Mビットの
内容と、前記予め定められた配置構成とに基づいてその
ポインタデータ2が指すデータの属性を識別するように
したものである。
例えば第8図において、各ビット数り、 N、 Mをそ
れぞれ32.16. 4ビツトとすると、アドレス空間
lの各セグメントSo、SL、32.・・・・・・。
は、64キロバイトの大きさとなり、各セグメントの一
つのエリアEO等は4キロバイトとなる。そして、第8
図の例では、各セグメントの先頭から3個のエリアEO
,E1. E2にA種のデータが、次の2個のエリアE
3.E4にB種のデータが配置される如く、予め各エリ
アに配置されるデータの属性つまり種類が定められてい
る。従って、今、第8図のポインタデータ2をアクセス
して取得し、そのアドレスデータ3の下位Nビット中の
上位Mビットの内容を識別したところ、セグメントの先
頭から3個のエリアEO,El、 E2の何れかに該当
していたとすると、前述のようにそのエリアにはA種の
データが配置されているので、そのポインタデータ2が
指すデータはA種のデータであることが判明する。アド
レスデータ3の下位Nビット中の上位Mビットはあくま
でもアドレスデータの一部を構成するものである。即ち
、従来のようにポインタデータ内にアドレスデータとは
別に属性情報の格納専用のフィールドを含めるのではな
く、アドレスデータの一部を属性情報の識別用ビットと
して兼用するものであり、従って、アクセスできるアド
レス空間の大きさが属性情報フィールドによって制限さ
れることはなくなり、同一ビット数のポインタデータで
あれば、従来より大きなアドレス空間を利用することが
可能となる。
上記で例示したし=32ビットの場合、最大4ギガバイ
トのアドレス空間のアクセスが可能である。
〔発明が解決しようとする問題点〕
ところで、第7図に示したように、アドレス表現として
意味を持たないポインタデータの左端の数ビットをその
ポインタデータが指すデータに関する属性情報を表すフ
ィールドとして使用する従来方式においては、データの
種類に応じて主記憶上の特定の場所にデータを配置する
必要はなく、データの種類を問わず各データが主記憶上
にランダムに配置されていれば良い。
しかしながら、第8図に示したようなアドレス表現方式
を採る場合は、そのシステムが予め所有している各種デ
ータ、命令コードをその属性に応じて定められた場所に
配置することが必要となる。
このような配置を実現する一般的な方法としては、シス
テム起動後の初期化処理として即ちシステムを記述する
ソースプログラムを翻訳して実行可能な形式で主記憶上
にローディングした後の処理として、各データ、命令コ
ードをセグメント内の定められた場所へ移送する方式が
考えられる。
この方式の場合、まず第1に各種データ、命令コードを
目的の場所へ移送し、次にそのデータ、命令コードを指
しているポインタデータを全て新しいアドレス値に更新
するという処理を行なうことになる。ここで、各データ
、命令コードの移送はある程度機械的操作で済むが、そ
のデータを指す全てのポインタデータを更新する作業は
、一般にポインタデータがメモリ中に規則性をもって現
れると規定することができない為、更新すべきポインタ
データが現れる場所をテーブルに登録しておくか、ある
いはチェーンで繋いでお(などの手段が必要となり、こ
の為上述した方式ではデータの移送、ポインタデータの
更新というシステム実行時の処理時間のオーバーヘッド
が実に大きくなってしまい、更に処理も複雑になるとい
う欠点がある。またそのシステムの構造によっては実行
時にデータ、命令コードを移送することは不可能である
場合も考えられる。
本発明はこのような事情に鑑みて為されてものであり、
その目的は、アドレス空間の編成をシステム生成時に行
なうことにより、処理速度の低下を防止することにある
〔問題点を解決するための手段〕
本発明は上記目的を達成するために、システムを記述す
るソースプログラムを翻訳し実行可能な形式にして主記
憶上にローディングした際、複数の固定の大きさのセグ
メントで構成されるアドレス空間の各セグメントを構成
する複数個のエリアのうち全てのセグメントにおいて同
一位置のエリアには同一の属性を有するデータ、命令コ
ードが配置されるように、前記ソースプログラム中に、
前記データ、命令コードが配置されるセグメント内のサ
イズに応じた必要な情報を埋込んでおくように構成され
る。
〔作用〕
ソースプログラムの段階で、システムを主記憶上にロー
ディングした際自動的に倉図したセグメント構造に展開
されるような情報をソースプログラムに埋込んでおくこ
とにより、システム生成時に目的とするセグメント構造
を得ることができ、ソースプログラム自体がそのような
構造を持つためポインタデータ中のアドレス値もコンパ
イル時に所望の値に設定される。従って、システム実行
時にデータの配置の為の特別な処理を行なう必要がなく
なる。
〔実施例〕
次に本発明の実施例について図面を参照して説明する。
第1図は本発明の実施例の構成図であり、1oはシステ
ムを記述しているソースプログラムを格納する記憶手段
、11はソースプログラムの人力手段、12はデータ、
コードサイズの計算手段、19は計算手段12で処理さ
れたソースプログラムを格納する記憶手段、13はソー
スプログラムの編集手段、14は編集法のソースプログ
ラムを格納する記憶手段、17はアセンブラ、18はリ
ンカ、15はローダ、16は主記憶装置である。
また、第2図は本発明の実施例で使用するポインタデー
タの構造図である。本実施例は、ポインタデータ20を
32ビツトで構成し、その全てのビットをアドレスデー
タ21として使用し、最大4ギガバイトのアドレス空間
のアクセスを可能としだものである、ポインタデータ2
0が指示するデータの属性がどのようなものかを判定す
る為に使用する属性情報フィールド22として、本実施
例ではアドレスデータ21の第13ビツトから第15ビ
ツトのb13〜b15を使用する。
上述のようなポインタデータ構造をとる場合、第3図に
示すようにアドレス空間30は、大きさが64キロバイ
ト(21−バイト)の多数のセグメントに分割する。そ
して、各セグメントは、属性情報フィールド22のビッ
ト数「3」に応じて8(2’)個のエリアEO〜E7に
分ける。
今、計算機システムで取り扱うデータ乃至コードの属性
が4種類であり、それがコード(l)、コード(2)、
データ(1)、データ(2)とすると、各セグメントの
同一エリアEO〜E7にどのような属性のデータ、コー
ドを配置するかは、各属性の量の比率を加味して決定す
る0例えば、その比率が、コード(l):コード(2)
:データ(l):データ(2)−31:2:1 であれば、第3図に示すように各セグメント内のエリア
EO,El、E2にコード[11を、エリアE3、E4
にコード(2)を、エリアE5.E6にデータ+11を
、エリアE7にデータ(2)を、それぞれ配置するよう
に予め決められる。そして、この場合、例えば第4図に
示すように、アドレスデータ21中の属性情報フィール
ド22を構成するピッI−b13゜b14.  b15
が、各セグメントのエリアEO,El。
E2を指示する(000,001,010)のときはそ
のポインタデータが指すデータの属性がコード(11で
ある旨、エリアE3.E4を指示する(011.100
)のときはコード(2)である旨、エリアE5.E6を
指示する(101,110)のときはそのポインタデー
タが指すデータの属性がデータ(11である旨、エリア
E7を指示する(111)のときはそのポインタデータ
が指示するデータはデータ(2)である旨を、例えば属
性判定用テーブル等に登録しておく、なお、命令コード
として複数の属性が存在するのは、リスト処理システム
等においては、命令コードの中にはデータの一種として
扱われるものがあるからである。
上述のようにしておけば、例えば第5図に示すように、
主記憶装置50から読出されデータレジスタ51に格納
されたデータがポインタデータを含み、そのポインタデ
ータが指すデータの属性を知りたい場合、データ属性判
定手段52を起動し、このデータ属性判定手段52によ
って、データレジスタ51中からポインタデータに含ま
れる属性情報フィールドのビット列(第2図のビットb
13〜b15)を取出し、この内容と第4図に示すよう
な情報を記憶するテーブル53の内容とから今回のポイ
ンタデータで指示されたデータの属性を判断することが
できる。そして、今回のポインタデータが指すデータを
読込む必要があるときは、データレジスタ51に格納さ
れたポインタデータを用いてそのデータをアクセスする
ことができる。
次に、主記憶上に上述のような配置構成になるようシス
テムを記述するデータ、コードを自動的に展開する方式
について説明する。
第1図において、入力手段11は、記憶手段lOからシ
ステムを記述する例えばアセンブリ言語で書かれたソー
スプログラムを入力し、計算手段12に渡す。計算手段
12は、第3図に示したような形式でシステムが展開さ
れるようデータ、コードサイズの計算処理を行ない、そ
の結果を記憶手段19を介して編集手段13に渡し、編
集手段13はソースプログラムの編集処理を行なう。編
集されたソースプログラムは記憶手段14に格納され、
その後、アセンブラ17により翻訳され、リンカ18で
リンクされて実行可能な形式にされ、ローダ15によっ
て主記憶装置16にロードされる。
第6図は計算手段12の処理例の流れ図であり、T1−
T15は各ステップを示す。第6図に示すように、計算
手段12は、入力したアセンブリ言語の一つの命令がコ
ード(1)、コード(2)、データ(1)、データ(2
)の何れの種類に属するかをチェックしくT1−73)
、対応する処理へ進む。例えば、入力した命令がコード
(1)である場合、これまで入力したコード(11のサ
イズの合計がコード(t+領領域サイズ(第3図のエリ
アEO〜E2の合計サイズ)を越えていないかどうかを
調べ(T4)、越えていなければ次の命令に処理を移す
が、もし越えていればソースプログラム上のその位置に
1第nセグメントコード(1)゛という印を挿入しくT
5)、これまで入力したコード(1)のサイズの合計を
クリアする(T6)、ここで、nは1から昇順に使用さ
れる値である。これと全く同じ処理が、ステップT7〜
T9によりコード(2)に対し、ステップTIO〜T1
2によりデータ(1)に対し、ステップT13〜T15
によりデータ(2)に対し行なわれる。
計算手段12による第6図に示した処理が入力手段11
から渡される全ての命令について行なわれ、それが完了
すると、編集手段13が起動され、編集手段13は、記
憶手段19に格納されたソースプログラムに対し計算手
段12で付けられた印に基づいて、[第1セグメントコ
ード(ill、r第1セグメントコード(21J、r第
1セグメントデータ(11J’ 、  r第1セグメン
トデーク(21J、r第2セグメントコード(IIJ、
r第2セグメントコード(21J、r第2セグメントデ
ータ(il」、r第2セグメントデータ(2)J。
・・・・・・、という順にセグメントが構成されるよう
にソースプログラムの編集を行なう。
この編集方式に関してはアセンブラ(或いはコンパイラ
)、リンカ等が持っている機能を使用しても良く、例え
ば“第1セグメントコード(lビという印を、主記憶上
の所定の場所ヘロードされるよう指示するアセンブラの
ORG命令に置換えることが考えられる。またそうでな
ければ単純に各データ、コード領域を順番にマージする
こともでき、その場合各データ、コード領域に規定のサ
イズに満たないものがあったときはそのサイズ一部分だ
け空き領域を確保するようにして所定のセグメント構造
を保証する。また、これらの処理を行なう手段としては
マクロ言語を設定したり、処理プログラムを作成する方
法が考えられる。
編集手段13で編集された情報は記憶手段14に格納さ
れ、後のシステム生成時に、アセンブラ17によって翻
訳され、リンカ18によって実行可能な形式にされた後
、ローダ15によって主記憶装置16にロードされる。
このとき、記憶手段14に格納された各データ、コード
は、ソースプログラムの段階でそれが対応するセグメン
ト内の定められた場所ヘローディングされるよう編集さ
れているものであるから、各データ、コードは第3図に
示した構成で自動的に配置されることになり、且つ、ポ
インタデータが所望のアドレス値に設定される。従って
、システム実行時にデータの配置のための特別な処理を
行なう必要はない。
以上本発明の★施例について説明したが、本発明は以上
の実施例にのみ限定されず、その他各種の付加変更が可
能である。例えば、主記憶上にローディングした際に自
動的に意図したセグメント構造に展開されるようソース
プログラムのコーディング時に予め上述したデータ、コ
ードのサイズの計算を行ない且つ必要な情報を人手によ
り埋込むようにしても良い。また、上記実施例はポイン
タデータとアドレスデータとを同一ビット数としたが、
ポインタデータのビット数よりアドレスデータのビット
数を小さくすることも可能である。
また、システムで使用可能な全てのアドレス空間をセグ
メント化する以外に、必要部分のみをセグメント化する
ようにしても良い。更に、属性情報フィールドを3ビツ
トとし、属性情報の種類を4種類としたが、各々必要に
応じて任意の値とすることができる。
〔発明の効果〕
以上説明したように、本発明は、システムを記述してい
るソースプログラムを入力し、データ。
コードの種類を判定し、そのサイズを計算して各データ
、コードがセグメント内の定められた場所ヘローディン
グされるようソースプログラム中に必要な情報を埋込ん
でおくことにより、予め定められた種類のデータ、コー
ドをセグメント内の定められたアドレスをもつ場所へ配
置しなければならないという特殊な処理をシステム実行
時ではなくシステム生成時に行なうことができるためそ
の処理時間をシステム実行時間に含める必要がなく、そ
のために処理速度の低下を招くことがないという効果が
ある。従って、上記4q上のデータを指すアドレス表現
の一部をそのデータの属性を表す属性情報として使用す
るシステムを有効に実施することができる。
【図面の簡単な説明】
第1図は本発明の実施例の構成図、 第2図は本発明の実施例で使用するポインタデータの構
造図、 第3図は本発明の実施例におけるアドレス空間の使用例
を示す図、 第4図は属性情報フィールドのビット内容とデータ属性
との関係図、 第5図はデータ属性識別動作の説明図、第6図は計算手
段12の処理例の流れ図、第7図は従来方式のポインタ
データ構造を示す図および、 第8図はアドレス表現の一部を属性情報として使用する
システムの構成図である。 図において、1.30・・・アドレス空間、2.20・
・・ポインタデータ、3,21・・・アドレスデータ、
4゜22・・・属性情報フィールド、11・・・ソース
プログラムの入力手段、12・・・データ、コードサイ
ズの計算手段、13・・・ソースプログラムのkI集平
手段SO〜S2・・・セグメント、EO〜E7・・・エ
リア。

Claims (1)

    【特許請求の範囲】
  1. システムを記述するソースプログラムを翻訳し実行可能
    な形式にして主記憶上にローディングした際、複数の固
    定の大きさのセグメントで構成されるアドレス空間の各
    セグメントを構成する複数個のエリアのうち全てのセグ
    メントにおいて同一位置のエリアには同一の属性を有す
    るデータ、命令コードが配置されるように、前記ソース
    プログラム中に、前記データ、命令コードが配置される
    セグメント内のサイズに応じた必要な情報を埋込んでお
    くようにしたことを特徴とするシステム生成時における
    アドレス空間編成方式。
JP941587A 1987-01-19 1987-01-19 システム生成時におけるアドレス空間編成方式 Pending JPS63177223A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP941587A JPS63177223A (ja) 1987-01-19 1987-01-19 システム生成時におけるアドレス空間編成方式

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP941587A JPS63177223A (ja) 1987-01-19 1987-01-19 システム生成時におけるアドレス空間編成方式

Publications (1)

Publication Number Publication Date
JPS63177223A true JPS63177223A (ja) 1988-07-21

Family

ID=11719753

Family Applications (1)

Application Number Title Priority Date Filing Date
JP941587A Pending JPS63177223A (ja) 1987-01-19 1987-01-19 システム生成時におけるアドレス空間編成方式

Country Status (1)

Country Link
JP (1) JPS63177223A (ja)

Similar Documents

Publication Publication Date Title
KR100518584B1 (ko) 공유 라이브러리 시스템 및 상기 시스템 구축 방법
JP2810675B2 (ja) デバック方式
JP3138171B2 (ja) システム機能をダウンロードする方法
JPH04275684A (ja) 図形情報データベース構築方法およびその方法が適用される装置
JP2009037546A (ja) スレッド固有領域を利用するメモリ管理方法およびその方法を用いたコンピュータ
EP4209895A1 (en) Code translation method and apparatus, and device
JP2004030638A (ja) マイクロプロセッサキャッシュ設計初期化
EP0790555A2 (en) Compile apparatus and method
CN113805971B (zh) 一种应用程序运行方法、计算设备及存储介质
JPS63177223A (ja) システム生成時におけるアドレス空間編成方式
JPH113105A (ja) プログラマブルコントローラのプログラミング装置
JPH02140825A (ja) プログラムの再配置処理方法
JP4260895B2 (ja) マイクロコントローラにおける複数フォーマットアドレス指定
JPH086797A (ja) 定数参照最適化処理装置
JP3090048B2 (ja) 標準プログラムの機能拡張方法及び方式
JP2022023631A (ja) アセンブリ命令変換プログラム、アセンブリ命令変換方法、及び情報処理装置
JPS5846439A (ja) 計算機のプログラム編集方法
JP2000267861A (ja) インタプリタの実装方法及びインタプリタプログラムを記録したコンピュータ読み取り可能な記録媒体
JP2005228047A (ja) 言語処理装置及び言語処理プログラム
JP3722854B2 (ja) データ編集装置
CN118365750A (zh) 一种基于Autolisp的市政道路图纸分图方法
JP2004139369A (ja) 定数アドレス領域を指示するポインタ解析方法
JPH06195398A (ja) Cadシステム
JPS5872251A (ja) デ−タ処理方式
JPH0440528A (ja) プログラム翻訳装置