JPH01298444A - プログラム実行制御方式 - Google Patents

プログラム実行制御方式

Info

Publication number
JPH01298444A
JPH01298444A JP63130554A JP13055488A JPH01298444A JP H01298444 A JPH01298444 A JP H01298444A JP 63130554 A JP63130554 A JP 63130554A JP 13055488 A JP13055488 A JP 13055488A JP H01298444 A JPH01298444 A JP H01298444A
Authority
JP
Japan
Prior art keywords
code
instruction
program
read
processor
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
JP63130554A
Other languages
English (en)
Inventor
Goro Nagai
永井 五郎
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.)
Fuji Electric Co Ltd
Fuji Facom Corp
Original Assignee
Fuji Electric Co Ltd
Fuji Facom 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 Fuji Electric Co Ltd, Fuji Facom Corp filed Critical Fuji Electric Co Ltd
Priority to JP63130554A priority Critical patent/JPH01298444A/ja
Publication of JPH01298444A publication Critical patent/JPH01298444A/ja
Pending legal-status Critical Current

Links

Landscapes

  • Debugging And Monitoring (AREA)

Abstract

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

Description

【発明の詳細な説明】 (産業上の利用分野) 本発明はプログラム実行制御方式にかかり、詳しくは、
関数型言語で記述されたプログラムを直接実行する演算
処理装置(以下、プロセッサという)において、デパッ
クのためのプロセッサのシンクルステップ(−命令−単
位実行)動作(以下、ステップ動作という)を実行する
ためのプログラム実行制御方式に関する。
(従来の技術) いわゆるストアード・プログラム方式のプロセッサでは
、一般に、実行可能な形式に変換されてプログラムメモ
リに格納されたオブジェクトコードを読み出してデコー
ドするフェッチユニットと、デコードされた信号群によ
って制御される命令レジスタ等の各種レジスタ、演算ユ
ニット等を備えている。
関数型言語で記述されたプログラムを直接解釈、実行す
るプロセッサ(以下、直接実行形のプロセッサという)
においては、前記フェッチユニット等の基本的な機能の
ほかに、読み出されたオブジェクトコードの実行順序を
操作して実行可能な形式に変換する、いわゆる構文解析
機能が必要になる。かかる構文解析機能は、例えばマク
ロ命令制御部やマクロ命令レジスタ、命令スタック等に
より実現され、これら以外にも種々の構成が提案されて
いるが、通常はF I LO(First In La
5tOut)スタック等を用いて命令の実行順序を制御
している。
例えば、次の(1)式の演算を、直接実行形のプロセッ
サによって行なう場合について考賂してみる。
A+(B−C)/D  ・・・・・・(1)これをボー
ランド記法を用いて展開すると、次式%式% 直接実行形のプロセッサでは、この(2)式が機械語に
展開されて第3図に示す如くプログラムメモリ21に格
納されているが、これらのオブジェクトコードを順次読
み出すだけでは式の実行順序が決まらないため、構文解
析部による並べ替えが必要になる。
すなわち、第3図の処理■〜[相]の順でプログラムメ
モリ21から一語ずつを読み出し、これが命令コードで
あれば第4図に示す如く命令用スタック22にブツシュ
ダウンして格納する。また、オペランド(A−D)であ
れば演算結実用スタック23にブツシュダウンして格納
し、処理■〜■のようにオペランドが続けて読み出され
た場合には、命令用スタック22の先頭にある命令コー
ドをポツプアップして演算を実行し、その結果を、演算
の対象となったオペランドをポツプアップした後の演算
結実用スタック23に格納する。
更に、11 ) II (右括弧)コードが読み出され
た場合、このコードは対応する命令の処理の終わりを示
すものであり、その時点で命令用スタック22から読み
出された命令により、前回実行された命令の結果と次に
読み出されるオペランドとの間で演算を行ない、その結
果を再び演算結実用スタック23に格納する。例えば、
第3図の処理■において、“)”コードが読み出された
場合には、対応する処理■の命令コード゛l (IIの
終了であると共に、この時の演算結実用スタック23の
先頭には第4図に示すように演算結果である(B−C)
が格納され、かつ命令用スタック22の先頭には’l 
(/ IIが格納されているため、これらを対にして次
の処理■において読み出されたオペランド(L p I
Iとの間で(B−C)/Dの演算が実行され。
この結果が(B −C)をポツプアップした後の演算結
実用スタック23にブツシュダウンして格納されること
となる。
ここで、直接実行形でないプロセッサにおいては、演算
を実行する場合にレジスタ・メモリを作業場所として用
い、オブジェクトに対して何らかの作用を行なう命令コ
ードの系列によってプログラミングするのが一般的であ
る。
例えば、先の(1)式の値を求める場合、プログラムメ
モリ21′の内容は第5図に示すような命令系列になる
。これらの命令は、処理■がオペランドBをアキュムレ
ータにロードし、処理■がアキュムレータの内容(B)
からオペランドCを減算してその結果をアキュムレータ
に入れ、処理■がアキュムレータの内容(B−C)をオ
ペランドDにより除算してその結果をアキュムレータに
入れ、処理■がアキュムレータの内容(B−C)/Dに
オペ ;ランドAを加算してその結果をアキュムレータ
に入わることを示している。
この場合、デパックのために、プロセッサが一命令を実
行した後にプロセッサの状態を監視するべくその動作を
停止させるステップ動作は、■Lord B@Sub 
C@Div D  ■Add Aの順で行なわれ、その
結果は■Bの値■(B−C”)の値■(B−C)/Dの
値■(B−C)/D+Aの値となる。そして、上記演算
動作では各命令コードの作用するオペランドの大きさな
いし数が決まっているため、一つの命令を実行した後に
プロセッサの処理が停止した時は、次に実行するべき命
令が格納されたメモリアドレスがプログラムカウンタに
自動的に入るようになっている。
このように、ステップ動作による一命令実行後のプロセ
ッサの状態を知ることはデパックのために不可欠である
ため、処理停止後のプロセッサの状態を収集するために
は特別なメカニズムを必要とするのが普通である。
(発明が解決しようとする課題) これに対して、直接実行形のプロセッサによりステップ
動作を行なう場合、先の(2)式や第3図に示したよう
にパ(+” ffl (/ II 、 II (−” 
等の各命令コードが作用するオペランドの大きさないし
数(メモリ上で占めるワード数)が−様でなく不定であ
るため、ステップ動作に際して次に実行するべき命令が
決まらないという問題があり、デバッグのためのステッ
プ動作を簡略かつ正確に実行する方式の提供が従来から
要請されていた。
本発明は上記問題点を解決するために提案されたもので
、その目的とするところは、直接実行形のプロセッサに
おいて簡略かつ正確なステップ動作を可能とし、デパッ
クの容易化を図ったプログラム実行制御方式を提供する
ことにある。
(課題を解決するための手段) 上記目的を達成するため1本発明は、関数型言語で記述
されたプログラムを直接実行するプロセッサにおいて、
プログラムのシングルステップ動作に際し、プログラム
を構成する命令の処理の終わりを示す命令コード、例え
ば“)”コードの存在を常時監視し、このコードがプロ
グラムメモリから読み出された場合にプログラムの実行
を停止させると共に、前記it ) uコードに代えて
プロセッサの状態を収集する命令を実行させることを特
徴とする。
(作用) 本発明によれば、通常動作モードにおいて、プログラム
中の″)”コードは命令の処理の終わりを示すものとし
て従来と同様に処理される。また、ステップ動作モード
では、プログラムメモリから″)”コードが読み出され
ると、コントローラがプログラムメモリの読み出しや命
令ホールド用レジスタのセット等の動作を停止し、l(
) Itコードに代えてプロセッサの状態収集命令を実
行する。
その後、パルス状の継続スタート信号を印加することに
より、上記ステップ動作が抑制されて命令ホールド用レ
ジスタに保持されていた“)”コード本来の処理が実行
され、以後のプログラムメモリ内の命令コードの読み出
し、セット等が行なわれた後、次の“)″コードが読み
出された時点で再び上記状態収集命令を実行する。
(実施例) 以下、図に沿って本発明の一実施例を説明する。
第1図は、本発明が適用される直接実行形のプロセッサ
における構文解析部の要部構成を示したものである。
図において、1は機械語に展開されたプログラムが格納
されるプログラムメモリ、2はプログラムカウンタ、3
はプログラムメモリ1から読み出した命令コードを一時
的に記憶する命令ホールド用レジスタ、4はプログラム
メモリ1からの命令コードを、命令の処理の終わりを示
す′″)″コードと照合するコンパレータ、5は命令ホ
ールド用レジスタ3から出力された命令コードとステッ
プ動作時の1′)”コードとをセレクト信号により切り
換えて出力するセレクタ、6はセレクタ5から出力され
た命令コードを実行命令として一時的に記憶する実行命
令用レジスタ、7はプログラムの通常動作/ステップ動
作を区別させるラン/ステップ信号の反転信号と、上位
プロセッサ等のマスタデバイスによってコントロールさ
れるパルス状の継続スタート信号の反転信号と、コンパ
レータ4においてプログラムメモリーから読み出した命
令コードが″)”コードである場合に出力される一致信
号とを入力とし、停止信号を出力するアンドゲート、8
は前記継続スタート信号及び停止信号を入力とし、プロ
グラムメモリーに対するリード信号、命令ホールド用レ
ジスタ3に対するセット信号、セレクタ5に対するセレ
クト信号、プログラムカウンタ2に対するカウントアツ
プ信号、及び、図示されていない演算部に対する命令実
行信号を出力するコントローラである。
ここで、本実施例では、(2)式の演算をステップ動作
により行なう場合、 (+ A (/辷!し旦ユD)   ・・・・・・(2
)′の如<、  1.(−B  C)、 Il、 (/
  Tの結果D)、m、(+AIIの結果)の順に各命
令を順次実行する。この結果1例えば各オペランドをA
=1゜B=6.C=2.D=2と仮定すると、ステップ
動作による各命令の実行結果は、I、4.Il、2゜■
・3となり、これらの結果は適宜表示されて演算結果の
検証に供されることになる。
次に、上記ステップ動作時における各部の作用を1通常
動作モード時の作用と共に以下に説明する・まず、プロ
グラムメモリ1には、前記同様に(2)式が機械語に展
開されて第2図に示すように格納されている。これらの
オブジェクトコードは。
プログラムカウンタ2によるプログラムアドレスの指定
により順次読み出され、デコード、実行と順次処理され
ていく。
通常動作モードにおいて、例えばステップ■の11 )
 I+コードが読み出された場合にはプロセッサは本来
