JPS62205436A - 情報処理装置 - Google Patents

情報処理装置

Info

Publication number
JPS62205436A
JPS62205436A JP4937186A JP4937186A JPS62205436A JP S62205436 A JPS62205436 A JP S62205436A JP 4937186 A JP4937186 A JP 4937186A JP 4937186 A JP4937186 A JP 4937186A JP S62205436 A JPS62205436 A JP S62205436A
Authority
JP
Japan
Prior art keywords
machine language
data
memory
instruction
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
JP4937186A
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 JP4937186A priority Critical patent/JPS62205436A/ja
Publication of JPS62205436A publication Critical patent/JPS62205436A/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引数がアトム”e”
である述語の第2引数を求めるプログラムである。ここ
で、”X”は変数である0節(1)は、プロローグプロ
グラムの起動を要求する節で、問い合わせ節と呼ぶ。節
(2)”P(a、b、c)”から順番に、前記第1引数
と第2引数の条件を満足する節を捜し、満足した節の第
2引数を変数”X″に代入することで終了する。具体的
には、最初に、節(2)”P(a。
b、c)”の第1引数がアトム”a”であるため、第1
引数の条件を満足しない、したがって、バックトラック
機能が起動きれ、次の節(3)”P(b、c、d)”に
対する処理へと制御が進行する。このように、順番に、
節が条件を満足するかを調べてゆくと、節(2)−(4
)は、第1引数のデータタイプが異なるため、バックト
ラック機能が起動され、次の節へ処理が進行する。また
、節(5)”P([b、cコ、e、f’)”は、第1引
数のデータタイプは一致するが、データ値が異なるため
、バックトラック機能が起動される。最終的には、節(
6)”P([a、b]。
c、e)”が条件を満足し、変数”X″にアトム″C”
が代入される。
バックトラック機能は、プロローグプログラミング言語
自身が、正しい処理手順を発見するために、試行錯誤を
繰り返す強力な機能である。しかし、試行錯誤を繰り返
すことは、無駄な処理を行なうことであり、プロセッサ
の処、理能力を浪費する。この結果、プロローグプログ
ラムの実行速度が低下し、プロローグプログラム を高
速処理する専用マシンの開発が必要になってきている。
プロローグプログラムの実行速度を改善する手段として
、プロローグプログラムをプロセッサの機械語プログラ
ムに変換するコンパイラが、変換処理時に、データタイ
プに異なる節を識別する制御情報を機械語プログラムの
中に挿入しくインデクシング)、実行時に、データタイ
プが異なることでバックトラック機能を起動する処理を
省略する。第3図は、第2図のプロローグプログラムを
、単純に、機械語プログラムに変換した例である。プロ
ローグプログラムの実行を完了するために、26個の機
械語命令を実行する必要がある。実行する必要のある機
械語命令には、左側に*印を付けている。一方、第4図
は、コンパイラによるインデクシングを行なった場合の
機械語プログラムである。また、バックトラック機能が
4回起動されている。同じプロローグプログラムを実行
するために実行が必要な機械語命令の個数は、21個に
減少している。さらに、バックトラック機能の起動回数
が1回に減少しているため、実行速度の改善効果は大き
い。
とのフンバイラによるインデクシングの要となる機械語
命令が、第4図の機械語プログラムの4行目にある”s
witch−on−term LO、Ll 、 L2”
である、 ” switch−on−term LO、
Ll 、 L2”命令は、述語の第1引数のデータタイ
プを、定数データ、リストデータ、構造体データ、その
他の4集合に分類し、第1引数に対する条件に含まれる
データタイプの制限により各データタイプの処理ルーチ
ンへ分岐させる命令である。第5図が、” switc
h−on−term LO、Ll 、 L2”命令の処
理フローである。
第1ステツプで、問い合わせ節の第1引数のデータタイ
プを検査し、検査結果により、問い合わせ節の第1引数
のデータタイプに対応する処理ルーチンへ分岐する。
従来は、”switch−on−term LO、LL
 、 L2″命令の処理を実現するために、マイクロプ
