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

マイクロプロセッサ

Info

Publication number
JPH035835A
JPH035835A JP1141543A JP14154389A JPH035835A JP H035835 A JPH035835 A JP H035835A JP 1141543 A JP1141543 A JP 1141543A JP 14154389 A JP14154389 A JP 14154389A JP H035835 A JPH035835 A JP H035835A
Authority
JP
Japan
Prior art keywords
instruction
test
address
microprocessor
micro
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP1141543A
Other languages
English (en)
Other versions
JPH0719215B2 (ja
Inventor
Toyohiko Yoshida
豊彦 吉田
Yuichi Saito
祐一 斉藤
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Mitsubishi Electric Corp
Original Assignee
Mitsubishi Electric Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Mitsubishi Electric Corp filed Critical Mitsubishi Electric Corp
Priority to JP1141543A priority Critical patent/JPH0719215B2/ja
Priority to US07/531,263 priority patent/US5226149A/en
Publication of JPH035835A publication Critical patent/JPH035835A/ja
Publication of JPH0719215B2 publication Critical patent/JPH0719215B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/22Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
    • G06F11/2205Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing using arrangements specific to the hardware being tested
    • G06F11/2236Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing using arrangements specific to the hardware being tested to test CPU or processors

Landscapes

  • Engineering & Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Test And Diagnosis Of Digital Computers (AREA)

Abstract

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

Description

【発明の詳細な説明】 [産業上の利用分野] 本発明はマイクロプログラムにより制御されるマイクロ
プロセッサに関し、更に詳述すれば、通常のモードにお
いてはパイプライン動作により命令を高速処理し、テス
ト時には専用のモードでテスト専用の命令を実行して内
部の各機能ブロックを診断するm能を備えることにより
、テストを容易化したマイクロプロセッサに関する。
[従来の技術] 従来のマイクロプロセンサは単一の命令体系を有し、そ
の命令体系を高速で実行するためにマイクロプロセッサ
内部を種々の機能ブロックに分割し、それらの各ブロッ
クをパイプライン処理の原理に基づいて並列動作させる
ような構成が一般的である。
第7図は従来のマイクロプロセッサの全体構成の一例を
示すブロック図である。
第7図において、101は命令フェッチ部であり、アド
レス出力回路108を通じてアドレスをマイクロプロセ
ッサ外部のメモリへ送出し、データ入出力回路109を
通じて命令をフェッチする。
102は命令デコード部であり、命令フェッチ部101
から命令を受取ってデコードし、その命令の実行に必要
な情報を出力する。
103は命令実行制御部であり、命令デコード部102
から出力されたマイクロプログラムエントリアドレス、
あるいはマイクロROM107に格納されている命令を
実行するために汎用レジスタ番号、オペランド、データ
サイズ等の情報に基づいて生成されたマイクロプログラ
ムエントリアドレスをマイクロプログラムカウンタ10
6へ出力する。マイクロプログラムカウンタ106によ
って次々に示されるアドレスによりマイクロROM10
7から出力されたマイクロ命令と命令デコード部102
から出力された他の情報とにより、命令実行制御部10
3は命令実行部105を制御して命令を実行させる。
104はオペランドアクセス部であり、命令実行に際し
て必要になるオペランドがメモリにある場合は、そのア
ドレスをアドレス出力回路108を通してマイクロプロ
セッサ外部のメモリへ出力することにより、必要なオペ
ランドをデータ入出力回路109を通じてフェッチする
。またオペランドをメモリに格納する必要がある場合は
、オペランドアクセス部104はそのアドレスをアドレ
ス出力回路108を通じてマイクロプロセッサ外部のメ
モリへ出力すると共に、必要なオペランドをデータ入出
力回路109を通じて出力することにより、メモリに格
納する。
命令フェッチ部101.命令デコード部102.命令実
行部105等の!a能プロ、りは相互に関連して並列動
作することにより、複数の命令をパイプライン処理の原
理に従い同時に処理する。パイプライン処理により複数
の命令を同時に処理し、高性能化を行ったマイクロプロ
セッサとしては、たとえば[+、S、P、N14402
042m1’1lcROPROcEssO1l SYS
YTEM [Tl1INSTRUCTTON PI?E
−FETCH″に開示されている。
また、高性能化を目的とした上述のようなパイプライン
処理のための命令体系とは別に、既存のソフトウェアを
利用するだめの命令体系も実行可能なマイクロプロセッ
サも知られている。そのようなマイクロプロセッサの一
例としては、佐藤他「仮想記憶管理機構と浮動小数点演
算機能を内蔵した32ビットマイクロプロセッサV60
J 、日経エレクトロニクス、1986年3月24日号
、no、391、pρ:199−264.が知られてい
る。
従来のマイクロプロセッサでは、その各a能ブロックの
テストに際し、上述のようなバイブライン動作の高性能
な実行を目的とする命令体系または既存のソフトウェア
を利用するための命令体系を用いてマイクロプロセッサ
の動作を診断する。
これらの命令体系では、マイクロプロセッサ内部の複数
の機能ブロックがパイプライン動作同様に並列に動作す
る。命令を実行する際は、各機能ブロックが相互に関連
して並列に動作するため、動作パタンの数が膨大となり
テストすべき項目の数も比例して増加する。しかも、マ
イクロプロセッサは単一のLSIチップ上に実現されて
いるため、外部ビン以外の電気的接続点の電位あるいは
電流を観測することは非常に困難であり、テストコスト
の観点から外部ビンの情報のみにてマイクロプロセッサ
をテストすることが望ましい。
また、マイクロプロセッサの各部を診断するには、プロ
セッサ内部の各種のラッチの内容を初期設定する命令を
事前に実行したり、診断対象とする機能ブロック以外の
機能ブロックが診断に悪影響を及ぼさないないような命
令の組合せでテストプログラムを記述する必要がある。
このため、テストプログラムの設計が非常に難しくなる
と共に設計人工も多数必要とする。特に、試作等により
製作されたマイクロプロセッサが設計仕様通りに動作し
ない場合の原因究明は困難を極める。
このような問題を解決するためのマイクロプロセッサ等
のLSIのテストの容易化の一方法として、LSI内部
のランチをシフトバスで結び、且つラッチの内容をシリ
アルに入出力するスキャンバスを用いたテスト方法が提
案された。この提案はたとえば、国中「テスト容易な回
路構造によりLSIの故障検出率を大幅に改善」、日経
エレクトロニクス、1979年4月18日号、pp、5
7−68に紹介されている。
スキャンバスを用いたLSIのテストは、LSI中のラ
ッチの値が続書き可能である点では有意義であるが、L
SI設計段階で読書きしたいラッチをスキャンバスで結
合しておく必要があること、スキャンバスの動作とこれ
によりセットされた値を使用する動作との切換えを行う
必要があること等のためにハードウェア量が増大すると
いう問題がある。
スキャンバスを採用することによるハードウェア量の増
大を回避するため、テスト時においてはマイクロプロセ
ッサをテストモードとし、マイクロプロセッサのブロッ
ク化された内部構造を効果的に利用してPLA(Pro
gra僻able Logic Array)あるいは
ROM、更には白華メモリであるキャッシュをテストし
たり、テスト用のマイクロプログラムルーチンを用いて
テストする手法も提案されている。
このような手法は例えば、J、 R,Xurban a
nd J、E。
5alick、”Testing Approache
s In the MC68020’+VLSI DE
SIGN Vol、V、 l1hll、 pp、22−
30.November1984、に開示されている。
この提案ではテスト用のマイクロプログラムルーチンを
特殊な命令により起動する手法を採っているため、マイ
クロ110)’Iに予め記憶させであるテスト用のマイ
クロプログラムルーチンのみが使用可能である。このた
め、故障が発生しているマイクロプロセンサの故障原因
の究明に際しては、故障原因に応じたテスト命令を実行
することが望ましいが、その自由度は無い。また、マイ
クロll0M中に記憶されていないマイクロ命令は全く
実行不可能であるため、より精細な故障診断は不可能で
ある。
[発明が解決しようとする課題] 以上の如く、マイクロプロセッサのテストを容易化する
方法に関しては従来からいくつかの提案がなされている
が、いずれも部分的な解決策でしかない、また、部分的
な故障があるマイクロプロセッサの故障原因究明の困難
さを解消可能な提案はされていない。
マイクロプロセッサは論理設計、マイクロプログラムの
ミスによる設計バグの混入、マスクバタン設計のマージ
ン不足に起因する配線間のショート等による製造歩留り
の低下等のため、量産可能な製品の設計が完了するまで
に何回かの試作を必要とする。この際、故障原因を早期
に究明することが非常に重要である。
LSIチップ上のマージン不足の場所を特定するには、
なるべく多くの試作品を種々のテストプログラムにより
テストして故障の発生確率が高い場所を特定する必要が
ある。このためには、多数のテストプログラムを故障の
種類に応じて早期に設計する必要があり、テストプログ
ラムの設計が容易でない場合にはテストプログラム設計
の人工が真人になる。
本発明は、テストプログラムの設計の自由度を拡大させ
ると共にその容易化を図り、更にテスト時間の短縮、テ
ストプログラム設計に要する人工の削減を可能としたマ
イクロプロセッサの提供を目的とする。
[課題を解決するための手段] 本発明のマイクロプロセッサは、命令フェッチ部、命令
デコード部、データ演算部等の複数の機能ブロックを相
互に関連して並列動作させ、バイブライン処理の原理に
従って命令を処理するプロセッサモードと、テスト時に
マイクロプロセッサ内部の機能ブロックを独立して動作
させることにより診断を容易化したテストモードとの2
つのモードを存する。また、プロセッサモードにおいて
パイプライン動作を高速実行することを目的とする命令
体系であるプロセッサ命令群とテストモードにおいて診
断動作を行うことを目的とする命令体系であるテスト命
令群との2つの命令体系を有する。
テスト命令群には、マイクロプロセッサ内部の各機能ブ
ロックをテストするための診断用マイクロプログラムル
ーチンを実行させる命令、マイクロROMの出力部のラ
ッチ等のマイクロプロセッサ内の各種ラッチにデータを
スキャンインさせる命令等、種々の命令を存する。
マイクロRO−の出力部のラッチには一つのマイクロア
ドレスが割当てられておりまた外部からマイクロ命令を
ロードして格納させることが可能である。そして、この
アドレスのマイクロ命令を実行することにより、そのラ
ッチにラッチされているマイクロ命令が実行される。
[作用] 本発明のマイクロプロセッサでは、プロセッサモードに
おいては、各種機能ブロックが相互に関連して並列に動
作し、プロセッサ命令がバイブライン処理の原理に従う
て高速実行される。“この際、本発明のマイクロプロセ
ッサがメモリアクセスサイクルを起動して外部のメモリ
に対してアドレスを出力することにより、対応アドレス
位置にあるプロセッサ命令1オペランドデータ等がフェ
ッチされる。プロセッサモードは外部にメモリを接続し
て本来のマイクロプロセッサとしての動作をさせた場合
に、LSIテスタでテストする場合に使用する。
テストモードにおいては、直接マイクロプログラムエン
トリアドレスを指定するテスト命令が命令デコーダをバ
イパスして取込まれて実行される。
また、テストモードではメモリアクセスサイクルが起動
されることなく、テスト命令取込みを1示する信号によ
りテスト命令が取込まれ、テスト結果はアドレス出力回
路等をメモリサイクルとは関係なく駆動することにより
得られる。
マイクロプロセッサの故障場所を特定するため、マイク
ロROMには記憶されていないマイクロ命令が必要な場
合は、スキャンバスを使用することにより外部からマイ
クロ命令をマイクロROM出力部のラッチヘロードして
格納させ、このランチに割当てられているマイクロアド
レスのマイクロ命令を実行させることにより、外部から
入力させたマ[発明の実施例] 以下、本発明をその実施例を示す図面に基づいて詳述す
る。
(l)[本発明のマイクロプロセッサの動作モード」本
発明のマイクロプロセッサは2つの動作モードを有する
。第1のモードはパイプライン動作を高機能で実行させ
ることを主な目的とするプロセッサモードであり、第2
のモードは本発明のマイクロプロセッサの内部状態を診
断することを主な目的とするテストモードである。
本発明のマイクロプロセッサはまた、2つの命令体系の
実行が可能である。即ち、プロセッサモードにおいて実
行される命令体系であるプロセッサ命令と、テストモー
ドにおいて実行される命令体系であるテスト命令とであ
る。
プロセッサモードにおいては、本発明のマイクロプロセ
ッサはパイプライン動作によりプロセッサ命令を高速で
実行する0本発明のマイクロプロセッサを利用して種々
のソフトウェアを高速で実行する場合はこのモードを使
用する。プロセッサモードではプロセッサ命令のみが実
行可能でありテスト命令の実行は不可能である。
テストモードでは、ノンパイプライン動作によりテスト
命令が逐次実行される。テストモードはプロセッサモー
ドよりもマイクロプロセッサの診断が容易なモードであ
る。テストモードは主にLSIテスタでマイクロプロセ
ッサをテストする場合に使用される。
本発明のマイクロプロセッサは、プロセンサモードでは
メモリに対してアドレスを出力することにより命令及び
データをフェッチしてその結果を格納すべきアドレスと
共にメモリへ出力する。テストモードでは与えられたテ
スト命令とデータとに対して演算結果を出力するが、命
令あるいはデータをフェッチするためのアドレスは出力
しない。
(2)「本発明のマイクロプロセッサのプロセッサ命令
のフォーマット」 本発明のマイクロプロセッサのプロセッサ命令は16ビ
ツト単位で可変長となっており、奇数バイト長の命令は
ない。
本発明のマイクロプロセッサでは高額度のプロセッサ命
令を短いフォーマットとするため、特に工夫された命令
フォーマント体系を有する0例えば、2オペランド命令
に対しては基本的に「4バイト+拡張部」の構成を有し
、総てのアドレッシングモードが利用で可能な船形フォ
ーマントと、頻度が高い命令及びアドレッシングモード
のみを使用可能な短縮形フォーマットとの2つのフォー
マットがある。
第8図から第17図は本発明のマイクロプロセッサのプ
ロセッサ命令フォーマントを示す模式図である。
第8図から第17図のフォーマット中に現われる記号の
意味は以下の通りである。
一;オペコードの入る部分 #:リテラル、または即値の入る部分 Ea:8ミニ8ビツト形のアドレッシングモードでオペ
ランドを指定する部分 Sh:6ビツトの短縮形のアドレッシングモードでオペ
ランドを指定する部分 Rnニレジスタフアイル上のオペランドをレジスタ番号
で指定する部分 フォーマットは、第8図に示す如く、右側がLSB側で
、且つ高いアドレスになっている。アドレスNとアドレ
スN+1の2バイトを見ないと命令フォーマットが判別
できないようになっているが、これは、命令が必ず16
ビツト(2バイト)単位でフェッチ及びデコードされる
ことを前提としているためである。
本発明のマイクロプロセッサのプロセッサ命令では、い
ずれのフォーマントの場合も、各オペランドのHaまた
はshの拡張部は、必ずそのHaまたはshの基本部を
含むハーフワードの直後に置かれる。
これは、命令により暗黙に指定される即値データあるい
は命令の拡張部に優先する。従って、4バイト以上のプ
ロセッサ命令では、Eaの拡張部によって命令のオペコ
ードが分断される場合がある。
また、後でも述べるように、多段間接モードによりEa
の拡張部に更に拡張部が付加される場合にも、次の命令
オペレーションコードよりもそちらの方が優先される。
例えば、第1ハーフワードにEalを含み、第2ハーフ
ワードにEa2を含み、第3ハーフワードまである6バ
イト命令の場合を考える。Ealに多段間接モードを使
用したために普通の拡張部の他に多段間接モードの拡張
部も付加されるものとする。この際、実際の命令ビット
パターンは、命令の第1ハーフワード(Ealの基本部
を含む)、 Ealの拡張部、Ealの多段間接モード
拡張部、命令の第2ハーフワード(Ea2の基本部を含
むL Ea2の拡張部、命令の第三ハーフワードの順と
なる。
(2,1)  r短縮形2オペランド命令」第9図から
第12図はプロセッサ命令の2オペランド命令の短縮形
フォーマントを示す模式図である。
第9図はメモリーレジスタ間演算命令のフォーマットで
ある。このフォーマットにはソースオペランド側がメモ
リとなるL−forma tとデスティネーションオペ
ランド側がメモリとなる5−formatとがある。
L−forma tでは、shはソースオペランドの指
定フィールド+ Rnはデスティネーションオペランド
のレジスタの1旨定フィールド、 RRはshのオペラ
ンドサイズの指定をそれぞれ表す。レジスタ上に置かれ
たデスティネーションオペランドのサイズは32ビツト
に固定されている。レジスタ側とメモリ側とのサイズが
異なり、且つソース側のサイズが小さい場合に符号拡張
が行なわれる。
5−forIlatでは、shはデスティネーションオ
ペランドの指定フィールド、 Rnはソースオペランド
のレジスタ指定フィールド、 RRはshのオペランド
サイズの指定をそれぞれ表す。レジスタ上に置かれたソ
ースオペランドのサイズは32ビツトに固定されている
。レジスタ側とメモリ側のサイズが異なり、且つソース
側のサイズが大きい場合に、溢れた部分の切捨てとオー
バーフローチエ・7りとが行なわれる。
第10図はレジスターレジスタ間演算命令のフォーマン
ト(R4or■at)を示す模式図である。図中、Rn
はデスティネーシッンレジスタの指定フィールド、 R
mはソースレジスタの指定フィールドである。
オペランドサイズは32ビツトのみである。
第11図はリテラル−メモリ間演算命令のフォーマント
(Q−format)を示す模式図である。図中、■は
ディスティネーションオペランドサイズの指定フィール
ド1#はリテラルによるソースオペランドの指定フィー
ルド、Shはデスティネーションオペランドの指定フィ
ールドである。
第12図は即値−メモリ間演算命令のフォーマント(1
−format)を示す模式図である。図中、問はオペ
ランドサイズの指定フィールド(ソース、ディスティネ
ーションで共通)、Shはデスティネーションオペラン
ドの指定フィールドである。 j4orllatの即値
のサイズは、デスティネーシラン側のオペランドのサイ
ズと共通に8.16.32ビツトとなり、ゼロ拡張及び
符号拡張は行なわれない。
(2,2)  r−船形1オペランド命令」第13図は
プロセッサ命令の1オペランド命令の一触形フオーマッ
ト(Gl−forlIlat)を示す模式図である。図
中、間はオペランドサイズの指定フィールドである。一
部のGl−format命令では、Eaの拡張部以外に
も拡張部がある。また、MMを使用しない命令もある。
(2,3)  r−船形2オペランド命令」第14図か
ら第16図はプロセッサ命令の2オペランド命令の一船
形フオーマットを示す模式図である。このフォーマット
に含まれるのは、8ビツトで指定する一船形アドレフシ
ングモードのオペランドが最大2つ存在する命令である
。オペランドの総数自体は3つ以上になる場合がある。
第14図は第1オペランドがメモリ読出しを必要とする
命令のフォーマント(G−forma t)を示す模式
図である。図中、Earはデスティネーションオペラン
ドの指定フィールド、問はデスティネーションオペラン
ドサイズの指定フィールド、  EaRはソースオペラ
ンド指定フィールド、 RRはソースオペランドサイズ
の指定フィールドである。一部のGformat命令で
は、EaM及びEaRの拡張部以外にも拡張部がある。
第15図は第1オペランドが8ビツト即値の命令のフォ
ーマット(E−forma t)を示す模式図である。
図中、EaMはデスティネーションオペランドの指定フ
ィールド、 MMはデスティネーションオペランドサイ
ズの指定フィールド5#はソースオペランド値である。
E−formatとT−formatとは機能的には類
似しているが、考え方の点で大きく異なっているe E
−formatはあくまでも2オペランド−船形(G4
ormat)の派生形であり、ソースオペランドのサイ
ズが8ビツト固定、デスティネーションオペランドのサ
イズが8 /16/32ビットから選択となっている。
つまり、異種サイズ間の演算を前堤とし、デスティネー
ションオペランドのサイズに合わせて8ビツトのソース
オペランドがゼロ拡張または符号拡張される。
一方、I−formatは、特に転送命令、比較命令で
頻度の多い即値のパターンを短縮形にしたものであり、
ソースオペランドとデスティネーションオペランドのサ
イズは等しい。
第16図は第1オペランドがアドレス計算のみの命令の
フォーマット(GA−format)を示す模式図であ
る0図中、Ha−はデスティネーションオペランドの指
定フィールド、四はデスティネーションオペランドサイ
ズの指定フィールド、  EaAはソースオペランドの
指定フィールドである。ソースオペランドとしては実行
アドレスの計算結果自体が使用される。
第17図はショートブランチ命令のフォーマットを示す
模式図である0図中、ccccは分岐条件指定フィール
ド、 disp:8はジャンプ先との変位指定フィール
ドであり、本発明のマイクロブロセ・ノサでは8ビツト
で変位を指定する場合には、ビットパターンでの指定値
を2倍して変位値とする(2.4)  rアドレッシン
グモード」本発明のマイクロプロセッサのプロセ・ノサ
命令のアドレッシングモード指定方法には、レジスタを
含めて6ビツトで指定する短縮形と、8ピントで指定す
る一般形がある。
未定義のアトレンジングモードを措定した場合あるいは
意味的に考えて明らか不合理なアトレンジングモードの
組合わせが指定された場合には、未定義命令を実行した
場合と同じく予約命令例外が発生され、例外処理が起動
する。
これに該当するのは、デスティネーションが即値モード
の場合及びアドレス計算を伴うべきアドレシングモード
指定フィールドで即値モードを使用した場合などである
第18図から第28図に示すフォーマットの模式図中で
使用されている記号の意味は以下の通りである。
Rn:レジスタ指定 (Sh) : 6ビツトの短縮形アドレッシングモード
での指定方法 (Ea) : 8ビツトの一般形アドレッシングモード
での指定方法 フォーマントの図で点線で囲まれた部分は、拡張部を示
す。
(2,4,1,)  r基本アドレッシングモード」本
発明のマイクロプロセッサのプロセッサ命令では種々の
アトレンジングモードをサポートする。
それらの内、本発明のマイクロプロセンサでサポートす
る基本アドレッシングモードには、レジスタ直接モード
、レジスタ間接モード、レジスタ相対間接モード、即値
モード、絶対モード、 pc相対間接モード、スタック
ポツプモード、スタックポツプモードがある。
レジスタ直接モードは、レジスタの内容をそのままオペ
ランドとする。第18図にフォーマットの模式図を示す
0図中、Rnは汎用レジスタの番号を示す。
レジスタ間接モードは、レジスタの内容をアドレスとす
るメモリの内容をオペランドとする。第19図にフォー
マットの模式図を示す。Rnは汎用レジスタの番号を示
す。
レジスタ相対間接は、ディスプレースメント値が16ビ
ツトであるか32ビツトであるかにより、2種類ある。
それぞれ、レジスタの内容に16ビツトまたは32ビツ
トのディスプレースメント値を加えた値をアドレスとす
るメモリの内容をオペランドとする。第20図にフォー
マットの模式図を示す。
図中、Rnは汎用レジスタの番号を示す。disp:1
6とdisp:32とは、16ビントのディスプレース
メント値、32ビットのディスプレースメント値をそれ
ぞれ示す。ディスプレースメント値は符号付きとして扱
われる。
即値モードは、命令コード中で指定されるビンドパクン
をそのまま2進数と見なしてオペランドとする。第21
図にフォーマットの模式図を示す。
図中、iImmdataは即値を示す、  imm  
dafaのサイズは、オペランドサイズとして命令中で
指定される。
絶対モードは、アドレス値が16ビツトで示されるか3
2ビツトで示されるかにより2種類ある。それぞれ、命
令コード中で指定される16ビツトまたは32ビツトの
ビンドパクンをアドレスとしたメモリの内容をオペラン
ドとする。第22図にフォーマットの模式図に示す0図
中、abs:16とabs:32とは、16ビツト32
ビツトのアドレス値をそれぞれ示す。
abs :16でアドレスが示される場合は指定された
アドレス値が32ビツトに符号拡張される。
PC相対間接モードは、ディスプレースメント値が16
ビツトであるか32ビツトであるかにより、2種類ある
。それぞれ、プログラムカウンタの内容に16ビツトま
たは32ピントのディスブレースメント値を加えた値を
アドレスとするメモリの内容をオペランドとする。第2
3図にフォーマットの模式図を示す0図中、disp:
 16とdisp:32とは、16ビツトのディスプレ
ースメント値、32ビットのディスプレースメント値を
それぞれ示す。ディスプレースメント値は符号付きとし
て扱われる。PC相対間接モードにおいて参照されるプ
ログラムカウンタの値は、そのオペランドを含む命令の
先頭アドレスである。多段間接アドレシングモードにお
いてプログラムカウンタの値が参照される場合にも、同
じように命令先頭のアドレスをPC相対の基準値として
使用する。
スタックポツプモードはスタックポインタ(SP)の内
容をアドレスとするメモリの内容をオペランドとする。
オペランドアクセス後、SPをオペランドサイズだけイ
ンクリメントする。例えば、32ビツトデータを扱う際
には、オペランドアクセス後に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−鍾odH
y−writeオペランドに対すスタックブツシュモー
ド指定である。
(2,4,2)  r多段間接アトレンジングモード」
複雑なアドレッシングも、基本的には加算と間接参照の
組合わせに分解することができる。従って、加算と間接
参照のオペレーションをアドレッシングのプリミティブ
として与えておき、それを任意に組合わせることができ
れば、いかに複雑なアドレッシングモードをも実現する
ことが可能である0本発明のマイクロプロセッサのプロ
セッサ命令の多段間接アドレッシングモードはこのよう
な観点に立脚したアドレッシングモードである。
複雑なアドレッシングモードは、モジュール間のデータ
参照あるいはAI(Artiftcial Intel
ligence;人工知能)言語の処理系に特に有用で
ある。
多段間接アドレッシングモードを指定する際、基本アド
レッシングモード指定フィールドでは、レジスタペース
多段間接モード、PCベース多段間接モード、絶対ベー
ス多段間接モードの3種類の指定方法の内のいずれか1
つを指定する。
レジスタペース多段間接モードは、レジスタの値を拡張
されるべき多段間接アドレッシングのベース値とするア
ドレッシングモードである。第26図にフォーマントの
模式図を示す0図中、Rnは汎用レジスタの番号を示す
PCベース多段間接モードは、プログラムカウンタの値
を拡張されるべき多段間接アドレッシングのベース値と
するアドレッシングモードである。
第27図にフォーマットの模式図を示す。
絶対ベース多段間接モードは、ゼロを拡張されるべき多
段間接アドレッシングのベース値とするアドレッシング
モードである。第28図にフォーマットの模式図を示す
拡張する多段間接モード指定フィールドは16ビツトを
単位としており、これが任意回反復される。
1段の多段間接モードにより、ディスプレースメントの
加算、インデクスレジスタのスケーリング(X L X
2. X4. X8)と加算、メモリの間接参照を行な
う、第29図は多段間接モードのフォーマットを示す模
式図である。各フィールドは以下に示す意味を有する。
[−〇 =多段間接モード継続 E・1 ニアドレス計算終了 tIlp−> address  or operan
d■・0 :メモリ間接参照なし tamp + disp l Rx 本5cale =
=> tmpI・1 :メモリ間接参照あり −en  [tamp  +  disp  +  R
X  *  5cale  ]!!++!>  tll
p M=O:  <R)l>をインデクスとして使用M−1
:特殊なインデクス <Rx>−0インデクス値を加算し ない (Rx・0) <Rx>−1プログラムカウンタを インデクス値として使 用  (Rx=PC) <Rx>−2〜  reserved D・0 :多段間接モード中の4ビツトのフィールドd
4の値を4倍してディス プレースメント値とし、これを加 算する。 d4は符号付きとして扱い、オペランドのサ
イズとは関係なく 必ず4倍して使用する。
D・1 :多段間接モードの拡張部で指定されたdis
px(16/32ビツト)をディスプレースメント値と
し、これを 加算する。
拡張部のサイズはd4フィールドで 指定する。
d4JOO1dispxは16ビツト d4=0010  dispxは32ビットxx:イン
デクスのスケール (scale = 1/2/4/8) プログラムカウンタに対してx2. x4. x Bの
スケーリングを行なった場合には、その段の処理終了後
の中間値(tap)として不定値が入る。この多段間接
モードによって得られる実効アドレスは予測できない値
となるが、例外は発生しない。プログラムカウンタに対
するスケーリングの指定は行なってはいけない。
多段間接モードによる命令フォーマットのバリエーショ
ンを第30図及び第31図に示す。第30図は多段間接
モードが継続するか終了するかのバリエーションを示す
、第31図はディスプレースメントのサイズのバリエー
ションを示す。
任意段数の多段間接モードが利用できれば、コンパイラ
の中で段数による場合分けが不要になるので、コンパイ
ラの負担が軽減されるというメリットがある。多段の間
接参照の頻度が非常に少ないとしても、コンパイラとし
ては必ず正しいコードを発生できなければならないから
である。このため、フォーマント上、任意の段数が可能
になっ(3)「本発明のマイクロプロセッサのテスト命
令のフォーマット」 本発明のマイクロプロセッサのテスト命令は35ビツト
の固定長フォーマントである。第32図〜第37図に本
発明のマイクロプロセッサのテスト命令のフォーマット
の模式図を示す。フォーマント中に現れる記号の意味は
以下の通りである。
IRL :割込み要求線のビン番号O〜2から入力され
るフィールドであることを示す。
D;データバスのビン番号00〜31から入力されるフ
ィールドであることを示す。
聞:演算結果出力が外部のメモリか否かを指定する部分 子PAR:演算に関するパラメータを指定する部分5I
IEG :ソースオペランドのレジスタ位置ヲ指定する
部分 DREG :デスティネーシジンオペランドレジスタ位
置を指定する部分 zS:ソースオペランドサイズを指定する部分zD二デ
スティネーシッンオペランドサイズを指定する部分 DDニスキャンインするデータを指定する部分また、1
2ビツトのマイクロll0M番地指定フィールドと、指
定データを無視するフィールド(don’ tcare
) とがある。
テスト命令では、ソースオペランドはレジスタファイル
にある値またはm+値データのみを使用する。このため
、テスト命令ではアドレッシングモード等のメモリオペ
ランドに関するアドレス指定フィールドはない。
(3,1)  r連続実行命令」 第32図及び第33図に示すテスト命令のフォーマット
は連続実行命令のフォーマントである。
連続実行命令は、指定されたマイクロROM番地からマ
イクロプログラムに従って本発明のマイクロプロセッサ
を動作させる命令である。
第32図に示す第1連続実行命令は、指定したマイクロ
ROM番地からマイクロプログラムに従って本発明のマ
イクロプロセッサを動作させる際に、MM、TPAR,
5REG、DREG、ZS、ZDをマイクロプログラム
に対するパラメータとして使用する。
第33図に示す第2連続実行命令は、マイクロプログラ
ムに対するパラメータ指定は行わない。
これら2つの連続実行命令で指定するマイクロR〇一番
地は本発明のマイクロプロセッサのマイクロROM番地
の範囲内で任意の値が許される。従ってこれらの命令に
より本発明のマイクロプロセッサに対して任意のマイク
ロROM番地からのマイクロプログラムの実行を措定で
きる。
(3,2)  rステップ実行命令」 第34図及び第35図に示すテスト命令のフォーマット
はステップ実行命令のフォーマットである。
ステップ実行命令は、指定されたマイクロI?OM番地
のマイクロ命令に従って本発明のマイクロプロセッサを
1マイクロステツプだけ動作させる命令である。
第34図に示す第1ステツプ実行命令は、指定したマイ
クロROM番地からマイクロプログラムに従って本発明
のマイクロプロセッサを1マイクロステップ動作させる
際に、MM、 TPAR,5REG、 DREG、 Z
S、 ZDをマイクロプログラムに対するパラメータと
して使用する。
第35図に示す第2ステツプ実行命令は、マイクロプロ
グラムに対するパラメータ指定は行わない。
これら2つのステップ実行命令で指定するマイクロRO
M番地は本発明のマイクロプロセッサのマイクロROM
番地の範囲内で任意の値が許される。
従って、これらの命令により本発明のマイクロプロセッ
サに対して任意のマイクロROM番地のマイクロ命令を
1ステツプだけ実行してその状態で停止することを指定
できる。
(3,3)  rロード命令」 第36図に示すテスト命令のフォーマットはテストモー
ドにおいて本発明のマイクロプロセッサの外部からオペ
ランドをロードするためのロード命令のフォーマ・ノド
である。
ロード命令は35ビツトの命令の内の32ビツトが即値
オペランドのフィールドであり、32ビツトの値を本発
明のマイクロプロセッサに取込むことが可能である。
(3,4)  rスキャンパス命令」 第37図に示す命令のフォーマットはテストモードにお
いて本発明のマイクロプロセッサのスキャンバスを動作
させる命令であるスキャンバス命令のフォーマットであ
る。
スキャンバス命令により本発明のマイクロプロセッサは
内部のスキャンバスにデータをシリアルに入出力可能に
なる。
(4)「機能ブロックの構成」 第2図は本発明のマイクロプロセッサの一構成例を示す
ブロック図である。
本発明のマイクロプロセッサの内部を機能的に大きく分
けると、命令フェッチ部51.命令デコード部52. 
PC計算部53.オペランドアドレス計算部54、マイ
クロROM部55.データ演算部56.外部バスインタ
ーフェイス(+/F)部57に分かれる。第2図ではそ
の他に、外部ヘアドレスを出力するアドレス出力回路5
8と、外部との間でデータを入出力するデータ入出力回
路59と、制御信号入出力回路60とを他のm能ブロッ
ク部と分けて示した。
(4,1)  r命令フェッチ部」 命令フェッチ部51には、ブランチバッファと、命令キ
ューとその制御部等があり、次にフェッチすべき命令の
アドレスを決定して、ブランチバッファや外部のメモリ
からプロセッサ命令をフェッチする。また命令フェッチ
部51はブランチバッファへの命令登録も行う。
ブランチバッファは小規模であるためセレクティブキャ
ッシュとして動作する。ブランチバッファの動作の詳細
は特開昭63−567311号で詳しく述べられている
次にフェッチすべきプロセッサ命令のアドレスは命令キ
ューに入力すべき命令のアドレスとして専用のカウンタ
で計算される0分岐あるいはジャンプが発生した際には
、新たなプロセッサ命令のアドレスがPC計算部53ま
たはデータ演算部56から転送されてくる。
外部のメモリからプロセッサ命令をフェッチする際は、
フェッチすべき命令のアドレスを外部バスインターフェ
イス部57を通じてアドレス出力回路58から外部へ出
力することによりデータ入出力回路59から命令コード
をフェッチする。
バッファリングした命令コードの内、命令デコード部5
2で次にデコードすべき命令コードが命令デコード部5
2へ出力される。
テスト命令は命令フェッチ部51ではフェッチされない
(4゜2)「命令デコード部」 命令デコード部52では基本的に16ビツト(ハーフワ
ード)単位にプロセンサ命令コードをデコードする。こ
の命令デコード部52には第1ハーフワードに含まれる
オペコードをデコードするFH−デコーダ、第2.第3
ハーフワードに含まれるオペコードをデコードするNF
II−デコーダ、アドレッシングモードをデコードする
アドレッシングモードデコーダが含まれる。
更に、Fil−デコーダ及びNFII−デコーダの出力
を更にデコードしてマイクロROMのエントリアドレス
を計算する第2デコーダ、条件分岐命令の分岐予測を行
う分岐予測機構、オペランドアドレス計算の際のバイブ
ラインコンフリクトをチエツクするアドレス計算コンフ
リクトチエツク機構等も含まれる。
命令デコード部52は、命令フェッチ部51がら入力さ
れたプロセッサ命令コードを2クロツクにつきO〜゛6
バイトデコードする。デコード結果の内、データ演算部
56での演算に関する情報がマイクロROM部55へ、
オペランドアドレス計算に関係する情報がオペランドア
ドレス計算部54へ、PC計算に関係する情報がpc計
算部53へそれぞれ出力される。
テスト命令が命令デコード部52へ入力されることはな
く、従ってデコードされることもない。
(4,3)  rマイクロROM部」 マイクロROM部55にはデータ演算部56の制御及び
本発明のマイクロプロセッサ各部の診断をする種々のマ
イクロプログラムルーチンが格納されているマイクロI
?OM、マイクロシーケンサ、マイクロ命令デコーダ等
が含まれる。マイクロ命令はマイクロRO?Iから2ク
ロツクに1度読出される。マイクロシーケンサはマイク
ロプログラムで示されるシーケンス処理の他に、例外1
割込及びトラップ(この3つをEITと総称する)の処
理及びテスト割込みをハードウェア的に受付ける。また
マイクロROM部はストアバンファの管理も行う。
プロセッサモードでは、マイクロROM部には命令コー
ドに依存しない割込み及び演算実行結果によるフラッグ
情報と、第2デコーダの出力等の命令デコード部52か
らの出力が入力される。
テストモードでは、マイクロROM部はCPUの診断プ
ロセッサとして動作する。テストモードでは第2デコー
ダの出力ではなくデータ入出力回路59からの出力が直
接マイクロROM部へ入力される。
また、テストモードの間は一切の割込みは受付けられな
い。
プロセッサモードでは、マイクロデコーダの出力は主に
データ演算部56に対して出力されるが、ジャンプ命令
の実行による他の先行処理中止情報等の一部の情報は他
の機能ブロックへも出力される。
テストモードでは、マイク0120M部55は上記のプ
ロセッサモードでの出力に加えて各種の診断制御情報を
本発明のマイクロプロセッサ内部の他のブロックへ出力
する。
(4,4)  rオペランドアドレス計算部コオペラン
ドアドレス計算部54は、命令デコード部52のアドレ
スデコーダ等から出力されたオペランドアドレス計算に
関係する情報によりハードワイヤード制御される。この
オペランドアドレス計算部54ではオペランドのアドレ
ス計算に関する大半の処理が行われる。メモリ間接アド
レッシングのためのメモリアクセスのアドレス及びオペ
ランドアドレスがメモリにマツプされたl10j1域に
入るか否かのチエツクも行われる。
オペランドアドレス計算部54でのアドレス計算結果は
外部バスインターフェイス部57へ送られる。
なお、アドレス計算に必要な汎用レジスタやプログラム
カウンタの値はデータ演算部56から入力される。
メモリ間接アドレッシングを行う場合は、オペランドア
ドレス計算部54は参照すべきメモリアドレスを外部バ
スインターフェイス部57を通じてアドレス出力回路5
Bから外部へ出力し、データ入出力部59から入力され
た間接アドレス値を命令デコード部52をそのまま通過
させてフェッチする。
(4,5)  rPC計算部J PC計算部53は命令デコード部52から出力されるP
C計算に関係する情報によりハードワイヤードに制御さ
れ、命令のpc値を計算する。本発明のマイクロプロセ
ッサのプロセンサ命令は可変長命令であり、命令をデコ
ードしてみないとその命令の長さが判明しない。PC計
算部53は、命令デコード部52から出力される命令長
をデコード中の命令のpc値に加算することにより次の
命令のpc値を作り出す。
pc計算部53での計算結果は各命令のpc値として命
令のデコード結果と共に出力される。
(4,6)  rデータ演算部」 データ演算部56はマイクロプログラムにより制j1さ
れ、マイクロROMの出力であるマイクロ命令に従って
各命令の機能を実現するために必要な演算をレジスタフ
ァイルと演算器とを使用して実行する。
プロセッサ命令の演算対象となるオペランドがアドレス
あるいは即値である場合は、オペランドアドレス計算部
54で計算されたアドレスあるいは即値は外部バスイン
ターフェイス部57を通過してデータ演算部56へ人力
される。また、プロセッサ命令の演算対象となるオペラ
ンドがCPU外部のメモリにあるデータである場合は、
アドレス計算部54で計算されたアドレスをバスインタ
ーフェイス部57がアドレス出力回路58から出力する
ことによりCPu外部のメモリからフェッチされただオ
ペランドはデータ入出力回路59からデータ演算部56
へ入力される。
テストモードでロード命令を実行した場合には、演算対
象となる即値オペランドがデータ入出力回路59からデ
ータ演算部56へ入力される。
演算器としてはALU、バレルシフタ、プライオリティ
エンコーダあるいはカウンタ、シフトレジスタ等がある
。レジスタファイルと主な演算器との間は3つのバスで
結合されており、1つのレジスタ間演算を指示する1マ
イクロ命令が2クロ、クサイクルで処理される。
データ演算の際に外部のメモリをアクセスする必要があ
る場合は、マイクロプログラムの指示により外部バスイ
ンターフェイス部57をillしてアドレス出力回路5
8からアドレスがCPU外部へ出力されることにより、
データ入出力回路59を通じて目的のデータがフェッチ
される。
外部のメモリにデータをストアする場合は、外部バスイ
ンターフェイス部57を通じてアドレス出力回路58か
らアドレスが出力されると同時に、データ入出力図85
9からデータがCPU外部へ出力される。オペランドス
トアを効率的に行うためデータ演算部56には4バイト
のストアバッファが備えられている。
ジャンプ命令の処理1例外処理等の結果、新たな命令ア
ドレスをデータ演算部56が得た場合は、データ演算部
56はこれを命令フェッチ部51とPC計算部53とへ
出力する。
(4,7)  1部ハスインターフェイス部」外部バス
インターフェイス部57は、プロセッサモードにおいて
は本発明のマイクロプロセッサの入出力ビンを介しての
通信を制御する。メモリのアクセスはすべてクロック入
力で行われ、最小2クロックサイクルで行うことができ
る。
メモリに対するアクセス要求は命令フェッチ部51、ア
ドレス計算部54及びデータ演算部56から独立に生じ
る。外部バスインターフェイス部57はこれらのメモリ
アクセス要求を調停するつ更に、メモリと本発明のマイ
クロプロセサとを結ぶデータバスサイズである32ビツ
ト(lワード)の整置境界を跨ぐメモリ番地に位置する
データのアクセスは、このブロック内でワード境界を跨
ぐことが自動的に検知され、2回のメモリアクセスに分
解して行われる。
ブリフェッチ対象のオペランドとストア対象のオペラン
ドとが重なる場合のコンフリクト防止処理及びストアオ
ペランドからフェッチオペランドへのバイパス処理も外
部バスインターフェイス部57が行う。
テストモードでは、外部バスインターフェイス部57は
一切のメモリアクセス要求を受付けない。
テストモードでは、データ入出力回路59とアドレス出
力回路とはマイクロROM部55から直接制御さ(5)
「本発明のマイクロプロセッサの入出力インターフェイ
ス」 第3図は本発明のマイクロプロセッサの入出力ピンを示
す模式図である。
図中、CLKはクロック入力、1lEsI!TIはリセ
ット割込み入力、IRLIO:2は割込み入力、1Ac
KIは割込み応答出力、LOCIはインターロックバス
サイクルか否かを示す出力、TESTIIはテストモー
ドみ人力、DBGTNTIはテハッグ割込み入力、DB
GA(Jlはテハノグ処理中を示す出力、BCIO:3
. BSII、ASII、 08ll。
R/Witはバスサイクル制御出力、DC#はバスサイ
クル制御人力、00:31はデータ入出力、^0:31
はアドレス出力である。
TESTII ビン以外は本発明のマイクロプロセッサ
を応用システムに組込む際にも使用するが、その際に誤
ってテスト割込みが入力されることを防ぐためにYES
TIビンは電源に接続される。
各入出力信号は、プロセッサモードにおいては上述の如
き機能で使用される。しかしテストモードにおいては、
DBGINTIビンがテスト命令取込み指示入力、DB
GA(Jlビンがテスト命令実行中を示す出力、IRI
JO:2ビンがテスト命令入力、00:31ビンがテス
ト命令人力及びテスト結果出力、九0:31がテスト結
果出力の機能で使用される。更にスキャン命令に対して
は、DOピンがスキャン入力、LOCKIビンがスキャ
ンアウト出力の機能を有する。
各入出力ピンはCLKに対してクロック同期して信号を
人出力する。
(6)「プロセッサモードでの動作」 本発明のマイクロプロセッサはプロセッサモードではプ
ロセッサ命令をパイプライン処理して高性能に動作する
。ここではまず、プロセッサモードにおける本発明のマ
イクロプロセッサのパイプライン処理手順について説明
し、次にプロセッサモードにおける本発明のマイクロプ
ロセッサの外部メモリアクセス動作の一例を説明する。
(6,1)  rパイプライン機構」 本発明のマイクロプロセッサのパイプライン処理は第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
−89932で詳しく述べられている。
1Fステージ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で処理されている命令の
みが実行段階の命令であり、IFステージ31−Fステ
ージ34で処理されている命令は未だ実行段階に至って
いないのである。従って、Eステージ35以外で検出さ
れたBITは検出されたたことがステップコード中に記
録されてで次のステージへ伝えられるのみである。
(6,2)  r各パイプラインステージの処理J各パ
イプラインステージの人出カステップコードには第4図
に示したように便宜上名前が付与されている。またステ
ップコードには、オペレーションコードに関する処理を
行い、マイクロROMのエントリ番地あるいはEステー
ジ35に対するパラメータ等になる系列と、Eステージ
35のマイクロ命令に対するオペランドになる系列との
2系列がある。
(6,2゜1)「命令フェッチステージ」命令フェッチ
ステージ(IFステージ)31はプロセッサ命令をメモ
リあるいはブランチバッファからフェッチして命令キュ
ーへ入力し、Dステージ32に対して命令コードを出力
する。命令キューの入力は整置された4バイト単位で行
われる。メモリからプロセッサ命令をフェッチする際は
整置された4バイトにつき最小2クロックを要する。ブ
ランチバッファがヒ・ノドした場合は整置された4バイ
トにつき1クロツクでフェッチ可能である。
命令キューの出力単位はは2バイトごとに可変であり、
2クロフクの間に最大6バイトまで出力できる。また分
岐の直後には、命令キューをバイパスして命令基本部2
バイトを直接命令デコーダへ転送することもできる。
ブランチバッファへの命令の登録及びクリア等の制御、
ブリフェッチ先命令アドレスの管理及び命令キューの制
御もIPステージ31が行う。
(6,2,2)  r命令デコードステージ」命令デコ
ードステージ(Dステージ)32はIFステージ31か
ら入力されたプロセッサ命令コードをデコードする。デ
コードは命令デコード部52のFIIWデコーダ、 N
PHWデコーダ、アトレンジングモードデコーダを使用
して、2クロック単位で1度行なわれ、1回のデコード
処理でO〜6バイトの命令コードが消費される(リター
ンサブルーチン命令の1y帰先アドレスを含むステップ
コードの出力処理等では命令コードは消費されない)。
1回のデコードで、Aステージ33に対してアドレス計
算情報としてのAコード42である約35ビツトの制御
コードと最大32ビツトアドレス修飾情報と、オペレー
ションコードの中間デコード結果としてのDコード41
である約50ビツトの制御コードと8ビツトのリテラル
情報とが出力される。
Dステージ32では各命令のpc計算部53の制御、命
令キューからの命令コード出力処理も行う。
(6,2,3)  rオペランドアドレス計算ステージ
」オペランドアドレス計算ステージ(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マイクロROMアクセスステージ
」オペランドフェッチステージ(Fステージ)34の処
理も大きく2つに分かれる。
一方はマイクロROMのアクセス処理であり、特にRス
テージ36と称する。他方はオペランドブリフェッチ処
理であり、特にOFステージ37と称する。
Rステージ36とOFステージ37とは必ずしも同時に
動作するわけではなく、メモリアクセス権が獲得できる
か否か等に依存して、独立して動作する。
Rステージ36の処理であるマイクロROMアクセス処
理は、Rコードに対して次のEステージでの実行に使用
する実行制御コードであるEコードを生成するためのマ
イクロROMアクセスとマイクロ命令デコード処理であ
る。1つのRコードに対する処理が2つ以上のマイクロ
プログラムステ、7プに分解される場合、マイクロ1i
oFIはEステージ35で使用され、次のRコード43
はマイクロROMアクセス待ちになる。Rコード43に
対するマイクロROMアクセスが行われるのはその前の
Eステージ35での最後のマイクロ命令実行時である。
本発明のマイクロプロセッサでは、大半の基本命令は1
マイクロプログラムステツブで実行されるため、実際に
はRコード43に対するマイクロROMアクセスが次々
と行われることが多い。
(6,2,5)  rオペランドフェッチステージ」オ
ペランドフェッチステージ(OFステージ)37はFス
テージ34で行う上記の2つの処理の内のオペランドプ
リフェッチ処理を行う。
オペランドプリフェッチはFコード44を入力とし、フ
ェッチしたオペランドとそのアドレスとをSコード46
として出力する。1つのFコード44ではワード境界を
跨いでもよいが、4バイト以下のオペランドフェッチを
指定する。Fコード44にはオペランドのアクセスを行
うか否かの指定も含まれており、Aステージ33で計算
されたオペランドアドレス自体あるいは即値をEステー
ジ35へ転送する場合にはオペランドプリフェッチは行
われず、Fコード44の内容がSコード46として転送
される。
プリフェッチしようとするオペランドとEステージ35
が書込み処理を行おうとするオペランドとが一致する場
合は、オペランドプリフェッチはメモリからは行われず
、バイパスして行なわれる。、(6,2,6)  r実
行ステージ」 実行ステージ(Eステージ)35はEコード45及びS
コード46を入力として動作する。このEステージ35
が命令を実行するステージであり、Fステージ34以前
のステージで行われた処理は総てEステージ35のため
の前処理である。Eステージ35でジャンプ命令が実行
されたり、ETT処理が起動されたりした場合は、1F
ステージ31−Fステージ34までの間で行われた処理
はすべて無効化される。Eステージ35はマイクロプロ
グラムにより制御され、Rコード45にて示されたマイ
クロプログラムルーチンのエントリ番地からの一連のマ
イクロ命令を実行することにより命令を実行する。
マイクロROMの読出しとマイクロ命令の実行とはパイ
プライン化されて行われる。従ってマイクロプログラム
で分岐が起きた場合は、1マイクロステツプの空きが発
生する。また、Eステージ35はデータ演算部56にあ
るストアバッファを利用して、4バイト以内のオペラン
、トスドアと次のマイクロ命令実行とをパイプライン処
理することもできる。
Eステージ35ではAステージ33で行ったレジスタあ
るいはメモリに対する書込み予約をオペランドの書込み
の後に解除する。
各種の割込は命令の切れ目においてEステージ35に直
接受付けられ、マイクロプログラムにより必要な処理が
実行される。その他の各種HITの処理もマイクロプロ
グラムにより行われる。
(6,3)  r各パイプラインステージの状態:酵御
」パイプラインの各ステージは入力ラッチと出力ラッチ
とを有し、他のステージとは独立して動作することを基
本とする。各ステージは1つ前に行った処理が終了し、
その処理結果を出力ランチから次のステージの入力ラン
チへ転送し、自身のステージの入力ラッチに次の処理に
或・要な入力信号が総て揃うえば次の処理を開始する。
つまり、各ステージは、1つ前段のステージから出力さ
れてくる次の処理に対する入力信号が総て有効となり、
現在の処理結果を後段のステージの入力ランチへ転送し
て出力ラソチが空になると次の処理を開始する。
各ステージが動作を開始する】つ前のクロックタイミン
グで入力信号が総て揃っている必要がある。入力信号が
揃っていないと、そのステージは待ち状a(入力待ち)
になる。出力ラソチから次のステージの入力ラッチへの
データ転送に際しては、次のステージの入力ラノチが空
き状態になっている必要があり、次のステージの入力ラ
ッチが空き状態でない場合もパイプラインステージは待
ち状B(出力待ち)になる。必要なメモリアクセス権が
獲得できなかったり、処理しているメモリアクセスにウ
ェイトステートが挿入されていたり、その他のパイプラ
インコンフリクトが生じた場合にも、各ステージの処理
自体が遅延する。
(6,4)  rプロセッサモードでのメモリアクセス
動作」 第5図にプロセッサモードでの本発明のマイクロプロセ
ッサの外部入出力動作の一例としてのメモリアクセスの
タイミングチャートを示す。
メモリアクセスは十分高速なメモリに対しては外部人カ
クロフクの4クロツクに1度の速度で行われる。第5図
では最初にゼロウェイトのリードサイクル、次にゼロウ
ェイトのライトサイクル次に1クロツクウエイトのリー
ドサイクルを示す。
図中BCLKはCLKの2倍の周期のバスクロンクであ
り、メモリバスサイクルの基本となる信号である。
BCLにはCLにの奇数番目パルスと偶数番目パルスと
を定める。CLKに同期して動作する本発明のマイクロ
プロセッサとBCIJとの同期はリセット割込みにより
行う。
リードサイクルではアドレスが出力され、BCLにがロ
ーレヘルである間のCLKの立下り時にDfJがアサー
トされた際の00:31の値が取込まれてバスサイクル
が終了する。ライトサイクルではまずアドレスが出力さ
れ、1クロツク遅れてデータが出力され、BCLKがロ
ーレベルである間のCLKの立下り時にDCIIがアサ
ートされればバスサイクルが終了する。
このようにプロセッサモードにおいては、CLKに同期
したバスサイクルを本発明のマイクロプロセ、すが起動
することにより外部との入出力動作(7)「テストモー
ドでの動作」 本発明のマイクロプロセッサはテストモードにおいては
、テスト命令に従って各機能ブロックの診断を実行する
第1図はテストモード時の動作状態の概念を示す本発明
のマイクロプロセッサの一構成例のブロック図である。
テスト命令のマイクロROM番地フィールドあるいはR
コード43のマイクロll0M番地を取込み、その番地
からのマイクロプログラムのシーケンスを制御する一フ
ィクロシーケンス制御部10.マイクロプログラムの番
地を管理するマイクロプログラム力うンタ (μPC)
11.マイクロプログラムを記憶するマイクロRO旧2
.各マイクロ命令のデコード及びその実行を制?11す
るマイクロ命令実行制御部13゜テスト命令の一部また
は命令デコード部の出力であるRコード43をマイクロ
シーケンス制御″n部へ転送するRコードラッチ部14
.  Aコード42をラッチしたり圧縮して蓄積するA
コードランチ部15.命令フェンチ部51.命令デコー
ド部52.オペランドアドレス計算部54.データ演算
部56.テスト命令の上位3ビツトをマイクロシーケン
ス制御部10へ入力するIRLIO:2ピン16.テス
ト命令の取込みを指示するDBGINTIビン17.テ
ストモードにおいてテスト命令実行中を示すDBGAC
KIピン18.テスト命令の下位32ビツトをデータ入
出力回路59からバイパスバス23を通じてRコードラ
ッチ部14とマイクロシーケンス制御部10とへ転送し
たりまた命令フェッチ部51のテスト結果をデータ入出
力回路59へ転送するDDババス9.オペランドアドレ
ス計算部54あるいはデータ演算部56のテスト結果を
アドレス出力回路58へ転送するAAババス0.データ
入出力口Il?f59から1ビツトのスキャンインデー
タをマイクロROM12の出力部の第1リニアフイード
バツクシフトレジスタLFSR24へ転送するDOビン
21.スキャンアウトデータをAコードラッチ部15の
第3リニアフイードバツクシフトレジスタLPSR26
からマイクロプロセッサ外部へ出力するLOGI!ピン
22等にて牟+%成されている。
Rコードラッチ部14には第2リニアフィードバフタシ
フトレジスタLPSR25があり、データ演算部58に
は第4リニアフイードバンクシフトレジスタLPSR2
7がある。命令デコード部52には自己診断時に使用す
るカウンタ28がある。
テストモードでは、入力されたテスト命令に従いマイク
ロシーケンス制御部10がマイクロROM12をアクセ
スしてマイクロプログラムを実行することによりマイク
ロプロセッサの各部をテストする。
テスト動作に必要なデータはロード命令によりデータ演
算部56のDDレジスタ29へ取込まれる。
命令フェッチ部51はマイクロ命令実行制御部13の指
示に従ってテスト動作を行い、その結果をDDババス7
.データ入出力回路59を介してマイクロプロセッサ外
部へ出力する。
命令デコード部52はマイクロ命令実行制御部13の指
示に従ってテスト動作を行い、その結果をRコードラッ
チ部14とAコードラッチ部15とへ出力する。
オペランドアドレス計算部はマイクロ命令実行制御部1
3の指示に従い、データ演算部56のレジスタファイル
から転送されるデータを使用してテスト動作を行い、そ
の結果をAAババス0.アドレス出力回路58を介して
マイクロプロセッサ外部へ出力する。
データ演算部56はマイクロ命令実行制御部13の指示
に従いテスト動作を行う。テスト動作に必要なデータは
ロード命令によりマイクロプロセッサ外部からDDレジ
スタ29へ取込むこともできる。テスト動作の中間演算
結果はレジスタファイルに保存され、テスト結果はAA
ババス0.アドレス出力回路58を介してマイクロプロ
セッサ外部へ出力される。
(7,1)  rテスト命令の取込み」テスト命令は命
令フェッチ部51及び命令デコード部52を介すること
なくバイパスバス23を通じて直tiコードラッチ部1
4とマイクロシーケンス制御部10とへ取込まれる。ロ
ード命令とスキャンパス命令以外のテスト命令の各フィ
ールドはプロセッサモードでプロセッサ命令をデコード
して得られたRコード43と類似のフォーマットとなっ
ており、テスト命令の取込みはRコード43を直接書換
える形態をとる。テスト命令で指定されないRコード4
3のフィールドはテスト命令取込み前にRコードランチ
部14に保持されていた内容をそのまま保持する。マイ
クロll0M番地はRコード43を書換えるのではなく
、直接マイクロシーケンス制御部10へ入力される。
テスト命令の取込みではメモリサイクルは起動されない
、テスト命令の取込みのタイミングをテスト結果の出力
タイミングと共に第6図のタイミングチャートに示す。
DBGACl[Iがネゲートされているとき、rRLO
:2ビン16と00:31ピン21とにテスト命令のピ
ントパタンを入力しながらBCLKとCLl[の両方が
立上がるタイミングに同期してDBGINTIビン17
をアサートすることによりテスト命令が取込まれる。
(7,1,1)  rRコードのフォーマットとテスト
命令」第381はRコード43のフォーマットの模式図
である。Rコード43は32ビツト長であり、各フィー
ルドの意味は以下の通りである。
0P1:演算に関する第1のパラメータを指定する部分 M−=演算結果出力が外部のメモリか否かを指定する部
分 OF2:演算に関する第2のパラメータを指定する部分 R1ソースオペランドのレジスタ位置を指定する部分 RD:デスティネーションオペランドレジスタ位置を指
定する部分 Wlソースオペランドサイズを指定する部分−〇:デス
ティネーションオベランドサイズを指定する部分 また、マイクロll0M番地を指定するフィールドは8
ビツトであり、マイクロシーケンス制御部10へ入力さ
れる際に下位にゼロが4ビ、ト拡張される。本発明のマ
イクロプロセッサのマイクロプログラムはlワードが1
12ビツトのマイクロ命令でコーディングされており、
4にワードの空間に格納されている。各Rコード43で
指定される各マイクロプログラムルーチンのエントリ番
地の下位4ビツトは必ずゼロである。従ってRコード4
3で指定可能なマイクロプログラムルーチンのエントリ
は256個である。
第32〜37図に示すテスト命令のフォーマットの内、
Rコード43を書換える命令は第32図に示す第1連続
実行命令と第34図に示す第1ステツプ実行命令とであ
る。この2つの命令が人力されるとRコード43の内の
OPIフィールドとマイクロROM番地を指定するフィ
ールド以外が書換えられる。1フイールドは問フィール
ドに、OP2フィールドはTPARフィールド・に、R
Sフィールドは5REGフイールドに、Pロフィールド
はDREGフィールドに、−SフィールドはZSフィー
ルドに、WDフィールドはZDフィールドにそれぞれ書
換えられる。Ol”lフィールドとマイクロROM番地
の上位8ビツトを示すフィールドはテスト命令取込み前
の値のまま保持される。
第39図に具体的なプロセッサ命令のRコード43の例
を示す。各命令の意味は以下の通りである。
MOV、鏝 112 、阿EM:レジスタ2から4バイ
トのデータをメモリへ転送する。
cMp、n  R8、RO:レジスタ8とレジスタOの
各1バイトのデータを比較 する。
ADD、W  阿EMR2:レジスタ2の4バイトのデ
ータにメモリの4バイトの データを加算してレジスタ 2に格納する。
SHA、W  112 、l?o  :レジスタOの4
バイトのデータを2ビツト算術シフト する。
MUL、HR7,R15ニレジスタフとレジスタ15の
各2バイトのデータを乗算 してレジスタ15に格納する。
Jl’lP   a(113)  :レジスタ304バ
イトのデータをアドレスとする番地 ヘジャンプする。
本発明のマイクロプロセッサでは−OV、WとADD、
Wとは共に同じマイクロプログラムで処理されるためマ
イクロプログラムルーチンを共有しており、マイクロR
OM番地は互いに等しい、また、各命令のオペランドの
レジスタ番号及びオペランドサイズがRコード43の種
々のフィールドにマイクロプログラムに対するパラメー
タとして反映されている。
第40図に具体的なテスト命令の例を示す。各命令の意
味は以下の通りである。
TESTALUOPE   :  ALUノ各種演算機
能をテストする第2連続実行命令。
TESTAADD    ニオペランドアドレス計算部
をテストする第2連続実行 命令。
TCMP、B R8,RO: CMP、B R8,RO
と同じマイクロプログラムルーチンを実 行する第1連続実行命令。
33阿OL、I(R7,R15:門υL、)I R7,
R15のマイクロプログラムルーチンのエンド リ番地から3番地光のマイ クロ命令を1つだけ実行す る第1ステツプ実行命令。
01lTPtlT R3:レジスタ3の4バイトのデー
タをAAババス0とアドレス 出力回路58とを通じてマイ クロプロセッサ外部へ出力 する第1連続実行命令。
INPIJT  R5Fデータ演算部56中のDDレジ
スタ29の4バイトのデータ をレジスタ5へ転送する第 1連続実行命令。
テスト命令ではRコード43のOPlを変更することが
できないため、上述のテスト命令の内、TCMP、Wあ
るいは53MIIL、 l(の命令を実行する前に、O
PIが“0000”になるプロセッサ命令をプロセッサ
モードで実行しておく必要がある。しかし、本発明のマ
イクロプロセッサではテスト命令の下位32ビツトの各
ビットの設定を自由に行い得ることにより、テストモー
ドでマイクロプロセッサの各部分を診断する診断専用の
マイクロプログラムルーチンもプロセッサ命令のマイク
ロプログラムルーチンもテスト命令で実行できる。
(7,2)  rテスト結果の出力」 本発明のマイクロプロセッサがテストモードにおいてテ
スト結果を出力するタイミングをテスト命令の取込みタ
イミングと共に第6図のタイミングチャートに示す。
テストモードでは、アドレス出力回路58は^Aババス
0の内容で常時出力ピンAO:3Lを駆動しており、メ
モリサイクルは起動されない。テスト命令に従ってAA
ババス0ヘテスト結果が出力されるとその値が出力ビン
A(h31へ出力される。また、命令フェッチ部51が
テストされる場合はテスト結果をDDババス9とデータ
入出力回路59とを介してマイクロプロセッサ外部へ出
力する。この際には出力ビン^0:31でテスト結果を
出力する場合と同じく、DBGACKIビン18のアサ
ート朋間中、データ入出力回路59は00バス19の内
容で入出力とンロ0:31を駆動する。この場合もメモ
リサイクルは起動されない。
(7,3)  rステップ実行命令の動作」本発明のマ
イクロプロセッサでは、ステップ実行命令を実行させる
と、マイクロ命令が1命令だけ実行され、次のテスト命
令を待機する状態となる0本発明のマイクロプロセッサ
ではステップ実行命令を実行する際は、マイクロ命令の
一部でありマイクロプログラムの実行シーケンスを制御
するシーケンスフィールドをマイクロシーケンサへ転送
する部分をハードウェア的にステップ実行命令の実行状
態とする。
第48図は本発明のマイクロプロセッサのマイクロ命令
のフィールド分割を示す模式図である。
本発明のマイクロプロセッサのマイクロ命令は第48図
に示すように10111のフィールドに分割される。各
フィールドはマイクロ命令デコーダによりデコードされ
、マイクロ命令で指定される全制御線と1・対1に対応
する信号となる。マイクロプログラムの実行シーケンス
を制御するフィールドは6ビツトであり、ピントパタン
により第49図に示すような制御を行う。
第50図はステップ実行命令を実行させるための制御回
路の構成を示す回路図である。
図中、61はマイクロRO1+12から出力されたマイ
クロ命令の6ビツトのシーケンスフィールド66をラン
チするシーケンスフィールド出力ランチである。
62はIRLO:2ビン16から取込まれたテスト命令
の上位3ビツトをラッチするfRL入カシカラッチる。
63はrl?L入カラ7チ62の出力65に従ってシー
ケンスフィールド出力ラッチ61の出力67を次に実行
すべきマイクロ命令の番地を決定するマイクロシーケン
サ64へそのまま信号!68を介して出力するか、ある
いは強制的にrololllJにした上で信号線68を
介して出力するかを制御するマイクロシーケンス変更回
路である。
ステップ実行命令では第34図及び第35図に示すよう
に、命令の上位2ビツトが「11」であり、このときマ
イクロシーケンス変更回路はシーケンスフィールド出力
ラッチ61の出力67の値に拘わらすrololllJ
を信号線68へ出力する。第49図に示すようにrol
olllJはマイクロプログラムルーチンの終了を示す
ビットバタンであり、マイクロシーケンサ64はマイク
ロプログラムが終了して次のテスト命令の入力待ち状態
となる。
シーケンスフィールド出力ラッチ61の出力67はデー
タ演算部56八も供給されている。データ演算部56は
この信号に従って作業用スタックポインタ値の正規スタ
ックポインタへの転送、あるいは作業用ステータスフラ
ッグの正規プログラムステータスレジスタへの転送等を
行う、このため、データ演算部56へ供給されるシーケ
ンスフィールド出力ラッチ61の出力信号は本来のマイ
クロ命令で指定されたビットバタンである出力67とす
る。これによりデータ演算部56はステップ実行命令を
実行する場合もその他の場合と同じ動作をする。
(7,4)  r自己診断機能」 本発明のマイクロプロセッサではテスト命令で起動する
診断用マイクロプログラムルーチン以外にも、マイクロ
プロセッサがリセットされた場合に、各部を自己診断す
るマイクロプログラムルーチンが内蔵されている。本発
明のマイクロプロセッサではマイクロl?or+12.
命令デコード部52.オペランドアドレス計算部54.
データ演算部56の各部を自己診断する。第41図に本
発明のマイクロプロセッサの自己診断用のマイクロプロ
グラム全体の処理手i頃のフローチャートを示す。
自己診断は本発明のマイクロプロセッサをテストモード
にして実行される。本発明のマイクロプロセッサでは自
己診断のために2つのカウンタと4つのリニアフィード
バックシフトレジスタとが内蔵されている。
カウンタは自己診断のためのデータ発生器として動作し
、リニアフィードバックシフトレジスタは疑似乱数発生
器またはデータ圧縮器として動作する。リニアフィード
バックシフトレジスタを疑似乱数発生器あるいはデータ
圧縮器として使用する手法、リニアフィードバックシフ
トレジスタを使用してLSIに自己診断機能を持たせる
手法については国中、[テストの手を借りずにテストが
できる論理LSI J 、日経エレクトロニクス、19
83年6月20号、pp、124−133で述べられて
いる。
まず、プロセッサ各部の初期設定のためのリセットシー
ケンスのマイクロプログラムの最後でプロセッサモード
からテストモードに遷移し、マイクロROM12のテス
トシーケンスの先頭ヘジャンプする。これにより、マイ
クロROM12の自己診断が実行される。マイクロRO
M12の自己診断の結果が0番の汎用レジスタのビット
31に反映された後、命令デコード部52を診断するた
めのテストシーケンスの先頭ヘジャンブする。
命令デコード部52の自己診断が実行され、その結果が
0番の汎用レジスタのビット30に反映された後、オペ
ランドアドレス計算部54を診断するためのテストシー
ケンスの先頭ヘジャンブする。
オペランドアドレス計算部54の自己診断が実行され、
その結果が0番の汎用レジスタのビット29に反映され
た後、データ演算部56を診断するためのテストシーケ
ンスの先頭ヘジャンプする。
データ演算部56の自己診断が実行され、その結果が0
番の汎用レジスタのビット28に反映された後、テスト
モードからプロセッサモードへ遷移する。
(7,4,1)  rマイクロ番地門の自己診断J本発
明のマイクロプロセッサでは自己診断時に、マイクロプ
ログラムカウンタ11をゼロから順番にカウントアツプ
してマイクロROM12中のマイクロ命令を順次的に読
出し、それをマイクロROM12の出力部にある第1リ
ニアフイードバツクシフトレジスタLFSI?24でデ
ータ圧縮する。データ圧縮結果が特定の値になったか否
かは1ビツトで示され、それをマイクロプログラムで読
をる。本発明のマイクロプロセッサのマイクロROM1
2の自己診断用マイクロプログラムルーチンのフローチ
ャートを第42図に示す。
まず、プロセッサ各部の初期設定のためのリセットシー
ケンスのマイクロプログラムの最後でプロセッサモード
からテストモードに遷移し、マイクロROM12のテス
トシーケンスの先頭ヘジャンブする。そして、マイクロ
プログラムカウンタに“0″がセットされ、第1リニア
フイードバツクシフトレジスタLPSR24が初期化さ
れる。
次にマイクロプログラムカウンタが順次インクリメント
され、その時点のマイクロ110M12の出力が第1リ
ニアフイードバツクシフトレジスタLFSR24でデー
タ圧縮されて蓄積される。
圧縮されたデータの最終結果が総て“O′であるか否か
を示す1ビツトがチエツクされ、YESであれば0番の
汎用レジスタのと71・31が“0”にされ、NOであ
れば0番の汎用レジスタのビット31が”ビにされる。
この後、命令デコード部52のテストシーケンスへジャ
ンプする。
また、マイクロROM12の出力部の第1リニアフイー
ドバツクシフトレジスタLFSR24には1つのマイク
ロ番地(11’9FF番地:H“は16進数を表す)が
割当てられており、ll’9PF番地のマイクロ命令を
ステップ実行命令で実行すると第1リニアフイードバツ
クシフトレジスタLPSR24の内容がマイクロ命令と
して実行される。
(7,4,2)  r命令デコード部の自己診断機能」
本発明のマイクロプロセッサの命令デコード部52は入
力部に17ビノトのカウンタ28を有し、Rコードラン
チ部14とAコードラッチ部15とにデータ圧縮器とし
て第2.第3リニアフィードバックシフトレジスタLF
SR25,26を有する。リセット時にはカウンタ28
から17ビツトのビットバタンを[B”0000000
0000000000Jから「B″111111111
11111111Jまですべての種類発生してそのビッ
トバタンをデコードし、デコード結果を上記の2つのデ
ータ圧縮器としての第2.第3リニアフイードバツクシ
フトレジスタLFSR25,26へ入力する。データ圧
縮結果が特定の値になったか否かは各1ビツトで示され
、マイクロプログラムでそれを読取ることができる。本
発明のマイクロプロセッサの命令デコード部52の自己
診断用マイクロプログラムルーチンのフローチャートを
第43図に示す。
まず、第2.第3リニアフイードバツクシフトレジスタ
LPSR25,26が初期された後、命令デコード部5
2の入力部の17ビワトカウンタ28が“O”に初期化
される。
カウンタ28がJu11次インクリメントされ、その時
点の命令デコード部52の出力を第2リニアフイードバ
ツクシフトレジスタLPSR25と第3リニアフイード
バンクシフトレジスタLPSR26とでデータ圧縮して
蓄積する。
圧縮されたデータの最終結果が双方共聴て0”であるか
否かがチエツクされ、YESであればO#の汎用レジス
タのビット30が0”にされ、Noであれば0番の汎用
レジスタのビット30が“1”にされる。この後、オペ
ランドアドレス計算部54のテストシーケンスへジャン
プする。
(7,4,3)  rデータ演算部とオペランドアドレ
ス計算部の自己診断機能」 データ演算部56とオペランドアドレス計算部54との
自己診断時にはマイクロプロセッサ外部からのデータ入
力とマイクロプロセッサ外部へデータ出力は行われない
。データ演算部56とオペランドアドレス計算部54と
の自己診断に使用するデータはデータ演算部にある疑似
乱数発生器兼データ圧縮器である第4リニアフイードバ
ツクシフトレジスタLPSR27または定数ROMある
いはマイクロ命令中のリテラルフィールドから得る。
自己診断結果は第4リニアフイードバツクシフトレジス
タLPSR27あるいはレジスタへ出力される。
自己診断の結果、マイクロプロセッサに不具合があるか
否かの判断はリセット後に汎用レジスタの内容をプロセ
ッサ命令で読出すことにより行う。
本発明のマイクロプロセッサのマイクロプログラムでは
第4リニアフイードバツクシフトレジスタLFSR27
は1つのワーキングレジスタとして指定することが可能
であり、乱数発生器として第4リニアフイードバツクシ
フトレジスタLPSR21の内容を読出すこと及びデー
タ圧縮器として第4リニアフイードバンクシフトレジス
タLPSR27ヘデータを書込むことをマイクロプログ
ラムで指定することが可能である。
(7,5)  rスキャンバスJ 本発明のマイクロプロセッサでは、第1図に示す様に、
マイクロROM12の出力部とRコードラッチ部14と
Aコードランチ部15の3つのリニアフィードバンクレ
ジスタLPSR24,25,26のシフトパスとが結合
されていて1つのスキャンバスとして構成されている。
スキャンバス命令により、これらのリニアフィードバッ
クシフトレジスタLPSR24,25,26に任意の値
を設定すること及びこれらのリニアフィードバンクシフ
トレジスタLPSR24,25,26のイ直を二売出す
ことが可能である0本発明のマイクロプロセッサではこ
のスキャンバス命令でOPIフィールドを含む全Rコー
ドフィールドの書換えを行う。また、スキャンバス命令
では、Rコード43及びAコード42に必要な値をセン
トすることにより故障原因の解明を行い、故障する可能
性が高い部分と低い部分との特定等を行う。
本発明のマイクロプロセッサは上述のスキャンパスを用
いて外部から任意のマイクロ命令を第1リニアフィード
バソクシフトレジスクL P S R24にセントし、
それを実行することができる。
ここで、スキャンバスにより外部から入力したマイクロ
命令を実行する手順を説明する。第52図は第1リニア
フイードバツクシフトレジスタLPSR24を含むマイ
クロROM12の構成を示すブロック図である。
マイクロプログラムカウンタ11から人力されたアドレ
ス70はアドレスデコーダ71でデコードされ、ROM
アレイ72に記憶されているマイクロ命令がROMアレ
イ72の出力信号76として第1リニアフイードバツク
シフトレジスタしFSR24へ入力され、信号75が“
1”になるタイミングで第1リニアフイードバツクシフ
トレジスタLPSR24の内容が書換わり、マイクロR
O?112の出力信号としてマイクロ命令実行制御部1
3へ出力される。
アドレスデコーダ71はアドレス70が16進数で9F
Fである場合に第1 LPSR内容書換え禁止信号71
を“ドにし、その他のアドレスである場合は同信号71
を“01にする。従って第1リニアフイードバツクシフ
トレジスタLPSR24の入力指示信号74により出力
信号76の取込みが指示されてもアドレス70が16進
数で9FFであれば信号75は10”を維持し、第1リ
ニアフイードバツクシフトレジスタLFSI124の内
容は書変えられない。
従って、スキャンパス命令により実行したいマイクロ命
令を第1リニアフイードバツクシフトレジスタLPSR
24にセントし、次にマイクロROM番地が16進数で
9FFのマイクロ命令を実行させるためのテスト命令を
実行すると、第1リニアフイードバツクシフトレジスタ
LPSR24にスキャンインされたマイクロ命令が実行
される。
(7,6)  rテストモードとプロセッサモードの切
換え」 本発明のマイクロプロセッサではテストモードとプロセ
ッサモードの切換えをマイクロプロセッサをリセットす
ることなしに行い得るように構成しである このため、本発明のマイクロプロセッサをLSIテスタ
でテストする場合はテスト命令とプロセッサ命令を組合
わせて使用する。テストモードとプロセッサモードとの
切換えの状態を概念図として第51図に示す。
プロセッサモードからテストモードへの遷移はテスト割
込みにより可能であり、テストモードからプロセッサモ
ードへの遷移は専用のテスト命令(EOT命令)の実行
により可能である(7.6.1)  rテストモードへ
の遷移」プロセッサモードからテストモードへの遷手多
は専用の割込みであるテスト割込みにより可能である。
テスト割込みはTESTIビンのアサートにより受付け
られる。なお、このテスト割込みはプロセッサ命令の切
れ目で受付けられるマスク不可能割込みである。
本発明のマイクロプロセッサでは、テスト割込みを受付
けた場合には、各種のレジスタやラッチの内容をテスト
割込みを受付けた直前に実行した命令の終了状態のまま
保持してプロセッサモードからテストモードに遷移し、
テスト命令入力待ち状態となる。
(7,6,2)  rテストモードへの遷移」テストモ
ードからプロセッサモードへの遷移はは専用のテスト命
令(EOT命令)の実行により可能である。
本発明のマイクロプロセサでは、テストモードでEOT
命令を実行した場合には、各種のレジスタ及びラッチの
内容がEOT命令を実行する前の値に保持されたままで
テストモードからプロセッサモードに遷移し、特定の作
業用レジスタ (EBレジスタ)の内容をpc値として
そのpc値からプロセッサ命令の実行が開始される。E
Bレジスタはマイクロプログラムから操作可能なレジス
タであり、EOT命令の実行直前にEBレジスタの値を
テスト命令でセットすることにより、プロセッサモード
に遷移した後、任意のpc値からプロセッサ命令を実行
することが可能である。
(7,7)  r各部のテスト動作」 ここで、本発明のマイクロプロセッサを診断するための
テスト動作の例を述べる。このテスト動作は例えばLS
Iテスタを用いて容易に行うことができる。
(7,7,1)  rマイクロI?OM部」マイクロR
OM部55のテストはリセット時の自己診断によるマイ
クロROM12のテストと、プロセッサモードでの各命
令の実行及びテストモードでの各テスト命令の実行によ
り行われる。
(7,7,2)  r命令フェッチ部」命令フェッチ部
51には命令キューとブランチバッファとがある。この
2つは専用のテストシーケンスによりテストモードとプ
ロセッサモードとを組合わせてテストする。命令フェッ
チ部51のテスト動作のフローチャートを第44図に示
す。
命令キュー及びブランチバッファは一種のRAMであり
、第44図のフローチャートに従ってテストシーケンス
を書込むデータ値を種々 (オール“1”。
オール“0′あるいはランダム数等)に変化させて実行
することによりテストする。
まず、テスト割込みによりプロセッサモードからテスト
モードへ遷移する。テスト命令により命令フェッチ部5
1を命令キュー出力停止状態とする。
次に、ロード命令により命令キューのテストのために命
令キューに書込む4ワードのデータの先頭番地AをDD
レジスタ29に書込む。テスト命令により番地AをEB
レジスタへ転送する。次に、EOT命令を実行し、命令
フェッチ部51を命令キュー出力停止状態のままでプロ
セッサモードへ遷移させる。
プロセッサモードで命令フェッチ部51は番地へから4
ワードのデータをフェッチする。これにより命令キュー
がフル状態になる。
再度テスト割込みによりテストモードへ遷移し、テスト
命令により命令キューの内容をDDババス9とデータ入
出力回路59とを通じてプロセッサ外部へ読出す。テス
ト命令により命令フj−7チ部51の命令キュー出力停
止状態を解除する。更に、テスト命令により命令フェッ
チ部51を命令キュー常時空状態にする。
ロード命令によりブランチバッファのテストのためにブ
ランチバッファに書込まれるデータの先頭番地BをDD
レジスタ29に書込む。テスト命令により番地Bを83
レジスクへ転送する0次に、EOT命令を実行し、命令
フェッチ部51を命令キュー常時空状態のままでプロセ
ッサモードに遷移させる。
命令フェッチ部51がB番地から256バイトのデータ
をフェッチし、ブランチバッファの全エントリにテスト
データを書込む。
再度テスト割込みによりテストモードへ遷移し、テスト
命令によりブランチバッファの内容を00バス19とデ
ータ入出力回路59とを通じてプロセッサ外部へ続出す
。テスト命令により命令フェッチ部51の命令キュー常
時空状態を解除する。更に、EOT命令によりプロセッ
サへ遷移する。
(7,7,3)  r命令デコード部」命令デコード部
52のテストはリセット時の自己診断による全ビンドパ
クンに対するデコードとプロセッサモードでの各種プロ
セッサ命令の実行とにより実行される。
命令デコード部52に故障がある場合の故障場所の特定
あるいはより完全なテストを行う場合には、Rコードラ
ッチ部14とへコードランチ部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.アドレス出力口fa15日を通じて外部へ出力
する。この後、EOT命令を実行してプロセッサモード
へ遷移する。
(7,7,5)  rデータ演算部」 データ演算部56はリセット時の自己診断による簡易テ
ストの他、テストモード及びプロセッサモードでの詳細
テストも行える。
テストモードではスキャンパス命令を用いてRコードラ
ッチ部14の第2リニアフイードバンクシフトレジスタ
LPSR25に種々のRコード43の値をセットするこ
とにより、非常に詳細なテスト及び故障の特定が行われ
る。データ演算部56の故障原因を特定する場合には外
部からスキャンパス命令で任意のマイクロ命令を第1リ
ニアフイードバツクシフトレジスタLFSI?24にセ
ットしてこの命令を実行させることにより、マイクロR
OM12には存在しない種々のマイクロ命令を実行させ
てより自由度の高いテストを実行する。第1リニアフイ
ードバフクシフトレジスタLFSR24にセットしたマ
イクロ命令を用いたデータ演算部56の故障原因特定動
作の一例のフローチャートを第46図に示す。
まず、プロセッサモードにおいてデータ演算部56の汎
用レジスタにテストプログラムをロードする0次に、テ
スト割込みによりテストモードに遷移する。
スキャンパス命令により第1リニアフイードバンクシフ
トレジスタLFSR24に故障診断用マイクロ命令i1
をセントする。l+’9FF(H’は16進数を表す)
番地のマイクロ命令を実行するステップ実行命令により
マイクロ命令h1を実行する。
スキャンパス命令により第1リニアフイードバツクシフ
トレジスタLFSl+24に故障診断用マイクロ命令間
をセットする。H’9FF番地のマイクロ命令を実行す
るステップ実行命令によりマイクロ命令12を実行する
。この結果は汎用レジスタに保持される。
テスト命令により、汎用レジスタに保持されているマイ
クロ命令M2の実行結果をプロセッサ外部へ読出す。こ
の後、EOT命令を実行してプロセッサモードへ遷移す
る。
次に、ステップ実行命令を使用してマイクロプログラム
ルーチンをステップ実行し、データ演算部の故障原因を
特定する動作の一例のフローチャートを第47図に示す
まず、プロセッサモードにおいてデータ演算部56の汎
用レジスタにテストデータをロードする。
次に、テスト割込みによりテストモードに遷移させ、乗
算を実行するためのマイクロプログラムルーチンの第1
のステップをステップ実行命令により実行する。テスト
命令によりAUU出力ラッチの中間結果を外部へ読出す
次に、乗算を実行するためのマイクロプログラムルーチ
ンの第2のステップをステップ実行命令により実行する
。テスト命令によりALU出力ランチの中間結果を外部
へ読出す。
上述の処理を反復する。
乗算を実行するためのマイクロプログラムルーチンの最
終ステップをステップ実行命令により実行する。
テスト命令により乗算結果を外部へ読出す。この後、E
OT命令を実行してプロセッサモードへ遷移する。
この例では乗算を行うマイクロプログラムルーチンを1
ステツプずつ実行して中間結果を順次マイクロプロセッ
サ外部へ読出している。乗算を行うマイクロプログラム
ルーチンが正しく動作しない故障が生じている場合、こ
のテスト方法によりALIIでの途中の演算に故障があ
るのか、マイクロプログラムルーチンの最終ステップを
実行する際に演算結果を転送する回路に故障があるのか
等、(8)「本発明の他の実施例」 上述の実施例では、ステップ実行命令はテストモードに
おいてのみ実行可能であるが、たとえば第38図に示さ
れているRコード43のマイクロプログラムルーチンの
エントリ番地指定フィールドを12ビツトにして、プロ
セッサ命令にステップ実行命令と同様にマイクロ命令を
1ステツプのみ実行する命令を追加することも可能であ
る。
また、マイクロプロセンサ内部にステップ実行モードを
示すビットを記憶するレジスタを設け、このビットがセ
ットされている場合にはマイクロプログラムがステップ
実行されるように構成することも可能である。
また、上述の実施例ではテスト命令により容易にテスト
可能な機能ブロックをマイクロプログラムを構成する一
部の機能ブロックに限っているが、PCC演算部5埠 命令をサポートすることも勿論可能である。また、テス
ト命令の種類及びフォーマントを種々追加することも勿
論可能である。
C発明の効果1 以上のように本発明のマイクロプロセッサでは、パイプ
ライン処理により高速処理を行う通常のプロセッサ命令
の他にマイクロプロセッサを診断するテスト命令を存し
ている。そして、テストモードで種々のテスト命令を実
行することを可能に構成しているため、マイクロプロセ
ッサのテストプログラム設計が容易になり、従来のマイ
クロプロセッサに比してテストプログラム設計人工が大
幅に削減される。
テストモードにおいては、スキャンイン命令によりマイ
クロROMの出力部のシフトレジスタに外部からセット
した任意のマイクロ命令を実行することが可能である。
従って、部分的に故障があるマイクロプロセッサを診断
する場合にはこの機能を利用して自由度が高いテストプ
ログラムを設計することが可能であり、このためテスト
プログラムの設計が容易になり、またそれに嬰する人工
が大幅に削減される。特に、マイクロプロセッサがLS
Iのマスクバタン設計のマージン不足に起因して故障を
起こし易い部分を含むために製造歩留りが低いような場
合に故障個所を特定する際等には、故障の状況に応じて
テストプログラムを設計することが容易なためそれに要
する時間も短(て済み、少ない人工で種々のテストプロ
グラムが設計可能であり、従って故障場所を特定作業の
高効率で行える。
また、マイクロROM出力部のシフトレジスタにマイク
ロRO)’lの一つのアドレスを割当てているので、外
部からマイクロ命令を入力して格納することにより、任
意のマイクロ命令を実行させることが可能である.この
ため、外部から入力してシフトレジスタに記憶さセたマ
イクロ命令もマイクロ110M中のマイクロ命令と同一
の制御方法により実行可能なので、ハードウェア量の増
加は微々たるものである。
【図面の簡単な説明】
第1Ifflは本発明のマイクロプロセッサのテストモ
ードでの動作状態の概念を示すブロック図、第2図は本
発明のマイクロプロセッサの一Fjl[例を示すブロッ
ク図、 第3図は本発明のマイクロプロセッサの外部ビンを示す
模式図、 第4図は本発明のマイクロプロセッサのバイブライン処
理の概要を示す模式図、 第5図は本発明のマイクロプロセッサの基本メモリアク
セスサイクルのタイミングチャート、第6図は本発明の
マイクロプロセッサのテスト命令の取込みとテスト結果
の出力状態を示すタイミングチャート、 第7図は従来のマイクロプロセッサの一構成例を示すブ
ロック図、 第8図は本発明のマイクロプロセッサのメモリ上での命
令の並び方を示す模式図、 第9図から第17図は本発明のマイクロプロセッサのプ
ロセッサ命令のフォーマントを示す模式図、第18図か
ら第31図は本発明のマイクロプロセッサのプロセッサ
命令のアドレッシングモードを説明するための模式図、 第32図から第37図は本発明のマイクロプロセッサの
テスト命令のフォーマットを示す模式図、第38図は本
発明のマイクロプロセッサのプロセッサ命令のデコード
結果であるRコードのフォーマントを示す模式図、 第39図は本発明のマイクロプロセッサのプロセッサ命
令のデコード結果であるRコードの例を示す模式図、 第40図は本発明のマイクロプロセッサのプロセッサ命
令のテスト命令の例を示す模式図、第41図は本発明の
マイクロプロセッサの自己診断用のマイクロプログラム
ルーチンのフローチャート、 第42図は本発明のマイクロプロセッサのマイクロRO
?Iの自己診断用のマイクロプログラムルーチンのフロ
ーチャート、 第43図は本発明のマイクロプロセッサの命令デコード
部の自己診断用のマイクロプログラムルーチンのフロー
チャート、 第44図は本発明のマイクロプロセンサの命令フェッチ
部のテストシーケンスの一例を示すフローチャート、 第45図は本発明のマイクロプロセッサのアドレス計算
部のテストシーケンスの一例を示すフローチャ−ト、 第46図はスキャンパス命令を用いた本発明のマイクロ
プロセッサのデータ演算部の故障原因特定動作の一例を
示すフローチャート、 第47図はステップ実行命令を用いた本発明のマイクロ
プロセッサのデータ演算部の故障原因特定動作の一例を
示すフローチャート、 第48図はマイクロ命令フィールドを示す模式図、第4
9図はマイクロ命令のシーケンスフィールドを示す模式
図、 第50図はステップ実行命令のための制御回路の構成を
示すブロック図、 第51図はプロセッサモードとテストモードの遷移状態
の概念を示す模式図、 第52図はマイクロROMの一構成例を示すブロック図
である。 10・・・マイクロシーケンス制御部  11・・・マ
イクロプログラムカウンタ  12・・・マイクロ11
0M13・・・マイクロ命令実行制御部  21・・・
D (0)ピン24・・・ifリニアフィードバックシ
フトレジスタ29・・・DDレジスタ  51・・・命
令フェッチ部52・・・命令デコード部  56・・・
データ演算部なお、各図中同一符号は同−又は相当部分
を示す。

Claims (2)

    【特許請求の範囲】
  1. (1)レジスタと演算器とを備え、前記レジスタに記憶
    されたデータをオペランドとしてマイクロ命令に従って
    前記演算器により演算を実行するデータ演算部と、 第1のアドレスを含む複数のアドレスそれぞれにマイク
    ロ命令を格納したマイクロROMと、 マイクロ命令を格納し、第2のアドレスが付与されたレ
    ジスタと、 該レジスタにマイクロ命令を入力する信号入力線と、 第1の命令の実行に際しては、前記第1のアドレスに格
    納されているマイクロ命令に従って前記データ演算部に
    演算を実行させ、第2の命令の実行に際しては、前記第
    2のアドレスに格納されているマイクロ命令に従って前
    記データ演算部に演算を実行させる手段とを備えたこと
    を特徴とするマイクロプロセッサ。
  2. (2)レジスタと演算器とを備え、前記レジスタに記憶
    されたデータをオペランドとしてマイクロ命令に従って
    前記演算器により演算を実行するデータ演算部と、 マイクロ命令が格納されているアドレスを記憶するマイ
    クロプログラムカウンタと、 第1のアドレスを含む複数のアドレスそれぞれにマイク
    ロ命令を格納したマイクロROMと、 外部からマイクロ命令を入力するための信号入力線と、 前記マイクロROMから出力されるマイクロ命令及び前
    記入力線を介して外部から与えられるマイクロ命令の双
    方を格納可能なレジスタと、 該レジスタの内容に従って前記データ演算部を制御する
    第1の制御部と、 前記マイクロプログラムカウンタが第1のアドレスを指
    示している場合は前記マイクロROMから出力されるマ
    イクロ命令の前記レジスタへの格納を許可し、前記マイ
    クロプログラムカウンタが第2のアドレスを指示してい
    る場合は前記マイクロROMから出力されるマイクロ命
    令の前記レジスタへの格納を禁止する第2の制御部と を備えたことを特徴とするマイクロプロセッサ。
JP1141543A 1989-06-01 1989-06-01 マイクロプロセッサ Expired - Lifetime JPH0719215B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP1141543A JPH0719215B2 (ja) 1989-06-01 1989-06-01 マイクロプロセッサ
US07/531,263 US5226149A (en) 1989-06-01 1990-05-31 Self-testing microprocessor with microinstruction substitution

Applications Claiming Priority (1)

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

Publications (2)

Publication Number Publication Date
JPH035835A true JPH035835A (ja) 1991-01-11
JPH0719215B2 JPH0719215B2 (ja) 1995-03-06

Family

ID=15294415

Family Applications (1)

Application Number Title Priority Date Filing Date
JP1141543A Expired - Lifetime JPH0719215B2 (ja) 1989-06-01 1989-06-01 マイクロプロセッサ

Country Status (2)

Country Link
US (1) US5226149A (ja)
JP (1) JPH0719215B2 (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0556826A2 (en) * 1992-02-19 1993-08-25 Nec Corporation Microprocessor with self-diagnostic test function
JPH05334114A (ja) * 1992-04-27 1993-12-17 Intel Corp コンピュータ回路、マイクロプロセッサ、外部コマンド方法及びマイクロプロセッサを動作させる方法

Families Citing this family (32)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
IT1251565B (it) * 1991-09-10 1995-05-17 Sgs Thomson Microelectronics Procedimento di verifica delle memorie di un microcalcolatore programmato, mediante un microprogramma incorporato nello stesso microcalcolatore.
JP3147432B2 (ja) * 1991-10-09 2001-03-19 株式会社日立製作所 パイプライン処理装置
JPH05143476A (ja) * 1991-11-20 1993-06-11 Fujitsu Ltd 命令キユーの診断方式
US5561761A (en) * 1993-03-31 1996-10-01 Ylsi Technology, Inc. Central processing unit data entering and interrogating device and method therefor
TW234172B (en) * 1994-02-08 1994-11-11 Keridian Semiconductor Inc Method and apparatus for testing the functionality of a microprocessor
US5699506A (en) * 1995-05-26 1997-12-16 National Semiconductor Corporation Method and apparatus for fault testing a pipelined processor
US5732209A (en) * 1995-11-29 1998-03-24 Exponential Technology, Inc. Self-testing multi-processor die with internal compare points
US5964863A (en) * 1996-04-15 1999-10-12 Motorola, Inc. Method and apparatus for providing pipe fullness information external to a data processing system
US6003107A (en) * 1996-09-10 1999-12-14 Hewlett-Packard Company Circuitry for providing external access to signals that are internal to an integrated circuit chip package
US5881224A (en) * 1996-09-10 1999-03-09 Hewlett-Packard Company Apparatus and method for tracking events in a microprocessor that can retire more than one instruction during a clock cycle
US5887003A (en) * 1996-09-10 1999-03-23 Hewlett-Packard Company Apparatus and method for comparing a group of binary fields with an expected pattern to generate match results
US5867644A (en) * 1996-09-10 1999-02-02 Hewlett Packard Company System and method for on-chip debug support and performance monitoring in a microprocessor
US5880671A (en) * 1996-10-31 1999-03-09 Hewlett-Packard Company Flexible circuitry and method for detecting signal patterns on a bus
US5956476A (en) * 1996-10-31 1999-09-21 Hewlett Packard Company Circuitry and method for detecting signal patterns on a bus using dynamically changing expected patterns
US5956477A (en) * 1996-11-25 1999-09-21 Hewlett-Packard Company Method for processing information in a microprocessor to facilitate debug and performance monitoring
US6009539A (en) * 1996-11-27 1999-12-28 Hewlett-Packard Company Cross-triggering CPUs for enhanced test operations in a multi-CPU computer system
US5881217A (en) * 1996-11-27 1999-03-09 Hewlett-Packard Company Input comparison circuitry and method for a programmable state machine
US5793687A (en) * 1996-12-03 1998-08-11 Mitsubishi Semiconductor America, Inc. Micro ROM testing system using micro ROM timing circuitry for testing operations
US5991898A (en) 1997-03-10 1999-11-23 Mentor Graphics Corporation Arithmetic built-in self test of multiple scan-based integrated circuits
US6173425B1 (en) 1998-04-15 2001-01-09 Integrated Device Technology, Inc. Methods of testing integrated circuits to include data traversal path identification information and related status information in test data streams
JP3293125B2 (ja) * 1998-07-24 2002-06-17 日本電気株式会社 オンチップマルチプロセッサシステムにおける初期設定・診断方式
US6128727A (en) 1998-08-21 2000-10-03 Advanced Micro Devices, Inc. Self modifying code to test all possible addressing modes
US6374370B1 (en) 1998-10-30 2002-04-16 Hewlett-Packard Company Method and system for flexible control of BIST registers based upon on-chip events
US6643800B1 (en) * 2000-02-02 2003-11-04 Hewlett-Packard Development Company, L.P. Method and apparatus for testing microarchitectural features by using tests written in microcode
DE10041697A1 (de) * 2000-08-24 2002-03-14 Infineon Technologies Ag Verfahren zum Testen einer programmgesteuerten Einheit durch eine externe Testvorrichtung
US7076616B2 (en) * 2003-03-24 2006-07-11 Sony Corporation Application pre-launch to reduce user interface latency
US7757215B1 (en) * 2006-04-11 2010-07-13 Oracle America, Inc. Dynamic fault injection during code-testing using a dynamic tracing framework
US7904701B2 (en) * 2007-06-07 2011-03-08 Intel Corporation Activating a design test mode in a graphics card having multiple execution units to bypass a host cache and transfer test instructions directly to an instruction cache
US7802146B2 (en) * 2007-06-07 2010-09-21 Intel Corporation Loading test data into execution units in a graphics card to test execution
US7793187B2 (en) * 2007-06-07 2010-09-07 Intel Corporation Checking output from multiple execution units
CN102226947B (zh) * 2011-04-02 2014-03-26 电子科技大学 一种基于线性反馈移位寄存器的可控测试向量发生器
DE102016203270B3 (de) 2016-02-29 2017-08-10 Infineon Technologies Ag Mikrocontroller und Verfahren zum Testen eines Mikrocontrollers

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3924110A (en) * 1973-09-13 1975-12-02 Texas Instruments Inc Calculator system featuring a subroutine register
US3921142A (en) * 1973-09-24 1975-11-18 Texas Instruments Inc Electronic calculator chip having test input and output
US4302445A (en) * 1980-01-18 1981-11-24 Institut Merieux Method for concentrating and purifying antihemophilic factor or factor VIII
US4482953A (en) * 1980-05-30 1984-11-13 Fairchild Camera & Instrument Corporation Computer with console addressable PLA storing control microcode and microinstructions for self-test of internal registers and ALU
US4402042A (en) * 1980-11-24 1983-08-30 Texas Instruments Incorporated Microprocessor system with instruction pre-fetch
US4490783A (en) * 1981-07-02 1984-12-25 Texas Instruments Incorporated Microcomputer with self-test of microcode
US4507727A (en) * 1982-02-11 1985-03-26 Texas Instruments Incorporated Microcomputer with ROM test mode of operation
US4641308A (en) * 1984-01-03 1987-02-03 Texas Instruments Incorporated Method of internal self-test of microprocessor using microcode
US4811345A (en) * 1986-12-16 1989-03-07 Advanced Micro Devices, Inc. Methods and apparatus for providing a user oriented microprocessor test interface for a complex, single chip, general purpose central processing unit
US5084814A (en) * 1987-10-30 1992-01-28 Motorola, Inc. Data processor with development support features

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0556826A2 (en) * 1992-02-19 1993-08-25 Nec Corporation Microprocessor with self-diagnostic test function
EP0556826A3 (en) * 1992-02-19 1995-09-13 Nec Corp Microprocessor with self-diagnostic test function
JPH05334114A (ja) * 1992-04-27 1993-12-17 Intel Corp コンピュータ回路、マイクロプロセッサ、外部コマンド方法及びマイクロプロセッサを動作させる方法

Also Published As

Publication number Publication date
JPH0719215B2 (ja) 1995-03-06
US5226149A (en) 1993-07-06

Similar Documents

Publication Publication Date Title
JPH035835A (ja) マイクロプロセッサ
KR101592074B1 (ko) 조건부 루프들을 벡터화하기 위한 명령어들 및 로직
JP2678527B2 (ja) キャッシュメモリ装置
JP2507638B2 (ja) デ―タ処理装置
JPH07114469A (ja) データ処理装置
US5502827A (en) Pipelined data processor for floating point and integer operation with exception handling
JPH02173823A (ja) データ処理装置
JPH0766324B2 (ja) データ処理装置
JPH035836A (ja) マイクロプロセッサ
US4945511A (en) Improved pipelined processor with two stage decoder for exchanging register values for similar operand instructions
JPH0823818B2 (ja) 命令群用マイクロコード生成装置及びコンピュータにおける組合せ装置
US5542060A (en) Data processor including a decoding unit for decomposing a multifunctional data transfer instruction into a plurality of control codes
US5210864A (en) Pipelined microprocessor with instruction execution control unit which receives instructions from separate path in test mode for testing instruction execution pipeline
JPH07120284B2 (ja) データ処理装置
JP2556182B2 (ja) デ−タ処理装置
JP2504312B2 (ja) プライオリティエンコ―ダ及びそれを備えたデ―タ処理装置
US5361338A (en) Pipelined system for decomposing instruction into two decoding parts and either concurrently generating two operands addresses of merging decomposing decoding codes based upon the second operand
US5269008A (en) Method and apparatus for pre-processing the source of a pop instruction in a pipeline computer
JPH035833A (ja) マイクロプロセッサ
JPH035834A (ja) マイクロプロセッサ
JP2843844B2 (ja) 並列演算処理装置
JP2579817B2 (ja) マイクロプロセッサ
JPH0769805B2 (ja) データ処理装置
JP2696578B2 (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

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

Free format text: PAYMENT UNTIL: 20080306

Year of fee payment: 13

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

Free format text: PAYMENT UNTIL: 20090306

Year of fee payment: 14

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

Free format text: PAYMENT UNTIL: 20090306

Year of fee payment: 14

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

Free format text: PAYMENT UNTIL: 20100306

Year of fee payment: 15

EXPY Cancellation because of completion of term
FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20100306

Year of fee payment: 15