の動作を行ない、これを命令の処理の終わりとして実行
する。しかるにステップ動作モードでは、例えば継続ス
タート信号が“LOν”レベル、ラン/ステップ信号も
“L Ow 7ルベルにある状態で、プログラムメモリ
1内のオブジェクトコードを順次読み出し、デコード、
実行していく過程において、ステップIの11 ) I
Iコードが読み出されるとコンパレータ4がこれを検出
して一致信号を出力する。 。
この一致信号はアンドゲート7の一入力端子に入力され
るが、これによって停止信号がアクティブ(“High
”レベル)となり、コントローラ8はリード信号、セッ
ト信号等の出力を停止すると共にセレクト信号を出力す
る。これに伴い、セクレタ5はプロセッサの状態収集命
令として” ) 5teP用″コードを本来の11 )
 rtコードに代えて選択し、実行命令用レジスタ6を
介して実行させる。
これにより、1ステップ分の演算結果である(B−C)
が出力され、プロセッサの状態を検証することができる
。すなわち、第2図のステップIは、第3図における処
理■に対応している。
その後、継続スタート信号を印加することにより、この
信号が“High”レベルの期間だけアンドゲート7か
らの停止信号はインアクティブとなり、ステップ動作が
抑制されて一時的に通常動作モードに移行する。従って
、プログラムメモリ1の読み出しや命令ホールド用レジ
スタ3のセット等が再開されると共に、既にプログラム
メモリ1から読み出されて命令ホールド用レジスタ3に
保持されていたrt ) uコードはその本来の意味に
復帰し、at ) +を本来の動作、すなわち対応する
rt (uの命令の処理終了を行なう。つまり、u )
 uコードは通常動作モードとステップ動作モードとで