ログラム内で、第1引数のデータタイプ検査パターンを
指示する制御命令をタグ分岐制御メモリに出力し、その
検査結果によるマイクロプログラムレベルでの多方向分
岐を使用して、各データタイプに対する処理ルーチンへ
分岐していた。
(発明が解決しようとする問題点) プロローグプログラムの処理速度を改善する手段である
コンパイラによるインデクシングは、”switch−
on−term LO、LL 、 L2″命令が提供す
るデータタイプの分類以外に対しても効果がある。すな
わち、コンパイラによるインデクシングは、現時点では
、完成した手法ではない、このため、コンパイラによる
インデクシングを実現するために必要な機械語命令は明
確になっていない。
参考のためプロローグプログラム言語が使用するデータ
タイプの種類の一例を第6図に示す。
コンパイラは、第6図に示したデータタイプを意識した
インデクシングを行なう必要がある。このため、フンバ
イラによるインデクシング用機械語命令の個数は増加す
ると考えられる。
従来のswitch−on−term LO、Ll 、
 L2”命令の実現方法では、マイクロプログラムが第
1引数のデータタイプ検査パターンを指示するマイクロ
命令を出力するため、新しいインデクシング用機械語命
令が追加される度に、マイクロプログラムの作成が必要
であった。このことは、マイクロプログラムを格納する
マイクロプログラム・メモリ量の増加、マイクロプログ
ラムの追加作成による作業の遅れなどの問題となってい
た。
そこで、本発明の目的は、コンパイラによるインデクシ
ング手法が完成していないことから発生するインデクシ
ング用機械語命令の新規追加による修正作業量を減らす
ために、インデクシング用機械語命令の処理を実現する
マイクロプログラム内で、第1引数のデータタイプ検査
パターンを指示するマイクロ命令を出力する代わりに、
インデクシング用機械語命令のバリアントをデータタイ
プの検査パターン指示マイクロ命令として使用すること
で、新しいインデクシング用機械語命令の追加によるマ
イクロルーチンの追加を不要とすることと、さらに、コ
ンパイラがプロローグプログラムから機械語プログラム
へ変換する時に、インデクシングに必要なデータタイプ
検査パターンをタグ分岐制御メモリに、動的に、登録が
可能な情報処理装置を提供することにある。
(問題点を解決するための手段) 前述の問題点を解決するために本発明が提供する情報処
理装置は、データと機械語プログラムを格納する主記憶
と、前記主記憶から読み出した機械語命令を保持する機
械語命令レジスタと、前記機械語命令レジスタが保持す
る機械語命令のオペレーションコードをアドレスとし、
その機械語命令の処理を実現するマイクロルーチンへの
ジャンプアドレスとオペランドの切り出し情報を出力す
るオペレーションコード解読メモリと、データタイプを
示すタグ部とデータ値を示すバリュー部からなるデータ
を保持するデータレジスタ・ファイルと、前記データレ
ジスタ・ファイルが保持するデータのタグ部を解読し、
その解読結果によりマイクロプログラムの多方向分岐を
可能とするタグ分岐制御メモリと、前記機械語命令レジ
スタが保持する機械語命令からオペランドを切り出すオ
ペランド生成器と、マイクロプログラムの実行制御を行
なうシーケンサとを備え、前記オペランド生成器は前記
機械語命令レジスタが保持する機械語命令コードから切
り出したバリアントを前記タグ分岐制御メモリの制御信
号として使用することと、前記タグ分岐制御メモリの内
容を動的に書き換え可能であることを特徴とする。
(作用) プロローグプログラムの処理速度を改善するために、フ
ンバイラによるインデクシングを導入すると、インデク
シング用機械語命令を機械語命令体系に追加する必要が
ある。これは、コンパイラによるインデクシングが完成
した手法ではなく、まだ多くの改善点が存在するからで
ある。このインデクシング用機械語命令の代表が”sw
itch−on−term LO、Ll 、 L2”命
令である0本発明の情報処理装置では、機械語命令レジ
スタが保持するswitch−on−term LO、
Ll 、 L2”命令のバリアントが、述語の第1引数
のデータタイプを検査する検査パターンを指定するため
に、タグ分岐制御メモリへ送られる。したがって、マイ
クロプログラムは、タグ分岐制御メモリによるデータタ
イプの検査結果に従い、対応するデータタイプ群の処理
ルーチンへ分岐するだけでよい。
新しいインデクシング用機械語命令が追加きれても、新
インデクシング用機械語命令のデータタイプ検査パター
ン指定バリアントを設定し直すことで、新しいインデク
シング用機械語命令が実現できる。この時、タグ分岐制
御メモリが、新インデクシング用機械語命令が必要とす
るデータタイプの分類を処理できないと問題であるが、
その時は、コンパイラがタグ分岐制御メモリに必要とす
るデータタイプ検査パターンを追加登録することが可能
である。
これにより、新しいインデクシング用機械語命令を追加
しても、マイクロプログラムの追加作成が不要となり、
マイクロプログラム・メモリの増加を回避できる。また
、コンパイラが、動的に、タグ分岐制御メモリに新しい
データタイプ検査パターンを追加登録できるため、作業
の遅れなどの影響も少ない。
(実施例) 本発明の実施例について、図面を参照して詳細に説明す
る。第1図は、本発明の情報処理装置の一実施例を示す
ブロック図である。
100は、データと機械語プログラムを格納する主記憶
である。主記憶100上の機械語プログラムは、データ
バス200を介して、機械語命令レジスタ110に格納
する1機械語命令レジスタ110上の機械語命令に対し
て、オペレーションコード解読メモリ120がオペレー
ションコードの解読を行ない、その結果、その機械語命
令の処理を実現するマイクロルーチンへの分岐アドレス
とオペランド切り出し情報を出力する。ここで、もし、
機械語命令レジスタ110上の機械語命令が、インデク
シング用機械語命令であると、オペレーションコード解
読メモリ120が出力するオペランド切り出し情報に従
い、オペランド生成器130がタグ分岐制御メモリ15
0へ、データタイプ検査パターン指定命令を出力する。
タグ分岐制御メモリ150はオペランド生成器130が
出力する検査パターン指定命令とマイクロプログラムが
出力するタグ分岐マイクロ命令により、データレジスタ
・ファイル140の出力データに対するデータタイプ検
査を行なう、この検査結果により、タグ分岐制御メモリ
150は、シーケンサ170へ、多方向分岐制御信号を
出力する。
120のオペレーションコード解読メモリは、通常のラ
ンダムアクセス・メモリで構わず、メモリのアドレスと
して、機械語命令レジスタ110が保持する機械語命令
のオペレーションコードを使用する。オペランド生成器
130は、各オペランド転送先毎に、データセレクタを
使用することで実現する。さらに、タグ分岐制御メモリ
150は、大容量のランダムアクセス・メモリを使用す
る。メモリのアドレスを2個のフィールドに分割し、1
つにデータレジスタ・ファイル−140の出力データの
タグ部を割り当てる。もう1つには、オペランド生成器
130が出力する検査パターン指定命令号を創り当てる
例えば、タグ部が6ビツトの場合、タグ分岐制御メモリ
150として、16キロ語のランダムアクセス・メモリ
を使用すると、256種類の検査パターンを処理できる
。第7図は、タグ分岐制御メモリに登録するデータタイ
プ検査パターンの例である。検査パターン指定命令はオ
ペランド生成器の出力するバリアントである。また、タ
グビットはデータレジスタ・ファイルの出力データのタ
グ部である。分岐アドレスは、データタイプの検査結果
に従い分岐する時のディスプレースメントである。
例えば、プロローグで処理するデータタイプを、整数デ
ータ、浮動小数データ、二進データ、その他のデータの
4個の集合に分類して、各集合毎に、異なる処理ルーチ
ンへ分岐させるインデクシング命令を作成する場合は、
新しいインデクシング命令のバリアントに”2”を設定
すればよい。
(発明の効果) 本発明の情報処理装置は、プロローグブログラムの実行
処理速度を改善する手段としてコンパイラによるインデ
クシングを採用した時に問題となる、インデクシング用
機械語命令の追加によるマイクロプログラム・メモリ量
の増加と新インデクシング用機械語命令の処理を実現す
るマイクロプログラムの追加作成を回避するために、イ
ンデクシング用機械語命令のバリアントの1つをデータ
タイプの検査パターン指定に使用することで、マイクロ
プログラムの追加作成、または、修正を行なうことなく
、インデクシング用機械語命令の追加を可能にするとと
もに、データタイプ検査を行なうタグ分岐制御メモリの
動的書き換えを可能にすることで、コンパイラがインデ
クシングを行なう時に、インデクシングに適した検査パ
ターンをタグ分岐制御メモリに登録することで、インデ
クシングの効果を高めている。
【図面の簡単な説明】
第1図は本発明の情報処理装置の一実施例を示すブロッ
ク図である。第2図は、本発明の情報処理装置が実行す
るプロローグプログラムの一例を示す図である。第3図
は、コンパイラが第2図のプロローグプログラムを単純
に機械語プログラムに変換した場合の機械語プログラム
を示す図である。第4図は、第2図のプロローグプログ
ラムに対してフンバイラがインデクシング機能を付加し
た場合の機械語プログラムを示す図である。第5図は、
インデクシング命令の代表例である”svitCh−o
n−term LO、Ll 、 L2”命令の処理フロ
ー図である。第6図は、プロローグプログラム言語が処
理するデータタイプの一例を示す図である。第7図は、
タグ分岐制御メモリに登録する検査パターン例を示す図
である。 第1図で、100は主記憶、110は機械語命令レジス
タ、120はオペレーションコード解読メモリ、130
はオペランド生成器、140はデータレジスタ・ファイ
ル、150はタグ分岐制御メモリ、170はシーケンサ
、190はデータレジスタ・ファイル140の出力デー
タ選択器、200はデータバスである。 第5図で、300は第1引数のデータタイプを検査する
ステップ、310は参照データの処理ルーチン、320
は定数データの処理ルーチン、330はリストデータの
処理ルーチン、340は構造体データの処理ルーチン、
350はその他のデータ処理ルーチンである。

