JPS62205437A - 情報処理装置 - Google Patents

情報処理装置

Info

Publication number
JPS62205437A
JPS62205437A JP4937286A JP4937286A JPS62205437A JP S62205437 A JPS62205437 A JP S62205437A JP 4937286 A JP4937286 A JP 4937286A JP 4937286 A JP4937286 A JP 4937286A JP S62205437 A JPS62205437 A JP S62205437A
Authority
JP
Japan
Prior art keywords
machine language
data
instruction
indexing
tag
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
JP4937286A
Other languages
English (en)
Inventor
Shinichi Habata
幅田 伸一
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 JP4937286A priority Critical patent/JPS62205437A/ja
Publication of JPS62205437A publication Critical patent/JPS62205437A/ja
Pending legal-status Critical Current

Links

Landscapes

  • Devices For Executing Special Programs (AREA)

Abstract

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

Description

【発明の詳細な説明】 (産業上の利用分野) 本発明は、知識情報処理の分野で注目されている高レベ
ルプログラミング言語プロローグ(prolog)等の
言語処理に有効なタグ付データ表現を内部データ表現と
して使用する情報処理装置に関する。
(従来の技術) 高レベルプログラミング言語プロローグは、述語論理表
現機能とバックトラック機能を備える。
述語論理表現は、知識情報処理で要求される規則の記述
において効果がある。又、バックトラック機能は、幾つ
かの処理手順の候補から正しい処理手順を発見するため
の機能である。すなわち、プロローグの1ステートメン
トである節(clause )を複数使用した処理手順
の集まりから正しい処理手順を発見するために、試行錯
誤を繰り返す機能である。第2図のプロローグプログラ
ム例を用いて、バックトラック機能による試行錯誤の様
子を説明する。
第2図のプロローグプログラムは、述語名”P”、第1
引数がリスト”[a、b]”、第3引数がアトム″C゛
である述語の第2引数を求めるプログラムである。ここ
で、′X”は変数である。節(1)は、プロローグプロ
グラムの起動を要求する節で、問い合わせ節と呼ぶ、プ
ロローグプログラムの実行は、ff1(2’)P(a、
b。
C)”から順番に、前記第1引数と第2引数の条件を満
足する節を捜し、満足した節の第2引数を変数”′X”
に代入することで第2図のプロローグプログラムが終了
する。具体的には、最初に、節(2)”P(a、b、c
)”の第1引数がアトム″a”であるため、第1引数の
条件を満足しない、したがって、バックトラック機能が
起動され、次の節(3)”P(b、C,d)”に対する
処理へと制御が進行する。このように、順番に、節が条
件を満足するかを調べてゆくと、節(2)−(4)は、
第1引数のデータタイプが異なるため、バックトラック
機能が起動され、次の節へ処理が進行する。また、節(
5)”P([b、c]、e、f’)”は、第1引数のデ
ータタイプは一致するが、データ値が興なるため、バッ
クトラック機能が起動される。最終的には、jffi(
6)”PC[a、b]、c、e)”が条件を満足し、変
数”X”にアトム”C″が代入きれる。
バックトラック機能は、プロローグプログラミング言語
自身が、正しい処理手順を発見するために、試行錯誤を
繰り返す強力な機能である。しかし、試行錯誤を繰り返
すことは、無駄な処理を行なうことであり、プロセッサ
の処理能力を浪費する。この結果、プロローグプログラ
ムの実行速度が低下し、プロローグプログラムを高速処
理する専用マシンの開発が必要になってきている。
プロローグプログラムの実行速度を改善する手段として
、プロローグプログラムをプロセッサの機械語プログラ
ムに変換するコンパイラが、変換処理時に、データタイ
プの異なる節を識別する制御情報を機械語プログラムの
中に挿入しくインデクシング)、実行時に、データタイ
プが異なることでバックトラック機能を起動する処理を
省略している。第3図は、第2図のプロローグプログラ
ムを、単純に、機械語プログラムに変換した例である。
第2図のプロローグプログラムの実行を完了するために
、26個の機械語命令を実行する必要がある。また、バ
ックトラック機能が4回起動されている。実行する必要
のある機械語命令には、左側に*印を付けている。一方
、第4図は、コンパイラによるインデクシングを行なっ
た場合の機械語プログラムである。同じプロローグプロ
グラムを実行するために実行が必要な機械語命令の個数
は、21個に減少している。さらに、バックトラック機
能の起動回数が1回に減少しているため、実行速度の改
善効果は大きい。
とのフンバイラによるインデクシングの要となる機械語
命令が、第4130の機械語プログラムの4行目にある
”switch−on−term LO、Ll 、 L
2”である、 ” switch−on−term L
O、LL 、 L2”命令は、述語の第1引数のデータ
タイプを、定数データ、リストデータ、構造体データ、
その他の4集合に分類し、問い合わせ節の第1引数に対
する条件に含まれるデータタイプの制限により各データ
タイプの処理ルーチンへ分岐させる命令である。第5図
が、” switch−on−term LO、LL 
、 L2”命令の処理フローである。
第1ステツプで、問い合わせ節の第1引数のデータタイ
プを検査し、検査結果により、問い合わせ節の第1引数
のデータタイプに対応する処理ルーチンへ分岐する。
従来は、” switch−on−term LO、L
l 、 L2”命令の処理を実現するために、マイクロ
プログラム内で、第1引数のデータタイプ検査パターン
を指示する制御命令をタグ分岐制御器に出力し、その検
査結果により、−フィクロプログラムレベルでの多方向
分岐を使用して、各データタイプに対する処理ルーチン
へ分岐していた。
(発明が解決しようとする問題点) プロローグプログラムの処理速度を改善する手段である
コンパイラによるインデクシングは、switch−o
n−term LO、Ll 、 L2”命令が提供する
データタイプの分類以外に対しても効果がある。
すなわち、コンパイラによるインデクシングは、現時点
では、完成した手法ではない。このため、コンパイラに
よるインデクシングを実現するために必要な機械語命令
は明確になっていない。参考のためプロローグプログラ
ム言語が使用するデータタイプの111類の一例を第6
図に示す、フンバイラは、第6図に示したデータタイプ
を意識したインデクシングを行なう必要がある。このた
め、コンパイラによるインデクシング用機械語命令の個
数は増加すると考えられる。
従来の”switch−on−term LO、LL 
、 L2”命令の実現方法では、マイクロプログラム内
で第1引数のデータタイプ検査パターンを指示するマイ
クロ命令を出力するため、新しいインデクシング用機械
語命令が追加きれる度に、マイクロプログラムの作成が
必要であった。このことは、マイクロプログラムを格納
するマイクロプログラム・メモリ量の増加、マイクロプ
ログラムの追加作成による作業の遅れなどの問題となっ
ていた。
そこで、本発明の目的は、コンパイラによるインデクシ
ング手法が完成していないことから発生するインデクシ
ング用機械語命令の新規追加による修正作業量を減らす
ために、インデクシング用機械語命令の処理を実現する
マイクロプログラム内で、第1引数のデータタイプ検査
パターンを指示するマイクロ命令を出力する代わりに、
インデクシング用機械語命令のバリアントをデータタイ
プの検査パターン指示命令として使用することで、新し
いインデクシング用機械語命令の追加によるマイクロル
ーチンの追加を不要とする情報処理装置を提供すること
にある。
(問題点を解決するための手段) 前述の問題点を解決するために本発明が提供する情報処
理装置は、データと機械語プログラムを格納する主記憶
と、前記主記憶から読み出した機械語命令を保持する機
械語命令レジスタと、前記機械語命令レジスタが保持す
る機械語命令のオペレーションコードをアドレスとし、
その機械語命令の処理を実現するマイクロルーチンへの
ジャンプアドレスとオペランドの切り出し情報を出力す
るオペレーションコード解読メモリと、データタイプを
示すタグ部とデータ値を示すバリュー部からなるデータ
を保持するデータレジスタ・ファイルと、前記データレ
ジスタ・ファイルが保持するデータのタグ部をfIs読
し、その解読結果によりマイクロプログラムの多方向分
岐を可能とするタグ分岐制御器と、前記機械語命令レジ
スタが保持する機械語命令からオペランドを切り出すオ
ペランド生成器と、マイクロプログラムの実行制御を行
なうシーケンサとを備え、前記オペランド生成器が前記
機械語命令レジスタが保持する機械語命令コードから切
り出したバリアントを前記タグ分岐制御器の制御信号と
して使用することを特徴とする。
(作用) プロローグプログラムの処理速度を改善するために、コ
ンパイラによるインデクシングを導入すると、インデク
シング用機械語命令を機械語命令体系に追加する必要が
ある。このインデクシング用機械語命令の代表が”sw
itch−on−term LO。
LL、L2”命令である0本発明の情報処理装置では、
機械語命令レジスタが保持する”switch−on−
term LO、LL 、 L2”命令のバリアントで
問い合わせ節の述語の第1引数のデータタイプを検査す
る検査パターンを指定するために、オペランド生成器が
切り出したバリアントをタグ分岐制御器へ送る。したが
って、マイクロプログラムは、タグ分岐制御器によるデ
ータタイプの検査結果に従い、対応するデータタイプ群
の処理ルーチンへ分岐する処理を記述するだけでよい。
新しいインデクシング用機械語命令が追加された場合は
、新インデクシング用機械語命令のデータタイプ検査パ
ターン指定バリアントを設定し直すことで、新しいイン
デクシング用機械語命令が実現できる。この時、タグ分
岐制御器が、新インデクシング用機械面命令が必要とす
るデータタイプの分類を処理できないと問題であるが、
大容量の読み出し専用メモリ(ROM)をタグ分岐制御
器として使用することで、予め登録しておくか、または
、後から追加登録することが可能である。
これにより、新しいインデクシング用機械語命令を追加
しても、マイクロプログラムの追加作成が不要となり、
マイクロプログラム・メモリの増加を回避できる。また
、タグ分岐制御器に使用している茂み出し専用メモリの
追加登録も短時間で終了するため、作業の遅れなどの影
響も少ない。
(実施例) 本発明の実施例について、図面を参照して詳細に説明す
る。第1図は、本発明の情報処理装置を示すブロック図
である。
100は、データと機械語プログラムを格納する主記憶
である。主記憶100上の機械語プログラムは、データ
バス200を介して、機械語命令レジスタ110に格納
する。ia械話語命令レジスタ110上機械語命令に対
して、オペレーションコード解読メモリ120がオペレ
ーションコードの解読を行ない、その結果、その機械語
命令の処理を実現するマイクロルーチンへの分岐アドレ
スとオペランド切り出し情報を出力する。ここで、もし
、機械語命令レジスタ110上の機械語命令が、インデ
クシング用機械語命令であると、オペレーションコード
解読メモリ120が出力するオペランド切り出し情報に
従い、オペランド生成器130がタグ分岐制御器150
へ、データタイプ検査パターン指定命令を出力する。タ
グ分岐制御器150はオペランド生成器130が出力す
る検査パターン指定命令とマイクロプログラムが出力す
るタグ分岐マイクロ命令により、データレジスタ・ファ
イル140の出力データに対するデータタイプ検査を行
なう、この検査結果により、タグ分岐制御器150は、
シーケンサ170へ、多力向分岐制御信号を出力する。
120のオペレーションコード解読メモリは、通常のラ
ンダムアクセス・メモリで構わず、メモリ゛のアドレス
として、機械語命令レジスタ110が保持する機械語命
令のオペレーションコードを使用する。オペランド生成
器130は、各オペランド転送先毎に、データセレクタ
を使用することで実現する。さらに、タグ分岐制御器1
50は、大容量の読み出し専用メモリを使用する。メモ
リのアドレスを2個のフィールドに分割し、1つにデー
タレジスタ・ファイル140の出力データのタグ部を割
り当てる。もう1つには、オペランド生成器130が出
力する検査パターン指定命令を割り当てる。
例えば、タグ部が6ビツトの場合、タグ分岐制御器15
0として、16キロ語の読み出し専用メモリを使用する
と、256種類の検査パターンを処理できる。第7I5
0は、タグ分岐制御器を読み出し専用メモリで作成した
場合のデータタイプ検査パターン登録例である。検査パ
ターン指定命令はオペランド生成器の出力するバリアン
トである。また、タグビットはデータレジスタ・ファイ
ルの出力データのタグ部である。分岐アドレスは、デー
タタイプの検査結果により分岐する時のディスプレース
メントである。
例えば、プロローグで処理するデータタイプを、整数デ
ータ、浮動小数データ、二進データ、その他のデータの
4個の集合に分類して、各集合毎に、異なる処理ルーチ
ンへ分岐させるインデクシング命令を作成する場合は、
新しいインデクシング命令のバリアントに”2”を設定
すればよい。
(発明の効果) 本発明の情報処理装置は、プロローグプログラムの実行
処理速度を改善する手段としてコンパイラによるインデ
クシングを採用した時に問題となる、インデクシング用
機械語命令の追加によるマイクロプログラム・メモリ量
の増加と新インデクシング用機械語命令の処理を実現す
るマイクロプログラムの追加作成を回避するために、イ
ンデクシング用機械語命令のバリアントをデータタイプ
の検査パターン指定に使用することで、マイクロプログ
ラムの追加作成、または、修正を行なうことなく、イン
デクシング用機械語命令の追加を、可能にしている。
【図面の簡単な説明】
第1図は本発明の情報処理装置を示すブロック図である
。第2図は、本発明の情報処理装置が処理を行なうプロ
ローグプログラムの一例を示す図である。第3図は、第
2図のプロローグプログラムをコンパイラが単純に機械
語プログラムに変換した場合の機械語プログラムを示す
図である。第4図は、コンパイラがインデクシング機能
を付加した場合の機械語プログラムを示す図である。第
5図は、インデクシング命令の代表例である”swit
ch−on−term LO、LL 、 L2″命令の
処理フロー図である。第6図は、コンパイラがインデク
シングを行なう時に対象となるデータタイプの一例を示
す図である。第7図はタグ分岐制御器を読み出し専用メ
モリで作成した場合の検査パターン登録例を示す図であ
る。 第1図で、100は主記憶、110は機械語命令レジス
タ、120はオペレーションコード解読メモリ、130
はオペランド生成器、140はデータレジスタ・ファイ
ル、150はタグ分岐制御器、170はシーケンサ、1
90はデータレジスタ・ファイル140の出力データ選
択器、200はデータバスである。 第5図で、300は述語の第1引数のデータタイプを検
査するステップ、310は参照データ処理ルーチン、3
20は定数データ処理ルーチン、330はリストデータ
処理ルーチン、340は構造体データ処理ルーチン、3
50はその他のデータ処理ルーチンである。

