Nothing Special   »   [go: up one dir, main page]

JP2872117B2 - マイクロプロセッサ - Google Patents

マイクロプロセッサ

Info

Publication number
JP2872117B2
JP2872117B2 JP8167668A JP16766896A JP2872117B2 JP 2872117 B2 JP2872117 B2 JP 2872117B2 JP 8167668 A JP8167668 A JP 8167668A JP 16766896 A JP16766896 A JP 16766896A JP 2872117 B2 JP2872117 B2 JP 2872117B2
Authority
JP
Japan
Prior art keywords
signal
instruction
address
output
bus
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
JP8167668A
Other languages
English (en)
Other versions
JPH1011290A (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.)
NIPPON DENKI AISHII MAIKON SHISUTEMU KK
Original Assignee
NIPPON DENKI AISHII MAIKON SHISUTEMU KK
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 NIPPON DENKI AISHII MAIKON SHISUTEMU KK filed Critical NIPPON DENKI AISHII MAIKON SHISUTEMU KK
Priority to JP8167668A priority Critical patent/JP2872117B2/ja
Publication of JPH1011290A publication Critical patent/JPH1011290A/ja
Application granted granted Critical
Publication of JP2872117B2 publication Critical patent/JP2872117B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Landscapes

  • Advance Control (AREA)
  • Debugging And Monitoring (AREA)

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、命令格納用メモリ
を内蔵したマイクロプロセッサに係わり、特にパイプラ
イン動作を行うマイクロプロセッサに関する。
【0002】
【従来の技術】命令格納用メモリとして、キャッシュメ
モリの場合を例にあげて説明する。
【0003】キャッシュメモリを内蔵しないマイクロプ
ロセッサでは、外部端子のアドレスバスおよびデータバ
スを使用し、制御信号に応答して、外部のメインメモリ
から実行すべき命令を随時読み込んで実行する。従っ
て、外部端子、特にアドレスバスと制御信号の状態を観
測することによって実行中の命令を判別することがで
き、インサーキットエミュレータ等での命令トレースを
実現することが可能であった。
【0004】またLSIテスタ等でのデバイスの電気的
特性試験において、Fail、すなわち外部端子の状態
をシミュレーション等で生成した期待値と随時比較し、
不一致となる信号が発生した場合にも、実行中の命令を
判別することが容易であるため、問題箇所の特定を迅速
に行うことができた。
【0005】しかし、キャッシュメモリを内蔵したマイ
クロプロセッサでは、実行すべき命令が内蔵キャッシュ
メモリにヒットしてしまうと外部メインメモリへのアク
セスが行われないため、外部端子を観測していただけで
は実行中の命令を特定することは不可能であり、命令ト
レースを行うことができなかった。
【0006】そこで、命令トレースを行う場合にキャッ
シュメモリを使用禁止状態にして常に外部メインメモリ
へのアクセスが発生するようにし、外部端子を観測する
ことで命令トレースを実現する方法がある。
【0007】この、キャッシュを使用禁止にする従来例
のシステム構成の一例を示した図16を参照すると、命
令キャッシュメモリ部(以下、命令キャッシュ部と称
す)11、データキャッシュメモリ部(以下、キャッシ
ュ部と称す)12、レジスタファイル部13、演算実行
部14、プログラムカウンタ部15、分岐アドレス生成
部16、バスインタフェース部17および制御部18を
備え、命令キャッシュ部11から出力されるミスヒット
信号501とキャッシュ使用禁止信号565がOR回路
177に入力され、その出力は制御部18とバスインタ
フェース部17にそれぞれ入力される。命令キャッシュ
部11とバスインタフェース部17とにはプログラムカ
ウンタ部15の出力信号503が供給される。
【0008】レジスタファイルRF13は出力504が
分岐アドレス生成部16と演算実行部14の選択回路1
01を介してラッチ102とにそれぞれ供給され、レジ
スタファイル13の他方の出力505がラッチ103に
接続される。
【0009】選択回路101の他方の入力端はバス50
7によって分岐アドレス生成部16と命令キャッシュ部
11と制御部18とバスインタフェース部17とにそれ
ぞれ接続される。
【0010】分岐アドレス生成部16の分岐アドレス出
力はプログラムカウンタ部15に、プログラムカウンタ
部15のフェッチアドレスが分岐アドレス生成部16に
供給される。
【0011】ラッチ10および103の出力はALU
105にそれぞれ供給され、ALU105の出力はラッ
チ106とデータキャッシュ部12とバスインタフェー
ス部17とにそれぞれ供給される。ラッチ104の出力
はバス508によってデータキャッシュ部12とバスイ
ンタフェース部17と選択回路107の一方の入力端に
それぞれ供給され、選択回路107の他方の入力端には
ラッチ106の出力が供給される。
【0012】選択回路107の出力はラッチ108に供
給され、その出力はレジスタファイルRF13の入力端
に供給される。
【0013】データキャッシュ部12のミスヒット信号
510およびキャッシュ使用禁止信号565はそれぞれ
NOR回路176を介してバスインタフェース部17と
制御部18にそれぞれ供給される。
【0014】上述した構成からなるマイクロプロセッサ
1cは、外部端子、またはマイクロプロセッサ内のレジ
スタから生成されるキャッシュ使用禁止信号565によ
ってキャッシュメモリを使用禁止にすることを通知す
る。キャッシュメモリからのミスヒット信号501を強
制的にアクティブにすることによって、常にキャッシュ
ミスヒットが発生し、実質的にキャッシュを使用してい
ない状態となる。
【0015】その動作説明用のキャッシュミス時のパイ
プラインのタイミングチャートを示した図17を参照す
ると、各命令inst1〜inst5で命令フェッチの
ための外部メインメモリへのアクセスが発生する。すな
わち、メモリリードバスサイクルではバスサイクル開始
信号がロウレベルになるタイミングに応答して、外部ア
ドレスバスにアドレス信号が出力され、その後バスサイ
クル開始信号がロウレベルからハイレベルへ変化すると
外部データバスにメモリから読み出されたリードデータ
が入力される。
【0016】一方、キャッシュメモリを使用したまま、
分岐命令で分岐した場合にアドレスを外部に出力する場
合の従来例が特開平4−319741号公報に記載され
ている。同公報記載のデバッグサポート機能を有するマ
イクロプロセッサの構成図を示した図18を参照する
と、マイクロプロセッサはバスインタフェース部18
1、キャッシュメモリ部182、命令プリフェッチ部1
83、命令デコーダ・アドレス計算部184、および演
算実行部185を備えてなる。
【0017】バスインタフェース部181は、外部との
間で信号を授受するための部分であり、特に外部アドレ
スバス571および端子186と、外部データバス57
2および端子187とによって外部のメインメモリとデ
ータのやり取りを行う。
【0018】キャッシュメモリ部182は、このマイク
ロプロセッサに内蔵されたキャッシュメモリであり、命
令およびデータ混在型である。命令プリフェッチ部18
3によってアクセスされ、そのアクセスがヒットしたか
ミスヒットとなったかを示すヒット/ミスヒット表示信
号573をバスインタフェース部181に出力する。
【0019】命令プリフェッチ部183は、命令のフェ
ッチ要求が発生すると、まずフェッチアドレスをアドレ
スバス577を通じてキャッシュメモリ部182へ与
え、そのアクセスがヒットした場合にはキャッシュメモ
リ部182からデータバス578を通じて命令コードお
よびその他のデータを受け取り、一方ミスヒットとなっ
た場合にはバスインタフェース部181を通じて外部の
メインメモリから命令コードおよびその他のデータを受
け取る。
【0020】また、後述する分岐先のアドレスが分岐ア
ドレスバス576を通じて演算実行部から与えられた場
合には、この新しいアドレスに応答してキャッシュメモ
リ部182を参照し、同時にバスインタフェース部18
1に分岐後の命令フェッチであることを示す信号579
を出力する。
【0021】命令デコーダ・アドレス計算部184は、
命令用データバス574を通じて命令プリフェッチ部1
83から命令コードを受け取ると、演算実行部185で
実行可能な命令形式に変換し、演算実行に必要なオペラ
ンドに対するアドレスを計算する。
【0022】演算実行部185は、命令デコーダ・アド
レス計算部184から命令用データバス575を介して
命令コードおよびオペランドのアドレスを受け取り、受
け取ったアドレスに基づいてオペランドがメモリ上のデ
ータか否かを判定し、メモリ上のデータであればアドレ
スバス577およびデータバス578を通じてキャッシ
ュメモリ部182を参照し、ヒットした場合にはキャッ
シュメモリ部182からデータバス578を介してデー
タを受け取る。
【0023】一方、ミスヒットした場合にはバスインタ
フェース部181を通じて外部メインメモリよりデータ
を受け取る。また、受け取った命令コードが分岐命令を
表す場合には、必要に応じて分岐条件を調べ、分岐が必
要な場合には分岐先のアドレスを分岐アドレスバス57
6を通じて命令プリフェッチ部183へ送る。
【0024】バスインタフェース部181は、命令プリ
フェッチ部183から分岐後の命令フェッチであること
を示す信号579を受け取った場合には、分岐後最初に
行われる命令フェッチであることを示す分岐表示信号5
80を端子188を介して外部に出力する。
【0025】また、この時キャッシュメモリ部182か
らヒット/ミスヒット表示信号573を受け取り、それ
がヒットしている場合にはヒット表示信号581を端子
189を介して外部に出力し、かつその時のキャッシュ
メモリ部182に与えられているアドレスをアドレスバ
ス577を通じて受け取り、それを外部アドレスバス5
71に出力し、端子186を介して外部へ出力する。
【0026】したがって、このマイクロプロセッサで
は、命令シーケンスの過程で分岐が行われたか否か、お
よび分岐後最初の命令フェッチがキャッシュメモリ部で
ヒットしたか否かをそれぞれ分岐表示信号およびヒット
表示信号によって外部でモニタでき、また外部メインメ
モリへアクセスされるアドレスだけでなくキャッシュメ
モリ部でアクセスされるアドレスも外部アドレスバス5
71を通じて知ることができる。
【0027】分岐が行われない場合には命令はシーケン
シャルに実行されるため、キャッシュメモリ部182で
ミスヒットが発生し、バスインタフェース部181を通
して外部メインメモリへのアクセスが発生した場合のア
ドレス、および分岐命令実行時のアドレスから、命令シ
ーケンスを予測することができる。
【0028】例えば、分岐命令で分岐した場合のタイミ
ングチャートを示したを図19を参照すると、命令in
st1の後に分岐命令1が実行され、命令inst4の
後に分岐命令2がそれぞれ実行されるとすると、バスサ
イクル開始信号がハイレベルの期間において、分岐命令
1がRFを実行するタイミングで分岐表示信号およびヒ
ット表示信号がそれぞれハイレベルとなり、外部アドレ
スバスには分岐アドレスが出力されている。同様に分岐
命令2がRFを実行するタイミングで分岐表示信号およ
びヒット表示信号がそれぞれハイレベルとなり、外部ア
ドレスバスには分岐アドレスが出力されている。
【0029】
【発明が解決しようとする課題】上述したように、キャ
ッシュメモリを内蔵し、パイプライン制御によって動作
するマイクロプロセッサでは、通常そのキャッシュメモ
リを使用して動作することを前提としている。したがっ
て、キャッシュメモリにヒットして動作している間は、
後述する図11のタイミングチャートに示すように、パ
イプラインがすべて詰まった状態となり、実質的に1命
令1クロックで実行されることになり、パイプライン動
作が高速性をもつことを示している。
【0030】しかし、前述の図16に示した、内蔵キャ
ッシュメモリを使用禁止として命令トレースを行う従来
例では、図17のタイミングチャートに示すように、パ
イプラインが4クロックサイクル期間まで延びた状態と
なり、1命令に例えば4クロックを要してしまい、キャ
ッシュメモリを使用した場合のタイミングを作り出すこ
とはできなくなってしまう。
【0031】したがって、デバッグすべきプログラムの
本来の動作タイミングとは異なるタイミングでしか命令
トレースを行うことができないという問題がある。
【0032】また、図18に示した、分岐先アドレスを
外部に出力する従来例では、図20に示したライトバス
サイクル時のタイミングチャートに示すように、分岐先
アドレスを出力しようとするタイミングにおいて、外部
アドレスバスがデータライトサイクルで使用されている
と、分岐先アドレスを出力できなくなってしまう。
【0033】同様に、図21に示したバスホールド時の
タイミングチャートに示すように、命令inst4の後
に実行される分岐命令がRFを実行して分岐先アドレス
を出力しようとするタイミング(図中の点線で示したタ
イミング)では、バスホールド要求信号(HLDRQ)
が出力され、ホールド要求が受つけられた、すなわちバ
スホールド応答信号(HLDAK)がアクティブの状態
によって外部バスが使用できない場合には、分岐先アド
レスを出力することができないため、命令トレースがで
きなくなってしまう。
【0034】さらに、図22に示す命令列のように、同
一の分岐先アドレス(target)を持つ分岐命令b
eqz、beqz、jumpが近接して存在した場合、
どの分岐命令が実行されたかの判別がつかなくなり、正
確な命令トレースができなくなってしまう。
【0035】本発明の目的は、上述した欠点に鑑みなさ
れたものであり、内蔵メモリを使用したまま、外部バス
の状態や命令シーケンスに影響されずに完全な命令トレ
ースを行うことが出来るようにして、特性・性能向上と
高速化を実現するマイクロプロセッサを提供することに
ある。
【0036】
【課題を解決するための手段】本発明のマイクロプロセ
ッサの特徴は、クロック信号に応答して1クロック毎に
実行命令アドレスを更新して出力するプログラムカウン
タと、前記クロック信号に応答して前記実行命令アドレ
スを受けてキャッシュヒット時は対応する命令コードを
出力しミスヒット時はミスヒット信号を出力する命令格
納用キャッシュメモリと、前記命令コードを受けて前記
クロック信号に応答してその命令を実行する命令実行制
御手段と、前記実行命令アドレスを保持し外部バスに接
続されたバスインターフェースと、前記プログラムカウ
ンタおよび前記命令実行制御手段への前記クロック信号
の供給を許可するパイプライン動作許可信号を発生する
パイプライン停止手段とを有し、前記実行命令アドレス
の更新,前記命令コードの出力並びに前記命令の実行を
それぞれ1クロック単位でパイプライン動作を行うマイ
クロプロセッサにおいて、前記パイプライン停止手段
は、前記ミスヒット信号が発生したときに前記パイプラ
イン動作許可信号を非アクティブとして前記クロック信
号の供給を停止し、前記バスインターフェースは、前記
ミスヒット信号が発生したときまたは前記マイクロプロ
セッサがデバッグモードであるときに前記実行命令アド
レスを前記外部バスに出力することにある。
【0037】また、前記パイプライン停止手段は、前
スヒット信号を入力する組み合せ回路と、この組み合
せ回路の出力信号と外部から入力したパイプラインの動
作停止用の第1の制御信号の反転信号とを入力する第1
の論理積回路とを有し、この第1の論理積回路の出力を
前記パイプライン動作許可信号としてパイプライン制御
手段のクロックが供給される論理回路へ供給し、前記第
1の制御信号がアクティブになったときに前記第1の論
理積回路の出力で前記パイプライン動作許可信号を非ア
クティブにして前記論理回路の前記クロック信号の出力
をマスクすることにより強制的に前記パイプライン動作
を停止させ、前記プログラムカウンタおよび前記命令実
行制御手段がこのときの内部状態を保持するように構成
する。
【0038】さらに、前記パイプライン動作許可信号が
供給される前記パイプライン制御手段は、前記命令格納
キャッシュメモリのアドレスを受けるラッチ手段とデ
ータキャッシュメモリのアドレスを受けるラッチ手段と
前記プログラムカウンタのアドレス更新手段と命令コー
ドおよび命令デコーダのデコード結果から所定の制御信
号および分岐命令を生成する前記命令実行制御手段のラ
ッチ手段とにそれぞれ供給されるクロック信号をマスク
するための論理回路である。
【0039】さらにまた、前記第1の制御信号は、内部
回路から外部に接続されるメモリコントローラに出力す
るバスホールド信号の受付け通知信号を反転した信号か
らなる。
【0040】また、前記パイプライン停止手段は、外部
から入力する前記第1の制御信号に代えて内部回路で生
成される第2の制御信号が用いられ、この第2の制御信
号は、前記内部回路で生成されるバスサイクルスタート
信号とデータストローブ信号との論理積を取る第2の論
理積回路と、この第2の論理積回路の反転出力とバスホ
ールド信号の受付け通知信号の反転信号との論理和をと
って前記第2の制御信号を出力する論理和回路とを有
し、バスホールド時に前記第2の制御信号をアクティブ
にすることによって強制的に前記パイプライン動作を停
止させ、かつこのときの内部状態を保持するように構成
する。
【0041】さらに、ライトバスサイクル時に前記第2
の制御信号をアクティブにすることによって強制的に前
記パイプライン動作を停止させるように構成する。
【0042】
【発明の実施の形態】まず、本発明の実施の形態を図面
を参照しながら説明する。
【0043】本発明の第1の実施の形態のマイクロプロ
セッサを用いたシステム構成を示した図1を参照する
と、マイクロプロセッサ1aと、メインメモリ2と、マ
イクロプロセッサ1aおよびメインメモリ2の間のアド
レスおよびデータをアドレスバス5および外部データバ
ス6を介して授受を行なうための制御をするメモリコン
トローラ3と、マイクロプロセッサ1aからメモリコン
トローラ3へ送出されるバスホールド受付けを通知する
HLDAK信号とこの信号をインバータ4で反転してパ
イプライン動作停止信号pipeSTOPとしてマイク
ロプロセッサ1aへ戻す構成を備える。
【0044】本発明の第1の実施の形態のマイクロプロ
セッサ1aの構成を示した図2を参照すると、メモリと
してキャッシュメモリを内蔵している場合を想定してお
り、命令長32ビット固定のRISC型であり、同期式
5段パイプラインで動作する。
【0045】このマイクロプロセッサ1aは、命令キャ
ッシュ部11、データキャッシュ部12、レジスタファ
イル部13、演算実行部14、プログラムカウンタ部1
5、分岐アドレス生成部16、バスインタフェース部1
7および制御部18を備え、命令キャッシュ部11から
出力されるミスヒット信号501が制御部18とバスイ
ンタフェース部17にそれぞれ入力される。命令キャッ
シュ部11とバスインタフェース部17とにはプログラ
ムカウンタ部15から実行命令のアドレス出力信号50
3がれぞれ供給される。
【0046】レジスタファイルRF13は出力504が
分岐アドレス生成部16と演算実行部14の選択回路1
01を介してラッチ102とラッチ104にそれぞれ供
給され、レジスタファイル13の他方の出力505がラ
ッチ103に供給される。
【0047】選択回路101の他方の入力端はバス50
7によって命令キャッシュ部11と制御部18とから信
号が供給され、バス506によってバスインタフェース
部17から信号を入力する。
【0048】分岐アドレス生成部16の他方の入力端に
はバス507から分岐信号が供給される。その出力はプ
ログラムカウンタ部15に、プログラムカウンタ部15
の出力が分岐アドレス生成器16に供給される。
【0049】ラッチ102および103の出力はALU
105にそれぞれ供給され、ALU105の出力508
はラッチ106とデータキャッシュ部12とバスインタ
フェース部17とにそれぞれ供給される。ラッチ104
の出力509はバスを介して選択回路107の一方の入
力端とデータキャッシュ部12とバスインタフェース部
17に供給され、選択回路107の他方の入力端にはラ
ッチ106の出力が供給される。
【0050】選択回路107の出力はラッチ108に供
給され、その出力はレジスタファイル13の入力端に供
給される。
【0051】命令キャッシュ部11のミスヒット信号5
01はバスインタフェース部17と制御部18にそれぞ
れ供給される。
【0052】命令キャッシュ部の構成を示した図3を参
照すると、命令キャッシュ部11は、4Kバイトのダイ
レクトマップ、すなわちアドレスの下位ビットによって
一意にエントリーが選択される構成である。プログラム
カウンタ部15で生成される命令キャッシュアドレスI
CAddr503をパイプライン動作許可信号pipe
OKがハイレベルのときにクロック信号CLKを出力す
るAND119の出力信号に応答してラッチ111で受
け、アドレスの下位12ビット(11〜0)をデコーダ
112でデコードしてひとつのエントリーを選択し、保
持しているタグ部113とデータ部114の内容を読み
出す。
【0053】タグ部113は入力バッファ116を介し
て命令キャッシュ部11の内容を書き換える時のアドレ
スの上位20ビット(31〜12)を保持しており、こ
のタグ部113から出力バッファ117を介して読み出
した上位20ビットとラッチ111の出力であるフェッ
チアドレスの上位20ビットをコンパレータ115で比
較することによって、エントリーの内容が要求したアド
レスにヒットしたかミスヒットしたかを判定することが
できる。
【0054】比較結果が不一致だった場合にはコンパレ
ータはハイレベルを出力し、ミスヒット信号ICMis
s501として制御部18へ通知する。ヒットした場合
にはデータ部114から出力バッファ118を介して読
み出したデータを命令コード507として出力する。
【0055】データキャッシュ部12の構成を示した図
4を参照すると、データキャッシュ部12は、図3に示
した命令キャッシュ部11と同じ構成でありラッチ11
1に入力する信号が命令キャッシュアドレスICAdd
rからデータキャシュアドレスDCAaddrに変った
だけであり、4Kバイトのダイレクトマップであること
も同様である。
【0056】演算実行部14で生成したデータアドレス
DCAddrをバス508を介してラッチ111で受
け、下位12ビット(11〜0)をデコーダ112でデ
コードすることによってひとつのエントリーを選択し、
保持しているタグ部113とデータ部114の内容を読
み出す。
【0057】タグ部113から出力バッファ117を介
して出力される下位12ビットと、データアドレスの上
位20ビットをコンパレータ115で比較し、比較結果
が不一致だった場合にはコンパレータ115はハイレベ
ルを出力し、ミスヒット信号DCMiss510として
制御部18およびバスインタフェース部17へ通知す
る。
【0058】レジスタファイル部RF13は、リード2
ポート(信号504および505)、ライト1ポート
(信号511)であり、読み出しは2ポート同時に行う
ことができる。
【0059】演算実行部14は、レジスタファイル部R
F13からデータ504および505を受け取り、算術
論理演算器(ALU)105を使用することによって実
際の計算を行う。
【0060】プログラムカウンタ部15は、その構成を
示した図5を参照すると、命令フェッチアドレスの生
成、および現在実行中の命令のアドレスを保持してい
る。フェッチアドレスは、通常サイクル毎に信号528
が加算器128によって値を+4され、通常時の選択信
号523に応答して選択回路127で選択されその出力
527を次のフェッチアドレスとする。分岐命令で分岐
する場合には分岐アドレス生成部16で生成されるアド
レス52をフェッチアドレスとして分岐TAKENの
選択信号に応答して選択し、例外で固定的なアドレスへ
分岐する場合には例外アドレス525を選択信号522
に応答して選択しフェッチアドレスとすることによっ
て、プログラムの実行を制御している。
【0061】これらの選択回路127で選択されたアド
レスはパイプライン動作確認信号pipeOKでクロッ
ク信号の出力を制御するAND回路121〜123の出
力に同期してレジスタ124〜126に順次転送され、
それぞれの出力アドレスが選択回路129で選択されて
アドレス信号503として各パイプラインステージへ転
送される。
【0062】分岐アドレス生成部16は、その構成を示
した図6を参照すると、現在のプログラムカウンタの値
527と命令コード中で指定されるオフセット値541
を加算器131によって加算し、分岐先アドレス542
を生成する。また、汎用レジスタの値がオール“0”で
あるかを比較器133で判別し、その出力546と分岐
命令beqz547とをAND回路134で一致を取
り、また負の数であるかをデータ545の最上位ビット
から判別することによって、分岐命令bltz548の
条件とAND回路135で一致を取り、それぞれ一致し
た場合にはOR回路136を介して分岐することを表す
TAKEN信号521によってプログラムカウンタ部へ
通知する。
【0063】バスインタフェース部17は、その構成を
示す図7を参照すると、外部との間で信号を授受するた
めの部分であり、特に外部アドレスバス、外部データバ
ス、および制御信号によって外部メインメモリとデータ
のやり取りを行う。
【0064】命令キャッシュ部11およびデータキャッ
シュ部12でミスヒットが発生した場合には、命令キャ
ッシュミスの場合はプログラムカウンタ15から出力さ
れるフェッチアドレス527、データキャッシュミスの
場合はデータアドレスを受け取り、データキャッシュミ
ス信号510に応答して選択回路147はデータアドレ
スを選択してリードアドレスバッファ148へ出力し、
出力バッファ149を介して外部メモリへ出力する。こ
のとき、リードアドレスバッファ148は、シーケンサ
141から出力されるキャッシュミス時のストローブ
号553とDEBUGモード信号とをOR回路144で
比較しDEBUGモード信号がロウレベルでキャッシュ
ミス時のストローブ信号553がハイレベルであればA
ND回路145から出力されるクロック信号557に同
期して、外部メインメモリへアクセスしてデータを読み
出した後、各キャッシュメモリへデータを渡す。上述
の、シーケンサ141から出力されるキャッシュミス時
のストローブ信号553は、キャッシュミス時に外部ア
クセスが必要となり、そのためのアドレスをリードアド
レスバッファ148にラッチするための信号であり、D
EBUGモード信号は、キャッシュミス時以外にもリー
ドアドレスバッファ148へアドレスをラッチさせるた
めの目的でOR回路144へ入力されている。
【0065】外部メモリから読み出されたデータは、制
御信号データレディー信号に応答してシーケンサ141
から供給されるReady信号551をハイレベルにし
てAND回路142からクロック信号554をリードデ
ータバッファ155に供給し、外部メモリから読み出し
たデータをリードデータバッファ155にラッチし出力
バッファ157を介してデータキャッシュ部12へ、入
力バッファ156を介して命令キャッシュ部11へそれ
ぞれ供給する。
【0066】またライトバッファ150を備え、ストア
命令で外部メインメモリへのライトがある場合にはデー
タアドレスをライトアドレスバッファに出力し、シーケ
ンサ141から出力されるライト信号552およびクロ
ック信号の一致をとるAND回路出力555に同期して
アドレスおよびデータを保持し、出力バッファ153か
ら、パイプライン動作に影響を与えずに独立して外部メ
インメモリへの書き込みを行う。
【0067】さらに本発明の目的であるデバッグを行う
場合には、DEBUGモードをハイレベルにすることに
よってAND回路出力のクロック信号557をリードア
ドレスバッファ148に供給する。データキャッシュミ
スが発生していない場合にはデータキャッシュミス信号
510の反転信号556がハイレベルとなり、選択回路
147がフェッチアドレスを選択する。したがって、毎
サイクルフェッチアドレスをリードアドレスバッファ1
48にラッチさせ、命令フェッチアドレスを常時外部ア
ドレスバスへ出力することができ、外部で命令トレース
を行うことを可能としている。
【0068】制御部18は、その構成を示した図8を参
照すると、命令キャッシュミス信号501及びデータキ
ャッシュミス信号510を入力し、いずれかがアクティ
ブならロウレベルを出力する組み合せ回路161と、そ
の出力561およびpipeSTOP信号101の反転
信号の論理積を取るAND回路163と、その出力でp
ipeOK信号562のクロック信号をマスクするAN
D回路164と、命令コードをデコードするデコーダ1
66と、デコード結果の信号から各種の命令を生成する
ラッチ群165とを有する。キャッシュミスが発生した
場合は、組み合わせ回路161の出力がロウレベルとな
り、AND回路163の出力であるpipeOK信号5
62は一義的にロウレベルとなりパイプラインを停止さ
せる。また、外部からのpipeSTOP信号がアクテ
ィブになりロウレベルになったときも、同様にAND回
路163の出力であるpipeOK信号562は一義的
にロウレベルとなりパイプラインを停止させる。ラッチ
群165は、AND回路164の出力クロック信号56
3に同期して命令コード564を読み込み順次次段へ転
送して転送レジスタNOを出力するラッチ168〜17
0と、デコーダ166の出力をクロック信号563に同
期して読み込み、分岐命令beqz、bltz、JUM
p、ALU制御信号を生成するラッチ171と、ラッチ
171の出力を読み込み信号Store、DCvali
dを生成するラッチ172と、ラッチ172の出力を読
み込み信号WBvalidを生成するラッチ173とか
らなり、命令beqzおよびbltzから条件分岐命令
をNOR167で生成する構成からなる。
【0069】add(加算)命令の構成を示した図9を
参照すると、命令コード564はデコードが容易なよう
に、各フィールドは命令の種類を表す命令コード1と命
令コード2、加算のソース1の値を読み出す汎用レジス
タを指定するためのソース1レジスタNo、加算のソー
ス2の値を読み出す汎用レジスタを指定するためのソー
ス2レジスタNo、結果を格納する汎用レジスタを指定
するための格納レジスタNoに分類できる。
【0070】まずソースの値を読み出すためにソース1
レジスタNoとソース2レジスタNoをレジスタファイ
ル部RF13へ出力する。また命令デコーダで命令コー
ド1と命令コード2をデコードし、命令の種類を判別す
る。add命令であることを判別すると、ALUを加算
器として使用するためにALU制御信号を演算実行部1
4へ出力する。
【0071】加算結果を格納する必要があるため、WB
ステージでレジスタファイル13への書き込みがあるこ
とを示すWBvalid信号をWBステージで出力し、
レジスタファイル13への書き込み制御を行う。加算結
果を格納するための転送レジスタNoはWBステージま
で保持し、レジスタファイル部13へ出力する。
【0072】またこれらの動作を説明するためのタイミ
ングチャートを示した図10を併せて参照すると、命令
キャッシュ部11およびデータキャッシュ部12のミス
ヒット信号からパイプラインが進んでも良いことを示す
pipeOK信号562を生成する。
【0073】各パイプラインはpipeOK信号562
がハイレベルの場合のみ同期して次のステージへ進むこ
とができる。本発明の構成要素であるパイプラインを停
止させるための信号pipeSTOPは外部端子より入
力され、組み合せ回路161の出力するキャシュミス信
号561がハイレベルになるタイミングでロウレベルの
pipeOK信号を出力することによって強制的にパイ
プラインをストップすることができる。
【0074】パイプラインはIF,RF,EX,DC,
WBの5つのステージがあり、図11に示すキャッシュ
ヒットからキャッシュミス時のパイプライン動作のタイ
ミングチャートのように、通常は1ステージ1サイクル
で実行するため、実質的に1命令1サイクルとなる。そ
れぞれのステージの詳細と各部の動作は次の通りであ
る。
【0075】IFステージでは、プログラムカウンタ部
15で生成するフェッチアドレス信号503で命令キャ
ッシュ部11をアクセスし、命令コードを得る。命令キ
ャッシュ部11でミスヒットだった場合には、バスイン
タフェース部17を通して外部メインメモリにアクセス
し、命令コードを入力する。
【0076】RFステージでは、使用する汎用レジスタ
の値をレジスタファイルRF13から読み出す。また、
分岐命令の場合には分岐アドレス生成部16によって分
岐先アドレスを生成するとともに分岐条件が成立した場
合はフェッチアドレスを分岐先アドレスへ切り替える。
【0077】EXステージでは、RFステージで読み出
した汎用レジスタの値や命令コード中で指定されるイミ
ディエート値を入力として演算実行部14で演算を実行
する。ロード/ストア命令の場合、この計算した値がデ
ータアドレスとなる。
【0078】DCステージでは、ロード命令やストア命
令時のデータキャッシュ部12へのアクセスを行う。ロ
ード/ストア命令以外の命令の場合は、このステージで
は何も実行しない。ロード/ストア命令の場合は、EX
ステージで生成したデータアドレスによってデータキャ
ッシュ部12へアクセスし、ヒットした場合にはデータ
を得る。ミスヒットした場合にはバスインタフェース部
17を介して外部メインメモリへアクセスする。
【0079】WBステージでは、レジスタファイル13
への書き込みを行う。
【0080】命令キャッシュミスやデータキャッシュミ
スが発生した場合には、制御部18のpipeOK信号
がロウレベルとなり、すべてのパイプラインステージが
停止する。
【0081】次に本発明の第1の実施の形態のマイクロ
プロセッサ1aの動作をタイミングチャートを参照しな
がら説明する。バスホールド要求等で、外部バスへアド
レスを出力できない場合のタイミングチャートを示した
図12を参照すると、バスホールド要求は、外部システ
ムがアドレスバスおよびデータバスを使用してDMA転
送を行う場合等に発生する。したがって、バスホールド
期間中はマイクロプロセッサ1aはアドレスバス、およ
びデータバスを駆動することはできない。
【0082】バスホールド要求の通知は、外部システム
からHLDREQ信号によって行われる。マイクロプロ
セッサ1aのバスホールド要求の受け付けは、HLDA
K信号をアクティブにすることによって行う。したがっ
て、図1に示すシステム構成図のように、このHLDA
K信号をインバータ4で反転させpipeSTOP信号
として入力する。すなわち、HLDAK信号はロウアク
ティブであり、pipeSTOP信号はハイアクティブ
である。したがって、バスホールド時にpipeOK信
号がマスクされることとなり、パイプラインを止めるこ
とが可能となる。
【0083】すべてのパイプラインステージがストップ
するため、例えば図1では、pipeSTOP信号が
3クロックサイクルハイレベルとなることから4クロッ
クサイクル目でinst4が実行されるので、結局各命
令inst1〜5はそれぞれWB、DC、EX、RF、
IFの各ステージが3クロックサイクルの間内部状態が
保持されることになる。
【0084】また、ストア命令で外部メインメモリへの
データライトが発生した場合のタイミングチャートを示
した図13を参照すると、外部メインメモリへのライト
バスサイクルは、バスインタフェース部17から出力さ
れる制御信号によって外部へ通知され、外部でデータを
受け取ることができたならバスサイクルを終了する。
【0085】したがって、マイクロプロセッサ1aがラ
イトバスサイクルを起動してから、データストローブが
終了するまでのライトバスサイクル期間中のみ、pip
eSTOP信号をアクティブにすることにより、パイプ
ラインを止めることが可能である。このとき、アドレス
バスには命令inst4に代ってライトアドレスが出力
され、データバスにはデータストローブ信号がロウレベ
ルの間ライトデータが出力されている。
【0086】次に、本発明の第2の実施例のマイクロプ
ロセッサ1b構成図を示した図14を参照すると、第1
の実施の形態で説明したpipeSTOP信号を、バス
インタフェース部内で生成している点以外は、第1の実
施の形態と同様であり、対応する構成要素には同一の符
号を付して構成の説明は省略する。
【0087】バスインタフェース部の構成を示した図1
5を参照すると、第1の実施の形態で用いた図6のバス
インタフェース部とはシーケンスサ175にpipeS
TOP信号生成回路が追加されたことが異なる。それ以
外の構成要素は同一であるので同一の符号を付して構成
の説明は省略する。
【0088】このバスインタフェース部17では、シー
ケンサ175の内部にバスホールド要求を受け付けてH
LDAK信号をアクティブにすると同時に、このHLD
AK信号を反転させて生成したpipeSTOP信号を
アクティブにする。さらにライトバスサイクル期間中に
もバスサイクルスタート信号とデータストローブ信号の
論理積を取りその反転信号と上述のpipeSTOP信
号との論理和を取って、pipeSTOP信号をアクテ
ィブにすることにより、パイプラインを停止させること
が可能となる。
【0089】上述した第1および第2の実施の形態にお
いては、キャッシュメモリを内蔵した場合のマイクロプ
ロセッサを例として説明したが、命令格納用メモリを内
蔵したシングルチップマイコンに応用することも可能で
あることは明らかである。
【0090】
【発明の効果】以上説明したように、本発明のマイクロ
プロセッサは、メモリアクセスまたはバスホールド要求
が無く外部バスを使用していない場合には内部回路情報
を外部バスに出力するバス選択手段と、外部バスを使用
している場合にはパイプライン動作を停止させて内部回
路情報の出力を保留するパイプライン停止手段とを用い
て、内蔵する命令格納用メモリから取り出した命令を実
行する動作状態であっても命令のトレースを外部から行
なうことが出来るように構成したので、従来の技術と比
較して次のような効果がある。 (1)内蔵メモリを使用した状態で完全な命令トレース
を行うことができる。内蔵メモリがキャッシュメモリの
場合では、使用禁止にした場合に比べ、命令キャッシュ
ミスヒット時の外部メインメモリアクセスに5サイクル
かかると仮定すると、1命令で4サイクルの短縮とな
り、命令トレース時間全体では約80%短縮することが
できる。 (2)データライトが発生し外部バスへ内部情報を出力
できない場合には、内部パイプラインを停止させ、内部
情報を保持しておくことができる。 (3)バスホールド要求によって外部バスへ内部情報を
出力できない場合には、内部パイプラインを停止させ、
内部状態を保持しておくことができる。 (4)分岐の場合のみならず、すべての命令において内
部情報を出力することにより、どのような命令シーケン
スでも命令トレースを行うことができる。
【0091】また、キャッシュメモリを内蔵した場合だ
けでなく、命令格納用メモリを内蔵したシングルチップ
マイコンに応用することも出来る。
【図面の簡単な説明】
【図1】本発明における実施の形態のシステム構成を示
す図である。
【図2】本発明のマイクロプロセッサの第1の実施の形
態を示す構成図である。
【図3】命令キャッシュ部の構成図である。
【図4】データキャッシュ部の構成図である。
【図5】プログラムカウンタ部の構成図である。
【図6】分岐アドレス生成部の構成図である。
【図7】バスインタフェース部の構成図である。
【図8】制御部の構成図である。
【図9】add命令の命令コード例を示す図である。
【図10】pipeOK信号を説明するためのタイミン
グチャートである。
【図11】キャッシュヒット→ミス時のパイプラインが
詰まった状態のタイミングチャートである。
【図12】バスホールド時のタイミングタイミングチャ
ートである。
【図13】ライトバスサイクル時のタイミングタイミン
グチャートである。
【図14】本発明のマイクロプロセッサの第2の実施の
形態を示す構成図である。
【図15】バスインタフェース部の構成図である。
【図16】従来のマイクロプロセッサの構成図である。
【図17】図16のマイクロプロセッサのタイミングチ
ャートである。
【図18】従来のマイクロプロセッサの他の構成図であ
る。
【図19】図18のマイクロプロセッサのタイミングチ
ャートである。
【図20】図18のマイクロプロセッサのライトバスサ
イクル時のタイミングチャートである。
【図21】図18のマイクロプロセッサのバスホールド
時のタイミングチャートである。
【図22】図18のマイクロプロセッサの命令列の一例
を示す図である。
【符号の説明】
1 マイクロプロセッサ 2 メモリコントローラ 3 メインメモリ 4,146 インバータ 5 外部アドレスバス 6 外部データバス 11,182 命令キャッシュ部 12 データキャッシュ部 13 レジスタファイル部 14,185 演算実行部 15 プログラムカウンタ部 16 分岐アドレス生成部 17,181 バスインタフェース部 18 制御部 19〜22,186〜189 端子 101,107,127,129,147 選択回路 102〜104,106,108,111,168〜1
73 ラッチ 111 ALU 112,166 デコーダ 113 タグ部 114 データ部 115 比較器 116,156,157 入力バッファ 117,143,149,153,154 出力バッ
ファ 118 入出力バッファ 119,121〜123,134,135,142,1
43,145,163,164 AND回路 124〜125 レジスタ 128,131,133 加算器 136,144,167,176,177 OR回路 141,175 シーケンサ 148 リードアドレスバッファ 150 ライトバッファ 151 ライトアドレスバッファ 152 ライトデータバッファ 161 組み合せ回路 165 ラッチ群 183 命令プリフェッチ部 184 命令デコーダ・アドレス計算部

