JPS6148189B2 - - Google Patents

Info

Publication number
JPS6148189B2
JPS6148189B2 JP54121618A JP12161879A JPS6148189B2 JP S6148189 B2 JPS6148189 B2 JP S6148189B2 JP 54121618 A JP54121618 A JP 54121618A JP 12161879 A JP12161879 A JP 12161879A JP S6148189 B2 JPS6148189 B2 JP S6148189B2
Authority
JP
Japan
Prior art keywords
register
instruction
output
cpu
program counter
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
Application number
JP54121618A
Other languages
English (en)
Other versions
JPS5644952A (en
Inventor
Toshiaki Suzuki
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.)
Panasonic Holdings Corp
Original Assignee
Matsushita Electric Industrial Co Ltd
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 Matsushita Electric Industrial Co Ltd filed Critical Matsushita Electric Industrial Co Ltd
Priority to JP12161879A priority Critical patent/JPS5644952A/ja
Publication of JPS5644952A publication Critical patent/JPS5644952A/ja
Publication of JPS6148189B2 publication Critical patent/JPS6148189B2/ja
Granted legal-status Critical Current

Links

Landscapes

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

Description

【発明の詳細な説明】 本発明は、マイクロプロセツサに関するもので
ある。
従来からマイクロプロセツサをユーザーシステ
ムに応用していく場合には、ハードウエアのコス
トに比較して、ソフトウエアのコストの比率が大
きくなりつつある。またシングルチツプマイクロ
プロセツサの場合には、量産時に使用するマイク
ロプロセツサと共に、ソフトウエアの開発用のエ
バリユエーシヨン用チツプが開発されている。こ
のエバリユエーシヨンチツプは、外部から命令コ
ードが入力できる構造になつており、ユーザーは
このCPUとしてのエバリユエーシヨンチツプに
外部から命令コードを入力することができる。ま
たユーザーはCPUとしてのエバリユエーシヨン
チツプの他にプログラムメモリとしてのRAMを
エバリユエーシヨンチツプと共に用いて、命令を
変更しながらプログラムを開発している。このエ
バリユエーシヨンチツプの出力端子としては、マ
イクロプロセツサの持つ入出力端子の他に、プロ
グラムカウンタの出力端子と、命令を1ステツプ
ごとに実行していくための同期信号出力端子を備
えている。このエバリユエーシヨンチツプを用い
たプログラム開発用の装置を、一般にプログラム
デバツグシステムと呼んでいる。このデバツグシ
ステム機能として、一般には、プログラムの読み
出し、書き込み、命令実行の制御の他に、ブレイ
ク機能を持つている。このブレイク機能は、プロ
グラムカウンタが特定の値になつた時、命令実行
を一時中断する機能であり、プログラムデバツグ
より重要な働きを持つており、この特定のプログ
ラムカウンタの値と、予めブレイクしておきたい
プログラム実行番地が一致した時にブレイクす
る。しかしながら、このマイクロプロセツサの内
部に内蔵されている内部レジスタ類、内部RAM
のアクセス時などにもブレイク出来れば、プログ
ラムデバツグの効率が良いが、現在のエバリユエ
ーシヨンチツプでは、プログラムカウンタのみに
しか出力されていないため、このブレイクは不可
能である。また、プログラムカウンタ値によるブ
レイク機能だけの場合には、他のレジスタ値を含
めた条件でブレイク出来ない。例えば、サブルー
チンプログラムのデバツグ時には、同一のプログ
ラムカウンタ値で、いくつもの条件の時にプログ
ラムが実行される。この時に、特定のフラグとし
て使用しているレジスタ値が特定の条件を満たし
た時にのみブレイク出来れば、都合の良いという
場合もある。また、特定のRAM領域をフラグと
して使用している場合に、変更されるはずのない
フラグがいつの間にか変更されていた場合には、
どのプログラムを実行中に変更されているかを知
りたいという場合もある。
これらの不都合をなくするため、単純に内部レ
ジスタ値が内部RAMの内容を出力するための端
子を設けるならば、出力端子が極端に増えてしま
う。この出力端子のピン数は、LSIのパツケージ
ング上から制限されるので、全ての内部レジスタ
値や内部RAM値を出力するための端子を設ける
ことは現実的ではない。またCPUチツプの他
に、入出力チツプ、RAMチツプ、ROMチツプな
どの複数個のチツプから構成されるマルチチツプ
マイクロプロセツサの場合には、データバスが入
出力端子として設けられているので、この様な不
都合は生じない場合も多いが、シングルチツプの
マイクロプロセツサの場合には、CPUの内部レ
ジスタ値を外部に出力するには、出力命令を実行
する以外に手段がないので、問題が生じてくる。
第1図は、従来のマイクロプロセツサ及びデバ
ツグシステムを示したもので、1はCPU、2は
プログラムカウンタ、3は命令レジスタ、4は命
令デコーダ、5は命令コード入力端子、6はプロ
グラムカウンタ2の出力端子、7は同期信号出力
端子、8はレデイ信号入力端子、9は入出力ポー
ト端子、10はプログラム用メモリ、11はコン
パレータ、12はブレイクPCレジスタ、13は
レデイ制御フリツプ・フロツプ、14はCPUス
タート制御端子、15はクロツク入力端子、16
はクロツク発生部、17は外部クロツク発生部で
ある。
外部の機能は周知であるので、詳細な説明は省
略するが、クロツク発生部16は外部クロツク発
生部17のクロツクパルスをカウンタによつて分
周し、このカウンタの並列出力をデコードするこ
とによつて4相のクロツクSφ,S1,S2,S3(第
2図参照)を作り、CPU1の動作クロツクとす
る。ユーザーシステムには入出力ポート端子9を
介して接続することによつて、インサーキツトエ
ミユレータとして動作する。またユーザーのデバ
ツグしたいプログラムは、プログラム用メモリ1
0に格納され、プログラムカウンタ出力端子6の
示すプログラムカウンタ値ロに対応する命令コー
ドイを命令コード入力端子5に入力する。命令実
行の開始や中断制御はレデイ信号入力端子8を操
作することによつて行なわれ、CPUはCPUスタ
ート制御端子14にパルスを加えることによつて
スタートする。実行中断は同期信号出力端子7の
タイミングSφの立ち下がりに同期して、レデイ
制御フリツプ・フロツプ13を動作させ、レデイ
信号ニをLOWレベルにする。また実行中断のブ
レイク値チは、ブレイクPCレジスタ12に予め
プリセツトしておく。プログラムカウンタ値ロと
一致した時に、このPC比較用コンパレータ11
が動作し、ブレイクPC一致信号トを出力するこ
とによつて、CPU1は実行を一時中断する。ま
たユーザープログラムのブレイクしたいプログラ
ムカウンタ2の番地をブレイクPCレジスタ12
にセツトしておき、CPUスタート制御信号への
加えるとCPU1は設定されたプログラムカウン
タの番地までリアルタイムで実行した後、ブレイ
クする。
以上説明したように、上記従来例では、シング
ルチツプのマイクロプロセツサの場合に、CPU
の内部レジスタ値を外部に出力するためには、出
力命令を実行する以外に手段がないので、簡単に
プログラムを実行中の変更を知ることができない
という欠点があつた。
本発明は、上記従来例の欠点を解決するため
に、内部レジスタの内容をトレースしながら必要
な条件の時にブレイクできるマイクロプロセツサ
を提供するものである。以下、図面により実施例
を詳細に説明する。
第3図は、本発明の実施例を示したもので、第
1図と同一符号のものは同一のものを示してお
り、また18はトレースレジスタ指定入力端子、
19はトレースレジスタ選択回路、20〜30は
転送ゲート、31は入出力ポートレジスタ、32
〜33は内部レジスタ、34は内部RAM、35
はマルチプレクサ選択ゲート、36はマルチプレ
クサ、37は演算論理ユニツトである。
第4図は、トレースレジスタ選択回路19の詳
細な構成を示したもので、38はシフトレジス
タ、39はラツチ、40はデコーダ、41,42
は転送ゲート25,26の開閉信号生成ゲートで
ある。
このCPU1の動作タイミングは第2図に示さ
れている。即ち、このCPU1は4相のクロツク
Sφ,S1,S2,S3で動作しており、命令フエツチ
サイクルと命令実行サイクルは、それぞれオーバ
ーラツプしている。クロツクSφは同期信号ハと
同相のクロツクであり、同期信号出力端子7を経
由して外部に出力される。プログラムカウンタ値
ロはS3の立下りエツジに同期して、カウントアツ
プされる。クロツクS3の立ち下がりエツジから出
力されたプログラムカウンタ値ロは、CPU1の
外部に接続されたプログラムメモリ10をアドレ
ス指定する。このアドレス指定い必要なアクセス
タイムが第2図のプログラムメモリアクセスタイ
ミング1Aであり、CPU1のクロツクS3の期間
に相当する。クロツクSφは、アドレス指定され
たユーザープログラムの命令コードイを命令レジ
スタ3にラツチするタイミングである。このクロ
ツクSφによつて外部に接続するプログラムメモ
リ10のアクセスタイムが遅い場合には、レデイ
入力端子8を制御することによつて、WAITをか
けることも出来る。次にクロツクCAは命令レジ
スタ3にラツチされた命令コードをデコード及び
エンコードして、CPU1の各部ゲートを制御す
るための命令デコーダ4をアクセスするタイミン
グであり、タイミングクロツクS1に相当する。従
つて、この命令デコーダのアクセスタイミング中
にCPU1は動作することが出来ない。この命令
デコーダ4でデコードされ、エンコードされた
CLA信号ワによつて、CPU1の各部ゲートが開
閉され、データーを転送する。クロツクRAは内
部RAM34のアクセスするアドレスを転送する
タイミングであり、CPUクロツクのS2に相当す
るでタイミングである。この内部RAM34はこ
のクロツクS2の間にアドレスラツチを行ない、ア
クセス出来る様に準備しておく。RAMのデータ
の書き込み、読み出しは、次のクロツクS3,Sφ
で行なう。
次に第2図のTRは、内部レジスタ32,33
のデータ及びRAM34のデータ、命令レジスタ
3、プログラムカウンタ、入出力ポートレジスタ
31、演算論理ユニツト37間のデータ転送を行
なうタイミングであり、CPUクロツクのS3とS
φのタイミングに相当する。このクロツクS3,S
φのどちらのタイミングでデータバスに出力する
か、データバスから入力するかは、CLA信号ワ
によつて決められる。従つて命令コードの種類に
よつてそれぞれ異なつている。このCLA信号ワ
は命令デコーダの命令ごとにそれぞれ別々な信号
をデコードした後、それぞれを制御するゲートご
とにエンコードして、転送ゲート20〜30を制
御する。従つて、この転送ゲート20〜30の制
御信号は第4図の41に示すように、クロツクS3
とSφの両方でそれぞれ必要な時に開閉されるよ
うになつている。この動作の詳細はCLA制御方
式のマイクロプロセツサには共通するので省略す
る。
以上説明したように、クロツクS1から始まり、
クロツクS2,S3,SφでCPUの1マシンサイク
ルを終了する。またプログラムカウンタはクロツ
クS3で動作するので、CPUの実行サイクルS1
Sφとは異なつている。このことからも明らかな
ように、命令フエツチサイクルと、命令実行サイ
クルとは、互いにオーバーラツプして動作する。
以上の動作は、従来例と重複する部分の構成動
作であり、本発明においては、命令デコーダ4の
アクセスタイム時を有効に利用して、従来例に付
加された動作を行なうものである。この動作は、
一般にトレース機能と呼ばれており、内部にある
レジスタ32,33及び内部RAM34の内容は
直接CPU1の外部には、命令によつて出力する
以外には出力されない構造になつている。
そこで、プログラムデバツグを行なう際にこの
内部レジスタ32,33、内部RAM34を外部
に出力し、所定の値になつた時、ブレイクして、
CPU1の命令実行を中断させるため、S1のタイ
ミングでCPU1が何も動作していないことを利
用して、データバスに出力し、これを外部に出力
する。また、このS1のタイミング時には、命令コ
ードイは既に命令レジスタ3にラツチされた後で
あるので、次のマシンサイクルのSφまでは、命
令コードイは意味を持たなくても良い。このSφ
のタイミングで命令レジスタ3がラツチされるの
で、プログラムメモリ10のアクセスを考慮して
S3とSφのタイミング中のみプログラムカウンタ
の値ロがプログラムカウンタ出力端子6に出力さ
れれば良いことになる。このようにすることによ
つて、S1とS2のタイミング時には別の信号をプロ
グラムカウンタの出力端子6から出力することが
出来る。
この切換はマルチプレクサ36で行われ、また
このマルチプレクサ36の切換信号はマルチプレ
クサ選択ゲート35で作られる、S1とS2のタイミ
ングをORしている。このようにすることによつ
て、命令デコーダ4のアクセス期間中にデータバ
スの信号リを外部に出力することができる。また
同様に、データバスの内容をS2のタイミングに外
部に出力することによつて、内部RAMのアドレ
ス値を外部に出力しトレースできる。このデータ
バスにはいくつかのレジスタが接続されており、
これらのレジスタ類の全てを同時に外部に出力す
ることは、データバスの本数が制限されているた
め、無理になる。そこで、外部でトレースしたい
内部レジスタ類のみを選択するための回路が必要
になる。
第4図は、このトレースレジスタ選択回路19
の詳細実施例を示したもので、シフトレジスタ3
8、ラツチ回路39、デコーダ40及び転送ゲー
ト20〜30の開閉信号生成ゲート41,42か
ら構成されている。このトレースレジスタ指定入
力端子から入力された選択信号ツはCPUクロツ
クSφ〜S3に同期して、シフトレジスタ38にシ
フトインされる。このシフトレジスタ38の内容
はSφのタイミングでラツチ39に転送する。こ
のラツチ39の出力は、Sφの期間中にデコード
を行ない、S1のタイミング以後、デコード出力と
して内部レジスタ選択信号ラ,ムを出力する。こ
の信号で選択された内部レジスタの内容をS1のタ
イミングに同期してデータバスに出力し、さら
に、プログラムカウンタ出力端子6から外部に出
力する。このレジスタの選択は、データバスの本
数によつて1つのレジスタになる場合もあるし、
2つ以上(例えば、キヤリフラグ、ゼロフラグの
2つを同時に)出力出来る場合もある。また、内
部RAMの値又は内部レジスタと同様に扱つて出
力しても良い。この場合、RAMアドレスはS2
変更されるので、直前に実行、処理されたRAM
の番地に対応したデータが出力される。この
RAMの値を出力することによつて、特定のRAM
番地の内容が命令実行によつて変更された時、ブ
レイクすることができる。
第6図は、本発明のマイクロプロセツサを用い
たデバツグシステムを示したもので、従来例のデ
バツグシステムと重複する部分の説明は複雑にな
るので省略する。このシステムにおいては、ブレ
イク条件が4通りある。一つは従来例と同様に、
プログラムカウンタの値が一致した時であり、二
つ目はRAMの特定番地に書き込み、読み出しを
行なう時であり、三つ目はRAMの特定の番地の
値が予め改定された値と一致した時であり、四つ
目は内部レジスタの値が予め設定された値と一致
した時である。それぞれのブレイク条件値は、ブ
レイクPC、レジスタ12、ブレイクRAMアドレ
スレジスタ44、ブレイク内部レジスタ値指定レ
ジスタ47にそれぞれ設定される。これら4つの
モードのどれを有効にするかを決めるための端子
は62〜65である。即ち、PC一致時ブレイク
入力端子62、RAMアクセス時ブレイク入力端
子63、RAMデーター致時ブレイク入力端子6
4、内部レジスタ一致時ブレイク入力端子65が
それぞれ割り当てられている。コンパレータ1
1,43,46はこれらの条件を比較する。プロ
グラムカウンタの値を比較する場合には、Sφの
タイミングで、プログラムカウンタ出力端子に
PC値が直接出力されているので、端子6の信号
を直接比較する。RAMアドレス及び内部レジス
タ値は、S2とS1のタイミングで端子6から出力さ
れるので、これをそれぞれのタイミングでラツチ
してトレースする必要がある。またCPU1のレ
デイ端子はSφの時にオン、オフ(第5図参照)
する必要があるために設けられる。このS2とS1
タイミングでラツチするためには、外部でそれぞ
れS2とS1に同期するパルスを外部クロツク発生部
17で生成する。この生成されたタイミング信号
をそれぞれSφE,S1E,S2E,S3Eと呼ぶこと
にする。CPUクロツクSφ〜S3とこの外部クロ
ツクSφE〜S3Eは完全に同期する必要があり、
CPU1からの同期信号ハで同期させて生成す
る。この様にして得られたS2EとS1Eで、RAMア
ドレスを内部RAMアドレス・ラツチと内部レジ
スタラツチ45にそれぞれラツチする。このラツ
チされた内容は必要によつては表示することもで
きる。またコンパレータ11,43,46の比較
出力は、ANDゲート48,49,50,51に
よつて条件を満たした場合、ORゲート52を介
してレデイ制御フリツプフロツプ13を制御す
る。このレデイ制御フリツプフロツプ13は、
CPU1からの同期信号ハに同期して動作し、ブ
レイク条件が満足された時、レデイ信号入力端子
8をLOWレベルにリセツトして、CPU1の命令
実行を一時中断させる。
前述の内部レジスタを選択するためには、トレ
ースレジスタ指定入力端子59〜61を選択す
る。そしてこの入力信号をエンコーダ58によつ
てエンコードし、ANDゲート54〜57によつ
てSφE〜S3Eのタイミングに同期させ、直列信
号であるトレースレジスタ選択入力信号を生成
し、CPU1の端子18に入力する。
ここに述べた実施例の場合、ブレイク条件は、
ORで動作するが、AND条件で動作させたい場合
には、ゲート48〜51の後に、ORゲート52
のかわりに、ANDゲートを入れれば良い。
本発明の実施例は以上のように構成することに
よつて、内部レジスタ値の出力命令を実行する以
外に、内部レジスタ値が直接外部に出力できない
ような構造のシングルチツプマイクロプロセツサ
のプログラムの開発効率が非常に改善され、また
従来のエバリユエーシヨンチツプとP−ROMの
24チツプ構成による量産チツプのエミユレーシヨ
ンを行なう場合でも、何ら外部の回路を追加する
ことなく、互換性を持たせて実現することができ
る。これはプログラムカウンタのアドレスの有効
タイミングがS3とSφであり、他のタイミングを
利用して内部レジスタを出力していることによる
ものである。しかも、命令デコーダのアクセスタ
イミングを利用して、内部レジスタの値をデー
タ・バスに出力しているため、CPUの実行速度
をおそくすることなく実現できるものである。
【図面の簡単な説明】
第1図は、従来例のプログラム・デバツグシス
テム構成例を示した図、第2図は、動作タイミン
グを示した図、第3図は、本発明を用いたCPU
のブロツク構成例を示した図、第4図は、トレー
スレジスタ選択回路の詳細構成を示した図、第5
図は、レデイ信号のオン・オフタイミングを示し
た図、第6図は、本発明を用いたデバツグシステ
ム構成例を示した図である。 1……エバリユエーシヨンCPUチツプ、2…
…プログラムカウンタ、3……命令レジスタ、4
……命令デコーダ、5……命令コード入力端子、
6……プログラムカウンタ出力端子、7……同期
信号出力端子、8……レデイ信号入力端子、9…
…入出力ポート端子、10……プログラム用メモ
リ、11……PC比較用コンパレータ、12……
ブレイクPCレジスタ、13……レデイ制御フリ
ツプフロツプ、14……CPUスタート制御端
子、15……クロツク入力端子、16……クロツ
ク・発生部、17……外部クロツク発生部、18
……トレースレジスタ指定入力端子(TR)、19
……トレースレジスタ選択回路、20〜30……
転送ゲート。

