(57)【特許請求の範囲】
【請求項１】
外部バスを使用できるバスマスタ手段を内蔵し、コマンドによって動作が指示される外部回路と接続可能なデータ処理装置であって、バスマスタ手段による外部の所定アドレス空間に対するアクセスの指示に応答して、当該アクセスの指示に対応する外部バスアクセスサイクルの生成に先立って、上記所定アドレス空間に対して上記外部回路の動作を指示するためのコマンドをライトする第１のコマンドライトサイクルを生成するバス制御手段を備え、
上記バス制御手段は、上記バスマスタ手段によるアクセスアドレスに応ずるアドレス空間を判定するアドレス空間判定手段と、第１のコマンドライトサイクルを起動すべきアドレス空間を指定するためのアドレス空間指定手段と、上記アドレス空間判定手段で判定されたアドレス空間と上記アドレス空間指定手段で指定されたアドレス空間とが一致するか否かを判定する一致判定手段と、上記アドレス空間判定手段にて判定されたアドレス空間に対して外部バスアクセスサイクルを生成すると共に、上記一致判定手段による一致の判定結果に応答して上記第１のコマンドライトサイクルを生成するタイミング制御手段と、を含み、
上記アドレス空間判定手段は、書換え可能な制御ビットの値に応じて前記アドレス空間指定手段で指定可能な所定アドレス空間を別のアドレス空間と判定することが許容されることを特徴とするデータ処理装置。
【請求項２】
上記バス制御手段は、第１のコマンドライトサイクルによってライトすべきコマンドを書換え可能に保持するコマンド記憶手段を含んで成るものであることを特徴とする請求項１記載のデータ処理装置。
【請求項３】
上記バスマスタ手段としてＣＰＵを含み、上記バス制御手段は、制御レジスタ手段と、ＣＰＵが該制御レジスタ手段の第１のビットを操作することによって所定のアドレス空間に所定のコマンドデータをライトする第２のコマンドライトサイクルを生成するタイミング制御手段とを更に備えて成るものであることを特徴とする請求項１又は２項記載のデータ処理装置。
【請求項４】
上記バス制御手段は、第２のコマンドライトサイクルで出力すべきアドレスを保持するアドレス記憶手段を更に備えて成るものであることを特徴とする請求項３記載のデータ処理装置。
【請求項５】
上記バス制御手段は、ＣＰＵが上記制御レジスタ手段の第２のビットを操作することにより、所定の外部端子から入力される信号の変化を待つポーリング制御を行うための外部リードサイクルを生成するものであることを特徴とする請求項３又は４記載のデータ処理装置。
【請求項６】
外部に対するバスサイクルが上記コマンドライトサイクルであるか否かを示す識別信号を出力するためのエミュレーションインタフェースを更に備えて成るものであることを特徴とする請求項１乃至５の何れか１項記載のデータ処理装置。
【請求項７】
ＣＰＵは外部からの所定の割込みに基づき上記バス制御手段による上記第１のコマンドサイクルの生成を禁止させる制御信号を出力するものであることを特徴とする請求項３記載のデータ処理装置。
【請求項８】
上記バスマスタ手段は、ダイレクトメモリアクセスコントローラであることを特徴とする請求項１乃至６の何れか１項記載のデータ処理装置。
【請求項９】
上記外部回路はフラッシュメモリであることを特徴とする請求項１乃至８の何れか１項記載のデータ処理装置。
【請求項１０】
上記データ処理装置は、単一の半導体チップ上に形成されていることを特徴とする請求項１乃至９の何れか１項記載のデータ処理装置。
【請求項１１】
請求項１乃至８の何れか１項記載のデータ処理装置と、このデータ処理装置に接続された上記外部回路と、を備えて成るものであることを特徴とするデータ処理システム。
【請求項１２】
上記データ処理装置と上記外部回路とは、別の半導体チップ上に形成されて成るものであることを特徴とする請求項１１記載のデータ処理システム。
【請求項１３】
請求項７記載のデータ処理装置と、エミュレータとを備え、
上記データ処理装置は、外部に対するバスサイクルが上記コマンドライトサイクルであるか否かを示す識別信号を出力するためのエミュレーションインタフェースを更に備え、
上記エミュレータは、上記データ処理装置に含まれるエミュレーションインタフェースに結合され、トレースメモリとブレーク制御回路を有し、上記トレースメモリは上記データ処理装置のバス情報と共に上記識別信号を入力して蓄積し、上記ブレーク制御回路は上記データ処理装置による制御状態が予め設定された状態に到達したときに上記割込み信号としてブレーク信号を該データ処理装置に出力するものであることを特徴とするデータ処理システム。
【請求項１４】
外部バスを使用できるバスマスタ手段を内蔵し、コマンドによって動作が指示されるフラッシュメモリと接続可能なデータ処理装置であって、
上記バスマスタ手段による外部の所定アドレス空間に対するアクセスの指示に応答して、当該アクセスの指示に対応する外部バスアクセスサイクルの生成に先立って上記所定アドレス空間に対して上記フラッシュメモリの動作を指示するためのコマンドをライトするコマンドライトサイクルを生成するバス制御手段と、上記コマンドライトによって指示されたフラッシュメモリの内部動作状態を示す信号の外部入力端子とを含んで、１個の半導体基板に形成され、
上記バス制御手段は、上記バスマスタ手段によるアクセスアドレスに応ずるアドレス空間を判定するアドレス空間判定手段と、第１のコマンドライトサイクルを起動すべきアドレス空間を指定するためのアドレス空間指定手段と、上記アドレス空間判定手段で判定されたアドレス空間と上記アドレス空間指定手段で指定されたアドレス空間とが一致するか否かを判定する一致判定手段と、上記アドレス空間判定手段にて判定されたアドレス空間に対して外部バスアクセスサイクルを生成すると共に、上記一致判定手段による一致の判定結果に応答して上記第１のコマンドライトサイクルを生成するタイミング制御手段と、を含み、
上記アドレス空間判定手段は、書換え可能な制御ビットの値に応じて前記アドレス空間指定手段で指定可能な所定アドレス空間を別のアドレス空間と判定することが許容されることを特徴とするデータ処理装置。
【発明の詳細な説明】
【０００１】
【産業上の利用分野】
本発明は、データ処理装置にかかり、例えば動作の指示にコマンドを必要とするメモリ例えばフラッシュメモリを接続するマイクロコンピュータなどに適用して利用して有効な技術に関するものである。また、本発明はそのようなデータ処理装置を応用したシステムの評価又はそのシステムのためのソフトウェアのデバッグを行うエミュレータに関する。
【０００２】
【従来の技術】
平成５年３月（株）日立製作所発行『Ｈ８／３００３  ハードウェアマニュアル』に記載されるように、半導体集積回路でなるマイクロコンピュータは中央処理装置であるＣＰＵのアドレス空間の一部または全部を外部アドレスとして、アドレスバス・データバス・制御信号を外部と入出力し、外部に接続したメモリまたはその他回路をリード／ライトできる。このとき、所定のレジスタの設定によって、アドレス空間を分割した領域に対応するエリアデコード信号例えばチップ選択信号を出力したり、ロウアドレス／カラムアドレスをマルチプレクスして出力したり、各種ストローブ信号の出力波形を変更したりして、マスクＲＯＭ、スタティックＲＡＭ（ＳＲＡＭ）、疑似スタティックＲＡＭ（ＰＳＲＡＭ）、ダイナミックＲＡＭ（ＤＲＡＭ）などの各種メモリを直接接続し、リード／ライトを可能にしている。
【０００３】
【発明が解決しようとする課題】
しかしながら、リード／ライト時にメモリに与えられる又は読み出される、アドレス／データはメモリの記憶情報とは直接関係ない場合がある。例えば、１９９３年９月（株）日立製作所発行『日立ＩＣメモリ２』ｐｐ２８０−３０４に記載されるフラッシュメモリのように、メモリの動作を指定するコマンドを予じめデータバスから与えなければならないものがある。
【０００４】
図２６には上記フラッシュメモリのコマンドの一例が示される。
同図においてＷはライト動作、Ｒはリード動作、×は任意値、ＲＡはリードアドレス、ＲＤはリードデータ、ＢＡはブロックアドレス、ＰＡは書込みアドレス、ＰＤは書込みデータ、Ｈ’は１６進数を示す。ブロックアドレスＢＡはブロック単位での消去対象とされるブロックを指定するためのアドレス情報である。
例えば、書込みを行なう場合にはデータのライトに先だって、コマンド（Ｈ’１０）をライトし、続いて、書込むべきアドレス（ＰＡ）に、書込むべきデータ（ＰＤ）のライトを行なうものである。
【０００５】
ＣＰＵによる書込み動作のプログラム例を以下に示す。命令は上記平成５年３月（株）  日立製作所発行『Ｈ８／３００３  ハードウェアマニュアル』に記載のＣＰＵと同一にしてある。
ＭＯＶ．Ｂ  ＃ＣＭＤ，Ｒ０Ｌ………（１）
ＭＯＶ．Ｂ  Ｒ０Ｌ，＠ＦＭＥＭ……（２）
ＭＯＶ．Ｂ  ＃ＤＡＴＡ，Ｒ０Ｌ……（３）
ＭＯＶ．Ｂ  Ｒ０Ｌ，＠ＷＡＤＲ……（４）
上記命令の記述において、ＣＭＤはコマンドの値（図２６の例ではＨ’１０）、ＤＡＴＡは書込みデータであり、＃はイミディエイトデータを示す。また、ＦＭＥＭはフラッシュメモリの任意のアドレス、ＷＡＤＲはライトアドレスである。＠はメモリアドレスを示す。上記命令（１）はコマンドＣＭＤをＣＰＵのレジスタＲ０Ｌに転送する命令、（２）はレジスタＲ０Ｌのコマンドをフラッシュメモリのアドレス＠ＦＭＥＭに転送する命令、（３）はＣＰＵのレジスタＲ０Ｌに書込みデータＤＡＴＡを転送する命令、（４）はレジスタＲ０Ｌのデータを書込みアドレスＷＡＤＲに転送する命令である。
【０００６】
アドレスは絶対アドレスとして指定するほか、レジスタ間接などとすることができる。書込みデータも汎用レジスタ上に用意されていてもよい。上記命令記述から明らかなように、１バイトデータの書込みでは、コマンドをフラッシュメモリに書込むための命令（１），（２）が必要であるから、フラッシュメモリに対するデータ書込みに直接必要な命令に対して全体で２倍の命令実行が必要になる。これによって、プログラムサイズも増加し、処理速度も低下してしまう。
【０００７】
ＣＰＵは任意のプログラムを実行できるので、上述のようにソフトウェアの負担増を覚悟すれば、コマンド方式によるフラッシュメモリへのデータ書込みなどを行うことができる。しかしながら、ダイレクトメモリアクセスコントローラ（ＤＭＡＣ）などは、単純なデータ転送のみが可能であり、アクセス対象が、例えばＳＲＡＭであるか、フラッシュメモリであるかを判定して、さらにコマンドを挿入するようなことは容易ではない。本発明者の検討によれば、その様なデータの書込みをＤＭＡＣで実現しようとする場合、転送元には書込みデータと共にコマンドも格納しておかなければならず、実際にその様なことを行おうとすれば、ＤＭＡ転送に先立つＣＰＵの負担が格段に増大して、システムのスループットを著しく低下させてしまう。換言すれば、それは現実的な手法ではない。なお、ＤＭＡＣの例は上記平成５年３月（株）日立製作所発行『Ｈ８／３００３  ハードウェアマニュアル』に記載されている。また、ＤＭＡＣ以外にも、データトランスファコントローラ（ＤＴＣ）なども同様である。ＤＴＣは、例えば、昭和６３年１２月（株）日立製作所発行『Ｈ８／５３２  ハードウェアマニュアル』など記載されている。
【０００８】
本発明の目的は、コマンドによって動作が指示されるフラッシュメモリなどの周辺回路に対するコマンド転送のためのバスサイクルを自動的に追加若しくは挿入できるデータ処理装置を提供することにある。
本発明の別の目的は、上記バスサイクルの自動的な追加若しくは挿入を所要の周辺回路に対するアクセスのためのバス情報に従って行うデータ処理装置を提供することにある。
本発明の別の目的は、上記バスサイクルの自動的な追加若しくは挿入を所定の内部レジスタに対する制御情報の書込みによって行うデータ処理装置を提供することにある。
本発明の更に別の目的は、コマンドによって動作が指示されるフラッシュメモリなどをの周辺回路をアクセスするための命令実行時間を短縮できると共に、プログラムサイズを小さくできるデータ処理装置を提供することにある。
本発明のその他の目的は、コマンドによって動作が指示されるフラッシュメモリなどの周辺回路に直結してそれをアクセスできるＤＭＡＣなどのデータ処理装置を提供することにある。
また、本発明は、コマンド転送のためのバスサイクルを自動的に追加若しくは挿入できる上記データ処理装置の機能が当該データ処理装置を応用したシステムの評価やそのシステムのためのソフトウェアデバッグを行うエミュレータの使い勝手を低下させないようにする技術を提供することにある。
【０００９】
本発明の前記並びにその他の目的と新規な特徴は本明細書の記述及び添付図面から明らかになるであろう。
【００１０】
【課題を解決するための手段】
本願において開示される発明のうち代表的なものの概要を簡単に説明すれば下記の通りである。
【００１１】
（１）外部バスを使用できるバスマスタ手段（例えばＣＰＵ２やＤＭＡＣ３）を内蔵し、コマンドによって動作が指示される外部回路（例えばフラッシュメモリ１０）と接続可能なデータ処理装置（例えばシングルチップマイクロコンピュータ１）であって、バスマスタ手段による外部の所定アドレス空間に対するアクセスの指示に応答して、当該アクセスの指示に対応する外部バスアクセスサイクルの生成に先立って、上記所定アドレス空間に対して上記外部回路の動作を指示するためのコマンドをライトする第１のコマンドライトサイクルを生成するバス制御手段（例えばバスコントローラ４）を備えて成る。
【００１２】
（２）上記バス制御手段は、第１のコマンドライトサイクルを起動すべきアドレス空間を指定するためのアドレス空間指定手段（例えばレジスタＣＭＤＣＲ）と、バスマスタ手段によるアクセスアドレスが上記アドレス空間指定手段で指定されたアドレス空間に含まれるか否かを判定する判定手段（例えば制御回路４１）と、判定手段による含まれるとの検出結果に基づいて上記第１のコマンドライトサイクルを生成するタイミング制御手段（例えば図１７に示される構成を含むタイミング制御回路４４）と、を含んで構成できる。
【００１３】
（３）第１のコマンドライトサイクルによってライトすべきコマンドはコマンド記憶手段（例えばレジスタＷＣＭＤ，ＣＤＡＴＡ０，ＣＤＡＴＡ１）に書換え可能に保持させておくことができる。
【００１４】
（４）更に上記バス制御手段は、制御レジスタ手段（例えばレジスタＣＮＴＬ）と、ＣＰＵが該制御レジスタ手段の第１のビット（例えばビットＢＥ０〜ＢＥ３）を操作することによって所定のアドレス空間に所定のコマンドデータ（例えばフラッシュメモリのブロック消去のためのコマンド）をライトする第２のコマンドライトサイクルを生成するタイミング制御手段（例えば第１９図に示される構成を含むタイミング制御回路４４）とを更に備えることができる。
【００１５】
（５）上記第２のコマンドライトサイクルで出力すべきアドレスはアドレス記憶手段（例えばレジスタＢＡＤＲ０〜ＢＡＤＲ３）に格納させておくことができる。
【００１６】
（６）更に上記バス制御手段は、ＣＰＵが上記制御レジスタ手段の第２のビット（例えばビットＲＥ，ビットＰＯＬ）を操作することにより、所定の外部端子（例えばレディー入力端子ＲＥＡＤＹ）から入力される信号（例えばフラッシュメモリの出力信号ＲＤＹ／ＢＵＳＹ＊）の変化を待つポーリング制御を行うための外部リードサイクルを生成するタイミング制御手段（例えば第１９図に示される構成を含むタイミング制御回路４４）とさらに備えることができる。
【００１７】
（７）エミュレーション用のデータ処理装置に対しては、外部に対するバスサイクルが上記コマンドライトサイクルであるか否かを示す識別信号を出力するためのエミュレーションインタフェースを設けることが望ましい。また、エミュレーション用のデータ処理装置においてそのＣＰＵは外部からの所定の割込み（例えばブレーク信号）に基づき上記バス制御手段による上記第１のコマンドサイクルの生成を禁止させる制御信号を出力させるようにする。このようなデータ処理装置は、当該データ処理装置に含まれるエミュレーションインタフェースに結合されるエミュレータとによってデータ処理システムを構成することができる。上記エミュレータは、トレースメモリとブレーク制御回路を有し、トレースメモリは上記データ処理装置のバス情報と共に上記識別信号を入力して蓄積し、ブレーク制御回路は上記データ処理装置による制御状態が予じめ設定された状態に到達したときに上記割込み信号としてブレーク信号を該データ処理装置に出力するものである。
【００１８】
（８）データ処理装置は、上記バスマスタ手段としてダイレクトメモリアクセスコントローラを更に備え、１個の半導体基板にシングルチップマイクロコンピュータとして形成構成することができる。このようなデータ処理装置は、例えば当該データ処理装置に直結された外部回路としてのフラッシュメモリを備えてデータ処理システムを構成することができる。
【００１９】
（９）外部バスを使用できるバスマスタ手段を内蔵し、コマンドによって動作が指示されるフラッシュメモリと接続可能なデータ処理装置は、上記バスマスタ手段による外部の所定アドレス空間に対するアクセスの指示に応答して、当該アクセスの指示に対応する外部バスアクセスサイクルの生成に先立って上記所定アドレス空間に対して上記フラッシュメモリの動作を指示するためのコマンドをライトするコマンドライトサイクルを生成するバス制御手段と、上記コマンドライトによって指示されたフラッシュメモリの内部動作状態を示す信号の外部入力端子とを含んで、１個の半導体基板に形成して構成できる。
【００２０】
【作用】
上記した手段（１）から（３）によれば、フラッシュメモリのような外部回路に割当てられた所定のアドレス空間がアクセスされると、そのアクセスに先立って、当該外部回路の動作を指示するコマンドをライトするための第１のコマンドライトサイクルが自動的に挿入される。このことは、例えばフラッシュメモリに対するバイト又はページ単位での書込みに際して毎回コマンドを書込むための処理とそれを規定するプログラム記述を不要にする。
【００２１】
上記した手段（４），（５）によれば、内蔵制御レジスタの所定のビットがＣＰＵによって操作されると、当該操作の次に、外部回路の動作を指示するコマンドをライトするための第２のコマンドライトサイクルが自動的に挿入される。このことは、例えばフラッシュメモリに対するブロック消去のような複数回に分けたコマンドライトが必要な場合にも、命令記述は制御レジスタに対する書込みなどを規定すればよく、このことが、上記同様データ処理効率の向上とプログラムサイズの縮小化とを実現する。
【００２２】
上記手段（６）によれば、ポーリング制御のための外部リードサイクルをＣＰＵによる内蔵制御レジスタの所定ビットの操作によって開始し維持することは、やはり上記同様外部バスサイクルの生成という点においてデータ処理効率の向上とプログラムサイズの縮小化とを実現する。
【００２３】
上記した手段（７）によれば、上記特別に挿入されたコマンドライトサイクルは対応する命令記述が存在しないが、そのことが、トレース情報から命令実行軌跡を検証するエミュレーションの妨げにならに様に、上記識別信号は特別に挿入されたコマンドライトサイクルであることを指し示すように作用する。また、ブレークされた後にデータ処理装置の動作空間が切換えられてエミュレーションのためのコントロールプログラムが実行される状態において、コマンドライトサイクルを挿入すべきアドレスに重ねてコントロール用のＲＡＭなどが割当てられるような場合、自動的にコマンドライトサイクルが発生して誤って当該ＲＡＭのデータが書換えられたりしないように作用し、コマンドライトサイクルを自動的に追加若しくは挿入できる上記データ処理装置の機能が当該データ処理装置を応用したシステムの評価やそのシステムのためのソフトウェアデバッグを行うエミュレータの使い勝手を低下させないようにする。
【００２４】
上記した手段（８）に明示的に示されるようにバスマスタ手段がダイレクトメモリアクセスコントローラであっても、上記コマンドライトサイクルの自動挿入によって、ダイレクトメモリアクセスコントローラもそのようなコマンド形式のフラッシュメモリをデータ転送元又はデータ転送先として利用することを可能にする。
【００２５】
上記した手段（９）のデータ処理装置によれば、コマンドによって動作が指示されるフラッシュメモリとのインタフェースの簡素化及び使い勝手の向上を達成する。
【００２６】
【実施例】
図１には本発明に係るデータ処理装置の一実施例であるシングルチップマイクロコンピュータが示される。
同図に示されるシングルチップマイクロコンピュータ１は、ＣＰＵ２、ＤＭＡＣ３、バスコントローラ（ＢＳＣ）４、ＲＯＭ５、ＲＡＭ６、タイマ７、シリアルコミュニケーションインタフェース（ＳＣＩ）８、第１乃至第９入出力ポートＩＯＰ１〜ＩＯＰ９、クロック発振器（ＣＰＧ）９の機能ブロック乃至はモジュールから構成され、公知の半導体製造技術により１つの半導体基板上に半導体集積回路として形成される。
【００２７】
上記シングルチップマイクロコンピュータ１は、電源端子として、グランドレベル端子Ｖｓｓ、電源電圧レベル端子Ｖｃｃ、その他専用制御端子として、リセット端子ＲＥＳ、スタンバイ端子ＳＴＢＹ、モード制御端子ＭＯＤＥ、クロック入力端子ＥＸＴＡＬ、ＸＴＡＬを有する。それらは外部端子である。
クロック入力端子ＥＸＴＡＬ、ＸＴＡＬに接続される、図示はされない水晶振動子に基づいて、クロック発振器９が生成するシステムクロックφ１、φ２に同期して、シングルチップマイクロコンピュータ１は動作する。或は外部クロックをＥＸＴＡＬ端子に入力してもよい。システムクロックφ１、φ２の１周期を１ステートと呼ぶ。システムクロックφ１、φ２はノン・オーバーラップの２相クロックとされ、φ２はφ１に対して実質的に反転若しくは位相が１８０°ずらされたクロックとされる。
【００２８】
上記機能ブロックは、内部バスによって相互に接続される。内部バスはアドレスバス・データバスの他、リード信号、ライト信号、さらにバスサイズ信号、そしてシステムクロックφ１、φ２などを含む制御バスなどによって構成される。内部アドレスバスには、ＩＡＢ、ＰＡＢが存在し、内部データバスにはＩＤＢ、ＰＤＢが存在する。ＩＡＢ、ＩＤＢはＣＰＵ２、ＲＯＭ５、ＲＡＭ６、バスコントローラ４、入出力ポートＩＯＰ１〜ＩＯＰ９の一部に接続される。ＰＡＢ、ＰＤＢはバスコントローラ４、タイマ７、ＳＣＩ８、入出力ポートＩＯＰ１〜９に接続される。ＩＡＢとＰＡＢ、ＩＤＢとＰＤＢは、それぞれバスコントローラ４でインタフェースされる。特に制限されないが、ＰＡＢとＰＤＢはそれが接続されている機能ブロック内のレジスタアクセスに専ら用いられる。
【００２９】
入出力ポートＩＯＰ１〜ＩＯＰ９は、外部バス信号と、入出力回路の入出力信号との入出力に兼用とされている。これらは、動作モードあるいはソフトウエアの設定により、機能を選択されて、使用される。入出力ポートＩＯＰ１〜３はアドレスバス出力、入出力ポートＩＯＰ４及びＩＯＰ５はデータバス入出力、入出力ポートＩＯＰ６及びＩＯＰ７はバス制御信号と兼用されている。外部アドレス、外部データは、それぞれ、これらの入出力ポートに含まれる図示しないバッファ回路を介してＩＡＢ、ＩＤＢと接続されている。ＰＡＢ、ＰＤＢは入出力ポートやバスコントローラ４などの内蔵レジスタをリード／ライトするために使用され、外部バスとは直接の関係はない。
【００３０】
内部バス及び外部バス共に１６ビットバス幅とされ、バイトサイズ（８ビット）及びワードサイズ（１６ビット）のリード／ライトが行われるようになっている。なお、外部バスは８ビット幅とすることもできる。
【００３１】
バス制御信号には、後述するエリア選択信号ＣＳ０＊〜ＣＳ７＊、リード信号ＲＤ＊、ライト信号ＨＷＲ＊，ＬＷＲ＊、カラムアドレスストローブ信号ＣＡＳ＊、ウエィト信号ＷＡＩＴ＊、レディ信号ＲＥＡＤＹなどがある。
【００３２】
リセット端子ＲＥＳにリセット信号が加えられると、モード制御端子ＭＯＤＥで与えられる動作モードを取り込み、シングルチップマイクロコンピュータ（以下単にマイクロコンピュータとも記す）１はリセット状態にされる。動作モードは、特に制限はされないものの、内蔵ＲＯＭ５の有効／無効、アドレス空間を１６Ｍバイトまたは１Ｍバイト、データバス幅の初期値を８ビットまたは１６ビットから選択する。必要に応じてモード制御端子ＭＯＤＥは複数端子とされ、これらの端子への入力状態の組合せで動作モードが決定される。
【００３３】
内蔵ＲＯＭ５が無効にされると、外部アドレスが有効とされ、ＲＯＭ５に相当するアドレスは外部アドレスとされる。内蔵ＲＯＭ５は、マスクＲＯＭまたはＰＲＯＭ（プログラマブルＲＯＭ）などとされる。マスクＲＯＭは、その内容を半導体集積回路の製造工程で書込むため、ユーザがプログラム作成してからマイクロコンピュータを入手するまでの時間が著しく長い。また、書替えを行なうことができない。ＰＲＯＭは、ユーザがプログラムを書込むことができるが、システムに装着したまま書き換えることができない。或は、マイクロコンピュータに内蔵可能なＲＯＭ５の記憶容量は、ＲＯＭ単体程大きくはなく、ユーザが所望のプログラム規模を全て内蔵ＲＯＭ５に格納することができるとは限らない。このため、内蔵ＲＯＭを用いず、外部にプログラム格納用のＲＯＭを、マイクロコンピュータとは別に設けることが考えられる。マイクロコンピュータをシステムに装着したまま、プログラム格納用の外部ＲＯＭを交換することによって、プログラム作成からシステムを得るまでの時間を短縮したり、システムの仕様変更を行なったりすることができる。以後は、内蔵ＲＯＭを使用せず、外部にプログラムＲＯＭを設ける場合について説明する。
【００３４】
リセット状態を解除すると、ＣＰＵ２は、スタートアドレスをリードして、このスタートアドレスから命令のリードを開始するリセット例外処理を行なう。前記スタートアドレスは、特に制限はされないものの０番地から始まる領域に格納されているものとする。その後、ＣＰＵ２は前記スタートアドレスから順次命令を実行する。
【００３５】
ＤＭＡＣ３は、ＣＰＵ２の制御に基づいてデータの転送を行なう。ＣＰＵ２とＤＭＡＣ３は互いに排他的に内部バス・外部バスを使用してリード／ライト動作を行なう。ＣＰＵ２またはＤＭＡＣ３のいずれが動作するかの調停はバスコントローラ４が行なう。
【００３６】
バスコントローラ４はＣＰＵ２またはＤＭＡＣ３の動作に呼応して、バスサイクルを構成する。即ち、ＣＰＵ２またはＤＭＡＣ３の出力するアドレス、リード信号、ライト信号、バスサイズ信号に基づき、バスサイクルを形成する。例えば、ＲＡＭ６に相当するアドレスをＣＰＵ２が内部アドレスバスＩＡＢに出力した場合、バスサイクルは１ステートとされ、バイト／ワードサイズに拘らず、１ステートでリード／ライトが行われるようになっている。タイマ７、ＳＣＩ８、入出力ポートＩＯＰ１〜ＩＯＰ９に相当するアドレスをＣＰＵ２が内部アドレスバスＩＡＢに出力した場合、バスサイクルは３ステートとされ、内部アドレスバスＩＡＢの内容が内部アドレスバスＰＡＢに出力され、バイト／ワードサイズに拘らず、３ステートでリード／ライト動作を行なうようになっている。この制御はバスコントローラ４が行う。
【００３７】
図２にはマイクロコンピュータ１のアドレスマップの一例が示される。
アドレス空間は全体で１６Ｍバイトとされ、アドレス空間は２Ｍバイトずつの８エリアに分割されている。これらのエリアに対応したエリア選択信号ＣＳ０＊〜ＣＳ７＊が出力される。例えばエリア０をアクセスするとエリア選択信号ＣＳ０＊が活性状態になる。エリア選択信号はそれが入力される回路にとってチップ選択信号とされるような信号である。
【００３８】
それぞれのエリアのアクセス方法は、バスコントローラ４に含まれる、夫々８ビットの５個のレジスタＢＳＷＣＲ、ＡＳＴＣＲ、ＷＳＣＲＡ−Ｂ、ＭＰＸＣＲ、ＣＭＤＣＲによって指定される。
それぞれのレジスタの各ビットが対応する番号のエリアの制御を行なう。これらの対応が図に示されている。例えば、エリア０はＢＳＷＣＲ、ＡＳＴＣＲ、ＷＳＣＲＡ−Ｂ（ＷＳＣＲＡ及びＷＳＣＲＢ）、ＭＰＸＣＲ、ＣＭＤＣＲの各ビット０によって制御される。
これらのレジスタはＣＰＵ２から常にリード／ライト可能である。レジスタＢＳＷＣＲの初期値は動作モードによって決定される。即ち、データバス幅の初期値を８ビットとするとＨ’ＦＦ、１６ビットとするとＨ’００に初期化される。レジスタＡＳＴＣＲ、ＷＳＣＲＡ−Ｂの初期値はＨ’ＦＦとされ、レジスタＭＰＸＣＲ、ＣＭＤＣＲの初期値はＨ’００とされる。
【００３９】
上記レジスタＢＳＷＣＲは各エリアのバス幅を指定する。バス幅は８、１６ビットが選択される。対応するビットを”０”にクリアすると１６ビットバス、”１”にセットすると８ビットバスが選択される。
【００４０】
上記レジスタＡＳＴＣＲ及びＷＳＣＲＡ−Ｂは各エリアのバスサイクル数を指定する。バスサイクル数は２、３、４、５、６ステート数が選択される。レジスタＡＳＴＣＲの対応するビットを”０”にクリアすると２ステートアクセス、”１”にセットすると、レジスタＷＳＣＲＡ−Ｂで指定したステート数になる。レジスタＷＳＣＲＡ−Ｂはウェイトステート数を設定する。レジスタＷＳＣＲＡ−Ｂの対応するビットをいずれも”０”にクリアするとウェイトステートなし（３ステートアクセス）とされ、レジスタＷＳＣＲＡの対応するビットを”０”にクリアし、レジスタＷＳＣＲＢの対応するビットを”１”にセットすると１ステートウェイト（４ステートアクセス）とされ、レジスタＷＳＣＲＡの対応するビットを”１”にセットし、レジスタＷＳＣＲＢの対応するビットを”０”にクリアすると２ステートウェイト（５ステートアクセス）とされ、レジスタＷＳＣＲＡ−Ｂの対応するビットをいずれも”１”にセットすると３ステートウェイト（６ステートアクセス）とされる。レジスタＷＳＣＲＡ−Ｂで挿入されたウェイトをプログラマブルウェイトと呼び、マイクロコンピュータの外部から指示される外部ウェイトとは区別される。
【００４１】
レジスタＭＰＸＣＲはアドレスマルチプレクスを指定する。バスサイクルが３ステート以上のとき有効である。例えば１６ビット構成の４ＭビットＤＲＡＭを接続する場合、マイクロコンピュータのアドレス出力Ａ９−Ａ１に、最初にロウアドレス（論理アドレスのＡ１８−Ａ１０）が出力され、次にカラムアドレス（論理アドレスのＡ９−Ａ１）が出力される。このとき、同時にエリア選択信号の波形が変更され、ロウアドレスの出力後にＲＡＳ＊（ロウアドレスストローブ）信号が活性状態とされる。ロウアドレスのセットアップ・ホールドが確保される。また、カラムアドレスの出力後に別の端子からＣＡＳ＊（カラムアドレスストローブ）信号が活性状態とされる。
【００４２】
レジスタＣＭＤＣＲはコマンドサイクルを自動生成するエリアを指定する。レジスタＣＭＤＣＲの対応するビットが”１”にセットされたエリアに、ＣＰＵ２またはＤＭＡＣ３が所定のアクセスを行うと、自動的にバスコマンドサイクルが挿入される。例えば、ＣＰＵ２が、プログラムに記述された
ＭＯＶ．Ｂ  ＃ＤＡＴＡ，Ｒ０Ｌ
ＭＯＶ．Ｂ  Ｒ０Ｌ，＠ＷＡＤＲ
という命令を実行して、アドレスＷＡＤＲに対するデータＤＡＴＡのライトサイクルを実行しようとしたした場合、アドレスＷＡＤＲが、上記レジスタＣＭＤＣＲの対応するビットが”１”にセットされたエリアに相当すれば、例えばフラッシュメモリにライト動作を指示するコマンドＣＭＤの、アドレスＷＡＤＲに対するライトサイクルが自動的に起動されて挿入され、その次に、上記アドレスＷＡＤＲに対するデータＤＡＴＡのライト動作のためのバスサイクルが起動されるようになる。ここで、コマンドをライトするとき、その対象とされるフラッシュメモリのような回路に対するチップ選択信号がエリア選択信号として直接該回路に供給されている場合には、コマンドライトのときに外部に出力されるアドレスは実質的な意味を持たない。この例の場合は便宜上次のデータライトのアドレスと同一のアドレスを出力している。
なお、ＲＡＭ６、タイマ７、ＳＣＩ８、入出力ポートＩＯＰ１〜ＩＯＰ９といった内蔵メモリや周辺機能はエリア７に含まれるものの、それぞれ固有のバス幅、バスサイクル数に固定される。
【００４３】
図３及び図４にはバス制御のためのそのほかのレジスタ構成が示される。
レジスタＷＣＭＤは８ビット構成であり、上述のライトサイクルに先立って出力すべきコマンドとされるデータを格納する。
レジスタＣＤＡＴ０，ＣＤＡＴ１はそれぞれ８ビット構成であり、上述のライトサイクルに先立って出力すべきコマンドとなるデータを格納する。ＣＤＡＴ０は１回めのコマンド、ＣＤＡＴ１は２回目のコマンドとされる。すなわち、必
要とされるコマンドが２バイトとされる場合に当該レジスタＣＤＡＴ０，ＣＤＡＴ１が利用される。２バイトのコマンドの一例としては、図２６に示されるブロック消去のためのコマンドＨ’２０とＨ、Ｂ０を挙げることができる。
レジスタＢＡＤＲ０〜ＢＡＤＲ３はそれぞれ１６ビット構成であり、アドレス情報を格納する。
以上のＷＣＭＤ、ＣＤＡＴ０〜ＣＤＡＴ１、ＢＡＤＲ０〜ＢＡＤＲ３の各レジスタは、常にＣＰＵ２からリード／ライト可能であり、初期値はＨ’００とされる。
【００４４】
レジスタＣＮＴＬは８ビット構成であり、コマンドバスサイクルを付加する条件が設定される。ビットＢＥ０〜ビットＢＥ３は外部のフラッシュメモリに対するブロック消去の条件ビット、ビットＰＯＬはポーリングのための条件ビットである。その外にビットＲＥを含む。ビットＲＥは常にＣＰＵ２からリード／ライト可能であるが、ビットＢＥ０〜ビットＢＥ３及びビットＰＯＬは”１”のライトのみ可能であり、所定の動作が終了すると、自動的に”０”にクリアされる。ビット４、５はリザーブビットであり、リードすると”０”が読み出され、ライトは無効とされる。
【００４５】
レジスタＣＮＴＬの初期値はＨ’００とされる。
ビットＲＥが”１”にセットされると、マイクロコンピュータのＲＥＡＤＹ端子の入力が有効になる。この状態で、ビットＰＯＬがＣＰＵ２によって”１”にセットされると、そのバスサイクルに引き続いて、外部に対してポーリングリードサイクルが自動的に挿入される。このとき、マイクロコンピュータ１の後述するＲＥＡＤＹ端子に例えばフラッシュメモリから入力されたビジー状態の信号をウェイト信号として認識する。例えば外部のフラッシュメモリが内部動作中であってビジー状態の信号を出力しているとき、即ち外部のフラッシュメモリが内部動作中であれば、かかる内部動作が終了するまでマイクロコンピュータ１はウェイト状態になり、その間自動的に上記ポーリングリードサイクルを継続する。
【００４６】
フラッシュメモリが内部動作中に、他にマイクロコンピュータ１が処理すべき内容があれば、フラッシュメモリが出力するＲＤＹ／ＢＵＳＹ＊信号（ハイレベルでレディー状態、ローレベルでビジー状態）を、マイクロコンピュータ１の割込入力として、この立ち上がりエッジを検出して割込を発生させるようにしてもよい。即ち、マイクロコンピュータ１は、フラッシュメモリに対して書込み又は消去を指示した後、ＲＤＹ／ＢＵＳＹ＊信号の立ち上がりエッジによる割込みによってその動作の終了を検出する。したがって、その間マイクロコンピュータは常時フラッシュメモリの動作終了を監視しなくてもよくなり、フラッシュメモリの動作制御に対する負荷が小さくなる。
ビットＲＥを”０”にクリアすると、上記ＲＥＡＤＹ端子の入力が無効になり、対応する端子は入出力ポートとして使用することができるようにされる。
【００４７】
ビットＢＥ０〜ＢＥ３のいずれかを”１”にセットすると、そのバスサイクルに引き続いて、外部のフラッシュメモリに対するブロック消去のためのコマンドライトサイクルが開始される。コマンドは予め上記レジスタＣＤＡＴ０，ＣＤＡＴＡ１に格納した内容とされる。ブロック消去は２バイトのコマンドで指示される。このときに消去対象ブロックアドレスはレジスタＢＡＤＲ０〜ＢＡＤＲ３で指定されたアドレスとされる。
例えば、フラッシュメモリのブロックサイズは５１２バイトとすると、アドレスは同時に４ブロックを指定できる。したがって２ｋバイトを連続して消去することができる。
【００４８】
レジスタＢＡＤＲ０〜ＢＡＤＲ３は、それぞれ１６ビットであり、下位１ビットは無視される。この１６ビットに下位８ビットをＨ’００として、消去ブロックアドレスを指定する。これはアドレス空間が１６Ｍバイトであることに対応する。従って、レジスタＢＡＤＲ０にＨ’０１２３を設定すると、消去ブロックの先頭アドレスはＨ’０１２２００とされる。
このとき、このアドレスが含まれるエリアに対応するレジスタＣＭＤＣＲのビットを”１”にセットしておくものとする。レジスタＣＤＡＴ０にＨ’２０、レジスタＣＤＡＴ１にＨ’Ｂ０を格納しておき、ビットＢＥ０を”１”にセットすると、アドレスＨ’０１２２００に対して、２回のライトサイクルが実行され、１回目のデータはＨ’２０、２回目のデータはＨ’Ｂ０となって、フラッシュメモリの１４６番目のブロックが消去される。
【００４９】
チップ消去、または連続ブロック消去を行う場合はＣＤＡＴ０及びＣＤＡＴＡ１に設定するコマンドデータをチップ消去または連続ブロック消去に相当するものに変更すればよい。また、レジスタＣＤＡＴ０，ＣＤＡＴＡ１に設定するコマンドデータをページ書込みに相当するものに変更し、バスコマンドを発行した後に、順次ライトサイクルを行えば、レジスタＣＮＴＬを利用してページ書込みを行うこともできる。
１６ビットバスのとき、コマンドデータは上位８ビット、下位８ビットに同じデータが出力される。
【００５０】
以上により、コマンドによって動作の指示が与えられるようなフラッシュメモリに対するライト動作、ブロック消去、ポーリングなどを、ＣＰＵ２の負担を軽減して行うことができる。フラッシュメモリに対するライト動作についてはＤＭＡＣ３がバスサイクルを起動するときもＣＰＵ２による場合と同じ様に行うことができる。
【００５１】
フラッシュメモリに対するリード動作はランダムに行うことができる。即ち、図２６に従えばリード動作はコマンドＨ’００によって指示されるが、当該コマンドによってリード動作が指示されたときは、その後に別の動作モードが指示されない限りフラッシュメモリは随時リード動作が可能にされる。例えばパワーオンリセットや例外処理に際してマイクロコンピュータ１はフラッシュメモリに対してリード動作を指示するコマンドＨ’００を無条件に書込むようになっている。フラッシュメモリに格納される情報は専ら読出しに供される動作プログラムの他に、例えば書換えの対象とされる定数データやチューニング情報とされる。このような定数データやチューニング情報の書換えはマイクロコンピュータ１を適用したシステム上、例外処理によって行うものとすれば、フラッシュメモリに対するリード動作は随時可能にされる。
【００５２】
図５には上記シングルチップマイクロコンピュータ１を用いたシステムの一例が示される。
同図に示されるシステムは、特に制限はされないものの、プリンタ制御システムであり、シングルチップマイクロコンピュータ１、シングルチップマイクロコンピュータ１のプログラム及びチューニング情報格納用のフラッシュメモリ１０、データバッファ用のＤＲＡＭ（バッファＲＡＭとも記す）１１、キャラクタジェネレート用のマスクＲＯＭ（ＣＧＲＯＭと記す）１２、印字データ一時格納用のＳＲＡＭ（出力バッファ）１３、図示しないホストプロセッサとインタフェースされるセントロニクスインタフェース回路１４、及び印字ヘッド駆動回路１５有し、これらがシングルチップマイクロコンピュータ１の外部バス１６を介して接続される。セントロニクスインタフェース回路１４及び印字ヘッド駆動回路１５は同一の半導体集積回路、例えばゲートアレイ（Ｇ／Ａ）で構成され、その外の回路は夫々別体の半導体集積回路チップにて構成される。更に、図示はされないものの、マイクロコンピュータ１のＳＣＩ８はホストプロセッサと接続され、マイクロコンピュータ１のタイマ７の出力によって制御されるプリンタのラインフィードモータやキャリッジリターンモータなどを備える。
【００５３】
シングルチップマイクロコンピュータ１はフラッシュメモリ１０に格納されているプログラムに基づいて動作する。例えば、かかるプログラムに基づき、ホストプロセッサから送られてくるデータはセントロニクスインタフェース回路１４を経由して、バッファＲＡＭ１１に転送される。バッファＲＡＭ１１に転送されたデータは、ＣＧＲＯＭ１２が参照されることによって、フォントデータに変換される。フォントデータは出力バッファＲＡＭ１３に格納される。その後シングルチップマイクロコンピュータ１はタイマ７を用いてパルス出力を行い、図示しないキャリッジリターンモータを駆動する。キャリッジリターンモータの回転によって印字ヘッドが移動される。印字ヘッドの移動に合わせて、出力バッファＲＡＭ１３から印字ヘッド駆動回路１５へフォントデータが転送される。セントロニクスインタフェース回路１４からバッファＲＡＭ１１へのデータ転送、出力バッファ１３から印字ヘッド駆動回路１５へのデータ転送にはシングルチップマイクロコンピュータ１内蔵のＤＭＡＣ３を用いることができる。フラッシュメモリ１０に格納されるチューニング情報を書換えたりすることによって、システムの微調整を行なうことができる。また、フラッシュメモリ１０に格納された動作プログラムはバージョンアップや使用変更によって修正されることがある。シングルチップマイクロコンピュータによる上述のコマンドサイクルの自動的な挿入若しくは追加の機能によってフラッシュメモリ１０に対する書換えを効率的に行うことができる。
【００５４】
例えば図５のシステムにおいてフラッシュメモリ１０をエリア０、ＣＧＲＯＭ１２をエリア４、バッファＲＡＭ１１をエリア５、出力バッファ１３をエリア６、セントロニクスインタフェース回路１４及び印字ヘッド駆動回路１５をエリア７に設定する。そして、
エリア０は１６ビットバス、３ステート、コマンド有効とし、
エリア４は１６ビットバス、３ステートとし、
エリア５は１６ビットバス、３ステート、アドレスマルチプレクスとし、
エリア６は１６ビットバス、２ステートとし、
エリア７は８ビットバス、３ステートとし、
プログラマブルウェイトはいずれのエリアにも挿入しないものとする。
このときの、上記レジスタの設定は
ＢＳＷＣＲ＝Ｂ’１０００００００、
ＡＳＴＣＲ＝Ｂ’１０１１０００１、
ＷＳＣＲＡ＝Ｂ’００００００００、
ＷＳＣＲＢ＝Ｂ’００００００００、
ＭＰＸＣＲ＝Ｂ’００１０００００、
ＣＭＤＣＲ＝Ｂ’０００００００１
とされる。
【００５５】
図６には図５のシステムにおける外部バス１６による接続状態の一例が示される。同図においてＧ／Ａはセントロニクスインタフェース回路１４及び印字ヘッド駆動回路１５を構成するゲートアレイである。
フラッシュメモリ１０は１９９３年９月（株）日立製作所発行『日立ＩＣメモリ２』ｐｐ３０５−３２１に記載される１６Ｍビット、マスクＲＯＭ１２は１９９３年９月（株）日立製作所発行『日立ＩＣメモリ２』ｐｐ６８１−６８７に記載される１６Ｍビット、ＤＲＡＭ１１は１９９３年９月（株）日立製作所発行『日立ＩＣメモリ３』ｐｐ４３２−４５５に記載される４Ｍビットのものとする。ＳＲＡＭ１３は１９９３年９月（株）日立製作所発行『日立ＩＣメモリ１』ｐｐ４７０−４７７に記載される４Ｍビットのものを２個とする。
【００５６】
アドレスはフラッシュメモリ１０、ＤＲＡＭ１１、マスクＲＯＭ１２、ＳＲＡＭ１３、Ｇ／Ａ１４，１５の全てに入力される。但し、それぞれの容量に対応したビット数が入力される。例えばフラッシュメモリ１０は１Ｍワード（１６Ｍビット）の容量であるのでアドレスは２０ビットである。シングルチップマイクロコンピュータ１はバイト単位のアドレス、フラッシュメモリ１０はワード単位のアドレスであるので、マイクロコンピュータ１が出力するアドレスの最下位ビットを無視してそのアドレスを半分とするようにマイクロコンピュータ１のアドレスがフラッシュメモリ１０に供給される。即ち、マイクロコンピュータ１のアドレス端子Ａ２０〜Ａ１がフラッシュメモリ１０のアドレス端子Ａ１９〜Ａ０に接続される。また、ＳＲＡＭ１３は一方が偶数アドレス、他方が奇数アドレスとされ、マイクロコンピュータのアドレス端子Ａ１９〜Ａ１がＳＲＡＭ１３のアドレス端子Ａ１８〜Ａ０に接続される。
【００５７】
データバス上位Ｄ１５〜Ｄ８は、フラッシュメモリ１０、ＤＲＡＭ１１、マスクＲＯＭ１２、ＳＲＡＭ（偶数アドレス）１３、Ｇ／Ａ１４，１５の全てに接続される。データバス下位Ｄ７〜Ｄ０は、フラッシュメモリ１０、ＤＲＡＭ１１、マスクＲＯＭ１２、ＳＲＡＭ（奇数アドレス）１３に接続される。出力端子ＣＳ０＊（記号＊はそれが付された信号のアクティブレベルがローレベルであることを意味し、図面においては当該信号名の上に付された横棒線が記号＊に代えて付されている）がフラッシュメモリ１０、出力端子ＣＳ４＊がマスクＲＯＭ１２、出力端子ＣＳ６＊がＳＲＡＭ１３の各チップ選択信号入力端子ＣＳ＊に接続される。出力端子ＣＳ５＊はＤＲＡＭ１１のロウアドレスストローブ信号入力端子ＲＡＳ＊に接続される。また出力端子ＣＳ７はＧ／Ａ１４，１５のチップ選択信号入力端子ＣＳ＊に入力される。上記ＣＳ０＊，ＣＳ４＊，ＣＳ５＊，ＣＳ６＊，ＣＳ７＊はエリア選択信号の出力端子である。
【００５８】
リード信号の出力端子ＲＤ＊は、フラッシュメモリ１０、マスクＲＯＭ１２、ＳＲＡＭ１３のアウトプットイネーブル信号の入力端子ＯＥ＊に接続され、またＧ／Ａの入力端子ＯＥ＊にも接続される。
上位バイトのライト信号の出力端子ＨＷＲ＊はフラッシュメモリ１０、ＤＲＡＭ１１の上位側ライトイネーブル信号入力端子ＵＷ＊、ＳＲＡＭ（偶数アドレス）１３のライトイネーブル信号入力端子ＷＥ＊に接続され、またＧ／Ａのライトイネーブル信号入力端子ＷＥ＊にも接続される。
下位バイトのライト信号の出力端子ＬＷＲ＊はフラッシュメモリ１０、ＤＲＡＭ１１の下位側ライトイネーブル信号入力端子ＬＷ端子、ＳＲＡＭ（奇数アドレス）１３のライトイネーブル信号入力端子ＷＥ＊に接続される。
マイクロコンピュータ１のカラムアドレスストローブ信号の出力端子ＣＡＳ＊はＤＲＡＭ１１のカラムアドレスストローブ信号入力端子ＣＡＳ＊及びアウトプットイネーブル信号入力端子ＯＥ＊に接続される。
さらに、フラッシュメモリ１０のレディー／ビジー信号の出力端子ＲＤＹ／ＢＵＳＹ＃はマイクロコンピュータ１の入力端子ＲＥＡＤＹに接続される。
なお、上記各種端子の記号は以下の説明において対応端子の入力又は出力信号名の符合としても兼用する。
【００５９】
図７乃至図１５には図５のシステムにおける上記レジスタＢＳＷＣＲ，ＡＳＴＣＲ，ＷＳＣＲＡ，ＷＳＣＲＢ，ＭＰＸＣＲ，ＣＭＤＣＲの設定状態での代表的なバスサイクルのタイミング、例えばワードデータアクセス時のタイミングが示される。なお、それらに示されるタイミングにおいて、ワードデータアクセスは偶数番地から始まるもの２バイトのデータに限定してある。また、特に制限はされないものの、８ビットバスではデータバスの上位Ｄ１５〜Ｄ８を使用するものとしている。バス制御信号はすべて負論理とされる。
【００６０】
（１）エリア０の１６ビットバス、３ステートアクセス
この場合におけるリード及びライト動作のバスサイクルタイミングは図７及び図８によって示される。
エリア０の１６ビットバス、３ステートアクセスの場合は、偶数番地のデータはデータバスの上位、奇数番地のデータはデータバスの下位を使用してリード／ライトが行なわれる。マイクロコンピュータ１は、偶数番地のリード／ライトに対応してリード信号ＲＤ＊／上位ライト信号ＨＷＲ＊を、奇数番地のリード／ライトに対応してリード信号ＲＤ＊／下位ライト信号ＬＷＲ＊を活性状態とする。リードは１６ビット一括して制御される。ライトはバイト単位で制御される。アドレス及びＣＳ０＊信号出力はバスサイクル中有効とされる。リード信号ＲＤ＊はＴ１ステートにおけるクロックφの立ち下がり（クロックφ２の立上がり）に同期してアクティブレベルにされ、Ｔ３ステートにおけるクロックφの立ち下がり（クロックφ２の立上がり）に同期してインアクティブに戻される。マイクロコンピュータ１が出力する上位ライト信号ＨＷＲ＊、下位ライト信号ＬＷＲ＊はＴ２ステートにおけるクロックφの立上がり（クロックφ１の立上がり）に同期してアクティブレベルにされ、Ｔ３ステートにおけるクロックφの立ち下がり（クロックφ２の立上がり）に同期してインアクティブに戻される。
このとき、リード動作はそのまま行なわれるが、ライト動作の指示があったときは、フラッシュメモリに対するコマンドのライトサイクルが挿入される。当該コマンドのライトサイクルにおいて外部アドレスバスにはＣＰＵ２またはＤＭＡＣ３といったバスマスタが出力したアドレスが出力される。そのときのデータはＷＣＭＤレジスタに保持されているコマンドデータとされる。アドレス及び制御信号出力は前記同様である。
【００６１】
（２）エリア４の１６ビットバス、３ステートアクセス
この場合におけるリード及びライト動作のバスサイクルタイミングは図７及び図９によって示される。エリア４の１６ビットバス、３ステートアクセスにおいて、偶数番地のデータはデータバスの上位、奇数番地のデータはデータバスの下位を使用してリードが行なわれる。リードは１６ビット一括して制御される。アドレス及び出力信号ＣＳ４＊はバスサイクル中有効値を示す。リード信号ＲＤ＊はＴ１ステートにおけるクロックφの立ち下がり（クロックφ２の立上がり）に同期してアクティブレベルにされ、Ｔ３ステートにおけるクロックφの立ち下がりに同期してインアクティブレベルに戻される。
【００６２】
（３）エリア５の１６ビットバス、３ステートアクセス、アドレスマルチプレクスアクセス
この場合におけるリード及びライト動作のバスサイクルタイミングは図１０及び図１１によって示される。この場合は、Ｔ１ステートでロウアドレスが、Ｔ２・Ｔ３ステートでカラムアドレスが、それぞれＡ１０〜Ａ１に出力される。ＣＳ５＊、ＲＤ＊、ＨＷＲ＊、ＬＷＲ＊の各出力信号はＴ１ステートにおけるクロックφの立ち下がりに同期してアクティブレベルにされ、Ｔ３ステートにおけるクロックφの立ち下がりに同期してインアクティブレベルに戻される。カラムアドレスストローブ信号ＣＡＳ＊はＴ２ステートにおけるクロックφの立ち下がりに同期してアクティブレベルにされ、Ｔ３ステートにおけるクロックφの立ち下がりに同期してインアクティブレベルに戻される。
前記同様に、偶数番地のデータはデータバスの上位、奇数番地のデータはデータバスの下位を使用してリード／ライトが行なわれる。偶数番地のライトに対応してＨＷＲ＊が、奇数番地のライトに対応してＬＷＲ＊が活性状態とされる。
【００６３】
（４）エリア６の１６ビットバス、２ステートアクセス
この場合におけるリード及びライト動作のバスサイクルタイミングは図１２及び図１３によって示される。この場合は、偶数番地のデータはデータバスの上位、奇数番地のデータはデータバスの下位を使用してリード／ライトが行なわれる。偶数番地のリード／ライトに対応してＲＤ＊又はＨＷＲ＊の出力信号が、奇数番地のリード／ライトに対応してＲＤ＊又はＬＷＲ＊の出力信号がアクティブにされる。リードは１６ビット一括して制御される。ライトはバイト単位で制御される。アドレス及び出力信号ＣＳ６＊はバスサイクル中アクティブレベルにされる。ＲＤ＊、ＨＷＲ＊、ＬＷＲ＊の各出力信号はＴ１ステートにおけるクロックφの立ち下がりに同期してアクティブレベルにされ、Ｔ３ステートにおけるクロックφの立ち下がりに同期してインアクティブレベルに戻される。
【００６４】
（５）エリア７の８ビットバス、３ステートアクセス
この場合におけるリード及びライト動作のバスサイクルタイミングは図１４及び図１５によって示される。この場合には、データバスの上位を使用してリード／ライトが行なわれる。すなわち、ＲＤ＊又はＨＷＲ＊の信号が選択的にアクティブにされる。アドレス及び出力信号ＣＳ７＊はバスサイクル中アクティブにされる。出力信号ＲＤはＴ１ステートにおけるクロックφの立ち下がりに同期してアクティブレベルにされ、Ｔ３ステートにおけるクロックφの立ち下がりに同期してインアクティブに戻される。出力信号ＨＷＲ＊はＴ２ステートにおけるクロックφの立ち上がりに同期してアクティブレベルにされ、Ｔ３ステートにおけるクロックφの立ち下がりに同期してインアクティブに戻される。
図１４及び図１５に示されるように、ＣＰＵ２またはＤＭＡＣ３のようなバスマスタがワードデータのアクセスを行った場合には、偶数番地・奇数番地の順にバイトアクセスが２回行われる。
【００６５】
図１６には上述のような各種バスアクセスタイミングを生成するバスコントローラ４の一例ブロック図が示される。
バスコントローラ４は、アドレデコード回路４０、制御回路４１、バス権調停回路４２、選択回路４３、タイミング制御回路４４、及び制御レジスタ４５、コマンドレジスタ４６、及びアドレスレジスタ４７から構成される。制御レジスタ４５は上記レジスタＢＳＷＣＲ、ＡＳＴＣＲ、ＷＳＣＲＡ−Ｂ、ＭＰＸＣＲ、ＣＭＤＣＲ、ＣＮＴＬを含む。コマンドレジスタ４６は上記レジスタＷＣＭＤ、ＣＤＡＴ０〜ＣＤＡＴＡ１を含む。アドレスレジスタ４７は上記レジスタＢＡＤＲ０〜ＢＡＤＲ３を含む。図１６には入出力ポートに含まれる機能として、入出力バッファ、マルチプレクサ４７，４８、及び出力バッファ、が代表的に示されている。４７はアドレスマルチプレクサであり、４８はデータマルチプレクサである。
【００６６】
バス権調停回路４２は、ＣＰＵ２またはＤＭＡＣ３のいずれがバスを使用するかを制御する。例えば、ＤＭＡＣ３にデータ転送起動要因が発生して、ＤＭＡＣバス要求信号が１レベルのようなアクティブレベルにされると、タイミング制御回路４４で指示される所定のタイミングでバス調停回路４２はＤＭＡＣ３にバス使用を許可して、ＤＭＡＣバス権許可信号を１レベルのようなアクティブレベルにしてＤＭＡＣ３に返す。それ以外の時はＣＰＵ２がバス権を有する。ＤＭＡＣ３がバス権を有する時にＣＰＵ２がバス権を取り戻すときも上記同様にＣＰＵバス権要求信号とＣＰＵバス権許可信号によって行われる。この制御に基づいて、ＣＰＵ２とＤＭＡＣ３が排他的にアドレス・データバスを使用できる。
【００６７】
選択回路４３はＣＰＵ２及びＤＭＡＣ３の出力するバス制御信号、例えばリード信号ＲＤ、ライト信号ＨＷＲ，ＬＷＲ、バスサイズ情報などを、バス権調停回路４２の指示に基づいて、選択し、タイミング制御回路４４に与える。すなわち、ＤＭＡＣバス権許可信号が１レベルであれば、ＤＭＡＣ３からのバス制御信号をタイミング制御回路４４に与え、それ以外はＣＰＵ２からのバス制御信号をタイミング制御回路４４に与える。ＣＰＵ２及びＤＭＡＣ３のいずれがバス権を有しても、バスコントローラ４の内部の動作は基本的に同一とされる。
【００６８】
アドレデコード回路４０は、ＣＰＵ２またはＤＭＡＣ３がアドレスバスＩＡＢに出力したアドレスが、いずれのエリアに相当するかをデコードする。デコード結果は、出力バッファを介して、所定の端子からエリア選択信号として出力される。
制御回路４１は、アドレデコード回路４０の出力によって、いずれのエリアが選択されたかを判定して、制御レジスタ４５の何れのビットを参照すべきかを判定する。判定結果はタイミング制御回路４４に対する指示として与えられる。
タイミング制御回路４４は、上記制御回路４１の出力に基づいて、バスサイクルを生成し、内部及び外部のバス制御信号を出力する。また、入出力バッファ、マルチプレクサ、バス権調停回路の動作タイミングを指示する。さらに、それが生成するバスサイクルがコマンドライトのバスサイクルなどの場合には必要に応じて制御信号ＤＡＴＡＳＥＬやＣＤＡＴＳＥＬでコマンドレジスタ４６を選択する。
【００６９】
出力バッファに含まれるアドレスマルチプレクサ４７は、タイミング制御回路４４の指示に従って、ロウアドレスとカラムアドレスの選択、及びアドレスバスＩＡＢとアドレスレジスタ４７に含まれるレジスタＢＡＤＲ０〜ＢＡＤＲ３の内容の選択を行なう。
入出力バッファに含まれるデータマルチプレクサ４８は、データバスＩＤＢのデータを入出力するか、コマンドレジスタ４６に含まれるレジスタＷＣＭＤ、ＣＤＡＴ０〜ＣＤＡＴＡ１の内容を出力するかを選択する。なお、タイミング制御回路４４はライトサイクルの生成に関し、８ビットバスのときはバイトライトのみ、１６ビットバスのときはワードライトのみを有効とする。
【００７０】
図１７にはタイミング制御回路４４の具体的な第１の回路例が示される。
図１８には図１７の動作タイミング図の一例が示される。
図１７の回路例においては、内容をわかり易くするために、ブロック消去やポーリング機能についての論理構成は省略してある。すなわち、所定のエリアに対するライトアクセスによって自動的にコマンドライトのためのバスサイクルを生成して挿入するための構成に着目した回路例とされる。また、この回路例は正論理で示されている。
【００７１】
ＲＤ＋ＷＲ信号はＣＰＵ２又はＤＭＡＣ３によるリード動作又はライト動作のバス起動用内部信号とされ、選択回路４３の出力である。ＢＵＳ８Ａ、ＳＴ３Ａ、ＣＭＤＡは、アドレスデコード回路４０でアドレスをデコードして得られる信号であり、エリアとＢＳＷＣＲ，ＡＳＴＣＲ，ＣＭＤＣＲの各レジスタの対応するビットから生成される信号である。即ち、信号ＢＵＳ８Ａ、ＳＴ３Ａ、ＣＭＤＡは、そのときのアクセス対象のエリアが、８ビットバスエリア、３ステートアクセスエリア（ウェイトステート数に応じて全体のステート数はそれ以上になる）、コマンド有効エリアであることをハイレベルによって示す。内部信号ＷＲはライト動作のバス起動用内部信号とされる。ＷＯＲＤはアドレスデコード回路４０でアドレスをデコードして得られる信号でありワードアクセスである場合にハイレベルにされる。ＷＲ、ＷＯＲＤ信号は何れも選択回路４３の出力である。
【００７２】
バスサイクルは２ステートを基本とし、３ステート以上の場合、Ｔ１ステートの後にウェイトステートが挿入される（ウェイトステートが挿入された場合、便宜上当該ウェートステートをＴ２ステート、その次のステートをＴ３ステートと記す）。ウェイト要求信号ｗａｉｔは、３ステートアクセスエリアのとき、レジスタＷＳＣＲＡ，ＷＳＣＲＢによるウェイト要求と、外部端子に供給されるウェイト信号ＷＡＩＴによるウェイト要求を含むものとする。即ち、外部からのウェイト信号ＷＡＩＴは直列３段のＤ型ラッチから成るフリップフロップＦＦ７〜ＦＦ９を通してウェイト要求信号ｗａｉｔとされる。レジスタＷＳＣＲＡ，ＷＳＣＲＢによるプログラマブルウェイトに関しては当該レジスタＷＳＣＲＡ，ＷＳＣＲＢの内容に従ってウェイト要求信号ｗａｉｔが生成される。尚、何れのウェイト要求においても、信号ＳＴ３Ａはウェイト期間中ハイレベルにされる。但し、信号ＳＴ３Ａは２ステートアクセスエリアでないことがレジスタＡＳＴＣＲで指定されていない場合には一切ハイレベルにされない。
【００７３】
クロックφ１Ｂは、ウェイト要求信号ｗａｉｔとクロックφ１との論理和信号とされ、クロックφ２Ｂは、ウェイト要求信号ｗａｉｔの反転信号とクロックφ２との論理積信号とされ、ウェイト中は、クロックφ１Ｂがハイレベル、クロックφ２Ｂがロウレベルで固定され、フリップフロップＦＦ１〜ＦＦ４はクロック入力が変化しないため、状態を保持する。
信号ＤＡＴＡＳＥＬは、レジスタＷＣＭＤが保有するコマンドを出力するか、データバスＩＤＢの内容を出力するかを選択するための信号である。
【００７４】
選択回路ＳＥＬは、論理和ゲートＯＲ１を介して上記バス起動信号ＲＤ＋ＷＲが初段に供給される直列接続された３段のＤ型ラッチ回路回路から成るフリップフロップＦＦ１、ＦＦ２、ＦＦ３の出力を入力とする。φ１、φ２の同期化回路も含む。この選択回路ＳＥＬが上記各種バスタイミング信号を出力する。すなわち、エリア選択信号ＣＳ０＊〜ＣＳ７＊、アドレスストローブ信号ＡＳ＊、リード信号ＲＤ＊、ライト信号ＨＷＲ＊，ＬＷＲ＊、カラムアドレスストローブ信号ＣＡＳ＊の出力波形、アドレスマルチプレクスのタイミングなどを生成して出力する。
例えば、リード信号ＲＤ＊の波形は第２のフリップフロップＦＦ２の出力信号の反転信号とされる。レジスタＭＰＸＣＲの対応するビットを”１”にしたとき、そのエリア選択信号はアドレスデコード結果とフリップフロップＦＦ２との論理積信号の反転信号とされる。
【００７５】
バス起動信号ＲＤ＋ＷＲは、バスサイクルの開始以前の、システムクロックφ１，φ２に同期してタイミング制御回路４４に与えられる。フリップフロップＦＦ１はＴ１ステートにおけるクロックφ１Ｂの立上がりに同期して信号を出力する。同様にフリップフロップＦＦ２、ＦＦ３、ＦＦ４は、それぞれ、Ｔ１ステートにおけるクロックφ２Ｂの立上がり、Ｔ２ステートにおけるクロックφ１Ｂの立ち上がり、Ｔ３ステートにおけるクロックφ２Ｂの立上がり、に同期して入力信号をラッチして出力する。フリップフロップＦＦ４のラッチ動作は、ウェイト解除後のＴ３ステートにおけるクロックφ２の立ち上がりに同期している。例えば、８ビットバスエリアに対するワードアクセスの場合には（ＢＵＳ８Ａ及びをＲＤはハイレベル）、或いはコマンドサイクルに続くデータアクセスサイクルの場合（フリップフロップＦＦ６がセット状態）には、１回めのバスサイクルが終了した時点で、ＦＦ４の出力がハイレベルにされ、この出力が論理和ゲートＯＲ１を介してフリップフロップＦＦ１に帰還されてそれが当該ＦＦ１にラッチされる。即ち、２回目のバスサイクルの起動が指示されることになる。
【００７６】
１回目のバスサイクルか、２回目のバスサイクルかは、ＲＳ（リセット・セット）型の第５、第６のフリップフロップＦＦ５、ＦＦ６で指定される。フリップフロップＦＦ５は、１回目のバスサイクルであればセット状態、２回目のバスサイクルであればリセット状態にされる。このフリップフロップＦＦ５のセット状態が実質的に意味を持つのは、信号ＷＯＲＤがワードアクセスを意味するハイレベルにされていてフリップフロップＦＦ１０がそれをラッチしているときであり、しかもそのワードアクセスが８ビットバスを介して行われるとき（信号ＢＵＳ８Ａがハイレベル）である。フリップフロップＦＦ６は、コマンドサイクルの場合、即ちコマンド有効エリアに対するライトのとき（ＷＲ及びＣＭＤＡがハイレベル）かつ信号ＢＲＫＡＫがインアクティブとしてのローレベルのときにセット状態とされ、フリップフロップＦＦ４のハイレベル出力によってリセット状態にされる。
【００７７】
尚、上記信号ＢＲＫＡＫはマイクロコンピュータ１をエミュレーションに利用すする場合を考慮したものであり、ＣＰＵ２がブレーク状態であることを示す信号である。信号ＢＲＫＡＫ信号がアクティブレベルとしてのハイレベルにされた場合には、コマンドサイクルの挿入を禁止し、ブレーク後においてマイクロコンピュータのアドレス空間がターゲットプログラムのためのアドレス空間から評価のための制御空間に切換えられた場合、書込みサイクルが自動的に挿入されてデータが不所望に書換えられる虞を排除している。この点についての詳細は後述する。
【００７８】
このように図１７のタイミング制御回路４４は、第１に８ビットバスでワードアクセスを行う場合、第２にコマンド有効エリアに対するライトで（ＷＲ及びＣＭＤＡがハイレベル）信号ＢＲＫＡＫがインアクティブのときに指示されるコマンドサイクルの場合に、連続的に２回所定のバスサイクルを生成する。
【００７９】
図１９にはタイミング制御回路４４の具体的な第２の回路例が示される。この回路例においては、内容をわかり易くするために、図１７では省略したブロック消去やポーリング機能についての論理構成を専ら示してある。また、この回路例も正論理とされる。図１９において図１７と同一の信号及び回路要素には同一符合を付してその詳細な説明を省略する。
【００８０】
同図に示されるタイミング制御回路４４はレジスタＣＮＴＬに対するＣＰＵ２の書込みによって所定のバスサイクルを自動的に起動する構成を専ら示すものである。信号ＲＥＧＣＬＲは自動的に生成されたバスサイクルを終了させるためにレジスタＣＮＴＬの内容をクリアするための信号である。この例に従えば、フラッシュメモリのブロック消去のために自動的に生成されるバスサイクルは２サイクルであり、ポーリングのために自動生成されるバスサイクルは１サイクルとされる。フリップフロップＦＦ４のハイレベル出力は２サイクル目の起動信号とされ、フリップフロップＣＦＦ４は自動生成されたバスサイクルが終了するタイミングで上記信号ＲＥＧＣＬＲをハイレベルに制御する。フリップフロップＣＦＦ５及びナンドゲートＮＡＮＤ１は、ブロック消去のための２回のコマンドライトサイクルにおいては１サイクル目にＦＦ４を、２サイクル目にＣＦＦ４を利用させ、またポーリングのためのバスサイクルにおいてはＣＦＦ４だけを利用するように制御する。
【００８１】
同図に示されるタイミング制御回路４４は、上記レジスタＣＮＴＬから、ＰＯＬビットのセット信号ＳＥＴＰＯＬが与えられる。このＳＥＴＰＯＬ信号はレジスタＣＮＴＬに対するライトサイクルのＴ３ステートにおけるクロックφ２の立ち上がりに同期して有効とされる。但し、ＲＥビットを”１”にセットした状態でのみＰＯＬビットのセット信号は有効となる。このＳＥＴＰＯＬ信号とＲＥ信号との論理積信号は起動信号として論理和ゲートＯＲ２に供給され、それがフリップフロップＦＦ１にラッチされて、その内部レジスタライトサイクルに引き続いて、外部に対してポーリングリードサイクルが開始される。ポーリングリードサイクルはＰＯＬビットがセットされていることで認識される。このときのアドレスは、特に制限はされないが、レジスタＢＡＤＲ０で指定されたアドレスとされる。
【００８２】
このとき、マイクロコンピュータ１のレディー端子ＲＥＡＤＹに入力されたフラッシュメモリからの信号ＲＤＹ／ＢＵＳＹ＊（レディー入力信号ＲＥＡＤＹと記す）は外部からのウェイト信号ＷＡＩＴと等価な信号としてフリップフロップＦＦ７に供給される。即ち、フラッシュメモリが内部動作中であれば、レディー入力信号ＲＥＡＤＹがインアクティブなローレベルとされるから、フラッシュメモリの内部動作が終了されて入力信号ＲＥＡＤＹがアクティブなハイレベルにされるまで、マイクロコンピュータ１はウェイト状態とされる。即ち、その間クロックφ１Ｂ及びφ２Ｂのレベルが固定されてフリップフロップＦＦ３のラッチ動作が抑止される。入力信号ＲＥＡＤＹがアクティブレベルにされてウェイトが解除されると、当該ポーリングリードサイクルのＴ３ステートを経て当該バスサイクルが終了される。終了に当たって信号ＲＥＧＣＬＲがハイレベルにされる。
【００８３】
また、タイミング制御回路４４には、レジスタＣＮＴＬから、ＢＥ０〜ＢＥ３ビットのセット信号の論理和信号ＳＥＴＢＥが与えられる。この信号ＳＥＴＢＥはレジスタＣＮＴＬのライトサイクルのＴ３ステートにおけるクロックφ２の立上がりに同期して有効になる。この信号ＳＥＴＢＥもバスの起動信号とされて論理和ゲートＯＲ２に供給される。更にフリップフロップＣＦＦ５のリセット端子に入力される。また、ＢＥ０〜ＢＥ３ビットの論理和信号ＢＥＯＲ信号はナンドゲートＮＡＮＤ１の一方の入力に供給される。当該ナンドゲートＮＡＮＤ１の他方の入力にはフリップフロップＣＦＦ５の出力の反転信号が供給される。レジスタＣＮＴＬへの書込みによってフラッシュメモリのブロック消去が指示された状態においてナンドゲートＮＡＮＤ１の出力はローレベルにされる。したっがて、ブロック消去のためのコマンドライトサイクルにおける第１サイクル目の終了タイミングではフリップフロップＦＦ４の出力がハイレベルにされて、フリップフロップＦＦ１に対して第２回目のコマンドライトのバスサイクルの起動が指示される。これと同時にフリップフロップＣＦＦ５がセット状態にされて今度はフリップフロップＣＦＦ４のデータ入力動作が可能にされる。したがって、第２回目のコマンドライトサイクルの終了タイミングではフリップフロップＣＦＦ４がＦＦ３の出力をラッチし、信号ＲＥＧＣＬＲをハイレベルにすることによってバスサイクルの自動生成を終了させる。
【００８４】
図２０には上記ブロック消去のためのコマンドライトサイクルの自動生成に関する動作タイミングが示される。
上記信号ＳＥＴＢＥを起動信号として、レジスタＣＮＴＬに対するＣＰＵ２のライトサイクルに引き続いて、コマンドライトサイクルが開始される。すなわち、フリップフロップＦＦ１が当が起動信号をラッチし、フリップフロップＣＦＦ５がリセット状態とされる。このときのアドレスはレジスタＢＡＤＲ０〜ＢＡＤＲ３で指定しされたアドレスとされる。レジスタＢＡＤＲ０〜ＢＡＤＲ３の指定はレジスタＣＮＴＬのＢＥ０〜ＢＥ３ビットの状態に従って行われる。
【００８５】
第１のコマンドサイクルでは、ＣＦＦ５がリセット状態、ＢＥＯＲがハイレベルであり、Ｔ３ステートにおけるクロックφ２の立上がりに同期してＦＦ４がセット状態にされる。これを起動信号として第２のコマンドサイクルが起動され、ＦＦ１が当該起動信号をラッチし、ＣＦＦ５がセット状態にされる。
【００８６】
第２のコマンドサイクルでは、ＣＦＦ５がセット状態であり、ＦＦ４はデータ入力不可能な状態に制御される。一方、ＣＦＦ４がデータ入力可能な状態になり、Ｔ３ステートにおけるクロックφ２の立上がりに同期してレジスタクリア信号ＲＥＧＣＬＲがハイレベルにされる。これによって、今回のコマンドライトサイクルの起動要因となったＢＥ０〜ＢＥ３ビットがクリアされる。
【００８７】
そのときフラッシュメモリに書込まれるコマンドはレジスタＣＤＡＴ０，ＣＤＡＴＡ１の内容とされ、ＣＦＦ５から出力される信号ＣＤＡＴＳＥＬで当該レジスタＣＤＡＴ０，ＣＤＡＴＡ１の出力が選択される。ＣＦＦ５がリセット状態のときレジスタＣＤＡＴ０の内容、ＣＦＦ５がセット状態のときＣＤＡＴ１レジスタの内容が出力される。内部バスは１６ビットバスであり、コマンドデータは上位８ビット、下位８ビットに同じデータが出力される。８ビットバスモードのときは、下位８ビットのデータは外部データバスには出力されない。
なお、ＢＥ０〜ＢＥ３ビット、ＰＯＬビットは、任意の１ビットのみを”１”にセットすることが可能であり、複数ビットを同時に”１”にセットすることは禁止される。
【００８８】
タイミング制御回路４４の具体的な構成を図１７及び図１９に分けて夫々説明したが、実際には、図１７と図１９の回路を合成して当該タイミング回路が実現される。合成する場合には、例えばフリップフロップＦＦ１，ＦＦ２，ＦＦ３，ＦＦ７，ＦＦ８，ＦＦ９及びクロック系を共通化し、その他の回路要素を別々に設けて動作態様に応じて経路選択を行い、或はその他の回路要素からの信号を論理和回路を通して共通回路要素に導く、という公知の手法を以って簡単に実現できる。
【００８９】
フラッシュメモリは、半導体集積回路装置としてのシングルチップマイクロコンピュータの外部に接続するほか、内蔵することも可能である。例えば、セルベースＩＣなどのように、図５のシステムを１個の半導体集積回路とし、システムの小型化を図ることができる。
この場合、任意の値を設定可能な上記レジスタを不要にすることができる。即ち、かかるセルベースＩＣの使用者にとっては何れのエリアに何れのメモリを接続するかは固定的に決定することができ、レジスタで任意に設定する必要が無くなるからである。例えばＢＳＷＣＲ、ＡＳＲＣＲ、ＷＳＣＲＡーＢ、ＭＰＸＣＲ、ＣＭＤＣＲなどは固定とすることができる。これらのレジスタの出力を”０”または”１”のいずれかの状態に固定すればよい。レジスタの値を固定にする他に、それらの信号線をプルアップ又はプルダウンしてもよい。
【００９０】
システムの高速化のためには、ＣＰＵ２の処理速度を向上する必要がある。ＣＰＵ２の処理速度を向上するためには、命令のフェッチ速度を向上する必要がある。フラッシュメモリは、ＳＲＡＭに比較して低速であるために、命令のフェッチ速度の向上には限界がある。一方、ＳＲＡＭは、システム停止時に記憶内容を保持できない。そこで、リセット直後は、フラッシュメモリに格納されたプログラムで動作し、そのプログラムをＳＲＡＭに転送し、転送終了後はＳＲＡＭ上のプログラムを実行することが考えられる。
さらに、マイクロコンピュータの例外処理時に使用するベクタアドレスは、例えばエリア０などのＣＰＵ２のアドレス空間上で固定である場合がある。このため、ＳＲＡＭ上のプログラムを実行中であっても、割込などの例外処理が発生する毎にフラッシュメモリ上のプログラムを実行しなくてはならない。特に割込の処理などは応答時間を短縮しなければならない場合が多く、システムの高速化の制約になってしまう。
そこで、フラッシュメモリが配置されたエリア０のアクセス時に、エリア選択信号ＣＳ０＊を非選択状態とし、その代わりに、ＳＲＡＭが配置されているエリア２のエリア選択信号ＣＳ２＊を選択状態にさせることが得策である。この制御を制御ビットＣＳ０Ｃを用いて行う場合について説明する。
【００９１】
図２１には上記ＣＳ制御のための回路構成例が示される。
制御ビットＣＳ０Ｃはデータバスの１ビットの接続されるフリップフロップ回路ＦＦ２０で構成される。リセット後は制御ビットＣＳ０Ｃは”０”にクリアされている。制御ビットＣＳ０Ｃの存在するアドレスに対するライトが行なわれると、内部データバスＰＤＢ０の内容が格納される。ＣＰＵ２やＤＭＡＣ３などのバスマスタの出力するアドレス（ＩＡＢ）の内容はデコードされ、ＩＣＳ０〜ＩＣＳ７が生成される。エリア０、２以外については直接の関係がないので、ＩＣＳ０，ＩＣＳ２以外は図２１では図示を省略している。
【００９２】
制御ビットＣＳ０Ｃを”０”にクリアした状態では、エリア０アクセス時、即ち、ＩＣＳ０が選択レベルであるハイレベル、ＩＣＳ２が非選択レベルであるローレベルであるとき、エリア選択信号ＣＳ０が選択レベルであるハイレベル、ＣＳ２が非選択レベルであるローレベルにされる。
制御ビットＣＳ０Ｃを”１”にセットした状態では、エリア０アクセス時に、即ちＩＣＳ０が選択レベルであるハイレベル、ＩＣＳ２が非選択レベルであるローレベルであるとき、上記とは逆に、エリア選択信号ＣＳ０が非選択レベルであるローレベル、ＣＳ２が選択レベルであるハイレベルにされる。
なお、制御ビットＣＳ０Ｃの状態によらず、エリア２アクセス時は、ＣＳ０は非活性状態、ＣＳ２は活性状態にされる。外部に出力されるエリア選択信号ＣＳ０＊は上記信号ＣＳ０の反転信号とされ、外部に出力されるエリア選択信号ＣＳ２＊は上記信号ＣＳ２の反転信号とされる。
【００９３】
図２２には図２１で説明した高速化の手法を適用したプリンタシステムの変形例が示される。
図２３には図２２のシステムにおけるアドレスマップが示される。
図２２のシステムは図５に対してＳＲＡＭ１７が追加されている。当該ＳＲＡＭ１７はフラッシュメモリ１０に格納されているプログラムやチューニング情報の転送を受けて利用されるメモリであり、エリア２に配置される。図５と同一の回路ブロックには同一符合を付してその詳細な説明を省略する。
【００９４】
斯るシステムにおいて、リセット直後は先ず、フラッシュメモリ１０上のプログラムで動作が開始される。エリア０は３ステート、エリア２は２ステートとエリアとされる。エリア０のフラッシュメモリ１０の内容を、エリア２のＳＲＡＭ１７にコピーする。例えば、ＤＭＡＣ３を利用してもよい。その後、上記制御ビットＣＳ０Ｃを”１”にセットする。エリア０のアドレスをＣＰＵ１またはＤＭＡＣ３がアクセスすると、ＣＳ０＊はインアクティブ、ＣＳ２＊がアクティブレベルにされる。アクセスの属性はエリア２と同様になる。即ち、ＣＰＵ１の論理アドレスはエリア０であるのに対し、物理アドレスはエリア２となる。エリア０とエリア２の内容が共通であるので、物理アドレスの変更によっても誤動作することはない。低速のフラッシュメモリ１０にプログラムなどを格納し、動作時には高速のＳＲＡＭ１７にプログラムなどを転送して、データ処理速度を高速化することができる。例えばプログラムフェッチを１．５倍に高速化できるので、全体的な処理速度もこれに従って高速化される。
【００９５】
フラッシュメモリ１０の特性上、システム使用者に固有の情報などを蓄積していくことが考えられる。この場合、システムの動作終了時に、ＳＲＡＭ１７からフラッシュメモリ１０に内容を転送する。これにＤＭＡＣ３を用いることができる。例えば、マイクロコンピュータ１の入力信号ＲＥＡＤＹをＤＭＡＣ３の転送要求信号とすることができる。即ち、ＳＲＡＭ１７の内容をフラッシュメモリ１０に書き戻す場合、フラッシュメモリ１０によるワード又はページ単位での書込みの終了を意味する信号ＲＤＹ／ＢＵＳＹ＊のアクティブレベル（レディー状態）への変化を入力信号ＲＥＡＤＹとしてマイクロコンピュータ１が受ける度に、当該信号をＤＭＡＣ３の転送要求信号として処理する。その信号を転送要求信号とするには当該信号ＲＥＡＤＹを受けるポートをＤＭＡＣ３の転送要求信号としてＤＭＡＣ３に導くようにポートの設定を行っておけばよい。
【００９６】
このような処理が可能とされるのは、バスコントローラ４は、ＣＰＵ２によるアクセスとＤＭＡＣ３によるアクセスの何れにおいてもフラッシュメモリ１０に対するコマンド書込みのバスサイクルを自動的に付加できるからである。
尚、上述のＳＲＡＭ１７への転送はフラッシュメモリ１０以外をも対象にすることができる。例えば、マスクＲＯＭ１２には初期化動作のプログラムのみを格納し、フロッピディスクなどの２次記憶からエリア４のＳＲＡＭ１７にその他のプログラムを転送するようにしてもよい。また、高速のメモリとしては、ＳＲＡＭの他、シンクロナスＤＲＡＭのようなものであってもよい。
【００９７】
図２４には上記マイクロコンピュータ１をエミュレーション用マイクロコンピュータに適用した場合のブロック図が示される。
エミュレーション用マイクロコンピュータ５０は、マイクロコンピュータ部分５１、および図示はされないバッファ回路などを含むエミュレーションインタフェース５２から構成され、公知の半導体製造技術によって１つの半導体基板上に形成されている。
【００９８】
上記エミュレーション用マイクロコンピュータ５０はマイクロコンピュータ部分５１に対応するシングルチップマイクロコンピュータの応用システムと信号の送受信を行うユーザインタフェース５３を備える。上記エミュレーションインタフェース５２は図示しないエミュレータやシステム開発装置と信号の送受信を行う。
図２４において図１のシングルチップマイクロコンピュータと同一機能を有する回路ブロックには同一符合を付してある。図２４においてユーザインタフェース５３は図１の入出力回路ＰＩＯ１〜ＰＩＯ９を含んでいる。また、図２４においてＩ／Ｏで示される回路ブロックは、図１におけるタイマ７、ＳＣＩ８を含んでいる。
【００９９】
エミュレーション用バスとしては、ＩＡＢ及びＩＤＢをエミュレーションインタフェース５２を介して入出力する。バスＰＡＢ、ＰＤＢはエミュレーション用バスとしてエミュレーション用インタフェース５２には直結していない。これによって、エミュレーション用マイクロコンピュータの端子数を削減でき、パッケージサイズの小型化、ひいてはエミュレータのサイズの縮小に寄与する。
【０１００】
自動的に付加されたコマンドサイクルであることを示すステータス信号ＣＭＤＣＹＣをエミュレーションインタフェース５２を介してエミュレータなどに出力させる。自動的に付加されたコマンドサイクルではＣＭＤＣＹＣ信号がアクティブレベルにされる。ＣＭＤＣＹＣ信号は、例えば、ＤＡＴＡＳＥＬ、ＢＥＯＲ、ＰＯＬ信号の論理和信号とすることができる。そのほか、エミュレーションインタフェース５２には、ブレーク要求端子ＢＲＫなどが含まれてなる。
ＣＰＵ２が、ブレーク割込を受け付けると、ブレークアクノリッジ信号ＢＲＫＡＫがアクティブレベルにされて、エミュレーションのためのコントロールプログラム実行状態に遷移される。復帰命令を実行すると、ＢＲＫＡＫ信号がインアクティブ状態になって、ユーザプログラム実行状態に遷移する。
ブレークモード中には、コマンド書込みサイクルのような自動的なバスサイクル挿入（バスコマンド）を禁止するようにする。同一のアドレスにエミュレータ用のメモリとユーザ用フラッシュメモリを配置し、ブレークモード時にはエミュレータ用のメモリを使用し、ユーザモード時にはユーザ用フラッシュメモリを使用することができる。エミュレータ用メモリは、デバック対象のプログラムを格納する目的に従って、ＲＡＭで構成することが望ましい。このＲＡＭに対して、バスコマンドであるライトサイクルを発行して、ＲＡＭの内容を破壊してしまうことを防ぐことができる。
【０１０１】
図２５にはエミュレータの一例ブロック図が示される。
コネクタ部６０がシングルチップマイクロコンピュータの代わりに応用システム（ユーザシステム）６１に装着される。エミュレーション用マイクロコンピュータ５０は上記コネクタ部６０とインタフェースケーブル６２を介して応用システム６１と信号の入出力を行う。
【０１０２】
また、エミュレーション用マイクロコンピュータ５０は上記エミュレーションインタフェース５２を用いてエミュレーションバス６３に接続される。エミュレーションバス６３は状態信号、制御信号、データ、及びアドレスなどの各種信号線を含む。上記エミュレーションバス６３を用いて、エミュレーション用マイクロコンピュータ５０から、応用システム６１とエミュレーション用マイクロコンピュータ５０の内部状態に応じた情報などが出力され、また、エミュレーション用マイクロコンピュータ５０に対し、エミュレーションのための各種制御信号が入力される。エミュレーション用マイクロコンピュータ５０の、図示はされないエミュレートモード端子が電源レベルに固定され、エミュレーション用マイクロコンピュータ５０内部ではエミュレートモードが設定される。
【０１０３】
上記エミュレーションバス６３には、特に制限はされないものの、応用システム６１またはターゲットマイクロコンピュータ内蔵のメモリを代行するためのＲＡＭでなるようなエミュレーションメモリ６４と、エミュレーション用マイクロコンピュータ５０の制御状態やエミュレーションバス６３の状態を監視して、その状態が予め設定された状態に達した時に、上記エミュレータ専用割込みとしてのブレーク割込みを要求して、ＣＰＵ２によるユーザプログラムの実行を停止させ、エミュレーション用のコントロールプログラム実行状態に遷移させる（ブレーク）ためのブレーク制御回路６５と、上記ＣＰＵ２のリード動作またはライト動作を示す信号、命令リード動作を示す信号などに基づき、エミュレーションバス６３に与えられるアドレスやデータさらには制御情報を逐次蓄えるリアルタイムトレース回路６６などが接続される。リアルタイムトレース回路は前記信号ＣＭＤＣＹＣも逐次蓄える。
【０１０４】
上記エミュレーションメモリ６４、ブレーク制御回路６５、リアルタイムトレース回路６６はコントロールバス６７にも接続され、コントロールバス６７を介してコントロールプロセッサ６８の制御を受けるようになっている。上記コントロールバス６７は、ホストインタフェース６９を介して、特に制限はされないもののパーソナルコンピュータなどのシステム開発装置７０に接続される。例えば、システム開発装置７０から入力されたプログラムをエミュレーションメモリ６４に転送し、外部プログラムＲＯＭ上に配置されるべき、またはＲＯＭを内蔵した場合、内蔵ＲＯＭ上に配置されるべきかかるプログラムをＣＰＵ２がリードすると、エミュレーションメモリ６４上のプログラムがリードされる。また、ブレーク条件や、リアルタイムトレース条件などもシステム開発装置７０から与えることができる。システム開発装置７０は、リアルタイムトレース回路６６にトレースされた結果を、ＣＲＴまたは液晶などの表示画面上に表示することができる。
【０１０５】
エミュレータシステム上では、通常のバスサイクルと自動的に付加されたバスサイクルとを明示的に区別できる。即ち、バスサイクルに対応して得られるＣＭＤＣＹＣ信号の状態を表示したりして区別できる。あるいは、通常のバスサイクルまたは自動的に付加されたバスサイクルのみを選択的に表示することを選択可能にする。これはシステム開発装置７０の処理によって、ＣＭＤＣＹＣ信号の蓄積情報に従って、対応するバスサイクルを表示するかしないかを選択すればよい。自動的に付加されたバスサイクルを削除することによって、プログラムの実行とバスサイクルが対応するようになるため、プログラムのデバックを容易にすることができる。また、自動的に付加されたバスサイクルのみを表示することによって、バスコマンドの実行状態を容易にトレースすることができる。エミュレータがバスコマンドを解釈して、バス情報だけでなく、コマンドの内容を表示することを容易にすることができる。ＣＭＤＣＹＣ信号がアクティブレベルであり、そのときのデータがＨ’２０、Ｈ’Ｂ０であれば、表示画面上に”ブロック消去”と表示するものである。これにより、コマンドの内容をユーザが逐次確認することがなく、プログラムのデバックを容易に行うことができるようになる。
【０１０６】
ここで上記フラッシュメモリ１０を概略的に説明する。フラッシュメモリ１０は、２層ゲート構造の絶縁ゲート型電界効果トランジスタによって構成されたフラッシュメモリセル（以下単にメモリセルとも記す）をマトリクス配置したメモリアレイを備える。特に制限されないが、フラッシュメモリセルのコントロールゲートはそれぞれ対応する図示しないワード線に接続され、フラッシュメモリセルのドレインはそれぞれ対応する図示しないデータ線に接続され、フラッシュメモリセルのソースはメモリブロック毎に共通のソース線に接続される。
【０１０７】
メモリセルへの情報の書込み動作は、例えばコントロールゲート及びドレインに高電圧を印加して、アバランシェ注入によりドレイン側からフローティングゲートに電子を注入することで実現される。この書込み動作によりフラッシュメモリセルは、そのコントロールゲートからみたしきい値電圧が、書込み動作を行わなかった消去状態のメモリセルに比べて高くなる。
【０１０８】
一方消去動作は、例えばソースに高圧を印加して、トンネル現象によりフローティングゲートからソース側に電子を引き抜くことによって実現される。消去動作により記憶トランジスタはそのコントロールゲートからみたしきい値電圧が低くされる。書込み並びに消去状態の何れにおいてもメモリセルトランジスタのしきい値は正の電圧レベルにされる。すなわちワード線からコントロールゲートに与えられるワード線選択レベルに対して、書込み状態のしきい値電圧は高くされ、消去状態のしきい値電圧は低くされる。双方のしきい値電圧とワード線選択レベルとがそのような関係を持つことによって、選択トランジスタを採用することなく１個のトランジスタでメモリセルを構成することができる。
【０１０９】
読み出し動作においては、上記フラッシュメモリセルに対して弱い書込み、すなわち、フローティングゲートに対して不所望なキャリアの注入が行われないように、ドレイン及びコントロールゲートに印加される電圧が比較的低い値に制限される。例えば、１Ｖ程度の低電圧がドレインに印加されるとともに、コントロールゲートに５Ｖ程度の低電圧が印加される。これらの印加電圧によってメモリセルトランジスタを流れるチャンネル電流の大小を検出することにより、メモリセルに記憶されている情報の論理値“０”、“１”を判定することができる。
【０１１０】
上記実施例によれば、以下の作用効果を得るものである。
（１）外部バスを有するマイクロコンピュータ１のアドレス空間上の一部または全部の領域に接続されるメモリなどを選択制御するバスコントローラ４を有し、かつ、その内部レジスタＣＭＤＣＲにより、コマンドライトを必要とするフラッシュメモリ１０を指定可能とし、フラッシュメモリ１０を選択したアドレス空間上の領域に、ＣＰＵ２またはＤＭＡＣ３のようなバスマスタがリード／ライトを行なったときに、かかるリード／ライトに対応したコマンドのためのライトサイクルをバスコントローラ４のタイミング制御回路４４が挿入することによって、ソフトウェアの負荷を最低限にして、フラッシュメモリ１０を接続することができる。
（２）バス幅・バスサイクル数をレジスタＢＳＷＣＲ，ＡＳＴＣＲ，ＷＳＣＲＡ，ＷＳＣＲＢで設定することによって、外部回路を不要にして、各種メモリを直接接続することができる。
（３）リード／ライト動作時に自動的にコマンドを挿入することによって、ＤＭＡＣ３のようなデータ転送のみを行なうバスマスタでも、ＳＲＡＭなどと同様にフラッシュメモリ１０との間でもデータ転送制御を行なうことができる。
（４）エリア選択信号を出力することによって、メモリを直接接続できる。図２１に基づいて説明したようにエリア選択信号の出力条件を変更することで、物理的なシステムを変更せずに、ＣＰＵ２のアドレス空間上でのメモリなどの再配置を可能にすることができる。これによって、低速の不揮発メモリに格納した内容を、高速の揮発メモリに転送して、動作するとき、エリア選択信号の出力条件を変更するだけで対処できる。
（５）エミュレーション用マイクロコンピュータにおいて、バスマスタが行なったバスサイクルか、バスコントローラが自動的に挿入したバスサイクルかを示す信号ＣＭＤＣＹＣを出力することによって、かつ、エミュレータがこれらを区別して表示することによって、デバック効率を向上することができる。
（６）エミュレーション用マイクロコンピュータにおいて、外部メモリを使用しない状態（ブレークモード）では、バスコントローラが自動的にバスサイクルを挿入することを禁止することによって、エミュレーションメモリを保護することができる。
【０１１１】
以上本発明者によってなされた発明を実施例に基づいて具体的に説明したが、本発明はそれに限定されるものではなく、その要旨を逸脱しない範囲において種々変更可能であることは言うまでもない。
【０１１２】
例えば、バスマスタとしては、ＣＰＵ、ＤＭＡＣの他、データトランスファコントローラ、デジタルシグナルプロセッサ（ＤＳＰ）であってもよい。バスを使用してメモリをリード／ライトするようなデータ処理装置であればよい。３個以上のバスマスタを有するものであってもよい。任意の数のデータ処理装置を１つの半導体集積回路に内蔵することができる。本発明はＤＭＡＣやＤＳＰそれ自体にも適用できることは言うまでもない。コマンドによって動作が指示される外部回路はフラッシュメモリに限定されない。それがメモリの場合、例えばシンクロナスＤＲＡＭであってもよい。
【０１１３】
バス仕様の詳細は種々変更が可能である。例えば、バス幅は８／１６ビットの選択のほか、１６／３２ビットであってもよいし、８／１６／３２ビットを選択可能にしてもよい。３２ビットバスにした場合は、８ビット単位のコマンドを４個並列に出力してもよい。アドレスとバスサイズを判定して、所定のバスのみコマンドを出力してもよい。
【０１１４】
リセット時に、マニュアルリセットとパワーオンリセットを設け、マニュアルリセットのときはバスコントローラのレジスタの内容を保持するようにしてもよい。更に、リセット用のコマンドをＣＰＵの動作に先だって出力するようにしてもよい。
【０１１５】
バス制御回路の具体的な回路構成も種々変更が可能である。制御レジスタの構成なども種々変更が可能である。コマンドを格納するレジスタはＣＰＵが随時書き込み可能であるほか、固定的なものであってもよい。エリアの分割方法についても、１２８ｋバイト単位などとすることができる。エリアの大きさを連続的に変更可能にしてもよい。分割した全エリアについて属性を設定できなくてもよい。アドレス空間が広がった場合には、各エリアが大きくならないようにすることが望ましい。使用可能なメモリの容量よりも大きくなることは望ましくない。エリアの分割数が多く、或いはマイクロコンピュータの端子が十分に大きくない場合には、すべてのエリアに対してエリア選択信号を出力しなくてもよい。
シングルチップマイクロコンピュータのその他の機能ブロックについても何等制約されない。
【０１１６】
以上の説明では主として本発明者によってなされた発明をその背景となった利用分野であるシングルチップマイクロコンピュータに適用した場合について説明したが、それに限定されるものではなく、その他のデータ処理装置および制御システム、エミュレータにも適用可能であり、本発明は少なくとも、外部バスを使用可能なデータ処理装置に適用することができる。
【０１１７】
【発明の効果】
本願において開示される発明のうち代表的なものによって得られる効果を簡単に説明すれば下記の通りである。
【０１１８】
すなわち、フラッシュメモリのような外部回路に割当てられた所定のアドレス空間がアクセスされると、そのアクセスに先立って、当該外部回路の動作を指示するコマンドをライトするための第１のコマンドライトサイクルを自動的に挿入することができる。これにより、例えばフラッシュメモリに対するバイト又はページ単位での書込みに際して毎回コマンドを書込むための処理とそれを規定するプログラム記述を不要にすることができる。
【０１１９】
内蔵制御レジスタの所定のビットがＣＰＵによって操作されると、当該操作の次に、外部回路の動作を指示するコマンドをライトするための第２のコマンドライトサイクルを自動的に挿入することができる。これにより、例えばフラッシュメモリに対するブロック消去書のような複数回に分けたコマンドライトが必要な場合にも、命令記述は制御レジスタに対する書込みなどを規定すればよく、上記同様データ処理効率の向上とプログラムサイズの縮小化とを実現できる。
【０１２０】
ポーリング制御のための外部リードサイクルをＣＰＵによる内蔵制御レジスタの所定ビットの操作によって開始し維持することができ、これによっても、外部バスサイクルの生成という点においてデータ処理効率の向上とプログラムサイズの縮小化とを実現できる。
【０１２１】
エミュレーションを考慮した時、バスマスタが行なったバスサイクルか、バスコントローラが自動的に挿入したバスサイクルかを示す信号をデータ処理装置が出力することにより、デバック効率を向上することができる。
【０１２２】
エミュレーションを考慮したとき、ブレークモードでは上記自動的なバスサイクルの挿入することを禁止することによって、エミュレーションメモリを保護することができる。
【０１２３】
バスマスタ手段がダイレクトメモリアクセスコントローラであっても、上記コマンドライトサイクルの自動挿入によって、ダイレクトメモリアクセスコントローラもそのようなコマンド形式のフラッシュメモリをデータ転送元又はデータ転送先として利用することができる。
【０１２４】
コマンドによって動作が指示されるフラッシュメモリとのインタフェースの簡素化及び使い勝手を向上させることができる。
【図面の簡単な説明】
【図１】本発明に係るデータ処理装置の一実施例であるシングルチップマイクロコンピュータのブロック図である。
【図２】図１のマイクロコンピュータのアドレスマップの一例説明図である。
【図３】バス制御レジスタの説明図である。
【図４】その他のバス制御レジスタの説明図である。
【図５】図１のシングルチップマイクロコンピュータを用いたプリンタシステムの一例ブロック図である。
【図６】図５のシステムにおける外部バス１６による接続状態の一例説明図である。
【図７】エリア０の１６ビットバス、３ステートアクセスにおけるリード動作とエリア４の１６ビットバス、３ステートアクセスにおけるリードの一例バスサイクルタイミング図である。
【図８】エリア０の１６ビットバス、３ステートアクセスにおけるライト動作の一例バスサイクルタイミング図である。
【図９】エリア４の１６ビットバス、３ステートアクセスにおけるライト動作の一例バスサイクルタイミング図である。
【図１０】エリア５の１６ビットバス、３ステートアクセス、アドレスマルチプレクスアクセスにおけるリード動作の一例バスサイクルタイミング図である。
【図１１】エリア５の１６ビットバス、３ステートアクセス、アドレスマルチプレクスアクセスにおけるライト動作の一例バスサイクルタイミング図である。
【図１２】エリア６の１６ビットバス、２ステートアクセスにおけるリード動作の一例バスサイクルタイミング図である。
【図１３】エリア６の１６ビットバス、２ステートアクセスにおけるライト動作の一例バスサイクルタイミング図である。
【図１４】エリア７の８ビットバス、３ステートアクセスにおけるリード動作の一例バスサイクルタイミング図である。
【図１５】エリア７の８ビットバス、３ステートアクセスにおけるライト動作の一例バスサイクルタイミング図である。
【図１６】バスコントローラの一例ブロック図である。
【図１７】バスコントローラに含まれるタイミング制御回路の一例回路図である。
【図１８】図１７の回路の一例動作タイミング図である。
【図１９】バスコントローラに含まれるタイミング制御回路別の一例回路図である。
【図２０】図１９の回路におけるブロック消去のためのコマンドライトサイクルの自動生成に関する一例動作タイミング図である。
【図２１】ＣＳ制御のための一例回路図である。
【図２２】図２１の回路を適用したプリンタシステム一例ブロック図である。
【図２３】図２２のシステムにおけるアドレスマップの一例説明図である。
【図２４】エミュレーション用マイクロコンピュータの一例ブロック図である。
【図２５】エミュレータの一例ブロック図である。
【図２６】フラッシュメモリのコマンドの一例説明図である。
【符号の説明】
１  シングルチップマイクロコンピュータ
２  ＣＰＵ
３  ＤＭＡＣ
４  バスコントローラ
ＢＳＷＣＲ  各エリアのバス幅指定用のレジスタ
ＡＳＴＣＲ，ＷＳＣＲＡ，ＷＳＣＲＢ  各エリアのバスサイクル指定用のレジスタ
ＭＰＸＣＲ  各エリアのアドレスマルチプレクス指定用のレジスタ
ＣＭＤＣＲ  コマンドサイクル自動生成すべきエリア指定用のレジスタ
ＷＣＭＤ，ＣＤＡＴＡ０，ＣＤＡＴＡ１  コマンド格納用のレジスタ
ＢＡＤＲ０〜ＢＡＤＲ３  アドレス格納用のレジスタ
ＣＮＴＬ  コマンドバスサイクル挿入条件指定用のレジスタ
１０  フラッシュメモリ
１１  ＤＲＡＭ
１２  マスクＲＯＭ
１３，１７  ＳＲＡＭ
４４  タイミング制御回路
５０  エミュレーション用マイクロコンピュータ
【図１】
0003589699.tif 000002
【図２】
0003589699.tif 000003
【図３】
0003589699.tif 000004
【図４】
0003589699.tif 000005
【図５】
0003589699.tif 000006
【図６】
0003589699.tif 000007
【図７】
0003589699.tif 000008
【図８】
0003589699.tif 000009
【図９】
0003589699.tif 000010
【図１０】
0003589699.tif 000011
【図１１】
0003589699.tif 000012
【図１２】
0003589699.tif 000013
【図１３】
0003589699.tif 000014
【図１４】
0003589699.tif 000015
【図１５】
0003589699.tif 000016
【図１６】
0003589699.tif 000017
【図１７】
0003589699.tif 000018
【図１８】
0003589699.tif 000019
【図１９】
0003589699.tif 000020
【図２０】
0003589699.tif 000021
【図２１】
0003589699.tif 000022
【図２２】
0003589699.tif 000023
【図２３】
0003589699.tif 000024
【図２４】
0003589699.tif 000025
【図２５】
0003589699.tif 000026
【図２６】
0003589699.tif 000027