JPH0798692A - マイクロコンピュータ - Google Patents

マイクロコンピュータ

Info

Publication number
JPH0798692A
JPH0798692A JP6105768A JP10576894A JPH0798692A JP H0798692 A JPH0798692 A JP H0798692A JP 6105768 A JP6105768 A JP 6105768A JP 10576894 A JP10576894 A JP 10576894A JP H0798692 A JPH0798692 A JP H0798692A
Authority
JP
Japan
Prior art keywords
cpu
sub
program
main cpu
sub cpu
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
Application number
JP6105768A
Other languages
English (en)
Inventor
Satoru Tashiro
哲 田代
Yoshiki Cho
芳樹 長
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 JP6105768A priority Critical patent/JPH0798692A/ja
Priority to DE4418892A priority patent/DE4418892C2/de
Priority to US08/251,556 priority patent/US5566303A/en
Publication of JPH0798692A publication Critical patent/JPH0798692A/ja
Pending 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/26Functional testing
    • G06F11/261Functional testing by simulating additional hardware, e.g. fault simulation
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01RMEASURING ELECTRIC VARIABLES; MEASURING MAGNETIC VARIABLES
    • G01R31/00Arrangements for testing electric properties; Arrangements for locating electric faults; Arrangements for electrical testing characterised by what is being tested not provided for elsewhere
    • G01R31/28Testing of electronic circuits, e.g. by signal tracer
    • G01R31/317Testing of digital circuits
    • G01R31/31701Arrangements for setting the Unit Under Test [UUT] in a test mode
    • 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/26Functional testing
    • G06F11/273Tester hardware, i.e. output processing circuits
    • G06F11/2736Tester hardware, i.e. output processing circuits using a dedicated service processor for test

Landscapes

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

Abstract

