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

マイクロプロセッサ

Info

Publication number
JP2579817B2
JP2579817B2 JP1162118A JP16211889A JP2579817B2 JP 2579817 B2 JP2579817 B2 JP 2579817B2 JP 1162118 A JP1162118 A JP 1162118A JP 16211889 A JP16211889 A JP 16211889A JP 2579817 B2 JP2579817 B2 JP 2579817B2
Authority
JP
Japan
Prior art keywords
micro
address
test
instruction
output
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 - Lifetime
Application number
JP1162118A
Other languages
English (en)
Other versions
JPH0327450A (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 JP1162118A priority Critical patent/JP2579817B2/ja
Publication of JPH0327450A publication Critical patent/JPH0327450A/ja
Application granted granted Critical
Publication of JP2579817B2 publication Critical patent/JP2579817B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Landscapes

  • Test And Diagnosis Of Digital Computers (AREA)

Description

【発明の詳細な説明】 〔産業上の利用分野〕 この発明は、1つのLSIチップ上にマイクロプログラ
ム又は命令を格納するマイクロROMを備えたマイクロプ
ロセッサに関し、特にマイクロROMのセルフテスト機構
に関する。
〔従来の技術〕
半導体製造技術の進歩によりLSIの大規模化が可能に
なってきた。大規模なLSIにおいては、テストにかかる
負荷が全体のLSIの開発負荷の中で占める割合が増加し
てきた。この問題に対する1つの解答として、近年LSI
のテストにおいて内蔵回路によりLSI自身によってテス
トさせるセルフテスト方式(BIST:Built In Self Tes
t)が多く採用されるようになってきた。J.R.Kaban他に
よる“Testing Apporoches in the MC68020"VLSI DESIG
N Nov.1984では、マイクロプロセッサの量産時のテスト
期間の短縮と、テストコストとに対するBISTの有効性が
説明されている。
最も一般的であり、また有効なBISTとして、ROM及びP
LAの出力をLFSR(Linear Feedback Shift Resister)を
用いてデータを圧縮するシグネチャレジスタを応用する
方式があり、これは多くのROM及びPLAを内蔵したLSIに
おいて採用された。
シグネチャレジスタの使用方法としては、USP 4,490,
783 K.C.Mcdough他の“MICRO COMPUTER WITH SELF−TES
T OF MICROCODE"において、ROMのデータを圧縮してシグ
ネチャレジスタに蓄え、その結果を予め用意したチェッ
クコードと比較して良品判定を行う方式が述べられてい
る。またP.P.Gelsingerの“Design and Test of the 80
386"IEEE DESIGN 8 TEST,June 1987では、マイクロプロ
セッサ内のPLAとROMとの出力データを夫々LFSRによって
圧縮し、その各別の圧縮された結果をさらに圧縮し、最
終的にALUで比較して良品判別を行う方式が述べられて
いる。
これらの従来技術からわかることは、LSIのセルフテ
ストを行う場合、その回路を実現するうえで、外部ピン
の増加及び複雑な制御回路の追加が必要になるというこ
とである。即ちPLA及びROMのセルフテストを行う場合、
それに与える入力データ(ROMの場合はアドレス)を自
動生成する必要があり、そのための制御回路及びそれら
を制御するためのピンが必要となる。入力データを自動
生成する従来の手法として、入力データを格納するレジ
スタを乱数発生器のようにするか、又はカウンタにする
ことによりアドレスを生成するという手法が多く採用さ
れている。またマイクロプログラム又は命令を格納する
内蔵ROMにおいては、通常内蔵ROMはカウンタ機能を有し
たアドレスポインタを備えているので、その機能をセル
フテストでも使用する場合が一般的である。
またROMの全てのアドレス及びPLAの全積項をチェック
するパターンが入力できたことを認識してセルフテスト
を終了する手段が必要であり、その方法としてセルフテ
ストの期間中、セルフテストを制御する信号を外部ピン
から供給する方法及びカウンタが予め定めた値になった
ことを検出してテストを終了する方法が採用されてい
た。荒川文男他による「VLSIプロセッサにおける検査容
易化設計法」電子情報通信学会技術研究報告Vol.88No.2
69 P29〜34 FTS88−23ではマイクロプログラムを格納し
てあるROMのセルフテスト用に外部ピンからタイミング
を考慮した信号を入力して実行するセルフテストについ
て述べられている。この方法では、ROMのセルフテスト
に対してテスト専用の外部ピンからタイミングを制御し
た信号を入力して行う必要があり、テストシーケンスが
煩雑なものとなっていた。
第12図及び第13図はマイクロ命令を格納したROMの従
来のセルフテスト時の構成の一例を示すブロック図であ
る。第12図において、1はマイクロ命令を格納するマイ
クロROMであり、該マイクロROM1においてはマイクロア
ドレスポインタ(以下MADRという)3にて指定されたア
ドレスがアクセスされ、そのアドレスに格納されていた
マイクロ命令がLFSRであるマイクロ命令レジスタ(以下
MIRという)2に格納され圧縮される。MADR3で指定する
アドレスはインクリメンタ4により1ずつ増加させるこ
とができる。MIR2に格納され圧縮されたマイクロ命令は
マイクロ命令デコーダ8に与えられデコードされると共
に、マイクロシーケンサ9に与えられる。マイクロシー
ケンサ9はそれにより次のアドレスを生成すべくMADR3
に信号を送る。またテスト端子20からはセルフテストモ
ード信号TMが入力され、MIR2,マイクロシーケンサ9及
びMADR3にセルフテストモード信号TMが与えられる。セ
ルフテストモード信号TMは、セルフテスト時のアドレス
のインクリメントを実行させる状態をマイクロROM1の全
てのアドレスのマイクロ命令を読み出すまで保持するた
めのものである。そしてマイクロROM1内のデータをテス
トする場合、マイクロROM1に対してアドレスをインクリ
メンタ4を用いて更新させ、すべてのデータをLFSRであ
るMIR2に格納していた。そしてテスト端子20にセルフテ
ストモード信号TMを与えることによりこれらを制御して
いる。従ってテスト端子を追加すると共に、マイクロプ
ロセッサのテストパターンとして、マイクロROM1のセル
フテスト期間を考慮して、その期間のみそのテスト端子
をアサートする指定を行っていた。
第13図においては、MADR3からのアドレス及びセルフ
テストモード信号TMがアドレスデコーダ21に与えられて
いる。そしてセルフテストモード信号TMがテスト端子20
から入力されると、MADR3はマイクロROM1のアドレスの
インクリメントをインクリメンタ4により開始する。ア
ドレスデコーダ21は、アドレス又はアドレスのインクリ
メンタ出力信号をデコードすることにより、マイクロRO
M1の最終アドレスを検出する。そしてこの検出信号がマ
イクロシーケンサ9に送られ、MADR3のインクリメント
動作を停止させていた。しかし、命令の高機能化等の要
求により、マイクロプログラム又は命令を格納する内蔵
ROMの容量が増加し、そのためアドレス幅が増大し、ア
ドレスデコーダを構成するハードウェアの規模がLSIの
中で大きな負担となってきた。
〔発明が解決しようとする課題〕
大規模なLSI、特にマイクロプロセッサでは製造後の
テストに要するコストがその製造コストの中で大きな割
合を占めるようになり、そのためセルフテスト回路の必
要性が高くなってきた。しかしながら従来のセルフテス
ト回路では、その実現のために多くの素子を使用すると
共に、マイクロROMのセルフテストを行う場合に、外部
から制御信号を入力するピンと、セルフテストの終了タ
イミングを管理するためアドレスデコーダが必要であっ
た。またそのようなセルフテスト回路を用いたテストパ
ターンを作成するときもテスト期間を正確に指定する必
要があり、そのようなテストパターンはLSIテスタ上で
しか有効に使用できないものであった。また、LSIの大
規模化に伴い、外部ピンも増加する要求が高まり、通常
機能以外の要因でテスト用ピンの如くの外部ピンを増加
させることは機能的に制約が多くなる。また、セルフテ
ストに対して外部からテストモード信号をタイミングを
調えて入力することはテストパターン作成上の負荷を増
大させるものであった。
この発明は上記のような問題点を解消するためになさ
れたものであり、セルフテストを開始する際に、マイク
ロ命令によってセットされ、セルフテストを終了する際
にマイクロ命令によってリセットされるプリップフロッ
プを設け、その出力信号でマイクロROMのMADRの入力を
制御することにより、セルフテストをマイクロプログラ
ムの1つのルーチンプログラムの如く扱い、外部ピンを
追加する必要がなく、少ないハードウェアの追加で容易
に実装基板上でも使用可能であり、またテストプログラ
ムの作成を容易にすることのできるセルフテスト回路を
備えたマイクロプロセッサを提供することを目的とす
る。
〔課題を解決するための手段〕
この発明に係るマイクロプロセッサは、セルフテスト
を行うために、マイクロ命令によりセット,リセットさ
れるモード信号を生成する信号生成手段を設けて、その
制御信号でマイクロ命令のアドレスを生成するアドレス
発生回路を制御するようにしたものである。
〔作用〕
この発明においては、リセットシーケンス時にセルフ
テストを開始するための開始マイクロ命令をアクセス
し、それによりモード信号がセットされ、そのモード信
号でアドレス発生回路を制御し、シーケンシャルにマイ
クロ命令記憶部のマイクロ命令を読み出し、終了マイク
ロ信号が読みだされるとモード信号がリセットされ、セ
ルフテストが終了するので、セルフテストの実行をマイ
クロプログラムの1つのルーチンプログラムとして扱え
る。
〔実施例〕
以下、この発明をその一実施例を示す図面に基づいて
説明する。
第1図はこの発明に係るマイクロプロセッサの構成を
示すブロック図である。
この発明のマイクロプロセッサの内部を機能的に大き
く分けると、命令フェッチ部51,命令デコード部52,PC計
算部53,オペランドアドレス計算部54,マイクロROM部55,
データ演算部56,外部バスインターフェイス(I/F)部57
に分かれる。第1図ではその他に、外部へアドレスを出
力するアドレス出力回路58と、外部との間でデータを入
出力するデータ入出力回路59とを他の機能ブロック部と
分けて示した。
次に各部について詳述する。
「命令フェッチ部」 命令フェッチ部51には、ブランチバッファと、命令キ
ューとその制御部等があり、次にフェッチすべき命令の
アドレスを決定して、ブランチバッファや外部のメモリ
からプロセッサ命令をフェッチする。また命令フェッチ
部51はブランチバッファへの命令登録も行う。
ブランチバッファは小規模であるためセレクティブキ
ャッシュとして動作する。
次にフェッチすべきプロセッサ命令のアドレスは命令
キューに入力すべき命令のアドレスとして専用のカウン
タで計算される。分岐あるいはジャンプが発生した際に
は、新たなプロセッサ命令のアドレスがPC計算部53また
はデータ演算部56から転送されてくる。
外部のメモリからプロセッサ命令をフェッチする際
は、フェッチすべき命令のアドレスを外部バスインター
フェイス部57を通じてアドレス出力回路58から外部へ出
力することによりデータ入出力回路59から命令コードを
フェッチする。
バッファリングした命令コードの内、命令デコード部
52で次にデコードすべき命令コードが命令デコード部52
へ出力される。
テスト命令は命令フェッチ部51ではフェッチされな
い。
「命令デコード部」 命令デコード部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へ入力されることはな
く、従ってデコードされることもない。
「マイクロROM部」 マイクロROM部55にはデータ演算部56の制御及びこの
発明のマイクロプロセッサ各部の診断をする種々のマイ
クロプログラムルーチンが格納されているマイクロROM,
マイクロシーケンサ,マイクロ命令デコーダ等が含まれ
る。マイクロ命令はマイクロROMから2クロックに1度
読出される。マイクロシーケンサはマイクロプログラム
で示されるシーケンス処理の他に、例外,割込及びトラ
ップ(この3つをEITと総称する)の処理及びテスト割
込みをハードウエア的に受付ける。またマイクロROM部
はストアバッファの管理も行う。
プロセッサモードでは、マイクロROM部には命令コー
ドに依存しない割込み及び演算実行結果によるフラッグ
情報と、第2デコーダの出力等の命令デコード部52から
の出力が入力される。
テストモードでは、マイクロROM部はCPUの診断プロセ
ッサとして動作する。テストモードでは第2デコーダの
出力ではなくデータ入出力回路59からの出力が直接マイ
クロROM部へ入力される。また、テストモードの間は一
切の割込みは受付けられない。
プロセッサモードでは、マイクロデコーダの出力は主
にデータ演算部56に対して出力されるが、ジャンプ命令
の実行による他の先行処理中止情報等の一部の情報は他
の機能ブロックへも出力される。
テストモードでは、マイクロROM部55は上記のプロセ
ッサモードでの出力に加えて各種の診断制御情報を本発
明のマイクロプロセッサ内部の他のブロックへ出力す
る。
「オペランドアドレス計算部」 オペランドアドレス計算部54は、命令デコード部52の
アドレスデコーダ等から出力されたオペランドアドレス
計算に関係する情報によりハードワイヤード制御され
る。このオペランドアドレス計算部54ではオペランドの
アドレス計算に関する大半の処理が行われる。メモリ間
接アドレッシングのためのメモリアクセスのアドレス及
びオペランドアドレスがメモリにマップされたI/O領域
に入るか否かのチェックも行われる。
オペランドアドレス計算部54でのアドレス計算結果は
外部バスインターフェイス部57へ送られる。なお、アド
レス計算に必要な汎用レジスタやプログラムカウンタの
値はデータ演算部56から入力される。
メモリ間接アドレッシングを行う場合は、オペランド
アドレス計算部54は参照すべきメモリアドレスを外部バ
スインターフェイス部57を通じてアドレス出力回路58か
ら外部へ出力し、データ入出力部59から入力された間接
アドレス値を命令デコード部52をそのまま通過させてフ
ェッチする。
「PC計算部」 PC計算部53は命令デコード部52から出力されるPC計算
に関係する情報によりハードワイヤードに制御され、命
令のPC値を計算する。本発明のマイクロプロセッサのプ
ロセッサ命令は可変長命令であり、命令をデコードして
みないとその命令の長さが判明しない。PC計算部53は、
命令デコード部52から出力される命令長をデコード中の
命令のPC値に加算することにより次の命令のPC値を作り
出す。
PC計算部53での計算結果は各命令のPC値として命令の
デコード結果と共に出力される。
「データ演算部」 データ演算部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とへ出力す
る。
「外部バスインターフェイス部」 外部バスインターフェイス部57は、プロセッサモード
においては本発明のマイクロプロセッサの入出力ピンを
介しての通信を制御する。メモリのアクセスはすべてク
ロック同期で行われ、最小2クロックサイクルで行うこ
とができる。
メモリに対するアクセス要求は命令フェッチ部51,ア
ドレス計算部54及びデータ演算部56から独立に生じる。
外部バスインターフェイス部57はこれらのメモリアクセ
ス要求を調停する。更に、メモリと本発明のマイクロプ
ロセッサとを結ぶデータバスサイズである32ビット(1
ワード)の整置境界を跨ぐメモリ番地に位置するデータ
のアクセスは、このブロック内でワード境界を跨ぐこと
が自動的に検知され、2回のメモリアクセスに分解して
行われる。
プリフェッチ対象のオペランドアドレス対象のオペラ
ンドとが重なる場合のコンフリドクト防止処理及びスト
アオペランドからフェッチオペランドへのバイパス処理
も外部バスインターフェイス部57が行う。
テストモードでは、外部バスインターフェイス部57は
一切のメモリアクセス要求を受付けない。テストモード
では、データ入出力回路59とアドレス出力回路とはマイ
クロROM部55から直接制御される。
第2図はこの発明のマイクロプロセッサのマイクロRO
M部におけるマイクロ命令アドレスの制御回路を示すブ
ロック図である。図において、1はマイクロ命令を格納
するマイクロROMであり、該マイクロROM1においてはMAD
R3にて指定されたアドレスがアクセスされ、そこに格納
されたマイクロ命令がMIR2に出力される。MIR2には後述
するフリップフロップのQ出力であるテストモード信号
T−MODEが与えられており、テストモード信号T−MODE
かセットされるとMIR2がLFSR化し、マイクロROM1からの
マイクロ命令を圧縮して蓄積する。テストモード信号T
−MODEがセットされていないとき、MIR2はマイクロROM1
から出力されたマイクロ命令を格納し、それをマイクロ
命令デコーダ8に送る。マイクロ命令デコーダ8はマイ
クロ命令をデコードし、その結果の一部をマイクロシー
ケンサ9に送ると共に、マイクロROM1内に格納されたマ
イクロROMテストオペレーションのマイクロ命令がデコ
ードされるとセット信号をフリップフロップ7のセット
端子に送る。フリップフロップ7はそれによりテストモ
ード信号T−MODEをセットし、Q端子からMIR2に出力す
る。またフリップフロップ7の端子からの出力はAND
ゲート6の一端に与えられる。ANDゲート6の他端には
マイクロシーケンサ9からの出力が与えられ、ANDゲー
ト6の出力はNチャンネルのトランスミッションゲート
5のゲートに与えられている。トランスミッションゲー
ト5はジャンプ命令等の分岐処理時及び次の命令を処理
する場合のマイクロ命令アドレスをMADR3、に取り込む
ことを制御するものであり、命令デコード部52とマイク
ロROM1との間に設けられ、反転テストモード信号▲
▼及びマイクロシーケンサ9の出力により制御
される。
トランスミッションゲート5が閉じた場合、MADR3か
らの出力されたアドレスはインクリメンタ4に与えら
れ、指定するアドレスを1つずつ更新する。
第3図はマイクロ命令処理回路の構成を示すブロック
図であり、命令デコード部52によって、その命令が処理
されるべきマイクロプログラムの先頭のマイクロ命令の
アドレス情報(エントリアドレス)と、その命令が実行
される段階で用いるデータサイズ情報等のパラメータと
が出力され、4つのRコードレジスタ16,17…に格納さ
れる。格納されたエントリアドレスはマイクロシーケン
サ9からの指示によりトランスファゲート15を介してMA
DR3に送られる。MADR3は与えられたエントリアドレスに
よりマイクロROMのアドレスを指定し、そのアドレスか
らマイクロ命令がMIR2に対して読み出される。その後MA
DR3はインクリメンタ4を使ってアドレスの更新を行う
と共に、マイクロROMの出力信号の一部であるマイクロ
命令アドレス情報がMIR2から分岐先アドレスレジスタ
(以下MNARという)11に転送される。またマイクロスタ
ックレジスタ(以下MSTRという)10へはサブルーチンジ
ャンプ時にインクリメンタ4によりインクリメントされ
たアドレスが戻り先アドレスとして転送される。なお第
3図に示す構成の回路ではマイクロプログラムにおいて
1階層のサブルーチンしか作ることができない。
そしてマイクロROM1の出力信号群のうち、マイクロプ
ログラムのシーケンス制御を行う情報によってジャンプ
又はリターンが指定されると、インクリメントされたMA
DR3のアドレスがさらにMNAR11,MSTR10からのデータによ
って更新される。
マイクロシーケンサ9はMIR2からのシーケンス制御の
情報を受けて、命令デコード部52からMADR3につながる
アドレスバスにどのレジスタからのデータを出力するか
の指示を出す。その場合、マイクロプロセッサプログラ
ムで分岐処理を行わない場合は、インクリメンタ4によ
りシーケンシャルなマイクロ命令アドレスをするので、
MADR3にMNAR11,MSTR10からデータが転送されない。即
ち、第2図のトランスミッションゲート5が閉じたまま
となっている。
またEIT(例外,割り込み,トラップ)処理が必要と
なり、EITフラグレジスタ14にEITフラグが与えられる
と、EITエントリデコーダ13でその処理内容を判断す
る。そして命令を中断してEIT対応の処理に移る場合
に、その処理用のマイクロ命令アドレスを生成するため
に使用するのがEIT前処理アドレスレジスタ12である。
マイクロ命令のアドレスがMADR3に取り込まれると、
マイクロROM1のそのアドレスに格納されたマイクロ命令
が読み出され、MIR2を介してマイクロ命令デコーダ8に
送られ、実行制御信号が生成される。この発明のマイク
ロプロセッサではマイクロプログラムのシーケンス制御
命令として大きく分けて以下の4種類がある。
JMP(ジャンプ) JSR(サブルーチンジャンプ) RTS(サブルーチンリターン) NOP これら4つのシーケンス制御命令のオペレーションに
対する処理手順について第3図を用いて説明する。
(1)JMP ジャンプとはマイクロプログラムにおいて、次にアク
セスするマイクロ命令のアドレスに分岐することであ
り、その場合MNAR11の値がMADR3に転送される。マイク
ロ命令の一部のフィールドは飛び先番地を示しており、
そのデータはマイクロROM1がアクセスされるたびにMNAR
11に転送される。
(2)JSR サブルーチンジャンプの場合、ジャンプと同様にMNAR
11の値がMADR3に転送されるが、それと同時にその転送
される前のMADR3の値をインクリメントした値が戻り先
アドレスとしてMSTR10に転送される。
(3)RTS サブルーチンリターンの場合、MSTR10の値がMADR3に
転送される。
(4)NOP 上記(1)〜(3)の場合、マイクロ命令のアドレス
は全てMADR3以外の各レジスタから供給されていたが、N
OP,即ちマイクロ命令をシーケンシャルに実行する場
合、トランスミッションゲート5を閉じることによりMA
DR3にはインクリメント4により前の処理のMADR3の値を
更新した値が入る。
これら4つのオペレーションを拡張して、このマイク
ロプロセッサではシーケンス制御用に7ビットのフィー
ルドを備えている。
第4図はこのマイクロプロセッサのマイクロ命令のフ
ォーマットを示す図であり、マイクロ命令は全体で111
ビットの長さがある。マイクロ命令の第33ビット〜第39
ビットまでの7ビットがマイクロ命令のシーケンスを制
御するシーケンスフィールドSEQである。そしてそのシ
ーケンスフィールドSEQで示されるオペレーションとし
て17種類がある。
第5図は17種類のシーケンスフィールドSEQのオペレ
ーションを示す図であり、以下それらのオペレーション
いくつかについて説明する。
・next :命令が複数のマイクロ命令のエントリアドレスを生成
する場合、1つのエントリアドレスが終了したことを示
すオペレーション ・exit :1つの命令のマイクロプログラムの終了を示すオペレー
ション ・exitx :exitと同様のオペレーションであるが、ブレークポイ
ント検出等のデバッグサポート機構を抑止するモードで
あることを示すオペレーション ・if j=1 then exit :jとは条件の成立、不成立を示すビットで、第4図に示
すマイクロ命令の条件フィールドCONDで条件が指定され
る。このオペレーションは条件が成立したらexitするこ
とを示す。
・if j=0 then exit :上記の場合と反対で、条件が不成立だったらexitする
ことを示す。
・jump :第4図のADDRESSフィールドで指定したマイクロ命令
アドレスにジャンプする。
・call :サブルーチンコールを示す。第4図のADDRESSフィー
ルドで指定したマイクロ命令アドレスにジャンプする。
・return :サブルーチンリターンを示す。
・NOP :現在のマイクロ命令アドレスをインクリメントしたア
ドレスを次にアクセスする。
上記のオペレーションを使いわけることによって、マ
イクロプログラムを作成している。また、第4図のマイ
クロ命令フォーマットの中で、EITフィールドのオペレ
ーションとしてマイクロ命令デコーダ8の機能切り替え
を指定するものがあり、その機能によりSIZEフィールド
がテスト用のオペレーションに変更される。第6図にこ
のマイクロプロセッサが備えるテスト用のマイクロオペ
レーションを示す。
このマイクロプロセッサはテスト回路を機能させる動
作モードとしてテストモードを備えており、そのモード
にはテスト用の外部ピンであるTEST #ピンを1クロッ
ク以上アサートすること、もしくはマイクロ命令の1つ
であるテストオペレーションによって入ることができ
る。テストモードはテスト時にパイプラインステージを
停止させ、また外部バスの制御方法を変えるために必要
である。テストモードで第6図に示す“start micro−R
OM test"のオペレーションを実行すると、第2図中のフ
リップフロップ7がセットされる。そのフリップフロッ
プ7の出力によってマイクロ命令のシーケンスフィール
ドSEQとしてマイクロ命令デコーダ8に送られる信号の
うち、第5図中の33ビット目が“0(B)”に固定さ
れ、シーケンスフィールドSEQのマイクロ命令として常
にEXITするオペレーションは実行されない。そのためマ
イクロROM部55としては命令テコード部52からのマイク
ロアドレスを待つことなく処理が続けられる。そして同
時にフリップフロップ7の出力信号T−MODEによりMIR2
がLFSRとなり、マイクロROM1の出力データを圧縮して蓄
積する。マイクロ命令のシーケンスフィールドSEQが常
にEXIT以外になり、かつMADR3の更新を制御するトラン
スミッションゲート5が開かないように固定されている
ので、マイクロシーケンサ9はMADR3のインクリメント
結果をMADR3に戻して使用し続ける。その結果マイクロR
OM1の出力がシーケンシャルに読み出され、全てのマイ
クロROM1のアドレスが読み出された最後に、“stop mic
ro−ROM test"のオペレーションを実行することによっ
てマイクロROM1のセルフテストが終了する。読み出され
た全てのマイクロ命令はLFSRであるMIR2に蓄積される。
このマイクロプロセッサではMIR2に蓄積される最終的な
期待値が0になるようにマイクロROM1の未使用アドレス
部分の一部にプログラムされている。
第9図はこの発明のマイクロプロセッサのMIRの詳細
ブロック図である。
MIR2は出力レジスタ21と、111入力1出力のNORゲート
回路22とから構成され、出力レジスタ21は112ビット構
成のレジスタであり、テストモード信号T−MODEにより
LFSR化し、マイクロROM1の出力を蓄積する。出力レジス
タ21の各ビット出力信号R0〜R110はマイクロ命令デコー
ダ8に与えられると共にNORゲート回路52に与えられ
る。そして、MIR2の出力の各ビット出力信号R0〜R110
論理和をとり、それを反転してマイクロROM1のセルフテ
スト結果フラグとしてマイクロシーケンサ9で保持す
る。このようにして、通常処理と同様にマイクロROM1の
セルフテストをマイクロプログラムとして容易に組み込
むことができる。即ち、マイクロROM1のセルフテスト
時、1つのシーケンシャルなマイクロプログラムを実行
しているのと同様の処理をマイクロシーケンサ9が行っ
ているわけである。
なお、各ビット出力信号R0〜R110はマイクロ命令デコ
ーダ8にもあたえられているが、データの有効・無効を
示す図示しない有効信号がテスト時に無効となり、デー
タはマイクロ命令デコーダ8でデコードされても実行さ
れないようになっている。
マイクロプロセッサにおいてセルフテストは、量産時
のLSIにかかるテストコストを削減することを目的とし
ており、そのため簡単な方法でセルフテストを起動でき
ることは、マイクロプロセッサの機能として重要であ
る。このマイクロプロセッサではリセット信号入力時に
図示しないFLOAT#ピンをアサートすることによってセ
ルフテストを起動することができる。第7図にこのマイ
クロプロセッサのセルフテスト処理フローを示す。ま
ず、RESET#ピンアサート時に、FLOAT#ピンが同時にア
サートされているか否かを判定し(S40)、同時にアサ
ートされている場合、セルフテストが起動される。FLOA
T#ピンがアサートされていない場合、ステップ44に飛
び、通常のリセットシーケンスが起動される。このマイ
クロプロセッサではセルフテストはマイクロROM1と命令
デコード部52のPLAとデータ演算部56とに対して行う。
このマイクロプロセッサはこれらのセルフテストの手順
はすべてマイクロプログラム内に書き込まれている。こ
のマイクロプロセッサのマイクロプログラムの構成を第
8図に示す。このマイクロプロセッサではマイクロ命令
のアドレスとして12ビット備えているが、4KワードのRO
Mは内蔵していない。即ち、アドレスとして存在しない
ワードがある。第8図において“F02(H)”番地はマ
イクロROM1上に存在しない。このマイクロプロセッサで
はテスト関係のマイクロプログラムは“F00(H)”か
ら“F7F(H)”に記述されている。リセット時に、FLO
AT#ピンがアサートされていれば“F03(H)”のマイ
クロ命令アドレスが、アサートされていなければ“F00
(H)”のマイクロ命令アドレスが夫々生成される。マ
イクロ命令アドレスとして“F03(H)”が指定される
と、まず“start micro−ROM test"のオペレーションが
実行され、マイクロROM1のセルフテストを上記方法によ
り実行する。そしてマイクロ命令アドレスのインクリメ
ントを続け、“F01(H)”が指定された時、“stop mi
cro−ROM test"が実行され、マイクロROM1のセルフテス
トが終了する(S41)。そして同時に“F01(H)”のマ
イクロ命令アドレスで“F5E(H)”番地へジャンプ
し、命令デコード部52のPLAのテストを開始する(S4
2)。以下、データ演算部56のテストを行った後(S4
3)、リセットシーケンスのマイクロアドレスにジャン
プし、リセットシーケンスを開始(S44)した後命令の
実行を行う(S45)。
またリセット時FLOAT#ピンがアサートされ“start m
icro ROM test"のオペレーションが実行されると第2図
のフリップフロップ7がセットされ、フリップフロップ
の出力信号であるテストモード信号T−MODEが“1"にな
る。これによってトランスミッションゲート5が閉じら
れMADR3はインクリメンタ4の出力しか取り込めず、マ
イクロROM1のアドレスはインクリメンタ4によりインク
リメントされ、シーケンシャルに指定される。また、テ
ストモード信号T−MODEがセットされることによって、
マイクロROM1の出力レジスタ21がLFSR化し、マイクロRO
M1の出力を蓄積する。出力レジスタ21の出力信号R0〜R
110はマイクロ命令デコーダ8に送られると共に、NORゲ
ート回路22の入力信号となる。このマイクロプロセッサ
ではマイクロROM1のセルフテスト終了時に、正しく動作
すればLFSRである出力レジスタ21の出力信号がすべて0
になるので、NORゲート回路22の出力信号であるテスト
結果信号TEST−Zがセットされる。
第10図にマイクロROMのセルフテスト実行時のタイム
チャートを示す。
RESET#ピンとFLOAT#ピンとが同時にアサートされる
とMADR3に“F03(H)”がセットされ、マイクロROM1の
アクセスを行う。そして、そのマイクロ命令のアドレス
のオペレーションによりフリップフロップ7からのテス
トモード信号T−MODEがセットされる。そしてトランス
ミッションゲート5が閉じ、インクリメンタ4によりシ
ーケンシャルなマイクロ命令アドレスの読み出しが続
き、“F01(H)”のアドレスが読みだされると、テス
トモード信号T−MODEがリセットされるとともに、テス
ト結果が正常ならば、NORゲート回路22からのTEST−Z
がセットされる。この信号をラッチしておいて最終的な
マイクロROM1の異常の有無を判断する。
一般に、マイクロプログラムの中で条件判断するよう
な場合は、演算器等から出力されるさまざまなフラグ情
報を使用する。例えば、ある回数同一の処理を行うよう
な場合には、ループカウンタにその回数をセットし、処
理を行う度にそのループカウンタをデクリメントしてい
き、ループカウンタのゼロ(Z)フラグが1になった
ら、処理を終了するというように処理を行う。このマイ
クロプロセッサでは第6図の条件フィールドCONDで条件
判定に用いるフラグ情報を指定するようになっている。
第11図に条件フィールドCONDで指定できるフラグ情報の
一部を示す。条件フィールドCONDは5ビットの構成で、
第11図に示す成立条件が成り立てば、それを用いてマイ
クロプログラムの分岐を制御することができる。条件フ
ィールドCONDで指定できるフラグ情報の1つとしてマイ
クロROM1のセルフテスト結果フラグ(MROM:Z=1)を参
照することができるので、テスト結果の判定もマイクロ
プログラム内ですることができる。
〔発明の効果〕
以上説明したとおり、この発明においてはマイクロRO
Mにセルフテストの開始,終了命令を記憶しておくと共
に、それらによりセット,リセットされるフリップフロ
ップを設け、その出力信号でMADRの入力を制御すること
により、セルフテストをマイクロプログラムの1つのル
ーチンプログラムとして扱い、外部からの命令、信号の
入力を不要とし、また外部ピンの追加を不要となし、少
ないハードウェアの追加でLSIテスタを用いずにセルフ
テストできる等優れた効果を奏する。
【図面の簡単な説明】
第1図はこの発明に係るマイクロプロセッサの構成を示
すブロック図、第2図はマイクロROM部のアドレス制御
回路のブロック図、第3図はマイクロ命令処理回路のブ
ロック図、第4図はマイクロ命令のフォーマット図、第
5図はシーケンスフィールドのオペレーションを示す
図、第6図はテスト用のマイクロオペレーションを示す
図、第7図はテストモードの動作を示すフローチャー
ト、第8図はマイクロROM内のマイクロプログラムの構
成を示すアドレスマップ、第9図はMIRの詳細ブロック
図、第10図はセルフテスト実行時のタイムチャート、第
11図は条件フィールドのオペレーションを示す図、第12
図及び第13図は従来のマイクロROMのセルフテスト時の
構成の一例を示すブロック図である。 1…マイクロROM、2…MIR、3…MADR、4…インクリメ
ンタ、5…トランスミッションゲート、6…ANDゲー
ト、7…フリップフロップ、8…マイクロ命令デコー
ダ、9…マイクロシーケンサ なお、図中、同一符号は、同一又は相当部分を示す。

Claims (1)

    (57)【特許請求の範囲】
  1. 【請求項1】マイクロ命令を記憶するマイクロ命令記憶
    部と、該マイクロ命令記憶部から読出したマイクロ命令
    を保持するマイクロ命令保持レジスタと、該マイクロ命
    令保持レジスタに保持するマイクロ命令に応じて前記マ
    イクロ命令記憶部からマイクロ命令を読出すアドレスを
    生成するアドレス発生回路とを有するマイクロプロセッ
    サにおいて、 前記マイクロ命令記憶部は当該マイクロプロセッサの通
    常動作モードからセルフテストを行うテストモードへの
    移行を実行する開始マイクロ命令及びテストモードから
    通常動作モードへの復帰を実行する終了マイクロ命令を
    記憶してあり、 リセットシーケンス時に前記開始マイクロ命令を実行す
    る手段と、 前記開始マイクロ命令によりセットされ、前記終了マイ
    クロ命令によりリセットされるモード信号を生成する信
    号生成手段と、 該モード信号により前記アドレス発生回路を制御して、
    セルフテストに係るマイクロ命令読出しのためのアドレ
    スを生成させる手段と を備えることを特徴とするマイクロプロセッサ。
JP1162118A 1989-06-23 1989-06-23 マイクロプロセッサ Expired - Lifetime JP2579817B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP1162118A JP2579817B2 (ja) 1989-06-23 1989-06-23 マイクロプロセッサ

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP1162118A JP2579817B2 (ja) 1989-06-23 1989-06-23 マイクロプロセッサ

Publications (2)

Publication Number Publication Date
JPH0327450A JPH0327450A (ja) 1991-02-05
JP2579817B2 true JP2579817B2 (ja) 1997-02-12

Family

ID=15748384

Family Applications (1)

Application Number Title Priority Date Filing Date
JP1162118A Expired - Lifetime JP2579817B2 (ja) 1989-06-23 1989-06-23 マイクロプロセッサ

Country Status (1)

Country Link
JP (1) JP2579817B2 (ja)

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS6129948A (ja) * 1984-07-20 1986-02-12 Hitachi Ltd 複合処理装置のインタ−フエ−ス・テスト方式
JPS6379144A (ja) * 1986-09-24 1988-04-09 Toshiba Corp マイクロプロセツサ

Also Published As

Publication number Publication date
JPH0327450A (ja) 1991-02-05

Similar Documents

Publication Publication Date Title
US6631463B1 (en) Method and apparatus for patching problematic instructions in a microprocessor using software interrupts
US6266765B1 (en) Computer architecture capable of execution of general purpose multiple instructions
US5072364A (en) Method and apparatus for recovering from an incorrect branch prediction in a processor that executes a family of instructions in parallel
AU631875B2 (en) Paired instruction processor precise exception handling mechanism
US5925125A (en) Apparatus and method for pre-verifying a computer instruction set to prevent the initiation of the execution of undefined instructions
US6754856B2 (en) Memory access debug facility
US5226149A (en) Self-testing microprocessor with microinstruction substitution
EP2430526B1 (en) Instruction cracking based on machine state
US6591378B1 (en) Debug controller in a data processor and method therefor
US7849293B2 (en) Method and structure for low latency load-tagged pointer instruction for computer microarchitechture
AU620668B2 (en) Data processing apparatus
US5475852A (en) Microprocessor implementing single-step or sequential microcode execution while in test mode
KR100351527B1 (ko) 코드브레이크포인트디코더
JPH07120284B2 (ja) データ処理装置
US5185870A (en) System to determine if modification of first macroinstruction to execute in fewer clock cycles
JP2579817B2 (ja) マイクロプロセッサ
US6990569B2 (en) Handling problematic events in a data processing apparatus
US5212779A (en) System for guarantee reexecution after interruption by conditionally used store buffer if microinstruction being executed is a memory write and last microinstruction
JP2872117B2 (ja) マイクロプロセッサ
US5903742A (en) Method and circuit for redefining bits in a control register
JPH035834A (ja) マイクロプロセッサ
Vajja et al. Design and analysis of 32-bit CPU based on MIPS
JPH04120633A (ja) プロセッサの故障診断装置
JPH035833A (ja) マイクロプロセッサ
JPS63247833A (ja) 条件分岐命令制御方法