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

マイクロプロセッサ

Info

Publication number
JPH035836A
JPH035836A JP1141511A JP14151189A JPH035836A JP H035836 A JPH035836 A JP H035836A JP 1141511 A JP1141511 A JP 1141511A JP 14151189 A JP14151189 A JP 14151189A JP H035836 A JPH035836 A JP H035836A
Authority
JP
Japan
Prior art keywords
instruction
test
microprocessor
address
micro
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP1141511A
Other languages
English (en)
Other versions
JPH06105432B2 (ja
Inventor
Toyohiko Yoshida
豊彦 吉田
Yuichi Saito
祐一 斉藤
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 JP1141511A priority Critical patent/JPH06105432B2/ja
Publication of JPH035836A publication Critical patent/JPH035836A/ja
Priority to US08/127,708 priority patent/US5475852A/en
Publication of JPH06105432B2 publication Critical patent/JPH06105432B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30145Instruction analysis, e.g. decoding, instruction word fields
    • G06F9/3016Decoding the operand specifier, e.g. specifier format
    • G06F9/30167Decoding the operand specifier, e.g. specifier format of immediate specifier, e.g. constants
    • 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
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3664Environments for testing or debugging software
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30181Instruction operation extension or modification

Abstract

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

Description

【発明の詳細な説明】 [産業上の利用分野] 本発明はマイクロプログラムにより制御されるマイクロ
プロセッサに関し、更に詳述すれば、通常のモードにお
いてはパイプライン動作により命令を高速処理し、テス
ト時には専用のモードでテスト専用の命令を実行して内
部の各機能ブロックを診断する機能を備えることにより
、テストを容易化したマイクロプロセッサに関する。
[従来の技術] 従来のマイクロプロセッサは単一の命令体系を有し、そ
の命令体系を高速で実行するためにマイクロプロセッサ
内部を種々の機能ブロックに分割し、それらの各ブロッ
クをパイプライン処理の原理に基づいて並列動作させる
ような構成が一般的である。
第7図は従来のマイクロプロセッサの全体ill成の一
例を示すブロック図である。
第7図において、101は命令フェッチ部であり、アド
レス出力回路108を通じてアドレスをマイクロプロセ
ッサ外部のメモリへ送出し、データ入出力回路109を
通じて命令をフェフチする。
102は命令デコード部であり、命令フェッチ部101
から命令を受取ってデコードし、その命令の実行に必要
な情報を出力する。
103は命令実行制御部であり、命令デコード部102
から出力されたマイクロプログラムエソトリアドレス、
あるいはマイクロROM107に格納されている命令を
実行するために汎用レジスタ番号、オ゛ベランド、デー
タサイズ等の情報に基づいて生成されたマイクロプログ
ラムエントリアドレスをマイクロプログラムカウンタ1
06へ出力する。マイクロプログラムカウンタ106に
よつて次々に示されるアドレスによりマイクロROM1
07から出力されたマイクロ命令と命令デコード部10
2から出力された他の情報とにより、命令実行制御部1
03は命令実行部105を制御して命令を実行させる。
104はオペランドアクセス部であり、命令実行に際し
て必要になるオペランドがメモリにある場合は、そのア
ドレスをアドレス出力回路108を通じてマイクロプロ
セッサ外部のメモリへ出力することにより、必要なオペ
ランドをデータ入出力回路109を通じてフェフチする
。またオペランドをメモリに格納する必要がある場合は
、オペランドアクセス部104はそのアドレスをアドレ
ス出力回路108を通じてマイクロプロセッサ外部のメ
モリへ出力すると共に、必要なオペランドをデータ入出
力回路109を通じて出力することにより、メモリに格
納する。
命令フェッチ部101.命令デコード部102.命令実
行部105等の機能ブロックは相互に関連して並列動作
することにより、複数の命令をパイプライン処理の原理
に従い同時に処理する。パイプライン処理により複数の
命令を同時に処理し、高性能化を行ったマイクロプロセ
ッサとしては、たとえばυ、s、p、随4,402,0
42@MICI!0PROCESSOII 5YSYT
聞罰Tl1INSTRIICTrON PRE−FET
CH”に開示されている。
また、高性能化を目的とした上述のようなパイプライン
処理のための命令体系とは別に、既存のソフトウェアを
利用するための命令体系も実行可能なマイクロプロセッ
サも知られている。そのようなマイクロプロセッサの一
例としては、佐藤他「仮想記憶管理機構と浮動小数点演
算a能を内蔵した32ビットマイクロプロセンサV60
J 、日経エレクトロニクス、1986年3月24日号
、no、391、ρ9.199−264.が知られてい
る。
従来のマイクロプロセッサでは、その各機能ブロックの
テストに際し、上述のようなパイプライン動作の高性能
な実行を目的とする命令体系または既存のソフトウェア
を利用するための命令体系を用いてマイクロプロセッサ
の動作を診断する。
これらの命令体系では、マイクロプロセッサ内部の複数
の機能ブロックがパイプライン動作同様に並列に動作す
る。命令を実行する際は、各機能ブロックが相互に関連
して並列に動作するため、動作バタンの数が膨大となり
テストすべき項目の数も比例して増加する。しかも、マ
イクロプロセッサは単一のLSIチップ上に実現されて
いるため、外部ピン以外の電気的接続点の電位あるいは
電流を観測することは非常に困難であり、テストコスト
の観点から外部ピンの情報のみにてマイクロプロセッサ
をテストすることが望ましい。
また、マイクロプロセッサの各部を診断するには、プロ
セッサ内部の各種のランチの内容を初期設定する命令を
事前に実行したり、診断対象とする機能ブロック以外の
4!!l能ブロツクが診断に悪影ツを及ぼさないないよ
うな命令の組合せでテストプログラムを記述する必要が
ある。このため、テストプログラムの設計が非常に難し
くなると共に設計人工も多数必要とする。特に、試作等
により製作されたマイクロプロセッサが設計仕様通りに
動作しない場合の原因究明は困難を極める。
このような問題を解決するためのマイクロプロセッサ等
のLSIのテストの容易化の一方法として、LSI内部
のラッチをシフトパスで結び、且つラッチの内容をシリ
アルに入出力するスキャンパスを用いたテスト方法が提
案された。この提案はたとえば、国中「テスト容易な回
路構造によりLSIの故障検出率を大幅に改善」、日経
エレクトロニクス、1979年4月18日号、pp、 
57−68に紹介されている。
スキャンバスを用いたLSIのテストは、LSI中のラ
ンチの値が読書き可能である点では有意義であるが、L
SI設計段階で読書きしたいランチをスキャンパスで結
合しておく必要があること、スキャンパスでの読書きは
ビットシリアルな入出力であるためテスト時間が増大す
ると共にテストプログラムも畏大になり、テストプログ
ラムの設計が複雑になる等の問題がある。
テスト時にはマイクロプログラムをテストモードにして
PLA(Progra帽ab)e I−ogic Ar
ray)あるいはRot?、更には内蔵メモリであるキ
ャッシュをテストしたり、テスト用のマイクロプログラ
ムルーチンを用いてテストする手法も提案されている。
このような手法は例えば、J、 R’、 Kurban
 ancl J、 E。