(57)【要約】 【目的】 同一チップ上に複数の CPUを備えたマイクロ
コンピュータにおいて、サブCPU 1専用のテスト端子あ
るいはサブCPU バス28を外部と接続することなしに、サ
ブCPU 1のテスト環境,プログラム開発環境を提供す
る。 【構成】 メインCPU バス10から制御可能なテストモー
ド制御レジスタ4によりサブCPU 1のメモリ空間をメイ
ンCPU 23からアクセスし得る制御回路を備える。また、
サブCPU 1のプログラムカウンタ5の値をブレークベク
タレジスタ7に設定されている値と一致検出回路16で比
較することによりブレークルーチンへ分岐する制御回路
を備える。更に、メインCPU 23からの制御によりサブCP
U 1のリセット,テストベクタ分岐,ブレーク復帰が可
能な制御回路を備えることにより、従来の1CPU 構成に
サブCPU 1を容易にオンチップ化可能にした。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明はデータ処理を行なうマイ
クロコンピュータの内、特に1チップ上に複数のCPU(Ce
ntral processing Unit)またはMPU(Microprocessor Uni
t)を搭載したマルチCPU(MPU)システムに関し、特にそれ
らのサブCPU(MPU)のテスト手法及びプログラム開発用エ
ミュレータチップの構成手法に関する。
【0002】
【従来の技術】従来のマルチCPU システムのテストある
いはデバッグ環境を実現するために必要なマイクロコン
ピュータのプログラム実行動作例の一例を図52乃至図55
の模式図に示す。
【0003】ここに示す従来例は松下電器産業(株)製
のマイクロコンピュータMN1880シリーズのプログラム実
行動作例である。MN1880シリーズは同一メモリ空間にCP
U とレジスタとが二組搭載された構成を採っている。こ
こでは二つのCPU をCPU a及びCPU bと称しており、図
53乃至図55はそれらの二つのCPU をCPU a及びCPU bの
動作実行手順を時系列的に示した模式図である。
【0004】図53には二つのCPU が交互に命令を実行し
ている状態が示されている。具体的には、図52の模式図
に示されているように、CPU aが実行するプログラムは
複数の命令IN1a, IN2a…IN16a で、CPU bが実行するプ
ログラムは複数の命令IN1b,IN2b…IN16b でそれぞれ構
成されている。但し、これらの命令は同一のメモリ空間
にそれぞれ適宜のアドレスを付与されて格納されてい
る。
【0005】そして、図53に示されているようにそれら
の命令は、まずCPU aの命令IN1aが実行され、次にCPU
bの命令IN1bが実行され、爾後CPU aの命令IN2a,CPUb
の命令IN2b, CPU aの命令IN3a,CPUbの命令IN3b…CPU
aの命令IN16a, CPUbの命令IN16b の順に実行される。
このように、両CPU が交互に命令を実行するモードをオ
ートスワップモードと称する。
【0006】図54及び図55にはマイクロコンピュータ自
身が所定の命令を実行してモードを切り換えることによ
り、区間的に連続していずれか一方のCPU が命令を実行
している状態が示されている。図54には、まず両CPU が
一旦リセットされることにより”WAITA=0, WAITB=0”が
セットされてオートスワップモードになり、CPU aの命
令IN1a, CPU bのIN1b,CPUaの命令IN2a,CPUbのIN2b…
CPU aの命令IN5a,CPUbのIN5bの順に実行される。そし
て、この時点でオートスワップモードが停止されて”WA
ITB=1 ”がセットされてCPU bが停止状態になり、爾後
はCPU aの命令IN6a,CPUaの命令IN7a…CPU aの命令IN
10a の順に実行される。
【0007】図55には、まず両CPU が一旦リセットされ
ることにより”WAITA=0,WAITB=0 ”がセットされてオー
トスワップモードになり、CPU aの命令IN1a, CPU bの
IN1bが実行される。そして、この時点でCPU aモードが
要求されることにより”WAITB=1 ”がセットされてCPU
bが停止状態になり、爾後はCPU aの命令IN2a, IN3a…
IN6aの順に実行される。更に、この時点で今度はCPU b
モードが要求されることにより”WAITA=1, WAITB=0”が
セットされてCPU aが停止状態になり、爾後はCPU bの
命令IN2b, 命令IN3b…IN6bの順に実行される。以降、同
様にCPU aモードとCPU bモードとが交互に設定されて
それぞれのCPU の命令がいくつかずつ連続的に実行され
る。
【0008】このような従来のシステムの例では、二つ
のマイクロコンピュータの動作は時分割的に動作するた
め、メモリ空間のアクセスが競合することは無い。従っ
て、メモリ空間側から見た場合は、特別の制御回路を付
加すること無しに二つのCPUがそれぞれのタイミングで
メモリデータをアクセスすることが可能である。このた
め、このようなマイクロコンピュータをテストする場合
も、時分割で動作しているバス信号をアクセスすること
によって両方のCPU をテストすることが可能である。ま
た、プログラム開発環境に関しても、メモリ空間が同一
であるため、そのメモリ空間をエミュレータコントロー
ラにより監視あるいは制御するのみにて実時間レベルで
二つのCPU のエミュレーションが可能である。
【0009】但し、この従来例においてはデュアルCPU
構成ではあるが二つのCPU が独立して同時並行的に動作
することはなく、あくまで時分割の範囲内でのみ動作し
ている。従って、自ずとCPU の実行スピードは制限され
るという問題が生じる。
【0010】他の従来例として日立製作所(株)製のマ
イクロコンピュータH8/570(ISP搭載マイクロコンピュー
タ)の構成を図56乃至図59と図60及び図61のブロック図
に示す。図56乃至図59は上述の ISP搭載マイクロコンピ
ュータH8/570の全体の構成を示すブロック図であり、メ
インCPU としてH8/500が使用されている他、種々の周辺
機能の内に ISPブロックが備えられている。なお、図56
乃至図59は本来は一葉の図を4分割してあり、図56が左
上に、図57が右上に、図58が左下に、図59が右下にそれ
ぞれ位置する。また、 ISPとは、Inteligent Sub Proce
ssorのことであり、複数のファンクション動作を内蔵 E
PROMベースでプログラマブルな一種のサブCPU である。
【0011】図60及び図61はその ISPブロックの内部構
成を示すブロック図である。なお、図60及び図61は本来
は一葉の図を2分割してあり、図60が上側に、図61が下
側にそれぞれ位置する。 ISPでは、プログラマブルシー
ケンスジェネレータ(以下、SCMと称す)が指定したフ
ァンクション番号に対応するマイクロプログラムメモリ
領域のプログラムルーチンをアドレスレジスタで間接的
に指定し、そこで定義されているファンクションが実行
されるように構成されている。
【0012】この ISPのプログラムは原則的には短いモ
ジュールの集合であり、通常のマイクロコンピュータの
デバッグ環境とは異なり、ソフトウェアシミュレータに
よるデバッグ環境を提供している。プログラマは単一機
能の短いモジュール毎にシミュレータにより機能実現の
確認を行ない、 SCMに記述されているファンクションテ
ーブルに従ってそれらのモジュールを組み合わせること
により各種の機能を実現するようになっている。そのよ
うにして完成したプログラムが EPROMで構成されたマイ
クロプログラム領域, SCM,アドレスレジスタに書き込ま
れることにより、目的の機能を実現するマイクロコンピ
ュータが実現される。
【0013】ところで、 ISPはメインCPU とは独立して
並行動作するため、 ISPを利用すればリアルタイム性の
高い機能が実現される。しかし、 ISPの思想自体は単純
な機能モジュールの集合でプログラミングしていくもの
であるので、通常のマイクロコンピュータで行なわれて
いる大規模なプログラム開発環境は ISPには必要とはさ
れない。このため、この ISP搭載のマイクロコンピュー
タH8/570ではメインCPU と ISPとをリアルタイムでデバ
ッグする環境は提供されていないのが実情のようであ
る。
【0014】
【発明が解決しようとする課題】以上のように、チップ
内に複数のCPU が備えられた従来のマルチCPU システム
のマイクロコンピュータにおいては、そのテスト、ある
いはそのサブCPU 部分のプログラム開発のためにサブCP
U 専用のアドレスバスやデータバス、コントロールバス
等の端子を特別に設けることはチップレイアウト上の問
題、あるいは多ピンパッケージの限界等種々の制約があ
った。また、一つの端子に複数の機能を持たせて時分割
で制御する場合にもタイミングマージンの制約を受けた
り、回路が複雑になる等の弊害を生ずるため、チップ内
に搭載された複数のCPU あるいはMPU を同時に動作させ
て、ターゲットとなるプログラムをデバックすることは
非常に困難であった。
【0015】本発明はこのような問題点を解決するため
になされたものであり、従来の単一のCPU を有するマイ
クロコンピュータで実施されているテスト手法、あるい
はエミュレータチップの構成手法をそのまま利用して、
サブCPU のための制御端子を別に設けること無しに、サ
ブCPU ブロックのテスト手法あるいはプログラム開発用
エミュレータチップを提供することを目的とする。
【0016】
【課題を解決するための手段】請求項1乃至請求項5の
発明に係るマイクロコンピュータは、メインCPU バスを
介してメインメモリ領域をアクセス可能な一つのメイン
CPU と、サブCPU バスを介してサブメモリ領域をアクセ
ス可能な少なくとも一つのサブCPU とを備えており、メ
インCPU からアクセス可能な制御レジスタによってサブ
CPU 側のメモリ領域がメインCPU バスを介してアクセス
可能なように切り換える制御手段を備えている。メイン
CPU バスはメインCPU からアクセス可能であることはも
ちろんであるが、従来同様の手法としてメインCPU から
切り離されてチップの外部ポートから直接アクセスする
手法、即ちバスアイソレーションモードによってもアク
セス可能である。
【0017】請求項2及び請求項3の発明に係るサブCP
U は請求項1のマイクロコンピュータにおいて、テスト
専用のサブCPU リセットベクタを発生する手段を備えて
いる。即ち、メインCPU からアクセス可能な制御レジス
タにテストモードが設定された状態でサブCPU がリセッ
トされると、通常のリセットの際とは異なるテストリセ
ットベクタがプログラムカウンタにロードされてそれに
対応する開始アドレスを有するプログラムが開始され
る。なお、テストリセットベクタとしては予め固定した
ハードロジックの出力, ROM に書き込まれたデータ, あ
るいは専用のレジスタに記憶されている値がプログラム
カウンタにロードされる。
【0018】請求項5の発明に係るマイクロコンピュー
タは、サブCPU のメモリが請求項1の構成に加えて、セ
ンスアンプ出力を二つに分岐してそれぞれにバッファを
備え、一方がサブCPU 側のアクセスラインに接続され、
他方がメインCPU 側のバスに接続された構成を採ってい
る。
【0019】請求項6の発明に係るマイクロコンピュー
タは、複数の外部端子からの制御信号をチップ内部で変
換して内蔵のプログラマブルメモリ(たとえばEPROM
等) 部分のみアクセス可能なモードになり、その場合に
サブCPU 側のプログラマブルメモリ領域をメインCPU の
メモリ領域と連続した同一の空間に一体化する制御手段
を備えている。通常の動作モード (マイクロコンピュー
タモード) 時にはメインCPU のメモリ領域とサブCPU の
メモリ領域とはそれぞれ分離・独立していて、それぞれ
メインCPU から、またはサブCPU からアクセス可能であ
る。
【0020】請求項7及び請求項8の発明に係るマイク
ロコンピュータは、サブCPU にプログラムカウンタとブ
レークアドレス格納レジスタをハードウェアで常時比較
して一致した場合にブレークを検出する回路と、ブレー
クが検出された場合にはブレークベクタに分岐する制御
回路とを備える。ブレークベクタは予め固定したハード
ロジックの出力、あるいはROM に書き込まれたデータ、
あるいは専用のレジスタに書かれた値をロードする等の
手段が考えられる。
【0021】請求項9の発明に係るマイクロコンピュー
タは、サブCPU に請求項7の構成に加えて、一致検出の
回数を計数する回路を設け、所定の回数対象のアドレス
をアクセスした後に初めてブレーク割り込みが発生する
回路を備える。
【0022】請求項10及び請求項11の発明に係るマ
イクロコンピュータは、サブCPU のプログラム実行を停
止するSTOP命令の実行が可能で、更にメインCPU の制御
により、サブCPU のプログラム実行の停止状態を解除す
ると共にブレーク分岐した元のルーチンに復帰すること
が可能なブレーク状態からの復帰命令(RTB:Returnfrom
Break) の実行が可能である。この RTB命令はソフトウ
ェア中のプログラムの一命令としても実行される。
【0023】請求項12の発明に係るマイクロコンピュ
ータは、サブCPU は請求項2,請求項3,請求項7,請
求項8、並びに請求項10及び請求項11の構成に加え
て、プログラムメモリ領域を全てRAM で構成することに
より、ログラム開発用のエミュレータチップを実現す
る。更に、メインCPU バスはメインCPU のROM を取り払
って既存手法である専用の端子を設けて、外部の専用の
エミュレータコントローラからプログラムの供給を実時
間で行なうようにして、サブCPU のプログラム開発ツー
ルを提供することが可能になる。
【0024】
【作用】請求項1及び請求項4の発明に係るマイクロコ
ンピュータにおいては、通常はサブCPU 側のメモリはサ
ブCPU からのみアクセス可能であるが、テスト時にはメ
インCPU バスからアクセス可能になる。これによりサブ
CPU のマスクROM あるいはEPROM の読み出しテストが可
能になる。更に、書き込みも可能なRAM を設ければ、 R
AMにサブCPU 本体をテストするためのプログラムをメイ
ンCPU バスから供給した後に、請求項6に示した手段に
よりサブCPU 側のロジックテストが実施可能であり、ま
た後述する請求項7の作用も実現される。
【0025】請求項6に係るマイクロコンピュータにお
いては、サブCPU のメモリ領域にEPROM を配することが
可能になり、これにメインCPU 領域のEPROM と同等に書
き込みが可能になる。即ち、メインCPU 部分のみならず
サブCPU 部分にも書き換え可能な窓付き型のEPROM 、あ
るいは製品出荷後のプログラム書き込みが可能なOTP(On
e Time Programable)ROMを提供することが可能となる。
【0026】請求項2及び請求項3に係るマイクロコン
ピュータにおいては、請求項6の作用で説明した如く、
メインCPU バスを介してのアクセスによりサブCPU のテ
ストが可能になるのみならず、テストリセットベクタが
メインCPU 側から書き換え可能になる。このため、プロ
グラム領域のROM あるいは EPROM部分の途中から命令の
実行を開始することが可能になり、プログラムのデバッ
クあるいは不良製品の解析にも利用可能になる。
【0027】請求項7及び請求項8に係るマイクロコン
ピュータにおいては、サブCPU のプログラム実行をハー
ドウェアによりブレークすることが可能となるため、テ
ストプログラムを実行途中でブレークし、その実行結果
をブレークルーチン中でサブCPU とメインCPU とのイン
タフェイスレジスタから読み取れば、プログラムの実行
途中の結果を確認することが可能になる。また、EPROM
に書き込まれたプログラムのデバッグ、あるいはマスク
ROM 中に発生したプログラムのステップの見極めをする
のに有効である。
【0028】請求項9に係るサブCPU においては、上述
の請求項7及び請求項8の作用に加えて更に、プログラ
ムのループ部分が所定の回数反復実行された場合にのみ
ブレーク割り込みを実行することが可能になる。
【0029】請求項10及び請求項11に係るマイクロ
コンピュータにおいては、請求項6のサブCPU の RAMサ
イズがある程度制限されている場合にも、テストプログ
ラムの実行をSTOP機能により途中で一旦中断した後に、
請求項1の機能によりRAM の内容を書き換えて以降の新
たなプログラムをロードすれば、再度それまでの状態に
引き続いてテストを続行することが可能である。
【0030】請求項12に係るマイクロコンピュータに
おいては、まず請求項1の機能によりメインCPU バスよ
りRAM にサブCPU のターゲットのプログラムをイニシャ
ルブートしてリセット機能によりそのプログラムを実行
する。これにより開発中のプログラムのエミュレーショ
ンが可能である。
【0031】また、請求項7及び請求項8、並びに請求
項10及び請求項11の機能によりプログラム実行をブ
レークすることにより、着目する部分でプログラム実行
を中断してその時点でのレジスタの値をメインCPU バス
からRAM あるいは特定のレジスタを介して読み取ること
が可能になる。更に、 RTB命令によりその後の命令を再
実行することも可能であり、このエミュレーションチッ
プを外部から制御することによりプログラム開発時のデ
バッガの機能を実現することも可能になる。
【0032】請求項5のマイクロコンピュータにおいて
は、サブCPU 側のメモリ出力はアナログ的な動作をする
センスアンプ出力の後でサブCPU 側とメインCPU 側とに
分岐するので、読み出し特性を同等にすることが可能に
なり、且つレイアウト設計に際しても面積の増加を抑え
ることが可能になる。
【0033】
【実施例】以下、本発明をその実施例を示す図面に基づ
いて詳述する。図1は本発明のマイクロコンピュータの
一実施例のサブCPU 部分の構成例を示すブロック図であ
る。なお、以下においては、まず本発明のマイクロコン
ピュータの構成例について説明した後、各請求項に対応
する実施例の動作を説明する。
【0034】図1において、参照符号15はサブCPU 部分
の全体を示しており、以下においてはサブCPU ブロック
という。参照符号1はサブCPU の主要部(以下、単にサ
ブCPU という)を示しており、複数のレジスタ群,演算
回路部分及び周辺機能部分等が含まれる。
【0035】参照符号2はサブCPU 1用のRAM を示し、
3はサブCPU 1用のターゲットプログラムを格納するRO
M または EPROM(以下、ROM/EPROM という) を示す。参
照符号4はサブCPU 1用のテストモード制御レジスタ
を、17はサブCPU 1の初期化制御ビットをそれぞれ示
し、いずれも後述するメインCPU から書き換え可能であ
る。なお、これらの詳細は図13を参照して後述する。
【0036】参照符号5はサブCPU 1用のプログラムカ
ウンタを、6はブレークポイント検出の際のブレークア
ドレスを格納するためのブレークアドレスレジスタを、
7はブレーク時の分岐先アドレスを格納するためのブレ
ークベクタレジスタを、8はブレーク時にそれまで実行
していたアドレスを退避しておくためのアドレス退避レ
ジスタをそれぞれ示す。
【0037】また、参照符号16はプログラムカウンタ5
の内容 (PC値) とブレークアドレスレジスタ6の内容、
即ちブレークアドレスとを比較して一致検出を行なう一
致検出回路であり、プログラムカウンタ5のビット幅分
の排他的論理和回路により構成されている。この一致検
出回路16による一致検出の回数はブレークカウンタ9に
より計数されている。
【0038】参照符号10はメインCPU バスを示してお
り、図1に示されているサブCPU ブロック15と図1には
示されていないメインCPU とを接続する (図2参照) 。
参照符号11はメインCPU バス10からサブCPU 1用のROM/
EPROM 3をアクセスするラインを、12はメインCPU バス
10からRAM 2をアクセスするラインを、13はメインCPU
バス10からブレークアドレスレジスタ6をアクセスする
ラインを、14はメインCPU バス10からブレークカウンタ
9をアクセスするラインをそれぞれ示している。
【0039】図2は本発明のマイクロコンピュータの一
実施例を1チップに構成した全体の概略の構成を示すブ
ロック図である。図2において、参照符号21は1チップ
マイクロコンピュータの全体、換言すれば LSIチップを
示し、前述の如く、その上に図1に示されているサブCP
U ブロック15がオンチップ化されて構成されている。
【0040】参照符号23はメインCPU を、24,25,26,
27はそれぞれメインCPU 23用のROM,RAM, 入出力ポート
(I/O) 等の周辺回路及び入出力外部端子を示している。
これらの周辺回路24, 25, 26はメインCPU バス10によっ
て相互間及びサブCPU ブロック15との間のデータの送受
がなされる。
【0041】参照符号28はサブCPU バスを示しており、
サブCPU ブロック15内のサブCPU 1, RAM 2, ROM/EPRO
M 3等の機能回路相互間のデータの送受を行なうために
それぞれに接続されている。そして、本発明の特徴的な
点は、特定のモード時にサブCPU 1側のRAM 2, ROM/EP
ROM 3等のサブCPU 1用のメモリ領域が参照符号11,12
にて示されているデータアクセスラインによってメイン
CPU バス10に接続されるように構成されていることであ
る。
【0042】また、参照符号202 は LSIチップ21の外部
からリセット信号が入力されるリセット端子を、203 は
LSIチップ21の外部からモード設定信号が入力されるモ
ード設定端子をそれぞれ示しており、これらの端子202,
203から入力された信号はリセット回路201 に入力され
る。
【0043】リセット信号が入力された場合、リセット
回路201 はそれをメインCPU バス10へ出力して全体のリ
セットを行なわせる。また、モード設定信号としてアイ
ソレーションモードを指定する信号が入力された場合、
リセット回路201 はアイソレーションモードレジスタ(I
SO)204をセットし、 EPROMモードを指定する信号が入力
された場合、リセット回路201 は EPROMモードレジスタ
(EM)205 をセットし、CPUモードを指定する信号が入力
された場合、リセット回路201 は CPUモードレジスタ(C
M1, CM2)206 をセットする。これらのモードレジスタ20
4, 205, 206 の値はメインCPU バス10へ出力される。
【0044】なお、図2においては、通常のマイクロコ
ンピュータに備えられているタイマ機能, SI/O機能等の
周辺機能は省略してあるが、メインCPU 23側にもサブCP
U 1側にももちろんそれらは備えられており、それぞれ
のCPU バス10, 28に接続されている。また、 EPROMモー
ドの指定に関しては、本願発明者らが先に出願した特開
平3-42732 号公報に開示されている。
【0045】図3,図4,図5及び図6は本発明のマイ
クロコンピュータの一実施例のサブCPU ブロック15内の
レジスタ構成を示すブロック図である。本発明のマイク
ロコンピュータでは、サブCPU 1内に多数のレジスタが
存在し、この図3,図4,図5及び図6に示されている
実施例では64のレジスタ空間を有する。
【0046】図3,図4,図5及び図6において、参照
符号30はサブCPU 1内のレジスタデータバスを示してい
る。また、参照符号31, 32, 33及び34はそれぞれレジス
タ群を示しており、いずれもメインCPU 23とサブCPU 1
との間のデータの授受のために使用される。具体的に
は、参照符号31はメインCPU 23からサブCPU 1へデータ
を送るために使用されるFIFO形式のレジスタ(TXD FIFO)
を、32はその逆にサブCPU 1からメインCPU 23へデータ
を送るために使用されるFIFOレジスタ(RXD FIFO)を、33
は1バイトまたは2バイトのデータを送受するために使
用されるレジスタ群を、34はビット毎に割り付けられた
応用機能に特化して設計された制御レジスタ群をそれぞ
れ示している。
【0047】なお、参照符号33, 34にて示されているレ
ジスタは、レジスタ毎または各レジスタ内のビット毎に
データ転送の方向が設計段階で決められており、従って
専用のアービトレーションハードウェアは備えてられて
いない。
【0048】参照符号35はサブCPU バス28に直接接続さ
れた2本の16ビットのタイマ機能回路である。同様に参
照符号36はサブCPU バス28に接続されたシリアル送受信
機能回路である。また、参照符号37はサブCPU 1側から
のみアクセス可能な単純なレジスタ群を、38はサブCPU
1の ALUを、39はサブCPU 1側のみアクセス可能なビッ
ト毎に割り付けられた応用機能に特化して設計された制
御レジスタ群をそれぞれ示している。
【0049】なお、前述の如く、参照符号5はサブCPU
1のプログラムカウンタを示しているが、ここではシー
ケンスカウンタと称してSCの略号で表す。また、参照符
号40はSC5とのデータのやり取りが容易な特殊なレジス
タであってスタックと称されている。但し、これは通常
のプッシュダウンスタックではなく、SC5のデータを直
接退避・復帰することが可能な単純なレジスタである。
【0050】図7乃至図10は図1のブロック図に示され
ているサブCPU ブロック15の内部構成の具体的な構成例
を示すブロック図である。図7において、参照符号41は
サブCPU 1用の2ビットのテストモード制御レジスタ4
の出力をデコードして4種類のモードを区別するための
信号を発生するデコーダである。このデコーダ41により
区別される4種類のモードとしては、テストモード(TES
T), デバッグモード(DEBUG),Hardware Return from Bre
akモード(HW _RTB), 通常モード(Normal)がある。これ
らの各モードは、テストモード制御レジスタ4がメイン
CPU バス10を介してメインCPU 23からアクセス可能であ
るので、メインCPU 23側から設定することが可能であ
る。なお、各モードそれぞれの状態の相違については図
13を用いて後述する。
【0051】図8のブロック図に参照符号42乃至47にて
示されている部分はサブCPU 1の命令デコードに関する
部分である。通常、命令コードはメモリのプログラムメ
モリ領域42からゲート44-1経由でフェッチされて命令ラ
ッチ45に保持されると共に、命令デコーダ46にも供給さ
れてサブCPU 1の各部を制御する種々の信号が発生され
る。
【0052】命令デコーダ46は参照符号47-1,47-2にて
示されているポストデコーダとの組み合わせによりg0,
g1,g2, g3, g4 …g7等の制御信号を更に発生する。ポス
トデコーダ47-1,47-2を用いることにより、タイミング
的には同一でも相互に排他的な信号を生成する回路の実
現が容易となる。
【0053】参照符号43は特殊コード発生器であり、特
殊な場合に実行される命令のコードを生成する。この特
殊コード発生器43への入力としてはHardware Break信号
(HW_BRK), Hardware Return from Break信号 (HW_RT
B), 割り込み信号(INT),サブCPU リセット信号(Sub_CP
U _reset), TEST信号等があり、出力としてはワード幅
の信号がゲート44-2経由で命令ラッチ45及び命令デコー
ダ46に供給される。
【0054】なお、上述のゲート44-1及び44-2は相補的
にオン/オフするように制御される。このような構成を
採ることにより、通常はゲート44-1がオン, 44-2がオフ
していて、プログラムメモリ領域42に格納されている複
数の命令により構成された実行シーケンスが実行され
る。しかし、割り込み等が発生した場合には、ゲート44
-1がオフ, 44-2がオンすることにより、特殊コード発生
器43により発生される特殊コードが命令ラッチ45及び命
令デコーダ46に与えられて特殊な命令がハードウェア的
且つ強制的に実行される。
【0055】図9は前述のゲート44-1, 44-2をオン/オ
フ制御する信号g8を生成する回路構成を示すブロック図
である。この回路は、以下の3要因のいずれかが発生し
た場合に信号g8を生成して、特殊コード発生器43が発生
する特殊命令のコードを命令ラッチ45及び命令デコーダ
46に入力させる。
【0056】その第1は、プログラムカウンタ(SC)5,
ブレークアドレスレジスタ6, 一致検出回路16, ブレー
クカウンタ9によって構成されるハードウェアブレーク
信号発生回路50a が、サブCPU 1のプログラムカウンタ
5の値とブレークアドレスとが一致した回数をブレーク
カウンタ9で計数することにより、HW_BRK 信号が有効
になった場合である。
【0057】第2は、図示されていないが、一般的なマ
イクロコンピュータには必ず備えている割り込み回路に
より生成された有効な割り込み要求信号のOR出力により
INT信号が得られた場合である。
【0058】第3は、メインCPU 23から指示されたサブ
CPU 1へのリセット信号またはチップ全体の外部リセッ
ト信号のいずれかが入力されることにより有効になるサ
ブCPU 1のリセット信号(Sub_CPU _reset)が発生した
場合である。その場合には、メインCPU 23からアクセス
されるスタート制御ビット48にメインCPU バス10を介し
て”H”レベルの信号が書き込まれると、ワンショット
パルス回路49がワンショットパルスを発生し、これがイ
ンバータ及び ANDゲートで構成される論理回路50b を経
由して出力される。なお、論理回路50b はデバッグモー
ド時にデコーダ41から発生される信号DEBUG がインバー
タに与えられるた場合にサブCPU 1のリセットを無効に
するために備えられている。
【0059】これらの3要因はORゲート51に入力されて
その論理和信号として制御信号g8が生成される。
【0060】図10はサブCPU 1のプログラムカウンタ5
とそれに接続されるスタックレジスタの部分の構成例を
示すブロック図であり、特にリセット動作, ブレーク動
作あるいはテスト動作との関連に重要なレジスタが示さ
れている。
【0061】参照符号52は通常のリセットベクタを発生
するリセットベクタ発生器であり、信号g0が有効な場合
にゲート55-1がオンしてプログラムカウンタ5にリセッ
ト開始アドレスを供給する。53はテストモード時の開始
アドレスを格納するテストベクタレジスタであり、同様
に信号g1が有効な場合にゲート55-2がオンしてプログラ
ムカウンタ5にテスト開始アドレスを供給する。
【0062】前述の如く、ブレークベクタレジスタ7は
ブレーク命令実行時にプログラムの分岐先であるブレー
クベクタを格納し、アドレス退避レジスタ8はブレーク
分岐時にそれまで実行していたプログラムカウンタ5内
のアドレス (PC値) を退避しておくために使用される。
ブレークルーチン完了後はこのアドレス退避レジスタ8
に退避されている値がプログラムカウンタ5にロードさ
れることにより、ブレークルーチン開始直前の元の実行
ルーチンに復帰することができる。
【0063】参照符号54は汎用スタックを示しており、
本発明には直接は関係がないが、サブルーチンコールを
伴う命令で使用される。
【0064】プログラムカウンタ5の出力はサブCPU 1
のメモリ領域をアクセスするためのアドレスバス56をド
ライブする。参照符号57はプログラムカウンタ5の値を
ブレークベクタレジスタ7, アドレス退避レジスタ8あ
るいは汎用スタック54等に待避させるために使用される
信号線であり、参照符号58-3, 58-4, 58-5にて示されて
いるゲートのオン/オフにより待避先のスタックがそれ
ぞれ選択される。
【0065】図11及び図12は上述の図7乃至図10に示さ
れている回路を使用してブレーク処理を実行する場合の
プログラムの実行シーケンスを示す模式図である。
【0066】図11では、ターゲットプログラムの実行中
に図9に示されているブレークアドレス検出回路によっ
てブレークルーチンが実行される状態を示す。この場
合、ブレークアドレスがハードウェアにより検出されて
ブレークルーチンへ分岐するため、これをHard BRKと称
する。ブレークルーチンからターゲットプログラムへの
復帰は、ブレークルーチンの最後にRTB(return from Br
eak)命令を実行するようにプログラムしておくことによ
り、ブレークルーチン開始直前に実行していたターゲッ
トプログラムの元のアドレスに復帰することが出来る。
ループ回数を予め定めておいてそれをブレークカウンタ
9によりダウンカウントすることにより、図11中のブレ
ークポイントからループポイントへのループ実行中にお
いても、ブレークすることが可能である。
【0067】図12はブレーク分岐自体はプログラム中の
ブレーク命令BRK によるソフトウェアブレークである
が、ブレークルーチンからターゲットプログラムへの復
帰をメインCPU 23側からの制御によって実行する際のプ
ログラムの流れを示す模式図である。
【0068】ブレークルーチン実行中に停止命令(Wait)
WIT が実行されると処理が一旦中断される。テストモー
ド制御レジスタ4にデータが書き込まれることによって
テスト用のRAM 2内がアクセスされ、プログラムの書き
換えが行なわれる。その後、サブCPU 1の実行モードに
戻すために再度テストモード制御レジスタ4が書き換え
られて RTBモードが設定され、元のブレークアドレスに
戻って再度前のターゲットプログラムが実行される。
【0069】図13は前述の図7に示されている回路で生
成されるサブCPU 1の4つのモードを指定するための構
成を示す模式図である。この例では、サブCPU 1の図
3,図4,図5及び図6に参照符号34にて示されている
レジスタ群中の特定のアドレス”002A”に割り当てられ
た8ビットの通信モードレジスタ(BUS_MOD _CON)のビ
ット7,6にテストモードビットSTM 7,STM 6が、ビ
ット0であるMINI(Mode Initial Bit)にスタート制御ビ
ット48がそれぞれ割り当てられている。なお、テストモ
ードビットSTM 7,STM 6の2ビットは図1に示されて
いるテストモード制御レジスタ4に相当する。
【0070】テストモード制御レジスタ4のテストモー
ドビットSTM 7,STM 6が”00”であれば通常モード
が、”01”であればテストモードが、”10”であればデ
バックモード (別名メモリアクセスモード)DEBUGが、”
11”であればRTB(Hardware Return from Break) モード
がそれぞれ設定される。
【0071】デバックモードDEBUG 以外はいずれもビッ
ト0のスタート制御ビット48に”1”が書き込まれると
それぞれ、通常のリセットベクタ, テスト開始アドレス
あるいはアドレス退避レジスタ8に退避されている RTB
アドレスから命令が実行される。但しこの際、図13中の
サブCPU ブロックリセット信号 SUB_reset は通常のリ
セット時のみ有効となり、サブCPU 1内の幾つかのレジ
スタが初期化される。
【0072】テストモード時または RTBモード時には上
述の SUB_reset 信号は有効にはならず、レジスタが初
期化されることもない。デバッグモード時においてのみ
メインCPU 23からサブCPU 1のメモリ領域がアクセス可
能であり、この際にはサブCPU 1は停止状態になる。当
然ではあるが、デバッグモード時にはサブCPU 1のメモ
リアクセスも不可能である。
【0073】なお、図3,図4,図5及び図6に示され
ているアドレス”0030”の制御フィールドレジスタ(loc
al pointer) のビット7にはサブCPU 1の実行状態がメ
インCPU 23側より確認可能なSEQSTPビットが用意されて
いる。具体的には、図13の模式図に示されているよう
に、SEQSTPビットが”0”であればサブCPU 1のシーケ
ンスは実行中であり、”1”であれば停止していること
を示す。
【0074】図14乃至図19及び図20, 図21, 図22(a) 及
び図22(b) は本発明のワンチップマイクロコンピュータ
の一実施例のメモリ領域の割り当てを示す模式図であ
る。図14乃至図19はメインCPU 23のアクセス領域を示し
ており、図14はシングルチップモード時の、図15はメモ
リ拡張モード時の、図16はメモリ拡張モードで且つサブ
CPU 1のデバッグモード時の、図17はプロセッサモード
時の、図18はプロセッサモードで且つサブCPU 1のデバ
ッグモード時の、図19はバスアイソレーション時の状態
をそれぞれ示す。但し、図14,図15及び図17に関しては
従来の一般的なメモリ領域の状態と同様である。
【0075】以下、図14乃至図19に示されている各モー
ド時のメモリ領域の割り当てについて詳しく説明する。
図14に示されているシングルチップモード時はアドレ
ス”0000”〜アドレス”003F”までがSFR(Special Func
tion Register)領域になり、入出力ポート, タイマ機
能, SI/0機能等の周辺機能回路のための制御レジスタが
配置される。サブCPU 1とのデータ授受のための各レジ
スタもこの領域に配置され、サブCPU テストモード制御
ビットSTM 7,STM 6もその中の一部に存在する。但
し、シングルチップモード時はテスト機能は特には関係
がないので、サブCPU テストモード制御ビットSTM 7,
STM 6は機能してもしなくてもよい。
【0076】シングルチップモード時には、また、アド
レス”0040”〜”043F”の1Kバイトの空間は内蔵RAM
領域に、アドレス”4000”〜”FFFF”の48Kバイト空間
は内蔵ROM 領域にそれぞれ割り当てられる。言うまでも
ないが、これらの内蔵メモリ領域は設計段階でその大き
さが決定されるため、ここに挙げられているのは一例で
あって他の容量とすることももちろん可能である。シン
グルチップモード, メモリ拡張モード, プロセッサモー
ドは CPUモードレジスタCM1, CM0により区別され、メイ
ンCPU 23からソフトウェアで変更することが可能であ
る。アドレス”0040”〜”3FFF”は使用されない。
【0077】図15に示されているメモリ拡張モード時に
は、上述の図14に示されているシングルチップモードで
は未使用の領域であるアドレス”0440”〜”3FFF”及び
SFR領域中のポート制御レジスタの一部が外部メモリア
クセス可能な領域になる。これにより、入出力ポートの
一部が外部アクセスのためのデータバス, アドレスバ
ス, コントロールバスに切り換えられる。
【0078】図17に示されているプロセッサモード時に
は、内部ROM は使用されずにアドレス”0440”〜”FFF
F”の全領域が外部メモリ領域となる。
【0079】図16に示されているサブCPU 1のメモリ領
域がアクセス可能なメモリ拡張モードであり且つサブCP
U 1のデバッグモード時には、テストモード制御ビット
STM7,STM 6をデバッグモード (別名、メモリアクセ
スモード) に設定した場合 (STM 7=1, STM 6=0)
に、アドレス”4000”〜”7FFF”の領域としてメインCP
U 23のメモリ領域に代わってサブCPU 1のメモリ領域が
アクセスされる。ここで、アドレスに”4000”のオフセ
ットを設けた理由は、 SFR領域及びメインCPU23のリセ
ットベクタアドレス”FFFC”, ”FFFD”を避けて且つア
ドレスデコード回路をサブCPU 1に対するアクセス時と
メインCPU 23に対するアクセス時との双方で簡略にでき
る利点を配慮しているためである。
【0080】同様に、図18に示されているプロセッサモ
ードで且つサブCPU 1のデバッグモード時には、図17の
プロセッサモード時のメモリ領域の配分を、アドレス”
4000”〜”7FFF”の間のみサブCPU 1のメモリ領域に振
り分けている。これにより、プロセッサモードでメイン
CPU 23を使用してサブCPU 1をアクセスすることが可能
になり、サブCPU 1とメインCPU 23とを相互に動作させ
てこのワンチップマイクロコンピュータをテストするこ
とが可能になる。
【0081】なお、メインCPU バス10は8ビット幅、サ
ブCPU バス28は16ビット幅であるので、後述する図22
(a),図22(b) に示されているように、サブCPU 1からア
ドレス”0020”をアクセスするということは、メインCP
U 23からアドレス”4040”及び”4041”の2つのアドレ
スをアクセスすることに対応する。
【0082】図19に示されているバスアイソレーション
モード時または周辺テストモード時には、メインCPU 23
とメインCPU バス10とを切り離した上で、外部端子から
メインCPU バス10を制御することによりチップ上のサブ
CPU ブロック15のROM, RAM,周辺回路をアクセスしてテ
ストすることが出来る。
【0083】サブCPU 1を持たない従来のマルチCPU(MP
U)システムにおいては、図14に示されている本発明のマ
イクロコンピュータのシングルチップモード時等と同様
にアドレス”0000”〜”FFFF”のみが存在した。しかし
本発明では、更にアドレスバスを1ビット(AD16)拡張
し、 128Kバイトのメモリ空間を実現してサブCPU 1の
メモリ領域への直接アクセスを可能としている。即ち、
アドレス”14000 ”〜”17FFF ”がサブCPU 1のメモリ
領域となり、この領域をサブCPU テストモード制御ビッ
トSTM 7,STM 6とは無関係にアクセスできる。そのた
めの回路を簡略に実現するために、拡張されたアドレス
バスの1ビットであるAD16のデコードを省略することに
より、アドレス”1000”〜”043F”と同様に同一の SFR
領域, RAMがアドレス”10000 ”〜”1043F ”でもアク
セスできる。
【0084】図20はサブCPU 1側から見たメモリ配置の
模式図である。本実施例では、メインCPU 23側はデータ
バスは8ビットに、アドレスバスは16ビットにそれぞれ
構成されると共に、64Kバイトのメモリ空間を有し、16
進コードのアドレス”0000”〜アドレス”FFFF”までの
領域が用意されている。サブCPU 1側はデータバスは16
ビットに、アドレスバスは13ビットにそれぞれ構成され
ると共に、8Kワードのメモリ空間を有し、アドレス”
0000”〜アドレス”1FFF”までの領域が用意されてい
る。サブCPU 1側はその他にレジスタ空間(SFR:Specia
l Function Registers)として64ワード分の空間も有す
る。
【0085】この例では、アドレス”0000”〜”1FFF”
の8Kワードの空間がサブCPU 1側に割り当てられてい
る。その内のアドレス”0000”〜”0800”は内蔵ROM 領
域に、アドレス”1FC0”〜”1FFF”は内蔵 RAM領域にそ
れぞれ割り当てられている。サブCPU テストモードビッ
トSTM 7,STM 6がデバッグモードに設定されている場
合以外は、サブCPU 1がこの領域をアクセスできる。
【0086】通常の動作時は、メインCPU 23のメモリ空
間とサブCPU 1のメモリ空間とは独立していて相互にア
クセスすることは不可能である。但し、図3,図4,図
5及び図6で説明した特殊レジスタ群を使用することに
より、相互間のデータの授受が可能である。そのような
場合のために、双方のアドレス間の関係が予め定められ
ている。
【0087】図21は本発明のマイクロコンピュータのサ
ブCPU 1のアドレスとメインCPU 23のアドレスとの間の
関係を示す模式図である。上述のように、本発明のマイ
クロコンピュータのメインCPU 23側はデータバスは8ビ
ットに、アドレスバスは16ビットにそれぞれ構成され、
サブCPU 1側はデータバスは16ビットに、アドレスバス
は13ビットにそれぞれ構成されている。このため、メイ
ンCPU 23側のアドレスはサブCPU 1側のアドレスに対し
て”4000”のオフセットが設定されている。
【0088】また、図22(a) 及び図22(b) は同一のデー
タ、たとえば”5613”がサブCPU 1側とメインCPU 23側
とに格納される場合のアドレスの関係とそれぞれのアド
レスに格納されるデータとの関係を16進表示で示す模式
図である。サブCPU 1側では、アドレス”2020”にデー
タ”5613”がそのまま格納されるが、メインCPU 23側で
はアドレス”4040”にデータ”13”が、アドレス”404
1”にデータ”56”がそれぞれ格納される。
【0089】図23は図14乃至図19及び図20, 図21, 図22
(a) 及び図22(b) に示されているようなメモリ配置に対
応して考えられた EPROMアクセスモード時のメモリ配置
の一例を示す模式図である。
【0090】EPROMアクセスモードとは、内蔵EPROM の
プログラム(書き込み),ベリファイ(検証),リード(読
み出し), EPROMテスト等の操作モードを総称したモード
である。この例では、メインCPU 23側のEPROM はアドレ
ス”4000”〜”FFFF”の48Kバイトのメモリ領域に配置
され、サブCPU 1側のEPROM はアドレス”14000 ”〜”
14FFF ”の16Kバイト、即ち8Kワードのメモリ領域に
配置されている。サブCPU 1側は16ビット語長であるの
で、2バイトのアドレスが1ワードに対応している。
【0091】従来のマイクロコンピュータではサブCPU
が備えられておらずメインCPU のみであったため、アド
レス”0000”〜”FFFF”の64Kバイトのメモリ空間で納
まっていた。しかし、本発明のマイクロコンピュータで
は、サブCPU 1の EPROMアクセスのためにアドレスバス
を1ビット(AD16)拡張することにより、 EPROMアクセス
時には 128Kバイトのメモリ空間が割り当てられる。本
実施例では、図19に示されている周辺テストモード時の
メモリ配置と類似した配置、即ちEPROM の部分のアドレ
スを両モードで統一する配置とすることにより、アドレ
スデコード回路を簡潔に設計できるように配慮してい
る。
【0092】図24は本発明のマイクロコンピュータの L
SIチップ21外部からの制御のための端子を示す模式図で
あり、基本的には従来例と同様である。図24において
〔 〕が付与されている端子名は EPROMモード時の制御
端子を示している。具体的には、 Vppは EPROM書き込み
電源端子、CEB, OEBはチップセレクト及び出力イネーブ
ル制御端子、BWTEST, DTESTB, GTESTBはいずれも EPROM
テスト用端子であり、VRFYは本発明に特有のモード制御
端子である。
【0093】アドレス出力端子AD0〜AD15及びデータ入
出力DB0〜DB7はプロセッサモードと共通であり、 EPR
OMモード時にも使用される。端子AD16は本発明のマイク
ロコンピュータに特有の端子であり、サブCPU 1のアド
レス空間とメインCPU 23のアドレス空間とを区別する制
御信号を外部から印加する端子である。
【0094】図25は図24に示されているマイクロコンピ
ュータの各モード設定端子の入力状態と EPROMモード時
の各モードとの関係を示す模式図である。通常の単品の
EPROM では、書き込み電源端子 Vppの電圧を12Vと5V
とのいずれかに切り換えることによりモードが変更され
るように構成されているが、本発明のマイクロコンピュ
ータではその機能をVRFY端子に持たせている。本発明の
EPROM内蔵マイクロコンピュータとこれにデータプログ
ラミングを行なうための EPROM書き込み装置とは専用の
制御回路を設けたアダプタ基板を介して接続される。VR
FY端子が設けられたこの方式は従来例と同様ではある
が、特殊なものである。この方式により Vpp端子を通常
の入力端子とのダブルファンクションポートとして機能
させることが可能となる。
【0095】従来のマイクロコンピュータのプログラム
開発のためのエミュレータ(ICE:InCircuit Emulator)
の一例として、三菱電機株式会社製の”PC4600”が知ら
れている。このエミュレータを介して専用のエミュレー
タチップをホストマシンから制御することが可能であ
る。ホストマシンはリアルタイムトレースが可能な専用
の制御ソフトウェア”RTT 74”で制御されることによ
り、マイクロコンピュータのプログラム作成及びデバッ
グが可能になる。
【0096】本発明のサブCPU を内蔵したマイクロコン
ピュータも全く同様のエミュレータシステムでその制御
ソフトウェアを追加するのみで動作させることが可能に
なる。追加される制御ソフトウェアは、たとえばサブCP
U 1のメモリをメインCPU バス10からアクセスすること
によりサブCPU 1用のプログラムをブートするソフトウ
ェア、あるいはブレーク機能を利用してサブCPU 1内の
レジスタ, メモリの内容をモニタするソフトウェア等で
ある。
【0097】図26乃至図29は上述のエミュレータチップ
のピン接続のための端子、特にエミュレータコントロー
ラPC4600と接続される上面端子の一例を示す模式図であ
り、基本的には従来のマイクロコンピュータと同様であ
る。なお、図26乃至図29は本来は一葉の図であり、図26
が左上に、図27が右上に、図28が左下に、図29が右下に
それぞれ位置する。
【0098】図26乃至図29に示されている例では、アド
レス信号#AD0〜#AD15, データ信号#DB0〜#DB7の
他に、ライト制御信号#WR, リード制御信号#RD, 命令
同期信号#SYNC, リセット出力#RESETout, 電源端子#
Vss,#Vcc が用意されている。更に、ユーザモードとシ
ステムモードとを選択制御する#U/S 信号入力端子も用
意されている。1ピンから80ピンまでの下面端子機能は
最終ターゲットのマスクROM または EPROM内蔵マイクロ
コンピュータの機能と同一の端子配列が採られており、
プログラム開発時から電気的特性が同一のエミュレーシ
ョンツールが提供される。
【0099】本発明のサブCPU を内蔵したマイクロコン
ピュータの場合もこのエミュレーションチップの上面端
子機能については従来と同一となっており、従来のエミ
ュレーションシステム方式をそのまま流用することが可
能に構成されている。
【0100】図30乃至図35及び図36, 図37, 図38(a) 及
び図38(b) は本発明のサブCPU を内蔵したマイクロコン
ピュータの一実施例のエミュレーションチップのメモリ
配置を示す模式図である。これらの図に示されているメ
モリ配置は図14乃至図19及び図20, 図21, 図22(a) 及び
図22(b) に示したマスクROM または EPROMのメモリ配置
とほとんど同様であるが、メインCPU 23の ROM領域が上
面端子から信号を受けてエミュレータコントローラから
データを供給される一種の外部メモリ領域 (代替内部RO
M 領域) になっている。メインCPU 23側の RAMサイズは
必ずしも同一にしなけらばならないという制約はない。
サブCPU 1側のメモリはプログラムの書き換えが容易な
ようにROM に代わってRAM で構成されている。
【0101】図39乃至図42は本発明のマイクロコンピュ
ータの一実施例のサブCPU 1のメモリ読み出し回路の構
成を示すブロック図である。本発明のマイクロコンピュ
ータでは、サブCPU 1のメモリがこれまでに説明した如
くサブCPU 1のみならずメインCPU 23からもアクセス可
能である必要があり、一種のデュアルポートメモリ構造
が必要になる。
【0102】図39は本発明のマイクロコンピュータのRA
M 2, ROM/EPROM 3からのメモリ読み出し回路の構成を
示している。図39中、参照符号131(a, b) はRAM 2, RO
M/EPROM 3のメモリセルを、132(a, b) はメモリセル13
1(a, b) の読み出しビットラインのマルチプレクサを、
133(a, b) はメモリセル131(a, b) からデータ読み出し
のためのセンスアンプそれぞれ示している。
【0103】参照符号135(a, b) はメモリセル131(a,
b) から読み出されたデータをメインCPU データバス137
に駆動するためのバスバッファを示している。このバ
スバッファ135(a, b) は RDCPU信号が真の場合にメイン
CPU データバス137 への出力が駆動され、偽の場合はメ
インCPU データバス137 への出力はハイインピーダンス
になる。この RDCPU信号はメインCPU 23のアドレス及び
そのリード信号, サブCPU テストモードビットSTM 7,
STM 6をデコードして得られる。
【0104】参照符号134(a, b) はメモリセル131(a,
b) から読み出されたデータをサブCPU データバス138
に駆動するためのバスバッファである。このバスバッフ
ァ134(a, b) は RDSEQ信号が真の場合にサブCPU データ
バス138 への出力が駆動され、偽の場合はサブCPU デー
タバス138 への出力がハイインピーダンス状態になる。
この RDSEQ信号はサブCPU 1のアドレス及びそのリード
信号をデコードして得られる。サブCPU テストモードビ
ットSTM 7,STM 6は必ずしもこのデコードに関与する
必要はない。
【0105】参照符号136(a, b) はセンスアンプ133(a,
b) の出力を制御するゲートであり、ROM/EPROM 3側で
は RDMem信号が真であればそのデータは参照符号144bに
て示されているラッチに保持されると同時に上述のバス
バッファ134b, 135bに供給される。 RDMem信号が偽であ
れば、ゲート136bは OFF状態となってラッチ144bに保持
されているデータがバスバッファ134b, 135bに供給され
続ける。一方、RAM 2側では RDTestRAM信号が真であれ
ばそのデータは参照符号144aにて示されているラッチに
保持されると同時に上述のバスバッファ134a, 135aに供
給される。 RDTestRAM信号が偽であれば、ゲート136aは
OFF状態となってラッチ144aに保持されているデータが
バスバッファ134a, 135aに供給され続ける。
【0106】従って、ROM/EPROM 3側では RDMem信号が
真であり且つ RDSEQ信号が真である場合にサブCPU デー
タバス138 へデータが出力され、 RDMem信号が真であり
且つRDCPU信号が真である場合にメインCPU データバス1
37 へデータが出力される。また、RAM 2側では RDTest
RAM信号が真であり且つ RDSEQ信号が真である場合にサ
ブCPU データバス138 へデータが出力され、 RDTestRAM
信号が真であり且つ RDCPU信号が真である場合にメイン
CPU データバス137 へデータが出力される。
【0107】参照符号139 にて示されている DEC1〜 D
EC12はメモリセル131(a, b) に供給されるアドレス信号
であり、ゲート141 によりサブCPU モード切り換え信号
SEQACCで供給されるアドレス信号として参照符号142 で
示されているサブCPU 1側のアドレスSEQ 0〜SEQ 11と
メインCPU 23側のアドレスAD1〜AD12とのいずれかが選
択される。
【0108】同様に、参照符号140 にて示されているVM
EM信号はこのメモリセル131(a, b)をアクセスするため
の同期信号であり、サブCPU 1側のクロックM3V とメイ
ンCPU 23側のクロックV1とのいずれかがSEQACC信号で選
択される。本実施例では、メインCPU 23側のバスは8ビ
ット幅に、サブCPU 1側のバスは16ビット幅にそれぞれ
構成されているので、メインCPU データバス137 のデー
タDB7 …DB0(bit1) とDB7 …DB0(bit0) とで一組になっ
ている。従って、メインCPU データバス137 へのデータ
出力に際しては、アドレスラインビット0AD0の制御によ
って双方のビットのセンスアンプブロックからの出力が
接続される。なお、サブCPU データバス138 のデータは
SQR 15〜0で示されている。
【0109】図39に示されている例では、ROM/EPROM 3
のメモリセル131bのバスバッファ134b, 135bとRAM 2の
メモリセル131aのバスバッファ134a, 135aとが分離され
ている。しかし、図39の構成を変形して図40に示されて
いるような構成を採ることも可能である。
【0110】図40に示されている回路では、RAM 2のセ
ンスアンプ133aの出力とROM/EPROM3のセンスアンプ133
bの出力とを結合し、その後に2つのバスバッファ134,
135に読み出しデータを供給するように構成されてい
る。
【0111】また、図41はエミュレーションチップ用
に、サブCPU 1の ROM領域を RAM領域に置き換えた場合
の回路構成例を示すブロック図である。この図41におい
て、メモリセル131c, 131dのメモリ配置は図36に示され
ており、メモリセル131eのメモリ配置は図20に示されて
いるサブCPU 1の内蔵ROM 領域のアドレス”0000”〜”
0800”に相当する。
【0112】図42は図39の右側に示されているROM/EPRO
M 3側の構成を実現するための詳細な論理回路図であ
る。図42において、参照符号133bはROM/EPROM 3のセン
スアンプを示し、図39に示されているメモリ(ROM) セル
131bのビットラインからマルチプレクサ132bを介して選
択されたビット信号線の信号がレファレンス電圧と比較
され、その結果の出力がゲート136 に供給されている。
【0113】図43、図44が RPH信号の立ち上がり遅延を
制御する回路の構成例を示す回路図であり、この回路に
よって図45に示されているような関係の RPH信号及びRP
HD信号を得ることができる。この遅延はセンスアンプ13
3bでデータが読み出されるまでに時間が必要なため、RO
M/EPROM 3からデータが読み出されて完全に確定した後
に次段のバッファにデータを供給するために設けられて
いる。確定したデータはラッチ144bに保持されると共
に、二つのバッファ134b, 135bに供給される。これらの
バッファ134b, 135bは RDSEQ信号またはRDCPU0信号によ
りアクティブ制御されるトライステートバッファであ
る。
【0114】図46は上述のROM の読み出しタイミング信
号RDROMZ及びEPROM の書き込みタイミング信号PGMEM を
生成するための回路構成例を示す回路図であり、アドレ
ス及びリード信号, 同期クロックSQMEMCLKを入力として
タイミング信号を生成する。ROM/EPROM 3全体は最下位
アドレスAD0のデコードにより指定される8ビットの二
つのブロックの組み合わせで構成されている。
【0115】図47は図42に示されている回路の下位に対
応するセンスアンプ及びバスバッファの構成を示す回路
図である。また、図48はそのためのAD0信号を使用して
読み出し制御信号RPH, RPLを生成するための回路の構成
を示すブロック図である。
【0116】図49は図42に示されているROM の読み出し
のタイミングを示すタイミングチャートであり、サブCP
U 1がROM 3をアクセスしている場合のタイミングを示
している。
【0117】図49において、 M3VはサブCPU 1のシステ
ムクロックであり、TML, TMHはこのクロックM3V からそ
れぞれ立ち上がりまたは立ち下がりを遅延させて得られ
たタイミング信号である。SC12〜0はサブCPU 1のアド
レスバスの値であり、 ROMアドレス(ROM ADD) または R
AMアドレス(RAM ADD) に従ってメモリ内容がアクセスさ
れる。メモリからのデータの読み出しはシステムクロッ
クM3V の”L”区間で行なわれ、センスアンプの読み出
し信号RPH, RPLのタイミングからバッファラッチ144 の
保持信号RPHD, RPLDのタイミング, サブCPU 1の ALU 3
8 に供給される信号E22 のタイミングがそれぞれT1, T2
の遅延を伴ってタイミング制御されている。これらの遅
延はいずれもデータが確定した後に配線容量負荷の大き
な次段の信号線へのデータ供給を実施するための工夫で
ある。
【0118】図50,図51は上述のような本発明のマイク
ロコンピュータのサブCPU 1及びそのメモリのチップ上
でのレイアウトを示す模式図である。
【0119】以上に説明したように、サブCPU 1のメモ
リは二つのCPU 、即ちサブCPU 1及びメインCPU 23から
並行にアクセス可能である必要があるので、図示されて
いるように、メインCPU バス10(CPU AD15 〜0及びCPU
DB7〜0) とサブCPU バス28(SEQAD12〜0及びSEQDB15
〜0) とを隣接して配置する必要がある。また、 ROMメ
モリブロックまたは RAMメモリブロック等の複数のメモ
リブロックを配置する必要があり、それぞれに二種類の
バスからのアクセスが必要である。
【0120】そのような観点から、エミュレーションチ
ップのメモリ配置は図50の模式図に示すように、マスク
ROM または EPROM内蔵最終ターゲット製品のメモリ配置
は図51の模式図に示すようにそれぞれ構成されている。
【0121】次に、上述のように構成された本発明のマ
イクロコンピュータの実施例の動作について説明する。 〔実施例1〕まず、請求項1及び請求項4に対応する実
施例、即ちメインCPU 23からアクセス可能な制御レジス
タによってメインCPU 23からサブCPU 1側のメモリ領域
をアクセスするための切り換え回路について述べる。
【0122】図7,図8を参照して説明した如く、本発
明のマイクロコンピュータでは、通常はメインCPU 23の
メモリ領域とサブCPU 1のメモリ領域とは分離されてお
り、メインCPU 23のメモリ領域はメインCPU 23から、サ
ブCPU 1のメモリ領域はサブCPU 1からそれぞれ独立し
てアクセスされる。しかし、以下に説明するサブCPU1
のテストのために、またはプログラムデバッグツールの
ためにメインCPU 23からサブCPU 1のメモリ領域をアク
セスすることが可能に構成されている。この特殊なモー
ドは幾つかの場合に実行される。
【0123】一つはサブCPU テストモード制御ビットST
M 7,STM 6がデバッグモードに設定された場合であ
る。この場合の両メモリ領域の割り当ては図15と図16と
の関係、または図17と図18との関係に相当する。サブCP
U テストモード制御ビットSTM7,STM 6の値はメインC
PU 23から設定可能なため、一連の動作をメインCPU 23
からのアクセスで制御可能である。
【0124】他の一つは EPROMモード時または周辺テス
トモード時にAD16を利用する方法である。この拡張され
た1ビットのアドレスAD16を導入することにより、通常
は64Kバイトのメモリ空間を特殊モード時には128 Kバ
イトの空間に拡張することが可能になる。これにより、
サブCPU 1のメモリ領域をメインCPU 23からアクセスす
ることが可能になる。この場合、メモリ領域の割り当て
は図19乃至図21及び図22(a),図22(b) に相当する。 EPR
OMモード及び周辺テストモードの設定は従来のマイクロ
コンピュータにおいても実施されており、メインCPU 23
を動作させること無しにマイクロコンピュータの端子に
外部から直接信号を印加することにより設定可能であ
る。
【0125】サブCPU 1のメモリ領域を周辺テストモー
ドを利用してテストする場合は、まずマイクロコンピュ
ータの外部端子を所定の手順で設定して周辺テストモー
ドに切り換えた後、サブCPU 1のメモリのアドレスをア
ドレス端子から印加する。図19に示されている例では、
ROMテスト時は拡張されたアドレスAD16も使用されてア
ドレス”14000 ”〜”14FFF ”の領域が単純に読み出さ
れることにより、マスクROM またはEPROM に書き込まれ
たデータが読み出されて内容の確認が可能になる。 RAM
テスト時には、アドレス”17F80 ”〜アドレス”17FFF
”の領域にテスト用のデータが一旦書き込まれた後、
同じアドレスが読み出されることにより、書き込まれた
データが正しく読み出されたか否かをチェックすれば、
RAM回路の動作を確認することができる。プロセッサモ
ードを利用した場合も上述と同様であり、サブCPU テス
トモードビットSTM 7,STM 6をデバックモードに設定
した後は、メインCPU 23側のプログラムを走らせること
によりサブCPU 1のメモリのテストが実施される。
【0126】〔実施例2〕請求項6に対応する EPROMモ
ードの実施例は、既に図23を参照して説明した如く、通
常のメモリ領域に加えてアドレスビット線を1ビット拡
大して、即ちAD16を追加してサブCPU 1のメモリに対応
させるように構成してある。サブCPU 1のアドレスデコ
ード回路にはAD16と EPROMモード判別信号とが入力され
ており、 EPROMモード時にはAD16が有効となる。当然、
メインCPU 23側のメモリに関しても、 EPROMモード時に
はAD16が”0”であることをデコードして両者のメモリ
の出力または入力が混同されないように回路設計をして
おく必要がある。この部分の原理的な構成は周辺テスト
モード時も同様であり、両者のデコード回路は相当部分
共有化することが可能である。
【0127】〔実施例3〕請求項2及び請求項3に対応
する実施例、即ちテスト専用のサブCPU リセットベクタ
を発生する手段を有するマイクロコンピュータの動作に
ついて、図7乃至図13を参照して以下に説明する。
【0128】まず、本発明のマイクロコンピュータのサ
ブCPU 1の通常時のリセットスタートは以下の如くして
行なわれる。サブCPU テストモードビットSTM 7,STM
6が通常モード”00”に設定され、図9に参照符号48に
て示されているスタート制御ビットMINIに”1”が書き
込まれる。これによりワンショットパルス回路49で一発
のパルスが発生し、そのパルスの期間にわたってサブCP
U リセット信号Sub-CPU-reset がアクティブになる。こ
の際、サブCPU テストモードビットSTM 7,STM 6がデ
バッグモード以外のモードに設定されていれば信号g8が
有効となり、特殊コード発生器43で発生された命令コー
ドが命令ラッチ45及び命令デコーダ46に入力される。こ
の際、命令デコーダ46の出力の内のリセット信号g9がア
クティブになってポストデコーダ47-2に与えられる。こ
のポストデコーダ47-2が信号g9とTEST信号の反転値との
論理積をとることにより、通常時リセット信号g0がアク
ティブになる。これによりゲート55-1がオンしてリセッ
トベクタ発生器52の出力がサブCPU 1のプログラムカウ
ンタ5に供給され、その値が初期化される。プログラム
カウンタ5からの出力はサブCPU 1のメモリ領域をアク
セスするアドレスであってバス56へ出力される。そし
て、このプログラムカウンタ5の値がリセット(初期化)
されることにより、リセットベクタアドレスが示すプ
ログラム領域のメモリの値が最初に実行されるべき命令
のコードとして命令デコーダ45,命令ラッチ46に次のサ
イクルにおいて供給される。
【0129】その後は順次的にプログラムカウンタ5が
インクリメントされて目的のプログラムが実行される。
但し、このような手順は従来の一般的なフォンノイマン
型コンピュータと同様である。
【0130】次に、本発明の特徴たるテスト専用のサブ
CPU リセットについて説明する。但し、基本的な動作は
通常時のリセットと殆ど同じである。この場合は、テス
トモード制御レジスタ4がテストモード(TEST=1)に
設定される。そして、スタート制御ビット48に”1”が
書き込まれることによりポストデコーダ47-2の出力の内
の信号g0が”0”に、信号g1が”1” (アクティブ)に
なる。これにより、ゲート55-2がオンしてプログラムカ
ウンタ5にはテストベクタレジスタ53の値がロードさ
れ、この値のアドレスからプログラムの実行が開始され
る。
【0131】なお、テストベクタレジスタ53はレジスタ
として構成するのではなく、固定した値をハードウェア
で出力するような構成を採ることも可能である。しか
し、メインCPU 23側からアクセス可能なようにテストベ
クタレジスタ53として構成することにより、メインCPU
23側から指定可能な任意のアドレスをプログラム開始ア
ドレスとして設定することが可能になる。
【0132】なお、テストリセット時にはこの他にサブ
CPU ブロック15の各部分がハードウェア的にリセットさ
れないように回路を構成すれば、エミュレータを実現す
る上で、プログラムを実行途中で停止させた状態をその
まま維持した状態で任意のアドレスから再実行すること
ができる。
【0133】この機能は、請求項10に対応するストッ
プ(STP) 命令と組み合わせて使用すると非常に有効であ
る。たとえば、この機能を利用すれば小さなテスト用RA
M 領域を使用して長いプログラムを実行することが可能
になる。なお、ストップ命令とはプログラムの実行を一
時的に停止する命令であり、この命令が実行されると次
に割り込み、あるいはリセットが入るまではプログラム
の実行が停止した状態が継続される。このストップ命令
は一般的にはシステムクロックを停止することにより実
現される。
【0134】これらの請求項1,2,3,4,10を組
み合わせることにより実現可能なテスト手法の一例を以
下に説明する。最初にメインCPU 23をプロセッサモード
またはメモリ拡張モードで動作させる。その後、サブCP
U テストモードビットSTM 7,STM 6をデバッグモード
に切り換えることによりメインCPU 23側からサブCPU 1
のメモリRAM 領域にサブCPU 1のテスト用のプログラム
データの第1の部分を書き込む。但し、その第1の部分
の最後の実行部分にはストップ命令を配置しておくこと
により、第1の部分の実行完了後は一旦プログラム実行
が停止するようにしておく。そして、テストベクタレジ
スタ53にそのテストプログラムの開始アドレスを書き込
んだ上でスタート制御ビット48に”1”を書き込むこと
によりプログラムの実行を開始させる。これにより、第
1の部分のテストプログラムの実行が開始される。
【0135】図13の下段に示されている如く、ストップ
状態であるか否かはメインCPU 23からSEQSTPビットを監
視することにより検出可能なようにしておく。適当な時
間が経過した時点でSEQSTPビットをチェックすることに
より、メインCPU 23からもサブCPU 1の停止が確認可能
である。あるいは、サブCPU 1がストップ状態になった
時点で、換言すればSEQSTPビットがセットされて”1”
になった時点でメインCPU 23に対して割り込みが掛かる
ような回路を設けるような構成を採ることも可能であ
る。
【0136】サブCPU 1のプログラム実行が停止した
後、今度はサブCPU テストモードビットSTM 7,STM 6
がデバッグモードに設定されることにより、テストプロ
グラムの第1の部分に引き続く第2の部分が前述同様に
サブCPU 1の RAM部分にメインCPU 23から書き込まれ
る。今回もその第2の部分の最後にはストップ命令が配
置される。そして、サブCPU テストモードビットSTM
7,STM 6がテストモードに書き換えられ、テストベク
タレジスタ53にその第2の部分のテストプログラムの開
始アドレスが書き込まれることにより、前述同様にプロ
グラムの実行が開始される。
【0137】テストプログラムの実行によりサブCPU 1
内の各レジスタ,RAM等のメモリ内のデータが処理されて
値が書き換えられる。プログラムが本来の目的通りに実
行されたか否かはメインCPU バス10側からそれらのレジ
スタあるいは RAM等をアクセスしてそれらの値を調べる
ことにより確認可能である。これにより、サブCPU 1の
各機能が正しく動作しているか否かがテスト可能であ
る。
【0138】たとえば、レジスタA,Bの値を加算して
レジスタCに格納する機能をテストする場合は、テスト
プログラムによりレジスタA,Bにそれぞれ任意の値を
設定した上で加算命令(ADD) を実行してその結果をレジ
スタCに格納させる。このレジスタCに格納された加算
結果をメインCPU 23からアクセス可能なレジスタDに転
送した後にストップ命令を実行し、メインCPU 23からレ
ジスタDの値をチェックすれば、メインCPU 23側からサ
ブCPU 1が正しく動作しているか否かが検査されたこと
になる。
【0139】〔実施例4〕次に図7乃至図12を参照して
請求項7及び請求項8に対応する実施例、即ちブレーク
検出時にブレークベクタに分岐する制御回路を備えたマ
イクロコンピュータの動作について説明する。
【0140】プログラムカウンタ5の値、即ちPC値はプ
ログラムの指示に従って変化していくが、このPC値は毎
サイクル毎に一致検出回路16によってブレークアドレス
レジスタ6の値であるブレークアドレスと比較されて一
致検出が行なわれる。この一致検出回路16により一致検
出された回数がブレークカウンタ9により計数され、所
定値と一致すれば、具体的にはダウンカウントした値
が”0”になれば、ブレーク信号HW_BRK がアクティブ
になる。
【0141】但し、ブレークカウンタ9を備えない構成
ももちろん可能であり、その場合には、一致検出回路16
による一回の一致検出でブレーク信号HW_BRK がアクテ
ィブになる。
【0142】この際、ORゲート51で信号g8が”1”にな
ると同時に特殊コード発生器43が BRK命令のコードを発
生する。この BRK命令のコードを受けてブレークベクタ
レジスタ7の値がプログラムカウンタ5にロードされ、
命令ラッチ45, 命令デコーダ46, ポストデコーダ47-1で
はブレークベクタのアドレスに命令の実行が移される。
また同時に、それまで実行されていたプログラムのアド
レスはプログラムカウンタ5から信号線57及びゲート58
-4を介してアドレス退避レジスタ8に格納されて退避さ
れる。
【0143】このアドレス退避レジスタ8に格納された
値はブレークルーチンからの復帰時に使用される。ブレ
ークアドレスはメインCPU 23側からブレークアドレスレ
ジスタ6に目的の値を設定することにより自由に選択で
きる。
【0144】なお、図9においては、参照符号5はプロ
グラムカウンタ自身を指示して説明したがアドレスバッ
ファに置き換えることも可能である。その場合はプログ
ラムのアドレスではなく、データのメモリアクセスの場
合のアドレスも一致検出の対象とすることが可能にな
る。そのような場合の一連のプログラムフローの一例が
前述の図11の模式図に示されている。
【0145】ブレークベクタは予め固定したハードロジ
ックの出力、またはROM に書き込まれたデータあるいは
専用のレジスタに書込まれた値をロードする等の手法が
利用可能である。専用のレジスタを使用する場合は、た
とえば、前述のテストリセットルーチンでブレークベク
タレジスタ7に予めブレークベクタを格納した後、デバ
ッグ対象の部分のプログラムを実行すれば、所望のアド
レスでブレークした後はプログラムを分岐することがで
きる。
【0146】上述の説明では、ブレーク命令はブレーク
アドレスとの一致検出というハードウェア回路の動作を
伴っている。しかし、ブレーク命令自身はソフトウェア
的にプログラム中に BRK命令を組み込むことによっても
実行可能であり、その場合もブレークルーチンへの分岐
手順については同様である。ソフトウェアブレークはデ
バッグ時にプログラムの適宜の位置に BRK命令を配置し
ておき、その近辺のルーチンを実行しているか否かの判
断をしたり、その BRK命令の位置で各レジスタの値がど
のようになっているかを判断したいような場合に用いら
れる。
【0147】〔実施例5〕請求項9に対応する実施例は
前述の構成に更に追加して、図9に示されている一致検
出回路16による一致検出の回数をブレークカウンタ9で
ダウンカウントすることにより、予め設定した回数だけ
ブレークアドレスをアクセスした後にブレークが掛かる
ように構成してある。これによりたとえば、プログラム
のループ部分で予め設定した回数だけループが反復され
た後にブレークを掛けてレジスタの値をチェックした
り、あるいは特定のアドレスのデータに対するアクセス
がある回数を越えた時点でブレークをかけてその状態を
確認したりすることが容易に可能になる。この場合も、
ブレークカウンタ9へのデータの設定はメインCPU 23か
らこのレジスタに書き込むことで行なえる。
【0148】〔実施例6〕次に請求項10及び請求項1
1に対応する実施例、即ちブレーク状態からの復帰命令
をハードウェア的に備えたマイクロコンピュータの動作
について説明する。
【0149】この実施例は前述のテストリセットの動作
と非常に似ているが、ここではテストモード制御レジス
タ4をHW_RTB モードにセットしてスタート制御ビット
48に”1”が書き込まれる。この場合、デコーダ出力は
ポストデコーダ47-2からの制御信号g3が有効となり、ア
ドレス退避レジスタ8の値がプログラムカウンタ5にロ
ードされる。これにより、アドレス退避レジスタ8に退
避されていたブレーク発生時点で実行されていた命令の
アドレスから再度プログラムを実行することが可能にな
る。
【0150】この機能を用いて実現可能なサブCPU デバ
ッグ手法の一例を説明する。ところで、プログラムデバ
ッグの目的は、たとえば、目的とするあるアドレスを実
行した時点でのレジスタの値、あるいはメモリの値がど
うなっているかを確認することにより、開発されたプロ
グラムが仕様通りに正しく作成されているか否か、プロ
グラムがどのように動作しているかを確認することにあ
る。
【0151】まず、目的のアドレスがブレークアドレス
レジスタ6に書き込まれ、更に必要に応じてブレークカ
ウンタ9にループ回数が書き込まれる。サブCPU 1をテ
ストモードでスタートさせ、最初にブレークベクタレジ
スタ7にブレークルーチンの開始アドレスを格納した
後、実際のデバッグ対象のプログラムに分岐する。一致
検出回路16は常時動作しているので、ターゲットプログ
ラムの実行に従ってブレークアドレスに至るとプログラ
ムはハードウェア的にブレークルーチンに分岐する。ブ
レークルーチンでは目的のレジスタの値またはRAM の値
をRAM の退避領域にコピーして一旦格納した上でストッ
プ命令が実行される。ストップ命令が実行されると前述
と同様にその状態がメインCPU 23側に検出されてサブCP
U 1がデバッグモードに切り換えられる。そして、メイ
ンCPU 23側からRAM の退避領域の値が読み出され、ブレ
ークポイントでのレジスタの値が確認される。
【0152】その後、ブレークルーチンから元の実行中
であったアドレスにプログラム実行が戻る際には請求項
7に対応する機能が有効である。即ち、レジスタの値が
確認された後、サブCPU テストモードビットSTM 7,ST
M 6を RTBモードに書き換えてサブCPU 1がスタートす
ることにより、アドレス退避レジスタ8に退避されてい
た元のアドレスがサブCPU 1のプログラムカウンタ5に
戻される。これにより、メインCPU 23からの指令のみで
ブレークルーチン以前のルーチンに戻ってプログラムの
続きを実行することが可能になる。このような操作を反
復することにより、サブCPU 1のプログラムをステップ
実行(1ステップずつ実行すること)しつつデバッグを
行なうことが可能となる。そのような場合の一連のプロ
グラムフローの一例が前述の図12の模式図に示されてい
る。
【0153】〔実施例7〕次に、請求項12に対応する
実施例、即ちプログラム開発用エミュレータチップにつ
いてその動作を説明する。マイクロコンピュータのプロ
グラムを開発するためにはエミュレーションチップとそ
れをコントロールするエミュレータが必要である。エミ
ュレータにはデバッグ中のプログラムが格納されてお
り、必要に応じてそのプログラムがエミュレーションチ
ップに転送される。本発明のマイクロコンピュータのサ
ブCPU 1のプログラムのエミュレーションは、通常広く
行なわれるような各サイクル毎にエミュレータからプロ
グラムデータが供給される手法ではなく、最初に予めエ
ミュレータチップ内のサブCPU 1のプログラムメモリ領
域に全てのプログラムが格納された後にプログラムが実
行される。即ち、サブCPU 1のプログラムをエミュレー
タチップにブートした後、エミュレーションが実行され
る。
【0154】これを更に詳しく説明すると以下のように
なる。メインCPU 23の制御は従来の手法でエミュレータ
からメインCPU 23のプログラムがエミュレータチップの
上面端子経由で各サイクル毎に供給される。上面端子は
メインCPU バス10に直結しているので、この動作は上面
端子を経由してエミュレータをあたかも外部メモリとす
るプロセッサと同様の動作になる。これまでに説明した
如く、本発明のマイクロコンピュータでは、サブCPU 1
のメモリ領域はメインCPU 23からアクセス可能であるの
で、メインCPU 23を動作させてサブCPU テストモードビ
ットSTM 7,STM 6を書き換えることにより、メインCP
U 23の簡単なプログラムでサブCPU 1のメモリにそれの
ための一群のプログラムデータを連続的に書き込むこと
ができる。この際、エミュレータチップはサブCPU 1の
メモリ部分が全てRAM で構成されているため自由にプロ
グラムを書き込むことが可能である。プログラムが書き
込まれた後は再度サブCPU テストモードビットSTM 7,
STM 6を通常モードまたはテストモードに書き換えれ
ば、先にRAM に書き込まれたプログラムに従ってサブCP
U 1のプログラムが実行される。
【0155】デバッグに際しては前述の如く、ブレーク
機能を用いることによりこのエミュレータにサブCPU 1
のレジスタまたはメモリ内容をモニタする機能を実現す
ることができる。従って、ブレークルーチンのプログラ
ムを幾つか用意することにより、サブCPU 1のレジスタ
またはメモリに値を直接設定した後、テストモードによ
りプログラマの意図する任意のアドレスからサブCPU 1
のプログラムを実行することも可能である。
【0156】もちろん、サブCPU 1とメインCPU 23との
双方を同時に動作させてエミュレーションを行なうこと
も可能である。即ち、前述の如くサブCPU 1のプログラ
ムをブートした後、メインCPU 23に従来のエミュレーシ
ョンの手法と同様にして上面端子から各サイクル毎にプ
ログラムを供給することにより、このマイクロコンピュ
ータが製品として完成した最終の状態となんら変わるこ
となしに双方のCPU の動作をさせることができる。その
ような最終の状態では、メインCPU 23とサブCPU 1とは
相互にデータをやり取りしつつそれぞれの状況に応じて
独立してそれぞれのプログラムを実行する。
【0157】〔実施例8〕最後に請求項5に対応する実
施例、即ちサブCPU 1のメモリの動作について説明す
る。
【0158】サブCPU 1のメモリはこれまで説明した如
くサブCPU 1のみならずメインCPU23からもアクセス可
能である必要があり、一種のデュアルポートメモリ構造
が必要になる。本発明のマイクロコンピュータでは、サ
ブCPU 1のメモリ2,3の読み出し部分がビットライン
毎に一つのセンスアンプ133(a, b) に対してその出力が
サブCPU バス28とメインCPU バス10とへのバッファに分
かれている。メモリ2,3のデータはメモリセル131(a,
b) からビットラインを介してセンスアンプセンスアン
プ133(a, b) に入力され、通常のマイクロコンピュータ
と同様の”1”/”0”のデジタル出力が得られる。
【0159】サブCPU テストモードビットSTM 7,STM
6の出力はデコードされてそれぞれのモード信号を出力
するが、デバッグモード時にはメインCPU 23のバッファ
出力がアクティブとなってデータがメインCPU バス10に
伝播される。デバッグモード時以外ではこのメインCPU
23へのバッファはハイインピーダンス状態、即ち OFF状
態であるのでデータはサブCPU バス28へのみ供給され
る。当然、サブCPU 1側のメモリバッファはサブCPU 1
のアドレス空間のデコード結果に従ってそのメモリブロ
ックがアクセスされる際にのみアクティブになり、アク
セスされていない際にはバッファ出力はハイインピーダ
ンス状態になる。
【0160】図39乃至図41中の丸印はトランスミッショ
ンゲートまたはトライステートバッファで実現され得る
信号線の切り換えスイッチを示しており、各丸印脇に記
されている信号によりオン/オフ制御される。
【0161】このメモリのアドレスデコーダへのアドレ
スの供給はモードによってサブCPUアドレス信号SEQ 0
〜11及びREAD信号か、メインCPU アドレス信号AD1〜AD
12及びメインCPU READ信号かのいずれかが選択されて D
EC1〜 DEC12が得られる。本実施例では、サブCPU 1の
メモリデータは16ビットであり、メインCPU 23のそれは
8ビットであるので、アドレスビット線は互いに1ビッ
トずれて DECn信号に供給される。AD13よりも上位のア
ドレ信号のビットは別の部分でデコードされてRDCPU信
号自身を制御することにより、全メモリ空間に対して目
的の領域に相当する場合にのみデータをバスに供給する
ものである。
【0162】更に、バスバッファの数を節約するために
二つのメモリ領域のそれぞれのセンスアンプ133(a, b)
の出力を選択してバスバッファ135(a, b) に供給するよ
うに構成することも可能である。即ち、 RAMセルの値を
読み出す場合は RDTestRAM信号がアクティブになって R
AMセンスアンプの出力が二つのバッファの入力に接続さ
れ、 ROMセルの値を読み出す場合は逆に RDMem信号がア
クティブになって ROMの値がバッファに供給される。
【0163】メインCPU 23の基本クロックV1とサブCPU
1の基本クロックM3V とが異なる場合は、センスアンプ
に供給されるクロックVMEM自身もセレクタによってそれ
ぞれのモードに対応したクロック信号V1とM3V とのいず
れかが選択される。即ち、デバッグモード時はV1クロッ
クがメモリアクセスの基本クロックとなり、そのクロッ
クサイクルでメモリのプリチャージ及びメモリデータの
読み出しが行なわれる。一方、デバッグモード時以外に
はサブCPU クロックM3V が供給されてサブCPU1からメ
モリのアクセスが可能となる。
【0164】なお、図39, 図40中の信号e22で制御され
て分岐する信号はサブCPU 1のレジスタバス空間のメモ
リデータを供給する信号である。命令のデコードにより
信号e22がアクティブになるとメモリから読み出された
データそのものがレジスタメモリ空間に送出可能にな
り、データはサブCPU 1中のALU 38に供給される。
【0165】以上に説明したように、本発明のマイクロ
コンピュータでは、オンチップ化されたサブCPU のテス
ト環境, デバッグ環境を整えることが可能になる。な
お、上述した実施例では、サブCPU は一つのみが備えら
れていたが、これに限られるものではなく、複数にする
ことも容易である。
【0166】
【発明の効果】以上に詳述したように、本発明の請求項
1及び請求項4の発明に係るマイクロコンピュータによ
れば、通常はサブCPU 側のメモリはサブCPU からのみア
クセス可能であるが、テスト時にはメインCPU バスから
アクセス可能になる。これによりサブCPU のマスクROM
あるいはEPROM の読み出しテストが可能になる。更に、
書き込みも可能なRAM を設ければ、 RAMにサブCPU 本体
をテストするためのプログラムをメインCPU バスから供
給した後に、請求項6に示した手段によりサブCPU 側の
ロジックテストが実施可能になり、また請求項7の作用
も実現される。
【0167】また、本発明の請求項6に係るマイクロコ
ンピュータによれば、サブCPU のメモリ領域にEPROM を
配することが可能になり、これにメインCPU 領域のEPRO
M と同等に書き込みが可能になる。即ち、メインCPU 部
分のみならずサブCPU 部分にも書き換え可能な窓付き型
のEPROM 、あるいは製品出荷後のプログラム書き込みが
可能なOTP(One Time Programable ROM)を提供すること
が可能となる。
【0168】また、本発明の請求項2及び請求項3に係
るマイクロコンピュータによれば、上述の如く、メイン
CPU バスを介してのアクセスによりサブCPU のテストが
可能になるのみならず、テストリセットベクタがメイン
CPU 側から書き換え可能になる。このため、プログラム
領域のROM あるいは EPROM部分の途中から命令の実行を
開始することが可能になり、プログラムのデバックある
いは不良製品の解析にも利用可能になる。
【0169】また、本発明の請求項7及び請求項8に係
るマイクロコンピュータによれば、サブCPU のプログラ
ム実行をハードウェアによりブレークすることが可能と
なるため、テストプログラムを実行途中でブレークし、
その実行結果をブレークルーチン中でサブCPU とメイン
CPU とのインタフェイスレジスタから読み取れば、プロ
グラムの実行途中の結果を確認することが可能になる。
また、EPROM に書き込まれたプログラムのデバッグ、あ
るいはマスクROM 中に発生したプログラムのステップの
見極めをするのに有効である。
【0170】また、本発明の請求項9に係るサブCPU に
よれば、上述の請求項7及び請求項8の作用に加えて更
に、プログラムのループ部分が所定の回数反復実行され
た場合にのみブレーク割り込みを実行することが可能に
なる。
【0171】また、本発明の請求項10及び請求項11
に係るマイクロコンピュータによれば、請求項6のサブ
CPU の RAMサイズがある程度制限されている場合にも、
テストプログラムの実行をSTOP機能により途中で一旦中
断した後に、請求項1の機能によりRAM の内容を書き換
えて以降の新たなプログラムをロードすれば、再度それ
までの状態に引き続いてテストを続行することが可能で
ある。
【0172】また、本発明の請求項12に係るマイクロ
コンピュータによれば、まず請求項1の機能によりメイ
ンCPU バスよりRAM にサブCPU のターゲットのプログラ
ムをイニシャルブートしてリセット機能によりそのプロ
グラムを実行する。これにより開発中のプログラムのエ
ミュレーションが可能である。
【0173】また、請求項7及び請求項8、並びに請求
項10及び請求項11の機能によりプログラム実行をブ
レークすることにより、着目する部分でプログラム実行
を中断してその時点でのレジスタの値をメインCPU バス
からRAM あるいは特定のレジスタを介して読み取ること
が可能になる。更に、 RTB命令によりその後の命令を再
実行することも可能であり、このエミュレーションチッ
プを外部から制御することによりプログラム開発時のデ
バッガの機能を実現することも可能になる。
【0174】また、本発明の請求項5のマイクロコンピ
ュータによれば、サブCPU 側のメモリ出力はアナログ的
な動作をするセンスアンプ出力の後でサブCPU 側とメイ
ンCPU 側とに分岐するので、読み出し特性を同様にする
ことが可能になり、且つレイアウト設計に際しても面積
の増加を抑えることが可能になる。
【図面の簡単な説明】
【図1】 本発明のマイクロコンピュータの一実施例の
オンチップサブCPUのテスト及びデバッグ回路の制御部
分の構成を示すブロック図である。
【図2】 本発明のマイクロコンピュータの一実施例の
サブCPU を含むチップ全体の概略構成を示す模式図であ
る。
【図3】 本発明のマイクロコンピュータの一実施例の
サブCPU 内のレジスタ構成を示すブロック図の一部であ
る。
【図4】 本発明のマイクロコンピュータの一実施例の
サブCPU 内のレジスタ構成を示すブロック図の一部であ
る。
【図5】 本発明のマイクロコンピュータの一実施例の
サブCPU 内のレジスタ構成を示すブロック図の一部であ
る。
【図6】 本発明のマイクロコンピュータの一実施例の
サブCPU 内のレジスタ構成を示すブロック図の一部であ
る。
【図7】 図1に示されている本発明のマイクロコンピ
ュータのサブCPU とそのテスト及びエミュレーション回
路の内部の具体的な構成を示す回路図である。
【図8】 図1に示されている本発明のマイクロコンピ
ュータのサブCPU とそのテスト及びエミュレーション回
路の内部の具体的な構成を示す回路図である。
【図9】 図1に示されている本発明のマイクロコンピ
ュータのサブCPU とそのテスト及びエミュレーション回
路の内部の具体的な構成を示す回路図である。
【図10】 図1に示されている本発明のマイクロコン
ピュータのサブCPUとそのテスト及びエミュレーション
回路の内部の具体的な構成を示す回路図である。
【図11】 本発明のマイクロコンピュータのブレーク
動作時のシーケンスを示す模式図である。
【図12】 本発明のマイクロコンピュータのブレーク
動作時のシーケンスを示す模式図である。
【図13】 本発明のマイクロコンピュータのサブCPU
の4つのモードを説明するための模式図である。
【図14】 本発明のマイクロコンピュータの一実施例
のメモリ領域を示す模式図である。
【図15】 本発明のマイクロコンピュータの一実施例
のメモリ領域を示す模式図である。
【図16】 本発明のマイクロコンピュータの一実施例
のメモリ領域を示す模式図である。
【図17】 本発明のマイクロコンピュータの一実施例
のメモリ領域を示す模式図である。
【図18】 本発明のマイクロコンピュータの一実施例
のメモリ領域を示す模式図である。
【図19】 本発明のマイクロコンピュータの一実施例
のメモリ領域を示す模式図である。
【図20】 本発明のマイクロコンピュータの一実施例
のメモリ領域を示す模式図である。
【図21】 本発明のマイクロコンピュータの一実施例
のメモリ領域を示す模式図である。
【図22】 本発明のマイクロコンピュータの一実施例
のメモリ領域を示す模式図である。
【図23】 本発明のマイクロコンピュータの EPROMア
クセスモード時のメモリ配置を示す模式図である。
【図24】 本発明のマイクロコンピュータの従来例と
同様の外部から制御するための端子を示す模式図であ
る。
【図25】 本発明のマイクロコンピュータの EPROMモ
ード時の各モードとモード設定端子の入力状態との関係
を示す模式図である。
【図26】 本発明のマイクロコンピュータのエミュレ
ータチップのピン接続の状態を示す模式図の一部であ
る。
【図27】 本発明のマイクロコンピュータのエミュレ
ータチップのピン接続の状態を示す模式図の一部であ
る。
【図28】 本発明のマイクロコンピュータのエミュレ
ータチップのピン接続の状態を示す模式図の一部であ
る。
【図29】 本発明のマイクロコンピュータのエミュレ
ータチップのピン接続の状態を示す模式図の一部であ
る。
【図30】 本発明のマイクロコンピュータのサブCPU
を内蔵したマイクロコンピュータのエミュレーションチ
ップのメモリ配置を示す模式図である。
【図31】 本発明のマイクロコンピュータのサブCPU
を内蔵したマイクロコンピュータのエミュレーションチ
ップのメモリ配置を示す模式図である。
【図32】 本発明のマイクロコンピュータのサブCPU
を内蔵したマイクロコンピュータのエミュレーションチ
ップのメモリ配置を示す模式図である。
【図33】 本発明のマイクロコンピュータのサブCPU
を内蔵したマイクロコンピュータのエミュレーションチ
ップのメモリ配置を示す模式図である。
【図34】 本発明のマイクロコンピュータのサブCPU
を内蔵したマイクロコンピュータのエミュレーションチ
ップのメモリ配置を示す模式図である。
【図35】 本発明のマイクロコンピュータのサブCPU
を内蔵したマイクロコンピュータのエミュレーションチ
ップのメモリ配置を示す模式図である。
【図36】 本発明のマイクロコンピュータのサブCPU
を内蔵したマイクロコンピュータのエミュレーションチ
ップのメモリ配置を示す模式図である。
【図37】 本発明のマイクロコンピュータのサブCPU
を内蔵したマイクロコンピュータのエミュレーションチ
ップのメモリ配置を示す模式図である。
【図38】 本発明のマイクロコンピュータのサブCPU
を内蔵したマイクロコンピュータのエミュレーションチ
ップのメモリ配置を示す模式図である。
【図39】 本発明のマイクロコンピュータのサブCPU
のメモリ読み出し回路の構成を示すブロック図である。
【図40】 本発明のマイクロコンピュータのサブCPU
のメモリ読み出し回路の構成を示すブロック図である。
【図41】 本発明のマイクロコンピュータのサブCPU
を内蔵したエミュレーションチップのメモリ読み出し回
路の構成を示すブロック図である。
【図42】 本発明のマイクロコンピュータのサブCPU
のメモリ読み出し回路の具体的な構成を示す論理回路図
である。
【図43】 センスアンプ出力の立ち上がり遅延を制御
する信号を発生する回路の構成を示す回路図である。
【図44】 センスアンプ出力の立ち上がり遅延を制御
する信号を発生する回路の構成を示す回路図である。
【図45】 センスアンプ出力の立ち上がり遅延を制御
する RPH, RPHD信号のタイミングを示すタイミングチャ
ートである。
【図46】 ROM読み出しタイミング信号RDROMZ及び E
PROMの書き込みタイミング信号PGMEM を生成する回路の
構成を示す回路図である。
【図47】 図39に対応する下位8ビット分の具体的
な回路構成を示す回路図である。
【図48】 センスアンプの読み出し制御信号RPH, RPL
を生成する回路の構成を示す回路図である。
【図49】 本発明のマイクロコンピュータのサブCPU
のROM からのデータの読み出しのタイミングを示すタイ
ミングチャートである。
【図50】 本発明のマイクロコンピュータのサブCPU
とそのメモリとのチップレイアウトの一例を示す模式図
である。
【図51】 本発明のマイクロコンピュータのサブCPU
とそのメモリとのチップレイアウトの一例を示す模式図
である。
【図52】 従来のマルチCPU システムのプログラムの
メモリへの格納状態を示す模式図である。
【図53】 従来のマルチCPU システムのテストまたは
デバッグ環境を実現する上で必要なマイクロコンピュー
タのプログラム実行の動作例を示す模式図である。
【図54】 従来のマルチCPU システムのテストまたは
デバッグ環境を実現する上で必要なマイクロコンピュー
タのプログラム実行の動作例を示す模式図である。
【図55】 従来のマルチCPU システムのテストまたは
デバッグ環境を実現する上で必要なマイクロコンピュー
タのプログラム実行の動作例を示す模式図である。
【図56】 従来の ISP搭載マイクロコンピュータの構
成例を示すブロック図の一部である。
【図57】 従来の ISP搭載マイクロコンピュータの構
成例を示すブロック図の一部である。
【図58】 従来の ISP搭載マイクロコンピュータの構
成例を示すブロック図の一部である。
【図59】 従来の ISP搭載マイクロコンピュータの構
成例を示すブロック図の一部である。
【図60】 従来の ISP搭載マイクロコンピュータの I
SPの構成例を示すブロック図の一部である。
【図61】 従来の ISP搭載マイクロコンピュータの I
SPの構成例を示すブロック図の一部である。
【符号の説明】
1 サブCPU ,レジスタ及び演算部分、2 サブCPU 用
テストRAM 、3 サブCPU 用ROM 、4 サブCPU 用テス
トモード制御レジスタ、5 サブCPU 用プログラムカウ
ンタ、6 ブレークアドレス格納レジスタ、7 ブレー
クベクタ格納レジスタ、8 ブレーク時アドレス退避レ
ジスタ、9 ブレークカウンタ、10 メインCPU バス、
11 サブCPU メモリ,レジスタアクセスバス、12 サブ
CPU メモリ,レジスタアクセスバス、13 サブCPU メモ
リ,レジスタアクセスバス、14サブCPU メモリ,レジス
タアクセスバス、15 サブCPU 全体ブロック、16 ブレ
ークアドレス一致検出回路、17 サブCPU 初期化制御ビ
ット。
───────────────────────────────────────────────────── フロントページの続き (51)Int.Cl.6 識別記号 庁内整理番号 FI 技術表示箇所 G06F 15/16

