JPS61283937A - 命令トレ−ス方式 - Google Patents

命令トレ−ス方式

Info

Publication number
JPS61283937A
JPS61283937A JP60125037A JP12503785A JPS61283937A JP S61283937 A JPS61283937 A JP S61283937A JP 60125037 A JP60125037 A JP 60125037A JP 12503785 A JP12503785 A JP 12503785A JP S61283937 A JPS61283937 A JP S61283937A
Authority
JP
Japan
Prior art keywords
instruction
segment
register
address
contents
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
JP60125037A
Other languages
English (en)
Inventor
Hideshi Ishii
石井 英志
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 JP60125037A priority Critical patent/JPS61283937A/ja
Publication of JPS61283937A publication Critical patent/JPS61283937A/ja
Pending legal-status Critical Current

Links

Landscapes

  • Debugging And Monitoring (AREA)

Abstract

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

Description

【発明の詳細な説明】 〔産業上の利用分野〕 本発明は、ソフトウェアのデバッグを行うための命令シ
ーケンスのトレース方式に関するものである。
〔従来の技術〕
従来からソフトウェアのデバッグを行うための一方法と
して命令トレースと呼ばれる方式が採用されることがあ
る。これは、一連の命令シーケンスを実行中に分岐命令
などにより分岐が成立した場合に、その分岐命令自身の
アドレスすなわち命令カウンタの値をスタックに格納す
る方式であり。
この方式をとれば任意の時点でそのスタックの内容を読
み出すことにより、以前の命令シーケンスすなわちプロ
グラムの道すじを知ることが出来る。
そしてこの道すじは、スタックの容量が増加すればそれ
だけ過去までさかのぼって知ることが出来る。
このように命令トレースを行うことによシッフトウエア
のデバッグを効率良く行うことが出来る。
しかし、従来の命令トレース方式では、スタックへは命
令カウンタの値だけを格納していたため。
以下に述べるセグメンテーション方式のように命令カウ
ンタの値と実行する命令のアドレスが一対一に対応しな
い場合には、デバッグ効率が低下する場合がある。
一般にセグメンテーション方式のアドレッシングを行っ
ているデータ処理装置においては、プログラム(命令)
やデータはセグメントと呼ばれる任意の大きさの情報の
集まりに区切られて管理される。1つ1つのセグメント
は、それに対応したセグメント記述子と呼ばれる情報に
よって規定される。
第5図にセグメント記述子の一例を示す。セグメント記
述子は2ワード(72ビツト)から成っている。第5図
のセグメント記述子において。
BOlJNDはセグメントの大きさ、Fはセグメントに
対するアクセス権等、Wはそのセグメントの属する仮想
空間番号、Tはセグメントのタイプ、 BASEはセグ
メントの先頭アドレスをそれぞれ規定している。第6図
はセグメント記述子と命令カウンタにより実行すべき命
令のアドレスを求めるための方法を示したものである。
実行すべき命令が含まれるセグメント(以後、これを命
令セグメントと呼ぶ)の先頭アドレスはその命令セグメ
ントに対応して存在するセグメント記述子のBASEフ
ィールド(以後、このフィールドの値のことをセグメン
トペースと呼ぶ)によって指定され、さらに実行すべき
命令のセグメント内相対アドレスはデータ処理装置内に
唯一つ存在する命令カウンタの値により指定される。す
なわち命令のアドレスはセグメントペースに命令カウン
タの値を加算して得られる。従って第6図に示されるよ
うにA、Bの2つの命令セグメントのセグメントペース
がそれぞれ1000番地および2000番地であったと
すると、命令カウンタの値が同じ700番地でも命令セ
グメントAでは1700番地、命令セグメントBでは2
700番地がそれぞれの命令のアドレスとなる。
第7図は、プログラムがA、B、Cの3つの命令セグメ
ントを経由するような例を表わしたものである。第7図
においてa+tl+e+dは分岐命令のセグメント内ア
ドレスすなわち命令カウンタの値を示す。また第8図は
第7図のプログラムシーケンスが終了した時点における
スタックの内容を示したものである。
〔発明が解決しよ−うとする問題点〕
第7図および第8図からもわかるように、従来のトレー
ス方式ではスタックの内容だけではどのセグメントから
分岐したかあるいはセグメント間の分岐があったかどう
かすられからず、ソフトウ 。
エアのデバッグの効率が悪いという欠点があった。
〔問題点を解決するための手段〕
本発明の目的は1分岐が成立した場合に、従来の命令カ
ウンタの値と同時にセグメントを識別するための情報を
保持するレジスタの内容を前記スタックへ書き込むよう
にすることによシ、上記欠点を除去し、ソフトウェアデ
バッグの効率を大幅に向上させた命令トレース方式を提
供することにある。
本発明の命令トレース方式は、現在実行中の命令のセグ
メント内アドレスを保持する命令カラン 、りと、その
命令が含まれるセグメントを識別するための情報を保持
するセグメント識別レジスタまたはセグメントを規定す
るためのセグメント記述子を保持するセグメント記述子
レジスタとを含んで構成されるデータ処理装置において
、複数のエントリを有するスタックを設け、命令の分岐
が成立する毎に前記命令カウンタの内容および前記セグ
メント識別レジスタの内容または前記セグメント記述子
レジスタの内容の全部または一部を同時に前記スタック
に書き込むことを特徴としている。
〔実施例〕
次に本発明の実施例について図面を参照して説明する。
第1図は本発明による命令トレース方式を具体化して実
施したデータ処理装置のブロック図を示したものである
。第1図において、主記憶装置1に格納されているプロ
グラムやデータハメモリアクセスユニット2を経由して
データ処理装置内に読み出され、またデータ処理装置内
での演算結果はメモリアクセスユニット2を経由して主
記憶装置1に書き込まれる。先行制御ユニット3け主記
憶装置1から読み出した命令を解読し、必要があればメ
モリアクセスユニット2経由でオ波ランドを読み出し、
演算実行ユニット4へ送る。また読み出した命令が分岐
命令であった場合には1分岐先の命令を読み出すための
制御も行なう。
第2図は先行制御ユニット3の中で2分岐先命令のアド
レスを計算するための回路について図示したものである
。第2図の命令レジスタ201に分岐命令がセットされ
ると、セットされた命令語のアドレスフィールドの値に
対してインデックスレジスタ202の内容が加算される
。(この加算はアドレスアダー204により行われる。
)アドレスアダー204の出力は1分岐先の命令のセグ
メント内アドレスを示しており、この分岐が成立した場
合にはこの値が第1図の命令カウンタ6に送られる。セ
グメント記述子レジスタ203には8個のセグメント記
述子が格納されており、命令レジスタ201にセットさ
れた命令語の指定によりそのうちの1つが読み出される
。読み出されたセグメント記述子は分岐先の命令が存在
するセグメントを規定するものである。アドレスアダー
206ではアドレスアダー204の出力とセグメント記
述子レジスタ203のセグメントペースの出力が加算さ
れ、その結果すなわち分岐先命令の仮想アドレスは仮想
アドレスレジスタ207にセットされる。仮想アドレス
レジスタ207の内容はメモリアクセスユニット2へ転
送され、そこで実アドレスに変換された後主記憶装置1
から分岐先命令を読み出すためのアドレスとして使用さ
れる。一方、セグメント記述子レジスタ203のBOU
NDフィールドの出力とアドレスアダー204の出力は
境界チェック回路205によってチェックされ、アドレ
スアダー204の出力すなわちセグメント内アドレスが
BOtJNDフィールドの値より大きい場合は例外処理
が行われる。
第1図において演算実行ユニット4は先行制御ユニット
3によって先取りされた命令を実行する能 ユニットで、その中にはプログラム可声なレジスタ、固
定小数点演算回路、浮動小数点演算回路。
10進演算回路等が含まれている。分岐制御回路5は、
先行制御ユニット3から送られてくる分岐命令信号と演
算実行ユニット4から送られてくるコンディションコー
ド信号を判断して分岐の成立または不成立を判定する回
路である。命令カウンタ6は現在実行中の命令のセグメ
ント内アドレスを保持するレジスタである。命令カウン
タ6の内容は分岐成立時以外は各命令が終了する毎に加
算回路11により1ずつ加算される。また分岐が成立し
た命令では切替回路14により先行制御ユニット3から
送られてくる分岐先命令のアドレスが選択されて命令カ
ウンタ6に格納される。セグメント識別レジスタ7は現
在実行中の命令セグメントを識別するための識別番号を
保持している。この識別番号はセグメント記述子に対応
してソフトウェアによシ付与される。またセグメント識
別レジスタ7の内容は、実行中の命令セグメントが切シ
かわる毎に、それに対応して変更される。命令トレース
スタック8は16ワードのレジスタファイルにより構成
されておシ、その書き込みおよび読み出しアドレスはス
タックアドレスレジスタ9により指定される。スタック
アドレスレジスタ9の内容は2分岐が成立する毎に加算
回路12によ#)1ずつ加算され、その内容が「15」
になると再び「0」に戻って加算が続けられる。また命
令トレーススタック8には、スタックアドレスレジスタ
9が加算されるのと同じタイミングに命令カウンタ6と
セグメント識別レジスタ7の内容が書き込まれる。この
様子を第3図のタイミングチャートで示す。一方、命令
トレーススタック8の内容を読み出す場合にはスタック
アドレスレジスタ9の内容を減算回路13を使用して1
ずつ減算し。
読み出せば良い。読み出された内容は切替回路16を経
由して演算結果レジスタ10へ転送すれ。
さらにメモリアクセスユニット2を経て主記憶装置1に
格納される。なお、この命令トレーススタック8の読み
出し指示はソフトウェア命令によって行われるため、ソ
フトウェアは任意の時点でこの命令を実行することによ
り命令トレーススタック8の内容を主記憶装置1に読み
出すことが出来。
さらにその内容をプリンタ等に出力することが出来る。
以上説明したように本実施例のように構成することによ
シ、たとえば第7図のようにセグメント間の分岐があっ
ても命令トレーススタック8には第4図に示すようにど
のセグメントから分岐したかが記憶されるのでソフトウ
ェアのデバッグの効率を飛躍的に向上することが出来る
なお1本実施例では命令トレーススタック8にハ命令カ
ウンタ6の内容と共にセグメント識別レジスタ7の内容
を格納したが、セグメント識別レジスタ7のかわりにセ
グメント記述子レジスタ203の内容を格納することに
よっても同様な効果が得られることは明白である。
〔発明の効果〕
本発明には以上説明したように1分岐が成立する毎に命
令カウンタの内容とともにセグメント識別レジスタまた
はセグメント記述子レジスタの内容を命令トレーススタ
ックに書き込み、任意の時点でその内容を読み出すこと
により、ソフトウェアデバッグの効率を大幅に向−りで
きるという効果がある。
【図面の簡単な説明】
第1図は本発明の一実施例を示すブロック図。 第2図は第1図における先行制御ユニット3の中の分岐
先命令のアドレスを計算するための回路を示すブロック
図、第3図は命令トレーススタック8への書き込み制御
を表わしたタイミングチャート、第4図は本発明の場合
のトレースされる内容を示す図、第5図はセグメント記
述子の形式を示す図、第6図は命令のアドレス計算を行
うための方法を概略的に示した図、第7図は、プログラ
ムがセグメント間にわたって分岐する場合を示す図。 第8図は第7図の場合に従来技術の場合においてトレー
スされる内容を示す図である。 1・・・主記憶装置、2・・・メモリアクセスユニット
。 3・・・先行制御ユニット、4・・・演算実行ユニット
。 5・・・分岐制御回路、6・・・命令カウンタ、7・・
・セグメント識別レジスタ、8・・・命令トレーススタ
ック。 9・・・スタックアドレスレジスタ、10・・・演算結
果レジスタ、11.12・・・加算回路、13・・・減
算回路、14,15.16・・・切替回路、201・・
・命令レジスタ、202・・・インデックスレジスタ。 203・・・セグメント記述子レジスタ、204゜20
6・・・アドレスアダー、205・・・境界チェック回
路、207・・・仮想アドレスレジスタ。 ■、■・−・セク゛ンント聞イト田え ■   ・−−−セ′り゛メント内づす政第4図 第5図 第6図 第7図 第8図