異なった機能を持ち、特にステップ動作モードでは状態
収集命令として働く。
更に、継続スタート信号が“Low”レベルに戻ると再
びステップモードに戻り、第2図のステップ■における
次のl() I+コードが読み出されるまでコントロー
ラ8の作用により連続的に命令コードのリードやセット
が行なわれ、11 ) 11コードが読み出されると、
上記同様の動作を繰り返すことで自動的にステップ動作
が行なわれる。
従って、第2図のステップ■によってCB−C)/Dの
値が出力され、またステップ■によって(B−C)/D
+Aの値が出力されることになり。
これら各ステップ■、■は第3図における処理■。
■にそれぞれ対応するものである。
(発明の効果) 以上述べたように本発明によれば、ステップ動作におい
てプログラムメモリ内の命令コードを監視し、特定の命
令コードが読み出された場合にこの命令コードに代えて
プロセッサの状態収集命令を実行させるようにしたので
、プログラムメモリ内の命令コードが作用するオペラン
ドの大きさや数に拘らず、常に自動的かつ簡単にステッ
プ動作を行なわせることができ、デバッグ動作が容易に
なるという効果がある。
【図面の簡単な説明】
第1図は本発明の一実施例が適用される演算処理装置の
構文解析部の要部構成を示す図、第2図゛はプログラム
メモリの内容を示す図、第3図は一般的な直接実行形の
プロセッサにおけるプログラムメモリの内容を示す図、
第4図は同じく命令用スタック及び演算結実用スタック
の内容を示す図、第5図は従来のストアードプログラム
方式のプロセッサにおけるプログラムメモリの内容を示
す図である。 1・・・プログラムメモリ 2・・・プログラムカウンタ 3・・・命令ホールド用レジスタ 4・・・コンパレータ     5・・・セレクタ6・
・・実行命令用レジスタ  7・・・アンドゲート8・
・・コントローラ

