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

マイクロプロセッサ

Info

Publication number
JPH1011290A
JPH1011290A JP8167668A JP16766896A JPH1011290A JP H1011290 A JPH1011290 A JP H1011290A JP 8167668 A JP8167668 A JP 8167668A JP 16766896 A JP16766896 A JP 16766896A JP H1011290 A JPH1011290 A JP H1011290A
Authority
JP
Japan
Prior art keywords
signal
instruction
circuit
bus
output
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.)
Granted
Application number
JP8167668A
Other languages
English (en)
Other versions
JP2872117B2 (ja
Inventor
Kazuhiko Takita
和彦 滝田
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 IC Microcomputer Systems Co Ltd
Original Assignee
NEC IC Microcomputer Systems 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 NEC IC Microcomputer Systems Co Ltd filed Critical NEC IC Microcomputer Systems Co Ltd
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)

Abstract

(57)【要約】 【課題】内蔵メモリを使用したまま、外部バスの状態や
命令シーケンスに影響されずに完全な命令トレースを行
う。 【解決手段】命令キャッシュ部11、データキャッシュ
部12、レジスタファイル部13、演算実行部14、プ
ログラムカウンタ部15、分岐アドレス生成部16、バ
スインタフェース部17および制御部18を備え、デバ
ッグ時には内部情報を常にバスインタフェース部17で
保持するとともに外部バスへ出力し、外部バスへ内部情
報を出力できない場合にはパイプライン停止信号19に
よってパイプラインを停止させて内部状態を保持させ
る。内蔵メモリを使用した状態で、どのような場合にも
命令トレースを行うことができる。

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】ラッチ101および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】
【課題を解決するための手段】本発明のマイクロプロセ
ッサの特徴は、命令格納用メモリを内蔵しパイプライン
動作を行うマイクロプロセッサにおいて、メモリアクセ
スまたはバスホールド要求が無く外部バスを使用してい
ない場合には内部回路情報を前記外部バスに出力するバ
ス選択手段と、前記外部バスを使用している場合には前
記パイプライン動作を停止させて前記内部回路情報の出
力を保留するパイプライン停止手段とを用いて、内蔵す
る前記命令格納用メモリから取り出した命令を実行する
動作状態であっても前記命令のトレースを外部から行な
うことが出来るように構成したことにある。
【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を備え、命令キャッシュ部12から
出力されるミスヒット信号501が制御部18とバスイ
ンタフェース部17にそれぞれ入力される。命令キャッ
シュ部11とバスインタフェース部17とにはプログラ
ムカウンタ部15から実行命令のアドレス出力信号50
3がれぞれ供給される。
【0046】レジスタファイルRF13は出力504が
分岐アドレス生成部16と演算実行部14の選択回路1
01を介してラッチ102にそれぞれ供給され、レジス
タファイル13の他方の出力505がラッチ103に供
給される。
【0047】選択回路101の他方の入力端はバス50
7によって命令キャッシュ部11と制御部18とから信
号が供給され、バス506によってバスインタフェース
部17から信号を入力する。
【0048】分岐アドレス生成部16の他方の入力端に
はバス507から分岐信号が供給される。その出力はプ
ログラムカウンタ部15に、プログラムカウンタ部15
の出力が分岐アドレス生成器16に供給される。
【0049】ラッチ102および103の出力はALU
105にそれぞれ供給され、ALU105の出力はラッ
チ106とデータキャッシュ部12とバスインタフェー
ス部17とにそれぞれ供給される。ラッチ104の出力
はバス508を介して選択回路107の一方の入力端と
データキャッシュ部12とに、バス509によってバス
インタフェース部17に供給され、選択回路107の他
方の入力端にはラッチ106の出力が供給される。
【0050】選択回路107の出力はラッチ108に供
給され、その出力はレジスタファイル13の入力端に供
給される。
【0051】命令キャッシュ部11のミスヒット信号5
01はバスインタフェース部17と制御部18にそれぞ
れ供給される。
【0052】命令キャッシュ部の構成を示した図3を参
照すると、命令キャッシュ部11は、4Kバイトのダイ
レクトマップ、すなわちアドレスの下位ビットによって
一意にエントリーが選択される構成である。プログラム
カウンタ部15で生成される命令フェッチアドレスIC
Addr503をパイプライン動作許可信号pipeO
Kがハイレベルのときにクロック信号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で生成されるアド
レス525をフェッチアドレスとして分岐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とDE
BUGモード信号とをOR回路144で比較しDEBU
Gモード信号がロウレベルでキャッシュミス信号553
がハイレベルであればAND回路145から出力される
クロック信号557に同期して、外部メインメモリへア
クセスしてデータを読み出した後、各キャッシュメモリ
へデータを渡す。
【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に供給し、かつDCmiss55
6をハイレベルにして選択回路147がフェッチアドレ
スを選択させることによって、毎サイクルフェッチアド
レスをリードアドレスバッファ148にラッチすること
により、常時外部アドレスバスへ出力する。このとき、
前述したリードデータと同様に、シーケンサ141から
供給されるReady信号551をハイレベルにしてA
ND回路142からクロック信号554をリードデータ
バッファ155に供給し、外部メモリから読み出したデ
ータをリードデータバッファ155にラッチし入力バッ
ファ157を介してデータキャッシュ部12へ、入力バ
ッファ156を介して命令キャッシュ部11へそれぞれ
供給することにより外部で命令トレースを行うことを可
能としている。
【0068】制御部18は、その構成を示した図8を参
照すると、組み合せ回路161と、その出力561およ
びpipeSTOP信号101の反転信号の論理積を取
るAND回路163と、その出力でpipeOK信号5
62のクロック信号をマスクするAND回路164と、
命令コードをデコードするデコーダ166と、デコード
結果の信号から各種の命令を生成するラッチ群165と
を有し、ラッチ群165は、AND回路164の出力ク
ロック信号563に同期して命令コード564を読み込
み順次次段へ転送して転送レジスタNOを出力するラッ
チ168〜170と、デコーダ166の出力をクロック
信号563に同期して読み込み、分岐命令beqz、b
ltz、JUMp、ALU制御信号を生成するラッチ1
71と、ラッチ171の出力を読み込み信号Stor
e、DCvalidを生成するラッチ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】すべてのパイプラインステージがストップ
するため、例えば図11では、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)

    【特許請求の範囲】
  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 true JPH1011290A (ja) 1998-01-16
