JPH03185530A - データ処理装置 - Google Patents

データ処理装置

Info

Publication number
JPH03185530A
JPH03185530A JP1326292A JP32629289A JPH03185530A JP H03185530 A JPH03185530 A JP H03185530A JP 1326292 A JP1326292 A JP 1326292A JP 32629289 A JP32629289 A JP 32629289A JP H03185530 A JPH03185530 A JP H03185530A
Authority
JP
Japan
Prior art keywords
instruction
program counter
counter value
address
data
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP1326292A
Other languages
English (en)
Inventor
Toyohiko Yoshida
豊彦 吉田
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.)
Mitsubishi Electric Corp
Original Assignee
Mitsubishi Electric Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Mitsubishi Electric Corp filed Critical Mitsubishi Electric Corp
Priority to JP1326292A priority Critical patent/JPH03185530A/ja
Publication of JPH03185530A publication Critical patent/JPH03185530A/ja
Priority to US08/432,316 priority patent/US5560036A/en
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/22Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
    • G06F11/26Functional testing
    • G06F11/261Functional testing by simulating additional hardware, e.g. fault simulation
    • 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
    • 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/3648Software debugging using additional hardware
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/25Using a specific main memory architecture
    • G06F2212/251Local memory within processor subsystem
    • G06F2212/2515Local memory within processor subsystem being configurable for different purposes, e.g. as cache or non-cache memory

Abstract

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

Description