Claims (1)

  1. 【特許請求の範囲】 1、現在実行中の命令のセグメント内アドレスを保持す
    る命令カウンタと、その命令が含まれるセグメントを識
    別するための情報を保持するセグメント識別レジスタと
    を含んで構成されるデータ処理装置において、複数のエ
    ントリを有するスタックを設け、命令の分岐が成立する
    毎に前記命令カウンタの内容および前記セグメント識別
    レジスタの内容を同時に前記スタックに書き込むことを
    特徴とする命令トレース方式。 2、現在実行中の命令のセグメント内アドレスを保持す
    る命令カウンタと、その命令が含まれるセグメントを規
    定するためのセグメント記述子を保持するセグメント記
    述子レジスタとを含んで構成されるデータ処理装置にお
    いて、複数のエントリを有するスタックを設け、命令の
    分岐が成立する毎に前記命令カウンタの内容および前記
    セグメント記述子レジスタの内容の全部または一部を同
    時に前記スタックに書き込むことを特徴とする命令トレ
    ース方式。
JP60125037A 1985-06-11 1985-06-11 命令トレ−ス方式 Pending JPS61283937A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP60125037A JPS61283937A (ja) 1985-06-11 1985-06-11 命令トレ−ス方式

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP60125037A JPS61283937A (ja) 1985-06-11 1985-06-11 命令トレ−ス方式