JP2872117B2 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)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6453410B1 (en) 1998-07-03 2002-09-17 Nec Corporation Computer system having a cache memory and a tracing function
JP2013125389A (ja) * 2011-12-14 2013-06-24 Renesas Electronics Corp 半導体装置及びその制御方法

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6453410B1 (en) 1998-07-03 2002-09-17 Nec Corporation Computer system having a cache memory and a tracing function
JP2013125389A (ja) * 2011-12-14 2013-06-24 Renesas Electronics Corp 半導体装置及びその制御方法

Also Published As

Publication number Publication date
JP2872117B2 (ja) 1999-03-17

Similar Documents

Publication Publication Date Title
JP4190114B2 (ja) マイクロコンピュータ
JP3846939B2 (ja) データプロセッサ
JP5661863B2 (ja) 実行装置内のデータ転送のシステムおよび方法
US5357626A (en) Processing system for providing an in circuit emulator with processor internal state
US6065106A (en) Resuming normal execution by restoring without refetching instructions in multi-word instruction register interrupted by debug instructions loading and processing
US6016555A (en) Non-intrusive software breakpoints in a processor instruction execution pipeline
US6055649A (en) Processor test port with scan chains and data streaming
US5970241A (en) Maintaining synchronism between a processor pipeline and subsystem pipelines during debugging of a data processing system
US6081885A (en) Method and apparatus for halting a processor and providing state visibility on a pipeline phase basis
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) データプロセッサ
US6959367B2 (en) System having read-modify-write unit
JPH09128265A (ja) データ処理システム
JPH09114697A (ja) データプロセッサ
JP2693678B2 (ja) データ処理装置
US5699506A (en) Method and apparatus for fault testing a pipelined processor
KR100351527B1 (ko) 코드브레이크포인트디코더
JPH09218801A (ja) データプロセッサ
WO1996037838A9 (en) Pipeline microprocessor test method and apparatus
JP2872117B2 (ja) マイクロプロセッサ
US5421026A (en) Data processor for processing instruction after conditional branch instruction at high speed
KR100241970B1 (ko) 파이프라인 처리를 수행하는 데이터 처리 장치
US6453410B1 (en) Computer system having a cache memory and a tracing function
JP3746367B2 (ja) プロセッサ命令実行パイプラインにおける非侵入ソフトウェアブレークポイント
JP2579817B2 (ja) マイクロプロセッサ