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

マイクロコンピュータ

Info

Publication number
JP2001109708A
JP2001109708A JP29181299A JP29181299A JP2001109708A JP 2001109708 A JP2001109708 A JP 2001109708A JP 29181299 A JP29181299 A JP 29181299A JP 29181299 A JP29181299 A JP 29181299A JP 2001109708 A JP2001109708 A JP 2001109708A
Authority
JP
Japan
Prior art keywords
bus
cpu
data processing
processing device
data
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.)
Withdrawn
Application number
JP29181299A
Other languages
English (en)
Inventor
Naomiki Mitsuishi
直幹 三ッ石
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.)
Hitachi Ltd
Original Assignee
Hitachi 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 Hitachi Ltd filed Critical Hitachi Ltd
Priority to JP29181299A priority Critical patent/JP2001109708A/ja
Publication of JP2001109708A publication Critical patent/JP2001109708A/ja
Withdrawn legal-status Critical Current

Links

Landscapes

  • Memory System (AREA)
  • Test And Diagnosis Of Digital Computers (AREA)
  • Bus Control (AREA)
  • Microcomputers (AREA)

Abstract

(57)【要約】 【課題】 多数の割込によるデータ転送等のデータ処理
を可能とし、使い勝手を向上し、かつ処理効率を向上し
た、マイクロコンピュータを提供する。 【解決手段】 第1のCPU(1)の他に、プログラム
用のバスとデータ用のバスを別に持つ第2のCPU
(2)を設け、第1がCPUの使用するバス(IDB,
IAB)と第2のCPUが命令をリードするバス(DT
AB,DTDB)を分離し、第1のCPUのバス使用と
第2のCPUの命令リードを並列可能にする。第2のC
PUがデータをリード/ライトするバス(IDB,IA
B)は、第1のCPUと共通にする。例えば、データ転
送制御処理を第2のCPUの処理とし、その処理を割込
で要求可能にし、その処理内容をプログラム化してメモ
リに格納しておくことにより、プログラムで決定できる
任意のデータ転送制御処理を実現でき、転送チャネル数
の制約もなくすことが可能になる。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、マイクロコンピュ
ータ更には半導体集積回路装置にかかり、例えば、機器
組み込み制御用途のマイクロコンピュータに利用して有
効な技術に関するものである。
【0002】
【従来の技術】シングルチップマイクロコンピュータ
は、昭和59年11月30日オーム社発行の『LSIハ
ンドブック』P540およびP541に記載されるよう
に、中央処理装置(CPU)を中心にしてプログラム保
持用のROM(リードオンリメモリ)、データ保持用の
RAM(ランダムアクセスメモリ)、およびデータの入
出力を行なうための入出力回路などの機能ブロックが一
つの半導体基板上に形成されて成る。
【0003】マイクロコンピュータは、各種機器の制御
システムに用いられ、この場合、制御システムのイベン
トに呼応して、所要の動作を行う。制御システムの精度
や効率を向上するために、前記イベントの発生から、前
記マイクロコンピュータの所要の動作までの時間を短縮
することが望まれている。
【0004】これに対応するため、マイクロコンピュー
タの高速化が図られるとともに、固定的な動作について
は、CPU以外の機能ブロックに負担させることが行わ
せている。例えば、シリアルコミュニケーションインタ
フェースは、外部から入力されるクロックとデータ入力
とを監視して、所定の入力信号変化に呼応して、データ
の取込みを開始する。これを随時パラレル変換して、所
定のデータ量の取込みが完了すると、割込要求などによ
って、CPUに処理を要求する。
【0005】この割込要求時などに、CPUに代って、
所定のデータ転送を行うために、ダイレクトメモリアク
セスコントローラ(DMAC)やデータトランスファコ
ントローラ(DTC)が設けられている場合があり、マ
イクロコンピュータには種々の工夫がなされている。
【0006】例えば、特開平5−307516号公報に
は、ダイレクトメモリアクセスコントローラ(DMA
C)を内蔵したマイクロコンピュータの記載がある。
【0007】また、データトランスファコントローラ
(DTC)を内蔵したマイクロコンピュータも市場に提
供されている。
【0008】更に、特開平7―302255号公報に
は、第1のCPUの他に第2のCPUを設けてデータ転
送制御を行なうマイクロコンピュータの記載がある。
【0009】
【発明が解決しようとする課題】前記特開平5−307
516号公報に記載されたDMACは、割込要求によっ
て起動でき、リピートモード、ブロック転送モードなど
を行なうことができ、ステッピングモータの制御やプリ
ンタの印字データ制御に好適である。例えば、最大8チ
ャネルの転送を行なうことができる。DMACの転送は
CPUと独立しているために、データ転送に必要なサイ
クル数のみCPUを停止するのみでよく、CPUは実行
中の処理を継続できる。例えば、バイトデータの転送、
転送元・転送先アドレスをインクリメントする場合、前
記の例では、デッドサイクル1ステートを含めて、デー
タ転送6ステートである。
【0010】しかしながら、かかるDMACは、転送元
アドレス、転送先アドレス、転送カウンタ、制御レジス
タを各チャネルに持つために、多数のチャネルのデータ
転送を行なおうとすれば、前記レジスタを多数組み設け
ねばならず、DMACの、ひいては、半導体集積回路装
置全体の、論理的・物理的規模を増大させてしまう。さ
らに、規模の増大は製造費用を増大させてしまう。した
がって、マイクロコンピュータの内蔵DMACにより割
込要因の全て、あるいは大多数のデータ転送を行なうこ
とは困難である。
【0011】一方、前記DTC内蔵マイコンとは、DM
ACの前記転送元アドレスレジスタなどのレジスタを、
記憶密度が高い汎用のRAM上に配置し、論理的・物理
的規模の増大を防いだデータトランスファコントローラ
(DTC)を内蔵したマイクロコンピュータの記載があ
る。これに記載のDTCでは、実質的に全ての割込要因
によって、データ転送を行なうことができる。
【0012】しかしながら、転送情報を保持するレジス
タを汎用のRAM上に配置したために、データ転送に先
立って、かかるレジスタをDTCに読み込み、この読み
込んだ内容に従って、データ転送を行ない、さらにデー
タ転送によって更新されたレジスタ情報をRAMに退避
する必要がある。この期間はCPUを停止しなければな
らず、データ転送に比較して、大きな時間をレジスタの
読み込み・退避に費やしてしまう。このため、マイクロ
コンピュータまたは半導体集積回路装置全体の処理効率
を向上することが充分ではない。例えば、バイトデータ
の転送、転送元・転送先アドレスをインクリメントする
場合、前記の例では、データ転送5ステートに対して、
レジスタの読み込み・退避に30ステートを要し、合計
35ステートの期間CPUは停止することになる。
【0013】また、DMACあるいはDTCの動作の制
御は、制御レジスタの制御ビットの内容によって指定さ
れるものであり、転送モードや起動要因を選択できるの
みである。制御ビットのビット数を増やせば、転送デー
タの加算(チェックサム)や、パリティ計算などを行な
うことも可能であるが、使用者毎に固有の処理を行なわ
せることは困難である。また、多様な処理を実現しよう
とすれば、これを制御する回路の論理的・物理的規模が
増加してしまう。
【0014】当然、CPUを利用して、データ転送に付
随する、使用者毎の固有の処理を行なうことができる。
例えば、割込が発生したときに、主たる処理を中断し
て、所望の処理を行なうものである。しかしながら、C
PUが行なうべき主たる処理を中断しなければならなく
なってしまい、また、CPUの内部状態の退避・復帰を
行なわなければならないために、オーバヘッドが発生
し、マイクロコンピュータ全体の処理性能を向上するこ
とができなくなってしまう。
【0015】また、特開平7―302255号公報に
は、データ転送を第2のCPUの処理とし、転送処理内
容をプログラムとして記憶密度の高いROMに設け、任
意の転送処理を実現し、物理的規模を縮小し、転送チャ
ネル数の制約をなくし、或は、マイクロコンピュータの
製造費用を削減し、更に、第1、第2のCPUを同時に
動作可能にすることにより、マイクロコンピュータ全体
の処理速度を向上させることが記載されている。
【0016】前記第2のCPUは、第1のCPUのバス
にアクセスできないようになっている。このため、第1
のCPUのアドレス空間の全てをリード/ライトするこ
とはできず、その処理に制約がある。また、前記特開平
7―302255号公報には外部バスのアクセスについ
ては言及されていない。第1及び第2のCPUのそれぞ
れに、ROM、RAMが接続され、それぞれにバス制御
が必要であるから、論理的・物理的規模が比較的大きく
なり易いとうことが本発明者によって見出された。
【0017】本発明の目的は、多数の割込によるデータ
転送若しくはデータ処理或いは使用者毎の固有の処理を
可能とし、使い勝手を向上し、かつ処理効率を向上し
た、マイクロコンピュータ、更には半導体集積回路装置
を提供することにある。
【0018】本発明は更に、そのようなマイクロコンピ
ュータ若しくは半導体集積回路装置の論理的・物理的規
模の増加を抑止することになる。
【0019】本発明の別の目的は、多数の割込によるデ
ータ転送若しくはデータ処理或いは使用者毎の固有の処
理を可能とし、使い勝手を向上し、かつ処理効率を向上
した、マイクロコンピュータの開発効率を向上すること
にある。
【0020】本発明の前記並びにその他の目的と新規な
特徴は本明細書の記述及び添付図面から明らかになるで
あろう。
【0021】
【課題を解決するための手段】本願において開示される
発明のうち代表的なものの概要を簡単に説明すれば下記
の通りである。
【0022】すなわち、第1のCPUの他に、プログラ
ム用のバスとデータ用のバスを別に持つ(ハーバードア
ーキテクチャの)第2のCPUを設け、第1のCPUが
使用するバスと第2のCPUが命令をリードするバスを
分離し、第1のCPUのバス使用と第2のCPUの命令
リードを並列的に行なえるようにする。
【0023】更に、前記第2のCPUのデータをリード
/ライトするバスは、第1のCPUと共通、若しくは接
続可能にする。
【0024】前記第2のCPUのプログラムメモリは、
第1のCPUによって、書込み可能にするとよい。ま
た、前記第2のCPUのプログラムは、第1のCPUの
開発環境上で作成可能にするとよい。
【0025】また、割込要因の内、第1の要因は第1の
CPUに、第2の要因は第2のCPUに要求可能にする
ものである。第2のCPUのレジスタの設定によって、
第1のCPUに割込を要求可能にするとよい。
【0026】上記によれば、データ転送制御処理などを
第2のCPUの処理とし、データ転送要求のための割込
を個別に第2のCPUに要求可能にするとともに、デー
タ転送制御処理内容をプログラム化してメモリに格納し
ておくことにより、任意のデータ転送制御処理を実現で
き、プログラムによってデータ制御処理内容に自由度を
持たせることができる。転送チャネル数の制約もなくす
ことが可能になる。
【0027】前記第1のCPUが使用するバスと第2の
CPUが命令をリードするバスとを分離しているから、
データ転送制御処理プログラムのリードは、第1のCP
Uのバス使用を制約せず、これによって、第1のCPU
の処理性能を低下させることがない。
【0028】第2のCPUのデータをリード/ライトす
るバスは、第1のCPUと共通、若しくは接続可能にさ
れることにより、第1のCPU即ちマイクロコンピュー
タのアドレス空間に対して、データ転送制御を行うこと
ができる。第1のCPUのバスと、第2のCPUがデー
タをリード/ライトするバスとを共通のバスコントロー
ラによって制御することによって、論理規模の増加を抑
止できる。
【0029】第2のCPUのプログラムメモリとして、
ROM若しくはRAMなどの1つのメモリを専用に利用
可能にすることによって、マイクロコンピュータ若しく
は半導体集積回路装置の論理規模の増加を抑止できる。
【0030】第2のCPUのプログラムメモリをRAM
や電気的に書き込み可能PROM(例えばフラッシュメ
モリ、EEPROM、EPROM)等とし、第1のCP
Uによって、書込み可能にすることによって、システム
に固有のデータ処理を容易に実現し、使い勝手を向上す
るとともに、デバック効率を向上したりすることができ
る。第1及び第2のCPUのプログラムメモリを、PR
OM(フラッシュメモリ)とし、一連の処理で書込み可
能にすることによって、使い勝手を向上するとともに、
デバック効率を向上したりすることができる。
【0031】第2のCPUのプログラムは、第1のCP
Uの開発環境で作成可能にすることにより、開発効率を
向上することができる。制御レジスタなどを設定するの
に比較して、データ制御処理内容の自由度を高くして、
プログラム作成効率を向上することができる。開発環境
を共通にして、使用者の不所望な出費を抑止できる。
【0032】エミュレーション用プロセッサにおいて
は、第1のCPUのバス状態を表示するとともに、第1
及び第2のCPUの何れがバスを使用しているかを表示
することによって、デバック効率を向上できる。第2の
CPUのプログラム用のバスのアドレス情報を表示する
ことによって、第2のCPUのデバックを可能にするこ
とができる。
【0033】
【発明の実施の形態】図1には本発明に係るマイクロコ
ンピュータの一例が示される。同図に示されるマイクロ
コンピュータMCUは、例えばCMOS集積回路製造技
術によって単結晶シリコンなどの1個の半導体チップに
形成されている。
【0034】前記マイクロコンピュータMCUは、第1
のCPU(中央処理装置)1、第2のCPU2、リード
・オンリ・メモリ(ROM)3、ランダム・アクセス・
メモリ(RAM)4、RAMユニット(RAMD)5、
タイマ6、パルス出力回路7、シリアルコミュニケーシ
ョンインタフェース(SCI)8、A/D変換器(A/
D)9、入出力ポート(IOP[1]〜IOP[5])
11〜15、入出力ポート(IOP[A]〜IOP
[F])16〜21、割込コントローラ22、バスコン
トローラ23、クロック発振器(CPG)24の機能ブ
ロック(若しくはモジュール)から構成される。これら
の機能ブロックは、内部バスによって相互に接続され
る。内部バスとして、Iバス(IDB,IAB)、Pバ
ス(PDB,PAB)、Dバス(DTDB,DTAB)
が図示されている。IDB,PDB,DTDBは内部デ
ータバス、IAB,PAB,DTABは内部アドレスバ
スである。その他に、各Iバス、Pバス、Dバスには、
バスコマンド、リード信号・ライト信号・バスサイズ信
号或いはシステムクロック等の信号線が含まれている。
【0035】前記内部データバスIDB,PDB,DT
DBは16ビット構成である。第1のCPU1、第2の
CPU2の命令は16ビット単位の命令である。
【0036】前記バスコントローラ23は、内部バスコ
ントローラ(内部調停論理)、外部バスコントローラ
(外部調停論理)、及びリフレッシュタイマなどを持
つ。前記Iバス(IAB、IDB)、Pバス(PAB、
PDB)はバスコントローラ23によって相互にインタ
フェースされる。前記Pバス(PAB、PDB)はバス
コントローラ23、タイマ6、パルス出力回路7、SC
I8、A/D変換器9、割込コントローラ22、IOP
[1]11〜IOP[5]15、IOP[A]16〜I
OP[F]21に接続される。前記第1のCPU1又は
第2のCPU2の何れか一方がIバスを使用し、そのア
クセスアドレスが内部I/Oであれば、Pバスを使用し
て、前記の機能ブロック若しくはモジュールをリード/
ライトできる。
【0037】割込コントローラ22は、タイマ6、SC
I8、入出力ポートIOP[5]の出力する割込信号を
入力し、第1のCPU1又は第2のCPU2に割込要求
信号とベクタ番号を出力する。
【0038】入出力ポートは、外部バス信号、入出力回
路(タイマ6、パルス出力回路7、SCI8、A/D変
換器9など)の入出力信号と兼用とされている。IOP
[A]16〜IOP[C]18はアドレスバス出力、I
OP[D]19、IOP[E]20はデータバス入出
力、IOP[F]21はバス制御信号入出力信号と兼用
されている。外部アドレス、外部データは、それぞれ、
これらの入出力ポートに含まれるバッファ回路を介して
IバスIAB、IDBと接続されている。PバスPA
B、PDBは入出力ポートのレジスタをリード/ライト
するために使用し、外部バスとは直接の関係はない。バ
ス制御信号出力は、アドレスストローブ、ハイ/ロウデ
ータストローブ、リードストローブ、ライトストロー
ブ、外部バスアクノリッジ信号などがある。バス制御入
力信号にはウェイト信号、外部バスリクエスト信号など
がある。これらの入出力信号の図示は省略してある。外
部バス拡張を行うことは、動作モードなどで選択され、
これらの入出力ポートの機能も選択される。
【0039】また、IOP[1]11はタイマ入出力、
IOP[2]12はパルス出力、IOP[3]13はS
CI入出力、IOP[4]14はアナログ入力、IOP
[5]15は外部割込要求(IRQ)入力とデータアク
ノレッジ信号(DACK0〜3)と兼用されている。タ
イマ6、SCI8、A/D変換器9とIOP[1]1
1、IOP[2]12、IOP[3]13との入出力信
号などは図示を省略してある。
【0040】その他にマイクロコンピュータMCUは、
電源端子Vcc、回路の接地端子Vss、アナログ電源
端子AVcc、アナログ接地端子AVss、リセット信
号RES、スタンバイ信号STBY、マスク不可能な割
込信号NMI、クロック入力EXTAL、XTAL、動
作モード信号MD0〜MD2等の入力端子がある。パル
ス出力回路7は、タイマ6から与えられるトリガ信号に
したがって、図示を省略するレジスタ(NDR)に保持
した内容をIOP[2]12と兼用の端子から出力す
る。
【0041】図2にはマイクロコンピュータMCUのア
ドレスマップが示される。マイクロコンピュータMCU
のアドレス空間は、特に制限されないが、16Mバイト
であり、1バイト毎にアドレスが割り当てられている。
【0042】RAMD5以外の各機能ブロックは、接続
するバスに拘らず、第1のCPU1のアドレス空間上
で、固有のアドレスを有する。なお、図2においてI/
O(データ入出力手段)は、図1のタイマ6、パルス出
力回路7、SCI8、A/D変換器9、入出力ポート1
1〜21、及び割込コントローラ22の内部I/Oレジ
スタ等を総称する。
【0043】ROM3は、特に制限はされないものの、
64kバイトとし、アドレスH’000000〜H’0
0FFFFに割り当てられる。前記RAM4は2kバイ
トとし、アドレスH’FFF400〜H’FFFBFF
に割当てられる。I/OはアドレスH’FFFE00〜
H’FFFFFFに配置されている。なお、H’は16
進数を示す。I/Oには、RAMD5の制御を行う、R
AMデータレジスタ(RAMDRH、RAMDRL)、
RAMアドレスレジスタ(RAMARH、RAMAR
L)を含む。これ以外のアドレスは、外部アドレス空間
とされる。
【0044】外部アドレス空間には、随時、プログラム
格納用のROM、データ用のDRAMや、そのほかの回
路(ASIC)などが接続される。外部アドレス空間
は、2MB単位の8個のエリア0〜7に分割され、バス
コントローラ23には夫々のエリアのバス仕様が設定可
能にされ、エリア選択信号を出力できるようになってお
り、それぞれのエリアに、異なるメモリを容易に接続で
きる。また、エリア2〜5は、DRAM空間とすること
ができ、DRAMをアクセスするためのアドレスマルチ
プレクスや、高速ページモードを実行できるDRAMイ
ンタフェースを選択できる。かかるバス制御はバスコン
トローラ23によって行われる。
【0045】前記第2のCPU2はデータ用、プログラ
ム用それぞれ16Mバイトのアドレス空間を持つ。デー
タ用アドレス空間はCPU1と共通である。一方、プロ
グラム用のアドレス空間は、RAMD5のみで、特に制
限はされないものの、2kバイトとされ、アドレスH’
000000〜H’0007FFに配置されている。第
2のCPU2は、それ以外のプログラム用アドレス空間
を実質的に使用できない。
【0046】図3には前記第2のCPU2のブロック図
が示される。プログラム用のバスとデータ用のバスを独
立に持つ他のCPU1と同様の構成とすることができ
る。その構成を共通にすることによって開発効率を向上
できる。命令セットやプログラミングモデル(レジスタ
構成)を互換ないし類似のものとすることによってプロ
グラミング効率も向上できる。
【0047】第2のCPU2は、制御部20と実行部2
1から構成される。制御部20は、命令レジスタIR、
命令デコーダCONT、レジスタセレクタRSELを含
む。
【0048】命令デコーダCONTは、例えば、マイク
ロROM或はPLA(Programmable Lo
gic Array)または布線論理で構成される。命
令デコーダCONTの出力の一部が命令デコーダCON
Tにフィードバックされている。レジスタセレクタRS
ELは、命令デコーダの指示と、命令コード中に含まれ
るレジスタフィールドの情報に基づいて、汎用レジスタ
ER0〜ER7を選択する。
【0049】実行部21は、前記汎用レジスタER0〜
ER7、プログラムカウンタPC、コンディションコー
ドレジスタCCR、バスコントロールレジスタBCRを
含み、更に、算術論理演算器ALU、インクリメンタI
NC、データアクセス用のリードデータバッファDB
R、ライトデータバッファDBW、アドレスバッファD
AB、プログラムアクセス用のイミディエイトデータバ
ッファDBI、データアドレスバッファCABを含む。
これらのブロックはGBバス、DBバス、WBバスによ
って相互に接続されている。
【0050】また、図示はさないものの、実行部21の
各部は32ビット構成であり、汎用レジスタの分割部分
E(16ビット)、H(8ビット)、L(8ビット)に
対応させて夫々16ビット、8ビット、8ビットの構成
に分割されている。
【0051】汎用レジスタER0〜ER7、プログラム
カウンタPC、コンディションコードレジスタCCR、
バスコントロールレジスタBCR以外は、プログラミン
グ上は参照できず、マイクロコンピュータMCUの内部
の動作にのみ用いられる。即ち、リードデータバッファ
DBR、ライトデータバッファDBW、アドレスバッフ
ァDABなどは、内部バスIDB、IABとのインタフ
ェースを採るために、一時的にデータをラッチする。
【0052】アドレスバッファDABは、CPU2がリ
ード/ライトするアドレスを一時的に格納する他、格納
した内容に対するインクリメント機能を有している。イ
ンクリメント機能を有するアドレスバッファは特開平4
−333153号公報などに記載されている。
【0053】算術論理演算器ALUは、命令によって指
定される各種の演算や実効アドレスの計算などに用いら
れる。インクリメンタINCは、プログラムカウンタP
Cの加算に用いられる。
【0054】バスコントロールレジスタBCRは、バス
制御の指定を行なう。例えば、ビット7はデータアクセ
ス後のバス権移譲を禁止することができる。ビット4は
アクノレッジ信号出力を許可することができる。これ
は、外部バスアクセス時に有効で、いわゆるシングルア
ドレス転送を行なう。ビット3〜0はデータアクノレッ
ジ信号(DACK0〜DACK3)を指定する。バスコ
ントロールレジスタBCRは、専用の操作命令(LDC
#xx,BCR)によって、WBバスからライト可能
である。バスコントロールレジスタBCRは、1回のデ
ータ転送を行なうと、命令デコーダCONTの出力する
制御信号によって初期化(クリア)される。従って、同
一の転送命令MOV.B Rs,@aa:16であって
も、バスコントロールレジスタBCRによって、データ
転送の動作が異なる。例えば、 LDC #80,BCR MOV.B @aa1:16,R0L MOV.B R0L,@aa2:16 の場合は、アドレスaa1のリード後のバス権移譲を禁
止し、アドレスaa2のリードまでバス権を保持する。
また、 LDC #12,BCR MOV.B @aa:16,R0L の場合は、シングルアドレス転送を行い。アドレスaa
へのライト動作とデータアクノレッジ信号1(DACK
1)を出力する。従って、アクノレッジ信号によって、
リード動作を行なう外部デバイスとの間のデータ転送を
行なうことができる。この時、マイクロコンピュータM
CUからは、データ出力は行わないようにされる。
【0055】バス権移譲の禁止やシングルアドレス転送
は、CPU2の出力するバスコマンドによって、バスコ
ントローラ23に対して指示され、バスコントローラ2
3が所要の制御を行う。即ち、バスコントロールレジス
タBCRに設定された値が命令デコーダCONTに供給
され、命令デコーダCONTから出力されるバスコマン
ドによってバス権移譲の禁止やシングルアドレス転送の
指示がバスコントローラ23に与えられる。
【0056】汎用的な命令を組合せることによって、C
PU2が実行可能な命令コードの数を最小限にして、所
望の機能を実現できる。バスコントロールレジスタBC
Rは、CPU2内部に存在するために、CPU1の動作
を制約することなく、設定可能である。データ転送後
に、自動的に初期化するように構成することによって、
再初期化の命令を不要として、命令ステップ数を短縮
し、使い勝手を向上することができる。
【0057】なお、バスコントロールレジスタBCRを
用いず、命令コードで、上記バス権移譲禁止やシングル
アドレス転送を指定することも可能である。
【0058】図4にはRAMD5の一例が示される。R
AMD5は、RAM部50とデータマルチプレクサ5
1、アドレスマルチプレクサ52、及びRAMデータレ
ジスタ(RAMDR)53、RAMアドレスレジスタ
(RAMAR)54を含む。RAMDR53は前記RA
MDRL,RAMDRHに対応され、RAMAR54は
前記RAMARL,RAMARHに対応される。RAM
部50はSRAMのようなメモリによって構成されてい
る。マルチプレクサ51,52の入出力選択状態はRA
MDイネーブルレジスタ信号RAMDEによって制御さ
れる。
【0059】RAMDイネーブルレジスタ信号RAMD
Eがローレベルのとき、マルチプレクサ51,52はR
AM部50を内部バスDTDB,DTABとインタフェ
ース可能に制御する。これにより、内部バスDTABか
らアドレス信号がアドレスマルチプレクサを介してRA
M部50に与えられ、データマルチプレクサ51を介し
て、内部バスDTDBとの間でデータの入出力を行う。
【0060】前記RAMDR53及びRAMAR54は
夫々2バイトの内部I/Oレジスタとされ(I/O空間
に配置され)、PバスPDBを経由してリード/ライト
可能にされる。前記RAMDR53及びRAMAR54
の選択は、特に制限されないが、内部アドレスバスPA
Bのアドレスをデコードしてレジスタ選択信号を形成す
る図示を省略するアドレスデコード回路が行なう。前記
RAMDイネーブルレジスタ信号RAMDEがハイレベ
ルにされているとき、CPU1又はCPU2が内部バス
PDBを経由してRAMARにRAMD5のアドレスを
ライトすると、この内容がアドレスマルチプレクサ52
を介して、RAM部50に与えられ、RAMDR53に
データをライトすると、この内容がデータマルチプレク
サ51を介して、RAM部50に与えられ、これによっ
てRAMD5がライト動作される。好適な例では、ライ
ト動作後、RAMAR54の内容がインクリメント(+
2)されるようにするとよい。
【0061】なお、RAMD5の容量が64kバイト以
上になる場合には、RAMアドレスレジスタ(RAMA
R)54は、その容量に対応するようにビット数を増や
せばよい。また、RAMDイネーブルレジスタ信号RA
MDEをレジスタによって設定する場合は、誤って当該
レジスタの対応ビットが書換えられないように、所定の
コードをライトしないと、イネーブル/ディスエーブル
の状態が切り替らないようにすればよい。
【0062】図5には図1のマイクロコンピュータMC
Uのアドレスバス及びデータバスの接続状態が詳細に示
されている。図5において、30で示される内部I/O
レジスタには、図1のタイマ6、パルス出力回路7、S
CI8、A/D変換器9、入出力ポート11〜21、割
込コントローラ22の各機能ブロックの内部I/Oレジ
スタを含む。CPG24はバスと接続されていないので
図示を省略してある。外部バスバッファ(BUF)31
は、入出力ポート16〜21に含まれるアドレスバッフ
ァ、データバッファ、バス制御信号入出力バッファ、及
びデータアクノレッジ信号出力バッファを総称してい
る。
【0063】図5には、Iバス(IDB,IAB)、D
バス(DTAB,DTDB)、Pバス(PDB,PA
B)、外部バス(ETAB,ETDB)が示されてい
る。Iバスには、第1のCPU1、第2のCPU2、R
OM3、RAM4、外部バスバッファ(BUF)31を
接続し、メモリの高速アクセスを図り、メモリのアクセ
スは1ステートで行われる。
【0064】Pバスには、内部I/Oレジスタ30が接
続される。IバスとPバスを分離することによって、C
PU1のプログラムリードなどで、主として使用するI
バスの負荷を軽減し、高速化を図るとともに、未使用時
のPバスの状態を保持するなどして、低消費電力化を図
ることができる。CPU1,CPU2の他の内部バスマ
スタが、Pバスに接続される内部I/Oレジスタ30を
アクセスする場合は、Iバス及びバスコントローラ23
を経由して行う。内部I/Oレジスタ30のアクセスは
2ステートで行われる。
【0065】Iバス及びPバスはバスコントローラ(B
SC)23でインタフェースされている。また、CPU
2とRAMD5を接続するDバス(DTAB、DTD
B)があり、CPU2は、Dバスをプログラム用(命令
フェッチ用)に、Iバスをデータ用(データアクセス
用)に使用する。更に、好適には、図5に例示されるよ
うに、RAMD5は、プログラムなどの初期設定の便を
考慮して、Pバス経由でリード/ライト可能にされてい
る。
【0066】CPU1がROM3からプログラムをリー
ドする場合、又はRAM4との間でデータをリード/ラ
イトする場合、内部バスIAB、IDBを使用して動作
が行なわれる。この場合、CPU1は内部バスPAB、
PDBを使用しない。
【0067】CPU2がRAMD5からプログラムをリ
ードする場合は、Dバスを使用し、IバスやPバスを使
用しない。即ち、RAMD5に専用のアクセス制御信
号、アドレスバス(DTAB)、データバス(DTD
B)を使用し、また1ステートでリードするから、特
に、バスコントローラ23のような制御論理を必要とせ
ず、論理的規模の増加を抑止できる。Dバスを分離する
ことにより、CPU2が待機状態にあったり、CPU2
がRAMD5からプログラムをリードしても、そのこと
がCPU1の動作を制約しない。
【0068】一方、CPU2がデータのリード/ライト
を行なう場合、内部バスIAB、IDBを使用して動作
が行なわれ、必要に応じて、内部バスPAB、PDBを
使用する。CPU2が、データのリード/ライトを行な
う場合、バス権調停が行なわれる。CPU2によるバス
権要求は、CPU1によるバス権要求より優先される。
バス権調停は、バス権要求信号に応じて、バスコントロ
ーラ23が行なう。バスコントローラ23はバス権アク
ノレッジ信号によってCPU1又はCPU2にバス権を
与える。CPU1又はCPU2は、バス権アクノレッジ
信号が与えられると、バスコマンドとアドレス信号を出
力する。バス権アクノレッジ信号が与えられない場合、
CPU1又はCPU2は待機状態になり、バスコマンド
とアドレスを出力するバスはハイインピーダンス状態に
される。
【0069】バス権調停におけるバス権授受の際にオー
バヘッドを生じないようにタイミング設計が行われてい
る。これらは、CPUとDMAC(またはデータトラン
スファコントローラ)などの複数のバスマスタを内蔵し
たマイクロコンピュータと同様の構成にすればよい。
【0070】前記バスコマンドにはリード要求、ライト
要求、サイズ信号、バス権移譲を禁止する信号、シング
ルアドレス転送を指示する信号等を含む。
【0071】外部バスバッファ(BUF)31は、バス
コントローラ23の制御によって動作する。バスコント
ローラ23は、エリア毎のバス幅、アクセスステート数
の制御、DRAMアクセス時のアドレスマルチプレクス
制御、データアクノレッジ信号(DACK0〜DACK
3)の出力などのシングルアドレス転送の制御などを行
う。また、バスコントローラ23はリフレッシュタイマ
を含み、リフレッシュタイマは一定時間毎にリフレッシ
ュ要求を発生する。例えば、リフレッシュタイマが外部
バス権を獲得すると、DRAMのリフレッシュとして、
CASビフォRASリフレッシュを行う。
【0072】図6には前記割込コントローラ22が示さ
れる。割込要因には内部割込と外部割込の2種類があ
り、それぞれの要因毎の対応ビットを有する割込要因フ
ラグ40を有する。内部割込の要因フラグは、タイマ
6、SCI8、A/D変換器9等の入出力回路が所定の
状態になったとき対応する割込み信号によって対応ビッ
トが“1”にセットされる。外部割込の要因フラグは、
外部割込入力端子が所定のレベルになったとき、又は、
所定の信号変化が発生したとき、対応する割込み信号に
よって対応ビットが“1”にセットされる。割込要因フ
ラグ40は、CPU1又はCPU2のライト動作によっ
て“0”にクリアされる。
【0073】割込要因フラグ40の各ビットの出力は、
割込許可回路41に入力される。割込許可回路41に
は、更に割込許可レジスタ42の割込許可ビットが入力
される。割込許可レジスタ42は、CPU1又はCPU
2からリード/ライト可能なレジスタで、対応する割込
を許可するか、禁止するかを選択する。割込要因フラグ
40の所定ビットが“1”にセットされ、対応する割込
許可ビットが“1”にセットされることによって、割込
が要求される。すなわち、割込許可回路41は、割込要
因フラグ40割込許可レジスタの対応ビット同士を2入
力とする複数個の論理積回路で構成される。
【0074】割込許可回路41の出力は、CPU選択回
路43に入力される。CPU選択回路43には、更に割
り込み選択レジスタ(IRQSEL)44の内容が入力
される。割り込み選択レジスタ44は、割込が要求され
たとき、CPU1又はCPU2の何れに割込を許可する
かを選択する割込み選択ビットを割込み要求毎に有す
る。割り込み選択レジスタ44の対応選択ビットが
“1”にセットされていると、CPU2への割込が要求
される。割り込み選択レジスタ44の対応割込み選択ビ
ットが“0”にクリアされていると、CPU1への割込
が要求される。すなわち、CPU選択回路43は、対応
する割込信号と割り込み選択ビットの論理積回路、及び
割込信号と割り込み選択ビットの反転信号との論理積回
路で構成される。前者の論理積回路の出力がCPU2割
込要求信号45Aとされ、後者の論理積回路の出力がC
PU1割込要求信号45Bとされる。
【0075】CPU選択回路43の出力は、CPU2割
込要求45AとCPU1割込要求45Bとが夫々独立
に、優先順位判定回路47A、47Bに入力される。C
PU1優先順位判定回路47Bには、更にプライオリテ
ィレジスタ48の出力が入力される。プライオリティレ
ジスタ48は割込要因のグループ毎に、例えば、2レベ
ルの優先順位を設定する。
【0076】CPU1割込要求45B、CPU2割込要
求45Aのそれぞれについて優先順位が判定される。判
定の結果、優先順位の最高のものが選択され、ベクタ番
号が生成され、CPU1割込要求又はCPU2割込要求
のそれぞれのベクタ番号が出力される。CPU1割込要
求又はCPU2割込要求、ベクタ番号は優先順位判定回
路47A,47Bを経て、マスクレベル判定回路49
A,49Bに入力される。マスクレベル判定回路49
A,49Bには、更に対応するCPU1割込マスクビッ
ト46B又はCPU2割込マスクビット46Aが入力さ
れる。割込マスクビット46A,46Bは割込マスクレ
ベルを有する。要求された割込がCPUの割込マスクレ
ベル以下であれば、保留される。マスクレベル判定回路
49BからCPU1に対し、CPU1割込要求信号とベ
クタ番号が出力され、マスクレベル判定回路49Aから
CPU2に対し、CPU2割込要求信号とベクタ番号が
出力される。ここでは、CPU1は2ビットのマスクビ
ットを持つが、CPU2は1ビットのマスクビットを持
つものとする。CPU2の割込マスクビットは、CCR
コンディションコードレジスタの所定ビットとし、或い
は、スリープ状態信号の反転信号などとしてもよい。
【0077】マスクレベル判定回路49B,49Aから
出力されるCPU1,CPU2に対するCPU1割込要
求信号、CPU2割込み要求信号が活性状態になると、
当該CPU1又はCPU2は実行中の命令の終了時点
で、割込例外処理を開始し、ベクタ番号に対応するベク
タアドレスから、分岐先アドレスを取り出し、割込処理
ルーチンへ分岐する。CPU1又はCPU2の何れに割
込が要求されるかによらず、ベクタ番号は一定にすると
よい。アドレス空間の大きさに対応して、ベクタアドレ
スは4バイト単位とされる。なお、CPU2のプログラ
ム用アドレス空間を64kバイトとすれば、CPU2の
ベクタアドレスは2バイト単位とすることもできる。
【0078】ノンマスカブル割込信号NMIは、1本の
端子から入力されるが、2つのCPU1,CPU2に同
時に割込を要求できる。対応する割込許可ビットをもた
ない。NMI割込は、マスク不可能な特性上、マイクロ
コンピュータの暴走時などに、CPUの処理を強制的に
停止させるために用いるため、1本のNMI端子によっ
て、CPU1及びCPU2の両方にNMI割込を要求す
ることは都合がよい。少なくとも2本の端子にするのに
比較して、端子1本を節約して、入出力ポートなどとし
て有効に使用することができる。
【0079】また、前記割込要因フラグ40は、CPU
2がライト可能な割込要求ビットを持つ。この割込許可
ビットを“1”にセットすると、CPU1に割込を要求
できる。当該割込要求ビットは、CPU2から“1”に
セットすることが可能であり、CPU1からは“0”に
クリアすることができる。CPU1が“0”にクリアす
る場合は、事前に“1”の状態をリードした後、“0”
をライトする必要がある。
【0080】図7には割込要求ビットと割込許可回路の
詳細な一例が示される。図7の回路は2つのフリップフ
ロップFF1、FF2を有する。フリップフロップFF
1が前記割り込み要求ビットを構成する。クリア端子C
LRにはリセット信号RESETが入力される。セット
端子Sには論理積回路AND1の出力が入力され、リセ
ット端子Rには論理積回路AND3Aの出力が入力され
る。出力端子Qは、割込要求を出力する他、論理積回路
AND2、出力バッファBUFに接続される。論理積回
路AND1は、CPU2のバス権信号、レジスタライト
信号、及び内部データバスの所定のビットが入力され
る。
【0081】なお、レジスタリード/レジスタライト信
号は、リード信号/ライト信号と、アドレスをデコード
してかかるレジスタが選択されたことを示す信号との論
理積で生成される信号とする。例えば、レジスタライト
信号は、CPU2またはCPU1がかかる割り込み要求
ビットのアドレスにライトしたとき、活性状態”1”と
なる。
【0082】フリップフロップFF2は、割り込み要求
ビットの制御を行う。クリア端子CLRにはリセット信
号RESETが入力される。セット端子Sには論理積回
路AND2の出力が入力され、リセット端子Rには論理
積回路AND3の出力が入力される。出力端子Qは、論
理積回路AND3に入力に接続されている。論理積回路
AND2には、フリップフロップFF1の出力、CPU
1のバス権信号、及びレジスタリード信号が入力され
る。論理積回路AND3Aは、フリップフロップFF2
の出力、内部データバスの所定のビットの反転、及び論
理積回路AND3Bの出力が入力される。論理積回路回
路AND3Bは、CPU1のバス権信号、レジスタライ
ト信号が入力される。論理積回路AND4は、フリップ
フロップFF1の出力、及び、図示はされない割込許可
レジスタの所定のビットの出力である割込許可信号を入
力し、出力は割込要求信号とされる。前記割り込み選択
レジスタ44の選択ビットのような選択ビットは設けら
れず、必ず、CPU1に割込要求信号が出力される。
【0083】出力バッファBUFはフリップフロップF
F1の出力をデータとして入力し、レジスタリード信号
をクロック信号として入力する。出力は内部データバス
の所定のビットに結合される。従って、CPU2がかか
る割り込み要求ビットのアドレスに“1”をライトした
とき、論理積回路AND1の出力が“1”となって、フ
リップフロップFF1が“1”にセットされる。割込許
可レジスタの所定のビットが“1”にセットされている
とCPU1に割込が要求される。
【0084】CPU1がこの状態で割り込み要求ビット
のアドレスをリードすると、出力バッファBUFを介し
てデータバスに割り込み要求ビットの内容を出力すると
共に、論理積回路AND2の出力が“1”となって、フ
リップフロップFF2が“1”にセットされる。
【0085】次に、CPU1がバス権を取得して割り込
み要求ビットFF1に“0”をライト(リセット)しよ
うとすると、論理積回路AND3Aの出力が“1”とな
って、フリップフロップFF1及びFF2が“0”にリ
セットされる。
【0086】尚、図示はしないが、CPU1がライト可
能な割込要求ビットを持ってもよい。この割込許可ビッ
トはCPU2からのみライトでき、CPU2に割込を要
求できるようにする。
【0087】図8には低消費電力状態を制御する回路の
一例が示される。低消費電力状態は3個のフリップフロ
ップSLPF1、SLPF2、SSBYFで制御され
る。前記フリップフロップSLPF1は、CPU1がS
LEEP命令を実行すると、セット状態となる。このと
き、CPU1はスリープ状態となる。CPU1に対する
割込要求が発生すると、前記フリップフロップSLPF
1はクリア状態となる。
【0088】フリップフロップSLPF2はCPU2が
SLEEP命令を実行すると、セット状態となる。この
とき、CPU2はスリープ状態となる。CPU2に対す
る割込要求が発生すると、フリップフロップSLPF2
はクリア状態となる。
【0089】フリップフロップSSBYFは、図示はさ
れない制御ビットSSBYを“1”にセットした状態
で、CPU1又はCPU2の何れか一方のCPUがスリ
ープ状態で、他方のCPUがSLEEP命令を実行する
と、セット状態となる。このソフトウェアスタンバイ状
態では、クロック発振器24を始め、全ての機能ブロッ
ク若しくはモジュールの動作が停止する。但し、規定の
電源電圧が与えられている限り、RAM4、RAMD5
の内容は保持される。また、入出力ポートの状態も保持
される。NMI割込要求または所定の外部割込要求が発
生すると、クリア状態となる。なお、内部はリセット状
態となるためNMIと外部割込以外の割込要求は発生し
ない。
【0090】前記ソフトウェアスタンバイ状態に遷移す
るためには、CPU1又はCPU2の何れか一方のCP
Uが、SSBYビットを“1”にセットし、スリープ命
令を実行すればよい。他方のCPUの状態に応じて、直
ちにソフトウェアスタンバイ状態に遷移するか、一旦ス
リープ状態に遷移した後、他方のCPUがスリープ命令
を実行した後にソフトウェアスタンバイ状態に遷移する
かが、自動的に選択される。このため、プログラムを作
成する場合に、相互の動作状態を確認する必要がなく、
プログラムの作成効率を向上することができる。
【0091】割込処理を開始したとき、直前が動作中で
あったか、スリープ状態であったかを示すビットを設け
るとよい。動作中に割込を受け付けた場合には、CPU
2の内部のレジスタの内容を退避しなければならない
が、スリープ中に割込を受け付ければ、CPU2の内部
のレジスタには作業中のデータはないので、退避する必
要がない。退避動作及び処理終了時の復帰動作を行なわ
なければ、その分だけデータ処理を高速化することがで
きる。
【0092】入出力ポートは、CPU1又はCPU2の
何れのCPUからライト可能にするかを選択可能にす
る。例えば、入出力ポートは、データディレクションレ
ジスタ(DDR)、データレジスタ(DR)、ポート制
御レジスタ(PSEL)を含んでいる。DDRは、ライ
ト専用レジスタであり、“0”にクリアされているとき
入力、“1”にセットされているとき出力となる。DR
は、出力データを格納する。DDRを“1”にセットす
ると、DRの内容が出力される。リード時にはDRの内
容または端子の状態が読み出される。即ち、DDRが
“0”にクリアされているとき端子の状態、“1”にセ
ットされているときDRの内容が読み出される。
【0093】ポート制御レジスタ(PSEL)が各入出
力端子の制御をCPU1又はCPU2の何れのCPUで
行なうかを選択する。このポート制御レジスタの制御ビ
ットは、データレジスタ(DR)とデータディレクショ
ンレジスタ(DDR)のビットを共通に制御する。PS
ELが“0”にクリアされているときCPU1によっ
て、“1”にセットされているときCPU2によってラ
イトが行なわれる。
【0094】なお、ポートにプルアップMOSを内蔵し
たり、オープンドレイン出力バッファとしたりする場
合、これらの制御を行なうレジスタも、PSELで共通
に制御すればよい。
【0095】図9には入出力ポートの概略が示される。
DDR、DR、PSELはフリップフロップで構成され
る。いずれも、内部データバスの所定のビットをデータ
入力(D)とし、リセット信号(RESET)をクリア
入力(CLR)としている。DDRの入力クロック
(C)は論理積回路AND1の出力である。出力(Q)
は出力バッファOBUFの制御信号及びセレクタ1の選
択信号とされる。DRの入力クロック(C)は論理積回
路AND2の出力である。出力(Q)は出力バッファO
BUFのデータ入力及びセレクタ1のデータ入力とされ
る。
【0096】PSELの入力クロック(C)はPSEL
ライト信号WRPSELである。出力(Q)はセレクタ
SEL2の選択信号とされる。
【0097】出力バッファOBUFは、制御信号として
DDR出力、データ入力はDR出力とされ、出力信号は
端子Pに接続される。入力バッファIBUFは、入力信
号が端子Pに接続され、出力信号がセレクタ1のデータ
入力とされる。
【0098】セレクタSEL1は、DDR出力を選択信
号、DR出力及び入力バッファIBUF出力をデータ入
力とする。DDR出力が“0”のとき入力バッファIB
UF出力が選択され、DDR出力が“1”のときDR出
力が選択される。セレクタ1の出力はDRリードバッフ
ァに入力とされる。
【0099】セレクタSEL2は、PSEL出力を選択
信号、CPU1/2バス権信号をデータ入力とする。出
力はライト許可信号となる。PSELが“0”のときC
PU1バス権のとき、ライト許可状態となる。PSEL
が“1”のときCPU2バス権のとき、ライト許可状態
となる。
【0100】DRリードバッファDRBUFは、セレク
タ1の出力を入力し、DRリード信号RDDRをクロッ
クとし、出力信号は内部データバスの所定のビットに接
続される。RDDRが活性状態のとき、セレクタ1の出
力を内部データバスに出力する。
【0101】PSELリードバッファPSBUFは、P
SELフリップフロップの出力を入力し、PSELリー
ド信号RDPSELをクロックとし、出力信号は内部デ
ータバスの所定のビットに接続される。RDPSELが
活性状態のとき、PSELフリップフロップの出力を内
部データバスに出力する。
【0102】論理積回路AND1は、ライト許可信号と
DDRライト信号WRDDRを入力とし、出力信号はD
DRの入力クロックとなる。論理積回路AND2は、ラ
イト許可信号とDRライト信号WRDRを入力とし、出
力信号はDRの入力クロックとなる。
【0103】次に、CPU2の動作例として以下のプロ
グラム例について説明する。
【0104】第1に、SCI8の受信データをRAM4
に転送すると共に、受信データのチェックサムを行う例
を示す。チェックサムの結果は、内蔵RAM上に配置し
た作業用アドレスSUMに蓄積するものとする。受信デ
ータ数は内蔵RAM4上に配置した作業用アドレスCN
Tに格納され、受信データを格納するアドレスは、作業
用アドレスDARに格納されているものとする。その
他、及びSCI8の受信データレジスタRDR、ステー
タスレジスタSSR、割込コントローラ22の割込選択
レジスタIRQSELを使用する。なお、命令の表記方
法は、平成7年9月(株)日立製作所発行『H8S/2
655シリーズ ハードウェアマニュアル』に記載され
るCPUと同様とする。
【0105】 PUSH.W R0 (1) PUSH.L ER1 (2) MOV.L @DAR,ER1 (3) MOV.B @RDR,R0L (4) MOV.B R0L,@DAR (5) INC ER1 (6) MOV.L ER1,@DAR (7) MOV.B @SUM,R0H (8) ADD.B R0L,R0H (9) MOV.B R0H,@SUM (10) MOV.B @CNT,R0H (11) DEC.B R0H (12) MOV.B R0H,@CNT (13) BEQ L1 (14) BCLR #RDRF,@SSR (15) BRA L2 (16) L1:BNOT #RXI,@IRQSEL (17) L2:POP.L ER1 (18) POP.W R0 (19) RTE (20) CPU2に受信完了割込RXIが要求され、起動され
る。まず、汎用レジスタR0、ER1をスタックに退避
する(記述1,2)。受信データを格納するアドレスを
作業用アドレスDARからER1にリードする(記述
3)。SCI8の受信データレジスタRDRの内容を汎
用レジスタR0の下位8ビットR0Lにリードする(記
述4)。受信データをDARで得られたアドレスにライ
トする(記述5)。このアドレスをインクリメント(+
1)し(記述6)、元の作業用アドレスに格納する(記
述7)。また、内蔵RAM4上に配置した作業用アドレ
スSUMの内容を汎用レジスタR0の上位8ビットR0
Hにリードする(記述8)。R0HとR0Lの内容を加
算する(記述9)。加算結果をアドレスSUMにライト
する(記述10)。内蔵RAM4上に配置した作業用ア
ドレスCNTの内容を汎用レジスタR0Hにリードする
(記述11)。R0Hの内容をデクリメント(−1)す
る(記述12)。デクリメント結果をアドレスCNTに
ライトする(記述13)。この内容が0であれば、L1
に分岐し(記述14)、割込選択レジスタIRQSEL
のに受信完了割込RXIに対応するビットを反転する
(記述17)。割込要求フラグRDRFが”1”にセッ
トされたままなので、CPU1に受信完了割込RXIが
要求される。汎用レジスタER1、R0をスタックから
復帰し(記述18,19)、割込ルーチンから復帰する
(記述20)。また、前記内容が0でなければ(記述1
4)、割込要求フラグRDRFを”0”にクリアする
(記述15)。分岐命令を実行した(記述16)後、汎
用レジスタER1、R0をスタックから復帰する(記述
18,19)。割込ルーチンから復帰する(記述2
0)。
【0106】ここで、CPU2が行うべき各処理におい
て、汎用レジスタの割当てができていれば、次に示され
るプログラム MOV.B @RDR,R0L (2) MOV.B R0L,@ER2 (5) INC ER2 (6) ADD.B R0L,R1L (9) DEC.B R1H (12) BEQ L1 (14) BCLR #RDRF,@SSR (15) BRA L2 (16) L1:BNOT #RXI,@IRQSEL (17) L2:RTE (20) の通り、汎用レジスタの待避/復帰は不要にし、また、
作業領域SUM、CNT、DARを汎用レジスタに配置
することができる。上記プログラムの処理により、Iバ
スを使用する頻度を低減し、CPU1の動作の制約を少
なくすることができる。起動される頻度の多いプログラ
ムの作業領域は、汎用レジスタ上に配置する様にすると
よい。
【0107】第2の例として、SCI8のマルチプロセ
ッサ受信のアドレス判定を行う場合について説明する。
アドレス判定の結果、受信したアドレスが自身のアドレ
スに一致していれば、受信完了割り込みの要求先をCP
U1に変更するものとする。なお、マルチプロセッサ受
信については、平成7年3月(株)日立製作所発行『H
8S/2655シリーズ ハードウェアマニュアル』な
どに記載されている。
【0108】 PUSH R0 (1) MOV.B @RDR,R0L (2) CMP.B #ID,R0L (3) BEQ L1 (4) BCLR #RDRF,@SSR (5) BRA L2 (6) L1:BNOT #RXI,@IRQSEL (7) L2:POP R0 (8) RTE (9) 上記はCPU2に受信完了割込RXIが要求され、割込
ルーチンに分岐する処理を示す。先ず、汎用レジスタR
0をスタックに退避する(記述1)。SCIの受信デー
タレジスタRDRの内容を汎用レジスタR0の下位8ビ
ットR0Lにリードする(記述2)。この内容を、マル
チプロセッサ受信の自分のIDと比較する(記述3)。
一致していれば、L1に分岐し(記述4)、割込選択レ
ジスタIRQSELの受信完了割込RXIに対応するビ
ットを反転する(記述7)。割込要求フラグRDRF
が”1”にセットされたままなので、CPU1に受信完
了割込RXIが要求される。割込ルーチンから復帰する
(記述8)。また、IDと一致していなければ(記述
4)、割込要求フラグを”0”にクリアする(記述
5)。分岐命令を実行した(記述6)後、汎用レジスタ
R0をスタックから復帰する(記述8)。割込ルーチン
から復帰する(記述9)。
【0109】前記同様に、汎用レジスタの割当てができ
ていれば、第2の例は、次に示されるプログラム、 MOV.B @RDR,R0L (2) CMP.B #ID,R0L (3) BEQ L1 (4) BCLR #RDRF,@SSR (5) BRA L2 (6) L1:BNOT #RXI,@IRQSEL (7) L2:RTE (9) のようにすることができる。上記において、R0H/R
0Lは、ワークレジスタとして使用し、多重割込が発生
しないようにしていれば、各処理で共通に使用できる。
【0110】第3の例として、1本の割込で複数の転送
を行なう場合について説明する。例えば、ステッピング
モータを駆動して、かつ、この加速/減速を行なうこと
ができる。タイマ6のコンペアマッチ割込OCMI毎
に、ポートから出力するデータを更新して、モータを駆
動する。更に、コンペアレジスタの内容を更新して、デ
ータ出力の周期を変更して、加速/減速を行なう。
【0111】この状態の表示に、内蔵RAM4上に配置
した作業用アドレスUPDWの内容を用いる。このビッ
ト6が“0”にクリアされているとき定速動作であり、
“1”にセットされているとき加速または減速、即ち、
ビット7が“0”にクリアされているとき減速、“1”
にセットされているとき加速動作である。初期値はビッ
ト6、7ともに“1”にセットしておく。
【0112】また、パルス出力回路7のネクストデータ
レジスタNDRに次の出力パルスを格納するものとし、
タイマ6の定数レジスタOCRにパルス出力周期を設定
するものとする。タイマカウンタが定数レジスタの値に
一致すると、図示はされないコンペアマッチ信号が発生
し、NDRの内容がIOP[2]12と兼用の端子から
出力される。同時にタイマカウンタの値は0にクリアさ
れる。NDRは4ビットとする。
【0113】 PUSH R0 (1) MOV.B @NDR,R0L (2) ROTL.B R0L (3) BLD #4、R0L (4) BST #0,R0L (5) MOV.B R0L,@NDR (6) CPU2にコンペアマッチ割込OCMIが要求される
と、割込ルーチンに分岐する。まず、汎用レジスタR0
をスタックに退避する(記述1)。ネクストデータレジ
スタNDRの内容を汎用レジスタR0の下位8ビットR
0Lにリードする(記述2)。この内容を回転する(記
述3)。4ビット単位の回転とするために、回転後のビ
ット4をキャリフラグに格納し(記述4)、このキャリ
フラグをビット0に格納する(記述5)。4ビット単位
の回転が終了した結果をNDRに書き込む(記述6)。
この内容が次のコンペアマッチで端子から出力される。
【0114】 BTST #6,@UPDW (7) BEQ L3 (8) MOV.W @OCR,R0 (9) BTST #7,@UPDW (10) BNE L1 (11) SUB.W #CNST,R0 (12) BRA L2 (13) L1:ADD.W #CNST,R0 (14) L2:MOV.W R0,@OCR (15) アドレスUPDWのビット6の内容を検査し(記述
7)、この内容が“0”(定速動作)であれば、L3に
分岐し(記述8)、定数レジスタOCRの内容は保持さ
れる。“0”でなければ、定数データレジスタOCRの
内容を汎用レジスタR0にリードする(記述9)。アド
レスUPDWのビット7の内容を検査し(記述10)、
この内容が“0”(減速動作)であれば、L1に分岐し
(記述11)、“0”でなければ(加速動作)、定数値
CNSTを汎用レジスタR0から減算し(記述12)、
L2に分岐する(記述13)。L1では定数値CNST
を汎用レジスタR0に加算し(記述14)、L3では汎
用レジスタR0の内容を定数レジスタOCRに書き込む
(記述15)。
【0115】 L3:MOV.B @CNT,R0H (16) DEC.B R0H (17) BNE L5 (18) BTST #6,@UPDW (19) BEQ L6 (20) BTST #7,@UPDW (21) BEQ L4 (22) BCLR #6,@UPDW (23) MOV #CNT1,R0H (24) BRA L5 (25) L4:BSET #6,@UPDW (26) BCLR #7,@UPDW (27) MOV #CNT2,R0H (28) L5:MOV.B R0H,@CNT (29) BRA L7 (30) L6:BNOT #OCMI,@IRQSEL (31) L7:POP R0 (33) RTE (32) アドレスCNTの内容を汎用レジスタR0Hにリードす
る(記述16)。この内容R0Hの内容をデクリメント
(−1)する(記述17)。この内容が0でなければ、
L5に分岐し(記述18)、0であれば、アドレスUP
DWのビット6の内容を検査し(記述19)、この内容
が”0”(定速動作)であれば、L6に分岐し(記述2
0)、“0”でなければ、ビット7の内容を検査し(記
述21)、この内容が“0”(減速動作)であれば、L
6に分岐し(記述22)、0でなければ(加速動作)、
アドレスUPDWのビット6を”0”にクリアして、定
速動作に遷移し(記述23)、低速動作の回転数CNT
1をR0Hに設定設定する(記述24)。L5に分岐す
る(記述25)。
【0116】L4では減速動作に遷移するため、アドレ
スUPDWのビット6を“1”にセット(記述26)
し、ビット7を“0”にクリアする(記述27)。減速
動作の回転数CNT2をR0Hに設定設定する(記述2
8)。
【0117】L5では汎用レジスタR0Hの内容をアド
レスCNTにライトする(記述29)。分岐命令を実行
(記述30)した後、割込ルーチンから復帰する(記述
32)。
【0118】減速動作の終了後、L6では割込選択レジ
スタIRQSELのにコンペアマッチ割込OCMIに対
応するビットを反転する(記述31)。割込要求フラグ
OCMFが“1”にセットされたままなので、CPU1
にコンペアマッチ割込OCMIが要求される。汎用レジ
スタR0を復帰し(記述32)、割込ルーチンから復帰
する(記述33)。
【0119】例えば、特開平5−307516号公報に
記載の方法に比べて、RAMにデータを展開しておく必
要がなく、RAMの使用量を節約できる。
【0120】CPU2を、割込に対応したデータ転送や
データ処理などに、主として使用すれば、CPU2は常
に処理すべきプログラムがあるとは限らない。1つの割
込によるデータ処理が終了した時点で、処理すべきプロ
グラムがなければ、CPU2は低消費電力状態、所謂ス
リープ状態にするのがよい。スリープ状態では、専用の
スリープ命令を実行することにより遷移する。CPU2
に供給されるクロックが停止される。割込が要求される
と、スリープ状態は解除される。
【0121】多重割込を行わないように、スリープ状態
でのみ割込を受付けるようにしてもよい。この場合は、
上記の各プログラムの最後のリターン(RTE)命令の
代りに、スリープ(SLEEP)命令を置けばよい。図
5においては、CPU2の割込マスクビットの代りに、
スリープ状態信号の反転を使用すればよい。
【0122】図10にはCPU2の転送(MOV)命令
の動作フローチャートが例示される。同図に示されるフ
ローチャートは、絶対アドレス16ビットの転送命令M
OV.B Rs,@aa:16を示す。
【0123】CPU2は、命令のプリフェッチを行なっ
ており、命令の実行開始時には、当該命令も含めて2ワ
ード分の命令コードがリード済みである。本命令では、
2ワード長なので、当該命令のフェッチが済んでいる。
なお、上記2ワード分の命令コードの内、先頭の1ワー
ドは、制御部で解読・実行され、続く1ワードは命令レ
ジスタIRに格納されている。
【0124】図10の(a)では、本命令は、第1ステ
ップ(S1)で、命令レジスタIRに格納されている、
絶対アドレス(aa)を、DBIに転送するとともに、
命令(次命令)のプリフェッチを行なう。命令のプリフ
ェッチは、PCの値をGBバスに出力し、これを命令ア
ドレスバッファCABに格納するとともに、インクリメ
ンタINCに入力し、+2の処理を行い、PCに再度格
納する。また、RAMD5に対するリードを指示する制
御信号を発行する。内部データバスDTDBの内容をイ
ンストラクションレジスタIRに格納する指示を行な
う。
【0125】第2ステップ(S2)で、データのライト
を指示する。データバッファDBIに転送した、絶対ア
ドレスをバスGBを経由して、データアドレスバッファ
DABに格納する。バス権要求信号をバスコントローラ
23に与え、バス権アクノレッジ信号が返されると、デ
ータアドレスバッファDABの内容が内部アドレスバス
IABに出力し、所定のバスコマンドを出力する。この
バスコマンドは、データリードであるが、バスコントロ
ールレジスタBCRの設定に基づいて、付加的な情報が
指示される。また、バスコントロールレジスタBCRの
クリア信号を出力する。
【0126】また、ソースデータレジスタRsを、レジ
スタセレクタで選択し、選択された汎用レジスタの内容
が、バスDBを経由して、ライトデータバッファDBW
に転送される。このとき、転送データを検査し、コンデ
ィションコードレジスタCCRに検査結果を反映する。
【0127】バス権アクノレッジ信号が活性状態になり
(busack=Yes)、更に、バスレディ信号が活
性状態になる(busready=Yes)のを待つ。
【0128】第3ステップ(S3)では、前記同様に、
命令のプリフェッチを行なう。その後、次命令の実行を
開始する。
【0129】図10の(b)では、プログラム用とデー
タ用のバスが分離していることを利用して、(a)の第
2ステップ(S2)と第3ステップ(S3)を共通ステ
ップにまとめて、データアクセスと命令プリフェッチを
同時に行うようにし、実行ステート数を短縮している。
【0130】図11には内部バスの動作タイミングの一
例が示される。マイクロコンピュータMCUはシステム
クロックφに同期して動作する。CPU1又はCPU2
のROM3及びRAM4に対するリード/ライト、CP
U2のRAMD5のリードは、1ステートで行なわれ
る。内部バスIAB、DTABは、φの反転信号である
φ#に同期して、内部バスIAB、DTABは1ステー
ト出力され、特に制限はされないものの、ROM3、R
AM4及びRAMD5の中でφに同期してラッチされ
る。これに対応するリードデータはφ#に同期して出力
され、φ#が活性状態の期間にCPU1又はCPU2に
取り込まれる。
【0131】例えば、T1のφ#に同期して内部バスI
AB、DTABに出力されたアドレスに対するデータは
T2のφ#が活性状態の期間に、それぞれCPU1に取
り込まれる。
【0132】一方、I/Oに対するリード/ライトは2
ステートで行なわれる。φ#に同期した内部バスIAB
は、バスコントローラ23でφに同期化され、内部バス
PABに出力される。
【0133】図11の動作タイミングにおけるCPU1
のプログラムは、以下に示す、 CMP.B #CODE,R0L BEQ N1 BTST #0,@PORT BNE N2 の通りとする。
【0134】上記CMP、BEQ、BNE命令は2バイ
ト長、BCLR命令は4バイト長とする。アドレスnか
らCMP命令をリードする。CMP命令の実行を開始す
ると、アドレスn+2からBEQ命令をリードするとも
に、内部でイミディエイトデータCODEと汎用レジス
タR0Lの内容を比較して、コンディションコードに反
映する。BEQ命令の実行を開始すると、まず、アドレ
スn+4からBTST命令をリードする。次に、分岐先
のアドレスN1から命令をリードするとともに、前記比
較結果が一致しているかを判定する。一致していなけれ
ば、アドレスN1の命令は無視して、既にリード済のB
TST命令の実行を行なう。続いて、BTST命令の第
2ワードをリードする。BTST命令を実行すると、絶
対アドレスPORTで指定されるI/Oから、PAB/
PDBを使用して、バイトサイズでデータをリードす
る。次にアドレスn+6からBNE命令をプリフェッチ
する。
【0135】また、図11の動作タイミングにおいてC
PU2のプログラムは以下に示す、 BCLR #RDRF,@SSR BRA L2 L2:SLEEP の通りとする。
【0136】上記BCLR命令は4バイト長とする。ア
ドレスm、m+2からBCLR命令をリードする。BC
LR命令の実行を開始すると、まず、絶対アドレスSS
Rで指定されるI/Oから、Iバス及びPバスを使用し
て、バイトサイズでデータをリードする。次に、アドレ
スm+4からBRA命令をプリフェッチするとともに、
内部でリードデータのイミディエイトデータRDRFで
指定されるビットを“0”にクリアする。このデータ
を、絶対アドレスSSRで指定されるI/Oへ、Iバス
及びPバスを使用して、ライトする。BRA命令の実行
を開始し、更にアドレスm+6からSLEEP命令をプ
リフェッチする。
【0137】図11において、T1では、CPU1によ
るROM1からの命令フェッチ、CPU2によるRAM
D5からの命令フェッチのために、内部バスIAB、D
TABにアドレスが出力される。
【0138】T2では、ROM3、RAMD5から内部
バスIDB、DTDBに読み出された命令コード(CM
P命令、BCLR命令の第1ワード)をCPU1、CP
U2がそれぞれ取り込むと共に、次の命令フェッチのア
ドレスが内部バスIAB、DTABに出力される。
【0139】T3では、ROM3、RAMD5から内部
バスIDB、DTDBに読み出された命令コード(BE
Q命令、BCLR命令の第2ワード)をCPU1、CP
U2がそれぞれ取り込むとともに、CPU2はバス権要
求信号を活性状態にし、バスコントローラ23は、これ
に基づいて、CPU2にバス権アクノレッジ信号を返
す。CPU2は、アドレスSSRを、内部バスIABに
出力する。CPU1はバス権が与えられなかったので、
待機状態になる。
【0140】T4では、内部バスIABの内容が内部バ
スPABに出力されて、SCI8のレジスタSSRの内
容がリードされる。バスレディ信号BRDYが非活性状
態になって、CPU2にウェイトを要求する。リードデ
ータはT5で得られる。
【0141】T5で、一旦、CPU2のバス権要求信号
が非活性状態になり、バスコントローラ23は、これに
基づいて、CPU1にバス権アクノレッジ信号を返す。
CPU1は次の命令フェッチのアドレスを、内部バスI
ABに出力する。また、CPU2は次の命令フェッチの
アドレスを内部バスDTABに出力する。
【0142】T6では、ROM3、RAMD5から内部
バスIDB、DTDBに読み出された命令コード(BT
ST命令の第1ワード、BRA命令)をCPU1、CP
U2がそれぞれ取り込む。CPU2はバス権要求信号を
活性状態にし、バスコントローラ23は、これに基づい
て、CPU2にバス権アクノレッジ信号を返す。CPU
2は、アドレスSSRを、それぞれ内部バスIABに出
力する。CPU1はバス権が与えられなかったので、待
機状態になる。
【0143】T7では、内部バスIABの内容が内部バ
スPABに出力され、内部データバスIDBの内容が内
部バスPDBに出力されて、SCI8のレジスタSSR
の内容がライトされる。バスレディ信号BRDYが非活
性状態になって、CPU2にウェイトを要求する。
【0144】T8で、CPU2のバス権要求信号が非活
性状態になり、バスコントローラ23は、これに基づい
て、CPU1にバス権アクノレッジ信号を返す。CPU
1は次の命令フェッチのアドレスを、内部バスIABに
出力する。また、CPU2は次の命令フェッチのアドレ
スを内部バスDTABに出力する。
【0145】T9では、ROM3、RAMD5から内部
バスIDB、DTDBに読み出された命令コード(BT
ST命令の第2ワード、BRA命令の次命令)をCPU
1、CPU2がそれぞれ取り込む。この動作を継続す
る。
【0146】T11では、CPU2はSLEEP命令を
実行して、スリープ状態に遷移する。これに従って、割
込マスクが解除される。また、CPU1が、アドレスP
ORTを、内部バスIABに出力する。
【0147】T12では、内部バスIABの内容が内部
バスPABに出力されて、入出力ポートのレジスタPO
RTの内容がリードされる。バスレディ信号BRDYが
非活性状態になって、CPU1にウェイトを要求する。
リードデータはT13で得られる。CPU1は、更に動
作を継続する。
【0148】図12には本発明に係るマイクロコンピュ
ータの開発環境の概略を示す。ここでは、前記マイクロ
コンピュータMCUのCPU1及びCPU2のプログラ
ムを一つのファイルに記述し、同一の開発環境でプログ
ラムを生成可能にする。
【0149】マイクロコンピュータMCU若しくはその
開発環境の使用者は、各種エディタなどを用いて、C言
語若しくはアセンブリ言語でプログラムを作成する。こ
れは通常、複数のモジュールに分割して作成される。
【0150】Cコンパイラ60は、使用者の作成したそ
れぞれのC言語ソースプログラムを入力し、アセンブリ
言語ソースプログラム若しくはオブジェクトモジュール
を出力する。Cコンパイラ60の処理においては、図示
はされないプリプロセッサの処理が行われる。
【0151】アセンブラ61は、アセンブリ言語ソース
プログラムを入力し、オブジェクトモジュールを出力す
る。
【0152】リンケージエディタ62は、上記Cコンパ
イラ60やアセンブラ61の生成した、複数のオブジェ
クトモジュールを入力して、各モジュールの外部参照や
相対アドレスなどの解決を行い、1つのプログラムに結
合して、ロードモジュールを出力する。
【0153】ロードモジュールは、シミュレータ/デバ
ッガ63に入力して、パーソナルコンピュータなどのシ
ステム開発装置上で、CPUの動作をシミュレーション
し、実行結果をそのディスプレイに表示し、プログラム
の解析や評価を行なうことができる。また、前記ロード
モジュールをエミュレータ64に入力して、実際の応用
システム上などで動作する、いわゆるインサーキットエ
ミュレーションを行ない、マイクロコンピュータMCU
の全体としての、実動作の解析や評価を行なうことがで
きる。更に、PROMライタ65に入力して、マイクロ
コンピュータMCUがPROMを内蔵する場合に、書込
み可能とされる。前記の通り、ロードモジュールには、
CPU1、CPU2のプログラムを混在させることがで
きる。このほかに、ライブラリアンとして、汎用的なサ
ブルーチンなどを提供することもできる。本発明におい
ては、CPU2のプログラムもこれに含めることができ
る。
【0154】上記システム開発環境は、パーソナルコン
ピュータなどのコンピュータ装置とそこで動作されるC
コンパイラ60、アセンブラ61、及びリンケージエデ
ィタ62などのソフトウェアとによって実現されてい
る。
【0155】図13には本発明のCPUのプログラムリ
ストの例を示す。図13の(a)はアセンブリ言語のア
センブルリストである。
【0156】アセンブラの制御命令であるセクション宣
言(.SECTION)の2項目目によって、続く記述
の属性として、コード(CODE:CPU1のプログラ
ム)やデータ(DATA)などに加えて、サブコード
(SBCD:CPU2のプログラム)を指定可能にす
る。
【0157】サブコードのセクションの中の実行命令
は、CPU2の命令として、アセンブルされる。従っ
て、CPU1とCPU2の同一の実行命令(MOV.B
@RDR,R0Lなど)を、必ずしも同一の機械語に
割り当てる必要はなく、それぞれに最適な機械語とする
ことができる。
【0158】アセンブルされたCPU2のプログラム
は、所定のアドレスを以って、CPU1のプログラムや
データとともに、ロードモジュールなどに入力される。
【0159】本アセンブルリストにおいては、セクショ
ンSUBA1が、CPU2のプログラムであるサブコー
ドとなっている。これを展開したプログラムデータ(ラ
ベルL1〜L2)を、891〜899行目のCPU1の
プログラムで、RAMアドレスレジスタ、RAMデータ
レジスタを介して、ライトするようにされる。このRA
MDへのライト動作は、リセット後に、CPU2へ起動
要求の発生する前に行なえばよい。
【0160】一方、図13の(b)はC言語のソースプ
ログラムである。C言語のソースプログラムは、コンパ
イル処理前に、プリプロセッサの処理を受ける。ソース
プログラムでは、「#」で示されるプリプロセッサ文に
よって、プリプロセッサは処理を行い、コンパイラに指
示が行われる。
【0161】本発明では、プリプロセッサ文(#pra
gma)で、コンパイラの処理を指示することができ
る。すなわち、プリプロセッサ文#pragma su
bcode(kansu1)により、関数「kansu
1」をCPU2のプログラムとしてコンパイルすること
が指示される。CPU2の命令セットに即したコンパイ
ルが行われる。アセンブリ言語を出力する場合には、セ
クション宣言が、SBCDになる。
【0162】一方、関数「kansu2」は、指示がな
いので、CPU1のプログラムとしてコンパイルされ
る。アセンブリ言語を出力する場合には、セクション宣
言がCODEになる。
【0163】図14には前記マイクロコンピュータMC
Uに対応されるエミュレーション用プロセッサの概略が
示される。同図に示されるエミュレーション用プロセッ
サEMCUは、CPU1、CPU2を含むマイクロコン
ピュータ部分(マイクロコンピュータコア)70、及び
エミュレーション専用ブロックとしてのエミュレーショ
ンインタフェース71から構成され、公知の半導体製造
技術によって1つの半導体基板上に形成されている。上
記エミュレーション用プロセッサEMCUは応用システ
ムと信号の送受信をユーザインタフェース72で行な
い、マイクロコンピュータ開発装置と信号の送受信を前
記エミュレーションインタフェース71で行なう。ユー
ザインタフェース72は図5の外部バスバッファ(BU
F)31及び内部I/Oレジスタ30などの外部とイン
タフェース可能な回路を総称する。
【0164】エミュレーション用バスとしては、内部バ
スIAB及びIDBをエミュレーションインタフェース
71を介して入出力する。また、内部バスIAB及びI
DB、PAB及びPDBを、CPU1又CPU2の何れ
が使用しているかを示すバス権表示信号を出力してい
る。このバス権表示信号はバス権アクノレッジ信号をク
ロック信号φでラッチしたものに相当する。
【0165】エミュレーションインタフェース71はブ
レーク要求端子を有し、ここから割込みコントローラ2
2にブレーク信号BRKを出力する。ブレーク信号BR
Kによってブレークが要求されると、割込コントローラ
22はCPU1に割込要求としてブレーク割込を要求す
る。
【0166】CPU1が、ブレーク割込を受け付ける
と、ブレークアクノリッジ信号BRKAKが活性状態に
なる。エミュレータにブレーク状態を通知するととも
に、割込コントローラ22で、CPU1に対する割込を
禁止する。
【0167】CPU1は、ブレーク割込を受け付ける
と、ユーザプログラムの実行を中断し、エミュレーショ
ンプログラムを実行開始(ブレーク)する。この状態に
おいて、CPU2は動作を継続する。即ち、CPU2は
ブレークの対象にされない。CPU2はイベントの発生
(割込要求の発生)に応答してCPU1の処理負担を軽
減する用途が想定されるため、常にイベントの発生に応
答できう態勢を維持することが望ましいと考えられるか
らである。例えば、CPU2が、前記のようなSCI8
の受信処理、パルス出力処理を行なっている場合、CP
U1をブレーク割込によって停止しても、CPU2はユ
ーザの処理を実行するために、SCI8の受信を中断し
てしまい、所謂オーバランエラーが発生したり、パルス
出力を中断してしまい、例えばユーザシステムのモータ
駆動ができなくなってしまうようなことを回避すること
ができる。
【0168】CPU1をブレークすれば、CPU1によ
るエミュレーションプログラムの実行によって、エミュ
レーション用プロセッサの内蔵メモリや内部I/Oレジ
スタをリード/ライトでき、モニタや設定変更などを行
うことができる。一方、CPU2は、割込に対応する比
較的短いプログラムとされるから、ブレークできなくて
も、大きな不都合は生じない。
【0169】CPU2のデバックのために、CPU2の
プログラムカウンタまたはアドレスバスDTABを必要
ビット数出力するようにするとよい。例えば、RAMD
5が2kバイト(1kワード)の場合は、プログラムカ
ウンタPCまたはアドレスバスDTABのビット10〜
1を出力するように構成するとよい。
【0170】CPU2がデータアクセスによって、Iバ
スを使用することにブレークを設定し、ブレーク後、上
記CPU2のプログラムカウンタPCをトレース表示さ
せればよい。このとき、好適には、エミュレータ側で、
プログラムカウンタPCの内容から、ソースリストを表
示するようにするとよい。
【0171】なお、CPU2のプログラムメモリをRA
M(RAMD5)で構成することによって、CPU2の
プログラムも容易に書換え可能であり、デバッグに好適
である。
【0172】図15にはエミュレータの概略が示され
る。エミュレータ81はエミュレーション用プロセッサ
EMCUを有する。エミュレーション用プロセッサEM
CUは、応用システム82に用いられるマイクロコンピ
ュータMCUと同等のマイクロコンピュータ部分にエミ
ュレーション用インタフェースを加えて構成される。エ
ミュレーション用プロセッサEMCUの前記マイクロコ
ンピュータ部分はインタフェースケーブル84を介し
て、応用システム82のマイクロコンピュータMCUの
実装ソケット85に結合され、これによってエミュレー
ション用プロセッサEMCUは応用システムを代行制御
することができる。
【0173】一方、エミュレーション用プロセッサEM
CUは前記エミュレーションインタフェースを用いてエ
ミュレーションバス86に接続される。エミュレーショ
ンバス86には図示はされない状態信号・制御信号の信
号線などを含む。前記エミュレーションバス86を用い
て、エミュレーション用プロセッサEMCUから、応用
システム82とエミュレーション用プロセッサEMCU
の内部状態に応じた情報などが出力され、また、エミュ
レーション用プロセッサEMCUに対し、エミュレーシ
ョンのための各種信号が入力される。
【0174】さらに、前記エミュレーションバス86に
は、エミュレーションメモリ91、ブレーク制御回路9
2、リアルタイムトレース回路93などが接続される。
前記エミュレーションメモリ91は、特に制限はされな
いものの、RAMなどによって構成され、ユーザプログ
ラムを格納した領域と、エミュレーションのためのプロ
グラムを格納した領域とを持つ。前記ブレーク制御回路
92は、エミュレーション用プロセッサEMCUによる
制御状態やエミュレーションバス86の状態を監視し
て、その状態が予め設定された状態に達した時に、ブレ
ーク割込み信号BRKをアサートして、エミュレーショ
ン用プロセッサEMCUのCPU2によるユーザプログ
ラムの実行を停止させ、エミュレーション用プログラム
実行状態に遷移させる(ブレークする)。前記リアルタ
イムトレース回路93は、前記CPU1、CPU2のリ
ード動作またはライト動作を示す信号、命令リード動作
を示す信号(CPUステータス信号)、エミュレーショ
ンバス86に与えられるアドレスやデータさらには制御
信号を逐次蓄える。
【0175】前記エミュレーションメモリ91、ブレー
ク制御回路92、リアルタイムトレース回路93はコン
トロールバス94にも接続され、コントロールバス94
を介してコントロールプロセッサ95の制御を受けるよ
うになっている。前記コントロールバス94は、前記コ
ントロールプロセッサ95に接続されるとともに、ホス
トインタフェース回路96を介して、特に制限はされな
いものの、前記パーソナルコンピュータなどのシステム
開発装置97に接続される。システム開発装置97は例
えばパーソナルコンピュータによって構成され、表示装
置97A及び入力装置97Bも備えている。
【0176】例えば、システム開発装置97から入力さ
れたプログラム(ロードモジュール)をエミュレーショ
ンメモリ91のユーザプログラム格納領域に転送し、そ
のプログラムをCPU1がリードすると、エミュレーシ
ョンメモリ91上のプログラムがリードされ、実行され
る。また、ブレーク条件や、リアルタイムトレース条件
などもシステム開発装置97から与えることができる。
【0177】前記リアルタイムトレース回路93は、エ
ミュレーションバス86のアドレス、データ、制御信
号、CPUステータス信号などを蓄積し、この内容は、
所定のコマンドなどでシステム開発装置97の表示装置
97Aに表示して、使用者は、この内容に基いて、プロ
グラムの動作解析を行なう。前記の通り、CPU1のフ
ェッチした命令は、エミュレーションバス86上に現わ
れ、これを逆アセンブルした、アセンブリ言語でも表示
することができる。更に、C言語ソースプログラムも表
示することができる。ブレーク制御回路92は、少なく
とも、CPU1とCPU2のブレーク条件を独立して設
定できるように構成されている。
【0178】図16には本発明に係るマイクロコンピュ
ータの第1の変形例であるマイクロコンピュータMCU
aが例示される。
【0179】図16のマイクロコンピュータMCUa
は、図5のバス構成に対して、DMAC100が追加さ
れている。かかるDMAC100は、CPU1と同様に
バスIAB、IDBに接続されている。また、CPU1
又はCPU2からデータ転送情報などを与えられるため
に、バスPAB、PDBにも接続されている。CPU1
とCPU2とDMAC100とは、バスコントローラ2
3のバス権調停に基づいて、互いに排他的に動作する。
【0180】DMAC100は、起動要因として、CP
U1又はCPU2が所定の制御ビットを“1”にセット
することによって、データ転送を行なうオートリクエス
トや、DMA要求端子に所定の信号が与えられたとき
に、データ転送を行なう外部リクエスト機能を持つ。ま
た、転送モードとして、オートリクエストのとき、バス
を専有(CPU1及びCPU2を停止)してデータ転送
を行なうバーストモードや、1回の転送毎にバス権を解
放して、CPU1又はCPU2と交互に動作しつつ、デ
ータ転送を行なうサイクルスチールモードを持つ。
【0181】また、DMAC100は、割込要求信号を
起動要求信号として、データ転送を行なうことができ
る。CPU2が割込でデータ転送を行なうより、高速の
データ転送が可能である。CPU2が割込を判定した結
果、DMAC100を使用するのが都合がよいと判断し
た場合に、DMAC100へ起動をかけるようにしても
よい。
【0182】図17には本発明に係るマイクロコンピュ
ータの第2の変形例であるマイクロコンピュータMCU
bが例示される。
【0183】図17のマイクロコンピュータMCUb
は、図16と比較して、CPU2のデータのリード/ラ
イトの対象が外部バスとされ、専用のEXバス(EXA
B、EXDB)によって、外部バスバッファ(BUF)
31を介して、外部バスETAB,ETDBに接続され
る。バスコントローラ23は、内部バスのバス権調停を
行なう内部調停論理(内部バスコントローラ)と、外部
バスのバス権調停を行なう外部調停論理(外部バスコン
トローラ)とを有し、内部バスのバス権調停と外部バス
のバス権調停とを別々に制御する。CPU1及びそのほ
かの内部バスマスタ(DMAC100)は、排他的にI
バスを使用する。このためには、CPU1及びDMAC
100がバス権要求信号を出力し、これをバスコントロ
ーラ23の内部調停論理が判定して、適宜一つの内部バ
スマスタにバス権を与える。内部バスマスタはバス権を
与えられたことを確認して、IABやバスコマンドを出
力して、バスアクセスを行う。
【0184】バスコントローラ23の内部調停論理は、
IABの内容を確認して、メモリへのアクセスであれ
ば、Iバスを使用した制御を行う。また、内部I/Oレ
ジスタへのアクセスであればPバスを起動し、バスレデ
ィ信号を非活性化し、内部バスマスタをウェイトさせ
る。
【0185】外部バスは、バスコントローラ23の外部
調停論理によって制御される。外部バスを使用できる、
外部バスマスタは、DMAC100に代表される内部バ
スマスタ、CPU2、リフレッシュタイマ、外部バス権
要求がある。内部バスマスタは、一旦、バスコントロー
ラ23の内部調停論理で調停され、バス権を与えられた
内部バスマスタが外部バスをアクセスしたときに、外部
バス権を要求する。換言すれば、内部バスマスタが、内
部バスを使用している限り、外部バス権は要求しない。
従って、内部バスマスタの内部バスの使用中に、リフレ
ッシュやCPU2による外部バス転送或は外部バス権解
放を並行して行うことができる。
【0186】また、外部バス権要求が外部バス権を獲得
すると、外部バス(アドレスバス、データバス、制御信
号)をハイインピーダンス状態にし、外部のバスマスタ
による外部バスの利用を可能にするとともに、外部バス
権アクノレッジ信号を活性状態にし、これを通知する。
【0187】図18には本発明に係るマイクロコンピュ
ータをプリンタ制御に用いたマイクロコンピュータシス
テムが例示される。
【0188】プリンタ制御システムは、マイクロコンピ
ュータ101及びセントロニクスインタフェースやユニ
バーサルシリアルバス、IEEE1394、オプション
などの受信回路102、バッファRAM103、キャラ
クタジェネレートROM(CGROM)104、プログ
ラムROM105、及び印字制御回路106等を含み、
これらがマイクロコンピュータ101の外部バス107
を介して接続される。前記マイクロコンピュータ101
には、前述のマイクロコンピュータMCU、MCUa、
又はMCUbを採用する。
【0189】プログラムROM105はエリア0に、バ
ッファRAM103はエリア2に、CGROM104は
エリア6に、受信回路102及び印字制御回路106は
エリア7にマッピングされている。バッファRAM10
3はリード/ライト可能なDRAMで構成され、リフレ
ッシュ動作が必要であるが、安価であることが知られて
いる。バッファRAM103は2MB(16Mビット)
とし、1MバイトをCPU1又はCPU2の作業領域
に、残りを512kBずつのリングバッファとする。
【0190】また、本システムは、更に、印字ヘッド1
10、バッファ回路111、ラインフィードモータ11
2、及びキャリッジリターンモータ113を含み、これ
らのモータは、それぞれタイマ6の出力、パルス出力回
路7の出力によって制御される。ラインフィードモータ
112及びキャリッジリターンモータ113は、特に制
限はされないものの、ステッピングモータである。図示
はされないものの、SCI8はホストなどとの通信に使
用し、A/D変換器9は紙枚数などのセンサ情報を入力
する。
【0191】CPU2はセントロニクスインタフェース
やユニバーサルシリアルバス、IEEE1394などの
複数の受信回路102によるデータの受信を、CPU1
の動作と並行して行う。IRQ0,IRQ1入力に転送
要求信号を入力し、転送時には、DACK1出力によっ
て、シングルアドレス転送を行うことができる。例え
ば、セントロニクスインタフェースのインプットストロ
ーブ信号をIRQ0に入力し、チャネル0でデュアルア
ドレス転送を行い、オプションインタフェースの受信信
号をIRQ1に入力し、DACK1出力を、オプション
インタフェースに与えて、チャネル1でシングルアドレ
ス転送を行う。
【0192】データ転送に先立って、転送語数等を示す
ためのパケットコマンドなどの転送情報が送られる。C
PU2は、最初に送られる転送データは、前記転送情報
と認識し、これをバッファRAM103に格納するとと
もに、解析を行なう。例えば、転送情報は、第1ワード
の上位バイトにコマンド、第2及び第3ワードに印字位
置(第2ワードが下位、第3ワードが上位)、第4及び
第5ワードに転送データ数(第4ワードが下位、第5ワ
ードが上位)を持つ5ワード(10バイト)とする。転
送情報受信か、通常のデータ受信かは、汎用レジスタE
R6の最上位ビットが“1”かどうかで指定する。この
ため、リセット後や、通常のデータ受信完了時には、汎
用レジスタER6の最上位ビットを“1”にセットする
ようにされる。転送情報受信時には、転送カウントレジ
スタとして、E0を使用し、この値によって、転送処理
を変更する。
【0193】上記パケットコマンドなどの転送情報の受
信動作のためにCPU2が実行可能なプログラムは、例
えば、次に示される MOV.W @RDR,R0 (1) MOV.L ER6,ER6 (2) BPL L6 (3) CMP.W #5,E0 (4) BNE L1 (5) MOV.W R0,@CMD+2 (6) MOV.W R0H,R4L (7) BRA L5 (8) L1:CMP.W #4,E0 (9) BNE L2 (10) MOV.W R0,@CMD+6 (11) BRA L5 (12) L2:CMP.W #3,E0 (13) BNE L3 (14) MOV.W R0,@CMD+4 (15) BRA L5 (16) L3:CMP.W #2,E0 (17) BNE L4 (18) MOV.W R0,@CMD+10 (19) MOV.W R0,R6 (20) BRA L5 (21) L4:CMP.W #1,E0 (22) BNE L5 (23) MOV.W R0,@CMD+8 (24) MOV.W R0,E6 (25) BSET #0,@SCPUIRQ (26) L5:DEC.W E0 (27) BCLR #0,@IRQF (28) SLEEP (29) L6:MOV.W R0,@ER5 (30) INC.L #2,ER5 (31) AND.W #H’0057,E5 (32) DEC.L #1,ER6 (33) BNE L7 (34) BSET #1,@SCPUIRQ (35) NOT.W E6 (36) L7:SLEEP (37) の通りである。
【0194】先ず、第1ワードの受信時には、所定のバ
ッファメモリ(H’400000〜H’4FFFFF)
内のアドレス(CMD)に、受信データを転送するとと
もに、コマンド(上位バイト)を、汎用レジスタR4L
に保持する。かかるバッファメモリのアドレスは、以下
の印字位置と転送データのリードがし易いように、4の
倍数でない偶数番地に格納する(記述6)。
【0195】第2及び第3ワードの受信時には、所定の
バッファメモリのアドレスに、受信データを転送する。
このとき、CPU1のマイクロコンピュータ101のロ
ングワード(2ワード)データの把握方法(A1=0が
上位、A1=1が下位)に合わせて、アドレスを入れ替
える(記述11,15)。
【0196】第4及び第5ワードの受信時には、所定の
バッファメモリのアドレスに、受信データを転送すると
共に、汎用レジスタER6に転送カウント数を設定する
(記述20,25)。転送データ数は、アドレス空間の
大きさより小さいので、汎用レジスタER6の最上位ビ
ットは0にクリアされる。前記同様にアドレスを入れ替
える(記述19,24)。第5ワード受信時には、SC
IRQレジスタのビット0(割込要求ビット)を“1”
にセットし、CPU1に転送情報入力完了を通知する。
CPU2自体は、引き続き通常のデータ受信に対応可能
になっている。通常のデータ受信時には、汎用レジスタ
ER5で示されるリングバッファ内のバッファメモリ
(H’500000〜H’57FFFF)内に転送する
(記述30)。リングバッファは、汎用レジスタER5
のビット19を0にクリアすることによって実現してい
る(記述32)。
【0197】CPU1は、上記所定のアドレスから、3
回のロングワードアクセスによって、転送情報を取得で
きる。例えば、上記CPU1のプログラムは、次に示さ
れる、 MOV.L @CMD,ER0 MOV.L @CMD+4,ER1 MOV.L @CMD+8,ER2 の通りである。
【0198】コマンドを操作が容易な16ビット汎用レ
ジスタRに格納したり、ロングワードで把握すべきデー
タを32ビット汎用レジスタERに格納したりといっ
た、CPU1の仕様に合わせて、それぞれの情報を把握
しやすいように配置できる。また、転送情報を固有のア
ドレスに格納し、また、リングバッファには通常のデー
タのみを格納して、メモリの管理を容易にできる。かか
る実質的な処理ではない、不所望の処理を、CPU1と
並列動作するCPU2が実行することにより、処理性能
の低下を抑止できる。また、CPU2は、前記通常のデ
ータをその後の加工や、印字ヘッドへの転送に都合のよ
い配列にしたり、印刷データの加工或いは、印字ヘッド
の形状などに合わせた順序での印刷データの出力などを
行うこともできる。応用システムや使用者毎の固有の処
理をCPU2のプログラムで定義し、容易に実現でき
る。
【0199】一方、内部のDMAC100は、ラインフ
ィードモータ112、キャリッジリターンモータ113
を駆動するパルス出力を行う。また、SCI8の送信デ
ータ、受信データの転送を行なう。
【0200】なお、図18のシステムにおいて、半導体
集積回路の集積度の向上によって、オプション以外の受
信回路102の一部や、印字制御回路106などをマイ
クロコンピュータ101と共に1個の半導体集積回路に
集積することができる。更に、バッファRAM103な
どの汎用的なメモリも含めて1個の半導体集積回路に集
積することができる。プログラムROM105やCGR
OM104などのように個別のプリンタの機種など、マ
イクロコンピュータシステム毎に変更になるものは、個
別の半導体集積回路にする方が都合がよい。いずれの回
路部分を1個の半導体集積回路とするにせよ、バスの論
理的な構成が変らなければよい。
【0201】図19には図18のマイクロコンピュータ
システムにおけるバスの動作タイミングが例示されてい
る。この場合のマイクロコンピュータ101にはMCU
bを採用したものとする。
【0202】内部バスは、大部分が、CPU1のROM
3からのプログラムリードとRAM4へのデータリード
/ライトを1ステートで行っている。この中で、CPU
1はT3からPバスを用いた内部I/Oレジスタ(例え
ば、A/D変換器9)のリード、T10から外部メモリ
(バッファRAM103のアドレスCMDからのロング
ワード)のリードを行う。
【0203】T9で、CPU1は、バッファRAM10
3のリードを行う。バスコントローラ23は、このアド
レスを判定して、外部バス権要求と外部バスコマンドを
発生する。外部バスコマンドは、ロングワードのため、
2回の連続したワードアクセスを指示する情報を含む。
バスコントローラ23の外部調停論理は外部バス権を調
停するが、CPU2が外部バスを使用しているため、外
部バス権は与えず、CPU1をウェイトさせる。T10
から、CPU1に外部バス権を与えて、外部バスを起動
する。一旦、外部バスレディ信号EXBRDYを非活性
状態にして、CPU1をウェイトさせる。
【0204】バスコントローラ23は、バッファRAM
103のエリアのアクセスを判断して、プリチャージ、
RAS、CASサイクルを含む4ステートでアクセスす
る。
【0205】EXBRDYが活性状態になると、CPU
2は汎用レジスタへリードデータを書込むとともに、ロ
ングワードの後半のワードのリードを開始する。
【0206】バスコントローラ23は、バッファRAM
103のエリアのアクセスを判断して、CASサイクル
のみの2ステートの、いわゆる高速ページモードで、ア
クセスする。
【0207】外部バスレディ信号EXBRDYが活性状
態になると、CPU2は汎用レジスタへリードデータを
書込み、更に動作を継続する。
【0208】DMAC100は、T7から、メモリから
内部I/Oレジスタ(例えば、RAMからパルス出力回
路への転送によるモータ駆動)への転送を行う。
【0209】一方、CPU2は、図18のマイクロコン
ピュータシステムの為の前記パケットコマンドなどの転
送情報の受信動作のためにCPU2が実行可能なプログ
ラムを前記記述1、記述2、記述3、記述30、記述3
1、記述32の順序で実行する。
【0210】T0で、CPU2は、IRQ0が活性状態
になったのに呼応して、起動され、内部バスDTAB及
びDTDBを使用して、RAMD5からプログラムをリ
ードする。尚、vecはCPU2の開始アドレスを示す
ベクタであり、mov1、mov2は、前記記述1のM
OV命令の第1オペコード、第2オペコードのアドレス
を示す。
【0211】T6で、受信回路(RDR)102リード
のための外部バス権要求と外部バスコマンドを発生し、
バスEXABに出力する。バスコントローラ23の外部
調停論理は外部バス権を調停し、直ちに、CPU2に外
部バス権を与えて、外部バスを起動する。一旦、外部バ
スレディ信号EXBRDYを非活性状態にして、CPU
2をウェイトさせる。外部バスレディ信号EXBRDY
が活性状態になると、CPU2は汎用レジスタへリード
データを書込む。
【0212】T14で、バッファRAM103ライトの
ための外部バス権要求と外部バスコマンドを発生し、バ
スEXABに出力する。バスコントローラ23の外部調
停論理は外部バス権を調停するが、CPU1が外部バス
を使用しているため、外部バス権は与えず、CPU2を
ウェイトさせる。T16から、CPU2に外部バス権を
与えて、外部バスを起動する。一旦、外部バスレディ信
号EXBRDYを非活性状態にして、CPU2をウェイ
トさせる。
【0213】バスコントローラ23は、バッファRAM
103エリアのアクセスを判断して、プリチャージ、R
AS、CASサイクルを含む4ステートでアクセスす
る。外部バスレディ信号EXBRDYが活性状態になる
と、CPU2は動作を再開する。
【0214】CPU1が外部バスを使用したリード/ラ
イトとCPU2による外部バスを使用したリード/ライ
トが同時に(重なって)要求される場合、CPU1又は
CPYU2の何れかが一旦停止状態になるが、CPU1
のデータアクセス頻度は低く、また連続的には行わない
し、CPU2もデータ転送を連続的には行わないから、
CPU1及びCPU2が長期間停止状態になることを回
避できる。少なくとも、CPU1がROM上でプログラ
ムを実行することと、CPU2による外部バスを使用し
たリード/ライトを並列して行うことができる。換言す
れば、CPU1、CPU2の処理性能を低下させること
を最小限にして、外部バスを使用したリード/ライトを
行うことができる。また、DMAC100による内部バ
スによる転送と並行して行うことができる。
【0215】以上の説明では、CPU2のプログラム用
メモリをRAMD5としたが、RAM部をROMに変え
てROMD5としてもよい。この場合、ROM3及び前
記CPU2のプログラム用メモリROMDをPROM
(電気的に書き込み可能なメモリ)とすることができ
る。PROMを外部からプログラムするとき、2つのP
ROMを外部から連続したアドレスとするようにすると
よい。ROM3を代替するPROM3aを64kバイ
ト、ROMD5を構成するPROM5aを2kバイトと
する。PROMモードでは、PROM3aはH’000
00〜H’0FFFFに、PROM5aはH’1000
0〜H’107FFに配置される。
【0216】図20にはPROM3a、PROM5aを
用いてマイクロコンピュータを構成するときのマイクロ
コンピュータの一部が示される。図20に示されていな
い構成は図1と同様である。
【0217】前記PROMモードは、マイクロコンピュ
ータの前記モード信号MD2〜MD0の入力端子、及び
スタンバイ信号STBYの入力端子をいずれもロウレベ
ルとすることによって設定される。このとき、図示はさ
れないモード設定回路によって、内部信号EPMが活性
状態(Highレベル)とされる。
【0218】PROMモードのとき、CPU1及びCP
U2はバッファBUFC1及びBUFC2によって、ア
ドレスバスIAB,DTAB及びデータバスIDB,D
TDBから切り離される。
【0219】PROM3a,PROM5aは、メモリア
レイ120,130、アドレスデコーダ121,13
1、入出力回路123,133、制御回路124,13
4から成る。アドレスデコーダ121,131にはアド
レス信号が入力される。入出力回路123,133はデ
ータの入出力を行なう。制御回路124,134は制御
信号を入力し、入出力回路123,133を制御して、
データの書込み/読み出しなどを行なわせる。メモリア
レイ120,130は不揮発記憶素子が配列されてい
る。前記PROM3a,PROM5aは、例えば電気的
に書換え可能なEEPROM又はフラッシュメモリとし
て実現することができる。
【0220】制御回路124/134には、EPM、C
S−1#/CS−2#、OE#、PGM#及び、MS−
1#/MS−2#、リード信号が入力される。制御信号
EPMが活性状態のとき、PROM3a,PROM5a
は電気的に書込み可能なROMとしての書込み/読出し
動作が、CS−1#/CS−2#、OE#、PGM#の
各信号による指示に基づいて行なわれる。制御信号EP
Mが非活性状態のとき、PROM3a,PROM5aは
CPU1、CPU2のアドレス空間上で読み出し専用の
ROMと同様の読出し動作が、MS−1#/MS−2
#、リード信号による指示に基づいて行なわれる。
【0221】PROMモードにおいて、書換え用の高電
圧Vpp、チップ選択信号CS#、出力イネーブル信号
OE#、プログラム信号PGM#で制御される動作は、
例えば、1993年3月(株)日立製作所発行『HIT
ACHI IC Memory Data Book
No.2(10th Edition)』pp510−
524に記載されるPROMと同様である。
【0222】高電圧Vppは、図示を省略しているが、
PROM3a及びPROM5aに与えられる。アウトプ
ットイネーブル信号OE#及びプログラム信号PGM#
はバッファ回路BUFPに介して入力され、PROM3
a及びPROM5aに供給される。バッファ回路BUF
Pには外部(PROMライタ)から図示を省略するメモ
リ選択信号が供給され、チップ選択信号CS−2#は、
アドレス上位信号A16の反転信号と前記メモリ選択信
号の内部信号PSとの論理積信号、チップ選択信号CS
−1#は、アドレス上位信号A15の反転信号と、A1
6と、前記メモリ選択信号の内部信号PSとの論理積信
号で生成される。CS−1#、CS−2#が、それぞれ
PROM3a、PROM5aに与えられる。
【0223】PROMモードのとき、内部データバスI
DBとDTDBがバッファDBUFを介して接続され
る。PROM5aのデータはデータバスDTDB、ID
B及び入出力ポートIOP[D]を介して入出力され
る。即ち、チップ選択信号CS−2#が活性状態で読出
し動作のとき、PROM5aから読み出した、データバ
スDTDBの内容が内部バスIDBに出力される。更
に、読出し動作のとき、内部データバスIDBの内容が
入出力ポートIOP[D]を介して外部に出力される。
また、書込み動作のとき、外部の内容が入出力ポートI
OP[D]を介して内部バスIDBに入力される。チッ
プ選択信号CS−2#が活性状態で書込み動作のとき、
内部データバスIDBの内容が内部データバスDTDB
に出力され、PROM5aに与えられる。
【0224】PROMモードのとき、内部アドレスIA
BとDTABがバッファABUFを介して接続される。
即ち、入出力ポートIOP[B]、IOP[C]を介し
て入力された内部アドレスバスIABのアドレスが、更
に内部アドレスバスDTABに入力され、PROM5a
に与えられる。PROMモードにおいてPROM3aに
対するリード/ライトはCS−1#によって選択され、
PROMモードにおけるPROM5aの動作と同様とさ
れる。尚、PROM3a、PROM5aの最大容量が6
4kバイトであるので、それぞれのPROM3a,5a
に与えられるアドレスは16ビットである。例えば、読
出し動作はチップ選択信号CS−1#、CS−2#、ア
ウトプットイネーブル信号OE#が活性状態、プログラ
ム信号PGM#が非活性状態のとき行なわれ、書込み動
作はチップ選択信号CS−1#、CS−2#、プログラ
ム信号PGM#が活性状態、アウトプットイネーブル信
号OE#が非活性状態のとき行なわれる。その他、ベリ
ファイやページ書込みなどが可能とされるが、本発明に
は直接の関係はないので、詳細な説明は省略する。
【0225】1つのPROMモードで、PROM3a、
PROM5aを、外面的には1つのPROMとして、一
括して書込むことができるから、書込みを効率的に行な
うことができる。前記の通り、CPU1、CPU2のロ
ードモジュールは一体のものとして、開発環境で生成さ
れ、PROMライタに供給される。
【0226】図21にはフラッシュメモリのブートモー
ドのフローチャートが示される。プログラム評価などを
容易にするため、或いは、システム個別の仕様(プリン
タシステムの場合は、印字ヘッドの構成など)を満足す
るため、更には、仕様変更などに迅速に対応するためな
どに、前記PROM3a,5aを更に、フラッシュメモ
リなどの電気的に書込み可能なメモリとし、入出力回路
若しくは入出力ポートを介して、フラッシュメモリをプ
ログラミング可能にするとよい。
【0227】ここでは、フラッシュメモリの書込み制御
は、PROM3a(フラッシュメモリ)に格納された制
御プログラムに基づいて、CPU1によって、実行され
るものとする。
【0228】マイクロコンピュータにおいて、モード端
子MD2〜MD0をロウレベル及びスタンバイ端子ST
BYをハイレベルとして、いわゆるブートモードでリセ
ットを解除すると(S10)、CPU1は、ユーザに非
公開の領域の、ブートモード専用のベクタへ分岐し(S
11)、フラッシュメモリのプログラムの実行を開始す
る。
【0229】先ず、シリアルコミュニケーションインタ
フェース(SCI)8の初期化を行なう。引き続き、S
CI8の接続先との状態の確認(ビットレートの確認な
ど)を行なう。接続先との状態の確認が終わると、フラ
ッシュメモリのユーザ領域を消去する(S13)。但
し、上記ブートモードで使用する領域は消去しないよう
にする。また、フラッシュメモリ(PROM)3a上の
書込み制御プログラムをRAM4に転送し(S14)、
このRAM4上のプログラムに分岐する(S15)。C
PU1は、その書込み制御プログラムを実行して、プロ
グラムデータ(アプリケーションプログラム)を、SC
I8を介して入力し、これを一旦RAM4に格納する
(S16)。バッファメモリに格納したプログラムデー
タを、フラッシュメモリ(PROM3a)に書込む(S
17)。この場合は、所望のアドレスに所望のデータを
ライトした後、所定のフラッシュメモリ制御ビット(プ
ログラムビット、ベリファイビットなど)を制御するよ
うにする。これを、PROM3aの容量に応じて、所定
回数繰り返す(S18)。
【0230】PROM3aの書込みが終了すると、引き
続き、PROM5aのプログラムデータを、接続先から
受信する(S19)。この場合、接続先は、PROM3
a、PROM5aの区別なく、アセンブラなどが出力し
たロードモジュールを送信するようにすればよい。
【0231】PROM5aへの書込みは、図4のRAM
アドレスレジスタ(RAMARH/RAMARL)に所
望のアドレスをライトし、RAMデータレジスタ(RA
MDRH/RAMDRL)に所望のデータをライトし、
所定のフラッシュメモリ制御ビット(プログラムビッ
ト、ベリファイビットなど)を制御するようにする。図
4のRAMアドレスレジスタ(RAMARH/RAMA
RL)は、ROMデータレジスタのライト後にインクリ
メント(+2)されるようにするとよい。フラッシュメ
モリ(PROM)5aが、複数ワードを同時に書込む、
いわゆるページ書込みを持つ場合には、所定回数のRA
Mデータレジスタ(RAMDRH/RAMDRL)への
ライト後に、所定のフラッシュメモリ制御ビット(プロ
グラムビット、ベリファイビットなど)を制御するよう
にすればよい。これを、PROM5a(フラッシュメモ
リ)の容量に応じて、所定回数繰り返す(S19,S2
0,S21)。最後に、正常終了のステータスを表示す
る。必要に応じて、書込んだフラッシュメモリの内容を
出力して、接続先で、コンペアするようにしてもよい。
【0232】前記の通り、CPU1、CPU2のプログ
ラムは一つのロードモジュールとして生成され、これ
を、上記によって、PROM3a及びPROM5aに、
1回のブートモードで、かつ一連の処理として、書込み
可能としているから、フラッシュメモリの書込み効率を
向上できる。ひいては、プログラム評価などの効率を向
上できる。
【0233】CPU2のプログラムメモリをフラッシュ
メモリ等の電気的に書き込み可能なPROMとした開発
用、初期量産用、多品種少量生産用などの半導体集積回
路装置と、CPU2のプログラム用メモリをマスクRO
Mとした半導体集積回路装置の両方を提供すると良い。
マスクROMにすることによって、書込みの為の回路を
不要とし、メモリアレイの物理的規模を小さくすること
が出来、製造費用を節約することができる。
【0234】CPU2のプログラムは、使用者が開発す
る他、半導体集積回路装置の製造者が開発しても良い。
後者の場合、複数種類のプログラムをライブラリとして
提供してもよいし、プログラムを公開せずに、例えば、
あたかも従来のDMACと同様にハードウェアとして提
供しても良い。ライブラリとして提供する場合には、前
記ライブラリアンに含めてもよいし、独立に提供しても
良い。
【0235】CPU2のプログラムを半導体集積回路装
置製造者が開発する場合、種々の応用システムからの要
求に対して、ハードウェアを変更すること無く、プログ
ラムを変更するだけでよいから、開発効率を向上させる
ことができる。CPU2のプログラム用メモリを変更し
た多品種の半導体集積回路装置を容易に提供でき、種々
の応用システムからの要求に対応すると共に、新規の要
求などに対しても、短期間で対応可能になる。
【0236】以上説明した本発明の実施の形態によれば
以下の作用効果を得るものである。
【0237】(1)CPU1とCPU2を設け、CPU
2はプログラム用のバスとデータ用のバスを独立に持
ち、かかるプログラム用のバスと、CPU1のバスを独
立にし、CPU2のプログラムリードとCPU1の動作
を並列動作可能にすることよって、マイクロコンピュー
タまたは半導体集積回路の処理速度を向上し、機能の高
い処理を実現できる。
【0238】(2)更に、CPU2のデータバスを、C
PU1のバスと共通に若しくは接続可能にすることによ
って、CPU1とCPU2の処理を任意に分けることが
でき、使い勝手を向上することができる。例えば、CP
U2が、転送情報とデータの受信など、アプリケーショ
ンに即した柔軟なデータ転送などを行うことができる。
CPU1の処理の負荷を軽減できる。CPU2のデータ
バスをIバスに接続することにより、マイクロコンピュ
ータの内蔵メモリ、内部I/Oレジスタ、外部バスなど
を全て使用することができる。外部バスに接続すること
によって、CPU1との並列度を向上できる。いずれの
場合も、バスコントローラ23によって、共通に制御さ
れるから、論理規模の不所望の増加を抑止できる。バス
コントロールレジスタBCRでバス動作の指定を行うこ
とによって、汎用的な命令を組合せて、CPU2が実行
可能な命令コードの数を最小限にして、所望の機能を実
現できる。バスコントロールレジスタBCRは、CPU
2内部に存在するようにし、CPU1の動作を制約する
ことなく、設定可能である。データ転送後に、自動的に
バスコントロールレジスタBCRを初期化するように構
成することによって、再初期化の命令を不要として、命
令ステップ数を短縮し、使い勝手を向上することができ
る。
【0239】(3)データ制御処理内容をCPU2の単
一の命令ストリームでなるプログラムで定義することで
その自由度を高くすることができる。応用システム毎や
利用者毎の固有の処理を実現でき、使い勝手を向上し、
更に、処理速度を向上できる。CPU2をCPU1と類
似または互換のものとすることにより、プログラミング
をより容易にすることができる。従来CPU1で処理し
ていた内容をCPU2の処理とすることが容易にでき
る。
【0240】(4)CPU1及びCPU2が、相互に割
込を要求することを可能にすることにより、容易にCP
U1とCPU2との相互同期を実現することができる。
【0241】(5)割込を、CPU1又はCPU2の何
れに要求するかを指定するレジスタを設けることによ
り、SCI8などの入出力回路を2つのCPU1,2で
任意に配分して利用することができ、資源の利用効率を
より向上することができる。
【0242】(6)CPU1及びCPU2のプログラム
メモリをPROMで構成した場合、PROMモード時に
はこれらのプログラムメモリを同一のアドレス空間に配
置することにより、PROMライタモードなどの、単一
の処理によって、これらのプログラムメモリを書込み可
能にして、PROM書込みを効率化することができる。
【0243】(7)CPU1及びCPU2のプログラム
メモリをフラッシュメモリで構成した場合、CPU1に
よる、CPU2のプログラムメモリの書込みを可能にす
ることによって、ブートモードなどの、単一の処理によ
って、これらのプログラムメモリを書込み可能にして、
フラッシュメモリの書込み処理を効率化することがで
き、ひいては、デバッグ効率を向上できる。
【0244】(8)エミュレーション用プロセッサEM
CUにおいては、CPU1をブレーク割込によって停止
しても、CPU2はユーザの処理を実行するように構成
することにより、SCI8の受信を中断してしまって所
謂オーバランエラーが発生したり、パルス出力を中断し
てしまって例えばユーザシステムのモータ駆動ができな
くなってしまうようなことを回避できる。CPU1をブ
レークすれば、CPU1によるエミュレーションプログ
ラムの実行によって、エミュレーション用プロセッサE
MCUの内蔵メモリや内部I/Oレジスタをリード/ラ
イトでき、モニタや設定変更などを行うことができるか
ら、デバッグ機能を低下させることがない。CPU2の
プログラムカウンタや内部アドレスバスDTABを必要
ビット数出力するように構成することにより、CPU2
のプログラム動作解析を行うことができる。また、CP
U2のプログラムメモリをRAMで構成することによっ
て、更に、デバッグを容易にできる。
【0245】(9)CPU1とCPU2が異なる命令セ
ットや異なる機械語を持つ場合も含めて、セクション宣
言やプリプロセッサ文などによって、CPU1及びCP
U2のプログラムを選択する手段を設けることによっ
て、アセンブラやCコンパイラなどのシステム開発装置
若しくはソフトウェア開発装置を共通に利用可能にで
き、開発効率を向上し、システム開発装置の使用者によ
る不所望な費用の増大を抑止することできる。
【0246】以上本発明者によってなされた発明を実施
形態に基づいて具体的に説明したが、本発明はそれに限
定されるものではなく、その要旨を逸脱しない範囲にお
いて種々変更可能であることは言うまでもない。
【0247】例えば、CPU1及びCPU2のアドレス
空間、プログラミングモデル(レジスタ構成)命令やア
ドレッシングモードや実行タイミングなどの詳細は種々
変更可能である。バスの具体的な回路構成についても種
々変更可能である。CPU2のデータアクセスは、Iバ
ス、外部バス以外に、Pバスに接続するようにしてもよ
い。アドレス空間などによって、自動的に接続するバス
を選択するようにしてもよい。
【0248】CPU2の数も複数にすることができる。
Iバス、Pバス、外部バスなど、それぞれに接続された
3個のCPU2を設けるようにすることもできる。例え
ば、図17のDMACをCPU2とする。それぞれに、
プログラム用メモリを設ければよい。また、内部バスI
AB、IDBと内部バスPAB、PDBを直結してもよ
い。CPU2のプログラムメモリはRAM、PROM、
フラッシュメモリ、マスクROMのほか、EEPROM
や強誘電体メモリなどであってもよい。
【0249】プログラムメモリがEEPROM、フラッ
シュメモリなどの、電気的に書込みや消去が可能である
場合、PROMモードとブートモードの両方を持って良
いし、一方のみであってもよい。これらの電気的に書込
みや消去が可能なメモリの場合、メモリアレイに比較し
て、そのほかの制御回路が大きくなる場合があるが、こ
のような場合には、制御回路を共通化したり、ROMを
物理的に1個で構成してもよい。
【0250】タイマ、SCIなどの割込を要求する機能
ブロック、或いは、パルス出力回路などの割込処理の対
象となる機能ブロックの種類、機能、数などには何等制
約されない。一部の機能を別個の半導体集積回路でなる
ASICなどとすることもできる。
【0251】マイクロコンピュータシステムとしては、
プリンタに限定されないことは言うまでもない。例え
ば、デジタル通信システムなどに用いることができる。
受信回路からバッファRAMへ転送し、復調や誤り訂正
などを行い、更に変調を行って、別のバッファRAMに
格納し、バッファRAMから送信回路へ転送する場合な
ど、受信回路からバッファRAMへの転送、バッファR
AMから送信回路への転送を、CPU2で制御し、その
ほかのCPU1などによるデータ処理と並行して行い、
システム全体としての処理性能を向上することができ
る。
【0252】以上の説明では主として本発明者によって
なされた発明をその背景となった利用分野であるマイク
ロコンピュータに適用した場合について説明したが、そ
れに限定されるものではなく、その他の半導体集積回路
装置にも適用可能である。また、本明細書において、マ
イクロコンピュータの用語はデータプロセッサやマイク
ロプロセッサと等価である。
【0253】
【発明の効果】本願において開示される発明のうち代表
的なものによって得られる効果を簡単に説明すれば下記
の通りである。
【0254】すなわち、第1のデータ処理装置と第2の
データ処理装置とを設け、第2のデータ処理装置はプロ
グラム用のバスとデータ用のバスを独立に持ち、かかる
プログラム用のバスと、第1のデータ処理装置のバスを
独立にし、第2のデータ処理装置のプログラムリードと
第1のデータ処理装置の動作を並列動作可能にすること
よって、マイクロコンピュータ若しくは半導体集積回路
装置によるデータ処理速度を向上させることができ、資
源利用効率を向上できる。割込によるデータ処理のチャ
ネル数に対する制約をなくし、データ処理内容を任意に
設定でき、使い勝手を向上させることができる。
【図面の簡単な説明】
【図1】本発明に係るマイクロコンピュータの一例を示
すブロック図である。
【図2】マイクロコンピュータアドレスマップを示す説
明図である。
【図3】第2のCPU2を例示するブロック図である。
【図4】RAMDを例示するブロック図である。
【図5】マイクロコンピュータをアドレスバス及びデー
タバスの接続状態の観点より例示したブロック図であ
る。
【図6】割込コントローラを例示するブロック図であ
る。
【図7】割込要求ビットと割込許可回路の詳細を例示す
る論理回路図である。
【図8】低消費電力状態を制御する回路の論理回路図で
ある。
【図9】入出力ポートの概略を例示する論理回路図であ
る。
【図10】CPU2の転送(MOV)命令の動作を例示
するフローチャートである。
【図11】マイクロコンピュータの内部バスの動作タイ
ミングを例示するタイミングチャートである。
【図12】本発明に係るマイクロコンピュータの開発環
境の概略を示す説明図である。
【図13】本発明に係るマイクロコンピュータにおける
CPUのためのプログラムリストの例を示す説明図であ
る。
【図14】エミュレーション用プロセッサの概略を示す
ブロック図である。
【図15】エミュレータの概略を例示するブロック図で
ある。
【図16】本発明に係るマイクロコンピュータの第1の
変形例であるマイクロコンピュータを例示するブロック
図である。
【図17】本発明に係るマイクロコンピュータの第2の
変形例であるマイクロコンピュータを例示するブロック
図である。
【図18】本発明に係るマイクロコンピュータをプリン
タ制御に用いたマイクロコンピュータシステムのブロッ
ク図である。
【図19】図18のマイクロコンピュータシステムにお
けるバスの動作タイミングを例示するタイミングチャー
トである。
【図20】PROMを用いてマイクロコンピュータを構
成するときのマイクロコンピュータの一部を例示するブ
ロック図である。
【図21】フラッシュメモリのブートモードにおける動
作制御を例示するフローチャートである。
【符号の説明】
MCU,MCUa,MCUb マイクロコンピュータ 1 第1のCPU 2 第2のCPU 3 ROM 3a PROM 4 RAM 5 RAMD 5a PROM 22 割込コントローラ 23 バスコントローラ 100 DMAC 101 マイクロコンピュータ

