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

マイクロプロセッサ

Info

Publication number
JPH035833A
JPH035833A JP1141512A JP14151289A JPH035833A JP H035833 A JPH035833 A JP H035833A JP 1141512 A JP1141512 A JP 1141512A JP 14151289 A JP14151289 A JP 14151289A JP H035833 A JPH035833 A JP H035833A
Authority
JP
Japan
Prior art keywords
instruction
mode
test
address
microprocessor
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
JP1141512A
Other languages
English (en)
Other versions
JPH0680495B2 (ja
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 JP1141512A priority Critical patent/JPH0680495B2/ja
Priority to US07/531,482 priority patent/US5210864A/en
Publication of JPH035833A publication Critical patent/JPH035833A/ja
Publication of JPH0680495B2 publication Critical patent/JPH0680495B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Landscapes

  • Test And Diagnosis Of Digital Computers (AREA)
  • Microcomputers (AREA)
  • Advance Control (AREA)

Abstract

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

Description

【発明の詳細な説明】 [産業上の利用分野] 本発明はマイクロプロセッサに関し、更に詳述すれば、
通常のモードにおいてはパイプライン動作により命令を
高速処理し、テスト時には専用のモードでテスト専用の
命令を実行して内部の各機能ブロックを診断する機能を
備えることにより、テスト・を容易化したマイクロプロ
セッサに関する。
[従来の技術] 従来のマイクロプロセッサは単一の命令体系を有し、そ
の命令体系を高速で実行するためにマイクロプロセッサ
内部を種々の機能ブロックに分割し、それらの各ブロッ
クをパイプライン処理の原理に基づいて並列動作させる
ような構成が一触的である。
第7図は従来のマイクロプロセッサの全体構成の一例を
示すブロック図である。
第7図において、101は命令フェッチ部であり、アド
レス出力回路108を通じてアドレスをマイクロプロセ
ッサ外部のメモリへ送出し、データ人出力回路109を
通じて命令をフェッチする。
102は命令デコード部であり、命令フェッチ部101
から命令を受取ってデコードし、その命令の実行に必要
な情報を出力する。
103は命令実行制御部であり、命令デコード部102
から出力されたマイクロプログラムエントリアドレス、
あるいはマイクロROM107に格納されている命令を
実行するために汎用レジスタ番号1オペランド、データ
サイズ等の情報に基づいて生成されたマイクロプログラ
ムエントリアドレスをマイクロプログラムカウンタ10
6へ出力する。マイクロプログラムカウンタ106によ
って次々に示されるアドレスによりマイクロl?0M1
07から出力されたマイクロ命令と命令デコード部10
2から出力された他の情報とにより、命令実行制御部1
04は命令実行部105を制御して命令を実行させる。
104はオペランドアクセス部であり、命令実行に際し
て必要になるオペランドがメモリにある場合は、そのア
ドレスをアドレス出力回路108を通してマイクロプロ
セッサ外部のメモリへ出力することにより、必要なオペ
ランドをデータ入出力回路109を通じてフェッチする
。またオペランドをメモリに格納する必要がある場合は
、オペランドアクセス部104はそのアドレスをアドレ
ス出力回路108を通じてマイクロプロセッサ外部のメ
モリへ出力すると共に、必要なオペランドをデータ入出
力回路109を通じて出力することにより、メモリに格
納する。
命令フエ’7チ部101.命令デコード部102.命令
実行部105等の機能ブロックは相互に関連して並列動
作することにより、複数の命令をパイプライン処理の原
理に従い同時に処理する。パイプライン処理により複数
の命令を同時に処理し、高性能化を行ったマイクロプロ
セッサとしては、たとえば11、s、P、1lh440
2042”MTCl?0PROCESSORSYS’/
TE?I WITIIINSTRUCTION PRE
−FETCIげに開示されている。
また、高性能化を目的とした上述のようなパイプライン
処理のための命令体系とは別に、既存のソフトウェアを
利用するための命令体系も実行可能なマイクロプロセッ
サも知られている。そのようなマイクロプロセッサの一
例としては、佐藤他「仮想記憶管理機構と浮動小数点演
算機能を内蔵した32ビットマイクロブロセフサV60
J、日経エレクトロニクス、1986年3月24日号、
no、391、pp、 199−264.が知られてい
る。
従来のマイクロプロセッサでは、その各機能ブロックの
テストに際し、上述のようなパイプライン動作の高性能
な実行を目的とする命令体系または既存のソフトウェア
を利用するための命令体系を用いてマイクロプロセッサ
の動作を診断する。
これらの命令体系では、マイクロプロセッサ内部の複数
の機能ブロックがパイプライン動作同様に並列に動作す
る。命令を実行する際は、各機能ブロックが相互に関連
して並列に動作するため、動作バタンの数が膨大となり
テストすべき項目の数も比例して増加する。しかも、マ
イクロプロセッサは単一のLSIチップ上に実現されて
いるため、外部ビン以外の電気的接続点の電位あるいは
電流を観測することは非常に困難であり、テストコスト
の観点から外部ビンの情報のみにてマイクロプロセンサ
をテストすることが望ましい。
また、マイクロプロセッサの各部を診断するには、プロ
セッサ内部の各種のラッチの内容を初期設定する命令を
事前に実行したり、診断対象とするm能ブロック以外の
機能ブロックが診断に悪影響を及ぼさないないような命
令の組合せでテストプログラムを記述する必要がある。
このため、テストプログラムの設計が非常に難しくなる
と共に設計人工も多数必要とする。特に、試作等により
製作されたマイクロプロセッサが設計仕様通りに動作し
ない場合の原因究明は困難を極める。
このような問題を解決するためのマイクロプロセッサ等
のLSIのテストの容易化の一方法として、しSl内部
のラッチをシフトバスで結び、且つラッチの内容をシリ
アルに入出力するスキャンバスを用いたテスト方法が提
案された。この提案はたとえば、国中「テスト容易な回
路構造によりLSIの故障検出率を大幅に改善」、日経
エレクトロニクス、1979年4月18日号、pp、5
7−68に紹介されている。
スキャンバスを用いたLSIのテストは、LSI中のラ
ンチの値が読書き可能である点では有意義であるが、L
SI設計段階で読書きしたいラッチをスキャンバスで結
合しておく必要があること、スキャンバスでの読書きは
ビットシリアルな人出力であるためテスト時間が増大す
ると共にテストプログラムも長大になり、テストプログ
ラムの設計が複雑になる等の問題がある。
テスト時にはマイクロプロセッサをテストモードにして
PL^(Programable Logic Arr
ay)あるいはROM、更には内蔵メモリであるキヤツ
ジ1をテストしたり、テスト用のマイクロプログラムル
ーチンを用いてテストする手法も提案されている。この
ような手法は例えば、J、 R,Kurban and
 J、 B。
5alick+”Testing  Approach
es  In  the  MC68020”VLSI
 DESIGN Vol、V、 1lhll、 pp、
22−30.NoveIlber1984、に開示され
ている。
この提案では、マイクロプロセッサをテストモードに遷
移させるには専用の命令を実行させる必要があるため、
ユーザがマイクロプロセッサを使用中にソフトウェアに
バグ等の原因で誤ってこの専用命令が入力されると制御
不能に陥る可能性がある。テストモードは通常はメーカ
ーサイドでLSrテスタによりマイクロプロセッサをテ
ストする際に使用されるため、一般のユーザにはその内
容の詳細は公開されていない場合が多い、従って、応用
システムに組込まれているマイクロプロセッサがテスト
モードに遷移すると、ユーザにとっては暴走しているよ
うにみえる。
また、テスト用のマイクロプログラムルーチンを起動す
るには上述の特殊な命令を必ず実行する必要がある。こ
のため、テストプログラムの設計の自由度が制限され、
結果的にテストプログラムの設計人工の増大を招来する
という問題がある。
特にマイクロプログラムに故障が生じている場合の原因
究明に際しては、故障の状況に応じて適宜テストプログ
ラムを設計する必要があり、テストプログラム設計の容
易化が重要である。
[発明が解決しようとする課題] 以上の如く、マイクロプロセッサのテストを容易化する
方法に関しては従来からいくつかの提案がなされている
が、いずれも部分的な解決策でしかない。マイクロプロ
セッサの設計の際の全人工の内でテストプログラムを設
計するために必要な人工はかなりの部分を占めている。
特に、マイクロプロセッサが高性能になればなる程、テ
ストプログラムの設計はますます多くの人工を必要とす
る。
マイクロプロセッサは論理設計、マイクロプログラムの
ミスによる設計バグの混入、マスクバタン設計のマージ
ン不足に起因する配線間のシジート等による製造歩留り
の低下等のため、量産可能な製品の設計が完了するまで
に何回かの試作を必要とする。この際、故障原因を早期
に究明することが非常に重要である。
マスクパタンのマージン不足場所を特定するにはなるべ
く多くの試作品を種々のテストプログラムによりテスト
して故障の発生確率が高い場所を特定する必要がある。
このためには多種類のテストプログラムを故障の種類に
応じて迅速に設計する必要がある。従って、テストプロ
グラムの設計が容易でない場合にはその設計の人工が真
人になる。
本発明のマイクロプロセッサはテストプログラムの設計
を容易化し、またその自由度を高くすることにより設計
に要する時間を短縮し、テストプログラムの設計に要す
る人工を削減することを目的とする。
[課題を解決するための手段] 本発明のマイクロプロセッサは、命令フェッチ部、命令
デコード部、データ演算部等の複数の機能ブロックを相
互に関連して並列動作させ、パイプライン処理の原理に
従って命令を処理するプロセッサモードと、テスト時に
マイクロプロセッサ内部の機能ブロックを独立して動作
させることにより診断を容易化したテストモードとの2
つのモードを有する。また、プロセッサモードにおいて
パイプライン動作を高速実行することを目的とする第1
の命令体系であるプロセッサ命令群と、テストモードに
おいて診断動作を行うことを目的とする第2の命令体系
であるテスト命令群との2つの命令体系を有する。
テスト命令群にはマイクロプロセッサ内部の機能ブロッ
クをテストする診断用マイクロプログラムルーチンを実
行する命令及びマイクロROMの任意のアドレスのマイ
クロ命令を1命令のみ実行するステップ実行命令等の種
々の命令がある。
また、本発明のマイクロプロセッサはプロセッサモード
において命令を実行中に、テスト割込みによりマイクロ
プロセッサ内の各種レジスタの内容を保持したままの状
態でテストモードへ遷移し得るように構成されている。
更に、テストモードにおいて専用の命令を実行すること
により、マイクロプロセッサ内の各種レジスタの内容を
保持したままの状態でプログラムモードへ遷移し得るよ
うに構成されている。
[作用] 本発明のマイクロプロセッサでは、プロセッサモードに
おいては、各種機能ブロックが相互に関連して並列に動
作し、プロセッサ命令がパイプライン処理の原理に従っ
て高速実行される。この際、本発明のマイクロプロセッ
サがメモリアクセスサイクルを起動して外部のメモリに
対してアドレスを出力することにより、対応アドレス位
置にあるプロセッサ命令、オペランドデータ等がフェッ
チされる。プロセッサモードは外部にメモリを接続して
本来のマイクロプロセッサとしての動作をさせた場合に
、LSIテスタでテストする場合に使用する。
テストモードにおいては、直接マイクロプログラムエン
トリ番地を指定するテスト命令が命令デコーダをバイパ
スして取込まれて実行される。また、テストモードでは
メモリアクセスサイクルが起動されることなく、テスト
命令取込みを指示する信号によりテスト命令が取込まれ
、テスト結果はアドレス出力回路等をメモリサイクルと
は関係なく駆動することにより得られる。
フ“ログラムモードからテストモードへの遷(多はテス
ト割込みにより行われる。逆のテストモードからプログ
ラムモードへの遷移は専用のテスト命令であるEOT命
令により行われる。テストプログラムはプロセッサ命令
とテスト命令との双方を使用して両モード間を行き来す
ることにより、マイ[発明の実施例] 以下、本発明をその実施例を示す図面に基づいて詳述す
る。
(1)「本発明のマイクロプロセッサの動作モード」本
発明のマイクロプロセッサは2つの動作モードを有する
。第1のモードはパイプライン動作を高機能で実行させ
ることを主な目的とするプロセッサモードであり、第2
のモードは本発明のマイクロプロセッサの内部状態を診
断することを主な目的とするテストモードである。
本発明のマイクロプロセッサはまた、2つの命令体系の
実行が可能である。即ち、プロセッサモードにおいて実
行される命令体系であるプロセッサ命令と、テストモー
ドにおいて実行される命令体系であるテスト命令とであ
る。
プロセッサモードにおいては、本発明のマイクロプロセ
ッサはパイプライン動作によりプロセッサ命令を高速で
実行する。本発明のマイクロプロセ・ツサを利用して種
々のソフトウェアを高速で実行する場合はこのモードを
使用する。プロセッサモードではプロセッサ命令のみが
実行可能でありテスト命令の実行は不可能である。
テストモードでは、ノンパイプライン動作によりテスト
命令が逐次実行される。テストモードはプロセッサモー
ドよりもマイクロプロセッサの診断が容易なモードであ
る。テストモードは主にしSlテスタでマイクロプロセ
ッサをテストする場合に使用される。
本発明のマイクロプロセッサは、プロセッサモードでは
メモリに対してアドレスを出力することにより命令及び
データをフェッチしてその結果を格納すべきアドレスと
共にメモリへ出力する。テストモードでは与えられたテ
スト命令とデータとに対して演算結果を出力するが、命
令あるいはデータをフェッチするためのアドレスは出力
しない。
(2)「本発明のマイクロプロセッサのプロセッサ命令
のフォーマット」 本発明のマイクロプロセッサのプロセッサ命令は16ビ
ノト単位で可変長となっており、奇数バイト長の命令は
ない。
本発明のマイクロプロセッサでは高頻度のプロセッサ命
令を短いフォーマントとするため、特に工夫された命令
フォーマット体系を有する。例えば、2オペランド命令
に対しては基本的に「4バイト+拡張部」の構成を存し
、総てのアドレッシングモードが利用で可能な船形フォ
ーマットと、頻度が高い命令及びアドレッシングモード
のみを使用可能な短縮形フォーマットとの2つのフォー
マットがある。
第8図から第17図は本発明のマイクロプロセッサのプ
ロセッサ命令フォーマントを示す模式図である。
第8図から第17図のフォーマット中に現われる記号の
意味は以下の通りである。
:オペコードの入る部分 #:リテラル、または即値の入る部分 Ea:8ミニ8ピント形のアドレッシングモードでオペ
ランドを指定する部分 Sh:6ビツトの短縮形のアドレッシングモードでオペ
ランドを指定する部分 Rnニレジスタフアイル上のオペランドをレジスタ番号
で指定する部分 フォーマットは、第8図に示す如く、右側がLSB側で
、且つ高いアドレスになっている。アドレスNとアドレ
スN+1の2バイトを見ないと命令フォーマットが判別
できないようになっているが、これは、命令が必ず16
ビツト(2バイト)単位でフエ・ノチ及びデコードされ
ることを前提としているためである。
本発明のマイクロプロセッサのプロセッサ命令では、い
ずれのフォーマットの場合も、各オペランドのEaまた
はshの拡張部は、必ずそのEaまたはshの基本部を
含むハーフワードの直後に置かれる。
これは、命令により暗黙に指定される即値データあるい
は命令の拡張部に優先する。従って、4バイト以上のプ
ロセッサ命令では、Eaの拡張部によって命令のオペコ
ードが分断される場合がある。
また、後でも述べるように、多段間接モードによりEa
の拡張部に更に拡張部が付加される場合にも、次の命令
オペレーションコードよりもそちらの方が優先される0
例えば、第1ハーフワードにEalを含み、第2ハーフ
ワードにEa2を含み、第3ハーフワードまである6バ
イト命令の場合を考える。Ealに多段間接モードを使
用したために普通の拡張部の他に多段間接モードの拡張
部も付加されるものとする。この際、実際の命令ビット
パターンは、命令の第1ハーフワード(Ealの基本部
を含む)、Ealの拡張部、Ealの多段間接モード拡
張部、命令の第2ハーフワード(Ea2の基本部を含む
)、 tia2の拡張部、命令の第三ハーフワードの順
となる。
(2,1)  r短縮形2オペランド命令」第6図から
第12図はプロセッサ命令の2オペランド命令の短縮形
フォーマントを示す模式図であ机 第9図はメモリーレジスフ間演算命令のフォーマントで
ある。このフォーマットにはソースオペランド側がメモ
リとなるL−formatとデスティネーションオペラ
ンド側がメモリとなるS−formatとがある。
L−forma tでは、shはソースオペランドの指
定フィールド、Rnはデスティネーションオペランドの
レジスタの指定フィールド、 IIRはshのオペラン
ドサイズの指定をそれぞれ表す、レジスタ上に置かれた
デスティネーションオペランドのサイズは32ビツトに
固定されている。レジスタ側とメモリ側とのサイズが異
なり、且つソース側のサイズが小さい場合に符号拡張が
行なわれる。
S−formatでは、shはデスティネーションオペ
ランドのI旨定フィールド、 Rnはソースオペランド
のレジスタ指定フィールド、 IIRはshのオペラン
ドサイズの指定をそれぞれ表す。レジスタ上に置かれた
ソースオペランドのサイズは32ビツトに固定されてい
る。レジスタ側とメモリ側のサイズが異なり、且つソー
ス側のす1゛ズが大きい場合に、溢れた部分の切捨てと
オーバーフローチエツクとが行なわれる。
第1O図はレジスターレジスタ間演算命令のフォーマン
ト(R−format)を示す模式図である0図中、R
nはデスティネーションレジスフの指定フィールド、 
Rmはソースレジスタの指定フィールドである。
オペランドサイズは32ビツトのみである。
第11図はリテラル−メモリ間演算命令のフォーマント
(Q−format)を示す模式図である。図中、間は
ディスティネーションオペランドサイズの指定フィール
ド、#はリテラルによるソースオペランドの指定フィー
ルド、Shはデスティネーションオペランドの指定フィ
ールドである。
第12図は即値−メモリ間演算命令のフォーマット(L
 forma t)を示す模式図である。図中、問はオ
ペランドサイズの指定フィールド(ソース、ディスティ
ネーションで共通)、shはデスティネーションオペラ
ンドの指定フィールドである* I−formatの即
値のサイズは、デスティネーション側のオペランドのサ
イズと共通に8.16.32ビツトとなり、ゼロ拡張及
び符号拡張は行なわれない。
(2,2)  r−船形1オペランド命令」第131N
はプロセッサ命令の1オペランド命令の一船形フオーマ
ント(Gl−for柵at)を示す模式図である0図中
、藺はオペランドサイズの指定フィールドである。一部
のGL−format命令では、Eaの拡張部以外にも
拡張部がある。また、■を使用しない命令もある。
(2,3)  r−船形2オペランド命令」第14図か
ら第16図はプロセッサ命令の2オペランド命令の一船
形フオーマントを示す模式図である。このフォーマント
に含まれるのは、8ビツトで指定する一船形アドレッシ
ングモードのオペランドが最大2つ存在する命令である
。オペランドの総数自体は3つ以上になる場合がある。
第14図は第1オペランドがメモリ読出しを必要とする
命令のフォーマット(G−format)を示す模式図
である。図中、EaVIはデスティネーションオペラン
ドの指定フィールド、問はデスティネーションオペラン
ドサイズの指定フィールド、  EaRはソースオペラ
ンド指定フィールド、 RRはソースオペランドサイズ
の指定フィールドである。一部のG−forma【命令
では、EaM及びEaRの拡張部以外にも拡張部がある
第15図は第1オペランドが8ビフト即値の命令のフォ
ーマント([!−format)を示す模式図である。
図中、EaMはデスティネーションオペランドの指定フ
ィールド、■はデスティネーションオペランドサイズの
指定フィールド、#はソースオペランド値である。
E−formatとI−forIIIatとは機能的に
は類似しているが、考え方の点で大きく異なっているm
 E4ormatはあくまでも2オペランド−船形(G
−format)の派生形であり、ソースオペランドの
サイズが8ビツト固定、ディスティネーションオペラン
ドのサイズが8 /16/32ビットから選択となって
いる。つまり、異種サイズ間の演算を前提とし、デステ
ィネーションオペランドのサイズに合わせて8ビツトの
ソースオペランドがゼロ拡張または符号拡張される。
一方、I−formatは、特に転送命令、比較命令で
頻度の多いI!VI値のパターンを短縮形にしたもので
あり、ソースオペランドとディスティネーションオペラ
ンドのサイズは等しい。
第16図は第1オペランドがアドレス計算のみの命令の
フォーマット(GA−forma t)を示す模式図で
ある0図中、Ea−はデスティネーションオペランドの
指定フィールド、四はデスティネーションオペランドサ
イズの指定フィールド、  EaAはソースオペランド
の指定フィールドである。ソースオペランドとしては実
行アドレスの計算結果自体が使用される。
第17′rgJはショートブランチ命令のフォーマント
を示す模式図である0図中、ceccは分岐条件指定フ
ィールド、 disρ=8はジャンプ先との変位指定フ
ィールドであり、本発明のマイクロプロセッサでは8ビ
ツトで変位を指定する場合には、ビットパターンでの指
定値を2倍して変位値とする(2.4)  rアドレッ
シングモード」本発明のマイクロプロセッサのプロセッ
サ命令のアドレッシングモード指定方法には、レジスタ
を含めて6ピツトで指定する短縮形と、8ビツトで指定
する一儀形がある。
未定義のアドレッシングモードを指定した場合あるいは
意味的に考えて明らか不合理なアドレソシングモードの
組合わせが指定された場合には、未定義命令を実行した
場合と同じく予約命令例外が発生され、例外処理が起動
する。
これに3亥当するのは、デスティネーションが即値モー
ドの場合及びアドレス計算を伴うべきアドレシングモー
ド指定フィールドで即値モードを使用した場合などであ
る。
第18図から第28図に示すフォーマットの模式図中で
使用されている記号の意味は以下の通りである。
Rn:レジスタ指定 (Sh) : 6ビ・ントの短縮形アドレッシングモー
ドでの指定方法 (Ea) : 8 ヒツトの一船形アドレンシングモー
ドでの多旨定方法 フォーマントの図で点線で囲まれた部分は、拡張部を示
す。
(2,4,1)  r基本アドレッシングモード」本発
明のマイクロプロセッサのプロセッサ命令では種々のア
ドレッシングモードをサポートする。
それらの内、本発明のマイクロプロセッサでサポートす
る基本アドレッシングモードには、レジスタ直接モード
、レジスタ間接モード2 レジスタ相対間接モード、即
値モード、絶対モード、 pc相対間接モード、スタッ
クポツプモード、スタックブツシュモードがある。
レジスタ直接モードは、レジスタの内容をそのままオペ
ランドとする。第18図にフォーマットの模式図を示す
。図中、Rnは汎用レジスタの番号を示す。
レジスタ間接モードは、レジスタの内容をアドレスとす
るメモリの内容をオペランドとする。第19図にフォー
マントの模式図を示す。Rnは汎用レジスタの番号を示
す。
レジスタ相対間接は、ディスプレースメント値が16ビ
ツトであるか32ビツトであるかにより、2種類ある。
それぞれ、レジスタの内容に16ビノトまたは32ビツ
トのディスプレースメント値を加えた値をアドレスとす
るメモリの内容をオペランドとする。第20図にフォー
マットの模式図を示す。
図中、Rnは汎用レジスタの番号を示す。disp:1
6とclisp=32とは、16ビツトのディスプレー
スメント値、32ピントのディスプレースメント値をそ
れぞれ示す。ディスプレースメント値は符号付きとして
扱われる。
即値モードは、命令コード中で指定されるビンドパクン
をそのまま2進数と7見なしてオペランドとする。第2
1図にフォーマットの模式図を示す。
図中、imm  dataは即値を示す。imm  d
ataのサイズは、オペランドサイズとして命令中で措
定される。
絶対モードは、アドレス値が16ビツトで示されるか3
2ビツトで示されるかにより2種類ある。それぞれ、命
令コード中で指定される16ビツトまたは32ビツトの
ピントバタンをアドレスとしたメモリの内容をオペラン
ドとする。第22図にフォーマットの模式図に示す。図
中、abs:16とabs:32とは、16ビノト、3
2ビツトのアドレス値をそれぞれ示す。
abs:16でアドレスが示される場合は指定されたア
ドレス値が32ビツトに符号拡張される。
PC相対間接モードは、ディスプレースメント値が16
ビツトであるか32ビツトであるかにより、2種類ある
。それぞれ、プログラムカウンタの内容に16ビツトま
たは32ビツトのディスプレースメント値を加えた値を
アドレスとするメモリの内容をオペランドとする。第2
3図にフォーマットの模式図を示す。図中、disp:
16とdisp:32とは、16ビントのディスプレー
スメント値、32ビットのディスプレースメント値をそ
れぞれ示す。ディスプレースメント値は符号付きとして
扱われる。PC相対間接モードにおいて参照されるプロ
グラムカウンタの値は、そのオペランドを含む命令の先
頭アドレスである。多段間接アドレシングモードにおい
てプログラムカウンタの値が参照される場合にも、同じ
ように命令先頭のアドレスをPC相対の基準値として使
用する。
スタックポツプモードはスタックポインタ(SP)の内
容をアドレスとするメモリの内容をオペランドとする。
オペランドアクセス後、SPをオペランドサイズだけイ
ンクリメントする8例えば、32ビ・7トデータを扱う
際には、オペランドアクセス後にSPが+4だけ更新さ
れる。B、Hのサイズのオペランドに対するスタックポ
ツプモードの指定も可能であり、それぞれSPが+1.
+2だけ更新される。第24図にフォーマットの模式図
を示す。オペランドに対しスタックポツプモードが意味
を持たないものに対しては、予約命令例外が発生される
。具体的に予約命令例外となるのは、writeオペラ
ンド及びread−modify−writeオペラン
ドに対するスタックポンプモード指定である。
スタックブツシュモードはSPの内容をオペランドサイ
ズだけデクリメントした内容をアドレスとするメモリの
内容をオペランドとする。スタックブツシュモードでは
オペランドアクセス前にSPがデクリメントされる。例
えば、32ピントデータを扱う際には、オペランドアク
セス前にSPが−4だけ更新される。B、Hのサイズの
オペランドに対するスタックブツシュモードの指定も可
能であり、それぞれSPが−1,−2だけ更新される。
第25図にフォーマットの模式図を示す。オペランドに
対してスタックブツシュモードが意味を持たない場合は
、予約命令例外が発生される。具体的に予約命令例外と
なるのは、readオペランド及びread−modi
fy−wrtteオペランドに対すスタックブツシュモ
ード指定である。
(2,4,2)  r多段間接アドレッシングモード」
複雑なアドレッシングも、基本的には加算と間接参照の
組合わせに分解することができる。従って、加算と間接
参照のオペレーションをアドレッシングのプリミティブ
として与えておき、それを任意に組合わせることができ
れば、いかに複雑なアトレンジングモードをも実現する
ことが可能である0本発明のマイクロプロセッサのプロ
セッサ命令の多段間接アトレンジングモードはこのよう
な観点に立脚したアドレッシングモードである。
複雑なアドレッシングモードは、モジュール間のデータ
参照あるいはAI(Artiftcial Intel
ligence:人工知能)言語の処理系に特に有用で
ある。
多段間接アトレンジングモードを指定する際、基本アド
レッシングモード指定フィールドでは、レジスタペース
多段間接モード、PCCペース段間接モード1絶対ベー
ス多段間接モードの3種類の指定方法の内のいずれが1
つを指定する。
レジスタベース多段間接モードは、レジスタの値を拡張
されるべき多段間接アドレッシングのベース値とするア
トレンジングモードである。第26図にフォーマ−/ 
トの模式図を示す6図中、Rnは汎用レジスタの番号を
示す。
PCベース多段間接モードは、プログラムカウンタの値
を拡張されるべき多段間接アドレッシングのベース値と
するアドレッシングモードである。
第27図にフォーマ、トの模式図を示す。
絶対ベース多段間接モードは、ゼロを拡張されるべき多
段間接アドレッシングのベース値とするアドレッシング
モードである。第28図にフォーマットの模式図を示す
拡張する多段間接モード指定フィールドは16ビツトを
単位としており、これが任意回反復される。
1段の多段間接モードにより、ディスプレースメントの
加算、インデクスレジスタのスケーリング(XI、 ×
21 x4. X8)と加算、メモリの間接参照を行な
う、第29図は多段間接モードのフォーマントを示す模
式図である。各フィールドは以下に示す意味を有する。
E=08多段間接モード継続 E、1  ニアドレス計算終了 Lsfp =ll> address  of ope
raITd■・Onメモリ間接参照なし tap’ + disp + Rx * 5cale 
=−> tipr、i  nメモリ間接参照あり wIen [tmp + disp + Rx * 5
caleコ==> tap M=0  :  <Rx>をインデクスとして使用ト1
 :特殊なインデクス <RX>=Oインデクス値を加算し ない (Rx=O) <RX>・1 プログラムカウンタを インデクス(直として(吏 用  (Rx=PC) <Rx>=2〜reserved D・0 :多段間接モード中の4ビツトのフィールドd
4の値を4倍してディス プレースメント値とし、これを加 算する。 d4は符号付きとして扱い、オペランドのサ
イズとは関係なく 必ず4倍して使用する。
D−17多段間接モードの拡張部で指定されたdisp
x(16/32ピント)をディスプレースメント値とし
、これを 加算する。
拡張部のサイズはd4フィールドで 措定する。
d4=0001  dispxは16ビツトd4=00
10  digpxは32ビットXx:インデクスのス
ケール (scale = 1/2/4/8) プログラムカウンタに対して×2+ X41 X 8の
スケーリングを行なった場合には、その段の処理終了後
の中間値(tllp)として不定値が入る。この多段間
接モードによって得られる実効アドレスは予測できない
値となるが、例外は発生しない。プログラムカウンタに
対するスケーリングの指定は行なってはいけない。
多段間接モードによる命令フォーマントのバリエーショ
ンを第30図及び第31図に示す、第30図は多段間接
モードが継続するが終了するかのバリエーションを示す
、第31図はディスプレースメントのサイズのバリエー
ションを示す。
任意段数の多段間接モードが利用できれば、コンパイラ
の中で段数による場合分けが不要になるので、コンパイ
ラの負担が軽減されるというメリットがある。多段の間
接参照の頻度が非常に少ないとしても、コンパイラとし
ては必ず正しいコードを発生できなければならないから
である。このため、フォーマント上、任意の段数が可能
になっ(3)「本発明のマイクロプロセッサのテスト命
令のフォーマット」 本発明のマイクロプロセッサのテスト命令は35ピント
の固定長フォーマットである。第32図〜第37図に本
発明のマイクロプロセッサのテスト命令のフォーマント
の模式図を示す、フォーマント中に現れる記号の意味は
以下の通りである。
11?L :割込み要求線のピン番号0〜2がら入力さ
れるフィールドであることを示す。
D:データパスのピン番号OO〜31から入力されるフ
ィールドであることを示す。
問;演算結果出力が外部のメモリか否かを指定する部分 子I’AR:演算に関するパラメータを指定する部分S
f?EG :ソースオペランドのレジスタ位万を指定す
る部分 [IREG :デスティネーションオペラッドレジスタ
位置を指定する部分 ZS;ソースオペランドサイズを指定する部分ZD:デ
スティネーションオベランドサイズを指定する部分 DD;スキャンインするデータを指定する部分また、1
2ビツトのマイクロROFf番地指定フィールドと、指
定データを無視するフィールド(don’tcare)
 とがある。
テスト命令では、ソースオペランドはレジスタファイル
にある値または即値データのみを使用する。このため、
テスト命令ではアドレッシングモード等のメモリオペラ
ンドに関するアドレス指定フィールドはない。
(3,1)  r連続実行命令」 第32図及び第33図に示すテスト命令のフォーマント
は連続実行命令のフォーマントである。
連続実行命令は、指定されたマイクロR囲番地からマイ
クロプログラムに従って本発明のマイクロプロセッサを
動作させる命令である。
第32図に示す第1i!!続実行命令は、指定したマイ
クロI?OM番地からマイクロプログラムに従って本発
明のマイクロプロセッサを動作させる際に、■、 TP
AR,5REG、 DRUG、 ZS、 ZDをマイク
ロプログラムに対するパラメータとして使用する。
第33図に示す第2連続実行命令は、マイクロプログラ
ムに対するパラメータ指定は行わない。
これら2つの連続実行命令で指定するマイクロROM番
地は本発明のマイクロプロセッサのマイクロROM番地
の範囲内で任意の値が許される。従ってこれらの命令に
より本発明のマイクロプロセッサに対して任意のマイク
ロROM番地からのマイクロプログラムの実行を指定で
きる。
(3,2)  rステップ実行命令」 第34図及び第35図に示すテスト命令のフォーマント
はステップ実行命令のフォーマットである。
ステップ実行命令は、指定されたマイクロROM番地の
マイクロ命令に従って本発明のマイクロプロセッサを1
マイクロステツプだけ動作させる命令である。
第34図に示す第1ステツプ実行命令は、指定したマイ
クロROM番地からマイクロプログラムに従って本発明
のマイクロプロセッサを1マイクロステップ動作させる
際に、MM、TPAR,5REG、DREG、ZS、Z
Dをマイクロプログラムに対するパラメータとして使用
する。
第35図に示す第2ステツプ実行命令は、マイクロプロ
グラムに対するパラメータ指定は行わない。
これら2つのステップ実行命令で指定するマイクロRO
M番地は本発明のマイクロプロセッサのマイクロROM
番地の範囲内で任意の値が許される。
従って、これらの命令により本発明のマイクロプロセッ
サに対して任意のマイクロll0M番地のマイクロ命令
を1ステツプだけ実行してその状態で停止することを指
定できる。
(3,3)  rロード命令」 第36図に示すテスト命令のフォーマントはテストモー
ドにおいて本発明のマイクロプロセッサの外部からオペ
ランドをロードするためのロード命令のフォーマントで
ある。
ロード命令は35ビツトの命令の内の32ビツトが即値
オペランドのフィールドであり、32ビツトの値を本発
明のマイクロプロセッサに取込むことが可能である。
(3,4)  rスキャンバス命令」 第37図に示す命令のフォーマントはテストモードにお
いて本発明のマイクロプロセッサのスキャンバスを動作
させる命令であるスキャンパス−命令のフォーマットで
ある。
スキャンバス命令により本発明のマイクロプロセッサは
内部のスキャンパスにデータをシリアルに入出力可能に
なる。
f4)「機能ブロックの構成J 第2図は本発明のマイクロプロセッサの一構成例を示す
ブロック図である。
本発明のマイクロプロセッサの内部を機能的に大きく分
けると、命令フェッチ部51.命令デコード部52. 
PC計算部53.オペランドアドレス計算部54、マイ
クロROM部55.データ演算部56.外部バスインタ
ーフェイス(+/F)部57に分かれる。第2図ではそ
の他に、外部ヘアドレスを出力するアドレス出力回路5
8と、外部との間でデータを入出力するデータ入出力回
路59と、制111g号入出力回路60とを他のjIa
能ブロブロック部けて示した。
(4,1)  r命令フェッチ部」 命令フェッチ部51には、ブランチバッファと、命令キ
ューとその制御部等があり、次にフェッチすべき命令の
アドレスを決定して、ブランチバッファや外部のメモリ
からプロセッサ命令をフエ・ノチする。また命令フェッ
チ部51はブランチバッファへの命令登録も行う。
ブランチバッファは小規模であるためセレクティブキャ
ッシュとして動作する。ブランチバッファの動作の詳細
は特開昭63−567311号で詳しく述べられている
次にフェッチすべきプロセッサ命令のアドレスは命令キ
ューに入力すべき命令のアドレスとして専用のカウンタ
で計算される。分岐あるいはジャンプが発生した際には
、新たなプロセンサ命令のアドレスがPC計算部53ま
たはデータ演算部56から転送されてくる。
外部のメモリからプロセッサ命令をフェッチする際は、
フェッチすべき命令のアドレスを外部バスインターフェ
イス部57を通じてアドレス出力回路58から外部へ出
力することによりデータ入出力回路59から命令コード
をフェツチする。
バッツァリソグした命令コードの内、命令デコード部5
2で次にデコードすべき命令コードが命令デコード部5
2へ出力される。
テスト命令は命令フェッチ部51ではフエ・ノチされな
い。
(4,2)  r命令デコード部」 命令デコード部52では基本的に16ビツト (ハーフ
ワード)単位にプロセッサ命令コードをデコードする。
この命令デコード部52には第1ハーフワードに含まれ
るオペコードをデコードするFH賀デコーダ、第2.第
3ハーフワードに含まれるオペコードをデコードするN
FI+−デコーダ、アドレッシングモードをデコードす
るアドレッシングモードデコーダが含まれる。
更に、Fl+−デコーダ及びNFI(Wデコーダの出力
を更にデコードしてマイクロROMのエントリアドレス
を計算する第2デコーダ、条件分岐命令の分岐予測を行
う分岐予測機構、オペランドアドレス計算の際のパイプ
ラインコンフリクトをチエツクするアドレス計算コンフ
リクトチエツク機構等も含まれる。
命令デコード部52は、命令フェッチ部51から人力さ
れたプロセッサ命令コードを2クロツクにつきθ〜6バ
イトデコードする。デコード結果の内、データ演算部5
6での演算に関する情報がマイクロROM部55へ、オ
ペランドアドレス計算に関係する情報がオペランドアド
レス計算部54へ、PC計算に関係する情報がpc計算
部53へそれぞれ出力される。
テスト命令が命令デコード部52へ入力されることはな
く、従ってデコードされることもない。
(4,3)  rマイクロROM部」 マイクロROM部55にはデータ演算部56の制’<8
及び本発明のマイクロプロセッサ各部の診断をする種々
のマイクロプログラムルーチンが格納されているマイク
ロROM、マイクロシーケンサ、マイクロ命令デコーダ
等が含まれる。マイクロ命令はマイクロROMから2ク
ロツクに1度読出される。マイクロシーケンサはマイク
ロプログラムで示されるンーケンス処理の他に、例外1
割込及びトラップ(この3つをEFTと総称する)の処
理及びテスト割込みをハードウェア的に受付ける。また
マイクロROM部はストアバッファの管理も行う。
プロセッサモードでは、マイクロll0M部には命令コ
ードに依存しない割込み及び演算実行結果によるフラッ
グ情報と、第2デコーダの出力等の命令デコード部52
からの出力が人力される。
テストモードでは、マイクロROM部はCPt1の診断
プロセッサとして動作する。テストモードでは第2デコ
ーダの出力ではなくデータ入出力回路59からの出力が
直接マイクロ901部へ入力される。
また、テストモードの間は一切の割込みは受付けられな
い。
プロセッサモードでは、マイクロデコーダの出力は主に
データ演算部56に対して出力されるが、ジャンプ命令
の実行による他の先行処理中止情報等の一部の情報は他
の4a能ブロツクへも出ツノされる。
テストモードでは、マイクロROM部55は上記のプロ
セッサモードでの出力に加えて各種の診断制御情報を本
発明のマイクロプロセッサ内部の他のブロックへ出力す
る。
(4,4)  rオペランドアドレス計算部」オペラン
ドアドレス計算部54は、命令デコード部52のアドレ
スデコーダ等から出力されたオペランドアドレス計算に
関係する情報によりハードワイヤード制御される。この
オペランドアドレス計算部54ではオペランドのアドレ
ス計算に関する大半の処理が行われる。メモリ間接アド
レッシングのためのメモリアクセスのアドレス及びオペ
ランドアドレスがメモリにマツプされたIlo jJl
域に入るか否かのチエツクも行われる。
オペランドアドレス計算部54でのアドレス計算結果は
外部バスインターフェイス部57へ送られる。
なお、アドレス計算に必要な汎用レジスタやプログラム
カウンタの値はデータ演算部56から人力される。
メモリ間接アドレッシングを行う場合は、オペランドア
ドレス計算部54は参照すべきメモリアドレスを外部バ
スインターフェイス部57を通じてアドレス出力回路5
日から外部へ出力し、データ入出力部59から入力され
た間接アドレス値を命令デコード部52をそのまま通過
させてフェッチする。
(4,5)  rPc計算部」 PC計算部53は命令デコード部52から出力されるP
C計算に関係する情報によりハードワイヤードに制御さ
れ、命令のpc値を計算する0本発明のマイクロプロセ
ッサのプロセッサ命令は可変長命令であり、命令をデコ
ードしてみないとその命令の長さが判明しない、PC計
算部53は、命令デコード部52から出力される命令長
をデコード中の命令のpc値に加算することにより次の
命令のpc値を作り出す。
pc計算部53での計算結果は各命令のpc値として命
令のデコード結果と共に出力される。
(4,6)  rデータ演算部」 データ演算部56はマイクロプログラムにより制御され
、マイクロI?OMの出力であるマイクロ命令に従って
各命令の機能を実現するために必要な演算をレジスタフ
ァイルと演算器とを使用して実行する。
プロセッサ命令の演算対象となるオペランドがアドレス
あるいは即値である場合は、オペランドアドレス計算部
54で計算されたアドレスあるいは即値は外部バスイン
ターフェイス部57を通過してデータ演算部56へ入力
される。また、プロセッサ命令の演算対象となるオペラ
ンドがCPU外部のメモリにあるデータである場合は、
アドレス計算部54で計算されたアドレスをバスインタ
ーフヱイス部57がアドレス出力回路58から出力する
ことによりCPU外部のメモリからフェッチされたたオ
ペランドはデータ入出力回路59からデータ演算部56
へ入力される。
テストモードでロード命令を実行した場合には、演算対
象となる即値オペランドがデータ入出力回路59からデ
ータ演算部56へ入力される。
演算器としてはALU、バレルシフタ、プライオリティ
エンコーダあるいはカウンタ、シフトレジスタ等がある
。レジスタファイルと主な演算器との間は3つのバスで
結合されており、1つのレジスタ間演算を指示する1マ
イクロ命令が2クロツクサイクルで処理される。
データ演算の際に外部のメモリをアクセスする必要があ
る場合は、マイクロプログラムの指示により外部バスイ
ンターフェイス部57を通じてアドレス出力回路58か
らアドレスがCPU外部へ出力されることにより、デー
タ入出力回路59を通じて目的のデータがフェッチされ
る。
外部のメモリにデータをストアする場合は、外部バスイ
ンターフェイス部57を通じてアドレス出力回路58か
らアドレスが出力されると同時に、データ入出力回路5
9からデータがCPt1外部へ出力される。オペランド
ストアを効率的に行うためデータ演算部56には4バイ
トのストアバッファが備えられている。
ジャンプ命令の処理9例外処理等の結果、新たな命令ア
ドレスをデータ演算部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はクロック入力、RESETllはリセン
ト割込み入力、TRLIO:2は割込み入力、IA(J
lよ割込み応答出力、LOCIIはインターロックバス
サイクルか否かを示す出力、TESTIはテスト割込み
入力、DBGINTI+はデバッグ割込み人力、DBG
A(Jlはデバッグ処理中を示す出力、BCCO23,
BSI、ASj DSL。
R/Wlはバスサイクル制御出力、DCIIはバスサイ
クル制御入力、00:31はデータ入出力、AO:31
はアドレス出力である。
TESTIビン以外は本発明のマイクロプロセッサを応
用システムに組込む際にも使用するが、その際に誤って
テスト割込みが入力されることを防ぐためにYESTI
Iビンは電源に接続される。
各入出力信号は、プロセッサモードにおいては上述の如
き機能で使用される。しかしテストモードにおいては、
DBGINTIビンがテスト命令取込み指示人力、DB
GACKIピンがテスト命令実行中を示す出力、IRI
JO:2ピンがテスト命令入力、DO:31ピンがテス
ト命令入力及びテスト結果出力、AO:31がテスト結
果出力の機能で使用される。更にスキャン命令に対して
は、Doビンがスキャン入力、LOCK#ビンがスキャ
ンアウト出力の機能を有する。
各入出力ピンはCLKに対してクロック同期して信号を
人出力する。
(6)「プロセッサモードでの動作」 本発明のマイクロプロセッサはプロセッサモードではプ
ロセッサ命令をパイプライン処理して高性能に動作する
。ここではまず、プロセッサモードにおける本発明のマ
イクロプロセッサのパイプライン処理手順について説明
し、次にプロセッサモードにおける本発明のマイクロプ
ロセッサの外部メモリアクセス動作の一例を説明する。
(6,1)  rパイ194フ機構」 本発明のマイクロプロセッサのパイプライン処理は第4
図Gこ示すような構成を採っている。
命令をブリフェッチする命令フェッチステージ(IFス
テージ)31.命令をデコードするデコードステー ’
; (D/l、 f−ジ)321オペランドのアドレス
計算を行うオペランドアドレス計算ステージ(^ステー
ジ)33マイクロll0Mアクセス(特にRステージ3
6と称す)及びオペランドのブリフェッチ(特にOFス
テージ37と称す)を行うオペランドフェッチステージ
(Fステージ)34.命令を実行する実行ステージ(E
ステージ)35の5段構成をパイプライン処理の基本と
する。
Eステージ35では1段のストアバッファがあるほか、
高機能命令の一部は命令実行自体をパイプライン化する
ため、実際には5段以上のパイプライン処理効果がある
各ステージは他のステージとは独立して動作し、理論上
は5つのステージが完全に独立動作する。
各ステージは1回の処理を最小2クロ・ツクで行うこと
ができる。従って理想的には2クロフクごとに次々とパ
イプライン処理が進行する。
本発明のマイクロプロセッサにはメモリーメモリ間演算
あるいはメモリ間接アドレッシング等のように1回の基
本パイプライン処理だけでは処理が行えない命令がある
が、本発明のマイクロプロセッサはこれらの処理に対し
てもなるべく均衡したパイプライン処理が行えるように
構成されている。複数のメモリオペランドを有する命令
に対しては、メモリオペランドの数に基づいて、デコー
ド段階で複数のパイプライン処理単位(ステップコード
)に分解してパイプライン処理が行われる。
パイプライン処理単位の分解方法に関しては特開昭63
−89932で詳しく述べられている。
IPステージ31からDステージ32へ渡される情報は
命令コードそのものである。Dステージ32からAステ
ージへ渡される情報は命令で指定された演算に関する情
報(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で処理されている命令の
みが実行段階の命令であり、IPステージ31−Fステ
ージ34で処理されている命令は未だ実行段階に至って
いないのである。従って、Eステージ35以外で検出さ
れたErTは検出されたたことがステップコード中に記
録されてて次のステージへ伝えられるのみである。
(6,2)  r各パイプラインステージの処理」各パ
イプラインステージの入出カステップコードには第4図
に示したように便宜上名前が付与されている。またステ
ップコードには、オペレーションコードに関する処理を
行い、マイクロROMのエントリ番地あるいはEステー
ジ35に対するパラメータ等になる系列と、Eステージ
35のマイクロ命令に対するオペランドになる系列との
2系列がある。
(6,2,1)  r命令フェッチステージ」命令フェ
ッチステージ(IFステージ)31はプロセッサ命令を
メモリあるいはブランチバッファからフェッチして命令
キューへ入力し、Dステージ32に対して命令コードを
出力する。命令キューの人力は整置された4バイト単位
で行われる。メモリからプロセッサ命令をフェッチする
際は整置された4バイトにつき最小2クロックを要する
。ブランチバッファがヒ・7トした場合は整置された4
バイトにつきlクロックでフェッチ可能である。
命令キューの出力単位はは2バイトごとに可変であり、
2クロツクの間に最大6バイトまで出力できる。また分
岐の直後には、命令キューをバイパスして命令基本部2
バイトを直接命令デコーダへ転送することもできる。
ブランチバッファへの命令の登録及びクリア等の制御、
ブリフェッチ先命令アドレスの管理及び命令キューの制
御もIPステージ31が行う。
(6,2,2)  r命令デコードステージ」命令デコ
ードステージ(ロステージ)32はIPステージ31か
ら入力されたプロセッサ命令コードをデコードする。デ
コードは命令デコード部52のFFIWデコーダ、 N
FIIWデコーダ、アドレッシングモードデコーダを使
用して、2クロック単位で1度行なわれ、1回のデコー
ド処理でO〜6バイ[・の命令コードが消費される(リ
ターンサブルーチン命令の復帰先アドレスを含むステッ
プコードの出力処理等では命令コードは消費されない)
、1回のデコードで、Aステージ33に対してアドレス
計算情報としてのAコード42である約35ピントの制
御コードと最大32ビツトアドレス修飾情報と、オペレ
ーションコードの中間デコード結果としてのDコード4
1である約50ビツトの制御コードと8ビツトのリテラ
ル情報とが出力される。
Dステージ32では各命令のPC計算部53の制御、命
令キューからの命令コード出力処理も行う。
(6,2,3)  rオペランドアドレス計算ステージ
Jオペランドアドレス計算ステージ(Aステージ)33
での処理は大きく2つに分かれる。
1つは命令デコード部52の第2デコーダを使用してオ
ペレーションコードの後段デコードを行う処理で、他方
はオペランドアドレス計算部54でオペランドアドレス
の計算を行う処理である。
オペレーションコードの後段デコード処理ハDコード4
1を入力とし、レジスタ、メモリの書込み予約及びマイ
クロプログラムルーチンのエントリ番地とマイクロプロ
グラムに対するパラメータ等を含むRコード43の出力
を行う。
なお、レジスタ、メモリの書込み予約は、アドレス計算
で参照したレジスタ、メモリの内容がパイプライン上を
先行する命令で書換えられることによって誤ったアドレ
ス計算が行われることを防ぐためのものである。
オペランドアドレス計算処理はAコード42を入力とし
、Aコード42に従ってオペランドアドレス計算部54
で加算及びメモリ間接参照を組合わせてアドレス計算を
行い、その計算結果をFコード44として出力する。こ
の際、アドレス計算に伴うレジスタあるいはメモリの読
出し時にコンフリクトチエツクが行われ、先行命令によ
るレジスタあるいはメモリへの書込み処理を終了してい
ないためコンフリクトが指示されれば、先行命令がEス
テージ35で書込み処理を終了するまで待機状態になる
(6,2,4)  rマイクロ命令−アクセスステージ
」オペランドフェッチステージ(Fステージ)34の処
理も大きく2つに分かれる。
一方はマイクロll0Mのアクセス処理であり、特にR
ステージ36と称する。他方はオペランドプリフェッチ
処理であり、特に叶ステージ37と称する。
Rステージ36とOFステージ37とは必ずしも同時に
動作するわけではなく、メモリアクセス権が獲得できる
か否か等に依存して、独立して動作する。
Rステージ36の処理であるマイクロ1101’lアク
セス処理は、Rコードに対して次のEステージでの実行
に使用する実行制御コードであるEコードを生成するた
めのマイクロROMアクセスとマイクロ命令デコード処
理である。1つのRコードに対する処理が2つ以上のマ
イクロプログラムステップに分解される場合、マイクロ
ROMはEステージ35で使用され、次のRコード43
はマイクロROMアクセス待ちになる。Rコード43に
対するマイクロROMアクセスが行われるのはその前の
Eステージ35での最後のマイクロ命令実行時である0
本発明のマイクロプロセッサでは、大半の基本命令は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処理が起動されたりした場合は、IF
ステージ31〜Fステージ34までの間で行われた処理
はすべて無効化される。Eステージ35はマイクロプロ
グラムにより制御され、Rコード45にて示されたマイ
クロプログラムルーチンのエントリ番地からの一連のマ
イクロ命令を実行することにより命令を実行する。
マイクロI?OMの続出しとマイクロ命令の実行とはパ
イプライン化されて行われる。従ってマイクロプログラ
ムで分岐が起きた場合は、lマイクロステップの空きが
発生する。また、Eステージ35はデータ演算部56に
あるストアバッファを利用して、4バイト以内のオペラ
ンドストアと次のマイクロ命令実行とをパイプライン処
理することもできる。
Eステージ35ではAステージ33で行ったレジスタあ
るいはメモリに対する書込み予約をオペランドの書込み
の後に解除する。
各種の割込は命令の切れ目においてEステージ35に直
接受付けられ、マイクロプログラムにより必要な処理が
実行される。その他の各9XE[rの処理もマイクロプ
ログラムにより行われる。
(6,3)  r各パイプラインステージの状態制御」
パイプラインの各ステージは入力ラッチと出力ランチと
を有し、他のステージとは独立して動作することを基本
とする。各ステージは1つ前に行った処理が終了し、そ
の処理結果を出力ラノチから次のステージの入力ラノチ
ヘ転送し、自身のステージの入力ラッチに次の処理に必
要な入力信号が総て揃うえば次の処理を開始する。
つまり、各ステージは、1つ前段のステージから出力さ
れてくる次の処理に対する入力信号が総て有効となり、
現在の処理結果を後段のステージの入力ランチへ転送し
て出力ラッチが空になると次の処理を開始する。
各ステージが動作を開始する1つ前のクロックタイミン
グで入力信号が総て揃っている必要がある。入力信号が
揃っていないと、そのステージは待ち状態(入力待ち)
になる。出力ランチから次のステージの入力ランチへの
データ転送に際しては、次のステージの入力ラッチが空
き状態になっている必要があり、次のステージの入力ラ
ッチが空き状態でない場合もパイプラインステージは待
ち状態(出力待ち)になる、必要なメモリアクセス権が
獲得できなかったり、処理しているメモリアクセスにウ
ェイトステートが挿入されていたり、その他のパイプラ
インコンフリクトが生じた場合にも、各ステージの処理
自体が遅延する。
(6,4)  rブコセソサモート′でのメモリアクセ
ス動作」 第5図にプロセッサモードでの本発明のマイクロプロセ
ッサの外部入出力動作の一例としてのメモリアクセスの
タイミングチャートを示す。
メモリアクセスは十分高速なメモリに対しては外部人カ
クロノクの4クロツクに1度の速度で行われる。第5図
では最初にゼロウェイトのリードサイクル、次にゼロウ
ェイトのライトサイクル次に1クロツクウエイトのリー
ドサイクルを示す。
図中BCLXはCIJの2倍の周期のバスクロックであ
り、メモリバスサイクルの基本となる信号である。
BCLKはCLにの奇数番目パルスと偶数番目パルスと
を定める。CLKに同期して動作する本発明のマイクロ
プロセッサとBCLXとの同期はりセント割込みにより
行う。
リードサイクルではアドレスが出力され、BCLKがロ
ーレベルである間のCLKの立下り時にDC#がアサー
トされた際の00:31の値が取込まれてバスサイクル
が終了する。ライトサイクルではまずアドレスが出力さ
れ、1クロツク遅れてデータが出力され、BCLにがロ
ーレベルである間のCLにの立下り時にDCIIがアサ
ートされればバスサイクルが終了する。
このようにプロセッサモードにおいては、CLにに同期
したバスサイクルを本発明のマイクロプロセッサが起動
することにより外部との入出力動作が行われる。
(7)「テストモードでの動作」 本発明のマイクロプロセッサはテストモードにおいては
、テスト命令に従って各機能ブロックの診断を実行する
第1図はテストモー、ド時の動作状態の概念を示す本発
明のマイクロプロセッサの一構成例のブロック図である
テスト命令のマイクロl?OM番地フィールドあるいは
Rコード43のマイクロROM番地を取込み、その番地
からのマイクロプログラムのシーケンスを制御するマイ
クロシーケンス制御部10.マイクロプログラムの番地
を管理するマイクロプログラムカウンタ(μPC) 1
 t 、マイクロプログラムを記憶するマイクロ110
M12.各マイクロ命令のデコード及びその実行を制御
するマイクロ命令実行+I、11御部13テスト命令の
一部または命令デコード部の出力であるRコード43を
マイクロシーケンス制御部へ転送するRコードラッチ部
14.Aコード42をランチしたり圧縮して蓄積するA
コードランチ部15.命令フェッチ部51.命令デコー
ド部52.オペランドアドレス計算部54.データ演算
部56.テスト命令の上位3ビツトをマイクロシーケン
ス制御部10へ入力するIRLIIO:2ピン16.テ
スト命令の取込みを指示するDBGINT#ピン17.
テストモードにおいてテスト命令実行中を示すDBGA
CKIピン18.テスト命令の下位32ビツトをデータ
入出力回路59からバイパスバス23を通じてRコード
ランチ部14とマイクロシーケンス制御部10とへ転送
したりまた命令フェッチ部51のテスト結果をデータ入
出力回路59べ転送するDDババス9.オペランドアド
レス計算部54あるいはデータ演算部56のテスト結果
をアドレス出力回路58へ転送する静バス20.データ
入出力回路59から1ビツトのスキャンインデータをマ
イクロROM12の出力部の第1リニアフイードバツク
シフトレジスタLPSR24へ転送するI)Oピン21
.スキャンアウトデータをAコードラッチ部15の第3
リニアフイードバツクシフトレジスタLFSl?26か
らマイクロプロセッサ外部へ出力するLOCIIピン2
2等にて構成されている。
Rコードランチ部14には第2リニアフイードバツクシ
フトレジスタLFSR25があり、データ演算部58に
は第4リニアフイードバツクシフトレジスタLFSI?
27がある。命令デコード部52には自己診断時に使用
するカウンタ28がある。
テストモードでは、入力されたテスト命令に従いマイク
ロシーケンス制御部10がマイクロROM12をアクセ
スしてマイクロプログラムを実行することによりマイク
ロプロセッサの各部をテストする。
テスト動作に必要なデータはロード命令によりデータ6
A算部56のDDレジスタ29へ取込まれる。
命令フェッチ部51はマイクロ命令実行制御部13の指
示に従ってテスト動作を行い、その結果をDDババス7
.データ入出力回路59を介してマイクロプロセッサ外
部へ出力する。
命令デコード部52はマイクロ命令実行制御部13の指
示に従ってテスト動作を行い、その結果をRコードラッ
チ部14とAコードラッチ部15とへ出力する。
オペランドアドレス計算部はマイクロ命令実行制御部1
3の指示に従い、データ演算部56のレジスタファイル
から転送されるデータを使用してテス]・動作を行い、
その結果を静バス20.アドレス出力回路58を介して
マイクロプロセッサ外部へ出力する。
データ演算部56はマイクロ命令実行制御部13の指示
に従いテスト動作を行う。テスト動作に必要なデータは
ロード命令によりマイクロプロセッサ外部からDロレジ
スタ29へ取込むこともできる。テスト動作の中間演算
結果はレジスタファイルに保存され、テスト結果はAA
ババス0.アドレス出力回路5日を介してマイクロプロ
セッサ外部へ出力される。
(7,1)  rテスト命令の取込み」テスト命令は命
令フェッチ部51及び命令デコード部52を介すること
なくバイパスバス23を通してUtJRコードラッチ部
14とマイクロシーケンス制御n部10とへ取込まれる
。ロード命令とスキャンバス命令以外のテスト命令の各
フィールドはプロセッサモードでプロセッサ命令をデコ
ードして得られたRコード43と類似のフォーマットと
なっておリ、テスト命令の取込みはRコード43を直接
書換える形態をとる。テスト命令で指定されないRコー
ド43のフィールドはテスト命令取込み前にRコードラ
ッチ部14に保持されていた内容をそのまま保持する。
マイクロROM番地はRコード43を♂換えるのではな
(、直接マイクロシーケンス制御部10へ入力される。
テスト命令の取込みではメモリサイクルは起動されない
。テスト命令の取込みのタイミングをテスト結果の出力
タイミングと共に第6図のタイミングチャートに示す。
DBGACKllがネゲートされているとき、IRLO
:2ビン16と00:31ピン21とにテスト命令のピ
ントパタンを入力しながら[1CLtfとCLKの両方
が立上がるタイミングに同期してDBGINTIピン1
7をアサートすることによりテスト命令が取込まれる。
(7,11)rRコードのフォーマントとテスト命令」
第38図はRコード43のフォーマントの模式図である
。Rコード43は32ビツト長であり、各フィールドの
意味は以下の通りである。
0P1:演算に関する第1のパラメータを指定する部分 H−二演算結果出力が外部のメモリか否かを指定する部
分 O20:演算に関する第2のパラメータを指定する部分 R1ソースオペランドのレジスタ位置を指定する部分 RD:デスティネーションオペランドレジスタ位置を指
定する部分 Wlソースオペランドサイズを指定する部分−D:デス
ティネーションオペランドサイズを指定する部分 また、マイクロROM番地を指定するフィールドは8ビ
ツトであり、マイクロシーケンス制御部10へ入力され
る際に下位にゼロが4ビツト拡張される。本発明のマイ
クロプロセッサのマイクロプログラムは1ワードが11
2ビツトのマイクロ命令でコーディングされており、4
にワードの空間に格納されている。各Rコード43で指
定される各マイクロプログラムルーチンのエントリ番地
の下位4ビツトは必ずゼロである。従ってRコード43
で指定可能なマイクロプログラムルーチンのエントリは
256個である。
第32〜37図に示すテスト命令のフォーマットの内、
Rコード43を書換える命令は第32図に示す第1i!
続実行命令と第34図に示す第1ステツプ実行命令とで
ある。この2つの命令が入力されるとRコード43の内
のOPIフィールドとマイクロROM番地を指定するフ
ィールド以外が書換えられる。曲フィールドは聞フィー
ルドに、OP2フィールドはTI’Allフィールドに
、RSフィールドは5REGフイールドに、+10フイ
ールドはDREGフィールドに、−SフィールドはZS
フィールドに、−〇フィールドはZDフィールドにそれ
ぞれ占換えられる。OPIフィールドとマイクロROM
番地の上位8ビツトを示すフィールドはテスト命令取込
み前の値のまま保持される。
第39図に具体的なプロセッサ命令のRコード43の例
を示す。各命令の意味は以下の通りである。
門OV、W  112 、M団;レジスタ2から4ハイ
ドのデータをメモリへ転送する。
CMP、B  R8、RO:レジスタ8とレジスタ0の
各1バイトのデータを比較 する。
ADD、W  MEM、R2:レジスタ2の4バイトの
データにメモリの4バイトの データを加算してレジスタ 2に格納する。
5)IA、W  12 JO:レジスタOの4バイトの
データを2ビツト算術シフト する。
MUL、HR7R15ニレジスタフとレジスタ15の各
2バイトのデータを乗算 してレジスタ15に格納する。
JMP   a(R3)  : レジスタ3の4バイト
のデータをアドレスとする番地 ヘジャンブする。
本発明のマイクロプロセッサではjlOV、Wと八〇〇
、Wとは共に同しマイクロプログラムで処理されるため
マイクロプログラムルーチンを共有しており、マイクロ
ROM番地は互いに等しい。また、各命令のオペランド
のレジスタ番号及びオペランドサイズがRコード43の
種々のフィールドにマイクロプログラムに対するパラメ
ータとして反映されている。
第40図に具体的なテスト命令の例を示す。各命令の意
味は以下の通りである。
↑ESTALUOPE   :  ALIIの各種演算
機能をテストする第2連続実行命令。
YESTAADD    ニオペランドアドレス計算部
をテストする第2連続実行 命令。
TC−P、B l?8.110  : C肝、B R8
,IIOと同じマイクロプログラムルーチンを実 行する第1連続実行命令。
S3MUL、HR7,R15: MUL、II R7,
R15ノマイクロプログラムルーチンのエンド リ番地から3番地光のマイ クロ命令を1つだけ実行す る第1ステツプ実行命令。
0UTPIJT l?3   −レジスタ3の4バイト
のデータをAAババス0とアドレス 出力回路58とを通じてマイ クロプロセッサ外部へ出力 する第1連続実行命令。
INPIIT  R5:テーク演算部56中のD[lレ
ジスタ29の4バイトのデータ をレジスタ5へ転送する第 1連続実行命令。
テスト命令ではRコード43のOPlを変更することが
できないため、上述のテスト命令の内、TCMPJある
いは53MUL、Hの命令を実行する前に、OPIが“
oooo”になるプロセッサ命令をプロセッサモードで
実行しておく必要がある。しかし、本発明のマイクロプ
ログ、すではテスト命令の下位32ビツトの各ビットの
設定を自由に行い得ることにより、テストモードでマイ
クロプログ・ノサの各部分を診断する診断専用のマイク
ロプログラムルーチンもプロセッサ命令のマイクロプロ
グ)ムルーチンもテスト命令で実行できる。
(7,2)  rテスト結果の出力」 本発明のマイクロプロセッサがテストモードにおいてテ
スト結果を出力するタイミングをテスト命令の取込みタ
イミングと共に第6図のタイミングチャートに示す。
テストモードでは、アドレス出力回路58はAAババス
0の内容で常時出力ピンAO:31を駆動しており、メ
モリサイクルは起動されない。テスト命令に従ってAA
ババス0ヘテスト結果が出力されるとその値が出力ピン
AO:31へ出力される。また、命令フェッチ部51が
テストされる場合はテスト結果をDDハス19とデータ
入出力回路59とを介してマイクロプロセッサ外部へ出
力する。この際には出力ピンAO:31でテスト結果を
出力する場合と同じく、DBGACKIビン18のアサ
ート朋間中、データ入出力回路59はDOババス9の内
容で人出力ビン00:31を駆動する。この場合もメモ
リサイクルは起動されない。
(7,3)  rステ、ブ実行命令の動作」本発明のマ
イクロプロセッサでは、ステップ実行命令を実行させる
と、マイクロ命令が1命令だけ実行され、次のテスト命
令を待機する状態となる。本発明のマイクロプロセッサ
ではステ・ノブ実行命令を実行する際は、マイクロ命令
の一部でありマイクロプログラムの実行シーケンスを制
御するシーケンスフィールドをマイクロシーケンサへ転
送する部分をハードウェア的にステップ実行命令の実行
状態とする。
第48図は本発明のマイクロプロセッサのマイクロ命令
のフィールド分割を示す模式図である。
本発明のマイクロプロセッサのマイクロ命令は第48図
に示すように10種類のフィールドに分割される。各フ
ィールドはマイクロ命令デコーダによりデコードされ、
マイクロ命令で指定される全制御線と1対1に対応する
信号となる。マイクロプログラムの実行シーケンスを制
御するフィールドは6ビノトであり、ピノドパクンによ
り第49図に示すような制御を行う。
第50図はステップ実行命令を実行させるための制御回
路の構成を示す回路図である。
図中、61はマイクロROM12から出力されたマイク
ロ命令の6ビツトのシーケンスフィールド66をランチ
するシーケンスフィールド出力ラッチである。
62はIRLO:2ピン16から取込まれたテスト命令
の上位3ビツトをランチするIRl、入力ラッチである
63はIRL入カラソチ62の出力65に従ってシーケ
ンスフィールド出力ラッチ61の出力67を次に実行す
べきマイクロ命令の番地を決定するマイクロシーケンサ
64へそのまま信号線68を介して出力するか、あるい
は強制的にrolollNにした上で信号線68を介し
て出力するかを制御するマイクロシーケンス変更回路で
ある。
ステップ実行命令では第34図及び第35図に示すよう
に、命令の上位2ビツトが「11」であり、このときマ
イクロシーケンス変更回路はシーケンスフィールド出力
ラッチ61の出力67の値に拘わらすrololllJ
を信号線68へ出力する。第49図に示すようにrol
olllJはマイクロプログラムルーチンの終了を示す
ビットバタンであり、マイクロシーケンサ64はマイク
ロプログラムが終了して次のテスト命令の入力待ち状態
となる。
シーケンスフィールド出力ラッチ61の出力67はデー
タ演算部56へも供給されている。データ演算部56は
この信号に従って作業用スタックポインタ値の正規スタ
ックポインタへの転送、あるいは作業用ステータスフラ
ッグの正規プログラムステータスレジスタへの転送等を
行う。このため、データ演算部56へ供給されるシーケ
ンスフィールド出力ラッチ61の出力信号は本来のマイ
クロ命令で指定されたピントバタンである出力67とす
る。これによりデータ演算部56はステップ実行命令を
実行する場合もその他の場合と同じ動作をする。
(7,4)  r自己診断機能」 本発明のマイクロプロセッサではテスト命令で起動する
診断用マイクロプログラムルーチン以外にも、マイクロ
プロセッサがリセットされた場合に、各部を自己診断す
るマイクロプログラムルーチンが内蔵されている0本発
明のマイクロプロセッサではマイクロROM12.命令
デコード部52.オペランドアドレス計算部54.デー
タ演算部56の各部を自己診断する。第41図に本発明
のマイクロプロセッサの自己診断用のマイクロプログラ
ム全体の処理手11i¥のフローチャートを示す。
自己診断は本発明のマイクロプロセッサをテストモード
にして実行される。本発明のマイクロプロセッサでは自
己診断のために2つのカウンタと4つのリニアフィード
バンクシフトレジスタとが内蔵されている。
カウンタは自己診断のためのデータ発生器として動作し
、リニアフィードバンクシフトレジスタは疑似乱数発生
器またはデータ圧縮器として動作する。リニアフィード
バックシフトレジスタを疑似乱数発生器あるいはデータ
圧縮器として使用する手法、リニアフィードバックシフ
トレジスタを使用してLSIに自己診断機能を持たせる
手法については国中、[テストの手を借りずにテストが
できる論理LST J 、日経エレクトロニクス、19
83年6月20号、pp、 124−133で述べられ
ている。
まず、プロセッサ各部の初期設定のためのりセットシー
ケンスのマイクロプログラムの最後でプロセッサモード
からテストモードに遷移し、マイクロRO?112のテ
ストシーケンスの先頭ヘジャンブする。これにより、マ
イクロROM12の自己診断が実行される。マイクロR
OM12の自己診断の結果が′0番の汎用レジスタのビ
ット31に反映された後、命令デコート′部52を診断
するためのテストシーケンスの先頭ヘジャンプする。
命令デコード部52の自己診断が実行され、その結果が
0番の汎用レジスタのビット30に反映された後、オペ
ランドアドレス計算部54を診断するためのテストシー
ケンスの先頭ヘジャンブする。
オペランドアドレス計算部54の自己診断が実行され、
その結果が0番の汎用レジスタのビット29に反映され
た後、データ演算部56を診断するためのテストシーケ
ンスの先頭ヘジャンブする。
データ演算部56の自己診断が実行され、その結果が0
番の汎用レジスタのビット28に反映された後、テスト
モードからプロセッサモードへ遷1多する。
(7,4,1)  rマイクロROMの自己診断」本発
明のマイクロプロセッサでは自己診断時に、マイクロプ
ログラムカウンタ11をゼロから順番にカウントアツプ
してマイクロROM12中のマイクロ命令を順次的に続
出し、それをマイクロI?0M12の出力部にある第1
リニアフイードバツクシフトレジスタLFSI?24で
データ圧縮する。データ圧縮結果が特定の値になったか
否かは1ビツトで示され、それをマイクロプログラムで
読取る。本発明のマイクロプロセッサのマイクロI?0
M12の自己診断用マイクロプログラムルーチンのフロ
ーチャートを第42図に示す。
まず、プロセッサ各部の初期設定のためのりセットシー
ケンスのマイクロプログラムの最後でプロセッサモード
からテストモードに遷移し、マイクロROM12のテス
トシーケンスの先頭ヘジャンプする。そして、マイクロ
プログラムカウンタに“0”がセントされ、第1リニア
フイードバツクシフトレジスクLFSR24が初期化さ
れる。
次にマイクロプログラムカウンタが順次インクリメント
され、その時点のマイクロl?0M12の出力が第1リ
ニアフイードハツクシフトレジスタLPSR24でデー
タ圧縮されて蓄積される。
圧縮されたデータの最終結果が総て“0″であるか否か
を示す1ビツトがチエ7りされ、YESであれば0番の
汎用レジスタのビット31が”0”にされ、110であ
れば0番の汎用レジスタのビット31力<”1“にされ
る。この後、命令デコード部52のテストシーケンスへ
ジャンプする。
また、マイクロRot’112の出力部の第1リニアフ
イードバツクシフトレジスタLPSR24には1つのマ
イクロ番地(H’9FF番地:H゛は16進数を表す)
が割当てられており、++’9FF番地のマイクロ命令
をステップ実行命令で実行すると第1リニアフイードバ
ツクシフトレジスタLFSR24の内容がマイクロ命令
として実行される。
(7,4,2)  r命令デコード部の自己診断機能」
本発明のマイクロプロセッサの命令デコード部52は入
力部に17ビツトのカウンタ28を有し、Rコードラッ
チ部14とAコードラッチ部15とにデータ圧縮器とし
て第2.第3リニアフイードバツクシフトレジスタLF
SR25,26を有する。リセット時にはカウンタ28
から17ビツトのビンドパクンをrB’o。
000000000000000JからrB’1111
1111111111111Jまですべての種類発生し
てそのビットバタンをデコードし、デコード結果を上記
の2つのデータ圧縮器としての第2.第3リニアフイー
ドバンクシフトレジスタLFSR25,26へ人力する
。データ圧縮結果が特定の値になったか否かは各1と7
)で示され、マイクロプログラムでそれを読取ることが
できる。本発明のマイクロプロセッサの命令゛テコ−1
部52の自己診断用マイクロプログラムルーチンのフロ
ーチャートを第43図に示す。
まず、第2.第3リニアフイードバツクシフトレジスタ
LFSI125.26が初期された後、命令デコード部
52の人力部の17ビフトカウンタ28が“0”に初期
化される。
カウンタ28がj順次インクリメントされ、その時屯の
命令デコード部52の出力を第2リニアフイードバツク
シフトレジスタしFSR25と第3リニアフイードバツ
クシフトレジスタLFSl?26とでデータ圧縮してM
積する。
圧縮されたデータの最終結果が双方共総て“O”である
か否かがチエツクされ、YESであれば0番の汎用レジ
スタのビット30が“0″にされ、Noであれば0番の
汎用レジスタのビット30が1”にされる。この後、オ
ペランドアドレス計算部54のテストシーケンスへジャ
ンプする。
(7,4,3)  rデータ演算部とオペランドアドレ
ス計算部の自己診断機能」 データ演算部56とオペランドアドレス計算部54との
自己診断時にはマイクロプロセッサ外部からのデータ入
力とマイクロ番地セνす外部へデータ出力は行われない
。データ演算部56とオペランドアドレス計算部54と
の自己診断に使用するデータはデータ演算部にある疑似
乱数発生器兼データ圧縮器である第4リニアフイードバ
ツクシフトレジスタLPSR27または定数ROMある
いはマイクロ命令中のリテラルフィールドから得る。
自己診断結果は第4リニアフイードバツクシフトレジス
タLFSR27あるいはレジスタへ出力される。
自己診断の結果、マイクロプロセッサに不具合があるか
否かの判断はリセット後に汎用レジスタの内容をプロセ
ッサ命令で読出すことにより行う。
本発明のマイクロプロセッサのマイクロプログラムでは
第4リニアフイードバツクシフトレジスタLPSR27
は1つのワーキングレジスタとして指定することが可能
であり、乱数発生器として第4リニアフイードバンクシ
フトレジスタLPSR27の内容を読出すこと及びデー
タ圧縮器として第4リニアフイードバツクシフトレジス
タLPSR27へデータを書込むことをマイクロプログ
ラムで指定すること(7,5)  rスキャンパス」 本発明のマイクロプロセッサでは、第1図に示す様に、
マイクロROM12の出力部とRコードランチ部14と
Aコードラッチ部15の3つのリニアフィードバックレ
ジスタLPSR24,25,26のシフトパスとが結合
されていて1つのスキャンパスとして構成されている。
スキャンパス命令により、これらのリニアフィードバッ
クシフトレジスタLFSR24,25,26に任意の値
を設定すること及びこれらのリニアフィードバンクシフ
トレジスタLPSR24,25,26の(直を読出ずこ
とが可能である。本発明のマイクロプロセッサではこの
スキャンパス命令でOPIフィールドを含む全Rコード
フィールドの書換えを行う、また、スキャンパス命令で
は、Rコード43及びAコード42に必要な値をセット
することにより故障原因の解明を行い、故障する可能性
が高い部分と低い部分との特定等を行う。
本発明のマイクロプロセッサは上述のスキャンパスを用
いて外部から任意のマイクロ命令を第1リニアフイード
バンクシフトレジスタLPSR24にセットし、それを
実行することができる。
ここで、スキャンパスにより外部から入力したマイクロ
命令を実行する手順を説明する。第52図は第1リニア
フイードバツクシフトレジスタ[、FSR24を含むマ
イクロROM12の構成を示すブロック図である。
マイクロプログラムカウンタ11から人力されたアドレ
ス70はアドレスデコーダ71でデコードされ、RO門
アレイ72に記憶されているマイクロ命令がROMアレ
イ72の出力13号76として第1リニアフイードパ、
クシフトレジスタLPSR24へ入力され、信号75が
“1″になるタイミングで第1リニアフイードバツクシ
フトレジスタLPSR24の内容が書換わり、マイクロ
ROM12の出力信号としてマイクロ命令実行側”+’
JU部13部用3される。
アドレスデコーダ71はアドレス70が16進数で9F
Fである場合に第1 LFSII内容書喚え禁止信号7
1を“1”にし、その他のアドレスである場合は同信号
71を“0”にする。従って第1リニアフイードバツク
シフトレジスタLPSR24の入力指示信号74により
出力信号76の取込みが指示されてもアドレス70が1
6進数で9FFであれば信号75は0#を維持し、第1
リニアフイードバツクシフトレジスタLPSR24の内
容は1変えられない。
従って、スキャンバス命令により実行したいマイクロ命
令を第1リニアフイードバツクシフトレジスタLPSR
24にセントし、次にマイクロROM番地が16進数で
9PFのマイクロ命令を実行させるためのテスト命令を
実行すると、第1リニアフイードバツクシフトレジスタ
LPSR24にスキャンインされたマイクロ命令が実行
される。
(7,6)  rテストモードとプロセッサモードの切
換え」 本発明のマイクロプロセッサではテストモードとプロセ
ッサモードの切換えをマイクロ命令セ。
すをリセットすることなしに行い得るように構成しであ
る このため、本発明のマイクロプロセッサをLSIテスタ
でテストする場合はテスト命令とプロセノサ命令を組合
わせて使用する。テストモードとプロセッサモードとの
切換えの状態を概念図として第51図に示す。
プロセッサモードからテストモードへの遷移はテスト割
込みにより可能であり、テストモードからプロセッサモ
ードへの遷移は専用のテスト命令(EOT命令)の実行
により可能である(7.6.1)  rテストモードへ
の遷移」プロセッサモードからテストモードへの遷移は
専用の割込みであるテスト割込みにより可能である。
テスト割込みはTεST!ビンのアサートにより受付け
られる。なお、このテスト割込みはプロセッサ命令の切
れ目で受付けられるマスク不可能割込みである。
本発明のマイクロプロセッサでは、テスト割込みを受付
けた場合には、各種のレジスタやランチの内容をテスト
割込みを受付けた直前に実行した命令の終了状態のまま
保持してプロセッサモードからテストモードに遷移し、
テスト命令入力待ち状態となる。
(7,6,2)  rテストモードへの遷移」テストモ
ードからプロセッサモードへの遷移はは専用のテスト命
令(EOT命令)の実行により可能である。
本発明のマイクロプロセサでは、テストモードでEOT
命令を実行した場合には、各種のレジスタ及びラッチの
内容がEOT命令を実行する前の値に保持されたままで
テストモードからプロセッサモードに遷移し、特定の作
業用レジスタ (EBレジスタ)の内容をPC値として
そのPC値からプロセッサ命令の実行が開始される。E
Bレジスタはマイクロプログラムから操作可能なレジス
タであり、F、OT命令の実行直前にEBレジスタの債
をテスト命令でセットすることにより、プロセッサモー
ドに遷移した後、任意のPC値からプロセッサ命令を実
行することが可能である。
(7,7)  r各部のテスト動作」 ここで、本発明のマイクロプロセッサを診断するための
テスト動作の例を述べる。このテスト動作は例えばLS
Iテスタを用いて容易に行うことができる。
(7,7,1)r?イクOROM部」 マイクロROM部55のテストはリセット時の自己診断
によるマイクロROM12のテストと、プロセッサモー
ドでの各命令の実行及びテストモードでの各テスト命令
の実行により行われる。
(7,7,2)  r命令フェッチ部」命令フェッチ部
51には命令キューとブランチバッファとがある。この
2つは専用のテストシーケンスによりテストモードとプ
ロセッサモードとを■合わせてテストする。命令フェッ
チ部51のテスト動作のフローチャートを第44図に示
す。
命令キュー及びブランチバッファは一種のRAMであり
、第44図のフローチャートに従ってテストシーケンス
を書込むデータ値を種々 (オール“1′オール“O”
あるいはランダム数等)に変化させて実行することによ
りテストする。
まず、テスト割込みによりプロセッサモードがらテスト
モードへa Bする。テスト命令により命令フェッチ部
51を命令キュー出力停止状態とする。
次に、ロード命令により命令キューのテストのために命
令キューに書込む4ワードのデータの先頭番地AをDD
レジスタ29に書込む、テスト命令により番地AをEB
レジスタへ転送する0次に、EOT命令を実行し、命令
フェッチ部51を命令キュー出カ停止状態のままでプロ
セッサモードへ遷移させる。
プロセッサモードで命令フェッチ部51は番地へから4
ワードのデータをフェッチする。これにより命令キュー
がフル状態になる。
再度テスト割込みによりテストモードへ遷移し、テスト
命令により命令キューの内容をDDババス9とデータ人
出力回路59とを通じてプロセッサ外部へ読出す、テス
ト命令により命令フェッチ部51の命令キュー出力停止
状態を解除する。更に、テスト命令により命令フェッチ
部51を命令キュー常時空状態にする。
ロード命令によりブランチバッファのテストのためにブ
ランチバッファに書込まれるデータの先頭番地BをDD
レジスタ29に書込む。テスト命令により番地BをE8
レジスタへ転送する。次に、HOT命令を実行し、命令
フェッチ部51を命令キュー常時空状態のままでプロセ
ッサモードに遷移させる。
命令フェンチ部51がB番地から256バイトのデータ
をフェッチし、ブランチバッファの全エントリにテスト
データを書込む。
再度テスト割込みによりテストモードへ遷移し、テスト
命令によりブランチバッファの内容をDDババス9とデ
ータ入出力回路59とを通じてプロセッサ外部へ続出す
。テスト命令により命令フェッチ部51の命令キュー常
時空状態を解除する。更に、[OT命令によりプロセッ
サへ遷移する。
(7,7,3)  r命令デコード部」命令デコード部
52のテストはリセット時の自己診断による全ピノドパ
クンに対するデコードとプロセッサモードでの各種プロ
セッサ命令の実行とにより実行される。
命令デコード部52に故障がある場合の故障場所の特定
あるいはより完全なテストを行う場合には、Rコードラ
ンチ部14とAコードランチ部15とにある第2及び第
3リニアフイードバツクシフトレジスタLPSR25,
26の値をスキャンパス命令で読出す。
(7,7,4)  rオペランドアドレス計算部」オペ
ランドアドレス計算部54はリセット時の自己診断によ
る簡易テストの他、テストモード及びプロセンサモード
での詳細テストも行える。
テストモードではスキャンパス命令を用いてAコードラ
ンチ部15の第3リニアフイードバンクシフトレジスタ
LFSR26に種々のAコード42の値をセットするこ
とにより、非常に詳細なテストや故障の特定が行える。
テストモードとプロセンサモードとを組合わせて行われ
るオペランドアドレス計算部54のテスト動作の一例の
フローチャートを第45図に示す。
Aコード42でメモリ間接アドレッシングを指定するこ
とによりオペランドアドレス計算部54のテスト結果を
AAババス0.アドレス出力回路58を介して外部へ読
出すことができる。第45図の動作を種々のデータにつ
いて行うことによりオペランドアドレス計算部54の詳
細なテストが行える。
まず、プロセッサモードにおいてデータ演算部56の汎
用レジスタにテスト用データをロードした後、テスト割
込みによりテストモードに遷移する。
データ演算部56の汎用レジスタからオペランドアドレ
ス計算部54のベースアドレスレジスタにベースアドレ
ス値をロードするだめの制御コードを含むAコード42
を、スキャンパスにより第3リニアフイードバツクシフ
トレジスタLPSR26にセットする。
Aコードに従ってオペランドアドレス計算部54を動作
させるテスト命令を実行する。
次に、データ演算部56の汎用レジスタからオペランド
アドレス計算部54のインデックスアドレスレジスタに
インデックスアドレス値をロードし、ベースアドレス値
とインデックスアドレス値とディスプレースメント値と
を3値加算し、その加算結果によりメモリ間接アドレッ
シングをする制御コードとディスプレースメント値を含
むAコード42とをスキャンパス命令により第3リニア
フイードバンクシフトレジスタLPSR26にセットす
る。
Aコード42に従ってオペランドアドレス計算部54を
動作させるテスト命令を実行し、3値加算結果をAAバ
バス0.アドレス出力回路58を通じて外部へ出力する
。この後、EOT命令を実行してプロセッサモードへ遷
f多する。
(7,7,5)  rデータ演算部」 データ演算部56はリセット時の自己診断による簡易テ
ストの他、テストモード及びプロセッサモードでの詳細
テストも行える。
テストモードではスキャンパス命令を用いてRコードラ
ンチ部14の第2リニアフイードハツクシフトレジスタ
LPSR25に種々のRツー1゛43の値をセットする
ことにより、非常に詳細なテスト及び故障の特定が行わ
れる。データ演算部56の故障原因を特定する場合には
外部からスキャンパス命令で任意のマイクロ命令を第1
リニアフイードバツクシフトレジスタLFSI124に
セットしてこの命令を実行させることにより、マイクロ
110M12には存在しない種々のマイクロ命令を実行
させてより自由度の高いテストを実行する。第1リニア
フィードバツタシフトレジスタLPSR24にセントし
たマイクロ命令を用いたデータ演算部56の故障原因特
定動作の一例のフローチャートを第46図に示す。
まず、プロセッサモードにおいてデータ演算部56の汎
用レジスタにテストプログラムをロードする1次に、テ
スト割込みによりテストモードに遷移する。
スキャンバス命令により第1リニアフイードバツクシフ
トレジスタLPSR24に故障診断用マイクロ命令旧を
セントする。I(’9FF(H’は16進数を表す)番
地のマイクロ命令を実行するステップ実行命令によりマ
イクロ命令M1を実行する。
スキャンパス命令により第1リニアフイードバツクシフ
ト・レジスタLPSR24に故障診断用マイクロ命令間
をセントする。l+’9FF番地のマイクロ命令を実行
するステップ実行命令によりマイクロ命令M2を実行す
る。この結果は汎用レジスタに保持される。
テスト命令により、汎用レジスタに保持されているマイ
クロ命令村の実行結果をプロセッサ外部へ読出す。この
後、80↑命令を実行してプロセッサモードへ遷移する
次に、ステップ実行命令を使用してマイクロプログラム
ルーチンをステップ実行し、データ演算部の故障原因を
特定する動作の一例のフローチャートを第47図に示す
まず、プロセッサモードにおいてデータ演算部56の汎
用レジスタにテストデータをロードする。
次に、テスト割込みによりテストモードに遷移させ、乗
算を実行するためのマイクロプロゲラトルーチンの第1
のステップをステップ実行命令により実行する。テスト
命令によりALU出力ラッチの中間結果を外部へ読出す
次に、乗算を実行するためのマイクロプログラムルーチ
ンの第2のステップをステップ実行命令により実行する
。テスト命令によりALU出力ラノうの中間結果を外部
へ読出す。
上述の処理を反復する。
乗算を実行す、るためのマイクロプログラムルーチンの
最終ステップをステップ実行命令により実行する。
テスト命令により乗算結果を外部へ読出す、この後、8
0丁命令を実行してプロセンサモードへ遷移する。
この例では乗算を行うマイクロプログラムルーチンを1
ステツプずつ実行して中間結果を順次マイクロプロセッ
サ外部へ読出している。乗算を行うマイクロプログラム
ルーチンが正しく動作しない故障が生じている場合、こ
のテスト方法により!ILUでの途中の演算に故障があ
るのが、マイクロプログラムルーチンの最終ステップを
実行する際に演算結果を転送する回路に故障があるのが
等、tm r本発明の他の実施例」 上述の実施例ではマイクロプログラム制御のマイクロプ
ロセッサについて述べているが、本発明はマイクロプロ
グラム制御でないマイクロプロセッサにも適用すること
が可能である。
また、上述の実施例ではテスト命令により容易にテスト
可能な機能ブロックをマイクロプログラムを構成する一
部の機能ブロックに限っているが、PCC演算部5算 命令をサポートすることも勿論可能である.また、テス
ト命令の種類及びフォーマントを種々追加することも勿
論可能である。
[発明の効果] 以上のように本発明のマイクロプロセッサでは、パイプ
ライン処理により高速処理を行う第1の命令体系として
の通常のプロセッサ命令群の他にマイクロプロセッサを
診断する第2の命令体系としてのテスト命令群を有して
いる。そして、テストモードで種々のテスト命令を実行
することを可能に構成しているため、マイクロプロセッ
サのテスドブログラム設計が容易になり、従来のマイク
ロプロセンサに比してテストプログラム設計人工が大幅
に削減される。
プロセッサモードからテストモードへの遷移は専用の外
部割込みであるテスト割込みにより実行されるため、任
意の命令の切れ目においてテストモードを起動すること
が可能である。そして、この際にはマイクロプロセッサ
により操作される種々のレジスタの内容が保持された状
態でテストモードが起動される。従って、プロセッサモ
ードにおいてプロセッサによりセントされている種々の
レジスタのデータをテストモードにおいて使用すること
が可能である。また、マイクロプロセッサが応用システ
ムに組込まれた後は、テスト割込みピン(TESTI)
は電源電位に固定されるので、ソフトウェアのバグ等の
影響により誤ってテストモードへ遷移する等の事態は可
避される。
テストモードからプロセッサモードへの遷移は専用のテ
スト命令(EOT命令)により実行される。
この際、マイクロプロセッサの種々のレジスタの内容は
保持されたままであるので、テストモードにおいてプロ
セッサの各部を診断した結果をプロセッサモードに遷移
後にプロセッサ命令により操作することも可能になる。
従って、本発明のマイクロプロセッサでは、テストモー
ドとプロセッサモード相互間をリセット無しで自由に行
き来可能なので、プロセッサ命令とテスト命令とを任意
に組合わせてテストプログラムを設計することが出来、
テストプログラム設計に要する人工を大幅に削減するこ
とが可能になる。就中、マイクロプロセッサがLSIの
マスクバタン設計のマージン不足に起因して故障を起こ
す確率が高い部分を含むために歩留りが低い場合にも、
故障発生の状況に応じてテストプログラムを設計するこ
とが容易で且つ短時間に少ない人工で種々のテストプロ
グラムが設計出来るので、故障発生場所の特定作業が高
効率で行える。
【図面の簡単な説明】
第1図は本発明のマイクロプロセッサのテストモードで
の動作状態の概念を示すブロック図、第2図は本発明の
マイクロプロセッサの一構成例を示すブロック図、 第3図は本発明のマイクロプロセッサの外部ピンを示す
模式図、 第4図は本発明のマイクロプロセッサのパイプライン処
理の概要を示す模式図、 第5図は本発明のマイクロプロセッサの基本メモリアク
セスサイクルのタイミングチャート、第6図は本発明の
マイクロプロセッサのテスI・命令の取込みとテスト結
果の出力状態を示すタイミングチャート、 第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図はマイクロROMの一構成例を示すブロック図
である。 10・・・マイクロシーケンス制御部  13・・・マ
イクロ命令実行制御部  51・・・命令フェッチ部5
2・・・命令デコード部  56・・・データ演算部な
お、各図中同一符号は同−又は相当部分を示す。

Claims (3)

    【特許請求の範囲】
  1. (1)第1の命令体系の命令を外部からフェッチする命
    令フェッチ部と、 前記命令をデコードする命令デコード部と、前記命令と
    これとは異なる第2の命令体系 の命令とに従ってデータに対する演算を実行する演算部
    と、 前記第1の命令体系の命令により操作されるレジスタと
    、 前記第1のモードにおいては、前記第1の命令体系の命
    令に従って前記命令フェッチ部と前記命令デコード部と
    前記演算部とを相互に関連させて並列動作させることに
    よりパイプライン処理を実行し、前記第2のモードにお
    いては、前記第2の命令体系の命令に従って前記命令フ
    ェッチ部または前記命令デコード部または前記演算部の
    内の少なくとも1つを診断する手段と、 前記第1のモードにおいて前記第1の命令体系の命令の
    切れ目で所定の信号入力があった場合に、前記レジスタ
    の値をその時点の値に保持したまま前記第1のモードか
    ら前記第2のモードへ遷移する手段と を備えたことを特徴とするマイクロプロセッサ。
  2. (2)第1の命令体系の命令を外部からフェッチする命
    令フェッチ部と、 前記命令をデコードする命令デコード部と、前記命令と
    これとは異なる第2の命令体系 の命令とに従ってデータに対する演算を実行する演算部
    と、 前記第1の命令体系の命令により操作されるレジスタと
    、 前記第1のモードにおいては、前記第1の命令体系の命
    令に従って前記命令フェッチ部と前記命令デコード部と
    前記演算部とを相互に関連させて並列動作させることに
    よりパイプライン処理を実行し、前記第2のモードにお
    いては、前記第2の命令体系の命令に従って前記命令フ
    ェッチ部または前記命令デコード部または前記演算部の
    内の少なくとも1つを診断する手段と、 前記第2のモードにおいて前記第2の命令体系の所定の
    命令が実行された場合に、前記レジスタの値を前記所定
    の命令の実行が終了した時点の値に保持したまま前記第
    2のモードから前記第1のモードへ遷移する手段と を備えたことを特徴とするマイクロプロセッサ。
  3. (3)第1の命令体系の命令を外部からフェッチする命
    令フェッチ部と、 前記命令をデコードする命令デコード部と、前記命令と
    これとは異なる第2の命令体系 の命令とに従ってデータに対する演算を実行する演算部
    と、 前記第1の命令体系の命令により操作されるレジスタと
    、 前記第1のモードにおいては、前記第1の命令体系の命
    令に従って前記命令フェッチ部と前記命令デコード部と
    前記演算部とを相互に関連させて並列動作させることに
    よりパイプライン処理を実行し、前記第2のモードにお
    いては、前記第2の命令体系の命令に従って前記命令フ
    ェッチ部または前記命令デコード部または前記演算部の
    内の少なくとも1つを診断する手段と、 前記第1のモードにおいて前記第1の命令体系の命令の
    切れ目で所定の信号入力があった場合に、前記レジスタ
    の値をその時点の値に保持したまま前記第1のモードか
    ら前記第2のモードへ遷移し、前記第2のモードにおい
    て前記第2の命令体系の所定の命令が実行された場合に
    、前記レジスタの値を前記所定の命令の実行が終了した
    時点の値に保持したまま前記第2のモードから前記第1
    のモードへ遷移する手段と を備えたことを特徴とするマイクロプロセッサ。
JP1141512A 1989-06-01 1989-06-01 マイクロプロセッサ Expired - Fee Related JPH0680495B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP1141512A JPH0680495B2 (ja) 1989-06-01 1989-06-01 マイクロプロセッサ
US07/531,482 US5210864A (en) 1989-06-01 1990-05-31 Pipelined microprocessor with instruction execution control unit which receives instructions from separate path in test mode for testing instruction execution pipeline

Applications Claiming Priority (1)

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

Publications (2)

Publication Number Publication Date
JPH035833A true JPH035833A (ja) 1991-01-11
JPH0680495B2 JPH0680495B2 (ja) 1994-10-12

Family

ID=15293688

Family Applications (1)

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

Country Status (1)

Country Link
JP (1) JPH0680495B2 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113961506A (zh) * 2021-10-19 2022-01-21 海飞科(南京)信息技术有限公司 加速器和电子装置

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113961506A (zh) * 2021-10-19 2022-01-21 海飞科(南京)信息技术有限公司 加速器和电子装置
CN113961506B (zh) * 2021-10-19 2023-08-29 海飞科(南京)信息技术有限公司 加速器和电子装置

Also Published As

Publication number Publication date
JPH0680495B2 (ja) 1994-10-12

Similar Documents

Publication Publication Date Title
JPH035835A (ja) マイクロプロセッサ
US5416912A (en) System for handling exceptions occurring during parallel execution of microinstructions
JP2507638B2 (ja) デ―タ処理装置
JP3543181B2 (ja) データ処理装置
US6567910B2 (en) Digital signal processing unit with emulation circuitry and debug interrupt enable register indicating serviceable time-critical interrupts during real-time emulation mode
JPH02173823A (ja) データ処理装置
US5502827A (en) Pipelined data processor for floating point and integer operation with exception handling
JPH0766324B2 (ja) データ処理装置
JPH035836A (ja) マイクロプロセッサ
JPH0215331A (ja) データ処理装置
JPH01214932A (ja) データ処理装置
US5210864A (en) Pipelined microprocessor with instruction execution control unit which receives instructions from separate path in test mode for testing instruction execution pipeline
JP2669158B2 (ja) データ処理装置
JPH07120284B2 (ja) データ処理装置
JP2556182B2 (ja) デ−タ処理装置
JPH04260929A (ja) データ処理装置
JP2668456B2 (ja) ビット検索回路及びそれを備えたデータ処理装置
JP2504312B2 (ja) プライオリティエンコ―ダ及びそれを備えたデ―タ処理装置
JPH035833A (ja) マイクロプロセッサ
JPH0769806B2 (ja) データ処理装置
JP2646855B2 (ja) データ処理装置
JPH035834A (ja) マイクロプロセッサ
JP2579817B2 (ja) マイクロプロセッサ
JP2928879B2 (ja) データ処理装置
JPH11119995A (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