Claims (1)

    【特許請求の範囲】
  1. データと機械語プログラムを格納する主記憶と、前記主
    記憶から読み出した機械語命令を保持する機械語命令レ
    ジスタと、前記機械語命令レジスタが保持する機械語命
    令のオペレーションコードをアドレスとし、その機械語
    命令の処理を実現するマイクロルーチンへのジャンプア
    ドレスとオペランドの切り出し情報を出力するオペレー
    ションコード解読メモリと、データタイプを示すタグ部
    とデータ値を示すバリュー部からなるデータを保持する
    データレジスタ・ファイルと、前記データレジスタ・フ
    ァイルが保持するデータのタグ部を解読し、その解読結
    果によりマイクロプログラムの多方向分岐を可能とする
    タグ分岐制御器と、前記機械語命令レジスタが保持する
    機械語命令からオペランドを切り出すオペランド生成器
    と、マイクロプログラムの実行制御を行なうシーケンサ
    とを備え、前記オペランド生成器が前記機械語命令レジ
    スタが保持する機械語命令コードから切り出したバリア
    ントを前記タグ分岐制御器の制御信号として使用するこ
    とを特徴とする情報処理装置。
JP4937286A 1986-03-06 1986-03-06 情報処理装置 Pending JPS62205437A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP4937286A JPS62205437A (ja) 1986-03-06 1986-03-06 情報処理装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP4937286A JPS62205437A (ja) 1986-03-06 1986-03-06 情報処理装置

