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

マイクロプロセッサ

Info

Publication number
JPH0680495B2
JPH0680495B2 JP1141512A JP14151289A JPH0680495B2 JP H0680495 B2 JPH0680495 B2 JP H0680495B2 JP 1141512 A JP1141512 A JP 1141512A JP 14151289 A JP14151289 A JP 14151289A JP H0680495 B2 JPH0680495 B2 JP H0680495B2
Authority
JP
Japan
Prior art keywords
instruction
mode
test
unit
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.)
Expired - Fee Related
Application number
JP1141512A
Other languages
English (en)
Other versions
JPH035833A (ja
Inventor
豊彦 吉田
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
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

Description

【発明の詳細な説明】 [産業上の利用分野] 本発明はマイクロプロセッサに関し、更に記述すれば、
通常のモードにおいてはパイプライン動作により命令を
高速処理し、テスト時には専用のモードでテスト専用の
命令を実行して内部の各機能ブロックを診断する機能を
備えることにより、テストを容易化したマイクロプロセ
ッサに関する。
[従来の技術] 従来のマイクロプロセッサは単一の命令体系を有し、そ
の命令体系を高速で実行するためにマイクロプロセッサ
内部を種々の機能ブロックに分割し、それらの各ブロッ
クをパイプライン処理の原理に基づいて並列動作させる
ような構成が一般的である。
第7図は従来のマイクロプロセッサの全体構成の一例を
示すブロック図である。
第7図において、101は命令フェッチ部であり、アドレ
ス出力回路108を通じてアドレスをマイクロプロセッサ
外部のメモリへ送出し、データ入出力回路109を通じて
命令をフェッチする。
102は命令デコード部であり、命令フェッチ部101から命
令を受取ってデコードし、その命令の実行に必要な情報
を出力する。
103は命令実行制御部であり、命令デコード部102から出
力されたマイクロプログラムエントリアドレス、あるい
はマイクロROM107に格納されている命令を実行するため
に汎用レジスタ番号,オペランド,データサイズ等の情
報に基づいて生成されたマイクロプログラムエントリア
ドレスをマイクロプログラムカウンタ106へ出力する。
マイクロプログラムカウンタ106によって次々に示され
るアドレスによりマイクロROM107から出力されたマイク
ロ命令と命令デコード部102から出力された他の情報と
により、命令実行制御部104は命令実行部105を制御して
命令を実行させる。
104はオペランドアクセス部であり、命令実行に際して
必要になるオペランドがメモリにある場合は、そのアド
レスをアドレス出力回路108を通じてマイクロプロセッ
サ外部のメモリへ出力することにより、必要なオペラン
ドをデータ入出力回路109を通じてフェッチする。また
オペランドをメモリに格納する必要がある場合は、オペ
ランドアクセス部104はそのアドレスをアドレス出力回
路108を通じてマイクロプロセッサ外部のメモリへ出力
すると共に、必要なオペランドをデータ入出力回路109
を通じて出力することにより、メモリに格納する。
命令フェッチ部10L,命令デコード部102,命令実行部105
等の機能ブロックは相互に関連して並列作動することに
より、複数の命令をパイプライン処理の原理に従い同時
に処理する。パイプライン処理により複数の命令を同時
に処理し、高性能化を行ったマイクロプロセッサとして
は、たとえばU.S.P.No.4,402,042“MICROPROCESSOR SYS
YTEM WITH INSTRUCTION PRE-FETCH"に開示されている。
また、高性能化を目的とした上述のようなパイプライン
処理のための命令体系とは別に、既存のソフトウエアを
利用するための命令体系も実行可能なマイクロプロセッ
サも知られている。そのようなマイクロプロセッサの一
例としては、佐藤他「仮想記憶管理機構と浮動小数点演
算機能を内蔵した32ビットマイクロプロセッサV60」、
日経エレクトロニクス、1986年3月24日号、no.391、p
p.199-264.が知られている。
従来のマイクロプロセッサでは、その各機能ブロックの
テストに際し、上述のようなパイプライン動作の高性能
な実行を目的とする命令体系または既存のソフトウエア
を利用するための命令体系を用いてマイクロプロセッサ
の動作を診断する。これらの命令体系では、マイクロプ
ロセッサ内部の複数の機能ブロックがパイプライン動作
により並列に動作する。命令を実行する際は、各機能ブ
ロックが相互に関連して並列に動作するため、動作パタ
ンの数が膨大となりテストすべき項目の数も比例して増
加する。しかも、マイクロプロセッサは単一のLSIチッ
プ上に実現されているため、外部ピン以外の電気的接続
点の電位あるいは電流を観測することは非常に困難であ
り、テストコストの観点から外部ピンの情報のみにてマ
イクロプロセッサをテストすることが望ましい。
また、マイクロプロセッサの各部を診断するには、プロ
セッサ内部の各種のラッチの内容を初期設定する命令を
事前に実行したり、診断対象とする機能ブロック以外の
機能ブロックが診断に悪影響を及ぼさないないような命
令の組合せでテストプログラムを記述する必要がある。
このため、テストプログラムの設計が非常に難しくなる
と共に設計人工も多数必要とする。特に、試作等により
製作されたマイクロプロセッサが設計仕様通りに動作し
ない場合の原因究明は困難を極める。
このような問題を解決するためのマイクロプロセッサ等
のLSIのテストの容易化の一方法として、LSI内部のラッ
チをシフトパスで結び、且つラッチの内容をシリアルに
入出力するスキャンパスを用いたテスト方法が提案され
た。この提案はたとえば、田中「テスト容易な回路構造
によりLSIの故障検出率を大幅に改善」、日経エレクト
ロニクス、1979年4月18日号、pp.57-68に紹介されてい
る。
スキャンパスを用いたLSIのテストは、LSI中のラッチの
値が読書き可能である点では有意義であるが、LSI設計
段階で読書きしたいラッチをスキャンパスで結合してお
く必要があること、スキャンパスでの読書きはビットシ
リアルな入出力であるためテスト時間が増大すると共に
テストプログラムも長大になり、テストプログラムの設
計が複雑になる等の問題がある。
テスト時にはマイクロプロセッサをテストモードにして
PLA(Programable Logic Array)あるいはROM、更には
内蔵メモリであるキャッシュをテストしたり、テスト用
のマイクロプログラムルーチンを用いてテストする手法
も提案されている。このような手法は例えば、J. R. Ku
rban and J. E. Salick,“Testing Approaches In the
MC68020",VLSI DESIGN Vol. V, No.11, pp.22-30,Novem
ber1984. に開示されている。
この提案では、マイクロプロセッサをテストモードに遷
移させるには専用の命令を実行させる必要があるため、
ユーザがマイクロプロセッサを使用中にソフトウェアに
バグ等の原因で誤ってこの専用命令が入力されると制御
不能に陥る可能性がある。テストモードは通常はメーカ
ーサイドでLSIテスタによりマイクロプロセッサをテス
トする際に使用されるため、一般のユーザにはその内容
の詳細は公開されていない場合が多い。従って、応用シ
ステムに組込まれているマイクロプロセッサがテストモ
ードに遷移すると、ユーザにとっては暴走しているよう
にみえる。
また、テスト用のマイクロプログラムルーチンを軌道す
るには上述の特殊な命令を必ず実行する必要がある。こ
のため、テストプログラムの設計の自由度が制限され、
結果的にテストプログラムの設計人工の増大を招来する
という問題がある。特にマイクロプログラムに故障が生
じている場合の原因究明に際しては、故障の状況に応じ
て適宜テストプログラムを設計する必要があり、テスト
プログラム設計の容易化が重要である。
[発明が解決しようとする課題] 以上の如く、マイクロプロセッサのテストを容易化する
方法に関しては従来からいくつかの提案がなされている
が、いずれも部分的な解決策でしかない。マイクロプロ
セッサの設計の際の全人工の内でテストプログラムを設
計するために必要な人工はかなりの部分を占めている。
特に、マイクロプロセッサが高性能になればなる程、テ
ストプログラムの設計はますます多くの人工を必要とす
る。
マイクロプロセッサは論理設計,マイクロプログラムの
ミスによる設計ハグの混入,マイクパターン設計のマー
ジン不足に起因する配線間のショート等による製造歩留
りの低下等のため、量産可能な製品の設計が完了すまで
に何回かの試作を必要とする。この際、故障原因を早期
に究明することが非常に重要である。
マスクパタンのマージン不足場所を特定するにはなるべ
く多くの試作品を種々のテストプログラムによりテスト
して故障の発生確立が高い場所を特定する必要がある。
このためには多種類のテストプログラムを故障の種類に
応じて迅速に設計する必要がある。従って、テストプロ
グラムの設計が容易でない場合にはその設計の人工が莫
大になる。
本発明のマイクロプロセッサはテストプログラムの設計
を容易化し、またその自由度を高くすることにより設計
に要する時間を短縮し、テストプログラムの設計に要す
る人工を削減することを目的とする。
[課題を解決するための手段] 本発明のマイクロプロセッサは、命令フェッチ部,命令
デコード部,データ演算部等の複数の機能ブロックを相
互に関連して並列動作させ、パイプライン処理の原理に
従って命令を処理する第1のモードであるプロセッサモ
ードと、テスト時にマイクロプロセッサ内部の機能ブロ
ックを独立して動作させることにより診断を容易化した
第2のモードであるテストモードとの2つのモードを有
する。また、プロセッサモードにおいてパイプライン動
作による高速実行を目的とする第1の命令体系であるプ
ロセッサ命令群と、テストモードにおいて診断動作を行
うことを目的とする第2の命令体系であるテスト命令群
との2つの命令体系を有する。
テスト命令群にはマイクロプロセッサ内部の機能ブロッ
クをテストする診断用マイクロプログラムルーチンを実
行する命令及びマイクロROMの任意のアドレスのマイク
ロ命令を1命令のみ実行するステップ実行命令等の種々
の命令がある。
また、本発明のマイクロプロセッサはプロセッサモード
において命令を実行中に、テスト割込みによりマイクロ
プロセッサ内の各種レジスタの内容を保持したままの状
態でテストモードへ遷移し得るように構成されている。
更に、テストモードにおいて専用の命令を実行すること
により、マイクロプロセッサ内の各種レジスタの内容を
保持したままの状態でプロセッサモードへ遷移し得るよ
うに構成されている。
[作用] 本発明のマイクロプロセッサでは、第1のモードである
プロセッサモードにおいては、各種機能ブロックが相互
に関連して並列に動作し、プロセッサ命令がパイプライ
ン処理の原理に従って高速実行される。この際、本発明
のマイクロプロセッサがメモリアクセスサイクルを起動
して外部のメモリに対してアドレスを出力することによ
り、対応アドレス位置にあるプロセッサ命令,オペラン
ドデータ等がフェッチされる。プロセッサモードは外部
にメモリを接続して本来のマイクロプロセッサとしての
動作をさせた場合と、LSIテスタでテストする場合とに
使用する。
第2のモードであるテストモードにおいては、直接マイ
クロプログラムエントリ番地を指定するテスト命令が命
令デコーダをバイパスして取込まれて実行される。ま
た、テストモードではメモリアクセスサイクルが起動さ
れることなく、テスト命令取込みを指示する信号により
テスト命令が取込まれ、テスト結果はアドレス出力回路
等をメモリサイクルとは関係なく駆動することにより得
られる。
プログラムモードからテストモードへの遷移はテスト割
込みにより行われる。逆のテストモードからプログラム
モードの遷移は専用のテスト命令であるEOT命令により
行われる。テストプログラムはプロセッサ命令とテスト
命令との双方を使用して両モード間を行き来することに
より、マイクロプロセッサの診断を実行する。
[発明の実施例] 以下、本発明をその実施例を示す図面に基づいて詳述す
る。
(1)「本発明のマイクロプロセッサの動作モード」 本発明のマイクロプロセッサは2つの動作モードを有す
る。第1のモードはパイプライン動作を高速実行させる
ことを主な目的とするプロセッサモードであり、第2の
モードは本発明のマイクロプロセッサの内部状態を診断
することを主な目的とするテストモードである。
本発明のマイクロプロセッサはまた、2つの命令体系の
実行が可能である。即ち、プロセッサモードにおいて実
行される第1の命令体系であるプロセッサ命令と、テス
トモードにおいて実行される第2命令体系であるテスト
命令とである。
プロセッサモードにおいては、本発明のマイクロプロセ
ッサはパイプライン動作によりプロセッサ命令を高速に
実行する。本発明のマイクロプロセッサを利用して種々
のソフトウエアを高速に実行する場合はこのモードを使
用する。プロセッサモードではプロセッサ命令のみが実
行可能でありテスト命令の実行は不可能である。
テストモードでは、ノンパイプライン動作によりテスト
命令が逐次実行される。テストモードはプロセッサモー
ドよりもマイクロプロセッサの診断が容易なモードであ
る。テストモードは主にLSIテスタでマイクロプロセッ
サをテストする場合に使用される。
本発明のマイクロプロセッサは、プロセッサモードでは
メモリに対してアドレスを出力することにより命令及び
データをフェッチしてその結果を格納すべきアドレスと
共にメモリへ出力する。テストモードでは与えられたテ
スト命令とデータとに対して演算結果を出力するが、命
令あるいはデータをフェッチするためのアドレスは出力
しない。
(2)「本発明のマイクロプロセッサのプロセッサ命令
のフォーマット」 本発明のマイクロプロセッサのプロセッサ命令は16ビッ
ト単位で可変長となっており、奇数バイト長の命令はな
い。
本発明のマイクロプロセッサでは高頻度のプロセッサ命
令を短いフォーマットとするため、特に工夫された命令
フォーマット体系を有する。例えば、2オペランド命令
に対しては基本的に「4バイト+拡張部」の構成を有
し、総てのアドレッシングモードが利用可能な一般形フ
ォーマットと、頻度が高い命令及びアドレッシングモー
ドのみを使用可能な短縮形フォーマットとの2つのフォ
ーマットがある。
第8図から第17図は本発明のマイクロプロセッサのプロ
セッサ命令フォーマットを示す模式図である。
第8図から第17図のフォーマット中に現われる記号の意
味は以下の通りである。
−:オペコードの入る部分 #:リテラル、または即値の入る部分 Ea:8ビットの一般形のアドレッシングモードでオペラン
ドを指定する部分 Sh:6ビットの短縮形のアドレッシングモードでオペラン
ドを指定する部分 Rn:レジスタファイル上のオペランドをレジスタ番号で
指定する部分 フォーマットは、第8図に示す如く、右側がLSB側で、
且つ高いアドレスになっている。アドレスNとアドレス
N+1の2バイトを見ないと命令フォーマットが判別で
きないようになっているが、これは、命令が必ず16ビッ
ト(2バイト)単位でフェッチ及びデコードされること
を前提としているためである。
本発明のマイクロプロセッサのプロセッサ命令では、い
ずれのフォーマットの場合も、各オペランドのEaまたは
Shの拡張部は、必ずそのEaまたはShの基本部を含むハー
トワードの直後に置かれる。これは、命令により暗黙に
指定される即値データあるいは命令の拡張部に優先す
る。従って、4バイト以上のプロセッサ命令では、Eaの
拡張部によって命令のオペコードが分断される場合があ
る。
また、後でも述べるように、多段間接モードによりEaの
拡張部に更に拡張部が付加される場合にも、次の命令オ
ペレーションコードよりもそちらの方が優先される。例
えば、第1ハーフワードにEa1を含み、第2ハーフワー
ドにEa2を含み、第3ハーフワードまである6バイト命
令の場合を考える。Ea1に多段間接モードを使用したた
めに普通の拡張部の他に他段間接モードの拡張部も付加
されるものとする。この際、実際の命令ビットパターン
は、命令の第1ハーフワード(Ea1の基本部を含む),Ea
1の拡張部,Ea1の多段間接モード拡張部,命令の第2ハ
ーフワード(Ea2の基本部を含む),Ea2の拡張部,命令
の第三ハーフワードの順となる。
(2.1)「短縮形2オペランド命令」 第9図から第12図はプロセッサ命令の2オペランド命令
の短縮形フォーマットを示す模式図である。
第9図はメモリ−レジスタ間演算命令のフォーマットで
ある。このフォーマットにはソースオペランド側がメモ
リとなるL-formatとデスティネーションオペランド側が
メモリとなるS-formatとがある。
L-fomatでは、Shはソースオペランドの指定フィールド,
Rnはデスティネーションオペランドのレジスタの指定フ
ィールド,RRはShのオペランドサイズの指定をそれぞれ
表す。レジスタ上に置かれたデスティネーションオペラ
ンドのサイズは32ビットに固定されている。レジスタ側
とメモリ側とのサイズが異なり、且つソース側のサイズ
が小さい場合に符号拡張が行なわれる。
S-formatでは、Shはデスティネーションオペランドの指
定フィールド,Rnはソースオペランドのレジスタ指定フ
ィールド,RRはShのオペランドサイズの指定をそれぞれ
表す。レジスタ上に置かれたソースオペランドのサイズ
は32ビットに固定されている。レジスタ側とメモリ側の
サイズが異なり、且つソース側のサイズが大きい場合
に、溢れた部分の切捨てとオーバーフローチェックとが
行なわれる。
第10図はレジスタ−レジスタ間演算命令のフォーマット
(R-format)を示す模式図である。図中、Rnはデスティ
ネーションレジスタの指定フィールド,Rmはソースレジ
スタの指定フィールドである。オペランドサイズは32ビ
ットのみである。
第11図はリテラル−メモリ間演算命令のフォーマット
(Q-format)を示す模式図である。図中、MMはディステ
ィネーションオペランドサイズの指定フィールド,#は
リテラルによるソースオペランドの指定フィールド,Sh
はデスティネーションオペランドの指定フィールドであ
る。
第12図は即値−メモリ間演算命令のフォーマット(I-fo
rmat)を示す模式図である。図中、MMはオペランドサイ
ズの指定フィールド(ソース,ディスティネーションで
共通),Shはデスティネーションオペランドの指定フィ
ールドである。I-formatの即値のサイズは、デスティネ
ーション側のオペランドのサイズと共通に8,16,32ビッ
トとなり、ゼロ拡張及び符号拡張は行なわれない。
(2.2)「一般形1オペランド命令」 第13図はプロセッサ命令の1オペランド命令の一般形フ
ォーマット(G1-format)を示す模式図である。図中、M
Mはオペランドサイズの指定フィールドである。一部のG
1-format命令では、Eaの拡張部以外にも拡張部がある。
また、MMを使用しない命令もある。
(2.3)「一般形2オペランド命令」 第14図から第16図はプロセッサ命令の2オペランド命令
の一般形フォーマットを示す模式図である。このフォー
マットに含まれるのは、8ビットで指定する一般形アド
レッシングモードのオペランドが最大2つ存在する命令
である。オペランドの総数自体は3つ以上になる場合が
ある。
第14図は第1オペランドがメモリ読出しを必要とする命
令のフォーマット(G-format)を示す模式図である。図
中、EaMはデスティネーションオペランドの指定フィー
ルド,MMはデスティネーションオペランドサイズの指定
フィールド,EaRはソースオペランド指定フィールド,RR
はソースオペランドサイズの指定フィールドである。一
部のG-format命令では、EaM及びEaRの拡張部以外にも拡
張部がある。
第15図は第1オペランドが8ビット即値の命令のフォー
マット(E-format)を示す模式図である。図中、EaMは
デスティネーションオペランドの指定フィールド,MMは
デスティネーションオペランドサイズの指定フィール
ド,#はソースオペランド値である。
E-formatとI-formatとは機能的には類似しているが、考
え方の点で大きく異なっている。E-formatはあくまでも
2オペランド一般形(G-format)の派生形であり、ソー
スオペランドのサイズが8ビット固定、ディスティネー
ションオペランドのサイズが8/16/32ビットから選択と
なっている。つまり、異種サイズ間の演算を前提とし、
デスティネーションオペランドのサイズに合わせて8ビ
ットのソースオペランドがゼロ拡張または符号拡張され
る。
一方、I-formatは、特に転送命令,比較命令で頻度の多
い即値のパターンを短縮形にしたものであり、ソースオ
ペランドとディスティネーションオペランドのサイズは
等しい。
第16図は第1オペランドがアドレス計算のみの命令のフ
ォーマット(GA-format)を示す模式図である。図中、E
aWはデスティネーションオペランドの指定フィールド,W
Wはデスティネーションオペランドサイズの指定フィー
ルド,EaAはソースオペランドの指定フィールドである。
ソースオペランドとしては実行アドレスの計算結果自体
が使用される。
第17図はシャートブランチ命令のフォーマットを示す模
式図である。図中、ccccは分岐条件指定フィールド,dis
p:8はジャンプ先との変位指定フィールドであり、本発
明のマイクロプロセッサでは8ビットで変位を指定する
場合には、ビットパターンでの指定値を2倍して変位値
とする (2.4)「アドレッシングモード」 本発明のマイクロプロセッサのプロセッサ命令のアドレ
ッシングモード指定方法には、レジスタを含めて6ビッ
トで指定する短縮形と、8ビットで指定する一般形があ
る。
未定義のアドレッシングモードを指定した場合あるいは
意味的に考えて明らか不合理なアドレッシングモードの
組合わせが指定された場合には、未定義命令を実行した
場合と同じく予約命令例外が発生され、例外処理が起動
される。
これに該当するのは、デスティネーションが即値モード
の場合及びアドレス計算を伴うべきアドレシングモード
指定フィールドで即値モードを使用した場合などであ
る。
第18図から第28図に示すフォーマットの模式図中で使用
されている記号の意味は以下の通りである。
Rn:レジスタ指定 (Sh):6ビットの短縮形アドレッシングモードでの指定
方法 (Ea):8ビットの一般形アドレッシングモードでの指定
方法 フォーマットの図で点線で囲まれた部分は、拡張部を示
す。
(2.4.1)「基本アドレッシングモード」 本発明のマイクロプロセッサのプロセッサ命令では種々
のアドレッシングモードをサポートする。それらの内、
本発明のマイクロプロセッサでサポートする基本アドレ
ッシングモードには、レジスタ直接モード,レジスタ間
接モード,レジスタ相対間接モード,即値モード,絶対
モード,PC相対間接モード,スタックポップモード,ス
タックプッシュモードがある。
レジスタ直接モードは、レジスタの内容をそのままオペ
ランドとする。第18図にフォーマットの模式図を示す。
図中、Rnは汎用レジスタの番号を示す。
レジスタ間接モードは、レジスタの内容をアドレスとす
るメモリの内容をオペランドとする。第19図にフォーマ
ットの模式図を示す。Rnは汎用レジスタの番号を示す。
レジスタ相対間接は、ディスプレースメント値が16ビッ
トであるか32ビットであるかにより、2種類ある。それ
ぞれ、レジスタの内容に16ビットまたは32ビットのディ
スプレースメント値を加えた値をアドレスとするメモリ
の内容をオペランドとする。第20図にフォーマットの模
式図を示す。図中、Rnは汎用レジスタの番号を示す。di
sp:16とdisp:32とは、16ビットのディスプレースメント
値,32ビットのディスプレースメント値をそれぞれ示
す。ディスプレースメント値は符号付きとして扱われ
る。
即値モードは、命令コード中で指定されるビットパタン
をそのまま2進数と見なしてオペランドとする。第21図
にフォーマットの模式図を示す。図中、imm_dataは即値
を示す。imm_dataのサイズは、オペランドサイズとして
命令中で指定される。
絶対モードは、アドレス値が16ビットで示されるか32ビ
ットで示されるかにより2種類ある。それぞれ、命令コ
ード中で指定される16ビットまたは32ビットのビットパ
タンをアドレスとしたメモリの内容をオペランドとす
る。第22図にフォーマットの模式図に示す。図中、abs:
16とabs:32とは、16ビット,32ビットのアドレス値をそ
れぞれ示す。abs:16でアドレスが示される場合は指定さ
れたアドレス値が32ビットに符号拡張される。
PC相対間接モードは、ディスプレースメント値が16ビッ
トであるか32ビットであるかにより、2種類ある。それ
ぞれ、プログラムカウンタの内容に16ビットまたは32ビ
ットのディスプレースメント値を加えた値をアドレスと
するメモリの内容をオペランドとする。第23図にフォー
マットの模式図を示す。図中、disp:16とdisp:32とは、
16ビットのディスプレースメント値,32ビットのディス
プレースメント値をそれぞれ示す。ディスプレースメン
ト値は符号付きとして扱われる。PC相対間接モードにお
いて参照されるプログラムカウンタの値は、そのオペラ
ンドを含む命令の先頭アドレスである。多段間接アドレ
シングモードにおいてプログラムカウンタの値が参照さ
れる場合にも、同じように命令先頭のアドレスをPC相対
の基準値として使用する。
スタックポップモードはスタックポインタ(SP)の内容
をアドレスとするメモリの内容をオペランドとする。オ
ペラドアクセス後、SPをオペランドサイズだけインクリ
メントする。例えば、32ビットデータを扱う際には、オ
ペランドアクセス後にSPが+4だけ更新される。8ビッ
ト,16ビットのサイズのオペランドに対するスタックポ
ップモードの指定も可能であり、それぞれSPが+1,+2
だけ更新される。第24図にフォーマットの模式図を示
す。オペランドに対しスタックポップモードが意味を持
たないものに対しては、予約命令例外が発生される。具
体的に予約命令例外となるのは、writeオペランド及びr
ead-modify-writeオペランドに対するスタックポップモ
ード指定である。
スタックプッシュモードはSPの内容をオペランドサイズ
だけデクリメントした内容をアドレスとするメモリの内
容をオペランドとする。スタックプッシュモードではオ
ペランドアクセス前にSPがデクリメントされる。例え
ば、32ビットデータを扱う際には、オペランドアクセス
前にSPが−4だけ更新される。8ビット,16ビットのサ
イズのオペランドに対するスタックプッシュモードの指
定も可能であり、それぞれSPが−1,−2だけ更新され
る。第25図にフォーマットの模式図を示す。オペランド
に対してスタックプッシュモードが意味を持たない場合
は、予約命令例外が発生される。具体的に予約命令例外
となるのは、readオペランド及びread-modify-writeオ
ペランドに対するスタックプッシュモード指定である。
(2.4.2)「多段間接アドレッシングモード」 複雑なアドレッシングも、基本的には加算と間接参照の
組合わせに分解することができる。従って、加算と間接
参照のオペレーションをアドレッシングのプリミティブ
として与えておき、それを任意に組合わせることができ
れば、いかに複雑なアドレッシングモードをも実現する
ことが可能である。本発明のマイクロプロセッサのプロ
セッサ命令の多段間接アドレッシングモードはこのよう
な観点に立脚したアドレッシングモードである。複雑な
アドレッシングモードは、モジュール間のデータ参照あ
るいはAI(Artificial Intelligence:人工知能)言語の
処理系に特に有用である。
多段間接アドレッシングモードを指定する際、基本アド
レッシングモード指定フィールドでは、レジスタベース
多段間接モード,PCベース多段間接モード,絶対ベース
多段間接モードの3種類の指定方法の内のいずれか1つ
を指定する。
レジスタベース多段間接モードは、レジスタの値を拡張
されるべき多段間接アドレッシングのベース値とするア
ドレッシングモードである。第26図にフォーマットの模
式図を示す。図中、Rnは汎用レジスタの番号を示す。
PCベース多段間接モードは、プログラムカウンタの値を
拡張されるべき多段間接アドレッシングのベース値とす
るアドレッシングモードである。第27図にフォーマット
の模式図を示す。
絶対ベース多段間接モードは、ゼロを拡張されるべき多
段間接アドレッシングのベース値とするアドレッシング
モードである。第28図にフォーマットの模式図を示す。
拡張する多段間接モード指定フィールドは16ビットを単
位としており、これが任意回反復される。1段の多段間
接モードにより、ディスプレースメントの加算,インデ
クスレジスタのスケーリング(×1,×2,×4,×8)と加
算,メモリの間接参照を行なう。第29図は多段間接モー
ドのフォーマットを示す模式図である。各フィールドは
以下に示す意味を有する。
E=0:多段間接モード継続 E=1:アドレス計算終了 tmp==> address of operand I=0:メモリ間接参照なし tmp + disp +Rx * Scale ==> tmp I=1:メモリ間接参照あり mem [tpm + disp + Rx * Scale ] ==> tmp M=0 :<Rx>をインデクスとして使用 M=1:特殊なインデクス <Rx>=0 インデクス値を加算しない (Rx=0) <Rx>=1 プログラムカウンタをインデクス値として
使用 (Rx=PC) <Rx>=2〜 reserved D=0:多段間接モード中の4ビットのフィールドd4の値
を4倍してディスプレースメント値とし、これを加算す
る。d4は符号付きとして扱い、オペランドのサイズとは
関係なく必ず4倍して使用する。
D=1:多段間接モードの拡張部で指定されたdispx(16/3
2ビット)をディスプレースメント値とし、これを加算
する。
拡張部のサイズはd4フィールドで指定する。
d4=0001 dispxは16ビット d4=0010 dispxは32ビット XX :インデクスのスケール (scale=1/2/4/8) プログラムカウンタに対して×2,×4,×8のスケーリン
グを行なった場合には、その段の処理終了後の中間値
(tmp)として不定値が入る。この多段間接モードによ
って得られる実効アドレスは予測できない値となるが、
例外は発生しない。プログラムカウンタに対するスケー
リングの指定は行なってはいけない。
多段間接モードによる命令フォーマットのバリエーショ
ンを第30図及び第31図に示す。第30図は多段間接モード
が継続するか終了するかのバリエーションを示す。第31
図はディスプレースメントのサイズのバリエーションを
示す。
任意段数の多段間接モードが利用できれば、コンパイラ
の中で段数による場合分けが不要になるので、コンパイ
ラの負担が軽減されるというメリットがある。多段の間
接参照の頻度が非常に少ないとしても、コンパイラとし
ては必ず正しいコードを発生できなければならないから
である。このため、フォーマット上、任意の段数が可能
になっている。
(3)「本発明のマイクロプロセッサのテスト命令のフ
ォーマット」 本発明のマイクロプロセッサのテスト命令は35ビットの
固定長フォーマットである。第32図〜第37図に本発明の
マイクロプロセッサのテスト命令のフォーマットの模式
図を示す。フォーマット中に現れる記号の意味は以下の
通りである。
IRL:割込み要求線のピン番号0〜2から入力されるフィ
ールドであることを示す。
D:データバスのピン番号00〜31から入力されるフィール
ドであることを示す。
MM:演算結果出力が外部のメモリか否かを指定する部分 TPAR:演算に関するパラメータを指定する部分 SREG:ソースオペランドのレジスタ位置を指定する部分 DREG:デスティネーションオペランドレジスタ位置を指
定する部分 ZS:ソースオペランドサイズを指定する部分 ZD:デスティネーションオペランドサイズを指定する部
分 DD:スキャンインするデータを指定する部分また、12ビ
ットのマイクロROM番地指定フィールドと、指定データ
を無視するフィールド(don'tcare)とがある。
テスト命令では、ソースオペランドはレジスタファイル
にある値または即値データのみを使用する。このため、
テスト命令ではアドレッシングモード等のメモリオペラ
ンドに関するアドレス指定フィールドはない。
(3.1)「連続実行命令」 第32図及び第33図に示すテスト命令のフォーマットは連
続実行命令のフォーマットである。
連続実効命令は、指定されたマイクロROM番地からマイ
クロプログラムに従って本発明のマイクロプロセッサを
動作させる命令である。
第32図に示す第1連続実行命令は、指定したマイクロRO
M番地からマイクロプログラムに従って本発明のマイク
ロプロセッサを動作させる際に、MM,TPAR,SREG,DREG,Z
S,ZDをマイクロプログラムに対するパラメータとして使
用する。
第33図に示す第2連続実行命令は、マイクロプログラム
に対するパラメータ指定は行わない。
これら2つの連続実行命令で指定するマイクロROM番地
は本発明のマイクロプロセッサのマイクロROM番地の範
囲内で任意の値が許される。従ってこれらの命令により
本発明のマイクロプロセッサに対して任意のマイクロRO
M番地からのマイクロプログラムの実行を指定できる。
(3.2)「ステップ実行命令」 第34図及び第35図に示すテスト命令のフォーマットはス
テップ実行命令のフォーマットである。
ステップ実行命令は、指定されたマイクロROM番地のマ
イクロ命令に従って本発明のマイクロプロセッサを1マ
イクロステップだけ動作させる命令である。
第34図に示す第1ステップ実行命令は、指定したマイク
ロROM番地からマイクロプログラムに従って本発明のマ
イクロプロセッサを1マイクロステップ動作させる際
に、MM,TPAR,SREG,DREG,ZS,ZDをマイクロプログラムに
対するパラメータとして使用する。
第35図に示す第2ステップ実行命令は、マイクロプログ
ラムに対するパラメータ指定は行わない。
これら2つのステップ実行命令で指定するマイクロROM
番地は本発明のマイクロプロセッサのマイクロROM番地
の範囲内で任意の値が許される。従って、これらの命令
により本発明のマイクロプロセッサに対して任意のマイ
クロROM番地のマイクロ命令を1ステップだけ実行して
その状態で停止することを指定できる。
(3.3)「ロード命令」 第36図に示すテスト命令のフォーマットはテストモード
において本発明のマイクロプロセッサの外部からオペラ
ンドをロードするためのロード命令のフォーマットであ
る。
ロード命令は35ビットの命令の内の32ビットが即値オペ
ランドのフィールドであり、32ビットの値を本発明のマ
イクロプロセッサに取込むことが可能である。
(3.4)「スキャンパス命令」 第37図に示す命令のフォーマットはテストモードにおい
て本発明のマイクロプロセッサのスキャンパスを動作さ
せる命令であるスキャンパス命令のフォーマットであ
る。
スキャンパス命令により本発明のマイクロプロセッサは
内部のスキャンパスにデータをシリアルに入出力可能に
なる。
(4)「機能ブロックの構成」 第2図は本発明のマイクロプロセッサの一構成例を示す
ブロック図である。
本発明のマイクロプロセッサの内部を機能的に大きく分
けると、命令フェッチ部51,命令デコード部52,PC計算部
53,オペランドアドレス計算部54,マイクロROM部55,デー
タ演算部56,外部バスインターフェイス(I/F)部57に分
かれる。第2図ではその他に、外部へアドレスを出力す
るアドレス出力回路58と、外部との間でデータを入出力
するデータ入出力回路59と、制御信号入出力回路60とを
他の機能ブロック部と分けて示した。
(4.1)「命令フェッチ部」 命令フェッチ部51には、ブランチバッファと、命令キュ
ーとその制御部等があり、次にフェッチすべき命令のア
ドレスを決定して、ブランチバッファや外部のメモリか
らプロセッサ命令をフェッチする。また命令フェッチ部
51はブランチバッファへの命令登録も行う。
ブランチバッファは小規模であるためセレクティブキャ
ッシュとして動作する。ブランチバッファの動作の詳細
は特開昭63-567311号で詳しく述べられている。
次にフェッチすべきプロセッサ命令のアドレスは命令キ
ューに入力すべき命令のアドレスとして専用のカウンタ
で計算される。分岐あるいはジャンプが発生した際に
は、新たなプロセッサ命令のアドレスがPC計算部53また
はデータ演算部56から転送されてくる。
外部のメモリからプロセッサ命令をフェッチする際は、
フェッチすべき命令のアドレスを外部バスインターフェ
イス部57を通じてアドレス出力回路58から外部へ出力す
ることによりデータ入出力回路59から命令コードをフェ
ッチする。
バッファリングした命令コードの内、命令デコード部52
で次にデコードすべき命令コードが命令デコード部52へ
出力される。
テスト命令は命令フェッチ部51ではフェッチされない。
(4.2)「命令デコード部」 命令デコード部52では基本的に16ビット(ハーフワー
ド)単位にプロセッサ命令コードをデコードする。この
命令デコード部52には第1ハーフワードに含まれるオペ
コードをデコードするFHWデコーダ,第2,第3ハーフワ
ードに含まれるオペコードをデコードするNFHWデコー
ダ,アドレッシングモードをデコードするアドレッシン
グモードデコーダが含まれる。
更に、FHWデコーダ及びNFHWデコーダの出力を更にデコ
ードしてマイクロROMのエントリアドレスを計算する第
2デコーダ、条件分岐命令の分岐予測を行う分岐予測機
構,オペランドアドレス計算の際のパイプラインコンフ
リクトをチェックするアドレス計算コンフリクトチェッ
ク機構等も含まれる。
命令デコード部52は、命令フェッチ部51から入力された
プロセッサ命令コードを2クロックにつき0〜6バイト
デコードする。デコード結果の内、データ演算部56での
演算に関する情報がマイクロROM部55へ、オペランドア
ドレス計算に関係する情報がオペランドアドレス計算部
54へ、PC計算に関係する情報がPC計算部53へそれぞれ出
力される。
テスト命令が命令デコード部52へ入力されることはな
く、従ってデコードされることもない。
(4.3)「マイクロROM部」 マイクロROM部55にはデータ演算部56の制御及び本発明
のマイクロプロセッサ各部の診断をする種々のマイクロ
プログラムルーチンが格納されているマイクロROM,マイ
クロシーケンサ,マイクロ命令デコーダ等が含まれる。
マイクロ命令はマイクロROMから2クロックに1度読出
される。マイクロシーケンサはマイクロプログラムで示
されるシーケンス処理の他に、例外,割込及びトラップ
(この3つをEITと総称する)の処理及びテスト割込み
をハードウエア的に受付ける。またマイクロROM部はス
トアバッファの管理も行う。
プロセッサモードでは、マイクロROM部55には命令コー
ドに依存しない割込み及び演算実行結果によるフラッグ
情報と、第2デコーダの出力等の命令デコード部52から
の出力が入力される。
テストモードでは、マイクロROM部55はCPUの診断プロセ
ッサとして動作する。テストモードでは第2デコーダの
出力ではなくデータ入出力回路59からの出力が直接マイ
クロROM部55へ入力される。また、テストモードの間は
一切の割込みは受付けられない。
プロセッサモードでは、マイクロデコーダの出力は主に
データ演算部56に対して出力されるが、ジャンプ命令の
実行による他の先行処理中止情報等の一部の情報は他の
機能ブロックへも出力される。
テストモードでは、マイクロROM部55は上記のプロセッ
サモードでの出力に加えて各種の診断制御情報を本発明
のマイクロプロセッサ内部の他のブロックへ出力する。
(4.4)「オペランドアドレス計算部」 オペランドアドレス計算部54は、命令デコード部52のア
ドレスデコーダ等から出力されたオペランドアドレス計
算に関係する情報によりハードワイヤード制御される。
このオペランドアドレス計算部54ではオペランドのアド
レス計算に関する大半の処理が行われる。メモリ間接ア
ドレッシングのためのメモリアクセスのアドレス及びオ
ペランドアドレスがメモリにマップされたI/0領域に入
るか否かのチェックも行われる。
オペランドアドレス計算部54でのアドレス計算結果は外
部バスインターフェイス部57へ送られる。なお、アドレ
ス計算に必要な汎用レジスタやプログラムカウンタの値
はデーア演算部56から入力される。
メモリ間接アドレッシングを行う場合は、オペランドア
ドレス計算部54は参照すべきメモリアドレスを外部バス
インターフェイス部57を通じてアドレス出力回路58から
外部へ出力し、データ入出力部59から入力された間接ア
ドレス値を命令デコード部52をそのまま通過させてフェ
ッチする。
(4.5)「PC計算部」 PC計算部53は命令デコード部52から出力されるPC計算に
関係する情報によりハードワイヤードに制御され、命令
のPC値を計算する。本発明のマイクロプロセッサのプロ
セッサ命令は可変長命令であり、命令をデコードしてみ
ないとその命令の長さが判明しない。PC計算部53は、命
令デコード部52から出力される命令長をデコード中の命
令のPC値に加算することにより次の命令のPC値を作り出
す。
PC計算部53での計算結果は各命令のPC値として命令のデ
コード結果と共に出力される。
(4.6)「データ演算部」 データ演算部56はマイクロプログラムにより制御され、
マイクロROMの出力であるマイクロ命命に従って各命令
の機能を実現するために必要な演算をレジスタファイル
と演算器とを使用して実行する。
プロセッサ命令の演算対象となるオペランドがアドレス
あるいは即値である場合は、オペランドアドレス計算部
54で計算されたアドレスあるいは即値は外部バスインタ
ーフェイス部57を通過してデータ演算部56へ入力され
る。また、プロセッサ命令の演算対象となるオペランド
がCPU外部のメモリにあるデータである場合は、アドレ
ス計算部54で計算されたアドレスをバスインターフェイ
ス部57がアドレス出力回路58から出力することによりCP
U外部のメモリからフェッチされたたオペランドはデー
タ入出力回路59からデータ演算部56へ入力される。
テストモードでロード命令を実行した場合には、演算対
象となる即値オペランドがデータ入出力回路59からデー
タ演算部56へ入力される。
演算器としてはALU,バレルシフタ,プライオリティエン
コーダあるいはカウンタ,シフトレジスタ等がある。レ
ジスタファイルと主な演算器との間は3つのバスで結合
されており、1つのレジスタ間演算を指示する1マイク
ロ命令が2クロックサイクルで処理される。
データ演算の際に外部のメモリをアクセスする必要があ
る場合は、マイクロプログラムの指示により外部バスイ
ンターフェイス部57を通じてアドレス出力回路58からア
ドレスがCPU外部へ出力されることにより、データ入出
力回路59を通じて目的のデータがフェッチされる。
外部のメモリにデータをストアする場合は、外部バスイ
ンターフェイス部57を通じてアドレス出力回路58からア
ドレスが出力されると同時に、データ入出力回路59から
データがCPU外部へ出力される。オペランドストアを効
率的に行うためデータ演算部56には4バイトのストアバ
ッファが備えられている。
ジャンプ命令の処理,例外処理等の結果、新たな命令ア
ドレスをデータ演算部56が得た場合は、データ演算部56
はこれを命令フェッチ部51とPC計算部53とへ出力する。
(4.7)「外部バスインターフェイス部」 外部バスインターフェイス部57は、プロセッサモードに
おいては本発明のマイクロプロセッサの入出力ピンを介
しての通信を制御する。メモリのアクセスはすべてクロ
ック同期で行われ、最小2クロックサイクルで行うこと
ができる。
メモリに対するアクセス要求は命令フェッチ部51,アド
レス計算部54及びデータ演算部56から独立に生じる。外
部バスインターフェイス部57はこれらのメモリアクセス
要求を調停する。更に、メモリと本発明のマイクロプロ
セサとを結ぶデータバスサイズである32ビット(1ワー
ド)の整置境界を跨ぐメモリ番地に位置するデータのア
クセスは、このブロック内でワード環境を跨ぐことが自
動的に検知され、2回のメモリアクセスに分解して行わ
れる。
プリフェッチ対象のオペランドとストア対象のオプラン
ドとが重なる場合のコンフリクト防止処理及びストアオ
ペランドからフェッチオペランドへのバイパス処理も外
部バスインターフェイス部57が行う。
テストモードでは、外部バスインターフェイス部57は一
切のメモリアクセス要求を受付けない。テストモードで
は、データ入出力回路59とアドレス出力回路58とはマイ
クロROM部55から直接制御される。
(5)「本発明のマイクロプロセッサの入出力インター
フェイス」 第3図は本発明のマイクロプロセッサの入出力ピンを示
す模式図である。
図中、CLKはクロック入力、RESET#はリセット割込み入
力、IRL#0:2は割込み入力、IACK#は割込み応答出力、
LOC#はインターロックバスサイクルか否かを示す出
力、TEST#はテスト割込み入力、DBGINT#はデバック割
込み入力、DBGACK#はデバッグ処理中を示す出力、BC#
0:3,BS#,AS#,DS#,R/W#はバスサイクル制御出力、DC
#はバスサイクル制御入力、D0:31はデータ入出力、A0:
31はアドレス出力である。
TEST#ピン以外は本発明のマイクロプロセッサを応用シ
ステムに組込む際にも使用するが、その際に誤ってテス
ト割込みが入力されることを防ぐためにTEST#ピンは電
源に接続される。
各入出力信号は、プロセッサモードにおいては上述の如
き機能で使用される。しかしテストモードにおいては、
DBGINT#ピンがテスト命令取込み指示入力、DBGACK#ピ
ンがテスト命令実行中を示す出力、IRL#0:2ピンがテス
ト命令入力、D0:31インがテスト命令入力及びテスト結
果出力、A0:31がテスト結果出力の機能で使用される。
更にスキャン命令に対しては、D0ピンがスキャン入力、
LOCK#ピンがスキャンアウト出力の機能を有する。
各入出力ピンはCLKに対してクロック同期して信号を入
出力する。
(6)「プロセッサモードでの動作」 本発明のマイクロプロセッサはプロセッサモードではプ
ロセッサ命令をパイプライン処理して高性能に動作す
る。ここではまず、プロセッサモードにおける本発明の
マイクロプロセッサのパイプライン処理手順について説
明し、次にプロセッサモードにおける本発明のマイクロ
プロセッサの外部メモリアクセス動作の一例を説明す
る。
(6.1)「パイプライン機構」 本発明のマイクロプロセッサのパイプライン処理は第4
図に示すような構成を採っている。
命令をプリフェッチする命令フェチステージ(IFステー
ジ)31,命令をデコードするデコードステージ(Dステ
ージ)32,オペランドのアドレス計算を行うオペランド
アドレス計算ステージ(Aステージ)33,マイクロROMア
クセス(特にRステージ36と称す)及びオペランドのプ
リフェッチ(特にOFステージ37と称す)を行うオペラン
ドフェッチステージ(Fステージ)34,命令を実行する
実行ステージ(Eステージ)35の5段構成をパイプライ
ン処理の基本とする。
Eステージ35では1段のストアバッファがあるほか、高
機能命令の一部は命令実行自体をパイプライン化するた
め、実際には5段以上のパイプライン処理効果がある。
各ステージは他のステージとは独立して動作し、理論上
は5つのステージが完全に独立動作する。各ステージは
1回の処理を最小2クロックで行うことができる。従っ
て理想的には2クロックごとに次々とパイプライン処理
が進行する。
本発明のマイクロプロセッサにはメモリ−メモリ間演算
あるいはメモリ間接アドレッシング等のように1回の基
本パイプライン処理だけでは処理が行えない命令がある
が、本発明のマイクロプロセッサはこれらの処理に対し
てもなるべく均衡したパイプライン処理が行えるように
構成されている。複数のメモリオペランドを有する命令
に対しては、メモリオペランドの数に基づいて、デコー
ド段階で複数のパイプライン処理単位(ステップコー
ド)に分解してパイプライン処理が行われる。
パイプライン処理単位の分解方法に関しては特開昭63-8
9932で詳しく述べられている。
IFステージ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以外のステージで検出されたEITはそのコ
ードがEステージ35へ到達するまではEIT処理を起動し
ない。Eステージ35で処理されている命令のみが実行段
階の命令であり、IFステージ31〜Fステージ34で処理さ
れている命令は未だ実行段階に至っていないのである。
従って、Eステージ35以外で検出されたEITは検出され
たたことがステップコード中に記録されてて次のステー
ジへ伝えられるのみである。
(6.2)「各パイプラインステージの処理」 各パイプラインステージの入出力ステップコードには第
4図に示したように便宜上名前が付与されている。また
ステップコードには、オペレーションコードに関する処
理を行い、マイクロROMのエントリ番地あるいはEステ
ージ35に対するパラメータ等になる系列と、Eステージ
35のマイクロ命令に対するオペランドになる系列との2
系列がある。
(6.2.1)「命令フェッチステージ」 命令フェッチステージ(IFステージ)31はプロセッサ命
令をメモリあるいはブランチバッファからフェッチして
命令キューへ入力し、Dステージ32に対して命令コード
を出力する。命令キューの入力は整置された4バイト単
位で行われる、メモリからプロセッサ命令をフェッチす
る際は整置された4バイトにつき最小2クロックを要す
る。ブランチバッファがヒットした場合は整置された4
バイトにつき1クロックでフェッチ可能である。命令キ
ューの出力単位は2バイトごとに可変であり、2クロッ
クの間に最大6バイトまで出力できる。また分岐の直後
には、命令キューをバイパスして命令基本部2バイトを
直接命令デコーダへ転送することもできる。
ブランチバッファの命令の登録及びクリア等の制御、プ
リフェッチ先命令アドレスの管理及び命令キューの制御
もIFステージ31が行う。
(6.2.2)「命令デコードステージ」 命令デコードステージ(Dステージ)32はIFステージ31
から入力されたプロセッサ命令コードをデコードする。
デコードは命令デコード部52のFHWデコーダ,NFHWデコー
ダ,アドレッシングモードデコーダを使用して、2クロ
ック単位で1度行なわれ、1回のデコード処理で0〜6
バイトの命令コードが消費される(リターンサブルーチ
ン命令の復帰先アドレスを含むステップコードの出力処
理等では命令コードは消費されない)。1回のデコード
で、Aステージ33に対してアドレス計算情報としてのA
コード42である35ビットの制御コードと最大32ビットの
アドレス修飾情報と、オペレーションコードの中間デコ
ード結果としてのDコード41である約50ビットの制御コ
ードと8ビットのリテラル情報とが出力される。
Dステージ32では各命令のPC計算部53の制御、命令キュ
ーからの命令コード出力処理も行う。
(6.2.3)「オペランドアドレス計算ステージ」 オペランドアドレス計算ステージ(Aステージ)33での
処理は大きく2つに分かれる。
1つは命令デコード部52の第2デコーダを使用してオペ
レーションコードの後段デコードを行う処理で、他方は
オペランドアドレス計算部54でオペランドアドレスの計
算を行う処理である。
オペレーションコードの後段デコード処理はDコード41
を入力とし、レジスタ,メモリの書込み予約及びマイク
ロプログラムルーチンのエントリ番地とマイクロプログ
ラムに対するパラメータ等を含むRコード43の出力を行
う。
なお、レジスタ,メモリの書込み予約は、アドレス計算
で参照したレジスタ,メモリ内容がパイプライン上を先
行する命令で書換えられることによって誤ったアドレス
計算が行われることを防ぐためのものである。
オペランドアドレス計算処理はAコード42を入力とし、
Aコード42に従ってオペランドアドレス計算部54で加算
及びメモリ間接参照を組合わせてアドレス計算を行い、
その計算結果をFコード44として出力する。この際、ア
ドレス計算に伴うレジスタあるいはメモリの読出し時に
コンフリクトチェックが行われ、先行命令によるレジス
タあるいはメモリへの書込み処理を終了していないため
コンフリクトが指示されれば、先行命令がEステージ35
で書込み処理を終了するまで待機状態になる。
(6.2.4)「マイクロROMアクセスステージ」 オペランドフェッチステージ(Fステージ)34の処理も
大きく2つに分かれる。
一方はマイクロROMのアクセス処理であり、特にRステ
ージ36と称する。他方はオペランドプリフェッチ処理で
あり、特にOFステージ37と称する。Rステージ36とOFス
テージ37とは必ずしも同時に動作するわけではなく、メ
モリアクセス権が獲得できるか否か等に依存して、独立
して動作する。
Rステージ36の処理であるマイクロROMアクセス処理
は、Rコードに対して次のEステージでの実行に使用す
る実行制御コードであるEコードを生成するためのマイ
クロROMアクセスとマイクロ命令デコード処理である。
1つのRコードに対する処理が2つ以上のマイクロプロ
グラムステップに分解される場合、マイクロROMはEス
テージ35で使用され、次のRコード43はマイクロROMア
クセス待ちになる。Rコード43に対するマイクロROMア
クセスが行われるのはその前のEステージ35での最後の
マイクロ命令実行時である。本発明のマイクロプロセッ
サでは、大半の基本命令は1マイクロプログラムステッ
プで実行されるため、実際にはRコード43に対するマイ
クロROMアクセスが次々と行われることが多い。
(6.2.5)「オペランドフェッチステージ」 オペランドフェッチステージ(OFステージ)37はFステ
ージ34で行う上記の2の処理の内のオペランドプリフェ
ッチ処理を行う。
オペランドプリフェッチはFコード44を入力とし、フェ
ッチしたオペラドとそのアドレスとをSコード46として
出力する。1つのFコード44ではワード境界を跨いでも
よいが、4バイト以下のオペランドフェッチを指定す
る。Fコード44にはオペランドのアクセスを行うか否か
の指定も含まれており、Aステージ33で計算されたオペ
ランドアドレス自体あるいは即値をEステージ35へ転送
する場合にはオペランドプリフェッチは行われず、Eコ
ード44の内容がSコード46として転送される。プリフェ
ッチしようとするオペランドとEステージ35が書込み処
理を行おうとするオペランドとが一致する場合は、オペ
ランドプリフェッチはメモリからは行われず、バイパス
して行なわれる。
(6.2.6)「実行ステージ」 実行ステージ(Eステージ)35はEコード45及びSコー
ド46を入力として動作する。このEステージ35が命令を
実行するステージであり、Fステージ34以前のステージ
で行われた処理は総てEステージ35のための前処理であ
る。Eステージ35でジャンプ命令が実行されたり、EIT
処理が起動されたりした場合は、IFステージ31〜Fステ
ージ34までの間で行われた処理はすべて無効化される。
Eステージ35はマイクロプログラムにより制御され、R
コード45にて示されたマイクロプログラムルーチンのエ
ントリ番地からの一連のマイクロ命令を実行することに
より命令を実行する。
マイクロROMの読出しとマイクロ命令の実行とはパイプ
ライン化されて行われる。従ってマイクロプログラムで
分岐が起きた場合は、1マイクロステップの空きが発生
する。また、Eステージ35はデータ演算部56にあるスト
アバッファを利用して、4バイト以内のオペランドスト
アと次のマイクロ命令実行とをパイプライン処理するこ
ともできる。
Eステージ35ではAステージ33で行ったレジスタあるい
はメモリに対する書込み予約をオペランドの書込みの後
に解除する。
各種の割込は命令の切れ目においてEステージ35に直接
受付けられ、マイクロプログラムにより必要な処理が実
行される。その他の各種EITの処理もマイクロプログラ
ムにより行われる。
(6.3)「各パイプラインステージの状態制御」 パイプラインの各ステージは入力ラッチと出力ラッチと
を有し、他のステージとは独立して動作することを基本
とする。各ステージは1つ前に行った処理が終了し、そ
の処理結果を出力ラッチから次のステージの入力ラッチ
へ転送し、自身のステージの入力ラッチに次の処理に必
要な入力信号が総て揃えば次の処理を開始する。
つまり、各ステージは、1つ前段のステージから出力さ
れてくる次の処理に対する入力信号が総て有効となり、
現在の処理結果を後段のステージの入力ラッチへ転送し
て出力ラッチが空になると次の処理を開始する。
各ステージが動作を開始する1つ前のクロックタイミン
グで入力信号が総て揃っている必要がある。入力信号が
揃っていないと、そのステージは待ち状態(入力待ち)
になる。出力ラッチから次のステージの入力ラッチへの
データ転送に際しては、次のステージの入力ラッチが空
き状態になっている必要があり、次のステージの入力ラ
ッチが空き状態でない場合もパイプラインステージは待
ち状態(出力待ち)になる。必要なメモリアクセス権が
獲得できなかったり、処理しているメモリアクセスにウ
エイトステートが挿入されていたり、その他のパイプラ
インコンフリクトが生じた場合にも、各ステージの処理
自体が遅延する。
(6.4)「プロセッサモードでのメモリアクセス動作」 第5図にプロセッサモードでの本発明のマイクロプロセ
ッサの外部入出力動作の一例としてのメモリアクセスの
タイミングチャートを示す。
メモリアクセスは十分高速なメモリに対しては外部入力
クロックの4クロックに1度の速度で行われる。第5図
では最初にゼロウエイトのリードサイクル,次にゼロウ
エイトのライトサイクル,次に1クロックウエイトのリ
ードサイクルを示す。図中BCLKはCLKの2倍の周期のバ
スクロックであり、メモリバスサイクルの基本となる信
号である。BCLKはCLKの奇数番目パルスと偶数番目パル
スとを定める。CLに同期して動作する本発明のマイクロ
プロセッサとBCLKとの同期はリセット割込みにより行
う。
リードサイクルではアドレスが出力され、BCLKがローレ
ベルである間のCLKの立下り時にDC#がアサートされた
際のD0:31の値が取込まれてバスサイクルが終了する。
ライトサイクルではまずアドレスが出力され、1クロッ
ク遅れてデータが出力され、BCLKがローレベルである間
のCLKの立下り時にDC#がアサートされればバスサイク
ルが終了する。
このようにプロセッサモードにおいては、CLKに同期し
たバスサイクルを本発明のマイクロプロセッサが起動す
ることにより外部との入出力動作が行われる。
(7)【テストモードでの動作」 本発明のマイクロプロセッサはテストオモードにおいて
は、テスト命令に従って各機能ブロックの診断を実行す
る。
第1図はテストモード時の動作状態の概念を示す本発明
のマイクロプロセッサの一構成例のブロック図である。
テスト命令のマイクロROM番地フィールドあるいはRコ
ード43のマイクロROM番地を取込み、その番地からのマ
イクロプログラムのシーケンスを制御するマイクロシー
ケンス制御部10,マイクロプログラムの番地を管理する
マイクロプログラムカウンタ(μPC)11,マイクロプロ
グラムを記憶するマイクロROM12,各マイクロ命令のデコ
ード及びその実行を制御するマイクロ命令実行制御部1
3,テスト命令の一部または命令デコード部の出力である
Rコード43をマイクロシーケンス制御部へ転送するRコ
ードラッチ部14,Aコード42をラッチしたり圧縮して蓄積
するAコードラッチ部15,命令フェッチ部51,命令デコー
ド部52,オペランドアドレス計算部54,データ演算部56,
テスト命令の上位3ビットをマイクロシーケンス制御部
10へ入力するIRL#0:2ピン16,テスト命令の取込みを指
示するDBGINT#ピン7,テストモードにおいてテスト命令
実行中を示すDBGACK#ピン18,テスト命令の下位32ビッ
トをデータ入出力回路59からバイパスバス23を通じてR
コードラッチ部14とマイクロシーケンス制御部10とへ転
送したりまた命令フェッチ部51のテスト結果をデータ入
出力回路59へ転送するDDバス19,オペランドアドレス計
算部54あるいはデータ演算部56のテスト結果をアドレス
出力回路58へ転送するAAバス20,データ入出力回路59か
ら1ビットのスキャンインデータをマイクロROM12の出
力部の第1リニアフィードバックシフトレジスタLFSR24
へ転送するD0ピン21,スキャンアウトデータをAコード
ラッチ部15の第3リニアフィードバックシフトレジスタ
LFSR26からマイクロプロセッサ外部へ出力するLOC#ピ
ン22等にて構成されている。
Rコードラッチ部14には第2リニアフィードバックシフ
トレジスタLFSR25があり、データ演算部56には第4リニ
アフィードバックシフトレジスタLFSR27がある。命令デ
コード部52には自己診断時に使用するカウンタ28があ
る。
テストモードでは、入力されたテスト命令に従いマイク
ロシーケンス制御部10がマイクロROM12をアクセスして
マイクロプログラムを実行することによりマイクロプロ
セッサの各部をテストする。テスト動作に必要なデータ
はロード命令によりデータ演算部56のDDレジスタ29へ取
込まれる。
命令フェッチ部51はマイクロ命令実行制御部13の指示に
従ってテスト動作を行い、その結果をDDバス17,データ
入出力回路59を介してマイクロプロセッサ外部へ出力す
る。
命令デコード部52はマイクロ命令実行制御部13の指示に
従ってテスト動作を行い、その結果をRコードラッチ部
14とAコードラッチ部15とへ出力する。
オペランドアドレス計算部54はマイクロ命令実行制御部
13の指示に従い、データ演算部56のレジスタファイルか
ら転送されるデータを使用してテスト動作を行い、その
結果をAAバス20,アドレス出力回路58を介してマイクロ
プロセッサ外部へ出力する。
データ演算部56はマイクロ命令実行制御部13の指示に従
いテスト動作を行う。テスト動作に必要なデータはロー
ド命令によりマイクロプロセッサ外部からDDレジスタ29
へ取込むこともできる。テスト動作の中間演算結果はレ
ジスタファイルに保存され、テスト結果はAAバス20,ア
ドレス出力回路58を介してマイクロプロセッサ外部へ出
力される。
(7.1)「テスト命令の取込み」 テスト命令は命令フェッチ部51及び命令デコード部52を
介することなくバイパスバス23を通じて直接Rコードラ
ッチ部14とマイクロシーケンス制御部10とへ取込まれ
る。ロード命令とスキャンパス命令以外のテスト命令の
各フィールドはプロセッサモードでプロセッサ命令をデ
コードして得られたRコード43と類似のフォーマットと
なっており、テスト命令の取込みはRコード43を直接書
換える形態をとる。テスト命令で指定されないRコード
43のフィールドはテスト命令取込み前にRコードラッチ
部14に保持されていた内容をそのまま保持する。マイク
ロROM番地はRコード43を書換えるのではなく、直接マ
イクロシーケンス制御部10へ入力される。
テスト命令の取込みではメモリサイクルは起動されな
い。テスト命令の書込みのタイミングをテスト結果の出
力タイミングと共に第6図のタイミングチャートに示
す。
DBGACK#がネゲートされているとき、IRL0:2ピン16とD
0:31ピン21とにテスト命令のビットパタンを入力しなが
らBCLKとCLKの両方が立上がるタイミングに同期してDBG
INT#ピン17をアサートすることによりテスト命令が取
込まれる。
(7.1.1)「Rコードのフォーマットとテスト命令」 第38図はRコード43のフォーマットの模式図である。R
コード43は32ビット長であり、各フィールドの意味は以
下の通りである。
OP1:演算に関する第1のパラメータを指定する部分 MW:演算結果出力が外部のメモリか否かを指定する部分 OP2:演算に関する第2のパラメータを指定する部分 RS:ソースオペランドのレジスタ位置を指定する部分 RD:デスティネーションオペランドレジスタ位置を指定
する部分 WS:ソースオペランドサイズを指定する部分 WD:デスティネーションオペランドサイズを指定する部
分 また、マイクロROM番地を指定するフィールドは8ビッ
トであり、マイクロシーケンス制御部10へ入力される際
に下位にゼロが4ビット拡張される。本発明のマイクロ
プロセッサのマイクロプログラムは1ワードが112ビッ
トのマイクロ命令でコーディングされており、4Kワード
の空間に格納されている。各Rコード43で指定される各
マイクロプログラムルーチンのエントリ番地の下位4ビ
ットは必ずゼロである。従ってRコード43で指定可能な
マイクロプログラムルーチンのエントリは256個であ
る。
第32〜37図に示すテスト命令のフォーマットの内、Rコ
ード43を書換える命令は第32図に示す第1連続実行命令
と第34図に示す第1ステップ実行命令とである。この2
つの命令が入力されるとRコード43の内のOP1フィール
ドとマイクロROM番地を指定するフィールド以外が書換
えられる。MWフィールドはMMフィールドに、OP2フィー
ルドはTPARフィールドに、RSフィールドはSREGフィール
ドに、RDフィールドはDREGフィールドに、WSフィールド
はZSフィールドに、WDフィールドはZDフィールドにそれ
ぞれ書換えられる。OP1フィールドとマイクロROM番地の
上位8ビットを示すフィールドはテスト命令取込み前の
値のまま保持される。
第39図に具体的なプロセッサ命令のRコード43の例を示
す。各命令の意味は以下の通りである。
MOV.W R2 ,MEM:レジスタ2から4バイトのデータをメモ
リへ転送する。
CMP.B R8 ,R0:レジスタ8とレジスタ0の各1バイトの
データを比較する。
ADD.W MEM,R2:レジスタ2の4バイトのデータにメモリ
4の4バイトのデータを加算してレジスタ2に格納す
る。
SHA.W #2 ,R0:レジスタ0の4バイトのデータを2ビッ
ト算術シフトする。
MUL.H R7,R15:レジスタ7とレジスタ15の各2バイトの
データを乗算してレジスタ15に格納する。
JMP a(R3):レジスタ3の4バイトのデータをアドレ
スとする番地へジャンプする。
本発明のマイクロプロセッサではMOV.WとADD.Wとは共に
同じマイクロプログラムで処理されるためマイクロプロ
グラムルーチンを共有しており、マイクロROM番地は互
いに等しい。また、各命令のオペランドのレジスタ番号
及びオペランドサイズがRコード43の種々のフィールド
にマイクロプログラムに対するパラメータとして反映さ
れている。
第40図に具体的なテスト命令の例を示す。各命令の意味
は以下の通りである。
TESTALUOPE:ALUの各種演算機能をテストする第2連続実
行命令。
TESTAADD:オペランドアドレス計算部をテストする第2
連続実行命令。
TCMP.B R8,R0:CMP.B R8.R0と同じマイクロプログラムル
ーチンを実行する第1連続実行命令。
S3MUL.H R7,R15:MUL.H R7,R15のマイクロプログラムル
ーチンのエントリ番地から3番地先のマイクロ命令を1
つだけ実行する第1ステップ実行命令。
OUTPUT R3:レジスタ3の4バイトのデータをAAバス20と
アドレス出力回路58とを通じてマイクロプロセッサ外部
へ出力する第1連続実行命令。
INPUT R5:データ演算部56中のDDレジスタ29の4バイト
のデータをレジスタ5へ転送する第1連続実行命令。
テスト命令ではRコード43のOP1を変更することができ
ないため、上述のテスト命令の内、TCMP.WあるいはS3MU
L.Hの命令を実行する前に、OP1が“0000"になるプロセ
ッサ命令をプロセッサモードで実行しておく必要があ
る。しかし、本発明のマイクロプロセッサではテスト命
令の下位32ビットの各ビットの設定を自由に行い得るこ
とにより、テストモードでマイクロプロセッサの各部分
を診断する診断専用のマイクロプログラムルーチンもプ
ロセッサ命令のマイクロプログラムルーチンもテスト命
令で実行できる。
(7.2)「テスト結果の出力」 本発明のマイクロプロセッサがテストモードにおいてテ
スト結果を出力するタイミングをテスト命令の取込みタ
イミングと共に第6図のタイミングチャートに示す。
テストモードでは、アドレス出力回路58はAAバス20の内
容で常時出力ピンA0:31を駆動しており、メモリサイク
ルは起動されない。テスト命令に従ってAAバス20へテス
ト結果が出力されるとその値が出力ピンA0:31へ出力さ
れる。また、命令フェッチ部51がテストされる場合はテ
スト結果をDDバス19とデータ入出力回路59とを介してマ
イクロプロセッサ外部へ出力する。この際には出力ピン
A0:31でテスト結果を出力する場合と同じく、DBGACK#
ピン18のアサート期間中、データ入出力回路59はDDバス
19の内容で入出力ピンD0:31を駆動する。この場合もメ
モリサイクルは起動されない。
(7.3)「ステップ実行命令の動作」 本発明のマイクロプロセッサでは、ステップ実行命令を
実行させると、マイクロ命令が1命令だけ実行され、次
のテスト命令を待機する状態となる。本発明のマイクロ
プロセッサではステップ実行命令を実行する際は、マイ
クロ命令の一部でありマイクロプログラムの実行シーケ
ンスを制御するシーケンスフィールドをマイクロシーケ
ンサへ転送する部分をハードウエア的にステップ実行命
令の実行状態とする。
第48図は本発明のマイクロプロセッサのマイクロ命令の
フィールド分割を示す模式図である。
本発明のマイクロプロセッサのマイクロ命令は第48図に
示すように10種類のフィールドに分割される。各フィー
ルドはマイクロ命令デコーダによりデコードされ、マイ
クロ命令で指定される全制御線と1対1に対応する信号
となる。マイクロプログラム実行シーケンスを制御する
フィールドは6ビットであり、ビットパタンにより第49
図に示すような制御を行う。
第50図はステップ実行命令を実行させるための制御回路
の構成を示す回路図である。
図中、61はマイクロROM12から出力されたマイクロ命令
の6ビットのシーケンスフィールド66をラッチするシー
ケンスフィールド出力ラッチである。
62はIRL0:2ピン16から取込まれたテスト命令の上位3ビ
ットをラッチするIRL入力ラッチである。
63はIRL入力ラッチ62の出力65に従ってシーケンスフィ
ールド出力ラッチ61の出力67を次に実行すべきマイクロ
命令の番地を決定するマイクロシーケンサ64へそのまま
信号線68を介して出力するか、あるいは強制的に「0101
11」にした上で信号線68を介して出力するかを制御する
マイクロシーケンス変更回路である。
ステップ実行命令では第34図及び第35図に示すように、
命令の上位2ビットが「11」であり、このときマイクロ
シーケンス変更回路63はシーケンスフィールド出力ラッ
チ61の出力67の値に拘わらず「010111」を記号線68へ出
力する。第49図に示すように「010111」はマイクロプロ
グラムルーチンの終了を示すビットパタンであり、マイ
クロシーケンサ64はマイクロプログラムが終了して次の
テスト命令の入力待ち状態となる。
シーケンスフィールド出力ラッチ61の出力67はデータ演
算部56へも供給されている。データ演算部56はこの信号
に従って作業用スタックポインタ値の正規スタックポイ
ンタへの転送、あるいは作業用ステータスフラッグの正
規プログラムステータスレジスタへの転送等を行う。こ
のため、データ演算部56へ供給されるシーケンスフィー
ルド出力ラッチ61の出力信号は本来のマイクロ命令で指
定されたビットパタンである出力67とする。これにより
データ演算部56はステップ実行命令を実行する場合もそ
の他の場合と同じ動作をする。
(7.4)「自己診断機能」 本発明のマイクロプロセッサではテスト命令で起動する
診断用マイクロプログラムルーチン以外にも、マイクロ
プロセッサがリセットされた場合に、各部を自己診断す
るマイロプログラムルーチンが内蔵されている。本発明
のマイクロプロセッサではマイクロROM12,命令デコード
部52,オペランドアドレス計算部54,データ演算部56の各
部を自己診断する。第41図に本発明のマイクロプロセッ
サの自己診断用のマイクロプログラム全体の処理手順の
フローチャートを示す。
自己診断は本発明のマイクロプロセッサをテストモード
にして実行される。本発明のマイクロプロセッサでは自
己診断のために2つのカウンタと4つのリニアフィード
バックシフトレジスタとが内蔵されている。
カウンタは自己診断のためのデータ発生器として動作
し、リニアフィードバックシフトレジスタは疑似乱数発
生器またはデータ圧縮器として動作する。リニアフィー
ドバックシフトレジスタを疑似乱数発生器あるいはデー
タ圧縮器として使用する手法,リニアフィードバックシ
フトレジスタを使用してLSIに自己診断機能を持たせる
手法については田中、「テスタの手を借りずにテストが
できる論理LSI」、日経エレクトロニクス、1983年6月2
0号、pp.124-133で述べられている。
まず、プロセッサ各部の初期設定のためのリセットシー
ケンスのマイクロプログラムの最後でプロセッサモード
からテストモードに遷移し、マイクロROM12のテストシ
ーケンスの先頭へジャンプする。これにより、マイクロ
ROM12の自己診断が実行される。マイロROM12の自己診断
の結果が0番の汎用レジスタのビット31に反映された
後、命令デコード部52を診断するためのテストシーケン
スの先頭へジャンプする。
命令デコード部52の自己診断が実行され、その結果が0
番の汎用レジスタのビット30に反映された後、オペラン
ドアドレス計算部54を診断するためのテストシーケンス
の先頭へジャンプする。
オペランドアドレス計算部54の自己診断が実行され、そ
の結果が0番の汎用レジスタのビット29に反映された
後、データ演算部56を診断するためのテストシーケンス
の先頭へジャンプする。
データ演算部56の自己診断が実行され、その結果が0番
の汎用レジスタのビット28に反映された後、テストモー
ドからプロセッサモードへ遷移する。
(7.4.1)「マイクロROMの自己診断機能」 本発明のマイクロプロセッサでは自己診断時に、マイク
ロプログラムカウンタ11をゼロから順番にカウントアッ
プしてマイクロROM12中のマイクロ命令を順次的に読出
し、それをマイクロROM12の出力部にある第1リニアフ
ィードバックシフトレジスタLFSR24でデータ圧縮する。
データ圧縮結果が特定の値になったか否かは1ビットで
示され、それをマイクロプログラムで読取る。本発明の
マイクロプロセッサのマイクロROM1の自己診断用マイク
ロプログラムルーチンのフローチャートを第42図に示
す。
まず、プロセッサ各部の初期設定のためのリセットシー
ケンスのマイクロプログラムの最後でプロセッサモード
からテストモードに遷移し、マイクロROM12のテストシ
ーケンスの先頭へジャンプする。そして、マイクロプロ
グラムカウンタ11に“0"がセットされ、第1リニアフィ
ードバックシフトレジスタLFSR24が初期化される。
次にマイクロプログラムカウンタ11が順次インクリメン
トされ、その時点のマイクロROM12の出力が第1リニア
フィードバックシフトレジスタLFSR24でデータ圧縮され
て蓄積される。
圧縮されたデータの最終結果が総て“0"であるか否かを
示す1ビットがチェックされ、YESであれば0番の汎用
レジスタのビット31が“0"にされ、NOであれば0番の汎
用レジスタのビット31が“1"にされる。この後、命令デ
コード部52のテストシーケンスへジャンプする。
また、マイクロROM12の出力部の第1リニアフィードバ
ックシフトレジスタLFSR24には1つのマイクロ番地
(H′9FF番地:H′は16進数を表す)が割当てられてお
り、H′9FF番地のマイクロ命令をステップ実行命令で
実行すると第1リニアフィードバックシフトレジスタLF
SR24の内容がマイクロ命令として実行される。
(7.4.2)「命令デコード部の自己診断機能」 本発明のマイクロプロセッサの命令デコード部52は入力
部に17ビットのカウンタ28を有し、Rコードラッチ部14
とAコードラッチ部15とにデータ圧縮器として第2,第3
リニアフィードバックシフトレジスタLFSR25,26を有す
る。リセット時にはカウンタ28から17ビットのビットパ
タンを「B′00000 0000 0000 0000」から「B′11111
1111 1111 1111」まですべての種類発生してそのビット
パタンをデコードし、デコード結果を上記の2つのデー
タ圧縮器としての第2,第3リニアフィードバックシフト
レジスタLFSR25,26へ入力する。データ圧縮結果が特定
の値になったか否かは各1ビットで示され、マイクロプ
ログラムでそれを読取ることができる。本発明のマイク
ロプロセッサの命令デコード部52の自己診断用マイクロ
プログラムルーチンのフローチャートを第43図に示す。
まず、第2,第3リニアフィードバックシフトレジスタLF
SR25,26が初期化された後、命令デコード部52の入力部
の17ビットカウンタ28が“0"に初期化される。
カウンタ28が順次インクリメントされ、その時点の命令
デコード部52の出力を第2リニアフィードバックシフト
レジスタLFSR25と第3リニアフィードバックシフトレジ
スタLFSR26とでデータ圧縮して蓄積する。
圧縮されたデータの最終結果が双方共総て“0"であるか
否かがチェックされ、YESであれば0番の汎用レジスタ
のビット30が“0"にされ、NOであれば0番の汎用レジス
タのビット30が“1"にされる。この後、オペランドアド
レス計算部54のテストシーケンスへジャンプする。
(7.4.3)「データ演算部とオペランドアドレス計算部
の自己診断機能」 データ演算部56とオペランドアドレス計算部54との自己
診断時にはマイクロプロセッサ外部からのデータ入力と
マイクロプロセッサ外部のへデータ出力は行われない。
データ演算部56とオペランドアドレス計算部54との自己
診断に使用するデータはデータ演算部にある疑似乱数発
生器兼データ圧縮器である第4リニアフィードバックシ
フトレジスタLFSR27または定数ROMあるいはマイクロ命
令中のリテラルフィールドから得る。
自己診断結果は第4リニアフィードバックシフトレジス
タLFSR27あるいはレジスタへ出力される。自己診断の結
果、マイクロプロセッサに不具合があるか否かの判断は
リセット後に汎用レジスタの内容をプロセッサ命令で読
出すことにより行う。
本発明のマイクロプロセッサのマイクロプログラムでは
第4リニアフィードバックシフトレジスタLFSR27は1つ
のワーキングレジスタとして指定することが可能であ
り、乱数発生器として第4リニアフィードバックシフト
レジスタLFSR27の内容を読出すこと及びデータ圧縮器と
して第4リニアフィードバックシフトレジスタLFSR27へ
データを書込むことをマイクロプログラムで指定するこ
とが可能である。
(7.5)「スキャンパス」 本発明のマイクロプロセッサでは、第1図に示す様に、
マイクロROM12の出力部とRコードラッチ部14とAコー
ドラッチ部15の3つのリニアフィードバックレジスタLF
SR24,25,26の各シフトパスとが結合されていて1つのス
キャンパスして構成されている。
スキャンパス命令により、これらのリニアフィードバッ
クシフトレジスタLFSR24,25,26に任意の値を設定するこ
と及びこれらのリニアフィードバックシフトレジスタLF
SR24,25,26の値を読出すことが可能である。本発明のマ
イクロプロセッサではこのスキャンパス命令でOP1フィ
ールドを含む全Rコードフィールドの書換えを行う。ま
た、スキャンパス命令では、Rコード43及びAコード42
に必要な値をセットすることにより故障原因の解明を行
い、故障する可能性が高い部分と低い部分との特定等を
行う。
本発明のマイクロプロセッサは上述のスキャンパスを用
いて外部から任意のマイクロ命令を第1リニアフィード
バックシフトレジスタLFSR24にセットし、それを実行す
ることができる。
ここで、スキャンパスにより外部から入力したマイクロ
命令を実行する手順を説明する。第52図は第1リニアフ
ィードバックシフトレジスタLFSR24を含むマイクロROM1
2の構成を示すブロック図である。
マイクロプログラムカウンタ11から入力されたアドレス
70はアドレスデコーダ71でデコードされ、ROMアレイ72
に記憶されているマイクロ命令がROMアレイ72の出力信
号76として第1リニアフィードバックシフトレジスタLF
SR24へ入力され、信号75が“1"になるタイミングで第1
リニアフィードバックシフトレジスタLFSR24の内容が書
換わり、マイクロROM12の出力信号としてマイクロ命令
実行制御部13へ出力される。
アドレスデコーダ71はアドレス70が16進数で9FFである
場合に第1LFSR内容書換え禁止信号73を“1"にし、その
他のアドレスである場合は同信号73を“0"にする。従っ
て第1リニアフィードバックシフトレジスタLFSR24の入
力指示信号74により出力信号76の取込みが指示されても
アドレス70が16進数で9FFであれば信号75は“0"を維持
し、第1リニアフィードバックシフトレジスタLFSR24の
内容は書変えられない。
従って、スキャンパス命令により実行したいマイクロ命
令を第1リニアフィードバックシフトレジスタLFSR24に
セットし、次にマイクロROM番地が16進数で9FFのマイク
ロ命令を実行させるためのテスト命令を実行すると、第
1リニアフィードバックシフトレジスタLFSR24にスキャ
ンインされたマイクロ命令が実行される。
(7.6)「テストモードとプロセッサモードの切換え」 本発明のマイクロプロセッサではテストモードとプロセ
ッサモードの切換えをマイクロプロセッサをリセットす
ることなしに行い得るように構成してある このため、本発明のマイクロプロセッサをLSIテスタで
テストする場合はテスト命令とプロセッサ命令を組合わ
せて使用する。テストモードとプロセッサモードとの切
換えの状態を概念図として第51図に示す。
プロセッサモードからテストモードへの遷移はテスト割
込みにより可能であり、テストモードからプロセッサモ
ードへの遷移は専用のテスト命令(EOT命令)の実行に
より可能である (7.6.1)「テストモードへの遷移」 プロセッサモードからテストモードへの遷移は専用の割
込みであるテスト割込みにより可能である。
テスト割込みはTEST#ピンのアサートにより受付けられ
る。なお、このテスト割込みはプロセッサ命令の切れ目
で受付けられるマスク不可能割込みである。
本発明のマイクロプロセッサでは、テスト割込みを受付
けた場合には、各種のレジスタやラッチの内容をテスト
割込みを受付けた直前に実行した命令の終了状態のまま
保持してプロセッサモードからテストモードに遷移し、
テスト命令入力待ち状態となる。
(7.6.2)「テストモードへの遷移」 テストモードからプロセッサモードへの遷移はは専用の
テスト命令(EOT命令)の実行により可能である。
本発明のマイクロプロセサでは、セストモードでEOT命
令を実行した場合には、各種のレジスタ及びラッチの内
容がEOT命令を実行する前の値に保持されたままでテス
トモードからプロセッサモードに遷移し、特定の作業用
レジスタ(EBレジスタ)の内容をPC値としてそのPC値か
らプロセッサ命令の実行が開始される。EBレジスタはマ
イクロプログラムから操作可能なレジスタであり、EOT
命令の実行直前にEBレジスタの値をテスト命令でセット
することにより、プロセッサモードに遷移した後、任意
のPC値からプロセッサ命令を実行することが可能であ
る。
(7.7)「各部のテスト動作」 ここで、本発明のマイクロプロセッサを診断するための
テスト動作の例を述べる。このテスト動作は例えばLSI
テスタを用いて容易に行うことができる。
(7.7.1)「マイクロROM部」 マイクロROM部55のテストはリセット時の自己診断によ
るマイクロROM12のテストと、プロセッサモードでの各
命令の実行及びテストモードでの各テスト命令の実行に
より行われる。
(7.7.2)「命令フェッチ部」 命令フェッチ部51には命令キューとブランチバッファと
がある。この2つは専用のテストシーケンスによりテス
トモードとプロセッサモードとを組合わせてテストす
る。命令フェッチ部51のテスト動作のフローチャートを
第44図に示す。
命令キュー及びブランチバッファは一種のRAMであり、
第44図のフローチャートに従ってテストシーケンスを書
込むデータ値を種々(オール“1",オール“0"あるいは
ランダム数等)に変化させて実行することによりテスト
する。
まず、テスト割込みによりプロセッサモードからテスト
モードへ遷移する。テスト命令により命令フェッチ部51
を命令キュー出力停止状態とする。次に、ロード命令に
より命令キューのテストのために命令キューに書込む4
ワードのデータの先頭番地AをDDレジスタ29に書込む。
テスト命令により番地AをEBレジスタへ転送する。次
に、EOT命令を実行し、命令フェッチ部51を命令キュー
出力停止状態のままでプロセッサモードへ遷移させる。
プロセッサモードで命令フェッチ部51は番地Aから4ワ
ードのデータをフェッチする。これにより命令キューが
フル状態になる。
再度テスト割込みによりテストモードへ遷移し、テスト
命令により命令キューの内容をDDバス19とデータ入出力
回路59とを通じてプロセッサ外部へ読出す。テスト命令
により命令フェッチ部51の命令キュー出力停止状態を解
除する。更に、テスト命令により命令フェッチ部51を命
令キュー常時空状態にする。
ロード命令によりブランチバッファのテストのためにブ
ランチバッファに書込まれるデータの先頭番地BをDDレ
ジスタ29に書込む。テスト命令により番地BをEBレジス
タへ転送する。次に、EOT命令を実行し、命令フェッチ
部51を命令キュー常時空状態のままでプロセッサモード
に遷移させる。
命令フェッチ部51がB番地から256バイトのデータをフ
ェッチし、ブランチバッファの全エントリにテストデー
タを書込む。
再度テスト割込みによりテストモードへ遷移し、テスト
命令によりブランチバッファの内容をDDバス19とデータ
入出力回路59とを通じてプロセッサ外部へ読出す。テス
ト命令により命令フェッチ部51の命令キュー常時空状態
を解除する。更に、EOT命令によりプロセッサへ遷移す
る。
(7.7.3)「命令デコード部」 命令デコード部52のテストはリセット時の自己診断によ
る全ビットパタンに対するデコードとプロセッサモード
での各種プロセッサ命令の実行とにより実行される。
命令デコード部52は故障がある場合の故障場所の特定あ
るいはより完全なテストを行う場合には、Rコードラッ
チ部14とAコードラッチ部15とにある第2及び第3リニ
アフィードバックシフトレジスタLFSR25,26の値をスキ
ャンパス命令で読出す。
(7.7.4)「オペランドアドレス計算部」 オペランドアドレス計算部54はリセット時の自己診断に
よる簡易テストの他、テストモード及びプロセッサモー
ドでの詳細テストも行える。
テストモードではスキャンパス命令を用いてAコードラ
ッチ部15の第3リニアフィードバックシフトレジスタLF
SR26に種々のAコード42の値をセットすることにより、
非常に詳細なテストや故障の特定が行える。
テストモードとプロセッサモードとを組合わせて行われ
るオペランドアドレス計算部54のテスト動作の一例のフ
ローチャートを第45図に示す。
Aコード45でメモリ間接アドレッシングを指定すること
によりオペランドアドレス計算部54のテスト結果をAAバ
ス20,アドレス出力回路58を介して外部へ読出すことが
できる。第45図の動作を種々のデータについて行うこと
によりオペランドアドレス計算部54の詳細なテストが行
える。
まず、プロセッサモードにおいてデータ演算部56の汎用
レジスタにテスト用データをロードした後、テスト割込
みによりテストモードに遷移する。
データ演算部56の汎用レジスタからオペランドアドレス
計算部54のベースアドレスレジスタにベースアドレス値
をロードするための制御コードを含むAコード42を、ス
キャンパスにより第3リニアフィードバックシフトレジ
スタLFSR26にセットする。
Aコードに従ってオペランドアドレス計算部54を動作さ
せるテスト命令を実行する。
次に、データ演算部56の汎用レジスタからオペランドア
ドレス計算部54のインデックスアドレスレジスタにイン
デックスアドレス値をロードし、ベースアドレス値とイ
ンデックスアドレス値とディスプレースメント値とを3
値加算し、その加算結果によりメモリ間接アドレッシン
グをする制御コードとディスプレースメント値を含むA
コード42とをスキャンパス命令により第3リニアフィー
ドバックシフトレジスタLFSR26にセットする。
Aコード42に従ってオペランドアドレス計算部54を動作
させるテスト命令を実行し、3値加算結果をAAバス20,
アドレス出力回路58を通じて外部へ出力する。この後、
EOT命令を実行してプロセッサモードへ遷移する。
(7.7.5)「データ演算部」 データ演算部56はリセット時の自己診断による簡易テス
トの他、テストモード及びプロセッサモードでの詳細テ
ストも行える。
テストモードではスキャンパス命令を用いてRコードラ
ッチ部14の第2リニアフィードバックシフトレジスタLF
SR25に種々のRコード43の値をセットすることにより、
非常に詳細なテスト及び故障の特定が行われる。データ
演算部56の故障原因を特定する場合には外部からスキャ
ンパス命令で任意のマイクロ命令を第1リニアフィード
バックシフトレジスタLFSR24にセットしてこの命令を実
行させることにより、マイクロROM12には存在しない種
々のマイクロ命令を実行させてより自由度の高いテスト
を実行する。第1リニアフィードバックシフトレジスタ
LFSR24にセットしたマイクロ命令を用いたデータ演算部
56の故障原因特定動作の一例のフローチャートを第46図
に示す。
まず、プロセッサモードにおいてデータ演算部56の汎用
レジスタにテスト用データをロードする。次に、テスト
割込みによりテストモードに遷移する。
スキャンパス命令により第1リニアフィードバックシフ
トレジスタLFSR24に故障診断用マイクロ命令M1をセット
する。H′9FF(H′は16進数を表す)番地のマイクロ
命令を実行するステップ実行命令によりマイクロ命令M1
を実行する。
スキャンパス命令により第1リニアフィードバークシフ
トレジスタLFSR24に故障診断用マイクロ命令M2をセット
する。H′9FF番地のマイクロ命令を実行するステップ
実行命令によりマイクロ命令M2を実行する。この結果は
汎用レジスタに保持される。
テスト命令により、汎用レジスタに保持されているマイ
クロ命令M2の実行結果をプロセッサ外部へ読出す。この
後、EOT命令を実行してプロセッサモードへ遷移する。
次に、ステップ実行命令を使用してマイクロプログラム
ルーチンをステップ実行し、データ演算部の故障原因を
特定する動作の一例のフローチャートを第47図に示す。
まず、プロセッサモードにおいてデータ演算部56の汎用
レジスタにテストデータをロードする。
次に、テスト割込みによりテストモードに遷移させ、乗
算を実行するためのマイクロプログラムルーチンの第1
のステップをステップ実行命令により実行する。テスト
命令によりALU出力ラッチの中間結果を外部へ読出す。
次に、乗算を実行するためのマイクロプログラムルーチ
ンの第2のステップをステップ実行命令により実行す
る。テスト命令によりALU出力ラッチの中間結果を外部
へ読出す。
上述の処理を反復する。
乗算を実行するためのマイクロプログラムルーチンの最
終ステップをステップ実行命令により実行する。
テスト命令により乗算結果を外部へ読出す。この後、EO
T命令を実行してプロセッサモードへ遷移する。
この例では演算を行うマイクロプログラムルーチンを1
ステップずつ実行して中間結果を順次マイクロプロセッ
サ外部へ読出している。乗算を行うマイクロプログラム
ルーチンが正しく動作しない故障が生じている場合、こ
のテスト方法によりALUでの途中の演算に故障があるの
か、マイクロプログラムルーチンの最終ステップを実行
する際に演算結果を転送する回路に故障があるのか等、
故障原因の究明が容易に行える。
(8)「本発明の他の実施例」 上述の実施例ではマイクロプログラム制御のマイクロプ
ロセッサについて述べているが、本発明はマイクロプロ
グラム制御でないマイクロプロセッサにも適用すること
が可能である。
また、上述の実施例ではテスト命令により容易にテスト
可能な機能ブロックをマイクロプロセッサを構成する一
部の機能ブロックに限っているが、PC演算部53等他の機
能ブロックを診断するテスト命令をサポートすることも
勿論可能である。また、テスト命令の種類及びフォーマ
ットを種々追加することも勿論可能である。
[発明の効果] 以上のように本発明のマイクロプロセッサでは、パイプ
ライン処理により高速処理を行う第1の命令体系として
の通常のプロセッサ命令群の他にマイクロプロセッサを
診断する第2の命令体系としてのテスト命令群を有して
いる。そして、テストモードで種々のテスト命令を実行
することを可能に構成しているため、マイクロプロセッ
サのテストプログラム設計が容易になり、従来のマイク
ロプロセッサに比してテストプログラム設計人工が大幅
に削減される。
プロセッサモードからテストモードへの遷移は専用の外
部割込みであるテスト割込みにより実行されるため、任
意の命令の切れ目においてテストモードを起動すること
が可能である。そして、この際にはマイクロプロセッサ
により操作される種々のレジスタの内容が保持された状
態でテストモードが起動される。従って、プロセッサモ
ードにおいてプロセッサによりセットされている種々の
レジスタのデータをテストモードにおいて使用すること
が可能である。また、マイクロプロセッサが応用システ
ムに組込まれた後は、テスト割込みピン(TEST#)は電
源電位に固定されるので、ソフトウェアのバグ等の影響
により誤ってテストモードへ遷移する等の事態は回避さ
れる。
テストモードからプロセッサモードヘの遷移は専用のテ
スト命令(EOT命令)により実行される。この際、マイ
クロプロセッサの種々のレジスタの内容は保持されたま
まであるので、テストモードにおいてプロセッサの各部
を診断した結果をプロセッサモードに遷移後にプロセッ
サ命令により操作することも可能になる。
従って、本発明のマイクロプロセッサでは、テストモー
ドとプロセッサモード相互間をリセット無しで自由に行
き来可能なので、プロセッサ命令とテスト命令とを任意
に組合わせてテストプログラムを設計することが出来、
テストプログラム設計に要する人工を大幅に削減するこ
とが可能になる。就中、マイクロプロセッサがLSIのマ
スクパタン設計のマージン不足に起因して故障を起こす
確率が高い部分を含むために歩留りが低い場合にも、故
障発生の状況に応じてテストプログラムを設計すること
が容易で且つ短時間に少ない人工で種々のテストプログ
ラムが設計出来るので、故障発生場所の所定作業が高効
率で行える。
【図面の簡単な説明】
第1図は本発明のマイクロプロセッサのテストモードで
の動作状態の概念を示すブロック図、 第2図は本発明のマイクロプロセッサの一構成例を示す
ブロック図、 第3図は本発明のマイクロプロセッサの外部ピンを示す
模式図、 第4図は本発明のマイクロプロセッサのパイプライン処
理の概要を示す模式図、 第5図は本発明のマイクロプロセッサの基本メモリアク
セスサイクルのタイミングチャート、 第6図は本発明のマイクロプロセッサのテスト命令の取
込みとテスト結果の出力状態を示すタイミングチャー
ト、 第7図は従来のマイクロプロセッサの一構成例を示すブ
ロック図、 第8図は本発明のマイクロプロセッサのメモリ上での命
令の並び方を示す模式図、 第9図から第17図は本発明のマイクロプロセッサのプロ
セッサ命令のフォーマットを示す模式図、 第18図から第31図は本発明のマイクロプロセッサのプロ
セッサ命令のアドレッシングモードを説明するための模
式図、 第32図から第37図は本発明のマイクロプロセッサのテス
ト命令のフォーマットを示す模式図、 第38図は本発明のマイクロプロセッサのプロセッサ命令
のデコード結果であるRコードのフォーマットを示す模
式図、 第39図は本発明のマイクロプロセッサのプロセッサ命令
のデコード結果であるRコードの例を示す模式図、 第40図は本発明のマイクロプロセッサのプロセッサ命令
のテスト命令の例を示す模式図、 第41図は本発明のマイクロプロセッサの自己診断用のマ
イクロプログラムルーチンのフローチャート、 第42図は本発明のマイクロプロセッサのマイクロROMの
自己診断用のマイクロプログラムルーチンのフローチャ
ート、 第43図は本発明のマイクロプロセッサの命令デコード部
の自己診断用のマイクロプログラムルーチンのフローチ
ャート、 第44図は本発明のマイクロプロセッサの命令フェッチ部
のテストシーケンスの一例を示すフローチャート、 第45図は本発明のマイクロプロセッサのアドレス計算部
のテストシーケンスの一例を示すフローチャート、 第46図はスキャンパス命令を用いた本発明のマイクロプ
ロセッサのデータ演算部の故障原因特定動作の一例を示
すフローチャート、 第47図はステップ実行命令を用いた本発明のマイクロプ
ロセッサのデータ演算部の故障原因特定動作の一例を示
すフローチャート、 第48図はマイクロ命令フィールドを示す模式図、 第49図はマイクロ命令のシーケンスフィールドを示す模
式図、 第50図はステップ実行命令のための制御回路の構成を示
すブロック図、 第51図はプロセッサモードとテストモードの遷移状態の
概念を示す模式図、 第52図はマイクロROMの一構成例を示すブロック図であ
る。 10……マイクロシーケンス制御部、13……マイクロ命令
実行制御部、51……命令フェッチ部 52……命令デコード部、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 JPH035833A (ja) 1991-01-11
JPH0680495B2 true 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)

Families Citing this family (1)

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

Also Published As

Publication number Publication date
JPH035833A (ja) 1991-01-11

Similar Documents

Publication Publication Date Title
JPH0719215B2 (ja) マイクロプロセッサ
US5717946A (en) Data processor
JP2796590B2 (ja) メモリ装置及びそれを使用したデータ処理装置
JP2616182B2 (ja) データ処理装置
TWI541658B (zh) 資料處理裝置及半導體積體電路裝置
AU632493B2 (en) Microprocessor having external control store
JPH06105432B2 (ja) マイクロプロセッサ
US5321821A (en) System for processing parameters in instructions of different format to execute the instructions using same microinstructions
US6567910B2 (en) Digital signal processing unit with emulation circuitry and debug interrupt enable register indicating serviceable time-critical interrupts during real-time emulation mode
JP2507638B2 (ja) デ―タ処理装置
JPH0766324B2 (ja) データ処理装置
US5502827A (en) Pipelined data processor for floating point and integer operation with exception handling
KR20000076310A (ko) 리스크 구조를 갖는 8 비트 마이크로콘트롤러
JPH07120278B2 (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) データ処理装置
US6757809B1 (en) Data processor having 2n bits width data bus for context switching functions
JP2556182B2 (ja) デ−タ処理装置
JP2504312B2 (ja) プライオリティエンコ―ダ及びそれを備えたデ―タ処理装置
JPH0680495B2 (ja) マイクロプロセッサ
JPH0680496B2 (ja) マイクロプロセッサ
JP2504235B2 (ja) デ―タ処理装置
JPH0769806B2 (ja) データ処理装置
JP2696578B2 (ja) データ処理装置
JP2579817B2 (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