Claims (16)

    【特許請求の範囲】
  1. 【請求項1】 第1のデータ処理装置と、第2のデータ
    処理装置と、バス制御手段とを含み、 前記第2のデータ処理装置は、プログラム用のバスと、
    データ用のバスを独立に有し、 前記第2のデータ処理装置のプログラム用のバスは、前
    記第1のデータ処理装置のバスと分離して、独立に動作
    可能とされ、 前記第2のデータ処理装置のデータ用のバスは、前記第
    1のデータ処理装置のバスに結合され、 前記バス制御手段の調停によって、前記第2のデータ処
    理装置のデータ用のバスの使用と、前記第1のデータ処
    理装置のバスの使用とが、選択的に行われるものである
    ことを特徴とするマイクロコンピュータ。
  2. 【請求項2】 前記第2のデータ処理装置のプログラム
    用メモリを更に有し、前記プログラム用メモリは、前記
    第2のデータ処理装置のプログラム用のバスに結合され
    て成るものであることを特徴とする請求項1記載のマイ
    クロコンピュータ。
  3. 【請求項3】 メモリを更に有し、前記メモリは、前記
    第1のデータ処理装置のバスに結合され、前記第1及び
    第2のデータ処理装置によって、読出しまたは書込み可
    能であることを特徴とする請求項2記載のマイクロコン
    ピュータ。
  4. 【請求項4】 制御レジスタ手段を更に有し、前記制御
    レジスタ手段の所定のビットによって、前記第2のデー
    タ処理装置によるデータ転送動作が変更されるものであ
    ることを特徴とする請求項1乃至3の何れか1項記載の
    マイクロコンピュータ。
  5. 【請求項5】 前記制御レジスタ手段は、前記第2のデ
    ータ処理装置が所定の命令を実行することによって、前
    記データ用のバスを使用せずにリード/ライト可能であ
    ることを特徴とする請求項4記載のマイクロコンピュー
    タ。
  6. 【請求項6】 前記制御レジスタ手段の所定のビットに
    よって、前記第2のデータ処理装置によるデータ転送動
    作時に、データ転送制御の為の所定の制御信号が活性状
    態に制御可能にされるものであることを特徴とする請求
    項4又は5記載のマイクロコンピュータ。
  7. 【請求項7】 割込を要求可能な入出力回路と割込制御
    手段を有し、 前記割込を要求可能な入出力回路が出力する割込信号を
    割込制御手段に入力し、 前記割込制御手段は前記第1のデータ処理装置及び第2
    のデータ処理装置に、それぞれ第1の割込み要求信号及
    び第2の割込要求信号を出力し、前記割込信号が活性状
    態となることに呼応して、前記第1の割込要求信号と第
    2の割込要求信号の内の何れを活性状態とするかを選択
    する手段を有して成るものであることを特徴とする請求
    項1乃至6の何れか1項記載のマイクロコンピュータ。
  8. 【請求項8】 前記第2のデータ処理装置が書込み可能
    なレジスタ手段を有し、前記レジスタ手段の状態によっ
    て、前記第2のデータ処理装置が前記第1のデータ処理
    装置に割込を要求可能にされて成るものであることを特
    徴とする請求項1乃至6の何れか1項記載のマイクロコ
    ンピュータ。
  9. 【請求項9】 前記第2のデータ処理装置のプログラム
    用のメモリと、前記第1のデータ処理装置のバスに接続
    されたメモリは、電気的に書込み可能な不揮発メモリで
    あって、 前記第1のデータ処理装置の制御によって、前記両方の
    メモリに書込み可能な手段を有して成るものであること
    を特徴とする請求項3記載のマイクロコンピュータ。
  10. 【請求項10】 前記第2のデータ処理装置のプログラ
    ム用のメモリと、前記第1のデータ処理装置のバスに接
    続されたメモリは、電気的に書込み可能な不揮発メモリ
    であって、 前記不揮発性メモリに対する書込みモードの設定に応答
    して、外部より書込み制御情報を入力するバッファ手段
    と、 前記バッファ手段から供給される書込み制御情報にした
    がって、前記両方のメモリを連続するアドレス空間上に
    配置して、電気的に書込み可能にする制御論理とを更に
    有して成るものであることを特徴とする請求項3乃至9
    の何れか1項記載のマイクロコンピュータ。
  11. 【請求項11】 請求項1乃至10の何れか1項記載の
    マイクロコンピュータを備えた評価用のエミュレーショ
    ン用プロセッサであって、 前記第1のデータ処理装置を停止するためのブレーク割
    込入力端子を有し、前記ブレーク割込入力端子の所定の
    状態に呼応して、前記第1のデータ処理装置がエミュレ
    ーション用プログラム実行状態に遷移したときに、前記
    第2のデータ処理装置はアプリケーションプログラムの
    実行を継続するものであることを特徴とするエミュレー
    ション用プロセッサ。
  12. 【請求項12】 前記第1のデータ処理装置のバスの状
    態を出力する手段を有し、更に、前記第1のデータ処理
    装置のバスを、前記第1のデータ処理装置又は第2のデ
    ータ処理装置の何れが使用しているかを示す為の信号を
    出力する手段を有して成るものであることを特徴とする
    請求項11記載のエミュレーション用プロセッサ。
  13. 【請求項13】 前記第2のデータ処理装置のプログラ
    ム用のバスのアドレス又は前記第2のデータ処理装置の
    プログラムカウント手段の出力アドレス情報の、少なく
    とも一方の所定のビットを出力する手段を有して成るも
    のであることを特徴とする請求項11又は12記載のエ
    ミュレーション用プロセッサ。
  14. 【請求項14】 請求項11乃至13の何れか1項記載
    のエミュレーション用プロセッサを搭載したエミュレー
    タであって、 前記第1のデータ処理装置のバスの状態、及び前記第1
    のデータ処理装置のバスを前記第1のデータ処理装置又
    は第2のデータ処理装置のいずれが使用しているかを示
    す為の信号を、蓄積するトレース回路を含んで成るもの
    であることを特徴とするエミュレータ。
  15. 【請求項15】 請求項1乃至10の何れか1項記載の
    マイクロコンピュータを含んだマイクロコンピュータシ
    ステムであって、 前記マイクロコンピュータの外部バスに、リード・ライ
    ト可能な記憶装置とインタフェース回路が接続され、 前記第2のデータ処理装置は、前記記憶装置と前記イン
    タフェース回路との間のデータ転送制御が可能なもので
    あることを特徴とするマイクロコンピュータシステム。
  16. 【請求項16】 請求項1乃至10の何れか1項記載の
    マイクロコンピュータを含んだ半導体集積回路装置であ
    って、前記マイクロコンピュータの外部バスに接続され
    たデータ保持手段を更に有して成るものであることを特
    徴とする半導体集積回路装置。
