JPH0439097B2 - - Google Patents

Info

Publication number
JPH0439097B2
JPH0439097B2 JP60283711A JP28371185A JPH0439097B2 JP H0439097 B2 JPH0439097 B2 JP H0439097B2 JP 60283711 A JP60283711 A JP 60283711A JP 28371185 A JP28371185 A JP 28371185A JP H0439097 B2 JPH0439097 B2 JP H0439097B2
Authority
JP
Japan
Prior art keywords
branch
address
instruction
output
source
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.)
Expired - Lifetime
Application number
JP60283711A
Other languages
English (en)
Other versions
JPS62143143A (ja
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 filed Critical
Priority to JP60283711A priority Critical patent/JPS62143143A/ja
Publication of JPS62143143A publication Critical patent/JPS62143143A/ja
Publication of JPH0439097B2 publication Critical patent/JPH0439097B2/ja
Granted legal-status Critical Current

Links

Landscapes

  • Debugging And Monitoring (AREA)

Description

【発明の詳細な説明】 〔概要〕 主としてデバツギングおよび診断等の目的に用
いるブランチトレースの制御において、分岐元ア
ドレスおよび分岐先アドレスが予め設定した上限
アドレスと下限アドレスの範囲内にあるか否かの
チエツクを既存の演算回路により行うよう構成し
たもので、これによりハードウエア量を削減する
ことができる。
〔産業上の利用分野〕
本発明は、主としてデバツギングおよび診断等
の目的に使用するため、分岐条件が成立したとき
分岐元と分岐先の命令アドレスを主記憶上に格納
するブランチトレースのための制御方式に関す
る。
〔従来の技術〕
ブランチトレース制御においては、分岐元およ
び分岐先のアドレスに特定のアドレス範囲を設け
ることが多く、これを行う場合には、分岐命令に
より分岐したときの分岐元および分岐先のアドレ
スを、設定したアドレス範囲の上限アドレスおよ
び下限アドレスと比較する必要がある。
第6図は、ブランチトレース制御の従来例の示
すブロツク図である。
第6図はブランチトレースに関係ある部分のみ
を取り出して示している。図において、1は算術
論理演算機構(ALU)であり、2はAレジスタ
(AR)、3はBレジスタ(BR)であり、4は命
令アドレスレジスタ(iAR)であり、6はZレジ
スタ(ZR)であつて、それぞれ中央処理装置の
主要構成要素の一つである。
51および52は、主記憶(MS)5の一部領
域を示し、51はローカルストレージ(LS)と
呼ばれる領域であり、52は分岐先および分岐元
のアドレスを書き込むテーブル(以下、BTデー
ブルと称す)を書き込む領域である。
81,82,83および84は、ブランチトレ
ースのために設けたレジスタおよび比較回路であ
る。
81は下限アドレスをセツトするレジスタ(L
−LMT−REG)であり、82は上限アドレスを
セツトするレジスタ(U−LMT−REG)であ
る。
83は比較回路1であり、命令アドレスレジス
タ(iAR)4の内容とL−LMT−REG81の内
容とを比較する。84は比較回路2であり、命令
アドレスレジスタ(iAR)4の内容とU−LMT
−REG82の内容とを比較する。
85はANDゲートであり、比較回路1,83
および比較回路2,84の出力のAND条件を取
る。
86は遅延AND回路であり、ANDゲート85
の2回の出力のAND条件を求める。
10はBT制御部であり、ブランチトレースの
ための制御を行う。
中央処理装置において一般命令が実行されてい
る通常の運用状態では、命令アドレスレジスタ
(iAR)4の示すアドレスで主記憶5(プログラ
ム領域は図示省略)から命令を図示省略の命令レ
ジスタに読み出し、これが解読されて命令の示す
データがAレジスタ2およびBレジスタ3に読み
出され、ALU1によつて命令の示す演算が行わ
れ、Zレジスタ6に結果が読み出される。iAR4
の内容は図示省略のカウントアツプ機構により+
1され次々と命令が実行される。
分岐条件演算の命令が実行され、条件が満足さ
れると、分岐命令が上記命令レジシタに読み出さ
れ、iAR4には分岐先のアドレスがセツトされ
る。このiAR4の示すアドレスの命令が読み出さ
れて分岐先の命令が実行される。
デバツキングまたは診断のため、ブランチトレ
ースを行うに当たつては、まず主記憶のLS領域
51内に、分岐先アドレスおよび分岐元アドレス
を記憶させておくBTテーブル52上の先頭アド
レスを示すポインタと、BTテーブルの残り領域
を示すバイトカウントを書き込み、分岐元および
分岐先アドレスの下限アドレスをL−LMT−
REG81に、上限アドレスをU−LMT−REG8
2にセツトする。
BTイネーブル(+BT−ENB)信号は、操作
者が任意にセツトできる信号であつて、ブランチ
トレースさせたいときは“1”にセツトしてお
く。
分岐命令が命令レジスタに読み出され、BTイ
ネーブル信号が“1”であると、BT制御部10
が活性化されて、BT制御部10の制御が優先さ
れ、分岐先命令のフエツチは休止さる。
iAR4の内容(分岐元命令アドレス)は、比較
回路1,83で下限アドレス以上であるかをチエ
ツクされ、比較回路2,84は上限アドレス以下
であるかをチエツクされて、その両方とも成立し
たときは、ANDゲート85が開かれる。次いで
iAR4には分岐先メモリアドレスがセツトされ、
同様な比較が比較回路1,83および比較回路
2,84で行われ、両方とも成立したときは
ANDゲート85が開かれる。ANDゲート85の
2回の出力は遅延AND回路86に入れられ2回
とも成立の場合には、BTオーケー(+BT−
OK)が“1”となる。
BTイネーブルが“1”にセツトしてあり、
BTオーケーが“1”となれば、ANDゲート7
が開かれ、LS51中のポインタの示すBTテーブ
ルアドレスに分岐元および分岐先アドレスが書き
込まれ、書込みデータのバイト数だけポインタが
加算され、バイトカウントはバイト数だけ減算さ
れて、次の先頭アドレスおよび残りのバイト数を
示すように更新される。これらの動作は全てBT
制御部10の制御により行われる。
このように、従来方式ではブランチトレースの
ために専用のレジスタL−LMT−REGおよびU
−LMT−REG、ならびに比較回路1,2を必要
とする。
〔発明が解決しようとする問題点〕
上記のように、従来方式ではブランチトレース
のために専用のレジスタおよび比較回路を必要と
するものであつた。
本発明は、このような専用のレジスタおよび比
較回路を必要とせず、ハードウエア量を削減した
新規なブランチトレース制御方式を提供しようと
するものである。
〔問題点を解決するための手段〕
第1図は本発明のブランチトレース制御方式の
原理ブロツク図を示す。
第1図において、ALU1、Aレジスタ2、B
レジスタ3、iAR4、主記憶5、LS51、BTテ
ーブル52およびANDゲート7は第6図と同一
の対象物を示す。
9は桁上げ及びゼロ出力検査回路であり、演算
回路(ALU)1が本来備えている桁上げ出力
(演算結果がマイナスのとき“1”となる)およ
びゼロ出力(演算結果がゼロのとき“1”とな
る)を入力とし、所定の演算により条件検査を行
う。
10はBT制御手段であり、主記憶LS領域から
の読出し、Aレジスタ2、Bレジスタ3および
ALU1を使用しての演算を制御する。
ブランチトレースを行うに当たつては、まず主
記憶のLS領域51に、ポインタおよびバイトカ
ウントの外に、分岐元および分岐先アドレスの上
限アドレスならびに下限アドレスを格納してお
く。これらの動作は、通常いわゆるサービスプロ
セツサのような補助プロセツサにより実行させ
る。
中央処理装置においてプログラムが走行し、分
岐条件が成立し分岐が行われると、BT制御手段
10が活性化され、BT制御手段10がBT実行
要求を出し、これに優先権が与えられているの
で、分岐先命令のフエツチは休止され、BT制御
手段10によるブランチトレース制御が開始され
る。
BT制御手段10の制御が開始され、演算回路
(ALU)1の一方の入力に分岐アドレス、次いで
分岐先アドレスをセツトし、他方の入力に主記憶
のLS領域51に格納してある上限アドレスおよ
び下限アドレスを取り出してセツトして、 (下限アドレス)−(分岐元アドレス)、 (上限アドレス)−(分岐元アドレス)、 (下限アドレス)−(分岐先アドレス)、 (上限アドレス)−(分岐先アドレス)、 の4回の演算を実行させる。
ALU1における4回の演算結果の桁上げ出力
およびゼロ出力は、桁上げ及びゼロ出力検査回路
9に入れられ、ここで次の検査が行われる。
即ち、およびの演算結果で桁上げ出力が
“1”であるか又はゼロ出力が“1”であり、且
つおよびの演算結果で桁上げ出力が“0”で
あるか又はゼロ出力が“1”である条件が全て満
足されたとき、BTオーケー信号を“1”とす
る。
BTイネーブルが“1”にセツトしてあり、
BTオーケーが“1”となれば、ANDゲート7
が開かれ、LS51中にポインタの示すBTテーブ
ルアドレスに分岐元アドレスおよび分岐先アドレ
スが書き込まれる。また、書込みポインタが読み
出されデータのバイト数だけ加算されて書き込ま
れ、バイトカウントはバイト数だけ減算されて、
次の先頭アドレスおよび残りのバイト数を示すよ
うに更新されることは従来例と同様である。
第2図は、命令とブランチトレースの実行シー
ケンスを示す図である。
図において、横軸は時間を示し各縦線は中央処
理装置のマシンサイクルを示す。中央処理装置に
おいて命令が走行中は各命令毎にALU使用要求
が出され、これより高い優先度の要求がないとき
その命令がALUを使用して命令を実行する。
ALUの使用要求の優先順位は次のようになつて
いる。
第1位 ブランチトレース要求 第2位 命令フエツチ要求 第3位 命令実行要求 サイクルで一つの一般命令の命令実行要求が
出され、ALU使用権を得てサイクル,で命
令が実行される。サイクルの終わりで次の命令
(分岐命令)の実行要求が出され、ALU使用権を
得てサイクル,で命令が実行される。これが
分岐命令であるためBT制御手段が活性化され、
サイクルの終わりでトレース要求を出す。分岐
命令の実行から分岐先の命令フエツチ要求が出さ
れる。トレース要求が命令フエツチ要求より優先
度が高いため、トレース要求がALU使用権を得
てブランチトレースが実行される。
サイクルでブランチトレース実行が終了し、
トレース要求は無くなるので命令フエツチ要求が
ALU使用権を得て分岐先命令がフエツチされ、
サイクルの終わりで命令実行要求が出されサイ
クル,で分岐先の命令が実行される。
〔作用〕
上記構成により、分岐元および分岐先アドレス
が、セツトされている上限および下限アドレス内
にあるか否かの検査ができることを、つぎに説明
する。
分岐元(分岐先についても同様)アドレス(x
とする)は、下限および上限アドレス(L−
LMT,U−LMT)に対して、第3図aに示すよ
うに次の5つの場合がある。
(a) x<L−LMT、 (b) x=L−LMT、 (c) L−LMT<x<U−LMT、 (d) x=U−LMT、 (e) U−LMT<x、 上記5つの各々の場合に対する(L−LMT)−
xおよび(U−LMT)−xの演算結果に対する桁
上げ出力およびゼロ出力は、第3図bに示すよう
になる。
従つて、分岐元または分岐先アドレスxが、上
限および下限アドレス内にあるとき、即ち(b),
(c),(d)にあるときの、(L−LMT)−xおよび
(U−LMT)−xの演算結果に対する桁上げ出力
およびゼロ出力の共通のオーケー条件は、第3図
bの最下欄の通りであり、4つの演算でこれが満
足されれば、BTオーケーとなる。
上記のようにして、既存の演算回路を使用して
比較演算を行うことにより、第6の従来例におい
て81〜84で示した4バイト程度の専用のレジ
スタおよび比較回路を必要とせず、9で示した1
ビツトの極めて小さな回路で済み、ハードウエア
量を大いに削減できる。
〔実施例〕
以下第4図および第5図に示す実施例により、
本発明をさらに具体的に説明する。
第4図は本発明の実施例のブロツク図である。
第5図は本発明の実施例のタイムチヤートであ
る。
第4図において、第5図と同一の符号は同一の
対象物を示す。
第4図に示す91〜95は、第1図に示した桁
上げ及びゼロ出力検査回路9の内容の実施例回路
である。
91は排他的論理和回路(EOR)であり、演
算回路(ALU)1の桁上げ出力と、サイクルカ
ウント92の出力を入力としている。
サイクルカウント92は、クロツクで+1カウ
ントし、自己出力で“0”にリセツトする回路で
あり、従つて第5図のタイムチヤートで示すよう
に、サイクル毎に“0”,“1”を繰り返す。
93はORゲートであり、EOR91の出力と演
算回路(ALU)1のゼロ出力を入力とする。
94はANDゲートであり、ORゲート93の出
力と回路95の出力を入力とする。
回路95は、ORゲート93の出力により
“1”にリセツトされ、次のサイクルで“0”に
なる回路である。
最初のサイクルで、サイクルカウント92が
“0”であり、桁上げ出力が“1”であるとする
と、EOR91の出力は“1”となる。
EOR91の出力が“1”となると、ゼロ出力
の値に関係なく、ORゲート93の出力は“1”
となり、回路95は初期状態で“1”であるか
ら、ANDゲート94の出力は“1”となり、回
路95は“1”にリセツトされる。
次のサイクルでは、サイクルカウント92は
“1”となり、桁上げ出力が“0”であれば、
EOR91の出力は“1”となる。従つて、AND
ゲート94の出力は“1”となり、回路95は
“1”にリセツトされる。
次のサイクルでは、サイクルカウント92は
再び“0”となり、サイクルと同様なことが行
われる。
次のサイクルでは、サイクルカウント92は
再び“1”となり、サイクルと同様なことが行
われ、ANDゲート94からはBT−OK“1”と
して出力される。
このように、以上の各サイクルで、ゼロ出力が
“1”となれば、EOR91の出力が“0”であつ
てもANDゲート94の出力は“1”となる。
以上の,,,の4回のサイクルのう
ち、1回でもORゲート93の出力が“0”のサ
イクルがあると、ANDゲート94の出力は“0”
となり、回路95は“1”にリセツトされず、
ANDゲート94の出力は“0”となつてしまう。
第4図の回路において分岐条件が成立し分岐が
行われるとき、ブランチトレースが実行される状
況は第5図のタイムチヤートに示す通り、次のよ
うになる。
(1) Aレジスタ(AR)2にLS51からL−
LMTがセツトされ、Bレジスタ(BR)3に
は分岐元アドレスがセツトされる。このときの
サイクルカウントは“0”である。
(2) 次のサイクルで、ALU1において、AR−
BRの演算が行われ、その演算結果の桁上げお
よびゼロ出力が91〜95の回路で検査され
る。
(3) AR2にはLS51からU−LMTがセツトさ
れる。サイクルカウント92は“1”となる。
(4) 次のサイクルで、ALU1において、AR−
BRの演算が行われ、その演算結果の桁上げお
よびゼロ出力が91〜95の回路で検査され
る。
(5) BR3には命令アドレスレジスタ(iAR)4
から分岐先アドレスがセツトされ、AR2には
LS51からL−LMTがセツトされる。サイク
ルカウントは“0”となる。
(6) 次のサイクルで、ALU1において、AR−
BRの演算が行われ、その演算結果の桁上げお
よびゼロ出力が91〜95の回路で検査され
る。
(7) AR2にはLS51からU−LMTがセツトさ
れる。サイクルカウントは“1”となる。
(8) 次のサイクルで、ALU1において、AR−
BRの演算が行われ、その演算結果の桁上げお
よびゼロ出力が91〜95の回路で検査され
る。
(9) ANDゲート94の出力、即ちBT−OKが
“1”であれば、Zレジスタ(ZR)にある分岐
元アドレスおよびBR3にある分岐先アドレス
がBTテーブル52に書き込まれる。
(10) AR2にはLS51からバイトカウントがカセ
ツトされ、BR3には、“8”がセツトされる。
“8”の値はBTテーブル52に書き込まれる
分岐元および分岐先アドレスデータが8バイト
であるからである。
(11) 次のサイクルで、ALU1において、AR
−BRの演算が行われ、その結果によつてLS5
1内のバイトカウントの値を更新する。
(12) AR2にはLS51からポインタがセツト
される。
(13) 次のサイクルで、ALU1において、AR
+BRの演算が行われ、その結果によつてLS5
1内のポインタの値を更新する。
以上で1回のブランチトレースが終わり、次の
ブランチトレースの準備が整つたことになり、
BT制御部10は命令実行要求を止め、ALU1の
使用権はプログラム命令に移され分岐先命令がフ
エツチされ、次々と実行される。
〔発明の効果〕
以上説明のように本発明によれば、既存の演算
回路を利用してアドレス比較を行うため、ハード
ウエア量を削減することができ、その実用上の効
果はきわめて大である。
【図面の簡単な説明】
第1図は本発明の原理ブロツク図、第2図はブ
ランチトレース実行時のタイムチヤート、第3図
はBTオーケー条件を示す図、第4図は本発明の
実施例のブロツク図、第5図は本発明の実施例の
タイムチヤート、第6図は従来例のブロツク図で
ある。 図面において、1は演算回路(ALU)、2はA
レジスタ(AR)、3はBレジスタ(BR)、4は
命令アドレスレジスタ(iAR)、5は主記憶、6
はZレジスタ(ZR)、7はANDゲート、9は桁
上げ及びゼロ主検査回路、10はBT制御部(手
段)、51はLS領域、52はBTテーブル領域、
81,82はレジスタ、83,84は比較回路、
85はANDゲート、86は遅延AND回路、91
は排他的論理和回路(EOR)、92はサイクルカ
ウント、93はORゲート、94はANDゲート、
95はリセツト1回路、それぞれ示す。

Claims (1)

  1. 【特許請求の範囲】 1 分岐条件が成立したとき分岐元および分岐先
    の命令アドレスを主記憶装置の特定領域上に格納
    するブランチトレース処理を行うデータ処理装置
    において、 分岐条件が成立したとき活性化され、前記デー
    タ処理装置の備える演算回路の一方の入力に分岐
    元アドレス、次いで分岐先アドレスをセツトし、
    その各々に対して他方の入力に予め特定領域に格
    納した上限アドレスと下限アドレスとを取り出し
    セツトして、4回の差演算を実行させるBT制御
    手段と、 前記演算回路による差演算の結果が負であると
    き“1”となる桁上げ出力と差演算の結果がゼロ
    であるとき“1”となるゼロ出力とを入力とし、
    前記各演算の結果における前記桁上げ出力ならび
    にゼロ出力を検査し、前記各回の演算結果総てが
    所定の条件を満足したときブランチトレースを許
    容する信号を出力する、桁上げおよびゼロ出力検
    査回路とを備え、 ブランチトレースを行う場合にはプログラム走
    行前に、前記分岐元および分岐先アドレスの上限
    値および下限値を主記憶の特定領域に格納してお
    き、プログラムが走行し分岐条件が成立したとき
    は前記BT制御手段が活性化され、前記演算回路
    の使用権を得て、分岐元および分岐先アドレスの
    上限値および下限値との比較演算を前記データ処
    理装置の演算回路により行うよう構成したことを
    特徴とするブランチトレース制御方式。
JP60283711A 1985-12-17 1985-12-17 ブランチトレ−ス制御方式 Granted JPS62143143A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP60283711A JPS62143143A (ja) 1985-12-17 1985-12-17 ブランチトレ−ス制御方式

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP60283711A JPS62143143A (ja) 1985-12-17 1985-12-17 ブランチトレ−ス制御方式

Publications (2)

Publication Number Publication Date
JPS62143143A JPS62143143A (ja) 1987-06-26
JPH0439097B2 true JPH0439097B2 (ja) 1992-06-26

Family

ID=17669090

Family Applications (1)

Application Number Title Priority Date Filing Date
JP60283711A Granted JPS62143143A (ja) 1985-12-17 1985-12-17 ブランチトレ−ス制御方式

Country Status (1)

Country Link
JP (1) JPS62143143A (ja)

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS5323244A (en) * 1976-08-16 1978-03-03 Hitachi Ltd Information processing unit
JPS609294B2 (ja) * 1979-12-27 1985-03-09 株式会社東芝 電子計算機におけるトレ−ス方式

Also Published As

Publication number Publication date
JPS62143143A (ja) 1987-06-26

Similar Documents

Publication Publication Date Title
JP2005317023A (ja) データ処理装置のブレークポイント論理ユニット、デバッグ論理、およびブレークポイントの方法
US4750110A (en) Method and apparatus for executing an instruction contingent upon a condition present in another data processor
EP0523758B1 (en) A method and apparatus for coordinating execution of an instruction by a coprocessor
JPS59231652A (ja) メモリアクセス・オ−バラツプ検出方式
JP2583525B2 (ja) データ処理装置
JPH0439097B2 (ja)
JPS5826584B2 (ja) デ−タ処理装置
US4758978A (en) Method and apparatus for selectively evaluating an effective address for a coprocessor
JPH0377137A (ja) 情報処理装置
JPS6242301B2 (ja)
JPS62156738A (ja) プログラム制御装置
JPS61131047A (ja) パイプライン制御方式
JPS60122442A (ja) メモリ処理装置
JPS58195255A (ja) デ−タ処理装置
JPH02297225A (ja) マイクロプロセッサ
JPH0234058B2 (ja)
JPS59211149A (ja) コンペアストツプ方式
JPH02254541A (ja) 条件分岐命令の制御方式
JPS6232509B2 (ja)
JPH0564373B2 (ja)
JPH0340075A (ja) マイクロコンピュータ
JPH01116753A (ja) 1チップマイコンの周辺装置とのアクセス方法
JPH01193943A (ja) マイクロコンピュータ
JPH0419575B2 (ja)
JPH11191072A (ja) デバッグのブレイク処理方法及びデバッグ処理装置