Claims (1)

  1. 【特許請求の範囲】 関数型言語で記述されたプログラムの構文を解析して前
    記プログラムを直接実行する演算処理装置において、 プログラムのシングルステップ動作に際し、前記プログ
    ラムを構成する命令の処理の終わりを示す命令コードを
    プログラムメモリから読み出した際に、前記プログラム
    の実行を停止させて前記演算処理装置の状態を収集する
    命令を実行させることを特徴とするプログラム実行制御
    方式。
JP63130554A 1988-05-27 1988-05-27 プログラム実行制御方式 Pending JPH01298444A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP63130554A JPH01298444A (ja) 1988-05-27 1988-05-27 プログラム実行制御方式

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP63130554A JPH01298444A (ja) 1988-05-27 1988-05-27 プログラム実行制御方式

Publications (1)

Publication Number Publication Date
JPH01298444A true JPH01298444A (ja) 1989-12-01

Family

ID=15037050

Family Applications (1)

Application Number Title Priority Date Filing Date
JP63130554A Pending JPH01298444A (ja) 1988-05-27 1988-05-27 プログラム実行制御方式

Country Status (1)

Country Link
JP (1) JPH01298444A (ja)

Similar Documents

Publication Publication Date Title
US4742466A (en) System for measuring path coverage represented by the degree of passage of execution paths in a program
KR20110070468A (ko) 인스트루먼테이션 실행 장치 및 방법
JPH01298444A (ja) プログラム実行制御方式
JPH1031595A (ja) シミュレーション装置及びシミュレーション方法
JP2525492B2 (ja) プログラマブルコントロ―ラ
JPH05216721A (ja) 電子計算機
JPH09288595A (ja) 演算処理装置
JPH02181236A (ja) デバッグ装置
JPS63289654A (ja) プログラム分岐命令モニタ方式
JPH05127945A (ja) プログラム実行状況解析方式
JPS5829051A (ja) 演算処理装置
JPH04338825A (ja) 演算処理装置
JPS63217433A (ja) プログラム実行制御方式
JPH01263574A (ja) テストパターンプログラム自動生成装置
JPH0157375B2 (ja)
JPH03175539A (ja) デバッグ用マイクロプロセッサ
JPH05204698A (ja) デバッガ処理方式
JPS59202548A (ja) デバツグ装置
JPS59212907A (ja) プログラマブルコントロ−ラ
JPS59178547A (ja) 命令リトライ方式
JPS604492B2 (ja) 計算機
JPS6275734A (ja) エミユレ−シヨン方式
JPS6278630A (ja) 情報処理装置
JPS625439A (ja) 命令コ−ド拡張方式
JPH11288306A (ja) プログラマブルコントローラの演算方式