Claims (1)

  1. 【特許請求の範囲】 1 命令デコーダと、複数の内部レジスタと、プ
    ログラムカウンタの出力端子を備え、命令実行が
    前記命令デコーダによつて制御されるマイクロプ
    ロセツサに、前記命令デコーダのアクセスタイミ
    ングを利用して、前記内部レジスタ値を前記プロ
    グラムカウンタの出力端子に出力する手段と、前
    記内部レジスタを選択する手段から構成されるマ
    イクロプロセツサ。 2 命令デコーダと、命令レジスタと、複数の内
    部レジスタと、データバスを、プログラムカウン
    タの出力端子とを備え、命令実行が前記命令デコ
    ーダによつて制御されるマイクロプロセツサに、
    前記命令デコーダのアクセスタイミングを利用し
    て、前記内部レジスタ値を前記データバスに出力
    する手段と、前記データバスの出力を前記プログ
    ラムカウンタの出力端子に出力する手段と、前記
    内部レジスタを選択する手段から構成されるマイ
    クロプロセツサ。
JP12161879A 1979-09-21 1979-09-21 Micro processor Granted JPS5644952A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP12161879A JPS5644952A (en) 1979-09-21 1979-09-21 Micro processor

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP12161879A JPS5644952A (en) 1979-09-21 1979-09-21 Micro processor

