JPS62264332A - 命令先読み制御回路 - Google Patents

命令先読み制御回路

Info

Publication number
JPS62264332A
JPS62264332A JP10910686A JP10910686A JPS62264332A JP S62264332 A JPS62264332 A JP S62264332A JP 10910686 A JP10910686 A JP 10910686A JP 10910686 A JP10910686 A JP 10910686A JP S62264332 A JPS62264332 A JP S62264332A
Authority
JP
Japan
Prior art keywords
instruction
signal
queue
prefetch
control circuit
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
JP10910686A
Other languages
English (en)
Inventor
Masaya Miyazaki
雅也 宮崎
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.)
Panasonic Holdings Corp
Original Assignee
Matsushita Electric Industrial Co Ltd
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 Matsushita Electric Industrial Co Ltd filed Critical Matsushita Electric Industrial Co Ltd
Priority to JP10910686A priority Critical patent/JPS62264332A/ja
Publication of JPS62264332A publication Critical patent/JPS62264332A/ja
Pending legal-status Critical Current

Links

Landscapes

  • Advance Control (AREA)

Abstract

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

Description

【発明の詳細な説明】 産業上の利用分野 本発明は、マイクロコンピュータの命令先読み制御回路
に関するものである。
従来の技術 近年のマイクロコンピュータでは、例えば、森下irマ
イクロコンピュータのハードウェア」。
(昭59..11.9)、P21に示されているように
、命令実行を高速化するために、バスにアイドル期間が
あるときは自動的に命令を先読みして貯蔵しておくとい
う手法が用いられている。
第2図は上記の手法を用いた従来のマイクロコンピュー
タの命令先読み制御回路のブロック図であり、1は先読
みした命令をファーストイン・ファーストアウト方式で
保持する命令キュー(以下IQと略記する)であり、2
は次に先読みする命令のアドレスを保持する先読みカウ
ンタ(以下PFCと略記する)であり、3はデコードす
る命令の一部または全部を保持する命令レジスタ(以下
IRと略記する)であり、4は次にデコードする命令の
アドレスを保持する命令ポインタ(以下IPと略記する
)であり、5はIQlの先頭に保持されているデータを
In3にロードすることを要求するネクスト信号51と
、lQlの内容を無効にするキューフラッシュ信号62
と、XP4に分岐先のアドレスをロードする命令ポイン
タロード信号54と、IF5の内容をPFC2にロード
する先読みカウンタロード信号53を生成する命令デコ
ーダであり、eは命令先読み要求信号61を生成する先
読みi!al 御回路であり、7はIQlの先頭のデー
タをIn2にロードする命令レジスタロード信号71と
、命令デコーダ6にデコードを許可するデコード許可信
号72を生成するデコード制御回路であシ、11はIQ
lに次に先読みする命令を格納する領域があることを示
すノットフル信号であり、12は工Q1が空であること
を示すエンプティ信号であり、8は先読み制御回路6か
らの先読み要求と命令実行ユニットからのリード・ライ
ト要求を調停してメモリ1oのリード・ライトを行なう
バス制御回路である。
以上のように構成された従来の命令先読み制御回路につ
いて、以下その動作について説明する。まず、IQzに
次に先読みする命令を格納する領域があるときノットフ
ル信号11はアクティブであり、先読み制御回路6は命
令先読み要求信号61をアクティブにし、バス制御回路
8は命令実行ユニット9がバスを使用しなくなるまで待
った後、PFC2が示すアドレスから命令をフェッチし
てIQlの後尾に格納し、先読みカウンタインクリメン
ト信号81を出力して、PFC2の内容を1回の先読み
でフェッチするバイト数だけインクリメントする・工Q
1に次に先読みする命令を格納する領域がないときは、
ノットフル信号11はインアクティブであり、先読み制
御回路6は命令先読み要求信号e1をインアクティブに
し、命令の先読みは行なはない。すなわち、IQlに次
に先読みする命令を格納する領域があシ、かつ命令実行
ユニット9がバスを使用していないときは、常に命令の
先読みを実行することになる。
一方、デコード制御回路7は、ネクスト信号51がアク
ティブかつエンプティ信号12がインアクティブのとき
のみ、命令レジスタロード信号71を出力して工Q1の
先頭のデータをIn2にロードした後、デコード許可信
号72をアクティブにするとともに命令ポインタインク
リメント信号1を出力してIF5の内容をIn2にロー
ドされるバイト数だけインクリメントする。命令デコー
ダ5はデコード許可信号72がアクティブになるのを待
った後、先ずネクスト信号61をインアクティブにし、
次にIn2のデータをデコードして命令実行に必要な制
御信号を生成し、最後に再びネクスト信号51をアクテ
ィブにする◇すなわち、工Q1が空でなければ、ある命
令を実行した後すぐに次の命令を実行することができ、
先読みができなかったときのみ命令がフェッチされるの
を待つことになる(例えば、jMNl、890シリーズ
・ユーザーズマニュアル」、松下電子工業、P1a)。
また、分岐命令を実行した時命令デコーダ6は、まず分
岐先のアドレスを命令実行ユニットが計算するのに必要
な信号を生成し、そのアドレスを命令ポインタロード信
号54を出力してIF5にロードする。次に先読みカウ
ンタロード信号53を出力してIF5に格納された分岐
先のアドレスをPFC2にロードするとともにキューフ
ラッシュ信号S2を出力し、最後にネクスト信号51を
アクティブにする◇先読み制御回路6は、キューフラッ
シュ信号62が出力された時点で命令キュークリア信号
62を出力してIQlをクリアする。
その結果ノットフル信号11とエンプティ信号71はと
もにアクティブになり、再び先読み要求信号61はアク
ティブになる。この時命令実行ユニット9はバスを使用
していないから、工Q1には分岐先の命令がフェッチさ
れ、命令のフェッチが完了してエンプティ信号12がイ
ンアクティブになりしだい分岐先の命令がデコードされ
て実行される0 発明が解決しようとする問題点 しかしながら上記のような構成の命令先読み制御回路を
持つマイクロコンピュータでは、デバッグ装置の実現に
問題がある。
デバッグ装置には、ユーザが指定した命令の実行直前に
ブレークポイント割り込みを発生してユーザープログラ
ムの実行を停止するという機能が必要である。従来の命
令キューを持たないマイクロコンピュータのデバッグ装
置では、マイクロコンピュータが出力する命令アドレス
と指定された命令のアドレスを比較し、両者の値が一致
したときにマイクロコンピュータに対して割り込み信号
を入力することによってこの機能を実現していた。
ところが、命令キューを持ったマイクロコンピュータで
は、第3図に示すように命令のフェッチと実行の間に時
間的ずれがあり、分岐命令を実行するときには、分岐命
令の次の命令を実行しないにもかかわらずフェッチする
ことがある。従って、上記のような方法でブレークポイ
ント割り込みを発生すると、実行されない命令の先読み
でブレークポイント割り込みが発生する可能性がある。
これを回避するために従来のデバッグ装置では、例えば
jiAPX286オペレーテイング・システム・ライタ
ーズ拳ガイド」、(昭69.7.10)。
インテルジャパン(株)、P83に示されているように
、デバッグ装置が指定されたユーザの命令をブレークポ
イント割り込みを発生する別の命令と置き換えるという
方法、あるいは、特開昭60−225948号公報に示
されているように、マイクロコンピュータが出力する命
令アドレスと指定された命令のアドレスを比較し、両者
の値が一致したときにユーザの命令の代わりにブレーク
ポイント割り込みを発生する別の命令をマイクロコンピ
ュータに読み込ませることによってこの機能を実現して
いる0ところが、前者の方法ではユーザのプログラムが
ROMに格納されているようなシステムには使用できな
いという欠点があり、後者の方法では回路が複雑になる
という欠点があった。
また、デバッグ装置の他の機能として、実行された命令
をトレースするという機能がある。従来のマイクロコン
ピュータのデバッグ装置では、この機能をマイクロコン
ピュータが出力したアドレスと命令メモリから読み込ま
れた命令をトレースメモリに書き込むことによって実現
されていた。
ところが、この方法では実行されない命令が、実行され
た命令と同様にトレースされ、プログラムのデバッグ効
率を低下させるという欠点があった。
本発明は、かかる点に鑑み、効果的なデバッグ装置を簡
単な回路で実現することを可能にする命令先読み回路を
提供することを目的とする。
問題点を解決するための手段 本発明は、先読みした命令をファーストイン・ファース
トアウト方式で保持する命令キューと、次に先読みする
命令のアドレスを保持する先読みカウンタと、デコード
する命令の一部または全部を保持する命令レジスタと、
次にデコードする命令のアドレスを保持する命令ポイン
タと、命令先読み禁止フラグと、前記命令先読み禁止フ
ラグが“1#の時、一命令実行毎に前記命令キューの内
容を無効にするキューフラッシュ信号と、前記命令ポイ
ンタの内容を前記先読みカウンタにロードする先読みカ
ウンタロード信号を生成する命令デコーダとを備えた命
令先読み制御回路である。
作   用 本発明は前記した構成により、命令先読み禁止フラグが
1”の時、一命令実行毎に次の命令をフェッチすること
になり、常に実行される命令の先頭アドレスが外部に出
力され、実行されない命令の先頭アドレスが外部に出力
されることはない。
従って、本発明の命令先読み制御回路を内蔵したマイク
ロコンピュータのデバッグ装置は、マイクロコンピュー
タが出力する命令アドレスと指定された命令のアドレス
を比較し、両者の値が一致したときにマイクロコンピュ
ータに対して割り込み信号を入力することによってブレ
ークポイント機能を実現することができる。
実施例 第1図は本発明の命令先読み制御回路の一実施例のブロ
ック図である。第1図において・1は先読みした命令を
ファーストイン・ファーストアウト方式で保持する命令
キュー(以下IQと略記する)であり、2は次に先読み
する命令のアドレスを保持する先読みカウンタ(以下P
FCと略記する)であり、3はデコードする命令の一部
または全部を保持する命令レジスタ(以下IRと略記す
る)であり、4は次にデコードする命令のアドレスを保
持する命令ポインタ(以下IPと略記する)であり、6
0は命令先読み禁止フラグであシ、6はIRsの内容の
デコード終了毎i、LQ1の先頭に保持されているデー
タをIn2にロードすることを要求するネクスト信号5
1を生成し、命令先読み禁止フラグeOが′1#の時、
−命令の実行終了毎にIQlの内容を無効にするキュー
フラッシュ信号52と、IF5の内容をPFC2にロー
ドする先読みカウンタロード信号63を生成し、分岐命
令をデコードするときにはIF5に分岐先のアドレスを
ロードする命令ポインタロード信号54と、先読みカウ
ンタロード信号53を生成する命令デコーダであり、6
は命令先読み禁止フラグ6oが1”であり、ネクスト信
号51がアクティブであり、IQlの内容が空であるこ
とを示すエンプティ信号12がアクティブのときと、命
令先読み禁止フラグ6oが“0”であり、工Q1−に次
に先読みする命令を格納する領域があることを示すノッ
トフル信号11がアクティブのときに、命令先読み要求
信号61を生成する先読み制御回路であり、7はネクス
ト信号61がアクティブであり、エンプティ信号12が
インアクティブのとき工Q1の先頭に保持されているデ
ータをIRaにロードする命令レジスタロード信号71
と、命令デコーダ6にデコードを許可するデコード許可
信号72を生成するデコード制御回路であり、8は先読
み制御回路6からの先読み要求と命令実行ユニット9か
らのリード・ライト要求を調停してメモリ1oのリード
・ライトを行なうバス制御回路である。
以上のように構成された本実施例の命令先読み制御回路
について、以下その動作について説明する。尚本実施例
では、−回の先読みでフェッチされる命令のサイズは4
バイトであり、In2のサイズは2バイトであり、−命
令のサイズは2の整数倍である。
まず、命令先読み禁止フラグ60が“0#のときの動作
であるが、この時の動作は従来の命令先読み制御回路の
動作とまったく同様であるのでその説明を省略する。
次に、命令先読み禁止フラグ6oが1′のときの動作に
ついて説明する。
初期状態は工Q1は空であり、ネクスト信号61がアク
ティブであり、PFC2とIPaは共に次に実行する命
令のアドレスを示していると仮定する。この時、ネクス
ト信号61とエンプティ信号12は共にアクティブであ
るから、先読み制御回路6は命令先読み要求信号61を
アクティブにし、パス制御回路8は命令実行ユニット9
がバスを使用しなくなるまで待った後、PFC2が示す
アドレスを出力してメモリ1oから命令を4バイトフエ
ツチしてIQlに格納し、先読みカウンタインクリメン
ト信号81を出力して、PFC2の内容を4バイトイン
クリメントする。命令がフェッチされるとエンプティ信
号12はインアクティブになるから、デコード制御回路
7は命令レジスタロード信号71を出力して、XQlに
格納された命令の先頭の2バイトをIn2にロードした
後、デコード許可信号72をアクティブにするとともに
命令ポインタインクリメント信号73を出力してIF5
の内容を2バイトインクリメントする。ここで第一の場
合として、今デコードして実行しようとしている命令が
2バイト命令のときの動作について説明する。命令デコ
ーダ5はデコード許可信号72がアクティブになると、
先ずネクスト信号51をインアクティブにし、次にIn
2のデータをデコードして命令実行に必要な制御信号を
生成して命令を実行した後、先読みカウンタロード信号
53を出力して次に実行する命令のアドレスをPFC2
にロードし、キューフラッシュ信号52を出力し、最後
に再びネクスト信号51をアクティブにする。先読み制
御回路6はキューフラッシュ号62が出力された時点で
命令キュークリア信号62を出力して工Q1をクリアし
て初期状態と同じ状態になり、再び次に実行する命令の
先頭アドレスから4バイトの命令をフェッチして同様の
ことを繰9返す。
次に第二の場合として、今デコードして実行しようとし
ている命令が4バイト命令のときの動作について説明す
る。命令デコーダ5はデコード許可信号子2がアクティ
ブになると、先ずネクスト信号61をインアクティブに
し、次にIn2のデータをデコードして命令実行に必要
な制御信号を生成した後、再びネクスト信号61をアク
ティブにする。この時IQ1にはまだ命令の残り2バイ
トが格納されているから、エンプティ信号12はインア
クティブであシ、デコード制御回路7はデコード許可信
号72をインアクティブにした後、命令レジスタロード
信号71を出力して、IQlに格納された命令の残りの
2バイトをIn2にロードした後、再びデコード許可信
号72をアクティブにするとともに命令ポインタインク
リメント信号73を出力してIF5の内容を2バイトイ
ンクリメントする。この時点でIF5は次に実行する命
令のアドレスを示している。命令デコーダ5はデコード
許可信号72がアクティブになると、先ずネクスト信号
61をインアクティブにし、次にIRsに格納された残
りの2バイトをデコードして命令実行に必要な制御信号
を生成して命令の実行を完了した後、先読みカウンタロ
ード信号53を出力して次に実行する命令のアドレスを
P Fe2にロードし、キューフラッシュ信号52を出
力し、最後に再びネクスト信号51をアクティブにする
先読み制御回路6はキューフラッシュ号52が出力され
た時点で命令キュークリア信号62を出力して工Q1を
クリアして初期状態と同じ状態になり、再び次に実行す
る命令の先頭アドレスから4バイトの命令をフェッチし
て同様のことを繰り返す。
次に第三の場合として、今デコードして実行しようとし
ている命令が6バイト命令のときの動作について説明す
る。命令デコーダ5は、第二の場合と同様に最初の2バ
イトと次の2バイトをデコードして命令実行に必要な制
御信号を生成した後、再びネクスト信号51をアクティ
ブにする。この時IQ1の内容は空であるから、エンプ
ティ信号12はアクティブであり、先読み制御回路6は
命令先読み要求信号61をアクティブにし、バス制御回
路8は命令実行ユニット9がバスを使用しなくなるまで
待った後、PFC2が示す残りの2バイトの命令が格納
されているアドレスから命令を4バイトフエツチして工
Q1に格納し、先読みカウンタインクリメント信号81
を出力して、PFC2の内容を4バイトインクリメント
する。命令がフェッチされるとエンプティ信号12はイ
ンアクティブになるから、デコード制御回路7は命令レ
ジスタロード信号71を出力して、工Q1に格納された
命令の先頭の2バイト、すなわち今実行している命令の
最後の2バイトをIn2にロードした後、デコード許可
信号72をアクティブにするとともに命令ポインタイン
クリメント信号73を出力してIF5の内容を2バイト
インクリメントする。この時点でIF5は次に実行する
命令のアドレスを示している。命令デコーダ5はデコー
ド許可信号72がアクティブになると、先ずネクスト信
号61をインアクティブにし、次にIn2に格納された
最後の2バイトをデコードして命令実行に必要な制御信
号を生成して命令の実行を完了した後、先読みカウンタ
ロード信号53を出力して次に実行する命令のアドレス
をPFC2にロードし、キューフラッシュ信号52を出
力し、最後に再びネクスト信号51をアクティブにする
先読み制御回路6はキューフラッシュ号52が出力され
た時点で命令キュークリア信号62を出力してIQlを
クリアして初期状態と同じ状態になり、再び次に実行す
る命令の先頭アドレスから4バイトの命令をフェッチし
て同様のことを繰り返す。
最後に第四の場合として分岐命令を実行した時の動作に
ついて説明する。命令デコーダ6は、まず分岐先のアド
レスを命令実行ユニット9が計算するのに必要な信号を
生成し、そのアドレスを命令ポインタロード信号64を
出力してIF5にロードする0次に先読みカウンタロー
ド信号63を出力してIF5に格納された分岐先のアド
レスをPFC2にロードするとともにキューフラッシュ
号62を出力し、最後にネクスト信号61をアクティブ
にする。先読み制御回路6は、キューフラッシュ号62
が出力された時点で命令キュークリア信号62を出力し
てIQlをクリアする。その結果エンプティ信号71は
アクティブになり、再び先読み要求信号61はアクティ
ブになる。この時命令実行ユニット9はバスを使用して
いないから、IQlには分岐先の命令がフェッチされ、
命令の7エツチが完了してエンプティ信号12がアクテ
ィブになりしだい分岐先の命令がデコードされて実行さ
れる。
以上のように、本実施例によれば、命令先読み禁止フラ
グを設けて、このフラグがセットされていないときは従
来と同じスピードで命令を実行し、このフラグがセット
されているときは、常に命令の実行直前にその先頭アド
レスを外部に出力し、実行されない命令の先頭アドレス
を出力することなくプログラムを実行することができる
。従って、本実施例を内蔵したマイクロコンピュータを
デバッグ時のみこのフラグをセットして使用することに
よって、デバッグ装置のブレークポイント機能−と命令
トレース機能を簡単な回路で実現することができる。
発明の詳細 な説明したように、本発明によれば、命令キューの効果
を失うことなく、効果的なデバッグ装置を簡単な回路で
実現することができるマイクロコンピュータを提供する
ことができ、実用上ひじょうに有益なものである。
【図面の簡単な説明】
第1図は本発明における一実施例の命令先読み制御回路
のブロック図、第2図は従来の命令先読み制御回路のブ
ロック図、第3図は従来のマイクロコンピュザの命令の
7エツチと実行のタイミング図である。 1・・・・・・命令キュー、2・・・・・・先読みカウ
ンタ、3・・・・・・命令レジスタ、4・・・・・・命
令ポインタ、5・・・・・・命令デコーダ、6・・・・
・・先読み制御回路、7・・・・・・デコード制御回路
、6o・・・・・・命令先読み禁止フラグ。