Claims (6)

    (57)【特許請求の範囲】
  1. 【請求項1】 クロック信号に応答して1クロック毎に
    実行命令アドレスを更新して出力するプログラムカウン
    タと、前記クロック信号に応答して前記実行命令アドレ
    スを受けてキャッシュヒット時は対応する命令コードを
    出力しミスヒット時はミスヒット信号を出力する命令格
    納用キャッシュメモリと、前記命令コードを受けて前記
    クロック信号に応答してその命令を実行する命令実行制
    御手段と、前記実行命令アドレスを保持し外部バスに接
    続されたバスインターフェースと、前記プログラムカウ
    ンタおよび前記命令実行制御手段への前記クロック信号
    の供給を許可するパイプライン動作許可信号を発生する
    パイプライン停止手段とを有し、前記実行命令アドレス
    の更新,前記命令コードの出力並びに前記命令の実行を
    それぞれ1クロック単位でパイプライン動作を行うマイ
    クロプロセッサにおいて、前記パイプライン停止手段は、前記ミスヒット信号が発
    生したときに前記パイプライン動作許可信号を非アクテ
    ィブとして前記クロック信号の供給を停止し、前記バス
    インターフェースは、前記ミスヒット信号が発生したと
    きまたは前記マイクロプロセッサがデバッグモードであ
    るときに前記実行命令アドレスを前記外部バスに出力す
    ことを特徴とするマイクロプロセッサ。
  2. 【請求項2】 前記パイプライン停止手段は、前記ミ
    ヒット信号を入力する組み合せ回路と、この組み合せ回
    路の出力信号と外部から入力したパイプラインの動作停
    止用の第1の制御信号の反転信号とを入力する第1の論
    理積回路とを有し、この第1の論理積回路の出力を前記
    パイプライン動作許可信号としてパイプライン制御手段
    のクロックが供給される論理回路へ供給し、前記第1の
    制御信号がアクティブになったときに前記第1の論理積
    回路の出力で前記パイプライン動作許可信号を非アクテ
    ィブにして前記論理回路の前記クロック信号の出力をマ
    スクすることにより強制的に前記パイプライン動作を停
    止させ、前記プログラムカウンタおよび前記命令実行制
    御手段がこのときの内部状態を保持するように構成する
    請求項1記載のマイクロプロセッサ。
  3. 【請求項3】 前記パイプライン動作許可信号が供給さ
    れる前記パイプライン制御手段は、前記命令格納用キャ
    ッシュメモリのアドレスを受けるラッチ手段とデータキ
    ャッシュメモリのアドレスを受けるラッチ手段と前記
    ログラムカウンタのアドレス更新手段と命令コードおよ
    び命令デコーダのデコード結果から所定の制御信号およ
    び分岐命令を生成する前記命令実行制御手段のラッチ手
    段とにそれぞれ供給されるクロック信号をマスクするた
    めの論理回路である請求項2記載のマイクロプロセッ
    サ。
  4. 【請求項4】 前記第1の制御信号は、内部回路から外
    部に接続されるメモリコントローラに出力するバスホー
    ルド信号の受付け通知信号を反転した信号からなる請求
    項2記載のマイクロプロセッサ。
  5. 【請求項5】 前記パイプライン停止手段は、外部から
    入力する前記第1の制御信号に代えて内部回路で生成さ
    れる第2の制御信号が用いられ、この第2の制御信号
    は、前記内部回路で生成されるバスサイクルスタート信
    号とデータストローブ信号との論理積を取る第2の論理
    積回路と、この第2の論理積回路の反転出力とバスホー
    ルド信号の受付け通知信号の反転信号との論理和をとっ
    て前記第2の制御信号を出力する論理和回路とを有し、
    バスホールド時に前記第2の制御信号をアクティブにす
    ることによって強制的に前記パイプライン動作を停止さ
    せ、かつこのときの内部状態を保持するように構成する
    請求項2記載のマイクロプロセッサ。
  6. 【請求項6】 ライトバスサイクル時に前記第2の制御
    信号をアクティブにすることによって強制的に前記パイ
    プライン動作を停止させるように構成する請求項5記載
    のマイクロプロセッサ。