JP29181299A 1999-10-14 1999-10-14 マイクロコンピュータ Withdrawn JP2001109708A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP29181299A JP2001109708A (ja) 1999-10-14 1999-10-14 マイクロコンピュータ

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP29181299A JP2001109708A (ja) 1999-10-14 1999-10-14 マイクロコンピュータ

Publications (1)

Publication Number Publication Date
JP2001109708A true JP2001109708A (ja) 2001-04-20

Family

ID=17773746

Family Applications (1)

Application Number Title Priority Date Filing Date
JP29181299A Withdrawn JP2001109708A (ja) 1999-10-14 1999-10-14 マイクロコンピュータ

Country Status (1)

Country Link
JP (1) JP2001109708A (ja)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010193979A (ja) * 2009-02-23 2010-09-09 Kyoraku Sangyo Kk メモリ制御装置及び遊技機
JP2014504749A (ja) * 2011-06-24 2014-02-24 株式会社日立製作所 ストレージシステム
US9966124B2 (en) 2016-09-02 2018-05-08 Toshiba Memory Corporation Memory device
JP2018198017A (ja) * 2017-05-24 2018-12-13 ルネサスエレクトロニクス株式会社 半導体装置及びデータ処理システム
CN112181319A (zh) * 2019-07-04 2021-01-05 富士施乐株式会社 信息处理装置和半导体装置
CN114328323A (zh) * 2021-12-01 2022-04-12 北京三快在线科技有限公司 一种数据中转单元及基于数据中转单元的数据传输方法

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010193979A (ja) * 2009-02-23 2010-09-09 Kyoraku Sangyo Kk メモリ制御装置及び遊技機
JP2014504749A (ja) * 2011-06-24 2014-02-24 株式会社日立製作所 ストレージシステム
US9966124B2 (en) 2016-09-02 2018-05-08 Toshiba Memory Corporation Memory device
JP2018198017A (ja) * 2017-05-24 2018-12-13 ルネサスエレクトロニクス株式会社 半導体装置及びデータ処理システム
CN112181319A (zh) * 2019-07-04 2021-01-05 富士施乐株式会社 信息处理装置和半导体装置
CN114328323A (zh) * 2021-12-01 2022-04-12 北京三快在线科技有限公司 一种数据中转单元及基于数据中转单元的数据传输方法