Publications (2)

Publication Number Publication Date
JPS5644952A JPS5644952A (en) 1981-04-24
JPS6148189B2 true JPS6148189B2 (ja) 1986-10-23

Family

ID=14815705

Family Applications (1)

Application Number Title Priority Date Filing Date
JP12161879A Granted JPS5644952A (en) 1979-09-21 1979-09-21 Micro processor

Country Status (1)

Country Link
JP (1) JPS5644952A (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS60146341A (ja) * 1984-01-09 1985-08-02 Nec Corp マイクロプロセツサ

Also Published As

Publication number Publication date
JPS5644952A (en) 1981-04-24

Similar Documents

Publication Publication Date Title
US4112490A (en) Data transfer control apparatus and method
US4870562A (en) Microcomputer capable of accessing internal memory at a desired variable access time
US8127070B2 (en) Programmable I/O interface
US4979102A (en) Microprocessor operable under direct connection to coprocessor
JPH0193837A (ja) デバッグ用マイクロプロセッサ
JPH045216B2 (ja)
JP2845155B2 (ja) シングルチップマイクロコンピュータのエミュレーションチップ
JPH0769791B2 (ja) マイクロプロセッサ
JPS6218936B2 (ja)
JP2816146B2 (ja) 回路動作テスト装置
US4636945A (en) Microprocessor
JPS6148189B2 (ja)
JPS6049337B2 (ja) パイプライン制御方式
JP2784001B2 (ja) プログラマブルコントローラの命令処理回路
JPH0330917Y2 (ja)
JPS62197831A (ja) デ−タ処理装置
JP2581080B2 (ja) デバック用マイクロプロセッサ
JPH0550016B2 (ja)
EP0335502A2 (en) Microcontroller and associated method
JPS6242301B2 (ja)
JP2770420B2 (ja) マイクロプログラム制御方式
JP2636074B2 (ja) マイクロプロセッサ
JP2544015B2 (ja) マイクロプログラム処理装置
JPH05242008A (ja) データ処理装置
JPS6041767B2 (ja) 命令実行方式