Claims (1)

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

Priority Applications (1)

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

Applications Claiming Priority (1)

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

Publications (1)

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

Family

ID=12829169

Family Applications (1)

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

Country Status (1)

Country Link
JP (1) JPS62205436A (ja)

Similar Documents

Publication Publication Date Title
EP0528028B1 (en) Automatic flowgraph generation for program analysis and translation
Tanenbaum et al. A practical tool kit for making portable compilers
EP0529059B1 (en) Branch resolution via backward symbolic execution
Liskov et al. Programming with abstract data types
US5317740A (en) Alternate and iterative analysis of computer programs for locating translatable code by resolving callbacks and other conflicting mutual dependencies
US5287490A (en) Identifying plausible variable length machine code of selecting address in numerical sequence, decoding code strings, and following execution transfer paths
US6226789B1 (en) Method and apparatus for data flow analysis
Fauth et al. Automated generation of DSP program development tools using a machine description formalism
Jones et al. TEMPO: A Unified Treatment of Binding Time and Parameter Passing Concepts in Programming Languaues
JPS62205436A (ja) 情報処理装置
JPS62205437A (ja) 情報処理装置
McNeil et al. PL/I program efficiency
JPH02308330A (ja) 知識情報処理装置
Nonaka et al. Design and Implementation of Superinstructions for JavaScript Virtual Machine Generation System for Embedded Systems eJSTK
Johnstone et al. Designing and implementing language translators with rdp {a case study
Sampson Translating CMS-2 to Ada
Guerrero Martos et al. Address encoded byte order
Gough The DCode intermediate program representation: Reference manual and report
Metcalf Fortran-program optimization
Cattell Code generation and machine descriptions
Gough The DCode Intermediate Representation: Reference Manual and Report
Ramsay The POPLOG program development system
Malik Designing a high level microprogramming language
DiNovo An Assessment of the Suitability of Nebula as a Target for C
Hopkins et al. A microprogrammed implementation of an architecture simulation language