JPH0439745A - マイクロプロセッサ - Google Patents
マイクロプロセッサInfo
- Publication number
- JPH0439745A JPH0439745A JP2148189A JP14818990A JPH0439745A JP H0439745 A JPH0439745 A JP H0439745A JP 2148189 A JP2148189 A JP 2148189A JP 14818990 A JP14818990 A JP 14818990A JP H0439745 A JPH0439745 A JP H0439745A
- Authority
- JP
- Japan
- Prior art keywords
- data
- input
- instruction
- register
- program
- 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.)
- Pending
Links
Landscapes
- Microcomputers (AREA)
- Test And Diagnosis Of Digital Computers (AREA)
Abstract
(57)【要約】本公報は電子出願前の出願データであるた
め要約のデータは記録されません。
め要約のデータは記録されません。
Description
【発明の詳細な説明】
〔産業上の利用分野〕
本発明は命令ROMを内蔵したマイクロプロセッサに関
し、更に詳述すれば、演算器のセルフテスト機能を有し
、装置のリセットにより初期化されてしまう内部記憶手
段の記憶内容をセルフテストの実行途中に外部へ読出す
ことを可能としたマイクロプロセッサに関する。
し、更に詳述すれば、演算器のセルフテスト機能を有し
、装置のリセットにより初期化されてしまう内部記憶手
段の記憶内容をセルフテストの実行途中に外部へ読出す
ことを可能としたマイクロプロセッサに関する。
従来のセルフテスト機能を有するマイクロプロセッサと
して、本願発明者らは先に、特願昭63332250号
の発明において、疑似乱数発生器とシグネチャ圧縮レジ
スタとを備え、予め内蔵1?OMに載せられているテス
トプログラムを実行する際に、疑似乱数発生器から出力
されるテストデータを得てテストデータ数を増加させて
、テストプログラムのステップ数の減少を図ったマイク
ロプロセッサを提案している。
して、本願発明者らは先に、特願昭63332250号
の発明において、疑似乱数発生器とシグネチャ圧縮レジ
スタとを備え、予め内蔵1?OMに載せられているテス
トプログラムを実行する際に、疑似乱数発生器から出力
されるテストデータを得てテストデータ数を増加させて
、テストプログラムのステップ数の減少を図ったマイク
ロプロセッサを提案している。
この特願昭63−332250号の発明のマイクロプロ
セッサによれば、外部からテストデータを与えることな
く、マイクロプロセッサを容易に多(のデータの組合せ
によりテストできるようになった。
セッサによれば、外部からテストデータを与えることな
く、マイクロプロセッサを容易に多(のデータの組合せ
によりテストできるようになった。
以下、上述の特願昭63−332250号の発明につい
て、その実施例を示す図面を参照して説明する。
て、その実施例を示す図面を参照して説明する。
第5図において、参照符号1はアドレス演算部(AAU
)であり、詳細は後述するが入力側はPバス23に接続
されている。
)であり、詳細は後述するが入力側はPバス23に接続
されている。
2はビット長24.ワード長512(24ビツト×51
2ワード)の内蔵2ポートデータRAMであり、データ
読出しのためのボートを2系統備えている他、上述のア
ドレス演算部(AAU)1及びDバス24と接続されて
いる。
2ワード)の内蔵2ポートデータRAMであり、データ
読出しのためのボートを2系統備えている他、上述のア
ドレス演算部(AAU)1及びDバス24と接続されて
いる。
3は第1の演算部入力レジスタ(RO)、 4は第2
の演算部入力レジスタ(R1)であり、データRAM2
の各データ読出しボートがそれぞれの入力側に接続され
ている他、Dバス24とも接続されている。
の演算部入力レジスタ(R1)であり、データRAM2
の各データ読出しボートがそれぞれの入力側に接続され
ている他、Dバス24とも接続されている。
5は乗算器(FMPL)であり詳細は後述するが、演算
部入力レジスタ(RO) 3及び(Ill) 4の出力
を入力して乗算する。
部入力レジスタ(RO) 3及び(Ill) 4の出力
を入力して乗算する。
6は乗算器出力レジスタ(MR)であり、乗算器5の乗
算結果を保持する。
算結果を保持する。
7は演算器(FALU)であり詳細は後述するが、演算
部入力レジスタ(1110) 3 、 (R1) 4及
び乗算器出力レジスタ(MR) 6の出力が入力される
他、Dバス24とも接続されている。
部入力レジスタ(1110) 3 、 (R1) 4及
び乗算器出力レジスタ(MR) 6の出力が入力される
他、Dバス24とも接続されている。
8はアキュムレータ(八CC)であり、主として演算器
7による演算結果を保持する。
7による演算結果を保持する。
9は8レベルのスタックであり、プログラムカウンタ(
PC)toの値(プログラムカウンタ値)を必要に応じ
て保持する。
PC)toの値(プログラムカウンタ値)を必要に応じ
て保持する。
プログラムカウンタ(PC) 10は、次にフェッチす
べき命令の命令メモリ、具体的には後述する内蔵命令R
OMIIにおけるアドレスを順次計数する。
べき命令の命令メモリ、具体的には後述する内蔵命令R
OMIIにおけるアドレスを順次計数する。
内蔵命令ROMIIは32ビツトX4にワードの容量で
あり、プログラムカウンタ10から与えられるプログラ
ムカウンタ値に対応するアドレスに記憶している命令を
出力する。
あり、プログラムカウンタ10から与えられるプログラ
ムカウンタ値に対応するアドレスに記憶している命令を
出力する。
12は32ビツト×64ワードの命令とデータとの内蔵
共有メモリ(CRAM)である、この共有メモリ12に
格納されている値はデータワードとしても命令ワードと
しても使用することが可能である。
共有メモリ(CRAM)である、この共有メモリ12に
格納されている値はデータワードとしても命令ワードと
しても使用することが可能である。
13は命令レジスタ(IR)であり、命令ROMII又
は共有メモリ12から読出された次に実行されるべき命
令ワードを保持する。
は共有メモリ12から読出された次に実行されるべき命
令ワードを保持する。
14は命令デコーダであり、命令レジスタ13が保持し
ている命令ワードをデコードし、そのデコード結果に基
づいてこのマイクロプロセッサ各部の動作を制御する。
ている命令ワードをデコードし、そのデコード結果に基
づいてこのマイクロプロセッサ各部の動作を制御する。
15はこのマイクロプロセッサ内部の動作モードを設定
するコントロールレジスタであり、リセット処理により
初期化される。このコントロールレジスタ15は入力側
がPバス23に、出力側がDバス24にそれぞれ接続さ
れている。
するコントロールレジスタであり、リセット処理により
初期化される。このコントロールレジスタ15は入力側
がPバス23に、出力側がDバス24にそれぞれ接続さ
れている。
16はダイレクトメモリアクセスコントローラ(DMA
)、 17はシリアルI10インタフェイス(S11
0)。
)、 17はシリアルI10インタフェイス(S11
0)。
18はデータレジスタ(OR)、 19はシグネチャレ
ジスタである。
ジスタである。
20は割込みコントローラ、21はクロック/リセット
信号発生回路(CLK/RST) 、 22はクロンク
プリスケーラ(CPR)である。
信号発生回路(CLK/RST) 、 22はクロンク
プリスケーラ(CPR)である。
23は命令によりレジスタに即値を入力するPバス、2
4は各レジスタ (参照符号3.4.8.17. ’1
8゜19)等の間、あるいは内蔵RAM(参照符号2.
12)間でデータの送受を行うDバス、25はダイレク
トメモリアクセス時にダイレクトメモリアクセスコント
ローラ16により制御されてシリアルI10インクフェ
イス17と外部メモリとの間でのデータ転送を制御する
Sバスである。
4は各レジスタ (参照符号3.4.8.17. ’1
8゜19)等の間、あるいは内蔵RAM(参照符号2.
12)間でデータの送受を行うDバス、25はダイレク
トメモリアクセス時にダイレクトメモリアクセスコント
ローラ16により制御されてシリアルI10インクフェ
イス17と外部メモリとの間でのデータ転送を制御する
Sバスである。
26は第1割込み入力ピン(INTI)、 27は第2
割込み入力ピン(INT2)、 28はテストモード設
定のためのテストピン(TEST)、 29は後述する
II^モード設定のためのIrAピンである。
割込み入力ピン(INT2)、 28はテストモード設
定のためのテストピン(TEST)、 29は後述する
II^モード設定のためのIrAピンである。
30は24ビツト長のデータ入出力端子であり、前述の
レジスタ18.19、Dバス24及びSバス25と外部
データメモリ (図示せず)との間でのデータ転送に使
用される。
レジスタ18.19、Dバス24及びSバス25と外部
データメモリ (図示せず)との間でのデータ転送に使
用される。
31はリセット信号(NRESET)入力端子であり、
このマイクロプロセッサ全体をリセットするためのリセ
ット信号(NRESET)の入力に使用される。
このマイクロプロセッサ全体をリセットするためのリセ
ット信号(NRESET)の入力に使用される。
32はフラグレジスタ(PR)であり、演算器7の演算
結果、各入力端子のレベルあるいはこのマイクロプロセ
ッサの内部動作モードを示す。このフラグレジスタ(P
R) 32は上述のリセット信号(NRESET)が入
力された際のリセット信号により初期化される。
結果、各入力端子のレベルあるいはこのマイクロプロセ
ッサの内部動作モードを示す。このフラグレジスタ(P
R) 32は上述のリセット信号(NRESET)が入
力された際のリセット信号により初期化される。
次に上述の第2図に示した従来のマイクロプロセッサの
動作について説明する。
動作について説明する。
このマイクロプロセッサは、命令ワードのビ。
ト長32ビット、データワードのビット長24ビツトで
あり、大きくはアドレス演夏部、演真部、メモリ部、ク
ロック生成部にて構成されている。
あり、大きくはアドレス演夏部、演真部、メモリ部、ク
ロック生成部にて構成されている。
まずアドレス演算部1は予め命令によりアドレスモード
が設定されており(以下、レジデュアル制御と称す)、
この設定されたモードに従って内蔵データRAM2ある
いは図示されていない外部データRAM等に対するアド
レスを生成する。
が設定されており(以下、レジデュアル制御と称す)、
この設定されたモードに従って内蔵データRAM2ある
いは図示されていない外部データRAM等に対するアド
レスを生成する。
以下、このアドレス演算部1によるアドレス生成につい
て説明する。
て説明する。
レジデュアル制御に関するレジスタとして、アドレス演
算部1内にはアドレスをデータメモリに与えるアドレス
レジスタ、アドレスを生成するための基値を与えるベー
スアドレスレジスタ、アドレスの加算値を与えるインク
リメント値レジスタ。
算部1内にはアドレスをデータメモリに与えるアドレス
レジスタ、アドレスを生成するための基値を与えるベー
スアドレスレジスタ、アドレスの加算値を与えるインク
リメント値レジスタ。
モジュロ値あるいはピントリバース幅を与えるモジュロ
−ビットリバース幅レジスタ、ループ命令時にベースア
ドレス値を修飾するためのデルタベースアドレスレジス
タ、ループ命令時にインクリメント値を修飾するための
デルタインクリメント値レジスタが含まれており、これ
らの各レジスタは基本的には次に述べるモード命令で値
が設定されるが、オペレーション命令による変更も可能
である。
−ビットリバース幅レジスタ、ループ命令時にベースア
ドレス値を修飾するためのデルタベースアドレスレジス
タ、ループ命令時にインクリメント値を修飾するための
デルタインクリメント値レジスタが含まれており、これ
らの各レジスタは基本的には次に述べるモード命令で値
が設定されるが、オペレーション命令による変更も可能
である。
アドレス演算部1はアドレスレジスタとしてARO。
^R1,AR2の三つのレジスタを有し、それぞれアド
レス演算回路により制御される。そして、内蔵データR
AM2の一方の続出しポート0に対するアドレスをレジ
スタAROまたはAl11により指定し、他方の読出し
ポート1に対してはレジスタAR2がアドレスを供給す
る。
レス演算回路により制御される。そして、内蔵データR
AM2の一方の続出しポート0に対するアドレスをレジ
スタAROまたはAl11により指定し、他方の読出し
ポート1に対してはレジスタAR2がアドレスを供給す
る。
レジスタAROに関しては、先に述べたレジデュアル制
御に関するレジスタの内容に従って、インクリメント、
モジュロ、ビットリバース及びリピートの4モードによ
るアドレッシングが可能で、更に、ベースアドレス値、
インクリメント値、モジュロ値及びビットリバース幅を
独立に設定することが可能である。
御に関するレジスタの内容に従って、インクリメント、
モジュロ、ビットリバース及びリピートの4モードによ
るアドレッシングが可能で、更に、ベースアドレス値、
インクリメント値、モジュロ値及びビットリバース幅を
独立に設定することが可能である。
また、レジスタARI、 AR2ではインクリメントモ
ジュロの2モードによるアドレッシングが可能でレジス
タAPIと同様にベースアドレス値、インクリメント値
、モジュロ幅が独立に設定できる。
ジュロの2モードによるアドレッシングが可能でレジス
タAPIと同様にベースアドレス値、インクリメント値
、モジュロ幅が独立に設定できる。
更に、ポート1についてはダイレクトアドレッシングも
可能である。
可能である。
次に、演算部の構成について説明する。
演算部は、第5図において参照符号3.4.5.6゜7
及び8にて示される演算部入力レジスタRO,R1゜乗
夏器1乗算器出力しジスタ、演算器及びアキュムレータ
にて構成される。
及び8にて示される演算部入力レジスタRO,R1゜乗
夏器1乗算器出力しジスタ、演算器及びアキュムレータ
にて構成される。
演算データの形式としては、仮数部16ビツト。
指数部8ビツトの24ピント浮動小数点データと、24
ビット固定小数点データと、24ビツト論理データとの
3種類のデータに対して31種類の演算を行う。
ビット固定小数点データと、24ビツト論理データとの
3種類のデータに対して31種類の演算を行う。
乗算器5は演算部入力レジスタ(IiO)3. (R1
)4へ入力された値により、命令に関係なく毎サイクル
浮動小数点乗算結果を乗算器出力レジスタ6へ出力して
いる。但し、固定小数点であるデータに対する演算をオ
ペレーション命令のALUフィールドが指定している場
合には、量演夏部入力レジスタ(RO) 3と演算部入
力レジスタ(R1) 4との上位または下位の16ビツ
トの乗算結果(32ビツト)の上位又は下位の24ビツ
トを乗算器出力レジスタ6へ出力する。
)4へ入力された値により、命令に関係なく毎サイクル
浮動小数点乗算結果を乗算器出力レジスタ6へ出力して
いる。但し、固定小数点であるデータに対する演算をオ
ペレーション命令のALUフィールドが指定している場
合には、量演夏部入力レジスタ(RO) 3と演算部入
力レジスタ(R1) 4との上位または下位の16ビツ
トの乗算結果(32ビツト)の上位又は下位の24ビツ
トを乗算器出力レジスタ6へ出力する。
演算器7では、入力レジスタとして、X入力には演算部
入力レジスタ(RO) 3またはアキュムレータ8が、
y入力には演算部入力レジスタ(Ill) 4または乗
算器出力レジスタ6がそれぞれ用意されており、オペレ
ーション命令の内容に従って1マシンサイクルで演算を
実行し、演算結果をアキュムレータ8へ出力する。
入力レジスタ(RO) 3またはアキュムレータ8が、
y入力には演算部入力レジスタ(Ill) 4または乗
算器出力レジスタ6がそれぞれ用意されており、オペレ
ーション命令の内容に従って1マシンサイクルで演算を
実行し、演算結果をアキュムレータ8へ出力する。
次にメモリ部の概要について述べる。
第5図において、メモリ部は参照符号2,11及び12
にて示される2ボ一トデータRAM、 命令ROM。
にて示される2ボ一トデータRAM、 命令ROM。
共有RA?Iにて構成されている。また、内部に命令R
OMIIとして4にワードの命令メモリ空間が割当てら
れている。
OMIIとして4にワードの命令メモリ空間が割当てら
れている。
データメモリ空間としては、マイクロプロセッサ内部に
512ワードの2ポ一トRAM2が、同外部に拡張デー
タメモリ空間として60にワードの領域が割当てられて
いる。更に、命令メモリとデータメモリとの共有メモリ
空間12として4にワードが割当てられている。
512ワードの2ポ一トRAM2が、同外部に拡張デー
タメモリ空間として60にワードの領域が割当てられて
いる。更に、命令メモリとデータメモリとの共有メモリ
空間12として4にワードが割当てられている。
次に、クロック生成部について説明する。
クロ、り生成部は、第5図において参照符号21及び2
2にて示されるクロック/リセット信号発生回路及びク
ロックプリスケーラにて構成されている。
2にて示されるクロック/リセット信号発生回路及びク
ロックプリスケーラにて構成されている。
このクロック生成部は、命令で設定されたクロックプリ
スケーラ値に従って外部クロックをクロックプリスケー
ラ22により分周し、非重複4相クロツクを生成してい
る。
スケーラ値に従って外部クロックをクロックプリスケー
ラ22により分周し、非重複4相クロツクを生成してい
る。
クロック/リセット信号発生回路21はリセット信号N
RESETがアクティブに転じた際に通常はプログラム
カウンタ10を所定の固定アドレスにリセットするが、
リセット信号NRESETがノンアクティブに転じた際
に、第1剖込み入力ビン(INTI)26.第2割込み
入力ピン(INT2)27がアクティブであればプログ
ラムカウンタ10にデータレジスタ18の内容を転送す
る。この機能を用いることにより、予めデータレジスタ
18に外部から任意のデータを書込んでおけば、任意の
アドレスからプログラムをスタートさせるリセット処理
が可能である。
RESETがアクティブに転じた際に通常はプログラム
カウンタ10を所定の固定アドレスにリセットするが、
リセット信号NRESETがノンアクティブに転じた際
に、第1剖込み入力ビン(INTI)26.第2割込み
入力ピン(INT2)27がアクティブであればプログ
ラムカウンタ10にデータレジスタ18の内容を転送す
る。この機能を用いることにより、予めデータレジスタ
18に外部から任意のデータを書込んでおけば、任意の
アドレスからプログラムをスタートさせるリセット処理
が可能である。
次に、上述の如く構成されたマイクロプロセッサにおけ
る命令フォーマントについて述べる。
る命令フォーマントについて述べる。
命令ワード長は32ビツトであり、命令としては大きく
はシーケンス命令グループ、モード命令グループ、オペ
レーション命令グループ及びロード命令グループの4種
類に分類される。
はシーケンス命令グループ、モード命令グループ、オペ
レーション命令グループ及びロード命令グループの4種
類に分類される。
シーケンス命令グループでは主に分岐に関する命令が8
種類、モード命令グループでは各レジスタへのデータ設
定を行う命令が7種類、オペレーション命令グループで
は演算に関する命令が7種類、ロード命令グループでは
FIp値をレジスタへ設定する命令が2種類ある。ロー
ド命令グループ以外では、上位5ビツト (第27ビツ
ト〜第31ビツト)のデコード結果でグループ中の各命
令を判別し、残りの27ビツトを以下に示す各フィール
ドに割付けている。
種類、モード命令グループでは各レジスタへのデータ設
定を行う命令が7種類、オペレーション命令グループで
は演算に関する命令が7種類、ロード命令グループでは
FIp値をレジスタへ設定する命令が2種類ある。ロー
ド命令グループ以外では、上位5ビツト (第27ビツ
ト〜第31ビツト)のデコード結果でグループ中の各命
令を判別し、残りの27ビツトを以下に示す各フィール
ドに割付けている。
まずシーケンス命令グループでは、第6図fa+に示す
ようにフィールドが割付けられている。
ようにフィールドが割付けられている。
第6図(a−1)はシーケンス命令のビット配列を示し
ている。
ている。
第23ビツト〜第26ビツトは、第6図(a−5,6,
78)に示す如く、ループ時におけるループカウンタの
初期値の変更あるいはアドレッシングの修飾の変更を指
定するフィールドである。第19ビ、トル第23ビット
は、第6図(a−4)に示す如く、条件ジャンプのブラ
ンチ条件を設定するフィールドである。第4ビツト〜第
6ビツトは飛先アドレスを指定するフィールドであり、
その内の第4ビツト〜第6ビツトは、第6図(a−3)
に示す如く、レジスタが保持している内容を飛先アドレ
スとする間接ジャンプのレジスタを指定するフィールド
でもある。
78)に示す如く、ループ時におけるループカウンタの
初期値の変更あるいはアドレッシングの修飾の変更を指
定するフィールドである。第19ビ、トル第23ビット
は、第6図(a−4)に示す如く、条件ジャンプのブラ
ンチ条件を設定するフィールドである。第4ビツト〜第
6ビツトは飛先アドレスを指定するフィールドであり、
その内の第4ビツト〜第6ビツトは、第6図(a−3)
に示す如く、レジスタが保持している内容を飛先アドレ
スとする間接ジャンプのレジスタを指定するフィールド
でもある。
モード命令グループでは、第6図(blに示すようにフ
ィールドが割付けられている。
ィールドが割付けられている。
第6図(b−1)はモード命令のビット配列を示してい
る。
る。
第26ビントは、第6図(b−3)に示す如く、レジデ
ュアル!11mによる内部2ボートRAM2のボート0
のアドレスとしてレジスタAROを用いるかレジスタA
RIを用いるかを示すフィールドである。第25ビツト
は、第6図(b−4)に示す如く、外部データRAMの
下位9ビツトのアドレスとしてレジスタAROを用いる
かレジスタARIを用いるかを示すフィールドである。
ュアル!11mによる内部2ボートRAM2のボート0
のアドレスとしてレジスタAROを用いるかレジスタA
RIを用いるかを示すフィールドである。第25ビツト
は、第6図(b−4)に示す如く、外部データRAMの
下位9ビツトのアドレスとしてレジスタAROを用いる
かレジスタARIを用いるかを示すフィールドである。
第4ビツト〜第22ビツトは、第6図(b−5)に示す
如く、モード設定のための値を書込むフィールドである
。第0ビフト〜第3ビツトはいずれのレジスタに対して
値を設定するかを指定するフィールドである。
如く、モード設定のための値を書込むフィールドである
。第0ビフト〜第3ビツトはいずれのレジスタに対して
値を設定するかを指定するフィールドである。
オペレーシッン命令グループでは、第6図tc+に示す
様にフィールドが割付けられている。
様にフィールドが割付けられている。
第6図(c−1)はオペレーシッン命令のビット配列を
示している。
示している。
第26ビツトはダイレクトアドレッシングを行うか否か
を示すフィールドである。第23ビツト〜第25ビツト
はそれぞれレジスタARO,ARI、AR2をレジデュ
アル制御により更新するか否かを示すフィールドである
。第22ピントはデータレジスタの内容を外部データR
AMへ書込むか否かを、第21ビツトは外部データRA
Mからデータレジスタヘデータを読込むか否かを制御す
るフィールドである。第1920ビツトはアドレスレジ
スタが示すアドレスに書かれている内蔵RAM2の内容
を演算部入力レジスタ(RO)3. (R1)4へ書込
むか否かを制御するフィールドである。第17.18ビ
ツトは演算器7への入力レジスタを選択するフィールド
である。第12ビツト〜第16と7)は、第6図(c−
8)に示す如く、演算器7の演算を指定するフィールド
であり、特にALUフィールドと称する。第10.11
ビツトは、第6図(c−4)に示す如く、演算器7の演
算結果を入力するアキュムレータを指定するフィールド
である。
を示すフィールドである。第23ビツト〜第25ビツト
はそれぞれレジスタARO,ARI、AR2をレジデュ
アル制御により更新するか否かを示すフィールドである
。第22ピントはデータレジスタの内容を外部データR
AMへ書込むか否かを、第21ビツトは外部データRA
Mからデータレジスタヘデータを読込むか否かを制御す
るフィールドである。第1920ビツトはアドレスレジ
スタが示すアドレスに書かれている内蔵RAM2の内容
を演算部入力レジスタ(RO)3. (R1)4へ書込
むか否かを制御するフィールドである。第17.18ビ
ツトは演算器7への入力レジスタを選択するフィールド
である。第12ビツト〜第16と7)は、第6図(c−
8)に示す如く、演算器7の演算を指定するフィールド
であり、特にALUフィールドと称する。第10.11
ビツトは、第6図(c−4)に示す如く、演算器7の演
算結果を入力するアキュムレータを指定するフィールド
である。
第8.9ビツトは、第6図(c−5)に示す如く、出力
アキエムレータを指定するフィールドである。第4ビツ
ト〜第7ピントは、第6図(c−6)に示す如く、Dバ
ス24を介して行われるデータ転送のソースレジスタを
示すフィールドである。第9ビツト〜第3ビツトは、第
6図(c−7)に示す如く、Dバス24を介して行われ
るデータ転送のデスティネイシッンレジスタを指定する
フィールドである。
アキエムレータを指定するフィールドである。第4ビツ
ト〜第7ピントは、第6図(c−6)に示す如く、Dバ
ス24を介して行われるデータ転送のソースレジスタを
示すフィールドである。第9ビツト〜第3ビツトは、第
6図(c−7)に示す如く、Dバス24を介して行われ
るデータ転送のデスティネイシッンレジスタを指定する
フィールドである。
第6図(c−8)に示されているALIIフィールドに
ついて更に詳しく説明する。なお、演算器7への2人力
をそれぞれX入力、X入力とし、出力を2出力とする。
ついて更に詳しく説明する。なお、演算器7への2人力
をそれぞれX入力、X入力とし、出力を2出力とする。
NOPは、演算器7では何も演算しないという命令であ
り、X入力、X入力とも演算器7には入力されず、従っ
て2出力も行われない。
り、X入力、X入力とも演算器7には入力されず、従っ
て2出力も行われない。
INVは、X入力のデータを浮動小数点データと見なし
符号反転して2出力する命令である。
符号反転して2出力する命令である。
ABSは、X入力のデータを浮動小数点データと見なし
てその絶対値を2出力する命令である。
てその絶対値を2出力する命令である。
SGNは、X入力のデータとX入力のデータとを浮動小
数点データと見なしてXの絶対値にyの符号(正の数な
ら1、負の数なら−1)を乗算してZ出力する命令であ
る。
数点データと見なしてXの絶対値にyの符号(正の数な
ら1、負の数なら−1)を乗算してZ出力する命令であ
る。
八〇〇は、X入力のデータとX入力のデータとを浮動小
数点データと見なして加算し、2出力する命令である。
数点データと見なして加算し、2出力する命令である。
SUBは、X入力のデータとX入力のデータとを浮動小
数点データと見なして減算し、2出力する命令である。
数点データと見なして減算し、2出力する命令である。
MAXは、X入力のデータとX入力のデータとを浮動小
数点データと見なして比較し、大きい方を2出力する命
令である。
数点データと見なして比較し、大きい方を2出力する命
令である。
MINは、X入力のデータとX入力のデータとを浮動小
数点データと見なして比較し、小さい方を2出力する命
令である。
数点データと見なして比較し、小さい方を2出力する命
令である。
T)IRは、X入力のデータをそのまま2出力する命令
である。
である。
XFTは、X入力のデータを固定小数点データと見なし
てコントロールレジスタ15に設定したモードに従って
浮動小数点データに変換し、2出力する命令である。
てコントロールレジスタ15に設定したモードに従って
浮動小数点データに変換し、2出力する命令である。
PXTは、X入力のデータを浮動小数点データと見なし
てコントロールレジスタ15に設定したモードに従って
固定小数点データに変換し、2出力する命令である。
てコントロールレジスタ15に設定したモードに従って
固定小数点データに変換し、2出力する命令である。
SRIは、X入力のデータを論理データと見なして1ビ
ツト右シフトし、2出力する命令である。
ツト右シフトし、2出力する命令である。
SLIは、X入力のデータを論理データと見なして1ビ
ツト左シフトし、2出力する命令である。
ツト左シフトし、2出力する命令である。
SL2は、X入力のデータを論理データと見なして2ビ
ツト左シフトし、2出力する命令である。
ツト左シフトし、2出力する命令である。
SL4は、X入力のデータを論理データと見なして4ピ
ント左シフトし、2出力する命令である。
ント左シフトし、2出力する命令である。
SL8は、X入力のデータを論理データと見なして8ビ
ツト左シフトし、2出力する命令である。
ツト左シフトし、2出力する命令である。
これら<7)SRI、 SLI、 SL2. SL4.
SL8 ?は、シフトインされるデータは総て0であ
る。
SL8 ?は、シフトインされるデータは総て0であ
る。
ANDは、X入力のデータとX入力のデータとを論理デ
ータと見なして論理積をとり、2出力する命令である。
ータと見なして論理積をとり、2出力する命令である。
ORは、X入力のデータとy人カのデータとを論理デー
タと見なして論理和をとり、2出力する命令である。
タと見なして論理和をとり、2出力する命令である。
EORは、X入力のデータとX入力のデータとを論理デ
ータと見なして排他的論理和をとり、2出力する命令で
ある。
ータと見なして排他的論理和をとり、2出力する命令で
ある。
NOTは、X入力のデータを論理データと見なして論理
否定をとり、2出力する命令である。
否定をとり、2出力する命令である。
MADは、X入力のデータとX入力のデータとの下位1
6ビツトを固定小数点加算を行って2出力する命令であ
るが、入力データの指数部は無視され、2出力の上位8
ビツトには“0”が出力される。
6ビツトを固定小数点加算を行って2出力する命令であ
るが、入力データの指数部は無視され、2出力の上位8
ビツトには“0”が出力される。
ESBは、X入力のデータとX入力のデータとの上位8
ビツトを固定小数点減算を行い2出力する命令であるが
、入力データの仮数部は無視され、2出力の下位16ビ
ツトには°8000K” (wは16進数を表す)が出
力される。
ビツトを固定小数点減算を行い2出力する命令であるが
、入力データの仮数部は無視され、2出力の下位16ビ
ツトには°8000K” (wは16進数を表す)が出
力される。
IMULは、演算器7に対しては何も行わず、乗算器5
に固定小数点乗算を行わせる命令である。
に固定小数点乗算を行わせる命令である。
IADDは、X入力のデータとX入力のデータとを固定
小数点データと見なして加算し、2出力する命令である
。
小数点データと見なして加算し、2出力する命令である
。
l5UBは、X入力のデータとX入力のデータとを固定
小数点データと見なしてX入力データからX入力データ
を減算し、2出力する命令である。
小数点データと見なしてX入力データからX入力データ
を減算し、2出力する命令である。
IADCは、X入力のデータとX入力のデータとを固定
小数点データと見なしてこの2つの数とフラグレジスタ
(PR)32内のキャリービットとの加算を行い、2出
力する命令である。
小数点データと見なしてこの2つの数とフラグレジスタ
(PR)32内のキャリービットとの加算を行い、2出
力する命令である。
l5BBは、X入力のデータとX入力のデータとを固定
小数点データと見なし、X入力データがらX入力データ
を減算し、更にフラグレジスタ(PR)32内のキャリ
ーピントの減算を行い、2出力する命令である。
小数点データと見なし、X入力データがらX入力データ
を減算し、更にフラグレジスタ(PR)32内のキャリ
ーピントの減算を行い、2出力する命令である。
ASRIは、X入力のデータを固定小数点データと見な
して1ビツト右シフトを行い、2出力する命令である。
して1ビツト右シフトを行い、2出力する命令である。
ASR2は、X入力のデータを固定小数点データと見な
して2ビツト右シフトを行い、2出力する命令である。
して2ビツト右シフトを行い、2出力する命令である。
ASR4は、X入力のデータを固定小数点データと見な
して4ビツト右シフトを行い、2出力する命令である。
して4ビツト右シフトを行い、2出力する命令である。
ASR8は、X入力のデータを固定小数点データと見な
して8ピント□右シフトを行堕z出カする命令である。
して8ピント□右シフトを行堕z出カする命令である。
これら(7)ASlil、 ASR2,ASR4,AS
R8ニおけるシフトインデータはサインビット(X入力
の最上位ピント)である。
R8ニおけるシフトインデータはサインビット(X入力
の最上位ピント)である。
ロード命令グループでは、最上位の3ビツトによりロー
ド命令とロングロード命令とに分けられる。
ド命令とロングロード命令とに分けられる。
ロード命令では、第6図(dlに示す如くフィールドが
割付けられている。
割付けられている。
第6図(d−1)はロード命令のビット配列を示してい
る。
る。
第28ビ7トは、第6図(d−2)に示す如く、外部デ
ータRAMへの書込みを制御するフィールドである。第
26.27ビントは、第6図(d−3)に示す如(、即
値を書込むレジスタがアキュムレータ(ACC) 8で
ある場合に、アキュムレータ(ACC) 8中の図示さ
れていない^CCO〜ACC3のいずれのアキュムレー
タであるかを指定するフィールドである。第23ビツト
〜第25ビツトは、第6図(d−3)に示す如く、レジ
デュアル制御によるアドレスレジスタの内容の更新を制
御するフィールドである。第22ピントは、第6図(d
−5)に示す如く、Dバス24の24ビツトの内のMS
B側の18ビア)をレジスタに書込むかまたはLSB側
の18ピントをレジスタに書込むかを制御するフィール
ドである。第4ビツト〜第21ピントはレジスタへ書込
む即値を指定するフィールドである。第0ビツト〜第3
ビツトは、第6図(d−6)に示す如く、即値を書込む
レジスタを指定するフィールドである。
ータRAMへの書込みを制御するフィールドである。第
26.27ビントは、第6図(d−3)に示す如(、即
値を書込むレジスタがアキュムレータ(ACC) 8で
ある場合に、アキュムレータ(ACC) 8中の図示さ
れていない^CCO〜ACC3のいずれのアキュムレー
タであるかを指定するフィールドである。第23ビツト
〜第25ビツトは、第6図(d−3)に示す如く、レジ
デュアル制御によるアドレスレジスタの内容の更新を制
御するフィールドである。第22ピントは、第6図(d
−5)に示す如く、Dバス24の24ビツトの内のMS
B側の18ビア)をレジスタに書込むかまたはLSB側
の18ピントをレジスタに書込むかを制御するフィール
ドである。第4ビツト〜第21ピントはレジスタへ書込
む即値を指定するフィールドである。第0ビツト〜第3
ビツトは、第6図(d−6)に示す如く、即値を書込む
レジスタを指定するフィールドである。
ロングロード命令は、第6図(e)に示すようにフィー
ルドが割付けられている。
ルドが割付けられている。
第6図(e−1)はロングロード命令のビット配列を示
している。
している。
第28ピントはデータレジスタの内容を外部データRA
Mへ書込むか否かの制御を行うフィールドであり、第4
ビツト〜第27ビツトは即値を指定するフィールドであ
る。第0ビツト〜第3ビツトは、第6図(e−2)に示
す如く、即値を書込むレジスタ次に、上述のような従来
のマイクロプロセッサの動作モードについて説明する。
Mへ書込むか否かの制御を行うフィールドであり、第4
ビツト〜第27ビツトは即値を指定するフィールドであ
る。第0ビツト〜第3ビツトは、第6図(e−2)に示
す如く、即値を書込むレジスタ次に、上述のような従来
のマイクロプロセッサの動作モードについて説明する。
このマイクロプロセッサの動作モードとしては通常モー
ドの他に以下のようなテストモードがある。
ドの他に以下のようなテストモードがある。
まず、内蔵命令ROMIIと内蔵共有メモリ12との内
容を読出すことが可能なIIA(Internal T
nstruction ROM/RAM Access
)モード。
容を読出すことが可能なIIA(Internal T
nstruction ROM/RAM Access
)モード。
データ入出力端子305図示されていない出力端子及び
他の入出力端子の出力状態あるい出力レベルをマイクロ
プロセッサの内部動作とは無関係に設定可能なピンテス
トモード。
他の入出力端子の出力状態あるい出力レベルをマイクロ
プロセッサの内部動作とは無関係に設定可能なピンテス
トモード。
通常モードでは観測することが困難なりバス24及びプ
ログラムカウンタ10の値をデータ入出力端子30及び
図示されていない他の入出力端子から外部へ出力するP
EEPモード。
ログラムカウンタ10の値をデータ入出力端子30及び
図示されていない他の入出力端子から外部へ出力するP
EEPモード。
命令の実行によりデータレジスタ18又はシリアルI1
0インタフェイス17中の図示しないシリアル入力レジ
スタをDバス24を用いたバス転送のソースレジスタと
して用いた場合にこれらの代わりにシグネチャレジスタ
19中の図示されていない擬似乱数発生器をバス転送の
ソースレジスタとして、またデータレジスタ18又はシ
リアルI10インクフェイス17中の図示されていない
シリアル出力レジスタをDバス24を用いたバス転送の
デスティネーションレジスタとして用いた場合にこれら
の代わりにシダネチャレジスタ19中の図示しないデー
タ圧縮器をバス転送のデスティネーションレジスタとし
て用いるセルフテストモード。
0インタフェイス17中の図示しないシリアル入力レジ
スタをDバス24を用いたバス転送のソースレジスタと
して用いた場合にこれらの代わりにシグネチャレジスタ
19中の図示されていない擬似乱数発生器をバス転送の
ソースレジスタとして、またデータレジスタ18又はシ
リアルI10インクフェイス17中の図示されていない
シリアル出力レジスタをDバス24を用いたバス転送の
デスティネーションレジスタとして用いた場合にこれら
の代わりにシダネチャレジスタ19中の図示しないデー
タ圧縮器をバス転送のデスティネーションレジスタとし
て用いるセルフテストモード。
なお、シグネチャレジスタ19中の図示されていない擬
似乱数発生器及びデータ圧縮器はそれぞれ独立しており
、リセット処理により初期化される。
似乱数発生器及びデータ圧縮器はそれぞれ独立しており
、リセット処理により初期化される。
また、擬似乱数発生器はソースレジスタとしてアクセス
される都度、新たに乱数を出力し、データ圧縮器はデス
ティネーションレジスタとしてアクセスされる都度、ソ
ースレジスタから出力されるデータのシグネチャ圧縮を
行う。
される都度、新たに乱数を出力し、データ圧縮器はデス
ティネーションレジスタとしてアクセスされる都度、ソ
ースレジスタから出力されるデータのシグネチャ圧縮を
行う。
また、上述のモードの切換えはτESTモード設定信号
入力端子28とIIAモード設定端子29とへの入力信
号の論理レベルの組合わせにて行われる。
入力端子28とIIAモード設定端子29とへの入力信
号の論理レベルの組合わせにて行われる。
次に、上述の各テストモードの中でセルフテストモード
を使用した演算器7のテスト方法について説明する。
を使用した演算器7のテスト方法について説明する。
演算器7のテストは、各演算に対して種々の入力値で演
算を実行し、その結果を調べることにより行われる。ま
た、ある種の演算(たとえば[ADC演算等)に対して
はその前に実行された演算により設定されたフラグレジ
スタ(PR)32の値を用いることになるため、演算実
行の履歴が問題になる。
算を実行し、その結果を調べることにより行われる。ま
た、ある種の演算(たとえば[ADC演算等)に対して
はその前に実行された演算により設定されたフラグレジ
スタ(PR)32の値を用いることになるため、演算実
行の履歴が問題になる。
このため、演算器7の入力値に擬似乱数発生器から出力
された乱数を使用し、演算結果をデータ圧縮器で圧縮す
る場合について考える。
された乱数を使用し、演算結果をデータ圧縮器で圧縮す
る場合について考える。
Dバス24を使用したバス転送のソースレジスタとして
たとえばデータレジスタ18を命令により指定する都度
、新たな擬似乱数データが得られる。
たとえばデータレジスタ18を命令により指定する都度
、新たな擬似乱数データが得られる。
この擬似乱数データを演算器7の演算部入力レジスタ(
110)3. (R1)4へ転送することにより種々の
演算人力値が得られる。
110)3. (R1)4へ転送することにより種々の
演算人力値が得られる。
また、演算結果をDバス24を用いてバス転送し、その
デスティネーションレジスタとしてたとえばデータレジ
スタ18を指定すれば、演算結果が圧縮される。
デスティネーションレジスタとしてたとえばデータレジ
スタ18を指定すれば、演算結果が圧縮される。
上述のような操作は数個の命令にて実現可能であり、多
重ループを用いると小数の命令で多数の擬似乱数を利用
した演算器のテストを行うことが可能である。テストの
実行結果は、テスト終了後の最終結果を、正常に動作す
ることが確認されているマイクロプロセッサが出力する
最終シグネチャと比較することにより、正常であるか否
かの判断が可能である。
重ループを用いると小数の命令で多数の擬似乱数を利用
した演算器のテストを行うことが可能である。テストの
実行結果は、テスト終了後の最終結果を、正常に動作す
ることが確認されているマイクロプロセッサが出力する
最終シグネチャと比較することにより、正常であるか否
かの判断が可能である。
次に、このようなテスト回路を持ったマイクロプロセッ
サの演算器7のセルフテストプログラムの一例を第7図
に、その処理手順を示すフローチャートを第8図に示す
。
サの演算器7のセルフテストプログラムの一例を第7図
に、その処理手順を示すフローチャートを第8図に示す
。
このセルフテストプログラムは、第8図(alに示す如
く、二重ループを使用することにより、より小数の命令
にて多くのテストが行えるように構成されている。
く、二重ループを使用することにより、より小数の命令
にて多くのテストが行えるように構成されている。
第8回出)はモジュール1の処理手順を示すフローチャ
ートである。
ートである。
まず最初に、ングネチ中レジスタ19中の擬似乱数発生
器から演算部入力レジスタ(RO)3. (R1)4へ
疑似乱数をセントして演算を実行し、その演算結果をシ
グネチャレジスタ19中のデータ圧縮器へ転送し圧縮を
行うと同時に、−演算毎にフラグレジスタ(PR)32
の内容をチエツクし、またフラグレジスタ(FR) 3
2の内容に応じた条件ジャンプのテストも第8図(d)
に示すモジュール3にて行っている。
器から演算部入力レジスタ(RO)3. (R1)4へ
疑似乱数をセントして演算を実行し、その演算結果をシ
グネチャレジスタ19中のデータ圧縮器へ転送し圧縮を
行うと同時に、−演算毎にフラグレジスタ(PR)32
の内容をチエツクし、またフラグレジスタ(FR) 3
2の内容に応じた条件ジャンプのテストも第8図(d)
に示すモジュール3にて行っている。
このルーチンでは、−人力演算と二人力演算とを組合わ
せる事によりテストプログラムステップ数の削減を図っ
ている。
せる事によりテストプログラムステップ数の削減を図っ
ている。
第8図(C1はモジュール2の処理手順を示すフローチ
ャートである。
ャートである。
このモジュール2はモジュール1の変形であって、フラ
グレジスタ(PR)32中に格納されている前命令のキ
ャリーを受けて演算を行い、シグネチャレジスタ19中
のデータ圧縮器へデータを転送するルーチンである。
グレジスタ(PR)32中に格納されている前命令のキ
ャリーを受けて演算を行い、シグネチャレジスタ19中
のデータ圧縮器へデータを転送するルーチンである。
第8図では3種類の演算という表現で演算命令を代表さ
せたが、第5図における演算部7で実行可能な総ての演
算に対して、つまり第8図tc+に示されているAL、
IJフィールドの各演算NOP、 [NV、 ABSS
GN ADD SOB、 MAX、 MIN、 T
HR,XFT、 FXT、 5RISLI SL2
. SL4. SL8 AND、 OR,E
OR,NOT、 MADESB IMUL、 IA
DD、 l5UB、 IADC,l5BB、 ASRl
、 ASR2ASR4,ASR8の総てを行っている。
せたが、第5図における演算部7で実行可能な総ての演
算に対して、つまり第8図tc+に示されているAL、
IJフィールドの各演算NOP、 [NV、 ABSS
GN ADD SOB、 MAX、 MIN、 T
HR,XFT、 FXT、 5RISLI SL2
. SL4. SL8 AND、 OR,E
OR,NOT、 MADESB IMUL、 IA
DD、 l5UB、 IADC,l5BB、 ASRl
、 ASR2ASR4,ASR8の総てを行っている。
これらのモジュールを組合せて一つのプログラムとして
表現したものが第7図に示されているプログラムである
。このプログラムは約120ワードという少ないワード
数で構成されている。
表現したものが第7図に示されているプログラムである
。このプログラムは約120ワードという少ないワード
数で構成されている。
第9図は、第7図に示すセルフテストプログラムが第5
図の内蔵命令ROMIIのメモリ空間上にどの様に構成
されているかを示す模式図である。
図の内蔵命令ROMIIのメモリ空間上にどの様に構成
されているかを示す模式図である。
このようなメモリ空間の構成を採ることにより、通常モ
ードでは“oooo、”番地をスタートアドレスとする
ユーザプログラムが実行される。しかし、セルフテスト
を実行する場合にはセルフテストモードとしてのリセッ
ト機能を用いて上述の任意のアドレスからリセントスタ
ート可能なりセント処理を利用することにより、上述の
ようなセルフテストが実行される。
ードでは“oooo、”番地をスタートアドレスとする
ユーザプログラムが実行される。しかし、セルフテスト
を実行する場合にはセルフテストモードとしてのリセッ
ト機能を用いて上述の任意のアドレスからリセントスタ
ート可能なりセント処理を利用することにより、上述の
ようなセルフテストが実行される。
上述のような従来のマイクロプロセッサでは、セルフテ
ストによりシグネチャ圧縮した最終結果のみにてテスト
結果を判断しているので、テストを実行したマイクロプ
ロセッサの演算器が正常であるか否かの判断のみ可能で
あり、マイクロプロセッサの演算器のいずれの部分が不
良であるのかの特定が出来ないという問題がある。
ストによりシグネチャ圧縮した最終結果のみにてテスト
結果を判断しているので、テストを実行したマイクロプ
ロセッサの演算器が正常であるか否かの判断のみ可能で
あり、マイクロプロセッサの演算器のいずれの部分が不
良であるのかの特定が出来ないという問題がある。
本発明はこのような事情に鑑みてなされたものであり、
セルフテストの実行を任意のタイミングにおいて中断し
てデバッグプログラムを実行し、レジスタあるいはリセ
ット機能により初期化されるフラグ等の内容をマイクロ
プロセッサ外部へ読出すことにより、テストの途中結果
を特定し、マイクロプロセッサのセルフテスト実行中の
動作状態を把握可能としたマイクロプロセッサの提供を
目的とする。
セルフテストの実行を任意のタイミングにおいて中断し
てデバッグプログラムを実行し、レジスタあるいはリセ
ット機能により初期化されるフラグ等の内容をマイクロ
プロセッサ外部へ読出すことにより、テストの途中結果
を特定し、マイクロプロセッサのセルフテスト実行中の
動作状態を把握可能としたマイクロプロセッサの提供を
目的とする。
本発明のマイクロプロセッサは、内蔵されている命令1
10Mと、この命令1?OMに格納されているテストプ
ログラムの実行に伴って値を記憶し、全体のリセット時
には初期化される記憶手段とを備え、テストプログラム
実行中に記憶手段に記憶されている値を外部へ読出すた
めの別のプログラムを命令ROMに格納し、このプログ
ラムを実行させるための信号を入力する信号入力端子を
備えている。
10Mと、この命令1?OMに格納されているテストプ
ログラムの実行に伴って値を記憶し、全体のリセット時
には初期化される記憶手段とを備え、テストプログラム
実行中に記憶手段に記憶されている値を外部へ読出すた
めの別のプログラムを命令ROMに格納し、このプログ
ラムを実行させるための信号を入力する信号入力端子を
備えている。
本発明のマイクロプロセッサでは、命令ROMに格納さ
れているテストプログラムの実行中の任意の時点の記憶
手段の記憶値が外部へ読出されるので、この値に基づい
てデバッグが容易に行える。
れているテストプログラムの実行中の任意の時点の記憶
手段の記憶値が外部へ読出されるので、この値に基づい
てデバッグが容易に行える。
以下、本発明をその実施例を示す図面を参照して詳述す
る。
る。
第1図において、参照符号1はアドレス演算部(AAU
)であり、詳細は後述するが入力側はPバス23に接続
されている。
)であり、詳細は後述するが入力側はPバス23に接続
されている。
2はピント長24.ワード長512(24ビツト×51
2ワード)の内R2ポートデータRA−であり、データ
読出しのためのボートを2系統備えている他、上述のア
ドレス演算部(AAU)1及びDバス24と接続されて
いる。
2ワード)の内R2ポートデータRA−であり、データ
読出しのためのボートを2系統備えている他、上述のア
ドレス演算部(AAU)1及びDバス24と接続されて
いる。
3は第1の演夏部入力レジスタ(RO)、 4は第2
の演算部入力レジスタ(R1)であり、データRAM2
の各データ読出しボートがそれぞれの入力側に接続され
ている他、Dバス24とも接続されている。
の演算部入力レジスタ(R1)であり、データRAM2
の各データ読出しボートがそれぞれの入力側に接続され
ている他、Dバス24とも接続されている。
5は乗算器(IMPI、)であり詳細は後述するが、演
算部入力レジスタ(RO) 3及び(R1) 4の出力
を入力して乗算する。
算部入力レジスタ(RO) 3及び(R1) 4の出力
を入力して乗算する。
6は乗算器出力レジスタ(MR)であり、乗算器5の乗
算結果を保持する。
算結果を保持する。
7は演算器(FALU)であり詳細は後述するが、演算
部入力レジスタ(RO) 3 、 (R1) 4及び乗
算器出力レジスタCMR) 6の出力が入力される他、
Dバス24とも接続されている。
部入力レジスタ(RO) 3 、 (R1) 4及び乗
算器出力レジスタCMR) 6の出力が入力される他、
Dバス24とも接続されている。
8はアキュムレータ(ACC)であり、主として演算器
7による演夏結果を保持する。
7による演夏結果を保持する。
9は8レベルのスタックであり、プログラムカウンタ(
PC)10の値(プログラムカウンタ値)を必要に応し
て保持する。
PC)10の値(プログラムカウンタ値)を必要に応し
て保持する。
プログラムカウンタ(PC) IQは、次にフヱソチす
べき命令の命令メモリ、具体的には後述する内蔵命令R
OMIIにおけるアドレスを順次計数する。
べき命令の命令メモリ、具体的には後述する内蔵命令R
OMIIにおけるアドレスを順次計数する。
内蔵命令ROMII は32ピントx4にワードの容量
であり、プログラムカウンタ10から与えられるプログ
ラムカウンタ値に対応するアドレスに記憶している命令
を出力する。
であり、プログラムカウンタ10から与えられるプログ
ラムカウンタ値に対応するアドレスに記憶している命令
を出力する。
12は32ピント×64ワードの命令とデータとの内蔵
共有メモリ(CRAM)である、この共有メモリ12に
格納されている値はデータワードとしても命令ワードと
しても使用することが可能である。
共有メモリ(CRAM)である、この共有メモリ12に
格納されている値はデータワードとしても命令ワードと
しても使用することが可能である。
13は命令レジスタ(IR)であり、命令ROMII又
は共有メモリ12から読出された次に実行されるべき命
令ワードを保持する。
は共有メモリ12から読出された次に実行されるべき命
令ワードを保持する。
14は命令デコーダであり、命令レジスタ13が保持し
ている命令ワードをデコードし、そのデコード結果に基
づいてこのマイクロプロセッサ各部の動作を制御する。
ている命令ワードをデコードし、そのデコード結果に基
づいてこのマイクロプロセッサ各部の動作を制御する。
15はこのマイクロプロセッサ内部の動作モードを設定
するコントロールレジスタであす、リセ。
するコントロールレジスタであす、リセ。
ト処理により初期化される。このコントロールレジスタ
15は入力側がPバス23に、出力側がDバス24にそ
れぞれ接続されている。
15は入力側がPバス23に、出力側がDバス24にそ
れぞれ接続されている。
I6はダイレクトメモリアクセスコントローラ(DMA
)、 17はシリアルI10インク7zイ、2. (
Stlo)18はデータレジスタ(DR)、 19はシ
グネチャレジスタである。
)、 17はシリアルI10インク7zイ、2. (
Stlo)18はデータレジスタ(DR)、 19はシ
グネチャレジスタである。
20は割込みコントローラ、21はクロック/リセット
信号発生回路(CLK/R5T) 、 22はクロ、ク
ブリスケーラ(CPR)である。
信号発生回路(CLK/R5T) 、 22はクロ、ク
ブリスケーラ(CPR)である。
23は命令によりレジスタに即値を入力するPバス、2
4は各レジスタ(参照符号3.4.8.17.18゜1
9)等の間、あるいは内蔵RAM (参照符号2.12
)間でデータの送受を行うDバス、25はダイレクトメ
モリアクセス時にダイレクトメモリアクセスコントロー
ラ16により制御されてシリアルI10インタフェイス
17と外部メモリとの間でのデータ転送を制御するSバ
スである。
4は各レジスタ(参照符号3.4.8.17.18゜1
9)等の間、あるいは内蔵RAM (参照符号2.12
)間でデータの送受を行うDバス、25はダイレクトメ
モリアクセス時にダイレクトメモリアクセスコントロー
ラ16により制御されてシリアルI10インタフェイス
17と外部メモリとの間でのデータ転送を制御するSバ
スである。
26は第1割込み入力ビン(INTI)、 27は第2
割込み入力ピン(INT2)、 28はテストモード設
定のためのテストピン(TEST)、 29は後述する
IIAモード設定のためのIIAピンである。
割込み入力ピン(INT2)、 28はテストモード設
定のためのテストピン(TEST)、 29は後述する
IIAモード設定のためのIIAピンである。
30は24ピント長のデータ入出力端子であり、前述の
レジスタ18.19、Dバス24及びSバス25と外部
データメモリ (図示せず)との間でのデータ転送に使
用される。
レジスタ18.19、Dバス24及びSバス25と外部
データメモリ (図示せず)との間でのデータ転送に使
用される。
31はリセット信号(NRESET)入力端子であり、
このマイクロプロセッサ全体をリセットするためのリセ
ット信号(NRESET)の入力に使用される。
このマイクロプロセッサ全体をリセットするためのリセ
ット信号(NRESET)の入力に使用される。
32はフラグレジスタ(PR)であり、演算器7の演算
結果、各入力端子のレベルあるいはこのマイクロプロセ
ッサの内部動作モードを示す、このフラグレジスタ(P
R)32は上述のリセット信号(NRESET)が入力
された際のリセット処理により初期化される。
結果、各入力端子のレベルあるいはこのマイクロプロセ
ッサの内部動作モードを示す、このフラグレジスタ(P
R)32は上述のリセット信号(NRESET)が入力
された際のリセット処理により初期化される。
以上の構成は基本的には従来例として前述した本願発明
者らの出願に係る特願昭63−332250号の発明と
同一である。
者らの出願に係る特願昭63−332250号の発明と
同一である。
参照符号33はクロック信号(CLK)入力端子であり
、本発明のマイクロプロセッサはこのクロック信号入力
端子33から入力されるクロック信号CLKに同期して
動作する。
、本発明のマイクロプロセッサはこのクロック信号入力
端子33から入力されるクロック信号CLKに同期して
動作する。
参照符号34はマスク不可割込み信号(NMI)入力端
子であり、本発明のマイクロプロセッサがリセット処理
中以外の状態においてこのマスク不可割込み信号入力端
子34への入力信号であるマスク不可割込み信号NMI
がアクティブになると、命令空間の特定番地がサブルー
チンコールされる。
子であり、本発明のマイクロプロセッサがリセット処理
中以外の状態においてこのマスク不可割込み信号入力端
子34への入力信号であるマスク不可割込み信号NMI
がアクティブになると、命令空間の特定番地がサブルー
チンコールされる。
なお本発明のマイクロプロセッサにおいては、上述の各
構成部分の内の前述の従来と同一の参照符号を有する各
部分の構成、動作、命令フォーマント及び演算器7のセ
ルフテストプログラム等は従来例と全く同一であるので
説明を省略する。
構成部分の内の前述の従来と同一の参照符号を有する各
部分の構成、動作、命令フォーマント及び演算器7のセ
ルフテストプログラム等は従来例と全く同一であるので
説明を省略する。
第2図は、第1図に示されたマイクロプロセッサのセル
フテストの実行中においてセルフテストを中断し、中断
時点のフラグレジスタ(FR)32の内容をマイクロプ
ロセッサ外部へ読出すために必要な処理手順を示すフロ
ーチャートである。
フテストの実行中においてセルフテストを中断し、中断
時点のフラグレジスタ(FR)32の内容をマイクロプ
ロセッサ外部へ読出すために必要な処理手順を示すフロ
ーチャートである。
まずステップSlにおいて、任意のアドレスからプログ
ラムの実行を開始するためのリセット処理を利用してセ
ルフテストプログラムをリセットスタートさせる。
ラムの実行を開始するためのリセット処理を利用してセ
ルフテストプログラムをリセットスタートさせる。
次にステップS2において、マイクロプロセッサの動作
モードをセルフテストモードに設定し、シグネチャレジ
スタ19を用いたセルフテストの実行を開始させる。
モードをセルフテストモードに設定し、シグネチャレジ
スタ19を用いたセルフテストの実行を開始させる。
ステップS3においては、セルフテストを中断する条件
になるまでセルフテストの実行を継続させる。
になるまでセルフテストの実行を継続させる。
ステップS4において、セルフテストを中断させるため
に、マスク不可割込み信号入力端子34へ入力されてい
るマスク不可割込み信号NMIをアクティブに設定して
デバッグプログラムを起動する。
に、マスク不可割込み信号入力端子34へ入力されてい
るマスク不可割込み信号NMIをアクティブに設定して
デバッグプログラムを起動する。
ステップS5において、マイクロプロセッサの動作モー
ドをPEEPモードに設定してDバス24を用いた転送
のデータがそのままデータ入出力端子30から出力され
るようにする。
ドをPEEPモードに設定してDバス24を用いた転送
のデータがそのままデータ入出力端子30から出力され
るようにする。
ステップS6において、デバッグプログラムの実行によ
りフラグレジスタ(PR)32をDバス24を用いたバ
ス転送のソースレジスタに設定する命令を実行し、フラ
グレジスタ(PR) 32の値をマイクロプロセッサの
外部へ読出す。
りフラグレジスタ(PR)32をDバス24を用いたバ
ス転送のソースレジスタに設定する命令を実行し、フラ
グレジスタ(PR) 32の値をマイクロプロセッサの
外部へ読出す。
このような操作を行うためのデバッグプログラムの例を
第3図に、またその処理手順を示すフローチャートを第
4図にそれぞれ示す。
第3図に、またその処理手順を示すフローチャートを第
4図にそれぞれ示す。
第4図のステップ311において、マスク不可割込み実
行時のサブルーチンコールアドレスにあるデバッグプロ
グラムへのジャンプ命令が実行される。そしてステップ
S12において、Dバス24を使用したバス転送のソー
スレジスタとしてデータレジスタ18を使用した命令が
実行される。
行時のサブルーチンコールアドレスにあるデバッグプロ
グラムへのジャンプ命令が実行される。そしてステップ
S12において、Dバス24を使用したバス転送のソー
スレジスタとしてデータレジスタ18を使用した命令が
実行される。
第3図において、ラベル“NMIADD:”はマスク不
可割込み実行時のサブルーチンコールアドレスヲ示し、
またラベル“DEBAG :”はデバッグプログラムの
スタートアドレスを示す。
可割込み実行時のサブルーチンコールアドレスヲ示し、
またラベル“DEBAG :”はデバッグプログラムの
スタートアドレスを示す。
なお、上述のデバッグプログラムにおいて、フラグレジ
スタ(PR) 32の他にマイクロプロセッサの他の記
憶手段の内容をマイクロプロセッサ外部へ出力するため
の命令を付加してもよいことは言うまでもない。
スタ(PR) 32の他にマイクロプロセッサの他の記
憶手段の内容をマイクロプロセッサ外部へ出力するため
の命令を付加してもよいことは言うまでもない。
また、上述のデバッグプログラムを、マイクロプロセッ
サのリセット処理において初期化される記憶手段の内容
を初期化されないマイクロプロセッサ内部の記憶手段に
転送する命令にて構成し、またその初期化されない記憶
手段の内容をマイクロプロセッサ外部へ読出すプログラ
ムを更に内蔵命令ROM中に備え、そのプログラムを任
意のアドレスから実行開始するリセット処理を用いて実
行するようにしてもよい。
サのリセット処理において初期化される記憶手段の内容
を初期化されないマイクロプロセッサ内部の記憶手段に
転送する命令にて構成し、またその初期化されない記憶
手段の内容をマイクロプロセッサ外部へ読出すプログラ
ムを更に内蔵命令ROM中に備え、そのプログラムを任
意のアドレスから実行開始するリセット処理を用いて実
行するようにしてもよい。
更にまた、セルフテストプログラムの中断のタイミング
を決定するために、セルフテストの実行時にデータ入出
力端子30から出力されているシグネチャ圧縮の中間結
果を利用することも可能である。
を決定するために、セルフテストの実行時にデータ入出
力端子30から出力されているシグネチャ圧縮の中間結
果を利用することも可能である。
また更に、マスク不可割込み信号NMI以外の制御信号
の内でセルフテストプログラムにおいては用いられてい
ない制御信号を用いてセルフテストを中断するような構
成も可能である。
の内でセルフテストプログラムにおいては用いられてい
ない制御信号を用いてセルフテストを中断するような構
成も可能である。
以上に詳述した如く本発明によれば、数ワード程度の小
数のデバッグプログラムによりマイクロプロセッサのセ
ルフテストの結果に異常があった場合の原因究明に必要
な内部記憶手段が保持しているデータをマイクロプロセ
ッサの外部へ容易に読出すことが可能になるので、マイ
クロプロセッサの開発段階における不良原因の特定が迅
速且つ容易に行え、マイクロプロセンサの開発に要する
時間を短縮することが可能になる。
数のデバッグプログラムによりマイクロプロセッサのセ
ルフテストの結果に異常があった場合の原因究明に必要
な内部記憶手段が保持しているデータをマイクロプロセ
ッサの外部へ容易に読出すことが可能になるので、マイ
クロプロセッサの開発段階における不良原因の特定が迅
速且つ容易に行え、マイクロプロセンサの開発に要する
時間を短縮することが可能になる。
第1図は本発明に係るマイクロプロセッサの構成を示す
ブロック図、第2図はその演算器のセルフテスト中にデ
バッグプログラムを動作させるための手順を示すフロー
チャート、第3図は本発明のマイクロプロセッサの内蔵
命令ROMに格納されているデバッグプログラムのリス
トの一例を示す模式図、第4図はその動作手順を示すフ
ローチャート、第5図はセルフテスト機能を有する従来
のマイクロプロセッサの一構成例を示すブロック図、第
6図は第1図にその構成を示した本発明のマイクロプロ
セッサ及び第5図にその構成を示した従来のマイクロプ
ロセッサに共通して備えられている命令フォーマントを
示す模式図、第7図は第1図にその構成を示した本発明
のマイクロプロセッサ及び第5図にその構成を示した従
来のマイクロプロセッサに共通して備えられている内蔵
命令RO門に格納されているセルフテストプログラムの
リストの一例を示す模式図、第8図はその動作手順を示
すフローチャート、第9図は第1図にその構成を示した
本発明のマイクロプロセッサ及び第5図にその構成を示
した従来のマイクロプロセッサに共通して備えられてい
る内蔵命令ROMの命令メモリ空間を示す模式図である
。 2・・・内蔵データRA?I 7・・・演算器 1
1・・・内蔵命令ROM 19・・・シグネチャレジ
スタ 20・・・割込みコントローラ 26・・・
第1割込み入力ピン27・・・第2割込み人力ピン
28・・・TESTモード設定信号入力端子 30・
・・データ入出力端子 31・・・リセット信号入力
端子 32・・・フラグレジスタ34・・・マスク不
可割込み信号入力端子なお、図中、同一符号は同一、又
は相当部分を示す。
ブロック図、第2図はその演算器のセルフテスト中にデ
バッグプログラムを動作させるための手順を示すフロー
チャート、第3図は本発明のマイクロプロセッサの内蔵
命令ROMに格納されているデバッグプログラムのリス
トの一例を示す模式図、第4図はその動作手順を示すフ
ローチャート、第5図はセルフテスト機能を有する従来
のマイクロプロセッサの一構成例を示すブロック図、第
6図は第1図にその構成を示した本発明のマイクロプロ
セッサ及び第5図にその構成を示した従来のマイクロプ
ロセッサに共通して備えられている命令フォーマントを
示す模式図、第7図は第1図にその構成を示した本発明
のマイクロプロセッサ及び第5図にその構成を示した従
来のマイクロプロセッサに共通して備えられている内蔵
命令RO門に格納されているセルフテストプログラムの
リストの一例を示す模式図、第8図はその動作手順を示
すフローチャート、第9図は第1図にその構成を示した
本発明のマイクロプロセッサ及び第5図にその構成を示
した従来のマイクロプロセッサに共通して備えられてい
る内蔵命令ROMの命令メモリ空間を示す模式図である
。 2・・・内蔵データRA?I 7・・・演算器 1
1・・・内蔵命令ROM 19・・・シグネチャレジ
スタ 20・・・割込みコントローラ 26・・・
第1割込み入力ピン27・・・第2割込み人力ピン
28・・・TESTモード設定信号入力端子 30・
・・データ入出力端子 31・・・リセット信号入力
端子 32・・・フラグレジスタ34・・・マスク不
可割込み信号入力端子なお、図中、同一符号は同一、又
は相当部分を示す。
Claims (1)
- (1)演算器と、 該演算器のテストのための疑似乱数発生器 及びデータ圧縮器と、 プログラムを構成する複数の命令が格納さ れた命令ROMと、 前記擬似乱数発生器及びデータ圧縮器を使 用することが可能なモードを設定するための信号を入力
するための第1入力端子と、 前記モードが設定されている場合に、前記 データ圧縮器の出力を又は前記データ圧縮器の出力とそ
の期待値との比較結果を外部へ出力する第1出力端子と
を備え、 前記モード下において、特定のデータ又は 前記擬似乱数発生器から出力される擬似乱数を前記演算
器へ入力し、その演算結果を前記データ圧縮器へ入力す
る一連の処理を実行する第1プログラムを前記命令RO
Mに格納してあるマイクロプロセッサにおいて、 リセット処理により初期化され、前記第1 プログラムの実行に伴って値を記憶する記憶手段と、 該記憶手段の記憶内容を外部へ出力するた めの第2出力端子と、 第2入力端子とを備え、 前記第1プログラム実行中に前記第2入力 端子から所定の信号が入力された場合に前記第1プログ
ラムの実行を中断して前記記憶手段の記憶内容を前記第
2出力端子を介して外部へ出力させる第2プログラムを
前記命令ROMに格納してあることを特徴とするマイク
ロプロセッサ。
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2148189A JPH0439745A (ja) | 1990-06-05 | 1990-06-05 | マイクロプロセッサ |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2148189A JPH0439745A (ja) | 1990-06-05 | 1990-06-05 | マイクロプロセッサ |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| JPH0439745A true JPH0439745A (ja) | 1992-02-10 |
Family
ID=15447239
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP2148189A Pending JPH0439745A (ja) | 1990-06-05 | 1990-06-05 | マイクロプロセッサ |
Country Status (1)
| Country | Link |
|---|---|
| JP (1) | JPH0439745A (ja) |
-
1990
- 1990-06-05 JP JP2148189A patent/JPH0439745A/ja active Pending
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| JP4511461B2 (ja) | データ処理システムでの処理動作マスキング | |
| JP4996654B2 (ja) | プロセッサ | |
| JPH035835A (ja) | マイクロプロセッサ | |
| JPH0431931A (ja) | 情報処理装置のテスト容易化回路 | |
| JPH08305605A (ja) | 拡張検査ベクトル記憶部を用いた走査検査方法および装置 | |
| Kranitis et al. | Effective software self-test methodology for processor cores | |
| JP2019521445A (ja) | Simdアーキテクチャにおけるレーンのシャッフルのためのシャッフラー回路 | |
| CN117313595B (zh) | 用于功能验证的随机指令生成方法、设备及系统 | |
| JP2581018B2 (ja) | データ処理装置 | |
| US8484520B2 (en) | Processor capable of determining ECC errors | |
| US8805903B2 (en) | Extended-width shifter for arithmetic logic unit | |
| JPH04320981A (ja) | 情報処理装置の自己診断回路および自己診断方法 | |
| US6263424B1 (en) | Execution of data dependent arithmetic instructions in multi-pipeline processors | |
| JPH0439745A (ja) | マイクロプロセッサ | |
| JP2806075B2 (ja) | マイクロコンピュータ | |
| CN111913097B (zh) | 一种用于测试SoC功能的测试电路、测试方法和SoC | |
| JPH02213938A (ja) | 演算装置 | |
| JP3019818B2 (ja) | データ処理方法 | |
| JPH0540703A (ja) | マイクロプロセツサ | |
| JP2872117B2 (ja) | マイクロプロセッサ | |
| KR100240108B1 (ko) | 디지탈신호처리기의 조건부 분기 명령 수행방법 | |
| JPH02176943A (ja) | マイクロプロセッサ | |
| JP2003216416A (ja) | 論理演算回路 | |
| JP3759742B2 (ja) | データ処理装置 | |
| KR100298552B1 (ko) | 명령디코딩장치 |