Claims (12)

    【特許請求の範囲】
  1. 【請求項1】 メインCPU バス(10)を介してメインメモ
    リ領域をアクセス可能な一つのメインCPU(23) と、サブ
    CPU バス(28)を介してサブメモリ領域をアクセス可能な
    少なくとも一つのサブCPU(1)とを備えたマイクロコンピ
    ュータにおいて、 前記メインCPU(23) からアクセス可能な制御レジスタ
    (4) と、 前記制御レジスタ(4) に前記メインCPU(23) が所定の値
    を書き込んだ場合に、前記サブメモリ領域を前記メイン
    CPU バス(10)に接続して前記メインCPU(23) からアクセ
    ス可能に切り換える制御手段とを備えたことを特徴とす
    るマイクロコンピュータ。
  2. 【請求項2】 サブCPU(1)は、 プログラムの次に実行すべき命令のアドレスを発生する
    プログラムカウンタ(5) と、 メインCPU(23) により制御レジスタ(4) に所定の値が書
    き込まれている場合に、前記メインCPU(23) からサブCP
    U(1)にリセットがかけられることによりサブメモリ領域
    のテスト用プログラムの開始アドレスを示すテストリセ
    ットベクタを前記プログラムカウンタ(5) にロードする
    制御手段とを備えたことを特徴とする請求項1に記載の
    マイクロコンピュータ。
  3. 【請求項3】 制御手段は、テストリセットベクタとし
    て予め固定されたハードロジックの出力,サブメモリ領
    域を構成するROM(11) に書き込まれたデータまたは前記
    メインCPU バス(10)からアクセス可能な専用のレジスタ
    (53)に書込まれた値をロードすべくなしてあることを特
    徴とする請求項2に記載のマイクロコンピュータ。
  4. 【請求項4】 メインCPU バス(10)を介してメインメモ
    リ領域をアクセス可能な一つのメインCPU(23) と、 サブCPU バス(28)を介してサブメモリ領域をアクセス可
    能な少なくとも一つのサブCPU(1)と、 外部から動作モードを設定するためのモード設定端子(2
    03) と、 前記メインCPU バス(10)に接続された外部ポートとを備
    え、 前記モード設定端子(203) に外部から所定の信号が与え
    られた場合に、前記メインCPU バス(10)が前記メインCP
    U(23) から切り離されて前記外部ポートから直接アクセ
    ス可能になるマイクロコンピュータにおいて、 少なくとも一つのアドレス制御信号端子(AD16)と、 前記アドレス制御信号端子(AD16)から所定の信号が入力
    されている場合に、前記サブメモリ領域を前記メインCP
    U バス(10)に接続して前記メインCPU(23) からアクセス
    可能に切り換える制御手段とを備えたことを特徴とする
    マイクロコンピュータ。
  5. 【請求項5】 メインメモリ領域及びサブメモリ領域が
    割り当てられる複数の内蔵メモリと、 前記内蔵メモリの記憶内容をメモリ読み出しクロックに
    同期して出力するセンスアンプ(133) と、 前記センスアンプ(133) のビット毎の出力を保持するラ
    ッチ(144) と、 二つのバッファ(134, 135)とを備え、 前記バッファ(134, 135)の出力は、一方がサブCPU バス
    (28)に、他方がメインCPU バス(10)にそれぞれ接続され
    ていることを特徴とする請求項4に記載のマイクロコン
    ピュータ。
  6. 【請求項6】 メインCPU バス(10)を介してメインメモ
    リ領域をアクセス可能な一つのメインCPU(23) と、サブ
    CPU バス(28)を介してプログラム可能なメモリ(11)が割
    り当てられたサブメモリ領域をアクセス可能な少なくと
    も一つのサブCPU(1)とを備え、 通常の動作モード時には、前記両メモリ領域はそれぞれ
    分離・独立していて前記メインメモリ領域は前記メイン
    CPU(23) から、前記サブメモリ領域は前記サブCPU(1)か
    らそれぞれアクセス可能であり、 複数の外部端子からの制御信号をチップ内部で変換して
    通常の動作モードから前記プログラム可能なメモリ(11)
    をアクセスするモードに切り換えることが可能なマイク
    ロコンピュータにおいて、 通常のメインCPU(23) のメモリ空間のアドレスビットに
    加えて少なくとも一つのアドレスビットを入力するため
    のアドレスビット信号端子(AD16)と、 前記アドレス制御信号端子(AD16)に所定の信号が入力さ
    れている場合に、前記プログラム可能なメモリ(11)のメ
    モリ領域を前記メインCPU バス(10)に接続して前記メイ
    ンメモリ領域と連続した同一のメモリ空間として前記メ
    インCPU(23) から一体的にアクセス可能に切り換える制
    御手段とを備えたことを特徴とするマイクロコンピュー
    タ。
  7. 【請求項7】 メインCPU バス(10)を介してメインメモ
    リ領域をアクセス可能な一つのメインCPU(23) と、 プログラムの次に実行すべき命令のアドレスを発生する
    プログラムカウンタ(5) を有し、サブCPU バス(28)を介
    してサブメモリ領域をアクセス可能な少なくとも一つの
    サブCPU(1)とを備えたマイクロコンピュータにおいて、 実行中のプログラムを予め定められたアドレスでブレー
    クして他のプログラムを実行するためのブレークアドレ
    スを記憶するブレークアドレスレジスタ(6) と、 前記サブCPU(1)のプログラムカウンタ(5) の値とブレー
    クアドレスレジスタ(6) の値とを常時比較して一致検出
    する比較手段(16)と、 前記比較手段(16)が一致検出した場合にブレーク割り込
    みを発生することにより、前記他のプログラムの開始ア
    ドレスであるブレークベクタを前記プログラムカウンタ
    (5) にロードしてプログラムを分岐させる制御手段とを
    備えたことを特徴とするマイクロコンピュータ。
  8. 【請求項8】 ブレークアドレスレジスタ(6) は、メイ
    ンCPU バス(10)を介してメインCPU(23) からアクセス可
    能であり、またブレークベクタとして予め固定したハー
    ドロジックの出力,前記サブメモリ領域を構成するROM
    (11) に書き込まれたデータまたは専用のレジスタ(7)
    に記憶された値を前記プログラムカウンタ(5) にロード
    する制御手段を備えたことを特徴とする請求項7に記載
    のマイクロコンピュータ。
  9. 【請求項9】 比較手段(16)が一致検出した場合にその
    回数をカウントダウンする計数手段(9) と、 前記計数手段(9) の計数値が所定値に達した場合に、ブ
    レーク割り込みを発生する制御手段とを備えたことを特
    徴とする請求項7に記載のマイクロコンピュータ。
  10. 【請求項10】 メインCPU バス(10)を介してメインメ
    モリ領域をアクセス可能な一つのメインCPU(23) と、サ
    ブCPU バス(28)を介してサブメモリ領域をアクセス可能
    な少なくとも一つのサブCPU(1)とを備えたマイクロコン
    ピュータにおいて、 前記サブCPU(1)は、プログラムの実行を停止するSTOP命
    令を実行することが可能であり、 前記メインCPU(23) から読み出し可能であり、前記サブ
    CPU(1)による前記STOP命令の実行に際して、プログラム
    実行が停止状態になった場合に所定の値を記憶する記憶
    手段(SEQSTP)を備えたことを特徴とするマイクロコンピ
    ュータ。
  11. 【請求項11】 サブCPU(1)がプログラム実行の停止状
    態にある場合に、メインCPU(23) は、前記サブCPU(1)の
    プログラム実行の停止状態を解除すると共にプログラム
    実行を停止した時点の元のルーチンに復帰する命令を実
    行可能なことを特徴とする請求項10に記載のマイクロ
    コンピュータ。
  12. 【請求項12】 メインCPU バス(10)を介してメインメ
    モリ領域をアクセス可能な一つのメインCPU(23) と、サ
    ブCPU バス(28)を介してサブメモリ領域をアクセス可能
    な少なくとも一つのサブCPU(1)とを備えたマイクロコン
    ピュータにおいて、 前記サブメモリ領域のプログラムメモリ領域が RAMで構
    成されており、 前記メインCPU バス(10)に接続された専用の端子と、 前記メインメモリ領域に割り当てられているROM(24) に
    代えて外部の専用のエミュレータコントローラから前記
    専用の端子を介して前記サブメモリ領域のプログラムメ
    モリ領域にプログラムの供給を実時間で行なう手段とを
    備えたことを特徴とするマイクロコンピュータ。