Claims (1)

    【特許請求の範囲】
  1. 先読みした命令をファーストイン・ファーストアウト方
    式で保持する命令キューと、次に先読みする命令のアド
    レスを保持する先読みカウンタと、デコードする命令の
    一部または全部を保持する命令レジスタと、次にデコー
    ドする命令のアドレスを保持する命令ポインタと、命令
    の先読みを禁止する命令先読み禁止フラグと、前記命令
    レジスタの内容のデコード終了毎に、前記命令キューの
    先頭に保持されているデータを前記命令レジスタにロー
    ドすることを要求するネクスト信号を生成し、前記命令
    先読み禁止フラグが“1”の時、一命令実行毎に前記命
    令キューの内容を無効にするキューフラッシュ信号と、
    前記命令ポインタの内容を前記先読みカウンタにロード
    する先読みカウンタロード信号を生成する命令デコーダ
    と、前記命令先読み禁止フラグが“1”であり、前記ネ
    クスト信号がアクティブであり、前記命令キューの内容
    が空の時と、前記命令先読み禁止フラグが“0”であり
    、前記命令キューに次に先読みする命令を格納する領域
    がある時に、命令先読み要求信号を生成する先読み制御
    回路と、前記ネクスト信号がアクティブであり、前記命
    令キューの内容が空でない時、前記命令キューの先頭に
    保持されているデータを前記命令レジスタにロードする
    命令レジスタロード信号と、前記命令デコーダにデコー
    ドを許可するデコード許可信号を生成するデコード制御
    回路を備えた命令先読み制御回路。
