JP2772982B2 - 2バイト命令注入回路 - Google Patents

2バイト命令注入回路

Info

Publication number
JP2772982B2
JP2772982B2 JP1235288A JP23528889A JP2772982B2 JP 2772982 B2 JP2772982 B2 JP 2772982B2 JP 1235288 A JP1235288 A JP 1235288A JP 23528889 A JP23528889 A JP 23528889A JP 2772982 B2 JP2772982 B2 JP 2772982B2
Authority
JP
Japan
Prior art keywords
instruction
injection
byte
address
microprocessor
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 - Fee Related
Application number
JP1235288A
Other languages
English (en)
Other versions
JPH0398131A (ja
Inventor
賢一郎 久野
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.)
Yokogawa Electric Corp
Original Assignee
Yokogawa Electric 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 Yokogawa Electric Corp filed Critical Yokogawa Electric Corp
Priority to JP1235288A priority Critical patent/JP2772982B2/ja
Publication of JPH0398131A publication Critical patent/JPH0398131A/ja
Application granted granted Critical
Publication of JP2772982B2 publication Critical patent/JP2772982B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Description

【発明の詳細な説明】 <産業上の利用分野> 本発明は、インサーキットエミュレータのデバック用
命令注入回路の機能向上に関する。
<従来の技術> インサーキットエミュレータには、一般にブレーク機
能が備えられており、予め設定したアドレスの命令を中
央処理装置(CPU)がフェッチするバスサイクルで強制
的に固有バスサイクルを生じるような命令(多くの場
合、割り込み命令が用いられる)に置き換えることによ
って、ブレーク処理の起動を行なっている。命令を置き
換える方法としては、専用のハードウェアを用意して設
定アドレスと一致するバスサイクルを検出し、そのバス
サイクルでデータバスを切り替え、ブレーク用の命令コ
ードを強制フェッチさせる方法と、ランダムアクセスメ
モリ(RAM)上の命令コードを直接書き換えてしまう方
法とがある。
<発明が解決しようとする課題> しかしながら、前者の方法では、CPUによっては書き
換える命令コードが1バイト命令に限定されてしまうこ
と、後者の方法では命令バイト数の制限はないが、設定
アドレスの命令がRAM上に存在するという前提条件を必
要とするという問題があった。
実際に、インテル社製の8086等のCPUの場合、2バイ
ト命令が2つのバスサイクルにまたがる場合があるた
め、通常ブレー用命令としては1バイト命令しか用いら
れない制約があった。なお、最近ではブレーク機能に限
らず、命令の置き換えによって実行トリガ検出やタスク
ブレークを実現しようとする試みもあるが、置き換える
命令コードが1バイトに限定される場合、その機能が著
しく制限されるなどの難点がある。
本発明は、このような点に鑑みてなされたもので、そ
の目的は、専用ハードウェアで実現す命令注入機能にお
いて、2バイト命令の注入を可能とし、設定するアドレ
スによって命令フェッチバスサイクルが連続する2つの
バスサイクルにまたがるような場合でも、また2バイト
が同一ワードとして1バスサイクルでフェッチされる場
合でも、CPUの動作に影響を与えることのなく2バイト
命令を注入することのできる命令注入回路を提供するこ
とにある。
<課題を解決するための手段> このような目的を達成するための本発明は、 インサーキットエミュレータにおいて、 指定したアドレスパターンと対象とするマイクロプロ
セッサのアドレスバス上のアドレスとが一致したときに
マイクロプロセッサのデータバス幅をバイト単位に分割
したときのバイト位置別に命令注入要求信号を出力する
アドレス一致検出回路と、 マイクロプロセッサのステータス信号を基にして命令
コードフェッチサイクルのリードタイミングを示す信号
を生成するステータスデコーダと、 前記アドレス一致検出回路の出力の内で次の命令コー
ドフェッチサイクルに継続して命令注入が必要となる場
合に命令注入要求を保持するラッチと、 アダー回路とラッチとコンパレータとで構成され、継
続する命令注入サイクルでマイクロプロセッサが分岐命
令を実行してフェッチアドレスが不連続となった場合に
命令注入を禁止する手段と、 前記命令注入タイミングにマルチプレクサで選択され
る2バイト命令の1バイト目あるいは2バイト目のいず
れかの命令コードをデータバス上に出力する命令注入手
段と、 前記命令注入タイミングでデータバス上に出力された
本来の命令コードのフェッチを禁止するためのバッファ
手段とを具備したことを特徴とする。
<作用> アドレス一致検出回路は、予め指定したアドレスの命
令コードがマイクロプロセッサによりフェッチされるバ
スサイクルとバイト位置を検出し命令注入要求信号を生
成する。
また、命令注入要求を保持するラッチ(スワップ要求
ラッチ)により、指定アドレスに連続した次のアドレス
のバイト位置に2バイト目の命令注入要求信号を生成す
る。
命令注入手段はアドレス一致検出回路およびスワップ
要求ラッチの出力信号に基づきデータバスに適宜命令コ
ードを送出する。
アダー回路,アドレスラッチ,コンバータから構成さ
れる回路では、分岐命令などにより命令コードフェッチ
サイクルが連続したアドレスとならなかった場合を検知
して、保持している2バイト目の命令注入要求信号を解
除する。このようにして、本来フェッチされるべき命令
コードの代わりに固定の命令コードを命令注入手段を介
して強制的にフェッチさせる。
これにより、マイクロプロセッサの動作シーケンスに
影響を与えることなく2バイト長のデバック用固有命令
コードの注入が可能となる。
<実施例> 以下図面を参照して本発明を詳細に説明する。第1図
は本発明に係る2バイト命令命令注入回路の一実施例を
示す構成図である。図において、1はマイクロプロセッ
サで、ここでは16ビットのマイクロプロセッサを対象と
する。2はステータスデコーダで、マイクロプロセッサ
1のステータス信号を基にして命令コードフェッチサイ
クルのリードタイミングを示す信号FETCHを生成する。
3はアドレス一致検出回路で、指定したアドレスパタ
ーンと対象とするマイクロプロセッサのアドレスバス上
のアドレスとが一致したときにマイクロプロセッサ1の
データバス幅をバイト単位に分割したときのバイト位置
別に命令注入要求信号を出力するもので、BHHITとBLHIT
のバイト別の2種類のHIT信号を出力する。これらのHIT
信号は、それぞれ16ビット単位でアクセスされる命令コ
ードの上位アドレス側での一致の場合にはBHHITを、下
位アドレス側での一致の場合にはBLHITが出力される。
4はスワップ(SWAP)要求ラッチで、フェッチ信号FE
TCHによりアドレス一致検出回路3のBHHITをラッチす
る。これはアドレス一致検出回路3の出力の内で次の命
令コードフェッチサイクルに継続して命令注入が必要と
なる場合に命令注入要求を保持するものである。
10はアダー回路で、アドレスバス13上のアドレスをイ
ンクリメントして出力するものである。11はアダー回路
10の出力をフェッチFETCH信号によりラッチするアドレ
スラッチ、12はアドレスラッチ11の出力とアドレスバス
13上のアドレスとを比較するコンパレータで、一致した
場合には出力信号EQがHIGHとなる。
なお、アダー回路10、アドレスラッチ11およびコンパ
レータ12からなる部分は、継続する命令注入サイクルで
マイクロプロセッサ1が分岐命令を実行してフェッチア
ドレスが不連続となった場合に命令注入を禁止する手段
である。
5はアンドゲートで、前記スワップ要求ラッチ4の出
力とコンパレータ12の出力のアンドをとる。
6と8は命令注入手段で、6の方はLバイト命令注入
回路、8の方はHバイト命令注入回路であり、命令注入
タイミングにマルチプレクサで選択される2バイト命令
の1バイト目あるいは2バイト目のいずれかの命令コー
ドをデータバス14H,14L上に適宜に出力することができ
るように構成されている。
特にLバイト命令注入回路6の構成について説明すれ
ば、オアゲート61でアドレス一致検出回路3のBLHIT信
号とアンドゲート5の出力のオアをとり、FETCHの期間
にオアゲート61の出力がアクティブであった場合にはス
ワップ信号SWAPをアクティブにする。マルチプレクサ65
はアンドゲート5の出力により制御され、命令コードレ
ジスタ63,64のいずれか一方を選択出力する。3ステー
トバッファ66は、スワップ信号SWAPがアクティブのとき
イネーブルとなり、マルチプレクサ65で選択された命令
コードをデータバス14L上に出力する。
7および9はそれぞれデータバス14L,14Hに設けられ
た双方向バッファで、双方向バッファ7はLバイト命令
注入回路6のSWAP信号により制御され、双方向バッファ
9はHバイト命令注入回路8のSWAP信号により制御され
る。
このように構成における動作を第2図のタイムチャー
トを参照して次に説明する。なお、タイムチャートは次
の3つのケースにおける各部の波形等を示している。
ケースは、アドレス一致検出が16ビットデータの下
位側アドレスで検出された場合で、2バイト命令注入は
同じバスサイクル中で行なわれる。
ケースは、アドレス一致検出が上位側アドレスで検
出された場合で、2バイト目の命令注入は次の命令フェ
ッチサイクルまで延期される。
ケースは、ケースで2バイト目の命令注入サイク
ルにてプログラムの分岐のためのアドレス不一致が生
じ、命令注入を禁止した場合である。
さて、マイクロプロセッサ1から出力される各種のス
テータス信号はステータスデコーダ2に入力され、マイ
クロプロセッサ1が命令コードをフェッチするバスサイ
クルでリードタイミングを示すFETCH信号を生成する。
アドレス一致検出回路3は予め設定されたアドレスがア
ドレスバス13上に現われたときにHIT信号を出力する。
下位アドレス側(偶数アドレス)の一致を示す信号BLHI
TはLバイト命令注入回路6およびHバイト命令注入回
路8に命令注入要求信号として入力され、それぞれLバ
イト側データバス14Lに1バイト目の命令コード(CODE
#1)注入を要求するSWPREQL#1と、Hバイト側デー
タバス14Hに2バイト目の命令コード(CODE#2)注入
を要求するSWPREQH#2信号となる。
命令注入回路6では、SWPREQ#1/#2いずれかの要求
信号が与えられたときに、前記FETCH信号の期間、命令
コード注入ポートである3ステートバッファ66をイネー
ブルとし、マルチプレクサ65で選択される1バイト目あ
るいは2バイト目のいずれかの命令コードをデータバス
14Lに出力する。命令注入回路8についても同様であ
り、命令コードはデータバス14Hに出力する。
このとき、命令注入回路から命令注入を行なっている
期間にはSWAP信号が出力されているが、この信号はバイ
ト別に設けられる双方向バッファ7,9を制御して命令注
入中データバスに現われる他のデバイスからのリードデ
ータを禁止する。
一方、アドレス一致検出回路3から出力される上位ア
ドレス(奇数アドレス)での一致検出信号BHHITはHバ
イト命令注入回路8に1バイト目の命令コード注入を要
求するSWPREQH#1として入力されると共に、スワップ
要求ラッチ4のデータ入力に与えられ前記FETCH信号の
立ち上がりでラッチされた信号がアンドゲート5を介し
てLバイト命令注入回路6に2バイト目の命令コード注
入を要求するSWPREQL#2として与えられる。
これにより、BHHITが検出されたときは、2バイト目
の命令注入がアドレス一致を検出したバスサイクルの次
の命令フェッチバスサイクルで行なわれるようになる。
ここでマイクロプロセッサ1が1バイト目の注入命令
をフェッチした後、マイクロプロセッサ内の実行ユニッ
トが分岐命令を実行した場合に、分岐先のアドレスの命
令コードフェッチサイクルで2バイト目の命令注入が行
なわれるとマイクロプロセッサ1が暴走状態に陥る可能
性がある。この不具合を回避するため、アドレスバス13
に接続されたアダー回路10が1バイト目と命令注入アド
レスをインクリメントしアドレスラッチ11に与え、続い
てラッチ11の出力は2バイト目の命令注入アドレスの期
待値としてコンパレータ12の一方の入力となる。コンパ
レータ12の他方の入力には直接アドレスバス13に接続さ
れているため、前述のような不具合状況では2バイト目
の命令注入サイクルで、出力EQがネガティブ(ここでは
LOW)となり、この信号によりアンドゲート5が制御さ
れて2バイト目の命令注入動作が直ちに禁止される。
なお、上記実施例は16ビットマイクロプロセッサを対
象としたが、32ビットマイクロプロセッサの場合でも同
様の回路構成で実現できる。ただし、その場合は、アド
レス一致検出回路3の検出出力がバイト別に4本の信号
となる他、命令注入回路も同様に4回路必要となる。ま
た、スワップ要求ラッチのデータ入力は最上位側の検出
信号の出力が接続され、このラッチ出力はアンドゲート
5を介して最下位アドレスに相当する命令注入回路の2
バイト目の命令注入要求信号として接続されるようにす
る。
<発明の効果> 以上詳細に説明したように、本発明によれば、マイク
ロプロセッサの動作に影響を与えることなく任意の2バ
イト長の命令コードを指定したアドレスに注入できるよ
うにしたため、デバック用の命令として割り込み命令に
限らず広範囲の命令が使用できるようになり、プログラ
ムカウンタ相対分岐命令を用いて実行検出機能やタスク
ブレーク機能を実現できるようになるなどの効果があ
る。
【図面の簡単な説明】
第1図は本発明に係る2バイト命令注入回路の一実施例
を示す構成図、第2図は動作説明用のタイムチャートで
ある。 1……マイクロプロセッサ 2……ステータスデコーダ 3……アドレス一致検出回路 4……スワップ要求ラッチ、5……アンドゲート 6……Lバイト命令注入回路 7,9……双方向バッファ 8……Hバイト命令注入回路 10……アダー回路、11……アドレスラッチ 12……コンパレータ、13……アドレスバス 14H,14L……データバス

Claims (1)

    (57)【特許請求の範囲】
  1. 【請求項1】インサーキットエミュレータにおいて、 指定したアドレスパターンと対象とするマイクロプロセ
    ッサのアドレスバス上のアドレスとが一致したときにマ
    イクロプロセッサのデータバス幅をバイト単位に分割し
    たときのバイト位置別に命令注入要求信号を出力するア
    ドレス一致検出回路と、 マイクロプロセッサのステータス信号を基にして命令コ
    ードフェッチサイクルのリードタイミングを示す信号を
    生成するステータスデコーダと、 前記アドレス一致検出回路の出力の内で次の命令コード
    フェッチサイクルに継続して命令注入が必要となる場合
    に命令注入要求を保持するラッチと、 アダー回路とラッチとコンパレータとで構成され、継続
    する命令注入サイクルでマイクロプロセッサが分岐命令
    を実行してフェッチアドレスが不連続となった場合に命
    令注入を禁止する手段と、 前記命令注入タイミングにマルチプレクサで選択される
    2バイト命令の1バイト目あるいは2バイト目のいずれ
    かの命令コードをデータバス上に出力する命令注入手段
    と、 前記命令注入タイミングでデータバス上に出力された本
    来の命令コードのフェッチを禁止するためのバッファ手
    段とを具備し、 前記アドレス一致検出回路により指定したアドレスの命
    令コードがマイクロプロセッサによってフェッチされる
    バスサイクルとバイト位置を検出して命令注入要求信号
    を生成し、同時に指定アドレスに連続した次のアドレス
    のバイト位置にも2バイト目の命令注入要求信号を生成
    し、2バイト目の命令注入バイト位置が次の命令コード
    フェッチサイクルに生じる場合はその命令注入要求信号
    を保持しておき、また次の命令コードフェッチサイクル
    が分岐命令の実行等により連続したアドレスとならなか
    った場合は前記保持した2バイト目の命令注入要求信号
    を禁止して不正な命令注入を回避し、これらの命令注入
    要求信号により、前記ステータスデコーダが出力する命
    令フェッチサイクルのリードタイミングで本来フェッチ
    されるべき命令コードの代わりに固定の命令コードを前
    記命令注入手段を介して強制的にフェッチさせるように
    して、マイクロプロセッサの動作シーケンスに影響を与
    えることなく2バイト長のデバッグ用固有命令コードの
    注入ができるようにしたことを特徴とする2バイト命令
    注入回路。
JP1235288A 1989-09-11 1989-09-11 2バイト命令注入回路 Expired - Fee Related JP2772982B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP1235288A JP2772982B2 (ja) 1989-09-11 1989-09-11 2バイト命令注入回路

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP1235288A JP2772982B2 (ja) 1989-09-11 1989-09-11 2バイト命令注入回路

Publications (2)

Publication Number Publication Date
JPH0398131A JPH0398131A (ja) 1991-04-23
JP2772982B2 true JP2772982B2 (ja) 1998-07-09

Family

ID=16983891

Family Applications (1)

Application Number Title Priority Date Filing Date
JP1235288A Expired - Fee Related JP2772982B2 (ja) 1989-09-11 1989-09-11 2バイト命令注入回路

Country Status (1)

Country Link
JP (1) JP2772982B2 (ja)

Also Published As

Publication number Publication date
JPH0398131A (ja) 1991-04-23

Similar Documents

Publication Publication Date Title
US4701844A (en) Dual cache for independent prefetch and execution units
US5652858A (en) Method for prefetching pointer-type data structure and information processing apparatus therefor
US4710866A (en) Method and apparatus for validating prefetched instruction
US7752427B2 (en) Stack underflow debug with sticky base
US5961633A (en) Execution of data processing instructions
US6205509B1 (en) Method for improving interrupt response time
JP3242508B2 (ja) マイクロコンピュータ
JP3707581B2 (ja) 自己整合スタック・ポインタを有するデータ処理システムおよびその方法
US4747045A (en) Information processing apparatus having an instruction prefetch circuit
US20020184566A1 (en) Register pointer trap
JP2583525B2 (ja) データ処理装置
JP2772982B2 (ja) 2バイト命令注入回路
US5586336A (en) Microcomputer capable of monitoring internal resources from external
JP3211423B2 (ja) 分岐命令実行方法および分岐命令実行装置
JPH08171504A (ja) エミュレ−ション装置
JPS62197831A (ja) デ−タ処理装置
JPS63284644A (ja) 命令アドレス出力回路
JP3323341B2 (ja) エミュレーション用プロセッサおよびそれを搭載したエミュレータ
JP2665173B2 (ja) プロセッサトラップ回路
JPH06202907A (ja) デバッグ支援装置
JP2535984B2 (ja) 命令実行検出装置
JPH0340075A (ja) マイクロコンピュータ
JP2001084149A (ja) 情報処理装置における割り込み処理方式
JPH0255810B2 (ja)
JPH0243626A (ja) コンピュータ・プロセッサの実行速度を制御する装置

Legal Events

Date Code Title Description
LAPS Cancellation because of no payment of annual fees