JP6105768A 1993-05-31 1994-05-19 マイクロコンピュータ Pending JPH0798692A (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP6105768A JPH0798692A (ja) 1993-05-31 1994-05-19 マイクロコンピュータ
DE4418892A DE4418892C2 (de) 1993-05-31 1994-05-30 Mikrocomputer
US08/251,556 US5566303A (en) 1993-05-31 1994-05-31 Microcomputer with multiple CPU'S on a single chip with provision for testing and emulation of sub CPU's

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP12888893 1993-05-31
JP5-128888 1993-05-31
JP6105768A JPH0798692A (ja) 1993-05-31 1994-05-19 マイクロコンピュータ

Publications (1)

Publication Number Publication Date
JPH0798692A true JPH0798692A (ja) 1995-04-11

Family

ID=26446005

Family Applications (1)

Application Number Title Priority Date Filing Date
JP6105768A Pending JPH0798692A (ja) 1993-05-31 1994-05-19 マイクロコンピュータ

Country Status (3)

Country Link
US (1) US5566303A (ja)
JP (1) JPH0798692A (ja)
DE (1) DE4418892C2 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006302162A (ja) * 2005-04-25 2006-11-02 Fujitsu Ltd マルチプロセッサシステム

Families Citing this family (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2727976B2 (ja) * 1994-09-12 1998-03-18 日本電気株式会社 インサーキットエミュレータ
JPH08272625A (ja) * 1995-03-29 1996-10-18 Toshiba Corp マルチプログラム実行制御装置及び方法
US5987587A (en) * 1997-06-06 1999-11-16 International Business Machines Corporation Single chip multiprocessor with shared execution units
US6618775B1 (en) * 1997-08-15 2003-09-09 Micron Technology, Inc. DSP bus monitoring apparatus and method
US6356960B1 (en) 1997-10-29 2002-03-12 Sgs-Thomson Microelectronics Limited Microprocessor having an on-chip CPU fetching a debugging routine from a memory in an external debugging device in response to a control signal received through a debugging port
DE19835610A1 (de) * 1998-08-06 2000-02-10 Siemens Ag Programmgesteuerte Einheit und Verfahren zum Debuggen derselben
US6934937B1 (en) * 2000-03-30 2005-08-23 Broadcom Corporation Multi-channel, multi-service debug on a pipelined CPU architecture
JP4212224B2 (ja) * 2000-07-10 2009-01-21 株式会社東芝 半導体集積回路
JP2003196117A (ja) * 2001-12-26 2003-07-11 Toshiba Corp マイクロプロセッサ
EP1349071A1 (en) * 2002-03-29 2003-10-01 STMicroelectronics N.V. Integrated circuit with direct debugging architecture
US20040093536A1 (en) * 2002-11-12 2004-05-13 Weller Christopher Todd System and method for providing coherency during the evaluation of a multiprocessor system
US7574585B1 (en) * 2003-01-31 2009-08-11 Zilog, Inc. Implementing software breakpoints and debugger therefor
US7424659B2 (en) * 2003-10-31 2008-09-09 Sandisk Il Ltd. System-in-package and method of testing thereof
US7730368B2 (en) 2003-10-31 2010-06-01 Sandisk Il Ltd. Method, system and computer-readable code for testing of flash memory
JP4232621B2 (ja) * 2003-12-08 2009-03-04 株式会社デンソー 半導体集積回路装置
CN100369010C (zh) * 2005-04-01 2008-02-13 北京同方微电子有限公司 一种用于智能卡仿真调试系统的硬件断点电路
KR20070074232A (ko) * 2006-01-09 2007-07-12 삼성전자주식회사 램 영역과 롬 영역을 동시에 가지는 반도체 메모리 장치
US7533315B2 (en) * 2006-03-06 2009-05-12 Mediatek Inc. Integrated circuit with scan-based debugging and debugging method thereof
KR20160056196A (ko) * 2014-11-11 2016-05-19 삼성전자주식회사 검사장치 및 그 제어방법
CN105045647B (zh) * 2014-12-09 2020-08-04 北京中电华大电子设计有限责任公司 一种支持nvm快速页编程的仿真器
JP6502538B1 (ja) * 2018-01-24 2019-04-17 ウィンボンド エレクトロニクス コーポレーション 半導体記憶装置および解析システム
CN115220978B (zh) * 2022-09-19 2023-02-03 瀚博半导体(上海)有限公司 包括在线调试模式的芯片启动方法和装置、芯片和设备

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4296467A (en) * 1978-07-03 1981-10-20 Honeywell Information Systems Inc. Rotating chip selection technique and apparatus
JPS59178685A (ja) * 1983-03-30 1984-10-09 Toshiba Corp 半導体記憶回路
US4680701A (en) * 1984-04-11 1987-07-14 Texas Instruments Incorporated Asynchronous high speed processor having high speed memories with domino circuits contained therein
US4799144A (en) * 1984-10-12 1989-01-17 Alcatel Usa, Corp. Multi-function communication board for expanding the versatility of a computer
US4698750A (en) * 1984-12-27 1987-10-06 Motorola, Inc. Security for integrated circuit microcomputer with EEPROM
US4796099A (en) * 1986-04-24 1989-01-03 Eastman Kodak Company Video still player with internal capability for executing externally-generated viewing programs
US5032983A (en) * 1987-04-10 1991-07-16 Tandem Computers Incorporated Entry point mapping and skipping method and apparatus
US4868822A (en) * 1988-02-19 1989-09-19 John Fluke Mfg. Co., Inc. Memory emulation method and system for testing and troubleshooting microprocessor-based electronic systems
US5121498A (en) * 1988-05-11 1992-06-09 Massachusetts Institute Of Technology Translator for translating source code for selective unrolling of loops in the source code
US5287515A (en) * 1988-10-24 1994-02-15 Kabushiki Kaisha Toshiba Cross-software development/maintenance system
US4977494A (en) * 1989-02-17 1990-12-11 Hughes Aircraft Company High speed digital motion controller architecture
US5261095A (en) * 1989-10-11 1993-11-09 Texas Instruments Incorporated Partitioning software in a multiprocessor system
JPH04195481A (ja) * 1990-11-28 1992-07-15 Hitachi Ltd シングルチツプマイクロコンピュータ及び多機能メモリ
JPH06139107A (ja) * 1992-10-30 1994-05-20 Nec Corp ブレイクアドレス検出回路

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006302162A (ja) * 2005-04-25 2006-11-02 Fujitsu Ltd マルチプロセッサシステム
JP4600134B2 (ja) * 2005-04-25 2010-12-15 富士通セミコンダクター株式会社 マルチプロセッサシステム

Also Published As

Publication number Publication date
US5566303A (en) 1996-10-15
DE4418892C2 (de) 1998-04-16
DE4418892A1 (de) 1994-12-01

Similar Documents

Publication Publication Date Title
JPH0798692A (ja) マイクロコンピュータ
US5640542A (en) On-chip in-circuit-emulator memory mapping and breakpoint register modules
US5132971A (en) In-circuit emulator
US5826093A (en) Dual function disk drive integrated circuit for master mode and slave mode operations
JPS61241841A (ja) エミユレ−タ
JPH02287635A (ja) マイクロコンピュータ,マイクロプロセッサおよびコア・プロセッサ集積回路用デバッグ周辺装置
US5768563A (en) System and method for ROM program development
US6611796B1 (en) Method and apparatus for combining memory blocks for in circuit emulation
JPH04229337A (ja) エミュレータ
US7647485B2 (en) Data processing system for debugging utilizing halts in a parallel device
EP0139254A2 (en) Apparatus and method for direct memory to peripheral and peripheral to memory data transfer
US5553301A (en) Programmable sequencher having internal components which are microprocessor read/write interfacable
EP0942371B1 (en) Debugging method for a microcomputer
US4814977A (en) Apparatus and method for direct memory to peripheral and peripheral to memory data transfers
US7237099B2 (en) Multiprocessor system having a plurality of control programs stored in a continuous range of addresses of a common memory and having identification registers each corresponding to a processor and containing data used in deriving a starting address of a CPU-linked interrupt handler program to be executed by the corresponding processor
KR20210080398A (ko) 메모리 내장 자체 테스트 컨트롤러를 이용한 판독 전용 메모리 테스트
JP2002541582A (ja) エミュレータシステム内のユーザメモリを更新する方法およびシステム
JPH0934748A (ja) エミュレーション用マイクロコンピュータ
JPH1040130A (ja) マイクロコンピュータ
JPH0285934A (ja) エミュレータ
JPH0744401A (ja) 論理集積回路およびそのデータ処理システム
JPH07302255A (ja) 半導体集積回路装置およびそのエミュレーション用プロセッサならびにエミュレータ
JPH09106359A (ja) 半導体集積回路
JP2003296130A (ja) マイクロコンピュータ
JP3006487B2 (ja) エミュレーション装置