【発明の詳細な説明】 [産業上の利用分野] 本発明はデータ処理装置に関し、更に詳述すれば、シス
テムのデバッグを容易に行い得るように、実行した命令
のPC値を蓄えるトレースメモリあるいはブレイクポイ
ントレジスタなどのインサーキット・エミュレータ機能
を備えたデータ処理装置に関する。
【従来の技術] データ処理システムのデバッグのためには、システムを
動作させるソフトウェアに対するハードウェアの動作を
正確に観察する必要がある。このため、従来インサーキ
ット・エミュレーションと称される技術が用いられてい
る。
インサーキット・エミュレーションはシステムのデバッ
グに対して有効な技術ではあるが、この技術はデータ処
理装置が操作する各種のデータを観測してその動作を解
析するものであるため、システムの動作速度が高速にな
るに従ってインサーキット・工ξユレーシッンのための
サポート回路もより高速動作可能にする必要があり、実
現が困難になりつつある。
また、パイプライン処理を採用しているデータ処理装置
では、ジャンプ命令を実行したような場合には、パイプ
ラインヘフェフチされた命令がすべて実行されるとは限
らない等、データ処理装置の動作解析がますます困難に
なりつつある。
これらの問題を解決するため、データ処理装置のインサ
ーキット・エミュレーションのためのすボート回路を1
つの集積回路内に実現したデータ処理装置が提案されて
いる。
このデータ処理装置は、マイクロプロセッサシステムの
デバッグのためのインサーキット・エミュレーション回
路をマイクロプロセッサと同一の集積回路内に4J積す
ることにより、マイクロプロセッサの動作解析に必要な
情報を集積回路外部で利用可能化するものである。その
詳細な内容は、例えば特開昭(it−241841号公
報に開示されている。
また、データ処理装置の高速化に伴ってメモリの動作速
度の高速化も要求されており、メモリシステムに関する
コストが増大するなどの問題がある。この問題を解決す
るため、キャッシュメモリとして知られている技術が従
来用いられている。
このキャッシュメモリをマイクロプロセッサと同一の集
積回路内に実現したデータ処理′22置もたとえば特開
昭63−193230号公報に詳細に開示されている。
[発明が解決しようとする課題] インサーキット・エミュレーションのための回路をデー
タ処理装置と同一の集積回路に実現してデバッグに必要
な情報を集積回路外部に取出す場合、集積回路外部で情
報を高速で蓄え得るメモリが必要となる。データ処理装
置の動作速度に比べて外部のメモリの速度が遅い場合に
は、集積回路外部へ出力されたデバッグ情報の蓄積が困
難となる。また、特開昭61−241841号公報に開
示された従来例では、デバッグ情報を集積回路外部へ取
出すためのインサーキット・エミユレーション用出力回
路とビンとを有している。
データ処理装置を1つの集積回路上に実現したマイクロ
プロセッサでは、データキャッシュとして高速のバッフ
ァメモリを内蔵することが提案されている。ところが集
積回路内で大きな面積を占めるバッファメモリをキャッ
シュとしてのみ使用するのでは集積回路の利用効率が低
い。アプリケーションによっては内蔵キャッシュを利用
しても効果が低い場合あるいは内蔵キャッシュを利用す
ることが不可能な場合もある。特に、インサーキット・
工ξニレージョン機能を利用して多くのトレース情報を
集積回路外部に取出すためには、内蔵キャッシュを動作
させない方が望ましい。このため、内蔵バッファメモリ
がキャッシュメモリにのみ使用可能な単機能である場合
は、内蔵バッファメモリの容量、換言すれば集積回路内
で占有する面積を有効利用できない場合がある。
[課題を解決するための手段] 本発明は上述の課題を解決するためになされたものであ
り、第1の発明のデータ処理装置は、命令をデコードす
る命令デコード部と、命令を実行する演算部(命令実行
部)と、命令デコード部に接続していて命令デコード部
の出力をもとに演算部を制御するマイクロプログラムR
OM部(制御部)と、モード切換えによりデータキャッ
シュまたはデバッグ情報を蓄えるためのトレースメモリ
として動作するデータバッファ(記憶装置)と、データ
バッファのモードを指定する情報を保持するレジスタと
を備えている。
更にこの第1の発明では、プログラムの実行シーケンス
を乱してジャンプを発生する命令とジャンプクーゲット
の命令のプログラムカウンタ値とを選択的にトレースメ
モリに蓄えるように制御するJビットを備える。
また、第2の発明は、データバッファがトレースメモリ
として動作することにより蓄えたトレース情報であるプ
ログラムカウンタ値の数をカウントするトレースカウン
トレジスタと、データバッファに蓄えられているデバッ
グ情報がオーバーフローした場合には例外発生(デバソ
グトラソプ)する例外処理機構を備えている。
更に、第3の発明は、データバッファにトレースメモリ
としての動作を開始させる命令アドレスと、終了させる
命令アドレスとを記憶するトリガポイントレジスタを備
えている。
[作用] 本発明のデータ処理装置の第1の発明では、メモリから
フェッチした命令を命令デコード部でデコードし、その
デコード結果を入力とするマイクロ部の制御に従い演算
部で命令を実行する。
デバッグ制御レジスタのTGビットとTピントとが共に
0”である場合は、データバッファはバッファメモリ制
御レジスタのD?Iフィールドの値に従ってデータキャ
ッシュとして動作して命令の実行に必要なオペランドを
データバッファにキャッシングする。また、PS−のD
Bビットが“l”でデバッグ制御レジスタのTGビット
とTビットとが共に“l”である場合は、データバッフ
ァはトレースメモリとして動作してPC計算部で計算さ
れて実行された命令のプログラムカウンタ値をトレース
情報として蓄える。
更に、この第1の発明では、データバッファがトレース
メモリとして動作する際に、デバッグ制御レジスタレジ
スフのJビットが“l”にセットされている場合にはジ
ャンプの実行、N41割込みの発生等でプログラムの実
行シーケンスを乱す命令とそのジャンプ先の命令のプロ
グラムカウンタ値のみとを選択的にトレースメモリに蓄
える。
また、第2の発明では、データバッファがトレースメモ
リとして動作する際に、蓄えたプログラムカウンタ値の
数がトレースカウンタでカウントされ、トレースメモリ
がオーバーフローした場合にはデバッグトラップ力に起
動される。
更に第3の発明では、データバッファがトレースメモリ
として動作する際には、トリガポイントレジスタに蓄え
られたプログラムカウンタ値と一致したプログラムカウ
ンタ値の命令からトレース動作が開始され、またトリガ
ポイントレジスタに蓄えられたプログラムカウンタ値と
一致したプログラムカウンタ値の命令でトレース動作が
終了する。
【発明の実施例j 以下、本発明をその実施例を示す図面を参照して詳述す
る。
(l)「本発明のデータ処理装置を用いたシステムの構
成」 第6図に本発明のデータ処理装置を用いたシステムの構
成例を示す。
この構成例では、本発明のデータ処理装置100゜命令
キャンシュ106.  データキャッシュ107及び1
08、  主メモリ109がアドレスバス101.  
データバス102.  命令バス103.  メモリア
ドレスバス104゜メモリデータバス105で結合され
ている。
アドレスバス101は本発明のデータ処理袋H100か
ら出力されるアドレスを命令キャッシュ10Gとデータ
キャッシュ107.108とに人力する。命令バス10
3は命令キャッシュ106から出力される命令コードを
本発明のデータ処理装置flooに転送する。
データバス102は本発明のデータ処理装置100から
出力されるデータをデータキャッシュ107. JOB
に転送したり、データキャンシュ107.108から出
力されるデータを本発明のデータ処理袋!100に転送
したりする。メモリアドレスバス104は命令キャッシ
ュ106またはデータキャッシュ107.108から出
力されるアドレスを主メモリ109に転送する。メモリ
データバス105は主メモリ109と命令キャッシュ1
06またはデータキャッシュ107.108間での命令
またはデータを転送する。
命令キャッシュ106及びデータキャッシュI07゜1
08がξスした場合はそれぞれのキャッシュ106また
は107がメモリアドレスバス104とメモリデータバ
ス105とのバス権を調停して主メモリ109をアクセ
スする。
データキャッシュ107.108は本発明のデータ処理
装置10Gの側では64ビツトのバスに結合するために
2つのチンプが協調して動作する。各データの64ビツ
トそれぞれの内の上位32ビツトのデータをデータキャ
ッシュ107が、下位32ビツトのデータをデータキャ
ッシュ10Bが分担して受持つ。
以下、本発明のデータ処理装置100の命令体系及び処
理機構について最初に記述し、次に例外処理の方法及び
実行された命令のpcitiのトレース動作等のデバッ
グサポート機構について説明する。
(2)「本発明のデータ処理装置の命令フォーマント」
本発明のデータ処理装置の命令は16ビツト単位で可変
長となっており、奇数バイト長の命令はない。
本発明のデータ処理装置では高頻度に使用される命令を
短いフォーマットとするため、特に工夫された命令フォ
ーマット体系を有する0例えば、2オペランド命令に対
して、基本的に“4バイト+拡張部”の構成を有して総
でのアドレッシングモードが利用可能な一般形フオーマ
ノドと、高頻度の命令及びアドレッシングモードのみを
使用可能な短縮形フォーマットとの2つのフォーマット
を有する。
第9図から第13図に示す本発明のデータ処理装置の命
令フォーマント中に現われる記号の意味は以下の通りで
ある。
:オペレーションコードが入る部分 Ea:8ミニ8ビツト形のアドレッシングモードでオペ
ランドが指定される部分 Sh:6ビントの短縮形のアドレッシングモードでオペ
ランドが指定される部分 Rnニレジスタフアイル上のオペランドがレジスタ番号
で指定される部分 フォーマントは、第9図に示す如く、 側で且つ高いアドレスになっている。
アドレスNとアドレスN+1との2バイトを見ないと命
令フォーマットが判別できないようになっているが、こ
れは、命令が必ず16ビツト(ハーフワード)単位でフ
ェッチ及びデコードされることを前提としているからで
ある。
本発明のデータ処理装置の命令ではいずれのフォーマ、
トの場合も、各オペランドのEaまたはshの拡張部は
必ずその[Eaまたはshの基本部を含む16ビツト 
(ハーフワード)の直後に置かれる。これは、命令によ
り暗黙に指定される即値データ及び命令の拡張部に優先
する。従って、4バイト以上の命令では、Haの拡張部
により命令のオペレーションコート′が分断される場合
がある。
右側がLSB また、後述する如く、多段間接モードによりEaの拡張
部に更に拡張部が付加される場合にも、次の命令オペコ
ードよりもそちらの方が優先される。
例えば、第1ハーフワードにEalを含み、第2ハーフ
ワードにEa2を含み、第3ハーフワードまである6バ
イト命令の場合を考える。Ealに多段間接モードを使
用したために通常の拡張部の他に多段間接モードの拡張
部も付加されるものとする。
この際、実際の命令ビットパターンは、命令の第1ハー
フワード(Ea 1の基本部を含む)、Ealの拡張部
、Eatの多段間接モード拡張部、命令の第2ハーフワ
ード(Ea2の基本部を含む)、Ea2の拡張部、命令
の第3ハーフワードの順となる。
(2,1)  r短縮形2オペランド命令」第10図は
2オペランド命令の短縮形フォーマットを示す模式図で
ある。
このフォーマントには、ソースオペランド側がメモリと
なるL−formatとデスティネーションオペランド
側がメモリとなる”−for−atとがある。
L−forma tでは、shはソースオペランドの指
定フィールド′、I?nはデスティネーシッンオペラン
ドのレジスタの指定フィールド、RRはshのオペラン
ドサイズの指定をそれぞれ表す。
レジスタ上に置かれたデスティネーシッンオベランドの
サイズは32ビツトに固定されている。レジスタ側とメ
モリ側とのサイズが異なり、ソース側のサイズが小さい
場合に符号拡張が行なわれる。
S−formatではshはデスティネーシジンオベラ
ンドの指定フィールド、Rnはソースオペランドのレジ
スタ指定フィールド、RRはshのオペランドサイズの
指定をそれぞれ表す。
レジスタ上に置かれたソースオペランドのサイズは32
ビフトに固定されている。レジスタ側とメモリ側とのサ
イズが異なり、ソース側のサイズが大きい場合に、溢れ
た部分の切捨てとオーバーフローチエツクとが行われる
(2,2)  r−船形1オペランド命令」第11図は
1オペランド命令の一般形フオーマフ) (Gl−fo
+vaL)を示す模式図である。
開はオペランドサイズの指定フィールドである。
一部のGl−format命令では、Eaの拡張部以外
にも拡張部を有する。また、間を使用しない場合もある
(2,3)  r−船形2オペランド命令」第12図は
2オペランド命令の一般形フオーマントを示す模式図で
ある。
このフォーマントに含まれるのは、8ビツトで指定され
る一般形アドレッシングモードのオペランドが最大2つ
存在する命令である。オペランドの総数自体は3つ以上
になる場合がある。
EaMはデスティネーションオペランドの指定フィール
ド、問はデスティネーションオペランドサイズの指定フ
ィールド、EaRはソースオペランド指定フィールド、
RRはソースオペランドサイズの指定フィールドをそれ
ぞれ示している。
一部のG−format命令では、EaM及びEaRの
拡張部以外にも拡張部を有する。
第13図はショートブランチ命令のフォーマットを示す
模式図である。
ccccは分岐条件指定フィールド、disp:8はジ
ャンプ先との変位指定フィールドをそれぞれ示している
本発明のデータ処理装置では8ビツトで変位を指定する
場合には、ビットパターンでの指定値を2倍して変位値
とする。
(2,4)  rアドレッシングモード」本発明のデー
タ処理装置の命令のアドレッシングモード指定方法には
、レジスタを含めて6ビツトで指定する短縮形と、8ビ
ツトで指定する一般形とがある。
未定義のアドレッシングモードを指定した場合、あるい
は意味的に考えて明らかに不合理なアドレッシングモー
ドの組合わせが指定された場合には、未定義命令を実行
した場合と同しく予約命令例外が発生され、例外処理が
起動される。
これに工亥当するのは、デスティネーションが即値モー
ドである場合、アドレス計算を伴うべきアドレシングモ
ード指定フィールドで即値モードが使用された場合等で
ある。
第14図から第24図に示すフォーマントの模式図中で
使用されている記号の意味は以゛下の通りである。
Rn:  レジスタ指定 (Sh):  6ビツトの短縮形アドレッシングモード
での指定方法 (Ea):  8ビツトの一般形アドレッシングモード
での指定方法 フォーマットを示す模式図中で点線で囲まれた部分は拡
張部を示す。
(2,4,1)  rW本アドレッシングモード」本発
明のデータ処理装置の命令では種々のアドレッシングモ
ードをサポートする。その内の本発明のデータ処理装置
でサポートする基本アドレッシングモードには、レジス
タ直接モード、レジスタ間接モード、レジスタ相対間接
モード、即値モード、絶対モード、PC相対間接モード
、スタックポンプモード及びスタックポンプモードがあ
る。
レジスタ直接モードは、レジスタの内容をそのままオペ
ランドとする。フォーマントの模式図を第14図に示す
。図中、Rnは汎用レジスタまたはFPUレジスタの番
号を示す。
レジスタ間接モードは、汎用レジスタの内容をアドレス
とするメモリの内容をオペランドとする。
フォーマントの模式図を第15図に示す。図中、Rnは
汎用レジスタの番号を示す。
レジスタ相対間接モードは、ディスプレースメント値が
16ビツトであるか32ピントであるかにより2種類に
分かれる。それぞれ、汎用レジスタの内容に16ビツト
または32ビツトのディスプレースメント値を加えた値
をアドレスとするメモリの内容をオペランドとする。フ
ォーマットの模式図を第16図に示す。図中、Rnは汎
用レジスタの番号を示す。disp:16とdisp:
32とは、それぞれ、16ビノトのディスプレースメン
ト値、32ビツトのディスプレースメント値を示す。デ
ィスプレースメント値は符号付きとして扱われる。
即値モードは、命令コード中で指定されるピッドパクン
をそのまま2進数と見なしてオペランドとする。フォー
マットの模式図を第17図に示す。
図中、ims  dataは即値を示し、そのサイズは
オペランドサイズとして命令中で指定される。
絶対モードは、アドレス値が16ビツトで示されるか3
2ビツトで示されるかにより2種類に分かれる。それぞ
れ命令コード中で指定される16ビソトまたは32ビツ
トのビットパタンをアドレスとしたメモリの内容をオペ
ランドとする。フォーマントの模式図を第18図に示す
。図中、abs :16とabs:32とはそれぞれ1
6ビツト、32ビツトのアドレス値を示す。abs:1
6でアドレスが示される場合は指定されたアドレス値を
32ビツトに符号拡張する。
PC相対間接モードは、ディスプレースメント値が16
ビノトか32ビツトかにより2mgに分かれる。
それぞれプログラムカウンタの内容に16ピントまたは
32ビツトのディスプレースメント値を加えた値をアド
レスとするメモリの内容をオペランドとする。フォーマ
ントの模式図を第19図に示す。図中、disp : 
16とdisp : 32とはそれぞれ16ビツトのデ
ィスプレースメント値、32ビ、トのディスプレースメ
ント値を示す、ディスプレースメント値は符号付きとし
て扱われる。PC相対間接モードにおいて参照されるプ
ログラムカウンタの値は、そのオペランドを含む命令の
先頭アドレスである。多段間接アトレンジングモードに
おいてプログラムカウンタの値が参照される場合にも、
同様に命令先頭のアドレスがPC相対の基準値として使
用される。
スタックポツプモードは、SP(スタックポインタ)の
内容をアドレスとするメモリの内容をオペランドとする
。オペランドアクセス後、SPをオペランドサイズだけ
インクリメントする0例えば、32ビツトデータを扱う
場合は、オペランドアクセス後にSPが+4だけ更新さ
れる。  8,16.64ビツトのサイズのオペランド
に対するスタックポツプモードの指定も可能であり、そ
れぞれSPが+1.+2.+8だけ更新される。フォー
マントの模式図を第20図に示す。オペランドに対しス
タックポツプモードが意味を持たないものについては、
予約命令例外が発生される。予約命令例外となるのは具
体的には、writeオペランド及びread−s+o
dify−writeオペランドに対するスタックポン
プモード指定である。
スタックブツシュモードは、SPの内容をオペランドサ
イズだけデクリメントした内容をアドレスとするメモリ
の内容をオペランドとする。スタックブツシュモードで
はオペランドアクセス前にSPがデクリメントされる。
例えば、32ビツトデータを扱う場合は、オペランドア
クセス前にSPが−4だけ更新される。8,16,64
ビツトのサイズのオペランドに対するスタックブツシュ
モードの指定も可能であり、それぞれSPが−1,−2
,−8だけ更新される。
フォーマントの模式図を第21図に示す。オペランドに
対してスタックブツシュモードが意味を持たないものに
対しては、予約命令例外が発生される予約命令例外とな
るのは具体的には、readオペランド及びread−
Illodly−writeオペランドに対すスタック
ブツシュモード指定である。
(2,4,2)  r多段間接アドレッシングモード」
複雑なアドレッシングも、基本的には加算と間接参照の
組み合わせに分解することができる。従って、加算と間
接参照のオペレーションとをアドレッシングのプリミテ
ィブとして与えておき、それを任意に組合わせることが
出来れば、いかに複雑なアドレッシングモードをも実現
することが出来る。本発明のデータ処理装置の命令の多
段間接アドレッシングモードはこのような考え方に立脚
したアドレッシングモードである。複雑なアドレッシン
グモードは、モジュール間のデータ参照及び^■言語の
処理系に特に有用である。
多段間接アドレッシングモードを指定する際、基本アド
レッシングモード指定フィールドでは、レジスタベース
多段間接モード、 PCベース多段間接モード及び絶対
ベース多段間接モードの3種類の指定方法の内のいずれ
か1つを指定する。
レジスタベース多段間接モードは、汎用レジスタの値を
拡張する多段間接アドレッシングのベース値とするアド
レッシングモードである。フォーマットの模式図を第2
2図に示す0図中、Rnは汎用レジスタの番号を示す。
PCベース多段間接モードは、プログラムカウンタの値
を拡張する多段間接アドレッシングのベース値とするア
トレンジングモードである。フォーマントの模式図を第
23図に示す。
絶対ベース多段間接モードは、ゼロを拡張する多段間接
アドレッシングのベース値とするアドレッシングモード
である。フォーマントの模式図を第24図に示す。
拡張される多段間接モード指定フィールドは、16ピン
トを単位としており、これが任意回反復される。1段の
多段間接モードにより、ディスプレースメントの加算、
インデクスレジスタのスケーリング(×I+ ×2+ 
 ×4+ ×8)と加算、メモリの間接参照が行われる
。多段間接モードのフォーマットの模式図を第25図に
示す。図中の各フィールドは以下に示す意味を有する。
E・0 :多段間接モード継続 E=1  ニアドレス計算終了 tIlp ==> address  of oper
andI−0:メモリ間接参照なし tap + disp + RX * 5cale =
=> tap■・l :メモリ間接参照あり see [Lmp + disp + Rx * 5c
ale ]==〉  釉ρ : <RX>をインデクスとして使用 :特殊なインデクス <Rx>= 0  インデクス値を加算しない(Rに・
0) <Rx>= 1  プログラムカウンタをインデクス値
として使用 (Rx=PC) <RX>=2〜reserved 、多段Mtlt−モード中ビツトのフィールドd4の値
を4倍してディスプレースメント値とし、これを加算す
る。 d4は符号付きとして扱い、オペランドのサ イズとは関係なく必ず4倍して使用す る :多段間接モードの拡張部で指定されたdispx (
16/32ビツト)をディスプレースメント値とし、こ
れを加算する。
拡張部のサイズはd4フィールドで指定する d4=ooo1  dispxは16ビツトd4=oo
10  dispxは32ビットxX:インデクスのス
ケール(scale = 1/2/478) プログラムカウンタに対してX2.X4.xgのスケー
リングを行なった場合には、その段の処理終了後の中間
値(tIIIp)として不定値が入る。
この多段間接モードによって得られる実効アドレスは予
測できない値となるが、例外は発生しない。プログラム
カウンタに対するスケーリングの指定は行なってはいけ
ない。
多段間接モードによる命令フォーマットのバリエーショ
ンを第26図及び第27図の模式図に示す。
第26図は多段間接モードがmVEするか終了するかの
バリエーションを示す。第27図はディスプレースメン
トのサイズのバリエーションを示す。
任意段数の多段間接モードが利用できれば、コンパイラ
の中で段数による場合分けが不要になるので、コンパイ
ラの負担が軽減されるというメリットがある。多段の間
接参照の頻度が非常に少ないとしても、コンパイラとし
ては必ず正しいコードを発生できなければならないから
である。このため、フォーマント上では任意の段数を可
能としている。
(3)「本発明のデータ処理装置の機能ブロックの構成
」 第4図は本発明のデータ処理装置の一構成例を示すブロ
ック図である。
本発明のデータ処理装置の内部を機能的に大きく分ける
と、命令入力部11O1命令フェッチ部111゜命令デ
コード部112.  第1マイクロRO1’1部113
第2マイクロROM部ii4.  オペランドアドレス
計算部115.  PC計算部116.  整数演算部
117.  浮動小数点演算部118.  アドレス人
出力部119.  オペランドアクセス部120.  
データ人出力部12+に分かれる。
アドレス人出力部119をアドレスバス101に結合し
、データ人出力部121をデータバス102に結合し、
命令人力部110を命令ハス103に粘合することによ
り前述の第6図に示すシステム構成をとることができる
(3,1)  r命令人力部」 命令人力部110は外部の命令バス103から32ビツ
トごとに命令コードを本発明にデータ処理装置へ入力す
る。
命令キャッシュ106のアクセス方法には、1つのアド
レスに対して32ビツトの命令コードをアクセスする標
準アクセスモードと1つのアドレスに対して4回連続で
32ビフトの命令コードをアクセスするクワッドアクセ
スモードとがあり、いずれの場合も命令入力部110は
入力した命令コードを命令フェッチ部111へ出力する
(3,2)  r命令フェッチ部」 命令フェッチ部111には命令アドレスのアドレス変換
機構、内蔵命令キャンシュ、命令用TLB。
命令キューとそれらの制御部がある。
命令フェッチ部111は、次にフェッチすべき命令のp
c値を物理アドレスに変換し、内蔵命令キャッシュから
命令コードをフェッチし、命令デコード部112へ出力
する。内蔵命令キャッシュがミスした場合には、アドレ
ス入出力部119へ物理アドレスを出力して外部への命
令アクセスを要求し、命令入力部110を通じて入力さ
れた命令コードを内蔵命令キャッシュに登録する。
次にフェッチすべき命令のPC値は命令キューに入力す
べき命令のPC値として専用のカウンタで計算される。
ジャンプが生した場合には、新たな命令のPC値がオペ
ランドアドレス計Iγ部+15.  PC計算部116
あるいは整数演算部117から転送されてくる。
命令用TI、Bがミスした場合のページングによるアド
レス変換及び命令用TLB更新も命令フェッチ部111
の内部の制御回路により行われる。
また、本発明のデータ処理装置がバスウAノヂモードで
ある場合は、アドレス入出力部119を通して入力され
た物理アドレスがヒツトする内1銭命令キャッシュのエ
ントリを無効化する。
(3,3)  r命令デコード部」 命令デコード部112では基本的に16ビノト (ハー
フワード)単位に命令コードをデコードする。
このブロックには第1ハーフワードに含まれるオペレー
ションコードをデコードするPl+−デコーダ、第2及
び第3ハーフワードに含まれるオペレーションコードを
デコードするNFIIWデコーダ、アドレッシングモー
ドをデコードするアドレッシングモードデコーダが含ま
れる。
更に、FHWデコーダ及びNFH−デコーダの出力を更
にデコードしてマイクロROMのエントリアドレスを計
算する第2デコーダ、条件分岐命令の分岐予測を行う分
岐予測機構、オペランドアドレス計算の際のパイプライ
ンコンフリクトをヂエツクするアドレス計算コンフリク
トチエツク機構も含まれる。
命令デコード部112は命令フェッチ部111がら出力
された命令コードを1クロツクにっき0〜6バイトデコ
ードする。デコード結果の内の、整数演算部117での
演算に関する情報が第1マイクrIROM部113へ、
浮動小数点演算部11Bでの演算に関する情報が第2マ
イクロROM部114へ、オペランドアドレス計算に関
係する情報がオペランドアドレス計算部115へ、pc
計算に関係する情報がpc計算部116へそれぞれ出力
される。
(3,4)  r第1マイクロROM部」第1マイクロ
I?OM部113には整数演算部117の制御を行う種
々のマイクロプログラムルーチンが格納されているマイ
クロROM、  マイクロシーケンサ、マイクロ命令デ
コーダ等とが含まれる。
マイクロ命令はマイクロl?OMからlクロックに1度
読出される。マイクロシーケンサは命令実行に関するマ
イクロプログラム実行のためのシーケンス処理の他に、
例外1割込、トラップ(この3つ併せてEITと総称す
る)の受付けと各EITに対応するマイクロプログラム
のシーケンス処理も行う。
第1マイクロROM部113へは命令コードに依存しな
い外部割込みや整数演算実行結果によるマイクロプログ
ラムの分岐条件も入力される。
マイクロデコーダの出力は主に整数?’A算部117に
対して出力されるが、ジャンプ命令の実行時及び例外受
付時には一部の情報を他の機能ブロックへも出力する。
(3,5)  r大2マイクC2RO?f部」第2マイ
クロROM部114には浮動小数点演算部11Bの制御
を行う種々のマイクロプログラムルーチンが格納されて
いるマイクロROM、  マイクロシーケンサ、マイク
ロ命令デコーダ等が含まれる。
マイクロ命令はマイクロROMから1クロツクに1度読
出される。マイクロシーケンサはマイクロプログラムで
示されるシーケンス処理の他に、浮動小数点演算に関係
する例外の処理も行い、マスクされていない浮動小数点
例外が検出された場合には第1マイクロROM部113
へ例外処理を要求する。第2マイクロROj’1部11
4のマイクロシーケンサは第1マイクロROM部113
のマイクロシーケンサと並列に動作し、整数演算部11
7と並列に浮動小数点演算部118を制御する。
第2マイクロROM部113には浮動小数点演算実行結
果によるフラッグ情報も入力される。
マイクロデコーダの出力は主に浮動小数点演算部11B
に対して出力されるが、浮動小数点演算に関係する例外
の検出等の一部の情報は他の機能ブロックへも出力され
る。
(3,6)  rオペランドアドレス計算部」オペラン
ドアドレス計算部115は、命令デコード部112のア
ドレッシングモードデコーダ等から出力されたオペラン
ドアドレス計算に関係する情報によりハードワイヤード
制御される。このブロックではメモリ間接アドレッシン
グのためのメモリアクセス以外のオペランドのアドレス
計算とジャンプ命令のジャンプ先アドレスの計算と力5
行われる。
オペランドアドレスの計算結果は整数演算部117へ出
力される。オペランドアドレス計r1.終了段階での先
行ジャンプ処理では、ジャンプ先アドレスの計算結果が
命令フェッチ部11.1 とpc計算部とへ出力される
即値オペランドは整数演算部117及び浮動小数点演算
部11Bへ出力される。アドレス計算に必要な汎用レジ
スタ及びプログラムカウンタの値は整数演算部117又
はpc計算部116から人力される。
(3,7)  rPC計算部」 pc計算部116は命令デコード部112から出力され
るPC計算に関係する情報でハードワイヤードに制御さ
れ、命令のpc値を計算する。
本発明のデータ処理装置の命令は前述の如く、可変長命
令であり、命令をデコードしてみないとその命令の長さ
が判らない、PC計算部116は、命令デコード部11
2から出力される命令長をデコード中の命令のPC値に
加算することにより次の命令のpc値を計算する。
また、PC計算部116では命令アドレスのブレイクポ
イントレジスタあるいはトリガポイントレジスタの値と
実行された命令のPC値との比較も行われる。
pc計算部116の計算結果は各命令のpc値として命
令のデコード結果とともに出力される。
命令デコードステージでの先行ブランチ処理では、命令
デコード部11から出力されるブランチ幅をPC値に加
算することによりブランチ先命令のアドレスが計算され
る。
また、PC計算部116にはサブルーチンへのジャンプ
命令の実行時にスタックにブツシュしておいたサブルー
チンからの戻り先PC値のコピーを保持するPCスタッ
クが用意されている。PC計算部116は、サブルーチ
ンからのリターン命令に対してはPCスタックから戻光
PCを読出すことにより、プリリターン先命令のアドレ
スを生成する処理も行う。
実行された命令のIIc値をトレースする動作時には、
PC計算部116はオペランドアクセス部120へ命令
のPC値を出力する処理も行う。
(3,8)  r整数演算部」 整数演算部+17は第1マイクロROM部113のマイ
クロROMに格納されたマイクロプログラムにより制御
され、各整数演算命令の機能を実現するために必要な演
算を整数演算部117の内部にあるレジスタファイルと
演算器とを使用して実行する。
レジスタファイルには汎用レジスタ及び作業用レジスタ
が含まれる。また、整数演算部117には整数演算の結
果により変化するフラッグ及び外部割込みのマスクレベ
ル、デバッグ環境を定めるビット等を含むプロセッサ状
態語(PSW) 、  更にはデバッグ制御レジスク、
バッファメモリ制御レジスタ等も含まれる。
命令の演算対象となるオペランドがアドレスあるいは即
値である場合は、オペランドアドレス計算部115から
即値あるいは計算されたアドレスが人力される。また、
命令の演算対象となるオペランドがメモリ上のデータで
ある場合は、アドレス計算部115で計算されたアドレ
スがオペランドアクセス部120へ出力され、データバ
ッファあるいは外部からフェッチされたオペランドが整
数演算部117へ入力される。
演算に際して、データバッファ、外部のデータキャッシ
ュ107.108あるいは主メモリ109をリードする
必要がある場合は、整数演算部117はマイクロプログ
ラムの指示によりオペランドアクセス部120ヘアドレ
スを出力して目的のデータをフェッチする。
演算結果をデータバッファ、外部のデータキャッシュ1
07.108あるいは主メモリ109ヘスドアする必要
がある場合は、整数演算部117はマイクロプログラム
の指示によりオペランドアクセス部120ヘアドレスと
データとを出力する。この際、PC計算部116からは
そのストア動作を行った命令のPC値がオペランドアク
セス部120へ出力される。
外部割込み1例外の処理等が行われて新たな命令アドレ
スを整数演算部117が得た場合は、整数演算部117
はこれを命令フエ’7千部111 とpc計算部116
とへ出力する。
(3,9)  −′i動小数点演算部」浮動小数点演算
部118は第2マイクロll0M部114のマイクロR
OMに格納されたマイクロプログラムにより制御され、
各浮動小数点演算命令の機能を実現するために必要な演
算を浮動小数点演算部118の内部にあるレジスタファ
イルと演算器とを使用して実行する。
また浮動小数点演算部118には浮動小数点演算の丸め
処理方法及び浮動小数点演算例外の検出許可をモード設
定する浮動小数点演算モード制御レジスタFMCと、浮
動小数点演算結果に対するフラグ及び浮動小数点演算例
外の発生状態を示すステタスビソトからなる浮動小数点
演算状態語FSWとが備えられている。
命令の演算対象となるオペランドが即値である場合は、
オペランドアドレス計算部115から浮動小数点演算部
118へ即値が人力される。また、命令の′64算対象
となるオペランドがメモリ上のデータである場合は、ア
ドレス計算部115で計算されたアドレスがオペランド
アクセス部120へ出力され、データバッファまたは外
部からフェッチされたオペランドが浮動小数点演算部1
18へ入力される。
オペランドを内蔵データキャツシュ3外部のデータキャ
・7シユ107.108あるいは主メモリ109ヘス1
〜アする必要がある場合は、浮動小数点演算部118は
マイクロプログラムの指示によりオペランドアクセス部
120ヘデータを出力する。ストア動作では浮動小数点
演算部l18と整数演算部117とが協調して動作し、
オペランドアクセス部120に対して整数演算部117
からオペランドのアドレスが出力され、浮動小数点演算
部118からオペランドが出力される。この際、PC計
算部116からはそのストア動作を行った命令のPC値
がオペランドアクセス部120へ出力される。
(3,10) rオペランドアクセス部jオペランドア
クセス部120にはオペランドアドレスのアドレス変換
機構、データバンファ、データ用TLB、  ストアバ
ッファ、オペランドブレイクポイントレジスタとそれら
の制御部とがある。
なお、データバッファはモード切換えにより内蔵データ
キャッシュまたはpc値のトレースメモリとして動作す
る。
データバッファを内蔵データキャッシュとして動作させ
る場合、データのロード動作に際しては、オペランドア
クセス部120はオペランドアドレス計算部115また
は整数演算部117から出力されたロードすべきデータ
の論理アドレスを物理アドレスに変換し、データバッフ
ァからデータをフェッチし、整数演算部117または浮
動点小数演算部118へ出力する。
データバッファがミスした場合には、オペランドアクセ
ス部120はアドレス入出力部119へ物理アドレスを
出力し、外部へのデータアクセスを要求し、データ入出
力部122を通じて人力されたデータをデータバッファ
に登録する。
データのストア動作に際しては、オペランドアクセス部
12Gは整数演算部117から出力されたストアすべき
データの論理アドレスを物理アドレスに変換し、整数演
算部117あるいは浮動小数点演算部118から出力さ
れたデータをデータバッファにストアすると共に、スト
アバッファを通じてアドレス入出力部119へ物理アド
レスを出力し、データ入出力部122を通じてデータを
外部へ出力する。ストア動作でミスが発生した場合には
、データの更新は行われない。
ストアバッファではストアすべきデータとそのアドレス
、更にそのストア動作を行った命令のpc値とが1組に
して管理される。ストアバッファでのストア動作は先入
れ先出し@御方式で管理される。
データバッファをトレースメモリとして動作させる場合
、トレースメモリの内容をダンプするDMP命令以外の
オペランドアクセス動作ではデータバッファのアクセス
は行われない、データバッファはPC計算部116から
転送されて来る実行命令のpc値を順に保持するメモリ
として動作する。
データ用T1.Bがミスした場合のページングによるア
ドレス変換及びデータ用TLB更新もオペランドアクセ
ス部120の内部の制御回路により行われる。また、メ
モリアクセスアドレスがメモリにマツプされたIlo 
N域に入るか否かのヂエックも行われる。
また、データバッファを内蔵データキャッシュとして動
作させる際に、本発明のデータ処理装置がパスウォッチ
モードである場合には、オペランドアクセス部120は
アドレス入出力部119を通して入力された物理アドレ
スがヒントするデータバッファのエントリを無効化する
(3,11) rアドレス入出力部」 アドレス入出力部119は命令フェッチ部111とオペ
ランドアクセス部12Gとから出力されたアドレスを本
発明のデータ処理装置100の外部へ出力する。
アドレスの出力は本発明のデータ処理装置100で定め
られたバスプロトコルに従って実行される。
バスプロトコルの制御はアドレス入出力部119内にあ
る外部バス制御回路で行われる。外部バス制御回路では
ページ不在例外及びバスアクセス例外、外部割込みの受
付けも行う。
また、本発明のデータ処理装置1100以外の外部デバ
イスがバスマスクになっており、本発明のデータ処理装
置100がバスウォッチモードである場合には、アドレ
ス入出力部119は外部デバイスがデータライトサイク
ルを実行した際にアドレスバス101上へ出力されたア
ドレスを取込んで命令フェッチ部111 とオペランド
アクセス部120とへ転送する。
(3,12) rデータ入出力部」 データ入出力部121はオペランドのロード動作に際し
ては、データバス102からデータを取込みオペランド
アクセス部12Gへ転送する。オペランドのストア動作
に際しては、オペランドアクセス部120から出力され
たオペランドをデータバス102へ出力する。
データキャッシュ107.108のアクセス方法には、
1つのアドレスに対して64ビツトのデータをアクセス
する標準アクセスモードと1つのアドレスに対して4回
連続で64ピントのデータをアクセスするクワンドアク
セスモードとがあり、いずれの場合もデータ人出力部1
21はオペランドアクセス部120と外部のメモリとの
間で遣取りするデータを(4)「パイプライン処理」 本発明のデータ処理装置100は各種のバッファ記憶と
、命令バス103.  データバス102を使用したメ
モリの効率的アクセスにより命令をパイプライン処理し
て高性能に動作する。
ここでは、本発明のデータ処理装置100のパイプライ
ン処理方法について説明する。
(4,1)  rパイ194フ機構」 本発明のデータ処理装置100のパイプライン処理機構
は第5図に模式的に示すように構成されている。
命令のブリフェッチを行う命令フェッチステージ(IF
ステージ)31.  命令のデコードを行うデコードス
テージ(Dステージ)32.  オペランドのアドレス
計算を行うオペランドアドレス計算ステージ(Aステー
ジ)33.  マイクロROMアクセス(特にRステー
ジ37と称す)とオペランドのブリフェッチ(特にOF
ステージ38と称す)を行うオペランドフェッチステー
ジ(Fステージ)34.  命令の実行を行う実行ステ
ージ(Eステージ)35.  メモリオペランドのスト
アを行うストアステージ(Sステージ)36の6段構成
でパイプライン処理を実行する。
Sステージ36には3段のストアバッファがある。
各ステージは他のステージとは独立に動作し、理論上は
6つのステージが完全に独立動作する。
Sステージ36以外の各ステージは1回の処理を最小l
クロックで行うことができる。Sステージ36は1回の
オペランドストア処理を最小2クロックで行うことがで
きる。従ってメモリオペランドのストア処理がない場合
、理想的にはlクロックごとに次々とパイプライン処理
が進行する。
本発明のデータ処理装置にはメモリーメモリ間演算ある
いはメモリ間接アドレッシング等のような1回の基本パ
イプライン処理のみでは処理出来ない命令があるが、こ
れらの処理に対してもなるべく均衡したパイプライン処
理が行えるように構成されている。
複数のメモリオペランドを有する命令に対しては、メモ
リオペランドの数に基づいてデコード段階で複数のパイ
プライン処理単位(ステンプコード)に分解してパイプ
ライン処理が行われる。
IFステージ31からDステージ32へ渡される情報は
命令コードそのものである。
Dステージ32からAステージ33へ渡される情報は、
命令で指定された演算に関するコード(Dコード41と
称す)と、オペランドのアドレス計算に関係するコード
(Aコード42と称す)と処理中命令のプログラムカウ
ンタ値(PC)との3つである。
Aステージ33からFステージ34に渡される情報は、
マイクロプログラムルーチンのエントリ番地及びマイク
ロプログラムへのパラメータ等を含むRコード43と、
オペランドのアドレスとアクセス方法指示情報等を含む
Fコード44と、処理中命令のプログラムカウンタ値(
PC)との3つである。
Fステージ34からEステージ35へ渡される情報は、
演算制御情報とリテラル等を含むEコード45と、オペ
ランド及びオペレータアドレス等を含むSコード(46
a、 46b)と、処理中命令のプログラムカウンタ値
(PC)との3つである。
Sコード46a、 46bはアドレス46a とデータ
46bとからなる。
Eステージ35からSステージ36へ渡される情報は、
ストアすべき演算結果であるWコード47a、47bと
、その演算結果を出力した命令のプログラムカウンタ値
(PC)との2つである。
Wコード47a、 47bはアドレス47a とデータ
47bとからなる。
なお、トレース動作中はオペランドストアが行われなく
ても、実行待された命令のPC値がEステージ35から
Sステージ36へ渡される。
Eステージ35以前のステージで検出されたEFTはそ
のコードがEステージ35に到達するまでBIT処理を
起動しない。Eステージ35で処理されている命令のみ
が実行段階の命令であり、IFステージ31〜Fステー
ジ34で処理されている命令は未だ実行段階に至ってい
ないからである。従ってEステージ35以前で検出され
たBITは検出されたことがステップコード中に記録さ
れて次のステージに伝えられるのみである。
Sステージ36で検出されたEITはEステージ35で
処理中命令の実行が完了した時点またはその命令の処理
がキャンセルされた時点で受付けられ、Eステージ35
に戻って処理される。
(4,2)  r各パイプラインステージの処理」各パ
イプラインステージへの入出カステップコードには第4
図に示したように便宜上名称が付与されている。またス
テップコードには、オペレーションコードに関する処理
を行ってマイクロROMのエントリ番地やEステージ3
5に対するパラメータ等になる系列と、Eステージ35
の処理対象のオペランドになる系列との2系列がある。
また、Dステージ32からSステージ36までの間では
処理中命令のプログラムカウンタ値が受渡される。
(4,2,1)  r命令フェッチステージ」命令フェ
ッチステージ(IFステージ)31で命令フェッチ部1
11が動作する。
命令フェッチ部111は内蔵命令キャッシュあるいは外
部から命令をフェッチして命令キューに入力し、Dステ
ージ32に対して2〜6バイト単位に命令コードを出力
する。命令キューの入力は整置された4バイト単位で行
われる。
命令フェッチ部111が標準アクセスモードで外部から
命令をフェッチする場合は整置された4バイトにつき最
小2クロックを要する。
クワッドアクセスモードでは16バイトにつき最小5ク
ロツクを要する。
内蔵命令キャッシュがヒントした場合は整置された8バ
イトにつきlクロックでフェッチ可能である。
命令キューの出力単位は2バイトごとに可変であり、l
クロックの間に最大6バイトまで出力できる。またジャ
ンプの直後には命令キューをバイパスして命令基本部2
バイトを直接命令デコーダに転送することもできる。
命令の論理アドレスの物理アドレスへの変換。
内蔵命令キャッシュや命令用TLBの制御、ブリフヱッ
チ先命令アドレスの管理あるいは命令キューの制御もI
Fステージ31で行われる。
(4,2,2)  r命令デコードステージ」命令デコ
ードステージ(Dステージ)32は!Fステージ31か
ら入力された命令コードをデコードする。
命令コードのデコードは、命令デコード部112のFl
(Wデコーダ、 NFI+−デコーダ、アドレッシング
モードデコーダを使用して1クロツクに1度行なわれ、
1回のデコード処理で0〜6バイトの命令コードが消費
される(リターンサブルーチン命令の復帰先アドレスを
含むステップコードの出力処理等では命令コードは消費
されない)。
1回のデコードでAステージ33に対してアドレス計算
情報であるAコード42とオペコードの中間デコード結
果であるDコード41とが出力される。
Dステージ32ではPC計算部116のIIIJ御、命
令キューからの命令コード出力処理も行われる。
Dステージ32ではブランチ命令あるいはサブルーチン
からのリターン命令に対して先行ジャンプ処理が行われ
る。先行ジャンプを行った無条件ブランチ命令に対して
はDコード41及びAコード42は出力されず、Dステ
ージ32において命令の処理を終了する。
(4,2,3)  rオペランドアドレス計算ステージ
」オペランドアドレス計算ステージ(Aステージ)33
の処理は大きく2つに分かれる。
1つは命令デコード部112の第2デコーダを使用して
オペレーションコードの後段デコードを行う処理で、他
方はオペランドアドレス計算部54でオペランドアドレ
スの計算を行う処理である。
オペレーションコードの後段デコート処理はDコード4
1を入力とし、レジスタ、メモリの書込み予約及びマイ
クロプログラムルーチンのエントリ番地とマイクロプロ
グラムに対するパラメータ等を含むRコード43を出力
する。
なお、レジスタあるいはメモリの書込み予約は、アドレ
ス計算で参照したレジスタあるいはメモリの内容がパイ
プライン上を先行する命令で書換えられていた場合に、
誤ったアドレス計算が行われることを防ぐためのもので
ある。
オペランドアドレス計算処理はAコード42を入力とし
、Aコード42に従ってオペランドアドレス計算部54
でオペランドのアドレス計算を行い、その計算結果がF
コード44として出力される。
またジャンプ命令に対してはジャンプ先アドレスの計算
が行われて先行ジャンプ処理が実行される。この際、ア
ドレス計算に伴うレジスタの読出し時に書込み予約のチ
エツクも行われ、先行命令がレジスタあるいはメモリに
対する書込み処理を終了していないために予約があるこ
とが指示されていれば、先行命令がEステージ35で書
込み処理を終了するまで待機状態になる。
Aステージ33ではDステージ32で先行ジャンプを行
わなかったジャンプ命令に対して先行ジャンプ処理が行
われる。
絶対値アドレスへのジャンプあるいはレジスタ間接アド
レッシングのジャンプ等に対してはAステージ33で先
行ジャンプが行われる。先行ジャンプを行った無条件ジ
ャンプ命令に対してはRコード43及びFコード44は
出力されず、Aステージ33において命令の処理を終了
する。
(4,2,4)  rマイクロROMアクセスステージ
」オペランドフェッチステージ(Fステージ)34の処
理も大きく2つに分かれる。
1つはマイクロROMのアクセス処理であり、特にRス
テージ37と称す、他方はオペランドブリフェッチ処理
であり、特にOFステージ38と称す。
Rステージ37とOFステージ38とは必ずしも同特に
動作するわけではなく、データキャッシュのミス及びヒ
ツトデータTLBのくス及びヒント等に依存して動作タ
イミングが異なる。
Rステージ37の処理であるマイクロROMアクセス処
理は、Rコード43に対して次のEステージ35での実
行に使用する実行制御コードであるEコード45を作り
出すためのマイクロROMアクセスとマイクロ命令デコ
ード処理である。
1つのRコードに対する処理が2つ以上のマイクロプロ
グラムステップに分解される場合、第1マイクロROM
部113及び第2マイクロROM部114がEステージ
35で使用され、次のRコード43がマイクロROMア
クセス待ちになる場合がある。
Rコード43に対するマイクロROMアクセスが行われ
るのはEステージ35でのマイクロROMアクセスが行
われない場合である。
本発明のデータ処理袋W100では多くの整数演算命令
が1マイクロプログラムステンプで行われ、多くの浮動
小数点演算命令が2マイクロプログラムステツブで行わ
れるため、実際にはRコード43に対するマイクロRO
Mアクセスが次々と行われる頻度が高い。
(4,2,5)  rオペランドフェッチステージ」オ
ペランドフェッチステージ(OFステージ)38はFス
テージ34で行う上記の2つの処理の内のオペランドプ
リフェッチ処理を行う。
オペランドフェッチステージ38ではFコード44の論
理アドレスをデータTLBで物理アドレスに変換し、そ
の物理アドレスで内蔵データキャッシュをアクセスして
オペランドをフェッチし、そのオペランドとFコード4
4として転送されてきたその論理アドレスとを組合わせ
てSコード46a、 46bとして出力する。
1つのFコード44では8バイト境界をクロスしてもよ
いが、8バイト以下のオペランドフェッチを指定する。
Fコード44にはオペランドのアクセスを行うか否かの
指定も含まれており、Aステージ33で計算されたオペ
ランドアドレス自体あるいは即値をEステージ35へ転
送する場合にはオペランドブリフェッチは行わず、Fコ
ード44の内容をSコード46a。
46bとして転送する。
ブリフエソヂしようとするオペランドとEステージ35
が書込み処理を行おうとするオペランドとが一致する場
合は、オペランドブリフェッチは内蔵データキャッシュ
からは行われず、バイパスして行なわれる。
(4,2,6)  r実行ステージ」 実行ステージ(Eステージ)35はEコード45及びS
コード46a、 46bを入力として動作する。
このEステージ35が命令を実行するステージであり、
Fステージ34以前のステージで行われた処理は総てE
ステージ35のための前処理である。
Eステージ35でジャンプが実行されたりあるいはEI
T処理が起動されたりした場合は、IFステージ31−
Fステージ34まででの処理はすべて無効化される。
Eステージ35はマイクロプログラムにより制御され、
Rコード45に示されたマイクロプログラムルーチンの
エントリ番地からの一連のマイクロ命令を実行すること
により命令を実行する。
Eコード45には整数演算部117を制御するコード(
特にElコードと称す)と浮動小数点演算部11Bを制
御するコード(特にEFコードと称す)とがある。El
コードとEFコードとは独立に出力可能であり、この際
Eステージ35では整数演算部117と浮動小数点演算
部118とが並列に動作する。
例えば浮動小数点演算部118でメモリオペランドを有
さない浮動小数点命令を実行する場合はこの動作は整数
演算部117の動作と並行して実行される。
整数演算でも浮動小数点演算でもマイクロROMの読出
しとマイクロ命令の実行とはパイプライン化されて行わ
れる。従って、マイクロプログラムで分岐が発生した場
合は1マイクロステツプの空きができる。
Eステージ35ではAステージ33で行ったレジスタあ
るいはメモリに対する書込み予約をオペランドの書込み
の後に解除する。
各種の割込は命令の切目でEステージ35に直接受付け
られ、マイクロプログラムにより必要な処理が実行され
る。その他の各種EITの処理もEステージ35でマイ
クロプログラムにより行われる。
演算の結果をメモリにストアする必要がある場合は、E
ステージ35はSステージ36へWコード47a。
47bとストア処理を行う命令のプログラムカウンタ値
とを出力する。
また、トレース動作中はオペランドのストア動作とは関
係なく、実行された命令のpc値がEステージ35から
Sステージ36へ出力される。
(4,2,7)  rオペランドストアステージ」オペ
ランドストアステージ(Sステージ)36はWコードの
論理アドレス47aをデータTLBで物理アドレスに変
換し、そのアドレスでWコードのデータ47bをデータ
バッファにストアする。同時にオペランドストアステー
ジ36はWコード47a、 47bとプログラムカウン
タ値とをストアバッファに入力し、データTLBから出
力された物理アドレスを用いて外部のメモリへWコード
のデータ47bをストアする処理を行う。
また、トレース動作中はオペランドストアステージ36
はEステージ35から転送されたpc値をデータバッフ
ァに蓄える。
オペランドストアステージ36の動作はオペランドアク
セス部120で行われ、データT1.Bあるいはデータ
バッファが5スした際のアドレス変換処理及びデータバ
ッファの入換え処理も行う。
オペランドストアステージ36がオペランドのストア処
理でBITを検出した場合はストアバッファにWコード
47a、 47bとプログラムカウンタ値とを保持した
ままでEステージ35にEITを通知する。
(4,3)  r各パイプラインステージの状態制御」
バイブラインの各ステージは入力ランチと出力ランチを
有し、他のステージとは独立に動作することを基本とす
る。
各ステージは1つ前に行った処理が終了し、その処理結
果を出力ランチから次のステージの入力ランチへ転送し
、自分のステージの入力ランチに次の処理に必要な人力
信号の総てがそろえば次の処理を開始する。
つまり、各ステージは1つ前段のステージから出力され
てくる次の処理に対する入力信号の総てが有効になり、
その時点の処理結果を後段のステージの人力ランチへ転
送し、出力ランチが空になると次の処理を開始する。
各ステージが動作を開始する直前のタイミングで入力信
号が総てそろっている必要がある。入力信号がそろって
いなければ、そのステージは待機状B(入力待ち)にな
る。
出力ランチから次のステージの人力ランチへの転送を行
われる際は次のステージの人力ランチが空き状態になっ
ている必要があり、次のステージの入力ランチが空きで
ない場合もパイプラインステージは待機状態(出力待ち
)になる。
また、キャッシュあるいはTLBがミスしたり、パイプ
ラインで処理中の命令間にデータ干渉が生じると、1つ
のステージの処理に複数クロック必要となってパイプラ
イン処理が遅延する。
(5)「オペランドアクセス部の詳細動作」(5,1)
  rオペランドアクセス部の構成」第1図にオペラン
ドアクセス部120の一構成例を示す詳細なブロック図
を示す。
オペランドアクセス部120はデータの論理アドレスと
物理アドレスとをベアにしてバッファリングするTLB
201.物理アドレスとデータとをペアにしてバッファ
リングする内蔵のデータキャッシュとして動作するかま
たは実行した命令のPC値を蓄えるトレースメモリとし
て動作するデータバッファ202.  アクセスされた
データの論理アドレスの上位とTLB201の論理アド
レスタグとを比較する論理アドレス比較器203.  
TLB201から出力された物理アドレスとデータバッ
ファ202から出力された物理アドレスタグとを比較す
る物理アドレス比較器204.  データ入出力回路2
07.  アドレス出力回路206.  ストアバッフ
ァ部208.  更に論理アドレス比較!1S203及
び物理アドレス比較器204の比較結果に従って全体を
制御するオペランドアクセス制御回路205等にて構成
されている。
また、オペランドアクセス部120にはデータバッファ
202がトレースメモリとして動作する際にアクセスす
るエントリのアドレスを示すエンドリボインク209 
も備えれている。
アドレス出力回路206中にはオペランドブレイクポイ
ンタが備えられており、このオペランドブレイクポイン
タによりオペランドアクセスがブレイクポイントにヒツ
トするか否かのチエツクが行われる。
(5,2)  rオペランドアクセス部のデータリード
動作」 整数演算部117から出力された論理アドレスのアドレ
ス変換対象となる上位20ビツトの内の下位側(8ビツ
ト)でTLB201のエントリが指定される。
TLB201の指定されたエントリからは論理アドレス
タグ(12ピント)と物理アドレス (20ビツト)と
が出力される。この際、論理アドレスの上位側(12ビ
ツト)と論理アドレスタグとが一致すればTLB201
はヒントしたことになり、TLB201から出力された
物理アドレスは有効である。
データバッファ202が内蔵データキャッシュとして動
作する場合は、論理アドレスの内のページオフセントを
示し物理アドレスに変換されない下位ビット (12ビ
ツト)でデータバッファ202のエントリが指定される
。データバッファ202の指定されたエントリからは物
理アドレスタグ(20ビツト)とデータとが出力される
。この際、TLB201から出力された物理アドレスが
有効で且つそれが物理アドレスタグと一致すればデータ
バ・7フア202はヒツトしたことになりデータバッフ
ァから出力されたデータは有効である。
TLB201がミスした場合は、オペランドアクセス制
御部205の制御により、本発明のデータ処理袋710
0の外部のメモリにあるアドレス変換テーブルがアクセ
スされ、論理アドレスが物理アドレスに変換され、TL
B201のエントリが更新される。TLB201のエン
トリを更新後、再びTLB201がアクセスされ、TL
B201はヒントする。
TLB201がヒントしたが内蔵データキャンシュとし
て動作したデータバッファ202がミスした場合は、オ
ペランドアアクセス制御部205の制御により、物理ア
ドレスで外部のメモリがアクセスされ、データバッファ
202のエントリが更新される。
TLB201がミスした場合は、TLB201から読出
された物理アドレスとデータバッファの物理アドレスタ
グとが一致してもデータバッファ202はヒントとはな
らない。この場合、データバッファ202のヒツト/ミ
スの判定はTLB201のエントリが更新されてTLB
201がヒントした後に行われる。
データバッファ202がトレースメモリとして動作する
場合は、トレース内容を外部に出力させるための口MP
命令以外ではオペランドアクセスの際にデータバッファ
がアクセスされることはない。
この場合、TLB201で変換された物理アドレスが本
発明のデータ処理装置100の外部に出力されることに
より外部からデータがフェッチされる。
(5,3)  rオペランドアクセス部のデータライト
動作」 オペランドアクセス部120に対するデータのライト動
作はTLB201のアクセスに関してはデータリード動
作時と同様である。
データバッファ202が内蔵データキャンシュとして動
作する場合、データバッファ202のアクセス動作もデ
ータリード動作と類似しているが、データバッファ20
2からデータが読出されることはない。
データライト動作ではデータバッファ202がヒツトし
た場合はヒントしたエントリにデータが書込まれる。ミ
スした場合はデータバッファ202にはデータは書込ま
れず、エントリの更新動作も行われない。
本発明のデータ処理袋Wllooのデータバッファ20
2はライトスルー制御のデータキャッシュとして動作し
、データライト動作時にデータバッファ202がヒント
した場合もミスした場合もストアデータが外部へ出力さ
れる。
データバッファ202がトレースメモリとして動作する
場合はオペランドライト時にデータバッファがアクセス
されることはない、この場合、TLB201で変換され
た物理アドレスが本発明のデータ処理装置OOの外部へ
出力されると共にストアデータが外部へ出力される。
外部へのデータのストア処理は最小でも2クロツクを必
要とし、本発明のデータ処理装置100のEステージ3
5のストア動作速度に比べて低速である。このため、ス
トアデータはそのストア動作を行った命令のPC値、ス
トア先の物理アドレス、ストア先の論理アドレスと共に
ストアバッファに一旦登録され、その後にストアバッフ
ァがストア動作を行う。ストアバッファに登録されるス
トア動作を行った命令のPC値はpc計算部11Gから
入力された命令のpc値である。
(5,4)、 rオペランドアクセス部の実行命令アド
レストレース動作」 本発明のデータ処理装置100のデータバッファ202
は内蔵データキャッシュとして動作する他、モード切換
えによりトレースメモリとしても動作する。
データバッファ202がトレースメモリとして動作する
場合は、pc計算部116から転送されてくるPC値が
データ入出力回路207を通じてデータバッファ202
に書込まれる。データバッファ202中でPC値を書込
むべきエントリのアドレスはエントリポインタ209に
より指し示される。エントリポインタ209はトレース
動作の開始時に“0#にクリアされ、PC(iが書込ま
れる都度インクリメントされる。
データバッファ202は4バイトX 2048エントリ
の容量があり、4バイトのPC値を2048個まで登録
できる。このため、エントリポインタ209の値が20
48になるとデータバッファ202はオーバーフローし
、デバッグトランプが発生する。
(5,5)  rオペランドアクセス部のトレースアド
レスダンプ動作」 本発明のデータ処理袋2100はDMP命令を実行する
ことによりデータバッファ202の内容を外部へ出力す
る。出力光の外部メモリのアドレスは汎用レジスタRO
で指し示される。
データバッファ202をトレースメモリとして動作させ
て蓄えた実行命令アドレスのトレース結果はこのDMP
命令により外部に出力されてソフトウェアのデバッグに
利用される。
また、DMP命令はデータバッファを内蔵データキャッ
シュとして動作させた場合に、キャッシュのデータ部を
診断するためにもイ1゛効である。
DMP命令が実行されるとエントリポインタ209がゼ
ロクリアされ、エントリポインタ209が指すエントリ
からデータ入出力回路207にPC(fiが読出され、
ストアバッファに転送される。エントリポインタ209
の内容はpc値が読出される都度インクリメントされる
データバッファ202からのPC(直の読出しに同期し
て整数演算部からはpc値の転送先である外部メモリの
アドレスがアドレス出力回路206を通じてストアバッ
ファ208に送られる。pc値の転送先アドレスの先頭
は汎用レジスタROの値であり、pc値が転送される都
度整数演算部117で4づつインク(6)「外部アクセ
ス動作」 (6,1)  r入出力信号線」 第7図は本発明のデータ処理v装置100の入出力信号
を示す模式図である。
本発明のデータ処理装置100は、電源Vccと接jl
cNn、  64本のデータピンと32本のアドレスピ
ンと32本の命令ピン及び入力クロックCLKの他に種
々の制御信号を人出力する。
命令アクセスの場合もデータアクセスの場合も、アドレ
スピンへは物理アドレスが出力される。
CLKは外部入カクロソクであり、本発明のデータ処理
装置100の動作クロックと同一周波数のりロックであ
る。
データアドレスストローブDASI (IIはfl、論
理を表す)はアドレスピンに出力されたデータアドレス
が有効であることを示す。
リードライトR/Mlはデータビンでのバスサイクルが
人力であるか出力であるかを区別する。
データストローブDSIは本発明のデータ処理装置10
0がデータ入力準備を完了したことまたは本発明のデー
タ処理装置100からデータが出力されたことを示す。
DCIは本発明のデータ処理装置100にデータアクセ
スサイクルを終了してもよいことを通知する信号である
BAT(0:2)は第28図に示す様に、アドレスピン
とデータビンとの値の意味を示す。
命令アドレスストローブIASIはアドレスピンに出力
された命令アドレスが有効であることを示す。
命令ストローブ■S#は本発明のデータ処理装置100
が命令人力準備を完了したことを示す。
IcIは本発明のデータ処理装置100に命令アクセス
サイクルを終了してもよいことを通知する信号である。
ホールドリクエストHREQIは本発明のデータ処理装
置100にバス権を要求する信号であり、IIACKI
Iは本発明のデータ処理装置100がホールドリクエス
トHREQIを受付けてバス権を他のデバイスに渡した
ことを示す信号である。
IREQ(0:2)は外部割込み要求信号である。
」^CKIは本発明のデータ処理装置100が外部割込
みを受付け、割込みベクトルアクセスサイクルを行って
いることを示す信号である。
(6,2)  r外部デバイスのアクセス」本発明のデ
ータ処理装置100を用いた第6図に示したシステムの
例では、本発明のデータ処理装置100とデータキャッ
シュ107.108とがデータビンに接続するデータバ
ス102.  アドレスビンに接続するアドレスバスl
otの他、BAT(0:2)、 DASI。
R/Wl、 DSI、口C1でも接続されている。
本発明のデータ処理装置100と命令キャッシュ11と
は命令ビンに接続する命令バス103.  アドレスバ
ス101の他、BAT(0:2)、 IAS#、 15
1. IC#でも接続されている。
CLKはシステム全体に供給されシステムの基本タイ稟
ングを決定するクロックである。
標準アクセスモードでのバスアクセスに際しては、デー
タバス102を用いたデータアクセスと命令バス103
を用いた命令アクセスとをそれぞれ十分高速な外部のメ
モリに対して外部人カクロンクC1Jの2サイクルに1
度の速度で行う。
クワンドアクセスモードでのバスアクセスに際しては、
データバス102を用いたデータアクセスと命令バス1
03を用いた命令アクセスとをそれぞれ十分高速な外部
のメモリに対して外部人力クロックCLにの5サイクル
に4度の速度で行う。
アドレスバス101はデータキャッシュ107.108
のアクセスと命令キャンシュ!06のアクセスとの両方
に利用される。
(7)「各種制御レジスタ」 (7,1)  rプロセッサ状!!1(PSW)の構成
」第3図は本発明のデータ処理装置10Gの整数演算部
117にあるプロセッサ状m語(psw>の構成を示す
模式図である。
第3図において、5Mビット20はリング0で割込み処
理用スタックポインタを使用中であるかりフグ0用スタ
ックポイりタを使用中であるかを示す。
RNGフィールド21はプログラムが実行されているリ
ングの番号を示す。
ATフィールド22はアドレス変換とメモリ保護とのモ
ードを示す。
PRビット23は浮動小数点演算トラップの起動モード
を示す。
DBビット24はデバッグ条件を示す。DB、、 1で
あればデバッグサポート機構がオンで、デバッグ条件が
成立すればセルフデバッグトラップが起動される。 D
B・0であればデバッグサポート機構がオフで、デバッ
グ条件が成立してもセルフデバッグトラップは起動され
ない。
団^Sにフィールド25は外部割込みのマスクレベルを
示す。IM^SKフィールド25で示されたマスクレベ
ルより優先度が高い外部割込みが本発明のデータ処理袋
2100に入力されると割込み処理が起動される。
PRNGフィールド26は現在のリングを呼出したリン
グのリング番号を示す。
FLAGフィールド27は整数演算に関するフラグを示
す。
PS−はリセット時にはオールゼロにクリアされる。ま
た、PSHはLDC命令とSTC命令とでその内容を読
出すこと及び指定した内容を書込むことがそれぞれ可能
である。
(7,2)  rデバッグ制御レジスタの構成」第2図
は本発明のデータ処理装置100のデバッグサポート機
構を制御するデバッグ制御レジスタの構成を示す模式図
である。
デバッグ制御レジスタはPSHのDBビフト24が“1
1である場合に有効となるレジスタで、P側のDBビッ
ト24が10”である場合は全ビットが“0”である場
合と等価な動作を行う。
デバッグ制御レジスタはリセット時にはオールゼロにク
リアされる。  LDC命令とSTC命令とでその内容
を読出すこと及び指定した内容を書込むことがそれぞれ
可能である。
第2図において、Sχフィールド6は本発明のデータ処
理装置100に対して命令をステップ実行することを指
定するフィールドで以下の意味を有する。
5X=OOニステップ実行モードでない。
5X−Of ニステップ実行モードである。
命令を1つずつ逐次実行する。複数 の命令をパイプライン上に取込んで 同時に処理することはない。従って、 各命令の切目で逐次的に例外や割込 みを受付ける。但し、命令のブリフ エノヂは行う。
5X=lO: ステップ実行モー]゛である。
ブランチ等の命令実行シーケンスに 乱れを生しさせるような命令(プリ ブランチの誤りによる本来の直後の 命令への復帰を除く)を実行すると デバッグ事象を検出する 5X=11 : ステツブ実行モードである。
各命令の切れ目でデバッグ事象を検 出する。
S^ビフト1はSxフィールド6に対応してステップ実
行ステータスを示すビットであり、以下の意味を有する
SA・0ニステップ実行によるデバッグ事象が検出され
なかったことを示す。
5A=l ニステップ実行モードでデバッグ事象が検出
されたことを示す。
TGビ・7ト7はトレースの開始及び終了アドレスをそ
れぞれ指定するトリガポイントレジスタであるTGPO
及びTGPIの有効無効を制御するビットであり以下の
意味を有する。
TG・O: TGPOとTGPIとを無効にする。
TG・1 : 71;PO又はTGPIにセットされた
アドレスの命令が実行されると、トレースメモ リ制御ビット(Tビット)9の値を切替える。命令の先
頭アドレスのみをチエツ クする。
Jビット8はデータバッファ202をトレースメモリと
して動作させた際の動作モードを指定するビットであり
、以下のような意味を有する。
J=0:全命令のPC値をトレースメモリへの格納対象
とする。
J・1ニブランチ等の命令実行シーケンスに乱れを生し
させるような命令(プリブラ ンチが誤りであった際に本来の命令の 直後の命令への復帰を除く)のPC(lI!とジャンプ
先の命令のpc(aとをトレースメモリへの格納対象と
する。
Tビット9はデータバッファ202がトレースメモリと
して動作中であるか否かを示すビットであり、以下の意
味を有する。
T・0: トレースメモリを動作させない。トレース中
でない。
T=l:)レースメモリを動作させる。トレス中である
TAビット2はトレースメモリのオーバフローによりデ
バノグトラソプが発生したか否かを示すビットであり、
以下のような意味を有する。
TA・0ニドレースメモリのオーバーフローではデバッ
グ事象が検出されなかったこと を示す。
TA・1ニドレースメモリのオーバーフローでデバッグ
事象が検出されたことを示す。
Eビット10は命令アドレスのブレイクポイントレジス
タであるXBPOとXBPIとの有効無効を制御するビ
ットであり、以下の意味を有する。
E=O: XBPOとXBPIとを無効にする。
E・1:にBPO又はXBPIにセントされたアドレス
の命令が実行されるとデバッグ事象を 検出する。命令の先頭アドレスのみを チエツクする。
EAフィールド3はEビット10に対応して実行ブレイ
クのステータスを示すフィールドであり、以下の意味を
有する。
EA=00 : XBPO,XBPIノ示すアドレスで
はデバッグ事象が検出されなかったことを 示す。
EA・10 : EA=01 7 E^=11 = XBPOの示すアドレスでデバッグ事象が検出されたこ
とを示す。
XBPIの示すアドレスでデバッグ事象が検出されたこ
とを示す。
XBPO及びXBPIの示すアドレス両方でデバッグ事
象が検出されたことを示 す。
Rビット11はデータリードアクセスに対してプレイク
ポイントレジスタである0BPOと0BPIとの有効無
効を制御するビットであり、以下の意味を有する。
R−0:オペランドリードアクセスに対して0BPOと
0BPIとを無効にする。
R・I : 0BPO又は0BPIにセントされたアド
レスに対してオペランドの読出しが行われ ると、デバッグトランプを発生する。
メモリ間接アドレッシングのためのメ モリアクセスもデバッグ事象の検出対 象となる。命令の読出しに対してはデ バッグ事象を検出しない。
1?Aフイールド4はRビット11ムこ対応してデータ
リードに対するブレイクステータスを示すフィールドで
あり、以下の意味を有する。
R^−00: 0BPO,0BPIの示すアドレスから
の読出しに際してはデバッグ事象が検出 されなかったことを示す。
R^・10 : 0BPOの示すアドレスからの読出し
に際してデバッグ事象が検出されたこ とを示す。
12A=01 : 0BPIの示すアドレスからの読出
しに際してデバッグ事象が検出されたこ とを示す。
RA=11 : 0BPO及び0BPIの示すアドレス
からの読出しに際してデバッグ事象が検出 されたことを示す。
Wビン目2はデータライトアクセスに対してブレイクポ
イントレジスタである0BPOと0BPIとの有効無効
を制御するビットであり、以下の意味を有する。
−・0ニオペランドライドアクセスに対して0BPOと
0BPIとを無効にする。
−・1 : 0BPO又は0BPIにセットされたアド
レスに対してオペランドの書込みが行われ るとデバッグ事象を検出する。
一^フィールド5はWピッ目2に対応してデrクライト
に対するブレイクステータスを示すフィールドであり、
以下の意味を有する。
−^=oo : 0BP0.1の示すアドレスへの書込
みではデバッグ事象が検出されなかった ことを示す。
HA=10 : 0BPOの示すアドレスへの書込みで
はデバッグ事象が検出されたことを示 す。
HA・01 : 0BPIの示すアドレスへの書込みで
はデバッグ事象が検出されたことを示 す。
WA=11 : 0BPO及び0BPIの示ずアドレス
への書込みでデバッグ事象が検出されたこ とを示す。
(7,3)  rデバッグ補助レジスタ」デバッグ制御
レジスタの動作を補助するため、本発明のデータ処理装
置100はトレースカウントレジスタ、トリガポイント
レジスタ、ブレイクカウントレジスタ、ブレイクポイン
トレジスタ、命令アドレスブレイクポイントレジスタ、
オペランドアドレスブレイクポイントレジスタを有する
これらの各デバッグ補助レジスタに対してはLDC命令
とSTC命令とでその内容を読出すこと及び指定した内
容を書込むことがそれぞれ可能である。
第29図はトレースカウントレジスタの構成を示す模式
図である。
トレースカウントレジスタは、データバッファ202が
トレースメモリとして動作中に格納した命令アドレスの
数を示す。このレジスタは整数演算部117にあり、第
1マイクロROM部113により制御される。
第30図はトリガポイントレジスタの構成を示す模式図
である。
トリガポイントレジスタはTGPO及びTGPIの2つ
がオペランドアクセス部120にあり、トレース開始の
命令アドレス及びトレース終了の命令アドレスをそれぞ
れ示す。
第31図はブレイクカウントレジスタの構成を示す模式
図である。
ブレイクカウントレジスタは0BPO,0BPI、 X
BPO。
XBPIまたはステップ実行モードで検出されたセルフ
デバッグトラップの数をカウントする。
このレジスタは、ブレイクポイントによるセルフデバフ
グトラソブが検出される都度lずっ値をディスカウント
し、ブレイクカウントレジスタの値がゼロのときにブレ
イクポイントによるセルフデバッグトラップが検出され
るとE1丁処理を起動する。
このレジスタは整数演算部117にあり、第1マイクロ
ROM部113により制御される。
第32図は命令アドレスブレイクポイントレジスタの構
成を示す模式図である。
命令アドレスブレイクポイン1−レジスタはXBPOと
XBPIとの2つがpc計算部116にあり、実行した
命令に対するブレイクポイントのアドレスが入る。
第33図はオペランドアドレスブレイクポイントレジス
タの構成を示す模式図である。
オペランドアドレスブレイクポイントレジスタは081
”Oと0BPIとの2つがオペランドアクセス部120
にあり、オペランドアクセスに対するブレイクポイント
のアドレスが入る。
(7,4)  rバッファメモリ制御レジスタ」第8図
は本発明のデータ処理装置100のデータバッファ20
2と内蔵命令キャッシュとを制御するバッファメモリ制
御レジスタの構成を示す模式図である。
聞フィールド28はデータバッファ202をII mす
るフィールドであり、以下の意味を有する。
DM=00 : データバッファを動作させない。
DM・01:データバッファをデータキャッシュとして
動作させ、キャッシュフリー ズ状態にする。
Dl’1=107データバンフアをラインサイズ16バ
イトのデータキャッシュとして動作 させる。
聞・11: データバッファをラインサイズ32バイト
でデータキャッシュとして動作 させる。
1Mフィールド29は内蔵命令キャッシュを制御するフ
ィールドであり、以下の意味を有する。
IM・00:内蔵命令キャンシュを動作させない。
IM・01:内蔵命令キャッシュを動作させ、キャッシ
ュフリーズ状態にする。
IM・10:内蔵命令キャッシュをラインサイズ16バ
イトで動作させる。
IM=11 : reserved。
(8)「本発明のデータ処理装置の例外処理機能」(8
,1)  r本発明のデータ処理装置で検出されるBI
Tの種類」 本発明のデータ処理装置100で発生するBITには、
命令に依存しないBITとして、アクセスした論理アド
レスに対応するデータ及び命令が主メモ17109上に
なくページフォールトが発生した場合に検出されるペー
ジ不在例外、論理アドレスを物理アドレスに変換中に発
生するエラー、メモリ保護違反及びl10eff域に関
する不当なアクセスが生じた場合に発生するアドレス変
換例外、命令またはオペランドアクセスにおいて一定時
間以内にバスからの応答がなくメモリアクセスが実行さ
れなかった場合に発生するバスアクセス例外がある。
また、命令に依存して発生するBITとして、ジャンプ
命令のジャヤンブ先アドレスが奇数であった場合に発生
する奇数アドレスジャンプトラップ。
割当てられていない命令及びアドレッシングモードのビ
ットパターンを実行しようとした場合に発生ずる予約命
令例外、整数演算でO除算を行なった場合に発生するゼ
ロ除算トラップ、浮動小数点命令を実行した際にマスク
されていない例外を検出した場合に発生する浮動小数点
演算トラップ。
TRAPA命令により発生する無条件トラップ、 TR
AP/cc命令により発生する条件トラップがある。
その他、命令のアドレスがブレイクポイントにヒツトし
た場合あるいはシングルステップモードで命令を実行し
た場合にトレースメモリのオーバフローにより発生する
セルフデバッグトラップ。
更には外部からのハードウェア信号により発生する外部
割込み、インサーキット・工ごユレータ用のハードウェ
ア割込みであるデバッガ−割込みがある。
(8,2)  rEIT処理ハンドラを起動する時の動
作」本発明のデータ処理袋2100ではEI丁を検出す
ると、以下の手順に従うマイクロプログラムが実行され
、BIT処理ハンドラが起動される。
まず、検出したEITに応じたベクトル番号が本発明の
データ処理装置100内部で生成される。
次に、メモリ空間上にあり、それぞれのBITに対する
処理ハンドラの先頭アドレスとEITのベクトルとがペ
アにして記憶されているIEITベクトルテーブルがア
クセスされる。
EITベクトルテーブルの各エントリは8バイトで構成
されており、EIT処理ハンドラに処理が移る前に本発
明のデータ処理装置100のプロセッサステータスワー
ド(PSW)を更新するためのデータが含まれている。
次に、BIT処理ハンドラから復帰した後に元の命令列
に戻るための戻り先命令のpc値であるNIEXTPC
,EITを起動する前のpsw、  及び検出したEI
Tの番号等の検出したEITに関する各種の情報である
BITINFがスタックに退避される。
更に必要であれば、EITを検出した命令のPC値等の
情報もスタックに退避される。
これらの処理により生成されるスタックフレームはBI
Tの!i類に依存しており、5種類のフォーマットに分
かれる 次に、読込まれたBITベクトルテーブルエントリに基
づいてPSuが更新される。この際、PSHにrese
rvedの値がセントされようとするとシステムエラー
となる。このPS−の更新により、メモリ保護情報とな
るリング番号の更新、アドレス変換の有無の切換え、デ
バッグ環境の切り換え9割込みマスクレベルの切換え、
浮動小数点演算トラップ受付モードの切換えを行うこと
可能になる。
次に、BITテーブルのエントリからフェッチされたP
C(Ifjへのジャンプが行われ、BIT処理ハンドラ
が起動する。多重にBITが検出されており、未処理の
EKTが抑止されていない場合はBIT処理ハンドラの
先頭命令を実行する以前にその未処理のBITに対する
BIT処理ハンドラを起動するための処理が行われる。
(8,3)  r EIT処理ハンドラから元の命令列
への復帰動作」 BIT処理ハンドラによる各BITに対応する処理が終
了した後、EIT処理ハンドラで最後に実行されるRE
IT命令では以下のような処理を行うマイクロプログラ
ムが実行されて元の命令列に復帰する処理を行う。
まず、スタックからBITが検出された時点のpsw値
とEITINFとが読込まれる。続いてスタックから戻
光命令の論理アドレスが読込まれる。
更に、BITINF中のフォーマント情報により追加情
報の有無が判定され、追加情報があればスタ・ツクから
それが読込まれる。追加情報は前述の如く5つのフォー
マントに依存してそれぞれ異なる。
次に、スタックから読込まれたBITが検出された時点
のpsw値に従ってPSHの全フィールドがEIT発生
前の値に復帰される。
EITを発生したストアバッファによるライトサイクル
の再実行をREIT命令の実行中に行なう場合がある。
次に、スタックから読込まれた戻り先命令の論理アドレ
スへのジャンプが実行され、元の命令列(91r )レ
ースメモリの利用例」 本発明のデータ処理装置100では、PS−のDBビッ
ト24を“1″としてデバッグ制御レジスタのTGビ、
/ドア又はTピント9を“1″にすると、パンツアメモ
リ制御レジスタの0Mフィールド288は無関係にデー
タバッファ202はトレースメモリとして動作する。
TGビット7、Tビット9のセント等のデバッグ制御レ
ジスタの操作はシステムプログラムのハンドラ中でPS
WのDBビフト24を“0”にセントした状態で行われ
、ハンドラからユーザプログラムに戻る際にps!4の
I)Bビット24が°ドにセットされる。
Tビット9が“1′にセントされた場合には、DBビッ
ト24が“l”になっt・時点から即座にトレースが開
始される。
?Gピント7がセットされた場合は、TGPOまたはT
GPIが示すアドレスの命令が実行されてTビット9が
セットされることによりトレースが開始される。
トレースの終了は、トレースメモリがオーバーフローし
た場合、XBPO,XBPIが示すアドレス命令の実行
に伴うブレイクデバッグトラソプの起動の際にPShの
DBビット24が“1”から“0″にクリアされること
により終了する。
デバッグトラノブに対するハンドラの中でDMP命令が
実行されると、データバッファ202中に蓄えられたト
レース結果が外部のメモリにダンプされる。また、この
際にトレースカウントレジスタの値をSTC命令で読出
すことにより、ダンプされたトレース結果であるPC値
の数を知ることも可能である。
トレースの終了はデバッグトラノブを起動しなくともT
GPOまたはTGPIのレジスタで示されたアドレスの
命令を実行してTビット9をクリアすることでも行える
デバッグ制御レジスタのJビット8が“0″である場合
はTビット9が“ドである間に実行された全命令のPC
値がデータバッファ202にトレース結果として蓄えら
れる。しかし、Jビット8が“l”である場合は、ジャ
ンプあるいはEITの発生により命令のシーケンスを乱
した命令のPC値と、その際のジャンプターゲットの命
令のPC値とのみがPC計算部116からオペランドア
クセス部120へ送られてデータバッファ202にトレ
ース結果として蓄えられる。
Jビット8が°1”である場合は、トレース結果のジャ
ンプターゲットの命令と次のジャンプを起こす命令との
間に実行された命令のPC値はトレース対象とはならな
い、このため、全命令のPC値のトレース結果を得るに
は、ソフトウェアでの解析処理が別途必要であるが、J
ビット8が“O”である場合に比してトレースメモリが
節約されるので、長い区間のトレースを行うことが可能
である。
第34図にトレース動作の第1の具体例として、TGP
Oで指定されたll’00004000番地(「は16
進数を表す)の命令からTGPIで指定されたH ’ 
00005000番地の命令が実行されるまでの間のト
レースをJビット8を′1”として行う場合のフローチ
ャートを示す。
まず、TRAP命令によりハンドラが起動され、その際
にPSHの[)Bビット24が10″にされる(ステッ
プ31)。
次に、LDC命令によりデバッグ制御レジスタのTGピ
ノl−7とJビット8とが共に“1″に、他の各ビット
が“0″にされ(ステップ32)、更にTPGOにH’
0OO04000(H”は16進数を表す)が、TPG
IにH゛00oosoooがそれぞれロードされる(ス
テップS3.S4)。
次に、REFT命令によりハンドラから復帰し、その際
にPS−のDBビット24が“1m にされる(ステッ
プS5)。
次に、Eステージ35で実行された命令(命令へとする
)のPC値がTGPOで指定されたアドレスl+’00
004000と一致し、デバッグ制御レジスタのTビッ
ト9が“O“から“1″になってトレース動作が起動す
る。この際、トレースカウントレジスタはゼロクリアさ
れる(ステップ36)。
しステージで実行された命令の内のシーケンスを見出す
命令とジャンプ先の命令とのPC値がPC値計算部11
6からオペランドアドレスアクセス部120に登録され
、データバッファ202に登録される。
なお、PC値転送の都度トレースカウントレジスタがイ
ンクリメントされる(ステップS7)。
Eステージ35で実行された命令(命令Bとする〉のP
C(JがTGPIで指定されたアドレスH’ 0000
5000と一致し、デバッグ制御レジスタのTビット9
が“1“から“0”になるとトレース動作が停止される
(ステップS8)。
次に、TRAP命令によりハンドうが起動され、この際
にPS−のDBビット24が“0”にされる(ステップ
S9)。
次に、DMP命令によりデータバッファ202の内容が
、ROにて示されるアドレスから始まる外部命令の領域
へ読出される(ステップ510)。
最後に、LDC命令によりトレースカウンタの内容が読
出される (ステップ511)。
また、第35図にトレース動作の第2の具体例として、
TGPOで指定されたH ’ 00006000番地の
命令からXBPOで指定されたH ’ 0000700
0番地の命令が実行されるまでの間のトレースをJビッ
ト8を“0“として行い、H” 00007000番地
の命令が実行される前にトレースメモリがオーバーフロ
ーしてトレースが終了した場合の手順のフローチャート
を示す。
まず、TRAP命令によりハンドラが起動され、その際
にPS−のDBビット24が“0″にされる(ステップ
521)。
次に、I、DC命令によりデバッグ制御レジスタのTG
ビット7とEビット10とが共に“l”に、他の各ビッ
トが“O”にされ(ステップ32)、更にTPGO及び
↑PG 1 ニH’ 00006000が、XBPO及
びXBPlニll’00007000がそれぞれロード
される(ステップS22〜526)。
次に、REIT命令によりハンドラから復帰し、その際
にPSHのOBビット24が“l”にされる(ステップ
527)。
次に、Eステージ35で実行された命令(命令Cとする
)のPC値がTGI’Oで指定されたアドレス1100
006000と−敗し、デバッグ制御レジスタの′rビ
ット9が“0′から“1′″になるとトレース動作が起
動する。この際、トレースカウントレジスタはゼロクリ
アされる(ステップ52B)。
命令CのPC値から順に、Eステージ35で実行された
命令のPC値がPCC計算部116からオペランドアク
セス部120へ転送されてデータバッファ202に登録
される。pc値の転送の都度、トレースカウントレジス
タがインクリメントされる(ステップ529)。
に8POで指定されたアドレス11 ’ 000070
00をPC値とする命令りの実行以前にトレースカウン
トレジスタの値が2048になるとデータバッファ20
2はオーバフローし、デバッグトラップが起動される。
ハンドラの起動時にPS−のOBビフト24が“02に
される(ステップ530)。
次に、DMP命令によりデータバッファ202の内容が
、ROにて示されるアドレスから始まる外部命令の領域
へ読出される(ステップ531)。
最後に、LDC命令によりトレースカウンタの内容が読
出される(ステップ532)。
(2)「本発明の他の実施例」 上記実施例では、データバッファをトレースメモリとし
て動作させることを指示するデバッグ制御レジスタのT
ビットと、データバッファをデータキャッシュとして動
作させることを指示するパンファメモリtIIImレジ
スタの0Mフィールドとは独立に値を設定できる例につ
いて説明したが、1つのレジスタの1つのビットでデー
タバッファがデータキャッシュとして動作する場合とト
レースメモリとして動作する場合とを指示するような構
成を採ってもよい。
また、上記実施例では、実行した命令のプログラムカウ
ンタ値をトレースメモリに蓄える例について説明したが
、トレースメモリにはリードしたメモリオペランドアド
レス又はストアしたメモリオペランドのアドレス等、他
のトレース情報を蓄える構成を採ってもよい。
[発明の効果] 本発明のデータ処理装置は上述のように、第1の発明に
よれば、命令をデコードする命令デコード部と、命令を
実行する命令実行部(演算部)と、命令デコード部に接
続されて命令デコード部の出力に従って演算部を制御す
る制御部(マイクロROM部〉と、モード切替えにより
データキャッシュまたはデバッグ情報を蓄えるためのト
レースメモリとして動作する記憶装置(データバッファ
)と、データバッファのモードを指定する情報を保持す
るデバッグ制御レジスタとを備え、デバッグ制御レジス
タのTGビットとTビットとが“O”にセントされてい
る場合はデータバッファは通常のデータキャッシュとし
て動作し、PS−のDBビットが@1″でありデバッグ
制御レジスタのTGビットとTビットとが“11にセン
トされている場合はデータバッファはトレースメモリと
して動作し、演算部で実行された命令のPC計算部で計
算されたプログラムカウンタ値をトレース情報として蓄
える。
このため、高速記憶装置であるデータバッファをキャッ
シュメモリとしてだけでなく、トレースメモリとしても
利用出来るので、データバッファの効率的な利用が可能
になる。トレース情報は一旦データバッファに蓄えられ
、トレース終了後に専用のDMP命令でデータバッファ
から外部メモリへ読出されるので、本発明のデータ処理
装置を1つの集積回路上に実現した場合でもトレース情
報を外部メモリに出力する専用の出力ピンは不要であり
、外部メモリの速度もトレース時の命令処理時に比して
低速にすることができる。
更に、デバッグ制御レジスタにはプログラムカウンタ値
を選択的にトレースメモリに蓄えることを制御するJビ
ットを備え、Jピントを“1”にセットした場合にデー
タバッファが1−レースメモリとして動作する際は、ジ
ャンプの実行1例外及び割込みの発生等によりプログラ
ムの実行シーケンスを乱す命令とそのジャンプ先の命令
のブトコグラムカウンタ値のみを選択的にトレースメモ
リに蓄えるので、1−レースメモリを有効に利用してト
レース区間を長くとることができる。
また第2の発明では、データバッファがトレースメモリ
動作時に蓄えたトレース情報であるプログラムカウンタ
値の数をカウントするトレースカウントレジスタと、デ
ータバッファがトレース動作時にオーバフローした場合
にデバソグトラソプが起動される。このi能により、ト
レースメモリがオーバフローした場合には即座にトレー
スが中断されてデバッグ処理ハンドラによりトレース情
報が外部へ読出され、トレースカウントレジスタをクリ
アして更にトレースを続行させたり、オーバフロー時点
でトレースを終了してトレース情報の解析処理を行った
りすることが容易に可能になる。なお、トレースカウン
トレジスタの値はトレースがオーバフロー前に終了した
際には、トレースメモリの有効情報数を知るための情報
としても利用可能である。
更に第3の発明では、トレースメモリには実行が完了し
た命令のプログラムカウンタ値のみが蓄えられるので、
命令の実行と命令のデコードとがパイプライン処理され
ていてデコードは行われたが実行されなかった命令のプ
ログラムカウンタ値はトレースの対象とはならない。従
って、パイプライン処理が行われている場合においても
、常時具に実行した命令のプログラムカウンタ値のみが
トレースメモリに蓄えられる。
【図面の簡単な説明】
第1図は本発明のデータ処理装置のオペランドアクセス
部を示すブロック図、 第2図は本発明のデータ処理装置のデバッグ制御レジス
タの構成を示す模式図、 第3図は本発明のデータ処理装置のプロセッサ状態語(
PSW)の構成を示す模式図、第4図は本発明のデータ
処理装置の全体を示すブロック図、 第5図は本発明のデータ処理装置のパイプライン処理ス
テージの説明のための模式図、第6図は本発明のデータ
処理装置を用いたデータ処理システムの構成例を示す模
式図、第7図は本発明のデータ処理装置の入出力信月を
示す模式図、 第8図は本発明のデータ処理装置のバッツァメモリ制御
レジスタの構成を示す模式図、第9図乃至第13図は本
発明のデータ処理装置の命令のフォーマントを示す模式
図、 第14図乃至第27図は本発明のデータ処理ViEの命
令中のアドレッシングモード指定部のフォーマントを示
す模式図、 第28図は本発明のデータ処理装置のBAT(0:2)
信号の意味を表す表を示す図、 第29図は本発明のデータ処理装置のトレースカウント
レジスタの構成を示す模式図、 第30図は本発明のデータ処理装置のトリガポイントレ
ジスタの構成を示す模式図、 第31図は本発明のデータ処理装置のブレイクカウント
レジスタの構成を示す模式図、 第32図は本発明のデータ処理装置の命令アドレスブレ
イクポ、インドレジスタの構成を示す模式図、第33図
は本発明のデータ処理装置のオペランドアドレスブレイ
クポイントレジスタの構成を示す模式図、 第34図及び第35図は本発明のデータ処理装置でデー
タバッファをトレースメモリとして使用する場合の動作
手順の一例を示すフローチャートである。 7・・・TGビフト  8・・・Jピント  9・・・
Tビット  112・・・命令デコード部 113・・
・第1マイクロROM部 117・・・整数演算部 2
02・・・データバンフ116・・・プログラムカウン
タ値計算部なお、各図中同一符号は同−又は相当部分を
示す。 代 理 人 大 岩 増 雄 第 6 図 第 図 (遍しのビット番号〉 0 516 324 1 〈バイト毎のビット番号〉 0 0 N+1 N+2 N+3 (アドレス〉 1話アドレス ←MSBI 高7ドレス→ LSBI→ →→命令を忌む方向→→ 図 BYTE : N+2 BYTE: N+2−1 1 図 BYTE: N+2−1 BYTE: N+2 N+2+1 N+2+2 −−−−−−  N+2+M+2−12 図 BYTE: 3 図 4 図 5 図 弔 6 図 第 7 図 第 1日 図 9 図 (5h) (Ea) 日】] 巳ヨIヨ 0 図 (sh) (Ea) 田Iヨ 巴ヨエヨ 1 図 2 図 第 23 図 第 4 図 第 5 図 弔 6 図 第 7 図 第 8 図 0 第 9 図 第 0 図 1 手 続 補 正 書(自発) 平底  年 月 0 日 2、発明の名称 データ処理装置 3、補正をする者 代表者 士 Iじ1 岐 守 哉 4、代 理 人 (j1m先03(3213)3421特許tS>&補正
の対象 明細書の「特許請求の範囲」及び「発明の詳細な説明」
の欄、並びに図面 6、補正の内容 6−1明細書の「特許請求の範囲」の柵別紙の通り 6−2明細書の「発明の詳細な説明」の柵(1)  明
細書の第6頁16行目に「パイプラインへjとあるのを
削除する。 (2)明細書の第1O頁18行目から19行目に「マイ
クロ部」とあるのを、rマイクロプログラムROM部」
と訂正する。 (3)明細書の第11頁6行目にrTGビットとTビッ
トとが共に“l”Jとあるのを、「Tビットが“l”」
と訂正する。 (4)  明細書の第35頁8行目にr等ど」とあるの
を、「等」と訂正する。 (5)明細書の第35頁18行目にr大2」とあるのを
、「第2」と訂正する。 (6)明細書の第43頁20行目にr122Jとあるの
を、r121 J と訂正する。 (7)明細書の第44頁9行目にr12:INとあるの
を、r121J と訂正する。 (8)明細書の第51頁lO行目に「実行部された」と
あるのを、「実行された」と訂正する。 (9)  明細書の第52頁3行目に「された時点で」
とあるのを、「されてJと訂正する。 αG  明細書の第52頁7行目に「第4図Jとあるの
を、「第5図」と訂正する。 aυ 明細書の第60頁3行目に「までで」とあるのを
、「まで」と訂正する。 aカ 明細書の第60頁6行目に「Rコード45」とあ
るのを、「Eコード45」 と訂正する。 03  明細書の第74頁7行目に「データビンとの」
とあるのを、「データビンと命令ビンとの」と訂正する
。 a4  明細書の第74頁20行目にr IRBQJ 
とあるのを、rlRIJ」と訂正する。 α9 明細書の第84頁20行目から第85頁1行目に
「書込みでは」とあるのを、「書込みで」と訂正する。 Oe  明細書の第85頁3行目に「書込みではJとあ
るのを、「書込みで」と訂正する。 (2)明細書の第85頁6行目に「書込みではJとある
のを、「書込みで」と訂正する。 @ 明細書の第87頁2行目に「ディスカウントjとあ
るのを、「デクリメント」と訂正する。 aI  明細書の第89頁12行目に「エラー、メモリ
」とあるのを、「エラーあるいはメモリ」と訂正する。 ■ 明細書の第90頁10行目に1場合あるいは」とあ
るのを、「場合に、あるいは」と訂正する。 (21)明細書の第90頁11行目に「場合に」とある
のを、「場合に、またはJと訂正する。 (22)明細書の第92頁9行目に「こと可能」とある
のを、「ことが可能」と訂正する。 (23)明細書の第94頁5行目に「288は」とある
のを、128とは」と訂正する。 (24)明細書の第95頁1行目に「場合、」とあるの
を、「場合、あるいは」と訂正する。 (25)明細書の第97頁20行目に「登録」とあるの
を、r転送」と訂正する。 6−3図面 (1)第3図を別紙の通り訂正する。 但し、第8図は訂正の要なし。 (2)第5図を別紙の通り訂正する。 (3)第7図を別紙の通り訂正する。 7、添付書類の目録 (1)補正後の特許請求の範囲の全文を記載した書面 
              1通(2)訂正図面  
           1通補正後の特許請求の範囲の
全文を記載した書面2、特許請求の範囲 (1)命令をデコードする命令デコード部と、命令を実
行する命令実行部と、 前記命令デコード部に接続され、前記命令デコード部の
出力信号に従って前記命令実行部を制御する制御部と、 前記命令実行部に接続され、前記命令実行ツシングする
第1の動作又は前記命令実行部が実行した命令に関する
トレース情報を蓄える第2の動作を行う記憶装置と、 前記記憶装置に前記第1の動作又は前記第2の動作のい
ずれかを行わせる記憶装置制御情報を保持する記憶装置
制御情報保持手段とを備え、 前記記憶装置制御情報保持手段に前記記憶装置制御情報
として第1の値がセットされている場合は、前記命令実
行部が命令を実行する際に前記記憶装置が前記第1の動
作を行い、前記記憶装置制御情報保持手段に前記記憶装
置制御情報として第2の値がセットされている場合は、
前記命令実行部が命令を実行する際に前記記憶装置が前
記第2の動作を行うべくなしてある ことを特徴とするデータ処理装置。 (2)請求項1に記載のデータ処理装置において、前記
命令実行部が実行すべき命令のプログラムカウンタ値を
生成するプログラムカウンタ値生成部を備え、 前記記憶装置は、前記命令実行部が命令を実行した際に
ジャンプが発生した場合及び前記命令実行部がジャンプ
ターゲット命令を実行した場合には前記プログラムカウ
ンタ値生成部が生成したプログラムカウンタ値を蓄え、
前記命令実行部がジャンプターゲット以外の命令を実行
した際にジャンプが発生しなかった場合には前記プログ
ラムカウンタ値生成部が生成したプログラムカウンタ値
を蓄えないようになされていることを特徴とするデータ
処理装置。 (3)命令をデコードする命令デコード部と、命令を実
行する命令実行部と、 前記命令デコード部に接続し、前記命令デコード部の出
力信号に従って前記命令実行部を制御する制御部と、 前記命令実行部が実行した命令に関するトレース情報を
蓄える記憶装置と、 前記記憶装置が蓄えたトレース情報の数を記憶するレジ
スタと を備え、 前記tsn部は、前記レジスタの記憶領が所定値に達し
た場合に、例外を発生して例外処理ハンドラを起動すべ
くなしてあることを特徴とするデータ処理装置。 (4)  命令をデコードする命令デコード部と、命令
を実行する命令実行部と、 前記命令デコード部に接続し、前記命令デコード部の出
力信号を入力して前記命令実行部をf/lJ御する制御
部と、 前記命令実行部に接続され、前記命令実行部が実行すべ
き命令のコードまたはオペランドの内の少なくとも一方
オペランドとなるデータをキャッシングする第1の動作
又は前記命令実行部が実行した命令に関するトレース情
報を蓄える第2の動作を行う記憶装置と、前記命令デコ
ード部がデコードすべき命令のプログラムカウンタ値を
生成する第1のプログラムカウンタ値生成部と、 前記第1のプログラムカウンタ値生成部に接続し、前記
命令実行部が実行すべき命令のプログラムカウンタ値を
生成する第2のプログラムカウンタ値生成部と、 前記第2のプログラムカウンタ値生成部に接続し、前記
第2のプログラムカウンタ領生成部が生成したプログラ
ムカウンタ値と比較される第1.第2のプログラムカウ
ンタ値をそれぞれ保持する第1.第2のアドレスレジス
タと を備え、 前記記憶装置は、前記第2のプログラムカウンタ値生成
部が生成したプログラムカウンタ値が前記wE1のプロ
グラムカウンタ値と一致する場合は前記第2の動作を起
動して前記第2のプログラムカウンタ値生成部が生成し
たプログラムカウンタ値を蓄え、前記第2のプログラム
カウンタ値生成部が生成したプログラムカウンタ値が前
記第2のプログラムカウンタと一致する場合は前記第2
の動作を停止すべくなしてあることを特徴とするデータ
処理装置。 第 ワ 図

Claims (4)

    【特許請求の範囲】
  1. (1)命令をデコードする命令デコード部と、命令を実
    行する命令実行部と、 前記命令デコード部に接続され、前記命令 デコード部の出力信号に従って前記命令実行部を制御す
    る制御部と、 前記命令実行部に接続され、前記命令実行 部が実行すべき命令のオペランドとなるデータをキヤッ
    シングする第1の動作又は前記命令実行部が実行した命
    令に関するトレース情報を蓄える第2の動作を行う記憶
    装置と、 前記記憶装置に前記第1の動作又は前記第 2の動作のいずれかを行わせる記憶装置制御情報を保持
    する記憶装置制御情報保持手段とを備え、 前記記憶装置制御情報保持手段に前記記憶 装置制御情報として第1の値がセットされている場合は
    、前記命令実行部が命令を実行する際に前記記憶装置が
    前記第1の動作を行い、前記記憶装置制御情報保持手段
    に前記記憶 装置制御情報として第2の値がセットされている場合は
    、前記命令実行部が命令を実行する際に前記記憶装置が
    前記第2の動作を行うべくなしてある ことを特徴とするデータ処理装置。
  2. (2)請求項1に記載のデータ処理装置において、前記
    命令実行部が実行すべき命令のプログ ラムカウンタ値を生成するプログラムカウンタ値生成部
    を備え、 前記記憶装置は、前記命令実行部が命令を 実行した際にジャンプが発生した場合及び前記命令実行
    部がジャンプターゲット命令を実行した場合には前記プ
    ログラムカウンタ値生成部が生成したプログラムカウン
    タ値を蓄え、前記命令実行部がジャンプターゲット以外
    の命令を実行した際にジャンプが発生しなかった場合に
    は前記プログラムカウンタ値生成部が生成したプログラ
    ムカウンタ値を蓄えないようになされていることを特徴
    とするデータ処理装置。
  3. (3)命令をデコードする命令デコード部と、命令を実
    行する命令実行部と、 前記命令デコード部に接続し、前記命令デ コード部の出力信号に従って前記命令実行部を制御する
    制御部と、 前記命令実行部が実行した命令に関するト レース情報を蓄える記憶装置と、 前記記憶装置が蓄えたトレース情報の数を 記憶するレジスタと を備え、 前記制御部は、前記レジスタの記憶値が所 定値に達した場合に、例外が発生したとして例外処理ハ
    ンドラを起動すべくなしてあることを特徴とするデータ
    処理装置。
  4. (4)命令をデコードする命令デコード部と、命令を実
    行する命令実行部と、 前記命令デコード部に接続し、前記命令デ コード部の出力信号を入力して前記命令実行部を制御す
    る制御部と、 前記命令実行部に接続され、前記命令実行 部が実行すべき命令のオペランドとなるデータをキヤッ
    シングする第1の動作又は前記命令実行部が実行した命
    令に関するトレース情報を蓄える第2の動作を行う記憶
    装置と、 前記命令デコード部がデコードすべき命令 のプログラムカウンタ値を生成する第1のプログラムカ
    ウンタ値生成部と、 前記第1のプログラムカウンタ値生成部に 接続し、前記命令実行部が実行すべき命令のプログラム
    カウンタ値を生成する第2のプログラムカウンタ値生成
    部と、 前記第2のプログラムカウンタ値生成部に 接続し、前記第2のプログラムカウンタ値生成部が生成
    したプログラムカウンタ値と比較される第1、第2のプ
    ログラムカウンタ値をそれぞれ保持する第1、第2のア
    ドレスレジスタと を備え、 前記記憶装置は、前記第2のプログラムカ ウンタ値生成部が生成したプログラムカウンタ値が前記
    第1のプログラムカウンタ値と一致する場合は前記第2
    の動作を起動して前記第2のプログラムカウンタ値生成
    部が生成したプログラムカウンタ値を蓄え、前記第2の
    プログラムカウンタ値生成部が生成したプログラムカウ
    ンタ値が前記第2のプログラムカウンタと一致する場合
    は前記第2の動作を停止すべくなしてあることを特徴と
    するデータ処理装置。
JP1326292A 1989-12-14 1989-12-14 データ処理装置 Pending JPH03185530A (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP1326292A JPH03185530A (ja) 1989-12-14 1989-12-14 データ処理装置
US08/432,316 US5560036A (en) 1989-12-14 1995-05-01 Data processing having incircuit emulation function

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP1326292A JPH03185530A (ja) 1989-12-14 1989-12-14 データ処理装置

Publications (1)

Publication Number Publication Date
JPH03185530A true JPH03185530A (ja) 1991-08-13

Family

ID=18186143

Family Applications (1)

Application Number Title Priority Date Filing Date
JP1326292A Pending JPH03185530A (ja) 1989-12-14 1989-12-14 データ処理装置

Country Status (2)

Country Link
US (1) US5560036A (ja)
JP (1) JPH03185530A (ja)

Families Citing this family (43)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5625784A (en) * 1994-07-27 1997-04-29 Chromatic Research, Inc. Variable length instructions packed in a fixed length double instruction
US5826058A (en) * 1995-06-02 1998-10-20 Motorola, Inc. Method and apparatus for providing an external indication of internal cycles in a data processing system
US5754839A (en) * 1995-08-28 1998-05-19 Motorola, Inc. Apparatus and method for implementing watchpoints and breakpoints in a data processing system
US5754827A (en) * 1995-10-13 1998-05-19 Mentor Graphics Corporation Method and apparatus for performing fully visible tracing of an emulation
JPH1078889A (ja) * 1996-09-04 1998-03-24 Mitsubishi Electric Corp マイクロコンピュータ
US5751735A (en) * 1996-11-14 1998-05-12 Hewlett-Packard Company Integrated debug trigger method and apparatus for an integrated circuit
US5996092A (en) * 1996-12-05 1999-11-30 International Business Machines Corporation System and method for tracing program execution within a processor before and after a triggering event
JPH10214201A (ja) * 1997-01-29 1998-08-11 Mitsubishi Electric Corp マイクロコンピュータ
US6018809A (en) * 1997-03-28 2000-01-25 Emc Corp Apparatus and method for capturing information off a plurality of bi-directional communication buses
US6185732B1 (en) * 1997-04-08 2001-02-06 Advanced Micro Devices, Inc. Software debug port for a microprocessor
US6618775B1 (en) * 1997-08-15 2003-09-09 Micron Technology, Inc. DSP bus monitoring apparatus and method
JP3872196B2 (ja) * 1998-01-09 2007-01-24 株式会社ルネサステクノロジ マイクロコンピュータ
JPH11282709A (ja) * 1998-03-27 1999-10-15 Mitsubishi Electric Corp インサーキットエミュレータ
US6223338B1 (en) 1998-09-30 2001-04-24 International Business Machines Corporation Method and system for software instruction level tracing in a data processing system
US7137105B2 (en) * 1999-05-12 2006-11-14 Wind River Systems, Inc. Dynamic software code instrumentation method and system
US6397382B1 (en) 1999-05-12 2002-05-28 Wind River Systems, Inc. Dynamic software code instrumentation with cache disabling feature
JP2001202270A (ja) * 2000-01-21 2001-07-27 Mitsubishi Electric Corp 内部バストレース機能付プロセッサ
EP1257939A2 (en) * 2000-02-18 2002-11-20 Broadcom Corporation An efficient memory allocation scheme for data collection
US7113902B2 (en) * 2000-03-02 2006-09-26 Texas Instruments Incorporated Data processing condition detector with table lookup
US6813731B2 (en) * 2001-02-26 2004-11-02 Emc Corporation Methods and apparatus for accessing trace data
US6769054B1 (en) * 2001-02-26 2004-07-27 Emc Corporation System and method for preparation of workload data for replaying in a data storage environment
FR2823364B1 (fr) * 2001-04-05 2003-06-27 St Microelectronics Sa Dispositif et procede de protection partielle en lecture d'une memoire non volatile
TW527567B (en) * 2001-12-07 2003-04-11 Faraday Tech Corp Microprocessor unit with real-time tracing and the operation method thereof
JP4392681B2 (ja) * 2002-11-15 2010-01-06 エルピーダメモリ株式会社 半導体記憶装置
US8719837B2 (en) 2004-05-19 2014-05-06 Synopsys, Inc. Microprocessor architecture having extendible logic
JP2007058588A (ja) * 2005-08-24 2007-03-08 Toshiba Corp プログラム保護機能を持つプロセッサ
US20070073925A1 (en) 2005-09-28 2007-03-29 Arc International (Uk) Limited Systems and methods for synchronizing multiple processing engines of a microprocessor
US7752427B2 (en) * 2005-12-09 2010-07-06 Atmel Corporation Stack underflow debug with sticky base
WO2007096372A1 (en) * 2006-02-21 2007-08-30 Mentor Graphics Corporation Memory tracing in an emulation environment
US20070226471A1 (en) * 2006-03-13 2007-09-27 Arm Limited Data processing apparatus
US8010774B2 (en) * 2006-03-13 2011-08-30 Arm Limited Breakpointing on register access events or I/O port access events
JP4253332B2 (ja) * 2006-07-03 2009-04-08 株式会社東芝 復号装置、方法およびプログラム
US7865776B2 (en) * 2007-10-25 2011-01-04 International Business Machines Corporation Adaptive prevention of data loss during continuous event tracing with limited buffer size
GB2473850A (en) * 2009-09-25 2011-03-30 St Microelectronics Cache configured to operate in cache or trace modes
JP5617282B2 (ja) * 2010-03-09 2014-11-05 富士通セミコンダクター株式会社 データ処理システム
US20130198566A1 (en) * 2012-01-27 2013-08-01 Lsi Corporation Method and Apparatus for Debugging System-on-Chip Devices
KR20160095688A (ko) * 2015-02-03 2016-08-12 에스케이하이닉스 주식회사 반도체 메모리 장치 및 이의 동작 상태 확인 방법
CN107346282B (zh) * 2016-05-04 2024-03-12 世意法(北京)半导体研发有限责任公司 用于微处理器的调试支持单元
US10853198B2 (en) 2019-01-30 2020-12-01 Bank Of America Corporation System to restore a transformation state using blockchain technology
US10768907B2 (en) 2019-01-30 2020-09-08 Bank Of America Corporation System for transformation prediction with code change analyzer and implementer
US10824635B2 (en) 2019-01-30 2020-11-03 Bank Of America Corporation System for dynamic intelligent code change implementation
FR3100907B1 (fr) * 2019-09-16 2022-12-09 St Microelectronics Grenoble 2 Test de programme
US11544201B2 (en) * 2021-02-05 2023-01-03 Micron Technology, Inc. Memory tracing in an emulated computing system

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS588363A (ja) * 1981-07-08 1983-01-18 Hitachi Ltd プログラム実行履歴情報収集方式
JPS60171548A (ja) * 1984-02-16 1985-09-05 Mitsubishi Electric Corp プログラム動作追跡装置
JPS6383841A (ja) * 1986-09-29 1988-04-14 Hitachi Ltd プログラムテスト可能な計算機中央処理装置
JPS63284644A (ja) * 1987-05-18 1988-11-21 Matsushita Electric Ind Co Ltd 命令アドレス出力回路
JPH01124049A (ja) * 1987-11-09 1989-05-16 Mitsubishi Electric Corp マイクロプロセッサ

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5043870A (en) * 1982-02-24 1991-08-27 At&T Bell Laboratories Computer with automatic mapping of memory contents into machine registers during program execution
JPS5914062A (ja) * 1982-07-15 1984-01-24 Hitachi Ltd 二重化共有メモリ制御方法
US4674089A (en) * 1985-04-16 1987-06-16 Intel Corporation In-circuit emulator
JPH0789319B2 (ja) * 1985-04-22 1995-09-27 株式会社日立製作所 デ−タ処理装置における先行制御装置
CA1266318A (en) * 1985-10-07 1990-02-27 Hiroshi Suzuki High-speed packet-switched communications system with end-to-end flow control and retransmission
GB2200483B (en) * 1987-01-22 1991-10-16 Nat Semiconductor Corp Memory referencing in a high performance microprocessor
US5193205A (en) * 1988-03-01 1993-03-09 Mitsubishi Denki Kabushiki Kaisha Pipeline processor, with return address stack storing only pre-return processed address for judging validity and correction of unprocessed address
JPH0766324B2 (ja) * 1988-03-18 1995-07-19 三菱電機株式会社 データ処理装置
US5136696A (en) * 1988-06-27 1992-08-04 Prime Computer, Inc. High-performance pipelined central processor for predicting the occurrence of executing single-cycle instructions and multicycle instructions
US5287483A (en) * 1988-07-06 1994-02-15 Kabushiki Kaisha Toshiba Prefetched operand storing system for an information processor
JPH02133834A (ja) * 1988-11-14 1990-05-23 Nec Corp インサートキットエミュレータ
US4985825A (en) * 1989-02-03 1991-01-15 Digital Equipment Corporation System for delaying processing of memory access exceptions until the execution stage of an instruction pipeline of a virtual memory system based digital computer

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS588363A (ja) * 1981-07-08 1983-01-18 Hitachi Ltd プログラム実行履歴情報収集方式
JPS60171548A (ja) * 1984-02-16 1985-09-05 Mitsubishi Electric Corp プログラム動作追跡装置
JPS6383841A (ja) * 1986-09-29 1988-04-14 Hitachi Ltd プログラムテスト可能な計算機中央処理装置
JPS63284644A (ja) * 1987-05-18 1988-11-21 Matsushita Electric Ind Co Ltd 命令アドレス出力回路
JPH01124049A (ja) * 1987-11-09 1989-05-16 Mitsubishi Electric Corp マイクロプロセッサ

Also Published As

Publication number Publication date
US5560036A (en) 1996-09-24

Similar Documents

Publication Publication Date Title
JPH03185530A (ja) データ処理装置
EP0465321B1 (en) Ensuring data integrity in multiprocessor or pipelined processor system
JP2761688B2 (ja) データ処理装置
EP0463975B1 (en) Byte-compare operation for high-performance processor
EP0463976B1 (en) Data prefetch instruction in a reduced instruction set processor
US5410682A (en) In-register data manipulation for unaligned byte write using data shift in reduced instruction set processor
US6076158A (en) Branch prediction in high-performance processor
US5438670A (en) Method of prechecking the validity of a write access request
EP0463977B1 (en) Branching in a pipelined processor
EP0463978A2 (en) Granularity hint for translation buffer in high performance processor
US5263153A (en) Monitoring control flow in a microprocessor
GB2200484A (en) Detecting and handling memory-mapped i/o by a pipelined computer
JPH04260950A (ja) キャッシュメモリ装置
JPH03186928A (ja) データ処理装置
US5469551A (en) Method and apparatus for eliminating branches using conditional move instructions
US5502827A (en) Pipelined data processor for floating point and integer operation with exception handling
JPH01214932A (ja) データ処理装置
JPH07120284B2 (ja) データ処理装置
GB2200482A (en) Monitoring control flow in a microprocessor
JP3345787B2 (ja) データ処理装置
JP2504235B2 (ja) デ―タ処理装置
JP2532560B2 (ja) 高機能な例外処理を行うデ―タ処理装置
JP2696578B2 (ja) データ処理装置
JP2928879B2 (ja) データ処理装置
JPH01214933A (ja) データ処理装置