Publications (1)

Publication Number Publication Date
JPS62205437A true JPS62205437A (ja) 1987-09-10

Family

ID=12829197

Family Applications (1)

Application Number Title Priority Date Filing Date
JP4937286A Pending JPS62205437A (ja) 1986-03-06 1986-03-06 情報処理装置

Country Status (1)

Country Link
JP (1) JPS62205437A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH01180044A (ja) * 1988-01-11 1989-07-18 Mitsubishi Electric Corp データ処理装置

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH01180044A (ja) * 1988-01-11 1989-07-18 Mitsubishi Electric Corp データ処理装置

Similar Documents

Publication Publication Date Title
EP0528028B1 (en) Automatic flowgraph generation for program analysis and translation
KR101150003B1 (ko) 소프트웨어 개발 툴 생성 방법
US6954747B1 (en) Methods for comparing versions of a program
Liskov et al. Programming with abstract data types
EP0529059B1 (en) Branch resolution via backward symbolic execution
US5317740A (en) Alternate and iterative analysis of computer programs for locating translatable code by resolving callbacks and other conflicting mutual dependencies
Fauth et al. Automated generation of DSP program development tools using a machine description formalism
JP3246438B2 (ja) 可変ターゲットコンパイル処理方法、その処理装置、そのプログラムの記憶媒体および変換テーブルの記憶媒体
JP2001522084A (ja) 機械語記述からisaシミュレータとアセンブラを生成する方法
Sadolewski et al. Compiler and virtual machine of a multiplatform control environment
Dewitt A Machine Independent Approach To The Production Of Optimized Horizontal Microcode.
JPS62205437A (ja) 情報処理装置
Dewitt Extensibility-a new approach for designing machine independent microprogramming languages
JPS62205436A (ja) 情報処理装置
Shao et al. A survey of available information recovery of binary programs based on machine learning
WO2021140568A1 (ja) 関数生成プログラム、関数生成方法、及び情報処理装置
McNeil et al. PL/I program efficiency
Fokina et al. Automated generation of machine instruction decoders
Holloway et al. A User’s Guide to the Optimization Programming Interface
CN120216020A (zh) 代码翻译方法、装置、电子设备及可读存储介质
Juneau et al. Enhancements from Java 9 Through Java 17
Metcalf Fortran-program optimization
Titzer et al. A declarative approach to generating machine code tools
Corcoran Simulator generator system
Ramsay The POPLOG program development system