Publications (1)

Publication Number Publication Date
JPS61283937A true JPS61283937A (ja) 1986-12-13

Family

ID=14900279

Family Applications (1)

Application Number Title Priority Date Filing Date
JP60125037A Pending JPS61283937A (ja) 1985-06-11 1985-06-11 命令トレ−ス方式

Country Status (1)

Country Link
JP (1) JPS61283937A (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH01140349A (ja) * 1987-11-27 1989-06-01 Nec Corp 評価用シングルチップマイクロコンピュータ
JP2007133807A (ja) * 2005-11-14 2007-05-31 Hitachi Ltd データ処理システム、ストレージ装置及び管理装置

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH01140349A (ja) * 1987-11-27 1989-06-01 Nec Corp 評価用シングルチップマイクロコンピュータ
JP2007133807A (ja) * 2005-11-14 2007-05-31 Hitachi Ltd データ処理システム、ストレージ装置及び管理装置

Similar Documents

Publication Publication Date Title
US4794522A (en) Method for detecting modified object code in an emulator
US4205370A (en) Trace method and apparatus for use in a data processing system
US5301302A (en) Memory mapping and special write detection in a system and method for simulating a CPU processor
EP0213843A2 (en) Digital processor control
KR960011613A (ko) 데이터 처리장치
JPH0248931B2 (ja)
KR920004279B1 (ko) 포인터레지스터를 구비한 마이크로프로세서
CN115421861B (zh) 一种通用的TMS320C55x处理器指令集虚拟化仿真方法
CN115480871B (zh) 一种通用的tms320c3x处理器指令集虚拟化仿真方法
JPS5987566A (ja) メモリアクセス検出方式
JPS61283937A (ja) 命令トレ−ス方式
EP0297891A2 (en) Apparatus and method for main memory unit protection using access and fault logic signals
JPS60136832A (ja) タグ付きデ−タを扱う論理型デ−タ処理装置
JPS5826584B2 (ja) デ−タ処理装置
JPS6058487B2 (ja) デ−タ処理装置
US6237078B1 (en) Code segment default operation determination
CN115421863B (zh) 一种通用的mips64处理器指令集虚拟化仿真方法
CN115421860B (zh) 一种通用的sparc处理器指令集虚拟化仿真方法
JPH09505428A (ja) ページアドレスモードを有するマイクロコントローラ
JPH02126340A (ja) データ処理システム
JPS60134937A (ja) アドレス拡張装置
US10108528B2 (en) High-performance processor instruction tracing
JP2576589B2 (ja) 仮想記憶アクセス制御方式
JPS6042968B2 (ja) 情報処理装置
JPS6113615B2 (ja)