JPH01108639A - アドレス変換方式 - Google Patents
アドレス変換方式Info
- Publication number
- JPH01108639A JPH01108639A JP62263804A JP26380487A JPH01108639A JP H01108639 A JPH01108639 A JP H01108639A JP 62263804 A JP62263804 A JP 62263804A JP 26380487 A JP26380487 A JP 26380487A JP H01108639 A JPH01108639 A JP H01108639A
- Authority
- JP
- Japan
- Prior art keywords
- address
- data
- logical
- compiler
- addresses
- 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
Links
- 238000006243 chemical reaction Methods 0.000 title claims abstract description 14
- 230000010365 information processing Effects 0.000 claims abstract description 9
- 238000013519 translation Methods 0.000 claims description 36
- 238000000034 method Methods 0.000 claims description 22
- 230000014616 translation Effects 0.000 description 35
- 238000010586 diagram Methods 0.000 description 5
- 238000005457 optimization Methods 0.000 description 4
- 238000004458 analytical method Methods 0.000 description 3
- 230000000694 effects Effects 0.000 description 3
- 238000005206 flow analysis Methods 0.000 description 2
- 230000006870 function Effects 0.000 description 2
Landscapes
- Devices For Executing Special Programs (AREA)
Abstract
(57)【要約】本公報は電子出願前の出願データであるた
め要約のデータは記録されません。
め要約のデータは記録されません。
Description
【発明の詳細な説明】
〔産業上の利用分野〕
本発明は、論理アドレスを用いてデータをアクセスする
情報処理システムの開発に有用なアドレス変換方式に関
するものである。
情報処理システムの開発に有用なアドレス変換方式に関
するものである。
論理アドレスを用いてデータをアクセスする情報処理シ
ステムにおいては、データを以下の手順でアクセスする
。
ステムにおいては、データを以下の手順でアクセスする
。
(1)データに論理アドレスを付与する。
(2)データ参照時には、論理アドレスを物理アドレス
に変換し、物理アドレスによりデータをアクセスする。
に変換し、物理アドレスによりデータをアクセスする。
従来の技術では、このアドレス変換機構を、手続きまた
は関数としてサブルーチン化し、データへのアクセスの
都度、この変換機構を呼出すコードを明示的に記述して
いた。
は関数としてサブルーチン化し、データへのアクセスの
都度、この変換機構を呼出すコードを明示的に記述して
いた。
なお、アドレス変換の原理に関しては、昭晃堂刊「オペ
レーティングシステムの実際J (1984年)第95
〜104頁において論じられている。
レーティングシステムの実際J (1984年)第95
〜104頁において論じられている。
上記従来技術では、アドレス変換機構の呼出しをプログ
ラマが制御するために、アドレス変換機構の呼出しコー
ドを人手により、その都度記述しなければならないとい
う問題があり、これは、システムの生産性を低下させる
要因となっていた。
ラマが制御するために、アドレス変換機構の呼出しコー
ドを人手により、その都度記述しなければならないとい
う問題があり、これは、システムの生産性を低下させる
要因となっていた。
また、アドレス変換機構の呼出しを忘れ、論理アドレス
によりデータを直接アクセスする等の誤りを犯す確率が
高いという問題もあり、これは、システムの信頼性を低
下させる要因となっていた。
によりデータを直接アクセスする等の誤りを犯す確率が
高いという問題もあり、これは、システムの信頼性を低
下させる要因となっていた。
本発明は上記事情に鑑みてなされたもので、その目的と
するところは、従来のアドレス変換方式における上述の
如き問題を解消し、生産性が良く信頼性が高い情報処理
システムの開発を可能とするアドレス変換方式を提供す
ることにある。
するところは、従来のアドレス変換方式における上述の
如き問題を解消し、生産性が良く信頼性が高い情報処理
システムの開発を可能とするアドレス変換方式を提供す
ることにある。
本発明の上記目的は、データのアドレスを論理アドレス
により管理し、データへのアクセスは、論理アドレスを
物理アドレスに変換した後に該物理アドレスによって行
う情報処理システムにおいて、プログラム言語のコンパ
イラが、プログラム内に記述された論理ポインタおよび
論理ポインタによるデータへのアクセスを検出し、これ
を、アドレス変換機構との定められた接続仕様に基づい
て、論理アドレスを物理アドレスに変換してデータをア
クセスする命令コードに変換する如く構成したことを特
徴とするアドレス変換方式によって達成される。
により管理し、データへのアクセスは、論理アドレスを
物理アドレスに変換した後に該物理アドレスによって行
う情報処理システムにおいて、プログラム言語のコンパ
イラが、プログラム内に記述された論理ポインタおよび
論理ポインタによるデータへのアクセスを検出し、これ
を、アドレス変換機構との定められた接続仕様に基づい
て、論理アドレスを物理アドレスに変換してデータをア
クセスする命令コードに変換する如く構成したことを特
徴とするアドレス変換方式によって達成される。
本発明に係わるアドレス変換方式においては、論理アド
レスによるデータ参照であることをコンパイラに知らせ
るための規約と、アドレス変換機構との接続仕様、すな
わち、アドレス変換機構の呼出し方法、入力となる論理
アドレスの指定方法および出力となる物理アドレスの受
取り方を明確に定めることにより、論理アドレスによる
データの参照をコンパイラが自動的に検出し、アドレス
変換機構の呼出しによる、論理アドレスを物理アドレス
に変換するためのオブジェクトコード、および、その結
果として得られる物理アドレスによりデータをアクセス
するためのオブジェクトコードを、コンパイラに生成さ
せるものである。
レスによるデータ参照であることをコンパイラに知らせ
るための規約と、アドレス変換機構との接続仕様、すな
わち、アドレス変換機構の呼出し方法、入力となる論理
アドレスの指定方法および出力となる物理アドレスの受
取り方を明確に定めることにより、論理アドレスによる
データの参照をコンパイラが自動的に検出し、アドレス
変換機構の呼出しによる、論理アドレスを物理アドレス
に変換するためのオブジェクトコード、および、その結
果として得られる物理アドレスによりデータをアクセス
するためのオブジェクトコードを、コンパイラに生成さ
せるものである。
本発明に係わるアドレス変換方式における論理アドレス
によるデータのアクセス手順は、以下に示すようになる
。
によるデータのアクセス手順は、以下に示すようになる
。
(1)コンパイラは、特定の変数を論理アドレスが入っ
たポインタ変数であることを認識する。
たポインタ変数であることを認識する。
(2)コンパイラは、論理アドレスで指示されたデータ
の参照に対し、定められた接続仕様に従い、アドレス変
換機構を呼出すオブジェクトコードを生成する。
の参照に対し、定められた接続仕様に従い、アドレス変
換機構を呼出すオブジェクトコードを生成する。
(3)コンパイラは、変換結果の物理アドレスによって
、データにアクセスするオブジェクトコードを生成する
。
、データにアクセスするオブジェクトコードを生成する
。
通常、−回変換した値は、短期間はそのまま使用できる
。従って、コンパイラは、コンパイル対象プログラム中
での文脈により、変換済みの物理アドレスの有効期間を
管理できる。これにより、冗長なアドレス変換コードを
削除し、プログラムの実行効率を向上させることができ
る。
。従って、コンパイラは、コンパイル対象プログラム中
での文脈により、変換済みの物理アドレスの有効期間を
管理できる。これにより、冗長なアドレス変換コードを
削除し、プログラムの実行効率を向上させることができ
る。
また、コンパイラは、アドレス変換のアルゴリズムには
関与しないため、論理アドレス方式の情報処理システム
全般に本方式を適用できる。
関与しないため、論理アドレス方式の情報処理システム
全般に本方式を適用できる。
以下、本発明の実施例を図面に基づいて詳細に説明する
。なお、以下の説明においては、PASCALコンパイ
ラを例にしたものを説明する。
。なお、以下の説明においては、PASCALコンパイ
ラを例にしたものを説明する。
第2図は論理アドレスと物理アドレスとの関係を示すも
のであり、〈論理アドレス空間〉1上に配置されたデー
タ(例えば、斜線部)は、その論理アドレス(0002
20Gg) 2を、アドレス変換機構3を通してアドレ
ス変換し、変換結果の物理アドレス(OOIA40C8
) 4を使用して、物理アドレス空間5をアクセスしな
ければならないことを示している。
のであり、〈論理アドレス空間〉1上に配置されたデー
タ(例えば、斜線部)は、その論理アドレス(0002
20Gg) 2を、アドレス変換機構3を通してアドレ
ス変換し、変換結果の物理アドレス(OOIA40C8
) 4を使用して、物理アドレス空間5をアクセスしな
ければならないことを示している。
また、このとき、アドレス変換機構が使用する「アドレ
ス変換のアルゴリズム」6は、アドレス変換機構内で閉
じたものであり、どのようなアルゴリズムであっても良
いことを示している。
ス変換のアルゴリズム」6は、アドレス変換機構内で閉
じたものであり、どのようなアルゴリズムであっても良
いことを示している。
第3図はアドレス変換機構とコンパイラとの接続仕様の
例を示すものであり、アドレス変換機構の呼出し方法と
して、■、■、■の規約を定め、入出力情報の受渡し方
法として、■、■の規約を定めた例である。ソースプロ
グラム中に、論理アドレスによるデータの参照を検出す
ると、コンパイラは、上記規約に従ってアドレス変換用
のオブジェクトコードを生成する。
例を示すものであり、アドレス変換機構の呼出し方法と
して、■、■、■の規約を定め、入出力情報の受渡し方
法として、■、■の規約を定めた例である。ソースプロ
グラム中に、論理アドレスによるデータの参照を検出す
ると、コンパイラは、上記規約に従ってアドレス変換用
のオブジェクトコードを生成する。
第1図はコンパイラによる本発明の実現方式を示すもの
である。コンパイラによる構文解析処理12では、原始
プログラム11を解析し、論理アドレスによるデータの
参照を検出し、論理アドレス参照用の中間語14を出力
する(13)。大域的最適化処理15においては、構文
解析処理12が出力した中間語14を入力し、複数の論
理アドレス参照の中から共通化可能なものを検出し、論
理アドレス参照を共通化した中間語(最適化済みの中間
語)17に変換する。コード生成処理18においては、
大域的最適化済みの中間語17を入力し、論理アドレス
参照を検出する毎に、論理アドレス参照用のオブジェク
トコート20を出力する(19)。このような手順を経
て、論理アドレスによるデータ参照のためのオブジェク
トコードを含むオブジェクトモジュール21を出力する
。
である。コンパイラによる構文解析処理12では、原始
プログラム11を解析し、論理アドレスによるデータの
参照を検出し、論理アドレス参照用の中間語14を出力
する(13)。大域的最適化処理15においては、構文
解析処理12が出力した中間語14を入力し、複数の論
理アドレス参照の中から共通化可能なものを検出し、論
理アドレス参照を共通化した中間語(最適化済みの中間
語)17に変換する。コード生成処理18においては、
大域的最適化済みの中間語17を入力し、論理アドレス
参照を検出する毎に、論理アドレス参照用のオブジェク
トコート20を出力する(19)。このような手順を経
て、論理アドレスによるデータ参照のためのオブジェク
トコードを含むオブジェクトモジュール21を出力する
。
第4図は、本発明をPASCALコンパイラに適用した
場合の、PASCAL言語のソースプログラムと、PA
SCALコンパイラが出力するオブジェクトコードの例
を示すものである。図中、21はPASCALのプログ
ラムの始まりを示す文である。また、22は論理ポイン
タを記号「↑」により定義し、23は物理ポインタを記
号「@」により定義している。論理ポインタによるデー
タの参照を記号「↑」で行い、物理ポインタによるデー
タの参照を記号「@」で行うことと規定する。
場合の、PASCAL言語のソースプログラムと、PA
SCALコンパイラが出力するオブジェクトコードの例
を示すものである。図中、21はPASCALのプログ
ラムの始まりを示す文である。また、22は論理ポイン
タを記号「↑」により定義し、23は物理ポインタを記
号「@」により定義している。論理ポインタによるデー
タの参照を記号「↑」で行い、物理ポインタによるデー
タの参照を記号「@」で行うことと規定する。
また、先に第3図に示した規定により、アドレス変換機
構は名前をLPToPPとし、汎用レジスタ1に設定さ
れた論理アドレスを物理アドレスに変換し、変換された
物理アドレスを汎用レジスタ1に返すものとする。
構は名前をLPToPPとし、汎用レジスタ1に設定さ
れた論理アドレスを物理アドレスに変換し、変換された
物理アドレスを汎用レジスタ1に返すものとする。
文24は、論理ポインタにより指示された、整数型の変
数に定数1を代入することを示す。この文に対するオブ
ジェクトコードは、25に示す通りとなる。コンパイラ
は、汎用レジスタ1に論理アドレスを設定し、アドレス
変換機構(LPToPP)を呼出し、アドレス変換機構
により変換された物理アドレスが入っている汎用レジス
タ1によってデータをアクセスするオブジェクトコード
を生成する。
数に定数1を代入することを示す。この文に対するオブ
ジェクトコードは、25に示す通りとなる。コンパイラ
は、汎用レジスタ1に論理アドレスを設定し、アドレス
変換機構(LPToPP)を呼出し、アドレス変換機構
により変換された物理アドレスが入っている汎用レジス
タ1によってデータをアクセスするオブジェクトコード
を生成する。
この一連のオブジェクトコードにより、論理アドレスに
よるデータのアクセスを正しく実行することができる。
よるデータのアクセスを正しく実行することができる。
ここで、コンパイラは、アドレス変換機構との接続仕様
を、「論理アドレスを入力すれば物理アドレスが返って
来る」という抽象レベルでしか規定していないため、実
際のアドレス変換がどのように行われ゛るかには、依存
しないものである。従って、アドレス変換のアルゴリズ
ムに依存することなく、論理アドレス方式を採用した任
意の処理システムに対し、汎用的に適用することができ
る。
を、「論理アドレスを入力すれば物理アドレスが返って
来る」という抽象レベルでしか規定していないため、実
際のアドレス変換がどのように行われ゛るかには、依存
しないものである。従って、アドレス変換のアルゴリズ
ムに依存することなく、論理アドレス方式を採用した任
意の処理システムに対し、汎用的に適用することができ
る。
文26は論理ポインタにより指示された、整数型の変数
に定数1を加算することを示す。この例では、コンパイ
ラによりアドレス変換回数を削減できることを説明する
。
に定数1を加算することを示す。この例では、コンパイ
ラによりアドレス変換回数を削減できることを説明する
。
オブジェクトコードの最適化を行わない場合、アドレス
変換機構の呼出しコードは、論理ポインタによる参照記
号「↑」に対応して、右辺および左辺に対して1回ずつ
、合計2回必要である。この場合、のオブジェクトコー
ドは27に示す通りになる。しかし、この文では、右辺
で参照した論理アドレスをそのまま左辺で参照しており
、その間に論理アドレスを変更していないということを
、コンパイラは文脈から解釈することが可能である。
変換機構の呼出しコードは、論理ポインタによる参照記
号「↑」に対応して、右辺および左辺に対して1回ずつ
、合計2回必要である。この場合、のオブジェクトコー
ドは27に示す通りになる。しかし、この文では、右辺
で参照した論理アドレスをそのまま左辺で参照しており
、その間に論理アドレスを変更していないということを
、コンパイラは文脈から解釈することが可能である。
従って、この場合、右辺でのアドレス変換結果を左辺に
対してもそのまま使用することがわかり、左辺に対する
アドレス変換機構の呼出しコード28を削減することが
できる。
対してもそのまま使用することがわかり、左辺に対する
アドレス変換機構の呼出しコード28を削減することが
できる。
更に、コンパイラの持つ[オブジェクトの大域的最適化
機能」を適用し、プログラムのデータフロー解析、制御
フロー解析を行うことによって、このような最適化を複
数の文にわたって実行することができる。例えば、第4
図に示した文24.26の間に変数LPの値を変更して
いないとすれば、右辺に対するアドレス変換用のオブジ
ェクトコード29を、更に削減することも可能である。
機能」を適用し、プログラムのデータフロー解析、制御
フロー解析を行うことによって、このような最適化を複
数の文にわたって実行することができる。例えば、第4
図に示した文24.26の間に変数LPの値を変更して
いないとすれば、右辺に対するアドレス変換用のオブジ
ェクトコード29を、更に削減することも可能である。
以上詳細に述べた如く、本発明によれば、デー夕のアド
レスを論理アドレスにより管理し、データへのアクセス
は、論理アドレスを物理アドレスに変換した後に該物理
アドレスによって行う情報処理システムにおいて、プロ
グラム言語のコンパイラが、プログラム内に記述された
論理ポインタおよび論理ポインタによるデータへのアク
セスを検出し、これを、アドレス変換機構との定められ
た接続仕様に基づいて、論理アドレスを物理アドレスに
変換してデータをアクセスする命令コードに変換する如
く構成したので、生産性が良く信頼性が高い情報処理シ
ステムの開発を可能とするアドレス変換方式を実現でき
るという顕著な効果を奏するものである。
レスを論理アドレスにより管理し、データへのアクセス
は、論理アドレスを物理アドレスに変換した後に該物理
アドレスによって行う情報処理システムにおいて、プロ
グラム言語のコンパイラが、プログラム内に記述された
論理ポインタおよび論理ポインタによるデータへのアク
セスを検出し、これを、アドレス変換機構との定められ
た接続仕様に基づいて、論理アドレスを物理アドレスに
変換してデータをアクセスする命令コードに変換する如
く構成したので、生産性が良く信頼性が高い情報処理シ
ステムの開発を可能とするアドレス変換方式を実現でき
るという顕著な効果を奏するものである。
第1図はコンパイラによる本発明の実現方式を示す図、
第2図は論理アドレスと物理アドレスとの関係を示す図
、第3図はアドレス変換機構とコンパイラとの接続仕様
の例を示す図、第4図は本発明をPASCALコンパイ
ラに適用した場合のPASCAL言語のソースプログラ
ムとPASCALコンパイラが出力するオブジェクトコ
ードの例を示す図である。 1:論理アドレス空間、2:論理アドレス、3ニアドレ
ス変換機構、4:物理アドレス、5:物理アドレス空間
、6:アドレス変換のアルゴリズム、11:原始プログ
ラム、12:構文解析処理、13:論理アドレス参照用
中間語出力処理、I4:中間語、15:最適化処理、1
6:論理アドレス参照共通化処理、17:最適化済みの
中間語、18:コード生成処理、I9:オブジェクトコ
ード出力処理、20:オブジェクトコード、21:オブ
ジェクトモジュール。
第2図は論理アドレスと物理アドレスとの関係を示す図
、第3図はアドレス変換機構とコンパイラとの接続仕様
の例を示す図、第4図は本発明をPASCALコンパイ
ラに適用した場合のPASCAL言語のソースプログラ
ムとPASCALコンパイラが出力するオブジェクトコ
ードの例を示す図である。 1:論理アドレス空間、2:論理アドレス、3ニアドレ
ス変換機構、4:物理アドレス、5:物理アドレス空間
、6:アドレス変換のアルゴリズム、11:原始プログ
ラム、12:構文解析処理、13:論理アドレス参照用
中間語出力処理、I4:中間語、15:最適化処理、1
6:論理アドレス参照共通化処理、17:最適化済みの
中間語、18:コード生成処理、I9:オブジェクトコ
ード出力処理、20:オブジェクトコード、21:オブ
ジェクトモジュール。
Claims (1)
- 1、データのアドレスを論理アドレスにより管理し、デ
ータへのアクセスは、論理アドレスを物理アドレスに変
換した後に該物理アドレスによって行う情報処理システ
ムにおいて、プログラム言語のコンパイラが、プログラ
ム内に記述された論理ポインタおよび論理ポインタによ
るデータへのアクセスを検出し、これを、アドレス変換
機構との定められた接続仕様に基づいて、論理アドレス
を物理アドレスに変換してデータをアクセスする命令コ
ードに変換する如く構成したことを特徴とするアドレス
変換方式。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP62263804A JPH01108639A (ja) | 1987-10-21 | 1987-10-21 | アドレス変換方式 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP62263804A JPH01108639A (ja) | 1987-10-21 | 1987-10-21 | アドレス変換方式 |
Publications (1)
Publication Number | Publication Date |
---|---|
JPH01108639A true JPH01108639A (ja) | 1989-04-25 |
Family
ID=17394482
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP62263804A Pending JPH01108639A (ja) | 1987-10-21 | 1987-10-21 | アドレス変換方式 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JPH01108639A (ja) |
-
1987
- 1987-10-21 JP JP62263804A patent/JPH01108639A/ja active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US5230049A (en) | Program source code translator | |
US6496922B1 (en) | Method and apparatus for multiplatform stateless instruction set architecture (ISA) using ISA tags on-the-fly instruction translation | |
US8156471B2 (en) | Multi-language execution method | |
US5564044A (en) | Integration of result data from first program operations on dynamic source data into data of a second program | |
US5490256A (en) | Method and mechanism for calling 32-bit functions from 16-bit functions | |
JPH01306923A (ja) | 異種言語間連絡方式 | |
Paepcke | User-level language crafting: Introducing the CLOS metaobject protocol | |
US6233732B1 (en) | Compiling system using intermediate codes to store a plurality of values | |
EP1966691A2 (en) | Method and system for compiling a source code | |
CN102365622B (zh) | 翻译设备、翻译方法和程序存储介质 | |
JPH01108639A (ja) | アドレス変換方式 | |
JP3049814B2 (ja) | マイクロコンピュータの言語処理装置 | |
US20040031043A1 (en) | Namespace based function invocation | |
CN112199217A (zh) | 一种软硬协同的线程私有数据访问优化方法 | |
JPH11134198A (ja) | コンパイル処理装置、コンパイル処理方法、プログラム実行装置、プログラム実行方法及びプログラム記憶媒体 | |
CN114489683B (zh) | 一种类java语言基于JVM的函数式编程语法实现方法 | |
CN117724804B (zh) | 一种虚拟机指令集的生成方法、装置及设备 | |
Bose | Instruction set design for support of high-level languages | |
CN116795536A (zh) | 一种多处理器共享内存的方法及编程系统 | |
TW490635B (en) | Method and device executing orders with symbolic reference | |
KR970011897B1 (ko) | 언어해석 처리장치 | |
JPH0498322A (ja) | コンパイラの作成方法 | |
KR100258095B1 (ko) | 칠에서의 초기화되지 않은 이름의 발견방법 | |
JPH0293947A (ja) | 電子計算機 | |
JPH1021087A (ja) | コンパイル方法 |