5alick、”↑estfng Approache
s In the MC68020”VLST DES
IGN Vol、V、 PkLll、 IJP、22−
30.November1984、に開示されている。
この提案ではテスト用のマイクロプログラムルーチンを
起動する特殊な命令はその他の通常命令と同様に命令デ
コーダでデコードされるため、命令フェッチ機構あるい
は命令デコーダが故障している場合にはテスト用のマイ
クロプログラムルーチンの起動が不可能になるという問
題がある。
また、テスト用のマイクロプログラムルーチンを起動す
るには上述の特殊な命令を必ず実行する必要がある。こ
のため、テストプログラムの設計の自由度が制限され、
結果的にテストプログラムの設計人工の増大を招来する
という問題がある。
特にマイクロプログラムに故障が生じている場合の原因
究明に際しては、故障の状況に応じて適宜テストプログ
ラムを設計する必要があり、テストプログラム設計の容
易化が重要である。
[発明が解決しようとする課題コ 以上の如く、マイクロプロセッサのテストを容易化する
方法に関しては従来からいくつかの提案がなされている
が、いずれも部分的な解決策でしかない。また、部分的
な故障があるマイクロプロセッサの故障原因究明の困難
さを解消可能な提案はされていない。
マイクロプロセッサは論理設計、マイクロプログラムの
ミスによる設計バグの混入、マスクバタン設計のマージ
ン不足に起因する配線間のショート等による製造歩留り
の低下等のため、量産可能な製品の設計が完了するまで
に何回かの試作を必要とする。この際、故障原因を早期
に究明することが非常に重要である。1つの機能ブロッ
クの設計ミスのためにその他の機能ブロックがテストで
きない場合には、そのテストできない機能ブロックに設
計ミスがあるか否かが不明なので、最悪の場合には設計
ミスの数だけ改良・試作を反復する必要がある。
マスクバタン設計のマージン不足により歩留りが低く、
動作する試作品が少ない場合も同様の問題がある。マー
ジン不足の場所を特定するにはなるべく多くの試作品を
テストして故障の発生確率が高い場所を特定する必要が
あり、この場合も各段能ブロックが他の機能ブロックの
故障の有無に拘わらずにテストできることが必要である
本発明のマイクロプロセッサはテストプログラムの設計
の容易化、テスト時間の短縮、更には設計段階のミス、
微細加工に対するマスクバタン設計のマージン不足のた
めの歩留り低下等により部分的に故障を含んでいるマイ
クロプロセッサの故障原因究明の容易化を目的としてな
されたものである。
また本発明は、部分的な故障がある場合でも、他の部分
の診断を可能にし、設計ミスあるいはマスクパクンのマ
ージン不足の可観性を増大し、早期に設計バグを発見し
て解消し、歩留りの向上を可能としたマイクロプロセッ
サの提供を目的とする。
[課題を解決するための手段コ 本発明のマイクロプロセッサは、命令フェッチ部、命令
デコード部、データ演算部等の複数の機能ブロックを相
互に関連して並列動作させ、パイプライン処理の原理に
従って命令を処理するプロセッサモードと、テスト時に
マイクロプロセッサ内部のa能ブロックを独立して動作
させることにより診断を容易化したテストモードとの2
つのモードを存する。また、プロセッサモードにおいて
パイプライン動作を高速実行することを目的とする命令
体系であるプロセッサ命令群と、テストモードにおいて
診断動作を行うことを目的とする命令体系であるテスト
命令群との2つの命令体系を有する。
また本発明のマイクロプロセッサは、マ・イクロプログ
ラムルーチン全体を実行させる第1の命令と、マイクロ
ROMの任意のアドレスのマイクロ命令を1命令だけ実
行させる第2の命令であるステップ実行命令を有してい
る。そして、テスト命令群として、マイクロプロセッサ
内部の機能ブロックをテストするための診断用マイクロ
プログラムルーチンを実行させる上述の第1の命令と、
マイクロROMの任意のアドレスのマイクロ命令を1命
令だけ実行させる第2の命令であるステップ実行命令等
の種々の命令を含んでいる。ステップ実行命令を実行す
る場合には、マイクロシーケンサに対して出力されるマ
イクロ命令のシーケンスフィールドの内容を常にマイク
ロプログラムルーチンの終了を示す信号に書換えるため
の終了信号強制出力回路を有している。
「作用」 本発明のマイクロプロセッサでは、プロセッサモードに
おいては、各種R能ブロックが相互に関連して並列に動
作し、プロセッサ命令がパイプライン処理の原理に従っ
て高速実行される。この際、本発明のマイクロプロセッ
サがメモリアクセスサイクルを起動して外部のメモリに
対してアドレスを出力することにより、対応アドレス位
置にあるプロセッサ命令、オペランドデータ等がフェッ
チされる。プロセッサモードは外部にメモリを接続して
本来のマイクロプロセッサとしての動作をさせた場合に
、LSIテスタでテストする場合に使用する。
テストモードにおいては、直接マイクロプログラムエン
トリ番地を指定するテスト命令が命令デコーダをバイパ
スして取込まれて実行される。また、テストモードでは
メモリアクセスサイクルが起動されることなく、テスト
命令取込みを指示する信号によりテスト命令が取込まれ
、テスト結果はアドレス出力回路等をメモリサイクルと
は関係なく駆動することにより得られる。テストモード
はLSIテスタで本発明のマイクロプロセッサをテスト
する場合に使用するのが主要な目的であるが、本発明の
マイクロプロセッサが応用製品に組込まれた際のリセッ
ト時における自己診断にも用いられる。
更に、上述の終了信号強制出力回路により、マイクロR
OMの一つのアドレスの命令のみを実行する命令を組合
わせてマイクロプログラムルーチンをステップ実行し、
あるいは特定のマイクロ命令をマイクロプログラムルー
チンの途中に割込み実行することにより、マイクロプロ
セッサに故障が[発明の実施例] 以下、本発明をその実施例を示す図面に基づいて詳述す
る。
(1)「本発明のマイクロプロセッサの動作モード」本
発明のマイクロプロセッサは2つの動作モードを存する
。第1のモードはパイプライン動作を高機能で実行させ
ることを主な目的とするプロセッサモードであり、第2
のモードは本発明のマイクロプロセッサの内部状態を診
断することを主な目的とするテストモードである。
本発明のマイクロプロセッサはまた、2つの命令体系の
実行が可能である。即ち、プロセッサモードにおいて実
行される命令体系であるプロセッサ命令と、テストモー
ドにおいて実行される命令体系であるテスト命令とであ
る。
プロセッサモードにおいては、本発明のマイクロプロセ
ッサはパイプライン動作によりプロセッサ命令を高速で
実行する。本発明のマイクロプロセッサを利用して種々
のソフトウェアを高速で実行する場合はこのモードを使
用する。プロセッサモードではプロセッサ命令のみが実
行可能でありテスト命令の実行は不可能である。
テストモードでは、ノンパイプライン動作によりテスト
命令が逐次実行される。テストモードはプロセッサモー
ドよりもマイクロプロセッサの診断が容易なモードであ
る。テストモードは主にLSIテスタでマイクロプロセ
ッサをテストする場合に使用される。
本発明のマイクロプロセッサは、プロセッサモードでは
メモリに対してアドレスを出力することにより命令及び
データをフェッチしてその結果を格納すべきアドレスと
共にメモリへ出力する。テストモードでは与えられたテ
スト命令とデータとに対して演算結果を出力するが、命
令あるいはデータをフェッチするためのアドレスは出力
しない。
(2)「本発明のマイクロプロセッサのプロセッサ命令
のフォーマット」 本発明のマイクロプロセッサのプロセッサ命令は16ビ
ツト単位で可変長となっており、奇数バイト長の命令は
ない。
本発明のマイクロプロセッサでは高頻度のプロセッサ命
令を短いフォーマットとするため、特に工夫された命令
フォーマット体系を有する0例えば、2オペランド命令
に対しては基本的に「4バイト+拡張部」の構成を有し
、総てのアドレッシングモードが利用で可能な船形フォ
ーマントと、額度が高い命令及びアドレッシングモード
のみを使用可能な短縮形フォーマントとの2つのフォー
マントがある。
第8図から第17図は本発明のマイクロプロセッサのプ
ロセッサ命令フォーマットを示す模式図である。
第8図から第17回のフォーマット中に現われる記号の
意味は以下の通りである。
一一オベコードの入る部分 #:リテラル、または即値の入る部分 Ea:8ミニ8ビツト形のアドレッシングモードでオペ
ランドを指定する部分 Sh:6ビントの短縮形のアドレッシングモードでオペ
ランドを指定する部分 Rnニレジスタフアイル上のオペランドをレジスタ番号
で指定する部分 フォーマットは、第8図に示す如(、右側がLSB側で
、且つ高いアドレスになっている。アドレスNとアドレ
スN+1の2バイトを見ないと命令フォーマットが判別
できないようになっているが、これは、命令が必ず16
ビツト(2バイト)単位でフェッチ及びデコードされる
ことを前提としているためである。
本発明のマイクロプロセッサのプロセッサ命令では、い
ずれのフォーマントの場合も、各オペランドのEaまた
はshの拡張部は、必ずそのHaまたはshの基本部を
含むハーフワードの直後に置かれる。
これは、合金により暗黙に指定される即値データあるい
は命令の拡張部に優先する。従って、4バイト以上のプ
ロセッサ命令では、[!aの拡張部によって命令のオペ
コードが分断される場合がある。
また、後でも述べるように、多段間接モードによりEa
の拡張部に更に拡張部が付加される場合にも、次の命令
オペレーションコードよりもそちらの方が優先される。
例えば、第1ハーフワードにEalを含み、第2ハーフ
ワードにEa2を含み、第3ハーフワードまである6バ
イト命令の場合を考える。Ealに多段間接モードを使
用したために普通の拡張部の他に多段間接モードの拡張
部も付加されるものとする。この際、実際の命令ビット
パターンは、命令の第1ハーフワード(Ealの基本部
を含む)、 Ealの拡張部、[!alの多段間接モー
ド拡張部、命令の第2ハーフワード(Ea2の基本部を
含む)、 Ea2の拡張部、命令の第三ハーフワードの
!1πとなる。
(2,1)  r短縮形2オペランド命令」第9図から
第12図はプロセッサ命令の2オペランド命令の短縮形
フォーマットを示す模式図である。
第9図はメモリーレジスタ間演算命令のフォーマットで
ある。このフォーマットにはソースオペランド側がメモ
リとなるL−formatとデスティネーションオペラ
ンド側がメモリとなるS4ormatとがある。
L−formatでは、shはソースオペランドの指定
フィールド、 I?nはデスティネーションオペランド
のレジスタの指定フィールド、 RRはshのオペラン
ドサイズの指定をそれぞれ表す。レジスタ上に置かれた
デスティネーションオペランドのサイズは32ビツトに
固定されている。レジスタ側とメモリ側とのサイズが異
なり、且つソース側のサイズが小さい場合に符号拡張が
行なわれる。
S−formatでは、shはデスティネーションオペ
ランドの指定フィールド、 Rnはソースオペランドの
レジスタ指定フィールド、 RRはshのオペランドサ
イズの指定をそれぞれ表す。レジスタ上に置かれたソー
スオペランドのサイズは32ビツトに固定されている。
レジスタ側とメモリ側のサイズが異なり、且つソース側
のサイズが大きい場合に、溢れた部分の切捨てとオーバ
ーフローチエ・ツクとが行なわれる。
第10図はレジスターレジスタ間演算命令のフォーマッ
ト(R−format)を示す模式図である。図中、R
nはデスティネーションレジスタの指定フィールド、 
Reはソースレジスタの指定フィールドである。
オペランドサイズは32ビツトのみである。
第11図はリテラル−メモリ間演算命令のフォーマツ)
 (Q−format)を示す模式図である。図中、藺
はデスティネーションオペランドサイズの指定フィール
ド、#はリテラルによるソースオペランドの指定フィー
ルド、Shはデスティネーションオペランドの指定フィ
ールドである。
第12図は即値−メそり間演算命令のフォーマント(L
format)を示す模式図である。図中、閂はオペラ
ンドサイズの指定フィールド(ソース5 ディスティネ
ーションで共通)、Shはデスティネーションオペラン
ト′の指定フィールドである。f−formatの即値
のサイズは、デスティネーション側のオペランドのサイ
ズと共通に8.16,32ビツトとなり、ゼロ拡張及び
符号拡張は行なわれない。
(2,2)  r−船形1オペランド命令」第13図は
プロセッサ命令の1オペランド命令の−i形ラフオーマ
ットGl−format)を示す模式図である。図中、
旧はオペランドサイズの指定フィールドである。一部の
Gl−format命令では、Eaの拡張部以外にも拡
張部がある。また、聞を使用しない命令もある。
(2゜3)「−船形2オペランド命令」第14図から第
16図はプロセッサ命令の2オペランド命令の一船形フ
オーマノドを示す模式図である。このフォーマットに含
まれるのは、8ビツトで指定する一船形アドレッシング
モードのオペランドが最大2つ存在する命令である。オ
ペランドの総数自体は3つ以上になる場合がある。
第14図は第1オペランドがメモリ読出しを必要とする
命令のフォーマ7 ト(G−format)を示す模式
図である0図中、Ea)tはデスティネーションオペラ
ンドの指定フィールド、聞はデスティネーションオペラ
ンドサイズのI旨定フィールド、  EaRはソースオ
ペランド指定フィールド、 RRはソースオペランドサ
イズの指定フィールドである。一部のGformat命
令では、EaM及びEaRの拡張部以外にも拡張部があ
る。
第15図は第1オペランドが8ビツト即値の命令のフォ
ーマット(E−format)を示す模式図である。
図中、EaMはデスティネーションオペランドの指定フ
ィールド、間はデスティネーションオペランドサイズの
指定フィールド、#はソースオペランド値であるや E−formatとLformatとは機能的には類似
しているが、考え方の点で大きく異なっている6 E−
formatはあくまでも2オペランド−船形(Gイo
rsat)の派生形であり、ソースオペランドのサイズ
が8ビツト固定、ディスティネーションオペランドのサ
イズが8 /16/32ビットから選択となっている。
つまり、異種サイズ間の演算を前提とし、デスティネー
ションオペランドのサイズに合わせて8ビツトのソース
オペランドがゼロ拡張または符号拡張される。
一方、14or−matは、特に転送命令、比較命令で
頻度の多い即値のパターンを短縮形にしたものであり、
ソースオペランドとディスティネーションオペランドの
サイズは等しい。
第16図は第1オペランドがアドレス計算のみの命令の
フォーマット(GA−formatッサを示す模式図で
ある。図中、Ha−はデスティネーションオペランドの
措定フィールド1四はデスティネーションオペランドサ
イズの指定フィールド、  EaAはソースオペランド
の指定フィールドである。ソースオペランドとしては実
行アドレスの計算結果自体が使用される。
第17図はショートブランチ命令のフォーマットを示す
模式図である0図中、ccccは分岐条件措定フィール
ド、 di、sp:8はジャンプ先との変位指定フィー
ルドであり、本発明のマイクロプロセッサでは8ビツト
で変位を指定する場合には、ビットパターンでの指定値
を2倍して変位値とする(2.4)  rアドレッシン
グモード」本発明のマイクロプロセッサのプロセッサ命
令のアドレッシングモード指定方法には、レジスタを含
めて6ビントで指定する短縮形と、8ビツトで指定する
一般形がある。
未定義のアドレッシングモードを指定した場合あるいは
意味的に考えて明らか不合理なアドレッシングモードの
組合わせが指定された場合には、未定義命令を実行した
場合と同じく予約命令例外が発生され、例外処理が起動
する。
これに該当するのは、デスティネーションが即値モード
の場合及びアドレス計算を伴うべきアドレシングモード
指定フィールドで即値モードを使用した場合などである
第18図から第28図に示すフォーマットの模式図中で
使用されている記号の書味は以下の通りである。
Rn;レジスタ指定 (Sh) : 6 ヒツトの短縮形アドレッシングモー
ドでの指定方法 (Ea) : 8ビツトの一般形アドレッシングモード
での指定方法 フォーマットの図で点線で囲まれた部分は、拡張部を示
す。
(2,4,1)  r基本アドレッシングモード」本発
明のマイクロプロセッサのプロセッサ命令では種々のア
ドレッシングモードをサポートする。
それらの内、本発明のマイクロプロセッサでサポートす
る基本アドレッシングモードには、レジスタ直接モード
、レジスタ間接モード、レジスタ相対間接モード、即値
モード、絶対モード、 PC相対間接モード、スタック
ボフプモード、スタ、クプッシェモードがある。
レジスタ直接モードは、レジスタの内容をそのままオペ
ランドとする。第18図にフォーマットの模式図を示す
。図中、Rnは汎用レジスタの番号を示す。
レジスタ間接モードは、レジスタの内容をアドレスとす
るメモリの内容をオペランドとする。第19図にフォー
マットの模式図を示す、 Rnは汎用レジスタの番号を
示す。
レジスタ相対間接は、ディスプレースメント値が16ビ
ツトであるか32ビツトであるかにより、2種類ある。
それぞれ、レジスタの内容に16ビツトまたは32ビツ
トのディスプレースメント値を加えた値をアドレスとす
るメモリの内容をオペランドとする。第20図にフォー
マットの模式図を示す。
図中、Rnは汎用レジスタの番号を示す。disp:1
6とdisp:32とは、16ビツトのディスプレース
メント値、32ビットのディスプレースメント値をそれ
ぞれ示す。ディスプレースメント値は符号付きとして扱
われる。
即値モードは、命令コード中で指定されるピンドパクン
をそのまま2進数と見なしてオペランドとする。第21
図にフォーマットの模式図を示す。
図中、im+m  dataは即値を示す。in+m 
 dataのサイズは、オペランドサイズとして命令中
で指定される。
絶対モードは、アドレス値が16ビツトで示されるか3
2ビツトで示されるかにより2種類ある。それぞれ、命
令コード中で指定される16ビツトまたは32ビツトの
ピンドパクンをアドレスとしたメモリの内容をオペラン
ドとする。第22図にフォーマットの模式図に示す。図
中、abs:16とaba : 32とは、16ビノト
532ビツトのアドレス値をそれぞれ示す。
abs : 16でアドレスが示される場合は指定され
たアドレス値が32ビツトに符号拡張される。
PC相対間接モードは、ディスプレースメント値が16
ビツトであるか32ビツトであるかにより、2種類ある
。それぞれ、プログラムカウンタの内容に16ビツトま
たは32ビツトのディスプレースメント値を加えた値を
アドレスとするメモリの内容をオペランドとする。第2
3図にフォーマントの模式図を示す。図中、disp:
15とdisp:32とは、16ビツトのディスプレー
スメント値132ビットのディスプレースメント値をそ
れぞれ示す。ディスプレースメント値は符号付きとして
扱われる。PC相対間接モードにおいて参照されるプロ
グラムカウンタの値は、そのオペランドを含む命令の先
頭アドレスである。多段間接アドレシングモードにおい
てプログラムカウンタの値が参照される場合にも、同じ
ように命令先頭のアドレスをPC相対のjiI−***
として使用する。
スタックポツプモードはスタックポインタ(SP)の内
容をアドレスとするメモリの内容をオペランドとする。
オペランドアクセス後、SPをオペランドサイズだけイ
ンクリメントする0例えば、32ピントデータを扱う際
には、オペランドアクセス後にSPが+4だけ更新され
る。B、Hのサイズのオペランドに対するスタックポツ
プモードの指定も可能であり、それぞれspが+1.+
2だけ更新される。第24図にフォーマットの模式図を
示す。オペランドに対しスタックポンプモードが意味を
持たないものに対しては、予約命令例外が発生される。
具体的に予約命令例外となるのは、writeオメラン
ド及びread−modify−vriteオペランド
に対するスタックポツプモード指定である。
スタックブツシュモードはSPの内容をオペランド1ナ
イズだけデクリメントした内容をアドレスとするメモリ
の内容をオペランドとする。スタックブツシュモードで
はオペランドアクセス前にSPがデクリメントされる9
例えば、32ビツトデータを扱う際には、オペランドア
クセス前にSPが−4だけ更新される。B、Hのサイズ
のオペランドに対するスタックブツシュモードの指定も
可能であり、それぞれSPが−1,−2だけ更新される
。第25図にフォーマットの模式図を示す。オペランド
に対してスタックブツシュモードが意味を持たない場合
は、予約命令例外が発生される。具体的に予約命令例外
となるのは、readオペランド及びread−mod
rfy−11riteオペランドに対すスタックブツシ
ュモード指定である。
(2,4,2)  r多段間接アドレッシングモード」
複雑なアドレッシングも、基本的には加算と間接参照の
組合わせに分解することができる。従って、加算と間接
参照のオペレーションをアドレッシングのプリミティブ
として与えておき、それを任意に組合わせることができ
れば、いかに複雑なアドレッシングモードをも実現する
ことが可能である。本発明のマイクロプロセッサのプロ
セッサ命令の多段間接アドレッシングモードはこのよう
な観点に立聯したアドレッシングモードである。
複雑なアドレッシングモードは、モジュール間のデータ
参照あるいはAI(Artificial rntel
liIHence:人工知能)言語の処理系に特に有用
である。
多段間接アドレッシングモードを指定する際、基本アド
レッシングモード指定フィールドでは、レジスタペース
多段間接モード、PCCペース段間接モード1絶対ベー
ス多段間接モードの3種類の指定方決の内のいずれか1
つを指定する。
レジスタペース多段間接モードは、レジスタの値を拡張
されるべき多段間接アドレッシングのベース値とするア
トレンジングモードである。第26図にフォーマットの
模式図を示す。図中、Rnは汎用レジスタの番号を示す
PCベース多段間接モードは、プログラムカウンタの値
を拡張されるべき多段間接アドレッシングのベース値と
するアトレンジングモードである。
第27図にフォーマントの模式図を示す。
絶対ベース多段間接モードは、ゼロを拡張されるべき多
段間接アドレッシングのベース値とするアトレンジング
モードである。第28図にフォーマットの模式図を示す
拡張する多段間接モード指定フィールドレ116ビツト
を単位としており、これが任意回反復される。
1段の多段間接モードにより、ディスプレースメントの
加算、インデクスレジスタのスケーリング(xi、 x
2. x4. x8)と加算1メモリの間接参照を行な
う。第29図は多段間接モードのフォーマントを示す模
式図である。各フィールドは以下に示す意味を有する。
E=0:多段間接モード継続 E・1 ニアドレス計算終了 tmp ==> address  of opera
ndl・0 :メモリ間接参照なし tnap + disp + Rx * 5cale 
=、> tmpT・1 :メモリ間接参照あり men[tmp+disp+Rx率5cateコ1Il
l>Llllp 門・0  :  <Rx>をインデクスとして使用ト1
 :特殊なインデクス <RX>、、0  インデクス値を加算しない (Rx
=0) <RX>・1 プログラムカウンタを インデクス値として使 用  (Rx=PC) くRに〉=2〜  reserved D=0:多段間接モード中の4ビツトのフィールドd4
の値を4倍してディス プレースメント値とし、これを加 算する。 d4は符号付きとして扱い、オペランドのサ
イズとは関係なく 必ず4倍して使用する。
D・1 :多段間接モードの拡張部で指定されたdis
px(16/32ビツト)をディスプレースメント値と
し、これを 加算する。
拡張部のサイズはd4フィールドで 指定する。
d4=ooo1  dispxは16ビツトd4=oo
10  dispxは32ピント×X :インデクスの
スケール (scale = 1/2/4/8) プログラムカウンタに対して×2+ ×4+ ×8のス
ケーリングを行なった場合には、その段の処理終了後の
中間1i!imp>として不定値が入る。この多段間接
モードによって得られる実効アドレスは予測できない値
となるが、例外は発生しない。プログラムカウンタに対
するスケーリングの指定は行なってはいけない。
多段間接モードによる命令フォーマントのバリエージシ
ンを第30図及び第31図に示す。第30図は多段間接
モードが継続するか終了するかのバリエーションを示す
、第31図はディスプレースメントのサイズのバリエー
ジシンを示す。
任意段数の多段間接モードが利用できれば、コンパイラ
の中で段数による場合分けが不要になるので、コンパイ
ラの負担が軽減されるというメリットがある。多段の間
接参照の頻度が非常に少ないとしても、コンパイラとし
ては必ず正しいコードを発生できなければならないから
である。このため、フォーマット上、任意の段数が可能
になっ(3)「本発明のマイクロプロセッサのテスト命
令のフォーマント」 本発明のマイクロプロセンサのテスト命令は35ピント
の固定長フォーマントである。第32図〜第37図に本
発明のマイクロプロセッサのテスト命令のフォーマット
の模式図を示す。フォーマット中に現れる記号の意味は
以下の通りである。
111L :割込み要求線のビン番号0〜2から人力さ
れるフィールドであることを示す。
D:データパスのピン番号00〜31から人力されるフ
ィールドであることを示す。
朋:演算結果出力が外部のメモリか否かを指定する部分 子PAR:演算に関するパラメータを指定する部分5R
EG :ソースオペランドのレジスタ位置を指定する部
分 DREG :デスティネーションオペランドレジスタ位
置を指定する部分 ZS:ソースオペランドサイズを指定する部分zD:デ
スティネーションオベランドサイズを指定する部分 DDjスキャンインするデータを指定する部分また、1
2ビツトのマイクロROM番地指定フィールドと、指定
データを無視するフィールド(don’tcare) 
 とがある。
テスト命令では、ソースオペランドはレジスタファイル
にある値または即値データのみを使用する。このため、
テスト命令ではアドレッシングモード等のメモリオペラ
ンドに関するアドレス指定フィールドはない。
(3,1)  r連続実行命令」 第32図及び第33図に示すテスト命令のフォーマット
は連続実行命令のフォーマットである。
連続実行命令は、指定されたマイクロl?OM番地から
マイクロプログラムに従って本発明のマイクロプロセッ
サを動作させる命令である。
第32図に示す第1連続実行命令は、指定したマイクロ
ROM番地からマイクロプログラムに従って本発明のマ
イクロプロセッサを動作させる際に、MM、TPAR,
5IIEG、DREG、ZS、ZDをマイクロプログラ
ムに対するパラメータとして使用する。
第33図に示す第2連続実行命令は、マイクロプログラ
ムに対するパラメータ指定は行わない。
これら2つの連続実行命令で指定するマイクロROM番
地は本発明のマイクロプロセッサのマイクロROM番地
の範囲内で任意の値が許される。従ってこれらの命令に
より本発明のマイクロプロセッサに対して任意のマイク
ロROM番地からのマイクロプログラムの実行を指定で
きる。
(3,2)  rステップ実行命令」 第34図及び第35図に示すテスト命令のフォーマント
はステップ実行命令のフォーマットである。
ステップ実行命令は、指定されたマイクロROM番地の
マイクロ命令に従って本発明のマイクロプロセッサを1
マイクロステツプだけ動作させる命令である。
第34図に示す第1ステツプ実行命令は、指定したマイ
クロROM番地からマイクロプログラムに従って本発明
のマイクロプロセッサを1マイクロステップ動作させる
際に、MM、TPAR,SRE[;、I]RE[;、Z
S、ZDをマイクロプログラムに対するパラメータとし
て使用する。
第35図に示す第2ステツプ実行命令は、マイクロプロ
グラムに対するパラメータ指定は行わない。
これら2つのステップ実行命令で指定するマイクロRO
M番地は本発明のマイクロプロセッサのマイクロROM
番地の範囲内で任意の値が許される。
従って、これらの命令により本発明のマイクロプロセッ
サに対して任意のマイクロROM番地のマイクロ命令を
1ステツプだけ実行してその状態で停止することを指定
できる。
(3,3)  rロード命令」 第36図に示すテスト命令のフォーマントはテストモー
ドにおいて本発明のマイクロプロセッサの外部からオペ
ランドをロードするためのロード命令のフォーマントで
ある。
ロード命令は35ビツトの命令の内の32ビア)が即値
オペランドのフィールドであり、32ビツトの値を本発
明のマイクロプロセッサに徽込むことが可能である。
(3,4)  rスキャンパス命令」 第37図に示す命令のフォーマントはテストモードにお
いて本発明のマイクロプロセッサのスキャンバスを動作
させる命令であるスキャンバス命令のフォーマットであ
る。
スキャンパス命令により本発明のマイクロプロセッサは
内部のスキャンバスにデータをシリアルに入出力可能に
なる。
(4)「機能ブロックの構成J 第2図は本発明のマイクロプロセッサの一構成例を示す
ブロック図である。
本発明のマイクロプロセッサの内部を機能的に大きく分
けると、命令フェッチ部51.命令デコード部52. 
PC計算部53.オペランドアドレス計算部54、マイ
クロROM部55.データ演算部56.外部バスインタ
ーフェイス(11P)部57に分かれる。第2図ではそ
の他に、外部ヘアドレスを出力するアドレス出力回路5
8と、外部との間でデータを入出力するデータ入出力回
路59と、制御信号入出力回路60とを他の機能ブロッ
ク部と分けて示した。
(4,1)  r命令フェッチ部」 命令フェッチ部51には、ブランチバッファと、命令キ
ューとその制御部等があり、次にフェッチすべき命令の
アドレスを決定して、ブランチバッファや外部のメモリ
からプロセッサ命令をフェッチする。また命令フェッチ
部51はブランチバッファへの命令登録も行う。
ブランチバッファは小規模であるためセレクティブキャ
ッシュとして動作する。ブランチバッファの動作の詳細
は特開昭63−56730号で詳しく述べられている。
次にフェッチすべきプロセッサ命令のアドレスは命令キ
ューに入力すべき命令のアドレスとして専用のカウンタ
で計算される0分岐あるいはジャンプが発生した際には
、新たなプロセッサ命令のアドレスがPC計算部53ま
たはデータ演算部56から転送されてくる。
外部のメモリからプロセッサ命令をフェッチする際は、
フェッチすべき命令のアドレスを外部バスインターフェ
イス部57を通じてアドレス出力回路58から外部へ出
力することによりデータ入出力回路59から命令コード
をフェッチする。
バンファリングした命令コードの内、命令デコード部5
2で次にデコードすべき命令コードが命令デコード部5
2へ出力される。
テスト命令は命令フェッチ部51ではフェッチされない
(4,2)  r命令デコード部」 命令デコード部52では基本的に16ビツト (ハーフ
ワード)単位にプロセッサ命令コードをデコードする。
この命令デコード部52には第1ハーフワードに含まれ
るオペコードをデコードするFll−デコーダ、第2.
第3ハーフワードに含まれるオペコードをデコードする
NFI+−デコーダ、アドレッシングモードをデコード
するアドレッシングモードデコーダが含まれる。
更に、Fttt4デコーダ及びNFIIWデコーダの出
力を更にデコードしてマイクロ1ioHのエントリアド
レスを計算する第2デコーダ、条件分岐命令の分岐予測
を行う分岐予測機構、オペランドアドレス計算の際のパ
イプラインコンフリクトをチエツクするアドレス計算コ
ンフリクトチエツク機構等も含まれる。
命令デコード部52は、命令フェッチ部51から人力さ
れたプロセッサ命令コードを2クロツクにつき0〜6バ
イトデコードする。デコード結果の内、データ演算部5
6での演算に関する情報がマイクロROM部55へ、オ
ペランドアドレス計算に関係する情報がオペランドアド
レス計算部54へ、PC計算に関係する情報がPC計算
部53へそれぞれ出力される。
テスト命令が命令デコード部52へ入力されることはな
く、従ってデコードされることもない。
(4,3)  rマイクロROh部」 マイクロROM部55にはデータ演算部56の制御及び
本発明のマイクロプロセッサ各部の診断をする種々のマ
イクロプログラムルーチンが格納されているマイクロl
?OM、マイクロシーケンサ マイクロ命令デコーダ等
が含まれる。マイクロ命令はマイクロROMから2クロ
ツクに1度読出される。マイクロシーケンサはマイクロ
プログラムで示されるシーケンス処理の他に、例外1割
込及びトラップ(この3つをEITと総称する)の処理
及びテスト割込みをハードウェア的に受付ける。またマ
イクロROM部はストアバッファの管理も行う。
プロセッサモードでは、マイクロRO)1部には命令コ
ードに依存しない割込み及び演算実行結果によるフラッ
グ情報と、第2デコーダの出力等の命令デコード部52
からの出力が入力される。
テストモードでは、マイクロROM部はCPUの診断プ
ロセッサとして動作する。テストモードでは第2デコー
ダの出力ではな(データ入出力回路59からの出力が直
接マイクロROM部へ入力される。
また、テストモードの間は一切の割込みは受付けられな
い。
プロセッサモードでは、マイクロデコーダの出力は主に
データ演算部56に対して出力されるが、ジャンプ命令
の実行による他の先行処理中止情報等の一部の情報は他
の機能ブロックへも出力される。
テストモードでは、マイクロl10M部55は上記のプ
ロセッサモードでの出力に加えて各種の診断制御情報を
本発明のマイクロプロセッサ内部の他のブロックへ出力
する。
(4,4)  rオペランドアドレス計算部」オペラン
ドアドレス計算部54は、命令デコード部52のアドレ
スデコーダ等から出力されたオペランドアドレス計算に
関係する情報によりハードワイヤード制御される。この
オペランドアドレス計算部54ではオペランドのアドレ
ス計算に関する大半の処理が行われる。メモリ間接アド
レッシングのためのメモリアクセスのアドレス及びオペ
ランドアドレスがメモリにマツプされたl10fJ域に
入るか否かのチエツクも行われる。
オペランドアドレス計算部54でのアドレス計算結果は
外部バスインターフェイス部57へ送られる。
なお、アドレス計算に必要な汎用レジスタやプログラム
カウンタの値はデータ演算部56から入力される。
メモリ間接アドレッシングを行う場合は、オペランドア
ドレス計算部54は参照すべきメモリアドレスを外部バ
スインターフェイス部57を通してアドレス出力回路5
8から外部へ出力し、データ入出力部59から入力され
た間接アドレス値を命令デコード部52をそのまま通過
させてフェッチする。
(4,5)  rPC計算部」 PC計算部53は命令デコード部52から出力されるP
C計算に関係する情報によりハードワイヤードに’、F
II ′4”aされ、命令のPC値を計算する0本発明
のマイクロプロセッサのプロセッサ命令は可変長命令で
あり、命令をデコードしてみないとその命令の長さが判
明しない、PC計算部53は、命令デコード部52から
出力される命令長をデコード中の命令のpc値に加算す
ることにより次の命令のpc値を作り出す。
pc計算部53での計算結果は各命令のpc値として命
令のデコード結果と共に出力される。
(4,6)  rデータ演算部」 データ演算部56はマイクロプログラムにより制御すれ
、マイクロl?OMの出力であるマイクロ命令に従って
各命令の機能を実現するために必要な演算をレジスタフ
ァイルと演算器とを使用して実行する。
プロセッサ命令の演算対象となるオペランドがアドレス
あるいは即値である場合は、オペランドアドレス計算部
54で計算されたアドレスあるいは即値は外部バスイン
ターフェイス部57を通過してデータ演算部56へ入力
される。また、プロセッサ命令の演算対象となるオペラ
ンドがCPU外部のメモリにあるデータである場合は、
アドレス計算部54で計算されたアドレスをバスインタ
ーフェイス部57がアドレス出力回路58から出力する
ことによりCPU外部のメモリからフェッチされたたオ
ペランドはデータ入出力回路59からデータ演算部56
へ入力される。
テストモードでロード命令を実行した場合には、演算対
象となる即値オペランドがデータ入出力回路59からデ
ータ演算部56へ入力される。
演算器としてはALU、バレルシフタ1プライオリテイ
エンコーダあるいはカウンタ、シフトレジスタ等がある
。レジスタファイルと主な演算器との間は3つのバスで
結合されており、1つのレジス・り開演算を指示する1
マイクロ命令が2クロツクサイクルで処理される。
データ演算の際に外部のメモリをアクセスする必要があ
る場合は、マイクロプログラムの指示により外部バスイ
ンターフェイス部57を通じてアドレス出力回路58か
らアドレスがcpu外部へ出力されることにより、デー
タ入出力回路59を通じて目的のデータがフェッチされ
る。
外部のメモリにデータをストアする場合は、外部バスイ
ンターフェイス部57を通じてアドレス出力回路58か
らアドレスが出力されると同時に、データ入出力回路5
9からデータがCPU外部へ出力される。オペランドス
トアを効率的に行うためデータ演算部56には4バイト
のストアバッファが備えられている。
ジャンプ命令の処理5例外処理等の結果、新たな命令ア
ドレスをデータ演算部56が得た場合は、データ演算部
56はこれを命令フェッチ部51とPC計算部53とへ
出力する。
(4,7)  r外部バスインターフェイス部」外部バ
スインターフェイス部57は、プロセッサモードにおい
ては本発明のマイクロプロセッサの入出力ピンを介して
の通信を制御する。メモリのアクセスはすべてクロック
同期で行われ、最小2クロックサイクルで行うことがで
きる。
メモリに対するアクセス要求は命令フェッチ部51、ア
ドレス計算部54及びデータ演算部56から独立に生じ
る。外部バスインターフェイス部57はこれらのメモリ
アクセス要求を調停する。更に、メモリと本発明のマイ
クロプロセサとを結ぶデータバスサイズである32ビツ
ト(1ワード)の整置境界を跨ぐメモリ番地に位置する
データのアクセスは、このブロック内でワード境界を跨
ぐことが自動的に検知され、2回のメモリアクセスに分
解して行われる。
ブリフェッチ対象のオペランドとストア対象のオペラン
ドとが重なる場合のコンフリクト防止処理及びストアオ
ペランドからフェフチオベランドへのバイパス処理も外
部バスインターフェイス部57が行う。
テストモードでは、外部バスインターフェイス部57は
一切のメモリアクセス要求を受付けない。
テストモードでは、データ入出力回路59とアドレス出
力回路とはマイクロROM部55から直接制御さ(5)
「本発明のマイクロプロセッサの入出力インターフェイ
ス」 第3図は本発明のマイクロプロセッサの人出力ピンを示
す模式図である。
図中、CLKはクロフタ人力、RESETIはリセット
割込み入力、IRLlo:2は割込み入力、IIICK
IIは割込み応答出力、LO(Jはインターロックバス
サイクルか否かを示す出力、TESTIはテスト割込み
入力、[IBGINTIはデバッグ割込み入力、DBG
AIJIはデハフグ処理中を示す出力、BCIO:3.
 BSI、ASII、 0511゜1?/Wllはバス
サイクル制御出力、DCIIはバスサイクル制御人力、
(to:31はデータ人出力、AO:31はアドレス出
力である。
TESTI ビン以外は本発明のマイクロプロセッサを
応用システムに組込む際にも使用するが、その際に誤っ
てテスト割込みが入力されることを防ぐためにTEST
I ビンは電源に接続される。
各入出力信号は、プロセッサモードにおいては上述の如
き機能で使用される。しかしテストモードにおいては、
DBG rNTlビンがテスト命令取込み指示入力、D
BGACKIピンがテスト命令実行中を示す出力、IR
IJO:2ピンがテスト命令入力、[10:31ピンが
テスト命令入力及びテスト結果出力、AO=31がテス
ト結果出力の機能で使用される。更にスキャン命令に対
しては、DOピンがスキャン人力、LOCK#ピンがス
キャンアウト出力の機能を有する。
各入出力ビンはCLKに対してクロック同期して信号を
入出力する。
(6)「プロセッサモードでの動作」 本発明のマイクロプロセッサはプロセッサモードではプ
ロセッサ命令をパイプライン処理して高性能に動作する
。ここではまず、プロセッサモードにおける本発明のマ
イクロプロセッサのパイプライン処理手順について説明
し、次にプロセッサモードにおける本発明のマイクロプ
ロセッサの外部メモリアクセス動作の一例を説明する。
(6,1)  rパイプライン機構」 本発明のマイクロプロセッサのパイプライン処理は第4
図に示すような構成を採っている。
命令をブリフェッチする命令フェッチステージ(TFス
テージ)31.命令をデコードするデコードステージ(
Dステージ)32.オペランドのアドレス計算を行うオ
ペランドアドレス計算ステージ(Aステージ)33.マ
イクロROMアクセス (特にRステージ36と称す)
及びオペランドのブリフェッチ(特にOFステージ37
と称す)を行うオペランドフェッチステージ(Fステー
ジ)34.命令を実行する実行ステージ(εステージ)
35の5段構成をパイプライン処理の基本とする。
Eステージ35では1段のストアバッファがあるほか、
高機能命令の一部は命令実行自体をパイプライン化する
ため、実際には5段以上のパイプライン処理効果がある
各ステージは他のステージとは独立して動作し、理論上
は5つのステージが完全に独立動作する。
各ステージは1回の処理を最小2クロックで行うことが
できる。従って理想的には2クロツクごとに次々とパイ
プライン処理が進行する。
本発明のマイクロプロセッサにはメモリニメモリ間演算
あるいはメモリ間接アドレッシング等のように1回の基
本パイプライン処理だけでは処理が行えない命令がある
が、本発明のマイクロプロセッサはこれらの処理に対し
てもなるべく均衡したパイプライン処理が行えるように
構成されている。複数のメモリオペランドを有する命令
に対しては、メモリオペランドの数に基づいて、デコー
ド段階で複数のパイプライン処理単位(ステップコード
)ζこ分解してパイプライン処理が行われる。
パイプライン処理単位の分解方法に関しては特開昭63
−89932で詳しく述べられている。
1Fステージ31からDステージ32へ渡される情報は
命令コードそのものである。Dステージ32からAステ
ージへ痙される情報は命令で指定された演算に関する情
1(Dコード41と称す)と、オペランドのアドレス計
算に関係する情報(Aコード42と称す)゛との2つが
ある。Aステージ33からFステージ34へ渡される情
報はマイクロプログラムルーチンのエントリ番地及びマ
イクロプログラムへのパラメータ等を含むRコード43
と、オペランドのアドレスとアクセス方法指示情報等を
含むFコード44との2つである。Fステージ34から
Eステージ35へ渡される情報は、演算制御情報とリテ
ラル等を含むEコード45と、オペランドやオペランド
アドレス等を含むSコード46との2つである。
Eステージ35以外のステージで検出されたBITはそ
のコードがEステージ35へ到達するまではBIT処理
を起動しない。Eステージ35で処理されている命令の
みが実行段階の命令であり、IFステージ31−Fステ
ージ34で処理されている命令は未だ実行段階に至って
いないのである。従って、Eステージ35以外で検出さ
れたE[Tは検出されたたことがステップコード中に記
録されてで次のステージへ伝えられるのみである。
(6,2)  r各パイプラインステージの処理」各パ
イプラインステージの入出カステップコードには第4図
に示したように便宜上名前が付与されている。またステ
ップコードには、オペレーションコードに関する処理を
行い、マイクロll0Mのエントリ番地あるいはEステ
ージ35に対するパラメータ等になる系列と、Eステー
ジ35のマイクロ命令に対するオペランドになる系列と
の2系列がある。
(6,2,1)  r命令フェッチステージ」命令フェ
ッチステージ(IFステージ)31はプロセッサ命令を
メモリあるいはブランチバッファからフェッチして命令
キューへ入力し、Dステージ32に対して命令コードを
出力する。命令キューの入力は整置された4バイト単位
で行われる。メモリからプロセッサ命令をフェッチする
際は整置された4バイトにつき最小2クロックを要する
。ブランチバッファがヒツトした場合は整置された4バ
イトにつき1クロツクでフヱフチ可能である。
命令キューの出力単位はは2バイトごとに可変であり、
2クロツクの間に最大6バイトまで出力できる。また分
岐の直後には、命令キューをバイパスして命令基本部2
バイトを直接命令デコーダへ転送することもできる。
ブランチバッファへの命令の登録及びクリア等の制御、
ブリフェッチ先命令アドレスの管理及び命令キューの制
御もIFステージ31が行う。
(6,2,2)  r命令デコードステージ」命令デコ
ードステージ(Dステージ)32はIFステージ31か
ら入力されたプロセッサ命令コードをデコードする。デ
コードは命令デコード部52のFIIWデコーダ、 N
FNWデコーダ、アドレッシングモードデコーダを使用
して、2クロック単位で1度行なわれ、1回のデコード
処理で0〜6バイトの命令コードが消費される(リター
ンサブルーチン命令の復帰先アドレスを含むステップコ
ードの出力処理等では命令コードは消費されない)。1
回のデコードで、Aステージ33に対してアドレス計算
情報としてのAコード42である約35ビツトの制御コ
ードと最大32ビツトアドレス修飾情報と、オペレーシ
ョンコードの中間デコード結果としてのDコード41で
ある約50ビツトの制御コードと8ビツトのリテラル情
報とが出力される。
Dステージ32では各命令のPC計算部53の制御、命
令キューからの命令コード出力処理も行う。
(6,2,3)  rオペランドアドレス計算ステージ
Jオペランドアドレス計算ステージ(Aステージ)33
での処理は大きく2つに分かれる。
1つは命令デコード部52の第2デコーダを使用してオ
ペレーションコードの後段デコードを行う処理で、他方
はオペランドアドレス計算部54でオペランドアドレス
の計算を行う処理である。
オペレーションコードの後段デコード処t’!!;!D
コード41を入力とし、レジスタ、メモリの書込み予約
及びマイクロプログラムルーチンのエントリ番地とマイ
クロプログラムに対するパラメータ等を含むRコード4
3の出力を行う。
なお、レジスタ、メモリの書込み予約は、アドレス計算
で参照したレジスタ、メモリの内容がパイプライン上を
先行する命令で書(^えられることによって誤ったアド
レス計算が行われることを防ぐためのものである。
オペランドアドレス計算処理はAコード42を入力とし
、Aコード42に従ってオペランドアドレス計算部54
で加算及びメモリ間接参照を組合わせてアドレス計算を
行い、その計算結果をFコード44として出力する。こ
の際、アドレス計算に伴うレジスタあるいはメモリの読
出し時にコンフリクトチエツクが行われ、先行命令によ
るレジスタあるいはメモリへの書込み処理を終了してい
ないためコンフリクトが指示されれば、先行命令がEス
テージ35で書込み処理を終了するまで待機状態になる
(6,2,4)  rマイクロROMアクセスステージ
」オペランドフェッチステージ(Fステージ)34の処
理も大きく2つに分かれる。
一方はマイクロROMのアクセス処理であり、特にRス
テージ36と称する。他方はオペランドプリフェッチ処
理であり、特にOFステージ37と称する。
Rステージ36とOFステージ37とは必ずしも同時に
動作するわけではなく、メモリアクセス権が獲得できる
か否か等に依存して、独立して動作する。
Rステージ36の処理であるマイクロROMアクセス処
理は、Rコードに対して次のEステージでの実行に使用
する実行制御コードであるEコードを生成するためのマ
イクロ120Mアクセスとマイクロ命令デコード処理で
ある。1つのRコードに対する処理が2つ以上のマイク
ロプログラムステップに分解される場合、マイクロRO
MはEステージ35で使用され、次のRコード43はマ
イクロROMアクセス待ちになる。Rコード43に対す
るマイクロROMアクセスが行われるのはその前のEス
テージ35での最後のマイクロ命令実行時である。本発
明のマイクロプロセッサでは、大半の基本命令は1マイ
クロプログラムステツプで実行されるため、実際にはR
コード43に対するマイクロROMアクセスが次々と行
われることが多い。
(6,2,5)  rオペランドフェッチステージ」オ
ペランドフェッチステージ(OFステージ)37はFス
テージ34で行う上記の2つの処理の内のオペランドプ
リフェッチ処理を行う。
オペランドプリフェッチはFコード44を入力とし、フ
ェッチしたオペランドとそのアドレスとをSコード46
として出力する。1つのFコード44ではワード境界を
跨いでもよいが、4バイト以下のオペランドフェッチを
指定する。Fコード44にはオペランドのアクセスを行
うか否かの指定も含まれており、Aステージ33で計算
されたオペランドアドレス自体あるいは即値をEステー
ジ35へ転送する場合にはオペランドブリフェッチは行
われず、Fコード44の内容がSコード46として転送
される。
ブリフェッチしようとするオペランドとEステージ35
が書込み処理を行おうとするオペランドとが一致する場
合は、オペランドブリフェッチはメモリからは行われず
、バイパスして行なわれる。
(6,2,6)  r実行ステージ」 実行ステージ(Eステージ)35はEコード45及びS
コード46を入力として動作する。このEステージ35
が命令を実行するステージであり、Fステージ34以前
のステージで行われた処理は総てEステージ35のため
の前処理である。Eステージ35でジャンプ命令が実行
されたり、BIT処理が起動されたりした場合は、IP
ステージ31〜Fステージ34までの間で行われた処理
はすべて無効化される。Eステージ35はマイクロプロ
グラムにより制inされ、Rコード45にて示されたマ
イクロプログラムルーチンのエントリ番地からの一連の
マイクロ命令を実行することにより命令を実行する。
マイクロl?OMの読出しとマイクロ命令の実行とはパ
イプライン化されて行われる。従ってマイクロプログラ
ムで分岐が起きた場合は、1マイクロステツプの空きが
発生する。また、Eステージ35はデータ演算部56に
あるストアバッファを利用して、4バイト以内のオペラ
ンドストアと次のマイクロ命令実行とをパイプライン処
理することもできる。
Eステージ35ではAステージ33で行ったレジスタあ
るいはメモリに対する書込み予約をオペランドの書込み
の後に解除する。
各種の割込は命令の切れ目においてEステージ35に直
接受付けられ、マイクロプログラムにより必要な処理が
実行される。その他の各種ErTの処理もマイクロプロ
グラムにより行われる。
(6,3)  r各パイプラインステージの状態制御」
パイプラインの各ステージは入力ラッチと出力ランチと
を有し、他のステージとは独立して動作することを基本
とする。各ステージは1つ前に行った処理が終了し、そ
の処理結果を出力ランチから次のステージの入力ラッチ
へ転送し、自身のステージの入力ラッチに次の処理に必
要な入力信号が総て揃うえば次の処理を開始する。
つまり、各ステージは、1つ前段のステージから出力さ
れてくる次の処理に対する入力信号が総て有効となり、
現在の処理結果を後段のステージの入力ラッチへ転送し
て出力ランチが空になると次の処理を開始する。
各ステージが動作を開始する1つ前のクロックタイミン
グで入力信号が総て揃っている必要がある。入力信号が
揃っていないと、そのステージは待ち状態(入力待ち)
になる。出力ラッチから次のステージの入力ランチへの
データ転送に際しては、次のステージの入力ラッチが空
き状態になっている必要があり、次のステージの入力ラ
ッチが空き状態でない場合もパイプラインステージは待
ち状態(出力待ち)6になる。必要なメモリアクセス権
が獲得できなかったり、処理しているメモリアクセスに
ウェイトステートが挿入されていたり、その他のパイプ
ラインコンフリクトが生じた場合にも、各ステージの処
理自体が遅延する。
(6,4)  rプロセッサモードでのメモリアクセス
動作」 第5図にプロセッサモードでの本発明のマイクロプロセ
ッサの外部入出力動作の一例としてのメモリアクセスの
タイミングチャートを示す。
メモリアクセスは十分高速なメモリに対しては外部人力
クロックの4クロツクに1度の速度で行われる。第5図
では最初にゼロウェイトのリードサイクル、次にゼロウ
ェイトのライトサイクル。
次に1クロツクウエイトのリードサイクルを示す。
図中[ICLKはCIJの2倍の周期のバスクロックで
あり、メモリバスサイクルの基本となる信号である。
BCLKはCIJの奇数番目パルスと偶数番目パルスと
を定める。  CLKに同期して動作する本発明のマイ
クロプロセッサとBCLKとの同期はリセ・シト割込み
により行う。
リードサイクルではアドレスが出力され、BCLKがロ
ーレベルである間のCLKの立下り時にDCIがアサー
トされた際の00:31の値が取込まれてバスサイクル
が終了する。ライトサイクルではまずアドレスが出力さ
れ、1クロツタ遅れてデータが出力され、BCLKがロ
ーレベルである間のCLKの立下り時にDCIがアサー
トされればバスサイクルが終了する。
このようにプロセッサモードにおいては、CLKに同ル
1したバスサイクルを本発明のマイクロプロセッサが起
動することにより外部との入出力動作(7)「テストモ
ードでの動作」 本発明のマイクロプロセッサはテストモードにおいては
、テスト命令に従って各機能ブロックの診断を実行する
第1図はテストモード時の動作状態の概念を示す本発明
のマイクロプロセッサの一構成例のブロック図である。
テスト命令のマイクロROM番地フィールドあるいはR
コード43のマイクロll0M番地を取込み、その番地
からのマイクロプログラムのシーケンスを制御するマイ
クロシーケンス制御部10.マイクロプログラムの番地
を管理するマイクロプログラムカウンタ (、+JPC
)11.マイクロプログラムを記憶するマイクロI?0
M12.各マイクロ命令のデコード及びその実行を制御
するマイクロ命令実行制御部13゜テスト命令の一部ま
たは命令デコード部の出力であるRコード43をマイク
ロシーケンス制御部へ転送するRコードラッチ部14.
  Aコード42をラッチしたり圧縮して蓄積するAコ
ードラッチ部15.命令フェッチ部51.命令デコード
部52.オペランドアドレス計算部54.データ演算部
56.テスト命令の上位3ピントをマイクロシーケンス
制御部10へ入力するIRLIO:2ビン16.テスト
命令の取込みを指示するDBGINTIビン17.テス
トモードにおいてテスト命令実行中を示すDBGACK
Iビン18.テスト命令の下位32ビツトをデータ入出
力回路59からバイパスバス23を通じてRコードラッ
チ部14とマイクロシーケンス制御部10とへ転送した
りまた命令フェッチ部51のテスト結果をデータ入出力
回路59へ転送するDDババス9.オペランドアドレス
計算部54あるいはデータ演算部56のテスト結果をア
ドレス出力回路58へ転送するAAババス0.データ入
出力回路59から1ビツトのスキャンインデータをマイ
クロ110M12の出力部の第1リニアフイードバツク
シフトレジスタLPSR24へ転送するnoピン21.
スキャンアウトデータをAコードラッチ部15の第3リ
ニアフイードバツクシフトレジスタLPSR26からマ
イクロブロセ・ノサ外部へ出力するLocaビン22等
にて構成されている。
Rコードラッチ部14には第2リニアフィードバツタシ
フトレジスタLFSR25があり、データ演算部58に
は第4リニアフイードバツクシフトレジスタLPSR2
7がある。命令デコード部52には自己診断時に使用す
るカウンタ28がある。
テストモードでは、入力されたテスト命令に従いマイク
ロシーケンス制御部IOがマイクロROM12をアクセ
スしてマイクロプログラムを実行することによりマイク
ロプロセッサの各部をテストする。
テスト動作に必要なデータはロード命令によりデータ演
算部56のDOレジスタ29へ取込まれる。
命令フェッチ部51はマイクロ命令実行制御部13の指
示に従ってテスト動作を行い、その結果をDOババス7
.データ入出力回路59を介してマイクロプロセッサ外
部へ出力する。
命令デコード部52はマイクロ命令実行制御部13の指
示に従ってテスト動作を行い、その結果をRコードラン
チ部14とAコードラッチ部15とへ出力する。
オペランドアドレス計算部はマイクロ命令実行制御部1
3の指示に従い、データ演算部5Gのレジスタファイル
から転送されるデータを使用してテスト動作を行い、そ
の結果をAAババス0.アドレス出力回路58を介して
マイクロプロセッサ外部へ出力する。
データ演算部56はマイクロ命令実行制御部13の指示
に従いテスト動作を行う。テスト動作に必要なデータは
ロード命令によりマイクロプロセッサ外部から口Dレジ
スタ29へ取込むこともできる。テスト動作の中間演算
結果はレジスタファイルに保存され、テスト結果はAA
ババス0.アドレス出力回路5日を介してマイクロプロ
セッサ外部へ出力される。
(7,1)  rテスト命令の取込み」テスト命令は命
令フェッチ部51及び命令デコード部52を介すること
なくバイパスバス23を通して直接Rコードラッチ部1
4とマイクロシーケンス制御部10とへ取込まれる。ロ
ード命令とスキャンパス命令以外のテスト命令の各フィ
ールドはプロセッサモードでプロセッサ命令をデコード
して得られたRコード43と類似のフォーマントとなっ
ており、テスト命令の取込みはRコード43を直接書換
える形態をとる。テスト命令で指定されないRコ・−ド
43のフィールドはテスト命令取込み前にRコードラン
チ部14に保持されていた内容をそのまま保持する。マ
イクロROM番地はRコード43を書換えるのではなく
、直接マイクロシーケンス制御部10へ入力される。
テスト命令の取込みではメモリサイクルは起動されない
。テスト命令の取込みのタイミングをテスト結果の出力
タイミングと共に第6図のタイミングチャートに示す。
DBGACK#がネゲートされているとき、[RLO:
2ピン16とD(h31ビン21とにテスト命令のピン
トパタンを入力しながらBCIJとCLKの両方が立上
がるタイミングに同期して口BGINTIビン17をア
サートすることによりテスト命令が取込まれる。
(7,1,1)  rRコードのフォーマットとテスト
命令」第38図はRコード43のフォーマットの模式図
である。Rコード43は32ビツト長であり、各フィー
ルドの意味は以下の通りである。
0P1:演算に関する第1のパラメータを指定する部分 M−:演算結果出力が外部のメモリか否かを指定する部
分 O20:演算に関する第2のパラメータを指定する部分 R1ソースオペランドのレジスタ位置を指定する部分 RD:デスティネーションオペランドレジスタ位置を指
定する部分 ■=ソースオペランドサイズを指定する部分−〇:デス
ティネーションオペランドサイズを指定する部分 また、マイクロROM番地を指定するフィールドは8ビ
ツトであり、マイクロシーケンス制御部10へ入力され
る際に下位にゼロが4ビア)拡張される6本発明のマイ
クロプロセッサのマイクロプログラムは1ワードが1゛
2ビツトのマイクロ命令でコーディングされており、4
にワードの空間に格納されている。各Rコード43で指
定される各マイクロプログラムルーチンのエントリ番地
の下位4ビツトは必ずゼロである。従ってRコード43
で指定可能なマイクロプログラムルーチンのエントリは
256個である。
第32〜37図に示すテスト命令のフォーマントの内、
Rコード43を書換える命令は第32図に示す第1連続
実行命令と第34図に示す第1ステツプ実行命令とであ
る。この2つの命令が入力されるとRコード43の内の
OP4フィールドとマイクロROM番地を指定するフィ
ールド以外が書換えられる。MWフィールドは門1フィ
ールドに、OP2フィールドはTPAIIフィールド′
。に、RSSフィールド5IIEGフィールドに、RD
フィールドはDREGフィールドに、−Sフィールドは
ZSフィールドに、WDフィールドはZDフィールドに
それぞれ書換えられる。OP1フィールドとマイクロR
OM番地の上位8ビツトを示すフィールドはテスト命令
取込み前の値のまま保持される。
第39図に具体的なプロセッサ命令のRコード43の例
を示す。各命令の意味は以下の通りである。
MOV、W  R2、MEM: レジスタ2から4バイ
トのデータをメモリへ転送する。
C門P、B  l?8 、RO:レジスタ8とレジスタ
0の各1バイトのデータを比較 する。
ADD、鏝 MEM、R2:レジスタ2の4バイトのデ
ータにメモリの4バイトの データを加算してレジスタ 2に格納する。
5t(A、W  12 、RO:レジスタOの4バイト
のデータを2ビツト算術シフト する。
M[IL、HR7,R15ニレジスタフとレジスタ15
の各2バイトのデータを乗算 してレジスタ15に格納する。
JMP   a(R3)  : レジスタ3の4バイト
のデータをアドレスとする番地 ヘジャンプする。
本発明のマイクロプロセッサでは問ν、&4とADII
Jとは共に同じマイクロプログラムで処理され・るため
マイクロプログラムルーチンを共有しており、マイクロ
ROM番地は互いに等しい。また、各命令のオペランド
のレジスタ番号及びオペランドサイズがRコード43の
種々のフィールドにマイクロプログラムに対するパラメ
ータとして反映されている。
第40図に具体的なテスト命令の例を示す、各命令の意
味は以下の通りである。
TESTALUOPE   :  ALUの各種演算機
能をテストする第2連続実行命令。
TESTAADD    ニオペランドアドレス計算部
をテストする第2連続実行 命令。
TCMP、B R8,l?o  : CJIP、8 R
8,I?Oと同じマイクロプログラムルーチンを実 行する第1連続実行命令。
S3門UL、lI R7,R15:門LIL、HR7,
1ン15のマイクロプログラムルーチンのエンド リ番地から3番地先のマイ クロ命令を1つだけ実行す る第1ステツプ実行命令。
0UTPUT R3:レジスタ3の4バイトのデータを
AAババス0とアドレス 出力回路58とを通じてマイ クロプロセッサ外部へ出力 する第1i!!続実行命令。
INPUT  R5:データ演算部56中の[)Dレジ
スタ29の4バイトのデータ をレジスタ5へ転送する第 1連続実行命令。
テスト命令ではRコード43のOPIを変更することが
できないため、上述のテスト命令の内、TCMP、Wあ
るいは33M[IL、11の命令を実行する前に、OP
Iが“0000”になるプロセッサ命令をプロセッサモ
ードで実行しておく必要がある。しかし、本発明のマイ
クロプロセッサではテスト命令の下位32ビツトの各ビ
ットの設定を自由に行い得ることにより、テストモード
でマイクロプロセッサの各部分を診断する診断専用のマ
イクロプログラムルーチンもプロセッサ命令のマイクロ
プログラムルーチンもテスト命令で実行できる。
(7,2)  rテスト結果の出力」 本発明のマイクロプロセッサがテストモードにおいてテ
スト結果を出力するタイミングをテスト命令の取込みタ
イミングと共に第6図のタイミングチャートに示す。
テストモードでは、アドレス出力回路58はAAババス
0の内容で常時出力ビンAO:31を駆動しており、メ
モリサイクルは起動されない。テスト命令に従ってAA
ババス0ヘテスト結果が出力されるとその値が出力ビン
AO:31へ出力される。また、命令フェッチ部5Iが
テストされる場合はテスト結果をDOババス9とデータ
入出力回路59とを介してマイクロプロセッサ外部へ出
力する。この際には出力ビン^0:31でテスト結果を
出力する場合と同じく、DBGIICKIビン18のア
サート期間中、データ入出力回路59はDDババス9の
内容で入出力ビン00:31を駆動する。この場合もメ
モリサイクルは起動されない。
(7,3)  rステップ実行命令の動作」本発明のマ
イクロプロセッサでは、ステップ実行命令を実行させる
と、マイクロ命令が1命令だけ実行され、次のテスト命
令を待機する状態となる。本発明のマイクロプロセッサ
ではステップ実行命令を実行する際は、マイクロ命令の
一部でありマイクロプログラムの実行シーケンスをII
I ?Hするシーケンスフィールドをマイクロシーケン
サへ転送する部分をハードウェア的にステップ実行命令
の実行状態とする。
第48図は本発明のマイクロプロセッサのマイクロ命令
のフィールド分割を示す模式図である。
本発明のマイクロプロセッサのマイクロ命令は第48図
に示すように10種類のフィールドに分割される。各フ
ィールドはマイクロ命令デコーダによりデコードされ、
マイクロ命令で指定される全制御線と1対1に対応する
信号となる。マイクロプログラムの実行シーケンスを制
御するフィールドは6ビツトであり、ビットバタンによ
り第49図に示すような制御を行う。
第50図はステップ実行命令を実行させるための制御回
路の構成を示す回路図である。
図中、61はマイクロll0M12から出力されたマイ
クロ命令の6ビツトのシーケンスフィールド66をラッ
チするシーケンスフィールド出力ラッチである。
62はIRLO:2ビン16から取込まれたテスト命令
の上位3ビツトをラッチするrl?L入カラフカランチ
63はIRL人カラソチ62の出力65に従ってシーケ
ンスフィールド出力ラッチ61の出力67を次に実行す
べきマイクロ命令の番地を決定するマイクロシーケンサ
64へそのまま信号線68を介して出力するか、あるい
は強制的にrololllJにした上で信号線68を介
して出力するかを制御するマイクロシーケンス変更回路
である。
ステップ実行命令では第34図及び第35図に示すよう
に、命令の上位2ビツトが「11」であり、このときマ
イクロシーケンス変更回路はシーケンスフィールド出力
ラッチ61の出力67の値に拘わらすrololllJ
を信号線68へ出力する。第49図に示すようにrol
ol、11Jはマイクロプログラムルーチンの終了を示
すビットバタンであり、マイクロシーケンサ64はマイ
クロプログラムが終了して次のテスト命令の入力待ち状
態となる。
シーケンスフィールド出力ラッチ61の出力67はデー
タ演算部56へも供給されている。データ演算部56は
この信号に従って作業用スタックポインタ値の正規スタ
ックポインタへの転送、あるいは作業用ステータスフラ
ッグの正規プログラムステータスレジスタへの転送等を
行う。このため、データ演算部56へ供給されるシーケ
ンスフィールド出力ラッチ61の出力信号は本来のマイ
クロ命令で指定されたビットバタンである出力67とす
る。これによりデータ演算部56はステップ実行命令を
実行する場合もその他の場合と同じ動作をする。
(7,4)  r自己診断機能」 本発明のマイクロプロセンサではテスト命令で起動する
診断用マイクロプログラムルーチン以外にも、マイクロ
プロセフI+−かりセットされた場合に、各部を自己診
断するマイクロプログラムルーチンが内蔵されている。
本発明のマイクロプロセッサではマイクロtlOM12
.命令デコード部52.オペランドアドレス計算部54
.データ演算部56の各部を自己診断する。第41図に
本発明のマイクロプロセッサの自己診断用のマイクロプ
ログラム全体の処理手順のフローチャートを示す。
自己診断は本発明のマイクロプロセッサをテストモード
にして実行される0本発明のマイクロプロセッサでは自
己診断のために2つのカウンタと4つのリニアフィード
バックシフトレジスタとが内蔵されている。
カウンタは自己診断のためのデータ発生器として動作し
、リニアフィードバンクシフトレジスタは疑似乱数発生
器またはデータ圧縮器として動作する。リニア、フィー
ドバックシフトレジスタを疑似乱数発生器あるいはデー
タ圧縮器として使用する手法、リニアフィードバックシ
フトレジスタを使用してLSIに自己診断機能を持たせ
る手法については国中、[テストの手を借りずにテスト
ができる論理LSI J 、日経エレクトロニクス、1
983年6月20号、pp、 124−133で述べら
れている。
まず、プロセッサ各部の初期設定のためのリセットシー
ケンスのマイクロプログラムの最後でプロセッサモード
からテストモードに遷移し、マイクロROM12のテス
トシーケンスの先頭ヘジャンブする。これにより、マイ
クロROM12の自己診断が実行される。マイクロ番地
阿12の自己1断の結果が0番の汎用レジスタのビット
31に反映された後、命令デコード部52を診断するた
めのテストシーケンスの先頭ヘジャンプする。
命令デコード部52の自己診断が実行され、その結果が
0番の汎用レジスタのビット30に反映された後、オペ
ランドアドレス計算部54を診断するためのテストシー
ケンスの先頭ヘジャンプする。
オペランドアドレス計算部54の自己診断が実行され、
その結果が0番の汎用レジスタのビット29に反映され
た後、データ演算部56を診断するためのテストシーケ
ンスの先頭ヘジャンブする。
データ演算部56の自己診断が実行され、その結果が0
番の汎用レジスタのピント28に反映された後、テスト
モードからプロセッサモードへ遷移する。
(7,4,1)  rマイクロRO1’lの自己診断」
本発明のマイクロプロセッサでは自己診断時に、マイク
ロプログラムカウンタ11をゼロから順番にカウントア
ツプしてマイクロROM12中のマイクロ命令を順次的
に読出し、それをマイクロROM12の出力部にある第
1リニアフイードバツクシフトレジスタLPSR24で
データ圧縮する。データ圧縮結果が特定の値になったか
否かは1ビツトで示され、それをマイクロプログラムで
読取る。本発明のマイクロプロセッサのマイクロI?O
?112の自己診断用マイクロプログラムルーチンのフ
ローチャートを第42図に示す。
まず、プロセッサ各部の初期設定のためのりセットシー
ケンスのマイクロプログラムのm+&でプロセッサモー
ドからテストモードに遷移し、マイクロROI’l12
のテストシーケンスの先頭ヘジャンプする。そして、マ
イクロプログラムカウンタに“Onがセットされ、第1
リニアフィードバックシフトレジスタL P S R2
4が初期化される。
次にマイクロプログラムカウンタが順次インクリメント
され、その時点のマイクロROM12の出力が第1リニ
アフイードバツクシフトレジスクLFSR24でデータ
圧縮されて蓄積される。
圧縮されたデータの最終結果が総て“θ′であるか否か
を示す1ビツトがチエツクされ、YESであれば0番の
汎用レジスタのピント31が0”にされ、Noであれば
0番の汎用レジスタのビット31が1”にされる、この
後、命令デコード部52のテストシーケンスへジャンプ
する。
また、マイクロl10M12の出力部の第1リニアフイ
ードバツクシフトレジスタLFSR24には1つのマイ
クロ番地(11“9FF番地:■ゝは16進数を表す)
が割当てられており、ll’9FF番地のマイクロ命令
をステップ実行命令で実行すると第1リニアフイードバ
ツクシフトレジスタLPSR24の内容がマイクロ命令
として実行される。
(7,4,2)  r命令デコード部の自己診断機能j
本発明のマイクロプロセッサの命令デコード部52は入
力部に17ビソトのカウンタ28を有し、Rコードラン
チ部14とAコードラッチ部15とにデータ圧縮器とし
て第2.第3リニアフィードバックシフトレジスタLF
SR25,26を有する。リセット時にはカウンタ28
から17ビントのピントパタンを「B”0000000
0000000000Jから「B”111111111
11111111Jまですべての種類発生してそのビン
ドパクンをデコードし、デコード結果を上記の2つのデ
ータ圧縮器としての第2.第3リニアフイードバツクシ
フトレジスタLPSR25,26へ入力する。データ圧
縮結果が特定の値になったか否かは各1ビツトで示され
、マイクロプログラムでそれを読取ることができる。本
発明のマイクロプロセッサの命令デコード部52の自己
診断用マイクロプログラムルーチンのフローチャートを
第43図に示す。
まず、第2.第3リニアフイードバツクシフトレジスタ
LPSR25,26が初期された後、命令デコード部5
2の入力部の17ビントカウンタ28が“0”に初期化
される。
カウンタ28が順次インクリメントされ、その時点の命
令デコード部52の出力を第2リニアフイードバツクシ
フトレジスタLPSR25と第3リニアフイードバツク
シフトレジスタLFSR26とでデータ圧縮して蓄積す
る。
圧縮されたデータの最終結果が双方共総て“0”である
か否かがチエツクされ、YESであれば0番の汎用レジ
スタのビット30が“0”にされ、NOであれば0番の
汎用レジスタのビット30が“1″にされる。この後、
オペランドアドレス計算部54のテストシーケンスへジ
ャンプする。
(7,4,3)  rデータ演算部とオペランドアドレ
ス計算部の自己診断機能」 データ演算部56とオペランドアドレス計算部54との
自己診断時にはマイクロプロセッサ外部からのデータ入
力とマイクロプロセッサ外部へデータ出力は行われない
、データ演算部56とオペランドアドレス計算部54と
の自己診断に使用するデータはデータ演算部にある疑似
乱数発生器兼データ圧縮器である第4リニアフイードバ
ツクシフトレジスタLFSR27または定数ROMある
いはマイクロ命令中のリテラルフィールドから得る。
自己診断結果は第4リニアフイードバツクシフトレジス
タLPSR27あるいはレジスタへ出力される。
自己診断の結果、マイクロプロセッサに不具合があるか
否かの判断はリセット後に汎用レジスタの内容をプロセ
ッサ命令で読出すことにより行う。
本発明のマイクロプロセッサのマイクロプログラムでは
第4リニアフイードバツクシフトレジスタLFSI12
7は1つのワーキングレジスタとして指定することが可
能であり、乱数発生器として第4リニアフイードバツク
シフトレジスタLPSR27の内容を読出すこと及びデ
ータ圧縮器として第4リニアフイードバツクシフトレジ
スタLFSR27へデータを書込むことをマイクロプロ
グラムで指定することが可能である。
鴇し/ (7゜5)「スキャンバス」 本発明のマイクロプロセッサでは、第1図に示す様に、
マイクロ命令阿12の出力部とRコードランチ部14と
Aコードラッチ部15の3つのリニアフィードバックレ
ジスタLPSR24,25,26のシフトパスとが結合
されていて1つのスキャンバスとして構成されている。
スキャンバス命令により、これらのリニアフィードバッ
クシフトレジスタしFSt124□25 、26に任意
の値を設定すること及びこれらのリニアフィードバック
シフトレジスタLFSt?24,25.26の値を涜出
すことが可能である。本発明のマイクロプロセッサでは
このスキャンバス命令でOPIフィールドを含む全Rコ
ードフィールドの書換えを行う。また、スキャンバス命
令では、Rコード43及びAコード42に必要な値をセ
ットすることにより故障原因の解明を行い、故障する可
能性が高い部分と低い部分との特定等を行う。
本発明のマイクロプロセッサは上述のスキャンバスを用
いて外部から任意のマイクロ命令を第1リニアフィード
バックシフトレジスタLPSR24にセットし、それを
実行することができる。
ここで、スキャンパスにより外部から入力したマイクロ
命令を実行する手;頃を説明する。第52図は第1リニ
アフイードバツクシフトレジスタLPSR24を含むマ
イクロROM12の構成を示すブロック図である。
マイクロプログラムカウンタ11から入力されたアドレ
ス70はアドレスデコーダ71でデコードされ、ROM
アレイ72に記憶されているマイクロ命令がRO?’1
アレイ72の出力信号76として第1リニアフイードバ
ツクシフトレジスタLPSR24へ入力され、信号75
が11”になるタイミングで第1リニアフイードバツク
シフトレジスタLPSR24の内容が書換わり、マイク
ロ110M12の出力信号としてマイクロ命令実行制御
部13へ出力される。
アドレスデコーダ71はアドレス70が16進数で9F
Fである場合に第1 LPSR内容書換え禁止信号71
を“1″にし、その他のアドレスである場合は同信号7
1を“0′にする。従って第1リニアフイードバツクシ
フトレジスタLPSR24の入力指示信号74により出
力信号76の取込みが指示されてもアドレス70が16
進数で9FFであれば信号75はO“を維持し、第1リ
ニアフイードバツクシフトレジスタLFSI?24の内
容は書変えられない。
従って、スキャンバス命令により実行したいマイクロ命
令を第1リニアフイードバツクシフトレジスタLPSR
24にセントし、次にマイクロl?OM番地が16進数
で9FFのマイクロ命令を実行させるためのテスト命令
を実行すると、第1リニアフイードバツクシフトレジス
タLPSR24にスキャンインされたマイクロ命令が実
行される。
(7,6)  rテストモードとプロセッサモードの切
換え」 本発明のマイクロプロセッサではテストモードとプロセ
ッサモードの切換えをマイクロプロセッサをリセットす
ることなしに行い得るように構成しである このため、本発明のマイクロプロセッサをLSIテスタ
でテストする場合はテスト命令とプロセッサ命令を組合
わせて使用する。テストモードとプロセッサモードとの
切換えの状態を概念図として第51回に示す。
プロセッサモードからテストモードへの遷移はテスト割
込みにより可能であり、テストモードからプロセッサモ
ードへの遷移は専用のテスト命令(EOT命令)の実行
により可能である(7.6.1)  rテストモードへ
の遷移」プロセッサモードからテストモードへの遷移は
専用の割込みであるテスト割込みにより可能である。
テスト割込みはYESTIビンのアサートにより受付け
られる。なお、このテスト割込みはプロセッサ命令の切
れ目で受付けられるマスク不可能割込みである。
本発明のマイクロプロセッサでは、テスト割込みを受付
けた場合には、各種のレジスタやラッチの内容をテスト
割込みを受付けた直前に実行した命令の終了状態のまま
保持してプロセッサモードからテストモードに遷移し、
テスト命令入力待ち状態となる。
(7,6,2)  rテストモードへの遷移」テストモ
ードからプロセッサモードへの遷移はは専用のテスト命
令(EOT命令)の実行により可能である。
本発明のマイクロプロセサでは、テストモードでP、O
T命令を実行した場合には、各種のレジスタ及びラッチ
の内容がEO↑命令を実行する前の値に保持されたまま
でテストモードからプロセッサモードに遷移し、特定の
作業用レジスタ (lliBレジスタ)の内容をPC値
としてそのPC値からプロセッサ命令の実行が開始され
る。l!Bレジスタはマイクロプログラムから操作可能
なレジスタであり、EOT命令の実行直前にEBレジス
タの値をテスト命令でセットすることにより、プロセッ
サモードに遷移した後、任意のPC値からプロセッサ命
令を実行することが可能である。
(7,7)  r各部のテスト動作」 ここで、本発明のマイクロプロセッサを診断するための
テスト動作の例を述べる。このテスト動作は例えばLS
Iテスタを用いて容易に行うことができる。
(7,7,1,)  rマイクロROM部JマイクロR
OM部55のテストはリセット時の自己診断によるマイ
クロROM12のテストと、プロセッサモードでの各命
令の実行及びテストモードでの各テスト命令の実行によ
り行われる。
(7,7,2)  r命令フェッチ部」命令フェッチ部
51には命令キューとブランチバッファとがある。この
2つは専用のテストシーケンスによりテストモードとプ
ロセッサモードとを組合わせてテストする。命令フェッ
チ部51のテスト動作のフローチャートを第44図に示
す。
命令キュー及びブランチバッファは一種のRAMであり
、第44図のフローチャートに従ってテストシーケンス
を書込むデータ値を種々 (オール“1“。
オール“0”あるいはランダム数等)に変化させて実行
することによりテストする。
まず、テスト割込みによりプロセッサモードからテスト
モードへ遷移する。テスト命令により命令フェッチ部5
1を命令キュー出力停止状態とする。
次に、ロード命令により命令キューのテストのために命
令キューに書込む4ワードのデータの先頭番地AをDD
レジスタ29に書込む。テスト命令により番地AをEB
レジスタへ転送する。次に、EOT命令を実行し、命令
フェッチ部51を命令キュー出力停止状態のままでプロ
セッサモードへ遷移させる。
プロセッサモードで命令フェッチ部51は番地Aから4
ワードのデータをフェッチする。これにより命令キュー
がフル状態になる。
再度テスト割込みによりテストモードへ遷移し、テスト
命令により命令キューの内容をI)Dバス19とデータ
入出力回路59とを通じてプロセッサ外部へ読出す、テ
スト命令により命令フェッチ部51の命令キュー出力停
止状態を解除する。更に、テスト命令により命令フェッ
チ部51を命令キュー常時空状態にする。
ロード命令によりブランチバッファのテストのためにブ
ランチバッファに書込まれるデータの先頭番地BをDD
レジスタ29に書込む、テスト命令により番地BをEB
レジスタへ転送する。次に、I!OT命令を実行し、命
令フェッチ部51を命令キュー常時空状態のままでプロ
セッサモードに遷移させる。
命令フェッチ部51がB番地から256バイトのデータ
をフェッチし、ブランチバッファの全エントリにテスト
データを書込む。
再度テスト割込みによりテストモードへ遷移し、テスト
命令によりブランチバッファの内容をDOババス9とデ
ータ入出力回路59とを通じてプロセッサ外部へ読出す
。テスト命令により命令フェッチ部51の命令キュー常
時空状態を解除する。更に、EOT命令によりプロセッ
サへ遷移する。
(7,7,3)  r命令デコード部」命令デコード部
52のテストはリセット時の自己診断による全ビットバ
タンに対するデコードとプロセッサモードでの各種プロ
セッサ命令の実行とにより実行される。
命令デコード部52に故障がある場合の故障場所の特定
あるいはより完全なテストを行う場合には、Rコードラ
・ノチ部14とAコードラッチ部I5とにある第2及び
第3リニアフイードバツクシフトレジスタLPSR25
,26の値をスキャンバス命令で読出す。
(7,7,4)  rオペランドアドレス計算部」オペ
ランドアドレス計算部54はリセット時の自己診断によ
る簡易テストの他、テストモード及びプロセッサモード
での詳細テストも行える。
テストモードではスキャンバス命令を用いてAコードラ
ッチ部15の第3リニアフイードバツクシフトレジスタ
LFSR26に種々のAコード42の値をセントするこ
とにより、非常に詳細なテストや故障の特定が行える。
テストモードとプロセッサモードとを組合わせて行われ
るオペランドアドレス計算部54のテスト動作の一例の
フローチャートを第45図に示す。
Aコード42でメモリ間接アドレッシングを指定するこ
とによりオペランドアドレス計算部54のテスト結果を
AAババス0.アドレス出力回!5Bを介して外部へ読
出すことができる。第45図の動作を種々のデータにつ
いて行うことによりオペランドアドレス計算部54の詳
細なテストが行える。
まず、プロセッサモードにおいてデータ演算部56の汎
用レジスタにテスト用データをロードした後、テスト割
込みによりテストモードに遷移する。
データ演算部56の汎用レジスタからオペランドアドレ
ス計3E部54のベースアドレスレジスタにベースアド
レス値をロードするための制御コードを含むAコード4
2を、スキャンパスにより第3リニアフイードバツクシ
フトレジスタLFSR26にセットする。
Aコードに従ってオペランドアドレス計算部54を動作
させるテスト命令を実行する。
次に、データ演算部56の汎用レジスタからオペランド
アドレス計算部54のインデックスアドレスレジスタに
インデックスアドレス値をロードし、ベースアドレス値
とインデックスアドレス値とディスプレースメント値と
を3値加算し、その加算結果によりメモリ間接アドレッ
シングをする制御コードとディスプレースメント値を含
むAコード42とをスキャンパス命令により第3リニア
フイードバツクシフトレジスタLFSR26にセットす
る。
Aコード42に従ってオペランドアドレス計算部54を
動作させるテスト命令を実行し、3値加算結果を録バス
20. アドレス出力回路58を通じて外部へ出力する
。この後、EOT命令を実行してプロセッサモードへ遷
移する。
(7,7,5)  rデータ演算部」 データ演算部56はリセット時の自己診断による簡易テ
ストの他、テストモード及びプロセッサモードでの詳細
テストも行える。
テストモードではスキャンパス命令を用いてRコードラ
ッチ部14の第2リニアフイードバツクシフトレジスタ
LFSI?25に種々のRコード43の値をセントする
ことにより、非常に詳細なテスト及び故障の特定が行わ
れる。データ演算部56の故障原因を特定する場合には
外部からスキャンパス命令で任意のマイクロ命令を第1
リニアフイードバツクシフトレジスタLPSR24にセ
ントしてこの命令を実行させることにより、マイクロR
OM12には存在しない種々のマイクロ命令を実行させ
てより自由度の高いテストを実行する。第1リニアフイ
ードバツクシフトレジスタLPSR24にセットしたマ
イクロ命令を用いたデータ演算部56の故障原因特定動
作の一例のフローチャートを第46図に示す。
まず、プロセッサモードにおいてデータ演算部56の汎
用レジスタにテストプログラムをロードする0次に、テ
スト割込みによりテストモードに遷移する。
スーt−ヤンハス命令により第1リニアフイードバツク
シフトレジスタLFSR24に故障診断用マイクロ命令
間をセントする。■“9FF(H’は16進数を表す)
番地のマイクロ命令を実行するステップ実行命令により
マイクロ命令Mlを実行する。
スキャンパス命令により第1リニアフイードバツクシフ
トレジスタLPSR24に故障診断用マイクロ命令間を
セントする。H’9FF番地のマイクロ命令を実行する
ステップ実行命令によりマイクロ命令間を実行する。こ
の結果は汎用レジスタに保持される。
テスト命令により、汎用レジスタに保持されているマイ
クロ命令M2の実行結果をプロセッサ外部へ読出す、こ
の後、EOT命令を実行してプロセッサモードへ遷移す
る。
次に、ステップ実行命令を使用してマイクロプログラム
ルーチンをステップ実行し、データ演算部の故障原因を
特定する動作の一例のフローチャートを第47図に示す
まず、プロセッサモードにおいてデータ演算部56の汎
用レジスタにテストデータをロードする。
次に、テスト割込みによりテストモードに遷移させ、乗
算を実行するためのマイクロプログラムルーチンの第1
のステップをステップ実行命令により実行する。テスト
命令により^LU出力ラノうの中間結果を外部へ読出す
次に、乗算を実行するためのマイクロプログラムルーチ
ンの第2のステップをステップ実行命令により実行する
。テスト命令によりALU出力ラソうの中間結果を外部
へ読出す。
上述の処理を反復する。
乗算を実行するためのマイクロプログラムルーチンの最
終ステップをステップ実行命令により実行する。
テスト命令により乗算結果を外部へ続出す。この後、E
OT命令を実行してプロセッサモードへ遷移する。
この例では乗算を行うマイクロプログラムルーチンを1
ステツプずつ実行して中間結果を順次マイクロプロセッ
サ外部へ読出している0乗算を行うマイクロプログラム
ルーチンが正しく動作しない故障が生じている場合、こ
のテスト方法によりALUでの途中の演算に故障がある
のか、マイクロプログラムルーチンの最終ステップを実
行する際に演算結果を転送する回路に故障があるのか等
、(B)「本発明の他の実施例」 上述の実施例では、ステップ実行命令はテストモードに
おいてのみ実行可能であるが、たとえば第38図に示さ
れているRコード43のマイクロプログラムルーチンの
エントリ番地指定フィールドを12ビツトにして、プロ
セッサ命令にステップ実行命令と同様にマイクロ命令を
1ステツプのみ実行する命令を追加することも可能であ
る。
また、マイクロプロセッサ内部にステップ実行モードを
示すビットを記憶するレジスタを設け、このビットがセ
ットされている場合にはマイクロプログラムがステップ
実行されるように構成することも可能である。
更に、上述の実施例ではテスト命令により容易にテスト
可能な機能ブロックをマイクロプロセッサを構成する一
部の機能ブロックに限っているが、PCC演算部5専 命令をサポートすることも勿論可能である.また、テス
ト命令の種類及びフォーマントを種々追加することも勿
論可能である。
[発明の効果] 以上のように本発明のマイクロプロセッサでは、パイプ
ライン処理により高速処理を行う通常のプロセッサ命令
の他にマイクロプロセッサを診断するテスト命令を有し
ている.そして、テストモードで種々のテスト命令を実
行することを可能に構成しているため、マイクロプロセ
ッサのテストプログラム設計が容易になり、従来のマイ
クロプロセッサに比してテストプログラム設計人工が大
幅に削減される。
また、テストモードとプロセッサモードとをリセットな
しに遷移する機能、あるいはテスト命令でプロセッサ命
令のマイクロプログラムルーチンが実行可能であること
はテストプログラムの設計を大幅に容易化する.テスト
プログラムの設計が容易になる結果、テスト時間を短縮
したテストプログラムの開発,より精細な診断が可能な
テストプログラムの設計が可能になり、マイクロプロセ
ッサの製造コストの削減及びより信頼性の高いマイクロ
プロセッサの提供が可能となる。
特に、ステップ実行命令を使用した場合には、マイクロ
プログラムルーチンを1ステツプずつ実行することが可
能になり、マイクロプログラムルーチンの各マイクロ命
令実行の中間結果をマイクロプロセッサ外部へ出力する
ことが可能になる。
これにより、マイクロプロセッサがLSIのマスクバタ
ン設計のマージン不足に起因して故障を発生する可能性
が高い部分を含むために歩留りが低いような場合に、故
障発生の場所の特定が容易に可能となる。
【図面の簡単な説明】
第1図は本発明のマイクロプロセッサのテストモードで
の動作状態の概念を示すブロック図、第2図は本発明の
マイクロプロセッサの一構成例を示すブロック図、 第3図は本発明のマイクロプロセッサの外部ビンを示す
模式図、 第4図は本発明のマイクロプロセッサのパイプライン処
理の概要を示す模式図、 第5図は本発明のマイクロプロセッサの基本メモリアク
セスサイクルのタイミングチャート、第6図は本発明の
マイクロプロセッサのテスト命令の取込みとテスト結果
の出力状態を示すタイミングチャート、 第7図は従来のマイクロプロセッサの一構成例を示すブ
ロック図、 第8図は本発明のマイクロプロセッサのメモリ上での命
令の並び方を示す模式図、 第9図から第17図は本発明のマイクロプロセッサのプ
ロセッサ命令のフォーマットを示す模式図、第18図か
ら第31図は本発明のマイクロプロセッサのプロセンサ
命令のアドレッシングモードを説明するための模式図、 第32図から第37図は本発明のマイクロプロセッサの
テスト命令のフォーマットを示す模式図、第38図は本
発明のマイクロプロセッサのプロセッサ命令のデコード
結果であるRコードのフォーマットを示す模式図、 第39図は本発明のマイクロプロセッサのプロセンサ命
令のデコード結果であるRコードの例を示す模式図、 第40図は本発明のマイクロプロセッサのプロセッサ命
令のテスト命令の例を示す模式図、第41図は本発明の
マイクロプロセッサの自己診断用のマイクロプログラム
ルーチンのフローチャート、 第42図は本発明のマイクロプロセッサのマイクロRO
Mの自己診断用のマイクロプログラムルーチンのフロー
チャート、 第43図は本発明のマイクロプロセッサの命令デコード
部の自己診断用のマイクロプログラムルーチンのフロー
チャート、 第44図は本発明のマイクロプロセッサの命令フェッチ
部のテストシーケンスの一例を示すフローチャート、 第45図は本発明のマイクロプロセッサのアドレス計算
部のテストシーケンスの一例を示すフローチャート、 第46図はスキャンパス命令を用いた本発明のマイクロ
プロセッサのデータ演算部の故障原因特定動作の一例を
示すフローチャート、 第47図はステップ実行命令を用いた本発明のマイクロ
プロセッサのデータ演算部の故障原因特定動作の一例を
示すフローチャート、 第48図はマイクロ命令フィールドを示す模式図、第4
9図はマイクロ命令のシーケンスフィールドを示す模式
図、 第50図はステップ実行命令のための制御回路の構成を
示すブロック図、 第51図はプロセッサモードとテストモードの遷移状態
の概念を示す模式図、 第52図はマイクロ命令阿の一構成例を示すブロック図
である。 10・・・マイクロシーケンス制御部  12・・・マ
イクロROM  13・・・マイクロ命令実行制御部 
 51・・・命令フェッチ部  27・・・第4リニア
フイードバンクシフトレジスタ  29・・・DOレジ
スタ  52・・・命令デコード部  56・・・デー
タ演算部  63・・・マイクロシーケンス変更回路 なお、各図中同一符号は同−又は相当部分を示す。 吊 図 BYTE: 0 8+2−1 BYTE: N+lj N+2+M−1 図 BYTE: N+2−1 BYTE: N+2−1 BYTE: N+2 N中2+1 N+2+2 N+2+閘+2−1 0 図 BYTE: BYTE: 悶÷4−1 1 図 BYTE: N+2−1 BYTE: N+2 N+2+1 N+2+2 −−−−−−  N+2十N÷2−16 図 BYTE: 7 図 8 図 9 図 BYTE: N+2−1 BYTE: N中2 N+2十閘− 2 図 BYTE: N+2− 3 図 BYTE: N+2−1 BYTE: N+2 N+2+1 N+2+2 N+2+M+2−1 4 図 BYTE: BYTE: N+4−1 5 ■ 0 図 1 図 2 図 23 図 (Sh) (Ea) 口■コ 匠■コ 4 図 (sh) (Ea) 団刀 匠■ヨ 5 図 6 図 1 図 7 図 2日 図 9 □□□ 0 図 RL 0120001 506 011 l516  1920 2 図 RL 012 G。 920 3 図 [RL fJ l  20001 506 l011 l516  1920 4 図 RL 012 G。 920 5 図 1 1 1 RL 01 200 M RL 0 1 2000 56 W 20 1 6 図 920 7 図 011 516 021 325 3 3日 図 1 図 弔 42 図 第 3 図 柔 45 図 第 6 図 第 47 図 弔 9 図 第 4日 図 弔 1 図 、) 手続補正書、□発、 平成2年6,18  日 2、発明の名称 マイクロプロセッサ 3、補正をする者 事件との関係 特許出願人 代表者 志 岐 守 哉 4、代 理 人 5、補正の対象 明細書の「特許請求の範囲」及び「発明の詳細な説明」
の欄、並びに図面 6、補正の内容 6−1明細書の「特許請求の範囲」の欄別紙の通り 6−2明細書の「発明の詳細な説明」の欄(1111A
MI書の第6頁15行目に「動作同様にjとあるのを、
「動作により」と訂正する。 (2)  明細書の第12頁4行目に「パイプライン動
作を高速実行することを目的」とあるのを、「パイプラ
イン動作による高速実行を目的」と訂正する。 (3)  明細書の第13頁16行口に「場合に、LS
Iテスタでテストする場合に」とあるのを、「場合と、
LSIテスタでテストする場合とに」と訂正する。 (4)明細書の第14頁12行口に「命令」とあるのを
、「マイクロ命令」と訂正する。 (5)明細書の第15頁7行目に「高機能で実行させる
」とあるのを、「高速実行させる」と訂正する。 (6)明細書の第15頁18行口に「高速で」とあるの
を、「高速に」と訂正する。 (7)  明細書の第15頁19行口に「高速で」とあ
るのを、「高速に」と訂正する。 〔8)明細書の第17頁6行目に「利用で可能な船形」
とあるのを、「利用可能な一船形Jと訂正する。 (9)明細書の第25頁3行目に「起動する。」とある
のを、「起動される。」と訂正する。 Ol  明細書の第29頁2行目にrB、HJとあるの
を、「8ピント、16ビツト」と訂正する。 (11)明細書の第29頁17行口にrB、HJとある
のを、「8ビツト、16ビフト」と訂正する。 (12)明細書の第43頁5行目に「マイクロROM部
」とあるのを、「マイクロROM部55」と訂正する。 (13)明細書の第43頁9行目に「マイクロROM部
」とあるのを、[マイクロROM部55」と訂正す(1
4)明細書の第43頁12行口に「マイクロROM部」
とあるのを、「7420120M部55」と訂正する。 (15)明細書の第49頁4行目から5行目に「アドレ
ス出力回路」とあるのを、「アドレス出力回路58」と
訂正する。 (16)明細書の第55頁13行口に「出力単位はは」
とあるのを、「出力単位は」と訂正する。 (17)明細書の第56頁13行口に「32ビツトアド
レス」とあるのを、「32ビツトのアドレス」と訂正す
る。 (18)明細書の第62頁4行目に「揃うえば」とある
のを、「揃えば」と訂正する。 (19)明細書の第67頁1行目から2行目に「データ
演算部58」とあるのを、「データ/iii算部56」
と訂正する。 (20)明細書の第67頁19行口に「オペランドアド
レス計算部」とあるのを、「オペランドアドレス計算部
54」と訂正する。 (21)明細書の第77頁15行口に「マイクロシーケ
ンス変更回路」とあるのを、「マイクロシーケンス変更
回163Jと訂正する。 (22)明細書の第79頁16行口に「テストの手を借
りずに」とあるのを、「テスタの手を借りずに」と訂正
する。 (23)明細書の第80頁20行口に「自己診断」とあ
るのを、「自己診断機能」と訂正する。 (24)明細書の第81頁16行口に「マイクロプログ
ラムカウンタ」とあるのを、「マイクロプログラムカウ
ンタ11」と訂正する。 (25)明細書の第81貞19行百に「マイクロプログ
ラムカウンタ」とあるのを、「マイクロプログラムカウ
ンタIIJと訂正する。 (26)明細書の第83頁14行口に「初期された」と
あるのを、「初期化された」と訂正する。 (27)明細書の第84頁12行口に「外部へデータJ
とあるのを、「外部へのデータ」と訂正する。 (28)明細書の第86頁5行目に「シフトバスJとあ
るのを、「各シフトバス」と訂正する。 (29)明細書の第87頁18行目に「禁止信号71」
とあるのを、「禁止信号73」と訂正する。 (30)明細書の第87頁19行目に「同体号71」と
あるのを、「同体号73」と訂正する。 (31) 明細書の第97頁5行目に「テストプログラ
ム」とあるのを、「テスト用データ」と訂正する。 6−3図面 fl)  第1図を別紙の通り訂正する。 (2)第7図を別紙の通り訂正する。 (3)第8図を別紙の通り訂正する。 (4)  第9図を別紙の通り訂正する。 (5)第10図を別紙の通り訂正する。 (6)  第11図を別紙の通り訂正する。 (7)第32図を別紙の通り訂正する。 +81  第33図を別紙の通り訂正する。 (9)  第34図を別紙の通り訂正する。 α[有] 第35図を別紙の通り訂正する。 (11)第36図を別紙の通り訂正する。 (12)第37図を別紙の通り訂正する。 (13)第38図を別紙の通り訂正する。 (14)第44図を別紙の通り訂正する。 (15)第50図を別紙の通り訂正する。 7、添付書類の目録 +11  補正後の特許請求の範囲の全文を記載した書
面               1通(2)  訂正
図面             1通補正後の特許請求
の範囲の全文を記載した書面2、特許請求の範囲 (1)  第1の命令を実行するための複数のステップ
にて構成され、第1のマイクロ命令とマイクロプログラ
ムの終了ステップである第2のマイクロ命令とを含む複
数のマイクロ命令で記述されたマイクロプログラムルー
チンを記憶するマイクロll0M部と、 第1のレジスタと第2のレジスタと演算器とを有し、前
記第1のマイクロ命令に従って前記第1のレジスタに記
憶されているデータをオペランドとして前記演算器によ
り演算を実行するデータ演算部と、 MR第1の命令の実行に際しては前記マイクロプログラ
ムルーチン全体を実行の対象とし、第2の命令の実行に
際しては前記第1のマイクロ命令をステップ実行してそ
の中間結果を前記第2のレジスタに格納する手段とを備
えたことを特徴とするマイクロプロセッサ。 (2)  マイクロプログラムの実行シーケンスに関す
る情報を記憶するシーケンスフィールドを有するマイク
ロ命令を複数記憶するマイクロROM と、 マイクロ命令の実行に際して、シーケンスフィールドが
第1の値である場合はマイクロプログラムルーチンを終
了させ、シーケンスフィールドが第2の値である場合は
マイクロプログラムルーチンを継続実行させるマイクロ
プログラム実行シーケンス制御部と、第1の命令の実行
に際して、前記マイクロ11071から出力されたマイ
クロ命令のシーケンスフィールドの値をそのまま前記マ
イクロプログラム実行シーケンス制御部へ転送し、第2
の命令の実行に際して、前記マイクロROMから出力さ
れたマイクロ命令のシーケンスフィールドの値に拘わら
ず前記第1の値を前記マイクロプログラム実行シーケン
スI11部へ転送する制御回路と を備えたことを特徴とするマイクロブロセフサ。 N N+1 N+2 N+3 (アドレス) →→命令をスむ方向→→ 図 BYTE: N+2−1 BYTE: BYTE: N+2−1 1 図 IRL 0 1 20001 506 011 l516  1920 2 図 IRL 0 1 200 920 3 図 L 01 20001 506 011 15+6  1920 4 図 IRL 01200 920 5 図 I 1 1 1 IRL 01200 1g20 1 6 図 IRL 0 1 20001 920 1 7 図 45 10 415 920 224 1 8 図

Claims (2)

    【特許請求の範囲】
  1. (1)第1の命令を実行するための複数のステップにて
    構成され、第1のマイクロ命令とマイクロプログラムの
    終了ステップである第2のマイクロ命令とを含む複数の
    マイクロ命令で記述されたマイクロプログラムルーチン
    を記憶するマイクロROM部と、 第1のレジスタと第2のレジスタと演算器とを有し、前
    記第1のマイクロ命令に従って前記第1のレジスタに記
    憶されているデータをオペランドとして前記演算器によ
    り演算を実行するデータ演算部と、 第1の命令の実行に際しては前記マイクロプログラムル
    ーチン全体を実行の対象とし、第2の命令の実行に際し
    ては前記第1のマイクロ命令をステップ実行してその中
    間結果を前記第2のレジスタに格納する手段と を備えたことを特徴とするマイクロプロセッサ。
  2. (2)マイクロプログラムの実行シーケンスに関する情
    報を記憶するシーケンスフィールドを有するマイクロ命
    令を複数記憶するマイクロROMと、 マイクロ命令の実行に際して、シーケンスフィールドが
    第1の値である場合はマイクロプログラムルーチンを終
    了させ、シーケンスフィールドが第2の値である場合は
    マイクロプログラムルーチンを継続実行させるマイクロ
    プログラム実行シーケンス制御部と、 第1の命令の実行に際して、前記マイクロROMから出
    力されたマイクロ命令のシーケンスフィールドの値をそ
    のまま前記マイクロプログラム実行シーケンス制御部へ
    転送し、第2の命令の実行に際して、前記マイクロRO
    Mから出力されたマイクロ命令のシーケンスフィールド
    の値に拘わらず前記第1の値を前記マイクロプログラム
    実行シーケンス制御部へ転送する制御回路と を備えたことを特徴とするマイクロプロセッサ。
JP1141511A 1989-06-01 1989-06-01 マイクロプロセッサ Expired - Fee Related JPH06105432B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP1141511A JPH06105432B2 (ja) 1989-06-01 1989-06-01 マイクロプロセッサ
US08/127,708 US5475852A (en) 1989-06-01 1993-09-28 Microprocessor implementing single-step or sequential microcode execution while in test mode

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP1141511A JPH06105432B2 (ja) 1989-06-01 1989-06-01 マイクロプロセッサ

Publications (2)

Publication Number Publication Date
JPH035836A true JPH035836A (ja) 1991-01-11
JPH06105432B2 JPH06105432B2 (ja) 1994-12-21

Family

ID=15293662

Family Applications (1)

Application Number Title Priority Date Filing Date
JP1141511A Expired - Fee Related JPH06105432B2 (ja) 1989-06-01 1989-06-01 マイクロプロセッサ

Country Status (2)

Country Link
US (1) US5475852A (ja)
JP (1) JPH06105432B2 (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100402717B1 (en) * 2002-11-07 2003-10-30 Jin Su Yoon Shifting device of shaft center of umbrella
JP2017076300A (ja) * 2015-10-16 2017-04-20 三菱電機株式会社 制御装置およびレジスタの故障復帰方法

Families Citing this family (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6006030A (en) * 1995-02-17 1999-12-21 Vlsi Technology, Inc. Microprocessor with programmable instruction trap for deimplementing instructions
JP3141787B2 (ja) * 1996-08-28 2001-03-05 日本電気株式会社 マイクロコンピュータ
US6128727A (en) * 1998-08-21 2000-10-03 Advanced Micro Devices, Inc. Self modifying code to test all possible addressing modes
US6728865B1 (en) 1999-10-20 2004-04-27 Transmeta Corporation Pipeline replay support for unaligned memory operations
US6604188B1 (en) 1999-10-20 2003-08-05 Transmeta Corporation Pipeline replay support for multi-cycle operations wherein all VLIW instructions are flushed upon detection of a multi-cycle atom operation in a VLIW instruction
US6513110B1 (en) * 1999-12-15 2003-01-28 Transmeta Corporation Check instruction and method
US6625759B1 (en) * 2000-02-18 2003-09-23 Hewlett-Packard Development Company, L.P. Method and apparatus for verifying the fine-grained correctness of a behavioral model of a central processor unit
US7096347B2 (en) * 2001-10-25 2006-08-22 Moore Charles R Processor and method of testing a processor for hardware faults utilizing a pipeline interlocking test instruction
US7039832B2 (en) * 2002-12-05 2006-05-02 International Business Machines Corporation Robust system reliability via systolic manufacturing level chip test operating real time on microprocessors/systems
US7610466B2 (en) * 2003-09-05 2009-10-27 Freescale Semiconductor, Inc. Data processing system using independent memory and register operand size specifiers and method thereof
US7315932B2 (en) 2003-09-08 2008-01-01 Moyer William C Data processing system having instruction specifiers for SIMD register operands and method thereof
US7275148B2 (en) * 2003-09-08 2007-09-25 Freescale Semiconductor, Inc. Data processing system using multiple addressing modes for SIMD operations and method thereof
JP4409349B2 (ja) * 2004-04-27 2010-02-03 Okiセミコンダクタ株式会社 デバッグ回路およびデバッグ制御方法
US7823033B2 (en) * 2006-07-26 2010-10-26 Freescale Semiconductor, Inc. Data processing with configurable registers
US8478940B2 (en) 2009-06-02 2013-07-02 International Business Machines Corporation Controlling simulation of a microprocessor instruction fetch unit through manipulation of instruction addresses
US8615684B2 (en) * 2011-04-18 2013-12-24 Astronautics Corporation Of America High reliability processor system

Family Cites Families (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3924110A (en) * 1973-09-13 1975-12-02 Texas Instruments Inc Calculator system featuring a subroutine register
US3921142A (en) * 1973-09-24 1975-11-18 Texas Instruments Inc Electronic calculator chip having test input and output
US4521858A (en) * 1980-05-20 1985-06-04 Technology Marketing, Inc. Flexible addressing and sequencing system for operand memory and control store using dedicated micro-address registers loaded solely from alu
US4402042A (en) * 1980-11-24 1983-08-30 Texas Instruments Incorporated Microprocessor system with instruction pre-fetch
US4490783A (en) * 1981-07-02 1984-12-25 Texas Instruments Incorporated Microcomputer with self-test of microcode
US4507727A (en) * 1982-02-11 1985-03-26 Texas Instruments Incorporated Microcomputer with ROM test mode of operation
US4521871A (en) * 1982-04-12 1985-06-04 Allen-Bradley Company Programmable controller with back-up capability
US4551798A (en) * 1982-11-03 1985-11-05 Burroughs Corporation Multiple control stores in a pipelined microcontroller for handling nester subroutines
JPS60223250A (ja) * 1984-04-19 1985-11-07 Toshiba Corp 情報伝送装置
US4841434A (en) * 1984-05-11 1989-06-20 Raytheon Company Control sequencer with dual microprogram counters for microdiagnostics
US5115502A (en) * 1984-11-02 1992-05-19 Tektronix, Inc. Method and apparatus for determining internal status of a processor using simulation guided by acquired data
JPS61188626A (ja) * 1985-02-18 1986-08-22 Fujitsu Ltd マイクロプロセツサ
US4920538A (en) * 1985-06-28 1990-04-24 International Business Machines Corporation Method of checking the execution of microcode sequences
US4835738A (en) * 1986-03-31 1989-05-30 Texas Instruments Incorporated Register stack for a bit slice processor microsequencer
JPH0731615B2 (ja) * 1986-04-18 1995-04-10 日本電気株式会社 情報処理装置
EP0270081B1 (en) * 1986-12-01 1995-05-10 Nec Corporation Microprogram controller receiving interrupt request during instruction execution
US4821183A (en) * 1986-12-04 1989-04-11 International Business Machines Corporation A microsequencer circuit with plural microprogrom instruction counters
US5012180A (en) * 1988-05-17 1991-04-30 Zilog, Inc. System for testing internal nodes
US5121489A (en) * 1988-08-02 1992-06-09 International Business Machines Corporation Tracing method for identifying program execution paths using a trace points bit map with one-to-one correspondence with embedded trace points
US5134701A (en) * 1989-02-10 1992-07-28 Hewlett-Packard Co. Test apparatus performing runtime replacement of program instructions with breakpoint instructions for processor having multiple instruction fetch capabilities

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100402717B1 (en) * 2002-11-07 2003-10-30 Jin Su Yoon Shifting device of shaft center of umbrella
JP2017076300A (ja) * 2015-10-16 2017-04-20 三菱電機株式会社 制御装置およびレジスタの故障復帰方法

Also Published As

Publication number Publication date
US5475852A (en) 1995-12-12
JPH06105432B2 (ja) 1994-12-21

Similar Documents

Publication Publication Date Title
JPH035835A (ja) マイクロプロセッサ
JPH035836A (ja) マイクロプロセッサ
TWI541658B (zh) 資料處理裝置及半導體積體電路裝置
US5091853A (en) Chained addressing mode pipelined processor which merges separately decoded parts of a multiple operation instruction
US5321821A (en) System for processing parameters in instructions of different format to execute the instructions using same microinstructions
JPH04109336A (ja) データ処理装置
JPH0823818B2 (ja) 命令群用マイクロコード生成装置及びコンピュータにおける組合せ装置
US4945511A (en) Improved pipelined processor with two stage decoder for exchanging register values for similar operand instructions
JPH01214932A (ja) データ処理装置
JPH03158928A (ja) データ処理装置
US5210864A (en) Pipelined microprocessor with instruction execution control unit which receives instructions from separate path in test mode for testing instruction execution pipeline
JPH07120284B2 (ja) データ処理装置
JP2556182B2 (ja) デ−タ処理装置
US5361338A (en) Pipelined system for decomposing instruction into two decoding parts and either concurrently generating two operands addresses of merging decomposing decoding codes based upon the second operand
US5269008A (en) Method and apparatus for pre-processing the source of a pop instruction in a pipeline computer
JP2504235B2 (ja) デ―タ処理装置
JPH035834A (ja) マイクロプロセッサ
JPH035833A (ja) マイクロプロセッサ
JP2579817B2 (ja) マイクロプロセッサ
JP3716635B2 (ja) 情報処理装置、及びその割込み制御方法
JPH0225932A (ja) データ処理装置
JPH0769805B2 (ja) データ処理装置
EP0186668A1 (en) Three word instruction pipeline
JPH0218621A (ja) データ処理装置
JPH0769802B2 (ja) データ処理装置

Legal Events

Date Code Title Description
S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313111

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

LAPS Cancellation because of no payment of annual fees