JP10910686A 1986-05-13 1986-05-13 命令先読み制御回路 Pending JPS62264332A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP10910686A JPS62264332A (ja) 1986-05-13 1986-05-13 命令先読み制御回路

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP10910686A JPS62264332A (ja) 1986-05-13 1986-05-13 命令先読み制御回路

Publications (1)

Publication Number Publication Date
JPS62264332A true JPS62264332A (ja) 1987-11-17

Family

ID=14501725

Family Applications (1)

Application Number Title Priority Date Filing Date
JP10910686A Pending JPS62264332A (ja) 1986-05-13 1986-05-13 命令先読み制御回路

Country Status (1)

Country Link
JP (1) JPS62264332A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH01112429A (ja) * 1987-10-27 1989-05-01 Mitsubishi Electric Corp マイクロコンピュータ

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH01112429A (ja) * 1987-10-27 1989-05-01 Mitsubishi Electric Corp マイクロコンピュータ

Similar Documents

Publication Publication Date Title
US4879646A (en) Data processing system with a pipelined structure for editing trace memory contents and tracing operations during system debugging
US4701844A (en) Dual cache for independent prefetch and execution units
JP2539357B2 (ja) デ−タ処理装置
EP0405318A2 (en) Microprocessor having cash bypass signal terminal
JPH0689174A (ja) コンピュータメモリシステム
JPS63193230A (ja) 高性能マイクロプロセッサ集積回路とメモリ参照を行なう方法
US5263153A (en) Monitoring control flow in a microprocessor
JPS60168238A (ja) パイプラインデータ処理装置
GB2392998A (en) Handling interrupts during multiple access program instructions
JP2734468B2 (ja) プロセッサ
JPH03233630A (ja) 情報処理装置
JPS62264332A (ja) 命令先読み制御回路
EP0415351A2 (en) Data processor for processing instruction after conditional branch instruction at high speed
JPS60225262A (ja) 2重キヤツシユメモリを有するパイプラインプロセツサ
JPH01124049A (ja) マイクロプロセッサ
JPS6032220B2 (ja) 情報処理装置
JPS6349938A (ja) 命令先取り制御装置
JP3328867B2 (ja) マルチプロセッサ演算装置、および該装置を有するプログラマブルコントローラ
JPH087713B2 (ja) マイクロプロセッサ
JPH0795288B2 (ja) マイクロコンピュータ
JPH04340145A (ja) キャッシュメモリ装置
JPH03288245A (ja) データ処理装置
JPS61133439A (ja) 命令先取り制御方式
JPS58134350A (ja) メモリ制御装置
JPH07191879A (ja) デバッグ用命令の実行機能を有するマイクロプロセッサおよびデバッグ方法