JP3214613B2 - マイクロプロセッサ及びデータ処理システム - Google Patents

マイクロプロセッサ及びデータ処理システム

Info

Publication number
JP3214613B2
JP3214613B2 JP18891598A JP18891598A JP3214613B2 JP 3214613 B2 JP3214613 B2 JP 3214613B2 JP 18891598 A JP18891598 A JP 18891598A JP 18891598 A JP18891598 A JP 18891598A JP 3214613 B2 JP3214613 B2 JP 3214613B2
Authority
JP
Japan
Prior art keywords
data
instruction
stage
latch
signal
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
JP18891598A
Other languages
English (en)
Other versions
JP2000020345A (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.)
NEC Corp
Original Assignee
NEC 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 NEC Corp filed Critical NEC Corp
Priority to JP18891598A priority Critical patent/JP3214613B2/ja
Priority to EP99112981A priority patent/EP0969370A3/en
Priority to US09/348,042 priority patent/US6453410B1/en
Publication of JP2000020345A publication Critical patent/JP2000020345A/ja
Application granted granted Critical
Publication of JP3214613B2 publication Critical patent/JP3214613B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/362Software debugging
    • G06F11/3636Software debugging by tracing the execution of the program
    • G06F11/364Software debugging by tracing the execution of the program tracing values on a bus

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Debugging And Monitoring (AREA)
  • Advance Control (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、マイクロプロセッ
サ及びデータ処理システムに関し、特に、キャッシュメ
モリとデータトレース機能とを有するマイクロプロセッ
サ及びデータ処理システムに関する。
【0002】
【従来の技術】コンピュータシステムは、マイクロプロ
セッサ(MPU)と、これを動作させるプログラムを内
蔵したROM(読出し専用メモリ)と、処理するデータ
を記憶するRAM(ランダム・アクセス・メモリ)と、
その他の周辺装置から構成されている。コンピュータシ
ステムを開発する段階では、通常、マイクロプロセッサ
にトレース回路を付加して、プログラムが期待通りに動
作するかどうかを検査(デバッグ)することが必要であ
る。
【0003】従来は、マイクロプロセッサに接続される
アドレス・バスやデータ・バス(以下、これらのバスを
まとめてシステム・バスと呼ぶ)をトレース回路と接続
して、所定のタイミングで所望の履歴情報を獲得し、ト
レース回路に内蔵された記憶装置(トレースメモリ部)
に保存するようにしていた。
【0004】マイクロプロセッサには、動作速度がマイ
クロプロセッサの動作速度に比して十分には速くない大
容量のメインメモリを用いて稼働する形式のものがあ
る。このようなコンピュータシステムでは、SRAM(S
tatic RAM)等から成る小容量で高速なキャッシュメモリ
をマイクロプロセッサの近傍に配置し、メインメモリか
ら読み出したデータの一部をキャッシュメモリに記憶し
て使用することにより、マイクロプロセッサの速度を低
下させずに作動させている。
【0005】ところで、キャッシュメモリを有しないマ
イクロプロセッサでは、リード/ライト信号などの制御
信号に応答して、実行すべき命令を外部のROM等から
なるメモリから逐次取り込んで実行する。従って、外部
端子、特にアドレス・バスや制御信号の状態を観測すれ
ば、実行中の命令をトレースすることができる。これに
対し、キャッシュメモリを有する上述のマイクロプロセ
ッサでは、実行すべき命令がキャッシュメモリにヒット
すると、メモリに対するアクセスが行われないため、外
部端子を観測するだけでは実行中の命令の全てをトレー
スすることができない状態を招く。この場合には、デバ
ッグを適正に行うことができない。
【0006】そこで、マイクロプロセッサからの命令が
供給されるシステム・バスにトレース回路を接続し、キ
ャッシュメモリにヒットした命令もトレースできる構成
のマイクロプロセッサが知られている(以下、従来例1
とする)。図7は、この形式のマイクロプロセッサ及び
トレース回路等を含むデータ処理システムの一例を示す
ブロック図である。
【0007】データ処理システム18は、パイプライン
処理ブロック12と、パイプライン処理ブロック12と
の間でデータを授受するデータ・キャッシュ13と、次
に実行すべき命令等を出力する命令キャッシュ15とを
有するマイクロプロセッサ11を備えている。データ処
理システム18は更に、マイクロプロセッサ11等から
の種々のデータが供給されるシステム・バス16、シス
テム・バス16に夫々接続された周辺装置17、ROM
19、RAM20及びトレース回路14を備える。ま
た、マイクロプロセッサ11は、クロック信号CLKを
出力する発振回路128(図8)と、パイプマスク信号
PIPEMKがロウレベルでパイプライン処理が有効なときだ
けクロック信号CLKに同期したパイプクロック信号PI
PECLKを出力するパイプクロック生成回路129(図
8)とを備える。
【0008】図8は、従来のデータ処理システム18の
内部構成を詳細に示すブロック図であり、図9は、図8
に示す上記従来のデータ処理システムにおける作動タイ
ミングを示すタイミングチャートである。
【0009】図8をもとに、データ処理システム18の
構成を詳細に説明する。データ処理システム18のマイ
クロプロセッサ11は、5段のパイプライン・ステージ
として、IFステージ、RFステージ、EXステージ、
DFステージ及びWBステージを有し、各ステージの相
互間に夫々、パイプライン・レジスタを備えている。
【0010】IF(命令・フェッチ)ステージは、プロ
グラムカウンタ生成部132と、命令コードを授受する
命令キャッシュ115と、プログラム・カウンタ(P
C)134とを備える。
【0011】IFステージでは、プログラム・カウンタ
134で指示されるアドレス(以下、PCアドレスと呼
ぶ)を用いて命令キャッシュ115または命令メモリ
(ROM)19から命令が読み出され、RFパイプライ
ン・レジスタ173に書き込まれる。プログラム・カウ
ンタ134のPCアドレスはインクリメントされて、次
の命令フェッチ・サイクルに備える。プログラムカウン
タ生成部132は、分岐命令などがあった場合に、分岐
先のアドレスを生成する。
【0012】RF(レジスタ・フェッチ)ステージは、
パイプライン制御部137と、レジスタファイル138
と、IFステージに隣接するRFパイプライン・レジス
タ173とを備えている。RFパイプライン・レジスタ
173は、プログラム・カウンタ134からの出力をラ
ッチするPCラッチ135と、命令キャッシュ115か
ら出力された命令コードをラッチする命令コードラッチ
136とを備える。これらのラッチ135、136は、
パイプクロック信号PIPECLKに同期して保持動作する。
なお、パイプライン制御部137は、図8では便宜上R
Fステージに図示したが、RFステージだけに属するも
のではなく、全てのステージに係わるものである。
【0013】パイプライン制御部137は、命令コード
ラッチ136から命令コードを読み込み、これをデコー
ドしてパイプライン処理における作動を統括的に制御す
るものである。レジスタファイル138は、レジスタ番
号が付与された複数のレジスタからなり、アクセスのキ
ーとしてレジスタ番号が入力されると、そのレジスタの
内容が読出し/書込みされるものである。例えば、読出
し及び書込みのデコーダと、フリップフロップを並べた
レジスタとから構成される。レジスタファイル138で
は、レジスタの読出し時に状態は何ら変更されず、レジ
スタ番号を入力として指定するだけで、レジスタに保存
されたデータを得ることができる。レジスタファイル1
38のレジスタへの書込み時には、例えば、レジスタ番
号、書き込むべきデータ、及び、書込みを制御するクロ
ック信号の3入力が必要である。
【0014】EX(Execute:実行)ステージは、算術演算
部(ALU)143と、EXパイプライン・レジスタ1
74とを備える。EXパイプライン・レジスタ174
は、パイプライン制御部137とレジスタファイル13
8から出力される通常の処理データをラッチするラッチ
140、141、142を備える。ラッチ140、14
1、142は、レジスタファイル138の内容、算術演
算部143の演算結果、リード/ライトデータをアクセ
スするアドレスなどをパイプクロック信号PIPECLKに同
期して保持する。
【0015】EX(実行)ステージでは、デコードされた
命令が実行される。例えば、ロード命令によって、レジ
スタの内容と符号拡張された値とがEXパイプライン・
レジスタ174から読み出されて、算術論理演算ユニッ
ト(ALU)143で加算され、加算結果がDFパイプ
ライン・レジスタに格納される。このステージでは、ラ
ッチ140、141に各信号を設定する必要があり、設
定した信号によって、ALUの演算操作、及び、レジス
タと符号拡張された値とのどちらをALUに入力するか
等が夫々選択される。
【0016】DF(データ・フェッチ)ステージは、デ
ータキャッシュ113と、DFパイプライン・レジスタ
175とを備える。DFパイプライン・レジスタ175
は、算術演算部143からのデータをラッチするラッチ
145と、ラッチ142からのライトデータをラッチす
るラッチ146とを備える。
【0017】DFステージでは、メモリ19、20また
は周辺装置17へのアクセスステージであり、データの
読出し(リード)が行われる。ロード命令によってデー
タキャッシュ113にミスヒットした場合、RAM20
などからデータが読み出され、WBパイプライン・レジ
スタ176に格納される。
【0018】データキャッシュ113は、パイプライン
制御部137を含むパイプライン処理ブロック22との
間で種々のデータを授受するもので、リードデータまた
はライトデータが読み書きされる。ミスヒットした場合
には、データキャッシュ113は、外部バス制御部14
8にリードバスサイクルを発行する。
【0019】最終ステージであるWB(Write Back:書込
み)は、WBパイプライン・レジスタ176を備える。
WBパイプライン・レジスタ176は、ラッチ145の
出力であるアクセスアドレスなどをラッチするラッチ1
50と、データキャッシュ113からのリードデータと
ラッチ146からのライトデータとの一方をセレクタ1
91で選択してラッチするラッチ151とを備える。
【0020】WBステージでは、データの書込み(ライ
ト)が行われる。ロード命令では、WBパイプライン・
レジスタ176からデータが読み出され、レジスタ・フ
ァイル138にデータを書き込む。ストア命令では、デ
ータキャッシュ113にヒットしたときは、データキャ
ッシュ113にデータを書き込み、ミスヒットしたとき
は外部にライトバスサイクルを発行し、RAM20など
にデータを書き込む。
【0021】これらのステージとは別に、マイクロプロ
セッサ11は、外部バス制御部148を備えている。ま
た、マイクロプロセッサ11は、アドレス信号(S_ADD
R)端子177、データ(S_DATA)端子178、リード/
ライト信号(S_R/W)端子179、及びステータス信号(S_
STATUS)端子180を備えている。
【0022】外部バス制御部148は、これらの各端子
177〜180と接続されるとともに、システム・バス
16に接続され、システム・バス16へのデータの供給
及び取込み等の制御を行う。すなわち、外部バス制御部
148は、システム・バス16を介してROM19、R
AM20あるいは周辺装置17との間でデータを授受
し、命令キャッシュ125とROM19との間で命令コ
ード等を授受し、データキャッシュ113とRAM20
との間でリードデータを授受し、あるいは、WBステー
ジからライトデータを取り込んで、内蔵のライトバッフ
ァ148aを介してRAM20に書き込む。つまり、外
部バス制御部148は、アドレス信号S_ADDR、リード/
ライト信号S_R/W、及びステータス信号S_STATUSを出力
すると共に、データ信号S_DATAを入、出力する。メモリ
RAM20や周辺装置17へのライトは、ライトバッフ
ァ148aにより、パイプライン処理に影響を与えるこ
となく独立してRAM20へ書き込まれる。
【0023】図9は、図7に示す上記従来のデータ処理
システムにおけるパイプライン処理時の作動タイミング
を示すタイミングチャートである。パイプライン処理で
は、直列的な命令実行の流れが並列化されて、命令のス
ループットが増大して命令の平均実行時間が短縮され、
1ステップで全体の中の1工程が完了する。
【0024】図9においての横方向は時間軸を、縦方向
は信号線軸を夫々示している。上部側から、システムク
ロック信号(CLK)、パイプラインをマスクするパイプマ
スク信号(PIPEMK)、パイプクロック信号(PIPECLK)、第
1命令(Inst1(N:ノーマル))、第2命令(Inst2(R:リー
ド))、第3命令(Inst3(W:ライト))、第4命令(Inst4
(R))、及び、第5命令(Inst5(W))を示す。更に、外部の
メモリ19、20などとマイクロプロセッサ11とを接
続するシステム・バス16上の伝送信号である、システ
ムバス16のバスサイクルのモードを表すバスサイクル
信号、アドレス信号(S_ADDR)、データ信号(S_DATA)、リ
ード/ライト信号(S_R/W)、動作状態を示すステータス
信号(S_STATUS)を示す。更に、図示しないRAM等のト
レースメモリ部における書込みアドレスを意味するS_TM
Aを示す。ここで、第1〜第5命令Inst1〜Inst5に記載
のIF、RF、EX、DF及びWBは、その時点で夫々
の命令が処理されるパイプラインのステージを示す。ま
た、Inst1〜Inst5に付記されたICHitは、パイプライ
ン処理が命令をフェッチするとき、命令キャッシュにヒ
ットしたことを示し、また、DCHitは、パイプライン
処理がデータを読み出すとき、データキャッシュにヒッ
トしたことを示し、DCMissは、データキャッシュにミ
スヒットしたことを示す。また、バスサイクルのモード
としては、命令フェッチ、データリード、データライ
ト、I/Oリード、I/Oライトなどがある。
【0025】データ処理システムでは、パイプクロック
信号PIPECLKに同期して、Inst1(N)、Inst2(R)、Inst3
(W)、Inst4(R)、Inst5(W)がこの順に、IF、RF、E
X、DF及びWBの各ステージを順次に進む。パイプマ
スク信号PIPEMKは、パイプライン処理ブロック12がキ
ャッシュ113、115にミスヒットして外部のROM
19やRAM20をアクセスする場合など、該当ステー
ジの処理を待機するときにだけ有効になり、ステージを
引き延ばす。
【0026】次に、図8と図9をもとに、各命令毎の処
理動作について説明する。時刻t0のIFステージで
は、第1命令Inst1をフェッチする。すなわち、プログ
ラム・カウンタ(PC)134はPCアドレスA01を
命令キャッシュ115に出力し、命令キャッシュ115
は、アドレスA01にヒットすると、第1命令の命令コ
ードを命令コードラッチ136に出力する。時刻t1の
RFステージでは、第1命令Inst1をデコードする。す
なわち、パイプライン制御部137は、命令コードラッ
チ136から命令コードを読み取り、各ステージに対し
て必要な制御を行う。
【0027】時刻t2のEXステージでは、第1命令In
st1のデコード結果に基づき、演算処理を実行し、その
結果をラッチ145、146にラッチさせる。例えば、
第1命令Inst1が、分岐命令であったとすると、演算結
果である分岐先アドレスA02がプログラムカウンタ生
成部132に入力され、プログラムカウンタ生成部13
2は、プログラム・カウンタ134を分岐先アドレスA
02に書き換える。
【0028】時刻t3、t4のDF、WBステージで
は、なにも実行されずに処理が終了する。また、第1命
令Inst1はロード/ストア命令ではないので、データフ
ェッチは行われず、トレース対象にもならない。
【0029】次に、第2命令Inst2(R)の処理について説
明する。ここで、第2命令Inst2(R)は、RAM20のB
01番地からデータを読み出す命令であるとする。時刻
t1のIFステージでは、パイプライン制御部137
は、プログラム・カウンタ134のPCアドレスA02
を命令キャッシュ115に入力し、命令キャッシュ11
5から第2命令Inst2をフェッチし、命令コードラッチ
136にラッチさせる。
【0030】時刻t2のRFステージでは、パイプライ
ン制御部137は、命令コードラッチ136の内容を取
り込んで第2命令Inst2をデコードし、読み出すべきR
AM20のアドレスを計算するデータをラッチ140、
141にラッチさせる。時刻t3のEXステージでは、
ALU143は、ラッチ140、141の内容をもとに
演算して、演算結果であるアクセスアドレス(Address)
B01番地をラッチ145にラッチさせる。
【0031】時刻t4のDFステージでは、アクセスア
ドレスB01番地と、リード/ライト信号S_R/Wのうち
リード信号Rがデータキャッシュ113に入力され、B
01番地にヒットすると、データキャッシュ113はデ
ータD01をセレクタ191を介してラッチ151に出
力する。時刻t5のWBステージでは、ラッチ151の
内容をレジスタファイル138の所定のレジスタに書き
込む。
【0032】第2命令Inst2はロード命令であり、デー
タフェッチが行われるので、アクセスされたアドレスB
01番地と読み出されたデータD01とリード信号Rな
どの被トレースデータがトレース対象である。しかしな
がら、データキャッシュ113にヒットし、外部のシス
テムバス16に出力されないので、トレース回路14
は、これらの被トレースデータを取得することができな
い。
【0033】次に、第3命令Inst3(W)の処理について説
明する。ここで、第3命令Inst3(W)は、RAM20のB
02番地にデータD02を書き込む命令であるとする。
時刻t2のIFステージでは、第3命令Inst3を命令キ
ャッシュ115からフェッチする。時刻t3のRFステ
ージでは、第3命令Inst3をデコードする。データD0
2はレジスタファイル138から読み出されてラッチ1
42に出力される。
【0034】時刻t4のEXステージでは、ALU14
3は書き込むデータのアクセスアドレスを演算して、演
算結果であるB02番地をラッチ145に出力する。ま
た、ラッチ142に保持されたデータD02はラッチ1
46に出力される。時刻t5のDFステージでは、ラッ
チ145の内容はラッチ150へ、ラッチ146の内容
はセレクタ191を介してラッチ151へ出力される。
【0035】時刻t6のWBステージでは、ラッチ15
1の内容をデータキャッシュ113にアドレスB02番
地とデータD02とライト信号Wとを渡し、データキャ
ッシュ113に書き込む。第3命令Inst3はストア命令
であり、データライトが行われるので、アクセスされた
アドレスB02番地と、書き込みされたデータD02
と、ライト信号Wを含むリード/ライト信号S_R/Wなど
の被トレースデータがトレース対象である。しかしなが
ら、データキャッシュ113にヒットしているので、ト
レース回路14は、これらの被トレースデータを取得す
ることができない。
【0036】次に、第4命令Inst4(R)の処理について説
明する。ここで、第4命令Inst4(R)は、RAM20のB
03番地からデータD03を読み出す命令であるとす
る。時刻t3〜t5のIF〜EXステージは、第2命令
Inst2と同様に処理される。時刻t6のDFステージで
は、B03番地とリード/ライト信号S_R/Wのうちリー
ド信号Rがデータキャッシュ113に入力される。
【0037】データキャッシュ13は、B03番地にミ
スヒットすると、外部バス制御部148にアクセス情報
(B03番地とリード信号Rなど)を渡し、外部バスか
らの読み出しを要求する。また、データキャッシュ11
3は、パイプライン制御部137にパイプライン処理の
停止を要求し、パイプライン制御部137はパイプマス
ク信号PIPEMKをハイレベルにする。この結果、パイプク
ロック信号PIPECLKはロウレベルに固定され、パイプラ
インの各ステージは処理を停止する。
【0038】時刻t7〜t9で、外部バス制御部148
は第4命令のリードバスサイクル(図9のバスサイク
ル)を実行する。時刻t7で、外部バス制御部148
は、アドレス信号S_ADDR端子にB03番地を、リード/
ライト信号S_R/W端子にR(リード信号端子を活性化し
た信号)を夫々出力し、システム・バス16を介してR
AM20をアクセスする。時刻t8で、RAM20はア
ドレスB03番地のデータD03をシステム・バス16
に出力し、データ信号S_DATA端子を通して外部バス制御
部148に入力する。時刻t9で、外部バス制御部14
8は、データD03をデータキャッシュ113に入力す
る。
【0039】時刻t10で、データキャッシュ113
は、データ(Read Data)D03をセレクタ191を通し
てラッチ151にラッチさせるとともに、パイプライン
制御部137にパイプライン処理の停止解除を要求す
る。パイプライン制御部137は、パイプマスク信号PI
PEMKをロウレベルにし、パイプクロック信号PIPECLKを
復活させ、パイプラインの各ステージは処理を再開す
る。時刻t11のWBステージでは、ラッチ151の内
容をレジスタファイル138の所定のレジスタに書き込
む。
【0040】第4命令Inst4はロード命令であり、デー
タフェッチが行われるので、アクセスされたアドレスB
03番地と読み出されたデータD03とリード/ライト
信号S_R/Wなどの被トレースデータがトレース対象であ
る。データキャッシュ113にミスヒットすると、外部
のシステムバス16に出力されるので、トレース回路1
4は、これらの被トレースデータを取得することがで
き、時刻t9でトレース回路14に内蔵されたトレース
メモリ部(図示せず)のアドレスS_TMAの0H番地に被
トレースデータを書き込む。
【0041】しかし、アクセス情報(B03、R)は時
刻t7でシステムバス16に出力され、読出しデータD
03は時刻t8で出力されるので、トレース回路14は
システムバス16を常にモニタし、命令フェッチなどの
バスサイクルと識別しつつ被トレースデータ取得のタイ
ミングを制御する必要がある。トレースメモリ部に書き
込みが終了すると、次のクロック信号CLK(時刻t1
0)でアドレス信号S_TMAはインクリメントされて1H
番地になり、次の書き込みに備える。
【0042】次に、第5命令Inst5(W)の処理について説
明する。ここで、第5命令Inst5は、RAM20のB0
4番地にデータD04を書き込む命令であるとする。時
刻t4〜t11のIF〜DFステージでは、第3命令In
st3と同様に処理が進む。時刻t12のWBステージで
は、パイプライン制御部137は、ラッチ150、15
1の内容(アドレスB04番地とデータD04)をデー
タキャッシュ113に書き込むとともに、外部バス制御
部148のライトバッファ148aに書き込む。これに
より、第5命令Inst5のパイプライン処理は終了する。
【0043】時刻t13〜t15で、外部バス制御部1
48は、第5命令のライトバスサイクル(図9のバスサ
イクル)を実行する。時刻t13で、外部バス制御部1
48は、アドレス信号S_ADDR端子177にアドレスB0
4番地を、リード/ライト信号S_R/W端子179にライ
ト信号Wを、ステータス信号S_STATUS端子180にステ
ータス情報を夫々出力し、システムバス16を介してR
AM20に入力する。時刻t14で、外部バス制御部1
48は、データ信号S_DATA端子178に書込みデータD
04を出力し、システムバス16を介してRAM20に
入力する。時刻t15で、RAM20はアドレスB04
番地にデータD04を書き込む。なお、ストア命令のと
きにミスキャッシュが生じても、外部バスであるシステ
ムバス16が空いていれば、パイプライン処理は停止さ
れることなく処理が継続される。
【0044】第5命令Inst5はストア命令であり、デー
タライトが行われるので、アクセスされたアドレスB0
4番地と書き込みされたデータD04とライト信号W、
ステータス信号S_STATUSなどの被トレースデータがトレ
ース対象である。これらの被トレースデータは、データ
キャッシュ113にミスヒットするとシステムバス16
に出力されるので、トレース回路14は、これらの被ト
レースデータを取得することができ、時刻t15でトレ
ースメモリ部のアドレスS_TMAの1H番地に被トレース
データを書き込む。しかし、アクセス情報(B04、S_
R/W、S_STATUS)は時刻t13でシステムバス16に出
力され、読出しデータD04は時刻t14で出力され、
しかも、第5命令のWBステージが終了後に出力される
ので、トレース回路14はシステムバス16を常にモニ
タし、フェッチ命令と識別しつつロード命令とは異なる
タイミングで被トレースデータ取得のタイミングを制御
する必要がある。
【0045】トレースメモリ部に書込みが終了すると、
次のクロック信号CLK(時刻t16)でアドレス信号S_T
MAはインクリメントされて2H番地になり、次の書込み
に備える。
【0046】トレース回路14によるトレース処理はシ
ステム・バス16を介して行われ、図9では、ミスヒッ
トした第4及び第5命令だけがシステム・バス16で観
測されるので、トレースすることができる。しかしなが
ら、第2及び第3命令のロード/ストアがデータキャッ
シュ113にヒットするので、システム・バス16にア
クセスされることがなく、トレースすることはできな
い。
【0047】これを解決する方法として、パイプライン
処理を一旦停止してトレースする方法(従来例2とす
る)が提案されている。この方法では、命令フェッチ時
に命令キャッシュ115にヒットした場合には、システ
ム・バス16が使われていない期間を利用して、そのと
きに実行されたアドレス情報をシステム・バス16を介
して出力するようにしていた。しかし、システム・バス
16が他の処理で使われている場合には、パイプライン
処理を一旦停止して、アドレス情報を出力するようにし
ていた。すなわち、マイクロプロセッサ11は、通常の
命令処理サイクルとは別に、被トレースデータ出力サイ
クルを通常のバスサイクルの間に挿入して、外部に取り
出していた。
【0048】
【発明が解決しようとする課題】図10は、5段パイプ
ラインの処理状況を模式的に示す図であり、(a)はス
トア命令の場合、(b)はロード命令の場合を夫々示
す。また、同図(a)のストア命令は、第N番目に実行
される第N命令であり、同図(b)のロード命令は、第
N+1番目に実行される第N+1命令であるとする。
【0049】ストア命令の場合、図10(a)に示すよ
うに、時刻t0のIFステージで、命令がフェッチさ
れ、RFステージで命令に対応するデータをレジスタフ
ァイル138からリードする。更に、時刻t2のEXス
テージで、このデータを書き込むべきアクセスアドレス
を計算し、DFステージでは、何も処理せず、WBステ
ージに進む。時刻t4のWBステージで、データキャッ
シュ113にヒットしたときは、上述のアクセスアドレ
スとライトデータをデータキャッシュ113に書き込
み、ミスヒットしたときは、ライトバッファ148aに
書き込む。時刻t5以降で、外部バス制御部148は、
システムバス16の空き状態のとき、ライトバッファ1
48a内のライトデータをRAM20に書き込むための
ライトバスサイクルを発行する。
【0050】ロード命令の場合、図10(b)に示すよ
うに、時刻t1のIFステージで命令がフェッチされ、
RFステージで命令に対応するデータをレジスタファイ
ル138(図8)からリードする。更に、時刻t3のE
Xステージで読み込むべきデータのアクセスアドレスを
計算し、時刻t4のDFステージで、アクセスアドレス
をアクセスし、このアドレスに対応するリードデータを
データキャッシュ113またはRAM20からリード
し、WBステージで、このリードデータをレジスタファ
イル138に書き込む。なお、データキャッシュ113
にミスヒットしたときは、外部バス制御部148は、前
述のとおり、パイプライン処理を一旦停止させて、RA
M20から読み出すためのリードバスサイクルを発行す
る。
【0051】このように、ストア命令の場合には、時刻
t5以降にWBステージまたはその終了後にライトバス
サイクルが発行されてデータが書き込まれる。これに対
してロード命令の場合には、DFステージでリードバス
サイクルが発行されてデータが読み出される。システム
バス16にトレース回路14を接続して、マイクロプロ
セッサ11の被トレースデータを取得するとき、トレー
ス回路14は、ステータス信号S_STATUSの1つであるバ
スサイクル情報を常に監視し、ロード命令の場合とスト
ア命令の場合とで異なるタイミングで被トレースデータ
を取得しなければならなかった。このタイミングを検出
して、制御するためには、複雑な制御回路を構成しなけ
ればならなかった。
【0052】さらに、第N命令は第N+1命令より先に
実行されるのに、システムバスで観測すると、第N+1
命令のデータアクセスの方が第N命令より先にシステム
バス上に出現することになり、トレースメモリ部に書き
込む順序が逆転する。デバッグするとき、トレースメモ
リ部の内容を読み出しても、どの命令でアクセスされた
データなのかを判断するのに時間がかかり、トレースの
効率を悪くしていた。
【0053】上記従来例2のデータ処理システムでは、
命令キャッシュ115にヒットしても、命令をトレース
することはできるが、その場合に、マイクロプロセッサ
11からの周辺装置17等に対する命令の処理サイクル
を一旦停止しなければならない。従って、マイクロプロ
セッサ11の処理の間には、トレース回路14によって
トレースするための別のサイクルが介在することにな
り、トレース処理がリアルタイムに実行できないという
不都合が生じる。このため、マイクロプロセッサ11
は、トレース処理の際には良好な作動が損なわれ、各処
理時におけるリアルタイム性が損なわれることになる。
【0054】例えば、自動車のエンジン制御用に開発し
たプログラムをトレースする場合に、運転手がアクセル
をどの程度押したか、或いは、エンジンの回転数や温度
はどの程度かといった情報がマイクロプロセッサに入力
され、マイクロプロセッサが燃料の供給量や点火タイミ
ングなどを制御する。この際に、プログラム開発者は、
最適な燃料供給量を求めるため、マイクロプロセッサを
設定するパラメータをいろいろ変えてエンジンを動作さ
せることがある。このとき、プログラム開発者は、マイ
クロプロセッサ内部でどのようにプログラムが処理さ
れ、どのようなパラメータであったかを確かめながら開
発を進めることが多い。
【0055】従来のトレース回路のように、プログラム
処理を途中で一旦止めて、トレース情報を取得するため
のトレース用バスサイクルを挿入すると、制御に時間的
なズレが生じてしまい、エンジンが止まったり、或い
は、求めた最適なパラメータが実使用状況におけるタイ
ミングでは最適値ではなかった等の不具合がある。
【0056】また、近年では、マイクロプロセッサの動
作速度が向上し、動作クロックは数100MHzにも及
ぶようになった。このように高速で動作するシステム・
バス16にトレース回路のコネクタやプローブなどを接
続すると、不要な寄生容量がシステム・バス16に付加
されることになり、アドレス信号S_ADDRやデータ信号S_
DATAの波形がなまり、データの授受が正確に行われず、
データ処理システムが正常に動作しなくなることもあっ
た。
【0057】本発明は、上記に鑑み、命令キャッシュや
データキャッシュの機能を有しながらも、リアルタイム
性を損なうことなくトレースできる構成のマイクロプロ
セッサ及びデータ処理システムを提供することを目的と
する。また、本発明は、データキャッシュの機能を有し
ながらも、実行されたリード/ライトデータ、そのアド
レス、及びステータス信号などの情報をトレースできる
マイクロプロセッサを提供することを目的とする。本発
明は更に、マイクロプロセッサの動作に影響を与えるこ
となくトレースできるデータ処理システムを提供するこ
とを目的とする。
【0058】
【課題を解決するための手段】上記目的を達成するため
に、本発明のマイクロプロセッサは、命令キャッシュメ
モリとデータキャッシュメモリとを有し、システム・バ
スを介して外部装置との間でデータの授受を行い、命令
を取り込むIFステージと、命令をデコードするRFス
テージと、デコードされた命令を実行するEXステージ
と、前記外部装置にアクセスしてデータの読出しを行う
DFステージと、データの書込みを行うWBステージと
を備えたマイクロプロセッサにおいて、前記DFステー
ジに設けられ、前記EXステージで出力されたアクセス
アドレスを保持する第1ラッチと、前記DFステージに
設けられ、データ書込み時に前記EXステージで出力さ
れたデータを保持する第2ラッチと、前記第1ラッチか
ら出力されたアクセスアドレスが入力されるデータキャ
ッシュメモリと、前記WBステージに設けられ、前記第
1ラッチから出力されたアクセスアドレスを保持する第
3ラッチと、前記WBステージに設けられ、ストア命令
時には前記第2ラッチから出力されたデータを、ロード
命令時には前記データキャッシュメモリより出力された
データを、選択手段で選択して保持する第4ラッチと、
前記第3ラッチ及び第4ラッチから出力されたアクセス
アドレス及びデータを、システム・バスとは独立したデ
ータトレース・バスに出力するデータトレースバス制御
手段と、前記データトレース・バスを介してトレースす
べき被トレースデータを出力する出力端子とを備え、ア
クセスアドレスとデータとが同期して前記データトレー
ス・バスに出力されることを特徴とする。
【0059】本発明のマイクロプロセッサによると、キ
ャッシュメモリ機能を備えながらも、マイクロプロセッ
サからの命令を一旦停止することなく、システム・バス
とは別のデータトレース・バスを経由してトレースする
ことができ、従って、リアルタイム性を損なうことがな
い。更に、比較的簡素な構成によって、複数のデータを
最終ステージまでに出揃わせて出力することができる。
【0060】
【0061】
【0062】
【0063】また、前記EXステージから前記WBステ
ージまでの段数に相当する数のラッチから成るステータ
スラッチを更に備えることも好ましい態様である。
【0064】前記データトレースバス制御手段が、前記
被トレースデータの出力の有効期間を示すイネーブル信
号生成手段を備えることが好ましい。
【0065】また、前記RFステージでは、フェッチし
た信号がロード命令又はストア命令であることが検出さ
れるとメモリリクエスト信号が出力され、前記ロード命
令又は前記ストア命令が前記WBステージに到達したと
きに、前記メモリリクエスト信号を保持してイネーブル
信号を出力するイネーブルラッチを更に備えることが好
ましい。
【0066】前記イネーブルラッチは、前記メモリリク
エスト信号とパイプライン処理と停止させるパイプマス
ク信号との論理積した信号を保持することによって、パ
イプライン処理を停止中はイネーブル信号を出力しない
ように構成する。
【0067】前記データトレース・バスには、被トレー
スデータをトレースするトレース回路が接続されること
が好ましい。これにより、出力端子に導かれた複数のデ
ータを確実にトレースできる。
【0068】本発明のデータ処理システムは、命令キャ
ッシュメモリとデータキャッシュメモリとを有し、シス
テム・バスを介して外部装置との間でデータの授受を行
い、授受するアドレスデータとデータデータをパイプラ
イン方式で処理するマイクロプロセッサを備えたデータ
処理システムにおいて、複数ステージの夫々に設けら
れ、前記外部装置又は命令キャッシュメモリにアクセス
されるアドレスデータを保持するアドレスラッチと、複
数ステージの夫々に設けられ、前記外部装置又はデータ
キャッシュメモリとの間で授受されるデータデータを保
持するデータラッチと、複数ステージの夫々に設けら
れ、前記アドレスデータ又は前記データデータのステー
タス情報を保持するステータスラッチと、システム・バ
スとは独立して設けられたデータトレース・バスと、前
記アドレスデータと前記データデータと前記ステータス
情報とから成る被トレースデータをパイプラインクロッ
クに同期してパイプラインの最終ステージまで転送する
データ供給手段とを備え、最終ステージのアドレスラッ
チと最終ステージのデータラッチと最終ステージのステ
ータスラッチにラッチされた被トレースデータであっ
て、同一の命令により発生した被トレースデータを命令
の発生順に前記データトレース・バスを介して前記出力
端子より出力することを特徴とする。
【0069】上記データ処理システムによると、キャッ
シュメモリ機能を備えながらも、マイクロプロセッサか
らの命令を一旦停止することなく、データトレース・バ
スを経由してトレースすることができるので、リアルタ
イム性を損なうことがない。更に、比較的簡素な構成に
よって、最終ステージまでに出揃う複数データを出力す
ることができる。
【0070】
【0071】更に好ましくは、前記データ供給手段が、
前記最終ステージのアドレスラッチと最終ステージのデ
ータラッチからの前記被トレースデータを前記出力端子
に供給するデータトレースバス制御部を更に備えてい
る。これにより、データトレース・バスにトレース回路
が接続された場合に、最終ステージまでに出揃う複数デ
ータをトレース回路に円滑に出力できる。
【0072】また、前記出力端子に接続され、前記出力
端子から出力された被トレースデータを記憶するトレー
ス回路を備えることも好ましい態様である。
【0073】
【0074】また、前記トレース回路は、被トレースデ
ータを記憶するトレースメモリ部と、被トレースデータ
を記憶するアドレスを算出するアドレス加算回路とを備
えることが好ましい。更に好ましくは、前記アドレス加
算回路は、パイプラインの処理が停止している期間は前
記トレースメモリ部の同じアドレス信号を出力する手段
を備えている。
【0075】前記トレース回路は、所定の命令が最終段
のパイプラインステージに到達した時点で前記トレース
メモリ部に記憶させる手段を備えることが好ましい。更
に好ましくは、前記トレース回路は、イネーブル信号が
有効なときにトレースメモリ部の書込みを許可する手段
を備える。
【0076】
【発明の実施の形態】図面を参照して本発明を更に詳細
に説明する。図1は、本発明の一実施形態例におけるマ
イクロプロセッサを有するデータ処理システムを示すブ
ロック図である。このデータ処理システムは、命令キャ
ッシュとデータキャッシュとを有し、システム・バスを
介してメモリ(ROM、RAM)または周辺装置との間
でデータの授受を行うもので、通常処理の5段パイプラ
イン処理システムと、トレース用のパイプライン処理シ
ステムとを備える。
【0077】データ処理システム24は、マイクロプロ
セッサ21と、マイクロプロセッサ21からの種々のデ
ータが供給されるシステム・バス16と、システム・バ
ス16に接続された周辺装置17、ROM19及びRA
M(メインメモリ)20とを備えている。データ処理シ
ステム24は更に、システム・バス16とは別に配設さ
れ、マイクロプロセッサ21からのトレースデータを伝
送するデータトレース・バス10と、データトレース・
バス10に接続され、このバス10に供給される被トレ
ースデータを取り込んでトレース処理するトレース回路
31とを備える。マイクロプロセッサ21は、後述のパ
イプライン制御部37等を含むパイプライン処理ブロッ
ク22と、リード/ライトデータを格納するデータキャ
ッシュ23と、命令コードを格納する命令キャッシュ2
5とを有している。また、各キャッシュは図示しないキ
ャッシュメモリとキャッシュコントローラとを有してい
る。
【0078】図2は、データ処理システム24の構成を
詳細に示すブロック図である。データ処理システム24
のマイクロプロセッサ21は、5段の各パイプライン・
ステージ、つまりIF(Instruction Fetch)ステージ、
RF(Register Fetch)ステージ、EX(Execute)ステー
ジ、DF(Data Fetch)ステージ、及びWB(Write Back)
ステージに分割されている。さらに、マイクロプロセッ
サ21は、これらのステージを制御するパイプライン制
御部37と、これらのステージと外部とデータを授受す
る外部バス制御部48と、トレース回路31に被トレー
スデータを出力するデータトレースバス制御部52とを
備える。
【0079】IF(命令・フェッチ)ステージは、プロ
グラムカウンタ生成部32と、命令コードを授受する命
令キャッシュ25と、プログラム・カウンタ(PC)3
4とを備える。
【0080】プログラム・カウンタ(PC)34は、現
在実行中の命令フェッチアドレスを保持する機能と、現
アドレスに所定数を加算して次にフェッチすべきアドレ
スを生成する機能とを有する。命令フェッチによって、
プログラム・カウンタ34中のアドレスを用いて命令キ
ャッシュ25またはROM19から命令コードが読み出
され、RFパイプライン・レジスタ73に書き込まれ
る。プログラム・カウンタ生成部32は、分岐命令など
を実行したとき、分岐先の命令フェッチアドレスを生成
し、このアドレスをプログラム・カウンタ(PC)34
に保持させる。
【0081】RF(レジスタ・フェッチ)ステージは、
パイプライン制御部37と、レジスタファイル38と、
IFステージに隣接するRFパイプライン・レジスタ7
3とを備えている。RFパイプライン・レジスタ73
は、プログラム・カウンタ34からの出力をラッチする
PCラッチ35と、命令キャッシュ25から出力された
命令コードをラッチする命令コードラッチ36とを備え
る。これらのラッチ35、36は、パイプクロック信号
PIPECLKに同期して保持動作する。なお、パイプライン
制御部37は、図2では便宜上RFステージに図示した
が、RFステージだけに属するものではなく、全てのス
テージに係わるものである。
【0082】パイプライン制御部37は、命令コードラ
ッチ36から命令コードを読み込み、これをデコードし
てパイプライン処理における作動を統括的に制御するも
のである。また、命令コードに応じたステータス信号ST
ATUS_RF、リード/ライト信号R/W_RF、メモリリクエス
ト信号MRQ_RFを出力する。ここで、「***_RF」は、RF
ステージにおける信号であることを意味し、同一の信号
がEXステージにシフトすると「***_EX」に変わる。
「***_RF」と「***_EX」とは、信号の値は同じである
が、その値が有効であるタイミングが異なることを表
す。
【0083】レジスタファイル38は、レジスタ番号が
付与された複数のレジスタからなり、アクセスのキーと
してレジスタ番号が入力されると、そのレジスタの内容
が読出し/書込みされるものある。例えば、レジスタフ
ァイル38は、読出し及び書込みのデコーダと、フリッ
プフロップを並べたレジスタとから構成される。レジス
タファイル38では、レジスタの読出し時に状態は何ら
変更されず、レジスタ番号を入力として指定するだけ
で、レジスタに保存されたデータを得ることができる。
レジスタファイル38のレジスタへの書込み時には、例
えば、レジスタ番号、書き込むべきデータ、及び、書込
みを制御するクロック信号の3入力が必要である。
【0084】EX(実行)ステージは、算術演算部(AL
U)43と、EXパイプライン・レジスタ74とを備え
る。EXパイプライン・レジスタ74は、パイプライン
制御部37とレジスタファイル38から出力される通常
の処理データをラッチするラッチ40、41、42と、
動作状態を示すステータス信号STATUS_RFとリード/ラ
イト信号R/W_RFをラッチするEX段トレース用ラッチ3
9とを備える。ラッチ40、41、42は、レジスタフ
ァイル38の内容、算術演算部43の演算結果、リード
/ライトデータをアクセスするアドレスなどをパイプク
ロック信号PIPECLKに同期して保持する。
【0085】算術演算部43は、ラッチ40、41を経
由して、PCラッチ35の出力と、パイプライン制御部
37の出力と、レジスタファイル38の出力38a、3
8bとを夫々取り込んで演算を実行し、その結果をDF
ステージに出力する。
【0086】DFステージは、データキャッシュ23
と、DFパイプライン・レジスタ75とを備える。DF
パイプライン・レジスタ75は、EX段トレース用ラッ
チ39からの出力をラッチするDF段トレース用ラッチ
44と、算術演算部43からのデータをラッチするラッ
チ45と、ラッチ42からのライトデータをラッチする
ラッチ46とを備える。
【0087】データキャッシュ23は、パイプライン制
御部37を含むパイプライン処理ブロック22との間で
種々のデータを授受するもので、リードデータまたはラ
イトデータが読み書きされる。ミスヒットした場合に
は、データキャッシュ23は、外部バス制御部48にア
ドレス信号、リード/ライト信号、及びステータス信号
を渡し、リードバスサイクルの発行を要求する。
【0088】WB(Write Back:書込み)ステージは、W
Bパイプライン・レジスタ76を備える。WBパイプラ
イン・レジスタ76は、DF段トレース用ラッチ44か
らの出力をラッチするWB段トレース用ラッチ49と、
ラッチ45の出力であるアクセスアドレスなどをラッチ
するラッチ50と、データキャッシュ23からのリード
データとラッチ46からのライトデータとの一方をセレ
クタで選択してラッチするラッチ51とを備える。
【0089】これらのステージとは別に、マイクロプロ
セッサ21は、外部バス制御部48とデータトレースバ
ス制御部52とを備えている。また、マイクロプロセッ
サ21は、アドレス信号(S_ADDR)端子77、データ(S
_DATA)端子78、リード/ライト信号(S_R/W)端子7
9、及びステータス信号(S_STATUS)端子80を備えてい
る。
【0090】外部バス制御部48は、これらの各端子7
7〜80と接続されるとともに、システム・バス16に
接続され、システム・バス16へのデータの供給及び取
込み等の制御を行う。すなわち、外部バス制御部48
は、システム・バス16を介してROM19、RAM2
0あるいは周辺装置17との間でデータを授受し、命令
キャッシュ25とROM19との間でプリフェッチ信号
等を授受し、データキャッシュ23とRAM20との間
でリードデータを授受し、あるいは、WBステージから
ライトデータを取り込んで、内蔵のライトバッファ48
aを介してRAM20に書き込む。つまり、外部バス制
御部48は、アドレス信号S_ADDR、リード/ライト信号
S_R/W、及びステータス信号S_STATUSを出力すると共
に、データ信号S_DATAを入、出力する。メモリへのライ
トは、ライトバッファ48aにより、パイプライン処理
に影響を与えることなく独立してRAM20へ書き込ま
れる。
【0091】マイクロプロセッサ21は更に、被トレー
スデータの出力端子として、アドレス信号(ADDR)出力
端子63と、データ信号(DATA)出力端子64と、リー
ド/ライト信号(R/W)出力端子65と、ステータス信
号(STATUS)出力端子66と、クロック信号(CLK)出
力端子67と、イネーブル信号(ENABLE)出力端子68と
を備えている。各出力端子63〜68には、データトレ
ースバス制御部52を含むデータ供給手段53(図3参
照)に備えた後述の出力端子63a〜68aが夫々接続
されるとともに、データトレース・バス10を介してト
レース回路31が接続される。
【0092】アドレス信号(ADDR)出力端子63は、ロ
ード/ストア命令でアクセスされたデータのアクセスア
ドレス信号ADDRを出力し、データ信号(DATA)出力端子
64は、読み書きされたデータ信号DATAを出力し、リー
ド/ライト信号(R/W)出力端子65は、被トレースデ
ータがリードバスサイクルのものであるかライトバスサ
イクルのものであるかを示すリード/ライト信号R/Wを
出力する。また、ステータス信号(STATUS)出力端子6
6は、バスサイクルのステータス情報に加え、リード/
ライトデータが1バイトワード(8ビット)、1ハーフ
ワード(16ビット)、1ワード(32ビット)、また
は、1ダブルバイトワード(64ビット)のどのタイプ
であるかを示すサイズ情報と、ハーフワードやバイトワ
ードのとき32ビット中何バイト目が有効なデータであ
るかを示す位置情報と、データの並び順などの状態を示
す情報などを出力する。
【0093】データトレースバス制御部52は、ラッチ
51からのリードまたはライトデータDATAと、ラッチ5
0からのアクセスアドレスADDRと、ラッチ49からのリ
ード/ライト信号R/W、及びステータス信号STATUSとを
夫々取り込み、トレースすべきこれらの被トレースデー
タをデータトレース・バス10に出力する。
【0094】データトレース・バス10にはトレース回
路31が接続されており、このトレース回路31は出力
端子63〜68から対応する出力を受け取る入力端子6
9〜72、93、94を備える。
【0095】図3は、データトレースバス制御部52を
含むデータ供給手段53の内部構成の一例を示す回路図
である。図3は、被トレースデータを外部に出力するデ
ータ供給手段53部分を図2に示すブロック図から抽出
して、描き直したものである。図中のラッチ45、4
6、51は、通常のパイプライン処理に使用するラッチ
であり、データトレース用ラッチと兼用される。
【0096】図3に示すように、被トレースデータをト
レース回路31に供給するデータ供給手段53は、パイ
プライン制御部37から出力されるステータス信号STAT
US_RFとリード/ライト信号R/W_RFとをパイプラインの
最終ステージまで導く複数段のトレース用ラッチ39、
44、49と、アドレス信号ADDRを最終ステージまで導
く複数段のラッチ45、50と、リード/ライトデータ
DATAを導くラッチ46、51と、データトレースバス制
御部52とから構成される。
【0097】データトレースバス制御部52の出力部分
には、クロック信号CLKを出力する出力端子67a、イ
ネーブル信号ENABLEを出力する出力端子68a、アドレ
ス信号ADDRを出力する出力端子63a、データ信号DATA
を出力する出力端子64a、リード/ライト信号R/Wを
出力する出力端子65a、ステータス信号STATUSを出力
する出力端子66a、クロック信号CLKを出力する出
力端子67a、及び、イネーブル信号ENABLEを出力する
出力端子68aが夫々形成されている。データトレース
バス制御部52は、最終段のラッチ49a、49b、5
0、51からの被トレースデータとクロック信号CLK
とを夫々出力端子65a、66a、63a、64a、6
7aに供給するとともに、イネーブル信号ENABLEを生成
する回路を有し、イネーブル信号ENABLEを出力端子68
aに供給する。
【0098】マイクロプロセッサ21は、パイプクロッ
ク信号PIPECLKを出力するパイプクロック生成回路を有
し、パイプクロック生成回路は2入力ANDゲート54
で構成される。2入力ANDゲート54の入力は、シス
テム・クロック信号CLKとパイプマスク信号PIPEMKの反
転信号とに接続される。2入力ANDゲート54の出力
PIPECLKは、ラッチ39a、39b、56、44a、4
4b、57、45、46、49a、49b、60、5
0、51などのクロック端子と夫々接続される。2入力
ANDゲート54は、パイプマスク信号PIPEMKがロウレ
ベルの間、クロック信号CLKを出力し、ハイレベルの間
はクロック信号CLKの出力を止めてロウレベルを出力す
る。このように、パイプクロック生成回路は、パイプラ
イン処理における各種信号の進行を制御する。
【0099】データトレースバス制御部52内のイネー
ブル信号ENABLEを生成する回路は、2入力ANDゲート
55、ラッチ56、57、60から構成される。ラッチ
56、57のクロック端子は、パイプクロック信号PIPE
CLKと接続され、ラッチ56のデータ入力端子は、パイ
プライン制御部37から出力されるメモリ・リクエスト
信号MRQ_RF出力と接続され、ラッチ56の出力MRQ_EXは
ラッチ57に入力され、ラッチ57はメモリ・リクエス
ト信号MRQ_DFを出力する。2入力ANDゲート55の入
力は、パイプマスク信号PIPEMKの反転信号とラッチ57
の出力とが夫々接続され、2入力ANDゲート54の出
力は、ラッチ60のデータ入力端子と接続される。な
お、メモリ・リクエスト信号MRQ_RFは、パイプライン制
御部37でロード/ストア命令であることが検知される
と、パイプライン制御部37より出力される信号であ
る。メモリ・リクエスト信号MRQ_RFは、RAM20や周
辺回路17へのデータアクセスを伴う場合にはハイレベ
ルになり、伴わない場合にはロウレベルになる。
【0100】ラッチ60のクロック端子は、クロック信
号CLKと接続され、ラッチ60の出力はイネーブル信号E
NABLEの出力端子68aと接続される。イネーブル信号E
NABLEは、ロード命令とストア命令を伴う命令がWBス
テージに到達したときであって、クロック信号CLKの最
初の1クロック期間だけハイレベルとなる信号である。
すなわち、パイプマスク信号PIPEMKの反転した信号との
論理積をとって、パイプラインの先頭だけ、つまり最初
の1クロックのイネーブル信号ENABLEのみを有効にす
る。これにより、パイプラインが停止しているとき、保
持した同じ被トレースデータをトレースメモリ部58に
書き込み続ける不都合を回避する。
【0101】図4は、トレース回路31の要部を示す図
である。トレース回路31は、被トレースデータを記憶
するトレースメモリ部58と、インバータ81と、イン
クリメント回路59と、クロック信号CLK入力端子6
7、イネーブル信号ENABLE入力端子68と、アドレス信
号ADDR入力端子69と、データ信号DATA入力端子70
と、リード/ライト信号R/W入力端子71と、ステータ
ス信号STATUS入力端子72とを有している。トレースメ
モリ部58は、クロック信号CLKの入力端子MCLKと、ラ
イトイネーブル信号WE(-)の入力端子MWE(-)と、アド
レス信号TAの入力端子MTAと、データ信号TDの入力端子M
TDとを備える。ここで、(−)はライトイネーブル信号
WEが負論理、すなわちロウレベルのときアクティブで
あることを意味する。また、入力端子MCLKに入力された
クロック信号CLKは、トレースメモリ部58に書き込む
ための同期信号として利用される。アドレス信号TAは、
MWE(-)がロウレベルのとき、被トレースデータTDをトレ
ースメモリ部58へ書き込むための書込みアドレスであ
る。
【0102】インクリメント回路(アドレス加算回路)
59は、複数のフリップフロップ61と加算器62とセ
レクタ82とからなり、取り込んだクロック信号CLK及
びイネーブル信号ENABLEに従って、トレースメモリ部5
8への書込みアドレス信号TAをアドレス入力端子MTAに
出力する。フリップフロップ61は、トレースメモリ部
58のアドレスMTAの入力端子数分のフリップフロップ
61で構成される。加算器62は、アドレス信号TAの現
在の値に+1(または−1)して、次に被トレースデー
タを記憶すべきアドレスを計算する。セレクタ82は、
イネーブル信号ENABLEがロウレベルのときフリップフロ
ップ61の出力を選択出力し、ハイレベルのとき加算器
62の出力を選択出力する。そして、次にクロック信号
CLKが立ち上がるとき、この選択出力がフリップフロッ
プ61に保持される。このように、パイプライン処理が
停止して、イネーブル信号ENABLEがロウレベルになる
と、インクリメント回路59は同一アドレスのままであ
る。従って、複数のクロック信号CLKが入力端子MCLKに
入力されても、異なるアドレスに被トレースデータを記
憶することがなくなり、トレースメモリの利用効率を上
げることができる。
【0103】イネーブル信号ENABLE入力端子68から入
力されるイネーブル信号ENABLEは、インバータ81で反
転されて入力端子MWE(-)に入力され、トレースすべき被
トレースデータの書込みを許可する。従って、イネーブ
ル信号ENABLEがハイレベルのとき書込みが許可される。
この結果、多くのバスサイクルのうち、ロード/ストア
命令に伴うバスサイクルだけの被トレースデータをトレ
ースメモリ部58に記憶させることができる。
【0104】データ信号TDは、各入力端子69〜72か
ら入力されるアドレス信号(ADDR)と、データ信号(DA
TA)と、リード/ライト信号(R/W)と、ステータス信
号(STATUS)とからなり、トレースメモリ部58のデー
タ入力端子MTDに入力される。データ信号TDの幅は、こ
れらの信号線の数を合計したビット数分である。このデ
ータ信号TDは、ライトイネーブル信号WE(-)がロウレベ
ルになるタイミングでトレースメモリ部58に記憶され
る。
【0105】図5は、本実施形態例のデータ処理システ
ムにおける作動タイミングを示すタイミングチャートで
ある。
【0106】同図においての横方向は時間軸を、縦方向
は信号線軸を夫々示す。上部側から、システムクロック
信号(CLK)、パイプラインをマスクするパイプマスク信
号(PIPEMK)、パイプクロック信号(PIPECLK)、第1命令
(Inst1(N))、第2命令(Inst2(R))、第3命令(Inst3
(W))、第4命令(Inst4(R))、第5命令(Inst5(W))、シス
テム・バス16上の伝送信号であるバスサイクル信号、
EX段トレース用ラッチ39の出力の1つであるメモリ
リクエスト信号MRQ_EXと、この信号を次のパイプクロッ
ク信号PIPECLKでDF段トレース用ラッチ44に保持し
て出力させたメモリリクエスト信号MRQ_DFと、前記パイ
プマスク信号(PIPEMK)と、データトレースバス制御部5
2の出力信号であるイネーブル信号(ENABLE)と、アドレ
ス信号(ADDR)と、データ信号(DATA)と、リード/ライト
信号(R/W)と、ステータス信号(STATUS)と、トレースメ
モリ部58のアドレス信号TAとを示す。
【0107】また、同図中において、第1〜第5命令In
st1〜Inst5に記載のIF、RF、EX、DF及びWB
は、その時点で夫々の命令が存在するパイプラインステ
ージを示す。例えば、第1命令Inst1は、時刻t0でI
Fステージで処理が実行され、時刻t1でRFステージ
に移されて、処理が実行される。これと同時に、第2命
令Inst2が、時刻t1でIFステージに取り込まれて処
理が実行される。時刻t4では、IFステージ〜WBス
テージで第5〜第1命令が夫々並列に処理される。
【0108】また、第1命令Inst1(N)の(N)は、マイ
クロプロセッサ21内部で処理が完結してリード/ライ
ト処理されないノーマル命令であり、第2及び第4命令
Inst2(R)、4(R)の(R)はリード処理される命令であ
り、第3及び第5命令Inst3(W)、5(W)の(W)はライト
処理される命令であることを意味する。第1〜第5命令
Inst1〜Inst5に付記されたICHitは、命令キャッシュ
にヒットしたことを示し、DCHitはデータキャッシュ
にヒットしたことを示し、DCMissはミスヒットしたこ
とを示している。
【0109】次に、図5を参照して図3に示すデータト
レースバス制御部52の動作を説明する。パイプライン
制御部37から出力されるメモリ・リクエスト信号MRQ_
RFは、次のパイプクロック信号PIPECLKの立ち上がりで
EX段トレース用ラッチ56に保持され、ラッチ56は
MRQ_EX信号を出力する。この信号MRQ_RFは、リードまた
はライトのデータアクセスを伴うロード/ストア命令が
実行されるとき、ハイレベルになる。例えば、第2命令
Inst2(R)がRFステージで命令デコードされ、リード処
理を伴うことが検出されると、パイプライン制御部37
は、時刻t2でMRQ_RF信号としてラッチ56にハイレベ
ルを出力する(図示せず)。時刻t3で、パイプクロッ
ク信号PIPECLKが立ち上がると、ラッチ56はこれを保
持し、ラッチ56の出力MRQ_EXをハイレベルにする(図
5(j))。
【0110】また、第5命令Inst5のメモリリクエスト
信号MRQ_EXは、時刻t6でラッチ56に保持され、第5
命令Inst5のEXステージが終了する時刻t10まで保
持される。図示しない第6命令Inst6がノーマル命令で
あるとすると、時刻t6で、パイプライン制御部37の
出力はロウレベルになり、時刻t11のパイプクロック
信号PIPECLKの立ち上がりで、ラッチ56はこれをラッ
チし、出力をロウレベルにする。
【0111】ラッチ57は、ラッチ56の出力をパイプ
クロック信号PIPECLKの立ち上がりで保持する。すなわ
ち、メモリリクエスト信号MRQ_DFは、ラッチ56の出力
MRQ_EXを次のパイプクロック信号PIPECLKの立ち上がり
で保持したものであり、MRQ_EX信号をパイプクロック信
号PIPECLKの1クロック分シフトした信号である。例え
ば、第2命令Inst2に対応するMRQ_DF信号は、時刻t4
でハイレベルになり、第5命令Inst5に対応するMRQ_DF
信号は、時刻t11でハイレベルになる(図5
(k))。
【0112】2入力ANDゲート55は、メモリリクエ
スト信号MRQ_DFとパイプマスク信号PIPEMKを論理否定し
た信号とを入力とし、パイプマスク信号PIPEMKがロウレ
ベルの期間のみMRQ_DF信号を出力する。ラッチ60は、
クロック信号CLKの立ち上がりで2入力ANDゲート5
5の出力を保持し、イネーブル信号ENABLEとして出力す
る。
【0113】イネーブル信号ENABLEは、ロード命令とス
トア命令を伴う命令がWBステージに到達したときであ
って、クロック信号CLKの最初の1クロック期間だけハ
イレベルとなる信号である。例えば、第2命令Inst2のM
RQ_DF信号は、時刻t4でハイレベルとなり、この時点
でパイプマスク信号PIPEMKはロウレベルであるので、A
NDゲート55の出力はハイレベルである。時刻t5で
クロック信号CLKが立ち上がると、2入力ANDゲート
55の出力を保持し、その出力であるイネーブル信号EN
ABLEはハイレベルになる(図5(l))。
【0114】また、第4命令Inst4のMRQ_DF信号は、時
刻t6でハイレベルとなり、この時点でパイプマスク信
号PIPEMKはロウレベルであるので、ANDゲート55の
出力はハイレベルである。しかし、時刻t6の後半でパ
イプマスク信号PIPEMKはハイレベルになるので、AND
ゲート55の出力はロウレベルになる。ラッチ60は、
ANDゲート55の出力をクロック信号CLKの立ち上が
りでラッチするので、時刻t7でイネーブル信号ENABLE
はロウレベルになる(図5(l))。
【0115】図6は、5段パイプラインの処理状況を模
式的に示す図であり、横方向は時間軸を、縦方向は信号
線軸を夫々示している。図6(a)はライトバスサイク
ルを伴うストア命令(第3命令Inst3(W))の場合、図6
(b)はリードバスサイクルを伴うロード命令(第2命
令Inst2(R))の場合を夫々示す。また、図中、四角形□
は信号がそのステージで生成されることを表し、黒丸●
は前ステージのデータが次ステージにシフトしたことを
表し、白丸○は黒丸●と同様シフトするとともに、トレ
ースバスに出力されることを表す。
【0116】図2、図5及び図6を参照して、図3に示
す被トレースデータの生成動作を説明する。図6(a)
に示すストア命令Inst3(W)の場合、時刻t2のIFステ
ージで、先ず命令がフェッチされ、RFステージで命令
がデコードされる。このとき、パイプライン制御部37
は、ライトデータWrite Dataを命令で指定されたレジス
タファイル38から読み出してラッチ42に保存すると
ともに、書き込みであることを示すリード/ライト信号
R/W_RFと、そのステータス信号STATUS_RFをラッチ39
a、39bに出力する。
【0117】時刻t4で、これらの信号Write Data、R/
W_RF、STATUS_RFは、パイプクロック信号PIPECLKの立ち
上がりに同期してラッチ42、39a、39bに夫々保
存され、信号Write Data_EX、R/W_EX、STATUS_EXを出力
する。時刻t4のEXステージで、ALU43はこのラ
イトデータWrite Dataを書き込むべきアドレスを計算
し、アドレス信号Addressとしてラッチ45に出力す
る。
【0118】時刻t5のDFステージでは、信号Addres
s、Write Data_EX、R/W_EX、STATUS_EXは、パイプクロ
ック信号PIPECLKが立ち上がると、ラッチ45、46、
44a、44bに夫々ラッチされ、これらのラッチ4
5、46、44a、44bは信号Address_DF、Write Da
ta_DF、R/W_DF、STATUS_DFを夫々出力する。時刻t6の
WBステージでは、パイプクロック信号PIPECLKが立ち
上がると、信号Address_DF、Write Data_DF、R/W_DF、S
TATUS_DFは、ラッチ50、51、49a、49bに夫々
ラッチされ、ラッチ50、51、49a、49bは信号
ADDR、DATA、R/W、STATUSを夫々出力する(図5(m)
〜(p))。
【0119】図5の第3命令Inst3のようにキャッシュ
にヒットした場合は、アドレス信号ADDRとデータDATAを
データキャッシュ23に書き込む。第5命令Inst5のよ
うにキャッシュにミスヒットした場合は、外部バス制御
部48に内蔵されるライトバッファ48aにライトデー
タを書き込み、このライトデータは、システムバス16
が他に利用されていない間に外部バス制御部48により
RAM20に書き込まれる。また、これらの信号ADDR、
DATA、R/W、STATUSは、トレースバス10を介してトレ
ース回路31に供給され、トレースメモリ部58のアド
レスTA1H番地に書き込まれる(図5(g))。
【0120】図6(b)に示すロード命令Inst2(R)の場
合、時刻t1のIFステージで、先ず命令がフェッチさ
れ、RFステージで命令がデコードされる。時刻t2
で、パイプライン制御部37は、読み出しであることを
示すリード/ライト信号R/W_RFと、そのステータス信号
STATUS_RFをラッチ39a、39bに出力する。
【0121】時刻t3で、これらの信号R/W_RF、STATUS
_RFは、パイプクロック信号PIPECLKの立ち上がりに同期
してラッチ42、39a、39bに夫々保存され、信号
R/W_EX、STATUS_EXを出力する。時刻t3のEXステー
ジで、ALU43はこのライトデータWrite Dataを書き
込むべきアドレスを計算し、アドレス信号Addressとし
てラッチ45に出力する。
【0122】時刻t4のDFステージでは、信号Addres
s、R/W_EX、STATUS_EXは、パイプクロック信号PIPECLK
が立ち上がると、ラッチ45、44a、44bに夫々ラ
ッチされ、これらのラッチ45、44a、44bは信号
Address_DF、R/W_DF、STATUS_DFを夫々出力する。ま
た、アドレス信号Address_DFはデータキャッシュ23に
入力され、ヒットするとデータキャッシュ23は該当ア
ドレスのデータRead Dataを読み出して、セレクタ91
を通してラッチ51に出力する。セレクタ91はリード
/ライト信号R/W_DFがライトモードのときライトデータ
Write Dataを選択し、リードモードのときはリードデー
タRead Dataを選択して出力する。
【0123】図5の第2命令Inst2のようにキャッシュ
にヒットした場合は、アドレス信号ADDRとデータDATAを
データキャッシュ23から読み出す。第4命令Inst4の
ようにキャッシュにミスヒットした場合は、外部バス制
御部48にリードバスサイクルを要求し、パイプマスク
信号PIPEMKをハイレベルにしてパイプライン処理を停止
し、RAM20からデータDATAを読み出す。
【0124】時刻t5のWBステージでは、パイプクロ
ック信号PIPECLKが立ち上がると、信号Address_DF、Rea
d Data、R/W_DF、STATUS_DFは、ラッチ50、51、4
9a、49bに夫々ラッチされ、ラッチ50、51、4
9a、49bは信号ADDR、DATA、R/W、STATUSを夫々出
力する(図5(m)〜(p))。また、これらの信号AD
DR、DATA、R/W、STATUSは、トレースバス10を介して
トレース回路31に供給され、トレースメモリ部58の
アドレスTA0H番地に書き込まれる(図5(g))。
【0125】このように、同一の命令に基づく各被トレ
ースデータは異なるステージで生成され、さらにストア
命令の場合とロード命令の場合とでデータが有効になる
ステージが異なる。本発明では、被トレースデータが生
成されるステージの次のステージから最終ステージまで
の段数に相当する数のラッチを設けて、異なるタイミン
グで生成される各被トレースデータをパイプクロック信
号PIPECLKに同期して次段のステージにシフトさせ、最
終段のWBステージのラッチに保持させるようにしたの
で、常に同じタイミングで各被トレースデータを取得す
るようにできる。
【0126】さらに、このタイミングは、ストア命令で
あってもロード命令であっても、あるいはデータキャッ
シュにヒットしてもミスヒットしても変わることがな
い。また、従来のように、後の命令による被トレースデ
ータが先に保存されるといった矛盾もなくなる。従っ
て、トレース回路31のタイミング制御回路や、バスサ
イクルのモニタ回路などを付加することなく、容易に被
トレースデータを取得し、記憶させることができる。
【0127】図2及び図5を参照して、本実施形態例に
おけるデータ処理システムの作動について説明する。本
データ処理システムでは、通常はシステム・バス16を
介して周辺装置17及びRAM20との間でデータを授
受し、また、ROM19からのデータを取り込む等の処
理を行う。また、キャッシュヒットからキャッシュミス
時のパイプライン動作では、通常は1ステージサイクル
で実行するため、実質的に1命令1サイクルとなる。
【0128】本データ処理システムでは、パイプクロッ
ク信号PIPECLKに同期して、Inst1(N)、Inst2(R)、Inst3
(W)、Inst4(R)、Inst5(W)の各命令が5段のパイプライ
ン・ステージを順次に通過して1サイクルのステージ処
理を夫々終了する。また、命令キャッシュミスやデータ
キャッシュミスが発生した場合には、パイプライン制御
部37からのパイプマスク信号PIPEMKがロウレベルとな
り、全てのパイプライン・ステージの動作が停止する。
【0129】パイプライン処理が進んでも良いときに
は、パイプマスク信号PIPEMKは非活性化される。パイプ
クロック信号PIPECLKは、パイプマスク信号PIPEMKによ
ってマスクされる間は信号が出力されない。このため、
各命令は、パイプマスク信号PIPEMKがロウレベルのとき
にのみ、パイプクロック信号PIPECLKに同期して次段の
ステージに進む。
【0130】まず、パイプライン処理が開始され、IC
Hitで示すように、IFステージで命令キャッシュ25
にヒットすると、プログラムカウンタ生成部32からの
カウンタ信号で更新されたプログラム・カウンタ34の
PCアドレスが、命令キャッシュ25に出力されると共
に、RFパイプライン・レジスタ73のPCラッチ35
に書き込まれる。これにより、PCアドレスによって命
令キャッシュ25から命令コードが読み出され、RFパ
イプライン・レジスタ73の命令コードラッチ36に書
き込まれる。
【0131】ミスヒットが発生した場合には、フェッチ
アドレスとフェッチサイクルの要求信号が命令キャッシ
ュ25から外部バス制御部48に出力される。外部バス
制御部48は、命令キャッシュミスのときにはプログラ
ム・カウンタ34から命令キャッシュ経由でフェッチア
ドレスを受け取り、ROM19をアクセスする。また、
外部バス制御部48は、データキャッシュミスのときに
は、EXステージで計算してラッチ45に格納されたア
クセスアドレスをデータキャッシュ23経由で受け取
り、ミスヒット信号に応答してアクセスアドレスをシス
テム・バス16を介してRAM20にアクセスする。
【0132】RFステージでは、パイプライン制御部3
7からの信号に従って、読み出すべきレジスタファイル
番号で指示されるレジスタファイル38からレジスタの
内容を出力38a、38b等として読み出す。このレジ
スタファイル番号、及びプログラム・カウンタ34から
のPCアドレスが、EXパイプライン・レジスタ74の
ラッチ40、41、42に夫々ラッチされる。
【0133】EXステージでは、EXパイプライン・レ
ジスタ74のラッチ40、41から読み出した各データ
に基づいて、算術演算部43が演算を行う。このとき、
命令コードがロード/ストア命令の場合には、演算結果
はデータアドレス(アドレス信号)となる。算術演算部
43の出力は、ラッチ45及びラッチ46に夫々供給さ
れてラッチされる。
【0134】DFステージでは、マイクロプロセッサ2
1は、ロード命令又はストア命令の場合には、第2命令
データ(Inst2(R))以降におけるDCHitで示すよう
に、EXステージで計算したデータアドレス(アドレス
信号)によってデータキャッシュ23にアクセスし、ヒ
ットした場合で、ロード命令のときには、データキャッ
シュ23から対応するデータを読み込み、ストア命令の
ときには、WBステージでデータキャッシュ23にデー
タを書き込む。更に、このデータをWBパイプライン・
レジスタ76のラッチ51にラッチする。一方、マイク
ロプロセッサ21は、ミスヒットした場合には、DFス
テージで外部バス制御部48及びシステム・バス16を
介して周辺回路17、またはRAM20にアクセスす
る。
【0135】WBステージでは、ロード命令時、WBパ
イプライン・レジスタ76のラッチ51から読み出され
たリードデータが、レジスタファイル38に書き戻され
る。ラッチ51にラッチされたデータは、常にデータト
レースバス制御部52に供給される。また、ラッチ50
から読み出されたリード/ライト信号R/W、及び、ステ
ータス信号STATUS等がデータトレースバス制御部52に
供給される。
【0136】また、ロードまたはストア命令では、メモ
リリクエスト信号MRQ_EXがアクティブになり、これに伴
ってメモリリクエスト信号MRQ_DFが1クロック遅れて出
力されることにより、最終ステージであるWBステージ
に被トレースデータを出揃った段階でライトイネーブル
信号ENABLEがハイレベルとなり、出力される。
【0137】被トレースデータを記憶させる場合には、
データトレースバス制御部52は、アドレス信号ADDR、
データ信号DATA、リード/ライト信号R/W、及び、ステ
ータス信号STATUSなどの被トレースデータをパイプクロ
ック信号に同期してラッチ49、50、51にラッチ
し、トレース用の出力端子63〜66を通してデータト
レース・バス10にこれらのデータを供給する。
【0138】次に、図2〜図5をもとに、各命令毎の処
理動作について説明する。従来と同じ部分については説
明を省略する。時刻t0〜t4のIF〜WBステージで
は、第1命令Inst1が処理される。第1命令Inst1はロー
ド/ストア命令ではないので、被トレースデータは発生
しない。
【0139】次に、第2命令Inst2(R)の処理について説
明する。ここで、第2命令Inst2(R)は、RAM20のB
01番地からデータを読み出す命令であるとする。時刻
t1のIFステージでは、パイプライン制御部37は、
プログラム・カウンタ34のPCアドレスを命令キャッ
シュ15に入力し、命令キャッシュ15から第2命令In
st2をフェッチし、命令コードラッチ36にラッチさせ
る。
【0140】時刻t2のRFステージでは、パイプライ
ン制御部37は、命令コードラッチ36の内容をみて第
2命令Inst2をデコードし、読み出すべきRAM20の
アドレス信号をラッチ40、41にラッチさせる。ま
た、パイプライン制御部37は、第2命令Inst2のデコ
ード結果に基づきメモリリクエスト信号MRQ_RF、リード
信号R_RF、ステータス信号STATUS_RFを出力し、パイプ
クロックPIPECLKに同期してトレース用ラッチ39にラ
ッチさせる。
【0141】時刻t3のEXステージでは、ALU43
は、ラッチ40、41の内容をもとに演算して、演算結
果であるB01番地をラッチ45にラッチさせる。ま
た、トレース用ラッチ39の出力である信号、即ちメモ
リリクエスト信号MRQ_EX、リード信号R_EX、ステータス
信号STATUS_EXは、パイプクロックPIPECLKに同期してト
レース用ラッチ44にラッチされる。この結果、メモリ
リクエスト信号MRQ_EXはハイレベルになる(図5
(j))。
【0142】時刻t4のDFステージでは、ラッチ45
にラッチされたアクセスアドレスB01番地とリード信
号Rがデータキャッシュ13に入力される。アクセスア
ドレスB01番地がデータキャッシュ23にヒットする
と、データキャッシュ23はデータD01をセレクタ9
1を介してラッチ51に出力する。アクセスアドレスB
01番地とデータD01は次のパイプクロック信号PIPE
CLKに同期してラッチ50、51に夫々ラッチされる。
【0143】また、トレース用ラッチ44の出力である
リード/ライト信号R/W_DFのうち、リード信号R、ステ
ータス信号STATUS_DFは、パイプクロックPIPECLKに同期
してトレース用ラッチ49にラッチされる。一方、メモ
リリクエスト信号MRQ_EXは、トレース用ラッチ44にラ
ッチされ、その出力であるメモリリクエスト信号MRQ_DE
は、ハイレベルになる(図5(k))。このメモリリク
エスト信号MRQ_DFは、パイプマスク信号PIPEMKの反転信
号とともに2入力ANDゲート55に入力され、2入力
ANDゲート55はイネーブル信号ENABLE_DFを出力す
る。この信号ENABLE_DFはクロック信号CLKに同期してト
レース用ラッチ60にラッチされる。
【0144】時刻t5のWBステージでは、パイプライ
ン制御部37は、パイプクロックPIPEKLCに同期して、
ラッチ51の内容をレジスタファイル38の所定のレジ
スタに書き込む。これと同時に、ラッチ50、51は、
アドレス信号ADDRとデータ信号DATAをアドレス信号ADDR
の出力端子63aとデータ信号DATAの出力端子64aに
出力する(図5(m)、(n))。
【0145】また、トレース用ラッチ49の出力である
リード信号R_DF、ステータス信号STATUS_DFは、パイプ
クロックPIPECLKに同期してリード/ライト信号R/Wの出
力端子65aとステータス信号STATUSの出力端子66a
に夫々出力される(図5(o)、(p))。一方、トレ
ース用ラッチ49の出力であるイネーブル信号ENABLE
は、クロック信号CLKに同期して出力され、イネーブル
信号ENABLEの出力端子68aに出力される。この結果、
イネーブル信号ENABLEは時刻t5でハイレベルになる
(図5(l))。
【0146】第2命令Inst2は、従来、データキャッシ
ュ23にヒットすると、外部で被トレースデータをトレ
ースすることができなかったが、トレース専用の出力端
子63a〜68aを設けることで、トレース回路31
は、トレースバス10を介してこれらの被トレースデー
タを取得することができる。また、トレース回路31
は、時刻t5でこれらの被トレースデータをトレースメ
モリ部58のアドレスTA0H番地に記憶する。トレース
メモリ部58に書き込みが終了すると、次のクロック信
号CLKでアドレス信号TAはインクリメントされて1H番
地になり、次の書き込みに備える。
【0147】次に、第3命令Inst3(W)の処理について説
明する。ここで、第3命令Inst3(W)は、RAM20のB
02番地にデータD02を書き込む命令であるとする。
時刻t2〜t5のIF〜DFステージでは、第3命令In
st3は従来と同様に処理される。また、ステータス信号S
TATUS、リード/ライト信号R/W、メモリリクエスト信号
MRQなどは第2命令の処理と同様に処理される。
【0148】時刻t6のWBステージでは、ラッチ5
0、51のアドレスB02番地とデータD02はデータ
キャッシュ13に渡され、データキャッシュ13に書き
込まれる。これと同時に、被トレースデータがトレース
バス10を介してトレース回路31に供給され、トレー
スメモリ部58のアドレスTA1H番地に記憶される(図
5(g))。トレースメモリ部58に書き込みが終了す
ると、次のクロック信号CLKでアドレス信号TAはインク
リメントされて2H番地になり、次の書き込みに備え
る。
【0149】次に、第4命令Inst4(R)の処理について説
明する。ここで、第4命令Inst4(R)は、RAM20のB
03番地からデータD03を読み出す命令であるとす
る。時刻t3〜t5のIF〜EXステージは、第2命令
Inst2と同様に処理される。時刻t6のDFステージで
は、B03番地とリード信号Rがデータキャッシュ13
に入力される。データキャッシュ13は、B03番地に
ミスヒットすると、外部バス制御部48にアクセス情報
(B03番地とリード信号R)を渡し、外部バスからの
読み出しを要求する。
【0150】また、データキャッシュ13は、パイプラ
イン制御部37にパイプライン処理の停止を要求し、パ
イプライン制御部37は、時刻t6〜t10の期間パイ
プマスク信号PIPEMKをハイレベルにする。この結果、パ
イプクロック信号PIPECLKはロウレベルに固定され、パ
イプラインの各ステージは処理を停止する(図5
(c))。パイプライン処理が停止すると、ステータス
信号STATUS、リード/ライト信号R/W、メモリリクエス
ト信号MRQもシフト処理を停止し、各ラッチに待機する
(図5(p),(o),(j)〜(l))。
【0151】時刻t7〜t9で、外部バス制御部48は
第4命令のリードバスサイクルを実行し、データD03
を読み出す。時刻t10で、データキャッシュ13は、
データD03をセレクタ91を通してラッチ51にラッ
チさせるとともに、パイプライン制御部37にパイプラ
イン処理の停止解除を要求する。パイプライン制御部3
7はパイプマスク信号PIPEMKをハイレベルにし(図5
(c))、パイプクロック信号PIPECLKを復活させ、パ
イプラインの各ステージは処理を再開する。
【0152】時刻t11のWBステージでは、ラッチ5
1の内容はレジスタファイル38の所定のレジスタに書
き込まれる。これと同時に、第4命令Inst4のアクセス
アドレスB03番地と読み出されたデータD03とリー
ド信号Rなどの被トレースデータがトレースバス10を
介してトレース回路31に出力され、トレース回路31
は、これらの被トレースデータを取得し、トレースメモ
リ部58のアドレスTA2番地に記憶する(図5
(q))。トレースメモリ部58に書き込みが終了する
と、次のクロック信号CLKでアドレス信号TAはインクリ
メントされて3H番地になり、次の書き込みに備える。
【0153】次に、第5命令Inst5(W)の処理について説
明する。ここで、第5命令Inst5は、RAM20のB0
4番地にデータD04を書き込む命令であるとする。時
刻t4〜t11のIF〜DFステージでは、第3命令In
st3と同様に処理が進む。時刻t12のWBステージで
は、パイプライン制御部37は、ラッチ50、51の内
容(アドレスB04番地とデータD04)をデータキャ
ッシュ13に書き込むとともに、外部バス制御部48の
ライトバッファ48aに書き込む。これにより、第5命
令Inst5のパイプライン処理は終了する。
【0154】また、時刻t12で、第5命令Inst5のア
クセスアドレスB04番地と読み出されたデータD04
とライト信号Wなどの被トレースデータがトレースバス
10を介してトレース回路31に出力され、トレース回
路31は、これらの被トレースデータを取得し、トレー
スメモリ部58のアドレスTA3番地に記憶する(図5
(g))。トレースメモリ部58に書き込みが終了する
と、次のクロック信号CLKでアドレス信号TAはインクリ
メントされて4H番地になり、次の書き込みに備える。
【0155】以上のように、本データ処理システムで
は、被トレースデータ読み出し専用のバスを設け、パイ
プラインの最終ステージであるWBステージまでに、デ
ータトレースに必要な全てのデータを出揃うようにした
ので、トレースに必要なデータをパイプラインのWBス
テージに同期してトレース回路31に出力することがで
きる。従って、データキャッシュ機能を継続しつつ、シ
ステムと同じサイクルでリアルタイム性を損なうことな
く、トレース処理をトレース回路31によって実行する
ことができる。
【0156】また、従来のステータス信号S_STATUSは、
メモリのリード/ライト信号、周辺装置のリード/ライ
ト信号、プログラム・フェッチなどのバス・サイクル信
号で構成されていた。しかし、近年のマイクロプロセッ
サでは、これらのステータス信号S_STATUSをトレースす
るだけでは不十分になってきている。マイクロプロセッ
サのデータ幅は年々増加するとともに、そのデータ構造
は多様化してきている。例えば、CPUのデータ幅を3
2ビットとすると、周辺装置やメモリとの間で授受され
るデータ幅は1バイトワード(8ビット)、1ハーフワ
ード(16ビット)、1ワード(32ビット)、あるい
は1ダブルワード(64ビット)などがある。また、1
バイトワードのデータを4つまとめて授受するとき、4
つのデータの並び順をアドレスに対して昇順にしたり、
降順にして授受することがある。また、1バイトワード
を32ビットバスで授受するとき、有効な1バイトのデ
ータ位置として0〜7、8〜15、16〜23、または
24〜32ビット目の4通りがある。
【0157】本実施の形態では、ステータス信号STATUS
として、従来のステータス信号S_STATUSに加え、パイプ
ライン制御部37から出力されるデータのサイズ、並び
順、有効なデータ位置などをトレースできるようにし
た。しかも、このステータス信号STATUSは、ロード/ス
トア命令でデータが最終ステージであるWBステージに
到達するタイミングに合わせて到達するようにしたの
で、一つの命令に起因するデータアドレス信号ADDRとデ
ータ信号DATAとリード/ライト信号R/Wとステータス信
号STATUSなどの被トレースデータを一斉にCPU21か
らトレース回路31へ供給することができる。このた
め、トレース回路31は、トレースするタイミングを制
御する回路を簡略化でき、容易に被トレースデータをト
レースメモリ部58に記憶させることができる。
【0158】また、ロード/ストア命令をデコードした
ときパイプライン制御部37から出力されるメモリリク
エスト信号MRQ_RFをパイプクロック信号PIPECLKに同期
してシフトさせ、イネーブル信号ENABLEとして前述の被
トレースデータに同期してトレース回路31に出力する
ようにした。このため、トレース回路31は、イネーブ
ル信号ENABLEをトレースメモリ部58に書き込む制御信
号MWE(-)とするとともに、書き込みアドレスの加算回路
の制御信号として利用することができ、書き込み制御回
路を簡略化でき、しかも、WBステージに保持された被
トレースデータをトレースメモリ部58に何回も書き込
み続ける不都合をなくすことができる。
【0159】以上、本発明をその好適な実施形態例に基
づいて説明したが、本発明のマイクロプロセッサ及びデ
ータ処理システムは、上記実施形態例の構成にのみ限定
されるものではなく、上記実施形態例の構成から種々の
修正及び変更を施したマイクロプロセッサ及びデータ処
理システムも、本発明の範囲に含まれる。本実施の形態
では5段のパイプラインを例に説明したが、これに限定
されるものではない。また、本願発明は、パイプライン
処理の各ステージの名称や機能が異なるマイクロプロセ
ッサにも適用できる。また、被トレースデータとして、
フェッチした命令のアドレスを付加しても良い。
【0160】
【発明の効果】以上説明したように、本発明のマイクロ
プロセッサ及びデータ処理システムによると、キャッシ
ュメモリ機能を有しながらも、リアルタイム性を損なう
ことなくトレースすることができる。更に、コンピュー
タシステムの動作に影響を与えることなくトレース処理
を実行できる。
【図面の簡単な説明】
【図1】本発明の一実施形態例におけるマイクロプロセ
ッサを有するデータ処理システムを示すブロック図であ
る。
【図2】本実施形態例におけるデータ処理システムの構
成を詳細に示すブロック図である。
【図3】本実施形態例におけるデータトレースバス制御
部を含むデータ供給手段の内部構成の一例を示す回路図
である。
【図4】本実施形態例におけるトレース回路の要部を示
す図である。
【図5】本実施形態例のデータ処理システムにおける作
動タイミングを示すタイミングチャートである。
【図6】本実施形態例における5段パイプラインの処理
状況を模式的に示す図であり、(a)はライトバスサイ
クルを伴うストア命令の場合、(b)はリードバスサイ
クルを伴うロード命令の場合を夫々示す。
【図7】従来のマイクロプロセッサ及びトレース回路等
を含むデータ処理システムの一例を示すブロック図であ
る。
【図8】従来のデータ処理システムの内部構成を詳細に
示すブロック図である。
【図9】図8に示す従来のデータ処理システムにおける
作動タイミングを示すタイミングチャートである。
【図10】5段パイプラインの処理状況を模式的に示す
図であり、(a)はストア命令の場合、(b)はロード
命令の場合を夫々示す。
【符号の説明】
10:データトレース・バス 11、21:マイクロプロセッサ 12、22:パイプライン処理ブロック 13、23:データキャッシュ 14:外部バス接続のトレース回路 16:システム・バス 17:周辺装置 18、24:データ処理システム 19:ROM 20:RAM(メインメモリ) 15、25:命令キャッシュ 31:トレース回路 32:プログラムカウンタ生成部 34:プログラム・カウンタ 35:ラッチ 36:命令コードラッチ 37:パイプライン制御部 38:レジスタファイル 39、44、49:トレース用ラッチ 40、41、42、45、46、50、51:ラッチ 43:算術演算部 52:データトレースバス制御部 55:2入力ANDゲート 48:外部バス制御部 63〜66:出力端子 63a〜66a:出力端子 69〜72:入力端子 73:RFパイプライン・レジスタ 74:EXパイプライン・レジスタ 75:DFパイプライン・レジスタ 76:WBパイプライン・レジスタ
───────────────────────────────────────────────────── フロントページの続き (56)参考文献 特開 平10−11290(JP,A) 特開 平7−271705(JP,A) 特開 平8−171505(JP,A) 特開 平3−263136(JP,A) 特開 平2−51745(JP,A) 特開 平6−83705(JP,A) 特開 昭63−83841(JP,A) 特開 平3−256141(JP,A) 特開 平8−95945(JP,A) 特開 平8−335177(JP,A) 特開 平6−161818(JP,A) 特開 平3−137736(JP,A) 特開 平10−240570(JP,A) 特開 平4−296944(JP,A) 欧州特許出願公開969370(EP,A 2) (58)調査した分野(Int.Cl.7,DB名) G06F 9/38 G06F 11/28 - 11/36 G06F 12/08

Claims (13)

    (57)【特許請求の範囲】
  1. 【請求項1】 命令キャッシュメモリとデータキャッシ
    ュメモリとを有し、 システム・バスを介して外部装置との間でデータの授受
    を行い、 命令を取り込むIFステージと、 命令をデコードするRFステージと、 デコードされた命令を実行するEXステージと、 前記外部装置にアクセスしてデータの読出しを行うDF
    ステージと、 データの書込みを行うWBステージとを備えたマイクロ
    プロセッサにおいて、前記DFステージに設けられ、前
    記EXステージで出力されたアクセスアドレスを保持す
    る第1ラッチと、 前記DFステージに設けられ、データ書込み時に前記E
    Xステージで出力されたデータを保持する第2ラッチ
    と、 前記第1ラッチから出力されたアクセスアドレスが入力
    されるデータキャッシュメモリと、 前記WBステージに設けられ、前記第1ラッチから出力
    されたアクセスアドレスを保持する第3ラッチと、 前記WBステージに設けられ、ストア命令時には前記第
    2ラッチから出力されたデータを、ロード命令時には前
    記データキャッシュメモリより出力されたデータを、選
    択手段で選択して保持する第4ラッチと、 前記第3ラッチ及び第4ラッチから出力されたアクセス
    アドレス及びデータを、システム・バスとは独立したデ
    ータトレース・バスに出力するデータトレースバス制御
    手段と、 前記データトレース・バスを介してトレースすべき被ト
    レースデータを出力する出力端子とを備え、 アクセスアドレスとデータとが同期して前記データトレ
    ース・バスに出力されることを特徴とするマイクロプロ
    セッサ。
  2. 【請求項2】 前記EXステージから前記WBステージ
    までの段数に相当する数のラッチから成るステータスラ
    ッチを更に備えることを特徴とする請求項1に記載のマ
    イクロプロセッサ。
  3. 【請求項3】 前記データトレースバス制御手段は、前
    記被トレースデータの出力の有効期間を示すイネーブル
    信号生成手段を備えることを特徴とする請求項1に記載
    のマイクロプロセッサ。
  4. 【請求項4】 前記RFステージでは、フェッチした信
    号がロード命令又はストア命令であることが検出される
    とメモリリクエスト信号が出力され、 前記ロード命令又は前記ストア命令が前記WBステージ
    に到達したときに、前記メモリリクエスト信号を保持し
    てイネーブル信号を出力するイネーブルラッチを更に備
    えることを特徴とする請求項1乃至3の内の何れか1項
    に記載のマイクロプロセッサ。
  5. 【請求項5】 前記イネーブルラッチは、前記メモリリ
    クエスト信号とパイプライン処理と停止させるパイプマ
    スク信号との論理積した信号を保持することによって、
    パイプライン処理を停止中はイネーブル信号を出力しな
    いように構成されることを特徴とする請求項4に記載の
    マイクロプロセッサ。
  6. 【請求項6】 前記データトレース・バスには、被トレ
    ースデータをトレースするトレース回路が接続されるこ
    とを特徴とする請求項1に記載のマイクロプロセッサ。
  7. 【請求項7】 命令キャッシュメモリとデータキャッシ
    ュメモリとを有し、システム・バスを介して外部装置と
    の間でデータの授受を行い、授受するアドレスデータと
    データデータをパイプライン方式で処理するマイクロプ
    ロセッサを備えたデータ処理システムにおいて、 複数ステージの夫々に設けられ、前記外部装置又は命令
    キャッシュメモリにアクセスされるアドレスデータを保
    持するアドレスラッチと、 複数ステージの夫々に設けられ、前記外部装置又はデー
    タキャッシュメモリとの間で授受されるデータデータを
    保持するデータラッチと、 複数ステージの夫々に設けられ、前記アドレスデータ又
    は前記データデータのステータス情報を保持するステー
    タスラッチと、 システム・バスとは独立して設けられたデータトレース
    ・バスと、 前記アドレスデータと前記データデータと前記ステータ
    ス情報とから成る被トレースデータをパイプラインクロ
    ックに同期してパイプラインの最終ステージまで転送す
    るデータ供給手段とを備え、 最終ステージのアドレスラッチと最終ステージのデータ
    ラッチと最終ステージのステータスラッチにラッチされ
    た被トレースデータであって、同一の命令により発生し
    た被トレースデータを命令の発生順に前記データトレー
    ス・バスを介して前記出力端子より出力することを特徴
    とするデータ処理システム。
  8. 【請求項8】 前記データ供給手段は、前記最終ステー
    ジのアドレスラッチと最終ステージのデータラッチから
    の前記被トレースデータを前記出力端子に供給するデー
    タトレースバス制御部を更に備えることを特徴とする請
    求項7に記載のデータ処理システム。
  9. 【請求項9】 前記出力端子に接続され、前記出力端子
    から出力された被トレースデータを記憶するトレース回
    路を備えることを特徴とする請求項7又は8に記載のデ
    ータ処理システム。
  10. 【請求項10】 前記トレース回路は、被トレースデー
    タを記憶するトレースメモリ部と、 被トレースデータを記憶するアドレスを算出するアドレ
    ス加算回路とを備えることを特徴とする請求項9に記載
    のデータ処理システム。
  11. 【請求項11】 前記アドレス加算回路は、パイプライ
    ンの処理が停止している期間は前記トレースメモリ部の
    同じアドレス信号を出力する手段を備えることを特徴と
    する請求項10に記載のデータ処理システム。
  12. 【請求項12】 前記トレース回路は、所定の命令が最
    終段のパイプラインステージに到達した時点で前記トレ
    ースメモリ部に記憶させる手段を備えることを特徴とす
    る請求項9に記載のデータ処理システム。
  13. 【請求項13】 前記トレース回路は、イネーブル信号
    が有効なときにトレースメモリ部の書込みを許可する手
    段を備えることを特徴とする請求項9に記載のデータ処
    理システム。
JP18891598A 1998-07-03 1998-07-03 マイクロプロセッサ及びデータ処理システム Expired - Fee Related JP3214613B2 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP18891598A JP3214613B2 (ja) 1998-07-03 1998-07-03 マイクロプロセッサ及びデータ処理システム
EP99112981A EP0969370A3 (en) 1998-07-03 1999-07-05 Computer system having a cache memory and a tracing function
US09/348,042 US6453410B1 (en) 1998-07-03 1999-07-06 Computer system having a cache memory and a tracing function

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP18891598A JP3214613B2 (ja) 1998-07-03 1998-07-03 マイクロプロセッサ及びデータ処理システム

Publications (2)

Publication Number Publication Date
JP2000020345A JP2000020345A (ja) 2000-01-21
JP3214613B2 true JP3214613B2 (ja) 2001-10-02

Family

ID=16232119

Family Applications (1)

Application Number Title Priority Date Filing Date
JP18891598A Expired - Fee Related JP3214613B2 (ja) 1998-07-03 1998-07-03 マイクロプロセッサ及びデータ処理システム

Country Status (3)

Country Link
US (1) US6453410B1 (ja)
EP (1) EP0969370A3 (ja)
JP (1) JP3214613B2 (ja)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2362729B (en) * 1999-12-23 2004-02-11 St Microelectronics Sa Memory access debug facility
US7149926B2 (en) * 2003-05-22 2006-12-12 Infineon Technologies Ag Configurable real-time trace port for embedded processors
JP4608276B2 (ja) 2004-10-04 2011-01-12 ルネサスエレクトロニクス株式会社 トレース制御回路、マイクロプロセッサ及びトレース制御方法
US8760457B2 (en) 2007-07-24 2014-06-24 Qualcomm Incorporated Data access tool for programmable graphics hardware
JP5637145B2 (ja) 2009-11-26 2014-12-10 日本電気株式会社 バスモニタ回路及びバスモニタ方法

Family Cites Families (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4674089A (en) * 1985-04-16 1987-06-16 Intel Corporation In-circuit emulator
JPH0731615B2 (ja) * 1986-04-18 1995-04-10 日本電気株式会社 情報処理装置
JPS6383841A (ja) 1986-09-29 1988-04-14 Hitachi Ltd プログラムテスト可能な計算機中央処理装置
JPH0251745A (ja) 1988-08-15 1990-02-21 Fujitsu Ltd ヒストリデータ制御方式
JPH03137736A (ja) 1989-10-24 1991-06-12 Fujitsu Ltd マイクロプロセッサ動作トレース方式
JPH03256141A (ja) 1990-03-07 1991-11-14 Fujitsu Ltd 実行確認方式
JPH03263136A (ja) 1990-03-13 1991-11-22 Nec Corp パイプラインのトレース方式
JPH04296944A (ja) 1991-03-04 1992-10-21 Mitsubishi Electric Corp マイクロプロセッサ
JPH0683705A (ja) 1992-09-03 1994-03-25 Nec Ic Microcomput Syst Ltd マイクロコンピュータlsi
JPH06161818A (ja) 1992-10-14 1994-06-10 Nec Corp 一次キャッシュメモリ内蔵マイクロプロセッサの命令トレース制御方式
JPH06161822A (ja) * 1992-11-20 1994-06-10 Mitsubishi Electric Corp マイクロプロセッサ
US5564028A (en) * 1994-01-11 1996-10-08 Texas Instruments Incorporated Pipelined data processing including instruction trace
JPH07271705A (ja) 1994-02-09 1995-10-20 Hitachi Ltd データプロセッサ及びこれを用いたトレース回路
JPH08171505A (ja) 1994-12-16 1996-07-02 Fujitsu Ltd 半導体装置
JPH08335177A (ja) 1995-06-07 1996-12-17 Oki Electric Ind Co Ltd プロセッサ動作観察方法及び装置
JP3443720B2 (ja) * 1995-12-12 2003-09-08 株式会社日立製作所 エミュレータ
JP2872117B2 (ja) 1996-06-27 1999-03-17 日本電気アイシーマイコンシステム株式会社 マイクロプロセッサ
US5751735A (en) * 1996-11-14 1998-05-12 Hewlett-Packard Company Integrated debug trigger method and apparatus for an integrated circuit
JP3349911B2 (ja) 1997-02-28 2002-11-25 エヌイーシーマイクロシステム株式会社 マイクロプロセッサ及びその開発支援装置
US5933626A (en) * 1997-06-12 1999-08-03 Advanced Micro Devices, Inc. Apparatus and method for tracing microprocessor instructions

Also Published As

Publication number Publication date
JP2000020345A (ja) 2000-01-21
EP0969370A3 (en) 2004-08-18
US6453410B1 (en) 2002-09-17
EP0969370A2 (en) 2000-01-05

Similar Documents

Publication Publication Date Title
US6401192B1 (en) Apparatus for software initiated prefetch and method therefor
JP3830651B2 (ja) ループとストライドの一方または両方の予測を行うロードターゲットバッファを具現するマイクロプロセッサ回路、システム、および方法
US4648034A (en) Busy signal interface between master and slave processors in a computer system
JP4190114B2 (ja) マイクロコンピュータ
US5420991A (en) Apparatus and method for maintaining processing consistency in a computer system having multiple processors
US5515518A (en) Two-level branch prediction cache
US6021261A (en) Method and system for testing a multiprocessor data processing system utilizing a plurality of event tracers
US5652900A (en) Data processor having 2n bits width data bus for context switching function
JP2003085000A (ja) トレース情報生成装置およびその方法
JP3553946B2 (ja) データ処理命令の実行
EP2263149A1 (en) System and method of data forwarding within an execution unit
KR100386638B1 (ko) 외부메모리로의액세스요청을파이프라이닝하는마이크로프로세서
KR100351527B1 (ko) 코드브레이크포인트디코더
KR100303712B1 (ko) 파이프라인기계에서의어드레스파이프라인을위한방법및장치
US5924120A (en) Method and apparatus for maximizing utilization of an internal processor bus in the context of external transactions running at speeds fractionally greater than internal transaction times
JP3304444B2 (ja) ベクトル処理装置
JP2001290702A (ja) 記憶装置
JP3214613B2 (ja) マイクロプロセッサ及びデータ処理システム
EP0378816B1 (en) Production line method and apparatus for instruction execution
JP2000231550A (ja) マイクロプロセッサ
JP3145545B2 (ja) メモリアクセス装置
JP2004318877A (ja) 知的な待ち方法
KR100367139B1 (ko) 캐시의내용이무효인경우캐시가판독되는것을방지하는파이프라인형마이크로프로세서
JP2872117B2 (ja) マイクロプロセッサ
US5717891A (en) Digital signal processor with caching of instructions that produce a memory conflict

Legal Events

Date Code Title Description
FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20070727

Year of fee payment: 6

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20080727

Year of fee payment: 7

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20090727

Year of fee payment: 8

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20100727

Year of fee payment: 9

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20100727

Year of fee payment: 9

S533 Written request for registration of change of name

Free format text: JAPANESE INTERMEDIATE CODE: R313533

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20100727

Year of fee payment: 9

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110727

Year of fee payment: 10

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110727

Year of fee payment: 10

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120727

Year of fee payment: 11

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120727

Year of fee payment: 11

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130727

Year of fee payment: 12

LAPS Cancellation because of no payment of annual fees