JP8167668A 1996-06-27 1996-06-27 マイクロプロセッサ Expired - Lifetime JP2872117B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP8167668A JP2872117B2 (ja) 1996-06-27 1996-06-27 マイクロプロセッサ

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP8167668A JP2872117B2 (ja) 1996-06-27 1996-06-27 マイクロプロセッサ

Publications (2)

Publication Number Publication Date
JPH1011290A JPH1011290A (ja) 1998-01-16
JP2872117B2 true JP2872117B2 (ja) 1999-03-17

Family

ID=15854016

Family Applications (1)

Application Number Title Priority Date Filing Date
JP8167668A Expired - Lifetime JP2872117B2 (ja) 1996-06-27 1996-06-27 マイクロプロセッサ

Country Status (1)

Country Link
JP (1) JP2872117B2 (ja)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3214613B2 (ja) 1998-07-03 2001-10-02 日本電気株式会社 マイクロプロセッサ及びデータ処理システム
JP5850732B2 (ja) * 2011-12-14 2016-02-03 ルネサスエレクトロニクス株式会社 半導体装置及びその制御方法

Also Published As

Publication number Publication date
JPH1011290A (ja) 1998-01-16

Similar Documents

Publication Publication Date Title
JP4190114B2 (ja) マイクロコンピュータ
US5357626A (en) Processing system for providing an in circuit emulator with processor internal state
JP3820311B2 (ja) データ処理システムのデバッグ中に命令実行パイプラインを管理する方法
JP3846939B2 (ja) データプロセッサ
US5226149A (en) Self-testing microprocessor with microinstruction substitution
JP5661863B2 (ja) 実行装置内のデータ転送のシステムおよび方法
JP3916745B2 (ja) データ処理システムのデバッグ中の単一ステッププロセッサパイプラインおよび下位システムパイプライン
US20030051122A1 (en) Trace information generation apparatus for generating branch trace information omitting at least part of branch source information and branch destination information on target processing
JPH09218803A (ja) データプロセッサ
JPH09128265A (ja) データ処理システム
JPH09114697A (ja) データプロセッサ
US5475852A (en) Microprocessor implementing single-step or sequential microcode execution while in test mode
JPH02201651A (ja) データ処理装置
US5699506A (en) Method and apparatus for fault testing a pipelined processor
KR100351527B1 (ko) 코드브레이크포인트디코더
WO1996037838A9 (en) Pipeline microprocessor test method and apparatus
US6249880B1 (en) Method and apparatus for exhaustively testing interactions among multiple processors
JP2872117B2 (ja) マイクロプロセッサ
US6230263B1 (en) Data processing system processor delay instruction
US6052700A (en) Calendar clock caching in a multiprocessor data processing system
US6161171A (en) Apparatus for pipelining sequential instructions in synchronism with an operation clock
US7631166B1 (en) Processing instruction without operand by inferring related operation and operand address from previous instruction for extended precision computation
US6453410B1 (en) Computer system having a cache memory and a tracing function
US5421026A (en) Data processor for processing instruction after conditional branch instruction at high speed
KR100241970B1 (ko) 파이프라인 처리를 수행하는 데이터 처리 장치