Similar Documents

Publication Publication Date Title
US6449709B1 (en) Fast stack save and restore system and method
US6085278A (en) Communications interface adapter for a computer system including posting of system interrupt status
JP3364495B2 (ja) 追加ボード
US5826093A (en) Dual function disk drive integrated circuit for master mode and slave mode operations
US5577230A (en) Apparatus and method for computer processing using an enhanced Harvard architecture utilizing dual memory buses and the arbitration for data/instruction fetch
JP4226085B2 (ja) マイクロプロセッサ及びマルチプロセッサシステム
JPH06250871A (ja) Cpuコア、該cpuコアを有するasic、及び該asicを備えたエミュレーションシステム
JPS63253459A (ja) 高性能インターフェイスおよびその達成方法
JPS62243058A (ja) マルチプロセツサシステムの割込制御方法
JPH0696008A (ja) 情報処理装置
JP2001109708A (ja) マイクロコンピュータ
US7310717B2 (en) Data transfer control unit with selectable transfer unit size
JP2004227049A (ja) データ転送装置、半導体集積回路及びマイクロコンピュータ
JP3839068B2 (ja) 半導体集積回路装置
JP4322284B2 (ja) シングルチップマイクロコンピュータ
JP3323341B2 (ja) エミュレーション用プロセッサおよびそれを搭載したエミュレータ
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
JPH0227696B2 (ja) Johoshorisochi
JPS63310060A (ja) マルチプロセツサシステム
JP2006040310A (ja) 半導体集積回路装置およびマイクロコンピュータ
JP3905660B2 (ja) マイクロコンピュータ及びマイクロコンピュータシステム
EP0813152B1 (en) Memory protection mechanism
JPH02252044A (ja) コプロセッサ及びデータ転送制御方式
JP2005353105A (ja) データ処理装置及びマイクロコンピュータ
JP2001067305A (ja) 半導体集積回路及びマイクロコンピュータ

Legal Events

Date Code Title Description
A300 Withdrawal of application because of no request for examination

Free format text: JAPANESE INTERMEDIATE CODE: A300

Effective date: 20070109