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
Application number
JP62263804A
Other languages
English (en)
Inventor
Shigeru Santo
山東 滋
Kazuo Kondo
和雄 近藤
Masanobu Sato
正信 佐藤
Matsuki Yoshino
吉野 松樹
Masahiro Konishi
正洋 小西
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.)
Hitachi Ltd
Original Assignee
Hitachi 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 Hitachi Ltd filed Critical Hitachi Ltd
Priority to JP62263804A priority Critical patent/JPH01108639A/ja
Publication of JPH01108639A publication Critical patent/JPH01108639A/ja
Pending legal-status Critical Current

Links

Landscapes

  • Devices For Executing Special Programs (AREA)

Abstract

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

Description

【発明の詳細な説明】 〔産業上の利用分野〕 本発明は、論理アドレスを用いてデータをアクセスする
情報処理システムの開発に有用なアドレス変換方式に関
するものである。
〔従来の技術〕
論理アドレスを用いてデータをアクセスする情報処理シ
ステムにおいては、データを以下の手順でアクセスする
(1)データに論理アドレスを付与する。
(2)データ参照時には、論理アドレスを物理アドレス
に変換し、物理アドレスによりデータをアクセスする。
従来の技術では、このアドレス変換機構を、手続きまた
は関数としてサブルーチン化し、データへのアクセスの
都度、この変換機構を呼出すコードを明示的に記述して
いた。
なお、アドレス変換の原理に関しては、昭晃堂刊「オペ
レーティングシステムの実際J (1984年)第95
〜104頁において論じられている。
〔発明が解決しようとする問題点〕
上記従来技術では、アドレス変換機構の呼出しをプログ
ラマが制御するために、アドレス変換機構の呼出しコー
ドを人手により、その都度記述しなければならないとい
う問題があり、これは、システムの生産性を低下させる
要因となっていた。
また、アドレス変換機構の呼出しを忘れ、論理アドレス
によりデータを直接アクセスする等の誤りを犯す確率が
高いという問題もあり、これは、システムの信頼性を低
下させる要因となっていた。
本発明は上記事情に鑑みてなされたもので、その目的と
するところは、従来のアドレス変換方式における上述の
如き問題を解消し、生産性が良く信頼性が高い情報処理
システムの開発を可能とするアドレス変換方式を提供す
ることにある。
〔問題点を解決するための手段〕
本発明の上記目的は、データのアドレスを論理アドレス
により管理し、データへのアクセスは、論理アドレスを
物理アドレスに変換した後に該物理アドレスによって行
う情報処理システムにおいて、プログラム言語のコンパ
イラが、プログラム内に記述された論理ポインタおよび
論理ポインタによるデータへのアクセスを検出し、これ
を、アドレス変換機構との定められた接続仕様に基づい
て、論理アドレスを物理アドレスに変換してデータをア
クセスする命令コードに変換する如く構成したことを特
徴とするアドレス変換方式によって達成される。
〔作用〕
本発明に係わるアドレス変換方式においては、論理アド
レスによるデータ参照であることをコンパイラに知らせ
るための規約と、アドレス変換機構との接続仕様、すな
わち、アドレス変換機構の呼出し方法、入力となる論理
アドレスの指定方法および出力となる物理アドレスの受
取り方を明確に定めることにより、論理アドレスによる
データの参照をコンパイラが自動的に検出し、アドレス
変換機構の呼出しによる、論理アドレスを物理アドレス
に変換するためのオブジェクトコード、および、その結
果として得られる物理アドレスによりデータをアクセス
するためのオブジェクトコードを、コンパイラに生成さ
せるものである。
本発明に係わるアドレス変換方式における論理アドレス
によるデータのアクセス手順は、以下に示すようになる
(1)コンパイラは、特定の変数を論理アドレスが入っ
たポインタ変数であることを認識する。
(2)コンパイラは、論理アドレスで指示されたデータ
の参照に対し、定められた接続仕様に従い、アドレス変
換機構を呼出すオブジェクトコードを生成する。
(3)コンパイラは、変換結果の物理アドレスによって
、データにアクセスするオブジェクトコードを生成する
通常、−回変換した値は、短期間はそのまま使用できる
。従って、コンパイラは、コンパイル対象プログラム中
での文脈により、変換済みの物理アドレスの有効期間を
管理できる。これにより、冗長なアドレス変換コードを
削除し、プログラムの実行効率を向上させることができ
る。
また、コンパイラは、アドレス変換のアルゴリズムには
関与しないため、論理アドレス方式の情報処理システム
全般に本方式を適用できる。
〔実施例〕
以下、本発明の実施例を図面に基づいて詳細に説明する
。なお、以下の説明においては、PASCALコンパイ
ラを例にしたものを説明する。
第2図は論理アドレスと物理アドレスとの関係を示すも
のであり、〈論理アドレス空間〉1上に配置されたデー
タ(例えば、斜線部)は、その論理アドレス(0002
20Gg) 2を、アドレス変換機構3を通してアドレ
ス変換し、変換結果の物理アドレス(OOIA40C8
) 4を使用して、物理アドレス空間5をアクセスしな
ければならないことを示している。
また、このとき、アドレス変換機構が使用する「アドレ
ス変換のアルゴリズム」6は、アドレス変換機構内で閉
じたものであり、どのようなアルゴリズムであっても良
いことを示している。
第3図はアドレス変換機構とコンパイラとの接続仕様の
例を示すものであり、アドレス変換機構の呼出し方法と
して、■、■、■の規約を定め、入出力情報の受渡し方
法として、■、■の規約を定めた例である。ソースプロ
グラム中に、論理アドレスによるデータの参照を検出す
ると、コンパイラは、上記規約に従ってアドレス変換用
のオブジェクトコードを生成する。
第1図はコンパイラによる本発明の実現方式を示すもの
である。コンパイラによる構文解析処理12では、原始
プログラム11を解析し、論理アドレスによるデータの
参照を検出し、論理アドレス参照用の中間語14を出力
する(13)。大域的最適化処理15においては、構文
解析処理12が出力した中間語14を入力し、複数の論
理アドレス参照の中から共通化可能なものを検出し、論
理アドレス参照を共通化した中間語(最適化済みの中間
語)17に変換する。コード生成処理18においては、
大域的最適化済みの中間語17を入力し、論理アドレス
参照を検出する毎に、論理アドレス参照用のオブジェク
トコート20を出力する(19)。このような手順を経
て、論理アドレスによるデータ参照のためのオブジェク
トコードを含むオブジェクトモジュール21を出力する
第4図は、本発明をPASCALコンパイラに適用した
場合の、PASCAL言語のソースプログラムと、PA
SCALコンパイラが出力するオブジェクトコードの例
を示すものである。図中、21はPASCALのプログ
ラムの始まりを示す文である。また、22は論理ポイン
タを記号「↑」により定義し、23は物理ポインタを記
号「@」により定義している。論理ポインタによるデー
タの参照を記号「↑」で行い、物理ポインタによるデー
タの参照を記号「@」で行うことと規定する。
また、先に第3図に示した規定により、アドレス変換機
構は名前をLPToPPとし、汎用レジスタ1に設定さ
れた論理アドレスを物理アドレスに変換し、変換された
物理アドレスを汎用レジスタ1に返すものとする。
文24は、論理ポインタにより指示された、整数型の変
数に定数1を代入することを示す。この文に対するオブ
ジェクトコードは、25に示す通りとなる。コンパイラ
は、汎用レジスタ1に論理アドレスを設定し、アドレス
変換機構(LPToPP)を呼出し、アドレス変換機構
により変換された物理アドレスが入っている汎用レジス
タ1によってデータをアクセスするオブジェクトコード
を生成する。
この一連のオブジェクトコードにより、論理アドレスに
よるデータのアクセスを正しく実行することができる。
ここで、コンパイラは、アドレス変換機構との接続仕様
を、「論理アドレスを入力すれば物理アドレスが返って
来る」という抽象レベルでしか規定していないため、実
際のアドレス変換がどのように行われ゛るかには、依存
しないものである。従って、アドレス変換のアルゴリズ
ムに依存することなく、論理アドレス方式を採用した任
意の処理システムに対し、汎用的に適用することができ
る。
文26は論理ポインタにより指示された、整数型の変数
に定数1を加算することを示す。この例では、コンパイ
ラによりアドレス変換回数を削減できることを説明する
オブジェクトコードの最適化を行わない場合、アドレス
変換機構の呼出しコードは、論理ポインタによる参照記
号「↑」に対応して、右辺および左辺に対して1回ずつ
、合計2回必要である。この場合、のオブジェクトコー
ドは27に示す通りになる。しかし、この文では、右辺
で参照した論理アドレスをそのまま左辺で参照しており
、その間に論理アドレスを変更していないということを
、コンパイラは文脈から解釈することが可能である。
従って、この場合、右辺でのアドレス変換結果を左辺に
対してもそのまま使用することがわかり、左辺に対する
アドレス変換機構の呼出しコード28を削減することが
できる。
更に、コンパイラの持つ[オブジェクトの大域的最適化
機能」を適用し、プログラムのデータフロー解析、制御
フロー解析を行うことによって、このような最適化を複
数の文にわたって実行することができる。例えば、第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:オブ
ジェクトモジュール。

Claims (1)

    【特許請求の範囲】
  1. 1、データのアドレスを論理アドレスにより管理し、デ
    ータへのアクセスは、論理アドレスを物理アドレスに変
    換した後に該物理アドレスによって行う情報処理システ
    ムにおいて、プログラム言語のコンパイラが、プログラ
    ム内に記述された論理ポインタおよび論理ポインタによ
    るデータへのアクセスを検出し、これを、アドレス変換
    機構との定められた接続仕様に基づいて、論理アドレス
    を物理アドレスに変換してデータをアクセスする命令コ
    ードに変換する如く構成したことを特徴とするアドレス
    変換方式。
JP62263804A 1987-10-21 1987-10-21 アドレス変換方式 Pending JPH01108639A (ja)

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)

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) コンパイル方法